知识点讲解
 
       数据加密算法
知识路径: > 嵌入式系统的安全性知识 > 安全性基本概念 > 信息安全基础 > 
被考次数:5次
被考频率: 中频率
总体答错率: 58%
知识难度系数:
考试要求: 了解     
相关知识点:5个
        常用的加密算法有DES、IDEA、AES、流加密算法和RC4、RSA算法等。
               DES(Data Encryption Standard)
               1977年1月,美国NSA(National Security Agency)根据IBM的专利技术Lucifer制定了DES。明文被分成64位的块,对每个块进行19次变换(替代和换位),其中16次变换由56位密钥的不同排列形式控制(IBM使用的是128位的密钥),最后产生64位的密文块,如下图所示。
               
               DES加密算法
               由于NSA减少了密钥,而且对DES的制订过程保密,甚至为此取消了IEEE计划的一次密码学会议。人们怀疑NSA的目的是保护自己的解密技术,因而对DES从一开始就充满了怀疑和争论。
               1977年,Diffie和Hellman设计了DES解密机。只要知道一小段明文和对应的密文,该机器就可以在一天之内穷试256种不同的密钥(这叫做野蛮攻击)。
               三重DES(Triple-DES)是DES的改进算法,它使用两个密钥对报文做三次DES加密,效果相当于将DES密钥的长度加倍,克服了DES密钥长度较短的缺点。本来,应该使用3个不同的密钥进行3次加密,这样就可以把密钥的长度加长到3×56=168位。但许多密码设计者认为168位的密钥已经超过了实际需要,所以便在第一层和第三层中使用相同的密钥,产生一个有效长度为112位的密钥。之所以没有直接采用两重DES,是因为第二层DES不是十分安全,它对一种称为“中间可遇”的密码分析攻击极为脆弱,所以最终还是采用了利用两个密钥进行三重DES加密操作。
               假设两个密钥分别是K1和K2,其算法的步骤如下:
               (1)用密钥K1进行DES加密。
               (2)用K2对步骤(1)的结果进行DES解密。
               (3)对步骤(2)的结果使用密钥K1进行DES加密。
               这种方法的缺点是要花费原来三倍的时间,但从另一方面来看,三重DES的112位密钥长度是很“强壮”的加密方式。
               IDEA(International Data Encryption Algorithm,国际数据加密算法)
               1990年,瑞士联邦技术学院的来学嘉和Massey建议了一种新的加密算法。这种算法使用128位的密钥,把明文分成64位的块,进行8轮迭代加密。IDEA可以用硬件或软件实现,并且比DES快。在苏黎世技术学院用25MHz的VLSI芯片,加密速率是177MB/s。
               IDEA经历了大量的详细审查,对密码分析具有很强的抵抗能力,在多种商业产品中得到应用,已经成为全球通用的加密标准。
               AES(Advanced Encryption Standard,高级加密标准)
               1997年1月,美国国家标准与技术局(NIST)为高级加密标准征集新算法。最初从许多响应者中挑选了15个候选算法,经过世界密码共同体的分析,选出了其中的5个。经过用ANSI C和Java语言对5个算法的加/解密速度、密钥和算法的安装时间,以及对各种攻击的拦截程度等进行了广泛的测试后,2000年10月,NIST宣布Rijndael算法为AES的最佳候选算法,并于2002年5月26日发布为正式的AES加密标准。
               AES支持128、192和256位3种密钥长度,能够在世界范围内免版税使用,提供的安全级别足以保护未来20~30年内的数据,可以通过软件或硬件实现。
               流加密算法和RC4
               所谓流加密,就是将数据流与密钥生成二进制比特流进行异或运算的加密过程。这种算法采用以下两个步骤:
               (1)利用密钥K生成一个密钥流KS(伪随机序列)。
               (2)用密钥流KS与明文P进行“异或”运算,产生密文C
               
               解密过程则是用密钥流与密文C进行“异或”运算,产生明文P
               
               为了安全,对不同的明文必须使用不同的密钥流,否则容易被破解。
               Ronald L. Rivest是MIT的教授,用他的名字命名的流加密算法有RC2~RC6系列算法,其中RC4是最常用的。
               RC代表Rivest Cipher或Ron's Cipher,RC4是Rivest在1987年设计的,其密钥长度可选择64位或128位。
               RC4是RSA公司私有的商业机密,1994年9月被人匿名发布在因特网上,从此得以公开。这个算法非常简单,就是256内的加法、置换和异或运算。由于简单,所以速度极快,加密的速度可达到DES的10倍。
               RSA(Rivest Shamir and Adleman)算法
               这是一种公钥加密算法,方法是按照下面的要求选择公钥和密钥:
               (1)选择两个大素数pq(大于10100)。
               (2)令n=p*q、z=(p-1)*(q-1)。
               (3)选择dz互质。
               (4)选择e,使e*d=1(modz)。
               明文P被分成k位的块,k是满足2k<n的最大整数,于是有0≤P
               C=Pe(modn)
               这样公钥为(en)。解密时计算
               P=Cd(modn)
               即私钥为(dn)。
               用例子说明这个算法,设p=3,q=11,n=33,z=20,d=7,e=3,C=P3(mod 33),P=C7(mod 33)。则有
               C=23(mod 33)=8(mod 33)=8
               P=87(mod 33)=2097152(mod 33)=2
               RSA算法的安全性基于大素数分解的困难性。如果攻击者可以分解已知的n,得到pq,然后可得到z,最后用Euclid算法,由ez得到d。然而要分解200位的数,需要40亿年;分解500位的数,则需要1025年。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有