信息加密及解密方法
【專利摘要】本發(fā)明公開了一種信息加密及解密方法,采用代替/置換網(wǎng)絡(luò)的方法將明文分組長度固定為128b,進(jìn)行密鑰擴(kuò)展過程和加密過程。通過組合邏輯實(shí)現(xiàn)的移位和異或運(yùn)算來實(shí)現(xiàn)。這些實(shí)現(xiàn)方法代替了繁瑣的乘法運(yùn)算,提高了加密速度;采用并行流水同時(shí)處理多個(gè)數(shù)據(jù)塊,提高吞吐量。計(jì)算后的二進(jìn)制數(shù)據(jù),采用base64對(duì)加密密文、密鑰進(jìn)行二次加密,不同平臺(tái)間的報(bào)文,通過base64報(bào)文形式,進(jìn)行通信。各種平臺(tái)對(duì)經(jīng)過base6加密后的結(jié)果進(jìn)行解析,解決不同平臺(tái)的對(duì)報(bào)文解析結(jié)果的差異問題,實(shí)現(xiàn)跨平臺(tái)的數(shù)據(jù)加密解密。
【專利說明】信息加密及解密方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種信息加密及解密方法,特別是涉及一種跨平臺(tái)互通的AES信息加解密方法。
【背景技術(shù)】
[0002]在保密及安全行業(yè)使用環(huán)境中,移動(dòng)設(shè)備、計(jì)算機(jī)、各種大型服務(wù)器協(xié)調(diào)處理已經(jīng)非常普及,如何保證系統(tǒng)間的數(shù)據(jù)報(bào)文的安全,信息不被簡單的破譯顯得非常重要。簡單的加密解密已經(jīng)無法很好的保證信息不被破解;AES作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn)匯聚了強(qiáng)安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn),是一種安全性、性能高的加密解密算法,應(yīng)用在各個(gè)領(lǐng)域;在不同平臺(tái)間對(duì)信息進(jìn)行共享,對(duì)報(bào)文信息進(jìn)行安全加密,因?yàn)槠脚_(tái)間差異化、碎片化,使用不同平臺(tái)間的對(duì)加密后的報(bào)文、密鑰等的管理、翻譯變得異常困難。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問題是提供一種信息加密及解密方法,能在不同的平臺(tái)中,實(shí)現(xiàn)安全的信息互通方式。
[0004]為解決上述技術(shù)問題,本發(fā)明提供的一種信息加密方法,包括:
[0005]步驟1、對(duì)于不同的平臺(tái),統(tǒng)一設(shè)計(jì)了一樣的加密端,在加密端輸入需要加密的明文及密鑰字符串;
[0006]步驟2、加密端根據(jù)加密的指令,對(duì)輸入的明文、密鑰進(jìn)行讀取,解析成對(duì)應(yīng)的明文字節(jié)流;
[0007]步驟3、加密端對(duì)明文字節(jié)流、密鑰字節(jié)流進(jìn)行AES算法加密初始化,初始化一個(gè)16X16的矩陣作為代替盒,稱為S-盒,獲取密鑰數(shù)組并用它來生成一個(gè)名為w[]的密鑰調(diào)度表;w[]最初的Nk行被作為種子,用原始密鑰值(0x00到0x17),剩余行從種子密鑰來產(chǎn)生。變量Nk代表以32位字為單位的種子密鑰長度;進(jìn)一步的用密鑰調(diào)度表w[]中的前四行對(duì)State矩陣實(shí)行一個(gè)字節(jié)一個(gè)字節(jié)的異或(XOR)操作,并用密鑰調(diào)度表w[c,r]異或輸入StateQr, c],r代表第r行,c代表列數(shù)第c列;進(jìn)一步拷貝16字節(jié)的輸入數(shù)組到一個(gè)名為State (態(tài))的4X4字節(jié)矩陣中;
[0008]步驟4、加密端對(duì)明文字節(jié)流、密鑰字節(jié)流進(jìn)行AES算法加密,主循環(huán)對(duì)State矩陣執(zhí)行 SubBytes、ShiftRows、MixColumns 和 AddRoundKey ;
[0009]步驟5、加密后字節(jié)密文數(shù)據(jù),進(jìn)行Base64 二次加密,轉(zhuǎn)換為Base64字符串;輸出加密后的字符串結(jié)果。
[0010]一種信息加密方法,包括:
[0011]步驟1、在解密端輸入需要加密的明文及密鑰字符串;
[0012]步驟2、解密端根據(jù)解密的指令,對(duì)輸入的密文、密鑰進(jìn)行讀?。粚?duì)密文先進(jìn)行base64解密,解析成對(duì)應(yīng)的密文字節(jié)流;對(duì)密鑰進(jìn)行base64解密,解析成對(duì)應(yīng)的密鑰字節(jié)流;[0013]步驟3、對(duì)密文字節(jié)流、密鑰字節(jié)流采用AES解密算法進(jìn)行解密,得到解密后的明文字節(jié)流;
[0014]步驟4、解密后的明文字節(jié)流,統(tǒng)一轉(zhuǎn)轉(zhuǎn)換成GBK格式字符串,輸出。
[0015]本發(fā)明信息加密及解密方法在不同平臺(tái)的終端,通過將密鑰加密成base64,進(jìn)行加密算法計(jì)算時(shí),將密文解密成字節(jié)流,在采用AES加密算法進(jìn)行計(jì)算,將加密后的密文字節(jié)流,再次使用base64進(jìn)行加密,得到加密后的密文字符串;加密后的密文字符串,及base64加密后密鑰,共同傳輸給解密端,解密端對(duì)密文、密鑰進(jìn)行base64解密,轉(zhuǎn)換為密文字節(jié)流及密鑰字節(jié)流,通過AES解密算法,解析出明文字節(jié)流,進(jìn)行GBK編碼轉(zhuǎn)換,得到了解密后的明文字符串??朔瞬煌脚_(tái)間,AES加密、解密無法互通的的問題。
【具體實(shí)施方式】
[0016]下面結(jié)合【具體實(shí)施方式】對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明:
[0017]本發(fā)明信息加密方法:包括:
[0018]步驟1、對(duì)于不同的平臺(tái),統(tǒng)一設(shè)計(jì)了一樣的加密接口,在加密端輸入需要加密的明文及密鑰字符串,其中密鑰通過base64加密;
[0019]步驟2、加密端根據(jù)加密的指令,對(duì)輸入的明文、密鑰進(jìn)行讀取,解析成對(duì)應(yīng)的明文字節(jié)流;
[0020]步驟3、加密端對(duì)明文字節(jié)流、密鑰字節(jié)流進(jìn)行AES算法加密初始化,初始化一個(gè)16X16的矩陣作為代替盒,稱為S-盒,獲取密鑰數(shù)組并用它來生成一個(gè)名為w[]的密鑰調(diào)度表;w[]最初的Nk行被作為種子,用原始密鑰值(0x00到0x17),剩余行從種子密鑰來產(chǎn)生。變量Nk代表以32位字為單位的種子密鑰長度;進(jìn)一步的用密鑰調(diào)度表w[]中的前四行對(duì)State矩陣實(shí)行一個(gè)字節(jié)一個(gè)字節(jié)的異或(XOR)操作,并用密鑰調(diào)度表w[c,r]異或輸入StateQr, c],r代表第r行,c代表列數(shù)第c列;進(jìn)一步拷貝16字節(jié)的輸入數(shù)組到一個(gè)名為State (態(tài))的4X4字節(jié)矩陣中。
[0021]步驟4、加密端對(duì)明文字節(jié)流、密鑰字節(jié)流進(jìn)行AES算法加密,主循環(huán)對(duì)State矩陣執(zhí)行SubBytes (字節(jié)替換)、ShiftRows (行位移變換)、MixColumns (列混合變換)和AddRoundKey (密鑰加法);
[0022]步驟5、加密后字節(jié)密文數(shù)據(jù),進(jìn)行Base64 二次加密,轉(zhuǎn)換為Base64字符串;輸出加密后的字符串結(jié)果。
[0023]本發(fā)明信息解密方法:包括:
[0024]步驟1、在解密端輸入需要加密的明文及密鑰字符串,其中密鑰通過base64加密;
[0025]步驟2、解密端根據(jù)解密的指令,對(duì)輸入的密文、密鑰進(jìn)行讀??;對(duì)密文先進(jìn)行base64解密,解析成對(duì)應(yīng)的密文字節(jié)流;對(duì)密鑰進(jìn)行base64解密,解析成對(duì)應(yīng)的密鑰字節(jié)流。
[0026]步驟3、對(duì)密文字節(jié)流、密鑰字節(jié)流采用AES解密算法進(jìn)行解密,得到解密后的明文字節(jié)流;
[0027]步驟4、解密后的明文字節(jié)流,統(tǒng)一轉(zhuǎn)轉(zhuǎn)換成GBK格式字符串,輸出。
[0028]以上通過具體實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,但這些并非構(gòu)成對(duì)本發(fā)明的限制。在不脫離本發(fā)明原理的情況下,本領(lǐng)域的技術(shù)人員還可做出許多變形和改進(jìn),這些也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種信息加密方法,其特征在于,包括: 步驟1、對(duì)于不同的平臺(tái),統(tǒng)一設(shè)計(jì)了一樣的加密端,在加密端輸入需要加密的明文及密鑰字符串; 步驟2、加密端根據(jù)加密的指令,對(duì)輸入的明文、密鑰進(jìn)行讀取,解析成對(duì)應(yīng)的明文字節(jié)流; 步驟3、加密端對(duì)明文字節(jié)流、密鑰字節(jié)流進(jìn)行AE S算法加密初始化,初始化一個(gè)16X16的矩陣作為代替盒,稱為S-盒,獲取密鑰數(shù)組并用它來生成一個(gè)名為w[]的密鑰調(diào)度表;w[]最初的Nk行被作為種子,用原始密鑰值(0x00到0x17),剩余行從種子密鑰來產(chǎn)生;Nk代表以32位字為單位的種子密鑰長度;進(jìn)一步的用密鑰調(diào)度表w[]中的前四行對(duì)State矩陣實(shí)行一個(gè)字節(jié)一個(gè)字節(jié)的異或(XOR)操作,并用密鑰調(diào)度表w[c,r]異或輸入State [r, c],r代表第r行,c代表列數(shù)第c列;進(jìn)一步拷貝16字節(jié)的輸入數(shù)組到一個(gè)名為State (態(tài))的4X4字節(jié)矩陣中; 步驟4、加密端對(duì)明文字節(jié)流、密鑰字節(jié)流進(jìn)行AES算法加密,主循環(huán)對(duì)State矩陣執(zhí)行 SubBytes、ShiftRows、MixColumns 和 AddRoundKey ; 步驟5、加密后字節(jié)密文數(shù)據(jù),進(jìn)行Base64 二次加密,轉(zhuǎn)換為Base64字符串;輸出加密后的字符串結(jié)果。
2.一種如權(quán)利要求1所述的信息加密方法的信息解密方法,其特征在于,包括: 步驟1、在解密端輸入需要加密的明文及密鑰字符串; 步驟2、解密端根據(jù)解密的指令,對(duì)輸入的密文、密鑰進(jìn)行讀??;對(duì)密文先進(jìn)行base64解密,解析成對(duì)應(yīng)的密文字節(jié)流;對(duì)密鑰進(jìn)行base64解密,解析成對(duì)應(yīng)的密鑰字節(jié)流; 步驟3、對(duì)密文字節(jié)流、密鑰字節(jié)流采用AES解密算法進(jìn)行解密,得到解密后的明文字節(jié)流; 步驟4、解密后的明文字節(jié)流,統(tǒng)一轉(zhuǎn)轉(zhuǎn)換成GBK格式字符串,輸出。
【文檔編號(hào)】H04L9/06GK103580851SQ201310566725
【公開日】2014年2月12日 申請(qǐng)日期:2013年11月13日 優(yōu)先權(quán)日:2013年11月13日
【發(fā)明者】陳祥耀 申請(qǐng)人:福建省視通光電網(wǎng)絡(luò)有限公司