1.章节介绍
对称密钥密码模型
密码学基础假设
密码学科的分类
密码的分类(三大分类方法)
摘要算法(附加)
2.三大古典密码系统
2.1羊皮传书
置换密码
2.2藏头诗
隐写术
2.3Caesar
凯撒密码是最早的替代密码,是在军事领域应用最早的密码。
3.密码学基本术语
明文
密文
密钥
加密
解密
4.Kerckholf假设
密码学最基础的一个Kerckholf假设/公理:秘密必须全寓于密钥。
1.秘密必须全寓于密钥。
2.算法可以公开。(不公开可能别人知道漏洞但你不知道,公开后所有人都会琢磨这个算法的漏洞)
3.易用性:算法固定不容易改变,但易于更换密钥,方便使用。
注意:秘密必须全寓于密钥≠算法可以公开。目前商业或民用密码是公开的,军用密码不公开。
5.密码学科的分类
1.密码编码学:研究如何进行密码编码。
2.密码分析学:研究如何在不知道密钥的情况下,对密码进行攻击或破译。
3.密码学:包含了编码编码学和密码分析学。
实际使用过程中,用密码编码学替代密码学使用。
6.密码的分类(三大分类方法)
6.1 根据明文变成密文
替代密码
置换密码
乘积密码
6.2根据密钥的使用数量(或者加解密是否使用密钥一致)
对称密钥密码/单密钥密码/基于秘密密钥密码/传统加密密码
非对称密钥密码/双密钥/公开密钥的密码系统
6.3根据明文被处理的方式
对称算法 是指加密秘钥和解密秘钥相同的密码算法,又称为 秘密秘钥算法 或 单密钥算法 。该算法又分为 分组密码算法(Block cipher) 和 流密码算法(Stream cipher)。
分组密码:又称块加密算法,AES、SM1(国密)、SM4(国密)、DES、3DES、IDEA、RC2
加密步骤一:将明文拆分为 N 个固定长度的明文块
加密步骤二:用相同的秘钥和算法对每个明文块加密得到 N 个等长的密文块
加密步骤三:然后将 N 个密文块按照顺序组合起来得到密文
流密码:又称序列密码算法,流密码是一种常见的加密算法,基于异或 (XOR)操作,每次只操作一个字节,常见的流密码加密算法有:RC4、ORYX、SEAL。
加密:每次只加密一位或一字节明文
解密:每次只解密一位或一字节密文
AES:目前安全强度较高、应用范围较广的对称加密算法
SM1:国密,采用硬件实现
SM4:国密,可使用软件实现
DES/3DES:已被淘汰或逐步淘汰的常用对称加密算法
附加:常见非对称算法包括 RSA、SM2(国密)、DH、DSA、ECDSA、ECC 等。
7.摘要算法(附加)
密码算法主要分为三类:对称密码算法、 非对称密码算法、摘要算法。
摘要算法 是指把任意长度的输入消息数据转化为固定长度的输出数据的一种密码算法,又称为 散列函数 、 哈希函数 、 杂凑函数 、单向函数 等。
摘要算法所产生的固定长度的输出数据称为 摘要值 、 散列值 或 哈希值 ,摘要算法无秘钥。
摘要算法 通常用来做数据完整性的判定,即对数据进行哈希计算然后比较 摘要值 是否一致。
摘要算法主要分为三大类:MD(Message Digest,消息摘要算法)、SHA-1(Secure Hash Algorithm,安全散列算法)和 MAC(Message Authentication Code,消息认证码算法);另国密标准 SM3 也属于摘要算法。
MD 系列 主要包括 MD2、MD4、MD5
SHA 系列 主要包括 SHA-1、SHA-2 系列(SHA-1 的衍生算法,包含 SHA-224、SHA-256、SHA-384、SHA-512)
MAC 系列 主要包括 HmacMD5、HmacSHA1、HmacSHA256、HmacSHA384 和 HmacSHA512 算法