目录
术语
密码体制分类
分组密码/流密码
对称加密体制
非对称加密体制
散列函数
数字签名
术语
概念 | 描述 | 明文(plaintext) | 待加密的信息,如文件文件、图片文件、二进制数据等等 | 密文(ciphertext) | 加密后的明文,密文通常以文本或是二进制数据形式存在 | 加密(encryption) | 明文转为密文的过程 | 加密算法(encryption algorithm) | 明文转为密文的转换算法 | 加密密钥(encryption key) | 明文转为密文进行加密使用的密钥 | 解密(decryption) | 密文转为明文的过程 | 解密算法(decryption algorithm) | 密文转为明文的转换算法 | 解密密钥(decryption key) | 密文转为明文进行加密使用的密钥 |
密码体制分类
- 对称加密:? ?
- 即加解密过程使用同一套密钥如 AES DES...
- 优点:加解密速度快
- 非对称加密:
- 即加解密过程使用不同的密钥,密钥分为公私钥,公钥公开,私钥保密如 RSA...
- 优点:相对更安全,主要用于数字签名、身份验证
- 缺点:加解密耗时多
分组密码/流密码
- 分组密码(block cipher):
- 指加密时,将明文分为固定长度的组,用同一个密钥和算法对每一块加密,输出也是固定长度的密文。多用于网络加密
- 分组长度是分组密码的一个参数,它与分组算法的安全性成正比,但是解析容易度成反比,所以需要在安全性和实用性进行权衡。一般设置为56位 或是 128位。
- DES/AES就是比较典型的分组对称加密算法
- 如DES算法根据分组的工作模式分为
- ECB
- CBC: 最为广泛,每个块加密是与前一个块加密是相关的,不同的初始向量,结果是不一样的。
- CFB
- OFB
- 如AES,还新增一种
- 流密码(stream cipher)
对称加密体制
????????加解密是可逆的算法,共享同一套密钥。因为共享同一套密钥,则在通信之前,双方需要协商密钥,并保密存放。
? ? ? ? 如典型的DES/AES
非对称加密体制
? ? ? ? 因对称加密体制,需要双方在加密之前协商同一套密钥。而非对称加密体制,则不需要,解决了在”不安全“的传输通道上共享密钥的可能性。
? ? ? ? 主要优点是可以适应开发性的使用环境。
散列函数
? ? ? ? 也称作哈希函数、消息摘要函数、单向函数,主要作用不是完成加解密工作,它是用作于验证数据的完整性。通过散列函数,可以对数据创建”数字指纹“(散列值)。
? ? ? ? 通信双方事先商定了具体的散列算法,这些算法是公开的,如果数据在传递的过程中被篡改,那么会得到不同的”数字指纹“。
? ? ? ? 散列函数的特性:
- 消息的长度无限制
- 确定性,即相同的数据,散列值是相同的
- 不可逆性,即单向函数,根据散列值是得不到原始值的
- 抗弱碰撞性,即使知道原始值以及散列值,要找到另一个消息具有相同的散列值是不可能的。
- 抗强碰撞性,任意两个不同消息的散列值肯定不一样
? ? ? ? 常用的函数:
- MD系列? ?-> 消息摘要算法
- SHA系列 -> 安全散列算法
- MAC系列 -> 消息认证码算法
数字签名
? ? ? ? 通过散列函数可以确保数据内容的完整性,但是远远不够,还要确保数据来源的可认证性和数据发送行为的不可否则性。数字签名对消息进行处理,产生一种带有操作者身份信息的编码。
? ? ? ? 私钥用于签名,公钥用于验证。签名操作只能是私钥完成的,验证操作只能是公钥完成的。
? ? ? ? 数字签名过程
- 暂定甲方拥有私钥,且甲方将公钥发布给乙方。
- 甲方作为消息的发送方时,甲方使用私钥对消息做签名,然后将消息加密后连同数字签名发送给乙方。
- 乙方使用公钥对接收到的加密的消息进行解密,然后使用公钥以及数字签名对原始消息做验证
? ? ? ? 由于签名不可伪造,甲方是不能否认自己发送的消息。
? ? ? ? 数字签名是单向的,如果需要双向,则需要两套公私钥,互相拥有对方的公钥
|