加密算法

## 加密算法 ##

### 1. 基本流程 ###

基本的保密通信模型如下图所示,通信的参与者包括消息的发送方、消息的接收方,潜在的密码分析者是试图从整个加密服务(流程)。


明文:未加处理的原始信息;</br>
密文:经过加密处理的信息;</br>
加密:明文到密文的过程,包括密钥和加密算法;
解密:密文到明文的过程,包括密钥和解密算法;
加/解密算法:对明文进行加密采取的一组规则称为加密算法,密文的接收方对密文解密时采取的一系列规则称为解密算法。
密钥:加密算法/解密算法中输入的参数。

重点理解:加/解密算法和密钥的关系

### 2. 密码系统的安全性 ###

安全性因素:密码算法复杂度、密钥机密性和密钥长度。
其中密码算法复杂度是密码系统安全性的保证。(这里强调密码整个系统的安全性,基本条件)</br>
柯克霍夫密码设计原则:密码系统的保密性不依赖于加密体制或算法的保密,而依赖于密钥。(这里强调密码系统的保密性,如何去保密,保密的核心就是保护密钥)

密钥空间:该算法生成密钥的所有可能有多少。
爆破密钥和难易程度和密钥空间相关,密钥越长,密钥空间越大,耗费的时间越长。

评估密码系统的安全性:</br>
1. 无条件安全性:无限计算资源也无法破译出结果,目前不存在,哪种都存在爆破的方法;</br>
2. 计算安全性:最好的方法破译所需的计算资源远超过攻击者拥有的资源,简言,计算能力不足以计算出结果;</br>
3. 证明安全性:密码的安全性归结于某个研究的困难问题,取决于这个困难问题是否易被解决。

密钥设计满足实际安全的要求,满足其一即可认为是安全的:</br>
1. 破译密码消耗巨大,以至于实际中无法实现;</br>
2. 破译密码计算时间超过密钥生命周期,例如,密码信息只要求一段时间保密,比如开战的信息,一旦开战声明周期就结束了;</br>
3. 破译该密码的费用超过该密码本省的价值。

### 3. 密码算法的分类 ###
1. 受限制的算法和基于密钥的算法</br>
   受限制的算法指加密/解密算法不可以被公开,一旦被公开该加密/解密算法就失去了安全性;基于密钥的算法指加密算发可以被公开,但是密钥不可以被公开,一旦公开就失去了安全性。
2. 对称密码和非对称密码</br>
   根据加密密钥和解密密钥的关系,对称和非对称。密码体制区分对称密码算法和非对称密码算法。
   对称密码算法:加密密钥和解密密钥相同;非对称密码算法:加密密钥和解密密钥不相同。
3. 分组加密和流加密(属于对称密码体制的分类)</br>
   分组加密:对数据包进行加密,如DES、AES等;流加密:对字符逐个连续加密,例如持续处理一个bit或者一个字节。
### 4. 对称加密算法 ###
优点:速度快、适合大量数据加密、明文长度和密文长度相等。
常见的加密算法有:DES、3DES、AES、IDEA、RC5、Twofish、CAST-256、MARS等。
分组加密:</br>
DES:分组长度64位明文,密钥长度64位(有效56位),64位密文。</br>
3DES:执行3次DES算法,加密是,加密--解密--加密;解密是,解密--加密--解密。</br>
AES:分组长度128比特,密钥长度128比特,输出128比特密文。(目前常用)
流加密:</br>
RC4:速度最快,根据字节依次加密;</br>
BlowFish:算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来机密64位比特长度的字符串,非专利,
IDEA:128位密钥和8个循环

### 5. 非对称加密算法 ###
特点:速度慢、较安全。
非对称加密的密钥由公钥和私钥组成,且成对出现。</br>
国际常用:RSA</br>
国内标准:SM2,基于ECC的改进。</br>
SM2和RSA相比,安全性更高、计算量小、处理速度快、存储空间小、宽带要求低。</br>

RSA的加密过程:


### 6. 其他密码服务 ###
#### 哈希函数 ####
   用于完整性校验和数字签名。  </br>
   常见的hash函数:MD5算法、SHA-1、SHA-128、SHA-256
   
#### 消息认证码 ####
   用于验证消息是否被篡改。</br>
   流程:将密钥生成固定长度的短数据块,附加在消息之后。例如假设A、B使用同一个密钥。A向B发送消息之前,使用hash函数获取密钥的短数据块,附加在消息之后,然后计算消息验证码MAC。消息和MAC一起发送给B,B接收到消息,对自己的密钥也使用相同的hash函数获取密钥的短数据块,也附加在消息之后,计算MAC,对比A发送过来的MAC,查看是否一致。

#### 数字签名(使用非对称密码技术) ####
   具有不可否认性(私钥的私有性),不可伪造性(唯一私钥)、消息完整性(hash进行完整性校验)。</br>
   流程:A对需要加密的消息进行哈希计算,得到哈希值;A使用自己的私钥对哈希值进行加密得到签名,并将签名附在数据上(消息认证技术未使用私钥对哈希值加密);A随机生成一个加密密钥(默认对称密钥)对要发送的数据加密,得到密文;A使用用户B的公钥对刚才生成的随机加密密钥加密,将加密密钥和密文发送给B;B收到A的密文和加密密钥,使用自己的私钥对加密密钥加密,得到A随机生成的加密密钥;B使用A的随机密钥对数据进行解密,得到明文信息,随之将A的随机密钥抛弃;B使用A的公钥对数字签名解密,得到A原始数据的哈希值;B对A的原始数据hash计算,核对A计算的哈希值,核对是否一致。
    
### 7. 公钥基础设施(KPI) ###
   用于对密钥和证书的管理的解决方案。

#### PKI架构 ####
    


   
    CA:证书签发权威,也称为数字证书管理中心,负责证书的生成、发放、更新、撤销等工作;
    RA:证书注册机构,也称数字证书注册中心;
    证书/CRL库:用于发布、存储、供用户查询所用;
    CRL:(Certificate Revoke List, CRL)证书撤销列表;
    终端实体:拥有公私密钥对和响应公钥证书的最终实体。

#### 数字证书 ####
   数字证书是经过CA签名、包含拥有者身份信息和公开密钥的数据体。相当于互联网实体的身份证,被CA认证的的信息保证了该互联网实体的真实性。

   **数字证书格式**:X.509,基于X.509协议的还有PKIX、S/MIME、SSL、TLS、IPsec等。</br>
   SSL/TLS常用于https协议中,IPSec常用于VPN协议中。</br>
    
    X.509标准主要包含3部分:证书体、签名算法类型、CA签名数据
    证书体包含下列内容:
    版本号:表示证书的版本;
    序列号:由证书颁发者标识本证书的唯一标识符,整数;
    签名算法表示:签署证书所用的算法及相应的参数,对象标识符加上以上参数组成;
    签发者:指建立和签署证书的CA名称;
    有效期:证书的使用的有效期;
    主体名:证书拥有者名称;
    主体公钥:证书拥有者公钥;
    发行者唯一标识符:可选,标识唯一的CA;
    主体唯一识别符:可选,标识唯一的主体;
    拓展域:一个或多个拓展的数据项,第三版开始使用。

   生命周期:申请、生成、存储、发布、废止

#### CA ####
   CA的主要功能:证书的签发和管理、证书撤销列表的签发和管理(与CRL交互)、证书注册结构(CR)的设立、审核、管理。</br>
   CA和RA的区别:RA是CA的下一等级代理,CA也可以做RA的事情,RA主要做证书注册和审核。
   
   CA的逻辑结构

   


   实际结构

   根CA(Root CA,RCA)下设CA、CA下设子CA(Subordinate CA,SCA)、SCA下设RA。或者RCA-CA-SCA-RA、RCA-CA-RA、CA-RA均可。


### 总结 ###

AES:对称加密
RSA:非对称加密
MD5、SHA-1、SHA-128、SHA-256:hash函数,计算数据完整性
UUID:随机生成的唯一标识
CA:数字证书的管理机构
RA:数字证书的注册机构







posted @ 2020-05-11 20:39  马帅领  阅读(1015)  评论(0编辑  收藏  举报