三维魔方加密算法因其运算速度快、密钥空间大被广泛应用。那么我们今天就来看看三维魔方加密算法是如何给文本文件加密的?

一、三维魔方加密算法原理

三维模仿加密算法的思路来源于魔方,是基于一个立方体来作加密和解密的换算。网络中的信息较多的是以文本形式存在的,因此我们就介绍一下三维魔方加密算法是如何对文本文件加密和解密的。

二、三维魔方加密算法给文本文件加密的步骤

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

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

N维魔方加密算法

(3)经过密钥对应的所有旋转完成,A、B、C三个字符顺序将被打乱,分别在不同的面上,得到加密是密文,显示为乱码。在魔方加密算法中,密钥的长度是随机的,可以ababab,也可以ababababab,以此类推,密钥长度越长,旋转的次数越多,文本排列的越乱。另外,如果用户将阶数扩大,即魔方的长度变长,那么扩大的阶数排列着空格,这些空格在旋转过程中也被排列到文本中,这样得到的密文包含着空格,文本排列的顺序也越乱。

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

例如输出密钥的形式为oy2wxwzqyqxuy0zw。其中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。这样改变了密钥的输出形式,就扩大了密钥的输入限制,如果用穷举搜索法搜索密钥的话,就需要花更长的时间。其过程如图所示。

N维魔方加密算法

本文主要介绍了三维魔方加密算法如何给文本文件加密,但实际上,用户需要加密的不仅仅是文本,也可能是图片、数据库、音频文件、视频文件等,因此,可以将三维魔方加密算法的应用扩展到这些文件上。

小知识之加密算法:

数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。