目录

密码学基础(一)常见密码算法分类

密码算法主要分为三类:对称密码算法、 非对称密码算法、摘要算法。

一、对称密码算法(Symmetric-key Algorithm)

对称算法 是指加密秘钥和解密秘钥相同的密码算法,又称为 秘密秘钥算法单密钥算法

该算法又分为 分组密码算法(Block cipher)流密码算法(Stream cipher)

  • 分组密码算法
    • 又称块加密算法
    • 加密步骤一:将明文拆分为 N 个固定长度的明文块
    • 加密步骤二:用相同的秘钥和算法对每个明文块加密得到 N 个等长的密文块
    • 加密步骤三:然后将 N 个密文块按照顺序组合起来得到密文
  • 流密码算法
    • 又称序列密码算法
    • 加密:每次只加密一位或一字节明文
    • 解密:每次只解密一位或一字节密文

常见的分组密码算法包括 AES、SM1(国密)、SM4(国密)、DES、3DES、IDEA、RC2 等;常见的流密码算法包括 RC4 等。

  • AES:目前安全强度较高、应用范围较广的对称加密算法
  • SM1:国密,采用硬件实现
  • SM4:国密,可使用软件实现
  • DES/3DES:已被淘汰或逐步淘汰的常用对称加密算法

二、非对称密码算法(Asymmetric-key Algorithm)

非对称算法 是指加密秘钥和解密秘钥不同的密码算法,又称为 公开密码算法公钥算法,该算法使用一个秘钥进行加密,用另外一个秘钥进行解密。

  • 加密秘钥可以公开,又称为 公钥
  • 解密秘钥必须保密,又称为 私钥

常见非对称算法包括 RSA、SM2(国密)、DH、DSA、ECDSA、ECC 等。

三、摘要算法(Digest Algorithm)

摘要算法 是指把任意长度的输入消息数据转化为固定长度的输出数据的一种密码算法,又称为 散列函数哈希函数杂凑函数单向函数 等。

摘要算法所产生的固定长度的输出数据称为 摘要值散列值哈希值 ,摘要算法无秘钥。

摘要算法 通常用来做数据完整性的判定,即对数据进行哈希计算然后比较 摘要值 是否一致。

摘要算法主要分为三大类: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 算法