认证算法
被考次数: 3次
被考频率: 中频率
答错率:    51%
知识难度:
考试要求: 了解     
知识路径:  > 嵌入式系统的安全性知识  > 安全性基本概念  > 信息安全基础


本知识点历年真题试卷分布
>> 试题列表    
 

 
       报文摘要算法
       使用最广的报文摘要算法是MD5,这是Ronald L. Rivest设计的一系列Hash函数中的第5个。其基本思想就是用足够复杂的方法把报文位充分“弄乱”,使得每一个输出位都受到每一个输入位的影响。具体的操作分成下列几个步骤:
       (1)分组和填充。把明文报文按512位分组,最后要填充一定长度的“1000....”,使得
       报文长度=448(mod 512)
       (2)附加。最后加上64位的报文长度字段,整个明文恰好为512的整数倍。
       (3)初始化。置4个32位长的缓冲区ABCD分别为:
       A=01234567B=89ABCDEFC=FEDCBA98D=76543210
       (4)处理。用4个不同的基本逻辑函数(F,G,H,I)进行4轮处理,每一轮以ABCD和当前512位的块为输入,处理后送入ABCD(128位),产生128位的报文摘要,如下图所示。
       
       MD5的处理过程
       关于MD5的安全性可以解释如下:由于算法的单向性,因此要找出具有相同Hash值的两个不同报文是不可计算的。如果采用野蛮攻击,寻找具有给定Hash值的报文的计算复杂性为2128,若每秒试验10亿个报文,需要1.07×1022年。采用生日攻击法,寻找有相同Hash值的两个报文的计算复杂性为264,用同样的计算机需要585年。从实用性考虑,MD5用32位软件可高速实现,所以有广泛应用。
       安全散列算法
       安全散列算法(The Secure Hash Algorithm,SHA)由美国国家标准和技术协会于1993年提出,并被定义为安全散列标准(Secure Hash Standard,SHS)。SHA-1是1994年修订的版本,纠正了SHA一个未公布的缺陷。这种算法接收的输入报文小于264位,产生160位的报文摘要。该算法设计的目标是使得找出一个能够匹配给定的散列值的文本实际是不可能计算的。也就是说,如果对文档A已经计算出了散列值H(A),那么很难找到一个文档B,使其散列值HB)=HA),尤其困难的是无法找到满足上述条件的,而且又是指定内容的文档B。SHA算法的缺点是速度比MD5慢,但是SHA的报文摘更长,更有利于对抗野蛮攻击。
       散列式报文认证码
       散列式报文认证码(Hashed Message Authentication Code,HMAC)是利用对称密钥生成报文认证码的散列算法,可以提供数据完整性数据源身份认证。为了说明HMAC的原理,假设H是一种散列函数(例如MD5或SHA-1),H把任意长度的文本作为输入,产生长度为L位的输出(对于MD5,L=128;对于SHA-1,L=160),并且假设K是由发送方和接收方共享的报文认证密钥,长度不大于64字节,如果小于64字节,后面加0,补够64字节。假定有下面两个64字节的串ipad(输入串)和opad(输出串)。处理过程如下:
       ipad=0×36,重复64次;
       opad=0×5C,重复64次。
       函数HMAC把K和Text作为输入,产生HMACK(Text)=H作为输出,即:
       (1)在K后附加0,生成64字节的串。
       (2)将第(1)步产生的串与ipad按位异或。
       (3)把Text附加在第(2)步产生的结果后面。
       (4)对第(3)步产生的结果应用函数H
       (5)将第(1)步产生的串与opad按位异或。
       (6)把第(4)步产生的结果附加在第(5)步结果的后面。
       (7)对第(6)步产生的结果引用函数H,并输出计算结果。
       HMAC的密钥长度至少为L位,更长的密钥并不能增强函数的安全性。HMAC允许把最后的输出截短到80位,这样更简单有效,且不损失安全强度。认证一个数据流(Text)的总费用接近于对该数据流进行散列的费用,对很长的数据流更是如此。
       HMAC使用现有的散列函数H而不用修改H的代码,这样可以使用已有的H代码库,而且可以随时用一个散列函数代替另一个散列函数。HMAC-MD5已经被IETF指定为Internet安全协议IPsec的验证机制,提供数据源认证和数据完整性保护。
       HMAC的一个典型应用是用在“提问/响应(Challenge/Response)”式身份认证中,认证流程如下:
       (1)先由客户端向服务器发出一个认证请求。
       (2)服务器接到此请求后生成一个随机数并通过网络传输给客户端(此为提问)。
       (3)客户端将收到的随机数提供给ePass(数字证书的存储介质),由ePass使用该随机数与存储的密钥进行HMAC-MD5运算,并得到一个结果作为证据传给服务器(此为响应)。
       (4)与此同时,服务器也使用该随机数与存储在服务器数据库中的该客户密钥进行HMAC-MD5运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。
 

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

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