信息安全复习三:古典密码之设计好的密码算法

本文探讨了密码算法的设计,从简单的凯撒密码和替换密码开始,逐步讲解了Playfair密码、维吉尼亚密码以及一次一密等更复杂的加密方法。每种密码都有其特点和破解策略,如凯撒密码可通过频度分析破解,而一次一密由于其密钥的独特性被认为是无条件安全的。然而,密钥管理和分发始终是实际应用中的挑战。
摘要由CSDN通过智能技术生成

一.章节梗概

讨论以下算法,理解怎么设计好的密码算法的关键问题
1.Caesar cipher(替换密码)
2.单字母表密码(替换密码)
3.Playfair密码(多表代换密码)
4.维吉尼亚密码(多表代换密码)
5.自动生成密码
6.一次一密
7.多表密码(凯撒密码的一种改进)

二.Caesar cipher

2.1 穷举攻击

穷举攻击定义:尝试所有密钥直到有一个合法密钥能够把密文还原成明文,这就是穷举攻击。

进行穷举攻击的条件
1.密钥数量比较少,可以穷举
2.明文是有信息量在里面的,可以通过信息来判断解密后的信息是否正确。

注意:如果明文是一个纯粹随机的序列,我们没法解密。

2.2 改进凯撒密码

攻击者总能通过穷举法对凯撒密码算法进行破译。

频度分析能够对凯撒密码进行破译。
如果你扫描任何一部英文书的文字,然后计算出每个字母所使用的频率,你会发现惊人的秘密,那就是在英语文字中,使用频率最高的字母永远是e,这是英文的文字性质决定的,而写密文的人并不会意识到。在密码学中,这被称为指纹。

所以,只要我们找到密文中使用频度最高的字母,再与字母e比较,就能找到凯撒密码的加密位移,比如在密文中,使用频率最高的是h,那么,我们可以推断,加密的位移是3,拿到加密位移,就能推断出所有明文。

如何改进:增加密钥数量。

三、 单字母表密码

3.1 单字母表密码的特点

密钥数量足够多,密钥是26个字母长度。

单字母密码分两种不同的加密形式,一个单表代换密码,一个多表代换。

3.2 加密方法

加密方式:替代法
采用另一个乱序字母表来替代明文字母,明文字母和密文字母保持一一对应关系。要得到一个乱序字母表,可以采取随机排列的方式,也可以由一张混淆字母表生成,过程如下:

a) 随机选择一个密钥字或密钥短语,例如:cybersecurity
b) 去掉重复字母:cybersuit
c) 这些字母构成矩阵的第一行,矩阵的后续各行由标准字母表中去掉密钥字的字母后剩下的字母构成
d) 按列取出矩阵中的字母得到混淆字母表:
canydobfp
egqrhvsjw
ukxilztm

3.3 单字母表密码的攻击手段

1.出现频率高的词
2.字母频率分析的方法:因为单字母表密码没有改变原来明文里的字母出现的频率,因此我们就可以根据替换后的字母频率与已知的字母频率相对应,就可以分析出替换前的字母。

3.4 单字母表的致命缺陷

把明文里字母的统计规律原封不动的保留到了密文里面。

注:密钥数量多了,但它还是可以破译的,而且攻击者去攻击的技术手段不需要去穷举。

思考:什么是好的密码算法?

好的密码算法:攻击者只能用穷举法进行攻击,除此之外别无他法,这样我们可以量化攻击难度,攻击者的攻击成本和key size成正比。
在这里插入图片描述

3.5 改进单字母表密码

两种改进方案:
1.明文分组,一次加密多个字母,如playfair密码,对明文进行分组,然后一次代替(多对一)
2.一个字母被多个字母代替,如维吉尼亚密码,明文里的一个字母,在密文里被多个字母来替代(一对多)

单字母密码密码分析(上)

四、无条件安全&计算机上安全

4.1 定义

无条件安全:是指我们假设攻击者有无限的时间,有无限的计算机资源,它也不能够解密,不能够攻破的密码算法。

计算机上安全:是指我们假设攻击者的时间是有限的,攻击者的计算资源是有限的情况下,无法解密。

4.2 讨论

在计算机安全的定义下,我们设计密码时,只需要考虑加密者的计算成本远远低于攻击者在不知道密钥的情况下破译密码的成本就可以了。

无条件安全的定义下,能够达到无条件安全的这样一种机制时不存在的,或者只在理论上安全,我们现实中使用的密码方案没有无条件安全这种方案。

五、playfair密码(多对一)

5.1 定义

Playfair是一次加密双字母组合,也就是我们把明文分组的时候,2个字母为一组。

Playfair是惠斯通发明的,配合他发明的电报机一起使用,当要发送一个字母G的时候,黄色的指针偏转,指向字母G。
在这里插入图片描述

5.2 playfair密码加密步骤

分为三大步:1.编制密码表 2.整理明文 3.编写密文
构成部分:1.密钥 2.密码 3.密文 4.注明某个字母代替的另一个字母

1.编制密码表:
选一个关键字,关键字是密钥,下面的例子的关键字是“CRAZYDOG”;
构造一个关键字的矩阵,用于加密;
规定I和J不做区分,所以I的位置既是J又是I;
在这里插入图片描述

2.整理明文:对明文进行分组,两个字母一组,如果是重复的字母,中间加一个X,剩一个单字母也用X填充,如communist,应成为co,mx,mu,ni,st;

3.编写密文:加密规则为,同行取右边,同列取左边,其他取交叉;

加密规则的详细解释如下

1 若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。如,按照前表,ct对应dc

2 若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。

3 若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母(至于横向替换还是纵向替换要事先约好,或自行尝试)。如,按照前表,wh对应ku或uk。**

如,依照上表,明文where there is life,there is hope.

可先整理为:WH ER ET HE RE IS LI FE TH ER EI SH OP EX

然后密文为:KU YO XD OL OY PL FK DL FU YO LG LN NG LY

将密文变成大写,然后几个字母一组排列。

如5个一组就是KUYOX DOLOY PLFKD LFUYO LGLNN GLY

密码表的详细解释如下:

在这个5*5的密码表中,共有5行5列字母,代表从A-Z 共26个字母,其中I和J不作区分。
第一列(或第一行)是密钥,其余按照字母顺序。密钥是一个单词或词组,若有重复字母,可将后面重复的字母去掉。
当然也要把使用频率最少的字母去掉。如:密钥是Live and learn,去掉后则为liveandr。
如果密钥过长可占用第二列或行。
填写好关键字后剩下的表按A-Z的顺序填写,关键字里已有的字母不再填写。

5.3 对Playfair密码的攻击和改进

尽管Playfair算法被认为是比较安全的,但它仍是可以被破解的,因为它的密文中完好地保留了明文语言的大部分结构特征,有几百个字母的密文就可以分析出某些规律,从而为进一步破解提供线索。

缺点:只需要几百个单词的文本就可以被攻击。
改进:增大明文分组。

六、维吉尼亚密码(一对多)

6.1 定义

维吉尼亚密码是一种使用多表代换的代换密码,是在凯撒密码的基础上扩展出来的多表密码。

为了生成密码,需要使用表格法。这一表格包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。

维吉尼亚密码引入了“密钥”的概念,根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。

6.2 加密与解密原理

在这里插入图片描述
加密:
维吉尼亚密码必须有一个密钥,这个密钥由字母组成,最少一个,最多可与明文字母数量相等。

例如:
明文:SECRET MESSAGE
密钥:CODE

1.首先,选择某一关键词重复而得到密钥。
明文 SECRETMESSAGE
密钥 CODECODECODEC

2.对照表格,密钥中的字母为行,明文中的字母为列。例如明文的第一个字母为S,密钥的第一个字母为C,对应表格,则密文的第一个字母为U。

3.对照完得密文:USFVGHPIUGDKG

解 密
解密前首先要知道密钥和密文。

例如:
密文:TLDKKOVD
密钥:TWO

1.密钥重复至与密文等长,密钥:TWOTWOTW

2.对照表格,密钥第一个字母为T,找到T行中的密文第一个字母T,为A列,可得明文第一个字母为A。

3.相应对照剩余字母,得明文:APPROACH

维吉尼亚密码

七、自动密钥密码(Autokey Cipher)

密钥和明文一样长。

自动密钥密码是密码学中的一种加密算法,与维吉尼亚密码类似。区别在于密钥不同。它的密钥开头是一个关键词,之后则是明文的重复

是一种比较强的密码。

缺陷:可以用来做密码分析,密钥key用的英文文本,加密对象也是英文文本,密钥里的字母频率和明文里统计规律是一样的;

把动态生成密钥发挥到极限就是在密文里如何把明文里一些统计上的规律屏蔽掉,把这个思想发挥到极致我们要找一个这样的keyword,它和明文一样长,不会重复使用或循环使用,在统计上和明文没有任何练习。

条件一:密钥和明文一样长。
条件二:密钥和明文不能有统计上的联系。

八、一次一密(One-Time-Pad)

一次一密加密法,是不可破译的,它仅是在维吉尼亚加密法上增加以下条件:
1.密钥要和加密的消息同样长。
2.密钥由真正的随机符号组成。
3.密钥只能使用一次,永远不对其它消息重复使用。

“一次一密”提供了完善保密性,并且加密和解密也很容易,但是它存在一个较大的不利因素:因为密钥量必须至少和明文数量一样多

优点:密钥随机产生,只使用一次;无条件安全、加密解密为加法运算效率高
缺点:密钥至少与明文一样长,密钥共享困难

一次一密是对称密钥密码的理论标杆。

如果密钥和消息一样长,且真正随机,那么该密码无条件安全。

1918年Gillbert Vernam提出密钥与明文一样长且没有统计关系的密钥内容,算法表述采用二进制数据,且申请了专利:
在这里插入图片描述
异或运算有这些性质:在这里插入图片描述
所以上面密码的算法是可逆的。

1949年,Shannon在他发表的经典论文中证明了一次一密的无条件安全性密钥的分发是个大问题,实用价值较弱,因为这个密码要求通讯双方提前共享一个纯粹的密钥序列。

判断:密码学中存在的一次一密的密码体制,它是绝对安全的
不正确,一次一密只是理论上的,现实中的密码体制并不存在绝对安全。

九、多表密码

接 2.2 凯撒密码的破译方法。
这种方式被称为频度分析,它的出现对凯撒密码的安全性是非常大的打击。

但是,一个强大的密码是可以掩盖这种指纹的,而掩盖指纹的方式,就是使字母使用的频率分布变得均匀。

多表密码与凯撒密码不同的是,不在是使用单一的数字进行位移加密,而是引用一个位移单词

这种加密的方式的第一步,是确定这个位移单词,假设是“world”,然后,将这个单词根据在字母表的位置,把这个单词转换为数字,“world”→“21、15、18、12、4”,接下来,把这一列数在信息编码的过程中一直重复,把明文的信息根据这个数列进行位移。

在这里插入图片描述
假设明文是“abcde fghij”,经过加密之后的密文就是“vrvqj bwavo”

这样,把密文发给同伴的时候,同伴可以根据事先约定好的秘密单词,减去相应的位移来对信息进行解密。

那么他将会怎么破解呢?

其实很简单,大家记住,破密者寻找信息泄露,也就是寻找局部指纹,只要在字母的频率上存在差别,就会发现信息的泄露,这个差别是由密文里的重复引起的。

这个例子中,发布者的密码利用了一个重复的单词,为了破解加密,窃密者首先需要确定所使用的位移单词的长度,而不是单词本身,他需要对全部信息进行统计,检查不同间隔的频率分布,当他检查以5个字母为周期的频率分布时,指纹就自己出现了。

所以,这种使用多重位移的加密方法,与凯撒使用的单一位移加密法比较,强度在于,确定位移单词的长度所用的时间,所以,位移单词越长,信息就越安全。

多表密码虽然比凯撒密码安全性大大增加,但是理论上,只要花时间是可以进行破解的。

结论:
多表密码的改进方法:增加密钥长度。

密码学的起源及发展:凯撒密码、多表密码、一次一密

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值