加密

加密和解密

  1. 加密:在密码学中,加密是将明文信息隐匿起来,使之在缺少特殊信息时不可读。
  2. 解密:加密的逆过程。
  3. 加密算法:在如今的信息安全领域,有各种各样的加密算法凝聚了计算机科学家门的智慧。从宏观上来看,这些加密算法可以归结为三大类:哈希(Hash)算法、对称加密算法、非对称加密算法

对称加密

  1. 对称加密:是指加密和解密使用相同密钥的加密算法。数据发送方将原始数据通过加密密钥进行特殊的加密处理,生成加密密文发送给对方,数据接收方收到密文之后通过事先约定好的相同的密钥对密文进行解密,解密之后得到有价值的原始数据。
  2. 常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES
    • DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。 DES采用分组加密,以 64位为 分组对数据 加密,它的 密钥长度 是 56 位。
    • 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
    • AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高(微信小程序加密传输就是用AES);AES采用 对称分组密码体制,密钥长度的可以为 128位、192位、256位,分组长度128位。
    • IDEA(International Data Encryption Algorithm):国际数据加密算法;IDEA加密算法是一个分组长度为64位的分组密码算法,密钥长度为128位。
    • RC5是一种非常快速且简单的算法,由块尺寸、轮数和密钥长度参数化。这些参数能被调整以满足不同的安全目的、性能和出口能力。
    • RC6加密算法是在RC5基础上发展起来的,按照AES的要求设计的新型加密算法。跟RC5类似,RC6使用的是相关数据循环移位的思想。
  3. 优点:算法公开、计算量小、加密速度快、加密效率高。
  4. 缺点:秘钥的管理和分发非常困难,不够安全。

非对称加密

  1. 非对称加密:是指加密和解密使用不同密钥的加密算法,它需要公钥 (public key)和 私钥 (private key)两个密钥。甲方生成 一对密钥 并将其中的一把作为 公钥 向其它人公开,得到该公钥的 乙方 使用该密钥对机密信息 进行加密 后再发送给甲方,甲方再使用自己保存的另一把 专用密钥 (私钥),对 加密 后的信息 进行解密
  2. 常见的非对称加密算法:RSA、ECC(移动设备用)、ElGamal、DSA(数字签名用)
    • RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。
    • DSA(Digital Signature Algorithm):数字签名算法,是一种标准的DSS(数字签名标准)。
    • ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。相比RSA等公钥算法,使用较短的密钥长度而能得到相同程度的安全性。
    • ElGamal加密算法是一个基于迪菲-赫尔曼密钥交换的非对称加密算法,ElGamal加密算法可以定义在任何循环群G上,它的安全性取决于G上的离散对数难题。
  3. 优点:安全性更高。
  4. 缺点:速度慢。

摘要(Hash)算法

  1. Hash算法是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
  2. 常见的摘要算法有: MD2、MD4、MD5、HMAC、SHA
    • MD5(Message Digest Algorithm 5):是RSA公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。
    • SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值。
    • HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。

数字证书和数字签名

  1. 信息安全三要素:

    • 保密性(Confidentiality):信息在传输时不被泄露
    • 完整性(Integrity):信息在传输时不被篡改
    • 有效性(Availability):信息的使用者是合法的

    这三要素统称为CIA Triad。公钥密码解决保密性问题,数字签名解决完整性问题和有效性问题

  2. 数字签名:数字签名用来证明消息是某个特定的人发送的(有效性);除此之外,数字签名还能证明消息没有被篡改(完整性)。

    数字签名是公钥密码的逆应用:用私钥加密消息,用公钥解密消息。

    拥有私钥的用户用私钥加密的消息称为签名,用公钥解密签名这一步称为验证签名

  3. 数字证书:数字证书一般是CA机构颁发的;证书一般包含:公钥,公钥的数字签名,公钥拥有者的信息。CA是一个可信的机构,CA提供的公钥等都是合法的。

原文地址:https://www.cnblogs.com/yangyu-IoT/p/12889961.html