專利名稱:幻方身份雙向認證與密鑰傳輸一體化方法
技術領域:
本發(fā)明涉及一種網(wǎng)絡系統(tǒng)中的身份認證方法,特別是指一種幻方身份雙向認證與密鑰傳輸一體化方法。
本發(fā)明的另一個目的是提供一種基于幻方數(shù)字鎖原理的軟件加密方法。
為實現(xiàn)上述目的,本發(fā)明的幻方身份雙向認證與密鑰傳輸一體化方法包括1.網(wǎng)絡系統(tǒng)中用戶注冊的步驟由認證服務器根據(jù)注冊用戶的某些特征輸入信息隨機產(chǎn)生一幻方;將幻方均勻隨機分割為兩個互補的認證矩陣和注冊矩陣,并分別存儲于用戶認證卡和認證服務器的數(shù)據(jù)庫中;2.確認注冊用戶的步驟用戶向Web服務器發(fā)送認證請求信息;Web服務器要求用戶傳輸認證矩陣到認證服務器,認證服務器由注冊矩陣和認證矩陣恢復原幻方;認證服務器驗證幻方數(shù)字的唯一性與幻和條件,若驗證成功,則確認用戶,否則拒絕該用戶。
上述隨機幻方的產(chǎn)生包括以下步驟(a)初始化親本由種子隨機數(shù)產(chǎn)生模塊根據(jù)注冊用戶的某些特征輸入信息產(chǎn)生一種子隨機數(shù),隨機地將1至n2的連續(xù)自然數(shù)排列成n×n的矩陣;(b)親本復制與變異計算σ1,當nrow+ncol>0時,等概率選擇三種元素置換算子之一,以相應變異概率對矩陣進行操作,而且當最優(yōu)個體的目標函數(shù)值小于(50×n)時,進一步啟動行列局部調(diào)整操作,生成下代個體;當nrow+ncol=0時,采用行列置換算子與對角局部調(diào)整操作,生成下代個體;(c)親本更新當nrow+ncol>0時,如果當前最優(yōu)個體的目標函數(shù)值不小于(50×n),則采用(μ,λ)-ES更新機制,否則,采用(μ+λ)-ES更新機制;當nrow+ncol=0,d1+d2≥1時,如果當前最優(yōu)個體的目標函數(shù)值大于100,則采用(μ,λ)-ES更新機制,否則,采用(μ+λ)-ES更新機制;(d)演化終止條件判斷如果最優(yōu)個體的目標函數(shù)值等于0,即滿足幻方條件,幻方演化算法終止,同時轉(zhuǎn)幻方均勻隨機分割過程;否則,轉(zhuǎn)步驟b.
上述的幻方身份雙向認證與密鑰傳輸一體化方法,還包括3.確認注冊服務器的步驟,步驟如下Web服務器向用戶發(fā)送注冊認證請求信息;用戶要求Web服務器傳輸注冊矩陣到認證卡,認證卡由注冊矩陣和認證矩陣恢復原幻方;認證卡驗證幻方數(shù)字的唯一性與幻和條件,若驗證成功,則確認Web服務器,否則拒絕該Web服務器。
上述幻方身份雙向認證與密鑰傳輸一體化方法中,注冊用戶的確認步驟為用戶向Web服務器發(fā)送認證請求信息;Web服務器產(chǎn)生一均勻隨機洗牌矩陣,并傳給用戶;用戶將均勻隨機洗牌矩陣輸入認證卡,認證卡按洗牌矩陣與洗牌轉(zhuǎn)換算法將認證矩陣轉(zhuǎn)換成認證向量,并將認證向量傳回用戶;用戶將認證向量傳給Web服務器,Web服務器將認證向量和洗牌矩陣傳給認證服務器;認證服務器由注冊矩陣、認證向量、洗牌矩陣恢復原幻方;認證服務器驗證幻方數(shù)字的唯一性與幻和條件,如果驗證成功,則在幻方中作多次可重復的隨機選擇,按順序?qū)⑺x數(shù)字作為密鑰元并用向量記下該密鑰元組所在的行列數(shù),同時允許Web服務器接受用戶;否則拒絕用戶。
注冊服務器的確認步驟為Web服務器向用戶發(fā)送一認證請求信息,即要求用戶產(chǎn)生一均勻隨機洗牌矩陣;用戶產(chǎn)生一均勻隨機洗牌矩陣并傳送給Web服務器作為響應;Web服務器將洗牌矩陣輸入認證服務器,認證服務器根據(jù)洗牌矩陣將用戶的注冊矩陣和隨機產(chǎn)生的密鑰元位置向量按洗牌算法轉(zhuǎn)換成認證向量,并將認證向量傳回Web服務器;Web服務器將認證向量傳給用戶,用戶將認證向量與洗牌矩陣輸入認證卡;
認證卡首先根據(jù)認證矩陣、認證向量與洗牌矩陣恢復原幻方與密鑰元組的位置向量;認證卡驗證幻方數(shù)字的唯一性與幻和條件,如果驗證成功,則確認Web服務器為注冊服務器,并允許使用由密鑰元位置向量確定的密鑰元組;否則,放棄剛登錄的Web服務器,并作廢密鑰元組。
基于幻方數(shù)字鎖原理的軟件加密保護方法,包括以下步驟由加密器隨機產(chǎn)生一個幻方;將幻方均勻隨機分割為互補的兩個矩陣,分別將這兩個矩陣作為注冊矩陣與授權(quán)矩陣存入軟件拷貝與具有幻方驗證模塊的智能授權(quán)卡中,智能卡只允許輸出“允許”與“拒絕”二信號。
本發(fā)明是基于幻方的以下特點1.構(gòu)成n(n≥3)階幻方的數(shù)字集合必須是從1至n2(或從0至n2-1)的連續(xù)自然數(shù),即數(shù)字的唯一性;2.幻方數(shù)量十分巨大,并隨階數(shù)指數(shù)遞增,但幻方的密度(幻方數(shù)量與可能的數(shù)字排列組合數(shù)之比)隨階數(shù)指數(shù)下降,幻方階數(shù)每升高一階,幻方密度至少降低為前一階幻方密度的百萬分之一,即幻方的構(gòu)造難度隨階數(shù)指數(shù)遞增;3.從一個隨機構(gòu)造的5階以上的幻方中隨機抽去大約一半數(shù)字,很難由剩下的一半固定數(shù)字組合(稱為缺陷幻方)推導出被抽去的的另一半互補數(shù)字組合,使之仍然構(gòu)成一個幻方,因此,可利用兩個互補的缺陷幻方組成一把數(shù)字鎖,其中一個缺陷幻方作為鑰匙,另一個作為鎖;4.驗證幻方的條件非常容易;5.幻方數(shù)字集合{1,2,3,…,n2}可以作為密鑰元集合,而且適當階數(shù)的幻方數(shù)字集合可以包含任意密鑰元,如10階、32階與100階幻方數(shù)字集合分別可以百進制、千進制與萬進制來表示任意長度密鑰空間中任意一個密鑰;注32階幻方的數(shù)字集合中必須去掉1001~1024等24個數(shù)字;6.存在隨機自適應的幻方快速構(gòu)造算法,可以從解空間中均勻隨機采樣,所產(chǎn)生的幻方不是已有秘訣式方法所能得到的,而且在每階幻方的數(shù)量范圍之內(nèi)需要產(chǎn)生多少幻方即可產(chǎn)生多少幻方。
本發(fā)明所具有的優(yōu)點1.可抗擊窮舉攻擊方法。5階幻方的窮舉排列次數(shù)為25!≈1.55×1026,6階幻方的窮舉次數(shù)為36!≈3.72×1041,20階幻方的窮舉次數(shù)為400!≈6.40×10868。另外,由已知幻方的一半數(shù)字推出互補的另一半數(shù)字組合的窮舉數(shù)分別是5階缺陷幻方填充的窮舉排列次數(shù)為13?。?227020800或12?。?79001600,7階缺陷幻方填充必須的窮舉排列次數(shù)為25!≈1.55×1026,20階缺陷幻方填充必須的窮舉排列次數(shù)為200!≈7.9×10374,因此采用7階以上幻方構(gòu)成的幻方數(shù)字鎖就足夠安全了。
2.認證過程中,密鑰傳輸安全。將身份認證與密鑰的安全傳輸過程有機地融為一體,身份認證過程中可傳輸加密密鑰,身份認證成功則密鑰傳輸成功,反之亦然;3.在同一Web服務器上注冊的用戶之間容易通過認證服務器實現(xiàn)相互認證與加密密鑰的安全傳輸;4.本發(fā)明中在不安全網(wǎng)絡中傳送的只是洗牌矩陣、密鑰元位置向量、認證向量,由隨機洗牌矩陣、密鑰元位置向量、認證向量不可能破譯認證矩陣與注冊矩陣,因此可防止任何形式的搭線竊聽(采用規(guī)程分析儀)。要破譯認證矩陣,必須同時得到洗牌矩陣、認證向量與注冊矩陣;同樣,破譯注冊矩陣,必須同時得到洗牌矩陣、認證向量與認證矩陣,但認證矩陣與注冊矩陣均受到保護,“黑客”是得不到的,因此偽造認證矩陣與注冊矩陣是不可能的。
5.本發(fā)明方法中分別按均勻隨機洗牌矩陣對認證矩陣、注冊矩陣、密鑰元位置向量進行洗牌轉(zhuǎn)換,這樣保證了“一次一密”的動態(tài)身份認證機制,可防止重用過時的認證信息,提高了認證的安全性;6.幻方驗證算法簡單、高效,可避免驗證高峰時刻的處理效率瓶頸問題;7.幻方驗證模塊為共享模塊,容易實現(xiàn)。
附
圖1為隨機幻方產(chǎn)生與用戶注冊的流程圖。
附圖2為幻方身份雙向認證與密鑰傳輸一體化協(xié)議示意圖。
附圖3為洗牌轉(zhuǎn)換與密鑰元位置向量傳輸示意圖。
幻方演化算法中不使用重組算子,而且種群的親本數(shù)目不影響算法的效率。因此,算法僅用一個親本,每代生成10個子代個體?;梅窖莼惴ǖ闹饕襟E即為注冊過程中幻方產(chǎn)生的步驟,如圖1.在只有一個親本的幻方演化算法中,可以直接采用目標函數(shù)作為適應值。在行列幻和的演化過程中,當最優(yōu)個體的目標函數(shù)值大于50×n時,親本更新采用(μ,λ)-ES機制;當最優(yōu)個體的目標函數(shù)值小于或等于50×n后,親本更新采用(μ+λ)-ES機制。同樣,在對角幻和的演化過程中,如果當前最優(yōu)個體的適應值大于100,則采用(μ,λ)-ES更新機制,否則,采用(μ+λ)-ES更新機制。初始變異方差取σij=n2,1≤i≤n,1≤j≤n。記rand(x,y)為[x,y]內(nèi)的隨機整數(shù)產(chǎn)生函數(shù),x,y∈N.1.1適應值函數(shù)設計行列幻和演化的目標函數(shù) 其中,nrow與ncol分別為矩陣M中不滿足幻和的行數(shù)與列數(shù);對角幻和演化的目標函數(shù)J(M)=|c-Σi=1naii|+|c-Σi=1nai,(n-i+1)|;]]>如果正對角線元素滿足幻和,即Σi=1naii=c,]]>則置d1=0,否則置d1=1;同樣,如果斜對角線元素滿足幻和,即Σi=1nai,n-i+1=c,]]>則置d2=0,否則置d2=1.1.2變異操作設親本個體I=(M,△),變異子代個體I·=(M·,△·).元素置換算子變異范圍為未滿足幻和的行列元素,分三種情況。其一,變異對象為所在行列均不滿足幻和的元素集合S1={aij:Σk=1naik≠c,Σk=1nakj≠c,1≤i≤n,1≤j≤n};]]>交換范圍為未滿足幻和的行與列元素,S2={ai*:Σk=1naik≠c,1≤i≤n}∪{a*j:Σk=1nakj≠c,1≤j≤n}.]]>因為元素變異值不一定可在S2中找到對應的等值元素,因此可以S2中與元素變異值相差最小的元素互換。變異概率pm=1nrowncol,]]>即可變異對象集合S1中平均僅發(fā)生一次變異。假定元素aij∈S1被選為變異對象,則有aij•=aij±rand(1,σij).]]>如果aij•<1,]]>置aij•=rand(1,n);]]>如果aij•>n2,]]>置aij•=n2-rand(0,n).]]>設akl=minaij∈S2|aij•-aij|,]]>則置akl•=aij,]]>即將M中兩元素aij與akl互換。σij•=σij+rand(-1,1);]]>如果σij•<1]]>或σij•>σt,]]>則置σij•=rand(1,σt).]]>其中, 其二,變異對象為未滿足幻和的行或列元素集合S2,交換范圍也為未滿足幻和的行與列元素集合S2;因為元素變異值不一定可在S2中找到對應的等值元素,因此可以S2中與元素變異值相差最小的元素互換。行變異概率pm=1nnrow,]]>列變異概率pm=1nncol,]]>即可變異對象中平均僅發(fā)生一次變異。除變異對象元素集合由S1變?yōu)镾2外,其他操作與上一情況類似。
其三,變異對象為未滿足幻和的行與列元素集合S2,交換范圍為矩陣中所有元素。因此,元素變異值一定可找到對應的等值元素進行互換。行變異概率pm=1nnrow,]]>列變異概率pm=1nncol,]]>即可變異對象中平均僅發(fā)生一次變異。假定元素aij∈S1被選為變異對象,則有aij•=aij±rand(1,σij);]]>如果aij•<1,]]>置aij•=rand(1,n);]]>如果aij•>n2,]]>置aij•=n2-rand(0,n).]]>設akl=aij•,]]>則置akl•=aij,]]>即將M中兩元素aij與akl互換。σij•=σij+rand(-1,1);]]>如果σij•<1]]>或σij•>σt,]]>則置σij•=rand(1,σt).]]>因為變異概率與變異元素范圍均由nrow與ncol決定,因此,元素置換算子是自適應變異算子。行列置換算子即行置換與列置換算子,僅作用于行列幻方,但保持行列幻方的性質(zhì)不變。
當nrow+ncol=0,d1+d2≥1時,隨機取兩行元素互換,再隨機取兩列元素互換。
行列幻和演化過程中,元素置換算子工作,行列置換算子失效當nrow+ncol=0時,進入對角幻和演化階段,此時,元素置換算子失效,行列置換算子工作。1.3局部調(diào)整操作演化算法進入穩(wěn)定狀態(tài)后,利用問題的啟發(fā)式知識進行局部調(diào)整操作,可以提高演化算法的局部搜索效率。通過行遍歷與列遍歷的搜索過程,如果兩行或兩列中一對以上元素互換之后可同時實現(xiàn)幻和,則可進行局部調(diào)整。
行列局部調(diào)整逐行逐列比較,其中,1≤k≤n,1≤l≤n,1≤s≤n,1≤t≤n,k≠l,s≠t;互換一對元素的條件如果Σi=1naki-c=c-Σj=1nalj=aks-aks,]]>則互換第k行與第l行中對應s列的兩元素;如果Σi=1naik-c=c-Σj=1nail=ask-asl,]]>則可互換第k列與第l列中對應s行的兩元素。
互換二對元素的條件如果Σi=1naki-c=c-Σj=1nali=akx+-akt-alx-alt,]]>則互換第k行與第l行中對應s列與t列的兩元素同樣,如果Σi=1naik-c=c-Σj=1nail=ask+atk-asl-atl,]]>則可互換第k列與第l列中對應s行與t行的兩元素。
行列局部調(diào)整元素可增加至三對以上,因為三對元素以上的可調(diào)整條件的搜索代價過高,因此,僅搜索兩對以下元素的可互換條件。
對角局部調(diào)整逐行或逐列比較,其中,1≤i≤n,1≤j≤n,i≠j;如果aii+aij=aji+ajj,且(aii+alj)-(aij+aji)=Σk=1nakk-c,]]>則將aii與aji互換,aij與ajj互換;如果aij+ai,n-i+1=an-j+1,j+an-j+1,n-i+1,且(ai,n-i+1+an-j+1,j)-(aij+an-j+1,n-i+1)=Σk=1nan-k+1,k-c,]]>則將aij與an-j+1,j互換,ai,n-i+1與an-j+1,n-i+1互換如果(aii+ajj)-(aij+aji)=Σk=1nakk-c,]]>且(ai,n-i+1+aj,n-j+1)-(ai,n-j+1+aj,n-i+1)=Σk=1nan-k+1,k-c,]]>則將i行與j行互換;如果(aii+aji)-(aij+aji)=Σk=1nakk-c,]]>且(aa-i+1,j+an-j+1,j)-(an-j+1,i+an-i+1,j)=Σk=1nan-k+1,k-c,]]>則將i列與j列互換;如果(aii+an-i+1,n-i+1)-(ai,n-i+1+an-i+1,i)=Σk=1nakk-c=c-Σk=1nan-k+1,k,]]>則將i行與(n-i+1)行互換。1.4評注采用上述幻方演化算法,可以實現(xiàn)幻方的快速構(gòu)造,降低認證系統(tǒng)的開銷。如主頻1GHZ,內(nèi)存256M的PC機,10階幻方構(gòu)造時間平均為1秒,20階幻方構(gòu)造時間平均為10秒,30階幻方構(gòu)造時間平均為50秒。一般安全性采用10階幻方已經(jīng)足夠,更高的安全性可以通過增加幻方的階數(shù)來實現(xiàn),考慮密鑰元空間的分布,最高安全級別采用32階幻方為宜。
幻方身份雙向認證與密鑰傳輸一體化實施協(xié)議,參見圖2.假設用戶Alice的身份信息由幻方MS(Alice)產(chǎn)生,將MS(Alice)按幻方均勻隨機分割算法分割為兩個互補的缺陷矩陣MS1(Alice)與MS2(Alice),其中,缺陷位置填0,MS1(Alice)作為認證服務器中Alice的注冊信息,MS2(Alice)則作為Alice認證卡中的認證信息,認證卡以PIN碼(個人身份碼)保護。認證服務器與認證卡中均設有洗牌轉(zhuǎn)換算法、逆洗牌恢復算法、幻方驗證模塊。Web服務器與用戶終端均設有均勻隨機洗牌矩陣產(chǎn)生模塊。
Web服務器確認用戶Alice的真?zhèn)芜^程如下1)用戶Alice登錄Web服務器2)Web服務器產(chǎn)生一均勻隨機洗牌矩陣CA(Web,t)并傳給用戶Alice;
3)用戶Alice將CA(Web,t)輸入認證卡(3a),認證卡按洗牌矩陣CA(Web,t)由洗牌轉(zhuǎn)換算法將MS2(Alice)轉(zhuǎn)換成認證向量V(Alice,t)(3b),并將V(Alice,t)傳回用戶Alice(3c);4)用戶Alice將向量V(Alice,t)傳給Web服務器(4a),Web服務器將向量V(Aliee,t)與相應CA(Web,t)傳給認證服務器(4b);5)認證服務器首先根據(jù)MS1(Alice)、V(Alice,t)與CA(Web,t)恢復原幻方MS(Web)(5a);然后驗證幻方數(shù)字的唯一性與幻和條件。如果驗證成功(5b),則在幻方MS(Alice)中作m次可重復的隨機選擇,按順序?qū)⑺x數(shù)字作為密鑰元并用向量P(Alice,t)2m記下該密鑰元組所在的行列數(shù)(5c),同時允許Web服務器接受用戶Alice(5d);否則拒絕用戶Aliee(5e).
用戶Alice確認Web服務器的真?zhèn)芜^程如下6)Web服務器向用戶Alice發(fā)送一認證請求信息,即要求用戶Alice產(chǎn)生一均勻隨機洗牌矩陣CA(Alice,t);7)用戶Alice產(chǎn)生一均勻隨機洗牌矩陣CA(Alice,t)并傳送給Web服務器作為響應;8)Web服務器將CA(Alice,t)輸入認證服務器(8a),認證服務器根據(jù)CA(Alice,t)將MS1(Alice)與隨機產(chǎn)生的密鑰元位置向量P(Alice,t)2m按洗牌算法轉(zhuǎn)換成認證向量V(Web,t)(8b),并將V(Web,t)傳回Web服務器(8c);9)Web服務器將向量V(Web,t)傳給用戶Alice(9a),用戶Alice將向量V(Web,t)與CA(Alice,t)輸入認證卡(9b);10)認證卡首先根據(jù)MS2(Alice)、V(Web,t)與CA(Alice,t)恢復原幻方MS(Alice)與密鑰元位置向量P(Web,t)2m(10a);然后驗證幻方數(shù)字的唯一性與幻和條件。如果驗證成功,則確認Web服務器為注冊服務器,并允許使用由P(Web,t)2m確定的密鑰元組;否則,放棄剛登錄的Web服務器,并作廢密鑰元組(10b).
上述雙向認證過程中有關算法描述如下1.幻方均勻隨機分割可由隨機洗牌矩陣CA=[bij]n×n]]>實現(xiàn),bij∈{0,1},將隨機幻方MS(Alice)均勻隨機分割為兩互補矩陣MS1(Alice)與MS2(Alice),與CAn×n中元素1對應的幻方數(shù)字作為MS1(Alice)矩陣中的對應元素,與CAn×n中元素0對應的幻方數(shù)字作為MS2(Alice)矩陣中的對應元素,MS1(Alice)與MS2(Alice)中的空格置0。2.均勻隨機洗牌矩陣產(chǎn)生設計一個n×n階的0-1矩陣CA=[bij]n×n,]]>bij∈{0,1};要求1)全局狀態(tài)中0與1的個數(shù)基本相等;2)每行每列以及兩對角線上的0元素與1元素個數(shù)基本相等;3)全局狀態(tài)事實上不重復也不可預測。
隨機洗牌矩陣可由二維0-1二狀態(tài)細胞自動機產(chǎn)生均勻隨機洗牌矩陣。對于鄰域為“米”字型的兩狀態(tài)二維細胞自動機,共存在2512種不同的自動機規(guī)則。為保證分割方案的統(tǒng)計均勻?qū)ΨQ性,可選參數(shù)λ=0.5的自動機規(guī)則,共有256512≈4.72553303154965×10152]]>種不同的λ=0.5的CA規(guī)則。Web服務器與每個用戶均采用不同的CA規(guī)則,并且使得當前CA的全局狀態(tài)成為下一步全局映射的初始狀態(tài),確保全局狀態(tài)不重復。“米”字型細胞自動機規(guī)則可用512位二進制數(shù)字表示。參數(shù)λ表示512位二進制數(shù)字中1的比例。
幻方均勻隨機分割方案與隨機洗牌矩陣的產(chǎn)生存在多種方法,二者本質(zhì)上屬于偽隨機序列的產(chǎn)生問題。3.洗牌轉(zhuǎn)換算法設定向量V(Alice,t)的長度為n2,V(Alice,t)中各元素初始化為0;P(Alice,t)=(k1,…,k2m),m≤n2/4,]]>且ki∈{1,2,…,n},i=1,2,…,m;CA(Web,t)=[bij]n×n,]]>bij∈{0,1}.
洗牌轉(zhuǎn)換算法基本步驟分三步第一步按序?qū)⑴cCA(Web,t)中元素1對應的MS2(Alice)中非零數(shù)字輸入向量V(Alice,t);第二步按序?qū)⑴cCA(Web,t)中元素0對應的MS2(Alice)中非零數(shù)字輸入向量V(Alice,t);第三步將密鑰元位置數(shù)組(k1,k2,k3,k4)緊按第二步中的最后一個數(shù)字輸入V(Alice,t)。
如圖3,以5階幻方為例說明洗牌轉(zhuǎn)換算法。假設MS(Alice)5×5被分割為兩部分MS1(Alice)5×5與MS2(Alice)5×5,設密鑰元組Key(Alice,t)=(ak1k2,ak3k4),]]>相應位置向量為P(Alice,t)=(k1,k2,k3,k4),k1與k2分別為第一個密鑰元所在的行與列數(shù),k3與k4分別為第二個密鑰元所在的行與列數(shù),以此類推,其中ki∈{1,2,3,4,5}.第一步從左上角元素開始,按自左至右,從上至下的規(guī)則,直至右下角元素,順序?qū)⑴cCA(Web)5×5中元素1對應的MS2(Alice)5×5中非零數(shù)字輸入向量V(Alice)25中,第一步轉(zhuǎn)換結(jié)果為V(Alice)25=(13,24,4,11,2,8,0,0,0,…,0),如向量V(Alice)25中實線格數(shù)字所示;第二步與第一步類似,從左上角元素開始,按自左至右,從上至下的規(guī)則,直至右下角元素,按序?qū)⑴cCA(Web)5×5中元素0對應的MS2(Alice)5×5中非零數(shù)字,緊按第一步中最后一個輸入數(shù)字位置輸入向量V(Alice)25中,如向量V(Alice)25中虛線格數(shù)字所示;第三步將密鑰無位置數(shù)組(k1,k2,k3,k4)緊按第二步中最后一個輸入數(shù)字位置輸入向量V(Alice)25中,如向量V(Alice)25中陰影格數(shù)字所示。
注意雙向認證中由被動方產(chǎn)生密鑰元組,因此,主動方?jīng)]有密鑰元位置數(shù)組傳輸,此時m=0,即主動方的洗牌轉(zhuǎn)換算法沒有第三步。實施例中的主動方為用戶Alice,被動方為Web服務器,但該實施例也可以反過來,此時,Web服務器為主動方,用戶Alice則成為被動方,即Web服務器先主動向用戶Alice請求注冊認證,圖3即為實施例的逆過程示例。用戶之間通過認證服務器進行雙向認證與密鑰傳輸時,一方為主動方,另一方則為被動方,而認證服務器既要作為主動方又要作為被動方。4.逆洗牌恢復算法逆洗牌恢復算法是洗牌轉(zhuǎn)換算法的逆過程,其中MS1(Alice)相當于此逆運算過程中的“密鑰”,逆處理過程分三步。
第一步恢復與CA(Web,t)中元素1對應的幻方數(shù)字,從左上角元素開始,按自左至右,從上而下的規(guī)則,直至右下角元素,分別考慮與CA(Web,t)中元素1對應的MS1(Alice)中元素,如果該元素非零,則置恢復幻方中相應位置為該數(shù)字;否則,置恢復幻方中相應位置為向量V(Alice,t)中當前元素,同時向量V(Alice,t)的指針前進一位。
第二步與第一步類似,恢復與CA(Web,t)中元素0對應的幻方元素,但向量V(Alice,t)的當前指針必須接續(xù)第一步中的處理結(jié)果。從左上角元素開始,按自左至右,從上而下的規(guī)則,直至右下角元素,分別考慮與CA(Web,t)中元素0對應的MS1(Alice)中元素,如果該元素非零,則置恢復幻方中相應位置為該數(shù)字;否則,置恢復幻方中相應位置為向量V(Alice,t)中當前元素,同時向量V(Alice,t)的指針前進一位。
第三步將向量V(Alice,t)中當前指針之后2m個數(shù)按序作為密鑰元位置數(shù)組P(Alice,t)=(k1,…,k2m).5.幻方驗證模塊第一步驗證幻方數(shù)字集合的唯一性,即驗證由MS1(Alice)、V(Alice,t)與CA(Web,t)恢復而成的幻方MS(Web)中的數(shù)字是否正好由1至n2的連續(xù)自然數(shù)組成??上葘S(Web)中的數(shù)字按非降排序得到長度為n2的新向量W(Web),然后驗證是否wi=i,i=1,2,…,n2.如果驗證成功,允許繼續(xù)進行第二步驗證,即幻和驗證;否則拒絕用戶Alice.第二步驗證每行、每列與兩對角線元素的幻和。
本發(fā)明中如果用戶Alice需要與Web服務器進行保密信息傳輸(使用諸如DES與IDEA等分組加密算法),必須預先協(xié)商一密鑰Key(Alice,t).假設選定10階幻方為身份信息矩陣,10階幻方的每個數(shù)字減1可以作為以兩位十進制數(shù)表示(也即百進制)的密鑰元,如20位十進制密鑰空間可以10個兩位十進制密鑰元表示。如果每次從10階幻方的數(shù)字集合中選擇一個數(shù)字,連續(xù)10次這種隨機可重復的數(shù)字選擇試驗即可產(chǎn)生一隨機密鑰。雙向認證中首先得到認證的一方如Web服務器,可在被恢復并且經(jīng)過驗證的幻方的100個數(shù)字位置上連續(xù)隨機可重復地作10次選擇,按序?qū)⑺x擇的每一個數(shù)字作為密鑰元,從而組成20位十進制密鑰空間中的一個密鑰;然后將所選擇的10個幻方數(shù)字所在的行列位置與待驗證的身份信息傳送至對方,對方在驗證成功的基礎上可根據(jù)密鑰元組在幻方中的位置恢復密鑰元組。即雙向認證成功后雙方可得到同一個“字母表”,通過指定密鑰元在“字母表”中的位置信息即可得到同一組密鑰元,不能獲得“字母表”的任何人是不可能得到此密鑰元組的。
軟件加密保護由于很難由缺陷矩陣恢復其互補的另一半,因此,基于幻方數(shù)字鎖原理可以實現(xiàn)軟件版權(quán)的保護。具體地,對每一份正版軟件拷貝,隨機演化生成一個幻方,并將幻方均勻隨機分割成互補的兩個缺陷矩陣,然后將此兩個矩陣分別作為注冊矩陣與授權(quán)矩陣存入軟件拷貝與“軟件狗”中(以智能卡中芯片實現(xiàn))?!败浖贰敝悄芸ㄖ写嬗谢梅津炞C模塊,“軟件狗”只允許輸出“允許”與“拒絕”二信號。軟件啟動時,該軟件中的注冊矩陣被常駐內(nèi)存。軟件正常使用過程時,由“軟件狗”隨機讀入計算機內(nèi)存中的注冊矩陣,然后“軟件狗”中的幻方驗證模塊驗證注冊矩陣是否能與授權(quán)矩陣構(gòu)成一幻方。如果二者能構(gòu)成一幻方,則允許軟件繼續(xù)運行,否則,終止軟件運行。由“軟件狗”保存的授權(quán)矩陣信息是不可讀出的,而且“軟件狗”也可用PIN碼保護。該方法可以保證一份正版軟件拷貝只能同時被一人使用,使用者必須持有購買時存有授權(quán)矩陣的智能授權(quán)卡-“軟件狗”。
權(quán)利要求
1.一種幻方身份雙向認證與密鑰傳輸一體化方法,其特征在于(1)網(wǎng)絡系統(tǒng)中用戶的注冊包括以下步驟由認證服務器根據(jù)注冊用戶的某些特征輸入信息隨機產(chǎn)生一幻方;將幻方均勻隨機分割為兩個互補的認證矩陣和注冊矩陣,并分別存儲于用戶認證卡和認證服務器的數(shù)據(jù)庫中;(2)注冊用戶的確認包括以下步驟用戶向Web服務器發(fā)送認證請求信息;Web服務器要求用戶傳輸認證矩陣到認證服務器,認證服務器由注冊矩陣和認證矩陣恢復原幻方;認證服務器驗證幻方數(shù)字的唯一性與幻和條件,若驗證成功,則確認用戶,否則拒絕該用戶。
2.根據(jù)權(quán)利要求1所述的幻方身份雙向認證與密鑰傳輸一體化方法,其特征在于還包括(3)確認注冊服務器的步驟,步驟如下Web服務器向用戶發(fā)送注冊認證請求信息;用戶要求Web服務器傳輸注冊矩陣到認證卡,認證卡由注冊矩陣和認證矩陣恢復原幻方;認證卡驗證幻方數(shù)字的唯一性與幻和條件,若驗證成功,則確認Web服務器,否則拒絕該Web服務器;
3.根據(jù)權(quán)利要求2所述的幻方身份雙向認證與密鑰傳輸一體化方法,其特征在于注冊用戶的確認包括以下步驟用戶向Web服務器發(fā)送認證請求信息;Web服務器產(chǎn)生一均勻隨機洗牌矩陣,并傳給用戶;用戶將均勻隨機洗牌矩陣輸入認證卡,認證卡按洗牌矩陣與洗牌轉(zhuǎn)換算法將認證矩陣轉(zhuǎn)換成認證向量,并將認證向量傳回用戶;用戶將認證向量傳給Web服務器,Web服務器將認證向量和洗牌矩陣傳給認證服務器;認證服務器由注冊矩陣、認證向量、洗牌矩陣恢復原幻方;認證服務器驗證幻方數(shù)字的唯一性與幻和條件,如果驗證成功,則在幻方中作多次可重復的隨機選擇,按順序?qū)⑺x數(shù)字作為密鑰元并用向量記下該密鑰元組所在的行列數(shù),同時允許Web服務器接受用戶;否則拒絕用尸。注冊服務器的確認包括以下步驟Web服務器向用戶發(fā)送一認證請求信息,即要求用戶產(chǎn)生一均勻隨機洗牌矩陣;用戶產(chǎn)生一均勻隨機洗牌矩陣并傳送給Web服務器作為響應;Web服務器將洗牌矩陣輸入認證服務器,認證服務器根據(jù)洗牌矩陣將用戶的注冊矩陣和隨機產(chǎn)生的密鑰元位置向量按洗牌算法轉(zhuǎn)換成認證向量,并將認證向量傳回Web服務器;Web服務器將認證向量傳給用戶,用戶將認證向量與洗牌矩陣輸入認證卡;認證卡首先根據(jù)認證矩陣、認證向量與洗牌矩陣恢復原幻方與密鑰元組的位置向量;認證卡驗證幻方數(shù)字的唯一性與幻和條件,如果驗證成功,則確認Web服務器為注冊服務器,并允許使用由密鑰元位置向量確定的密鑰元組;否則,放棄剛登錄的Web服務器,并作廢密鑰元組。
4.根據(jù)權(quán)利要求1所述的幻方身份雙向認證與密鑰傳輸一體化方法,其特征在于隨機幻方的產(chǎn)生包括以下步驟(a)初始化親本由種子隨機數(shù)產(chǎn)生模塊根據(jù)注冊用戶的某些特征輸入信息產(chǎn)生一種子隨機數(shù),隨機地將1至n2的連續(xù)自然數(shù)排列成nxn的矩陣;(b)親本復制與變異計算σ1,當nrow+ncol>0時,等概率選擇三種元素置換算子之一,以相應變異概率對矩陣進行操作,而且當最優(yōu)個體的目標函數(shù)值小于(50×n)時,進一步啟動行列局部調(diào)整操作,生成下代個體;當nrow+ncol=0時,采用行列置換算子與對角局部調(diào)整操作,生成下代個體;(c)親本更新當nrow+ncol>0時,如果當前最優(yōu)個體的目標函數(shù)值不小于(50×n),則采用(μ,λ)-ES更新機制,否則,采用(μ+λ)-ES更新機制;當nrow+ncol=0,d1+d2≥1時,如果當前最優(yōu)個體的適應值大于100,則采用(μ,λ)-ES更新機制,否則,采用(μ+λ)-ES更新機制;(d)演化終止條件判斷如果最優(yōu)個體的目標函數(shù)值等于0,即滿足幻方條件,幻方演化算法終止,同時轉(zhuǎn)幻方均勻隨機分割過程;否則,轉(zhuǎn)步驟b.
5.一種基于幻方數(shù)字鎖原理的軟件加密方法,其特征在于包括以下步驟由加密器隨機產(chǎn)生一個幻方;將幻方均勻隨機分割為互補的兩個矩陣,分別將這兩個矩陣作為注冊矩陣與授權(quán)矩陣存入軟件拷貝與具有幻方驗證模塊的智能授權(quán)卡中,智能卡只允許輸出“允許”與“拒絕”二信號。
全文摘要
本發(fā)明公開一種幻方身份雙向認證與密鑰傳輸一體化方法、軟件版權(quán)保護幻方數(shù)字鎖原理以及隨機幻方演化算法。將一個隨機幻方均勻隨機地分割為兩個互補缺陷矩陣,分別作為注冊信息與認證信息存儲于認證服務器和用戶認證卡中,可構(gòu)成一把幻方數(shù)字鎖。認證雙方將缺陷矩陣均勻隨機洗牌后安全傳送至對方,雙方均以能否恢復幻方來確認對方。密鑰元組由一方從幻方中隨機可重復地選擇,并將其位置向量傳給對方,對方可據(jù)此恢復密鑰元組。演化算法可在巨量幻方空間中作均勻隨機快速采樣。幻方身份雙向認證與密鑰傳輸過程融為一體,認證成功則密鑰傳輸成功,反之亦然?;梅綌?shù)字鎖原理也是一種有效的軟件版權(quán)保護方法?;梅缴矸菡J證效率高,密鑰傳輸安全可靠。
文檔編號H04L9/00GK1471258SQ02114288
公開日2004年1月28日 申請日期2002年7月24日 優(yōu)先權(quán)日2002年7月24日
發(fā)明者謝濤, 陳火旺, 康立山, 謝 濤 申請人:謝濤, 謝 濤