信息加密技术——对称密码体制
对称密码体制(symmetricencryption)也称为秘密密钥密码体制、单密钥密码体制或常规密码体制,其模型如图3-4所示。如果一个密码算法的加密密钥和解密密钥相同,或者由其中一个很容易推导出另一个,该算法就是对称密码算法,满足关系M= Dk (C)=Dk (Ek(M))。
对称密码体制的安全性主要取决于两个因素:
- 一是加密算法必须足够安全,使得不必为算法保密,仅根据密文就能破译出消息是计算上不可行的;
- 二是密钥的安全性,即密钥必须保密并保证有足够大的密钥空间。对称密码体制要求基于密文和加密/解密算法的知识能破译出消息的做法在计算上是不可行的。
对称密码算法的优缺点如下:
(1)优点:
- 加密、解密处理速度快,保密度高等。
(2)缺点:
- ①密钥是保密通信安全的关键,发信方必须安全、妥善地把密钥护送到收信方,不能泄露其内容。如何才能把密钥安全地送到收信方,是对称密码算法的突出问题。对称密码算法的密钥分发过程复杂,所花代价高;
- ②多人通信时密钥组合的数量会出现爆炸性膨胀,使密钥分发更加复杂化,若有N个用户进行两两通信,总共需要的密钥数为N(N-1)/2个;
- ③通信双方必须统一密钥,才能发送保密的信息。如果发信人与收信人素不相识,这就无法向对方发送秘密信息了;
- ④除了密钥管理与分发问题外,对称密码算法还存在数字签名困难问题(通信双方拥有同样的消息,接收方可以伪造签名,发送方也可以否认发送过某消息)。
对称密码体制分为两类:
- 一类是对明文的单个位(或字节)进行运算的算法,称为序列密码算法,也称为流密码算法(streamcipher);
- 另一类是把明文信息划分成不同的块(或小组)结构,分别对每个块(或小组)进行加密和解密,称为分组密码算法(Blockcipher)。
一 、序列密码:
序列密码分为同步序列密码和自同步序列密码两种。
- 同步序列密码要求发送方和接收方必须是同步的,在同样的位置用同样的密钥才能保证正确的密。如果在传输过程中密文序列有被篡改、删除、插人等错误导致同步失效,则不可能成功解密,只能通过重新同步来实现解密、恢复密文。在传输期间,一个密文位的改变只影响该位的恢复,不会对后继位产生影响。
- 自同步序列密码密钥的产生与密钥和已产生的固定数量的密文位有关,因此,密文中产生的一个错误会影响到后面有限位的正确解密。所以,自同步密码的密码分析比同步密码的密码分析更加困难。序列密码具有实现简单、便于硬件计算、加密与解密处理速度快、低错误(没有或只有有限位的错误)传播等优点,但同时也暴露出对错误的产生不敏感的缺点。序列密码涉及大量的理论知识,许多研究成果并没有完全公开,这也许是因为序列密码目前主要用于军事和外交等机要部门的缘故。目前,公开的序列密码主要有RC4、SEAL等。
- 序列密码的安全强度依赖于密钥流产生器所产生的密钥流序列的特性,关键是密钥生成器的设计及收发两端密钥流产生的同步技术。
1. 伪随机序列:
2. 线性反馈移位寄存器:
3. RC4:
- RC4是由麻省理工学院的Ron Rivest教授在1987年为RSA公司设计的一种可变密钥长度、面向字节流的序列密码。RC4是目前使用最广泛的序列密码之一,已应用于Microsoft Windows、Lotus Notes和其他应用软件中,特别是应用到SSL协议和无线通信方面。
- RC4算法很简单,它以一个数据表为基础,对表进行非线性变换,从而产生密码流序列。
- RC4包含两个主要算法:
- 密钥调度算法(Key- Scheduling Algorithm, KSA)
- 伪随机生成算法( Pseudo Random Generation Algorithm , PRGA)。
- KSA的作用是将一个随机密钥(大小为40~256位)变换成一个初始置换表S。
KSA过程如下:
二 、分组密码:
分组密码的本质就是由密钥k=(k1,k2,..,kn)控制的从明文空间M(长为n的比特串的集合)到密文空间C(长为r的比特串的集合)的一个一对一映射。为了保证密码算法的安全强度,加密变换的构造应遵循下列个原则。
- (1) 分组长度足够大。当分组长度n较小时,容易受到暴力穷举攻击,因此要有足够大的分组长度n来保证足够大的明文空间,避免给攻击者提供太多的明文统计特征信息。
- (2) 密钥量空间足够大,以抵抗攻击者通过穷举密钥破译密文或获得密钥信息。
- (3) 加密变换足够复杂,以加强分组密码算法自身的安全性,使攻击者无法利用简单的数学关系找到破译缺口。
- (4) 加密和解密运算简单,易于实现。分组加密算法将信息分成固定长度的二进制位串进行变换。为便于软、硬件的实现,一般应选取加法、乘法、异或和移位等简单的运算,以避免使用逐比特的转换。
- (5) 加密和解密的逻辑结构最好一致。如果加密、解密过程的算法逻辑部件一致,那么加密、解密可以由同一部件实现,区别在于所使用的密钥不同,以简化密码系统整体结构的复杂性。
实现分组密码算法设计的具体操作包括替代、置换、乘积变换。
数据加密标准(DES) :
1.DES算法加密过程
- DES对64位的明文分组进行操作。通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长。然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密钥结合。经过16轮后,左、右半部分合在一起,经过一个末置换(初始置换的逆置换),这样该算法就完了。
2. DES解密过程
DES解密过程的逻辑结构与加密过程一致,但必须注意以下两点。
- (1) 第16轮迭代结束后须将左右两个分组交换位置,即将L16与R16交换顺序。
- (2) 解密过程中使用的子密钥的顺序与加密时的顺序正好相反,依次为Kr6,Ks,...,Kr,即当把64位密文作为明文输人时,解密过程的第1轮迭代使用子密钥K]6,第2轮迭代使用子密钥Ks,.,第16轮迭代使用子密钥Kr,同理,第16轮迭代后须交换顺序,最终输出得到64位明文。
3. DES算法的安全隐患
- (1)密钥太短。DES的初始密钥实际长度只有56位,批评者担心这个密钥长度不足以抵抗穷举搜索攻击,穷举搜索攻击破解密钥最多尝试的次数为2的56次,不太可能提供足够的安全性。1998 年前只有DES破译机的理论设计,1998年后出现实用化的DES破译机。
- (2) DES的半公开性。DES算法中的8个S盒替换表的设计标准(指详细准则)自DES公布以来仍未公开,替换表中的数据是否存在某种依存关系,用户无法确认。
- (3) DES迭代次数偏少。DES算法的16轮迭代次数被认为偏少,在以后的DES改进算法中,都不同程度地进行了提高。
4. 三重DES应用
针对DES密钥位数和迭代次数偏少等问题,有人提出了多重DES来克服这些缺陷,比较典型的是2DES、3DES和4DES等几种形式,实用中一般广泛采用3DES方案,即三重DES。它有以下4种使用模式。
- (1) DES EEE3模式:使用3个不同密钥(Kr,K2,Kz),采用3次加密算法。
- (2) DES EDE3模式:使用3个不同密钥(Kr,Kz,K3),采用加密一解密-加密算法。
- (3) DES EEE2模式:使用两个不同密钥(K:= K3,K2),采用3次加密算法。
- (4) DES EDE2模式:使用两个不同密钥(K,= Ks,K2),采用加密一解密一加密算法。
3DES的优点:
- 密钥长度增加到112位或168位,抗穷举攻击的能力大大增强;
- DES基本算法仍然可以继续使用。
3DES的缺点:
- 处理速度相对较慢,因为3DES中共需迭代48次,同时密钥长度也增加了,计算时间明显增大;
- 3DES算法的明文分组大小不变,仍为64位,加密的效率不高。
信息安全与技术(第二版)
总结
以上是生活随笔为你收集整理的信息加密技术——对称密码体制的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Linux ubuntu18.04下so
- 下一篇: S32k144SDK版本——FTM_IC