本發(fā)明涉及加解密技術(shù),具體涉及一種隨機(jī)密文生成方法及系統(tǒng)、解密方法及系統(tǒng)。
背景技術(shù):
隨著信息加密技術(shù)的發(fā)展,加密算法的強(qiáng)度越來(lái)越受到大家的重視和關(guān)注,相關(guān)的增強(qiáng)加密算法強(qiáng)度的方法也越來(lái)越必不可少,在明文經(jīng)過(guò)加密算法生成密文后,對(duì)密文的分析和破解也成為了黑客們經(jīng)常關(guān)注的事情,分組加密算法做為一個(gè)使用頻繁的常用信息加密方法,非常適合加密大量數(shù)據(jù);但是由于分組加密算法對(duì)同一明文加密的密文是唯一的,導(dǎo)致了黑客可以對(duì)已知密文進(jìn)行逆運(yùn)算,從而得出對(duì)應(yīng)的明文,大大削弱了密文的安全性;當(dāng)前的傳統(tǒng)分組加密算法,根本沒(méi)有解決這種密文唯一性的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是:提出一種隨機(jī)密文生成方法及系統(tǒng)、解密方法及系統(tǒng),解決傳統(tǒng)分組加密算法中對(duì)同一明文加密的密文是唯一的,削弱密文安全性的問(wèn)題。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:
第一方面,本發(fā)明提供了一種隨機(jī)密文生成系統(tǒng),包括:加密算法選擇模塊、密鑰選擇模塊、明文檢測(cè)模塊、明文填充算法模塊和加密算法模塊;
所述加密算法選擇模塊用于選取分組加密算法的類型;
所述密鑰選擇模塊用于選取進(jìn)行加密過(guò)程的密鑰長(zhǎng)度;
所述明文檢測(cè)模塊用于判斷輸入明文位數(shù);
所述明文填充算法模塊用于將不滿足規(guī)則的明文信息按照特定算法進(jìn)行填充;
所述加密算法模塊用于對(duì)填充后的明文信息進(jìn)行加密操作并輸出密文信息。
作為進(jìn)一步優(yōu)化,所述明文填充算法模塊可填充的位數(shù)為一倍或多倍所選密鑰的長(zhǎng)度位。
第二方面,本發(fā)明提供了一種隨機(jī)密文生成方法,其包括以下步驟:
A、加密算法模塊選擇所使用的分組加密算法;
B、密鑰選擇模塊根據(jù)所選擇的分組加密算法確定密鑰長(zhǎng)度;
C、明文檢測(cè)模塊對(duì)輸入的明文信息進(jìn)行判斷,并獲取其明文的長(zhǎng)度信息,且將該明文信息通過(guò)摘要算法計(jì)算出一個(gè)摘要信息,然后將明文長(zhǎng)度信息傳遞給明文填充算法模塊,將明文摘要信息傳遞給加密算法模塊;
D、明文填充算法模塊根據(jù)所輸入明文的長(zhǎng)度信息,按照特定算法進(jìn)行填充;
E、加密算法模塊使用加密算法和對(duì)稱算法密鑰對(duì)明文填充算法模塊輸出的明文信息和填充之前的明文摘要信息進(jìn)行加密,輸出一個(gè)密文信息。
作為進(jìn)一步優(yōu)化,步驟D中,如果明文長(zhǎng)度不足密鑰長(zhǎng)度,明文填充算法模塊則生成隨機(jī)位信息,并使用該信息將明文填充到一倍密鑰長(zhǎng)度,然后再次生成一倍密鑰長(zhǎng)度的隨機(jī)位信息,填充到之前的明文信息后面;如果明文長(zhǎng)度等于密鑰長(zhǎng)度,明文填充算法模塊則生成一倍密鑰長(zhǎng)度的隨機(jī)位信息,填充到明文信息后面;如果明文長(zhǎng)度大于密鑰長(zhǎng)度,明文填充算法模塊則先將明文信息按密鑰整數(shù)倍進(jìn)行平均切割,生成隨機(jī)位信息,對(duì)不足一倍密鑰長(zhǎng)度的明文信息進(jìn)行填充。
第三方面,本發(fā)明實(shí)施例還提供了一種解密系統(tǒng),包括:解密算法模塊、反向明文填充模塊以及明文校驗(yàn)?zāi)K;
所述解密算法模塊用于對(duì)密文信息進(jìn)行解密操作并輸出帶有填充位的明文信息;
所述反向明文填充模塊用于將明文信息中的填充位信息去除并輸出最終的明文信息;
所述明文校驗(yàn)?zāi)K用于計(jì)算和對(duì)比輸入前的明文和解密后的明文的一致性。
第四方面,本發(fā)明實(shí)施例還提供了一種解密方法,其包括以下步驟:
A、解密算法模塊在接收到密文信息后,使用解密算法和對(duì)稱算法密鑰對(duì)該密文信息進(jìn)行解密操作,得到含有明文填充位的明文信息和明文摘要信息,并將含有明文填充位的明文信息傳遞給反向明文填充算法模塊,將明文摘要信息傳遞給明文校驗(yàn)?zāi)K;
B、反向明文填充算法模塊對(duì)得到的含有明文填充位的明文信息進(jìn)行逆向操作,得出一個(gè)去掉明文填充位的明文信息,并輸出給明文校驗(yàn)?zāi)K;
C、明文校驗(yàn)?zāi)K對(duì)收到的明文信息計(jì)算出摘要信息,并將該摘要信息和之前從解密算法模塊收到的明文摘要信息進(jìn)行對(duì)比,如果一致則判定解密操作成功,反之則解密失敗。
本發(fā)明的有益效果是:能在明文中自動(dòng)添加隨機(jī)填充位,使同樣的明文在每次加密后能生成不同的密文的算法,從而增加密碼強(qiáng)壯度,實(shí)現(xiàn)即使黑客獲取密文后,也難逆向推出明文,從而增加了數(shù)據(jù)傳輸安全性。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例中的隨機(jī)密文生成系統(tǒng)框圖;
圖2為本發(fā)明實(shí)施例中的解密系統(tǒng)框圖。
具體實(shí)施方式
本發(fā)明旨在提出一種隨機(jī)密文生成方法及系統(tǒng)、解密方法及系統(tǒng),解決傳統(tǒng)分組加密算法中對(duì)同一明文加密的密文是唯一的,削弱密文安全性的問(wèn)題。本發(fā)明能在明文中自動(dòng)添加隨機(jī)填充位,使同樣的明文在每次加密后能生成不同的密文的算法,從而增加密碼強(qiáng)壯度,實(shí)現(xiàn)即使黑客獲取密文后,也難逆向推出明文。
如圖1所示,本實(shí)施例中的隨機(jī)密文生成系統(tǒng),包括:加密算法選擇模塊、密鑰選擇模塊、明文檢測(cè)模塊、明文填充算法模塊和加密算法模塊;
所述加密算法選擇模塊用于選取分組加密算法的類型;
所述密鑰選擇模塊用于選取進(jìn)行加密過(guò)程的密鑰長(zhǎng)度;
所述明文檢測(cè)模塊用于判斷輸入明文位數(shù);
所述明文填充算法模塊用于將不滿足規(guī)則的明文信息按照特定算法進(jìn)行填充;
所述加密算法模塊用于對(duì)填充后的明文信息進(jìn)行加密操作并輸出密文信息。
所述明文填充算法模塊可填充的位數(shù)為一倍或多倍所選密鑰的長(zhǎng)度位。
基于該隨機(jī)密文生成系統(tǒng)實(shí)現(xiàn)的隨機(jī)密文生成方法,包括以下實(shí)現(xiàn)步驟:
A、程序選擇哪種分組加密算法(如DES);
B、程序通過(guò)選擇好的加密算法(DES),選擇好使用的加密密鑰長(zhǎng)度(128bi t)。
C、明文檢測(cè)模塊對(duì)獲取到的輸入明文信息進(jìn)行判斷,使用算法判斷其信息的長(zhǎng)度,然后調(diào)用HASH算法(如MD5算法)將該明文信息計(jì)算出一個(gè)摘要信息,之后將明文長(zhǎng)度數(shù)據(jù)傳遞給明文填充算法模塊,而將明文摘要信息傳遞給加密算法模塊。
D、明文填充算法模塊根據(jù)所輸入明文的長(zhǎng)度信息,判斷是否如何對(duì)該明文信息進(jìn)行填充操作,如果明文長(zhǎng)度不足密鑰長(zhǎng)度,明文填充算法模塊則生成隨機(jī)位信息,并使用該信息將明文填充到一倍密鑰長(zhǎng)度,然后再次生成一倍密鑰長(zhǎng)度的隨機(jī)位信息,填充到之前的明文信息后面;如果明文長(zhǎng)度等于密鑰長(zhǎng)度,明文填充算法模塊則生成一倍密鑰長(zhǎng)度的隨機(jī)位信息,填充到明文信息后面;如果明文長(zhǎng)度大于密鑰長(zhǎng)度,明文填充算法模塊則先將明文信息按密鑰整數(shù)倍進(jìn)行平均切割,生成隨機(jī)位信息,對(duì)不足一倍密鑰長(zhǎng)度的明文信息進(jìn)行填充。
E、加密算法模塊使用加密算法和對(duì)稱算法密鑰對(duì)明文填充算法模塊輸出的明文信息和填充之前的明文摘要信息進(jìn)行加密,輸出一個(gè)密文信息。
如圖2所示,本實(shí)施例中的解密系統(tǒng),包括:解密算法模塊、反向明文填充模塊以及明文校驗(yàn)?zāi)K;
所述解密算法模塊用于對(duì)密文信息進(jìn)行解密操作并輸出帶有填充位的明文信息;
所述反向明文填充模塊用于將明文信息中的填充位信息去除并輸出最終的明文信息;
所述明文校驗(yàn)?zāi)K用于計(jì)算和對(duì)比輸入前的明文和解密后的明文的一致性。
基于上述解密系統(tǒng)實(shí)現(xiàn)的解密方法,包括以下實(shí)現(xiàn)步驟:
A、解密算法模塊在接收到密文信息后,使用解密算法和對(duì)稱算法密鑰對(duì)該密文信息進(jìn)行解密操作,得到含有明文填充位的明文信息和明文摘要信息,并將含有明文填充位的明文信息傳遞給反向明文填充算法模塊,將明文摘要信息傳遞給明文校驗(yàn)?zāi)K;
B、反向明文填充算法模塊對(duì)得到的含有明文填充位的明文信息進(jìn)行逆向操作,得出一個(gè)去掉明文填充位的明文信息,并輸出給明文校驗(yàn)?zāi)K;
C、明文校驗(yàn)?zāi)K對(duì)收到的明文信息計(jì)算出摘要信息,并將該摘要信息和之前從解密算法模塊收到的明文摘要信息進(jìn)行對(duì)比,如果一致則判定解密操作成功,反之則解密失敗。
采用本發(fā)明對(duì)明文信息加入隨機(jī)填充位,在每次加密后,可以生成不同的密文信息,大大提高了黑客們獲取敏感數(shù)據(jù)的成本,增加了密文的強(qiáng)壯度,提高了相關(guān)系統(tǒng)的安全性。
上述實(shí)施例僅為本發(fā)明較佳的實(shí)施方式,應(yīng)該理解,本領(lǐng)域技術(shù)人員可以設(shè)計(jì)出很多其他的修改和實(shí)施方式,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。