当前位置:
文档之家› 信息安全概论第五章消息认证与数字签名
信息安全概论第五章消息认证与数字签名
6
5.1.1 信息加密认证
信息加密函数分两种,一种是常规的对称密钥加密函数, 另一种是公开密钥的双密钥加密函数。下图的通信双方 是,用户A为发信方,用户B为接收方。用户B接收到信 息后,通过解密来判决信息是否来自A, 信息是否是完 整的,有无窜扰。
1.对称密码体制加密: 对称加密:具有机密性,可认证,不提供签名
通常b>n
24
5.2.3
MD5算法
Ron Rivest于1990年提出了一个称为MD4的散列函数。 他的设计没有基于任何假设和密码体制,不久,他的 一些缺点也被提出。为了增强安全性和克服MD4的缺 陷, Rivest于1991年对MD4作了六点改进,并将改进 后的算法称为MD5. MD5算法:将明文按512比特进行分组,即MD5中的 b=512bit,经填充后信息长度为512的倍数(包括64 比特的消息长度)。 填充:首位为1,其余补0至满足要求,即填充后的比 特数为512的整数倍减去64,或使得填充后的数据长 度与448模512同余。
18
通过以下方式使用散列函数常提供消息认证
(1)使用对称加密算法对附加消息摘要的报文进行加密 A B: EK(M||H(M)) 提供保密、认证 (2)使用对称加密方法对消息摘要加密 A B: M||EK(H(M)) 提供认证 (3)使用发方的私钥对消息摘要进行加密 A B: M||EKRa(H(M)) 提供数字签名、认证 (4)在(3)的基础上,使用对称加密方法进行加密 A B: EK(M||EKa(H(M)) ) 提供数字签名、认证和保密 (5)假定双方共享一个秘密值S,与消息M串接,计算散 列值 A B: M||(H(M||S)) 提供认证 (6)假定双方共享一个秘密值S,使用散列函数,对称加 密方法 A B: EK(M||H(M||S)) 提供数字签名、认证和保密19
3
信息认证检验的内容:证实报文的信源和信宿、 报文内容是否遭到偶然或有意地篡改、报文的 序号是否正确,报文到达的时间是否在指定的 期限内。这种认证只在通信的双方之间进行, 而不允许第三者进行上述认证。认证不一定实 时的。 保密和认证同时是信息系统安全的两个方面, 但它们是两个不同属性的问题,认证不能自动 提供保密性,而保密性也不能自然提供认证功 能。一个纯认证系统的模型如下图所示:
17
注意:前两个性质使得散列函数用于消息认证成为可 能。 第二和第三个性质保证H的单向性,保证攻击者无法 通过散列值恢复消息。 第四个性质保证了攻击者无法在不修改散列值的情况 下替换消息而不被察觉。 第五个性质比第四个更强。保证了一种被称为生日攻 击的方法无法凑效。 生日问题:一个教室中,最少应有多少学生,才使至 少有两人具有相同生日的概率不小于1/2? 实际上只需23人,即任找23人,从中总能选出两人具 有相同生日的概率至少为1/2。
7
• 如何自动确定是否收到的明文可解密为可懂的明文?
• 一种解决办法是强制明文有某种结构.
差错控制:Error Control
8
2. 公钥密码体制加密认证: (1)公钥加密:具有机密性,不能提供认证(任何人 都可以得到公钥)
(2)私钥加密:认证和签名,没有保密性
9
(3)公钥加密体制:机密性,可认证和签名
10
5.1.2 消息认证码(MAC)
消息认证码(MAC)是在密钥的控制下将任 意长的消息映射到一个简短的定长数据分组, 并将它附加在消息后。MAC进行消息的认证 过程如图:
MAC的基本用法(a)
消 息 K 认证算法 消 息
MAC
消 息
MAC
K
比较
认证算法
MAC
认证码的使用
11
A B: M||CK(M) 即A使用双方共享的密钥K对明文进行计算,产生一个 短小的数据块,即消息验证码 MAC=CK(M) 。发送给 接收方B时,将它附加在报文中。 接收方收到报文使用相同的密钥K执行相同的计算, 得到新的MAC。接收方将收到的MAC与计算得到 MAC进行比较,如果相匹配,那么可以保证报文在 传输过程中维持了完整性: (1)报文未被更改过 (2)接收者确信报文来自真实的发送者。(无 人知晓密钥) 注意:上述认证过程只提供认证、不提供保密性。
15
5.2 散列(Hash)函数
散列函数(又称杂凑函数)是对不定长的输入产生定 长输出的一种特殊函数:h=H(M) M: 变长消息 h=H(M)是定长的散列值(或称消息摘要) H:散列函数,是公开的; H(M)又称为:哈希函数、数字指纹(Digital finger print)、压缩(Compression)函数、数据鉴别码 (Dataauthentication code)等 散列值在信源处被附加在消息上,接收方重新计算散 列值来确认消息未被篡改。由于函数本身公开,传送 过程中需要对散列值加密保护(如果没有对散列值的 保护,篡改者可以在修改消息的同时修改散列值,从 而使散列值的认证功能失效)。
23
Y0 b n Vi=CV0
Y1 b b n n
YL-1
f
n CV1
f
CV2 CVL-1 迭代型散列函数的结构
f
n CVL
MD4算法如下: CV0=Vi CVi=f(CVi-1,Yi-1) h=H(M)=CVL=f(CVL-1,YL-1) Vi:初始链接变量
CVi-1:连接变量;f:压缩函数(由若干轮处理组成);
12
MAC的基本用法(b)
A
ห้องสมุดไป่ตู้
B:
EK2(M||CK1(M))
提供消息认证与保密,认证码与明文连接 Provides authentication -- only A and B share K1 Provides confidentiality -- only A and B share KK2 2
认证 和保密
认证
认证和 数字签名
20
认证 保密和 数字签名
认证
S:双方共享的秘密值
认证 保密和
21
Hash vs MAC
MAC需要对全部数据进行加密 MAC速度慢 Hash是一种直接产生认证码的方法
22
5.2.2 散列函数的结构
为了对不定长的输入产生定长的输出,并且最后的 结果要与所有的字节有关,大多数的散列函数的结 构都采用了分块填充链接的模式,其结构是迭代型 的。 以MD4为例讲解散列函数的结构 MD4散列函数将输入数据分为L个固定长度为b比特 的分组。 输入数据包括:消息、填充数据和消息的长度值 (消息长度值用64比特表示)。 说明:填充数据的目的是使输入数据为b比特的倍 数;增加消息长度值将增加攻击者攻击的难度。 散列函数的结构如图所示:
第五章 消息认证与数字签名
5.1 5.2
5.3
信息认证 散列(Hash)函数
数字签名体制
1
问题的提出
通信威胁 1. 泄露:把消息内容发布给任何人或没有合法密 钥的进程。 2. 伪造:从一个假冒信息源向网络中插入消息。 3. 内容修改:消息内容被插入删除变换修改。 4. 顺序修改:插入删除或重组消息序列。 5. 时间修改:消息延迟或重放。 6. 否认:接受者否认收到消息,发送者否认发送过 消息。
2
5.1 信息认证
回顾:前面讲述的对称密码(如DES和AES)和公 钥密码体制(RSA)都是围绕信息的保密性,即防 止第三方获取明文消息而展开的,但信息的完整性 和抗否认性也是信息安全内容的重要特征。保证信 息的完整性和抗否认性是通过信息认证和数字签名 来实现的。 信息认证(消息认证)验证信息的完整性,当接收 方收到发送方的报文时,接收方能够验证收到的报 文时真实的未被篡改的。 (包括顺序和及时性) 它包含两方面的含义: (1)验证信息的发送者是真正的而不是冒充的,即数 据起源验证; (2)验证信息在传递过程中未被篡改、重放或延迟等。
29
Hash 函数
MD5 :对输入消息(任意长)按照 512 位进行分组处理,输出128位消息摘要 SHA-1:输入长度小于2^64位消息,按 512位进行分组处理,输出160位消息摘 要。 RIPEMD-160:对输入消息(任意长) 按照 512位进行分组处理,输出160位消 息摘要
30
5.3 数字签名体制
25
1到512 比特的填充 Lx512比特 K比特 消息
消息长度
100…0
512bit
512bit
512bit
512bit
Y0
128 512 128
Y1
512
…
128
Yq
512
…
YL-1
512 128
CV0=VI
HMD5
CV1
HMD5
CVq
HMD5
CVlL-1
HMD5
MD5的框图
消息摘要 128bit
13
MAC的基本用法(c)
A
B:
EK2(EK2(M) ||CK1(EK2(M)))
提供消息认证与保密,认证码与密文连接 Provides authentication -- Using K1 Provides confidentiality -- Using K2
14
消息认证 VS 常规加密
MAC函数类似于加密函数,主要区别在于MAC函 数不需要可逆而加密函数必须是可逆的,因此,认 证函数比加密函数更不易破解。 保密性与真实性是两个不同的概念 根本上,信息加密提供的是保密性而非真实性 加密代价大(公钥算法代价更大) 认证函数与保密函数的分离能提供功能上的灵活性 某些信息只需要真实性,不需要保密性 – 广播的信息难以使用加密(信息量大) – 网络管理信息等只需要真实性 – 政府/权威部门的公告
数字签名是电子商务安全的一个非常重要的分支,在 大型网络安全通信中的密钥分配、安全认证、防否认 等方面具有重要作用。 1999年美国参议院已通过了立法,规定数字签名与 手写签名的文件、邮件在美国具有同等的法律效力。 前面我们讲述的消息认证是保护通信双方之间不受第 三方的攻击,但却无法防止通信双方中一方对另一方 的欺骗。如A伪造一个消息并使用与B共享的密钥产 生该消息的认证码,然后声称该消息来自于B,同样, B也可以对自己给A发送的消息予以否认。因此,除 了认证之外还需要其他机制来防止通信双方的抵赖行 为,最常见的是数字签名技术。