• 常见加密算法


    加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。在信息安全领域我们常用加密算法来达到以下3方面的安全目标:
      ①保密性:防止用户的数据被读取;
      ②数据完整性:防止数据被篡改;
      ③身份验证:确保数据发自特定的一方。

    常见的加密算法主要可分为3大类:对称加密、非对称加密、单向加密。

    对称加密

    定义:

      加密和解密使用相同密钥的加密算法,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密,所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。

    对称加密的优缺点:

      对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。

      对称加密算法的缺点是产生的密钥过多和密钥分发困难;

    常用算法:

      DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。

    加密过程(如图):

    非对称加密

    定义:

      与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;

    如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

    公钥:

      从私钥中提取产生;可公开给所有人;pubkey

    私钥:

    通过工具创建,使用者自己留存,必须保证其私密性;secret key

    特点:

      用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然

    用途:

      数字签名:主要在于让接收方确认发送方的身份;

      密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;

      数据加密

    常用算法:

      RSA, DSA, ELGamal,DSS数字签名标准 只能签名,DSA数字签名算法 既能签名又能解密

    加密过程(如图):

    单向加密

    定义:

      单向加密算法只能用于对数据的加密,无法被解密,其特点为定长输出、雪崩效应。单向加密算法用于不需要对信息进行解密或读取的场合,比如用来比较两个信息值是否一样而不需要知道信息具体内容,

    在实际中的一个典型应用就是对数据库中的用户信息进行加密,比如当创建一个新用户及密码时,将这些信息经过单向加密后再保存到数据库中。

    常见的算法包括:

      MD5、sha1、sha224等等,其常见用途包括:数字摘要、数字签名等等。

     附:PKI

    公钥基础设施PKI(Public KeyInfrastructure),是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系。

    简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施,PKI技术是信息安全技术的核心。由4个部分组成:

      ①签证机构:CA

      ②注册机构:RA

      ③证书吊销列表:CRL

      ④证书存取库

    X.509v3:定义了证书的结构以及认证协议标准:

      版本号、序列号、签名算法ID、发行者名称、有效期限、主体名称、主体公钥、发行者的惟一标识、主体的惟一标识、发行者的签名

    证书的申请、发布、使用:

    使用证书的通信过程:

    • 发送方对要传输消息原文进行hash,生成消息摘要,用发送方的私钥生成数字签名;
    • 随机生成对称秘钥,对原文加密,生成密文;
    • 用接收方公钥加密对称秘钥;
    • 将加密后的对称秘钥、数字签名与密文一通发送;
    • 接收方收到后,用自己的私钥解密对称秘钥;
    • 用对称秘钥解密密文,得到原文;
    • 对原文hash得到摘要,用发送方的公钥解密签名得到摘要,对比两份摘要。

    完整过程请参考文章:https://www.jianshu.com/p/c65fa3af1c01

  • 相关阅读:
    面向对象的-作用域
    什么时候会有作用域的形成
    面向对象-作用域
    1.3tableView向左滑动出现多个按钮操作
    tableView自带删除与添加操作
    使用偏好设置归档放到哪里
    使用RSA对数据进行加密
    12.22UIAlertController 使用
    在PCH中定制自己的LOG打印日志,分别在DEBUG 与 RELEASE的状态下处理,及如何把PCH引入到项目中
    在程序document文件夹里边创建新的文件夹及删除文件夹
  • 原文地址:https://www.cnblogs.com/walk1314/p/9087770.html
Copyright © 2020-2023  润新知