主要组成部分:
1.键盘:输入明文
2.灯盘:在键盘上输入一个字母,会有相应的字母亮起来,代表被加密后的字母
3.转子:加密的核心,后边会详细讲
4.插线板:为提高安全性增加的装置,后边会讲

加密核心:转子

转子有两面,分别有26个点对应26个字母,转子两边的26个点用了26条导线连接起来,但是左边的A不和右边的A相连,上图中右边的杂乱的导线实现了这种对应关系,我们可以将其看作是我们最开始提到的单表替换。
也就是一个转子代表了一个单表替换关系。左边输入明文,右边输出对应的单表替换的密文。
恩格玛机使用了三个转子串联起来了.


三个转子串联,第一个转子的输出作为第二个转子的输入,第二个转子的输出作为第三个转子的输入。

举例:
A经过三个转子加密就变成了T。由于三个转子都是可以转动的,上图的中的箭头实际上是触点,并不是导线连死了,比如转子二向上转动一格,第一个转子的输出R就对应到了第二个转子的输入F上了,最后经过加密为:A->G->F->k->L->w.

由于每个转子都有26中可能的位置,所以三个转子一共可以提供26X26X26=17576个不同的密码表。三个转子有六种不同的排列方式,所以密码表的数量又增加到了17576X6=105456.

后面又增加了上面图片中的插线板,将密码数量进一步增大了1000亿倍(插线板的原理稍后介绍)。

参考:https://blog.csdn.net/darmao/article/details/84504457

恩格玛密码机的工作原理相关推荐

  1. python编程挑战——使用python实现恩格玛机(1)

    想起一个好玩的事情,使用python来实现德军在二战时加密的设备--恩格玛机. 那么什么是恩格玛机,他是怎么工作的?这篇文章提供了很详细的说明: https://www.zhihu.com/quest ...

  2. 单表恩格玛机的源码实现

    最近看了一部电影,叫<模仿游戏>,主要讲的就是二战期间图灵破解德军通讯密码的故事,最后的意义是导致二战提前两年结束,拯救了至少1400万人的生命.然后自己一时兴起就写了一个单表随机排列的恩 ...

  3. Enigma Sim-英格玛密码机模拟器

    Enigma Sim是一款Enigma(英格玛)密码机模拟软件,能够对信息进行多表代换加密.该模拟器高度还原了二战时期德国所使用的三种型号Enigma的功能和细节,转子和反射器所对应的字母代换表都参考 ...

  4. 路由和交换机工作原理

    路由器与交换机的工作原理 计算机网络往往由许多种不同类型的网络互连连接而成.如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种"互连"并没有什么实际意义.因 ...

  5. 晶体三极管如何工作的?不,我是问它的真实工作原理

    简 介: 本文节选自 WILLIAM J. BEATY 在1995年写的一篇博文: HOW DO TRANSISTORS WORK? NO, HOW DO THEY REALLY WORK? ,他就自 ...

  6. 前端必读:浏览器内部工作原理

    前端必读:浏览器内部工作原理 作者: Tali Garsiel  发布时间: 2012-02-09 14:32  阅读: 2133 次  原文链接   全屏阅读  [收藏]   http://kb.c ...

  7. 计算机生活工作原理,计算机基本工作原理是什么?

    在介绍计算机的工作原理之前,首先了解一下什么是计算机指令. 简单的理解,指令指的是能被计算机识别并执行的二进制代码,它规定了计算机能够完成的某一种操作.一条指令通常由 2 部分组成,分别是操作码和操作 ...

  8. 现代浏览器的工作原理

    英文原文:Tali Garsiel,编译:zzzaquarius 简介 浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工 作原理,我们将看到,从你在地址栏输入google.com到你看到goo ...

  9. 详细解读神经网络十大误解,再也不会弄错它的工作原理

    来源:http://www.cstor.cn/textdetail_10544.html_biz=MjM5OTA1MDUyMA==&mid=407358558&idx=2&sn ...

  10. 【转载】现代浏览器的工作原理

    原文:http://taligarsiel.com/Projects/howbrowserswork1.htm 编译:zzzaquarius  http://blog.jobbole.com/1274 ...

最新文章

  1. $g.$utils.实用工具类
  2. 有效用例模式阅读笔记三
  3. 支付宝支付 第六集:生成支付二维码
  4. 贝叶斯估计和最大后验估计
  5. 子网划分以及子网掩码
  6. 计算机英语反思总结,计算机在英语教学中辅助作用的反思
  7. Python3.6 deep learning first step
  8. sqlserver 判断字段是否为空字符串或者null
  9. 一些比较隐秘的OJ的网址
  10. 拓端tecdat|python隶属关系图模型:基于模型的网络中密集重叠社区检测方法
  11. 微型计算机控制技术第三版第四章课后答案,微型计算机控制技术第4章习题答案.doc...
  12. web前端常见浏览器兼容性问题以及解决技巧
  13. php temp 删除,c盘temp文件夹可以删除吗
  14. 各种显示接口DBI、DPI、LTDC、DSI、FSMC
  15. 部署基于SAWP的低成本开源CRM系统
  16. IT狂人职场路:揭秘华为百度高管如何炼成?
  17. 计算机图形学6--讨论多边形
  18. 爪哇国新游记之十五----泛型动态数组类
  19. 书籍 -- 《高性能MySQL》持续更新中(四)
  20. 奈何桥上经过的地方,看醒了多少人

热门文章

  1. 有些参考文献找不到页码和期号怎么解决?
  2. ios设备的弹窗页面,光标错位,光标乱跳
  3. CW测速雷达原理介绍
  4. 用大于一素数的最小素数替换4*4矩阵中的素数
  5. linux 文件 内容 并集,Linux 两个文件求交集、并集、差集
  6. c语言制作用户登录界面,【C语言开发】登陆界面
  7. 两个方法告诉你如何将qlv格式的腾讯视频转换为mp4格式
  8. 安全高效的中小型网络
  9. c语言实现二阶行列式计算,新手作品:行列式计算C语言版
  10. 深度学习名词(中英文对照)