密码学基本原理和发展——近代密码学

news2024/11/24 20:12:45

目录

1 密码机通信模型

2 Enigma密码机构造

3 Enigma密码机加解密过程

3.1 加密过程

3.2 解密过程

4 Enigma密码机的安全性

5 Enigma密码机破解

5.1 波兰雷耶夫斯基破解

5.2 图灵破解



       近代密码一般指20世纪初~20世纪70年代期间的密码技术。20世纪初电报的出现第一次使远距离快速传递信息成为可能, 它实现了远距离通讯的即时传输,但是也带来了新的安全问题,为保证每条信息的安全,需要给每条信息加密,随着一战的爆发,也进一步促进了密码技术的发展。近代密码利用电子和计算机技术设计出更加复杂的密码体系,虽然技术上有了很大进步,但并未形成理论体系,该阶段基本加密原理仍然和古典加密原理类似,仍然是替代及置换的基本原理,但是因为应用到了机电技术,近代密码体制的替代/置换方式从古典密码的单表代换转变为多表代换,这使得人工破译密码的成本变得极高。

       这里介绍以恩尼格玛(enigma)密码机为代表的转轮密码机Enigma密码机1918年由德国人亚瑟·谢尔比乌斯发明,随后被应用于军事,最终被英国人破译,Enigma密码机的发明是密码学发展史上的一次飞跃,密码学就此进入机械密码时代。

1 密码机通信模型

图1 密码机通信模型

       发送者和接收者各自拥有一台enigma。发送者用enigma将明文加密,将生成的密文通过无线电发送给接收者。接收者将接收到的密文用自己的enigma解密,得到明文。发送者和接收者会事先收到一份叫国防军密码本的册子,它记录了发送者和接收者所使用的每日密钥,发送者和接收者需要分别按册子的指示来设置enigma。

2 Enigma密码机构造

       Enigma密码机是一个装满复杂精密元件的盒子,主要包括键盘(26个)、转轮(3个)、显示灯(标注了同样字母的26个小灯)和接线板,如下图所示。

图2 Enigma密码机外观

       本章节开始我们讲到了轮转密码机的加密原理其实也是置换,即通过一定的置换方式将明文置换为密文,下图显示了当按下键盘的A键时,使灯盘D亮的电流示意图,即将A置换为D的过程。

图3 Enigma电流流动线路图

       电流从电池(1)通过双向键盘开关(2)进入插板(3)。接下来,它穿过三个/四个已安装的转子(5)的布线,并进入反射器(6)。反射器通过完全不同的路径将电流返回,通过转子(5)和进入轮(4),流经连接有电缆(8)的插头“ S”(7)和插头“ D”,再通过另一个双向开关(9)点亮相应的灯。

       如果转子的作用仅仅是把一个字母简单的换成另一个字母,那么在一千多年前就能通过字频法破译,Enigma密码机的巧妙之处在于其核心部件——转子,其构造如下图所示。

图5 转子构造

        通过键盘键入一个字母时,第一个转子会转动1格,所以当连续键入26个字母时,第一个转子正好转动26格(即1圈),此时第二个转子转动1格,连续键入26*26个字母时,第一个转子转动26圈,第二个转子转动1圈,连续键入26*26*26个字母时,第一个转子转动26*26圈,第二个转子转动26圈,第三个转子转动1圈。这种机制利用不同齿轮的传动比原理,类似于秒针、分针和时针的转动。通过第一章维吉尼亚密码的学习我们知道这种三转子的组合密钥长度为26*26*26,理论上只要信息长度低于密钥长度时,便无法破解。

       接下来讲下为什么输入信号A,经过转子和反射器后会输出信号H,每个转子两侧都有26个引脚和26个触点,上一个转子的触电与下一个转子的引脚与下一个转子的触点连接,如下图所示。

图6 转子内部结构拆分

              

       如果输入信号A,转子内部电流信号流转如下图所示。 

图7 第一次输入A信号流转图

       再次输入信号A时,Right Rotor转动一格,剩下的两个转子不动,其内部电流信号流转如下图所示。

图8 第二次输入A信号流转图

       Enigma最左侧的设备是一个“反射器”, 它将最后一个转子的其中两个触点连接起来,并将电流沿一个不同的路线导回。这就使加密过程与解密过程变得一致,因此,使用两台配置相同的机器,一台可以用于加密信息,另一台用于解密信息,而无需使用庞大的机制在加密和解密模式之间进行切换。但是,反射器也使恩尼格玛具有了如下性质:加密后得到的字母与输入的字母永远不会相同。这在概念上和密码学上都是一个严重的错误,这个错误最终被盟军解码人员利用。

       B站上有enigma密码机演示视频,感兴趣的可以b站上搜索观看,能够更直观的了解enigma密码机的工作原理。

3 Enigma密码机加解密过程

3.1 加密过程

       发信人首先按照约定好的规则插好接线板并设置好转子初始位置,也就是设置好enigma密码机密钥。接着依次通过键盘键入明文,并把灯泡亮的字母记录下来便得到了密文,最后将密文发通过电报方式送出去。

3.2 解密过程

       当收信人接收到密文后,使用相同的enigma密码机并设置好发信人相同密钥。接着依次通过键盘键入密文,并把灯泡亮的字母记录下来便得到了明文。

4 Enigma密码机的安全性

       Enigma密码机的本质是一种多表替换,我们之前学习过的凯撒密码和维吉尼亚密码也是替换密码,但后两种密码我们知道会有字母频率的漏洞,主要因为他们的加密都是使用的同一张密码表,而Enigma密码机每加密一个字母,就会转动一下,相当于换了一张密码表,基本可以做到加密一个字母就更换一次密码表并且不重复,所以无法通过高阶字频分析来破解Enigma密码机,只能通过枚举来破解了。我们可以通过数学概率的计算方法来计算enigma具有的所有字母映射的可能性,从而评估其安全性。

       若密码机由三个转子组成,则三个转子的初始位置,一共有 P1= 26*26*26=17576种组合;

三个转子不同相对位置有P2=6种组合;

       ​插线板由26个孔位,最多可以插13根线,以插10根线来举例计算,那么共有

       所以总的密钥空间P=P1 *P2 *P3≈1.5*1019,密钥一般每次或者每日根据密码本来更新,信息发送方每使用Enigma密码机加密一条信息时,都要按照密钥来初始化密码机,同理信息接收方每次也要使用相同的密钥来解密信息。

5 Enigma密码机破解

       Enigma加密机可以称得上是古典密码阶段的巅峰,由于其巨大的密钥空间,使用完全依靠人工枚举破解几乎不可能。虽然enigma加密算法非常强大,但是其本质也是一种较为复杂的密码替换,与凯撒密码及维吉尼亚密码本质上没有差异,其安全性是依赖于巨大的密钥空间,与Enigma密码机同时期的计算机械破解Enigma密码的难度极高。

5.1 波兰雷耶夫斯基破解

       Enigma密码机早期被认为是无法破解的存在,英法等国一开始便放弃了enigma密码机的破解,而波兰由于地理位置处于德国和苏联之间,与两国关系都不好,且德国与苏联也互相虎视眈眈,处于中间的波兰具有非常严重的危机感,波兰当局表示enigma密码机无论如何都得破解,在语言学家表示对enigma密码机无从下手时,波兰当局请到了数学家参与enigma密码机的破解工作,数学家雷耶夫斯基、罗佐基和佐加尔斯基就承担起早期enigma密码机破译工作。

       早期德国人为了增加密码机的安全性,设置了双重加密,即当日密钥+信息密钥组合形成最终密钥,如当日密钥为ABC,信息发送方先将转子拨到ABC,然后随机想三个字母(假设为DEF,DEF被称为信息密钥),加密DEF后得到密文(假设为MCL),接下来将转子拨到DEF,开始正式写信,具体过程如下图所示。

图9 双重加密过程

       所以真正加密信件内容的其实是信息密钥(DEF),所以收件人需要知道信息密钥(EDF)后才能解密。问题是信息密钥是发送者每天拍脑袋想出来的,接收者是如何知道信息密钥的呢?这就需要双方约定好将信息密钥加密后的密文MCL写在每封信的开头。由于enigma是对称加密的,所以接收者只需用每日密钥(ABC)将信件开头的MCL解密便得到发送者拍脑袋想出来的信息密钥(DEF),接下来用信息密钥进行解密即可,具体过程如下图所示。

图10 双重解密过程

       如此一来,每日密钥虽然只有一个,但是信息密钥每次确是不一样的,所以即使一天发送100封信,就对应100个信息密钥,这大大增加了人工破译难度。

       但是德国人有个习惯,就是将重要的事情说两遍,所以每封密信的开头6个字母中,是由2个信息密钥组成的,如下所示。

       明文的D被加密为M/H、E被加密为C/A、F被加密为L/Q,也就是说密文的第1个和第3个字母是由同一个明文字母加密得到的、第2个和第4个字母是由同一个明文字母加密得到的、第3个和第6个字母是由同一个明文字母加密得到的,雷耶夫斯基正是根据这一线索发现了Enigma置换群方程,设计出了用来收集数据的“炸弹机”(Bomba),这也是人类首次将严格的数学化方法应用到密码破译领域,炸弹机可以在数个小时内破解出密钥,具体的分析步骤本文不再赘述,感兴趣的可以关注b站UP主“Ele实验室”,讲解和动画演示都非常深刻且易理解。

5.2 图灵破解

       由于雷耶夫斯基利用社会工程学的方法,破解了enigma密码机,但是这种方法也十分脆弱,一旦德国人修补上这个漏洞或者升级密码机,雷耶夫斯基的破解方法就难以适用。在绝对的军事实力面前,德国闪击波兰,一个月后波兰沦陷,雷耶夫斯基等“波兰密码三杰”也被迫逃亡,战后雷耶夫斯基几经流转后回到波兰一所中学任教,鲁日茨基和佐加尔斯基则在逃亡途中不幸遇难,令人唏嘘。1980年雷耶夫斯基在华沙去世,安葬在波兰的Powazki公墓,2000年,波兰政府向“波兰密码三杰” 追授波兰最高勋章。

       波兰沦陷后,破解enigma密码机的任务交到了英国人手里,在德国人改掉重要事情说两遍并且使用多五转子enigma加密机后,雷耶夫斯基的破解方法就变得极其被动,图灵受雷耶夫斯基的启发,图灵破解Enigma密码破译思想是利用Enigma密码机自反特性,若某一位从来没有该字母,那么明文该位困可能就是该字母,再结合德军发送报文的特点猜测报文首句明文(如早上6.05分发送天气预报,猜测首句明文有wetter,也被称为已知明文攻击),由此构造明文密文对应关系和字母循环圈,图灵团队甚至造出一台bomb machine来专门破解恩尼格码密码,bomb machine如下图所示。bomb machine从原理上不受限德国人重要事情说两遍的限制,且得到丘吉尔的大力支持,英国提供给图灵的人力和物力资源都不是波兰提供给雷耶夫斯基的资源能比的。图灵设计制造的bomb machine原理这里也不再赘述,感兴趣的可以看b站Ele实验室。

图11 图灵炸弹机

       Enigma曾被誉为不可破解的密码,尽管现在看来Enigma密码机的破译方法很多,但其光辉不可磨灭,它所代表的着加密的理念对于加密算法有着深远的影响。

       从公元前404年到20世纪70年代,从滚筒密码到enigma密码机,从单表替换到多表替换,从凯撒到维吉尼亚,再到雷耶夫斯基和图灵。人类使用密码的历史几乎与使用文字的时间一样长,人类已在加密与解密之间相互纠缠了数千年,未来亦是如此,基于共钥密码学的现代加密技术正熠熠生辉,而以区块链和量子加密等加密技术也悄然来临。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/558803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速上手项目1:基于FaceNet的人脸识别项目

快速上手项目1:基于FaceNet的人脸识别项目 说明 ​ 本来想自己复现一下facenet的,但是发现facenet已经被做成了python的第三方库,于是自己用了用,发现挺简单的,然后又看了看源码,感觉模型架构实现部分很简单…

说说 HWND_TOP 和 HWND_TOPMOST 的区别

初看上去,HWND_TOP 和 HWND_TOPMOST 有点类似,但是实际上在调用 DeferWindowPos 或者 SetWindowPos时,它们之间的差别还挺大。 在同级窗口的维护机制中,有一个概念叫做 Z 序 (Z-order) 。出于此讨论的目的,顶级窗口也…

音容笑貌,两臻佳妙,人工智能AI换脸(deepfake)技术复刻《卡萨布兰卡》名场面(Python3.10)

影史经典《卡萨布兰卡》是大家耳熟能详的传世名作,那一首壮怀激烈,激奋昂扬的马赛曲,应当是通片最为激动人心的经典桥段了,本次我们基于faceswap和so-vits库让AI川普复刻美国演员保罗亨雷德高唱《马赛曲》的名场面。 配置人脸替换…

《斯坦福数据挖掘教程·第三版》读书笔记(英文版)Chapter 8 Advertising on the Web

来源:《斯坦福数据挖掘教程第三版》对应的公开英文书和PPT Chapter 8 Advertising on the Web There are several factors that must be considered in evaluating ads: The position of the ad in a list has great influence on whether or not it is clicked.…

Linkage Mapper 之 Barrier Mapper 功能解析(含实际案例分析)

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 大草原松鸡"(Greater Sage Grouse)的Lek Kernals(即HCAs),以及连接、连接障碍和恢复机会效果图: 图片

python+Django音乐播放器网站系统0tr3w

音乐网站系统的后台开发目标是以信息管理系统的管理和开发方法,用目前现有的新技术进行系统开发,提供后台管理员高度友好的界面操作以及迅捷的信息处理。而前台的开发目标是以用户的需求作为主导,提供对用户而言非常友好的界面操作环境以及完…

实时频谱-1.1基本概念

RF信号 RF(射频)是Radio Frequency的缩写,表示可以辐射到空间的电磁频率,频率范围从300KHz~30GHz之间。 中频 IF(intermediate frequency),用来在中频衡量AM或FM调谐器抑制外来干扰的能力,数…

基于springboot在线外卖系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SpringBoot 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:…

You Only Look Once: 革命性目标检测算法论文解析

You Only Look Once 全论文完整翻译 You Only Look Once: Unified, Real-Time Object Detection 摘要 我们介绍了一种名为YOLO的新型目标检测方法。在目标检测的先前工作中,人们将分类器重新应用于执行检测任务。相反,我们将目标检测视为一个回归问题&a…

ChatGPT 的议论文究竟写的怎么样?111 位高中教师告诉你答案

夕小瑶科技说 原创 作者 | 小戏、Python 在 OpenAI GPT-4 发布时发布的《GPT-4 Technical Report》中,其中很吸引人眼球的一部分是 GPT-4 应用于教育领域的出色表现,通过让 GPT-4 去完成美国的 AP 课程及考试,来评估 GPT-4 在多个学科中的性…

WIN提权补丁提权,at,sc,psexes提权

win提权分为web和本地提权 web提权就是getshell后,权限是网站权限,要进行提权 本地提权是本地用户进行提权 本地用户的权限大于网站权限,所以本地提权成功概率比web提权概率大 因为我们做渗透测试,一般都是从网站入侵。所以大…

OpenAI最新iOS版ChatGPT下载使用手册:三步快速下载,支持语音输入和历史聊天记录重新对话(免费、比网页端响应快、亲测可用)

目录 前言ChatGPT移动端与网页端相比的优势步骤一:注册美区Apple id账号步骤二:苹果手机切换appstore id步骤三:下载ChatGPT IOS移动版APP畅玩ChatGPT APP体验总结其它资料下载 ! 前言 北京时间5月19日凌晨,OpenAI重…

散点图(Scatter Plot)

目录 1、散点图 2、随机数据分布 1、散点图 散点图是数据集中的每个值都由点表示的图 Matplotlib 模块有一种绘制散点图的方法,它需要两个长度相同的数组,一个数组用于 x 轴的值,另一个数组用于 y 轴的值 x [5,7,8,7,2,17,2,9,4,11,12,9…

2023最新网络安全面试题大全

2023年快过去一半了,不知道小伙伴们有没有找到自己心仪的工作呀【doge】,本文总结了常见的安全岗位面试题,方便各位复习。祝各位事业顺利,财运亨通。在网络安全的道路上越走越远! 所有的资料都整理成了PDF&#xff0c…

Netty实战(七)

EventLoop和线程模型 一、什么是线程模型二、EventLoop 接口2.14 Netty 4 中的 I/O 和事件处理 三、任务调度3.1 JDK 的任务调度 API3.2 使用 EventLoop 调度任务 四、实现细节4.1 线程管理4.2 EventLoop/线程的分配4.2.1 异步传输4.2.2 .阻塞传输 一、什么是线程模…

Java基础学习---3、堆、GC

1、堆 1.1 概述 1.1.1 堆空间结构 1.1.2 堆空间工作机制 新创建的对象会放在Eden区当Eden区中已使用的空间达到一定比例,会触发Minor GC每一次在Minor GC中没有被清理掉的对象就成了幸存者。幸存者对象会被转移到幸存者区幸存者区分成from区和to区from区快满的时…

如何提高软件复用度,降低项目开发成本?

1、代码基线管控策略 理想的代码复用是我们建立一条主干代码,持续维护下去。面对客户的新需求,需要我们拉一条临时分支来满足客户需求,然后将稳定后的临时分支代码成果回归到主干。这样我们所有的研发成果都可以在一个代码分支上进行追溯&…

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(序章——浅谈单片机以及FreeRTOS)

学习之路主要为FreeRTOS操作系统在STM32F103(STM32F103C8T6)上的运用,采用的是标准库编程的方式,使用的IDE为KEIL5。 注意!!!本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习…

论文解读 | 透过窥镜: 透明容器内物体的神经三维重建

原创 | 文 BFT机器人 随着虚拟现实和虚拟世界技术的发展,博物馆藏品的数字化是一个越来越受关注的新兴话题。世界上许多著名的博物馆都在为网上展览建立自己的数字馆藏。 在这些藏品中,有一种特殊而重要的藏品昆虫、人体组织、水生生物和其他易碎的标本需…

ZooKeeper(一):基础介绍

文章目录 什么是 ZooKeeper?ZooKeeper 发展历史ZooKeeper 应用场景ZooKeeper 服务的使用ZooKeeper 数据模型data tree 接口znode 分类 总结 什么是 ZooKeeper? ZooKeeper 是一个分布式的,开放源码的分布式应用程序协同服务。ZooKeeper 的设计…