信息安全概论 第4章 消息认证与数字签名
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
消息认证
5
数字签名
4.1 消息认证
41消息认证
4.1.1 基本概念
单向函数、单向Hash函数以及单向陷门函数
单向函数单向H h
非对称密码算法以及数字签名的基石。本节
将对这些基础概念一一作介绍。
顾名思义单向函数的计算是不可逆的即
顾名思义,单向函数的计算是不可逆的。即
在计算机科学领域中,Hash函数是使用得最
3.单向陷门函数
单向陷门函数是一类特殊的单向函数,它包含一个秘密陷门。
4.1.1 基本概念
4.1.2
消息认证系统
MAC f (K,M )
MAC
Alice 发送方Alice
接收方Bob
M K
M
密
4.1.2
消息认证系统
用Hash 函数进行消息认证则不需要密钥的参与。
同消息认证码一样,Hash 函数也有多种使用方式:可以只进行H h 摘要也可以配合加密算法起使用类比图41图43Hash 摘要,也可以配合加密算法一起使用。类比图4-1~图4-3,可以得到图4-4~图4-6的Hash 函数使用方式。
接收
H=H (M )
()
M 发送方Alice 接收方Bob
图4-6Hash M
级联
解密C 得到
C 相等?
H(C)
加4-6 Hash 使用方式示
意图——加密整个消息
示意图——只加密M
4.1.2 消息认证系统
Hash函数相当于为需要认证的数据产生一个“数字指纹”。为了能够实现对数据的认证,Hash函数应满足以下条件:(1)函数的输入可以是任意长。
(2)函数的输出是固定长。
)函数的输出是固定长
(3)已知x,求H(x)较为容易,可用硬件或软件实现。
()已知,求使得()的在计算上是不可行的,这性4h H(x)=h x在计算上是不可行的,这一性质称为函数的单向性,称H(x)为单向Hash函数。
(5)对于给定的x,找出y(y≠x)使得H(y)=H(x)在计算上是不可行的。如果单向Hash函数满足这一性质,则称其为弱无碰撞。行的如果单向函数满足这性质则称其为弱无碰撞(6)找出任意两个不同的输入x、y,使得H(y)=H(x)在计算上是不可行的。如果单向Hash函数满足这一性质,则称其为强无碰撞。
4.1.3
MD5算法
MD5是密码学家Ron Rivest 提出来的算法,MD5根源于一系列消息摘要算法,从最初很脆弱的MD 到现在广泛使用的MD5 R Ri t 做出了卓越的贡献
(包括未发表的MD3),Ron Rivest 做出了卓越的贡献。MD5是一种速度非常快的消息摘要算法。MD5的输入可以是任意长,以512位为单位分成块,输出是128位的消息摘要。大体上说,MD5算法总共分为以下五步:
第一步:填充字节
原始消息
填充位长度:1~512
64位长度值
第步:填充字节第二步:分块
第三步:初始化寄存器第四步处理每
个分块第四步:处理每一个分块第五步:输出结果
128位初始变量
4.1.4 SHA算法
SHA (Secure Hash Algorithm)算法最初是于1993年由美
国国家标准与技术学会NIST和NSA联合发布的。1995年作了一
SHA--1。SHA
SHA--1算法过程如图4-8所示。些修订,后来正式更名为SHA
些修订后来正式更名为所示
始变量摘要
4.1.4
SHA 算法
同MD5一样,SHA 是在MD4的基础上修改而成的。因此,SHA 和MD5有很多的相同点。SHA 大体也是由五步构成:
第二步分块
B
第二步:分块
第步第三步:要求
C
A
第一步:
填充初始化寄存器
第四步:处理每
E
D
第五步:输出结果
一个分块
4.1.5
HMAC 算法
下面将详细说明
密钥变换k’
S 1
M
密钥k HMAC 的七步操作过程。
第一步:密钥变换(MD5,SHA-1…)第二步:异或
第三步:消息级联第四步计算消息摘消息摘要算法(MD5,SHA 1…)
第四步:计算消息摘要
第五步:异或
第六步:消息级联第七步:输出最终结果
数字名 4.2 数字签名
4.2.1 数字签名的基本概念
伪造一个消息并使用与
(1)Bob伪造个消息并使用与Alice共享的密钥K产生该消息
(2)既然Bob有可能伪造Alice发来的消息,那么Alice就可以
发来的消息那么这两种欺骗在实际应用中都有可能发生。双方争执不下而对簿公
4.2.1 数字签名的基本概念
①发送方必然产生自己独有的
信息来签名以防止伪造和否认。
②这种签名很容易产生。
②这种签名很容易产生
以下特点
③对于接收方,应该很容易验证
签名的真伪。
④对于给定的x,找出y(y≠x)使得
签名S(y)=S(x)在计算上是不可行的。
⑤找出任意两个不同的输入x、y,
使得S(y)=S(x)在计算上是不可行的。