陈欢 陶长健 黄郅 黄梓 李珂 黎莹冰
在当今拥有大数据的网络环境中,对于数据与隐私进行有效的保护与加密已然是重要的课题,本文对密码的设计进行探究,最终在加密与解密过程中针对Hill密码体系的安全性进行考量,综合线性映射与矩阵理论,通过讨论哑元的位置、个[z3] 数这两个不同的情况来讨论设计密钥的方法,最终分别针对哑元位于明文矩阵的任意一列、任意一列的末尾和哑元个数为2个及以上时提出了3种方案,以探究Hill密码加密的安全性、稳定性以及解密结论的准确性。
Hill密码 矩阵 加密与解密 哑元
Dummy Element Selection of Third Order Matrix in Hill Encryption
CHEN Huan TAO Zhangjian HUANG Zhi HUANG Zi LI Ke LI Yingbing
(Guangxi Normal University[z5] , Guilin, Guangxi Zhuang Autonomous Region, 537000 China)
In today's network environment with big data, effective protection and encryption of data and privacy has become an important topic. This paper explores the design of cryptography, and finally considers the security of Hill cryptography system in the process of encryption and decryption, integrating linear mapping and matrix theory. By discussing the position of the dummy, the number of the two different situation to discuss key design method, finally we respectively for dummy in clear any column of the matrix, and at the end of a column of dummy number for two or more puts forward three kinds of solutions, to explore the Hill password encryption security, stability and the accuracy of the decryption conclusion.
Hill password; Matrix; Encryption and decryption; Dumb meta
在擁有大数据的新型网络环境下,合理利用密码,对数据与隐私进行合理有效的保护已然成为一个重要的课题。密码学中的Hill密码的实现主要是利用了代数的取模、求余以及矩阵理论,如当明文为英文时,其算法可描述为:将26个英文字母和空格以一定规则排序,并对应以整数0~26编码,取编码的基数mod=27,一种常见编码规则见表1。
对照表1,将明文转化成对应矩阵形式,利用密钥矩阵左乘明文矩阵,便可得到加密矩阵。将加密矩阵根据表1翻译得到密文,而后传递给乙方。乙方利用密文对应的解密矩阵左乘接收到的加密矩阵,再对照表1进行翻译,便可破译得到原明文内容。
本文参考了《Hill密码体系中的加密矩阵与哑元》中密钥矩阵的选取以及加密算法的改进方式,即:密钥矩阵采用3阶可逆下三角矩阵形式,明文或密文的哑元取表1中任意元素。在此基础上,针对哑元不同的摆放位置对Hill加密、解密过程进行可行性探究。
1Hill密码加密、解密过程及不足之处
下面通过一个详细例子来对Hill密码加密、解密过程进行阐述。
假设需要传送的信息为(∪为空格):
S=guangxi∪∪shida(广西师大)
通过查字母、空格编码表将明文信息转化为如下数字序列:
乙方将收到的信息S3同样按照3个数据为1列的方式转化为矩阵D,在矩阵D最后一位补充一个哑元*,其中*可取0~26内任一整数值。用解密矩阵C左乘矩阵D后,可得到一组数字序列S4,对照表1进行翻译,最终解出结果舍弃最后一位,可接收到准确的明文信息:
S4=guangxi∪∪shida(广西师大)
对于上面的例子而言,尽管明文加密与密文解密过程以及结果是无差错的,但是只在明文矩阵最末一位取哑元的方式过于简单,从而使得明文容易被第三方破译。因此为了提高加密、解密过程的安全性与复杂性,下文将会进行对哑元位置选取的多情况探讨。
2哑元位置选取的改进方案
当明文矩阵只有一个哑元,且该哑元位于明文矩阵的任意一列末尾,若解密者解密时舍弃的字母与哑元位置一样,解密时哑元的取值不影响解密结果。
在mod=27的意义下,得到具有15个字符的信息串,舍弃倒数第四个字符后的密文信息为:
S= nvsaiwrirkcrmi
将这段字符作为密文发送给乙方,乙方接收后将这一信息转化为第四列最末尾含哑元的密文矩阵,再用解密矩阵C对密文进行解密,其中解密矩阵C为:
对照表1翻译并舍弃解密所得字符串的倒数第四个字符后得:
S=guangxi∪∪shida(广西师大)
与原明文信息S1对比,完全相同,解密成功。
再用同样方式将哑元放置在明文矩阵第三、二、一列的最末端位置,按照上述方法进行加密、解密,最终均可得到准确的明文信息。因此在明文以3阶矩阵形式表达的情况下,该哑元选取以及算法优化方案具有可行性。
当明文矩阵只有一个哑元(取0~26中任一整数),且该哑元位于明文矩阵的任意一行末尾时,若密文矩阵中哑元选取的数字为:密钥矩阵左乘明文矩阵后所得乘积矩阵对应位置上的数字k,且乙方解密时舍弃的字母与哑元位置相对应,则解密结果不变。
以例1中明文的加密为例,若将哑元放到明文矩阵的第二行末端,可得到以下矩阵:
取*=k(k为0-26中的任一整数),左乘密钥矩阵B:
密钥矩阵左乘明文矩阵后得到的乘积矩阵P为:
将乘积后的矩阵在mod=27意义下翻译,并忽略第二行末端对应字母,得传输给乙方的密文:
S=nvsaiwrirkcghn
乙方得到密文S6后,将信息转化成第二行末尾含哑元的密文矩阵,哑元取k=17,再用解密矩阵C对其进行解密、翻译,得到字符串后舍弃倒数第三个字母,可得准确的明文,即:
S=guangxi∪∪shida(广西师大)
当哑元选取位置在第一行末段时,我们运用上述加密、解密的方式同样可以取得正确的信息,因此可以利用这一方案对Hill密码的运用进行优化。
密钥矩阵选取n+2阶可逆矩阵,且满足第1至n行的最后两个元素为0,明文或者密文矩阵最后一列末尾的2个哑元选取表中的任意元素。那么加密解密时,明文的加密信息或密文的解密信息就不受哑元选取的影响,哑元就可以任意取。
下面通过一个例子经行阐述,要传递的信息为(为空格):
S=guang∪xi∪shi∪fan(广西师范)
查字母、空格编码表将明文信息转化为如下数字序列:
补上两个哑元,转化为一个3行6列的明文矩阵:
在明文矩阵A中,哑元可以取字母、空格编码表中的任意元素,假设取*=14,左乘密钥矩阵:
在mod 27的意义下,得到具有18个字符的密文,舍弃密文最后两个字符后的密文信息为:
对密文经行解密(解密矩阵左乘密文矩阵)。这时密文的哑元可任意选取字母、空格编码表中的元素,舍弃解密所得字符串的最后两个字符后的明文信息为:
与原明文信息S对比,完全相同,解密成功。
通过上述示例,可以得知当明文或者密文矩阵末尾有两个哑元,且n+2阶的密钥矩阵1至n行末尾两个元素都为0,哑元任意选取字母、空格编码表的元素时,Hill加密解密能够成功。
下面来证明一般性结论:当密钥矩阵取n+2阶可逆矩阵,且满足第1至n行的最后两个元素为0,明文或者密文的哑元取表中的任意元素时,Hill加密解密成功。
解密成功,故此方案可行。
同時还可以观察到,有下三角矩阵恰巧符合方案1中假设的密钥矩阵的特征,也是因此当使用下三角矩阵作为密钥矩阵时Hill总能加密解密成功。
由上述证明已知,因最终解密获取明文信息时需要去除掉密文中哑元相应位置译出的信息,为排除哑元在解密过程中对翻译明文信息造成的影响,当明文矩阵有2个哑元时,只需要保证n+2阶的密钥矩阵符合1至n行的最后两个元素均为0,即可在最后的解密中获得正确的明文信息。而这样的规律也同样适用于多个哑元的情况:
对于任意行数为m(其中m=m+k)的明文矩阵,当最后一列末尾的哑元个数为k个时,密钥矩阵选取n+i阶的可逆矩阵,且密钥矩阵1至n行的最后k个元素均为0,即:
3结语
本文针对Hill密码加密、解密过程中三阶矩阵的哑元选取方案进行优化,在前辈们的基础上提出了更新的解决方案,即3种哑元选取的方式,在最后一种方案里,将其形式扩展到了k个哑元的情况上,使得哑元选取的形式以及方案更为广泛。