淺析三維魔方加密算法

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

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

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

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

淺析三維魔方加密算法

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

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

淺析三維魔方加密算法

例如輸出密鑰的形式為oy2 wxwzqyqxuy0zw。其中o代表偏移量,o后面的字符才是真正 的密鑰,斷句為:ywxwzqyqxuy0zw,其實(shí)際意思為: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)負(fù)數(shù),如y(-24), 就將其加33,這樣就等于y9。所以三維魔方加密算法自動(dòng)生成的密鑰為:y8x8z2y2x6y9z8。這樣改變了密鑰的輸出形式,就擴(kuò)大了密鑰的輸入限制,如果用窮舉搜索法搜索密鑰的話,就需要花更長(zhǎng)的時(shí)間。