hill密码加解密代码python hill密码解密的详细过程 您所在的位置:网站首页 hill加密算法逆矩阵 hill密码加解密代码python hill密码解密的详细过程

hill密码加解密代码python hill密码解密的详细过程

2024-05-18 20:52| 来源: 网络整理| 查看: 265

二、方案设计

1. 加密过程

首先获取明文字符串,并对明文字符串做预处理,将字符串中的所有空格删除,并将所有字母大写

此外,由于Hill密码要求每次计算时,明文字符的个数需要与密钥矩阵的行数相同,因此需要确保明文字符串的长度是行数的整数倍。所以,长度不足时,使用明文字符串的最后一个字符进行尾部填充

预处理结束后,获取密钥矩阵规模(必须是方阵)以及密钥矩阵元素

在获取到密钥矩阵元素后,需要对文本框内的元素进行矩阵化处理(注意Matlab文本框中需要按列输入矩阵元素),以空格为分隔符将每个元素从文本款中提取出来,并存储到密钥矩阵中,直至最后一个字符

密钥矩阵初始化结束后,可以开始加密。假设密钥矩阵规模为n*n,那么每次加密时,使用n个明文字符与密钥矩阵相乘,得到每次加密后的n个密文字符。以此类推,直至最后一组明文字符也运算完毕。最后将所有组别的密文字符拼接在一起,便得到最终加密后的密文字符串。

2. 解密过程

首先获取密文字符串,由于密文字符串中已无空格以及小写字符的存在,因此无需进行预处理

随后获取密钥矩阵规模(必须是方阵)以及密钥矩阵元素

在获取到密钥矩阵元素后,需要对文本框内的元素进行矩阵化处理(注意Matlab文本框中需要按列输入矩阵元素),以空格为分隔符将每个元素从文本款中提取出来,并存储到密钥矩阵中,直至最后一个字符

接下来需要对密钥矩阵的逆矩阵进行计算。首先计算密钥矩阵的行列式N,随后计算N关于26的逆元I。紧接着,需要确定密钥矩阵的伴随矩阵,计算方式为A=mod(inv(matrix)*det(matrix),26)。最后通过计算逆矩阵,计算方式为De_matrix=mod(NI*Accompanny,26)

计算得到密钥矩阵的逆矩阵后,可以开始解密。假设密钥矩阵的规模依旧为n*n,那么每次解密时,使用n个密文字符与逆矩阵相乘,得到每次解密后的n个明文字符。以此类推,直至最后一组密文字符也运算完毕。最后将所有组别的明文字符拼接在一起,便得到最终解密后的明文字符串。

3. 信息输出

设置两个信息输出函数,分别实现加密界面和解密界面的信息输出

4. 交互界面

基于Matlab2019b中的mlapp编程实现



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有