单选题
分别利用MD5和AES对用户密码进行加密保护,以下有关叙述正确的是______。
A.MD5只是消息摘要算法,不适宜于密码的加密保护
B.AES比MD5更好,因为可恢复密码
C.AES比MD5更好,因为不能恢复密码
D.MD5比AES更好,因为不能恢复密码
【正确答案】
D
【答案解析】本题考查消息摘要算法和对称加密算法的基本原理。
对称密码体制的发展趋势将以分组密码为重点。分组密码算法通常由密钥扩展算法和加密(解密)算法两部分组成。密钥扩展算法将b字节用户主密钥扩展成r个子密钥。加密算法由一个密码学上的弱函数f与r个子密钥迭代r次组成。混乱和密钥扩散是分组密码算法设计的基本原则。抵御已知明文的差分和线性攻击,可变长密钥和分组是该体制的设计要点。
AES是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。
AES的基本要求是:采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。1998年NIST开始AES第一轮分析、测试和征集,共产生了15个候选算法。1999年3月完成了第二轮AES2的分析、测试。2000年10月2日美国政府正式宣布选中比利时密码学家Joan Daemen和Vincent Rijmen提出的一种密码算法RIJNDAEL作为AES。
在应用方面,尽管DES在安全上是脆弱的,但由于快速DES芯片的大量生产,使得DES仍能暂时继续使用,为提高安全强度,通常使用独立密钥的三级DES。但是DES迟早要被AES代替。流密码体制较之分组密码在理论上成熟且安全,但未被列入下一代加密标准。
AES加密数据块分组长度必须为128bit,密钥长度可以是128bit、192bit、256bit中的任意一个(如果数据块及密钥长度不足时会补齐)。AES加密有很多轮的重复和变换。大致步骤如下:①密钥扩展(KeyExpansion),②初始轮(Initial Round),③重复轮(Rounds),每一轮又包括:SubBytes、ShiftROWS、MixColumns、AddRoundKey,④最终轮(Final Round),最终轮没有MixColumns。
MD5(Message-Digest Algorithm 5,信息-摘要算法5)用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。
将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。
除了MD5以外,其中比较有名的还有sha-1、RIPEMD及Haval等
由此可见,MD5是消息摘要算法,用于对消息生成定长的摘要。消息不同,生成的摘要就不同,因此,可用于验证消息是否被修改。生成摘要是单向过程,不能通过摘要得到原始的消息。如果用于密码保护,其优点是保存密码的摘要,无法获得密码的原文。AES是一种对称加密算法,对原文加密后得到密文,通过密钥可以把密文还原成明文。用于密码保护时,有可能对密文实施破解,获得密码的明文,所以其安全性比MD5低。