• 总结下对称加密算法


    对称加密算法

            所有的对称加密都有一个共同的特点:加密和解密所用的密钥是相同的。

      现代对称密码可以分为序列密码和分组密码两类:序列密码将明文中的每个字符单独加密后再组合成密文;而分组密码将原文分为若干个组,每个组进行整体加密,其最终加密结果依赖于同组的各位字符的具体内容。也就是说,分组加密的结果不仅受密钥影响,也会受到同组其他字符的影响。

     

     

    序列密码

     

    分组密码

      序列密码的安全性看上去要更弱一些,但是由于序列密码只需要对单个位进行操作,因此运行速度比分组加密要快得多。目前的分组密码都比序列密码要更安全一点。在实际运用中最常被使用的是分组密码。这其中应用最经典和最广泛的就是数据加密标准(DES)和高级加密标准(AES)。

      在对称加密算法中常用的算法有:DES3DES、AES、TDEA、Blowfish、RC2等。DES加密与AES加密其算法特征为:

    明文 <-> 密钥 <-> 密文

    所以和非对称加密最大的不同就是它能通过密钥“倒推”解密。

    常见三种对称加密算法对比图如下:

     

    • DES加密算法:1977年美国标准局(NBS)发布的数据加密标准(DES),并且在20年内都是美国政府所使用的标准加密方式。它是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。但不幸的是2000年高级加密标准AES出来后它就被干掉了。
    • 3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高;
    • AES加密算法:AES至今仍然是最强大的对称加密算法,目前还不存在从技术上有效破解AES的方法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准,AES标准用来替代原先的DES,已经被多方分析且广为全世界所使用。

    使用DES/AES加密时需要了解一些参数:

    • 密钥长度:128-bit、192-bit、256-bit
    • 加密模式:CBC、ECB、CFB、OFB、CTR
    • 填充方式:pkcs5padding、pkcs7padding、zeropadding、iso1026、ansix923
    • 加密结果编码方式:base64编码、16进制编码

    无论什么语言平台,AES的算法总是相同的,但加密时设置的参数不一致会导致加密的结果不同,但都能用同一密钥解密出同一个明文。

    验证: 在线DES/AES加密

  • 相关阅读:
    Python面向对象
    Python
    05、Win7上openSSH的安装与配置
    关于C++中的类型转换
    正确地使用智能指针
    为多态基类声明多态析构函数
    透视校正插值(Perspective-Correct Interpolation)
    保持const和non-const函数代码的一致
    第二章 信息的表示和处理
    《Linux内核分析》课程总结
  • 原文地址:https://www.cnblogs.com/kumata/p/10519548.html
Copyright © 2020-2023  润新知