亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于高碰撞概率散列函數(shù)預先驗證的計算機系統(tǒng)登錄方法

文檔序號:7853033閱讀:980來源:國知局
專利名稱:基于高碰撞概率散列函數(shù)預先驗證的計算機系統(tǒng)登錄方法
技術領域
本發(fā)明涉及一種大型計算機應用系統(tǒng)的登錄方法,尤其是涉及一種基于高碰撞概率散列函數(shù)預先驗證的計算機系統(tǒng)登錄方法。
背景技術
對于用戶數(shù)眾多、登錄事件頻繁的大型計算機應用系統(tǒng),經(jīng)常需要為處理用戶錯誤輸入的密碼或者暴力攻擊輸入的密碼進行密碼驗證,而在系統(tǒng)中為確保安全性往往密碼驗證算法非常消耗系統(tǒng)運算資源
發(fā)明內容
本發(fā)明所要解決的技術問題,就是提供一種基于高碰撞概率散列函數(shù)的登錄預先驗證方法,可大大節(jié)省系統(tǒng)運算資源。解決上述技術問題,本發(fā)明采用的技術方案如下
一種基于高碰撞概率散列函數(shù)預先驗證的計算機系統(tǒng)登錄方法,包括以下步驟
SI用戶登錄輸入密碼X ;
S2密碼經(jīng)過設定的高碰撞概率散列函數(shù)H(X)運算獲得一數(shù)值Ml ;
S3將Ml與本地存儲的預先校驗信息M進行比較,如果相同則發(fā)送用戶名和密碼到服務器驗證;
S4如果Ml與本地存儲的預先校驗信息M不同則彈出對話框提醒用戶密碼有誤;
S5用戶點擊對話框選項確定是再次輸入密碼還是直接發(fā)送給服務器驗證;
S6如果用戶選擇再次輸入密碼則重復前面S1-S4的步驟;
S7如果用戶選擇不再次輸入密碼,則發(fā)送用戶名和密碼到服務器驗證;
S8用戶名和密碼通過驗證后,將該密碼經(jīng)過設定的高碰撞概率散列函數(shù)H(X)運算獲得數(shù)值Ml存儲到本地作為預先校驗信息M。所述的步驟S2高碰撞概率散列函數(shù)H(X)運算包括以下步驟
S2-DX :為輸入密碼的16進制數(shù)值;
S2-2)計算Z=f(X),其中f (X)為X的多次冪或指數(shù)運行函數(shù);
S2-3)計算d,d為從0到X中最大的素數(shù);
S2-4)計算Y=X*d,其中d為小于X的最大素數(shù);
S2-5)計算M =Z mod(Y),Y為選取的大于X小于Z的除數(shù)。本發(fā)明通過采用將用戶密碼信息經(jīng)過一定的算法存儲在本地,當用戶登錄時預先校驗輸入的密碼經(jīng)過同樣的算法是否能得到和本地存儲內容一致來進行預先驗證,一致則發(fā)送到系統(tǒng)進行驗證,如果不一致則彈出提醒對話框詢問和以往密碼不一致,讓用戶確認是否要發(fā)送到系統(tǒng)進行驗證,如果用戶沒有在別處修改密碼,則必然是用戶輸入錯誤,合法用戶則會自覺再次輸入密碼而不發(fā)到系統(tǒng)進行驗證,從而減少錯誤輸入直接發(fā)到系統(tǒng)進行驗證。
本發(fā)明的原理
登錄預先驗證的方法要充分考慮其安全性,防范攻擊者對利用本地存儲的密碼加密后的內容進行破解。目前對密碼驗證的方法主要采用單向散列函數(shù)來計算用戶設定密碼得到一散列值存放到驗證數(shù)據(jù)庫中,當用戶登錄輸入密碼后系統(tǒng)將收到的用戶密碼通過同樣的散列函數(shù)計算獲得一個結果與系統(tǒng)驗證數(shù)據(jù)庫中存儲的對應用戶密碼散列值相比較來進行驗證。散列(HASH)函數(shù)H也稱哈希函數(shù)或雜湊函數(shù)等,其輸入為一可變長x(可以足夠的長),輸出一固定長的串h (—般為128位、160位,比輸短),該串h被稱為輸入X的Hash值(或稱消息摘要Message Digest、指紋、密碼校驗和或消息完整性校驗) ,計作h=H(x)。為防止傳輸和存儲的消息被有意或無意地篡改,采用散列函數(shù)對消息進行運算生成消息摘要,附在消息之后發(fā)出或與信息一起存儲,它在報文防偽中具有重要應用。消息摘要采用一種單向散列算法將一個消息進行換算。在消息摘要算法中,文件數(shù)據(jù)作為單向散列運算的輸入,這個輸入通過HASH函數(shù)產(chǎn)生一個散列值。如果改動了文件,散列值就會相應地改變,接收者即能檢測到這種改動過的痕跡。從理論上來講,攻擊者不可能制造一個替用的消息來產(chǎn)生一個完全相同的消息摘要。Hash函數(shù)可用于數(shù)字簽名、消息的完整性檢測、消息的起源驗證檢測等。Hash函數(shù)H —般滿足以下幾個基本要求
(1)輸入X可以為任意長度;輸出數(shù)據(jù)串長度固定;
(2)正向計算容易,即給定任何X,容易算出H(X);反向計算困難,即給出一Hash值h,很難找出一特定輸入X,使h=H(x);
(3)抗碰撞性(抗沖突性),包括兩個含義,一是給出一消息x,找出一消息y使H(x) =H(y)是計算上不可行的(弱抗沖突),二是找出任意兩條消息x、y,使H(x) =H(y)也是計算上不可行的(強抗沖突)。對Hash函數(shù)有兩種窮舉攻擊。一是給定消息的Hash函數(shù)H(X),破譯者逐個生成其他文件y,以使H(x)=H(y)。二是攻擊者尋找兩個隨機的消息x,y,并使H(X)=H(y)。這就是所謂的沖突攻擊。窮舉攻擊方法沒有利用Hash函數(shù)的結構和任何代數(shù)弱性質,它只依賴于Hash值的長度。攻擊者要對產(chǎn)生同樣的Hash值,為了確保100%的成功率,其必然需要窮舉全部的樣本空間,這樣是非常巨大的計算量,然而攻擊者如果只為了獲得50%的成功率是不是其窮舉空間也至少減少一半?然而理論計算的答案確實否定的。例如以生日攻擊(Birthday Attack)為例在一個教室中最少應有多少學生才使得找一個學生與某人生日(該人也在教室)相同的概率不小于1/2 答案是254人。但至少有兩個學生的生日在同一天的概率不小于1/2的答案出人意料地低,僅為23人。—個人與一個已知生日的人不是同生日的概率是364/365,假如教室有t個人,貝Ij其余的人與某人都不同生日的概率是(364/365)1'所以至少有一個人與此人同生日的概率是 I-(364/365)H。第一個人的生日為一個特定生日,第二個人不在該日生的概率是(1-1/365),第三個人與前兩位不同生日的概率是(1-2/365),第t個人與前t-1個人不同生日的概率是(l-(t-l)/365),所以t個人都不同生日的概率是(1-1/365) (1-2/365)……(I-(t-1)/365),利用 l-x e^x (當 x 很小),概率約為g^IST ,而至少有兩個人生日相同的概率是1-(1-1/365) (1-2/365)……(I-(t_l)/365)。
經(jīng)過計算,t 1.17x^^365 22. 3,即隨機選擇23人,至少有2人生日相同的概率至少為1/2。生日攻擊意味著攻擊者為獲得50%的攻擊成功率,代價并不是100%成功率的一半,而只需原樣本空間的開方,例如32位的消息摘要,在U'7x 2W個隨機HASH值中至少有1/2的概率發(fā)生一個碰撞,這使得HASH值的長度有一個下界。通過在本地存儲密碼相關信息便能實現(xiàn)預先驗證,然而如果簡單加密用戶密碼則會帶來安全隱患,因而在本地加密用戶密碼的算法需要妥善設計。采用單向散列函數(shù)對用戶密碼進行加密是防止破解的最常用方法。目前多大數(shù)系統(tǒng)在驗證服務器端存放的都是用戶密碼的MD5值。MD5算法是一種碰撞概率極低的算法,例如32位的MD5,要1.17X 21S次攻擊才會產(chǎn)生一次概率50%的碰撞,所以兩個密碼只要MD5 值相同基本這兩個密碼就是完全一樣的。然而在本地存儲密碼加密結果則不能采用這種碰撞概率極低的算法,因為攻擊者一旦通過暴力窮舉產(chǎn)生一次碰撞則就破解了密碼,給密碼安全帶來隱患。例如早期的QQ登錄就采用了 MD5加密用戶密碼然后BASE64編碼存儲在本地,該方法被解析公開后,對應結合字典進行的暴力破解可很快破解出密碼,最后騰訊公司放棄了本地預先驗證的方法,要求全部提交到服務器進行驗證。采用強度更高的2重、3重MD5加密理論上來說加大了破解難道,但實際的窮舉空間也就用戶習慣會能輸入的不超過20位的密碼,一層128位MD5的碰撞空間已經(jīng)完全覆蓋了用戶輸入范圍,多重MD5加密加大了計算量,對窮舉空間范圍不會產(chǎn)生影響,依然會被破解。而采用提取密碼的某幾個字位等信息來加密雖然是單向無法破解密碼,但還是會暴露密碼的部分信息。采用奇偶校驗或CRC校驗值作為密碼驗證信息,這種方法可以非常好的防止破解,例如用奇偶校驗,任何密碼最后保存的信息只是奇偶校驗位則要么是0,要么是1,任何人都不可能從這個奇偶校驗位來破解出密碼,但這種方法碰撞率太高,用戶自身輸入偶然錯誤也不能很好驗證。為防止利用本地存儲的密碼加密內容進行破解,本發(fā)明提出高碰撞概率散列函數(shù)H(X)來加密密碼,從而確保了加密內容不能破解出密碼。將用戶輸入的密碼(通常要求密碼長度大于6)看作一個輸入的16進制整數(shù)X (X大于166),將X經(jīng)過多次冪運算或指數(shù)運行得到結果Z,Z作為被除數(shù),選取除數(shù)Y,其中Y大于X小于Z,將Z除以Y的結果及取余運算結果作為預先校驗信息M。X :為輸入密碼的16進制數(shù)值。Z=f(X),其中f (X)為X的多次冪或指數(shù)運算函數(shù)。d d為從0到X中最大的素數(shù)。Y=X*d :為選取的一個大于X小于Z的除數(shù),其中d為設定的小于X的素數(shù)。M=Z mod(Y),M為Z對Y取模運算的結果,M及為要求的預先校驗信息。則高碰撞概率散列函數(shù)H(X)= f⑴mod (Y)。該算法要確保兩點(I)算法單向運算,且采用密碼X迭代運算生成的預先校驗信息M具有很高的碰撞概率,及多個不同密碼生成的預先校驗信息是相同的,從而防止采用逆算法破解。 (2)算法產(chǎn)生的預先校驗信息的枚舉范圍大于密碼X的取值范圍,從而防止字典匹配破解攻擊。安全性分析為使分析更為簡潔,假設用戶輸入密碼M為純數(shù)字0-9,密碼長度為
3。(實際輸入范圍更大安全性比純數(shù)字安全性更高)若攻擊者采用暴露直接窮舉密碼需要窮舉的范圍為000-999,一共IO3個。如果簡單的選取10作為除數(shù),將輸入數(shù)值除以10取余數(shù)保存作為預先校驗信息M。攻擊者利用該余數(shù)則窮舉密碼需要窮舉的范圍為000-999中除以10余數(shù)為M的數(shù),一共IO3 /10,為100個,比不保存任何預先校驗信息窮舉的范圍還小,從而使得密碼安全性降低。采用本專利方法將輸入范圍進行擴大,例如將X的二次冪X*X作為被除數(shù)Z再除以除數(shù)Y,假設Y=10,則同余數(shù)的個數(shù)為106/10=105,比不保存任何預先校驗信息窮舉的范圍擴大了,但是由于Y=IO太小,攻擊者會生成余數(shù)是0-9的十個不同余數(shù)字典,來篩選匹配實施字典匹配破解攻擊,因此除數(shù)Y不能太小,選取Y>X,從而使得余數(shù)范圍大于X取值范圍,為確保被除數(shù)Z大于余數(shù)Y,則Z最好選取X的三次冪以上的迭代 運行來生成。與冪運算類似還可以用e的X次方來作為被除數(shù)。有益效果
(I)提出的登錄預先驗證方法通過碰撞率非常高的單向散列函數(shù)來保存加密密碼,在本地存儲的密碼加密后的內容無法破解出密碼,確保了密碼驗證的安全性。(2)提出的登錄預先驗證方法通過預先驗證減輕了錯誤輸入和破解對系統(tǒng)驗證帶來的負擔。本發(fā)明利用單向散列函數(shù)加密用戶登錄密碼存儲在客戶端,在本地實現(xiàn)用戶登錄時預先進行密碼驗證,從而減輕系統(tǒng)應對錯誤輸入和暴力破解帶來的驗證運算負擔,同時為提高安全性,在客戶端本地采用的單向散列函數(shù)碰觸概率非常高,這樣即使遭到本地破解攻擊,破解出的結果也與密碼毫無關系。本發(fā)明既通過預先驗證減輕了系統(tǒng)驗證負擔,又確保本地存儲的密碼校驗信息無法破解出密碼,該方法實用、安全可靠。


圖I是本發(fā)明實施例的總體流程 圖2是本發(fā)明實施例的高碰撞概率散列函數(shù)H(X)運算流程圖。
具體實施例方式如圖I的總體流程圖所示,本發(fā)明所提出的一種基于高碰撞概率散列函數(shù)預先驗證的計算機系統(tǒng)登錄方法,包括以下步驟
SI用戶登錄輸入密碼X ;
S2密碼經(jīng)過設定的高碰撞概率散列函數(shù)H(X)運算獲得一數(shù)值Ml ;
S3將Ml與本地存儲的預先校驗信息M進行比較,如果相同則發(fā)送用戶名和密碼到服務器驗證;
S4如果Ml與本地存儲的預先校驗信息M不同則彈出對話框提醒用戶密碼有誤;
S5用戶點擊對話框選項確定是再次輸入密碼還是直接發(fā)送給服務器驗證;
S6如果用戶選擇再次輸入密碼則重復前面S1-S4的步驟;S7如果用戶選擇不再次輸入密碼,則發(fā)送用戶名和密碼到服務器驗證;
S8用戶名和密碼通過驗證后,將該密碼經(jīng)過設定的高碰撞概率散列函數(shù)H(X)運算獲得數(shù)值Ml存儲到本地作為預先校驗信息M。其中高碰撞概率散列函數(shù)H(X)運算流程如圖2所示,包括以下步驟
S2-DX :為輸入密碼的16進制數(shù)值;
S2-2)計算Z=f(X),其中f (X)為X的多次冪或指數(shù)運行函數(shù);
S2-3)計算d,d為從0到X中最大的素數(shù);
S2-4)計算Y=X*d,其中d為小于X的最大素數(shù);
S2-5)計算M =Z mod(Y),Y為選取的大于X小于Z的除數(shù)。
權利要求
1.一種基于高碰撞概率散列函數(shù)預先驗證的計算機系統(tǒng)登錄方法,包括以下步驟 SI用戶登錄輸入密碼X ; S2密碼經(jīng)過設定的高碰撞概率散列函數(shù)H(X)運算獲得一數(shù)值Ml ; S3將Ml與本地存儲的預先校驗信息M進行比較,如果相同則發(fā)送用戶名和密碼到服務器驗證;S4如果Ml與本地存儲的預先校驗信息M不同則彈出對話框提醒用戶密碼有誤; S5用戶點擊對話框選項確定是再次輸入密碼還是直接發(fā)送給服務器驗證; S6如果用戶選擇再次輸入密碼則重復前面S1-S4的步驟; S7如果用戶選擇不再次輸入密碼,則發(fā)送用戶名和密碼到服務器驗證; S8 用戶名和密碼通過驗證后,將該密碼經(jīng)過設定的高碰撞概率散列函數(shù)H(X)運算獲得數(shù)值Ml存儲到本地作為預先校驗信息M。
2.根據(jù)權利要求I所述的基于高碰撞概率散列函數(shù)預先驗證的計算機系統(tǒng)登錄方法,其特征是所述的步驟S2高碰撞概率散列函數(shù)H(X)運算包括以下步驟 S2-DX :為輸入密碼的16進制數(shù)值; S2-2)計算Z=f(X),其中f (X)為X的多次冪或指數(shù)運行函數(shù); S2-3)計算d,d為從O到X中最大的素數(shù); S2-4)計算Y=X*d,其中d為小于X的最大素數(shù); S2-5)計算M =Z mod (Y),Y為選取的大于X小于Z的除數(shù)。
全文摘要
一種基于高碰撞概率散列函數(shù)預先驗證的計算機系統(tǒng)登錄方法,主要利用單向散列函數(shù)加密用戶登錄密碼存儲在客戶端,在本地實現(xiàn)用戶登錄時預先進行密碼驗證,從而減輕系統(tǒng)應對錯誤輸入和暴力破解帶來的驗證運算負擔。同時為提高安全性,在客戶端本地采用的單向散列函數(shù)碰觸概率非常高,這樣即使遭到本地破解攻擊,破解出的結果也與密碼毫無關系。本發(fā)明既通過預先驗證減輕了系統(tǒng)驗證負擔,又確保本地存儲的密碼校驗信息無法破解出密碼,方法實用、安全可靠。
文檔編號H04L29/06GK102752285SQ20121018534
公開日2012年10月24日 申請日期2012年6月7日 優(yōu)先權日2012年6月7日
發(fā)明者劉兵, 劉延樂, 葉云琴, 吳媚, 吳錫武, 朱廣名, 李吉勇, 李志勇, 李文朝, 王傳起, 王朋義, 胡鐵斌, 荊德國, 鄒劍, 陳宏輝 申請人:東方電子股份有限公司, 廣東電網(wǎng)公司茂名供電局
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1