根据立方体进行加密和解密的转换,三维魔方加密算法的思想来源于魔方。网络中更多的信息以文本的形式存在。
三维魔方加密算法对文本进行加密和解密。具体步骤如下:
三维空间的三个坐标轴设置x,y,z,根据加密文本的大小选择需要加密的文本,确定x,y,z的最小阶数(阶数是魔方的边长)m,从而形成三维立方。
加密过程:将文字中的内容依次排列到魔方,每个字有固定位置(Xi、Yi、Zi)(0≤级≤级米)。如果用户设置的阶数大于文字中的最小阶数m,则在魔方剩余空间存放的为空格。输入钥匙,钥匙的格式为:ababab...其中a代表x、y、z中的任意一个,b代表数字,1代表第1阶,2代表第2阶,3代表第3阶,以此类推。两者合在一起表示,以a代表的轴的b阶顺时针旋转魔方90°。
举例来说,现在输入的钥匙是X1y2z3,即以X轴为中心的魔方以X轴为中心的1阶绕90°,以Y轴为中心的2阶绕90°,以Z轴为中心的3阶绕90°。3阶的魔方、A、B、C代表了文本中的字符。关键X1对应的旋转魔方以X轴为中心的1阶绕90°(如图所示),其他相似。在所有与钥匙相对应的旋转完成后,A、B、C三个字符的顺序将被打乱,分别在不同的表面上,密码是密码文本,显示为混乱代码。在魔方算法中,钥匙的长度是随机的,可以是Ababab,也可以是Abababababab,等等,钥匙的长度越长,旋转的次数越多,文本排列就越混乱。此外,如果用户扩大了序列数,也就是说,魔方的长度变长了,那么扩展的序列就是空格的,这些空格在旋转过程中也会被排列到文本中,从而获得的密码包含空格,文本排列的顺序就会变得更混乱。
解密过程:正如前面提到的,三维魔方加密算法是一种对称算法,所以它的加密和解密使用相同的钥匙。解密过程是加密算法的反向运算。在钥匙的产生部分,作者引用了33个进制字符,即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。这样改变了密钥的输出形式,就扩大了密钥的输入限制,如果用穷举搜索法搜索密钥的话,就需要花更长的时间。