信息安全作业:古典密码说明文档

Posted on 2020-11-14 15:17  阿妍  阅读(163)  评论(0编辑  收藏  举报

3218004808 信息安全作业:古典密码

此项目已开源,源码请见:https://github.com/99n/informationSecurity

 

0.项目使用说明:

该md文件对代码文件使用作出说明,对具体实现步骤和原理的说明请见代码中注释。

(0)开发环境说明:

  • 系统版本:Windows 10

  • python版本:python 3.7

    • numpy库

    • math库

  • 软件版本:pycharm 2019.1

(1)项目目录说明:

主目录:

 

 

 

主目录下:

 

  • 3218004808古典密码文件夹:存放代码文件

    • 3218004808古典密码.md:代码文件使用说明

(2)代码使用说明:

  • 3218004808古典密码文件夹中存放有3份代码文件,分别为三个密码的代码文件。

  • 在pycharm中运行,控制台输出。

1.凯撒密码:

规则:采用的是最经典的移位13位

  • 加密结果:

 

 

 

  • 解密结果:

 

 

 

2.playfair密码:

规则:约定以‘I’代替‘J’、重复字符之间加入‘X’

加密结果:

 

 

 

解密结果:

 

 

 

3.Hill密码:

规则:随机密钥矩阵为随机生成的范围在[0-3]的3*3矩阵,

需要注意的是,我使用的是python的numpy模块中生成随机矩阵的方法np.random.randint(0,3,(3,3)) ,其中求逆矩阵 np.linalg.inv('随机矩阵') 时会有概率产生奇异矩阵或带有小数部分的矩阵导致程序错误。只需重新运行直到产生正确的整数逆矩阵即可。

加密与解密结果一次性给出:

 

 

 

解密结果如上图最后三行。