本發(fā)明屬于信息安全技術(shù)領(lǐng)域,涉及電力系統(tǒng)無線通信數(shù)據(jù)認證、電動汽車充電管理云平臺認證終端或物聯(lián)網(wǎng)設(shè)備接入數(shù)據(jù)認證,具體涉及一種分級時效的動態(tài)口令加密算法。
背景技術(shù):
在國外,動態(tài)口令與基于PKI數(shù)字證書的認證技術(shù)相比具有使用方便、成本低、免維護、應(yīng)用面廣等優(yōu)點,在金融、政府、制造業(yè)等眾多領(lǐng)域得到大量成功應(yīng)用。在國內(nèi),隨著國內(nèi)網(wǎng)上交易爆炸式增長,安全問題日益突出,動態(tài)密碼的優(yōu)點越來越受到人們的青睞。
動態(tài)口令作為目前最安全的身份認證技術(shù)之一,已經(jīng)被越來越多的行業(yè)所應(yīng)用。動態(tài)口令具有使用便捷、平臺無關(guān)等特性,隨著移動互聯(lián)網(wǎng)的發(fā)展,動態(tài)口令技術(shù)被廣泛應(yīng)用于企業(yè)、金融、電子商務(wù)、物聯(lián)網(wǎng)等領(lǐng)域。但是,由于互聯(lián)網(wǎng)的開放性,它不受時空限制,也極易遭受惡意攻擊和入侵,因此網(wǎng)絡(luò)安全保護成為互聯(lián)網(wǎng)時代一個不可或缺的話題,在網(wǎng)絡(luò)強國戰(zhàn)略寫入“十三五“規(guī)劃這一大背景下,我國首部《網(wǎng)絡(luò)安全法》已經(jīng)于2016年11月發(fā)布。
在互聯(lián)網(wǎng)應(yīng)用中,身份認證、訪問控制、數(shù)據(jù)加密、防篡改、防抵賴是安全保護的幾個基本要素,身份認證是第一道防線,也是最重要的一道防線,近年來基于身份認證的安全技術(shù)發(fā)展很快,其中比較成熟的是基于PKI數(shù)字證書和動態(tài)密碼技術(shù)。動態(tài)密碼可方便地與靜態(tài)PIN碼、SSL加密傳輸?shù)劝踩夹g(shù)結(jié)合,具有經(jīng)濟、安全的特點,因而被廣泛應(yīng)用于遠程身份認證和安全交易支付中。傳統(tǒng)的動態(tài)口令方法都是基于時間同步的動態(tài)口令,對標(biāo)準時間用口令生成密鑰(公鑰) 加密生成動態(tài)口令。
但是,對于電力系統(tǒng)認證交互過程中對于一些特殊權(quán)限操作,需要登錄人員進行二次口令驗證的情況,在取得合法登錄身份后,使用動態(tài)口令在一定時效范圍內(nèi)進行有限制的功能操作,因此需要對動態(tài)口令進行時效分級,比如在小時級范圍內(nèi)進行操作或者在分鐘級范圍進行操作,即通過不同時效的動態(tài)口令達到控制權(quán)限操作的目的。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種分級時效的動態(tài)口令加密算法,其從當(dāng)前日期和時刻提取不同的時間維度,通過選取時間維度的組合,支持時效分級控制,支持不同的時間維度組合方案和時效驗證控制,防止偽造,增強加密強度。
為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是:
一種分級時效的動態(tài)口令加密算法,包括以下步驟:
S1、基于時間信息生成DSR字符串
S101、設(shè)置年代因子Y,其值在0和15之間,記為Y=[0,15],
S102、系統(tǒng)獲取當(dāng)前日期和時刻,提取當(dāng)前年yi、指定基準年y0,每16年為一個步長,計算當(dāng)前年的年代指數(shù)y=(yi- y0-Y)%16,設(shè)置年代系數(shù)C,其值在0和255之間,C=(yi- y0-Y)/16,取整,
S103、計算該日期在全年中是第幾天,記為d1,計算該日期是一周中的第幾天,記為d2,取當(dāng)前小時時間,記為d3,取當(dāng)前分鐘值,記為d4,
S104、產(chǎn)生隨機數(shù)R,將隨機數(shù)R進行6位長度字符串格式化運算,記為r,
S105、選擇r、y和C,并與d1、 d2、d3或d4中一個或兩個以上按設(shè)定規(guī)則組合排列,并進行3DES加密,生成字符串DSR;
S2、基于ASCII字符集生成字符串ESV
S201、從ASCII字符集中選取64個字符作為密碼集S1,記為,
S202、設(shè)置0-63亂序排列的轉(zhuǎn)換矩陣V,對密碼集S1進行矩陣轉(zhuǎn)換,記為密碼集S2,
S203、從密碼集S1中取字符串序列轉(zhuǎn)換成密碼集S2中的字符生成字符串SV,并按照設(shè)定的規(guī)則與步驟S102中當(dāng)前年的年代指數(shù)y值排序,然后進行3DES加密,生成字符串ESV;
S3、將字符串DSR與字符串ESV進行長度比較,不足者左側(cè)用0補齊后進行異或運算,將結(jié)果記為T,并將T按16進制格式轉(zhuǎn)換成字符串作為動態(tài)口令token,記為t。
上述技術(shù)方案中,字符串DSR的生成基于隨機指定的年代因子、并依賴于當(dāng)前日期和/或時刻。從當(dāng)前日期和時刻提取不同時間維度,通過選取不同的時間維度并與隨機值、年代指數(shù)、年代系數(shù)亂序排列生成字符串并加密。字符串ESV的生成基于ASCII字符集,經(jīng)過亂序轉(zhuǎn)換矩陣的轉(zhuǎn)換、與年代指數(shù)組合生成字符串加密。經(jīng)過多層加密和亂序轉(zhuǎn)換,增強加密強度。
采用上述技術(shù)方案產(chǎn)生的有益效果在于:(1)本發(fā)明自定義矩陣轉(zhuǎn)換字符串密碼表,增強加密強度;(2)使用年代因子、年代系數(shù)和年代指數(shù),指定基準時間,時間跨度多達4000年;(3)引入隨機數(shù)概念,支持不同時間維度組合;(4)引入當(dāng)前日期天數(shù)和星期概念,通過時間維度分級,對口令實現(xiàn)時效管理;(5)使用兩組不同的3DES加密機制,支持系統(tǒng)級和終端節(jié)點分別加密;(6)具備時間因子和時間系數(shù)的自我校驗功能;(7)token根據(jù)密鑰強度,支持簡單、中度、復(fù)雜等級別,用戶可以選擇適合自己的加密方式。
附圖說明
圖1是本發(fā)明動態(tài)口令加密的流程圖。
具體實施方式
A、基于時間信息生成DSR字符串
S101、設(shè)置年代因子Y,其值在0和15之間,記為Y=[0,15],不同的用戶可以自由指定年代因子Y值,本實施例中設(shè)置年代因子Y=10。
S102、系統(tǒng)計算獲取當(dāng)前日期和時刻,提取當(dāng)前年yi、指定基準年y0,每16年為一個步長,計算當(dāng)前年的年代指數(shù)y=(yi- y0-Y)%16。并設(shè)置年代系數(shù)C,其值在0和255之間,C=(yi- y0-Y)/16,取整。每16年為一個步長,年份每增加16年,年代系數(shù)C加1,該方法可以用于的時間跨度多達4000年。y=( yi- y0) -Y-16×C,支持時效驗證。
比如,當(dāng)天日期為2016年11月11日,指定基準年y0=2000年,則根據(jù)(yi- y0-Y)/16計算,其整數(shù)為年代系數(shù)C,余數(shù)為當(dāng)前年的年代指數(shù),本實施例中C=0,y=6。
S103、計算該日期在全年中是第幾天,記為d1,計算該日期是一周中的第幾天,記為d2,取當(dāng)前小時時間,記為d3,取當(dāng)前分鐘值,記為d4。
由2016年11月11日,可以計算該日為一年中的第316天,即d1=316,當(dāng)天是周五,即d2=6(周日、周一到周六分別對應(yīng)1-7),時間是14:30分,則d3=14,d4=30。
S104、產(chǎn)生隨機數(shù)R,將隨機數(shù)R進行6位長度字符串格式化運算,記為r。
設(shè)r=“12345”。
S105、選擇r、y和C,并與d1、 d2、d3或d4中一個或兩個以上按設(shè)定規(guī)則組合排列,并進行3DES加密,生成字符串DSR。
本實施例中選擇d1、 d2、d3和d4與r、y和C按照r-d1-d3-d4-d2-C-y的方式組合,則有字符串“123453161430060006”,并將該字符串進行3DES加密,生成字符串DSR。
S2、基于ASCII字符集生成字符串ESV
S201、從ASCII字符集中選取64個字符作為密碼集S1,記為,
本實施例設(shè)置密碼集S1=
{ A B C D E F G H }
{ I J K L M N O P }
{ Q R S T U V W X }
{ a b c d e f g h }
{ i j k o p q r s }
{ t u v x z 1 2 3 }
{ 4 5 6 7 8 9 0 ! }
{ @ # $ % ^ & * ( }
S202、設(shè)置0-63亂序排列的轉(zhuǎn)換矩陣V,對密碼集S1進行矩陣轉(zhuǎn)換。
本實施例設(shè)置亂序排列的轉(zhuǎn)換矩陣V=
{ 50 4 20 28 8 30 17 35 }
{ 3 27 21 36 1 9 29 46 }
{ 48 16 0 5 13 37 18 11 }
{ 26 49 7 23 33 2 10 38 }
{ 51 24 14 22 52 34 39 19 }
{ 25 41 53 56 40 32 12 6 }
{ 31 42 15 44 61 63 60 47 }
{ 55 54 59 43 57 45 58 62 }
則有密碼集S2=
{ S M f I B T 3 c }
{ E N g X 2 U k 6 }
{ R G W s C K o d }
{ j t a J D O F 4 }
{ 1 e q H L V h r }
{ z u 5 % 7 & P ! }
{ Q b A i p v # @ }
{ x ^ * $ 0 8 ( 9 }
S203、從密碼集S1中取字符串序列轉(zhuǎn)換成密碼集S2中的字符生成字符串SV,并按照設(shè)定的規(guī)則與步驟S102中當(dāng)前年的年代指數(shù)y值排序,然后進行3DES加密,生成字符串ESV。
本實施例中設(shè)有字符串“PiNg1978”,轉(zhuǎn)換后得SV為“61UF&vip”,增加步驟S102中當(dāng)前年的年代指數(shù)y=6,得到字符串“61UF&vip0006”,將該步驟中的字符串進行3DES加密轉(zhuǎn)化,生成字符串ESV。
在其它實施例中字符串SV還可以按照設(shè)定的規(guī)則與步驟S102中當(dāng)前年的年代指數(shù)y值和年代因子C值進行排序。
S3、將字符串DSR與字符串ESV進行長度比較,不足者左側(cè)用0補齊后進行異或運算,將結(jié)果記為T,并將T按16進制格式轉(zhuǎn)換成字符串作為動態(tài)口令token,記為t。
本實施例中將T轉(zhuǎn)為16進制字符串,得“ASE4343334dd454”。
綜上所述,本發(fā)明采用兩維度矩陣加密技術(shù),基于時間的動態(tài)口令,支持分級控制,支持不同的時間維度組合方案,支持不同的時效驗證控制,具備時間因子和時間系數(shù)的自我校驗功能,防偽造。