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