專利名稱:一種密鑰傳遞及數(shù)字簽名的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種密鑰傳遞及數(shù)字簽名的方法,屬密碼技術(shù)領(lǐng)域。
數(shù)據(jù)通訊中,往往需要滿足以下的安全要求①除了發(fā)送方和接收方之外,使其他人無法知悉通訊內(nèi)容;②通訊的內(nèi)容不易被篡改;③接收方能夠確知發(fā)送方不是假冒的,發(fā)送方不能否認(rèn)自己發(fā)送的內(nèi)容。這就是目前密碼學(xué)中通常所說的密鑰傳遞和數(shù)字簽名。
發(fā)送方要發(fā)送的原文稱為明文,將明文加密后就變成密文。發(fā)送方發(fā)送密文,第三者只能看見密文,就無法獲得通訊內(nèi)容。接收方收到密文后,需要密鑰才能還原出明文。密鑰傳遞就是指接收方獲得密鑰的方法,這種方法必須可靠的保證只有接收方才能得到密鑰,第三者無法得到密鑰。為了使接收方覺得可信,發(fā)送方發(fā)送的內(nèi)容中還應(yīng)該包含自己對明文的數(shù)字簽名。這個(gè)簽名首先要保證接收方能夠驗(yàn)證其真?zhèn)危瑫r(shí)必須保證只有發(fā)送方才能生成這個(gè)簽名,其他人(包括接收方在內(nèi))都不能偽造簽名。接收方通過驗(yàn)證數(shù)字簽名,就可以確定發(fā)送方的身份,也可以確定通訊內(nèi)容是否被中間篡改過。同時(shí)依據(jù)簽名,使得發(fā)送方無法抵賴。
目前已有的密碼體系中,RSA體制是一個(gè)成熟的公開密鑰密碼體制,它的安全性基于數(shù)論中的Euler定理和計(jì)算復(fù)雜性理論中的下述論斷求兩個(gè)大素?cái)?shù)的乘積是容易計(jì)算的,但要分解兩個(gè)大素?cái)?shù)的乘積,求出它們的素因子則是非常困難的。利用RSA體制可以解決通訊中的密鑰傳遞問題和數(shù)字簽名問題,但是這個(gè)體制的運(yùn)算量比較大、密鑰比較長,加密、解密速度慢,對實(shí)現(xiàn)該方法的硬件要求高,因此在實(shí)際應(yīng)用中有一定的局限性。
本發(fā)明的目的是提出一種密鑰傳遞及數(shù)字簽名的方法,通過構(gòu)造一種新的密碼體制實(shí)現(xiàn)密鑰傳遞和數(shù)字簽名,同時(shí)這種體制既不需要很大的運(yùn)算量,也不需要很長的密鑰。
本發(fā)明提出的密鑰傳遞的方法,包括以下各步驟(1).選擇一個(gè)函數(shù)f函數(shù)y=f(a,b,c,d)是一個(gè)公開的單向散列函數(shù),它滿足如果定義全集Id={(y,a,b,c)|y=f(a,b,c,d),a∈Z,b∈Z,c∈Z}那么在d未知,已知f,且已知Id的任意一個(gè)子集Qd時(shí),d是難以求解的,且Qd的補(bǔ)集中的任意一個(gè)元素也是難以求解的;(2).為通信雙方各制造一個(gè)黑箱,每個(gè)黑箱固化有相應(yīng)的編號K,各黑箱的K值不同,黑箱內(nèi)還固化一個(gè)數(shù)據(jù)S,各黑箱S相同;黑箱利用上述第一步的函數(shù)f實(shí)現(xiàn)二項(xiàng)功能功能1向黑箱輸入R、Ki,黑箱根據(jù)上述函數(shù),計(jì)算出Y=f(R,Ki,K,S);
功能2向黑箱輸入R、Ki,黑箱根據(jù)上述第一步的函數(shù),計(jì)算出Y=f(R,K,Ki,S);上列算式中R為信息傳遞的發(fā)起方確定的一個(gè)任意數(shù),K為固化在黑箱內(nèi)的本黑箱編號,Ki為輸入黑箱的編號;(3).密鑰傳遞設(shè)發(fā)送方的黑箱號為Ka,接收方的黑箱號為Kb,發(fā)送方A任意選擇一個(gè)數(shù)據(jù)R,然后調(diào)用上述第2步中黑箱的功能1,向自己的黑箱輸入數(shù)據(jù)R和接收方的黑箱號Kb,亦即上述功能1的的Ki,黑箱輸出Y=f(R,Kb,Ka,S),Y即為需要傳遞的密鑰;然后A向B發(fā)送數(shù)據(jù)R,接收方B在自己的黑箱上調(diào)用功能2,輸入R和發(fā)送方的黑箱號Ka,亦即上述功能2中的Ki,黑箱輸出Y=f(R,Kb,Ka,S),接收方B得到與發(fā)送方A相同的密鑰Y,此時(shí)密鑰Y傳遞結(jié)束。
本發(fā)明提出的數(shù)字簽名的方法,包括以下各步驟(1).選擇一個(gè)函數(shù)f函數(shù)y=f(a,b,c,d)是一個(gè)公開的單向散列函數(shù),它滿足如果定義全集Id={(y,a,b,c)|y=f(a,b,c,d),a∈Z,b∈Z,c∈Z那么在d未知,已知f,且已知Id的任意一個(gè)子集Qd時(shí),d是難以求解的,且Qd的補(bǔ)集中的任意一個(gè)元素也是難以求解的;(2).為通信雙方各制造一個(gè)黑箱,黑箱固化有相應(yīng)的編號K,各黑箱的K值不同,黑箱內(nèi)還固化一個(gè)數(shù)據(jù)S,各黑箱S值相同,黑箱利用上述第一步函數(shù)f完成二項(xiàng)功能功能1向黑箱輸入R、Ki,黑箱根據(jù)上述函數(shù),計(jì)算出Y=f(R,Ki,K,S);功能2向黑箱輸入R、Ki、Y,即功能1的計(jì)算結(jié)果,黑箱計(jì)算出G=f(R,Ki,Ki,S),將G與Y作比較,如果相同,則輸出1,否則輸出0;(3)、數(shù)字簽名及驗(yàn)證設(shè)發(fā)送方的黑箱號為Ka,接收方的黑箱號為Kb,設(shè)定需要簽名的數(shù)據(jù)為R,A在自己的黑箱上調(diào)用功能1,向黑箱輸入數(shù)據(jù)R和自己的黑箱號Ka,Ka即為上述功能1中的Ki,黑箱輸出Y=f(R,Ka,Ka,S),Y即為A對數(shù)據(jù)R的簽名結(jié)果,簽名結(jié)束;A將R及Y同時(shí)發(fā)送給B,B接收到R和Y后,在自己的黑箱上,調(diào)用功能2,并輸入從A方得到的R、Y及發(fā)送方的黑箱號Ka,黑箱計(jì)算出G=f(R,Ka,Ka,S),將G與Y作比較,如果兩者一致則黑箱輸出1,否則輸出0,輸出1則為真,反之則為偽造簽名,此時(shí)簽名驗(yàn)證結(jié)束。
本發(fā)明設(shè)計(jì)的密鑰傳遞及數(shù)字簽名的方法,密碼體制結(jié)構(gòu)簡單、運(yùn)算量小、密鑰短,便于硬件實(shí)現(xiàn)。
下面詳細(xì)介紹本發(fā)明的內(nèi)容。
首先選擇一個(gè)函數(shù)f,例如MD5變換或者SHA-1變換。
函數(shù)y=f(a,b,c,d)是一個(gè)公開的單向散列函數(shù),它滿足如果定義全集Id={(y,a,b,c)|y=f(a,b,c,d),a∈Z,b∈Z,c∈Z}那么在d未知,已知f,且已知Id的任意一個(gè)子集Qd時(shí),d是難以求解的,且Qd的補(bǔ)集中的任意一個(gè)元素也是難以求解的。
上述函數(shù)的特點(diǎn),就是在d未知時(shí),無論已知多少組數(shù)據(jù)y、a、b、c,并且每組數(shù)據(jù)都滿足等式y(tǒng)=f(a,b,c,d),但在未知的y、a、b、c中,已知其中的任意三個(gè)數(shù)都無法求解第四個(gè)數(shù)。密鑰傳遞和數(shù)字簽名就是利用函數(shù)的這個(gè)特點(diǎn)實(shí)現(xiàn)的。具備這個(gè)特點(diǎn)的函數(shù)并不唯一,而且實(shí)現(xiàn)起來運(yùn)算量也很小。參數(shù)d就是這個(gè)體制中的密碼,基于函數(shù)f的特點(diǎn),d的長度要求很低,只要能夠抵御窮舉搜索就可以。這個(gè)體制中的其他參數(shù)也是這樣的要求。
然后為通信雙方各制造一個(gè)黑箱,黑箱有相應(yīng)的編號K,黑箱內(nèi)固化一個(gè)數(shù)據(jù)S,黑箱、K值和S值有如下特性①K為黑箱編號,各個(gè)黑箱的編號不同,K固化在黑箱內(nèi),是不可改的。每個(gè)人都知道自己的和對方的黑箱編號。黑箱內(nèi)還固化了一個(gè)數(shù)據(jù)S,所有黑箱的S是相同的,但所有人都不知道S的值。
②黑箱利用上述選擇的函數(shù)f實(shí)現(xiàn)幾個(gè)功能,在下面的功能說明中,K是黑箱自己的編號;Ki是輸入給黑箱的編號,Ki是自己的編號或?qū)Ψ胶谙涞木幪枴?br>
黑箱完成下列幾項(xiàng)功能功能1向黑箱輸入R、Ki,黑箱根據(jù)上述第一步函數(shù),計(jì)算出Y=f(R,Ki,K,S);功能2向黑箱輸入R、Ki,黑箱根據(jù)上述第一步的函數(shù),計(jì)算出Y=f(R,K,Ki,S);功能3向黑箱輸入R、Ki、Y,如果黑箱計(jì)算出G=f(R,Ki,Ki,S),然后將G與Y作比較,如果兩者一致則黑箱輸出1,否則輸出0。
上列算式中R為信息傳遞的發(fā)起方確定的一個(gè)任意數(shù),Ki為黑箱的編號。
注意功能1、2中Ki、K在函數(shù)f入口數(shù)據(jù)中的位置不同功能3只輸出比較結(jié)果,不輸出f(R,Ki,Ki,S)的運(yùn)算結(jié)果。
在實(shí)際應(yīng)用中,黑箱就是一個(gè)經(jīng)過加密處理的硬件。硬件能夠可靠保密數(shù)據(jù)S,而且硬件內(nèi)部的處理過程是不可見、不可跟蹤的。各個(gè)黑箱除了K值不同(且肯定不同)之外,其他都完全相同。
通訊雙方利用自己的黑箱就可以實(shí)現(xiàn)密鑰傳遞和數(shù)字簽名。假設(shè)發(fā)送方為A,持有黑箱的編號為Ka;接收方為B,持有黑箱的編號為Kb;第三者為C,持有黑箱的編號為Kc。A、B為正常的通訊者,第三者是任意一個(gè)攻擊者,試圖入侵A、B之間的通訊。
密鑰傳遞的過程如下首先發(fā)送方A任意選擇一個(gè)數(shù)據(jù)R,然后調(diào)用上述黑箱的功能1,向黑箱輸入數(shù)據(jù)R和接收方的黑箱號Kb,黑箱輸出Y=f(R,Kb,Ka,S),Y即為需要傳遞的密鑰。然后A向B發(fā)送數(shù)據(jù)R,接收方B用自己的黑箱號Kb及從A方得到的數(shù)據(jù)R,在自己的黑箱上調(diào)用功能2,輸入R和發(fā)送方的黑箱號Ka,黑箱輸出Y=f(R,Kb,Ka,S)。接收方B得到與發(fā)送方A相同的密鑰Y,此時(shí)密鑰Y傳遞結(jié)束。
第三者C可以截獲A發(fā)送給B的數(shù)據(jù)R,但是無法得到密鑰Y。因?yàn)镃雖然知道A、B是如何使用自己黑箱的,即C知道方程
Y=f(R,Kb,Ka,S)但是由于C無法知道A、B黑箱的S值,該S值連A、B自己都不知道,C也無法只通過截獲到的A發(fā)送給B的R值,求出Y,亦即得到密鑰。
假設(shè),C持有黑箱Kc,且黑箱C的S值與A、B黑箱的S值相同,此時(shí)由于C的黑箱號Kc與Ka、Kb都不同,同時(shí)黑箱C的功能1、2中都使用了Kc,功能3中只輸出比較結(jié)果,因此,C也無法利用自己的黑箱得到Y(jié)。
所以,利用黑箱的功能1、2就能夠?qū)崿F(xiàn)密鑰傳遞。
數(shù)字簽名及驗(yàn)證的過程如下首先發(fā)送方A設(shè)定需要簽名的數(shù)據(jù)為R,A在自己的黑箱上調(diào)用功能1,向黑箱輸入數(shù)據(jù)R和自己的黑箱號Ka,黑箱輸出Y=f(R,Ka,Ka,S)。Y即為A對數(shù)據(jù)R的簽名結(jié)果,A將R及Y同時(shí)發(fā)送給B;B接收到R后,在自己的黑箱上,調(diào)用功能3,輸入從A方得到的R、Y及發(fā)送方的黑箱號Ka,黑箱內(nèi)部計(jì)算G=f(R,Ka,Ka,S),比較G與Y,如果一致則黑箱輸出1,否則輸出0,輸出1則為真,反之則為偽造簽名,此時(shí)簽名結(jié)束。
根據(jù)上述簽名方法,第三者C也可以利用自己的黑箱功能3來驗(yàn)證這個(gè)簽名的真?zhèn)?。這里,A對R的簽名結(jié)果為Y,B和C都只能利用自己的黑箱驗(yàn)證Y,不能生成Y。簽名和驗(yàn)證的方法都是公開的,即B、C都知道方程Y=f(R,Ka,Ka,S)但是由于B、C都無法知道S,也就無法由R求出Y(見函數(shù)f的說明)。
另外,黑箱Kb功能1、2中強(qiáng)制使用了Kb,黑箱Kc功能1、2中強(qiáng)制使用了Kc,而兩個(gè)黑箱的功能3都只輸出一個(gè)比較結(jié)果,因此,B和C也無法利用自己的黑箱偽造簽名。
所以,利用黑箱的功能1、3能夠?qū)崿F(xiàn)數(shù)字簽名。
權(quán)利要求
1.一種密鑰傳遞的方法,其特征在于,該方法包括以下各步驟(1).選擇一個(gè)函數(shù)f函數(shù)y=f(a,b,c,d)是一個(gè)公開的單向散列函數(shù),它滿足如果定義全集Id={(y,a,b,c)|y=f(a,b,c,d),a∈Z,b∈Z,c∈Z}那么在d未知,已知f,且已知Id的任意一個(gè)子集Qd時(shí),d是難以求解的,且Qd的補(bǔ)集中的任意一個(gè)元素也是難以求解的;(2).為通信雙方各制造一個(gè)黑箱,每個(gè)黑箱固化有相應(yīng)的編號K,各黑箱的K值不同,黑箱內(nèi)還固化一個(gè)數(shù)據(jù)S,各黑箱S不同,黑箱利用上述第一步的函數(shù)f實(shí)現(xiàn)二項(xiàng)功能;功能1向黑箱輸入R、Ki,黑箱根據(jù)上述第一步函數(shù),計(jì)算出Y=f(R,Ki,K,S);功能2向黑箱輸入R、Ki,黑箱根據(jù)上述第一步的函數(shù),計(jì)算出Y=f(R,K,Ki,S);上列算式中R為信息傳遞的發(fā)起方確定的一個(gè)任意數(shù),K為固化在黑箱內(nèi)的數(shù),Ki為輸入黑箱的編號;(3).密鑰傳遞設(shè)發(fā)送方A的黑箱號為Ka,接收方B的黑箱號為Kb,發(fā)送方A任意選擇一個(gè)數(shù)據(jù)R,然后調(diào)用上述第2步中黑箱的功能1,向黑箱輸入數(shù)據(jù)R和接收方的黑箱號Kb,即上述功能1的Ki,黑箱輸出Y=f(R,Kb,Ka,S),Y即為需要傳遞的密鑰,然后A向B發(fā)送數(shù)據(jù)R,接收方B在自己的黑箱上調(diào)用功能2,輸入R和發(fā)送方的黑箱號Ka,即上述功能2中的Ki,黑箱輸出Y=f(R,Kb,Ka,S)。接收方B得到與發(fā)送方A相同的密鑰Y,此時(shí)密鑰Y傳遞結(jié)束。
2.一種數(shù)字簽名的方法,其特征在于,該方法包括以下各步驟(1).選擇一個(gè)函數(shù)f函數(shù)y=f(a,b,c,d)是一個(gè)公開的單向散列函數(shù),它滿足如果定義全集Id={(y,a,b,c)|y=f(a,b,c,d),a∈Z,b∈Z,c∈Z那么在d未知,已知f,且已知Id的任意一個(gè)子集Qd時(shí),d是難以求解的,且Qd的補(bǔ)集中的任意一個(gè)元素也是難以求解的;(2).為通信雙方各制造一個(gè)黑箱,黑箱固化有相應(yīng)的編號K,黑箱內(nèi)還固化一個(gè)數(shù)據(jù)S,黑箱利用上述第一步函數(shù)f完成二項(xiàng)功能功能1向黑箱輸入R、Ki,黑箱根據(jù)上述函數(shù),計(jì)算出Y=f(R,Ki,K,S);功能2向黑箱輸入R、Ki、Y,即功能1的計(jì)算結(jié)果,黑箱計(jì)算出G=f(R,Ki,Ki,S),將G與Y比較,如果相同,則輸出1,否則輸出0;(3)、數(shù)字簽名及驗(yàn)證設(shè)發(fā)送方A的黑箱號為Ka,接收方B的黑箱號為Kb,設(shè)定需要簽名的數(shù)據(jù)為R,A在自己的黑箱上調(diào)用功能1,向黑箱輸入數(shù)據(jù)R和自己的黑箱號Ka,黑箱輸出Y=f(R,Ka,Ka,S),Y即為A對數(shù)據(jù)R的簽名結(jié)果,簽名結(jié)束;A將R及Y同時(shí)發(fā)送給B,B接收到R后,在自己的黑箱上,調(diào)用功能2,并輸入從A方得到的R、Y及發(fā)送方的黑箱號Ka,黑箱內(nèi)部計(jì)算G=f(R,Ka,Ka,S),將G與Y比較,如果兩者一致則黑箱輸出1,否則輸出0,輸出1則為真,反之則為偽造簽名,此時(shí)簽名驗(yàn)證結(jié)束。
全文摘要
本發(fā)明涉及一種密鑰傳遞和數(shù)字簽名的方法,首先選擇一個(gè)函數(shù)f,然后為通信雙方各制造一個(gè)黑箱,設(shè)發(fā)送方的黑箱號為Ka,接收方的黑箱號為Kb,發(fā)送方A任意選擇一個(gè)數(shù)據(jù)R,向自己的黑箱輸入數(shù)據(jù)R和接收方的黑箱號Kb,黑箱輸出Y,Y即為需要傳遞的密鑰,數(shù)字簽名的方法是A在自己的黑箱上輸入數(shù)據(jù)R和自己的黑箱號,黑箱輸出Y,Y即為A對數(shù)據(jù)R的簽名結(jié)果。本發(fā)明設(shè)計(jì)的密鑰傳遞及數(shù)字簽名的方法,密碼體制結(jié)構(gòu)簡單、運(yùn)算量小、密鑰短,便于硬件實(shí)現(xiàn)。
文檔編號H04L9/00GK1255002SQ9912593
公開日2000年5月31日 申請日期1999年12月10日 優(yōu)先權(quán)日1999年12月10日
發(fā)明者張 杰 申請人:北京深思洛克數(shù)據(jù)保護(hù)中心