專利名稱:證書公鑰系統(tǒng)與身份公鑰系統(tǒng)之間的認證加密方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息安全技術(shù)領(lǐng)域,涉及認證加密,具體地說是一種能高 效地實現(xiàn)證書公鑰系統(tǒng)與身份公鑰系統(tǒng)之間的認證加密方法,可用于證書 公鑰系統(tǒng)和身份公鑰系統(tǒng)之間對秘密文件的可認證的傳輸。
技術(shù)背景業(yè)內(nèi)周知,保密性和認證性是信息安全里最主要的兩個目標(biāo),通過加 密實現(xiàn)保密性,通過簽名或消息認證碼實現(xiàn)認證性。很多實際應(yīng)用同時要 求保密性和認證性,比如電子郵件和電子商務(wù)。認證加密技術(shù)能夠以小于 "先簽名再加密"的代價來同時實現(xiàn)保密性和認證性。自W.Diffie和M.Hdlman在1976年發(fā)明公鑰密碼學(xué)以來,已經(jīng)出現(xiàn)了很 多公鑰認證加密方法。認證性可以通過簽名或消息認證碼來實現(xiàn)。用簽名 構(gòu)造的認證加密又被稱為"簽密",這一概念首先是由中國學(xué)者Zheng在他 1997年發(fā)表在"Crypto 1997"上的論文"Digital signcryption or how to achieve cost (signature & encryption << cost (signature) + cost (encryption)"中 提出的。韓國學(xué)者Jun-Bum Shin, Kwangsu Lee和Kyungah Shim在他們2002 年發(fā)表在"ICISC2002"上的論文"New DSA-verifiable signcryption schemes"中采用標(biāo)準(zhǔn)的數(shù)字簽名算法DSA設(shè)計了兩種實用的認證加密方 法。日本學(xué)者Raylin Tso, Takeshi Okamoto和Eiji Okamoto在他們2007年發(fā)表 在"Inscrypt 2007"上的論文"ECDSA-Verifiable Signcryption Scheme with Signature Verification on the Signcrypted Message "中提出了橢圓曲線標(biāo) 準(zhǔn)簽名算法ECDSA的認證加密方法,減少了通信開銷。身份公鑰系統(tǒng)是由Shamir在1984年提出的,旨在克服證書公鑰系統(tǒng)需第一個實用的身份加密方案直到2001年才由 Boneh和Fmnklin提出,目前,對身份認證加密有了不少研究成果。美國學(xué) 者B. Lynn在他2002年公開在"Qyptology ePrint Archive"上的論文 "Authenticated Identity-based Encryption"中提出了第一個身份認證加密方 案。另外,英國學(xué)者L.Chen和J.Malone-Lee在他們2005年發(fā)表在"PKC 2005"上的論文"Improved Identity-Based Signcryption"中運用身份簽名構(gòu) 造了一個高效的身份認證加密方案。巴西學(xué)者P. S. Barreto,葡萄牙學(xué)者B. Libert,愛爾蘭學(xué)者N. McCulIagh和葡萄牙學(xué)者J. Quisquater在他們2005年發(fā) 表在"ASIACRYPT2005"上的論文"Efficient and Provably-Secure Identity-Based Signatures and Signcryption from Bilinear Maps"中運用快速雙線性對 設(shè)計了一個更高效的身份認證加密方案。證書公鑰系統(tǒng)和身份公鑰系統(tǒng)各有優(yōu)缺點。證書公鑰系統(tǒng)的優(yōu)點是用 戶私鑰只有用戶知道,保密性強,缺點是需要管理大量證書,任務(wù)繁重; 身份公鑰系統(tǒng)的優(yōu)點是用戶的身份即為公鑰,所以不需要證書,缺點是安 全性差,由于系統(tǒng)中心知道所有用戶的私鑰,可以解密任何用戶的任何密 文,并能夠偽造任何簽名。在實際應(yīng)用中,不同的機構(gòu)根據(jù)具體情況可能 釆用證書公鑰系統(tǒng),也可能采用身份公鑰系統(tǒng)。比如,用戶A屬于證書公鑰 系統(tǒng),用戶B屬于身份公鑰系統(tǒng),當(dāng)A想給B傳輸可認證的秘密消息時,A首 先要對消息做簽名,再對簽名做加密,或者需要在身份公鑰系統(tǒng)里申請一 對公私鑰,然后再用身份認證加密的方法給B發(fā)送消息,這兩種方法降低了 傳輸效率、增加了系統(tǒng)的復(fù)雜性。 發(fā)明內(nèi)容本發(fā)明目的在于克服上述系統(tǒng)之間傳輸復(fù)雜且效率低的缺點,提供一 種證書公鑰系統(tǒng)與身份公鑰系統(tǒng)之間的認證加密方法,以高效地實現(xiàn)證書公鑰系統(tǒng)與身份公鑰系統(tǒng)之間對秘密文件的可認證的傳輸,簡化系統(tǒng)、提 高傳輸效率。實現(xiàn)本發(fā)明目的的技術(shù)方案是利用雙線性對的性質(zhì),計算身份公鑰 系統(tǒng)與證書公鑰系統(tǒng)的用戶之間的會話密鑰,再用該會話密鑰認證加密消 息并傳輸,設(shè)計一種能簡單高效的實現(xiàn)證書公鑰系統(tǒng)與身份公鑰系統(tǒng)之間 的認證加密方法。具體過程如下(1) 系統(tǒng)公私鑰生成步驟證書公鑰系統(tǒng)和身份公鑰系統(tǒng)從公鑰函數(shù)數(shù)據(jù)庫中選取一套參數(shù),包 括兩個階為素數(shù)《的循環(huán)群G和G2,雙線性對e':G,x《—G2,哈希函數(shù) //1:{0,1}'4《,根據(jù)選取的參數(shù),證書公鑰系統(tǒng)選取公鑰和私鑰W,身 份公鑰系統(tǒng)選取公鑰附j(luò)^:和私鑰(2) 用戶公私鑰生成步驟身份公鑰系統(tǒng)將用戶B的身份/Z^作為用戶B的公鑰,并根據(jù)/i^和 生成用戶B的私鑰A;證書公鑰系統(tǒng)的用戶A由自己生成公鑰^和私鑰(3) 會話密鑰生成步驟根據(jù)用戶公私鑰,身份公鑰系統(tǒng)的發(fā)送者B給證書公鑰系統(tǒng)的接收者A 發(fā)送消息M時,所生成的會話密鑰為i^-S(^A);根據(jù)用戶公私鑰,證 書公鑰系統(tǒng)的發(fā)送者A給身份公鑰系統(tǒng)的接收者B發(fā)送消息M時,所生成的會話密鑰為i^ "(邵A:,/^(/D》戶;(4) 加密傳輸步驟 發(fā)送者用上述會話密鑰i^或&,加密消息,計算出密文,并將該密文發(fā)送給接收者;(5) 解密認證步驟自己的私鑰和發(fā)送者的公鑰計算 出會話密鑰尺別"(m;^,/^//^))"或^s =《^,^),再用該會話密鑰解密出明文消息,并認證發(fā)送者的身份。本發(fā)明由于能夠直接用一個雙線性對,計算出證書公鑰系統(tǒng)和身份公 鑰系統(tǒng)的用戶之間的會話密鑰,并用該密鑰對消息進行認證加密和傳輸, 避免了發(fā)送者同時用數(shù)字簽名和公鑰加密,或者先到接受者所在的公鑰系 統(tǒng)申請公私鑰,然后在同一個公鑰系統(tǒng)中對消息進行認證加密的復(fù)雜過 程,從而簡化了系統(tǒng),提高了傳輸效率。以下結(jié)合附圖對本發(fā)明目的、方案作進一步說明。
圖l是證書公鑰系統(tǒng)與身份公鑰系統(tǒng)的用戶之間通信的示意圖; 圖2是本發(fā)明的認證加密過程示意圖。
具體實施方式
一、本發(fā)明所應(yīng)用的數(shù)學(xué)理論及技術(shù)術(shù)語說明 1、哈希函數(shù)哈希函數(shù)就是把任意長的輸入轉(zhuǎn)化成固定長的輸出的一種函數(shù),這個 輸出稱為該輸入的哈希值。 一個安全的哈希函數(shù)應(yīng)該至少滿足以下幾個條 件①輸出長度是固定的, 一般至少取128bits長,以便抵抗生日攻擊;② 對每一個給定的輸入,可很容易的計算其輸出;③給定哈希函數(shù)的描述,找到 兩個不同的輸入哈希到同一個值是計算上不可行的;④給定哈希函數(shù)的描 述和一個輸入,找到另一個不同的輸入,使得它們的哈希值相同是計算上 不可行的。本發(fā)明所用的哈希函數(shù)Hi把任意長的一個輸入轉(zhuǎn)化成橢圓曲線 上一個素數(shù)階子群中的一個點。 2、雙線性對滿足雙線性性、非退化性和可 計算性的映射,它把素數(shù)階群G,中的兩個元素映射到素數(shù)階群G中的一 個元素。比如,定義在超奇異橢圓曲線上的Tate對是一個滿足條件的雙線 性對。3、有關(guān)技術(shù)術(shù)語本發(fā)明的有關(guān)技術(shù)術(shù)語可通過圖1說明如下(1) CA為證書公鑰系統(tǒng)的"證書中心",負責(zé)頒發(fā)和管理公鑰證書。(2) PKG為身份公鑰系統(tǒng)的"私鑰生成中心",負責(zé)生成用戶私鑰。(3) 節(jié)點A為證書公鑰系統(tǒng)的一個用戶。(4) 節(jié)點B為身份公鑰系統(tǒng)的一個用戶。(5) 本發(fā)明中的證書公鑰系統(tǒng)和身份公鑰系統(tǒng)可以各自獨立,也可以 是某個公鑰系統(tǒng)(比如證書公鑰系統(tǒng))下的兩個子系統(tǒng)。二、本發(fā)明的實現(xiàn)過程 參照圖1和圖2,本發(fā)明的具體過程如下 步驟l、生成系統(tǒng)公私鑰。從公鑰函數(shù)數(shù)據(jù)庫中選取兩個階為素數(shù)《的循環(huán)群d和G2, ^《x《4G^是一個雙線性對,戶為G的生成元,//1:{0,1}*~>6 , //2:x G2 ~> {0,1}" , //3: {0,1}" ~> {0,1}"和仏{0,1}" x {0,1}" — 是四個哈希函數(shù),這里w是明文消息的比特長度,《表示有限域4去掉零元素后的乘法群;證書公鑰系統(tǒng)從Z/中隨機選取一個元素W乍為系統(tǒng)的私鑰,計算公鑰 ,A: =身份公鑰系統(tǒng)從Z/中隨機選取一個元素A作為系統(tǒng)的私鑰,計算公鑰#=A.P,這里,符號" "表示乘法。步驟2、生成用戶公私鑰。根據(jù)系統(tǒng)私鑰s和 用戶公鑰/^計算用戶私鑰D,-^i/,(/Z^);證書公鑰系統(tǒng)的用戶A從Z/中任意選擇一個元素;c,作為其私鑰,并將 該私鑰與系統(tǒng)參數(shù)中^的生成元P相乘,計算出用戶A的公鑰-步驟3、生成會話密鑰。身份公鑰系統(tǒng)的發(fā)送者B給證書公鑰系統(tǒng)的接收者A發(fā)送消息i/, B 用自己的私鑰Z^和接收者A的公鑰&計算會話密鑰;證書公鑰系統(tǒng)的發(fā)送者A給身份公鑰系統(tǒng)的接收者B發(fā)送消息M, A用自己的私鑰&和接收者B的公鑰計算出會話密鑰 步驟4、加密并傳輸。發(fā)送者用以上得到的會話密鑰i^,A^,加密消息M,并按如下過程進 行加密并傳輸4a)發(fā)送者從集合{0,1}"中任意選取一個元素c7,計算A"M),記為 C/ = //4(o",M),這里,集合{0,1}"是由"比特長的二進制序列組成的; 41))計算<7@//2(^/,《),記為1^ = 0"@//2(",尺),其中AT = i^,i^B ; 4c)計算Af //3(o"),記為『-Me/f3(C");4d)根據(jù)計算的結(jié)果,生成密文C-(C/,r,),并將該密文發(fā)送給接收 者,如圖l所示,證書公鑰系統(tǒng)的用戶A和身份公鑰系統(tǒng)的用戶B互相傳 輸消息時,按以上過程對消息進行認證加密,生成密文并傳輸。步驟5、解密。5a)計算會話密鑰證書公鑰系統(tǒng)的接收者A收到由身份公鑰系統(tǒng)的發(fā)送者B發(fā)送的密文 c = (t/,r,r), 并根據(jù)雙線性對的性質(zhì)《w =《&,£>s) "(^尸,^^(/Z^》"(^,Z/,(/i)J戶"(附M,^(/A))、用自己的私鑰^和發(fā)送者B的公鑰/A計 算會話密鑰Kw = S(mM,A(/A)戶;身份公鑰系統(tǒng)的接收者B收到由證書公鑰系統(tǒng)的發(fā)送者A發(fā)送的密文 C = (f/,F(xiàn),『),并根據(jù)雙線性對的性質(zhì)/^"(m;^,//"/^))" =^^,//,(/Ds))" "(xj,^^(/i^》=^(&,Dfl),用自己的私鑰和發(fā)送者A的公鑰 計算出會話密鑰尺^"(1^,AJ;5b)解密出明文接收者計算明文消息^ =『④丑3(a'),其中c7'-r④/^(f/,iq, C7、 F和『是步驟4計算出的密文,K = i^,^s。 步驟6、認證。由以上得到的a'和M,接收者計算仏(C7',M),驗證仏(犬M)是否等于 f/,如果是,則輸出消息M和發(fā)送者的公鑰,否則輸出"密文無效"。
權(quán)利要求
1.一種證書公鑰系統(tǒng)與身份公鑰系統(tǒng)之間的認證加密方法,包括(1)系統(tǒng)公私鑰生成步驟證書公鑰系統(tǒng)和身份公鑰系統(tǒng)從公鑰函數(shù)數(shù)據(jù)庫中選取一套參數(shù),包括兩個階為素數(shù)q的循環(huán)群G1和G2,雙線性對 id="icf0001" file="A2009100231670002C1.tif" wi="3" he="3" top= "58" left = "131" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>G1×G1→G2,哈希函數(shù)H1{0,1}*→G1,根據(jù)選取的參數(shù),證書公鑰系統(tǒng)選取公鑰pk和私鑰sk,身份公鑰系統(tǒng)選取公鑰mpk和私鑰msk;(2)用戶公私鑰生成步驟身份公鑰系統(tǒng)將用戶B的身份IDB作為用戶B的公鑰,并根據(jù)IDB和msk生成用戶B的私鑰DB;證書公鑰系統(tǒng)的用戶A由自己生成公鑰YA和私鑰xA;(3)會話密鑰生成步驟根據(jù)用戶公私鑰,身份公鑰系統(tǒng)的發(fā)送者B給證書公鑰系統(tǒng)的接收者A發(fā)送消息M時,所生成的會話密鑰為<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><msub> <mi>K</mi> <mi>BA</mi></msub><mo>=</mo><mover> <mi>e</mi> <mo>^</mo></mover><mrow> <mo>(</mo> <msub><mi>Y</mi><mi>A</mi> </msub> <mo>,</mo> <msub><mi>D</mi><mi>B</mi> </msub> <mo>)</mo></mrow><mo>;</mo> </mrow>]]></math> id="icf0002" file="A2009100231670002C2.tif" wi="28" he="4" top= "147" left = "110" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>根據(jù)用戶公私鑰,證書公鑰系統(tǒng)的發(fā)送者A給身份公鑰系統(tǒng)的接收者B發(fā)送消息M時,所生成的會話密鑰為<maths id="math0002" num="0002" ><math><![CDATA[ <mrow><msub> <mi>K</mi> <mi>AB</mi></msub><mo>=</mo><mover> <mi>e</mi> <mo>^</mo></mover><msup> <mrow><mo>(</mo><mi>mpk</mi><mo>,</mo><msub> <mi>H</mi> <mn>1</mn></msub><mrow> <mo>(</mo> <msub><mi>ID</mi><mi>B</mi> </msub> <mo>)</mo></mrow><mo>)</mo> </mrow> <msub><mi>x</mi><mi>A</mi> </msub></msup><mo>;</mo> </mrow>]]></math> id="icf0003" file="A2009100231670002C3.tif" wi="44" he="4" top= "166" left = "63" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>(4)加密傳輸步驟發(fā)送者用上述會話密鑰KRA或KAB加密消息,計算出密文,并將該密文發(fā)送給接收者;(5)解密認證步驟接收者根據(jù)雙線性對的性質(zhì),用自己的私鑰和發(fā)送者的公鑰計算出會話密鑰<maths id="math0003" num="0003" ><math><![CDATA[ <mrow><msub> <mi>K</mi> <mi>BA</mi></msub><mo>=</mo><mover> <mi>e</mi> <mo>^</mo></mover><msup> <mrow><mo>(</mo><mi>mpk</mi><mo>,</mo><msub> <mi>H</mi> <mn>1</mn></msub><mrow> <mo>(</mo> <msub><mi>ID</mi><mi>B</mi> </msub> <mo>)</mo></mrow><mo>)</mo> </mrow> <msub><mi>x</mi><mi>A</mi> </msub></msup> </mrow>]]></math> id="icf0004" file="A2009100231670002C4.tif" wi="41" he="4" top= "225" left = "39" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>或<maths id="math0004" num="0004" ><math><![CDATA[ <mrow><msub> <mi>K</mi> <mi>AB</mi></msub><mo>=</mo><mover> <mi>e</mi> <mo>^</mo></mover><mrow> <mo>(</mo> <msub><mi>Y</mi><mi>A</mi> </msub> <mo>,</mo> <msub><mi>D</mi><mi>B</mi> </msub> <mo>)</mo></mrow><mo>,</mo> </mrow>]]></math> id="icf0005" file="A2009100231670002C5.tif" wi="28" he="4" top= "225" left = "88" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>再用該會話密鑰解密出明文消息,并認證發(fā)送者的身份。
2. 根據(jù)權(quán)利要求l所述的認證加密方法,其中步驟(1)所述的證書 公鑰系統(tǒng)和身份公鑰系統(tǒng)從公鑰函數(shù)數(shù)據(jù)庫中選取一套參數(shù),該套參數(shù)進 一步包括G的生成元P,三個哈希函數(shù)//2:<><^24{0,1}",//3:{0,1}"—{0,1}"和//4:{0,1}"><{0,1}"—Z/,這里W是明文消息的比特長度,<表示有限域Zg去掉零元素后的乘法群。
3. 根據(jù)權(quán)利要求l所述的認證加密方法,其中步驟(1)中的證書公 鑰系統(tǒng)公鑰和私鑰A,身份公鑰系統(tǒng)的公鑰m;^和私鑰m^,按照如 下方式生成證書公鑰系統(tǒng)從Z/中隨機選取一個元素H乍為系統(tǒng)的私鑰mA,計算 公鑰= ■! ./ ;身份公鑰系統(tǒng)從Z/中隨機選取一個元素A作為系統(tǒng)的私鑰,計算公 鑰戶"i戶,這里,符號" "表示乘法。
4. 根據(jù)權(quán)利要求1所述的認證加密方法,其中步驟(2)中用戶B的 私鑰^和用戶A的公鑰&和私鑰&,按如下方式生成根據(jù)身份系統(tǒng)私鑰s和用戶公鑰叫計算用戶B的私鑰證書公鑰系統(tǒng)的用戶A從Z/中任意選擇一個元素x,作為其私鑰,并 將該私鑰與系統(tǒng)參數(shù)中《的生成元P相乘,計算出用戶A的公鑰
5. 根據(jù)權(quán)利要求1所述的認證加密方法,其中步驟(4)所述的發(fā)送 者用會話密鑰^,或^^加密消息M,按如下過程進行(5a)發(fā)送者從(O,ir中任意選取一個元素cr ,計算仏(cr,M),記為 t/ = ^4(cr,M),這里,{0,1}"表示由"比特長的二進制序列組成的集合; (5b)計算£7@//2(",/0,記為r-o"十/f2(t/,/Q,其中《-《M,《^;(5c)計算M0 7/3(cJ),記為『=肘@//30); (5d)根據(jù)計算的結(jié)果,生成密文C-(C/,r,『)。
6.根據(jù)權(quán)利要求1所述的認證加密方法,其中步驟(5)所述的用會 話密鑰解密出明文消息并認證發(fā)送者的身份,分為以下兩種情況進行第一種情況證書公鑰系統(tǒng)的用戶A解密由身份公鑰系統(tǒng)的用戶B 發(fā)送的密文C—t/乂『)(6a)用戶A分別計算r十Z/2(t/,^^),記為o^r④Z/2(C/,i^),計算 ,//3(CT'),記為# =『 //3(0"'); (6b)計算/f4(o"',M);(6c)驗證A(cr',M)是否等于C/,如果是,貝U A輸出消息M和發(fā)送 者B的公鑰,否則輸出"密文無效"。第二種情況身份公鑰系統(tǒng)的用戶B解密由證書公鑰系統(tǒng)的用戶A 發(fā)送來的密文C—C/,r,『)6a)用戶B分別計算7@//2(^7,^),記為0"'=|/@//2((7,&8),計算 『@//3(o"'), i己為M-『十/f3(o"');6b)計算7/4(cr',M);6c)驗證A(^,M)是否等于t7,如果是,則B輸出消息M和發(fā)送者A 的公鑰,否則輸出"密文無效"。
全文摘要
本發(fā)明公開了一種證書公鑰系統(tǒng)與身份公鑰系統(tǒng)之間的認證加密方法。其具體過程為從公鑰函數(shù)數(shù)據(jù)庫中選取參數(shù),并生成身份公鑰系統(tǒng)和證書公鑰系統(tǒng)的公、私鑰;根據(jù)系統(tǒng)的參數(shù)和公、私鑰生成用戶的公、私鑰;利用雙線性映射、發(fā)送者的私鑰和接收者的公鑰,計算身份公鑰系統(tǒng)與證書公鑰系統(tǒng)的用戶之間的會話密鑰;再用該會話密鑰認證加密消息得到密文,并把密文發(fā)送給接收者;接收者先利用雙線性映射和自身的私鑰,計算出會話密鑰,再用該會話密鑰解密出明文消息,并認證發(fā)送者的身份。本發(fā)明具有實施過程簡單、傳輸效率高的優(yōu)點,可用于證書公鑰系統(tǒng)與身份公鑰系統(tǒng)之間對秘密文件的可認證的傳輸。
文檔編號H04L9/08GK101594228SQ20091002316
公開日2009年12月2日 申請日期2009年7月2日 優(yōu)先權(quán)日2009年7月2日
發(fā)明者孫銀霞, 輝 朱, 暉 李 申請人:西安電子科技大學(xué)