首页 > 编程知识 正文

报文摘要的长度由什么决定,报文是哪一层的单位

时间:2023-05-04 04:20:05 阅读:136689 作者:1888

用于差错控制的消息检查是基于冗馀比特来检查消息是否受到信道干扰的影响,与此类似的消息摘要方式是密码检查,即计算固定长度的认证码,附加在消息上发送假设m为可变长度的消息,k为发件人和收件人共享的密钥,MD=CK(m ),则此为计算出的消息摘要,如图6-10所示。 由于消息摘要是原始消息的唯一压缩表示,表示原始消息的特征,所以也称为数字指纹。

哈希算法将任意长度的二进制串映射到固定长度的二进制串。 这个小长度的二进制串称为哈希值。 哈希值是数据的唯一紧凑表示。 对于1个段落只有明文正在变更的情况

的一个字符,随后的散列转换将生成不同的散列值。 由于在计算上不可能找到散列值相同的两个不同的输入,因此数据的散列值可以验证数据的完整性。

通常的实现方案是对任意长度的明文m进行单向散列转换,计算固定长度的位串,作为消息摘要。 对Hash函数h=h(m )的要求如下。

)1)可用于任何大小的数据块。

)可以输出一定大小的输出。

)3)蜘蛛硬件容易实现。

)对于任意m,找到x并满足h(x )=m是不可能计算的。

(5)对于任意的x,找到yx,使得h ) x )=h ) y )变得不可计算。

(6)找出(h ) x )=h ) y ),使其不能计算。

前三个要求显然是实际应用和实现的需要。 第4项的要求是所谓的单向性,根据这个条件攻击者不能从被盗的m中得到原来的x。 第5项的请求是为了防止伪造攻击,使攻击者不能用自己制作的假消息y冒充原始消息x。 第六项要求是为了应对生日攻击。

消息摘要可用于加速数字签名算法。 在图6-8中,在从BB发送到b的消息中实际出现两次消息p,一次是明文,一次是密文。 这明显会增加传输的数据量。 转换为图6-11的消息,KNN(a,t,p )减少为MD ) p ),从而可以大大加快传输过程。

6.5.1消息摘要算法

使用最广泛的消息摘要算法是MD5,这是Ronald L. Rivest设计的一系列散列函数中的第五个。 其基本构思是以足够复杂的方式充分“扰乱”消息位,使得每个输出位受到每个输入位的影响。 具体操作分为以下步骤。

(1)分组和填充。 将明文消息按512位进行分组,最后通过填充一定长度的“1000.2”

消息长度=448 (模式512 )

)2)添加。 如果最后加上64位消息长度字段,则整个明文将正好为512的整数倍。

(3)初始化。 4个32位长的缓冲器ABCD分别为:

a=01234567 b=89 abcdefc=fed CBA 98d=76543210

(4)处理。 用4个不同的基本逻辑函数(f,g,h,I )进行4个循环的处理,分别以ABCD和现在的512位的块作为输入,处理后发送到ABCD (128位),生成128位的消息摘要。 图6-12

请参阅。

关于MD5的安全性可以说明如下。 因为算法的单向,不可能找到具有相同rxdsp值的两个不同的消息。 如果采用野蛮攻击,则寻找具有给定rxdsp值的消息的计算复杂度为2128,如果每秒实验10亿个消息,则需要1.07 X 1022年。 使用生日攻击法,寻找具有相同rxdsp值的2个信息的计算复杂度为2`4,使用相同的计算机,需要585年。 从实用性方面来看,MD5可以用32位软件高速实现,因此得到了广泛的应用。

6.5.2安全散列算法

安全散列算法(The Secure Hash Algorithm,SHA )由美国国家标准技术协会于1993年提出,安全散列标准) Secure Hash Standard,SHS )0 SHA-1版本于1994年修订该算法接收小于2“位”的输入消息,并产生160位消息摘要。

该算法设计的目标是找到匹配给定哈希值的文本实际上不能计算。 也就是说,针对文档a计算了散列值h(a )的情况下,很难找到散列值h ) b )=h ) a )的文档b,特别是难以找到满足上述条件的文档,另外,指定内容的文档b ) o

6.5.3散列式消息认证码

散列式消息认证码(hashedmessageauthenticationcode,HMAC )是利用对称密钥生成消息认证码的散列算法,其可以提供数据完整性数据源认证。 为了说明HMAC的原理,假设h是一种散列函数(例如MD5或SHA-1 ),h输入任意长度的文本,生成长度为l位的输出(对于MD5,L=128; 对于SHA-1,L=160 ),假设k是发送方和接收方共享的消息认证密钥,长度为64字节以下,如果小于64字节,则在后面添加0,补充64字节。 假设有以下两个64字节的字符串ipad (输入字符串)和opad (输出字符串) :

p>ipad O X 36,重复64次;

opal=0 X 5C,重复64次。

函数HMAC把K和Text作为输入,产生

HMACK (Text) =H (K . opad, H (Ks ipad, Text))

做为输出,即

(1)在K后附加0,生成64字节的串。

(2)对第(1)步产生的串与ipad按位异或。

(3)把Text附加在第(2)步产生的结果后面。

(4)对第(3)步产生的结果应用函数Ho

(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运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。

Tags:男孩子学什么技术好,没学历学什么技术好,以后学什么技术好,高中毕业没考上大学,没考上大学怎么办呢,长江大学工程技术学

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。