信息安全原理及应用:第08章 报文鉴别技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 将报文 M划分成固定长度的分组 M1,M2,…, MN ; – 采用类似DES加密的算法来计算散列码C: H0 为初始值 Hi = EMi ( H i-1 ) C = HN (散列码)
31
散列函数的安全性
对散列函数的生日攻击
– 数据基础:生日悖论.
生日悖论
– 问题: 在一个人群中(人数为 k),问其中至少有 两个人生日相同的概率有多少?
MAC算法不能提供信息的保密性 ,保密性可以通过对消 息加密来提供.
– 两种方式:
1.先计算 MAC 再加密; 2.先加密再计算 MAC.
– 需要两个独立的密钥.
基于MAC的消息鉴别方式其鉴别的过程是独立于加密和 解密过程.
– 与基于加密的鉴别方式是不同的; – 鉴别函数与保密函数的分离能提供结构上的灵活性.
23
报文鉴别码的安全性分析
对 MAC 的强行攻击
– 这种验证可能需要进行多个轮次,这到最终产生一 个惟一的密钥; – 第一轮:选择 M1 和 MAC1 ,对所有 2k 个 key 计算, 得到的匹配的密钥的数量 ≈ 2(k-n); – 第二轮:再选择 M2 和 MAC2 ,对 2(k-n) 个 key 计算, 得到的匹配的密钥的数量 ≈ 2(k-2n); – ……; – 大约需要进行 k/n 轮才能找出一个惟一正确的密钥.
32
P (n,k ) = 1
n! ( n k )! n
k
散列函数的安全性
生日问题的一般数学描述
– – – – 一个整型的随机变量 x,在区间 [1, n] 上均匀分布 有 k 个这样的随机变量构成一个集合 {xi}. 至少存在两个元素相等的概率用 P(n, k) 表示. n! 通过推导得: P ( n , k ) = 1
MAC方式更适合不需要加密保护的数据的鉴别.
– 在某些应用中,鉴别报文的真实性比报文的保密性更重要. 17
散列函数
hash function:哈希函数,摘要函数. 输入:任意长度的消息报文 M. 输出:一个固定长度的散列码值 H(M). 是报文中所有比特的函数值. 单向函数.
18
基本的散列函数报文鉴别
19
仅对散列码进行加密的鉴别方案
20
采用密值的散列码鉴别方案
21
报文鉴别码的安全性分析
MAC 函数的特性
– 为多对一映射.
M 相同,存在多个 Key 产生相同的 MAC; Key 相同,多个 M 产生相同的 MAC.
– n-bit MAC : 有 2n 个可能的 MAC. – k-bit 密钥: 有 2k 个可能的密钥 (n< k). – N 种可能的消息.
14
采用报文鉴别码的鉴别方式
15
报文鉴别码的功能
如果B端通过比较发现MAC匹配,则可确信报 文M没有被篡改过 (完整性 完整性) 完整性
– 若攻击者更改报文内容而末更改MAC,则接收者计 算出的MAC将不同于接收到的MAC; – 由于攻击者不知道密钥K,故他不可能计算出一个 与更改后报文相对应MAC值.
– 鉴别算法:在较低的层次上,系统需要提供某种报 文鉴别函数 f 来产生一个用于实现报文鉴别的鉴别 符或鉴别码; – 鉴别协议:消息的接收者通过鉴别协议完成对报文 合法性的鉴别,底层的鉴别函数通常作为一个原语, 为高层鉴别协议的各项功能提供服务; – 鉴别函数 f 是决定鉴别系统特性的主要因素.
6
鉴别函数的分类
– 行为抵赖
接收端否认收到某报文; 源点否认发过某报文.
3
鉴别与保密的关系
是构成信息系统安全的两个方面,但属于两个 不同属性上的问题:
– 鉴别不能自动提供保密性; – 保密性也不能自然提供鉴别功能.
4
报文鉴别系统模型
5
报文鉴别系统的功能
从层次角度上来看,报文鉴别系统的功能一般 可以划分成两个基本的层次.
28
简单散列函数的构造
纵向冗余检验
– 把包文数据划分为若干n比特定长分组的B1, B2,… ,Bm . – 散列函数值C的每一个位实际上是各数据分组对应 位的一个简单的奇偶检验 ,即
C(i) = B1(i) + B2(i) + … + Bm(i)
其中, i = 1,2,…,n C(i) 为C的第i位.
攻击的计算量约为: 2k + 2(k-n) + 2(k-2n) + ……. 可见对 MAC 函数强行攻击的难度大于对密码的 攻击的难度.
24
报文鉴别码的安全性分析
其他攻击方式
– 可能通过 MAC 的构造特性构造欺骗性的报文,造成 破坏; – 例如,消息被划为等长分组 M = M1‖M2‖…‖Mt – MAC 函数定义为: MAC = CK(M) = EK() = M1⊕M2⊕…⊕Mt – 攻击者在获取了 M 及其对应的 MAC = EK() 后,就可 以伪造一个报文 Y 发送给接收者: Y = Y1‖Y2‖…‖Yt – 显然,如果Y 的值与原始消息 M 的值相等,二者的 MAC 值也相等,接收者接收到报文 Y 时,也将认为 Y 是一个合法报文.
26
基于DES的报文鉴别码 的报文鉴别码 基于
采用密码分组链接(CBC)方式的DES迭代算 法,以0为初始化值. 具体过程:
– 被鉴别的报文数据被划分为连续的64比特的分段: D1,D2,…,DN Hale Waihona Puke Baidu若必要,需用 0来填充DN的右 边,以形成 64 比特的数据块. – 数据鉴别代码(DAC)的计算方式如下: O0 = 0 Oi = EK ( Di + Oi-1 ) i = 1, 2, … , N ,K为56位的密钥 – 数据鉴别代码(DAC)就可用算法的最终输出ON或 ON最左边的M比特构成(16≤M≤64).
12
基于报文加密方式的鉴别( ) 基于报文加密方式的鉴别(3)
公开密钥加密方式 :提供报文鉴别和签名功能 ,不提 供加密功能.
13
报文鉴别码MAC 报文鉴别码
报文鉴别码或消息鉴别码(message authentication code,MAC):核心是一个类似于加密的算法CK(). CK() 在密钥的作用下,以报文内容作为输入,其输出 值是一个较短的定长数据分组,也就是MAC,即: MAC = CK(M) MAC被附加在报文中传输,用于消息的合法性鉴别.
2
消息鉴别的必要性
网络通信的安全威胁
– 泄漏
消息的内容被泄漏没有合法权限的人或过程.
– 伪造
以假冒源点的身份向网络中插入报文; 例如,攻击者伪造消息发送给目的端,却声称该消息源来 自一个已授权的实体.
– 消息篡改
内容篡改:以插入,删除,调换或修改等方式篡改消息; 序号篡改:在依赖序号的通信协议中(如 TCP )等,对通 信双方报文序号的进行篡改,包括插入,删除和重排序等; 时间篡改:对报文进行延迟或回放,破坏其时间上的完整 性.
( n k )! n
k
– 对于较小的 y (≥0) ,有不等式 (1- y ) ≈e –y ,故:
P (n,k ) > 1 e
P ( 365 , k ) = 1 365 ! ( 365 k )! 365
k
– 从另一个角度: k 为何值可以使人群中至少存在两 个人生日相同的概率大于 50%?
答案是 k = 23 ,这个概率要比许多人的直觉猜测的大得多.
– 这个问题可以说明:
有时候概率计算的结果是与一般人的直觉相违背的.
第8章 报文鉴别技术 章
1
报文鉴别的概念
报文鉴别(Message Authentication)
– Message:消息,报文. – Authentication: 鉴别,认证. – 鉴别:消息的接收者对消息进行的验证.
真实性:消息确实来自于其真正的发送者,而非假冒; 完整性:消息的内容没有被篡改.
29
简单散列函数的构造
循环移位
– C0 = 0 初始值. – Ci = ROR(Ci-1) ⊕ Mi – H(M) = Cn. – 将输入数据完全随机化,掩盖了数据中规则化的信 息. i = (1 ... n)
ROR( ) 表示循环右移 1 位.
30
简单散列函数的构造
密码分组链接(CBC) ,不用密钥 算法过程:
基于报文加密方式的鉴别: 以整个报文的密文作为鉴 别符. 报文鉴别码(MAC)方式. 散列函数方式: 采用一个公共散列函数,将任意长度 的报文映射为一个定长的散列值,并以散列值作为鉴 别符.
7
基于报文加密方式的鉴别( ) 基于报文加密方式的鉴别(1)
对称密钥加密方式 :加密的同时提供保密和鉴别.
接收者B也能够确信报文M是来自发送者A的 (真实性 真实性) 真实性
– 只有A了解密钥K,也只有A能够计算出报文M所对 应的正确的MAC值.
16
MAC函数 Vs 加密函数 函数
两者类似,都需要密钥. MAC函数可以是一个单向函数,而加密函数必须是可逆 的.
– MAC鉴别函数的这个数学性质使得它比加密函数更不易被破解.
11
附加报文鉴别结构
终点B
– 接收密文 X; – 用密钥K解密得到明文Y=DK(X),其中Y被视为附加 校验码的消息,即 Y= [M′‖C′]; – 利用校验函数F 计算明文Y中消息部分的校验码 F(M′).若校验码相匹配,即F(M′)=C′,则可确认报 文是可信的,M′就是原始消息M,并且可以确认该 报文就是来自A的,因为任何随机的比特序列是不 可能具有这种期望的数学关系的.
8
对称密钥加密方式
问题:B如何判断收到的密文X的合法性? 如果消息M是具有某种语法特征的文本,或者 M本身具有一定的结构 :B可通过分析Y的语 法或结构特征. 如果消息M是完全随机的二进制比特序列: B 无法判断是否正确恢复密文. 解决办法:强制明文使其具有某种结构.
– 这种结构易于识别,不能被复制,同明文相关,并 且不依赖于加密.
9
基于报文加密方式的鉴别( ) 基于报文加密方式的鉴别(2)
附加报文鉴别结构
10
附加报文鉴别结构
源点A
– 对消息明文M首先利用校验函数F 计算出消息的校 验码 C=F(M); – 校验码 C=F(M) C=F(M)被附加到原始消息明文上,生成新 的明文 [M‖C]; – 利用密钥K对明文 [M‖C]进行加密,得到密文 X=EK [M‖C]; – 将密文X发送给接收端 B
25
设计MAC函数的要点 函数的要点 设计
如果攻击者得到一个 M 及其对应的 MAC,那 么他试图构造一个消息 M' 使得 MAC' = MAC 在计算上应该是不可行的. MAC 函数应是均匀分布的,即随机选择消息 M 和 M',MAC = MAC' 的概率应是 2 -n,其中 n 是 MAC 的位数. 令 M' 为 M 的某些已知变换,即:M' = f (M), 应保证在这种情况下,MAC = MAC' 的概率为 2-n.
27
散列函数的特性
散列函数H( ) 的输入可以是任意大小的数据块. 散列函数H( ) 的输出是定长. 计算需要相对简单,易于用软件或硬件实现. 单向性:对任意散列码值 h,要寻找一个M,使 H(M) = h在计算上是不可行的. 弱抗冲突性(weak collision resistance):对任何给定 的报文M,若要寻找不等于M的报文M1 使H( M1 ) = H(M) 在计算上是不可行的.该性质能够防止伪造 . 强抗冲突性(stronge collision resistance):要找到两 个报文M和N使H(M)=H(N)在计算上是不可行的.该 性质指出了散列算法对"生日攻击"的抵抗能力.
显然, N >> 2n.
22
报文鉴别码的安全性分析
对 MAC 函数 CK() 进行强行攻击的过程
– 已知消息 M1 及其对性的 MAC1; – 对所有可能的 MAC 密钥 Ki ,计算消息 M1 的 MAC 值, 其中至少存在一个 Ki ,使得 CKi (M1) = MAC1 – 由于密钥的空间为 2k 个,因此上述的计算将产生2k个 MAC 结果,而 MAC 的空间为 2n < 2k,故必然存在多密钥 产生相同 MAC 结果; – 因此,一般来说,对密钥空间进行一次穷举搜索,将产生 大约 2k-n 个可能正确的密钥,而分析者无法确定其中哪一 个是正确的 key; – 为此,分析者需要选择一组新的 M2 和 MAC2 ,对上面产 生的 2k-n 个结果进行验证,进一步缩小搜索的范围.
相关文档
最新文档