安徽工程大学 信息安全原理及应用 第6讲 报文鉴别技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CK( ) 在密钥的作用下,以报文内容作为输入,其输出值是
一个较短的定长数据分组,也就是MAC,即:
MAC = CK(M)
MAC被附加在报文中传输,用于消息的合法性鉴别。
1. 采用报文鉴别码的鉴别方式
报文鉴别码的功能
如果B端通过比较发现MAC匹配,则可确信报文M没有被篡改 过 (完整性)
十进制移位加MAC算法
Sievi于1980年向ISO提出一项消息认证法的建议,[Davies等1984]
这种认证法称为十进制移位加算法(Decimal Shift and Add
Algorithm) 简记为DSAA,它特别适用于金融支付中的数值消息交
换业务,消息按十位十进制数字分段处理不足十位时在右边以0补 齐。下面举例说明,令: x1=1583492637是要认证的第一组消息, b1=5236179902和b2=4893524771为认证用的密钥 DSAA算法是以b1和b2并行对x1进行运算
十进制移位加MAC算法
第 P1=9359354506
+ x2=5283586900
Q1=8217882178
+ x2=5283586900


P1+x2=4642941406
Q1+x2=3501469078
+R(8)(P1+x2)=4294140646 +R(9)(Q1+x2)=5014690783 P2=8937082052 …. …. Q2=8516159861
十进制移位加MAC算法

第 一 轮
左路
b1=5236179902 + x1=1583492637 b1+x1=6819672539 +R(4)(b1+x1)=2539681967 P1=9359354506
右路
b2=4893224771 + x1=1583492637 b2+x1=6477017408 +R(5)(b2+x1)=1740864770 Q1=8217882178
构成(16≤r≤64)。
r取大小可由通信双方约定。美国联邦电信建议采用24bit[见 FTSC-1026],而美国金融系统采用32bit [ABA,1986] 64bit寄存器
k
DES 选左边k位
选左边r位
As
xi
+
yi
利用工作于CFB模式下DES
6.3 散列函数报文鉴别
1. 散列函数
散列函数(Hash Function):哈希函数、摘要函数 若对相当长的文件通过签名认证怎么办?如一个合法文件有数 兆字节长,若按160比特分划成一块一块用相同的密钥独立地签 每一个块然而这样太慢。 解决办法引入可公开的密码散列函数(Hash function) 。它将取 任意长度的消息做自变量,结果产生规定长度的消息摘要, 如使用数字签名标准DSS 消息摘要为160比特, 然后签名消息 摘要。
6.1 概述
5. 鉴别函数的分类
根据鉴别符的生成方式,鉴别函数可以分为以下几类:
基于报文加密方式的鉴别: 以整个报文的密文作为鉴别符。
报文鉴别码(MAC)方式。
散列函数方式: 采用一个公共散列函数,将任意长度的报文
映射为一个定长的散列值,并以散列值作为鉴别符。
பைடு நூலகம்
6.2 基于报文加密方式的鉴别
第6讲
报文鉴别技术
1
6.1 概述
1. 报文鉴别(消息认证)的概念
报文鉴别(Message Authentication)
Message:消息、报文。
Authentication: 鉴别、认证。
鉴别:消息的接收者对消息进行的验证。
真实性:消息确实来自于其真正的发送者,而非假冒;
完整性:消息的内容没有被篡改。
被鉴别的报文数据被划分为连续的64比特的分段:X1,X2,…,XN 。
若必要,需用 0来填充XN的右边,以形成 64 比特的数据块。 数据鉴别代码(DAC)的计算方式如下: Y0 = 0 Yi = EK ( Xi + Yi-1 ) i = 1, 2, … , N ,K为56位的密钥
数据鉴别代码(DAC)就可用算法的最终输出YN或YN最左边的r比特
2. MAC函数 Vs 加密函数
基于MAC消息鉴别方式其鉴别过程独立于加密和解密过程。
与基于加密的鉴别方式是不同的;
鉴别函数与保密函数的分离能提供结构上的灵活性。
MAC方式更适合不需要加密保护的数据的鉴别。
在某些应用中,鉴别报文的真实性比报文的保密性更重要。
3. 一种实用的MAC算法
报文认证码的基本用法1
A→B:M‖Ck(M) 提供认证,因仅A和B共享K;
M C
M
C
报文鉴别码的功能
报文认证码的基本用法2
A→B:Ek2(M‖Ck(M)) 提供认证,因仅A和B共享K1;提供保密, 因仅A和B共享K2;
M
C
E
D
C
报文鉴别码的功能
报文认证码的基本用法3
A→B:Ek2(M)‖Ck1(Ek2(M)) 提供认证,因仅A和B共享K1;提供保 密,因仅A和B共享K2;
M
E C
D
C
2. MAC函数 Vs 加密函数
两者类似,都需要密钥。 MAC函数可以是一个单向函数,而加密函数必须是可逆的。
MAC鉴别函数的这个数学性质使得它比加密函数更不易被破解。
MAC算法不能提供信息的保密性 ,保密性可以通过对消息 加密来提供。
两种方式: 1.先计算 MAC 再加密; 需要两个独立的密钥。 2.先加密再计算 MAC。
1. 对称密钥加密方式 :加密的同时提供保密和鉴别。
对称密钥加密方式
问题:B如何判断收到的密文X的合法性?
如果消息M是具有某种语法特征的文本,或者M本身具有一
定的结构 :B可通过分析Y的语法或结构特征。
如果消息M是完全随机的二进制比特序列: B无法判断是否
正确恢复密文。
解决办法:强制明文使其具有某种结构。
2 .公开密钥加密方式 :提供报文鉴别和签名功能 ,不提供保 密功能。
M
E
EKUb(M)
D
M
M
E
EKRa(M)
D
M
M
E
EKRa(M)
E
EKUb(EKRa(M))
D
EKRa(M)
D
M
6.3 报文鉴别码(消息认证码)
另一种可行的消息鉴别技术是使用报文或消息鉴别码 (message authentication code,MAC):核心是一个类似 于加密的算法CK( )。
Hash码用于消息认证的各种方法
若既希望保证保密性又希望有数字签名,则先用发送方的私 钥对hash码加密,再用对称密码中的密钥对消息和上述加密 结果进行加密。这种技术比较常用。
将密文X发送给接收端 B
附加报文鉴别结构
终点B
接收密文 X; 用密钥K解密得到明文Y=DK(X),其中Y被视为附加校验码的消息, 即 Y= [M′‖C′];
利用校验函数F 计算明文Y中消息部分的校验码F(M′)。若校验码相
匹配,即F(M′)=C′,则可确认报文是可信的,M′就是原始消息M, 并且可以确认该报文就是来自A的,因为任何随机的比特序列是不可 能具有这种期望的数学关系的。
)等,对通信双方
报文序号的进行篡改,包括插入、删除和重排序等;
时间篡改:对报文进行延迟或回放,破坏其时间上的完整性。
行为抵赖
接收端否认收到某报文;
源点否认发过某报文。
6.1 概述
3.鉴别与保密的关系
是构成信息系统安全的两个方面,但属于两个不同属性上的 问题:
鉴别不能自动提供保密性; 保密性也不能自然提供鉴别功能。
十进制移位加MAC算法
第 十 P10=7869031447 Q10=3408472104 P10+Q10=1277403551 (mod 1010)

403551
+ 1277

认证符404828 (mod 1010)
将第二组消息x2=528358586900分别与P1和Q1相加其结果又分别以P1和Q1 的第一位控制循环移位后进行相加得到P2和Q2 依此类推直至进行十轮后 得P10和Q10计算P10+Q10 (mod 1010),并将结果的后6位数与前4位数在(mod 1010)下相加得6位认证符。
若攻击者更改报文内容而未更改MAC,则接收者计算出的MAC将不同
于接收到的MAC;
由于攻击者不知道密钥K,故他不可能计算出一个与更改后报文相对应 MAC值。
接收者B也能够确信报文M是来自发送者A的 (真实性)
只有A了解密钥K,也只有A能够计算出报文M所对应的正确的MAC值。
报文鉴别码的功能
Hash码用于消息认证的各种方法
用对称密码仅对hash加密。hash函数和加密函数的合成函数 即是MAC。也就是说EK[H(M)]是变长消息M和密钥K的函数, 它产生定长的输出值,若攻击者不知道密钥,则他无法得出 这个值。
Hash码用于消息认证的各种方法
用公钥密码和发送方的私钥仅对hash码加密,这种方法可提 供认证,由于只有发送方可以产生加密后的hash码,所以也 提供了数字签名。
对数字签名来说,散列函数h是这样使用的:
消息: x 任意长 消息摘要: Z=h(x) 160bits
签名:y=sigk(Z) 320 bits (签名一个消息摘要)
验证签名:(x,y),其中y= sigk(h(x)) 使用公开的散列函数h, 重构
Z’=h(x) 然后检验Verk(Z,y),来看Z?=Z’
4. 基于DES的报文鉴别码
有两种基于DES的认证算法,一种按CFB模式,一种按CBC 模式运行。在CBC模式下,消息按64bit分组,不足时以0补 齐,送入DES系统加密,但不输入密文,只取加密结果最左 边的r位作为认证符。
基于DES的报文鉴别码
采用密码分组链接(CBC)方式的DES迭代算法,以0为初始化值。 具体过程:
消息摘要是报文中所有比特的函数值。 散列函数是单向函数,是消息认证码的一种变形。
Hash码用于消息认证的各种方法
用对称密码对消息及附加在其后的hash码加密。由于只有A 和B共享密钥,所以消息一定是来自A且未被修改过。hash 码提供了认证所需的结构或冗余,并且由于该方法是对整个 消息和hash码加密,所以也提供了保密性。
这种结构易于识别、不能被复制,同明文相关,并且不依赖于加密。
对称密钥加密方式
解决办法例子:附加报文鉴别结构
附加报文鉴别结构
源点A
对消息明文M首先利用校验函数F 计算出消息的校验码 C=F(M); 校验码 C=F(M)被附加到原始消息明文上,生成新的明文
[M‖C];
利用密钥K对明文 [M‖C]进行加密,得到密文 X=EK [M‖C];
6.1 概述
2.消息鉴别的必要性
网络通信的安全威胁
泄漏
消息的内容被泄漏没有合法权限的人或程序。
伪造
以假冒源点的身份向网络中插入报文; 例如,攻击者伪造消息发送给目的端,却声称该消息源来自一个
已授权的实体。
6.1 概述
2.消息鉴别的必要性
消息篡改
内容篡改:以插入、删除、调换或修改等方式篡改消息; 序号篡改:在依赖序号的通信协议中(如 TCP
十进制移位加MAC算法
先算x1+b1, x1+b2(mod 1010), 接着根据b2的第一位数值4对 x1+b1循环右移4位记作R(4)(x1+b1),再与(x1+b1)相加得 R(4)(x1+b1)+(x1+b1)≡P1(mod 1010) 类似地右路在b1的第一位数值5控制下运算结果为 R(5)(x1+b2)+(x1+b2)=Q1(mod 1010)
6.1 概述
4. 报文鉴别系统的功能
从层次角度上来看,报文鉴别系统的功能一般可以划分成两个基本的层次。 鉴别算法:在较低的层次上,系统需要提供某种报文鉴别函数 f 来产
生一个用于实现报文鉴别的鉴别符或鉴别码;
鉴别协议:消息的接收者通过鉴别协议完成对报文合法性的鉴别,底 层的鉴别函数通常作为一个原语,为高层鉴别协议的各项功能提供服 务; 鉴别函数 f 是决定鉴别系统特性的主要因素。
设计MAC函数的要点
如果攻击者得到一个 M 及其对应的 MAC,那么他试图构造 一个消息 M’ 使得 MAC’ = MAC 在计算上应该是不可行的。 MAC 函数应是均匀分布的,即随机选择消息 M 和 M’, MAC = MAC’ 的概率应是 2-n,其中 n 是 MAC 的位数。 令 M’ 为 M 的某些已知变换,即:M’ = f (M),应保证在这 种情况下,MAC = MAC’ 的概率为 2-n。
相关文档
最新文档