【现代密码学】(网安)期末复习笔记

现代密码学

【考后感悟】还是得注重简答题,需每个密码算法都要有所了解(有些难的可以不用了解完整算法过程,估计考不上?),并对几个重要密码算法(重点下面会讲)着重复习(会做大题计算)

✍Created by Sikevin in UESTC

【注】:复习本门课前需要有信息安全数学基础,可以查看博主主页的《信息安全数学复习》一文。

✍博客主页:电子科大不知名程序员

【核心重点算法】:DES算法、RSA、ElGamal、ECC算法、DH算法、Shamir门限方案。

1、引言

什么是密码?采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务

什么是密码学?密码学是研究编制密码和破译密码的技术科学

系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥。

保密系统:

一个保密系统由:明文空间、密文空间、密钥空间、加密算法、解密算法构成。

①系统不可破

②保密性依赖于密钥**(Kerckhoffs假设)**

③加密解密算法适用密钥空间中的所有元素

④方便实现、使用

Kerckhoffs假设:假定密码分析者和敌手知道所使用的密码系统。即密码体制的安全性仅依赖于对密钥的保密,不应依赖于算法的保密

image-20230602234321480

无条件安全与计算上安全:

image-20230605164953304

计算上安全:

破译密文的代价超过被加密信息的价值。

破译密文所花的时间超过信息的有用期。

2、分组密码

image-20230603111936013

image-20230603112305743

分组密码应该满足的需求:

image-20230605144852340

image-20230605144917147

分组N要足够大,否则就等价于古典的代换密码

对n比特的代换结构,密钥的大小是n×2^n比特(n比特的分组长度,有2^n种情况)

代换网络:理解成是一种代换关系

image-20230603112726603

image-20230603112846008

乘积密码指顺序地执行两个或多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果

Feistel算法

image-20230603113019821

算法要易分析,软件要易实现

image-20230603113221200

Feistel解密过程本质上和加密过程是一样的,算法使用密文作为输入

但使用子密钥Ki的次序与加密过程相反,即第1轮使用Kn,第2轮使用Kn-1,……,最后一轮使用K1。这一特性保证了解密和加密可采用同一算法。

image-20230603113316344

加密时:

image-20230605145933116

image-20230605145848186

美国制定数据加密标准简况

①高安全性

②易理解

③安全性取决于密钥

④适用于所有用户、多场景

⑤高效、经济、有效、可出口

DES算法

流密码加密是逐字节加密,而DES采用的是块加密,对每个分组进行加密后在合并到一起形成密文

分组长度:64比特

密文长度也为64比特

密钥长度为64比特,其中有8位奇偶校验位,因此有效的密钥长度为56比特

image-20230603120423486

image-20230603120435879

过程:

1、初始ip置换

将64比特明文的位置进行置换,得到一个乱序的64比特明文组

image-20230603201201385

其中的数字代表原来的明文序列对应位置的放在当前位置;例如58表示原序列的第58个比特位放在放到第一位去

2、16轮迭代

①首先对于分组的64比特明文,分成左右两组(32比特)

②密钥有效位为56比特,而密钥经过处理后,使用的是48比特的密钥,左右两组32比特,因此需要E扩展成48比特长度

首先将1到32比特用4行8列的矩阵按顺序写出,然后在左右两边进行扩展,左边扩展就是原矩阵最左边的一列的位置数减一,1没有办法减,就将第32位的值放在1的左边。而右边扩展就是原始矩阵最右边一列的位置加一,32右边放位置1的值。这样32比特就扩展成了

image-20230603201926191

③将扩展好的明文(48比特)与48比特的密文进行异或操作(加密)

④由于明文32位被扩展成48位,因此需要使用S盒还原成32比特位

这里是6进4出的S盒

image-20230603201735146

image-20230603202020133

⑤S盒所得结果再进行P盒置换

image-20230603201813064

3、密钥生成

密钥有64位,除去8比特奇偶校验位还有56位

①种子密钥,红色代表校验位:

image-20230603202839353

②除去校验位后,进行置换选择1(PC1):

③形成了56比特:

image-20230603202825630

④分成C0和D0两部分,分别为28比特位

image-20230603202925488

⑤C0和D0根据密钥计算逻辑进行循环左移得到C1和D1

image-20230603203137675

⑥C1和D1拼接—>置换表—>左移—>C2、D2—>再重复以上过程

DES是一种确定性算法

4、DES的安全性

DES是不安全的!

密钥:

image-20230603203534368

DES存在弱密钥和半弱密钥。所谓弱密钥指的是在同一密钥下加密两次为恒等变换,DES存在4个弱密钥

  1. 0101010101010101(十六进制表示:0x0101010101010101)
  2. FEFEFEFEFEFEFEFE(十六进制表示:0xFEFEFEFEFEFEFEFE)
  3. E0E0E0E0F1F1F1F1(十六进制表示:0xE0E0E0E0F1F1F1F1)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值