简介
对称加密算法是应用较早的加密算法,技术成熟,也叫做传统密码算法。
数据发送方将明文(原始数据)和加密密钥(key)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,使用加密用的密钥和相同的算法的逆算法对密文进行解密,即可读取原文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。
特点
- 计算量小
- 加密速度快
- 加密效率高
- 算法公开
缺点
- 双方都使用同样的钥匙,安全性不能保证。
- 当用户量增多时,密钥的数量比较大,不好管理。
- 对称加密在分布式网络系统上使用困难,因为管理困难,使用成本高。
包含算法
DES(美国数据加密标准:Data Encryption Standard)
其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。
特点
- 分组比较短
- 密匙太短
- 密码生命周期短
- 运算速度慢
IDEA(国际数据加密算法:International Data Encryption Algorithm )商用
基于DES算法基础上发展而来。是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速
IDEA(International Data Encryption Algorithm)在密码学中属于数据块加密算法(Block Cipher)类。IDEA使用长度为128bit的密钥,数据块大小为64bit。从理论上讲,IDEA属于“强”加密算法,至今还没有出现对该算法的有效攻击算法。
IDEA是一种由8个相似圈(Round)和一个输出变换(Output Transformation)组成的迭代算法。IDEA的每个圈都由三种函数:模(216+1)乘法、模216加法和按位XOR组成。
在加密之前,IDEA通过密钥扩展(Key Expansion)将128bit的密钥扩展为52个加密密钥EK(Encryption Key),然后由EK计算出解密密钥DK(Decryption Key)。EK和DK分为8组半密钥,每组长度为6Byte,前8组密钥用于8圈加密,最后半组密钥(4Byte)用于输出变换。IDEA的加密过程和解密过程是一样的,只不过使用不同的密钥(加密时用EK,解密时用DK)。
密钥扩展的过程如下:
1. 将128bit的密钥作为EK的最初八个子密钥;
2. 将前8byte循环左移25bit,得到下一六个子密钥,将这个过程循环7次;
3. 在第7次循环时,取前4byte作为EK的最后4bit;
4. 至此52byte的EK生成完毕。
密钥扩展的过程如表1所示,为了能够清楚的看出每个8Byte的关系,在表1中用粗线条将将每个8Byte划分开了.
IDEA算法相对来说是一个比较新的算法,其安全性研究也在不断进行之中。在IDEA算法公布后不久,就有学者指出:IDEA的密钥扩展算法存在缺陷,导致在IDEA算法中存在大量弱密钥类,但这个弱点通过简单的修改密钥扩展算法(加入异或算子)即可克服。在1997年的EuroCrypt’97年会上,John Borst等人提出了对圈数减少的IDEA的两种攻击算法:对3.5圈IDEA的截短差分攻击(Truncate Diffrential Attack)和对3圈IDEA的差分线性攻击(Diffrential Linear Attack)。但作者也同时指出,这两种攻击算法对整8.5圈的IDEA算法不可能取得实质性的攻击效果。目前尚未出现新的攻击算法,一般认为攻击整8.5圈IDEA算法唯一有效的方法是穷尽搜索128bit的密钥空间。
网友评论