專利名稱:一種用于ic卡身份識(shí)別的非對(duì)稱密碼算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息加密領(lǐng)域,特別涉及一種用于IC卡等小型智能電子器件身份識(shí)別的非對(duì)稱密碼算法。
背景技術(shù):
IC卡用戶身份識(shí)別多采用密碼算法實(shí)現(xiàn)。由于現(xiàn)有的非對(duì)稱密碼算法計(jì)算量大,難以在運(yùn)算能力較弱的智能電子器件中實(shí)現(xiàn),故目前IC卡中普遍采用對(duì)稱密碼算法,安全隱患較多。研制用于IC卡身份識(shí)別的非對(duì)稱密碼算法這一課題的提出是為了提高IC卡身份識(shí)別系統(tǒng)的安全強(qiáng)度。
發(fā)明內(nèi)容
本發(fā)明需要解決的技術(shù)問題是研究出一種能夠在IC卡系統(tǒng)中實(shí)施的非對(duì)稱密碼算法,并用于IC卡身份識(shí)別。本發(fā)明的目的,是采用以下技術(shù)方案來實(shí)現(xiàn)的,其特征是(a)選擇整數(shù)環(huán)Zn作為密碼算法的定義域,其中模數(shù)n取為兩個(gè)秘密大數(shù)素的積,n=pq,并以模數(shù)n的因子p和q為系統(tǒng)密鑰;(b)每個(gè)用戶以Zn上的兩個(gè)秘密整數(shù)λ1,λ2作為其用戶密鑰,以σ1=(λ1+λ2)(mod n) (1)和σ2=(λ1λ2)(mod n)(2)作為其公鑰;(c)識(shí)別過程包含三次數(shù)據(jù)交換第一次,IC卡向識(shí)別系統(tǒng)宣告自己的身份,并向系統(tǒng)發(fā)出本次識(shí)別操作的隨機(jī)參數(shù)y,y=(ξη)r(mod n), (3)其中ξ和η是IC卡產(chǎn)生的兩個(gè)不同的秘密隨機(jī)數(shù),滿足(ξ+η)(mod n)=b, (4)r和b是兩個(gè)系統(tǒng)參數(shù);第二次,識(shí)別系統(tǒng)向IC卡發(fā)出一組詢問碼(c1,c2),其中c1和c2有兩種計(jì)算方法(a)c1=xk=(λ1k+λ2k)(mod n), (5)c2=xk+1=(λ1k+1+λ2k+1)(mod n), (6)其中λ1和λ2是待識(shí)別用戶的密鑰,k是識(shí)別系統(tǒng)臨時(shí)產(chǎn)生的一個(gè)保密隨機(jī)數(shù);(b)c1=k2(2k1k2+σ1k1+σ1k2+σ2)[k1(k12+σ1k1+σ2)]-1(mod n),(7)c2=k2[σ1k1k2+(σ12-2σ2)k1+σ2k2+σ1σ2][k1(k12+σ1k1+σ2)]-1(mod n),(8)其中σ1和σ2是待識(shí)別用戶的公鑰,k1和k2是識(shí)別系統(tǒng)臨時(shí)產(chǎn)生的兩個(gè)保密隨機(jī)數(shù);第三次,IC卡向識(shí)別系統(tǒng)返回應(yīng)答碼z,z=(μ1ξ+μ2η)(mod n), (9)其中μ1=λ1k(mod n),μ2=λ2k(mod n),可根據(jù)詢問碼c1和c2從(5)和(6)中解出,或μ1=k2(k2+λ1)[k1(k1+λ1)]-1(mod n), (10)μ2=k2(k2+λ2)[k1(k1+λ2)-1(mod n), (11)可根據(jù)詢問碼c1和c2從(7)和(8)中解出;(d)識(shí)別系統(tǒng)通過驗(yàn)證以下兩個(gè)式子確定被識(shí)別IC卡的真?zhèn)?bc1z-z2-b2ε)r(mod n)=y(tǒng)(c12-4ε)r(mod n), (12)(2z-bc1)(mod n)≠0, (13)其中ε=μ1μ2(mod n)。
本發(fā)明的關(guān)鍵在于識(shí)別系統(tǒng)無需知道用戶的密鑰,而可以根據(jù)用戶的公鑰算出詢問碼中的xk和xk+1,并對(duì)應(yīng)答碼z進(jìn)行驗(yàn)證,即使有人能夠從識(shí)別系統(tǒng)終端機(jī)中盜出用戶的公鑰數(shù)據(jù),也不會(huì)對(duì)用戶的安全構(gòu)成根本性威脅。本發(fā)明的有益效果是能夠有效提高采用IC卡等小型電子器件的身份識(shí)別系統(tǒng)的安全性。
四
附圖是實(shí)施本發(fā)明所需要的軟、硬件模塊及其相互之間邏輯關(guān)系的框圖。
五、具體實(shí)施方法以下結(jié)合附圖,對(duì)本發(fā)明的具體實(shí)施方法進(jìn)行詳細(xì)的說明。
(一)系統(tǒng)密鑰產(chǎn)生及公共摸數(shù)制作。該模塊產(chǎn)生秘密素?cái)?shù)p和q,并計(jì)算公共模數(shù)n=pq。該模塊的操作應(yīng)在嚴(yán)密的監(jiān)控下進(jìn)行。系統(tǒng)密鑰由密鑰托管中心保管。
(二)用戶密鑰制作與恢復(fù)。用戶密鑰制作方法有如下兩種1.采用隨機(jī)數(shù)發(fā)生器隨機(jī)產(chǎn)生λ1和λ2,對(duì)應(yīng)的公鑰按(1)和(2)兩式計(jì)算;2.σ1和σ2根據(jù)用戶身份選定,密鑰(λ1,λ2)通過求解以下方程獲得(λ2-σ1λ+σ2)(mod n)=0。
(14)用戶密鑰產(chǎn)生之后應(yīng)及時(shí)注入IC卡的EPROM或flash中,不在卡外保留副本。如果IC卡損壞,可由密鑰托管中心根據(jù)用戶公鑰從(10)中恢復(fù)其密鑰。
(三)隨機(jī)參數(shù)y的計(jì)算。IC卡在完成一次識(shí)別操作之后的空閑時(shí)間中產(chǎn)生秘密隨機(jī)數(shù)ξ和η,并依據(jù)(3)計(jì)算一個(gè)新的參數(shù)y,保存在內(nèi)存中,以備下一次識(shí)別操作之用;(四)詢問碼產(chǎn)生。識(shí)別系統(tǒng)調(diào)用隨機(jī)數(shù)發(fā)生器生成k,并根據(jù)用戶的公鑰和以下公式計(jì)算xk和xk+1xi+1=(λ1i+1+λ2i+1)(mod n)=[(λ1+λ2)(λ1i+λ2i)-λ1λ2(λ1i-1+λ2i-1)(mod n)=(σ1xi-σ2xi-1)(mod n),(15)xi+j=(λ1i+j+λ2i+j)(mod n)=[(λ1j+λ2j)(λ1i+λ2i)-(λ1λ2)j(λ1i-j+λ2i-j)(mod n)=(xjxi-σ2jxi-j)(mod n),i>j, (16)x2i=(λ12i+λ22i)(mod n)=[(λ1i+λ2i)2-2(λ1λ2)i](mod n)=(xi2-2σ2i)(mod n), (17)或直接根據(jù)(7)和(8)算出c1和c2。
(五)應(yīng)答碼產(chǎn)生。當(dāng)IC卡收到c1和c2后,先計(jì)算μ1=(c2-λ2c1)(λ1-λ2)-1(mod n), (18)μ2=(λ1c1-c2)(λ1-λ2)-1(mod n), (19)再根據(jù)(9)算出應(yīng)答碼z。
(六)應(yīng)答碼驗(yàn)證。由于(μ1ξ+μ2η+μ1η+μ2ξ)(mod n)=(ξ+η)(μ1+μ2)(mod n)=bc1(mod n), (20)(μ1ξ+μ2η)(μ1η+μ2ξ)(mod n)=[μ1μ2(ξ2+η2)+(μ12+μ22)ξη](mod n)=[ε(b2-2ξη)+(c12-2ε)ξη](mod n)=[b2ε+(c12-4ε)ξη](mod n),(21)故(bc1z-z2-b2ε)r(mod n)=y(tǒng)(c12-4ε)r(mod n), (22)其中ε=μ1μ2(mod n)=σ2k(mod n), (23)或ε=μ1μ2(mod n)=[k22(k22+σ1k2+σ2)][k12(k12+σ1k1+σ2)]-1(mod n)。(24)根據(jù)以上幾式可以檢驗(yàn)應(yīng)答碼是否正確,從而判斷IC卡所宣告身份的真?zhèn)巍?br>
權(quán)利要求
1.一種用于IC卡身份識(shí)別的非對(duì)稱密碼算法,其特征在于(a)選擇整數(shù)環(huán)Zn作為算法的定義域,其中模數(shù)n取為兩個(gè)秘密大數(shù)素的積,n=pq,并以模數(shù)n的因子p和q為系統(tǒng)密鑰;(b)每個(gè)用戶以Zn上的兩個(gè)秘密整數(shù)λ1,λ2作為其用戶密鑰,以σ1=(λ1+λ2)(mod n), (1)σ2=(λ1λ2)(mod n), (2)作為其公鑰;(c)隨機(jī)參數(shù)y按下式計(jì)算y=(ξη)r(mod n), (3)其中ξ和η是IC卡產(chǎn)生的兩個(gè)不同的秘密隨機(jī)數(shù),滿足(ξ+η)(mod n)=b, (4)r和b是兩個(gè)系統(tǒng)參數(shù);(d)詢問碼設(shè)為(c1,c2),其中c1=xk=(λ1k+λ2k)(mod n),(5)c2=xk+1=(λ1k+1+λ2k+1)(mod n),(6)λ1和λ2是待識(shí)別用戶的密鑰,k是識(shí)別系統(tǒng)臨時(shí)產(chǎn)生的一個(gè)保密隨機(jī)數(shù),或c1=k2(2k1k2+σ1k1+σ1k2+σ2)[k1(k12+σ1k1+σ2)]-1(mod n), (7)c2=k2[σ1k1k2+(σ12-2σ2)k1+σ2k2+σ1σ2][k1(k12+σ1k1+σ2)]-1(mod n),(8)其中σ1和σ2是待識(shí)別用戶的公鑰,k1和k2是識(shí)別系統(tǒng)臨時(shí)產(chǎn)生的兩個(gè)保密隨機(jī)數(shù);(e)應(yīng)答碼取為z,z=(μ1ξ+μ2η)(mod n), (9)其中μ1=λ1k(mod n),μ2=λ2k(mod n),或μ1=k2(k2+λ1)[k1(k1+λ1)]-1(mod n), (10)μ2=k2(k2+λ2)[k1(k1+λ2)]-1(mod n), (11)
2.如權(quán)利要求1所述的非對(duì)稱密碼算法,其特征在于識(shí)別系統(tǒng)根據(jù)待識(shí)別用戶的公鑰按如下公式計(jì)算xk和xk+1xi+1=(λ1i+1+λ2i+1)(mod n)=[(λ1+λ2)(λ1i+λ2i)-λ1λ2(λ1i-1+λ2i-1)(mod n)=(σ1xi-σ2xi-1)(mod n), (15)xi+j=(λ1i+j+λ2i+j)(mod n)=[(λ1j+λ2j)(λ1i+λ2i)-(λ1λ2)j(λ1i-j+λ2i-j)(mod n)=(xjxi-σ2jxi-j)(mod n),i>j, (16)x2i=(λ12i+λ22i)(mod n)=[(λ1i+λ2i)2-2(λ1λ2)i](mod n)=(xi2-2σ2i)(mod n); (17)IC卡根據(jù)詢問碼按如下公式計(jì)算μ1和μ2μ1=(c2-λ2c1)(λ1-λ2)-1(mod n), (18)μ2=(λ1c1-c2)(λ1-λ2)-1(mod n), (19)
3.采用如權(quán)利要求1所述的非對(duì)稱密碼算法的IC卡身份識(shí)別方法,其特征在于IC卡向識(shí)別系統(tǒng)宣告自己的身份并把隨機(jī)參數(shù)y發(fā)給系統(tǒng)之后,識(shí)別系統(tǒng)先向IC卡發(fā)送詢問碼,IC卡接到詢問碼后向識(shí)別系統(tǒng)返回應(yīng)答碼,識(shí)別系統(tǒng)根據(jù)如下二式是否成立判斷IC卡所宣告身份的真?zhèn)?bc1z-z2-b2ε)r(mod n)=y(tǒng)(c12-4ε)r(mod n), (12)(2z-bc1)(mod n)≠0, (13)其中ε=μ1μ2(mod n)=σ2k(mod n), (23)或ε=μ1μ2(mod n)=[k22(k22+σ1k2+σ2)][k12(k12+σ1k1+σ2)]-1(mod n)。(24)
全文摘要
一種用于身份識(shí)別的非對(duì)稱密碼算法,其特點(diǎn)是能夠在運(yùn)算能力較弱的智能電子器件中實(shí)施,可以有效提高身份識(shí)別系統(tǒng)抵御攻擊的能力。
文檔編號(hào)G06F17/00GK1490740SQ0315738
公開日2004年4月21日 申請(qǐng)日期2003年9月19日 優(yōu)先權(quán)日2003年9月19日
發(fā)明者鄭建德 申請(qǐng)人:鄭建德