首页 > 技术文章 > 加密

Tzyyviki 2021-04-20 15:01 原文

加密


1. 对称加密

对称加密采用单钥密码的加密方法,同一个密钥可以同时用来加密和解密,这种加密方法被称为对称加密,也称为单密钥加密


常用的单项加密算法:

  • DES(Data Encryption Standard):数据加密标准,速度快,适用于大量数据的场合
  • 3DES(Triple DES):是基于 DES,对一块数据用三个不同的密钥进行三次加密,强度更高
  • AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高
  • Blowfish

算法特征:

  1. 加密方和解密方使用同一个密钥
  2. 加密解密的速度比较快,适合数据比较长时的使用
  3. 密钥传输的过程不安全,容易被破解,密钥管理也比较麻烦
  4. 支持 128 192 256 512 位密钥的加密

加密工具:

  1. openssl:它使用了 libcrypto 加密库、libssl 库,即 TLS/SSL 协议的实现库等,TLS/SSL 是基于会话的,实现了身份认证,数据机密性和会话完整性的 TLS/SSL 库
  2. gpg

2. 单向散列加密

单向加密又称为不可逆加密算法,其密钥是由加密散列函数生成的,单向散列函数一般用于产生消息摘要,密钥加密等


常见的单向散列加密:

  • MD5(Message Digest Algorithm 5):是 RSA 数据安全公司开发的一种单向散列算法,非可逆的,相同的明文产生相同的密文
  • SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个 160 位的数值,其变种由 SHA192 SHA256 SHA384等
  • CRC-32:主要用于提供校验功能

算法特征:

  1. 输入一致,输出必然相同
  2. 雪崩效应:输入微小的改变,将会引起输出巨大的变化
  3. 定长输出:无论原始数据多大,结果都是相同长度
  4. 不可逆:无法根据特征码还原原来的数据

加密工具:

  1. md5sum
  2. sha1sum
  3. openssl dgst

3. 非对称加密

非对称密钥加密也称为公钥加密,由一对公钥和私钥组成,公钥是从私钥取出来的,可以用公钥加密,在用私钥解密,这种情形一般用于公钥加密,也可以用私钥加密,用公钥解密,常用于数字签名,因此,非对称加密的主要功能就是加密和数字签名


常用非对称加密算法:

  • RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的
  • DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准)
  • ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学
  • ECC 和 RSA 相比,在许多方面都有对绝对的优势,主要体现在以下方面:
    • 抗攻击性强:相同的密钥长度,其抗攻击性要强很多倍
    • 计算量小,处理速度快:ECC 总的速度比 RSA、DSA 要快得多
    • 存储空间占用小:ECC 的密钥尺寸和系统参数与 RSA、DSA 相比要小得多,意味着它所占的存贮空间要小得多
    • 带宽要求低:当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时 ECC 带宽要求却低得多

算法特征:

  1. 密钥对:公钥(publuc key)私钥(secret key)
  2. 主要功能:加密和签名
    1. 发送方用对方的公钥加密,可以保证数据的机密性(公钥加密)
    2. 发送方用自己的私钥加密,可以实现身份验证(数字签名)
    3. 公钥传输的过程不安全,容易被窃取和替换
    4. 由于公钥使用的密钥长度非常长,所以公钥加密速度非常慢,一般不使用其去加密

加密工具:

  1. gpg
  2. openssl

推荐阅读