專利名稱:一種零知識證明的認證方法及認證裝置的制作方法
技術(shù)領域:
本發(fā)明涉及一種零知識證明的認證方法及認證裝置,尤其涉及一種使用可重組邏 輯電路實現(xiàn)的零知識證明的認證方法和認證裝置。
背景技術(shù):
“零知識證明” -zero-knowledge proof,是由 Goldwasser 等人在 20 世紀 80 年代 初提出的。它指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相 信某個論斷是正確的。零知識證明實質(zhì)上是一種涉及兩方或更多方的協(xié)議,即兩方或更多 方完成一項任務所需采取的一系列步驟。證明者向驗證者證明并使其相信自己知道或擁有 某一消息,但證明過程不能向驗證者泄漏任何關于被證明消息的信息。在Goldwasser等人 提出的零知識證明中,證明者和驗證者之間必須進行交互,這樣的零知識證明被稱為“交互 零知識證明”。零知識證明的一個重要應用場合是密碼領域。例如,公鑰密碼體制就采用了零知 識證明的思路。公鑰體制于1976年由W. Diffie和M. Hellman提出,這一體制的最大特點 是采用兩個密鑰將加密和解密能力分開一個公鑰作為加密密鑰,一個私鑰為用戶專有。作 為解密密鑰,通信雙方無需事先交換密鑰就可以進行保密通信。而要從公鑰或密文分析出 私鑰,在計算上是不可能的。若以公鑰為加密密鑰,以用戶私鑰作為解密密鑰,則可以實現(xiàn) 多個用戶加密的信息,只能由一個用戶解讀;反之,以用戶專有的私鑰作為加密密鑰,而以 公鑰作為解密密鑰,則可以實現(xiàn)由一個用戶加密的信息,可以由多個用戶解讀。前者可以用 于保密通信,后者可用于數(shù)字簽名。公鑰體制不同于傳統(tǒng)的對稱密鑰密碼體制,它要求密鑰成對出現(xiàn),一個為加密密 鑰(e),另一個為解密密鑰(d),并且不可能從其中一個推導出另一個。公鑰加密算法也稱 非對稱密鑰算法,用兩個密鑰一個公開密鑰和一個專用密鑰。用戶要保障專用密鑰的安 全;公開密鑰則可以發(fā)布出去。例如,1977年,由Rivest, Shamir, Adleman三人提出了 RSA 算法。RSA算法的理論基礎是一種特殊的可逆模指數(shù)運算,它的安全性是基于分解大整數(shù)η 的困難性。假設A想要通過一個不可靠的媒體接收B的一條私人訊息。A可以用以下的方 式來產(chǎn)生一個公鑰和一個密鑰隨意選擇兩個大的質(zhì)數(shù)ρ和q,ρ不等于q,計算N = pq。根據(jù)歐拉函數(shù),不大于N且與N互質(zhì)的整數(shù)個數(shù)為(p-1) (q-1)選擇一個整數(shù)e與(p-1) (q-1)互質(zhì),并且e小于(p_l) (q-1)用以下這個公式計算d :dXe ε l(mod(p-1) (q-1))將ρ和q的記錄銷毀。e是公鑰,d是私鑰。d是秘密的,而N是公眾都知道的。A將她的公鑰傳給B,而 將她的私鑰藏起來。因此,在RSA算法中,公鑰是(N,e),密鑰是(N,d)。還存在其它公鑰算法,例如,DifTie-Hellman密鑰交互協(xié)議、DSA數(shù)字簽名算法 等。Diffie-Hellman密鑰交互協(xié)議的安全性主要依賴于有限域上的離散對數(shù)問題。DSA數(shù)字簽名算法的安全性也依賴于有限域上的離散對數(shù)問題。然而,隨著大整數(shù)分解和并行處理技術(shù)的發(fā)展,解決上述算法的數(shù)學基礎(諸如 分解大整數(shù)η、計算有限域上的離散對數(shù))的能力也不斷增強,因此對上述各種密鑰算法的 攻擊能力也不斷加強。當前采用的各種公鑰體制必須進一步增加密鑰長度,由此導致其速 度更滿、更加復雜,也產(chǎn)生更多開銷(所需的計算量、存儲量、帶寬、軟件和硬件實現(xiàn)的規(guī)模 等)和時延(加密和簽名速度)。另一方面,上述各種公鑰算法不能充分地支持多方授權(quán)的認證體制或加密體制。
發(fā)明內(nèi)容
本發(fā)明在現(xiàn)有技術(shù)的基礎熵,提出了一種滿足了零知識證明的認證方法及認證裝 置,以克服現(xiàn)有技術(shù)的以上缺陷。根據(jù)本發(fā)明的一個實施例,提出了采用可重組邏輯的認證方法和認證裝置,其中 利用可重組邏輯進一步增加了安全性。本發(fā)明提供一種基于公鑰體系的認證方法,其中第一用戶被第一授權(quán)機關分配公 鑰證書GCi,所述公鑰證書GCi至少包括用戶參數(shù)idi,所述公鑰證書GCi被公布,所述方法 包括步驟產(chǎn)生第一隨機數(shù)Ri和安全熵參數(shù)CTi ;基于安全熵參數(shù)CTi,利用可重組密碼邏 輯電路生成安全熵混合數(shù)STi ;基于第一隨機數(shù)Ri、所述安全熵參數(shù)CTi、安全熵混合數(shù)STi 來產(chǎn)生第一用戶的第一身份認證參數(shù);第一用戶把第一身份認證參數(shù)發(fā)送給第二用戶;第 二用戶從接收的第一身份認證參數(shù)計算出第一用戶的公鑰證書GCi’,并比較計算出的公鑰 證書GCi’和公布的公鑰證書GCi,以認證第一用戶。此外,其中生成第一身份認證參數(shù)的步驟包括基于Ri、CTi、STi,按照如下表達 式產(chǎn)生Xi、Yi Xi = ge * Eimod ηYi = Si * gSTi Ki mod η其中Xi、Yi、CTi作為第一用戶的第一身份認證參數(shù),其中e、n、g是授權(quán)機關的公 鑰證書C所公布的參數(shù),參數(shù)Si是第一用戶的私鑰。此外,第二用戶計算第一用戶的公鑰證書GCi’的步驟包括提取第一用戶的安 全熵參數(shù)CTi ;利用可重組密碼邏輯電路從安全熵參數(shù)CTi計算出第一用戶的安全熵指數(shù) CKi ;利用Xi、Yi、CKi,按照下述表達式計算第一用戶的公鑰證書GCi’ Xi^VYi6 mod η = GCi,,其中e、η是授權(quán)機關的公鑰證書C所公布的參數(shù)。本發(fā)明提供一種基于公鑰體系的用戶認證設備,所述用戶認證設備包括存儲器, 用于存儲被第一授權(quán)機關分配公鑰證書GCi,所述公鑰證書GCi至少包括用戶參數(shù)idi ;隨 機數(shù)發(fā)生器,用于產(chǎn)生隨機數(shù)Ri ;安全熵參數(shù)產(chǎn)生裝置,用于產(chǎn)生安全熵參數(shù)CTi ;可重組 邏輯電路,基于安全熵參數(shù)CTi來生成安全熵混合數(shù)STi ;身份認證信息生成裝置,用于基 于所述隨機數(shù)Ri、安全熵參數(shù)CTi、安全熵混合數(shù)STi來生成第一用戶i的第一身份認證參 數(shù);收發(fā)裝置,用于把第一用戶i的第一身份認證參數(shù)發(fā)送給第二用戶認證設備,以及從第 二用戶認證設備接收第二用戶j的第二身份認證參數(shù);身份認證信息計算裝置,用于從接 收的第二身份認證參數(shù),計算第二用戶j的公鑰證書GCj’ ;以及比較裝置,用于比較計算出的公鑰證書GCj’和第二用戶公布的公鑰證書GCj,以認證第二用戶。根據(jù)本發(fā)明的另一實施例,提出了一種支持多方授權(quán)的認證方法和認證裝置。通 過支持多個授權(quán)機關,不僅進一步提高了認證的安全性,還滿足了更復雜的應用需求。本發(fā)明提供一種基于公鑰體系的認證方法,其中第一用戶被第一授權(quán)機關分配公 鑰證書GCi,第一用戶、第二用戶還被第二授權(quán)機關分配密鑰Km以及被第三授權(quán)機關分配 密鑰Kn,所述公鑰證書GCi至少包括用戶參數(shù)idi,所述公鑰證書GCi被公布,所述方法包 括步驟第一用戶利用可重組密碼邏輯電路來產(chǎn)生第一用戶的第一身份認證參數(shù);第一用 戶使用第二授權(quán)機關的密鑰Km和第三授權(quán)機關的密鑰Kn加密第一用戶的第一身份認證參 數(shù);第一用戶把加密后的第一身份認證參數(shù)CXY發(fā)送給第二用戶;第二用戶使用第二授權(quán) 機關的密鑰Km和第三授權(quán)機關的密鑰Kn解密所接收的加密的第一身份認證參數(shù)CXY,以得 到第一用戶的第一身份認證參數(shù);第二用戶從接收的第一身份認證參數(shù)計算出第一用戶的 公鑰證書GCi’,并比較計算出的公鑰證書GCi’和第一用戶公布的公鑰證書GCi,以認證第 一用戶。
圖1示出了根據(jù)本發(fā)明第一實施例的認證過程的流程圖。圖2示出圖1所示的認證過程的步驟S105的實現(xiàn)過程的流程圖。圖3示出本發(fā)明的第一實施例的可重組密碼邏輯電路300的基本結(jié)構(gòu)框圖。圖4示出圖3所示的可重組密碼邏輯電路300的一個簡單示例。圖5示出圖3所示的可重組密碼邏輯電路300的另一個簡單示例。圖6示出圖1的認證過程的步驟S120的實施過程的流程圖。圖7示出了根據(jù)本發(fā)明第二實施例的可重組密碼邏輯電路700的基本結(jié)構(gòu)框圖。圖8示出使用可重組邏輯實現(xiàn)的S盒的靜態(tài)可控節(jié)點和動態(tài)可控節(jié)點。圖9示出3個授權(quán)機關共同管理用戶的示意10示出根據(jù)本發(fā)明第三實施例的身份認證過程的流程圖。圖11顯示用于實現(xiàn)本發(fā)明的實施例的認證裝置的結(jié)構(gòu)框圖。
具體實施例方式第一實施例本發(fā)明第一實施例描述了只有一個授權(quán)機關管理用戶的例子。授權(quán)機關采用國家公鑰密碼體制SM2算法(兼容公鑰密碼體制RSA算法)。授權(quán)機關的公鑰證書例如為C = (T,id, e,η, g, G)證書的各個參數(shù)的注釋為T 時變參數(shù)(登記時間、有效時間)id 授權(quán)中心機關參數(shù)(網(wǎng)址、電話號碼、身份、授權(quán)機關標識)A 授權(quán)機關使用對稱密碼體制的加密算法信息K 授權(quán)機關使用對稱密碼體制的加密密鑰G 授權(quán)機關管理信息
S 授權(quán)機關私鑰[e, n, g]授權(quán)機關公鑰體系密鑰[e, n, g,S]授權(quán)機關密鑰證書授權(quán)用戶i的公鑰證書例如為GCi (授權(quán)給授權(quán)機關公鑰證書)=(Ti,idi,ei, nim, Gi)證書的參數(shù)注釋Ti 時變參數(shù)(登記時間、有效時間、授權(quán)時間)idi 用戶參數(shù)(網(wǎng)址、電話號碼、身份、授權(quán)中心標識)ei 用戶使用非對稱密碼體制加密的公鑰信息nim 非對稱密碼體制公鑰的公共模數(shù)Gi 授權(quán)機關防偽信息授權(quán)用戶i的私鑰證書例如為授權(quán)中心授權(quán)用戶私鑰證書[e,η, g,Si]證書的參數(shù)注釋e, η 授權(quán)機關公鑰g 授權(quán)機關密鑰體系本原元Si 用戶私鑰圖1示出了根據(jù)本發(fā)明第一實施例的認證過程的流程圖。在步驟S100,用戶i生成自身的身份認證參數(shù)。將參見圖2進一步具體描述用戶 i的身份認證參數(shù)的生成過程。在步驟S105,用戶j生成自身的身份認證參數(shù)。以類似于圖2所示的流程來實現(xiàn) 步驟S105。在步驟S110,用戶i把自己的身份認證參數(shù)發(fā)送給用戶j。在步驟S115,用戶j把自己的身份認證參數(shù)發(fā)送給用戶i。在步驟S120,用戶i認證用戶j。具體而言,用戶i利用所接收的用戶j的身份認 證參數(shù)來認證用戶j。參見圖6將進一步具體描述用戶i認證用戶j的過程。在步驟S125,用戶j認證用戶i。具體而言,用戶j利用所接收的用戶i的身份認 證參數(shù)來認證用戶i。以類似于圖6所示的流程來實現(xiàn)步驟S125。在步驟S130,判斷用戶i、j雙方是否通過身份認證。圖2示出圖1所示的認證過程中步驟S105的實現(xiàn)過程的流程圖,即用戶i的身份 認證信息生成過程的流程圖。在步驟S200,用戶i產(chǎn)生一個隨機數(shù)Ri。在步驟S205,生成安全熵信息參數(shù)CTi。在本發(fā)明的第一實施例中,安全熵信息參數(shù)是一個隨機數(shù)Rsi。隨機數(shù)Ri或Rsi可以采用多種方式來生成,包括但不限于以下方式(1)可以是分別在自己的設備上取值為計算開始時刻的時間(年、月、日、時、分) 信息來自設備系統(tǒng)的實時鐘;(2)可以是一個隨機數(shù)發(fā)生器產(chǎn)生的隨機數(shù);(3)可以是一個時間戳tA和一個現(xiàn)時rA的組合數(shù),即
R(i, j) = [tA| |rA]時間戳有一個可選的產(chǎn)生時間和過期時間組成,這將防止報文的延遲傳送?,F(xiàn)時 用于檢測重放攻擊?,F(xiàn)時值在報文的有效時間內(nèi)必須是唯一的。⑴現(xiàn)時rA是Xi (或Xj)的函數(shù),當tA的分鐘指針在1 15分鐘區(qū)域時,Xi (或 Xj)的二進制串每間隔5位取樣組成的二進制串為rA ;(ii)當tA的分鐘指針在15 30分鐘區(qū)域時,Xi (或Xj)的二進制串每間隔7位 取樣組成的二進制串為rA;(iii)當tA的分鐘指針在30 45分鐘區(qū)域時,Xi (或Xj)的二進制串每間隔11 位取樣組成的二進制串為rA;(iv)當、的分鐘指針在45 60分鐘區(qū)域時,Xi (或Xj)的二進制串每間隔13位 取樣組成的二進制串為rA。(4)可以是一個計算模型生成的混合數(shù)在步驟S210,利用可重組邏輯電路,生成安全熵混合數(shù)STi。具體而言,根據(jù)安全熵信息參數(shù)CTi和重組邏輯模型計算安全熵混合數(shù)STi STi = CTi (RELOG)將參見圖3進一步詳細描述步驟S210的處理過程。在步驟S215,計算參數(shù)Xi、Yi。根據(jù)本發(fā)明的第一實施例,用戶i按照如下表達式計算Xi和Yi。Xi = ge *Ei mod η表達式(1)Yi = Si * gSTi Ei mod η 表達式(2)以上表達式(1)中的參數(shù)e、η、g是授權(quán)機關的公鑰證書C所公布的參數(shù)。參數(shù) Si是用戶i的私鑰。步驟S215計算出的Xi、Yi與步驟S205生成的CTi 一起作為用戶i的身份認證參數(shù)。在步驟S220,計算身份認證參數(shù)Xi、Yi、CTi的摘要。步驟S220可以采用各種已有的摘要算法來提取身份認證參數(shù)Xi、Yi、CTi的摘要 信息 Xim、Yim、CTim0例如,可以采用散列函數(shù)將數(shù)據(jù)壓縮為一個定長的、不可逆和唯一的一組雜湊值。 常用的散列雜湊算法有MD-5和SHA-I。用戶i可以事先指定摘要算法。例如,關于用戶i 所使用的摘要算法的信息可以被定義為Ai的一部分。Ai可以被公布。應當指出,在其它實施例中,上述步驟S220可以被省略,即可以不計算摘要信息 Xim、Yim、CTim0在圖1的步驟S105,與圖2所示的用戶i的認證身份參數(shù)生成過程相類似,用戶j 產(chǎn)生自己的身份認證參數(shù)。用戶j產(chǎn)生隨機數(shù)Rj,建立安全熵信息參數(shù)CTj,并計算STj = CTj (RELOG)Xj = ge *EJ mod ηYj = Sj * gSTJ KJ mod η由此產(chǎn)生用戶j的身份認證參數(shù)Xj、Yj、CTj,以及身份認證參數(shù)Xj、Yj、CTj的摘要。以下結(jié)合圖3-5來說明圖2的步驟S210的實施過程。本申請的發(fā)明人在2002年1月8日提出的申請?zhí)枮?2100030. 1、發(fā)明名稱為“一 種邏輯可重組電路”的中國專利申請中詳細介紹了可重組邏輯的設計思想以及實施方式。 上述專利申請在2003年7月23日被公開,公開號為CN1431588,在2007年1月12日被中 國專利局授予專利權(quán)。上述專利通過引用而包含于本文。本申請進一步把上述專利提出的可重組邏輯電路應用到密碼領域。使用可重組邏 輯的加密電路是可重組密碼邏輯,其設計思想是在密碼邏輯電路中設置某些可被不同密 碼算法重復使用的功能部件,并在可重用部件的內(nèi)部和重用部件之間的連接網(wǎng)絡之中設置 某些指令界面可見的可控節(jié)點,通過改變這些可控節(jié)點的控制編碼,可以改變重用部件的 內(nèi)部結(jié)構(gòu)或相互之間的連接關系,從而實現(xiàn)不同的密碼操作,匹配不同的密碼算法。任何一個密碼算法都是由一系列的基本操作按照一定順序連接而成。設A是一個 密碼算法,則A可以表示成A= (opia+oplj2+. . . +OPljml) * (op2j!+OP2j2+. . . +op2jIIl2) * …* (ορη>1+ορη> 2+· · · +OPn.mn)表達式(3)其中,oPi,」(j = 1,2, ...,m i,i = 1,2, ...,η)表示基本密碼操作,“ + ”表示并 行操作關系、“ * ”表示串行操作關系。通過對大量的密碼算法進行分析和研究,我們發(fā)現(xiàn)密碼算法具有一個顯著的特 征很多不同的密碼算法具有相同或相似的基本操作成分,或者說同一基本操作成分在不 同算法中出現(xiàn)的頻度很高。由于多種密碼算法往往具有很多相同或相似的基本操作成分,這些基本操作成分 所對應的硬件資源就可以被多種不同的密碼算法所共用,因此我們就能夠以較少的電路規(guī) 模構(gòu)造一套邏輯電路來實現(xiàn)多種算法。這就是可重組密碼邏輯的設計依據(jù)。例如,假設實 現(xiàn)算法A1所需要的硬件資源的集合為EA1 = Ie1, e2, e3, e4, e5},實現(xiàn)算法A2所需要的硬件 資源的集合為EA2= Ie1, e3,e6,e7},實現(xiàn)算法A3所需要的硬件資源的集合為EA3= {e2, e4, e6, e8},貝Ij Eai> Ea2> Ea3 的并集為 E = Eai U Ea2 U Ea3 = {e1 e2, e3, e4, e5, e6, e7, e8};由于 E 中包含了實現(xiàn)算法Ap A2、A3所需的全部硬件資源,因此E能夠?qū)崿F(xiàn)Ap A2、A3三個不同的算 法并且E的規(guī)模小于EA1、EA2、Ea3的規(guī)模之和,即S(E) < S (Eai) +S (Ea2) +S (Ea3),實際上S (E) =[S (Eai) +S (Ea2) +S (Ea3) ] -S (θι) -S (e2) -S (e3) -S (e4) -S (e6)。這個例子說明,如果我們將實 現(xiàn)多種不同密碼算法的硬件資源疊加起來(即求并集)構(gòu)成一套密碼邏輯電路,則該密碼 邏輯電路能夠?qū)崿F(xiàn)上述的多種不同的密碼算法,并且由于多種不同密碼算法所需的資源中 往往存在重用部件(被兩個以上的算法所使用的部件),因此該密碼邏輯電路的規(guī)模一般 要小于上述多種不同密碼算法所需資源的總和。通過對數(shù)據(jù)加/解密原理和大量典型的密碼算法進行分析,我們發(fā)現(xiàn)密碼算法所 使用的基本操作成分大多局限在移位、置換、S盒代替、模乘/加器、異或、反饋移位寄存器 等少數(shù)幾種操作類型。因此隨著密碼算法個數(shù)η的增加,其重用部件和重用次數(shù)也會越來 越多,從而按照資源疊加方法構(gòu)造的密碼邏輯的規(guī)模的增長速度會越來越慢,不會因為算 法個數(shù)η的增加而導致規(guī)模的無限膨脹。我們可以想象,當η足夠大時,我們只需增加很少
9規(guī)模(或者根本不用增加規(guī)模)就可以實現(xiàn)第n+1個算法。例如,在我們針對DES、IDEA、 GifforcUGeffe等4個算法設計的可重組密碼實例系統(tǒng)RELOG_DIGG中,不需增加任何資源 就可以實現(xiàn)FEAL算法和PES算法,只需增加一個模232加法器,就可以實現(xiàn)前蘇聯(lián)國家加 密標準G0ST。另外,當η足夠大時,η個算法的資源疊加構(gòu)成的密碼邏輯電路中將包含很多 各種類型的常用的密碼組件(所謂密碼組件是指實現(xiàn)基本密碼操作的部件),因此,我們可 以利用這些已有的密碼組件開發(fā)新的密碼算法,從這個意義上講,可重組密碼邏輯電路具 有一定的擴展性。因此,可重組邏輯為數(shù)據(jù)加密提供了一條新的途徑,其內(nèi)部電路結(jié)構(gòu)可重組的特 性使其體系結(jié)構(gòu)具有了一定程度的柔性,較好地解決了傳統(tǒng)的剛性體系結(jié)構(gòu)所帶來的體系 結(jié)構(gòu)與不同應用需求不匹配的問題。采用可重組邏輯,能夠快速、靈活地實現(xiàn)多種不同的密 碼算法。例如,可重組密碼芯片能夠隨時方便地改變算法,所以能夠有效地防止密碼算法泄 露或被攻破。此外,一塊可重組密碼芯片可以代替多塊針對特定算法的密碼芯片,從而大大 降低了密碼芯片的開發(fā)和生產(chǎn)費用。由此可見,可重組密碼芯片不僅具有重大的經(jīng)濟價值, 而且具有極其重要的安全意義。圖3示出本發(fā)明的第一實施例的可重組密碼邏輯電路300的基本結(jié)構(gòu)框圖。圖3的可重組密碼邏輯電路300接收輸入CTi 301、控制參數(shù)CTRL 303,并具有輸 出 STi 302。可重組密碼邏輯電路300內(nèi)部包括可被不同密碼算法重復使用的功能部件所構(gòu) 成的集合,表示為E = {ei,e2,. . . ,ej (m e N)。CTRL表示某些指令界面可見、可控的部件所 構(gòu)成的集合,CTRL = IctrlljCtrl2,...,ctrlj (η e N)。C表示上述功能部件或可控部件之 間的連接關系所構(gòu)成的集合,C= {R<a,b>|R<a,b>是a到b的連接關系,a,b e E U CTRL}。 由Ε、CTRL、C確定了可重組密碼邏輯電路300,記為RELOG = {E,CTRL, C}。其中ei e E(i =1,2,... ,m)稱為重組元素,Ctrli e CTRL(i = 1,2, . . . , η)稱為可控節(jié)點。顯然,可重組密碼邏輯電路300的功能將隨著可控節(jié)點的控制信號CTRL303的改 變而改變,設可重組密碼邏輯RELOG = {E,CTRL, C}所能實現(xiàn)的功能用FUNC_REL0G表示,其 可控節(jié)點對應的控制信號的集合仍然用CTRL表示(為簡單起見,以后在不至于引起混淆的 情況下,我們將可控節(jié)點對應的控制信號仍然稱為可控節(jié)點),則FUNC_REL0G是CTRL的函 數(shù),表示為FUNC_REL0G = f (CTRL) 表達式(4)在控制參數(shù)CTRL303的控制下,可重組密碼邏輯電路300可以被重組為各種邏輯 電路(或加密電路),從而以不同的邏輯函數(shù)(或加密函數(shù))把輸入CTi 301變?yōu)檩敵鯯Ti 303。圖4示出圖3所示可重組密碼邏輯的一個簡單示例,其中在CTRL的控制下可以實 現(xiàn)不同的邏輯函數(shù)。在圖4所示的電路中,AND2表示2輸入與門,AND3表示3輸入與門,0R2表示2輸 入或門,NOT表示非門,A、B、C、D是4個輸入變量,F(xiàn)是輸出變量。在上述電路中設置了 2 個可控節(jié)點,其控制信號分別記為CTRLl和CTRL2。通過對CTRLl和CTRL2賦以不同的值, 就可以改變上述電路的邏輯功能,實現(xiàn)不同的邏輯函數(shù)。下表給出了當CTRLl和CTRL2取 不同的值的時候,上述電路所實現(xiàn)的函數(shù)關系。
表1 圖4所示可重組邏輯實現(xiàn)的功能
權(quán)利要求
1.一種基于公鑰體系的認證方法,其中第一用戶被第一授權(quán)機關分配公鑰證書GCi, 所述公鑰證書GCi至少包括用戶參數(shù)idi,所述公鑰證書GCi被公布,所述方法包括步驟產(chǎn)生第一隨機數(shù)Ri和安全熵參數(shù)CTi,基于安全熵參數(shù)CTi,利用可重組密碼邏輯電路生成安全熵混合數(shù)STi ; 基于第一隨機數(shù)Ri、所述安全熵參數(shù)CTi、安全熵混合數(shù)STi來產(chǎn)生第一用戶的第一身 份認證參數(shù);第一用戶把第一身份認證參數(shù)發(fā)送給第二用戶;第二用戶從接收的第一身份認證參數(shù)計算出第一用戶的公鑰證書GCi’,并比較計算出 的公鑰證書GCi’和公布的公鑰證書GCi,以認證第一用戶。
2.根據(jù)權(quán)利要求1的方法,其中生成第一身份認證參數(shù)的步驟包括 基于財、01、311,按照如下表達式產(chǎn)生乂1、¥土 Xi = ge * Ei mod n Yi = Si * gSTi Ei mod n其中Xi、Yi、CTi作為第一用戶的第一身份認證參數(shù),其中e、n、g是授權(quán)機關的公鑰證 書C所公布的參數(shù),參數(shù)Si是第一用戶的私鑰。
3.根據(jù)權(quán)利要求2的方法,其中第二用戶計算第一用戶的公鑰證書GCi’的步驟包括 提取第一用戶的安全熵參數(shù)CTi ;利用可重組密碼邏輯電路從安全熵參數(shù)CTi計算出第一用戶的安全熵指數(shù)CKi ; 利用Xi、Yi、CKi,按照下述表達式計算第一用戶的公鑰證書GCi’ Xieki/Yiemod n = GCi,,其中e、n是授權(quán)機關的公鑰證書C所公布的參數(shù)。
4.根據(jù)權(quán)利要求1的方法,其中可重組密碼邏輯電路在控制參數(shù)CTRL的控制下,選擇 性地以多個加密算法中的一個算法,基于安全熵參數(shù)CTi來計算安全熵混合數(shù)STi。
5.根據(jù)權(quán)利要求1的方法,其中安全熵參數(shù)CTi是一個隨機數(shù)Rsi。
6.根據(jù)權(quán)利要求1的方法,其中安全熵參數(shù)CTi包括隨機數(shù)Rsi、用戶安全熵CSTi、系 統(tǒng)安全熵CSKi。
7.根據(jù)權(quán)利要求6的方法,其中所述可重組密碼邏輯電路包括用戶可重組密碼邏輯電 路和系統(tǒng)可重組密碼邏輯電路,所述用戶安全熵CSTi用于配置用戶可重組密碼邏輯電路, 所述系統(tǒng)安全熵CSKi用于配置系統(tǒng)可重組密碼邏輯電路。
8.根據(jù)權(quán)利要求1的方法,其中第一用戶的用戶參數(shù)idi包括第一用戶的網(wǎng)址、電話號 碼、身份、授權(quán)中心標識等中的至少之一。
9.一種基于公鑰體系的認證方法,其中第一用戶被第一授權(quán)機關分配公鑰證書GCi, 第一用戶、第二用戶還被第二授權(quán)機關分配密鑰Km以及被第三授權(quán)機關分配密鑰Kn,所述 公鑰證書GCi至少包括用戶參數(shù)idi,所述公鑰證書GCi被公布,所述方法包括步驟第一用戶利用可重組密碼邏輯電路來產(chǎn)生第一用戶的第一身份認證參數(shù); 第一用戶使用第二授權(quán)機關的密鑰Km和第三授權(quán)機關的密鑰Kn加密第一用戶的第一 身份認證參數(shù);第一用戶把加密后的第一身份認證參數(shù)發(fā)送給第二用戶;第二用戶使用第二授權(quán)機關的密鑰Km和第三授權(quán)機關的密鑰Kn解密所接收的加密的第一身份認證參數(shù)CXY,以得到第一用戶的第一身份認證參數(shù);第二用戶從接收的第一身份認證參數(shù)計算出第一用戶的公鑰證書GCi’,并比較計算出 的公鑰證書GCi’和第一用戶公布的公鑰證書GCi,以認證第一用戶。
10.根據(jù)權(quán)利要求9的方法,其中生成第一身份認證參數(shù)的步驟包括 第一用戶產(chǎn)生第一隨機數(shù)Ri和安全熵參數(shù)CTi,基于所述安全熵參數(shù)CTi,利用可重組密碼邏輯電路生成安全熵混合數(shù)STi ; 基于Ri、CTi、STi,按照如下表達式產(chǎn)生Xi、Yi Xi = ge * Ei mod n Yi = Si 女 gSTiEimod n其中Xi、Yi、CTi作為第一用戶的第一身份認證參數(shù),其中e、n、g是授權(quán)機關的公鑰證 書C所公布的參數(shù),參數(shù)Si是第一用戶的私鑰。
11.根據(jù)權(quán)利要求10的方法,其中使用第二授權(quán)機關的密鑰Km和第三授權(quán)機關的密鑰 Kn加密第一用戶的第一身份認證參數(shù)的步驟包括按照下式使用Km和Kn來加密第一身份認證參數(shù)Xi、Yi、CTi, CXY =Yp CT》,其中Am是第一用戶指定的加密算法。
12.根據(jù)權(quán)利要求10的方法,其中可重組密碼邏輯電路在控制參數(shù)CTRL的控制下,選 擇性地以多個加密算法中的一個算法,基于安全熵參數(shù)CTi來計算安全熵混合數(shù)STi。
13.一種基于公鑰體系的用戶認證設備,所述用戶認證設備包括存儲器,用于存儲被第一授權(quán)機關分配公鑰證書GCi,所述公鑰證書GCi至少包括用戶 參數(shù)idi,隨機數(shù)發(fā)生器,用于產(chǎn)生隨機數(shù)Ri, 安全熵參數(shù)產(chǎn)生裝置,用于產(chǎn)生安全熵參數(shù)CTi ; 可重組邏輯電路,基于安全熵參數(shù)CTi來生成安全熵混合數(shù)STi ; 身份認證信息生成裝置,用于基于所述隨機數(shù)Ri、安全熵參數(shù)CTi、安全熵混合數(shù)STi 來生成第一用戶i的第一身份認證參數(shù);收發(fā)裝置,用于把第一用戶i的第一身份認證參數(shù)發(fā)送給第二用戶認證設備,以及從 第二用戶認證設備接收第二用戶j的第二身份認證參數(shù);身份認證信息計算裝置,用于從接收的第二身份認證參數(shù),計算第二用戶j的公鑰證 書GCj,;以及比較裝置,用于比較計算出的公鑰證書GCj’和第二用戶公布的公鑰證書GCj,以認證第二用戶。
全文摘要
本發(fā)明涉及一種零知識證明的認證方法及認證裝置。認證方法是基于公鑰體系,其中第一用戶被第一授權(quán)機關分配公鑰證書GCi,所述公鑰證書GCi至少包括用戶參數(shù)idi,所述公鑰證書GCi被公布,所述方法包括步驟產(chǎn)生第一隨機數(shù)Ri和安全熵參數(shù)CTi,基于安全熵參數(shù)CTi,利用可重組密碼邏輯電路生成安全熵混合數(shù)STi;基于第一隨機數(shù)Ri、所述安全熵參數(shù)CTi、安全熵混合數(shù)STi來產(chǎn)生第一用戶的第一身份認證參數(shù);第一用戶把第一身份認證參數(shù)發(fā)送給第二用戶;第二用戶從接收的第一身份認證參數(shù)計算出第一用戶的公鑰證書GCi’,并比較計算出的公鑰證書GCi’和公布的公鑰證書GCi,以認證第一用戶。
文檔編號H04L9/32GK101997683SQ20091016136
公開日2011年3月30日 申請日期2009年8月10日 優(yōu)先權(quán)日2009年8月10日
發(fā)明者劉大力, 曹春春 申請人:北京多思科技發(fā)展有限公司