导航菜单
首页 >  密码学期末考试题  > 现代密码学第四版杨波著

现代密码学第四版杨波著

我将用一整天突击,崭新的一本书,从0到期末80+,(仅针对本校逆天考点进行总结)

完本总结:总计历经两天半,共计15小时,总计30+页,仅带来个人的复习思路与心路历程

写本博客原因?

马上期末考试,整本书从来没有看过,尝试0基础一天学完,突破自己。网上没有完全符合本课程的详细汇总(其中一篇总结不错,后面会提),尤其网课质量极差,是极差!针对特定细小问题没有明确解答,自己深受其害,自己受过的苦,争取能帮到别人(虽然没人看)因为热爱

红色为关键词记忆点,荧光为基本必考点

第一章 引言

既然是引言,大体了解就行,主要考在网安的一些基本简单问题,如攻击类型,基本目标,密码体制分类,保密系统模型,及简单古典密码

1.攻击类型

被动攻击:即窃听,针对保密性,   是难以检测的,重点在预防

主动攻击:中断,篡改,伪造        检测恢复

2.密码技术是保障数据安全的关键技术。

信息在社会中的地位和作用越来越重要,则其安全愈发重要,而密码学是保障信息安全的核心技术。可以说没有密码学就没有信息安全。

3.保密通信系统

即图1-5保密系统满足下面要求:系统即使达不到理论上是不可破的,即 ,也应当为实际上不可破的。就是说,从截获的密文或某些已知明文密文对,要决定密钥或任意明文在计算上是不可行的。系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥。这是著名的 Kerckhoff 原则。加密和解密算法适用于密钥空间中的所有元素。系统便于实现和使用。

4.密码体制分类

密码体制从原理上分为单钥体制(流密码,分组密码)和双钥体制两大类

唯密文是最难攻击的,因为他知道的最少,从上到下难度降低

5.古典密码

最古老的三个非常简单,有数学基础给出式子就能做,着重说一下多表代换密码。没有技巧,全是计算总之,用这个公式反复变换,是可以解决多表问题的

首先会给出n,N,一般n也就是2或3,多了太难算了,N就是26,给出一串字母和一个密码矩阵A

n是几,给的字母串就拆成几个一组a[i],如果是明文,则密文C = A * a[i],连起来就对了,如果给的是密文,恭喜你,中间需要求逆矩阵,作为网安的倒霉蛋

就老实用这个算求吧,我觉得是真麻烦。

C = AM + B 经过两边乘逆可以得到 M = A~ * A[i](A[i]是C-B),反正可以求的

这个例题我试了,设A矩阵,带入公式计算待定系数法,可以求解。学加写这一章用了一个小时,要加速了呀。

 第二章 流密码

高深的知识,如果有兴趣可以讨论,目前只针对考试,完全不需要学m序列等等的耗时间的东西。首先知道流密码是啥,再者密钥流生成器,寄存器,练习题,🆗了就

1.什么是流密码

课本给的是

说人话,就是密钥发生器f(k和记忆元件产生的函数)通过密钥k产生了密钥流,其中对逐比特进行加密,所以他像流一样。

2.移位寄存器是流密码产生密钥流的一个重要组成部分,没什么好说,看题吧

例题2.2

这种题初看很吓人,仔细看你会发现,就是按照这个流程图,跟着他箭头走,循环就完了,下面阐述两行(分为上下行)

第四列是输出,取决于当前行的a1,下一行的a2 a1,分别等于上一行的a3 a2,而下一行的a3等于f的产出结果,依次循环便直到找到周期。

例题2.3

x的多项式完全没必要,但是官方是这样写的,按照图理解就可。这个c其实就是开关,把控对此是否进行异或而已

习题2.1 2.3

 其实这就是一类题,流密码再考别的就超了讲真

 第三章 分组密码

搞清楚,什么是分组密码,他与流密码都是单钥体制,区别在分组密码无记忆性(上节刚说完一个记忆性的f)且数量不同,再者怎么操作的,运行模式几种,怎么用,画图呢,什么是feistel结构,结构设计,des的基本操作,多重的des

1.什么是分组密码

将明文划分为长为n的组x(x0,x1,…,xn-1),各组在密钥k=(k0,k1,…kt-1)控制下变换成等长的数字序列y=(y0,y1,…ym-1)。

他实际上就是对字长为n的数字序列的代换密码而已(一般m=n)

分组方式,当然让他m=n最好,要是不够就补零,其实并没有要求明文的加密长度和密文加密长度一样的

2.扩散和混淆是Shannon提出的设计密码系统的两个基本方法(分组密码安全设计性原则)

扩散:使明文与密文之间的统计关系变得尽可能复杂,以使敌手无法得到密钥。明文每一比特变换尽量多的影响密文序列的变化,以隐蔽明文的统计特性(雪崩效应)

混淆:使密文与密钥之间的统计关系变得尽可能复杂,以使敌手无法得到密钥

P盒(置换)用于扩散S盒(代换)用于混淆

3.Feistel结构

按课本上的话说,很多分组密码结构本质都基于Feistel结构。

Feistel提出利用乘积密码可以获得简单的代换密码,乘积密码指顺序地执行两个或多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果。Feistel 还提出了实现代换和置换的方法。其思想实际上是 Shannon 提出的利用乘积密码实现混淆和扩散思想的具体应用。

按照我的总结

乘积密码就是指顺序地执行两个或多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果,中间还包括置换和代换,也就是刚刚提到的扩散和混淆。

将每组明文分为左右两半L0和R0,n轮迭代后再合在一起产生密文分组,(以下的阐述只为了解这是什么,抛除课本的加密公式等复杂写法)

图挺关键的,核心思路就是这个公式

 

 

第i轮迭代(代换): Li=Ri-1 (左等右上) Ri=Li-1⊕F(Ri-1,Ki) (右等左上异或F即右上和K)

记得最后一轮交换左右两边的数据(置换)

解密和加密本质过程一样,密文作为输入,但使用子密钥Ki的次序和加密相反(这一特性保证了加密和解密可用同一算法)

 总之,用自己的话说,这个密码就是:分成左右两边,左边就等于上一轮的右边,而右边则是用 f 对上一轮的右边通过密钥 k 进行加密,再和左边异或一下,进行n轮迭代,最后一轮要置换一下,再合在一起,就完成了。听到这里怎么这么熟悉,怎么和des这么像,巧了,des就是这种结构。

 4.des加密

众所周知,des16轮轮密钥,按64比特进行分组,(因为des我比较熟悉,就大致一说,抽象的地方可以上网找每一部分原图,考试只需要知道每一部分叫什么就行(红色的),过程不必深究。)他就是详细的Feistel结构的f处理过程,其余是一致的。

 

1首先初始置换,将第58个比特放在第一个位置上,逆初始置换也一样,第四十比特放在第一个位置上

2轮结构

将右边的32 扩展到48 与48的密钥进行轮密钥加,得到48的结果再S盒压缩到32,通过置换得到32的轮函数输出,再与左边进行一次异或,得到本次的R结果。一轮就结束了

如果有条件,我很想讲讲,现就粗略地说一下大概

扩展运算就是把四个,边上的前一个和后一个扩展出来

轮密钥加就是8组6比特变成4比特,具体操作就是把6比特输入看成一个二进制数,16位选行,2-4选列,查S盒书成即可

3密钥产生

 

大概就是先选择1,压缩到56比特密钥,分成两份再置换,再i轮循环左移,通过置换选择2得到48位密钥

4解密,同意算法,相反顺序

5.下一步,二重des

就是使用两个加密密钥K1、K2密钥长度112,强度极大增加,但是如果一个K3可以正好替代这俩, 那么恭喜你之前两个密钥白找了。

但是下面话锋一转,我也没看懂,得出结论,二重不好考,也考不到,嗯对

接着便是两个密钥的三重,三个密钥的三重,迭代吗,如果找的巧了总会降重的,但是,几率很小,安全性也极大增强了。

6.分组密码的运行模式

ECB(电话本)模式 各明文组以同一密钥加密CBC(密码分组

相关推荐: