【密码学】常见密码算法分类和运用

一、摘要算法(Digest Algorithm)

摘要算法 是指把任意长度的输入消息数据转化为固定长度的输出数据的一种密码算法,又称为 散列函数哈希函数杂凑函数单向函数 等,通常用来做数据完整性的判定,即对数据进行哈希计算然后比较 摘要值 是否一致。

  • MD系列:常见 MD2、MD4、MD5
  • SHA 系列:常见 SHA-1、SHA-256、SHA-512
  • .MAC系列:常见 HMAC

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

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

  • DES/3DES:由于运算太耗时,已被逐步淘汰
  • AES:由DES升级而来,目前安全强度较高、应用范围较广
  • SM1:国密算法,硬件层面实现
  • SM4:国密算法,软件层面实现
AES/DES/DES3算法:
  • 常见加密模式(mode):ECB(只需要key),CBC(需要key和iv)
  • 常见填充模式(padding):pkcs5padding,pkcs7padding,no padding
  • keyiv为字符串格式时长度一般为16

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

非对称算法 是指加密和解密使用不同密钥的密码算法,又称为 公开密码算法公钥算法,该算法通常使用公钥加密-私钥解密,或私钥加密-公钥解密。
公钥:公开的密钥 私钥:必须保密的密钥

  • RSA:是当前最著名、应用最广泛的公钥系统,可用于数据加密和数据签名
  • SM2:国密算法,在我们国家商用密码体系中被用来替换RSA算法

四、加密算法的运用

  • 密码加密:在用户注册和登录的时候,通常对密码进行的加密有:password+salt后进行摘要算法MD5等,或者对密码进行RSA加密。

  • 数据签名:数据传输过程防止被中间人随意篡改数据,通常对参数字段进行数据签名(sign):data+salt后进行摘要算法MD5、SHA1等,或者对数据进行RSA加密。

  • 数据简单加密:传输数据前对数据进行加密,能稍微增加数据安全性。加密方式:RSA加密,在数据上传前进行数据的公钥加密,服务端私钥解密(数据太大时慎用,服务端解密会比较慢)。AES加密,在数据上传前进行数据,服务端用同一个密钥解密。

  • 数据混合动态加密:加密算法采用RSA+AES+MD5,采用动态密钥的方式来进行加密,此方法是现在应用很广泛且较为安全的加密方式,流程如下图:
    【密码学】常见密码算法分类和运用_第1张图片

你可能感兴趣的:(安全,算法,分类,安全)