2024-09-21 14:36:00 +08:00
|
|
|
|
# 密码学
|
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
> **一、基本概念**<br>
|
2024-09-29 23:13:26 +08:00
|
|
|
|
> <span style="color:green;">了解</span>古典密码、近代密码、现代密码等各密码学发展阶段的特点;<br>
|
|
|
|
|
> <span style="color:green;">了解</span>基本保密通信模型;<br>
|
|
|
|
|
> <span style="color:blue;">理解</span>密码系统安全性相关概念(科克霍夫准则、密码系统安全性评估);<br>
|
|
|
|
|
> <span style="color:green;">了解</span>密码算法分类的概念。
|
2024-10-01 15:33:58 +08:00
|
|
|
|
>
|
|
|
|
|
> **二、对称密码算法**<br>
|
|
|
|
|
> <span style="color:blue;">理解</span>对称密码算法的概念及算法特点;<br>
|
|
|
|
|
> <span style="color:green;">了解</span>DES、3DES、AES等典型对称密码算法。
|
|
|
|
|
>
|
|
|
|
|
> **三、公钥密码算法**<br>
|
|
|
|
|
> <span style="color:blue;">理解</span>非对称密码算法(公钥算法)的概念及算法特点;<br>
|
|
|
|
|
> <span style="color:green;">了解</span>RSA、SM2等典型非对称密码算法。
|
|
|
|
|
>
|
|
|
|
|
> **四、其他密码服务**<br>
|
|
|
|
|
> <span style="color:blue;">理解</span>哈希函数、消息认证码、数字签名等密码服务的作用。
|
|
|
|
|
>
|
|
|
|
|
> **五、公钥基础设施**<br>
|
|
|
|
|
> <span style="color:green;">了解</span>PKI的基本概念及PKI体系构成;<br>
|
|
|
|
|
> <span style="color:blue;">理解</span>CA及其他组件在PKI体系中的作用;<br>
|
|
|
|
|
> <span style="color:red;">掌握</span>PKI的应用场景。
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
|
|
|
|
### 一、密码学基本概念
|
|
|
|
|
|
2024-09-29 23:13:26 +08:00
|
|
|
|
#### 1、密码学发展
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-09-29 23:13:26 +08:00
|
|
|
|
1. 古典密码学(1949年之前)
|
|
|
|
|
- 主要特点:娄数据的安全基于算法的保密
|
|
|
|
|
2. 近代密码学(1949~1975年)
|
|
|
|
|
- 主要特点:密码学真正成为一门科学
|
|
|
|
|
3. 现代密码学(1976年以后)
|
|
|
|
|
- 密码学的新方向一公钥密码学
|
|
|
|
|
- 主要特点:解决了密钥分发和管理的问题
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-09-29 23:13:26 +08:00
|
|
|
|
#### 2、古典密码学
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-09-29 23:13:26 +08:00
|
|
|
|
1. 安全性在于保持算法本身的保密性
|
|
|
|
|
- 不适合大规模生产
|
|
|
|
|
- 不适合较大的或者人员变动较大的组织
|
|
|
|
|
- 用户无法了解算法的安全性
|
|
|
|
|
2. 主要分类
|
|
|
|
|
- 替代密码
|
|
|
|
|
- 置换密码
|
|
|
|
|
- 替代密码与置换密码的组合
|
|
|
|
|
3. ENIGMA:恩尼格玛
|
|
|
|
|
- ENIGMA是由Arthur Scherbius于1919年发明了密码转轮机,使用机电代替手工。在在二次世界大战期间,Enigma曾作为德国陆、海、空三军最高级密码机。
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-09-29 23:13:26 +08:00
|
|
|
|
#### 3、近代密码学
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-09-29 23:13:26 +08:00
|
|
|
|
- 1949年,Shannon(<span style="color:red;">香农</span>)发表论文 ”The Communication Theory of Secret Systems“ 将信息论引入了密码,从而把已有数千年历史的密码学推向了科学的轨道,奠定了密码学的理论基础。
|
|
|
|
|
- <span style="color:blue;">密码学从此开始成为一门科学</span>。
|
|
|
|
|
|
|
|
|
|
#### 4、现代密码学
|
|
|
|
|
|
|
|
|
|
- 解决了密钥分发、管理问题,并提供更多服务1976年,Diffie & Hellman的 “New Directions in Cryptography” 提出了<span style="color:red;">非对称密钥密码</span>。
|
|
|
|
|
|
|
|
|
|
#### 5、基本保密通信模型
|
|
|
|
|
|
|
|
|
|
1. 基本概念
|
|
|
|
|
|
|
|
|
|
- 明文、密文
|
|
|
|
|
- 加密、解密、加密密钥、解密密钥
|
|
|
|
|
|
2024-10-04 14:08:22 +08:00
|
|
|
|
![image-20240929225457773](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20240929225457773.png)
|
2024-09-29 23:13:26 +08:00
|
|
|
|
|
|
|
|
|
#### 6、密码系统的安全性
|
|
|
|
|
|
|
|
|
|
1. 影响密码系统安全性的<span style="color:red;">基本因素</span>
|
|
|
|
|
- <span style="color:red;">密码算法复杂度、密钥机密性、密钥长度</span>
|
|
|
|
|
- <span style="color:blue;">科克霍夫(Kerckhoff)原则</span>:<span style="color:red;">密码体制应该对外公开,仅需对密钥进行保密;如果一个密码系统需要保密的越多,可能的弱点也越多</span>。
|
|
|
|
|
2. <span style="color:red;">评估密码系统安全性</span>
|
|
|
|
|
- 无条件安全性、计算安全性、可证明安全性
|
|
|
|
|
- <span style="color:red;">无条件安全性</span>:这种评价方法考虑的是假定攻击者拥有无限的计算资源,但仍然无法破译该密码系统。
|
|
|
|
|
- <span style="color:red;">计算安全性</span>:这种方法是指如果使用目前最好的方法攻破它所需要的计算资源远远超出攻击者拥有的计算资源,则可以认为这个密码系统是安全的。
|
|
|
|
|
- <span style="color:red;">可证明安全性</span>:这种方法是将密码系统的安全性归结为某个经过深人研究的困难问题(如大整数素因子分解、计算离散对数等)。这种评估方法存在的问题是它只说明了这个密码方法的安全性与某个困难问题相关,没有完全证明问题本身的安全性,并给出它们的等价性证明。
|
|
|
|
|
3. 密码系统实际安全<span style="color:red;">需要满足的准则</span>:
|
|
|
|
|
- 破译该密码系统的实际计算量无法实现
|
|
|
|
|
- 破译该密码系统所需计算时间超过信息的生命周期
|
|
|
|
|
- 破译该密码系统的费用超过被加密信息本身的价值
|
|
|
|
|
|
|
|
|
|
#### 7、<span style="background-color:yellow;">密码学技术在信息安全中的应用</span>
|
|
|
|
|
|
2024-10-04 14:08:22 +08:00
|
|
|
|
![PixPin_2024-09-29_23-09-52](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/PixPin_2024-09-29_23-09-52.png)
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
#### 8、分组密码与流密码
|
|
|
|
|
|
|
|
|
|
- 按对明文的处理方式,可将对称密码体制分为<span style="color:red;">分组密码</span>(Blockcipher)和<span style="color:red;">流密码</span>(Streamcipher)。
|
|
|
|
|
- <span style="background-color:yellow;">分组密码也称块密码,是将明文分成固定长度的组,用同一密钥和算法对每一块加密</span>,对每个输人块产生一个输出块,输出也是固定长度的密文。典型的分组密码算法有DES、AES等。
|
|
|
|
|
- <span style="background-color:yellow;">流密码也称序列密码</span>,是将明文消息按字符逐位地加密,连续地处理输人明文,并随着该加密的进行,一次产生一个密文的输出,即一次加密一个比特或一个字节。<span style="background-color:yellow;">典型的例子如一次一密</span>(One-time padding)。
|
|
|
|
|
|
2024-09-21 14:36:00 +08:00
|
|
|
|
### 二、对称密码算法
|
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
#### 1、算法特点
|
|
|
|
|
|
|
|
|
|
- 加密密钥和解密密钥相同,或实质上等同
|
|
|
|
|
|
|
|
|
|
> 对称密码算法也称为传统密码算法、秘密密钥算法或单密钥算法,其加密密钥能够从解密密钥中推算出来,反过来也成立。
|
|
|
|
|
|
|
|
|
|
- <span style="color:red;">典型算法</span>:DES、3DES、AES、IDEA等
|
|
|
|
|
|
|
|
|
|
> 典型的分组对称密码算法包括DES、IDEA、AES、RC5、Twofish、CAST-256、MARS等。
|
|
|
|
|
|
|
|
|
|
- <span style="color:red;">优点</span>:高效
|
|
|
|
|
|
|
|
|
|
- <span style="color:red;">不足</span>:安全交换密钥问题及密钥管理复杂
|
|
|
|
|
|
2024-10-04 14:08:22 +08:00
|
|
|
|
![PixPin_2024-10-01_08-30-20](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/PixPin_2024-10-01_08-30-20.png)
|
2024-10-01 15:33:58 +08:00
|
|
|
|
|
|
|
|
|
#### 2、DES 和 3DES
|
|
|
|
|
|
|
|
|
|
- 数据加密标准(Data Encryption Standard,DES)是1977年美国联邦信息处理标准(FIPS)中所采用的一种对称密码(FIPS46-3),<span style="background-color:yellow;">是迄今为止世界上使用最为广泛的一种密码算法,它对分析、掌握<span style="color:red;">分组密码</span>的基本理论和设计原理有着重要的意义</span>。
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
- 美国国家标准局采用了<span style="color:red;">IBM公司</span>提交的<span style="color:red;">Luciffer算法</span>的改进版本。
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
- DES算法把64位的明文输入块变为<span style="color:red;">64位</span>的密文输出块,它所使用的<span style="color:red;">密钥也是64位</span>(有效密钥为56位,第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)。
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-04 14:08:22 +08:00
|
|
|
|
![image-20241001084622228](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20241001084622228.png)
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
- 3DES:该方法使用两个密钥,执行3次DES算法,加密的过程是加密 - 解密 - 加密,解密的过程是解密 - 加密 - 解密。
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
采用两个密钥进行三重加密的好处如下:
|
|
|
|
|
|
|
|
|
|
- <span style="background-color:yellow;">两个密钥合起来有效密钥长度有112比特</span>,可以满足商业应用的需要,若采用总长为168比特的3个密钥,会产生不必要的开销。
|
|
|
|
|
- 加密时采用加密 - 解密 - 加密,而不是加密 - 加密 - 加密的形式,这样有效地实现了与现有DES系统的向后兼容问题。因为当秘钥 K1 = K2 时,三重DES的效果就和原来的DES一样,有助于逐渐推广三重DES。
|
|
|
|
|
|
|
|
|
|
#### 3、AES
|
|
|
|
|
|
|
|
|
|
- <span style="color:red;">高级加密标准</span>(Advanced Encryption Standard,AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
|
|
|
|
|
- 1997年,美国国家标准技术研究所(NIST)
|
|
|
|
|
- AES的基本要求是比三重DES快而且至少和三重DES一样安全,<span style="background-color:yellow;">分组长度为128比特,密钥长度为128/192/256比特</span>。
|
|
|
|
|
|
|
|
|
|
#### 4、其他算法
|
|
|
|
|
|
|
|
|
|
1. RC4算法
|
|
|
|
|
- 算法不对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每一个字节进行解密。算法密钥长度是可变的。
|
|
|
|
|
2. BlowFish算法
|
|
|
|
|
- 算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。该算法是非专利的。
|
|
|
|
|
3. IDEA算法
|
|
|
|
|
- 国际数据加密算法(International Data Encryption Algorithm,IDEA),使用<span style="color:red;">128位的密钥</span>和8个循环,它采用软件实现,和采用硬件实现同样快速。
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
|
|
|
|
### 三、非对称密码算法
|
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
#### 1、算法特点
|
|
|
|
|
|
|
|
|
|
- 密钥成对(公钥,私钥)
|
|
|
|
|
|
|
|
|
|
- 公钥加密私钥解、私钥加密公钥解
|
|
|
|
|
|
|
|
|
|
- 每个用户都有一个密钥对,即公钥和私钥,其中<span style="color:red;">公钥是公开的</span>,而私钥是机密的,只有用户本人拥有。密钥必须配对使用,如果用一个用户的公钥加密,那么只有该用户的私钥才能进行解密,反之亦然。
|
|
|
|
|
|
|
|
|
|
- 公钥加密,私钥解密,确认收件人:<span style="color:red;">数字信封</span>
|
|
|
|
|
|
|
|
|
|
私钥加密,公钥解密,确认发件人:<span style="color:red;">数字签名</span>
|
|
|
|
|
|
|
|
|
|
- <span style="background-color:yellow;">Windows系统中NTFS分区下的EFS加密属于非对称式加密。</span>
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
- <span style="color:red;">典型算法</span>:RSA、ECC、EIGamal
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
- <span style="color:red;">优点</span>:解决密钥传递问题、密钥管理简单、提供数字签名等其他服务
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
- <span style="color:red;">缺点</span>:计算复杂、耗用资源大
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
#### 2、RSA算法
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
- RSA公钥密码算法是以发明者 R.Rivest 、A.Shamir 和 L.Adleman 的名字命名的,它的安全性是基于整数因子分解问题的困难性。RSA算法是第一个能同时用于加密和数字签名的算法,易于理解和操作;是被研究得最广泛的公钥算法,经历了各种攻击的考验,逐渐为人们接受;也被普遍认为是目前最优秀、应用最广泛的公钥算法之一。
|
|
|
|
|
|
|
|
|
|
#### 3、SM2算法
|
|
|
|
|
|
|
|
|
|
- SM2是我国密码管理局于2010年12月17日发布(第21号)的国家密码标准,是基于ECC(椭圆曲线密码算法)的公钥密码算法。
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
|
|
|
|
### 四、其他密码服务
|
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
#### 1、哈希函数
|
|
|
|
|
|
|
|
|
|
- 哈希函数是能将<span style="color:red;">任意</span>长度的数据映射成为一个<span style="color:red;">定</span>长的字段的函数。
|
|
|
|
|
- <span style="color:red;">作用</span>:数据完整性检查
|
|
|
|
|
- <span style="color:red;">典型算法</span>:MD5、SHA-1
|
|
|
|
|
- <span style="color:red;">数学性质</span>
|
|
|
|
|
- 单向性
|
|
|
|
|
- 弱抗碰撞性
|
|
|
|
|
- 强抗碰撞性
|
|
|
|
|
|
|
|
|
|
#### 2、消息认证码
|
|
|
|
|
|
|
|
|
|
- <span style="color:red;">基本特点</span>
|
|
|
|
|
- 也称消息鉴别码(Message Authentication Code,MAC)
|
|
|
|
|
- 利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后。
|
|
|
|
|
- <span style="color:red;">作用</span>:完整性校验、时间和顺序验证。
|
|
|
|
|
- <span style="color:red;">实现算法</span>
|
|
|
|
|
- 分组链消息鉴别码(CBC-MAC)
|
|
|
|
|
- 基于哈希函数的MAC(HMAC)
|
|
|
|
|
|
|
|
|
|
#### 3、数字签名
|
|
|
|
|
|
|
|
|
|
- <span style="color:red;">基本特性</span>
|
|
|
|
|
|
|
|
|
|
- 不可伪造性
|
|
|
|
|
- 不可否认性
|
|
|
|
|
- 完整性
|
|
|
|
|
|
|
|
|
|
- 应用示例
|
|
|
|
|
|
|
|
|
|
- 发送过程
|
|
|
|
|
- 接收过程
|
|
|
|
|
|
2024-10-04 14:08:22 +08:00
|
|
|
|
![image-20241001151455381](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20241001151455381.png)
|
2024-10-01 15:33:58 +08:00
|
|
|
|
|
|
|
|
|
### 五、公钥基础设施
|
|
|
|
|
|
|
|
|
|
#### 1、定义
|
|
|
|
|
|
|
|
|
|
- PKI是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。
|
|
|
|
|
|
|
|
|
|
#### 2、PKI架构
|
|
|
|
|
|
|
|
|
|
- CA(认证权威)
|
|
|
|
|
- RA(注册权威)
|
|
|
|
|
- 证书存放管理(目录服务)
|
|
|
|
|
- 终端实体(证书持有者和应用程序)
|
|
|
|
|
|
2024-10-04 14:08:22 +08:00
|
|
|
|
![image-20241001151846142](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20241001151846142.png)
|
2024-10-01 15:33:58 +08:00
|
|
|
|
|
|
|
|
|
#### 3、CA:认证权威
|
|
|
|
|
|
|
|
|
|
- 签发证书
|
|
|
|
|
- 更新证书
|
|
|
|
|
- 管理证书
|
|
|
|
|
- 撤销、查询
|
|
|
|
|
- 审计、统计
|
|
|
|
|
- 验证数字证书
|
|
|
|
|
- 黑名单认证(CRL)
|
|
|
|
|
- 在线认证(OCSP)
|
|
|
|
|
|
|
|
|
|
> <span style="background-color:yellow;">CA是PKI体系的核心。</span>
|
|
|
|
|
|
|
|
|
|
#### 4、RA:注册权威
|
|
|
|
|
|
|
|
|
|
- <span style="color:red;">受理</span>用户的数字证书<span style="color:red;">申请</span>
|
|
|
|
|
- 对证书申请者身份进行审核并提交CA制证;
|
|
|
|
|
- 类似于申请身份证的派出所。
|
|
|
|
|
- 提供证书生命期的<span style="color:red;">维护</span>工作
|
|
|
|
|
- 受理用户证书申请;
|
|
|
|
|
- 协助颁发用户证书;
|
|
|
|
|
- 审核用户真实身份;
|
|
|
|
|
- 受理证书更新请求;
|
|
|
|
|
- 受理证书吊销。
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
#### 5、证书库/CRL
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
- <span style="color:red;">证书存放管理</span>
|
|
|
|
|
- 信息的存储库,提供了证书的保存,修改,删除和获取的能力;
|
|
|
|
|
- 采用LDAP标准的目录服务存放证书,其作用与数据库相同,优点是在修改操作少的情况下,对于访问的效率比传统数据库要高。
|
|
|
|
|
- LDAP:轻型目录访问协议,基于TCP/IP。
|
|
|
|
|
- <span style="color:red;">CRL</span>(Certificate Revocation List):证书撤销列表,也称“证书黑名单”
|
|
|
|
|
- 被撤销证书的序列号;
|
|
|
|
|
- 证书有效期期间因为某种原因)(人员调动、私钥泄漏等)导致证书不再真实可信,因此需要进行证书撤销。
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
#### 6、终端实体
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
- <span style="color:red;">数字证书</span>
|
|
|
|
|
- 经证书权威机构CA签名的、包含<span style="color:red;">拥有者身份信息</span>和<span style="color:red;">公开密钥</span>的数据体;
|
|
|
|
|
- 国际标准X.509定义了电子证书的规范格式。
|
|
|
|
|
- 在X.509标准中,数字证书主要包括3部分内容:<span style="color:red;">①</span>证书体、<span style="color:red;">②</span>签名算法类型、<span style="color:red;">③</span>CA签名数据。
|
|
|
|
|
- 拥有公私密钥对和相应公钥证书的<span style="color:red;">最终用户</span>,可以是<span style="color:red;">人</span>、<span style="color:red;">设备</span>、<span style="color:red;">进程</span>等。(这个是终端实体的定义,即什么是终端实体。)
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-01 15:33:58 +08:00
|
|
|
|
#### 7、PKI/CA技术的典型应用
|
2024-09-21 14:36:00 +08:00
|
|
|
|
|
2024-10-04 14:08:22 +08:00
|
|
|
|
> 略
|
|
|
|
|
|