專利名稱:基于身份的分級加密與簽名方案的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及密碼技術(shù)以及通過計(jì)算機(jī)網(wǎng)絡(luò)或通過其他類型的系統(tǒng)與設(shè)備進(jìn)行的保密通信,并尤其涉及用來對通信進(jìn)行加密和解密的基于身份的分級方案。
背景技術(shù):
大致說來,基于身份的密碼系統(tǒng)是公共密鑰密碼系統(tǒng),在這類系統(tǒng)中,一個(gè)實(shí)體的公共密鑰是由與該實(shí)體的身份相關(guān)的信息得來的。例如,所述的身份信息可以是個(gè)人信息(即姓名、地址、電子郵箱地址等)或是計(jì)算機(jī)信息(即IP地址等)。但是,身份信息不僅可以包括與實(shí)體身份嚴(yán)格相關(guān)的信息,還包括廣泛的可用信息,比如時(shí)間或日期。也就是說,身份信息概念的重要性不在于它與實(shí)體身份的嚴(yán)格關(guān)系,而在于任何希望向?qū)嶓w發(fā)送加密消息的人都能輕易獲得該信息。
一個(gè)實(shí)體的私有密鑰由一個(gè)受委托方或邏輯進(jìn)程產(chǎn)生并分配,所述的受委托方或邏輯進(jìn)程通常被稱為私有密鑰生成器(“PKG”)。PKG利用一個(gè)主密文信息來產(chǎn)生私有密鑰。由于一個(gè)實(shí)體的公共密鑰可根據(jù)其身份推知,因此當(dāng)Alice想要向Bob發(fā)送一條消息時(shí),她就不必從數(shù)據(jù)庫中取回Bob的公共密鑰。而是Alice只需根據(jù)Bob的識別信息直接推知密鑰。公共密鑰數(shù)據(jù)庫就成為多余,認(rèn)證授權(quán)(“CAs”)也是不必要的了。無需將Bob的身份“綁定”到他的公共密鑰上,因?yàn)樗纳矸菁词撬墓裁荑€。
基于身份的系統(tǒng)的概念并不新鮮。它在A.Shamir所著的“Identity-Based Cryptosystems and Signatures Schemes(基于身份的加密系統(tǒng)與簽名方案)”中就已被提出,該文發(fā)表于ADVANCES INCRYPTOGRAPHY-CRYPTO‘84,Lecture Notes in ComputerScience 196(1984),Springer,47-53。然而,可實(shí)際應(yīng)用的基于身份的加密方案至今仍未被找到。例如,基于身份的方案在下列文獻(xiàn)中就已被提出,C.Cocks所著的“An Identity-Based Encryption SchemeBased on Quadratic Residues(以平方殘差為基礎(chǔ)的基于身份的加密方案)”,該文可在http//www.cesg.gov.uk/technology/id-pkc/media/ciren.pdf得到;D.Boneh,M.Franklin所著的“Identity BasedEncryption from the Weil Pairing(由Weil配對得到的基于身份的加密)”,該文發(fā)表于ADVANCES IN CRYPTOGRAPHY-CRYPTO2001,Lecture Notes in Computer Science2139(2001),Springer,213-229;以及D.Boneh,M.Franklin所著的“Identity BasedEncryption from the Weil Pairing(extended version)(由Weil配對得到的基于身份的加密(擴(kuò)展版本))”,該文可在http//www.cs.stanford.edu/~dabo/papers/ibe.pdf得到。Cocks的方案是基于“平方殘差問題”的,盡管加密和解密都相當(dāng)?shù)乜?大約是RSA的速度),但是會有顯著的消息擴(kuò)展(即密文比特長度是明文比特長度的許多倍)。Boneh-Franklin方案將其安全性的基礎(chǔ)建立在“雙線性Diffie-Hellman問題”上,在使用超奇異橢圓曲線或阿貝爾簇曲線上的Weil或Tate配對時(shí),該方案相當(dāng)快速與高效。
然而,已知的基于身份的加密方案都有一個(gè)顯著的缺陷——它們都不是分級結(jié)構(gòu)的。在非基于身份的公共密鑰加密技術(shù)中,已經(jīng)可以設(shè)置CA的分級結(jié)構(gòu),在該結(jié)構(gòu)中,根CA可以為其他CA發(fā)放證書,而后者又可以為特定域內(nèi)的用戶發(fā)放證書。這樣做是很值得的,因?yàn)樗鼫p輕了根CA的工作量??晒┗谏矸莸募用芗夹g(shù)使用的實(shí)用分級方案還未被開發(fā)出來。
理想情況下,基于身份的分級加密方案將包括一個(gè)邏輯或?qū)嶋HPKG的分級結(jié)構(gòu)。例如,一個(gè)根PKG可以向其他PKG發(fā)放私有密鑰,而后者又可以向特定域內(nèi)的用戶發(fā)放私有密鑰。同時(shí),只要發(fā)送方獲得了根PKG的公共參數(shù),即使發(fā)送方根本不在系統(tǒng)中,也可以在不上線查找接收方的公共密鑰或低級公共參數(shù)的情況下發(fā)送一條加密信息。基于身份的分級加密方案的另一個(gè)優(yōu)點(diǎn)在于損壞控制。例如,一個(gè)域PKG的密文的泄漏并不會危及更高層次PKG的密文,也不會危及任何其他不是這個(gè)被損害的域PKG的直接下級的PKG的密文。而Cocks和Boneh-Franklin所提倡的方案并不具有這些特性。
安全而實(shí)用的基于身份的分級加密方案還未被開發(fā)出來。一種具有部分共謀抵抗性的基于身份的分級密鑰共享方案已經(jīng)在下列文獻(xiàn)中被提出G.Hanaoka,T.Nishioka,Y.Zheng,H.Imai所著的“AnEfficient Hierarchical Identity-Based Key-Sharing Method ResistantAgainst Collusion Attacks(一種能夠抵抗共謀攻擊的高效的基于身份的分級密鑰共享方法)”,該文發(fā)表于ADVANCES INCRYPTOGRAPHY-ASIACRYPT 1999,Lecture Notes in ComputerScience 1716(1999),Springer,348-362;以及G.Hanaoka,T.Nishioka,Y.Zheng,H.Imai所著的“A Hierarchical Non-InteractiveKey-Sharing Scheme With Low Memory Size and High ResistanceAgainst Collusion Attacks(一種具有低內(nèi)存容量、高共謀攻擊抵抗性的分級非互動密鑰共享方案)”,該文將發(fā)表于THE COMPUTERJOURNAL。另外,在J.Horwitz,B.Lynn所著的“TowardHierarchical Identity-Based Encryption(走向基于身份的分級加密)”一文中還提供了對基于身份的分級加密的介紹,該文即將發(fā)表于ADVANCES IN CRYPTOGRAPHY-EUROCRYPT 2002,LectureNotes in Computer Science,Springer。Horwitz和Lynn提出了一種兩級的分級方案,該方案在第一級具有完全的共謀抵抗性,并在第二級具有部分的共謀抵抗性(即,用戶可以共謀以獲得他們的域PKG的密文,并據(jù)此假扮成域PKG)。但是,Horwitz-Lynn系統(tǒng)的復(fù)雜性會隨著第二級上的共謀抵抗性提高,因此該方案不可能做到既實(shí)用又安全。
因此需要一種安全實(shí)用的基于身份的分級加密方案。本發(fā)明的一個(gè)目標(biāo)就是要提供一種安全而又實(shí)用的基于身份的分級加密方案。本發(fā)明的另一個(gè)目標(biāo)是要提供一種安全而又實(shí)用的基于身份的分級簽名方案。本發(fā)明的另一個(gè)目標(biāo)是所述的加密與簽名方案都是完全可調(diào)整的。本發(fā)明的另一個(gè)目標(biāo)是所述的加密與簽名方案在任意數(shù)量的級別上都具有完全的共謀抵抗性,并且它們具有隨機(jī)預(yù)言模型中的選定密文安全性。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,它提供了用來實(shí)現(xiàn)安全可靠且實(shí)用的基于身份的分級加密與簽名方案的方法。
根據(jù)本發(fā)明的一方面內(nèi)容,它提供了一種用來在一個(gè)系統(tǒng)中的發(fā)送方與接收方之間編碼和解碼數(shù)字消息的方法,所述的系統(tǒng)中包括多個(gè)私有密鑰生成器(“PKG”)。這些PKG中至少包括一個(gè)根PKG以及根PKG與接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG,其中n≥1。一個(gè)根密鑰生成密文被選取,并且僅為根PKG所知。根據(jù)所述的根密鑰生成密文產(chǎn)生一個(gè)根密鑰生成參數(shù)。為n個(gè)低級PKG各選取一個(gè)低級密鑰生成密文,其中每個(gè)低級密鑰生成密文僅對其相關(guān)的低級PKG已知。還要為n個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù),其中至少要用到對應(yīng)于相關(guān)低級私有密鑰生成器的低級密鑰生成密文。至少利用根密鑰生成參數(shù)和接收方身份信息來對所述的消息進(jìn)行編碼,以形成一個(gè)密文。產(chǎn)生一個(gè)接收方私有密鑰,使得該接收方私有密鑰至少與根密鑰生成密文、根PKG和接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG相關(guān)的n個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)、以及接收方身份信息有關(guān)。至少利用接收方私有密鑰來解密所述的密文以恢復(fù)所述的消息。
根據(jù)本發(fā)明的另一方面內(nèi)容,它提供了一種用來在一個(gè)系統(tǒng)中的發(fā)送方與接收方之間編碼和解碼數(shù)字消息的方法,所述的系統(tǒng)中包括多個(gè)私有密鑰生成器(“PKG”)。這些PKG中至少包括一個(gè)根PKG、根PKG與發(fā)送方之間的分級結(jié)構(gòu)中的m個(gè)低級PKG,其中m≥1,根PKG與接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG,其中n≥1,以及PKGl,它是發(fā)送方與接收方共同的前輩PKG。在該分級結(jié)構(gòu)中,m個(gè)私有密鑰生成器中的l個(gè)是發(fā)送方與接收方共同的前輩PKG,其中l(wèi)≥1。
根據(jù)本發(fā)明這一方面的內(nèi)容,要為根PKG與發(fā)送方之間的分級結(jié)構(gòu)中的m個(gè)低級PKG各選取一個(gè)低級密鑰生成密文。生成一個(gè)發(fā)送方私有密鑰,使得該發(fā)送方私有密鑰至少與根密鑰生成密文、根PKG和發(fā)送方之間的分級結(jié)構(gòu)中的m個(gè)低級PKG相關(guān)的m個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)、以及發(fā)送方身份信息有關(guān)。生成一個(gè)接收方私有密鑰,使得該接收方私有密鑰至少與根密鑰生成密文、根PKG和接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG相關(guān)的n個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)、以及接收方身份信息有關(guān)。至少利用接收方身份信息、發(fā)送方私有密鑰、以及和位于或低于公共前輩PKGl級別的(m-l+1)個(gè)私有密鑰生成器相關(guān)的低級密鑰生成參數(shù)中的0個(gè)或多個(gè),來對所述的消息進(jìn)行編碼,但是不能使用和高于公共前輩PKGl的(l-1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的任何一個(gè)。至少利用發(fā)送方身份信息、接收方私有密鑰、以及和位于或低于公共前輩PKGl級別的(n-l+1)個(gè)私有密鑰生成器相關(guān)的低級密鑰生成參數(shù)中的0個(gè)或多個(gè),來對所述的消息進(jìn)行解碼,但是不能使用和高于公共前輩PKGl的(l-1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的任何一個(gè)。
根據(jù)本發(fā)明的另一方面內(nèi)容,它提供了一種用來在一個(gè)系統(tǒng)中的發(fā)送方與接收方之間產(chǎn)生及驗(yàn)證一條消息的數(shù)字簽名的方法,所述的系統(tǒng)中包括多個(gè)PKG。這些PKG中至少包括一個(gè)根PKG以及根PKG與發(fā)送方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG,其中n≥1。一個(gè)根密鑰生成密文被選取,并且僅為根PKG所知。根據(jù)所述的根密鑰生成密文產(chǎn)生一個(gè)根密鑰生成參數(shù)。為n個(gè)低級PKG各選取一個(gè)低級密鑰生成密文,其中每個(gè)低級密鑰生成密文僅對其相關(guān)的低級PKG已知。還要為n個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù),其中至少要用到對應(yīng)于相關(guān)低級私有密鑰生成器的低級密鑰生成密文。為發(fā)送方生成一個(gè)私有密鑰,使得該私有密鑰至少與根密鑰生成密文以及發(fā)送方身份信息有關(guān)。至少利用發(fā)送方私有密鑰來簽署所述的消息以生成一個(gè)數(shù)字簽名。至少利用根密鑰生成參數(shù)以及發(fā)送方身份信息來驗(yàn)證所述的數(shù)字消息。
以下對本發(fā)明優(yōu)選實(shí)施例的說明參照了附圖,其中圖1示出了一張流程圖,該圖根據(jù)本發(fā)明的當(dāng)前優(yōu)選實(shí)施例展示了一種編碼和解碼數(shù)字消息的方法;圖2示出了一張流程圖,該圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種在發(fā)送方y(tǒng)和接收方z之間編碼及解碼數(shù)字消息的方法;圖3示出了一張框圖,該圖展示了一種典型的分級結(jié)構(gòu),在這種結(jié)構(gòu)中可以實(shí)現(xiàn)圖2所示的方法;圖4示出了一張流程圖,該圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種編碼和解碼一條數(shù)字消息M的方法,所述的數(shù)字消息在發(fā)送方y(tǒng)和接收方z之間傳遞;圖5示出了一張流程圖,該圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種編碼和解碼一條數(shù)字消息M的方法,所述的數(shù)字消息在發(fā)送方y(tǒng)和接收方z之間傳遞;圖6示出了一張流程圖,該圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種編碼和解碼一條數(shù)字消息M的方法,所述的數(shù)字消息在發(fā)送方y(tǒng)和接收方z之間傳遞;圖7示出了一張流程圖,該圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種生成及驗(yàn)證一個(gè)數(shù)字簽名的方法;圖8示出了一張流程圖,該圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種生成及驗(yàn)證一條數(shù)字消息M的數(shù)字簽名sig的方法,所述的數(shù)字消息在發(fā)送方y(tǒng)和接收方z之間傳遞;以及圖9示出了一張流程圖,該圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種生成及驗(yàn)證一條數(shù)字消息M的數(shù)字簽名sig的方法,所述的數(shù)字消息在發(fā)送方y(tǒng)和接收方z之間傳遞。
具體實(shí)施例方式
本發(fā)明的當(dāng)前優(yōu)選方法提供了安全可靠而實(shí)用的基于身份的分級加密(“HIDE”)與簽名(“HIDS”)方案。所述的分級方案是完全可調(diào)整的,在任意數(shù)量的級別上都具有完全的共謀抵抗性,并且具有隨機(jī)預(yù)言模型中的選定密文安全性。這些目標(biāo)部分是通過在各個(gè)低級PKG中引入附加隨機(jī)信息而實(shí)現(xiàn)的。這些方案在直觀上令人驚訝的一個(gè)方面在于,即使低級PKG產(chǎn)生了附加隨機(jī)信息,也不會迫使在分級結(jié)構(gòu)的根級別以下添加公共參數(shù)。另外,低級PKG所產(chǎn)生的隨機(jī)信息不會對不在低級PKG以下的用戶向低級PKG以下的用戶發(fā)送加密信息的能力造成負(fù)面影響。
本發(fā)明的每一個(gè)HIDE和HIDS方案都需要PKG的分級結(jié)構(gòu),該結(jié)構(gòu)中至少包括一個(gè)根PKG和多個(gè)低級PKG。分級結(jié)構(gòu)和低級PKG可以是邏輯的,也可以是實(shí)際的。例如,一個(gè)單個(gè)實(shí)體就可以產(chǎn)生根密鑰生成密文和低級密鑰生成密文,低級用戶的加密或簽名密鑰都是由后者生成的。在這種情況下,低級PKG都不是獨(dú)立的實(shí)體,而只是以邏輯分級結(jié)構(gòu)組織的進(jìn)程或信息,并被用來為分級結(jié)構(gòu)中的后代PKG及用戶生成密鑰?;蛘?,每個(gè)低級PKG也可以是獨(dú)立的實(shí)體。另一種備選方案涉及實(shí)際與邏輯低級PKG的混合形式。為了本文公開說明的目的,短語“低級PKG”一般被用來指代這些備選方案中的任意一種。
在本文所公開的基于身份的分級密碼系統(tǒng)環(huán)境下,基于身份的公共密鑰可以是基于時(shí)間周期的。例如,一個(gè)特定接收方的身份會隨各個(gè)隨后的時(shí)間周期而變化?;蛘撸邮辗揭部梢詫r(shí)間周期安排為它自己在分級結(jié)構(gòu)中的后代或下級,并且發(fā)送方會在編碼消息時(shí)使用正確時(shí)間周期上的身份。不論采用何種方式,每個(gè)密鑰都只在相關(guān)的時(shí)間周期內(nèi)才能有效的用來簽署要送給Bob的消息。
本發(fā)明的HIDE方案通常包括5個(gè)隨機(jī)化的算法根設(shè)置、低級設(shè)置、抽取、加密以及解密。這些算法中的三個(gè)依賴于分級結(jié)構(gòu)中相關(guān)實(shí)體的身份。每名用戶最好都在分級結(jié)構(gòu)中擁有一個(gè)位置,該分級結(jié)構(gòu)可由它的ID元組(ID1,...,IDt)定義。所述用戶在分級結(jié)構(gòu)中的前輩是根PKG以及ID元組為{(ID1,...,IDi)1≤i≤(t-1)}的用戶或PKG。為了計(jì)算的目的,ID元組最好用二進(jìn)制字串表示。
在根設(shè)置算法中,根PKG使用一個(gè)保密參數(shù)k來產(chǎn)生公共系統(tǒng)參數(shù)params以及一個(gè)根密鑰生成密文。所述的系統(tǒng)參數(shù)包括對消息空間M和密文空間X的描述。所述的系統(tǒng)參數(shù)是公開使用的,但只有根PKG知道根密鑰生成密文。
在低級設(shè)置算法中,為了抽取的目的,每個(gè)低級PKG最好產(chǎn)生它自己的低級密鑰生成密文?;蛘?,低級PKG也可以為每次抽取產(chǎn)生一次性密文。
在抽取算法中,一個(gè)PKG(根PKG或低級PKG)為它的任意一個(gè)后代產(chǎn)生一個(gè)私有密鑰。該私有密鑰是利用系統(tǒng)參數(shù)、生出方PKG的私有密鑰以及任何其他的優(yōu)選密文信息產(chǎn)生的。
在加密算法中,發(fā)送方從根PKG接收系統(tǒng)參數(shù),最好是通過本系統(tǒng)以外的某些安全途徑接收。發(fā)送方不必接收任何低級密鑰生成參數(shù)。所述的發(fā)送方利用params和期望接收方的ID元組來編碼一條消息M∈M,以產(chǎn)生一個(gè)加密文本C∈X。相反地,在解碼算法中,接收方利用params和接收方的私有密鑰d來解碼加密文本C,以恢復(fù)消息M。加密和解密最好都滿足標(biāo)準(zhǔn)的一致性約束M∈MDecryption (params,d,C)=M其中C=Encryption(params,ID元組,M)。
象HIDE方案一樣,本發(fā)明的HIDS方案一般也包括5個(gè)隨機(jī)化的算法根設(shè)置、低級設(shè)置、抽取、簽署以及驗(yàn)證。在根設(shè)置中,系統(tǒng)參數(shù)會被補(bǔ)充以包括進(jìn)對簽名空間∑的說明。低級設(shè)置和抽取最好與上述HIDE中的算法一樣。
在簽署算法中,數(shù)字消息的發(fā)送方利用params和發(fā)送方的私有密鑰d簽署消息M∈M,以生成一個(gè)簽名S∈∑。在驗(yàn)證算法中,被簽署消息的接收方利用params以及發(fā)送方的ID元組來驗(yàn)證簽名S。驗(yàn)證算法最好輸出“有效”或“無效”。簽署與驗(yàn)證最好也滿足一致性約束M∈MVerification(params,ID元組,S)=“有效”其中S=Signing (params,d,M)。
HIDE與HIDS方案的安全性下面將分別針對HIDE和HIDS來說明實(shí)現(xiàn)了本發(fā)明的方案的安全性。在基于身份的非分級加密技術(shù)環(huán)境下人們已經(jīng)注意到,必須為基于身份的系統(tǒng)加強(qiáng)選定密文安全性的標(biāo)準(zhǔn)定義。這是因?yàn)?,為了進(jìn)行安全性分析,應(yīng)該假定一個(gè)敵對方能夠獲得與其選擇的任意身份相關(guān)的私有密鑰(除了受到攻擊的特定身份以外)。這一點(diǎn)同樣適用于基于身份的分級加密技術(shù)。因此,為了確保本發(fā)明的HIDE方案是具有選定密文安全的,就可以讓一個(gè)模擬攻擊者進(jìn)行密鑰抽取查詢。同時(shí),還要允許該模擬敵對方選擇其所希望挑戰(zhàn)的身份。
還應(yīng)該注意的是,一個(gè)敵對方可以自適應(yīng)性或非自適應(yīng)性地選取其對象的身份。自適應(yīng)地選取其對象的敵對方將首先進(jìn)行亂序查詢和抽取查詢,并接著根據(jù)這些查詢的結(jié)果選取它的目標(biāo)。這樣的敵對方在開始攻擊時(shí)不會有特定的目標(biāo)。而是,只要它能破解某人,該敵對方就是成功的。另一方面,一個(gè)非自適應(yīng)的敵對方不會根據(jù)亂序查詢和抽取查詢的結(jié)果來選取它的目標(biāo)。例如,這樣的敵對方會以一個(gè)私敵為目標(biāo)。該敵對方仍會進(jìn)行亂序查詢和抽取查詢,但是它的目標(biāo)選擇是嚴(yán)格根據(jù)目標(biāo)身份的,而非根據(jù)查詢結(jié)果。顯而易見,針對自適應(yīng)目標(biāo)選取的敵對方的安全性是更強(qiáng)的,因此也是更加優(yōu)越可取的安全性概念。但是,對本發(fā)明中HIDE方案的安全性分析提到了兩種類型的安全性。
如果在以下的競賽中不存在對挑戰(zhàn)者具有不可忽略優(yōu)勢的受多項(xiàng)式限制的敵對方A,那么就稱HIDE方案對自適應(yīng)選取密文以及自適應(yīng)選取目標(biāo)的攻擊具有語義上的安全性。
設(shè)置挑戰(zhàn)者取得一個(gè)保密參數(shù)k并運(yùn)行根設(shè)置算法。它將得到的系統(tǒng)參數(shù)params提供給敵對方。它將根密鑰生成密文留給自己。
階段1敵對方提出查詢q1,...,qm,其中qi是下列查詢中的一種1.公共密鑰查詢(ID元組i)挑戰(zhàn)者對ID元組i運(yùn)行一個(gè)亂序算法,以獲得對應(yīng)于ID元組i的公共密鑰H(ID元組i)。
2.抽取查詢(ID元組i)挑戰(zhàn)者運(yùn)行抽取算法以生成對應(yīng)于ID元組i的私有密鑰di,并將di發(fā)送給敵對方。
3.解密查詢(ID元組i,Ci)挑戰(zhàn)者運(yùn)行抽取算法以生成對應(yīng)于ID元組i的私有密鑰di,利用di運(yùn)行解密算法以解密Ci,并將結(jié)果得到的明文發(fā)送給敵對方。
這些查詢可以自適應(yīng)地提出。另外,被查詢的ID元組i可以對應(yīng)于分級結(jié)構(gòu)任何一個(gè)級別上的位置。
挑戰(zhàn)一旦敵對方判定階段1已經(jīng)結(jié)束,它就會輸出兩個(gè)長度相等的明文M0,M1∈M,以及一個(gè)它希望挑戰(zhàn)的ID元組。唯一的限制在于,該ID元組以及它的前輩都不能出現(xiàn)在階段1中的任何私有密鑰抽取查詢中。挑戰(zhàn)者隨意選取一個(gè)隨機(jī)比特b∈{0,1},并設(shè)C=Encryption(params,ID元組,Mb)。它將C作為一次挑戰(zhàn)發(fā)送給敵對方。
階段2敵對方提出更多的查詢qm+1,...,qn,其中qi是下列查詢中的一種1.公共密鑰查詢(ID元組i)挑戰(zhàn)者像在階段1中那樣進(jìn)行回應(yīng)。
2.抽取查詢(ID元組i)挑戰(zhàn)者像在階段1中那樣進(jìn)行回應(yīng)。
3.解密查詢(C,ID元組i)挑戰(zhàn)者像在階段1中那樣進(jìn)行回應(yīng)。
階段2中的查詢受到如下限制,即挑戰(zhàn)者不能對與挑戰(zhàn)密文C相關(guān)的ID元組進(jìn)行抽取查詢,或是利用那個(gè)ID元組以及密文C進(jìn)行解密查詢。這一限制同樣適用于該ID元組的所有前輩。
猜測敵對方輸出一個(gè)猜測值b′∈{0,1}。如果b=b′,則敵對方贏得比賽。敵對方在攻擊本方案中所擁有的優(yōu)勢被定義為|Pr[b=b′]-1/2|。
在以下所述的競賽中,如果不存在擁有不可忽略優(yōu)勢的多項(xiàng)式時(shí)間敵對方,那么HIDE方案就被稱為單向加密方案。在該競賽中,敵對方A被給予一個(gè)隨機(jī)公共密鑰Kpub和一個(gè)加密文本C,并輸出一個(gè)對明文的猜測值,所述的加密文本C是利用Kpub對隨機(jī)消息M進(jìn)行加密得到的。如果ε是A輸出M的概率,那么就稱所述的敵對方對本方案具有優(yōu)勢ε。所述的競賽如下進(jìn)行設(shè)置挑戰(zhàn)者取得一個(gè)保密參數(shù)k并運(yùn)行根設(shè)置算法。它將得到的系統(tǒng)參數(shù)params提供給敵對方。它將根密鑰生成密文留給自己。
階段1敵對方就如在上述選定密文安全性分析的階段1中那樣進(jìn)行公共密鑰和/或抽取查詢。
挑戰(zhàn)一旦敵對方判定階段1已經(jīng)結(jié)束,它就會輸出一個(gè)它希望挑戰(zhàn)的新ID元組ID。挑戰(zhàn)者隨意選取一個(gè)隨機(jī)的M∈M,并設(shè)C=Encryption(params,ID元組,M)。它將C作為一次挑戰(zhàn)發(fā)送給敵對方。
階段2敵對方對除了ID及其前輩以外的其他身份提出更多的公共密鑰查詢以及更多的抽取查詢,挑戰(zhàn)者則會如階段1中那樣作出回應(yīng)。
猜測敵對方輸出一個(gè)猜測值M′∈M。如果M=M′,則敵對方贏得比賽。敵對方在攻擊本方案中所擁有的優(yōu)勢被定義為Pr[M=M′]。
本發(fā)明的方案對于上述挑戰(zhàn)是安全可靠的。另外,本發(fā)明的HIDS方案針對現(xiàn)有的針對自適應(yīng)選取消息的偽造也是安全可靠的。即使在(自適應(yīng)地)獲取了目標(biāo)在敵對方所選取的消息上的簽名之后,敵對方也不能偽造出它的目標(biāo)在其以前并未簽署過的其他消息上的簽名。一個(gè)HIDS敵對方還將擁有對除了它的目標(biāo)及其前輩以外的其他實(shí)體進(jìn)行公共密鑰查詢和私有密鑰抽取查詢的能力,以及選取其目標(biāo)的能力。對于HIDE而言,敵對方的目標(biāo)選擇可以是自適應(yīng)的也可以是非自適應(yīng)的。
配對本發(fā)明的當(dāng)前優(yōu)選HIDE和HIDS方案都是基于配對的,例如與橢圓曲線或阿貝爾簇曲線相關(guān)的Weil或Tate配對。所述的方法也可以是基于雙線性Diffie-Hellman問題的。它們使用兩個(gè)循環(huán)群Γ1和Γ2,這兩個(gè)循環(huán)群最好具有同樣大小的素?cái)?shù)階q。第一群Γ1最好是橢圓曲線或阿貝爾簇曲線上的一群點(diǎn),并且Γ1上的群規(guī)則可以被寫成加性的。第二群Γ2最好是一個(gè)有限域的乘性子群,并且Γ2上的群規(guī)則可以被寫成乘性的。但是,也可以使用其他類型的群作為符合本發(fā)明的Γ1和Γ2。
所述的方法還利用了第一群Γ1的生成器P0。另外,還提供了一個(gè)配對或函數(shù)êΓ1×Γ1→Γ2,用來將第一群Γ1的兩個(gè)元素映射成第二群Γ2的一個(gè)元素。函數(shù)ê最好滿足三個(gè)條件。首先,函數(shù)ê最好是雙線性的,如果Q和R都在Γ1中,且a和b都是整數(shù),那么ê(aQ,bR)=ê(Q,R)ab。第二,函數(shù)ê最好是非退化的,從而使得該映射不會將Γ1×Γ1中的所有配對轉(zhuǎn)變?yōu)棣?中的身份。第三,函數(shù)ê最好是可以高效計(jì)算的。滿足這三個(gè)條件的函數(shù)ê被認(rèn)為是可行的。
函數(shù)ê最好還是對稱的,從而對所有的Q,R∈Γ1都有ê(Q,R)=ê(R,Q)。然而,對稱性直接來自于雙線性以及Γ1是循環(huán)群這樣一個(gè)事實(shí)??筛鶕?jù)現(xiàn)有技術(shù)中已知的方法來修改與超奇異橢圓曲線以及阿貝爾簇曲線相關(guān)的Weil和Tate配對,以創(chuàng)建這樣的雙線性映射。但是,即使將第一循環(huán)群Γ1的元素稱為“點(diǎn)”會暗示函數(shù)ê是一種經(jīng)過修改的Weil或Tate配對,但應(yīng)該注意的是,任何可行的配對ê都能夠發(fā)揮作用。
本發(fā)明中HIDE和HIDS方案的安全性主要是基于雙線性Diffie-Hellman問題的。雙線性Diffie-Hellman問題是在給定一個(gè)隨機(jī)選取的P∈Γ1、以及aP、bP和cP(對于未知的隨機(jī)選取的a,b,c∈Z/qZ)的情況下,求出ê(P,P)abc的問題。在Γ1中解決Diffie-Hellman問題就解決了雙線性Diffie-Hellman問題,這是因?yàn)楱?P,P)abc=ê(abP,cP)。類似地,在Γ2中解決Diffie-Hellman問題也就解決了雙線性Diffie-Hellman問題,因?yàn)槿绻鹓=ê(P,P),那么gabc=(gab)c,其中g(shù)ab=ê(aP,bP)且gc=ê(P,cP)。為了使雙線性Diffie-Hellman問題變得困難,就應(yīng)該對Γ1和Γ2進(jìn)行選取,使得在Γ1或Γ2中不存在能夠有效地解決Diffie-Hellman問題的已知算法。
如果一個(gè)隨機(jī)化算法IΓ采用了一個(gè)保密參數(shù)k>0、在k的多項(xiàng)式時(shí)間內(nèi)運(yùn)行、并輸出兩個(gè)群Γ1和Γ2的描述以及一個(gè)可行配對êΓ1×Γ1→Γ2的描述,其中所述的兩個(gè)群最好具有相同的素?cái)?shù)階q,那么該算法IΓ就是一個(gè)雙線性Diffie-Hellman生成器。如果IΓ是一個(gè)雙線性Diffie-Hellman參數(shù)生成器,那么一個(gè)算法B在解決雙線性Diffie-Hellman問題中所擁有的優(yōu)勢AdvIΓ(B)就被定義為,當(dāng)送入算法的輸入項(xiàng)為Γ1、Γ2、ê、P、aP、bP和cP時(shí),算法B輸出ê(P,P)abc的概率,其中(Γ1,Γ2,ê)是IΓ針對足夠大的保密系數(shù)k的輸出,P是Γ1的隨機(jī)生成器,a、b和c則是Z/qZ的隨機(jī)元素。雙線性Diffie-Hellman問題下的假設(shè)是,AdvIΓ(B)對于所有的有效算法B都是可忽略的。
HIDE方案現(xiàn)在參見附圖,圖1所示的流程圖根據(jù)本發(fā)明的一種當(dāng)前優(yōu)選實(shí)施例展示了一種編碼和解碼數(shù)字消息的方法。該方法在包括多個(gè)PKG的HIDE系統(tǒng)中執(zhí)行。所述的PKG中至少包括一個(gè)根PKG以及根PKG和接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG,其中n≥1。
在模塊102中,根PKG選取一個(gè)只有根PKG知道的根密鑰生成密文。該根密鑰生成密文可被用來為分級結(jié)構(gòu)中根PKG以下的PKG和/或用戶生成私有密鑰。然后,在模塊104中,根PKG根據(jù)根密鑰生成密文產(chǎn)生一個(gè)根密鑰生成參數(shù)。該根密鑰生成參數(shù)被用來掩飾根密鑰生成密文。該根密鑰生成參數(shù)可被透露給低級PKG,而又不會危及根密鑰生成密文。在模塊106中,低級PKG選取低級密鑰生成密文。與一個(gè)給定的低級PKG相關(guān)的低級密鑰生成密文可被用來為分級結(jié)構(gòu)中在該相關(guān)低級PKG之下的PKG和/或用戶生成私有密鑰。與根密鑰生成密文類似,每個(gè)低級密鑰生成密文僅對其相關(guān)的低級PKG已知。
在模塊108中,為n個(gè)低級PKG各自產(chǎn)生低級密鑰生成參數(shù)。每個(gè)低級密鑰生成參數(shù)的產(chǎn)生至少要利用其相關(guān)低級PKG的低級密鑰生成密文。與根密鑰生成參數(shù)類似,每個(gè)低級密鑰生成參數(shù)掩飾了與其相關(guān)的低級密鑰生成密文。
在模塊110中,發(fā)送方至少利用根密鑰生成參數(shù)以及與接收方相關(guān)的身份信息來編碼消息以形成一個(gè)密文。例如,可以只利用根密鑰生成參數(shù)以及接收方的身份來編碼所述的消息。或者,也可以利用低級密鑰生成參數(shù)中的一個(gè),就像在下文中將根據(jù)雙HIDE方案進(jìn)行更詳細(xì)說明的一樣。在模塊112中,一個(gè)低級PKG為接收方生成一個(gè)私有密鑰,使得該私有密鑰至少與根密鑰生成密文、與分級結(jié)構(gòu)中根PKG和接收方之間的n個(gè)低級PKG相關(guān)的n個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)、以及接收方的身份信息相關(guān)。例如,除了根密鑰生成密文和接收方的身份信息之外,接收方的私有密鑰最好還至少與向接收方發(fā)放私有密鑰的PKG的低級密鑰生成密文相關(guān)?;蛘?,接收方的私有密鑰也可以與所有n個(gè)前輩PKG的低級密鑰生成密文以及根密鑰生成密文相關(guān)。在模塊114中,接收方至少利用其私有密鑰來解碼密文并恢復(fù)消息。除了利用其私有密鑰來解碼以外,接收方最好還利用與分級結(jié)構(gòu)中根PKG和接收方之間的n個(gè)低級PKG相關(guān)的n個(gè)低級密鑰生成參數(shù)。
每個(gè)低級PKG都有一個(gè)密鑰生成密文,就像根PKG一樣。如上所述,低級PKG最好利用這個(gè)密文來為它的各個(gè)后代生成私有密鑰,就像根PKG那樣做。這樣,后代的私有密鑰就與低級PKG的密鑰生成密文相關(guān)。即使低級PKG為了限制密鑰托管(escrow)的目的而使用其密鑰生成密文的修改版本來隱藏那個(gè)密文,這一點(diǎn)也是成立的,正如下文中將要更完整地說明的那樣。同時(shí),低級PKG不必總是使用相同的密文來進(jìn)行每次私有密鑰提取,而是可以為PKG的每個(gè)后代隨機(jī)產(chǎn)生一個(gè)新的密鑰生成密文,從而為每個(gè)后代得到不同的密鑰生成參數(shù)。
由于一個(gè)低級PKG能夠?yàn)榻邮辗缴梢粋€(gè)私有密鑰(模塊112),因此根PKG不必自己生成所有的私有密鑰。另外,由于低級PKG使用它們自己的密鑰生成密文來為它們的后代產(chǎn)生私有密鑰,因此暴露一個(gè)低級密鑰生成密文只會對分級結(jié)構(gòu)造成有限的安全性損害。與其暴露分級結(jié)構(gòu)中所有的私有密鑰,不如讓一個(gè)低級PKG的一次違規(guī)行為只暴露該P(yáng)KG的私有密鑰以及利用那個(gè)PKG的密鑰生成密文產(chǎn)生的那些私有密鑰(即,作為被暴露PKG在分級結(jié)構(gòu)中的直系后代的那些用戶的私有密鑰)。
本實(shí)施例的另一個(gè)優(yōu)點(diǎn)在于,發(fā)送方不必處在分級結(jié)構(gòu)中即可向接收方發(fā)送一個(gè)編碼消息。該發(fā)送方只需知道與接收方相關(guān)的身份信息以及由根PKG生成的系統(tǒng)參數(shù)。但是,當(dāng)發(fā)送方處于分級結(jié)構(gòu)中時(shí),本發(fā)明的HIDE方案還有某些額外的優(yōu)點(diǎn)會體現(xiàn)出來。例如,當(dāng)發(fā)送方與接收方都處在分級結(jié)構(gòu)中時(shí),就可以通過利用雙方的身份來改善消息加密的效率。這類HIDE方案可以被稱為雙HIDE,因?yàn)榘l(fā)送方與接收方的身份都被用作加密及解密算法的輸入。現(xiàn)在將參照圖2和圖3來說明使用了雙HIDE方案的編碼與解碼方法。
雙HIDE圖2所示的流程圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種在發(fā)送方y(tǒng)和接收方z之間編碼及解碼數(shù)字消息的方法。圖3所示的框圖展示了一種典型的分級結(jié)構(gòu),在這種結(jié)構(gòu)中可以實(shí)現(xiàn)這種方法。與先前的實(shí)施例相似,該方法可在一個(gè)HIDE系統(tǒng)中實(shí)現(xiàn),所述的HIDE系統(tǒng)中至少包括一個(gè)根PKG 302,以及根PKG 302與接收方z 308之間的分級結(jié)構(gòu)中的n個(gè)低級PKG 304a,b,d,其中n≥1。該實(shí)施例中的發(fā)送方y(tǒng) 306必須也在分級結(jié)構(gòu)中,并且該分級結(jié)構(gòu)中還包括根PKG 302與發(fā)送方y(tǒng)306之間的m個(gè)低級PKG 304a,b,c,其中m≥1。在根PKG 302與發(fā)送方y(tǒng)306之間的m個(gè)PKG 304a,b,c,以及根PKG 302與接收方z 308之間的n個(gè)PKG 304a,b,d中,有l(wèi)個(gè)PKG304a,b是發(fā)送方y(tǒng) 306與接收方z 308的公共前輩,其中1≤l≤m,n。例如,在圖3中示出了這l個(gè)公共前輩PKG中的兩個(gè)(PKGy1/PKGz1304a和PKGyl/PKGzl304b)。
該實(shí)施例的方法在模塊202中開始,在該模塊中,根PKG 302選取一個(gè)只有根PKG 302知道的根密鑰生成密文。然后,在模塊204中,根PKG 302根據(jù)根密鑰生成密文產(chǎn)生一個(gè)根密鑰生成參數(shù)。在模塊206中,低級PKG 304a-d選取低級密鑰生成密文。與根密鑰生成密文類似,每個(gè)低級密鑰生成密文只對與其相關(guān)的低級PKG 304a-d已知。在模塊208中,為n個(gè)低級PKG 304a-d各自產(chǎn)生低級密鑰生成參數(shù)。每個(gè)低級密鑰生成參數(shù)的產(chǎn)生至少要用到對應(yīng)于其相關(guān)低級PKG 304a-d的低級密鑰生成密文。
在模塊210中,發(fā)送方的上代PKGym304c為發(fā)送方y(tǒng)306生成一個(gè)私有密鑰,使得該私有密鑰至少與根密鑰生成密文、與根PKG302和發(fā)送方y(tǒng) 306之間的m個(gè)低級PKG 304a,b,c相關(guān)的m個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)、以及發(fā)送方的身份信息相關(guān)。例如,除了根密鑰生成密文和發(fā)送方的身份信息以外,發(fā)送方的私有密鑰最好至少還與發(fā)送方的上代PKGym304c的低級密鑰生成密文相關(guān)?;蛘?,發(fā)送方的私有密鑰也可以與它所有m個(gè)直系前輩PKG的低級密鑰生成密文以及根密鑰生成密文相關(guān)。在模塊212中,接收方的上代PKGzn304d為接收方z生成一個(gè)私有密鑰,生成的方式與發(fā)送方的上代PKGym304c用來生成發(fā)送方私有密鑰的方式類似。
在模塊214中,發(fā)送方y(tǒng)編碼消息以形成一個(gè)密文,該過程至少要用到發(fā)送方的私有密鑰以及與根PKG 302和發(fā)送方y(tǒng) 306之間的(m-l+1)個(gè)PKG(即,PKGyl304b和PKGym304c)相關(guān)的低級密鑰生成參數(shù)中的一個(gè)或多個(gè),且所述的PKG位于發(fā)送方y(tǒng) 306和接收方z308的最低級公共前輩PKG(PKGyl/PKGzl304b)的級別或低于該級別。在對消息進(jìn)行編碼時(shí),發(fā)送方y(tǒng) 306最好不要用到與高于最低級公共前輩PKG(PKGyl/PKGzl304b)的(l-1)個(gè)PKG(即PKGy1304a)有關(guān)的任何低級密鑰生成參數(shù)。
然后,在模塊216中,接收方z 308解碼密文以恢復(fù)出所述的消息,該過程至少要用到接收方的私有密鑰以及與根PKG 302和接收方z 308之間的(n-l+1)個(gè)PKG(即,PKGzl304b和PKGzn304c)相關(guān)的低級密鑰生成參數(shù)中的一個(gè)或多個(gè),且所述的PKG位于發(fā)送方y(tǒng) 306和接收方z 308的最低級公共前輩PKG(PKGyl/PKGzl304b)的級別或低于該級別。在對消息進(jìn)行解碼時(shí),接收方z 308最好不要用到與高于最低級公共前輩PKG(PKGyl/PKGzl304b)的(l-1)個(gè)PKG(即PKGz1304a)有關(guān)的任何低級密鑰生成參數(shù)。
本發(fā)明的這種雙HIDE實(shí)施例提供了對消息進(jìn)行編碼和解碼的更為高效的方案,因?yàn)橹恍枋褂幂^少的密鑰生成參數(shù)。例如,普通HIDE方案中的解碼大約需要所有的n個(gè)密鑰生成參數(shù),但是在雙HIDE方案中的解碼只需要(n-l+1)個(gè)密鑰生成參數(shù)。雙HIDE方案要求發(fā)送方y(tǒng) 306在向接收方z 308發(fā)送一條編碼消息之前先獲得它的私有密鑰,這與只需獲得根PKG的公共系統(tǒng)參數(shù)相反。雙HIDE方案還使得發(fā)送方y(tǒng) 306和接收方z 308能夠限制密鑰托管的范圍,就如下文中將要更完整說明的那樣。這個(gè)共享的密文是除了它們最低級公共前輩PKGyl/PKGzl304b以外的第三方所不知道的。
基本HIDE圖4所示的流程圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種編碼和解碼一條數(shù)字消息M的方法,所述的數(shù)字消息在發(fā)送方y(tǒng)和接收方z之間傳遞。如圖3中所示,接收方z 308在分級結(jié)構(gòu)中比根PKG低n+1個(gè)級別,并且與ID元組(IDz1,...,IDz(n+1))相關(guān)聯(lián)。接收方的ID元組中包括與接收方有關(guān)的身份信息IDz(n+1),以及與其在分級結(jié)構(gòu)中的n個(gè)前輩低級PKG相關(guān)的身份信息IDzi。該方法在模塊402中開始,在該模塊中生成元素的第一與第二循環(huán)群Γ1和Γ2。在模塊404中,選取一個(gè)函數(shù)ê,使得該函數(shù)ê能夠由第一循環(huán)群Γ1的兩個(gè)元素生成第二循環(huán)群Γ2的一個(gè)元素。函數(shù)ê最好是一種可行的配對,如上所述。在模塊406中選取第一循環(huán)群Γ1的一個(gè)根生成器P0。在模塊408中,選取一個(gè)隨機(jī)根密鑰生成密文s0,該密文與根PKG 302相關(guān)且只有根PKG 302知道。s0最好是循環(huán)群Z/qZ的一個(gè)元素。在模塊410中產(chǎn)生一個(gè)根密鑰生成參數(shù)Q0=s0P0。Q0最好是第一循環(huán)群Γ1的一個(gè)元素。在模塊412中,選取一個(gè)第一函數(shù)H1,使得H1能夠由第一串二進(jìn)制數(shù)生成第一循環(huán)群Γ1的一個(gè)元素。在模塊414中選取一個(gè)第二函數(shù)H2,使得H2能夠由第二循環(huán)群Γ2的一個(gè)元素生成第二串二進(jìn)制數(shù)。模塊402至414的功能都是上述HIDE根設(shè)置算法的組成部分,并且最好都在大致相同的時(shí)刻完成。作為示例,比如那些在Boneh-Franklin中公開的函數(shù)就可以被用作H1和H2。
接下來的一系列模塊(模塊416至424)示出了作為低級設(shè)置算法的組成部分而執(zhí)行的功能。在模塊416中,為接收方的n個(gè)前輩低級PKG各生成一個(gè)公共元素Pzi。每個(gè)公共元素Pzi=H1(ID1,...,IDzi)最好都是第一循環(huán)群Γ1的一個(gè)元素,其中1≤i≤n。盡管是以單個(gè)模塊表示的,但是所有公共元素Pzi的產(chǎn)生需要進(jìn)行一段時(shí)間,而非一次全部完成。
為接收方的n個(gè)前輩低級PKG 304a,b,d各選取一個(gè)低級密鑰生成密文szi(模塊418)。該低級密鑰生成密文szi最好是循環(huán)群Z/qZ的元素,其中1≤i≤n,并且每個(gè)低級密鑰生成密文szi最好只有它相關(guān)的低級PKG知道。同樣,盡管是以單個(gè)模塊表示,但是所有低級密鑰生成密文szi的選取需要進(jìn)行一段時(shí)間,而非一次全部完成。
為發(fā)送方的n個(gè)前輩低級PKG各生成一個(gè)低級機(jī)密元素Szi(模塊420)。每個(gè)低級機(jī)密元素Szi=Sz(i-1)+sz(i-1)Pzi最好是第一循環(huán)群Γ1的一個(gè)元素,其中1≤i≤n。盡管與公共元素Pzi以及密文szi一樣都是以單個(gè)模塊表示的,但是所有機(jī)密元素Szi的產(chǎn)生也需要進(jìn)行一段時(shí)間,而非一次全部完成。為了這些重復(fù)的密鑰生成過程的緣故,可將S0定為Γ1的身份元素。
還要為接收方的n個(gè)前輩低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù)Qzi(模塊422)。每個(gè)密鑰生成參數(shù)Qzi=sziP0最好都是第一循環(huán)群Γ1的元素,其中1≤i≤n。同樣,盡管以單個(gè)模塊表示,但是所有密鑰生成參數(shù)Qzi的產(chǎn)生也需要進(jìn)行一段時(shí)間,而非一次全部完成。
隨后兩個(gè)模塊(模塊424和426)的功能是作為上述抽取算法的一部分而執(zhí)行的。在模塊424中生成與接收方z相關(guān)的接收方公共元素Pz(n+1)。該接收方公共元素,Pz(n+1)=H1(IDz1,...IDz(n+1)),最好是第一循環(huán)群Γ1的一個(gè)元素。然后在模塊426中生成與接收方z有關(guān)的接收方機(jī)密元素Sz(n+1)。該接收方機(jī)密元素,Sz(n+1)=Szn+sznPz(n+1)=Σi=1n+1sz(i-1)Pzi,]]>最好也是第一循環(huán)群Γ1的一個(gè)元素。
為方便起見,第一函數(shù)H1可被選為一種迭代函數(shù),從而可以按照例如H1(Pz(i-1),IDzi)而非H1(ID1,...,IDzi)來計(jì)算公共點(diǎn)Pi。
圖4中所示的最后兩個(gè)模塊(模塊428和430)代表了上述的加密與解密算法。在模塊428中,消息M被編碼以生成一個(gè)加密文本C。該編碼過程最好至少用到根密鑰生成參數(shù)Q0以及ID元組(IDz1,...,IDz(n+1))。然后在模塊430中解碼加密文本C以恢復(fù)消息M。該解碼過程最好至少用到低級密鑰生成參數(shù)Qzi以及接收方機(jī)密元素Sz(n+1),其中1≤i≤n。
圖4中所示的模塊不必完全順次出現(xiàn)。例如,一個(gè)知道接收方身份的發(fā)送方可以在接收方獲得私有密鑰之前對通信進(jìn)行加密。
現(xiàn)在將參照圖5和圖6,來詳細(xì)說明在對消息M及密文C進(jìn)行編碼和解碼中所提到的參數(shù)及元素的具體運(yùn)用。圖5所示的流程圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種編碼和解碼一條數(shù)字消息M的方法,所述的數(shù)字消息在發(fā)送方y(tǒng)和接收方z之間傳遞。在這個(gè)被稱為基本HIDE的方案中,根設(shè)置、低級設(shè)置以及抽取算法都與圖4中模塊402至426所示的實(shí)施例相同。圖5所示的流程圖展示了加密與解密算法,它在模塊528a中從選取一個(gè)隨機(jī)加密參數(shù)r開始。r最好是循環(huán)群Z/qZ中的一個(gè)整數(shù)。然后在模塊528b中利用公式C=[U0,U2,...,Un+1,V]生成加密文本C。該加密文本C中包括元素Ui=rPzi,其中i=0和2≤i≤n+1,這些元素與接收方在分級結(jié)構(gòu)中的位置有關(guān)。加密文本C的其他組成部分是加密形式的實(shí)際消息,V=MH2(gr),其中g(shù)=ê(Q0,Pz1)。元素g最好是第二循環(huán)群Γ2的成員。在消息被編碼之后,可以根據(jù)基本HIDE解密算法對其進(jìn)行解密,在該解密算法中利用公式M=V⊕H2(e^(U0,Sn+1)Πi=2n+1e^(Qi-1,Ui)),]]>從加密文本C中恢復(fù)出消息M(模塊530)。
全HIDE利用已知的方法來使得單向加密方案具有針對選定加密文本攻擊的安全性,可以將基本HIDE方案轉(zhuǎn)換為全HIDE方案,后者在隨機(jī)預(yù)言模型中具有選定加密文本安全性?,F(xiàn)在將參照圖6來說明一種具有選定密文安全性的全HIDE方案。
圖6所示的流程圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種編碼和解碼一條數(shù)字消息M的方法,所述的數(shù)字消息在發(fā)送方y(tǒng)和接收方z之間傳遞。在本發(fā)明的該實(shí)施例中,根設(shè)置、低級設(shè)置以及抽取算法都與參照圖4所述的實(shí)施例相同,只是該實(shí)施例的根設(shè)置算法需要兩個(gè)額外的函數(shù)。因此,圖6所示的流程圖從額外函數(shù)(模塊615a和615b)的選擇開始,并繼續(xù)進(jìn)行加密與解密算法(模塊628a至630d)。
通過選擇一個(gè)第三函數(shù)H3(模塊615a)和一個(gè)第四函數(shù)H4(模塊615b)來完成根設(shè)置算法。第三函數(shù)H3最好能夠由兩串二進(jìn)制數(shù)產(chǎn)生循環(huán)群Z/qZ的一個(gè)整數(shù)。第四函數(shù)H4最好能夠由另一個(gè)二進(jìn)制串產(chǎn)生一個(gè)二進(jìn)制串。
加密算法從模塊628a開始,該模塊示出了隨機(jī)二進(jìn)制串σ的選取。然后,該隨機(jī)二進(jìn)制串σ被用來生成一個(gè)隨機(jī)整數(shù)r=H3(σ,M,W),如模塊628b所示。其中W是實(shí)際消息M的對稱加密。該加密最好是利用對稱加密算法E生成的,并用H4(σ)作為加密密鑰。相應(yīng)的,W=EH4(s)(M).]]>在模塊628c中,生成加密文本C=[U0,U2,...,Un+1,V,W]。該密文C中包括元素Ui=rPzi,其中i=0和2≤i≤n+1,其與接收方在分級結(jié)構(gòu)中的位置有關(guān)。加密文本C的第二個(gè)組成部分是加密形式的隨機(jī)二進(jìn)制串σ,V=σH2(gr),其中g(shù)=ê(Q0,Pz1)。元素g最好是第二循環(huán)群Γ2的成員。加密文本C的第三個(gè)組成部分是W,如上所述,它是對稱加密形式的實(shí)際消息。
解密算法從模塊630a開始,該模塊示出了隨機(jī)二進(jìn)制串σ的恢復(fù)。隨機(jī)二進(jìn)制串σ是利用公式s=V⊕H2(e^(U0,Sn+1)Πi=2n+1e^(Qi-1,Ui))]]>恢復(fù)的。然后利用公式M=EH4(s)-1(W)]]>從密文C中恢復(fù)出消息M(模塊630b)??蓪用芪谋具M(jìn)行檢查,以檢驗(yàn)內(nèi)部一致性。例如,可以生成一個(gè)實(shí)驗(yàn)性的隨機(jī)整數(shù)r'=H3(σ,M,W),如模塊630c中所示。然后,就可以在模塊630d中利用該實(shí)驗(yàn)性的隨機(jī)整數(shù)r′來檢驗(yàn)U0=r′P0及Ui=r′Pzi,其中2≤i≤n+1。如果成立,則可認(rèn)為加密文本C是真實(shí)的。
雙基本HIDE與雙全HIDE
參照圖2和圖3所述的雙HIDE概念可被應(yīng)用于基本HIDE和全HIDE方案。當(dāng)發(fā)送方與接收方都處在分級結(jié)構(gòu)中時(shí),如圖3所示,雙HIDE就能令它們提高它們的加密通信的效率與安全性。對基本HIDE和全HIDE方案應(yīng)用雙HIDE需要決定附加信息,這些信息大多是通過上述的低級設(shè)置算法決定的。例如,必須為發(fā)送方的m個(gè)前輩低級PKG決定公共元素Pyi、低級密鑰生成密文syi、低級機(jī)密元素Syi以及低級密鑰生成參數(shù)Qyi。但是要注意,對于作為發(fā)送方y(tǒng)和接收方z的公共前輩的低級PKG來說,這些參數(shù)最好相同,以便對發(fā)送方y(tǒng)和接收方z進(jìn)行分析(也就是說,對于所有的i≤l最好有Pyi=Pzi,syi=szi,Syi=Szi以及Qyi=Qzi)。雙HIDE還需要為發(fā)送方?jīng)Q定一個(gè)發(fā)送方公共元素Py(m+1)和一個(gè)發(fā)送方機(jī)密元素Sy(m+1),使用的方法與上述為接收方?jīng)Q定這些參數(shù)時(shí)所用的方法相同。
有了這些附加參數(shù),就可以根據(jù)雙HIDE原理對消息M進(jìn)行編碼以生成一個(gè)加密文本C,編碼的過程要利用低級密鑰生成參數(shù)Qyi(其中i≥l)以及發(fā)送方機(jī)密元素Sy(m+1),但是不會用到i<l的低級密鑰生成參數(shù)Qyi。類似地,對加密文本C解碼以恢復(fù)消息M時(shí)要利用低級密鑰生成參數(shù)Qyi(其中i≥l)以及接收方機(jī)密元素Sz(n+1),但是不會用到i<l的低級密鑰生成參數(shù)Qzi。
例如,在基本HIDE方案中(圖4與圖5),雙HIDE的應(yīng)用改變了消息M的編碼以生成一個(gè)密文C=[U0,Ul+1,...,Un+1,V],其中對于i=0和l+1≤i≤n+1,有Ui=rPzi,其中V=M⊕H2(gylr),]]>并且其中g(shù)yl=e^(P0,Sy(m+1))Πi=l+1m+1e^(Qy(i-1),Pyi).]]>Ui因子的計(jì)算與以前相同,但是只需計(jì)算其中的少部分。然而,雙基本HIDE要求發(fā)送方y(tǒng)使用多于上述生成g所必需的密鑰生成參數(shù)Qyi來生成gyl。這是因?yàn)榘l(fā)送方的身份被包含到加密算法中了。解密算法的效率提高更為驚人。消息M是利用M=V⊕H2(e^(U0,Sz(n+1))Πi=l+1n+1e^(Qz(i-1),Uzi))]]>恢復(fù)的。同樣,還是只需要較少的Ui參數(shù)。類似地,接收方需要用于雙HIDE的密鑰生成參數(shù)Qzi比其他情況下所必需的要少。
全HIDE也可以被修改以創(chuàng)建一種雙全HIDE方案。加密算法中加密文本C的生成被修改為C=[u0,Ul+1,...,Un+1,V,W],其中對于i=0和l+1≤i≤n+1,有Ui=rPzi。參數(shù)W和r仍然以同樣的方法生成,W=EH4(s)(M),]]>并且V=σ⊕H2(gylr)]]>中的參數(shù)gyl=e^(P0,Sy(m+1))Πi=l+1m+1e^(Qy(i-1),Pyi).]]>在雙全HIDE方案中,解密算法也被修改。隨機(jī)二進(jìn)制串σ是利用σ=V⊕H2(e^(U0,Sz(n+1))Πi=l+1n+1e^(Qz(i-1),Uzi))]]>恢復(fù)的。另外,消息M的恢復(fù)不變。
盡管已經(jīng)用PKGl304b作為發(fā)送方y(tǒng)與接收方z的最低公共前輩PKG說明了這些雙HIDE方案,但是PKGl304b可以是任意的公共前輩PKG。加密與解密算法是相同的。但是為了獲得最高的效率,PKGl304b最好是最低公共前輩PKG。
除了效率的提高以外,本發(fā)明的雙HIDE方案還通過限制密鑰托管提供了更高的安全性。在上述的基本HIDE和全HIDE方案中,接收方的所有直系前輩PKG都能解密發(fā)給接收方的消息。但是,由于雙HIDE方案加入了PKGl-1(PKGl的直接上代)的密鑰生成密文,該密文對于PKGl-1以上的公共前輩PKG是未知的,因此那些公共前輩PKG就不能解密發(fā)送方y(tǒng)與接收方z之間的消息。
密鑰托管可被進(jìn)一步限制,從而即使是PKGl的直接上代也不能解密發(fā)送方y(tǒng)與接收方z之間的消息。這一點(diǎn)可以通過在為發(fā)送方y(tǒng)和接收方z生成私有密鑰(或是為PKGl的后代同時(shí)又是發(fā)送方y(tǒng)與接收方z的前輩的PKG生成私有密鑰)的過程中隱藏PKGl的私有密鑰來實(shí)現(xiàn)。例如,對于某些隨機(jī)的b∈Z/qZ,PKGl304b可以通過設(shè)置S′l=Sl+bPl和Q′l-1=Ql-1+bP0而輕易地改變其私有密鑰。新的私有密鑰S′l同樣有效,但是卻不為PKGl的直接上代所知。因此,PKGl以上的PKG都不能對加密發(fā)送給接收方z的消息進(jìn)行解碼。更具體地說,只有接收方z在PKGl的域內(nèi)的前輩才能夠解密發(fā)送給接收方z的消息。
當(dāng)PKGl304b通過設(shè)置S′lSl+bPl和Q′l-1=Ql-1+bP0來改變其私有密鑰時(shí),新的私有密鑰仍然與PKGl-1的密鑰生成密文sl-1相關(guān),因?yàn)樾碌乃接忻荑€是從一個(gè)由PKGl-1利用sl-1生成的私有密鑰推得的。一般而言,在本文所討論的所有方案中,一個(gè)用戶或PKG可以通過選取bi的值(其中1≤i≤n)并設(shè)置S′z(n+1):=Sz(n+1)+Σi=1nbiPz(i+1)]]>和Q'zi=Qzi+biP0(其中1≤i ≤n),來改變它自己的機(jī)密元素Sz(n+1)和密鑰生成參數(shù)Qzi(其中1≤i≤n)。然而,為了本發(fā)明的目的,這種新的私有密鑰仍然被認(rèn)為與原始的私有密鑰有關(guān),從而也和密鑰生成密文szi的初始值有關(guān)。
具有更高效的加密解密技術(shù)的雙HIDE方案在上述的雙HIDE方案中,可以將加密器必須計(jì)算的配對值的數(shù)量減少一個(gè),而又不會提高解密器必須計(jì)算的配對值的數(shù)量。例如,上述的雙基本HIDE加密算法可以被修改,從而密文C=[P0,r(Py(l+1)-Pz(l+1)),rPz(l+2),K,rPz(n+1),M⊕H2(gy(l+1)r)],]]>其中g(shù)y(l+1)=e^(P0,Sy(n+1))Πi=l+2me^(Qy(i-1),Pyi)=e^(P0,Sy(l+1)).]]>如果密文被表示為C=[U0,Ul+1,K,Un+1,V],那么就可以利用M=V⊕H2[e^(U0,Sz(n+1))e^(Ul+1,Qzl)Πi=l+2ne^(Qz(i-1),Ui)]]]>來對其進(jìn)行解密。
同樣地,也可以將解密器必須計(jì)算的配對值的數(shù)量減少一個(gè),而又不會提高加密器必須計(jì)算的值的數(shù)量。例如,雙基本HIDE加密算法可以被修改,從而密文C=[P0,rPy(l+2),K,rPy(n),M⊕H2(gz(l+1)r)],]]>其中g(shù)z(l+1)=e^(P0,Sy(m+1))e^(Qyl,(Pz(l+1)-Py(l+1)))Πi=l+2me^(Qy(l-1),pyi)=e^(P0,Sz(l+1)).]]>如果密文被表示為C=[U0,Ul+2,K,Un,V],那么就可以利用M=V⊕H2[e^(U0,Sz(n+1))Πi=l+2ne^(Qz(i-1),Ui)]]]>來對其進(jìn)行解密。
經(jīng)過認(rèn)證的低級根PKG可以通過創(chuàng)建一個(gè)經(jīng)過認(rèn)證的低級根PKG將上述雙HIDE方案的高效性擴(kuò)展到位于分級結(jié)構(gòu)之外的消息發(fā)送方。要“認(rèn)證”低級PKG,根PKG可以提出一個(gè)附加參數(shù),比如一個(gè)隨機(jī)消息M′。然后,低級PKG“簽署”M′,生成簽名Sig=Szl+szlPM′,其中Sl是低級PKG的私有密鑰,sl則是其低級密鑰生成密文。低級PKG還會公布對應(yīng)于1≤i≤t的Qi。
利用經(jīng)過認(rèn)證的低級根PKG,位于分級結(jié)構(gòu)之外的發(fā)送方無需計(jì)算接收方所有n個(gè)前輩PKG的公共元素Pzi即可向接收方z發(fā)送加密消息。發(fā)送方可以利用對應(yīng)于低級認(rèn)證根PKG的參數(shù)更高效地加密消息。具體地說,發(fā)送方計(jì)算Pzi=H1(ID1,...,IDzi)∈Γ1,其中l(wèi)+1≤i≤n+1。然后發(fā)送方選取一個(gè)隨機(jī)的r∈Z/qZ, 并生成加密文本C=[P0,rPz(l+1),...,rPz(n+1),M⊕H2(gzlr)],]]>其中g(shù)zl=e^(P0,Sig)e^(szlP0,PM′)=e^(P0,Szl).]]>假設(shè)接收到的密文C=[U0,Ul+1,...,Un+1,V],則接收方可以解密該密文以恢復(fù)消息M=V⊕H2[e^(U0,Sz(n+1))Πi=l+1n+1e^(Qz(i-1),Ui)],]]>其中Sz(n+1)是接收方的私有密鑰。
分布式PKG為了進(jìn)一步保護(hù)上述HIDE方案的密鑰生成密文,并使得這些方案對于不誠實(shí)的PKG具有魯棒性,可以利用已知的閾加密技術(shù)將密鑰生成密文和私有密鑰分布開。
更高效的加密技術(shù)通過將分級結(jié)構(gòu)中的最高兩級合并成單個(gè)根PKG,就可以提高用于上述HIDE方案的加密技術(shù)的效率。在那種情況下,g=ê(Q0,P1)被包含在系統(tǒng)參數(shù)中。這樣就省去了加密器計(jì)算該配對值的任務(wù)。然而,解密器必須計(jì)算一個(gè)額外的配對(這是它在樹的下一級的結(jié)果)。
HIDS方案現(xiàn)在考慮本發(fā)明的簽名方案或HIDS方案,圖7所示的流程圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種生成及驗(yàn)證一個(gè)數(shù)字簽名的方法。該方法在一個(gè)包含多個(gè)PKG的HIDS系統(tǒng)中實(shí)現(xiàn)。所述的PKG中至少包括一個(gè)根PKG以及根PKG與發(fā)送方或簽署人之間的分級結(jié)構(gòu)中的n個(gè)低級PKG,其中n≥1。在模塊702中,根PKG選取一個(gè)只有根PKG知道的根密鑰生成密文。該根密鑰生成密文可被用來為分級結(jié)構(gòu)中低于根PKG的PKG或用戶產(chǎn)生私有密鑰。然后在模塊704中,根PKG根據(jù)根密鑰生成密文產(chǎn)生一個(gè)根密鑰生成參數(shù)。在模塊706中,低級PKG選取低級密鑰生成密文。與一個(gè)給定的低級PKG相關(guān)的低級密鑰生成密文可被用來為分級結(jié)構(gòu)中低于該相關(guān)低級PKG的PKG或用戶生成私有密鑰。與根密鑰生成密文類似,每個(gè)低級密鑰生成密文只對其相關(guān)的低級PKG已知。在模塊708中,為n個(gè)低級PKG各自產(chǎn)生低級密鑰生成參數(shù)。每個(gè)低級密鑰生成參數(shù)的產(chǎn)生都至少要用到其相關(guān)低級PKG的低級密鑰生成密文。
在模塊710中,一個(gè)低級PKG為接收方生成一個(gè)私有密鑰,使得該私有密鑰至少與n個(gè)低級密鑰生成密文中的一個(gè)相關(guān)。例如,發(fā)送方的私有密鑰至少可以與向接收方發(fā)放私有密鑰的PKG的低級密鑰生成密文相關(guān)。但是,接收方的私有密鑰最好與它所有n個(gè)前輩PKG的低級密鑰生成密文以及根密鑰生成密文相關(guān)。在模塊712中,發(fā)送方至少利用其私有密鑰來簽署消息并生成數(shù)字簽名。然后在模塊714中,接收方或校驗(yàn)器至少利用低級密鑰生成參數(shù)之一來驗(yàn)證該數(shù)字簽名。例如,可以只利用根密鑰生成參數(shù)來驗(yàn)證該簽名。或者,也可以利用低級密鑰生成參數(shù)中的一個(gè)或多個(gè)。
圖8所示的流程圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種生成及驗(yàn)證一條數(shù)字消息M的數(shù)字簽名Sig的方法,所述的數(shù)字消息在發(fā)送方y(tǒng)和接收方z之間傳遞。如圖3所示,發(fā)送方y(tǒng) 306在分級結(jié)構(gòu)中比根PKG低m+1個(gè)級別,并且與ID元組(IDy1,...,IDy(m+1))相關(guān)聯(lián)。發(fā)送方的ID元組中包括與發(fā)送方相關(guān)的身份信息IDy(m+1),以及與它在分級結(jié)構(gòu)中的m個(gè)前輩低級PKG的每一個(gè)相關(guān)的身份信息IDyi。該方法從模塊802開始,生成元素的第一與第二循環(huán)群Γ1和Γ2。在模塊804中,選取一個(gè)函數(shù)ê,使得該函數(shù)ê能夠由第一循環(huán)群Γ1的兩個(gè)元素生成第二循環(huán)群Γ2的一個(gè)元素。函數(shù)ê最好是一種可行的配對,如上所述。在模塊806中選取第一循環(huán)群Γ1的一個(gè)根生成器P0。在模塊808中,選取一個(gè)隨機(jī)根密鑰生成密文s0,該密文與根PKG 302相關(guān)且只有根PKG 302知道。s0最好是循環(huán)群Z/qZ的一個(gè)元素。在模塊810中產(chǎn)生一個(gè)根密鑰生成參數(shù)Q0=s0P0。Q0最好是第一循環(huán)群Γ1的一個(gè)元素。在模塊812中,選取一個(gè)第一函數(shù)H1,使得H1能夠由第一串二進(jìn)制數(shù)生成第一循環(huán)群Γ1的一個(gè)元素。在模塊814中選取一個(gè)第二函數(shù)H3,使得H3能夠由第二循環(huán)群Γ2的一個(gè)元素生成第二串二進(jìn)制數(shù)。模塊802至814的功能都是上述HIDS根設(shè)置算法的組成部分,并且最好都在大致相同的時(shí)刻完成。作為示例,比如那些在Boneh-Franklin中公開的函數(shù)就可以被用作H1和H3。實(shí)際上,函數(shù)H1和H3可以是完全相同的函數(shù)。但是會有一個(gè)潛在的隱患。一名攻擊者可能嘗試讓簽署人簽署M=IDt,其中IDt代表了一個(gè)實(shí)際身份。在這種情況下,簽署人的簽名實(shí)際上會是一個(gè)私有密鑰,此后該密鑰可被用來解密消息及偽造簽名。但是,通過采用某些能夠區(qū)分簽名與私有密鑰提取的手段——比如一個(gè)比特前綴或?yàn)镠3采用不同的函數(shù),該隱患是可以避免的。
接下來的一系列模塊(模塊816至824)示出了作為低級設(shè)置算法的組成部分而執(zhí)行的功能。在模塊816中,為發(fā)送方的m個(gè)前輩低級PKG各生成一個(gè)公共元素Pyi。每個(gè)公共元素Pyi=H1(ID1,...,IDyi)最好都是第一循環(huán)群Γ1的一個(gè)元素,其中1≤i≤m。盡管是以單個(gè)模塊表示的,但是所有公共元素Pyi的產(chǎn)生需要進(jìn)行一段時(shí)間,而非一次全部完成。
為發(fā)送方的m個(gè)前輩低級PKG 304a,b,d各選取一個(gè)低級密鑰生成密文syi(模塊818)。該低級密鑰生成密文syi最好是循環(huán)群Z/qZ的元素,其中1≤i≤m,并且每個(gè)低級密鑰生成密文syi最好只有與它相關(guān)的低級PKG知道。同樣,盡管是以單個(gè)模塊表示,但是所有低級密鑰生成密文syi的選取需要進(jìn)行一段時(shí)間,而非一次全部完成。
為發(fā)送方的m個(gè)前輩低級PKG各生成一個(gè)低級機(jī)密元素Syi(模塊820)。每個(gè)低級機(jī)密元素Syi=Sy(i-1)+sy(i-l)Pyi最好是第一循環(huán)群Γ1的一個(gè)元素,其中1≤i≤m。盡管與公共元素Pyi以及密文syi一樣都是以單個(gè)模塊表示的,但是所有機(jī)密元素Syi的產(chǎn)生也需要進(jìn)行一段時(shí)間,而非一次全部完成。為了這些重復(fù)的密鑰生成過程的緣故,可將S0定為Γ1的身份元素。
還要為發(fā)送方的m個(gè)前輩低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù)Qyi(模塊822)。每個(gè)密鑰生成參數(shù)Qyi=syiP0最好都是第一循環(huán)群Γ1的元素,其中1≤i≤m。同樣,盡管以單個(gè)模塊表示,但是所有密鑰生成參數(shù)Qyi的產(chǎn)生也需要進(jìn)行一段時(shí)間,而非一次全部完成。
隨后兩個(gè)模塊(模塊824和826)的功能是作為上述抽取算法的一部分而執(zhí)行的。在模塊824中生成與發(fā)送方y(tǒng)相關(guān)的發(fā)送方公共元素Py(m+1)。該發(fā)送方公共元素,Py(m+1)=H1(IDy1,...IDy(m+1)),最好是第一循環(huán)群Γ1的一個(gè)元素。然后在模塊826中生成與發(fā)送方y(tǒng)有關(guān)的發(fā)送方機(jī)密元素Sy(m+1)。該發(fā)送方機(jī)密元素,Sy(m+1)=Sym+symPy(m+1)=Σi=1m+1sy(i-1)Pyi,]]>最好也是第一循環(huán)群Γ1的一個(gè)元素。
為方便起見,第一函數(shù)H1可被選為一種迭代函數(shù),從而可以按照例如H1(Py(i-1),IDyi)而非H1(ID1,...,IDyi)來計(jì)算公共點(diǎn)Pi。
圖8中所示的最后兩個(gè)模塊(模塊828和830)代表了上述的簽署與驗(yàn)證算法。在模塊828中,消息M被簽署以生成一個(gè)數(shù)字簽名Sig。該簽署過程最好至少用到發(fā)送方機(jī)密元素Sy(m+1)。然后在模塊830中驗(yàn)證數(shù)字簽名Sig。該驗(yàn)證過程最好至少用到根密鑰生成參數(shù)Q0以及低級密鑰生成參數(shù)Qyi?,F(xiàn)在將參照圖9來說明這些參數(shù)和元素在簽署消息M以及驗(yàn)證數(shù)字簽名Sig時(shí)的具體用法。
圖9所示的流程圖根據(jù)本發(fā)明的另一個(gè)當(dāng)前優(yōu)選實(shí)施例展示了一種生成及驗(yàn)證一條數(shù)字消息M的數(shù)字簽名Sig的方法,所述的數(shù)字消息在發(fā)送方y(tǒng)和接收方z之間傳遞。在該方案中,根設(shè)置、低級設(shè)置以及抽取算法都與圖8中模塊802至826所示的實(shí)施例相同。因此,圖9所示的流程圖在模塊927a中從選取一個(gè)發(fā)送方密鑰生成密文sy(m+1)開始,該密文只有發(fā)送方y(tǒng)知道。在模塊927b中,利用公式Qy(m+1)=sy(m+1)P0產(chǎn)生一個(gè)與發(fā)送方相關(guān)聯(lián)的發(fā)送方密鑰生成參數(shù)Qy(m+1)。然后,簽署算法從發(fā)送方在模塊928a中生成一個(gè)消息元素PM=H3(IDy1,...,IDy(m+1),M)。該消息元素PM最好是第一循環(huán)群Γ1的一個(gè)成員。在模塊928b中利用方程Sig=Sy(m+1)+sy(m+1)PM生成數(shù)字簽名Sig本身。接收方通過檢驗(yàn)方程e^(P0,Sig)e^(Qy(m+1),PM)Πi=2m+1e^(Qy(i-1),Pyi)=e^(Q0,P1)]]>是否滿足來驗(yàn)證數(shù)字簽名Sig。
本文參照本發(fā)明的優(yōu)選實(shí)施例以及圖示實(shí)例對本發(fā)明進(jìn)行了詳細(xì)的說明,但是應(yīng)該明白,在本發(fā)明的思想與范圍內(nèi)可以實(shí)現(xiàn)各種變化與改進(jìn)。
權(quán)利要求
1.一種在發(fā)送方與接收方之間編碼和解碼數(shù)字消息的方法,其中所述的接收方在一個(gè)分級系統(tǒng)中比一個(gè)根PKG低n+1個(gè)級別,所述的系統(tǒng)中包括多個(gè)PKG,這多個(gè)PKG中至少包括一個(gè)根PKG以及在所述根PKG與接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG,其中n≥1,該方法包括選取一個(gè)僅為根PKG所知的根密鑰生成密文;根據(jù)所述的根密鑰生成密文產(chǎn)生一個(gè)根密鑰生成參數(shù);為n個(gè)低級PKG各選取一個(gè)低級密鑰生成密文,其中每個(gè)低級密鑰生成密文僅對其相關(guān)的低級PKG已知;為n個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù),其中每個(gè)低級密鑰生成參數(shù)的產(chǎn)生至少要利用其相關(guān)低級PKG的低級密鑰生成密文;至少利用根密鑰生成參數(shù)和接收方身份信息來對所述的消息進(jìn)行編碼以形成加密文本;生成一個(gè)接收方私有密鑰,使得該接收方私有密鑰至少與根密鑰生成密文、根PKG和接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG相關(guān)的n個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)、以及接收方身份信息有關(guān);以及至少利用接收方私有密鑰來解密所述的加密文本以恢復(fù)所述的消息。
2.根據(jù)權(quán)利要求1所述的編碼與解碼消息的方法,其中所述的接收方身份信息由一個(gè)接收方ID元組(IDz1,...,IDz(n+1))構(gòu)成,其中包括與接收方相關(guān)的身份信息IDz(n+1)以及與根PKG和接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG相關(guān)的身份信息IDzi。
3.根據(jù)權(quán)利要求1所述的編碼與解碼消息的方法,其中所述的接收方私有密鑰與所有的n個(gè)低級密鑰生成密文有關(guān),所述的低級密鑰生成密文與根PKG和接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG相關(guān)。
4.根據(jù)權(quán)利要求1所述的編碼與解碼消息的方法,其中所述的消息編碼還包括保護(hù)加密文本免受選定加密文本攻擊。
5.根據(jù)權(quán)利要求4所述的編碼與解碼消息的方法,其中所述的消息編碼還包括根據(jù)一種對稱加密方案加密消息,以形成一個(gè)對稱加密;以及根據(jù)一種單向加密方案加密所述對稱加密,以形成加密文本;并且其中所述的加密文本解密還包括根據(jù)所述單向加密方案解密加密文本以恢復(fù)所述對稱加密;以及根據(jù)所述對稱加密方案解密所述對稱加密以恢復(fù)消息。
6.一種在一個(gè)系統(tǒng)中的發(fā)送方與接收方之間編碼和解碼消息的方法,所述的系統(tǒng)中包括多個(gè)PKG,這多個(gè)PKG中包括根PKG與發(fā)送方之間的分級結(jié)構(gòu)中的m個(gè)低級PKG,其中m≥1,以及根PKG與接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG,其中n≥1,所述分級結(jié)構(gòu)中的多個(gè)PKG中至少有l(wèi)個(gè)是發(fā)送方與接收方共同的前輩PKG,其中l(wèi)≥1,其中的PKGl是發(fā)送方與接收方共同的前輩PKG,該方法還包括選取一個(gè)僅為根PKG所知的根密鑰生成密文;根據(jù)所述的根密鑰生成密文產(chǎn)生一個(gè)根密鑰生成參數(shù);為m和n個(gè)低級PKG各選取一個(gè)低級密鑰生成密文,其中每個(gè)低級密鑰生成密文僅對其相關(guān)的低級PKG已知;為m和n個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù),其中每個(gè)低級密鑰生成參數(shù)的產(chǎn)生至少要利用其相關(guān)低級PKG的低級密鑰生成密文;生成一個(gè)發(fā)送方私有密鑰,使得該發(fā)送方私有密鑰至少與發(fā)送方身份信息、根密鑰生成密文、以及在根PKG和發(fā)送方之間的分級結(jié)構(gòu)中的m個(gè)低級PKG相關(guān)的m個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)有關(guān);生成一個(gè)接收方私有密鑰,使得該接收方私有密鑰至少與接收方身份信息、根密鑰生成密文、以及在根PKG和接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG相關(guān)的n個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)有關(guān);至少利用接收方身份信息、發(fā)送方私有密鑰、以及和位于或低于公共前輩PKGl級別的(m-l+1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的0個(gè)或多個(gè),來對所述的消息進(jìn)行編碼,但是不使用和高于公共前輩PKGl的(l-1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的任何一個(gè);以及至少利用接收方私有密鑰以及和位于或低于最低公共前輩PKGl級別的(n-l+1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的0個(gè)或多個(gè),來對所述的消息進(jìn)行解碼,但是不能使用和高于公共前輩PKGl的(l-1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的任何一個(gè)。
7.根據(jù)權(quán)利要求6所述的編碼與解碼消息的方法其中所述的消息編碼還包括利用與根PKG和發(fā)送方之間位于或低于公共前輩PKGl級別的(m-l+1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的一個(gè)或多個(gè);并且其中所述的消息解碼還包括利用與根PKG和接收方之間位于或低于最低公共前輩PKGl級別的(n-l+1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的一個(gè)或多個(gè)。
8.根據(jù)權(quán)利要求6所述的編碼與解碼消息的方法其中所述的消息編碼還包括利用與根PKG和發(fā)送方之間位于或低于公共前輩PKGl級別的(m-l+1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的一個(gè)或多個(gè);并且其中所述的消息解碼還包括利用與根PKG和接收方之間位于或低于最低公共前輩PKGl級別的(n-l+1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的零個(gè)。
9.根據(jù)權(quán)利要求6所述的編碼與解碼消息的方法其中所述的消息編碼還包括利用與根PKG和發(fā)送方之間位于或低于公共前輩PKGl級別的(m-l+1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的零個(gè);并且其中所述的消息解碼還包括利用與根PKG和接收方之間位于或低于最低公共前輩PKGl級別的(n-l+1)個(gè)PKG相關(guān)的低級密鑰生成參數(shù)中的一個(gè)或多個(gè)。
10.根據(jù)權(quán)利要求6所述的編碼與解碼消息的方法,其中要利用與根PKG和發(fā)送方之間位于或低于公共前輩PKGl級別的(m-l+1)個(gè)PKG相關(guān)的所有低級密鑰生成參數(shù)來對消息進(jìn)行編碼。
11.根據(jù)權(quán)利要求6所述的編碼與解碼消息的方法,其中要利用與根PKG和接收方之間位于或低于公共前輩PKGl級別的(n-l+1)個(gè)PKG相關(guān)的所有低級密鑰生成參數(shù)來對消息進(jìn)行解碼。
12.一種在發(fā)送方與接收方之間產(chǎn)生及驗(yàn)證一條消息的數(shù)字簽名的方法,其中所述的發(fā)送方在分級系統(tǒng)中比根PKG低m+1個(gè)級別,所述的系統(tǒng)中包括多個(gè)PKG,這多個(gè)PKG中至少包括一個(gè)根PKG以及根PKG與發(fā)送方之間的分級結(jié)構(gòu)中的m個(gè)低級PKG,其中m≥1,該方法包括選取一個(gè)僅為根PKG所知的根密鑰生成密文;根據(jù)所述的根密鑰生成密文產(chǎn)生一個(gè)根密鑰生成參數(shù);為m個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成密文,其中每個(gè)低級密鑰生成密文僅對其相關(guān)的低級PKG已知;為m個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù),其中每個(gè)低級密鑰生成參數(shù)的產(chǎn)生至少要利用其相關(guān)低級PKG的低級密鑰生成密文;為發(fā)送方生成一個(gè)發(fā)送方私有密鑰,使得該發(fā)送方私有密鑰至少與發(fā)送方身份信息、根密鑰生成密文、以及根PKG和發(fā)送方之間的分級結(jié)構(gòu)中的m個(gè)低級PKG相關(guān)的m個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)有關(guān);至少利用發(fā)送方私有密鑰簽署所述的消息以生成數(shù)字簽名;以及至少利用根密鑰生成參數(shù)和發(fā)送方身份信息驗(yàn)證所述的數(shù)字簽名。
13.根據(jù)權(quán)利要求12所述的產(chǎn)生及驗(yàn)證數(shù)字簽名的方法,其中還利用一個(gè)或多個(gè)低級密鑰生成參數(shù)來驗(yàn)證數(shù)字簽名。
14.一種為一個(gè)系統(tǒng)中的一個(gè)實(shí)體生成一個(gè)私有密鑰的方法,所述的系統(tǒng)中包括多個(gè)PKG,這多個(gè)PKG中至少包括一個(gè)根PKG以及根PKG與所述實(shí)體之間的分級結(jié)構(gòu)中的n個(gè)低級PKG,其中n≥1,該方法包括生成一個(gè)僅為根PKG所知的根密鑰生成密文;根據(jù)所述的根密鑰生成密文產(chǎn)生一個(gè)根密鑰生成參數(shù);為n個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成密文,其中每個(gè)低級密鑰生成密文僅對其相關(guān)的低級PKG已知;為n個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù),其中每個(gè)低級密鑰生成參數(shù)的產(chǎn)生至少要利用其相關(guān)低級PKG的低級密鑰生成密文;為所述實(shí)體生成一個(gè)私有密鑰,使得該私有密鑰至少與和實(shí)體相關(guān)的身份信息、根密鑰生成密文、以及根PKG和所述實(shí)體之間的分級結(jié)構(gòu)中的n個(gè)低級PKG相關(guān)的n個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)有關(guān);以及將所述的私有密鑰提供給所述的實(shí)體。
15.一種為一個(gè)系統(tǒng)中的一個(gè)接收方z生成一個(gè)私有密鑰的方法,所述的接收方z在分級結(jié)構(gòu)中比根PKG低n+1個(gè)級別,并且所述的接收方與一個(gè)接收方ID元組(IDz1,...,IDz(n+1))相關(guān)聯(lián),該ID元組中包括與接收方相關(guān)的身份信息IDz(n+1)以及與根PKG和接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG相關(guān)的身份信息IDzi,該方法包括生成元素的第一循環(huán)群Γ1與元素的第二循環(huán)群Γ2;選取一個(gè)函數(shù)ê,該函數(shù)能夠由第一循環(huán)群Γ1的兩個(gè)元素生成第二循環(huán)群Γ2的一個(gè)元素;選取第一循環(huán)群Γ1的一個(gè)根生成器P0;選取一個(gè)隨機(jī)根密鑰生成密文s0,該密文與根PKG相關(guān)且只為根PKG所知;產(chǎn)生一個(gè)根密鑰生成參數(shù)Q0=s0P0;選取一個(gè)函數(shù)H1,該函數(shù)能夠由第一串二進(jìn)制數(shù)生成第一循環(huán)群Γ1的一個(gè)元素;為n個(gè)低級PKG各生成一個(gè)公共元素Pzi,其中Pzi=H1(ID1,...,IDzi),1≤i≤n;為n個(gè)低級PKG各選取一個(gè)低級密鑰生成密文szi,其中各個(gè)低級密鑰生成密文szi只對其相關(guān)的低級PKG已知;為n個(gè)低級PKG各生成一個(gè)低級機(jī)密元素Szi,其中Szi=Sz(i-1)+sz(i-1)Pzi,1≤i≤n,其中sz0=s0,并且其中Sz0被定義為0;為n個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù)Qzi,其中Qzi=sziP0,1≤i≤n;生成與接收方相關(guān)的接收方公共元素Pz(n+1)=H1(IDz1,...IDz(n+1)),其中Pz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;以及生成與接收方相關(guān)的接收方私有密鑰Sz(n+1)=Szn+sznPz(n+1)=Σi=1n+1sz(i-1)Pzi.]]>
16.根據(jù)權(quán)利要求15所述的生成私有密鑰的方法,其中第一群Γ1和第二群Γ2具有相同的素?cái)?shù)階q。
17.根據(jù)權(quán)利要求15所述的生成私有密鑰的方法,其中所述的第一循環(huán)群Γ1是超奇異橢圓曲線或阿貝爾簇曲線上的點(diǎn)的加性群,第二循環(huán)群Γ2則是一個(gè)有限域的乘性子群。
18.根據(jù)權(quán)利要求15所述的生成私有密鑰的方法,其中函數(shù)ê是一種可行的配對。
19.根據(jù)權(quán)利要求15所述的生成私有密鑰的方法,其中s0是循環(huán)群Z/qZ的一個(gè)元素;Q0是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pzi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成密文szi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)機(jī)密元素Szi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qzi都是第一循環(huán)群Γ1的一個(gè)元素;接收方公共元素Pz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;并且接收方私有密鑰Sz(n+1)是第一循環(huán)群Γ1的一個(gè)元素。
20.一種編碼和解碼一條數(shù)字消息M的方法,所述的數(shù)字消息在發(fā)送方和接收方z之間傳遞,其中所述的接收方z在分級結(jié)構(gòu)中比根PKG低n+1個(gè)級別,并且所述的接收方與一個(gè)接收方ID元組(IDz1,...,IDz(n+1))相關(guān)聯(lián),該ID元組中包含與接收方相關(guān)聯(lián)的身份信息IDz(n+1)以及與根PKG和接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG各自相關(guān)的身份信息IDzi,該方法包括生成元素的第一循環(huán)群Γ1和元素的第二循環(huán)群Γ2;選取一個(gè)函數(shù)ê,該函數(shù)能夠由第一循環(huán)群Γ1的兩個(gè)元素生成第二循環(huán)群Γ2的一個(gè)元素;選取第一循環(huán)群Γ1的一個(gè)根生成器P0;選取一個(gè)隨機(jī)根密鑰生成密文s0,該密文與根PKG相關(guān)且只為根PKG所知;產(chǎn)生一個(gè)根密鑰生成參數(shù)Q0=s0P0;選取一個(gè)第一函數(shù)H1,該函數(shù)能夠由第一串二進(jìn)制數(shù)生成第一循環(huán)群Γ1的一個(gè)元素;選取一個(gè)第二函數(shù)H2,該函數(shù)能夠由第二循環(huán)群Γ2的一個(gè)元素生成第二串二進(jìn)制數(shù);為n個(gè)低級PKG各生成一個(gè)公共元素Pzi,其中Pzi=H1(ID1,...,IDzi),1≤i≤n;為n個(gè)低級PKG各選取一個(gè)低級密鑰生成密文szi,其中各個(gè)低級密鑰生成密文szi只對其相關(guān)的低級PKG已知;為n個(gè)低級PKG各生成一個(gè)低級機(jī)密元素Szi,其中Szi=Sz(i-1)+sz(i-1)Pzi,1≤i≤n,其中sz0=s0,并且其中Sz0被定義為0;為n個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù)Qzi,其中Qzi=sziP0,1≤i≤n;生成一個(gè)與接收方相關(guān)的接收方公共元素Pz(n+1)=H1(IDz1,...IDz(n+1));生成一個(gè)與接收方相關(guān)的接收方機(jī)密元素Sz(n+1)=Szn+sznPz(n+1)=Σi=1n+1sz(i-1)Pzi;]]>至少利用接收方ID元組(IDz1,...IDz(n+1))和根密鑰生成參數(shù)Q0對消息M編碼以生成一個(gè)加密文本C;以及至少利用接收方機(jī)密元素Sz(n+1)來解碼加密文本C以恢復(fù)消息M。
21.根據(jù)權(quán)利要求20所述的編碼和解碼數(shù)字消息M的方法,其中第一群Γ1和第二群Γ2具有相同的素?cái)?shù)階q。
22.根據(jù)權(quán)利要求20所述的編碼和解碼數(shù)字消息M的方法,其中所述的第一循環(huán)群Γ1是超奇異橢圓曲線或阿貝爾簇曲線上的點(diǎn)的加性群,第二循環(huán)群Γ2則是一個(gè)有限域的乘性子群。
23.根據(jù)權(quán)利要求20所述的編碼和解碼數(shù)字消息M的方法,其中函數(shù)ê是一種雙線性、非退化且可高效計(jì)算的配對。
24.根據(jù)權(quán)利要求20所述的編碼和解碼數(shù)字消息M的方法,其中s0是循環(huán)群Z/qZ的一個(gè)元素;Q0是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pzi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成密文szi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)機(jī)密元素Szi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qzi都是第一循環(huán)群Γ1的一個(gè)元素;接收方公共元素Pz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;并且接收方機(jī)密元素Sz(n+1)是第一循環(huán)群Γ1的一個(gè)元素。
25.根據(jù)權(quán)利要求20所述的編碼和解碼數(shù)字消息M的方法,其中編碼消息M還包括選取一個(gè)隨機(jī)參數(shù)r;并生成加密文本C=[U0,U2,...,Un+1,V],其中對于i=0和2≤i≤n+1有Ui=rPzi,其中V=MH2(gr),并且其中g(shù)=ê(Q0,Pz1);并且解碼加密文本C還包括利用M=V⊕H2(e^(U0,Sz(n+1))Πi=2n+1e^(Qi-1,Ui))]]>恢復(fù)消息M。
26.根據(jù)權(quán)利要求25所述的編碼和解碼數(shù)字消息M的方法,其中第一群Γ1和第二群Γ2具有相同的素?cái)?shù)階q。
27.根據(jù)權(quán)利要求25所述的編碼和解碼數(shù)字消息M的方法,其中所述的第一循環(huán)群Γ1是超奇異橢圓曲線或阿貝爾簇曲線上的點(diǎn)的加性群,第二循環(huán)群Γ2則是一個(gè)有限域的乘性子群。
28.根據(jù)權(quán)利要求25所述的編碼和解碼數(shù)字消息M的方法,其中函數(shù)ê是一種雙線性、非退化且可高效計(jì)算的配對。
29.根據(jù)權(quán)利要求25所述的編碼和解碼數(shù)字消息M的方法,其中s0是循環(huán)群Z/qZ的一個(gè)元素;Q0是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pzi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成密文szi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)機(jī)密元素Szi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qzi都是第一循環(huán)群Γ1的一個(gè)元素;接收方公共元素Pz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;接收方機(jī)密元素Sz(n+1)是第一循環(huán)群Γ2的一個(gè)元素;r是循環(huán)群Z/qZ的一個(gè)元素;并且g是第二循環(huán)群Γ2的一個(gè)元素。
30.根據(jù)權(quán)利要求20所述的編碼和解碼數(shù)字消息M的方法,還包括選取一個(gè)第三函數(shù)H3,該函數(shù)能夠由第三串二進(jìn)制數(shù)生成循環(huán)群Z/qZ的一個(gè)整數(shù);以及選取一個(gè)第四函數(shù)H4,該函數(shù)能夠由第五串二進(jìn)制數(shù)生成第四串二進(jìn)制數(shù);其中編碼消息M還包括選取一個(gè)隨機(jī)二進(jìn)制串σ,選取一個(gè)對稱加密方案E;生成一個(gè)隨機(jī)整數(shù)r=H3(σ,M,W),其中W=EH4(s)(M);]]>以及生成加密文本C=[U0,U2,...,Un+1,V,W],其中對于i=0和2≤i≤n+1有Ui=rPzi,其中V=σH2(gr),并且其中g(shù)=ê(Q0,Pz1);并且其中解碼加密文本C還包括利用σ=V⊕H2(e^(U0,Sz(n+1))Πi=2n+1e^(Qi-1,Ui))]]>恢復(fù)隨機(jī)二進(jìn)制串σ,并利用M=EH4(s)-1(W)]]>恢復(fù)消息M。
31.根據(jù)權(quán)利要求30所述的編碼和解碼數(shù)字消息M的方法,其中第一循環(huán)群Γ1和第二循環(huán)群Γ2具有相同的素?cái)?shù)階q。
32.根據(jù)權(quán)利要求30所述的編碼和解碼數(shù)字消息M的方法,其中所述的第一循環(huán)群Γ1是超奇異橢圓曲線或阿貝爾簇曲線上的點(diǎn)的加性群,第二循環(huán)群Γ2則是一個(gè)有限域的乘性子群。
33.根據(jù)權(quán)利要求30所述的編碼和解碼數(shù)字消息M的方法,其中函數(shù)ê是一種雙線性、非退化且可高效計(jì)算的配對。
34.根據(jù)權(quán)利要求30所述的編碼和解碼數(shù)字消息M的方法,還包括通過計(jì)算一個(gè)實(shí)驗(yàn)性的隨機(jī)整數(shù)r′=H3(σ,M,W)來檢驗(yàn)加密文本C的內(nèi)部一致性;以及對2≤i≤n+1檢驗(yàn)U0=r′P0和Ui=r′Pzi。
35.根據(jù)權(quán)利要求30所述的編碼和解碼數(shù)字消息M的方法,其中s0是循環(huán)群Z/qZ的一個(gè)元素;Q0是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pzi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成密文szi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)機(jī)密元素Szi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qzi都是第一循環(huán)群Γ1的一個(gè)元素;接收方公共元素Pz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;接收方機(jī)密元素Sz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;r是循環(huán)群Z/qZ的一個(gè)元素;并且g是第二循環(huán)群Γ2的一個(gè)元素。
36.一種在一個(gè)系統(tǒng)中的發(fā)送方y(tǒng)和接收方z之間編碼及解碼數(shù)字消息M的方法,所述的系統(tǒng)中包括多個(gè)PKG,這多個(gè)PKG中包括根PKG與發(fā)送方y(tǒng)之間的分級結(jié)構(gòu)中的m個(gè)低級PKG,其中m≥1,以及根PKG與接收方z之間的分級結(jié)構(gòu)中的n個(gè)低級PKG,其中n≥1,其中在所述分級結(jié)構(gòu)中至少有l(wèi)個(gè)PKG是發(fā)送方y(tǒng)和接收方z的公共前輩,其中l(wèi)≥1,其中PKGl是發(fā)送方與接收方的一個(gè)公共前輩PKG,其中發(fā)送方y(tǒng)與一個(gè)發(fā)送方ID元組(IDy1,...,IDy(m+1))相關(guān)聯(lián),該ID元組中包含與發(fā)送方有關(guān)的身份信息IDy(m+1)以及與根PKG和發(fā)送方y(tǒng)之間的分級結(jié)構(gòu)中的m個(gè)低級PKG相關(guān)的身份信息IDyi,并且其中接收方z與一個(gè)接收方ID元組(IDz1,...,IDz(n+1))相關(guān)聯(lián),該ID元組中包含與接收方有關(guān)的身份信息IDz(n+1)以及與根PKG和接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG相關(guān)的身份信息IDzi,該方法還包括生成元素的第一循環(huán)群Γ1和元素的第二循環(huán)群Γ2;選取一個(gè)函數(shù)ê,該函數(shù)能夠由第一循環(huán)群Γ1的兩個(gè)元素生成第二循環(huán)群Γ2的一個(gè)元素;選取第一循環(huán)群Γ1的一個(gè)根生成器P0;選取一個(gè)隨機(jī)根密鑰生成密文s0,該密文與根PKG相關(guān)且只為根PKG所知;產(chǎn)生一個(gè)根密鑰生成參數(shù)Q0=s0P0;選取一個(gè)第一函數(shù)H1,該函數(shù)能夠由第一串二進(jìn)制數(shù)生成第一循環(huán)群Γ1的一個(gè)元素;選取一個(gè)第二函數(shù)H2,該函數(shù)能夠由第二循環(huán)群Γ2的一個(gè)元素生成第二串二進(jìn)制數(shù);為m個(gè)低級PKG各生成一個(gè)公共元素Pyi,其中Pyi=H1(IDy1,...,IDyi),1≤i≤m,并且對于所有的i≤l有Pyi=Pzi;為n個(gè)低級PKG各生成一個(gè)公共元素Pzi,其中Pzi=H1(ID1,...,IDzi),1≤i≤n;為m個(gè)低級PKG各選取一個(gè)低級密鑰生成密文syi,其中對于所有的i≤l有syi=szi;為n個(gè)低級PKG各選取一個(gè)低級密鑰生成密文szi,其中各個(gè)低級密鑰生成密文szi只對其相關(guān)的低級PKG已知;為m個(gè)低級PKG各生成一個(gè)低級機(jī)密元素Syi,其中Syi=Sy(i-1)+sy(i-1)Pyi,1≤i≤m,并且對于所有的i≤l有Syi=Szi;為n個(gè)低級PKG各生成一個(gè)低級機(jī)密元素Szi,其中Szi=Sz(i-1)+sz(i-1)Pzi,1≤i≤n,其中sz0=s0,并且其中Sz0被定義為0;為m個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù)Qyi,其中Qyi=syiP0,1≤i≤m,并且其中對于所有的i≤l有Qyi=Qzi;為n個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù)Qzi,其中Qzi=sziP0,1≤i≤n;生成一個(gè)與發(fā)送方y(tǒng)相關(guān)的發(fā)送方公共元素Py(m+1)=H1(IDy1,...IDy(m+1));生成一個(gè)與接收方相關(guān)的接收方公共元素Pz(n+1)=H1(IDz1,...IDz(n+1));生成一個(gè)與發(fā)送方相關(guān)的發(fā)送方機(jī)密元素Sy(m+1)=Sym+symPy(m+1)=Σi=1m+1sy(i-1)Pyi;]]>生成一個(gè)與接收方相關(guān)的接收方機(jī)密元素Sz(n+1)=Szn+sznPz(n+1)=Σi=1n+1sz(i-1)Pzi;]]>至少利用對應(yīng)于l<i≤m的低級密鑰生成參數(shù)Qyi和發(fā)送方機(jī)密元素Sy(m+1)對消息M編碼以生成一個(gè)加密文本C,但不能使用對應(yīng)于i<l的低級密鑰生成參數(shù)Qyi;以及至少利用對應(yīng)于l<i≤n的低級密鑰生成參數(shù)Qzi和接收方機(jī)密元素Sz(n+1)對加密文本C解碼以恢復(fù)消息M,但不能使用對應(yīng)于i<l的低級密鑰生成參數(shù)Qzi。
37.根據(jù)權(quán)利要求36所述的編碼和解碼數(shù)字消息M的方法,其中編碼消息M還包括使用低級密鑰生成參數(shù)Qyl。
38.根據(jù)權(quán)利要求36所述的編碼和解碼數(shù)字消息M的方法,其中解碼消息M還包括使用低級密鑰生成參數(shù)Qzl。
39.根據(jù)權(quán)利要求36所述的編碼和解碼數(shù)字消息M的方法,其中第一群Γ1和第二群Γ2具有相同的素?cái)?shù)階q。
40.根據(jù)權(quán)利要求36所述的編碼和解碼數(shù)字消息M的方法,其中所述的第一循環(huán)群Γ1是超奇異橢圓曲線或阿貝爾簇曲線上的點(diǎn)的加性群,第二循環(huán)群Γ2則是一個(gè)有限域的乘性子群。
41.根據(jù)權(quán)利要求36所述的編碼和解碼數(shù)字消息M的方法,其中函數(shù)ê是一種雙線性、非退化且可高效計(jì)算的配對。
42.根據(jù)權(quán)利要求36所述的編碼和解碼數(shù)字消息M的方法,其中s0是循環(huán)群Z/qZ的一個(gè)元素;Q0是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pzi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pyi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成密文szi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)低級密鑰生成密文syi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)機(jī)密元素Szi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)機(jī)密元素Syi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qzi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qyi都是第一循環(huán)群Γ1的一個(gè)元素;接收方公共元素Pz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;發(fā)送方公共元素Py(m+1)是第一循環(huán)群Γ1的一個(gè)元素;接收方機(jī)密元素Sz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;發(fā)送方機(jī)密元素Sy(m+1)是第一循環(huán)群Γ1的一個(gè)元素;r是循環(huán)群Z/qZ的一個(gè)元素;并且g是第二循環(huán)群Γ2的一個(gè)元素。
43.根據(jù)權(quán)利要求36所述的編碼和解碼數(shù)字消息的方法,其中編碼消息M還包括選取一個(gè)隨機(jī)參數(shù)r;并編碼消息M以生成加密文本C=[U0,U2,...,Un+1,V],其中U0=rP0,其中對于l+1≤i≤n+1有Ui=rPzi,其中V=M⊕H2(gylr),]]>并且其中g(shù)yl=e^(P0,Sy(m+1))Πi=l+1m+1e^(Qy(i-1),Pyi);]]>并且解碼加密文本C還包括利用M=V⊕H2(e^(U0,Sz(n+1))Πi=l+1n+1e^(Qz(i-1),Uzi))]]>恢復(fù)消息M。
44.根據(jù)權(quán)利要求43所述的編碼和解碼數(shù)字消息M的方法,其中第一循環(huán)群Γ1和第二循環(huán)群Γ2具有相同的素?cái)?shù)階q。
45.根據(jù)權(quán)利要求43所述的編碼和解碼數(shù)字消息M的方法,其中所述的第一循環(huán)群Γ1是超奇異橢圓曲線或阿貝爾簇曲線上的點(diǎn)的加性群,第二循環(huán)群Γ2則是一個(gè)有限域的乘性子群。
46.根據(jù)權(quán)利要求43所述的編碼和解碼數(shù)字消息M的方法,其中函數(shù)ê是一種雙線性、非退化且可高效計(jì)算的配對。
47.根據(jù)權(quán)利要求43所述的編碼和解碼數(shù)字消息M的方法,其中s0是循環(huán)群Z/qZ的一個(gè)元素;Q0是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pzi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pyi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成密文szi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)低級密鑰生成密文syi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)機(jī)密元素Szi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)機(jī)密元素Syi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qzi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qyi都是第一循環(huán)群Γ1的一個(gè)元素;接收方公共元素Pz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;發(fā)送方公共元素Py(m+1)是第一循環(huán)群Γ1的一個(gè)元素;接收方機(jī)密元素Sz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;發(fā)送方機(jī)密元素Sy(m+1)是第一循環(huán)群Γ1的一個(gè)元素;r是循環(huán)群Z/qZ的一個(gè)元素;并且g是第二循環(huán)群Γ2的一個(gè)元素。
48.根據(jù)權(quán)利要求36所述的編碼和解碼數(shù)字消息M的方法其中編碼消息M還包括選取一個(gè)隨機(jī)參數(shù)r;并編碼消息M以生成加密文本C=[U0,U2,...,Un+1,V],其中U0=rP0,其中Ul+1=r(Py(l+1)-Pz(l+1)),其中對于l+2≤i≤n有Ui=rPzi,其中V=M⊕H2(gy(l+1)r)]]>并且其中g(shù)y(l+1)=e^(P0,Sy(m+1))Πi=l+2me^(Qy(i-1),Pyi)=e^(P0,Sy(l+1));]]>并且解碼加密文本C還包括利用M=V⊕H2(e^(U0,Sz(n+1))e^(Ul+1,Qzl)Πi=l+2ne^(Qz(i-1),Ui))]]>恢復(fù)消息M。
49.根據(jù)權(quán)利要求36所述的編碼和解碼數(shù)字消息M的方法其中編碼消息M還包括選取一個(gè)隨機(jī)參數(shù)r;并編碼消息M以生成加密文本C=[U0,Ul+2,...,Un,V],其中U0=rP0,其中對于l+2≤i≤n有Ui=rPzi,其中V=M⊕H2(gz(l+1)r),]]>并且其中g(shù)z(l+1)=e^(P0,Sy(m+1))e^(Qyl,(Pz(l+1)-Py(l+1)))Πi=l+2me^(Qy(i-1),Pyi)=e^(P0,Sz(l+1));]]>并且解碼加密文本C還包括利用M=V⊕H2(e^(U0,Sz(n+1))Πi=l+2ne^(Qz(i-1),Ui))]]>恢復(fù)消息M。
50.根據(jù)權(quán)利要求36所述的編碼和解碼數(shù)字消息M的方法,還包括選取一個(gè)第三函數(shù)H3,該函數(shù)能夠由第三串二進(jìn)制數(shù)生成循環(huán)群Z/qZ的一個(gè)整數(shù);以及選取一個(gè)第四函數(shù)H4,該函數(shù)能夠由第五串二進(jìn)制數(shù)生成第四串二進(jìn)制數(shù);其中編碼消息M還包括選取一個(gè)隨機(jī)二進(jìn)制串即σ,計(jì)算一個(gè)隨機(jī)整數(shù)r=H3(σ,M,W),其中W=EH4(s)(M);]]>以及生成加密文本C=[U0,Ul+1,...,Un+1,V,W],其中對于i=0和l+1≤i≤n+1有Ui=rPzi,其中V=σ⊕H2(gylr),]]>并且其中g(shù)yl=e^(P0,Sy(m+1))Πi=l+1m+1e^(Qy(i-1),Pyi);]]>并且其中解碼加密文本C還包括利用σ=V⊕H2(e^(U0,Sz(n+1))Πi=l+1n+1e^(Qz(i-1),Uzi))]]>恢復(fù)隨機(jī)二進(jìn)制串σ,并利用M=EH4(s)-1(W)]]>恢復(fù)消息M。
51.根據(jù)權(quán)利要求49所述的編碼和解碼數(shù)字消息M的方法,其中第一循環(huán)群Γ1和第二循環(huán)群Γ2具有相同的素?cái)?shù)階q。
52.根據(jù)權(quán)利要求49所述的編碼和解碼數(shù)字消息M的方法,其中所述的第一循環(huán)群Γ1是超奇異橢圓曲線或阿貝爾簇曲線上的點(diǎn)的加性群,第二循環(huán)群Γ2則是一個(gè)有限域的乘性子群。
53.根據(jù)權(quán)利要求49所述的編碼和解碼數(shù)字消息M的方法,其中函數(shù)ê是一種雙線性、非退化且可高效計(jì)算的配對。
54.根據(jù)權(quán)利要求49所述的編碼和解碼數(shù)字消息M的方法,其中s0是循環(huán)群Z/qZ的一個(gè)元素;Q0是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pzi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pyi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成密文szi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)低級密鑰生成密文syi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)機(jī)密元素Szi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)機(jī)密元素Syi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qzi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qyi都是第一循環(huán)群Γ1的一個(gè)元素;接收方公共元素Pz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;發(fā)送方公共元素Py(m+1)是第一循環(huán)群Γ1的一個(gè)元素;接收方機(jī)密元素Sz(n+1)是第一循環(huán)群Γ1的一個(gè)元素;發(fā)送方機(jī)密元素Sy(m+1)是第一循環(huán)群Γ1的一個(gè)元素;r是循環(huán)群Z/qZ的一個(gè)元素;并且g是第二循環(huán)群Γ2的一個(gè)元素。
55.根據(jù)權(quán)利要求49所述的編碼和解碼數(shù)字消息M的方法,還包括通過計(jì)算一個(gè)實(shí)驗(yàn)性的隨機(jī)整數(shù)r′=H3(σ,M,W)來檢驗(yàn)加密文本C的內(nèi)部一致性;以及對l+1≤i≤n+1檢驗(yàn)U0=r′P0和Ui=r′Pzi。
56.一種產(chǎn)生及驗(yàn)證一條數(shù)字消息M的數(shù)字簽名Sig的方法,所述的數(shù)字消息在發(fā)送方和接收方之間傳遞,其中所述的發(fā)送方在分級系統(tǒng)中比根PKG低m+1個(gè)級別,并且其中所述的發(fā)送方與一個(gè)發(fā)送方ID元組(UDy1,...,IDy(m+1))相關(guān)聯(lián),該ID元組中包含與發(fā)送方相關(guān)的身份信息IDy(m+1),以及與根PKG和發(fā)送方之間的分級結(jié)構(gòu)中的m個(gè)低級PKG各自相關(guān)的身份信息IDyi,該方法包括生成元素的第一循環(huán)群Γ1和元素的第二循環(huán)群Γ2;選取一個(gè)雙線性、非退化的配對ê,該配對能夠由第一循環(huán)群Γ1的兩個(gè)元素生成第二循環(huán)群Γ2的一個(gè)元素;選取第一循環(huán)群Γ1的一個(gè)根生成器P0;選取一個(gè)隨機(jī)根密鑰生成密文s0,該密文與根PKG相關(guān)且只為根PKG所知;產(chǎn)生一個(gè)根密鑰生成參數(shù)Q0=s0P0;選取一個(gè)第一函數(shù)H1,該函數(shù)能夠由第一串二進(jìn)制數(shù)生成第一循環(huán)群Γ1的一個(gè)元素;為所述的m個(gè)低級PKG各生成一個(gè)公共元素Pyi,其中Pyi=H1(IDy1,...,IDyi),1≤i≤m;為所述的n個(gè)低級PKG各選取一個(gè)低級密鑰生成密文syi,其中各個(gè)低級密鑰生成密文syi只對與它相關(guān)的低級PKG已知;為所述的m個(gè)低級PKG各生成一個(gè)低級機(jī)密元素Syi,其中Syi=Sy(i-1)+sy(i-1)Pyi,1≤i≤m;為所述的m個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù)Qyi,其中Qyi=syiP0,1≤i≤m;生成一個(gè)與發(fā)送方相關(guān)的發(fā)送方公共元素Py(m+1)=H1(IDy1,...IDy(m+1));生成一個(gè)與發(fā)送方相關(guān)的發(fā)送方機(jī)密元素Sy(m+1)=Sym+symPy(m+1)=Σi=1m+1sy(i-1)Pyi;]]>至少利用發(fā)送方機(jī)密元素Sy(m+1)簽署消息M以生成一個(gè)數(shù)字簽名Sig;以及至少利用根密鑰生成參數(shù)Q0和低級密鑰生成參數(shù)Qyi驗(yàn)證數(shù)字簽名Sig。
57.根據(jù)權(quán)利要求56所述的產(chǎn)生及驗(yàn)證數(shù)字簽名Sig的方法,其中第一群Γ1和第二群Γ2具有相同的素?cái)?shù)階q。
58.根據(jù)權(quán)利要求56所述的產(chǎn)生及驗(yàn)證數(shù)字簽名Sig的方法,其中所述的第一循環(huán)群Γ1是超奇異橢圓曲線或阿貝爾簇曲線上的點(diǎn)的加性群,第二循環(huán)群Γ2則是一個(gè)有限域的乘性子群。
59.根據(jù)權(quán)利要求56所述的編碼和解碼數(shù)字消息M的方法,其中函數(shù)ê是一種雙線性、非退化且可高效計(jì)算的配對。
60.根據(jù)權(quán)利要求56所述的編碼和解碼數(shù)字消息M的方法,其中s0是循環(huán)群Z/qZ的一個(gè)元素;Q0是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pyi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成密文syi都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)機(jī)密元素Syi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qyi都是第一循環(huán)群Γ1的一個(gè)元素;發(fā)送方公共元素Py(m+1)是第一循環(huán)群Γ1的一個(gè)元素;并且發(fā)送方機(jī)密元素Sy(m+1)是第一循環(huán)群Γ1的一個(gè)元素。
61.根據(jù)權(quán)利要求56所述的產(chǎn)生及驗(yàn)證數(shù)字簽名Sig的方法,還包括選取一個(gè)第二函數(shù)H3,該函數(shù)能夠由第二串二進(jìn)制數(shù)生成第一循環(huán)群Γ1的一個(gè)元素;為發(fā)送方y(tǒng)選取一個(gè)發(fā)送方密鑰生成密文sy(m+1),其中所述的發(fā)送方密鑰生成密文sy(m+1)僅對發(fā)送方已知;以及產(chǎn)生一個(gè)與發(fā)送方相關(guān)的發(fā)送方密鑰生成參數(shù)Qy(m+1),其中Qy(m+1)=sy(m+1)P0;其中簽署消息M還包括生成一個(gè)消息要素PM=H3(IDy1,...,IDy(m+1),M),其中所述的消息要素PM是第一循環(huán)群Γ1的一個(gè)元素;以及利用Sig=Sy(m+1)+sy(m+1)PM生成數(shù)字簽名Sig;并且其中驗(yàn)證數(shù)字消息Sig還包括檢驗(yàn)e^(P0,Sig)e^(Qy(m+1),PM)Πi=2m+1e^(Qy(i-1),Pyi)=e^(Q0,Pl).]]>
62.根據(jù)權(quán)利要求61所述的產(chǎn)生及驗(yàn)證數(shù)字簽名Sig的方法,其中第一群Γ1和第二群Γ2具有相同的素?cái)?shù)階q。
63.根據(jù)權(quán)利要求61所述的產(chǎn)生及驗(yàn)證數(shù)字簽名Sig的方法,其中所述的第一循環(huán)群Γ1是超奇異橢圓曲線或阿貝爾簇曲線上的點(diǎn)的加性群,第二循環(huán)群Γ2則是一個(gè)有限域的乘性子群。
64.根據(jù)權(quán)利要求61所述的編碼和解碼數(shù)字消息M的方法,其中函數(shù)ê是一種雙線性、非退化且可高效計(jì)算的配對。
65.根據(jù)權(quán)利要求61所述的編碼和解碼數(shù)字消息M的方法,其中s0是循環(huán)群Z/qZ的一個(gè)元素;Q0是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)公共元素Pyi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成密文syi和發(fā)送方密鑰生成密文sy(m+1)都是循環(huán)群Z/qZ的一個(gè)元素;每個(gè)機(jī)密元素Syi都是第一循環(huán)群Γ1的一個(gè)元素;每個(gè)低級密鑰生成參數(shù)Qyi以及發(fā)送方密鑰生成參數(shù)Qy(m+1)都是第一循環(huán)群Γ1的一個(gè)元素;發(fā)送方公共元素Py(m+1)是第一循環(huán)群Γ1的一個(gè)元素;并且發(fā)送方機(jī)密元素Sy(m+1)是第一循環(huán)群Γ1的一個(gè)元素。
全文摘要
本發(fā)明提供了用來在一個(gè)包含多個(gè)私有密鑰生成器(“PKG”)的系統(tǒng)中的發(fā)送方與接收方之間編碼與解碼一條數(shù)字消息的方法。所述的PKG中至少包括一個(gè)根PKG以及根PKG與接收方之間的分級結(jié)構(gòu)中的n個(gè)低級PKG。一個(gè)根密鑰生成密文被選取且只為根PKG所知(102)。根據(jù)所述的根密鑰生成密文產(chǎn)生一個(gè)根密鑰生成參數(shù)(104)。為所述的n個(gè)低級PKG各選取一個(gè)低級密鑰生成密文,其中每個(gè)低級密鑰生成密文只對其相關(guān)的低級PKG已知(106)。還要為n個(gè)低級PKG各產(chǎn)生一個(gè)低級密鑰生成參數(shù),產(chǎn)生的過程中至少要利用對應(yīng)于其相關(guān)低級私有密鑰生成器的低級密鑰生成密文(108)。至少利用根密鑰生成參數(shù)以及與接收方相關(guān)的接收方身份信息對所述的消息進(jìn)行編碼以形成一個(gè)密文(110)。生成一個(gè)接收方私有密鑰,使得該接收方私有密鑰至少與根密鑰生成密文、n個(gè)低級密鑰生成密文中的一個(gè)或多個(gè)、以及接收方身份信息相關(guān)(112)。至少利用接收方私有密鑰對所述的密文解碼以恢復(fù)所述的消息(114)。
文檔編號H04L9/08GK1633774SQ03803910
公開日2005年6月29日 申請日期2003年3月18日 優(yōu)先權(quán)日2002年3月21日
發(fā)明者克雷格·B·金特里, 艾麗斯·西爾弗伯格 申請人:美國多科摩通訊研究所股份有限公司