Enigma机密码加密解密的实现


二战时期,德军使用了一套名为Enigma的密码系统,是一种基于字符映射的密码系统。它的工作原理如下:

使用者从键盘按下一个字母后,字母会先经过三个可以转动的轮盘,称为转子,每个转子就是一个字符映射表。如:

输入

A

B

C

D

E

输出

D

E

A

B

C

一个转子的输出作为下一个转子的输入。当经过第三个转子后,输出会被送入到一个反射器。反射器和转子一样,区别在于不能转动,且映射是对称的,即如果输入c1会输出c2,那么输入c2将输出c1。经过反射器后,字母会依次反向进入三个转子,并最终显示在显示盘上。至此算完成了一个字母的加密。当加密下一个字母时,第一个转子会转动一格,转子的转动代表着映射表发生变化。如上表在转动后将变成

输入

A

B

C

D

E

输出

E

A

B

C

D

当转子转动一周再次回到初始位置时,会带动第二个转子转动一格,同理第二个转动一周后,会带动第三个转子转动。(第三个转子本题中不考虑。)

本题中的三个转子和反射器的结构如下:

转子A:QAZWSXEDCRFVTGBYHNUJMIKOLP

转子B:QWERTYUIOPASD

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值