Matlab 模拟实现 enigma 密码机。密码机包含三个转子和反射器,满足以下条件:
1. 输入信号从左往右通过各个转子(在到达反射器之前);
2. 根据输入信号的流经次序,从左到右将转子依次标号为转子 1、转子 2、转子 3,并分
别设定为慢速转子、中速转子、快速转子;
3. 转子转动方向为从上往下转动;
4. 每加密/解密一个字母后,快速转子转动 1 位;快速转子每转动一圈,中速转子转动一
位;中速转子每转动一圈,慢速转子转动一位(转子状态从 1 转动到 26 判定为转子转
动一圈,执行上述操作);
5. 各个转子当前的状态由每个转子当前左侧第一个标号表示;
6. 各个转子左侧标号为 1-26 顺序排列,右侧对应标号随机且给定;
7. 反射器中的两两对应关系随机且给定。
示意图如下:
可以看到,对于第n个输入时,它是一一对应的,所以加密和解密算法一样。
MATBLE代码收录于
MATLAB实现Enigma密码机-Matlab文档类资源-CSDN下载