电子发烧友网 > 控制/MCU > 正文

DES、AES、TEA加密算法的比较

2011年08月26日 10:48 次阅读

 

1.     DES算法介绍

DES 算法具有对称性既可以用于加密又可以用于解密。对称性带来的一个很大的好处在于硬件实现, DES 的加密和解密可以用完全相同的硬件来实现。DES 算法的明文分组是64 输出密文也是64 位。所以密钥的有效位数是56 加上校验位共64 位。总体流程如表所示:输入的64 位明文先经初始IP 变换形成64 位数据,64 位数据被分为两部分分别是部分和部分; L 经过16 次迭代形成新的64 新的64 位数据再经初始逆变换输出64 位密文。初始置换和逆初始置换是简单的移位操作。在迭代过程这一步骤替代是在密钥控制下进行的而移位是按固定顺序进行的它将数据分组作为一个单元来进行变换相继使用替代法和移位法加密,从而具有增多替代和重新排列的功能。迭代过程是DES 加密算法的核心部分。

2.     AES算法Rijndael介绍

AES算法Rijndael 密码是一个迭代型分组密码其分组长度和密码长度都是可变的,分组长度和密码长度可以独立的指定为128 比特,192 比特或者256 比特。AES 的加密算法的数据处理单位是字节,128 位的比特信息被分成16 个字节按顺序复制到一个4&TImes;的矩阵中称为状态(state),AES 的所有变换都是基于状态矩阵的变换。用Nr 表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表所示。在轮函数的每一轮迭代中包括步变换分别是字节代换运算(ByteSub())、行变换(ShiftRows())、列混合(MixColumns())以及轮密钥的添加变换(AddRoundKey()), 其作用就是通过重复简单的非线形变换、混合函数变换将字节代换运算产生的非线性扩散达到充分的混合在每轮迭代中引入不同的密钥从而实现加密的有效性

3.    DESAES算法比较:

DES算法1977年首次公诸于世以来,学术界对其进行了深入的研究,围绕它的安全性等方面展开了激烈的争论。在技术上,DES的批评主要集中在以下几个方面:

( 1) 作为分组密码,DES的加密单位仅有64位二进制,这对于数据传输来说太小,因为每个分组仅含8个字符,而且其中某些位还要用于奇偶校验或其他通讯开销。

( 2) DES的密钥的位数太短,只有56比特,而且各次迭代中使用的密钥是递推产生的,这种相关必然降低密码体制的安全性在现有技术下用穷举法寻找密钥已趋于可行。

(3) DES不能对抗差分和线性密码分析。迄今为止, DES算法中的S8个选择函数矩阵的设计原理因美国政府方面的干预不予公布。从这一方面严格地讲DES算法并不是一个真正的公开加密算法。。

( 4) DES用户实际使用的密钥长度为56bit, 理论上最大加密强度为256DES算法要提高加密强度(例如增加密钥长度), 则系统开销呈指数增长。除采用提高硬件功能和增加并行处理功能外,从算法本身和软件技术方面无法提高DES算法的加密强度。

相对DES算法来说,AES算法无疑解决了上述问题,主要表现在如下几方面:

( 1) 运算速度快,在有反馈模式、无反馈模式的软硬件中,Rijndael都表现出非常好的性能。

( 2) 对内存的需求非常低,适合于受限环境。

( 3) Rijndael是一个分组迭代密码,分组长度和密钥长度设计灵活。

( 4) AES标准支持可变分组长度,分组长度可设定为32比特的任意倍数,最小值为128比特,最大值为256比特。

( 5) AES的密钥长度比DES,它也可设定为32比特的任意倍数,最小值为128比特,最大值为256比特所以用穷举法是不可能破解的。在可预计的将来,如果计算机的运行速度没有根本性的提高,用穷举法破解AES密钥几乎不可能。

( 6) AES算法的设计策略是宽轨迹策略(Wide Trail Strategy, WTS)WTS是针对差分分析和线性分析提出的,可对抗差分密码分析和线性密码分析。总之,Rijndael算法汇聚了安全性、效率高、易实现性和灵活性等优点,是一种较DES更好的算法。

4.     TEA

TEA(TIny EncrypTIon Algorithm) 是一种简单高效的加密算法,以加密解密速度快,实现简单著称。算法真的很简单,TEA算法每一次可以操作64-bit(8-byte),采用128-bit(16-byte)作为key,算法采用迭代的形式,推荐的迭代轮数是64轮,最少32轮。目前我只知道QQ一直用的是16TEA。没什么好说的,先给出C语言的源代码(默认是32)

 1 void encrypt(unsigned long *v, unsigned long *k) {
 2     unsigned long y=v[0], z=v[1], sum=0, i;         /* set up */
 3     unsigned long delta=0x9e3779b9;                 /* a key schedule constant */
 4     unsigned long a=k[0], b=k[1], c=k[2], d=k[3];   /* cache key */
 5     for (i=0; i < 32; i++) {                        /* basic cycle start */
 6         sum += delta;
 7         y += ((z<<4) + a) ^ (z + sum) ^ ((z>>5) + b);
 8         z += ((y<<4) + c) ^ (y + sum) ^ ((y>>5) + d);/* end cycle */
 9     }
10     v[0]=y;
11     v[1]=z;
12 }
13 
14 void decrypt(unsigned long *v, unsigned long *k) {
15     unsigned long y=v[0], z=v[1], sum=0xC6EF3720, i; /* set up */
16     unsigned long delta=0x9e3779b9;                  /* a key schedule constant */
17     unsigned long a=k[0], b=k[1], c=k[2], d=k[3];    /* cache key */
18     for(i=0; i<32; i++) {                            /* basic cycle start */
19         z -= ((y<<4) + c) ^ (y + sum) ^ ((y>>5) + d);
20         y -= ((z<<4) + a) ^ (z + sum) ^ ((z>>5) + b);
21         sum -= delta;                                /* end cycle */
22     }
23     v[0]=y;
24     v[1]=z;
25 }

技术专区

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

关于几种常用加密算法比较

AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为128、...

发表于 2018-03-19 09:21 906次阅读
关于几种常用加密算法比较

详解WiFi技术特点和不足之处

无线技术也分不同种类,通常以产生无线信号的方式来区分,目前主要的方式有调频无线技术、红外无线技术和蓝...

发表于 2017-12-20 15:10 2581次阅读
详解WiFi技术特点和不足之处

idea加密算法及原理详解

IDEA加密算法是一个分组长度为64比特的分组密码算法,密钥长度为128比特,由8轮迭代操作实现。每...

发表于 2017-12-11 08:48 877次阅读
idea加密算法及原理详解

des加密解密算法详解及源码分享

DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的...

发表于 2017-12-09 09:10 1154次阅读
des加密解密算法详解及源码分享

rsa加密算法详解与举例说明

RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就...

发表于 2017-12-08 17:41 262次阅读
rsa加密算法详解与举例说明

解读保护数据安全的八种软件加密算法

对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥...

发表于 2017-11-28 10:18 2445次阅读
解读保护数据安全的八种软件加密算法

一种AES密码算法的实现

一种AES算法实现是采用轮展开的流水线结构,吞吐量很大可达到10 Gb/s量级,但消耗大量的逻辑面积...

发表于 2017-11-23 11:38 186次阅读
一种AES密码算法的实现

专家支招:如何确保智能电表的安全性?

随着自动化解决方案在自动抄表系统(AMR)、自动计量系统(AMI)及智能电网基础设施中越来越广泛的部...

发表于 2013-07-02 16:34 1563次阅读
专家支招:如何确保智能电表的安全性?

AES中的字节替换的FPGA实现

介绍 AES 中的字节替换算法原理并阐述基于FPGA的设计和实现。为了提高系统工作速度,在设计中应用...

发表于 2011-09-27 15:54 2551次阅读
AES中的字节替换的FPGA实现

AES算法在PVR机顶盒中的应用研究

本文在分析AES加密算法原理的基础上,着重说明算法的实现步骤,用C语言完整地实现了AES算法的加/解...

发表于 2011-09-24 01:00 604次阅读
AES算法在PVR机顶盒中的应用研究

XXTEA加密算法的原理及其C语言实现

在数据的加解密领域,算法分为对称密钥与非对称密钥两种。对称密钥与非对称密钥由于各自的特点,所应用的领...

发表于 2011-08-25 17:59 4707次阅读
XXTEA加密算法的原理及其C语言实现

XXTEA加密算法的KEIL C实现

本内容提供了XXTEA加密算法的KEIL C实现,详细列出了程序共大家学习

发表于 2011-08-25 17:57 1513次阅读
XXTEA加密算法的KEIL C实现

基于FPGA的DES、3DES硬件加密技术

传统的加密工作是通过在主机上运行加密软件实现的。这种方法除占用主机资源外,运算速度较慢,安全性也较差...

发表于 2010-10-16 10:48 429次阅读
基于FPGA的DES、3DES硬件加密技术

基于FPSLIC设计的DES解密和AES的分组加...

  1 引言   美国Atmel公司生产的AT94K系列芯片是以Atmel0.35的5层金属CMO...

发表于 2010-09-01 17:14 299次阅读
基于FPSLIC设计的DES解密和AES的分组加...

AES算法中S-box和列混合单元的优化及FPG...

AES算法中S-box和列混合单元的优化及FPGA技术实现 由于其较高的保密级别,AES算法被用来...

发表于 2010-04-23 09:34 496次阅读
AES算法中S-box和列混合单元的优化及FPG...

一种密钥可配置的DES加密算法的FPGA

一种密钥可配置的DES加密算法的FPGA 摘 要: 在传统的DES加密算法的基础上,提出一种对密钥...

发表于 2009-09-19 09:14 410次阅读
一种密钥可配置的DES加密算法的FPGA

基于FPGA的DES、3DES硬件加密技术

基于FPGA的DES、3DES硬件加密技术 传统的加密工作是通过在主机上运行加密软件实现的。这种方...

发表于 2009-07-26 22:35 344次阅读
基于FPGA的DES、3DES硬件加密技术

利用汇编语言实现DES加密算法

利用汇编语言实现DES加密算法 DES算法是一种数据加密算法。自从1977年公布以来,一直是国际上...

发表于 2009-04-07 09:24 415次阅读
利用汇编语言实现DES加密算法

TEA1062通话电路

TEA1062通话电路

发表于 2009-03-04 20:21 2086次阅读
TEA1062通话电路

TEA2107应用电路

TEA2107应用电路

发表于 2008-09-28 09:59 340次阅读
TEA2107应用电路

TEA2015a应用电路

TEA2015a应用电路

发表于 2008-09-28 09:58 265次阅读
TEA2015a应用电路

TEA2014应用电路

TEA2014应用电路

发表于 2008-09-28 09:55 472次阅读
TEA2014应用电路

TEA2018 TEA2018A应用电路

TEA2018 TEA2018A应用电路

发表于 2008-09-28 09:54 720次阅读
TEA2018 TEA2018A应用电路

TEA2026引脚功能的电压资料参数

TEA2026引脚功能的电压资料参数 1     ...

发表于 2008-07-10 17:19 1337次阅读
TEA2026引脚功能的电压资料参数

TEA2260引脚功能的电压资料参数

TEA2260引脚功能的电压资料参数      ...

发表于 2008-07-10 16:36 423次阅读
TEA2260引脚功能的电压资料参数

TEA2261引脚功能的电压资料参数

TEA2261引脚功能的电压资料参数      ...

发表于 2008-07-10 16:23 2314次阅读
TEA2261引脚功能的电压资料参数

TEA2015A引脚功能的电压参数资料

TEA2015A引脚功能的电压参数资料 1    &nbs...

发表于 2008-07-10 16:18 302次阅读
TEA2015A引脚功能的电压参数资料

TEA5114A各引脚功能的电压资料

TEA5114A各引脚功能的电压资料 引脚 功  &...

发表于 2008-03-10 22:15 493次阅读
TEA5114A各引脚功能的电压资料

TEA6415C各引脚功能的电压资料

TEA6415C各引脚功能的电压资料 脚号 功能说明

发表于 2008-03-10 22:14 337次阅读
TEA6415C各引脚功能的电压资料

TEA5101各引脚功能的电压资料

TEA5101各引脚功能的电压资料 脚号 电压/V 红笔

发表于 2008-03-10 22:13 1874次阅读
TEA5101各引脚功能的电压资料