当前位置: 首页 > news >正文

密码是什么(三):多表代替密码

单表代替密码出现的年代,数学的发展还比较落后,人们对于统计、概率的认识还不深,唯一的破译方法就是猜测,结合文字和语言的特点进行关联性的猜测。但这个工作量太大了,当时又没有计算机,甚至连纸都没有(中国的造纸术12世纪才传入欧洲),总不能拿着树枝在土地上穷尽猜测这些字母吧!

16世纪,文艺复兴开始了,各种各样的文化、艺术、自然科学开始蓬勃发展,欧洲的外交、军事交流开始频繁,传统的密码已经无法满足保密性的需求了。

特里特米乌斯密码方阵

在意大利,有一个叫约翰尼斯·特里特米乌斯的修道士兼密码学家,开始想对单表代替密码动动手脚了。他寻思:既然只用一张代替表,无法掩盖字母的频率特性,那我多用几张表行不行?第一个字母用第一个代替表,第二个字母用第二个代替表......,这样字母的频率特性不就被掩盖掉了吗?

于是,这位老兄设计了这样一张26×26的字母方阵:

表格的每一行都相当于一个代替表。加密的时候,第一个明文字母用第一行代替表(实际上代替完还是自己),第二个字母先从第一行找到这个字母,然后用第二行同一个位置的字母代替,之后都类似。举个例子:

明文“MEET” →

M(第1位)→ 第1行M列 → ‌M‌

E(第2位)→ 第2行E列 → F‌

E(第3位)→ 第3行E列 → G‌

T(第4位)→ 第4行T列 → W‌

输出密文:‌MFGW

用不同的多张代替表来替换明文,同样的字母就被替换成了不同的形态,文字频率特性和跟随特性就都被掩盖掉了。但是,这种相对比较固定的变换方式,也存在很大的风险隐患:如果每一次传递的消息内容格式相对固定,比如说明文消息的开头总是time、date、to Alice之类内容,那么密文的开头也都是相似的,密文消息数量很多的情况下,这种规律可以被用来回推代替表。‌

贝拉索密码

对于特里特米乌斯字母方阵的缺陷,意大利的另外一位密码学家吉奥万·巴蒂斯塔·贝拉索又开始琢磨,特老兄的方阵太有规律了,为啥非要按照顺序使用这些代替表呢?能不能我自己选择一些表,自己确定一个顺序?于是,贝拉索引入了可变密钥‌,用一个“密钥”,来选择一次加密所使用的代替表,例如密钥为“key”选择第k行、第e行、第y行3行代替表,并按照这个顺序依次替换明文信息。还用上面的例子:

明文“MEET”,密钥“key” →

M(第1位)→ 第k行M列 → W‌

E(第2位)→ 第e行E列 → I‌

E(第3位)→ 第y行E列 → C‌

T(第4位)→ 第k行T列 → D‌

输出密文:WICD

发送消息的加密方和收到消息的脱密方必须事先约定每一次的“密钥”,才能够正常加脱密,得到正确的信息。贝拉索引入“可变密钥”的密码,他算是多表代替密码的真正发明者。

维吉尼亚密码

后来,法国的一位外交家布莱斯·德·维吉尼亚在贝拉索密码的基础上进一步改进,采用‌自生密钥(Autokey)‌:初始密钥加密后,‌后续密钥由明文字母自动延伸,还是用上面的例子:

明文“MEET”,初始密钥“key” →

M(第1位)→ 第k行M列 → W‌

E(第2位)→ 第e行E列 → I‌

E(第3位)→ 第y行E列 → C‌

T(第4位)→ 第t行T列 → M‌(用明文字母来选择代替表的行)

输出密文:WICM

这样,就解决了密钥短,代替表重复使用的问题,进一步增加了破译的难度,增强了多表代替密码的实用性和安全性。对于维吉尼亚的这一贡献,人们把维吉尼亚密码作为多表代替密码的典型代表。

多表代替密码的缺陷

如果密钥比较短,代替表就存在周期性重复使用的问题,如果明文中也存在一些重复或跟随特性,就会在密文中体现出来。例如,英文中经常出现th、qu、an、er、the等字母组合,如果统计密文字母中相同2字母组合或3字母出现的间距,出现最多频次的间距,说明代替表重用了,有可能就是代替表的数量。然后就可以按照这个数值,把多表代替密码分解成若干单表代替密码进行破译了。

相关文章:

  • 1991-2024年上市公司个股换手率数据
  • C++模版初阶
  • 存储性能委员会(SPC)
  • 管理学院权限管理系统开发总结
  • 产品数字化与三维可视化:为工业领域打造高效服务新引擎
  • Python自动化机器学习平台库之mindsdb使用详解
  • vue的<router-link>的to里面的query和params的区别
  • JAVA后端开发——多租户
  • 力扣 1456. 定长子串中元音的最大数目 的多解
  • 【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变板
  • 一般视频剪辑的硬盘配置是什么
  • 什么时候用GraphRAG?RAG VS GraphRAG综合分析
  • 【西门子杯工业嵌入式-7-OLED】
  • 第二章 感知机
  • 火山 RTC 引擎10 ----远端视频 转网易视频格式
  • Houdini POP入门学习07 - 分组
  • 算法岗面试经验分享-大模型篇
  • 学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
  • 软件开发工程师如何在项目开发中了解学习 ISO 13485
  • WPS2024 软件下载及安装教程!
  • 图片摄影网站/百度一下电脑版网页
  • 重庆网站推广免费软件/惠州seo关键字优化
  • 模板网站怎么建设优化/seo是什么意思网络用语
  • 网站怎么做外链接地址/万江专业网站快速排名
  • 昆明学习网站建设/站长工具app官方下载
  • 工程建设国家标准网站/排名优化公司电话