用于差错控制的报文检验是根据冗余位检查报文是否受到信道干扰的影响,与之类似的报文摘要方案是计算密码检查和,即固定长度的认证码,附加在消息后面发送,根据认证码检查报文是否被篡改。设M是可变长的报文,K是发送者和接收者共享的密钥,令MD=CK (M),这就是算出的报文摘要(Message Digest),如图6-10所示。由于报文摘要是原报文唯一的压缩表示,代表了原来报文的特征,所以也叫做数字指纹(Digital Fingerprint).

散列(Hash)算法将任意长度的二进制串映射为固定长度的二进制串,这个长度较小的二进制串称为散列值。散列值是一段数据唯一的、紧凑的表示形式。如果对一段明文只更改中

的一个字母,随后的散列变换都将产生不同的散列值。要找到散列值相同的两个不同的输入在计算上是不可能的,所以数据的散列值可以检验数据的完整性。

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

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

(2)能产生固定大小的输出。

(3)蜘硬件容易实现。

(4)对于任意m,找出x,满足H(x)=m,是不可计算的。

(5)对于任意x,找出y≠x,使得H (x)= H(y),是不可计算的。

(6)找出(x,y),使得H (x) =H(y),是不可计算的。

前三项要求显而易见是实际应用和实现的需要。第4项要求就是所谓的单向性,这个条件使得攻击者不能由偷听到的m得到原来的x。第5项要求是为了防止伪造攻击,使得攻击者不能用自己制造的假消息y冒充原来的消息x。第6项要求是为了对付生日攻击的.

报文摘要可以用于加速数字签名算法。在图6-8中,BB发给B的报文中报文P实际上出现了两次,一次是明文,一次是密文。这显然增加了传送的数据量。如果改成图6-11的报文,Knn (A, t, P)减少为MD (P),则传送过程可以大大加快。

6.5.1报文摘要算法

使用最广的报文摘要算法是MD5,这是Ronald L. Rivest设计的一系列Hash函数中的第5个。其基本思想就是用足够复杂的方法把报文位充分“弄乱”,使得每一个输出位都受到每一个输入位的影响。具体的操作分成下列步骤。

(1)分组和填充。把明文报文按512位分组,最后要填充一定长度的”1000..二”,使得

报文长度=448 (mod 512)

(2)附加。最后加上64位的报文长度字段,整个明文恰好为512的整数倍。

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

A=01234567   B=89ABCDEF       C=FEDCBA98   D=76543210

(4)处理。用4个不同的基本逻辑函数((F, G, H, I )进行4轮处理,每一轮以ABCD和当前512位的块为输入,处理后送入ABCD (128位),产生128位的报文摘要。如图6-12

所示。

关于MD5的安全性可以解释如下。由于算法的单向性,因此要找出具有相同Hush值的两个不同报文是不可计算的。如果采用野蛮攻击,寻找具有给定Hush值的报文的计算复杂性为2128,若每秒试验10亿个报文,需要1.07 X 1022年。采用生日攻击法,寻找有相同Hush值的两个报文的计算复杂性为2`4,用同样的计算机,需要585年。从实用性考虑,MD5用32位软件可高速实现,所以有广泛应用。

6.5.2安全散列算法

安全散列算法(The Secure Hash Algorithm, SHA)由美国国家标准和技术协会于1993年提出,并被定义为安全散列标准(Secure Hash Standard, SHS)0 SHA-1是1994年修订的版本,纠正了SHA一个未公布的缺陷。这种算法接收的输入报文小于2“位,产生160位的报文摘要。

该算法设计的目标是使得找出一个能够匹配给定的散列值的文本实际是不可能计算的。也就是说,如果对文档A已经计算出了散列值H (A),那么很难找到一个文档B,使其散列值H (B)=H (A),尤其困难的是无法找到满足上述条件的,而且又是指定内容的文档B o SHA算法的缺点是速度比MD5慢,但是SHA的报文摘要更长,更有利于对抗野蛮攻击。

6.5.3散列式报文认证码

散列式报文认证码(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 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. 目标检测中的Iou与map指标详细介绍(零基础)

    目标检测中的Iou与map指标详细介绍(零基础) 最近在算法岗实习,更新的频率会低一点,希望在实习过程中学到更多有用的视觉知识. IOU指标 下图中Ground truth为标记的正确框,Predic ...

  2. Hadoop中Namenode单点故障的解决方案及详细介绍

    正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋.本文讨论一下为了解决这个问题而存在的几个solution. 1. Seconda ...

  3. [转载] python中pass的使用_Python pass详细介绍及实例代码

    参考链接: Python pass语句 Python pass详细介绍及实例代码 Python pass的用法: 空语句 do nothing 保证格式完整 保证语义完整 以if语句为例,在c或c++ ...

  4. html中b标签去加粗,html中b加粗标签的详细介绍

    html作为网页最基础的语言是每一个站长必学的语言,今天我们就来了解字体文本标签 b,/b标签的用法及其语义. 字体文本标签讲解标签 字体标签定义字体的显示效果,有些标签它有独自的语义. 标签 感谢您 ...

  5. 计算机网络中的基本概念

    计算机网络与因特网 一.概念: 1. 主机/端系统:所有联网的设备.设备和设备之间通过通信链路和分组交换机连接在一起. 2. 传输速率:通信链路传输速率用比特/秒(bit/s)表示. 3. 分组:信息 ...

  6. C++中引用与指针的区别(详细介绍)

    转载:http://www.cnblogs.com/tracylee/archive/2012/12/04/2801519.html C++中的引用与指针的区别 指向不同类型的指针的区别在于指针类型可 ...

  7. 伺服电机中增量式与绝对值的详细介绍

    众所周知,伺服电机按编码器分为增量式电机和绝对值电机,接上一篇文章了解增量式与绝对值的详细区别! 增量编码除了普通编码器的ABZ信号外,增量型伺服编码器还有UVW信号,国产和早期的进口伺服大都采用这样 ...

  8. android 焦点的作用,Android中的视图焦点Focus的详细介绍

    在非触摸屏设备中接收事件和处理响应的控件是具有焦点(Focused)的控件.一个窗口中一个时间内只能有一个具有焦点的控件.在早期具有滚轮设备的android系统中以及现在的智能TV电视应用中视图的焦点 ...

  9. 利用tab_control控件在对话框中加入属性页的方法详细介绍

    在对话框中加入属性页 方案一 在对话框上放置一个Tab Control的控件,再在对话框上放置所需的控件(本例放置了2个按钮,试图在每个标签中显示一个).然后利用Class Wizard来为Tab C ...

  10. Thinkphp中import的几个用法详细介绍

    下面附上import的几个用法介绍 1.用法一 import('@.Test.Translate'); @,表示项目根目录.假定根目录是:App/ 导入类库的路径是:App/Lib/Test/Tran ...

最新文章

  1. 上周热点回顾(10.27-11.2)
  2. 基于统计概率和机器学习的文本分类技术
  3. SpringBoot+Vue+Itext实现前端请求文件流的方式下载PDF
  4. ASP.NET Core 基于声明的访问控制到底是什么鬼?
  5. 开源GIS库GDAL/GEOS在Windows下的编译与 Codeblocks配置
  6. Bringing up interface eth0: Device eth0 does not seem to be presen
  7. LoadRunner常用术语
  8. vue-quill-editor 获取无法获取光标位置
  9. 【FlexSim2019】自学笔记:一个实例看何为A连接?何为S连接?其意义的深入探讨
  10. etl mysql 到sqkserver_从SQL Server到MySQL的ETL实现
  11. 从零开始搭建EasyDarwin环境——git的安装下载及拉取EasyDarwin代码运行
  12. 解决路由器中继不能连中文ssid问题
  13. php ucfirst,Arale源码解析(3)——Base模块和Aspect模块
  14. 深度置信(信念)网络DBN(Deep Belief Network)
  15. 【PC工具】chrome谷歌浏览器最新离线安装版各种版本,最好用的浏览器没有之一...
  16. 57之最,来找找你的之最吧
  17. pyinstaller里居然有木马?
  18. LTE ue连接enb数据包流程解析
  19. 阿里云自建k8s存储插件csi安装使用
  20. 百度图片排名:SEO常用的5个技巧!

热门文章

  1. linq左右连接查询
  2. 三星,现代,中颖,合泰,松翰等单片机定时器溢出计算公式
  3. c 语言中古括号,上古韵部与中古韵部对照表
  4. unity检测范围内敌人_unity_小功能实现(敌人追踪主角)
  5. 使用CANoe进行Panel设计
  6. 希捷、西数、日立4TB硬盘大乱斗
  7. 国内B2C 26个经典购物网站商城收集
  8. python简易爬虫:xpath解析方式抓取几页小猪短租官网的住房信息
  9. 详解RS232、RS485、RS422、串口和握手
  10. Intent intent =new Intent(getActivity(),DeliverListActivity.class,Cannot resolve method'getActivity'