淺析三維魔方加密算法

三維魔方加密算法的思路來源于魔方,是基于一個立方體來作加密和解密的換算。網(wǎng)絡(luò)中的信息較多的是以文本形式存在的。

三維魔方加密算法對文本的加密和解密。具體步驟如下:

設(shè)定x、y、z為三維空間的三條坐標(biāo)軸,選擇需要被加密的文本,根據(jù)被加密文本的大小,決定x、y、z的最小階數(shù)(階數(shù)是魔方的邊長)m,這樣就形成了一個三維的立方體。

加密過程:將文本中的內(nèi)容依次排列到魔方中,每個字符都有固定的位置(Xi,Yi,Zi)(0≤i≤m)。如果用戶設(shè)定的階數(shù)大于文本的最小階數(shù)m,那么魔方中剩下的空間里存放的是空格。輸入密鑰,密鑰的格式為:ababab……其中a代表x、y、z中的任意一個,b代表數(shù)字,1表示第1階,2表示第2階,3表示第3階,以此類推。兩者合起來表示,將魔方以a代表的軸的第 b階順時針旋轉(zhuǎn)90°。

淺析三維魔方加密算法

例如,現(xiàn)在輸入密鑰為x1y2z3,即魔方以x軸為中心的第1階繞90°,以y軸為中心的第2階繞90°,以z軸為中心的第3階繞90°。一個3階的魔方,A、B、C代表明文中的字符。密鑰x1對應(yīng)的旋轉(zhuǎn)魔方以x軸為中心的第1階繞90° (如圖所示),其他類似。經(jīng)過密鑰對應(yīng)的所有旋轉(zhuǎn)完成,A、B、C三個字符順序?qū)⒈淮騺y,分別在不同的面上,得到加密是密文,顯示為亂碼。在魔方算法中,密鑰的長度是隨機的,可以ababab,也可以 ababababab,以此類推,密鑰長度越長,旋轉(zhuǎn)的次數(shù)越多,文本 排列的越亂。另外,如果用戶將階數(shù)擴大,即魔方的長度變長,那么擴大的階數(shù)排列著空格,這些空格在旋轉(zhuǎn)過程中也被排列到文本中,這樣得到的密文包含著空格,文本排列的順序也越亂。

解密過程:如前所述,三維魔方加密算法是一個對稱算法,因此它的加密和解密使用的是同一個密鑰。解密過程就是加密算法的逆運算。在密鑰的生成部分,筆者引用了三十三進制,即0~9,a~w共33個字符。這樣就擴大了密鑰的空間,增加了密鑰的數(shù)量。

淺析三維魔方加密算法

例如輸出密鑰的形式為oy2 wxwzqyqxuy0zw。其中o代表偏移量,o后面的字符才是真正 的密鑰,斷句為:ywxwzqyqxuy0zw,其實際意思為:y(w -o)x(w-o)z(q-o)y(q-o)x(u-o)y(0-o)z(w-o)=y8x8z2y2x6y(-24)z8。如果出現(xiàn)負數(shù),如y(-24), 就將其加33,這樣就等于y9。所以三維魔方加密算法自動生成的密鑰為:y8x8z2y2x6y9z8。這樣改變了密鑰的輸出形式,就擴大了密鑰的輸入限制,如果用窮舉搜索法搜索密鑰的話,就需要花更長的時間。