亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種實(shí)現(xiàn)口令安全保護(hù)的方法及系統(tǒng)的制作方法

文檔序號:7897539閱讀:926來源:國知局
專利名稱:一種實(shí)現(xiàn)口令安全保護(hù)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種實(shí)現(xiàn)口令安全保護(hù)的方法及系統(tǒng)。
技術(shù)背景
在現(xiàn)代生活中,口令的應(yīng)用越來越廣泛,例如電子郵箱的密碼、登陸某網(wǎng)站的登 陸密碼、網(wǎng)絡(luò)銀行的交易密碼、文件加密密碼及硬件設(shè)備密碼等都屬于口令的范疇。在上 述應(yīng)用中,口令用于對使用者或用戶的身份是否合法驗(yàn)證,進(jìn)而對合法的使用者或用戶賦 予相應(yīng)的操作權(quán)限;比如當(dāng)使用者或用戶要登錄某個系統(tǒng)或網(wǎng)站時,某個系統(tǒng)或網(wǎng)站在 驗(yàn)證使用者或用戶輸入的口令正確的情況下,所述系統(tǒng)或網(wǎng)站確認(rèn)該使用者或用戶為合法 的,并賦予其相應(yīng)的權(quán)限,否則確認(rèn)該使用者或用戶是非法的。因此,對口令的安全保護(hù)至 關(guān)重要。
現(xiàn)有的口令驗(yàn)證方法包括將用于判定用戶合法性的口令或者加密后的口令傳送 給用于進(jìn)行口令驗(yàn)證的服務(wù)器;用于進(jìn)行口令驗(yàn)證的服務(wù)器比較來自用戶端的口令或加密 后的口令與保存于服務(wù)器端的口令是否一致,如果一致,則通過口令驗(yàn)證,否則口令驗(yàn)證失 敗。
為了防止用于判定用戶合法性的口令被竊取,可以通過信道加密等技術(shù)來保證口 令的安全;雖然信道加密等技術(shù)能夠保證口令在傳輸過程的安全,但是無法抵御針對口令 的字典攻擊。字典攻擊為根據(jù)口令可能包含的字符串,逐一驗(yàn)證所述字符串的各種組合方 式以獲得正確的口令的方法。目前,對于口令的字典攻擊的難度主要取決于口令的復(fù)雜程 度;口令越復(fù)雜,字典攻擊所需的時間越長。
在口令的實(shí)際應(yīng)用中,由于使用者或用戶往往需要記住自己的口令,使用者或用 戶設(shè)置的口令達(dá)不到抵御字典攻擊的復(fù)雜程度,這就需要對口令的安全進(jìn)行進(jìn)一步的保 護(hù)。發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種實(shí)現(xiàn)口令安全保護(hù)的方法,該方法能夠使 口令抵御字典攻擊,提高安全性。
本發(fā)明的目的在于提供一種實(shí)現(xiàn)口令安全保護(hù)的系統(tǒng),該系統(tǒng)能夠使口令抵御字 典攻擊,提高安全性。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的
一種實(shí)現(xiàn)口令安全保護(hù)的方法,該方法包括
A、根據(jù)口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈希運(yùn)算獲得第一口令;所述η為小于 最大次數(shù)N的自然數(shù);所述N為大于1的自然數(shù);
B、對接收到的待驗(yàn)證口令進(jìn)行m次哈希運(yùn)算獲得第二口令;
C、在所述第二 口令與所述第一口令一致時,確認(rèn)所述待驗(yàn)證口令正確;在所述第 二 口令與所述第一口令不一致時,判斷所述m是否小于等于最大次數(shù)N,如果是,則將m值增1后執(zhí)行步驟B,否則確認(rèn)待驗(yàn)證的口令錯誤。
較佳地,所述步驟A與所述步驟B之間進(jìn)一步包括
根據(jù)組合條件將所述第一口令與所述η進(jìn)行組合,將組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算 獲得第三口令;
步驟B所述在所述第二口令與所述第一 口令一致之后,進(jìn)一步包括
根據(jù)組合條件將所述第二口令與所述m進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算 獲得第四口令;在所述第四口令與所述第三口令一致時,確認(rèn)所述待驗(yàn)證口令正確;在所 述第四口令與所述第三口令不一致時,確認(rèn)所述待驗(yàn)證口令錯誤。
上述方法中,步驟A所述對口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈希運(yùn)算獲得第一 口令包括
對口令設(shè)置階段設(shè)置的口令進(jìn)行第一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為 第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行η次哈希運(yùn)算,將第η次哈希運(yùn)算獲得的結(jié)果作 為第一口令。
上述方法中,步驟B所述對接收到的待驗(yàn)證口令進(jìn)行m次哈希運(yùn)算獲得第二口令 包括
對接收到的待驗(yàn)證口令進(jìn)行第一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二 次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行m次哈希運(yùn)算,將第m次哈希運(yùn)算獲得的結(jié)果作為第二口令。
上述方法中,步驟A所述對口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈希運(yùn)算獲得第一 口令包括
對口令設(shè)置階段設(shè)置的口令進(jìn)行第一次哈希運(yùn)算,對第一次哈希運(yùn)算的結(jié)果進(jìn)行 變換,將變換后的數(shù)據(jù)作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行 變換后的數(shù)據(jù)作為下一次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行η次哈希運(yùn)算,將第η次哈希 運(yùn)算的結(jié)果作為第一口令。
上述方法中,步驟B所述對接收到的待驗(yàn)證口令進(jìn)行m次哈希運(yùn)算獲得第二口令 包括
對接收到的待驗(yàn)證口令進(jìn)行第一次哈希運(yùn)算,對第一次哈希運(yùn)算的結(jié)果進(jìn)行變 換,將變換后的數(shù)據(jù)作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變 換后的數(shù)據(jù)作為下一次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行m次哈希運(yùn)算,將第m次哈希運(yùn) 算的結(jié)果作為第二口令。
上述方法中,所述組合條件為將多個數(shù)據(jù)按照順序前后拼接成一個數(shù)據(jù)或?qū)Χ鄠€ 數(shù)據(jù)進(jìn)行算術(shù)計算獲得一個數(shù)據(jù)。
一種實(shí)現(xiàn)口令安全保護(hù)的系統(tǒng),該系統(tǒng)包括
口令設(shè)置模塊,根據(jù)輸入的設(shè)置第一口令的觸發(fā)信息,輸出第一口令生成指令至 口令加密模塊;保存口令加密模塊輸出的第一口令、預(yù)設(shè)次數(shù)η和預(yù)設(shè)最大次數(shù)N ;所述第 一口令生成指令攜帶有預(yù)設(shè)次數(shù)η及口令設(shè)置階段設(shè)置的口令;所述η為小于最大次數(shù)N 的自然數(shù);所述N為大于1的自然數(shù);
口令驗(yàn)證模塊,根據(jù)輸入的驗(yàn)證第二口令的觸發(fā)信息,輸出攜帶待驗(yàn)證口令及哈 希運(yùn)算次數(shù)m的第二口令生成指令至口令加密模塊;所述口令驗(yàn)證模塊接收口令加密模塊6輸出的第二 口令,從口令設(shè)置模塊讀取第一 口令及預(yù)設(shè)最大次數(shù)N,判定第二 口令與第一 口 令一致時,確定待驗(yàn)證口令正確;判定第二口令與第一口令不一致時,判斷哈希運(yùn)算次數(shù)m 是否小于等于預(yù)設(shè)最大次數(shù)N,如果小于,則將哈希運(yùn)算次數(shù)m增1后,輸出攜帶待驗(yàn)證口令 和哈希運(yùn)算次數(shù)m的第二口令生成指令至口令加密模塊,否則確定待驗(yàn)證口令錯誤;
口令加密模塊,根據(jù)第一 口令生成指令,對口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈 希運(yùn)算獲得第一 口令,輸出第一 口令至口令設(shè)置模塊;根據(jù)第二口令生成指令,對待驗(yàn)證口 令進(jìn)行m次哈希運(yùn)算獲得第二口令,輸出第二口令至口令驗(yàn)證模塊。
較佳地,該系統(tǒng)進(jìn)一步包括口令組合模塊;
所述口令設(shè)置模塊進(jìn)一步根據(jù)輸入的設(shè)置第三口令的觸發(fā)信息,輸出第三口令生 成指令至所述口令組合模塊,保存所述口令組合模塊輸出的第三口令;輸出驗(yàn)證第四口令 的觸發(fā)信息至所述口令驗(yàn)證模塊;所述第三口令生成指令攜帶有預(yù)設(shè)次數(shù)η和第一 口令; 所述驗(yàn)證第四口令的觸發(fā)信息攜帶有第三口令;
所述口令驗(yàn)證模塊根據(jù)驗(yàn)證第四口令的觸發(fā)信息,在判定第二口令與第一口令一 致之后,進(jìn)一步輸出第四口令生成指令至所述口令組合模塊;根據(jù)所述口令組合模塊輸出 的第四口令和接收到的第三口令,判定第四口令與第三口令一致時,確定待驗(yàn)證口令正確, 否則待驗(yàn)證口令不正確;所述第四口令生成指令攜帶有第二口令及次數(shù)m;
所述口令組合模塊根據(jù)第三口令生成指令及預(yù)設(shè)的組合條件,對第一口令和預(yù)設(shè) 次數(shù)η進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行哈希預(yù)算獲得第三口令,輸出第三口令至所述口令 設(shè)置模塊;根據(jù)所述口令驗(yàn)證模塊輸出的第四口令生成指令及預(yù)設(shè)的組合條件,對第二口 令和預(yù)設(shè)次數(shù)m進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算獲得第四口令,輸出第四口令至 所述口令驗(yàn)證模塊。
上述系統(tǒng)中,所述口令加密模塊包括
第一 口令生成單元,根據(jù)第一 口令生成指令,對口令設(shè)置階段設(shè)置的口令進(jìn)行第 一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行η 次哈希運(yùn)算,將第η次哈希運(yùn)算獲得的結(jié)果作為第一口令,輸出第一口令至口令設(shè)置模塊;
第二 口令生成單元,根據(jù)第二口令生成指令,對接收到的待驗(yàn)證口令進(jìn)行第一次 哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行m次 哈希運(yùn)算,將第m次哈希運(yùn)算獲得的結(jié)果作為第二口令,輸出第二口令至口令驗(yàn)證模塊。
上述系統(tǒng)中,所述口令加密模塊包括
第一 口令生成單元,根據(jù)第一 口令生成指令,對口令設(shè)置階段設(shè)置的口令進(jìn)行第 一次哈希運(yùn)算,對第一次哈希運(yùn)算的結(jié)果進(jìn)行變換,將變換后的數(shù)據(jù)作為第二次進(jìn)行哈希 運(yùn)算的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變換后的數(shù)據(jù)作為下一次進(jìn)行哈希運(yùn)算的輸 入數(shù)據(jù),直至進(jìn)行η次哈希運(yùn)算,將第η次哈希運(yùn)算的結(jié)果作為第一 口令,輸出第一 口令至 口令設(shè)置模塊;
第二 口令生成單元,根據(jù)第二口令生成指令,對接收到的待驗(yàn)證口令進(jìn)行第一次 哈希運(yùn)算,對第一次哈希運(yùn)算的結(jié)果進(jìn)行變換,將變換后的數(shù)據(jù)作為第二次進(jìn)行哈希運(yùn)算 的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變換后的數(shù)據(jù)作為下一次進(jìn)行哈希運(yùn)算的輸入數(shù) 據(jù),直至進(jìn)行m次哈希運(yùn)算,將第m次哈希運(yùn)算的結(jié)果作為第二 口令,輸出第二口令至口令 驗(yàn)證模塊。
由上述的技術(shù)方案可見,本發(fā)明提供了一種實(shí)現(xiàn)口令安全保護(hù)的方法及系統(tǒng),對 口令設(shè)置階段設(shè)置的口令進(jìn)行預(yù)設(shè)η次哈希運(yùn)算獲得第一口令;在口令驗(yàn)證階段,采用相 同的哈希算法,對待驗(yàn)證的口令逐次進(jìn)行哈希運(yùn)算,且在每次哈希運(yùn)算之后,將哈希運(yùn)算結(jié) 果與第一口令進(jìn)行比較,在哈希運(yùn)算結(jié)果與第一口令一致,且哈希運(yùn)算次數(shù)m小于最大次 數(shù)N時,判定待驗(yàn)證口令為正確口令;否則,對待驗(yàn)證口令進(jìn)行N次哈希運(yùn)算后,哈希元算 結(jié)果仍與第一口令不一致,則判定待驗(yàn)證口令錯誤。采用本發(fā)明的方法及系統(tǒng),當(dāng)對口令進(jìn) 行字典攻擊時,每次判定字典攻擊提供的口令為錯誤口令的時間至少為N次哈希運(yùn)算的時 間,這樣增加了字典攻擊時大量錯誤口令驗(yàn)證的時間成本,增強(qiáng)了口令抵御字典攻擊的能 力,提高口令的安全性。


圖1為本發(fā)明實(shí)現(xiàn)口令安全保護(hù)的方法第一實(shí)施例的流程圖。
圖2為本發(fā)明實(shí)現(xiàn)口令安全保護(hù)的方法第二實(shí)施例的流程圖。
圖3為本發(fā)明實(shí)現(xiàn)口令安全保護(hù)的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案、及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例, 對本發(fā)明進(jìn)一步詳細(xì)說明。
本發(fā)明提供了一種實(shí)現(xiàn)口令安全保護(hù)的方法及系統(tǒng);對口令設(shè)置階段設(shè)置的用 作驗(yàn)證的口令進(jìn)行η次哈希運(yùn)算獲得第一 口令,以增加用于驗(yàn)證的第一口令的復(fù)雜性;在 口令驗(yàn)證階段,對客戶端提供的待驗(yàn)證的口令同樣進(jìn)行哈希運(yùn)算,只不過是以次數(shù)遞增的 方式逐次進(jìn)行哈希運(yùn)算,且在每次哈希運(yùn)算后,將哈希運(yùn)算結(jié)果與第一口令進(jìn)行比較,在預(yù) 設(shè)最大次數(shù)N之內(nèi)能夠得到與第一口令一致的哈希運(yùn)算結(jié)果,則認(rèn)為待驗(yàn)證的口令是正確 的,否則,確定待驗(yàn)證的口令是錯誤的;通過設(shè)置一最大次數(shù)N,來增強(qiáng)口令抵御字典攻擊 的能力。
圖1為本發(fā)明實(shí)現(xiàn)口令安全保護(hù)的方法第一實(shí)施例的流程圖?,F(xiàn)結(jié)合圖1,對本發(fā) 明第一實(shí)施例的方法進(jìn)行說明,具體如下
步驟101 對口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈希運(yùn)算獲得第一口令;
根據(jù)預(yù)設(shè)的次數(shù)η及口令設(shè)置階段設(shè)置的的口令,對口令設(shè)置階段設(shè)置的口令進(jìn) 行η次哈希運(yùn)算,將η次哈希運(yùn)算的結(jié)果作為第一 口令。預(yù)設(shè)的次數(shù)η小于預(yù)設(shè)最大次數(shù) N;所述N為自然數(shù)。次數(shù)η可為一隨機(jī)數(shù)。為了在抵御字典攻擊的同時減小正確口令的運(yùn) 算次數(shù),次數(shù)η在[1,Ν]上的分布符合均值為a,方差為b的正態(tài)分布;所述a可選擇靠近1 一側(cè)的數(shù)值,所述b可根據(jù)a進(jìn)行設(shè)置,以使得次數(shù)η在概率上遠(yuǎn)小于N而同時在范圍[1, N]邊界的分布又不至太小,比如Ν為105,驗(yàn)證正確口令所需的哈希運(yùn)算次數(shù)η在[1,Ν]上 的分布為均值5000,方差為20000的正態(tài)分布。
哈希運(yùn)算可為常用的哈希算法,例如MD5、SHAl、SHA256等算法,也可以根據(jù)安全 性的需要自定義哈希算法,在此不再對哈希算法的具體內(nèi)容進(jìn)行贅述。
在設(shè)置口令階段,對口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈希運(yùn)算獲得第一口令包 括對口令設(shè)置階段設(shè)置的口令進(jìn)行第一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行η次哈希運(yùn)算,將第η次哈希運(yùn)算獲得的結(jié)果作為第一口令。
或者對口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈希運(yùn)算獲得第一口令包括對口令設(shè) 置階段設(shè)置的口令進(jìn)行第一次哈希運(yùn)算,對第一次哈希運(yùn)算的結(jié)果進(jìn)行變換,將變換后的 數(shù)據(jù)作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變換后的數(shù)據(jù)作為 下一次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行η次哈希運(yùn)算,將第η次哈希運(yùn)算的結(jié)果作為第 一口令。上述變換方法可采用現(xiàn)有的各種數(shù)據(jù)變換方法,比如拼接、逆序、算術(shù)計算等等, 在此不再對具體的變換方法進(jìn)行贅述。
步驟102 對待驗(yàn)證口令進(jìn)行m次哈希運(yùn)算獲得第二口令;
在驗(yàn)證口令階段,對次數(shù)m的初始值為1,對輸入的待驗(yàn)證口令進(jìn)行m次哈希運(yùn)算, 將m次哈希運(yùn)算的結(jié)果作為第二 口令。
該步驟中的哈希運(yùn)算與步驟101的哈希運(yùn)算相同,具體包括對接收到的待驗(yàn)證 口令進(jìn)行第一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù) 據(jù),直至進(jìn)行m次哈希運(yùn)算,將第m次哈希運(yùn)算獲得的結(jié)果作為第二口令?;蛘撸瑢邮盏?的待驗(yàn)證口令進(jìn)行第一次哈希運(yùn)算,對第一次哈希運(yùn)算的結(jié)果進(jìn)行變換,將變換后的數(shù)據(jù) 作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變換后的數(shù)據(jù)作為下一 次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行m次哈希運(yùn)算,將第m次哈希運(yùn)算的結(jié)果作為第二 口 令。本步驟中的變換方法需要與步驟101的變換方法一致,比如,步驟101采用的變換方法 為逆序,則步驟102采用變換方法也為逆序。
步驟103 判斷第二口令是否與第一口令一致,如果是,執(zhí)行步驟107,否則執(zhí)行步 驟 104 ;
步驟104 判斷次數(shù)m是否小于等于預(yù)設(shè)最大次數(shù)N,如果是,執(zhí)行步驟105,否則 執(zhí)行步驟106 ;
如果第二口令和第一 口令不相同,則需要進(jìn)一步判斷此時已進(jìn)行的哈希運(yùn)算的次 數(shù)m是否小于等于哈希運(yùn)算的預(yù)設(shè)最大次數(shù)N。
該步驟中,實(shí)際上是在判斷待驗(yàn)證口令是否為錯誤的口令,也是抵御字典攻擊的 關(guān)鍵步驟;預(yù)設(shè)最大次數(shù)N值越大,每次驗(yàn)證錯誤口令的運(yùn)算量就越大,從而驗(yàn)證時間就越 長,抵御字典攻擊的能力也就越強(qiáng);同時,預(yù)設(shè)最大次數(shù)N也是確定正確口令的哈希運(yùn)算 次數(shù)的上限值,這樣,通過正確口令驗(yàn)證時間的有限增加,帶來抵御字典攻擊能力的大幅提升。
步驟105 將次數(shù)m增1,之后執(zhí)行步驟102 ;
將哈希運(yùn)算次數(shù)m增1,以便在驗(yàn)證口令的過程中,通過逐次的哈希運(yùn)算更準(zhǔn)確地 判斷待驗(yàn)證密鑰的正確性,同時,增強(qiáng)口令抵御字典攻擊的能力。
步驟106 確定待驗(yàn)證口令錯誤,之后執(zhí)行步驟108 ;
在哈希運(yùn)算次數(shù)m大于預(yù)設(shè)最大值N的情況下,確定待驗(yàn)證口令錯誤。
步驟107 確定待驗(yàn)證口令正確;
如果第二口令和第一 口令相同,則確定待驗(yàn)證的口令為正確的口令。
步驟108 結(jié)束。
圖2為本發(fā)明實(shí)現(xiàn)口令安全保護(hù)的方法第二實(shí)施例的流程圖。現(xiàn)結(jié)合圖2,對本發(fā)明的方法的第二實(shí)施例進(jìn)行說明,具體如下
本實(shí)施例的步驟203至步驟206的具體內(nèi)容與第一實(shí)施例的步驟102至步驟105 的內(nèi)容相同,在本實(shí)施例中不再贅述。
步驟201 對口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈希運(yùn)算獲得第一口令;
本實(shí)施例的步驟201與第一實(shí)施例的步驟101相同,在此不再贅述。
步驟202 對由次數(shù)η及第一口令組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算獲得第三口令;
根據(jù)預(yù)設(shè)的組合條件,對次數(shù)η及第一 口令進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行哈希 運(yùn)算獲得第三口令。組合條件可為將多個數(shù)據(jù)按照順序前后拼接成一個數(shù)據(jù),比如次數(shù)η 位于第一口令的數(shù)據(jù)之前,或位于第一口令的數(shù)據(jù)之后;或者組合條件為對多個數(shù)據(jù)進(jìn)行 算術(shù)計算獲得的一個數(shù)據(jù)。
步驟203 對待驗(yàn)證的口令進(jìn)行m次哈希預(yù)算獲得第二口令;
步驟204 判斷第二口令是否與第一口令一致,如果是,執(zhí)行步驟207,否則執(zhí)行步 驟 205 ;
步驟205 判斷次數(shù)m是否小于等于預(yù)設(shè)最大次數(shù)N,如果是,執(zhí)行步驟206,否則 執(zhí)行步驟210 ;
步驟206 將次數(shù)m增1,之后執(zhí)行步驟203 ;
步驟207 對由次數(shù)m及第二口令組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算獲得第四口令;
根據(jù)預(yù)設(shè)的組合條件,對次數(shù)m及第二 口令進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行哈希 運(yùn)算獲得第三口令。組合條件的內(nèi)容與步驟202所述的組合條件的內(nèi)容相同,在此不再贅 述。
該步驟對第一口令和次數(shù)η組合后的數(shù)據(jù)進(jìn)行再一次的哈希運(yùn)算,是為了防止錯 誤口令誤判為正確口令的極小概率事件的發(fā)生,即使發(fā)生哈希碰撞,即錯誤的口令在進(jìn)行 多次哈希運(yùn)算后的結(jié)果碰巧等于第一 口令,也可以通過加入次數(shù)m進(jìn)行的后續(xù)驗(yàn)證來防止 誤判,從而降低由哈希運(yùn)算結(jié)果碰撞造成的誤判的可能性。
步驟208 判斷第四口令是否與第三口令一致,如果是,執(zhí)行步驟209 ;否則,執(zhí)行 步驟210 ;
步驟209 確定待驗(yàn)證口令正確;
根據(jù)第四口令是否與第三口令相同,可以排除上述誤判情況的發(fā)生,提高了安全 性。
步驟210 確定待驗(yàn)證口令錯誤;
步驟211:結(jié)束。
圖3為本發(fā)明實(shí)現(xiàn)口令安全保護(hù)的系統(tǒng)的結(jié)構(gòu)示意圖。現(xiàn)結(jié)合圖3,對本發(fā)明實(shí)現(xiàn) 口令安全保護(hù)的系統(tǒng)進(jìn)行說明,具體如下
本發(fā)明實(shí)現(xiàn)口令安全保護(hù)的系統(tǒng)包括口令設(shè)置模塊301、口令加密模塊302和口 令驗(yàn)證模塊303。
口令設(shè)置模塊301連接口令加密模塊302和口令驗(yàn)證模塊303,在設(shè)置口令階段觸 發(fā)口令加密模塊302獲得第一口令;根據(jù)外部輸入的設(shè)置第一 口令的觸發(fā)信息,輸出第一 口令生成指令至口令加密模塊302 ;保存第一口令、預(yù)設(shè)次數(shù)η和預(yù)設(shè)最大次數(shù)N。第一口 令生成指令攜帶有預(yù)設(shè)次數(shù)η及口令設(shè)置階段設(shè)置的口令;11為小于最大次數(shù)N的自然數(shù);10N為大于1的自然數(shù)??诹钤O(shè)置模塊301可將接收到的字符串作為口令設(shè)置階段設(shè)置的口 令,或?qū)邮盏降淖址M(jìn)行變換,將變換后的字符串作為口令設(shè)置階段設(shè)置的口令。本發(fā) 明口令設(shè)置階段設(shè)置的口令是用來驗(yàn)證輸入的待驗(yàn)證口令正確與否的依據(jù)。
口令加密模塊302連接口令設(shè)置模塊301和口令驗(yàn)證模塊303,采用相同的哈希算 法對接收到的數(shù)據(jù)進(jìn)行哈希運(yùn)算。口令加密模塊302根據(jù)第一口令生成指令,對接收到的 口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈希運(yùn)算獲得第一口令,輸出第一 口令至口令設(shè)置模塊 301 ;根據(jù)口令驗(yàn)證模塊303輸出的第二口令生成指令,對接收到的待驗(yàn)證口令進(jìn)行m次哈 希運(yùn)算獲得第二口令,輸出第二口令至口令驗(yàn)證模塊303。
口令驗(yàn)證模塊303在驗(yàn)證口令階段,觸發(fā)口令加密模塊302生成第二口令;根據(jù) 外部輸入的驗(yàn)證第二口令的觸發(fā)信息,輸出第二口令生成指令至口令加密模塊302 ;第二 口令生成指令中攜帶有待驗(yàn)證口令和次數(shù)m ;所述次數(shù)m的初始值為1??诹铗?yàn)證模塊303 接收到第二 口令后,從口令設(shè)置模塊301讀取其暫存的第一口令及預(yù)設(shè)最大次數(shù)N,判定第 二口令與第一 口令一致時,確定待驗(yàn)證口令正確;判定第二口令與第一 口令不一致時,進(jìn)一 步判斷哈希運(yùn)算次數(shù)m是否小于等于預(yù)設(shè)最大次數(shù)N,如果小于,則將哈希運(yùn)算次數(shù)m增1 后,輸出攜帶待驗(yàn)證口令和哈希運(yùn)算次數(shù)m的第二口令生成指令至口令加密模塊302,否則 確定待驗(yàn)證口令錯誤。
為了進(jìn)一步降低誤判的可能性,提高抵御字典攻擊的能力及安全性,本發(fā)明的系 統(tǒng)還進(jìn)一步包含一 口令組合模塊304 ; 口令組合模塊304連接口令設(shè)置模塊301和口令驗(yàn) 證模塊303。
口令設(shè)置模塊301進(jìn)一步根據(jù)外部輸入的設(shè)置第三口令的觸發(fā)信息,在生成第一 口令之后,輸出第三口令生成指令至口令組合模塊304 ;保存口令組合模塊304輸出的第三 口令;輸出驗(yàn)證第四口令的觸發(fā)信息至口令驗(yàn)證模塊303。第三口令生成指令攜帶有預(yù)設(shè) 次數(shù)η和第一口令;驗(yàn)證第四口令的觸發(fā)信息攜帶有第三口令。
口令驗(yàn)證模塊303根據(jù)驗(yàn)證第四口令的觸發(fā)信息,在判定第二口令與第一 口令一 致之后,進(jìn)一步輸出第四口令生成指令至口令組合模塊304 ;根據(jù)口令組合模塊304輸出的 第四口令和接收到的第三口令,判定第四口令與第三口令一致時,確定待驗(yàn)證口令正確,否 則待驗(yàn)證口令不正確。其中,第四口令生成指令攜帶有第二 口令及哈希運(yùn)算次數(shù)m。
口令組合模塊304根據(jù)第三口令生成指令及預(yù)設(shè)的組合條件,對第一口令和預(yù)設(shè) 次數(shù)η進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行哈希預(yù)算獲得第三口令,輸出第三口令至口令設(shè)置 模塊301。口令組合模塊304根據(jù)口令驗(yàn)證模塊303輸出的第四口令生成指令及預(yù)設(shè)的組 合條件,對第二口令和預(yù)設(shè)次數(shù)m進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算獲得第四口令, 輸出第四口令至口令驗(yàn)證模塊303。
其中,口令加密模塊302包括第一口令生成單元3021和第二口令生成單元3022。
第一口令生成單元3021根據(jù)第一 口令生成指令,對口令設(shè)置階段設(shè)置的口令進(jìn) 行第一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至 進(jìn)行η次哈希運(yùn)算,將第η次哈希運(yùn)算獲得的結(jié)果作為第一口令,輸出第一口令至口令設(shè)置 模塊301。
第二 口令生成單元3022根據(jù)第二口令生成指令,對接收到的待驗(yàn)證口令進(jìn)行第 一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行m次哈希運(yùn)算,將第m次哈希運(yùn)算獲得的結(jié)果作為第二口令,輸出第二 口令至口令驗(yàn)證模塊 303。
為了提高安全性,第一口令生成單元3021和第二口令生成單元3022可進(jìn)一步 將每一次哈希運(yùn)算的結(jié)果進(jìn)行變換,將變換后的數(shù)據(jù)作為下一次哈希運(yùn)算的數(shù)據(jù),具體如 下
第一口令生成單元3021根據(jù)第一 口令生成指令,對口令設(shè)置階段設(shè)置的口令進(jìn) 行第一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果進(jìn)行變換,將變換后的數(shù)據(jù)作為第二次進(jìn)行 哈希運(yùn)算的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變換后的數(shù)據(jù)作為下一次進(jìn)行哈希運(yùn)算 的輸入數(shù)據(jù),直至進(jìn)行η次哈希運(yùn)算,將第η次哈希運(yùn)算的結(jié)果作為第一口令,輸出第一口 令至口令設(shè)置模塊301。
第二 口令生成單元3022根據(jù)第二口令生成指令,對接收到的待驗(yàn)證口令進(jìn)行第 一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果進(jìn)行變換,將變換后的數(shù)據(jù)作為第二次進(jìn)行哈希 運(yùn)算的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變換后的數(shù)據(jù)作為下一次進(jìn)行哈希運(yùn)算的輸 入數(shù)據(jù),直至進(jìn)行m次哈希運(yùn)算,將第m次哈希運(yùn)算的結(jié)果作為第二口令,輸出第二 口令至 口令驗(yàn)證模塊303。
本發(fā)明的上述較佳實(shí)施例中,在口令驗(yàn)證的部分,每次錯誤口令只有在N次哈希 運(yùn)算后才能判定,通常情況下,每次正確口令驗(yàn)證所需執(zhí)行的哈希運(yùn)算次數(shù)遠(yuǎn)遠(yuǎn)小于最大 次數(shù)N,這樣,使得正確口令的驗(yàn)證時間遠(yuǎn)小于錯誤口令的驗(yàn)證時間,既提高了口令的驗(yàn)證 效率,又極大地增加了字典攻擊時,大量的錯誤口令驗(yàn)證的時間成本,有效地抵御了對口令 的字典攻擊。本發(fā)明為了降低由于哈希運(yùn)算發(fā)生碰撞導(dǎo)致的將錯誤口令誤判為正確口令的 發(fā)生概率,在獲得第一 口令后,進(jìn)一步將第一 口令和次數(shù)η組合后的數(shù)據(jù)作為判定待驗(yàn)證 口令正確與否的依據(jù),這樣,只有待驗(yàn)證口令與第一口令相同,且次數(shù)m和次數(shù)η都正確的 情況下,才能判定待驗(yàn)證口令正確,進(jìn)一步提高了驗(yàn)證結(jié)果的準(zhǔn)確性。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種實(shí)現(xiàn)口令安全保護(hù)的方法,其特征在于,該方法包括A、根據(jù)口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈希運(yùn)算獲得第一口令;所述η為小于最大 次數(shù)N的自然數(shù);所述N為大于1的自然數(shù);B、對接收到的待驗(yàn)證口令進(jìn)行m次哈希運(yùn)算獲得第二口令;C、在所述第二口令與所述第一口令一致時,確認(rèn)所述待驗(yàn)證口令正確;在所述第二口 令與所述第一口令不一致時,判斷所述m是否小于等于最大次數(shù)N,如果是,則將m值增1后 執(zhí)行步驟B,否則確認(rèn)待驗(yàn)證的口令錯誤。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A與所述步驟B之間進(jìn)一步包括根據(jù)組合條件將所述第一口令與所述η進(jìn)行組合,將組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算獲得 第三口令;步驟B所述在所述第二 口令與所述第一 口令一致之后,進(jìn)一步包括根據(jù)組合條件將所述第二口令與所述m進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算獲得 第四口令;在所述第四口令與所述第三口令一致時,確認(rèn)所述待驗(yàn)證口令正確;在所述第 四口令與所述第三口令不一致時,確認(rèn)所述待驗(yàn)證口令錯誤。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,步驟A所述對口令設(shè)置階段設(shè)置的口 令進(jìn)行η次哈希運(yùn)算獲得第一口令包括對口令設(shè)置階段設(shè)置的口令進(jìn)行第一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二 次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行η次哈希運(yùn)算,將第η次哈希運(yùn)算獲得的結(jié)果作為第 一口令。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,步驟B所述對接收到的待驗(yàn)證口令進(jìn)行m 次哈希運(yùn)算獲得第二口令包括對接收到的待驗(yàn)證口令進(jìn)行第一次哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二次進(jìn) 行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行m次哈希運(yùn)算,將第m次哈希運(yùn)算獲得的結(jié)果作為第二 口 令。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,步驟A所述對口令設(shè)置階段設(shè)置的口 令進(jìn)行η次哈希運(yùn)算獲得第一口令包括對口令設(shè)置階段設(shè)置的口令進(jìn)行第一次哈希運(yùn)算,對第一次哈希運(yùn)算的結(jié)果進(jìn)行變 換,將變換后的數(shù)據(jù)作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變 換后的數(shù)據(jù)作為下一次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行η次哈希運(yùn)算,將第η次哈希運(yùn) 算的結(jié)果作為第一口令。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟B所述對接收到的待驗(yàn)證口令進(jìn)行m 次哈希運(yùn)算獲得第二口令包括對接收到的待驗(yàn)證口令進(jìn)行第一次哈希運(yùn)算,對第一次哈希運(yùn)算的結(jié)果進(jìn)行變換,將 變換后的數(shù)據(jù)作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變換后的 數(shù)據(jù)作為下一次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行m次哈希運(yùn)算,將第m次哈希運(yùn)算的結(jié) 果作為第二口令。
7.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述組合條件為將多個數(shù)據(jù)按照順序前 后拼接成一個數(shù)據(jù)或?qū)Χ鄠€數(shù)據(jù)進(jìn)行算術(shù)計算獲得一個數(shù)據(jù)。
8.一種實(shí)現(xiàn)口令安全保護(hù)的系統(tǒng),其特征在于,該系統(tǒng)包括口令設(shè)置模塊,根據(jù)輸入的設(shè)置第一 口令的觸發(fā)信息,輸出第一 口令生成指令至口令 加密模塊;保存口令加密模塊輸出的第一口令、預(yù)設(shè)次數(shù)η和預(yù)設(shè)最大次數(shù)N ;所述第一 口 令生成指令攜帶有預(yù)設(shè)次數(shù)η及口令設(shè)置階段設(shè)置的口令;所述η為小于最大次數(shù)N的自 然數(shù);所述N為大于1的自然數(shù);口令驗(yàn)證模塊,根據(jù)輸入的驗(yàn)證第二 口令的觸發(fā)信息,輸出攜帶待驗(yàn)證口令及哈希運(yùn) 算次數(shù)m的第二口令生成指令至口令加密模塊;所述口令驗(yàn)證模塊接收口令加密模塊輸出 的第二口令,從口令設(shè)置模塊讀取第一口令及預(yù)設(shè)最大次數(shù)N,判定第二口令與第一口令一 致時,確定待驗(yàn)證口令正確;判定第二口令與第一口令不一致時,判斷哈希運(yùn)算次數(shù)m是否 小于等于預(yù)設(shè)最大次數(shù)N,如果小于,則將哈希運(yùn)算次數(shù)m增1后,輸出攜帶待驗(yàn)證口令和哈 希運(yùn)算次數(shù)m的第二口令生成指令至口令加密模塊,否則確定待驗(yàn)證口令錯誤;口令加密模塊,根據(jù)第一 口令生成指令,對口令設(shè)置階段設(shè)置的口令進(jìn)行η次哈希運(yùn) 算獲得第一口令,輸出第一口令至口令設(shè)置模塊;根據(jù)第二口令生成指令,對待驗(yàn)證口令進(jìn) 行m次哈希運(yùn)算獲得第二口令,輸出第二口令至口令驗(yàn)證模塊。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括口令組合模塊;所述口令設(shè)置模塊進(jìn)一步根據(jù)輸入的設(shè)置第三口令的觸發(fā)信息,輸出第三口令生成指 令至所述口令組合模塊,保存所述口令組合模塊輸出的第三口令;輸出驗(yàn)證第四口令的觸 發(fā)信息至所述口令驗(yàn)證模塊;所述第三口令生成指令攜帶有預(yù)設(shè)次數(shù)η和第一口令;所述 驗(yàn)證第四口令的觸發(fā)信息攜帶有第三口令;所述口令驗(yàn)證模塊根據(jù)驗(yàn)證第四口令的觸發(fā)信息,在判定第二口令與第一口令一致之 后,進(jìn)一步輸出第四口令生成指令至所述口令組合模塊;根據(jù)所述口令組合模塊輸出的第 四口令和接收到的第三口令,判定第四口令與第三口令一致時,確定待驗(yàn)證口令正確,否則 待驗(yàn)證口令不正確;所述第四口令生成指令攜帶有第二 口令及次數(shù)m ;所述口令組合模塊根據(jù)第三口令生成指令及預(yù)設(shè)的組合條件,對第一口令和預(yù)設(shè)次數(shù) η進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行哈希預(yù)算獲得第三口令,輸出第三口令至所述口令設(shè)置模 塊;根據(jù)所述口令驗(yàn)證模塊輸出的第四口令生成指令及預(yù)設(shè)的組合條件,對第二口令和預(yù) 設(shè)次數(shù)m進(jìn)行組合,對組合后的數(shù)據(jù)進(jìn)行哈希運(yùn)算獲得第四口令,輸出第四口令至所述口 令驗(yàn)證模塊。
10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述口令加密模塊包括第一口令生成單元,根據(jù)第一 口令生成指令,對口令設(shè)置階段設(shè)置的口令進(jìn)行第一次 哈希運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行η次 哈希運(yùn)算,將第η次哈希運(yùn)算獲得的結(jié)果作為第一口令,輸出第一口令至口令設(shè)置模塊;第二口令生成單元,根據(jù)第二 口令生成指令,對接收到的待驗(yàn)證口令進(jìn)行第一次哈希 運(yùn)算,將第一次哈希運(yùn)算的結(jié)果作為第二次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行m次哈希 運(yùn)算,將第m次哈希運(yùn)算獲得的結(jié)果作為第二口令,輸出第二口令至口令驗(yàn)證模塊。
11.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述口令加密模塊包括第一口令生成單元,根據(jù)第一 口令生成指令,對口令設(shè)置階段設(shè)置的口令進(jìn)行第一次 哈希運(yùn)算,對第一次哈希運(yùn)算的結(jié)果進(jìn)行變換,將變換后的數(shù)據(jù)作為第二次進(jìn)行哈希運(yùn)算 的輸入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變換后的數(shù)據(jù)作為下一次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù),直至進(jìn)行η次哈希運(yùn)算,將第η次哈希運(yùn)算的結(jié)果作為第一口令,輸出第一口令至口令 設(shè)置模塊;第二口令生成單元,根據(jù)第二 口令生成指令,對接收到的待驗(yàn)證口令進(jìn)行第一次哈希 運(yùn)算,對第一次哈希運(yùn)算的結(jié)果進(jìn)行變換,將變換后的數(shù)據(jù)作為第二次進(jìn)行哈希運(yùn)算的輸 入數(shù)據(jù),將每次哈希運(yùn)算的結(jié)果進(jìn)行變換后的數(shù)據(jù)作為下一次進(jìn)行哈希運(yùn)算的輸入數(shù)據(jù), 直至進(jìn)行m次哈希運(yùn)算,將第m次哈希運(yùn)算的結(jié)果作為第二口令,輸出第二口令至口令驗(yàn)證 模塊。
全文摘要
本發(fā)明提供了一種實(shí)現(xiàn)口令安全保護(hù)的方法,該方法包括A、根據(jù)口令設(shè)置階段設(shè)置的口令進(jìn)行n次哈希運(yùn)算獲得第一口令;所述n為小于最大次數(shù)N的自然數(shù);所述N為大于1的自然數(shù);B、對接收到的待驗(yàn)證口令進(jìn)行m次哈希運(yùn)算獲得第二口令;C、在所述第二口令與所述第一口令一致時,確認(rèn)所述待驗(yàn)證口令正確;在所述第二口令與所述第一口令不一致時,判斷所述m是否小于等于最大次數(shù)N,如果是,則將m值增1后執(zhí)行步驟B,否則確認(rèn)待驗(yàn)證的口令錯誤。本發(fā)明提供了一種實(shí)現(xiàn)口令安全保護(hù)的系統(tǒng)。采用本發(fā)明的方法及系統(tǒng),能夠使口令抵御字典攻擊,提高安全性。
文檔編號H04L9/32GK102045170SQ20101061047
公開日2011年5月4日 申請日期2010年12月28日 優(yōu)先權(quán)日2010年12月28日
發(fā)明者孫吉平, 韓勇 申請人:北京深思洛克軟件技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1