`

DES/3DES/AES区别

阅读更多
公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。



DES

  1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DESData Encryption Standard) 。

  目前在国内,随着三金工程尤其是金卡工程的启动,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。



  DES算法的入口参数有三个:Key、Data、Mode。

  其中Key为8个字节共64位,是DES算法的工作密钥;

  Data也为8个字节64位,是要被加密或被解密的数据;

  Mode为DES的工作方式,有两种:加密或解密。



  DES算法是这样工作的:

  如Mode为加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果;

  如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。

  在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样,便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。

  通过定期在通信网络的源端和目的端同时改用新的Key,便能更进一步提高数据的保密性,这正是现在金融交易网络的流行做法。





3DES

  3DES是DES加密算法的一种模式,它使用3条64位的密钥对数据进行三次加密。数据加密标准(DES)是美国的一种由来已久的加密标准,它使用对称密钥加密法。

  3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。



  设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密表,这样,

  3DES加密过程为:C=Ek3(Dk2(Ek1(P)))

  3DES解密过程为:P=Dk1((EK2(Dk3(C)))

  K1、K2、K3决定了算法的安全性,若三个密钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。若数据对安全性要求不那么高,K1可以等于K3。在这种情况下,密钥的有效长度为112位。




AES


  AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高。

  用AES加密2000年10月,NIST(美国国家标准和技术协会)宣布通过从15种候选算法中选出的一项新的密匙加密标准。Rijndael被选中成为将来的 AES。Rijndael是在1999年下半年,由研究员Joan Daemen 和 Vincent Rijmen 创建的。AES正日益成为加密各种形式的电子数据的实际标准。

  美国标准与技术研究院(NIST)于2002年5月26日制定了新的高级加密标准(AES)规范。



  AES算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。

  AES使用几种不同的方法来执行排列和置换运算。AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。

  与公共密钥加密使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。

该博文转自:http://www.cnblogs.com/wei2yi/p/3484170.html
分享到:
评论

相关推荐

    DES/IDEA/AES/MD5/SHA-1调试参考

    无意弄到的资源,文件的205页开始有DES/IDEA/AES/MD5/SHA-1算法的中间过程数据输出, 希望对大家有帮助

    Unity实现DES/AES/SM4加密算法及界面

    密码学大作业,借助unity平台用C#实现DES、AES、SM4等加密算法,并以界面表示。

    Win32API 实现 AES/DES/3DES 加密,包括零填充

    第三,我只放了最常用的三种对称加密 AES/DES/3DES,至于 RC4 之流就不做示范了,那种还不如自己写纯源码;。第四,RSA 没有放进去,说实话 CSP 的 RSA 弱得要命,又慢,限制又多,将来会放进去(其实主要是我自己也...

    AES DES RC2 RC4 3DES加密解密工具

    AES DES RC2 RC4 3DES加密解密工具,支持多种加密解密算法,打CTF比赛再也不用去网页搜索了!

    AES/DES加密

    然而,由于其密钥长度较短,现代计算机已能快速破解DES,因此现在多用作教学示例或作为更强大算法如3DES的基础。 **AES加密** AES,又称为Rijndael加密法,是2001年由国际标准化组织ISO和IEC选定的新一代加密标准...

    Java加密工具类,AES/DES/MD5/SHA/3DES

    这些文件名表明了几个关键的加密算法实现,包括AES(高级加密标准)、DES(数据加密标准)、MD5(消息摘要算法5)、SHA(安全散列算法)以及3DES(三重DES)。下面我们将详细探讨这些加密工具类在Java中的应用及其...

    DES.AES.3DES加密

    在原有的AES加密的基础上又添加了DES加密,注释详细,可直接导入工程

    AES/ECB/PKCS5Padding 算法

    AES/ECB/PKCS5Padding 算法,用于数据加密,实现方式为Java。AES加密算法是密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准

    C++Aes/Des/Md5数据、文件加解密demo

    然而,由于其相对较短的密钥长度,现在的DES被认为不够安全,通常会用它的加强版3DES(Triple DES)来提高安全性,3DES通过应用DES三次来增强安全性。 MD5(Message-Digest Algorithm 5)是一种哈希函数,而非加密...

    AES,DES,3DES,RSA加密工具类

    常用对称加密(AES/DES/3DES)及非对称加密(RSA)工具类

    Java解决AES加密解密 ( AES/ECB/PKCS5Padding )

    JAVA解决AES ECB 模式下加密解密;附加国内三方AES加密网站---http://tool.chacuo.net/cryptaes;如有用解决您工作问题,烦请点个赞

    [CryptAPI]纯windowsAPI计算AES/DEA/3DES,RSA加密解密,RSA签名验签,HMAC,散列等

    AES、DES、3DES 的(ECB/CBC/OFB/CFB/CTS 模式)。RC2 RC4。RSA密钥对生成。RSA公钥加密/私钥解密。RSA签名/验签。各种散列:MD2/MD4/MD5,SHA/SHA1/SHA256/SHA384/SHA512。HMAC算法,支持 hmac-md5 hmac-sha1 hmac-...

    android AES DES MD5加密

    AES(Advanced Encryption Standard)、DES(Data Encryption Standard)和MD5(Message-Digest Algorithm 5)都是常见的加密算法,它们各有特点,适用于不同的安全需求。 AES(高级加密标准)是目前广泛使用的对称...

    对接java AES/ECB/PKCS7Padding加密

    3. **编码格式**:加密后的结果通常为二进制,需要转化为16进制字符串方便传输和存储。Java中可以使用`new String(Base64.getEncoder().encode(cipher.doFinal(plaintext.getBytes("UTF-8")),"UTF-8")`,PHP则可以...

    Delphi的加解密封装单元 - Cryptography (目前只支持AES/DES/MD5)

    在这个特定的场景中,我们关注的是一个名为"Cryptography"的封装单元,它专门为Delphi开发者提供了对AES、DES和MD5加密算法的支持。 **AES(Advanced Encryption Standard)**是目前最广泛使用的对称加密算法之一,...

    AES/CBC/PKCS5Padding/ 加解密

    - AES:AES是高级加密标准,由NIST(美国国家标准与技术研究所)在2001年标准化,取代了之前的DES加密标准。它有三种不同尺寸的密钥,分别是128位、192位和256位,其中128位是最常用的。 - CBC(Cipher Block ...

    Delphi XE2+标准AES加解密算法(AES/EBC,CBC/PKCS5Padding-base64)

    实现了AES/ECB/PKCS5Padding、AES/CBC/PKCS5Padding 密钥长度128/192/256bit,密钥0填充。是标准的AES算法,支持在线AES加解密网站互解。 本源码从CSDN一位前辈的源码基础上做了更改,增加支持加密返回BASE64,更加...

    java Des/3Des/含向量DES加解密可与C语言DES互相加解密(包含 javabase64 )

    由于原始DES的安全性在现代计算环境中已经相对较弱,因此3DES(Triple DES)应运而生,它是通过三次应用DES算法来增强其安全性。在3DES中,数据首先用一个密钥加密,然后用第二个密钥解密,最后再用第一个密钥加密,...

    C++和JAVA,AES/ECB/PKCS5Padding 互通

    1. **AES(Advanced Encryption Standard)**:是一种用于数据加密的对称密钥算法,由NIST(美国国家标准与技术研究所)在2001年发布,取代了之前的DES(数据加密标准)。AES支持多种块大小(128位)和密钥长度(128...

Global site tag (gtag.js) - Google Analytics