第三章 数据的完整性保护

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MD4计算出的消息摘录长度为128比特,用4个字 表示,分别记为A,B,C,D,在计算开始时被分别 初始化为常数。输入信息被分成512比特的等长块,逐 块 处 理 。 每 块 包 含 16 个 字 , 分 别 记 为 m0 , m1,……m15。
每块的处理分三遍扫描,每遍对A,B,C,D使 用不同的扰乱函数。在处理前需将当前的消息摘录备 份,在处理后将这个备份加到新产生的消息摘录上, 并将其作为下一块处理时消息摘录的当前值。最后一 块信息处理之后的消息摘录当前值,即为最终的消息 摘录值。
并分别用第一步产生的密钥对这2n个数据加密, 得到2n个密文: vi=Eλi(ui) i=1,2, ……,n
vi=Eμi(ui) i=1,2, ……,n
A将u1,u2,u3,……,un u1,u2,u3,……,un这2n个数据 和2n个密文v1,v2,v3,……,vn v1,v2,v3,……,vn作密文验 证信息公开交给B和仲裁者。
(2) for i=0 to N/16 -1 do;
(3) for j=0 to 15 do m[j]=M[16i+j]
(4) 将四个寄存器A、B、C、D的值存储到另外 四个寄存器AA,BB,CC,DD之中,AA=A;BB=B; CC=C;DD=D
(5) 执行第一轮;
(6) 执行第二轮;
(7) 执行第三轮;
…… ……
L(2)=l1(2),…,l32(2) L(15)=l1(2),…,l32(2)
一、DES加密算法简介
二、DES加密算法的粗框
以每一个明文块的加密过程为例给出DES加密 的过程,简单的用一句话可概述这个加密过程:将 64bit的明文块在56bit的密钥控制下变换为64bit的 密文块,其加密过程包括16次选代(即16圈)每次 选代都由替代和移位的复合而形成的。
明文块 X=x1 x2。。。x 64
的集合,y是一个非润年的365天的集合,h(x)
表示学生x的生日,现在我们类处理生日问题。
这时n=365,
=
1 2
,
由k≈1.17,
n = 1.17 , 365
≈22.3,知教室中至少要有23名学生。
生日攻击隐含着消息摘要的长度的一个 下界。
3.2数字签名技术
一、数字签名 为了具有通常手书签名的功效,数
设用户A要发送消息M给用户B,A M B , 为了使M在传送过程中不被泄露,A可用B的 公开密钥PKB对M加密,将密文传送给B。
M→ E CEPKB(M ) D → DSKB(EPKB(M))=M


A方 PKB
SKB
B方
用公钥体制实现数据的保密性。
(2) 数据的真实性
条件: 该公钥密码体制的公开密钥既能作加密 密钥,又能作解密密钥使用,
将F′与收到的附 件F进行比较
如 果 F′=F 则 认 为 消 息 是 完整的,否则不是完整的
2、使用MD进行双向鉴别
A rA
MD(KAB│rA)
B
MD(KAB│rA)
rB
基于的双向MD鉴别机制
3.1.1、 MD4
一、概 述
MD4的设计是源自文库向32比特字的,更适合于32位 计算机,效率比MD2高。
简单移位变换
初始置换IP
32位 L(0)=l1(0),…,l32(0)
32位
R(0)=r1(0),…,r32(0) 48位 ←K(1)
g g
L(1)=l1(0),…,l32(0)
R(1)=r1(1),…,r32(1) 48位 ←K(2)
L(2)=l1(0),…,l32(0)
R(2)=r1(1),…,r32(1)
字签名应满足以下条件: (1) 收方能够鉴别其收到的报文确实是
发方发送来的,其内容是真实的; (2)发方事后不能根据自己的利益来否
认他所发送过的报文; (3)包括收方在内的任何人都不能伪造
报文或签名。
二、利用公钥密码体制实现的数字签名
1、在公钥密码系统的通信中,实现数据的保 密性和真实性。
(1)数据的保密性
一个强碰撞自由的Hash函数是满足下 列条件的一个函数h:
(1) h的输入可以是任意长度的任何消息 或文件M;
(2) h输出的长度是固定的(该长度必须足 够长,以抵抗所谓的生日攻击,根据今天的计算 技术和能力,至少应为128比特长);
(3) 给定h和m,计算 h(M)是容易的;
(4) 给定h的描述,找 两 个不同的消息(信息) M1 和 M2,使得 h(M1)=h(M2)是计算上不可行 的。 (如果这两个消息M1,M2,M1≠M2,使得 h (M1)=h(M2),则称这两个消息是碰撞消息或称 这两个消息碰撞。)
4、1分组密码概述
一、分组密码体制的设计有下面的技术要 求:
(1)分组长度m要足够大,以防止明文穷举的 攻击。 (2)密钥量应足够大,以防止密钥穷举的攻击。 (3)密码的法足够复杂,使破译者除了采用穷 举法攻击以外,找不到其它简洁的数字破译算法。 二、 密文块的长度与明文块长度间关系。
4.2 数据加密标准(DES)
H
H
M→ ↑
D→ ↑
E
EPKB(H ,DSKA(M)) D

SDSKA(M↑) D →M
A方 SKA PKB
SKB
PKA B方
签名
保密通 信加密
脱密
验证签名
B收到报文后操作:
(1) B用自己的秘密密钥SKB先对收到的报文解密, 得MS,根据H中的信息识别出发送者的身份是A。 (2) 在公开的签名信息簿中查出A用于签名验证的 公开密钥PKA。 (3) 用PKA对S进行变换 EPKA(S)= EPKA(DSKA (M′))=M。 (4) 检查M′是否正确。
↑↑
↑↑
A方 SKA PKB
SKB PKA B方
用公钥密码体制实现数据的保密性 和真实性
2、用公钥密码体制实现的数字签名
设A要向B发送一份报文M,该报文由两部 分组成:
一部分称作报头H,它包括发方的身份,收方的 身份及发送序号等。即H=〈发方的ID〉,〈收方的 ID〉,〈发送序号〉;
另一部分是要发送的报文数据M,若需要可附上 时间T。签名者用他的秘密密钥SKA对M或(M,T) 进行变换(解密运算)得S=DSKA(M)或S= DSKA (M,T),实现对报文的签名,然后用收方B的公 开密钥PKB对MS=(H,S)进行加密运算,并将结 果EPKB(MS)发送给B,实现保密通信。
第三章 数据的完整性保护
3、1消息摘录技术
一、基本原理
消息摘录(message digests):是单向的散列函数 (即Hash函数),它以变长的消息为输入,把其压缩 成一个定长的值输出。若输入的信息被改变了,则输 出的定长值(摘录)也会相应改变。
根据Hash函数(即消息摘录函数)的安全水平, 人们将Hash函数分成两大类:一类是强碰撞自由的 Hash函数(strong collision-free hash function);另一 类是弱碰撞自由的Hash函数(weak collision-free hash functions).
初始信息(x) 100……0
初始信息的 比特数(l)
即使原来的信息已是512比特的倍数,也要进行填充。
三、直接构造法
现在我们从M开始构造一个128比特长的消息 摘录,其构造过程如下: (1) 给四个寄存器A、B、C、D赋初始值(用十六进 制表示):
A=67452301 B=efcdab89 C=98badcfe D=10325476
(3) 若报文M=m1m2……mn的第i位mi为1,则签名 的第i位取μi,否则取λi,最终构成一个元素个数与 报文长度相同的密钥序列。SA=K1K2……Kn。
其中 Ki=
μi mi=1 λi mi=0
i=1,2,……n
A将
A将SA留底后,发送给B.
B收 B收到签名数据后,验证签名的方法为:
根据报文的内容确定密钥的内容,然后
三、基于对称密码体制的数字签名
L—D方法利用一组密钥,其个数由报文 的长度决定,对 报文进行逐位的签名。L—D 方法分为准备、签名和验证三部分。
准备的内容为:
(1) 若报文长度为n,则设置由发方A秘密 保存的2n个签名密钥,记为λ1, μ1, λ2 , μ2 , ……,λn,μn ;
(2)
A随机地选择2n个数: u1,u2 , ……,un U1,U2 , ……,Un
按报文的各位根据预先计算好的那两组数来验证收
到的签名是否正确;
(4) B用Ki分别对vi和Vi解密,若解得明文为ui,则 断定mi=0;若为Ui,则断定mi=1。否则说明签名有 错误或有篡改伪造行为。
0 Dki(vi)=ui
Mi=
1 Dki(Vi)=Ui
B将收到的SA留底。 该方法存在两个严重缺陷:
1、 用于计算消息完整码
发送者
接收者
消息
传输的消息
消息
产生附件
消息 附件 产生附件
所期望的附件
附件
实际受到的附件
比较
如果两者 一样,则 认为消息 是完整的
一般的封装机制
发方A
消息m 密匙K AB
MD(m|K AB)
消息m 附件F
传输的消息
消息m 附件F
收方B
消息m
重新根据m, 由m|K AB计算附件F
(8) A=A+AA ;B=B+BB; C=C+CC; D=D+DD
MD5与MD4相比较,主要作了以下
六点改进:
(1) 增加了第四轮,第四轮所使用的函数为
Ⅰ(x,y,z)=(x∨ z) y;
(2) 第二轮的函数g变为g(x,y,z)=(x∧z) ∨(y∧ z),以减弱它的对称性; (3) 进入第二轮和第三轮的输入字的次序被改 变; (4) 每一轮中的移位数已改变,并且各轮中的移 位数互不相同; (5) 每一步有一个唯一的加法常数;
通信的双方A,B把各自的秘密密钥交给可信的第
三者了,通信过程如图所示,设发方A要将信息M发
送给B。
M→ E A方 ↑
CEKA(M )
M=DKA(C)
C’=EKB(M)
S方 仲裁者
KA
C’=EKB(M)
D ← KB B方
4. 数据加密标准(DES) (Data Encryption Standard)
(6) 每一步加上了上一步的结果,这样会产 生更好的“雪崩效应”。
3.1.2 Hash函数的攻击方法
生日攻击
生日攻击这个术语来自于所谓的生日问 题:在一个教室中最少应有多少学生,才使得 至少有两个学生的生日在同一天的概率不小 于 1?
2
设h∶x→y是一个Hash函数,x和y都是 有限的集合,并且│x│=m,│y│=n。显 然至少有个碰撞,问题是如何去找这些碰撞。
一个弱碰撞自由的Hash函数与一个强碰撞自由 的Hash函数的前三个条件(1)-(3)完全一样,不同 的只是第(4)个条件。在一个弱碰撞自由的Hash函 数中。
(5) 给定h的描述和一个随机选择的消息M1,找另 一个消息M2,M2≠M1,使得h(M1)=h(M2)是计 算上不可行的。
二、消息摘录技术的应用
二、MD4信息填充
给定一个X,将X进行填充,使其成为一个512比特的倍数 串M=M[0]M[1]……M[N-1] ,这里每个M[i] (0 ≤i ≤N-1) 是长为 32比特的串,N≡0(mod16)(即N是16的倍数。)我们将每个 M[i]称为一个字(32位),由X产生M的算法如下:
⑴ d=447-(│x│mod512) (当d<0时,按模512处理) ⑵ l表示x的长度,即│x│。│l│=64(即用64比特表示x 的长度) ⑶ M=x‖1‖0d‖l
(1) 签名比报文长的多,例如若使用DES作为 加密算法,则每个密钥有56位,即签名的长度是报 文长度的56倍。
(2) 签名密钥若不采用一次一密方式,则每 次签名都会把n个密钥泄露出去,重复使用相同的签 名密钥是很不安全的;而一次一密的密钥管理负担 很重。
四、仲裁者签名
通过第三者介入的传统密码数字签名(仲裁签 名)
即 DSK(EPK(M))= EPK(DSK(M)) =M
M→ D CDSKA(M ) E → M= EPKA(DSKA(M))


A方 SKA
PKA
B方
公钥密码体制实现真实性 。(丧失了保密 性)
(3) 既实现数据的保密性又实现数 据的真实性
数据 M→ D → E CEPKB(DSKA(M))D → E → M
一个很自然的方法是随机选择k个不同的 元素x1,x2,…,xk∈x,计算yi=h(xi),1 ≤ i ≤ k,然后确定是否有一个碰撞发生。
这表明,仅杂凑(随机拼凑) n 个x的随机 的元素就能以50%的概率产生一个碰撞。
注意: 的不同选择将导致一个不同的常数
因子,但k与 n 仍成正比例。
如前面的例子,x是一个教室中所有学生
相关文档
最新文档