專利名稱:一種動態(tài)密碼生成方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息安全技術(shù)領(lǐng)域,特別涉及一種動態(tài)密碼生成方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)應(yīng)用服務(wù)的普及,用戶在網(wǎng)絡(luò)上進(jìn)行的交易越來越多。由于互聯(lián)網(wǎng)的開放性、不可靠性及對等性,使得信息安全成為一個關(guān)鍵問題。尤其對基于互聯(lián)網(wǎng)的網(wǎng)上銀行服務(wù)來說,信息安全是最基礎(chǔ)、最關(guān)鍵、最需要關(guān)注的部分。用戶在使用網(wǎng)上銀行的高風(fēng)險業(yè)務(wù)時,如轉(zhuǎn)賬業(yè)務(wù)、支付業(yè)務(wù)等,必須輸入正確的密碼,銀行才會為用戶提供服務(wù)。通常,用戶輸入的密碼是其賬戶的固有密碼,因為用戶輸入的固有密碼必須通過互聯(lián)網(wǎng)傳送給業(yè)務(wù)中心的服務(wù)器,所以輸入固有密碼會降低交易的安全性,非法攻擊者很容易通過網(wǎng)絡(luò)攻擊等方式盜取用戶的固有密碼。為了防止因用戶的固有密碼被盜而帶來的危險,目前增加了動態(tài)密碼進(jìn)行驗證的方式來進(jìn)行交易,即用戶不僅需要輸入固有密碼,還需要輸入每次交易均會變化的動態(tài)密碼,如現(xiàn)有技術(shù)的動態(tài)口令牌就提供了這樣一種動態(tài)密碼?,F(xiàn)有技術(shù)的動態(tài)口令牌主要使用N位種子和時間生成密碼,黑客獲知N位種子和動態(tài)口令的生成算法,就能破解密碼;此外動態(tài)口令牌生成密碼所采用的密碼庫中的字符主要為數(shù)字,使得生成的動態(tài)密碼的值域范圍很小,降低了破解的難度。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)的上述問題,本發(fā)明的目的是提供一種結(jié)合了隨機(jī)數(shù)算法的難 以破解的動態(tài)密碼生成方法及系統(tǒng)。為了實現(xiàn)上述目的,本發(fā)明提供了一種動態(tài)密碼生成方法,其特征在于,包括步驟A :將多種動態(tài)異構(gòu)信息拼接形成明文S,對明文S進(jìn)行數(shù)字簽名得到加密字節(jié)流S’,將S’與S移位拼接后再進(jìn)行數(shù)字簽名得到加密字節(jié)流S”,重復(fù)上述簽名過程直至數(shù)字簽名次數(shù)等于預(yù)先設(shè)定的簽名次數(shù)N,得到加密字節(jié)流S2 ;步驟B :從所述加密字節(jié)流S2中選取一個字節(jié),轉(zhuǎn)換為數(shù)值a,并將該字節(jié)從S2中刪除;步驟C :執(zhí)行取余操作i = a%動態(tài)密碼字符庫的長度,其中所述動態(tài)密碼字符庫包括用于生成動態(tài)密碼的多個字符;步驟D :從所述動態(tài)密碼字符庫中選取第i個字符,補(bǔ)進(jìn)動態(tài)密碼;步驟E :判斷動態(tài)密碼的長度是否達(dá)到要求,如果達(dá)到要求,則結(jié)束動態(tài)密碼的生成,如果未達(dá)到要求,則重復(fù)步驟B至步驟E的過程。作為優(yōu)選,所述步驟A中,所述多種動態(tài)異構(gòu)信息包括交易信息、操作員信息、時間、隨機(jī)數(shù)、預(yù)留文本庫中的隨機(jī)字段和高斯隨機(jī)數(shù),其中,所述預(yù)留文本庫中存儲公開網(wǎng)頁,所述預(yù)留文本庫中的隨機(jī)字段的長度的最小值為10位。作為優(yōu)選,所述步驟C和步驟D中,所述動態(tài)密碼字符庫中的字符為數(shù)字、英文字母和標(biāo)點符號。作為進(jìn)一步地優(yōu)選,所述步驟C和步驟D中,所述動態(tài)密碼字符庫不包括數(shù)字0和字母O,數(shù)字I和字母1,數(shù)字2和字母z。作為優(yōu)選,所述步驟C和步驟D中,所述動態(tài)密碼字符庫中的字符的排列順序定期進(jìn)行調(diào)整。作為優(yōu)選,所述步驟E中,所述動態(tài)密碼的長度要求的范圍是6-10位。
作為優(yōu)選,所述步驟A中,所述數(shù)字簽名的方法為MD5或SHA。本發(fā)明同時還提供了一種動態(tài)密碼生成系統(tǒng),包括明文拼接模塊、簽名模塊、轉(zhuǎn)換模塊、動態(tài)密碼字符庫、取余模塊、密碼拼接模塊和判別模塊,其中
所述明文拼接模塊,用于將多種動態(tài)異構(gòu)信息拼接形成明文S ;所述簽名模塊,用于對明文S進(jìn)行數(shù)字簽名得到加密字節(jié)流S’,將S’與S移位拼接后再進(jìn)行數(shù)字簽名得到加密字節(jié)流S”,重復(fù)上述簽名過程直至數(shù)字簽名次數(shù)等于預(yù)先設(shè)定的簽名次數(shù)N,得到加密字節(jié)流S2 ;所述轉(zhuǎn)換模塊,用于從所述加密字節(jié)流S2中選取一個字節(jié),轉(zhuǎn)換為數(shù)值a,并將該字節(jié)從S2中刪除;所述動態(tài)密碼字符庫,包括用于生成動態(tài)密碼的多個字符;所述取余模塊,用于執(zhí)行取余操作i = a%動態(tài)密碼字符庫的長度;所述密碼拼接模塊,用于從所述動態(tài)密碼字符庫中選取第i個字符,補(bǔ)進(jìn)動態(tài)密碼;所述判別模塊,用于判斷動態(tài)密碼的長度是否達(dá)到要求,如果達(dá)到要求,則結(jié)束動態(tài)密碼的生成,如果未達(dá)到要求,則繼續(xù)動態(tài)密碼的生成。作為優(yōu)選,所述多種動態(tài)異構(gòu)信息包括交易信息、操作員信息、時間、隨機(jī)數(shù)、預(yù)留文本庫中的隨機(jī)字段和高斯隨機(jī)數(shù),其中,所述預(yù)留文本庫中存儲公開網(wǎng)頁,所述預(yù)留文本庫中的隨機(jī)字段的長度的最小值為10位。作為優(yōu)選,所述簽名模塊是MD5加密系統(tǒng)或SHA加密系統(tǒng)。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果(I)動態(tài)密碼字符庫包括數(shù)字、英文字母和標(biāo)點符號,較動態(tài)口令牌大為擴(kuò)展,使得動態(tài)密碼的值域范圍擴(kuò)大,動態(tài)密碼難于理解,增加了破解的難度;(2)結(jié)合了交易獨特性和操作員身份唯一性,集中了隨機(jī)數(shù)算法和數(shù)字簽名算法的優(yōu)點,使得同樣的交易、同樣的操作員不同時間來操作,所獲得動態(tài)密碼絕不一樣;且動態(tài)密碼僅在使用時產(chǎn)生,一次有效,重復(fù)率極低,具備較高的安全性;(3)動態(tài)密碼生成過程中使用了數(shù)字簽名,具備較高的加密強(qiáng)度、計算復(fù)雜性和不可倒推性,因此很難從密碼本身推導(dǎo)出明文,很難掌握動態(tài)密碼的生成規(guī)律,密碼生成算法在保密性上不遜色于動態(tài)口令牌;(4)簽名所使用的明文中加入了隨機(jī)數(shù),即使黑客獲知簽名所用的明文和簽名算法,還需同步隨機(jī)數(shù)發(fā)生器才有可能破解密碼,破解難度大為增加。
圖I為本發(fā)明的動態(tài)密碼生成方法的流程示意圖。
圖2為本發(fā)明的動態(tài)密碼生成系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明的實施例進(jìn)行詳細(xì)說明。圖I為本發(fā)明的動態(tài)密碼生成方法的流程示意圖。如圖I所示,本發(fā)明提供的動態(tài)密碼生成方法包括步驟A :將多種動態(tài)異構(gòu)信息拼接形成明文S,對明文S進(jìn)行數(shù)字簽名得到加密字節(jié)流S’,將S’與S移位拼接后再進(jìn)行數(shù)字簽名得到加密字節(jié)流S”,重復(fù)上述簽名過程直至數(shù)字簽名次數(shù)等于預(yù)先設(shè)定的簽名次數(shù)N,得到加密字節(jié)流S2 ;步驟B :從所述加密字節(jié)流S2中選取一個字節(jié),轉(zhuǎn)換為數(shù)值a,并將該字節(jié)從S2中刪除; 步驟C :執(zhí)行取余操作i = a%動態(tài)密碼字符庫的長度,其中所述動態(tài)密碼字符庫包括用于生成動態(tài)密碼的多個字符;步驟D :從所述動態(tài)密碼字符庫中選取第i個字符,補(bǔ)進(jìn)動態(tài)密碼;步驟E :判斷動態(tài)密碼的長度是否達(dá)到要求,如果達(dá)到要求,則結(jié)束動態(tài)密碼的生成,如果未達(dá)到要求,則重復(fù)步驟B至步驟E的過程。所述步驟A中,所述明文S可以通過以下方法拼接形成I、從預(yù)留文本庫中隨機(jī)截取三個不同的字符串R1、R2和R3 ;所述預(yù)留文本庫為自建字符串庫,其中存儲著大量公開網(wǎng)頁,截取的字符串R1、R2和R3的長度最小值為10位;2、將操作員信息、R1、時間值、R2、隨機(jī)數(shù)、交易信息、R3與高斯隨機(jī)數(shù)組合拼接在一起,形成明文S。由于簽名所使用的明文中加入了隨機(jī)數(shù),即使黑客獲知簽名所用的明文和簽名算法,還需同步隨機(jī)數(shù)發(fā)生器才有可能破解密碼,破解難度大為增加。所述步驟A中,所采用的數(shù)字簽名的算法不唯一,簽名的主要目的是以字符串明文為輸入,產(chǎn)生一個看似與明文毫無關(guān)系并極為混亂的加密字節(jié)流,可供選擇的數(shù)字簽名算法有 MD5 (Message Digest Algorithm MD5,消息摘要算法第五版)、SHA (Secure HashAlgorithm,安全散列算法)等。所述步驟B中,所述數(shù)值a是指選取的字節(jié)在計算機(jī)中對應(yīng)的數(shù)值。所述步驟C和步驟D中,所述動態(tài)密碼字符庫中的字符有數(shù)字、英文字母和標(biāo)點符號,并且刪去容易混淆的數(shù)字和英文字母,如數(shù)字0和字母O,數(shù)字I和字母1,數(shù)字2和字母z等,以免用戶在使用動態(tài)密碼時弄錯;動態(tài)密碼字符庫中的字符舉例如下c,x, ,%,
7 V !,e,6,£L,h,},n,,; ft tC^ f p (,),, ,W,i,U,+,\,d,
q, &, [, k, r, ], {等。由于所述動態(tài)密碼字符庫包括數(shù)字、英文字母和標(biāo)點符號,較動態(tài)口令牌大為擴(kuò)展,使得動態(tài)密碼的值域范圍擴(kuò)大,動態(tài)密碼難于理解,增加口了破解的難度。因為動態(tài)密碼的生成依賴于動態(tài)密碼字符庫中的字符的排列順序,所以,為了確保本發(fā)明的動態(tài)密碼生成方法的安全,需要定期對動態(tài)密碼字符庫中字符的排列順序進(jìn)行調(diào)整,如一年調(diào)整一次,以防范破解者進(jìn)行共謀破解。
所述步驟E中,生成動態(tài)密碼時,動態(tài)密碼的初始長度設(shè)為0,生成的所述動態(tài)密碼的長度要求的范圍是6-10位,該長度范圍內(nèi)的動態(tài)密碼不但能保證安全性,而且使用起來比較方便。本發(fā)明提供的動態(tài)密碼生成方法結(jié)合了交易獨特性和操作員身份唯一性,集中了隨機(jī)數(shù)算法和數(shù)字簽名算法的優(yōu)點,使得同樣的交易、同樣的操作員不同時間來操作,所獲得動態(tài)密碼絕不一樣,增加了破解的難度。由于動態(tài)密碼生成過程中使用了數(shù)字簽名,具備較高的加密強(qiáng)度、計算復(fù)雜性和不可倒推性,因此很難從密碼本身推導(dǎo)出明文,很難掌握動態(tài)密碼的生成規(guī)律,密碼生成算法在保密性上不遜色于動態(tài)口令牌。圖2為本發(fā)明的動態(tài)密碼生成系統(tǒng)的結(jié)構(gòu)示意圖。如圖 2所示,本發(fā)明提供的動態(tài)密碼生成系統(tǒng)包括明文拼接模塊、簽名模塊、轉(zhuǎn)換模塊、動態(tài)密碼字符庫、取余模塊、密碼拼接模塊和判別模塊,其中所述明文拼接模塊,用于將多種動態(tài)異構(gòu)信息拼接形成明文S ;所述多種動態(tài)異構(gòu)信息包括交易信息、操作員信息、時間、隨機(jī)數(shù)、預(yù)留文本庫中的隨機(jī)字段和高斯隨機(jī)數(shù),其中,所述預(yù)留文本庫中存儲公開網(wǎng)頁,所述預(yù)留文本庫中的隨機(jī)字段的長度的最小值為10位;所述簽名模塊,用于對明文S進(jìn)行數(shù)字簽名得到加密字節(jié)流S’,將S’與S移位拼接后再進(jìn)行數(shù)字簽名得到加密字節(jié)流S”,重復(fù)上述簽名過程直至數(shù)字簽名次數(shù)等于預(yù)先設(shè)定的簽名次數(shù)N,得到加密字節(jié)流S2 ;所述簽名模塊采用的數(shù)字簽名的算法不唯一,簽名的主要目的是以字符串明文為輸入,產(chǎn)生一個看似與明文毫無關(guān)系并極為混亂的加密字節(jié)流,可供選擇的簽名系統(tǒng)有MD5加密系統(tǒng)(Message Digest Algorithm MD5,消息摘要算法第五版)、SHA加密系統(tǒng)(Secure Hash Algorithm,安全散列算法)等;所述轉(zhuǎn)換模塊,用于從所述加密字節(jié)流S2中選取一個字節(jié),轉(zhuǎn)換為該字節(jié)在計算機(jī)中的數(shù)值a,并將該字節(jié)從S2中刪除;所述動態(tài)密碼字符庫,包括用于生成動態(tài)密碼的多個字符,如數(shù)字、英文字母和標(biāo)點符號,并且為了避免用戶在使用動態(tài)密碼時弄錯,刪去容易混淆的數(shù)字和英文字母,如數(shù)字0和字母O,數(shù)字I和字母1,數(shù)字2和字母z等;動態(tài)密碼字符庫中的字符舉例如下c,X, ,/o V !,e,6,£i,h,},n,,;,#,,9,g,*,〈,f,p,〉,@,5,(,),, ,w,i,u,+,\’ d, q,&,[,k,r,],{等;并且由于動態(tài)密碼的生成依賴于動態(tài)密碼字符庫中的字符的排列順序,所以,為了確保本發(fā)明的動態(tài)密碼生成系統(tǒng)的安全性,需要定期對動態(tài)密碼字符庫中字符的排列順序進(jìn)行調(diào)整,如一年調(diào)整一次,以防范破解者進(jìn)行共謀破解;所述取余模塊,用于執(zhí)行取余操作i = a%動態(tài)密碼字符庫的長度,得到數(shù)值a對動態(tài)密碼字符庫的長度取余的結(jié)果i ;所述密碼拼接模塊,用于從所述動態(tài)密碼字符庫中選取第i個字符,補(bǔ)進(jìn)動態(tài)密碼;所述判別模塊,用于判斷動態(tài)密碼的長度是否達(dá)到要求,如果達(dá)到要求,則結(jié)束動態(tài)密碼的生成,如果未達(dá)到要求,則繼續(xù)動態(tài)密碼的生成。以上實施例僅為本發(fā)明的示例性實施例,不用于限制本發(fā)明,本發(fā)明的保護(hù)范圍由權(quán)利要求書限定。本領(lǐng)域技術(shù)人員可以在本發(fā)明的實質(zhì)和保護(hù)范圍內(nèi),對本發(fā)明做出各種修改或等同替換,這種修改或等同替換也應(yīng)視 為落在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種動態(tài)密碼生成方法,其特征在于,包括 步驟A :將多種動態(tài)異構(gòu)信息拼接形成明文S,對明文S進(jìn)行數(shù)字簽名得到加密字節(jié)流S’,將S’與S移位拼接后再進(jìn)行數(shù)字簽名得到加密字節(jié)流S”,重復(fù)上述簽名過程直至數(shù)字簽名次數(shù)等于預(yù)先設(shè)定的簽名次數(shù)N,得到加密字節(jié)流S2 ; 步驟B :從所述加密字節(jié)流S2中選取一個字節(jié),轉(zhuǎn)換為數(shù)值a,并將該字節(jié)從S2中刪除; 步驟C :執(zhí)行取余操作i = a%動態(tài)密碼字符庫的長度,其中所述動態(tài)密碼字符庫包括用于生成動態(tài)密碼的多個字符; 步驟D :從所述動態(tài)密碼字符庫中選取第i個字符,補(bǔ)進(jìn)動態(tài)密碼; 步驟E :判斷動態(tài)密碼的長度是否達(dá)到要求,如果達(dá)到要求,則結(jié)束動態(tài)密碼的生成, 如果未達(dá)到要求,則重復(fù)步驟B至步驟E的過程。
2.根據(jù)權(quán)利要求I所述的動態(tài)密碼生成方法,其特征在于,所述步驟A中,所述多種動態(tài)異構(gòu)信息包括交易信息、操作員信息、時間、隨機(jī)數(shù)、預(yù)留文本庫中的隨機(jī)字段和高斯隨機(jī)數(shù),其中,所述預(yù)留文本庫中存儲公開網(wǎng)頁,所述預(yù)留文本庫中的隨機(jī)字段的長度的最小值為10位。
3.根據(jù)權(quán)利要求I所述的動態(tài)密碼生成方法,其特征在于,所述步驟C和步驟D中,所述動態(tài)密碼字符庫中的字符為數(shù)字、英文字母和標(biāo)點符號。
4.根據(jù)權(quán)利要求3所述的動態(tài)密碼生成方法,其特征在于,所述步驟C和步驟D中,所述動態(tài)密碼字符庫不包括數(shù)字0和字母O,數(shù)字I和字母1,數(shù)字2和字母z。
5.根據(jù)權(quán)利要求I所述的動態(tài)密碼生成方法,其特征在于,所述步驟C和步驟D中,所述動態(tài)密碼字符庫中的字符的排列順序定期進(jìn)行調(diào)整。
6.根據(jù)權(quán)利要求I所述的動態(tài)密碼生成方法,其特征在于,所述步驟E中,所述動態(tài)密碼的長度要求的范圍是6-10位。
7.根據(jù)權(quán)利要求I所述的動態(tài)密碼生成方法,其特征在于,所述步驟A中,所述數(shù)字簽名的方法為MD5或SHA。
8.一種動態(tài)密碼生成系統(tǒng),其特征在于,包括明文拼接模塊、簽名模塊、轉(zhuǎn)換模塊、動態(tài)密碼字符庫、取余模塊、密碼拼接模塊和判別模塊,其中 所述明文拼接模塊,用于將多種動態(tài)異構(gòu)信息拼接形成明文S ; 所述簽名模塊,用于對明文S進(jìn)行數(shù)字簽名得到加密字節(jié)流S’,將S’與S移位拼接后再進(jìn)行數(shù)字簽名得到加密字節(jié)流S”,重復(fù)上述簽名過程直至數(shù)字簽名次數(shù)等于預(yù)先設(shè)定的簽名次數(shù)N,得到加密字節(jié)流S2 ; 所述轉(zhuǎn)換模塊,用于從所述加密字節(jié)流S2中選取一個字節(jié),轉(zhuǎn)換為數(shù)值a,并將該字節(jié)從S2中刪除; 所述動態(tài)密碼字符庫,包括用于生成動態(tài)密碼的多個字符; 所述取余模塊,用于執(zhí)行取余操作i = a%動態(tài)密碼字符庫的長度; 所述密碼拼接模塊,用于從所述動態(tài)密碼字符庫中選取第i個字符,補(bǔ)進(jìn)動態(tài)密碼;所述判別模塊,用于判斷動態(tài)密碼的長度是否達(dá)到要求,如果達(dá)到要求,則結(jié)束動態(tài)密碼的生成,如果未達(dá)到要求,則繼續(xù)動態(tài)密碼的生成。
9.根據(jù)權(quán)利要求8所述的動態(tài)密碼生成系統(tǒng),其特征在于,所述多種動態(tài)異構(gòu)信息包括交易信息、操作員信息、時間、隨機(jī)數(shù)、預(yù)留文本庫中的隨機(jī)字段和高斯隨機(jī)數(shù),其中,所述預(yù)留文本庫中存儲公開網(wǎng)頁,所述預(yù)留文本庫中的隨機(jī)字段的長度的最小值為10位。
10.根據(jù)權(quán)利要求8所述的動態(tài)密碼生成系統(tǒng),其特征在于,所述簽名模塊是MD5加密系統(tǒng)或SHA加密系統(tǒng)。全文摘要
本發(fā)明公開了一種動態(tài)密碼生成方法及系統(tǒng),所述方法包括將多種動態(tài)異構(gòu)信息拼接形成明文S,對明文S進(jìn)行N次數(shù)字簽名得到加密字節(jié)流S2;從S2中選取一個字節(jié),轉(zhuǎn)換為數(shù)值a;執(zhí)行取余操作i=a%動態(tài)密碼字符庫的長度;從動態(tài)密碼字符庫中選取第i個字符,補(bǔ)進(jìn)動態(tài)密碼;重復(fù)上述動態(tài)密碼生成過程,直至動態(tài)密碼長度達(dá)到要求;所述系統(tǒng)包括明文拼接模塊、簽名模塊、轉(zhuǎn)換模塊、動態(tài)密碼字符庫、取余模塊、密碼拼接模塊和判別模塊。本發(fā)明提供的動態(tài)密碼生成方集中了隨機(jī)數(shù)算法和數(shù)字簽名算法的優(yōu)點,使得同樣的交易、同樣的操作員不同時間來操作,所獲得動態(tài)密碼絕不一樣;且動態(tài)密碼僅在使用時產(chǎn)生,重復(fù)率極低,具備較高的安全性。
文檔編號H04L9/32GK102752110SQ20111009829
公開日2012年10月24日 申請日期2011年4月19日 優(yōu)先權(quán)日2011年4月19日
發(fā)明者莊向友, 方晨, 林啟琴, 潘定, 王海煒, 王炯, 陳丹霞 申請人:中國銀行股份有限公司