沙滩星空的博客沙滩星空的博客

常见的密码学算法分类总结

密码算法分类

密码算法分类特点常见算法
对称加密算法加密和解密使用相同的密钥分组密码算法: AES, 国密(SM1, SM4, SM7), DES, 3DES 流密码算法: RC2
非对称加密算法加密和解密用不同的密钥RSA, 国密(SM2, SM9), DSA, ECC, DH
摘要算法又称散列算法,哈希算法。无密钥,不可解密。把任意长度的数据计算成固定长度的数据。SM3, MD5, SHA256, HMACSHA1

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

加密和解密使用相同密钥的加密算法。 该算法又分为 分组密码算法(块加密算法) 和 流密码算法(序列密码算法).

分组密码算法 又称块加密算法:

  1. 将明文拆分为 N 个固定长度的明文块
  2. 用相同的秘钥和算法对每个明文块加密得到 N 个等长的密文块
  3. 然后将 N 个密文块按照顺序组合起来得到密文

流密码算法 又称序列密码算法

每次只加密或解密只处理一位或一字节明文或密文

  • 分组算法: 国密(SM1, SM4, SM7), AES, DES, 3DES, IDEA, RC2, RC5, RC6
  • 流密码算法: RC4, ZUC(国密祖冲之算法)

AES:安全强度较高、应用范围较广。密钥的长度能够为128、192和256位,也就是16个字节、24个字节和32个字节
SM1:国密,采用硬件实现
SM4:国密,可使用软件实现
DES/3DES:DES密钥长度64位(8字节), 3DES密钥长度为128位(k1 == k3时)或192位,即16或24个字节组成的字符串

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

非对称算法 指加密秘钥和解密秘钥不同的密码。 又称为 公开密码算法 或 公钥算法
加密秘钥可以公开,即 公钥加密
解密秘钥必须保密,即 私钥解密

非对称算法有 大数分解离散对数 2种:

  • 大数分解 RSA, DSA, ECDSA
  • 离散对数 国密(SM2, SM9), DH, DSA, ECC, ECDH

RSA密钥长度: 64整倍数(512、1024、2048位). 建议采用1024位的数字
ECC建议采用160位

摘要算法(Digest Algorithm)

摘要算法(散列算法,线性散列算法,签名算法),又称 散列函数 哈希函数 杂凑函数, 单向函数 等,是指把 任意长度 数据转化为 固定长度 数据的一种密码算法.

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

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

摘要算法分类:

  • MD系列(Message Digest,消息摘要算法): 包括 MD2、MD4、MD5
  • SHA系列(Secure Hash Algorithm,安全散列算法): 包括 SHA-1、SHA-2 系列(SHA-1 的衍生算法,包含
    SHA-224、SHA-256、SHA-384、SHA-512)
  • MAC系列(Message Authentication Code,消息认证码算法): 包括 HmacMD5、HmacSHA1、HmacSHA256、HmacSHA384 和 HmacSHA512 算法
  • 国密SM3

MD5值的长度: 二进制编码为128位(16字节), 十六进制编码长度为32位(还有16位的加密结果,只是从32位MD5散列中把中间16位提取出来)
SHA256值长度: 二进制编码256位,十六进制编码64位

国密算法

国密算法,即国家商用密码算法。 如SM系列密码算法。SM代表商密,即商业密码,用于商业用途。


常见密码算法分类 https://blog.csdn.net/qq_39852676/article/details/129318145
国密算法分类 https://zhuanlan.zhihu.com/p/577195882
Java中的散列算法、消息摘要算法、加密算法总结 https://blog.csdn.net/zcmain/article/details/99748873
未经允许不得转载:沙滩星空的博客 » 常见的密码学算法分类总结

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址