一種信息加密方法,該方法包括:將需要加密的信息根據(jù)與所述信息中的每個字符所對應的ASCII碼按位展開為L1個字節(jié),并存儲在M×N大小的數(shù)組Matrix[M][N]中,其中,M×N=L1×8,M、N、L1均為整數(shù);任取隨機密鑰K,密鑰長度為L2個字節(jié),依次使用密鑰K中的每一個字節(jié)K[I],0≤I≤L21,根據(jù)字節(jié)K[I]的位數(shù)據(jù),對數(shù)組Matrix[M][N]進行移位操作;將移位后的數(shù)組Matrix[M][N]按位還原為L1個字節(jié)數(shù)據(jù),完成加密過程。本發(fā)明專利技術的加密方法不限定密鑰長度和信息分組的長度,具有比較大的靈活性,算法的選取完全取決于實施的需要,更增加了破解的難度。
【技術實現(xiàn)步驟摘要】
本專利技術涉及信息加密
,更具體地講,本專利技術涉及一種利用魔方旋轉(zhuǎn)原理進行加密的方法,屬于對稱密鑰的加密方法。
技術介紹
信息加密方法一般分為對稱密鑰加密方法和非對稱密鑰(公開密鑰)加密方法兩種。隨著現(xiàn)代通信信息量不斷加大,人們對信息安全的認識和要求越來越高。為了保證傳 輸過程中通信內(nèi)容不會泄密,可供使用的信息加密傳輸方法有很多。由于公知的非對稱密鑰方法(如RSA,ECC等)計算強度太大并不適合大數(shù)據(jù)量通信時使用,相對而言對稱密鑰加密方法更適合一些。常用的對稱密鑰加密方法有DES、AES等標準公開的算法,但是這些公開算法的計算量非常大,加密和解密的時間成本很高,也不利于大數(shù)據(jù)量通信的加密。為了提高計算速度,出現(xiàn)了各種基于硬件的DES加密芯片,系統(tǒng)在提高加密運算速度的同時也增加了系統(tǒng)的經(jīng)濟成本。下面對DES和AES的安全性和效率進行比較。自DES算法1977年首次公諸于世以來,學術界對其進行了深入的研究,圍繞它的安全性展開了激烈的爭論。在技術上,對DES的批評主要集中在以下3個方面I、作為分組密碼,DES的加密單位僅有64位二進制,這對于數(shù)據(jù)傳輸來說太小,因為每個分組僅含8個字符,而且其中某些位還要用于奇偶校驗或其它通信開銷。2、DES的密鑰的位數(shù)太短,只有56比特,而且各次迭代中使用的密鑰kf是遞推產(chǎn)生的,這種相關必然降低密碼體制的安全性。在現(xiàn)有技術下用窮舉法尋找密鑰已趨于可行。1999年在電子前沿組織(Electronic Frontier Foundation, EFF)進行的一次測試中,只用了不到3天的時間就破解了一個DES加密系統(tǒng)。因此,若要保護10年以上的數(shù)據(jù)最好不要采用DES算法。3、DES不能對抗差分和線性密碼分析。相對DES算法來說,AES算法無疑解決了上述問題,主要表現(xiàn)在如下幾方面I、AES標準支持可變分組長度,分組長度可設定為32比特的任意倍數(shù),最小值為128比特,最大值為256比特。2、AES的密鑰長度比DES大,它也可設定為32比特的任意倍數(shù),最小值為128比特,最大值為256比特,用窮舉法不可能破解。假設取密鑰長度為128比特,那么要破解2128個可能的密鑰的密文平均要嘗試的密鑰的個數(shù)為2127,一臺計算機用窮舉法破解大概需要的時間為1000年??梢钥闯鲞@實際上是不可行的。在可預計的將來,如果計算機的運行速度沒有根本性的提高,用窮舉法破解AES密鑰幾乎不可能。3、AES算法的設計策略是寬軌跡策略(Wide Trail Strategy,WTS),WTS是針對差分分析和線性分析提出的,可對抗差分密碼分析和線性密碼分析。根據(jù)DES和AES的算法實現(xiàn)的程序?qū)崪y結(jié)果,AES算法性能大約為DES算法的3倍,經(jīng)優(yōu)化的AES算法的性能比DES算法性能大約高5倍左右。DES和AES算法已經(jīng)公布多年,隨著時間的推移,已有多種有效破解DES和AES的方法公布。雖然AES算法的安全性比DES算法的安全性有大幅度提升,但原因是因為密鑰長度的加長。雖然AES算法性能比DES算法性能高,但并沒有達到數(shù)量級的提高,兩者性能還是處于同一個數(shù)量級的水平。隨著通信量的加大,需要一種高效率、低成本并且高強度的信息加密方法,以支持大數(shù)據(jù)量通信。
技術實現(xiàn)思路
本專利技術針對DES、AES等方法的不足之處,提供一種高強度、高效率、低成本的對稱密鑰加密方法,主要解決信息在傳輸過程中被非法截獲而被還原的問題。 根據(jù)本專利技術的一方面,提供一種信息加密方法,該方法包括將需要加密的信息根據(jù)與所述信息中的每個字符所對應的ASCII碼按位展開為LI個字節(jié),并存儲在MXN大小的數(shù)組Matrix [M] [N]中,其中,MXN = LI X 8,M、N、LI均為整數(shù);任取隨機密鑰K,密鑰長度為1^2個字節(jié),依次使用密鑰1(中的每一個字節(jié)1([1],0<1<1^2-1,根據(jù)字節(jié)1([1]的位數(shù)據(jù),對數(shù)組Matrix [M] [N]進行移位操作;將移位后的數(shù)組Matrix [M] [N]按位還原為LI個字節(jié)數(shù)據(jù),完成加密過程。優(yōu)選地,在將需要加密的信息的LI個字節(jié)存儲在數(shù)組Matrix[M] [N]中之前,可使用密鑰K對所述LI個字節(jié)進行數(shù)據(jù)預處理,使得需要加密的信息與原文信息不同。優(yōu)選地,如果LI = 8, L2 = 8,則M = 8, N = 8,并且所述移位操作可包括循環(huán)取密鑰K的每一個字節(jié)K [I],0< I <7,設置循環(huán)變量I、J、X、Y,I為字節(jié)K [I]的序號,J為字節(jié)K[I]的第O、I位所對應的十進制數(shù)值,X為字節(jié)Κ[Ι]的第2、3、4位所對應的十進制數(shù)值,Y為字節(jié)Κ[Ι]的5、6、7位所對應的十進制數(shù)值;設置臨時數(shù)組Τ,將數(shù)組Matrix[8]的第I行的8個數(shù)據(jù)順序存儲在臨時數(shù)組T中,將數(shù)組Matrix[8] [8]的第2J列的8個數(shù)據(jù)順序移位至數(shù)組Matrix [8] [8]的第I行,將數(shù)組Matrix [8] [8]的第X行的8個數(shù)據(jù)順序移位至數(shù)組Matrix[8] [8]的第2J列,將數(shù)組Matrix[8] [8]的第Y列的8個數(shù)據(jù)順序移位至數(shù)組Matrix [8] [8]的第X行,將存儲在臨時數(shù)組T中的8個數(shù)據(jù)順序存儲在數(shù)組Matrix[8] [8]的第 Y 列中。優(yōu)選地,數(shù)據(jù)預處理可包括將8字節(jié)信息的每一個字節(jié)與8字節(jié)密鑰K的相應字節(jié)進行異或運算。優(yōu)選地,如果8 < LI < 16,則M = 8,N = LI,并且所述移位操作可包括循環(huán)取密鑰K的每一個字節(jié)K [I],O ( I ( L2-1,設置循環(huán)變量I、J、X、Y,I為字節(jié)K [I]的序號,J為字節(jié)K[I]的第0、1位所對應的十進制數(shù)值,X為字節(jié)Κ[Ι]的第2、3、4位所對應的十進制數(shù)值,Y為字節(jié)Κ[Ι]的5、6、7位所對應的十進制數(shù)值,其中,如果密鑰長度L2 > 8,則當I彡8時,將I設置為等于當前循環(huán)次數(shù)取8的模;設置臨時數(shù)組Τ,將數(shù)組Matrix [8] [LI]的左側(cè)8X8子數(shù)組的第I行的8個數(shù)據(jù)存儲在臨時數(shù)組T中,將數(shù)組Matrix[8] [LI]的第(2J+L1-8)列的8個數(shù)據(jù)移位至數(shù)組Matrix[8] [LI]的左側(cè)8X8子數(shù)組的第I行,將數(shù)組Matrix[8] [LI]的左側(cè)8X8子數(shù)組的第X行的8個數(shù)據(jù)移位至數(shù)組Matrix[8] [LI]的第(2J+L1-8)列,將數(shù)組Matrix [8] [LI]的第(Y+L1-8)列的8個數(shù)據(jù)移位至數(shù)組Matrix [8][LI]的左側(cè)8X8子數(shù)組的第X行,將存儲在臨時數(shù)組T中的8個數(shù)據(jù)依次存儲在數(shù)組Matrix[8] [LI]的第(Y+Ll-8)列中。優(yōu)選地,數(shù)據(jù)預處理可包括將所述信息的每一個字節(jié)與密鑰K的相應字節(jié)相加,相加的結(jié)果如果大于255,則溢出后只取最后一個字節(jié),其中,如果密鑰的長度L2不等于LI,則根據(jù)密鑰K的長度L2,將密鑰K拼接或裁減為LI字節(jié)。優(yōu)選地,如果LI = 32,則M = 16, N = 16,并且所述移位操作可包括循環(huán)取密鑰K的每一個字節(jié)Κ[Ι],0< I < L2-1,設置循環(huán)變量I、X、Y,I為字節(jié)Κ[Ι]的序號,X為字節(jié)K [I]的高4位所對應的十進制數(shù)值,Y為字節(jié)K [I]的低4位所對應的十進制數(shù)值,其中,本文檔來自技高網(wǎng)...
【技術保護點】
一種信息加密方法,包括:將需要加密的信息根據(jù)與所述信息中的每個字符所對應的ASCII碼按位展開為L1個字節(jié),并存儲在M×N大小的數(shù)組Matrix[M][N]中,其中,M×N=L1×8,M、N、L1均為整數(shù);任取隨機密鑰K,密鑰長度為L2個字節(jié),依次使用密鑰K中的每一個字節(jié)K[I],0≤I≤L2?1,根據(jù)字節(jié)K[I]的位數(shù)據(jù),對數(shù)組Matrix[M][N]進行移位操作;將移位后的數(shù)組Matrix[M][N]按位還原為L1個字節(jié)數(shù)據(jù),完成加密過程。
【技術特征摘要】
1.一種信息加密方法,包括 將需要加密的信息根據(jù)與所述信息中的每個字符所對應的ASCII碼按位展開為LI個字節(jié),并存儲在MXN大小的數(shù)組Matrix[M] [N]中,其中,MXN = L1X8,M、N、L1均為整數(shù); 任取隨機密鑰K,密鑰長度為L2個字節(jié),依次使用密鑰K中的每一個字節(jié)K[I],O≤I≤L2-1,根據(jù)字節(jié)Κ[Ι]的位數(shù)據(jù),對數(shù)組Matrix [Μ] [N]進行移位操作; 將移位后的數(shù)組Matrix [Μ] [N]按位還原為LI個字節(jié)數(shù)據(jù),完成加密過程。2.根據(jù)權(quán)利要求I所述的信息加密方法,其特征在于在將需要加密的信息的LI個字節(jié)存儲在數(shù)組Matrix [M] [N]中之前,使用密鑰K對所述LI個字節(jié)進行數(shù)據(jù)預處理,使得需要加密的信息與原文信息不同。3.根據(jù)權(quán)利要求2所述的信息加密方法,其特征在于如果LI= 8,L2 = 8,則M = 8,N = 8,并且所述移位操作包括, 循環(huán)取密鑰K的每一個字節(jié)K [I],O ( I ( 7,設置循環(huán)變量I、J、X、Y,I為字節(jié)K [I]的序號,J為字節(jié)κ[1]的第O、I位所對應的十進制數(shù)值,X為字節(jié)Κ[Ι]的第2、3、4位所對應的十進制數(shù)值,Y為字節(jié)Κ[Ι]的5、6、7位所對應的十進制數(shù)值; 設置臨時數(shù)組Τ,將數(shù)組Matrix[8] [8]的第I行的8個數(shù)據(jù)順序存儲在臨時數(shù)組T中,將數(shù)組Matrix [8] [8]的第2J列的8個數(shù)據(jù)順序移位至數(shù)組Matrix [8] [8]的第I行,將數(shù)組Matrix[8] [8]的第X行的8個數(shù)據(jù)順序移位至數(shù)組Matrix[8] [8]的第2J列,將數(shù)組Matrix[8] [8]的第Y列的8個數(shù)據(jù)順序移位至數(shù)組Matrix[8] [8]的第X行,將存儲在臨時數(shù)組T中的8個數(shù)據(jù)順序存儲在數(shù)組Matrix [8] [8]的第Y列中。4.根據(jù)權(quán)利要求3所述的信息加密方法,其特征在于數(shù)據(jù)預處理包括,將8字節(jié)信息的每一個字節(jié)與8字節(jié)密鑰K的相應字節(jié)進行異或運算。5.根據(jù)權(quán)利要求2所述的信息加密方法,其特征在于如果8≤ LI≤16,則M = 8,N=LI,并且所述移位操作包括, 循環(huán)取密鑰K的每一個字節(jié)K [I],O ≤ I ≤ L2-1,設置循環(huán)變量I、J、X、Y,I為字節(jié)K[I]的序號,J為字節(jié)Κ[Ι]的第0、1位所對應的十進制數(shù)值,X為字節(jié)Κ[Ι]的第2、3、4位所對應的十進制數(shù)值,Y為字節(jié)Κ[Ι]的5、6、7位所對應的十進制數(shù)值,其中,如果密鑰長度L2 > 8,則當I≤8時,將I設置為等于當前循環(huán)次數(shù)取8的模; 設置臨時數(shù)組Τ,將數(shù)組Matrix[8] [LI]的左側(cè)8X8子數(shù)組的第I行的8個數(shù)據(jù)存儲在臨時數(shù)組T中,將數(shù)組Matrix[8] [LI]的第(2J+L1-8)列的8個數(shù)據(jù)移位至數(shù)組Ma...
【專利技術屬性】
技術研發(fā)人員:王政,吳恒志,黃日文,
申請(專利權(quán))人:深圳市金溢科技有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。