三维魔方加密算法的思路来源于魔方,是基于一个立方体来作加密和解密的换算。网络中的信息较多的是以文本形式存在的。

三维魔方加密算法对文本的加密和解密。具体步骤如下:

设定x、y、z为三维空间的三条坐标轴,选择需要被加密的文本,根据被加密文本的大小,决定x、y、z的最小阶数(阶数是魔方的边长)m,这样就形成了一个三维的立方体。

加密过程:将文本中的内容依次排列到魔方中,每个字符都有固定的位置(Xi,Yi,Zi)(0≤i≤m)。如果用户设定的阶数大于文本的最小阶数m,那么魔方中剩下的空间里存放的是空格。输入密钥,密钥的格式为:ababab……其中a代表x、y、z中的任意一个,b代表数字,1表示第1阶,2表示第2阶,3表示第3阶,以此类推。两者合起来表示,将魔方以a代表的轴的第 b阶顺时针旋转90°。

浅析三维魔方加密算法

例如,现在输入密钥为x1y2z3,即魔方以x轴为中心的第1阶绕90°,以y轴为中心的第2阶绕90°,以z轴为中心的第3阶绕90°。一个3阶的魔方,A、B、C代表明文中的字符。密钥x1对应的旋转魔方以x轴为中心的第1阶绕90° (如图所示),其他类似。经过密钥对应的所有旋转完成,A、B、C三个字符顺序将被打乱,分别在不同的面上,得到加密是密文,显示为乱码。在魔方算法中,密钥的长度是随机的,可以ababab,也可以 ababababab,以此类推,密钥长度越长,旋转的次数越多,文本 排列的越乱。另外,如果用户将阶数扩大,即魔方的长度变长,那么扩大的阶数排列着空格,这些空格在旋转过程中也被排列到文本中,这样得到的密文包含着空格,文本排列的顺序也越乱。

解密过程:如前所述,三维魔方加密算法是一个对称算法,因此它的加密和解密使用的是同一个密钥。解密过程就是加密算法的逆运算。在密钥的生成部分,笔者引用了三十三进制,即0~9,a~w共33个字符。这样就扩大了密钥的空间,增加了密钥的数量。

浅析三维魔方加密算法

例如输出密钥的形式为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。如果出现负数,如y(-24), 就将其加33,这样就等于y9。所以三维魔方加密算法自动生成的密钥为:y8x8z2y2x6y9z8。这样改变了密钥的输出形式,就扩大了密钥的输入限制,如果用穷举搜索法搜索密钥的话,就需要花更长的时间。