目录

1 滚筒密码

2 棋盘密码

3 凯撒密码

4 单表代换与多表代换

4.1 单表代换

4.2 多表代换


密码技术最早起源于公元前404年的希腊,此后密码大致经历了古典密码、近代密码和现代密码三个阶段。

古典密码(公元前五世纪~19世纪末)代表性的是滚桶密码、棋盘密码和凯撒密码。

滚筒密码

滚筒密码原理为信息发送者在特定直径的木棒(斯巴达棒)上螺旋缠绕一条羊皮纸,然后在纸上横着写上信息,信息接收者需要将羊皮纸重新缠绕在相同直径的模板上才能读到初始信息,否者字母顺序错位,斯巴达棒利用置换(换位)的方法达到加密的目的。

图1 滚筒密码示意图

因为如果解密木棒直径与加密木棒直径不一致,那么读到的字母组合肯定是不具备特定行业的,所以针对这种情况的加密方法,可以通过不断尝试模板直径,直到出现的字母具有特定含义来破解。

棋盘密码

棋盘密码原理为通过一个5*5的网格矩阵,将每个字母转换成两个数字,第一个数字是该字母的行数,第二个数字是该字母的列数。

\

1

2

3

4

5

1

M

W

C

X

E

2

F

A

Z

I/J

K

3

L

G

S

O

P

4

R

Q

N

T

U

5

V

B

Y

D

H

表1 Polybius矩阵

基于Polybius矩阵的棋盘加密方法,应该是最早的对称加密算法的应用,在那个时代接收方不知道网格矩阵的前提下,想要破解密文还是非常困难的。这种加密方法需要加解密双方事先约定好网格矩阵,后面双方加解密都是基于这个网格矩阵的,如何保证网格矩阵不被泄露存在很大困难。

凯撒密码

凯撒密码是一种替换加密的技术,其原理是将字母按字母表的顺序构成一个字母序列链,然后将最后一个字母与第一个字母相连成环,接着将明文中的每个字母对照序列链正向或者逆向偏移k个单位后,形成密文。这里的字母链可以是按照所有人都知道的adcdefg……xyz的方式构成字母序列链

假设信息发送方以adcdefg……xyz序列链,k=+3进行信息加密,加密演示如下:

明文:Intern,cancel the operation

变换表及偏移量:abcdefg……xyz,K=+3

密文:Lqwhuq,fdqfho wkh rthudwlrq

图2 字母序列链加密示意图

序列链也可以按照加解密双方事先约定好的不具备特定规律的字母排序构成序列链,如sgidqpm……wzu等。

凯撒密码其实也是利用对称加密原理进行信息加密的,这种加密方法同样存在着序列链易泄漏的问题,若窃听者拿到序列链通过枚举密钥k值(1-26)就十分容易破解。

单表代换与多表代换

4.1 单表代换

单表代换是加解密使用同一个固定的代换表进行代换,明文和密文的字母存在惟一对应关系,容易受到频率统计分析攻击。例如恺撒密码和棋盘密码等都属于单表代换。下表为单表代换的字母表,加解密双方持有共同的代换表即可对信息进行加解密。

表2 单表代换

4.2 多表代换

多表代换是加解密使用两个及两个以上的代换表进行代换,例如经典的维吉尼亚密码就属于多表代换,直至二战时期,维吉尼亚密码在整个欧洲依旧有着广泛的应用,下图为维吉尼亚密码表,实际上维吉尼亚密码是由一系列凯撒密码(26个)组成的字母表(当密钥仅为一个字母时,则就是凯撒密码),属于多表密码的一种简单形式。

表3 维吉尼亚密码表

若维吉尼亚密码表中我们使用第一行作为明文,则第一列作为密钥,加密情况如下所下所示。

明文:intern

密钥:khgvsk

密文:suykjx,

明文中n出现2次,而根据密文无法推断出明文中某个字母出现的频次,因此维吉尼亚密码可以抗字频统计破译密码。

图3 字母频次分布图

以凯撒密码为例的单表代换破解:在英语中,每个字母/相邻双字母/相邻三字母出现还可以通过相邻双字母、三字母概率来增加破译概率),例如字母:E>T>A>O>I,如此在文本信息量较大的情况下,若密文中H出现的频次最多,那么大概率密文中的H对应的是明文中的E,这样下来很大概率能计算到偏移量k=3,若字母序列链为adcdefg……xyz,则可直接根据k=3得到如下字母表。


若字母序列链为sgidqpm……wzu等无规律链时,通过密文中字母出现频次同样可以逆向推出对应明文字母,由此求得k值,对字频接近的字母还可以利用k值反馈校验,提高破译的准确度。

以维吉尼亚为例的多表替换破解其实原理也是以字频分析,主要有以下三步。

       第一步:确定密钥的长度

求密钥长度我们以Kasiski 实验的方法来求,现实加密过程中,密钥长度≤明文长度,我们假定密钥长度为K,假定明文长度文l,那么根据维吉尼亚密码表我们知道,第X i,X i+k,X i+2k ······X i+nk (i=1,2,3,···,l)个字母加密方式其实用的同一个凯撒密码加密的,理解了这个后我们接下来看一个实例。

根据维吉尼亚密码表要加密 “The Great Wall in Beijing, the Huangpu River in Shanghai, the Fifth Avenue in Tianjin, and the Presidential Palace in Nanjing.”这样一段信息,为了厘清加密过程中的对应关系,笔者画了下表帮助读者理解。

如上表所示,明文的词组The一共出现了三次,分别对应密文中的dlc、dlc、xfo,这难道是巧合吗?我们分析得到这种对应关系与密钥的长度K以及两两相同词组之间的间距S有关。如明文中第1个The与第2个The间距S(1,The)=21=nK,第2个The与第3个The间距S(2,The)=25 ≠ n K。

也就是说如果两个相同词组之间的间隔(S)正好等于密钥长度的整数倍(nK)时,那么这两个相同词组加密得到对应的密文也是一样的。

以上例来讲,密文中第1个dlc与第2个dlc的间距为n K=21,得到K是21的约数(1或3或7或21),同理若发现密文中另外两个相同词组的间距为n K=6,则得到K是6的约数(1或2或3或6)……,最后取所有约数集合的交集即可求得K值。

       第二步:确定密钥的内容

在第一步中假设求的的K=3,也就是说每逢3个字母就会用到同一套密码加密,所以只要知道钥匙的长度K,再分别对3套密码用频率分析法,维吉尼亚加密法就破解了。

接下来就讲下如何利用K=3确定密钥内容,我们知道第X i,X i+k,X i+2k ······X i+nk 个字母加密方式是用的同一套凯撒密码加密的,在本文中第1、4、7、10、13······个字母用的同一套凯撒密码M1加密的,第2、5、8、11、14······个字母用的同一套凯撒密码M2加密的,第3、6、9、12、15······个字母用的同一套凯撒密码M3加密的,将密文中所有字母按照加密方式的不同进行分组,分组情况如下所示。

这样我们就将原始密文拆解成K组密文,如下。

M1组:dokksoskdrxefsrqsno

M2组:lvxprmrrlykvirelex

M3组:ccujzhebcyngpqlylf

每组密文使用同一凯撒密码加密,因此针对每组采取前文讲的字频分析方法破解即可得到密文字母表,将密文字母表与维吉尼亚密码表的行进行对比,便可以得到每组的密钥。上例中分别对M1组、M2组、M3组进行破解得到三组密钥分别为:k、e、y,组合得到完整密钥为:key。

       第三步:根据密钥恢复明文

知道密钥后,对照维吉尼亚密码本就可以知道明文了。

小结分析:单表代换密码加密后的密文具有明文的字频特征,易通过字频统计破解,而多表代还后密文不具备字频特征,但是遇到二阶式频率分析时就显得无能为力了(周期分析根据密钥的重复使用情况进行频率分析),但是增加密钥长度可以大幅提升破解难度。

密码学基本原理和发展——古典密码学相关推荐

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

    目录 1 密码机通信模型 2 Enigma密码机构造 3 Enigma密码机加解密过程 3.1 加密过程 3.2 解密过程 4 Enigma密码机的安全性 5 Enigma密码机破解 5.1 波兰雷耶 ...

  2. 古典密码学原理和Base64算法原理

    密码学,就是研究如何将一个内容(可以是字符串.文件.二进制流)通过一系列算法转换成另一种内容的学科.从广义上来看,有一个算法可以将字符串转换成另一个字符串即可,即该算法可逆不可逆都可以:从狭义上来看, ...

  3. 浅谈密码学的历史发展过程

    浅谈密码学的历史发展过程 前言 这是大三下学期选学的网络信息安全课程的期末作业,这个学期就是疫情爆发期间上网课的那段时期... 摘要 密码对我们都不陌生,在日常生活中也接触过密码,日常生活中所说的密码 ...

  4. 信息安全导论 实验一 古典密码学

    一.实验目的与原理 1.实现古典密码学中的移位密码算法和维吉尼亚算法. 2.了解两种算法的原理,并且编写出来. 3.使用语言为C++或者Python等. 二.实验内容与记录 位移密码算法: 移位密码算 ...

  5. 古典密码学、DES对称加密、3DES对称加密知识总结和实验

    实验三.古典密码学.DES对称加密.3DES对称加密 一.古典密码学:当铺密码.培根密码.摩斯密码.键盘密码.与佛论禅 1.当铺密码: 解密"由人俱一口中"和"大中口由人 ...

  6. 古典密码学与现代密码学

    一.古典密码学 何谓"加密" "密码"或"加密系统"用于"加密"数据. 对于原始的未加密的数据,我们称之为"明 ...

  7. 密码学概述及其发展简史 【一】

    1 密码学 1.1 什么是密码学 密码学是保障信息安全的核心技术,信息安全是密码学研究与发展的主要动力和目的. 密码学能做什么? 机密性: 如何使得某个数据自己能看懂,别人看不懂 认证: 如何确保数据 ...

  8. 密码学原理-篇1:古典密码学

    密码学原理-篇1:古典密码学 关键词: 恺撒密码 单表替换密码 多表替换密码 重合指数 古典密码学之所以被称为古典,是因为区别于现代密码学,这些密码理论虽然很有价值,但是现在很少使用.因此,学习古典密 ...

  9. CRYPTO古典密码学学习

    CRYPTO古典密码学学习 1.键盘密码加密 2.Brain Fuck 和 Ook密码 3.替代密码 莫斯密码 凯撒加密 rot13\color{olive}{rot13}rot13 词频分析法 [^ ...

最新文章

  1. 吴恩达老师深度学习视频课笔记:深度卷积网络
  2. Thinkpad W520 完美安装Ubuntu14.04LTS
  3. +++++++X86平台系统启动流程
  4. shell删除最后一行、删除第一行、比较文件
  5. 系统设计经典题:手把手教你搭建一个IM(即时通讯) 系统
  6. tomcat的日志不输出日志信息的解决方法
  7. 深入理解javascript原型和闭包(4)——隐式原型
  8. powerdesigner使用之——从“概念模型”到“物理模型”
  9. vagrant使用centos的环境安装..
  10. 双重检查锁,原来是这样演变来的,你了解吗
  11. 字符串,数组,定时器,form
  12. python3-字典中存储列表
  13. HTML/CSS 面试总结
  14. pytorch---tensor.view()
  15. 整人c语言代码大全,(C语言整人代码大全.doc
  16. RBF神经网络算法分析与应用(适合快速入门实战)
  17. 【气动学】基于龙格库塔算法实现外弹道仿真含Matlab源码
  18. 现阶段人工智能应用涉及到哪些行业?
  19. Mystical compositions of the self: women, modernism, and empire【翻译】
  20. windows重装系统步骤及相关知识①

热门文章

  1. 微小区V2 v2.3.4 小区 智能设备 智慧物业
  2. uniCloud杂文
  3. 散户炒股不想亏损的四项基本原则
  4. python实心点怎么画_python 绘制随机实心圆,保存标签
  5. Excel---单元格数据拆分多列
  6. 最终幻想游戏java_Java简单实现贪吃蛇经典小游戏(附源代码)
  7. 谷歌浏览器变成白色的解决方法
  8. 思想“一念之间”,读书笔记
  9. HTML5期末大作业:影视电影网站设计—— 迪士尼影视电影(6页) HTML+CSS+JavaScript 网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计
  10. HTML5期末大作业:电影个人介主题——迪士尼影视电影(6页)带音乐 HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码