第五章 消息认证与数字签名

合集下载

消息认证与数字签名

消息认证与数字签名


应当注意 只用私钥加密不能提供保密性。因为任 何人只要有A的公开密钥,就能够对该密文进行解密。
5.1.2 消息认证码
消息认证码 MAC(或称密码检验和)是在个密钥 的控制下将任意长的消息映射到一个简短的定长数据 分组,并将它附加在消息后。设M 是变长的消息,K 是仅由收发双方共享的密钥,则M的MAC由如下的函 数C生成:MAC = CK ( M ) • 这里CK ( M )是定长的。发送者每次将MAC附加到消 息中。接收者通过重新计算MAC来对消息进行认证。 •

产生认证符的方法可分ຫໍສະໝຸດ 下三类:① 信息加密:将明文加密后以密文作为认证符; ② 消息认证码 MAC:用一个密钥控制的公开函数作 用后产生的固定长度的数值,也称密码校验和。 ③ 散列函数:一个将任意长度的消息映射为定长的 散列值的函数,以散列值作为认证符。
5.1.1 加密认证 • 信息加密能够提供一种认证措施,这里分对 称密码体制加密认证和公钥密码体制加密认 证。
• 这里M是由分组Y0 , Y1 ,……,YL −1组成。如图5. 1所示。 ,
图5. 1 迭代型散列函数的结构
已经证明如果压缩函数是无碰撞的,则上述方法得到的Hash 函数也是无碰撞的。 因此,Hash函数的核心技术是设计无碰撞的 压缩函数。同样,攻击者对算法的攻击重点也是对f 的内部结构的 分析。与分组密码一样,f也是由若干轮处理过程组成,因而对f 的分析需要通过对各轮之间的比特模式的分析来进行,常常需要 先找出f的碰撞。 • 由于f 是压缩函数,因而一定存在碰撞。这就要求在设计f时 尽量使找出f的碰撞在计算上是不可行的。 •
2. 公钥密码体制加密认证
• 使用公开密钥加密信息的明文只能提供保密而不 能提供认证。为了提供认证,发送者 A用私钥对信息 的明文进行加密,任意接收者都可以用 A的公钥解密。 这种方式提供的认证措施与对称密码体制加密的情形 在原理上是相同的。与前面的一样,在明文中也要求 有某种内部结构,因此,接收者能够识别正常的明文 和随机的比特串。 • 采用这样的结构既可提供了认证,也可提供数字 签名。因为只有A 能够产生该密文,其它任何一方都 不能产生该密文,从效果上看 A 已经用私钥对信息的 明文进行了签名。

05、消息认证与数字签名

05、消息认证与数字签名

消息认证与数字签名
21
5.2.2 散列函数旳使用方式
❖ 散列函数旳基本使用方法(a、b)
Provides confidentiality -- only A and B share K Provides authentication -- H(M) is cryptographically protected
❖ 问题:经过加密得到信息真实性?
保密性与真实性是两个不同旳概念。根本上,信息加密提供旳是保密 性而非真实性。
加密代价大(公钥算法代价更大)。 鉴别函数与保密函数旳分离能提供功能上旳灵活性。
广播旳信息难以使用加密(信息量大) 某些信息只需要真实性,不需要保密性
消息认证与数字签名
12
5.1.2 消息认证码
散列函数H是公开旳,散列值在信源处被附加在消息上,接受方经过 重新计算散列值来确保消息未被篡改。
因为函数本身公开,传送过程中对散列值需要另外旳加密保护(假如 没有对散列值旳保护,篡改者能够在修改消息旳同步修改散列值, 从而使散列值旳认证功能失效)。
消息认证与数字签名
19Biblioteka 5.2 散列(Hash)函数
息验证码 MAC=CK(M) 。发送给接受方B时,将它附加在报文中。
❖ 接受方收到报文使用相同旳密钥K执行相同旳计算,得到新旳MAC。接受
方将收到旳MAC与计算得到MAC进行比较,假如相匹配,那么能够确保报
文在传播过程中维持了完整性:

(1)报文未被更改正

(2)接受者确信报文来自真实旳发送者。(无人知晓密钥)
因为收发双方共享相同旳密钥,上述过程只提供认证而不提供保密, 也不能提供数字署名
消息认证与数字签名
14

第05章消息认证与数字签名

第05章消息认证与数字签名
8
第五章 消息认证与数字签名
数字信封
数字信封(DIGITAL ENVELOPE) : 对数据进行加密的密钥必须经常更换。 数字信封解决两个难题:取长补短 单钥体制:密钥分发困难;高效;数据的加密 公钥体制:加解密时间长;灵活;密钥的加密 目的:利用数据接收者的公钥来封装保护加密 数据的密钥。
9
第五章 消息认证与数字签名
5
第五章 消息认证与数字签名
公开密钥算法的主要特点如下: 1)用加密密钥PK对明文A加密后得到密文,再用解 密 密 钥 SK 对 密 文 解 密 , 即 可 恢 复 出 明 文 A。 DSK(EPK(A))=A 2)加密密钥不能用来解密,即: DPK(EPK(A))≠A ;DSK(ESK(A))≠A 3)用 SK 加密的信息只能用 PK 解密;用 PK 加密的信 息只能用SK解密。 4)从已知的PK不可能推导出SK。
主要内容
数字信封 数字指纹 数字证书 数字签名 数字水印 密码管理
1
第五章 消息认证与数字签名
一、密码学通常的作用
公钥密码 ( 双钥密码、非对称密码),是 1976 年由 Diffie和Hellman在其“密码学新方向”一文中提出的 单向陷门函数是满足下列条件的函数f: (1)给定x,计算y=f(x)是容易的; (2)给定y, 计算x使y=f(x)是非常困难的,无实际意义。 (3)存在δ,已知δ 时,对给定的任何y,若相应的x存在, 则计算x使y=f(x)是容易的。 注:1*. 仅满足(1)、(2)两条的称为单向函数;第(3) 条称为陷门性,δ 称为陷门信息。
17
第五章 消息认证与数字签名
二、数字指纹
数字指纹是通过一类特殊的散列函数(HASH函 数)生成的,对这类HASH函数的特殊要求是: 1.输入报文的长度没有限制; 2.对输入任何报文,能生成固定长度的摘要 (数字指纹); 3.从报文能方便地算出摘要; 4.极难从指定的摘要生成一个报文,而由该 报文又反推算出该指定的摘要; 5.两个不同的报文极难生成相同的摘要。

信息安全概论第五章消息认证与数字签名

信息安全概论第五章消息认证与数字签名
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

第5章 认证技术

第5章 认证技术
图5-5(a) 使用对称加密方法对附加哈希值的消息进行加密
22
⑵使用对称加密方法仅对哈希值进行加密
用户A M H E Ek [H(M)] M || H 比较 D 用户B
K
K
这种方法针对消息无需保密的情况,从而减少了 图5-5(b) 使用对称加密方法仅对哈希值进行加密 由加密而增加的处理负担。
23
⑶使用公开密钥加密方法和发送方的私有密钥仅
10
算法描述:
O1=EK(D1)
O2=EK(D2⊕O1)
O3=EK(D3⊕O3) …………………… ON=EK(DN⊕ON-1) MAC函数类似于加密。它与加密的区别是MAC
函数无需可逆,而对解密则必须是可逆的。
结果由于认证函数的这个数学性质使得它比加密 函数更不易被破解。
11
3. 消息认证方案
38
5.3.2 数字签名 1. 数字签名的需要 消息认证是一个证实收到的消息来自可信的源点 且未被第三方篡改的过程。消息认证也可证实序列编 号和及时性,但它并不能保证双方自身的相互欺骗。 例如,假设A发送一个认证消息给B,双方之间的 争议可能有多种形式: ●B伪造一个不同的消息,但声称是A发送的。
作为消息认证码。
9
Time = 1
Time = 2 D2 (64bits)
Time = N
D1 (64bits)
DN (64bits)
K
DES
K
DE S
s)
O2 (64bits)
ON (64bits) DAC (16 to 64 bits)
图5-2 基于DES的消息认证码
第5章 认证技术
李文媛
E-mail:lwyuan78@ M. P. :89008713 QQ:106190093 Office:2-604

消息认证与数字签名

消息认证与数字签名

最后一次i循环得到的ABCD级联起来 (共4*32=128位 )就是报文摘要。
说明:常数组T[1…64]:T[i]为32位整 数,第i步中, T[i]取232*abs(sin(i))的整数 部分,用十六进制表示,i的单位是弧度。 有的算法中直接给出了常数。如第1轮:
[ABCD 0 7 oxd76aa478] [ABCD 0 7 oxe8c7b756] [ABCD 0 7 ox242070db] [ABCD 0 7 oxc1bdceee] ………
(3)报文分组
按照每组512位,将报文分成n+1组:Y0、 Y1…Yn。每一分组又可表示为16个32位的子 分组。
(4)初始化MD5参数
MD5中有4个32位的链接变量,用于存 储中间结构和最终散列值。初始值用十六进 制表示,分别为:
A=ox01234567 C=oxfedcba98 B=ox89abcdef D=ox76543210
第一个人的生日为特定生日; 第二个人不在该日生的概率为(1-1/365) ; 第三个人与前二人不同生日的概率为(1-2/365) ; ……………. 第t个人与前t-1人不同生日的概率为(1-(t-1)/365) ; 所以t个人都不同生日的概率为
1* (1-1/365) * (1-2/365) *…*(1-(t-1)/365)
没被改变。
5.使用Hash函数提供消息鉴别
①对称加密 提供保密与鉴别
A→B:EK(M‖H(M))
②对称加密
提供鉴别
A→B:M‖EK(H(M))
③公钥加密
提供鉴别与数字签名
A→B:M‖EKa(H(M))
④在③的基础上 对称加密 提供鉴别、数
字签名与保密 A→B:EK (M‖EKa(H(M)))

信息安全原理与技术之消息认证与数字签名

信息安全原理与技术之消息认证与数字签名
• 第二,验证信息本身的完整性,这称为消 息认证,验证数据在传送或存储过程中没 有被篡改、重放或延迟等。
认证的目的
• 可提供认证功能的认证码的函数可分为三 类:
– 加密函数:使用消息发送方和消息接收方共 享的密钥对整个消息进行加密,则整个消息 的密文作为认证符。
– 消息认证码:它是消息和密钥的函数,产生 定长度值,该值作为消息的认证符。
• 在这种方法中假定通信双方A和B共享密 钥K。若A向B发送消息M时,则A使用消
息M和密钥K,计算MAC=C(K,M)
消息认证码的使用
消息认证码的使用(续)
MAC的安全要求
• MAC中使用了密钥,这点和对称密钥加密 一样,如果密钥泄漏了或者被攻击了,则 MAC的安全性则无法保证。
• 在基于算法的加密函数中,攻击者可以尝 试所有可能的密钥以进行穷举攻击,一般 对k位的密钥,穷举攻击需要2(k-1)步。
• 攻击者针对下面的MAC算法,则不需要使用穷举攻击即可获 得密钥信息。
• 设消息M=(X1||X2||…||Xm),即由64位分组Xi联结而成。定义
Δ(M)=X1X2… Xm Ck(M)=EK[Δ(M)] 攻击者可以用任何期望的Y1至Ym-1替代X1至Xm-1,用Ym替代 Xm来进行攻击,其中Ym如下计算的:
• 3.抗强碰撞性:找到任何满足H(x)=H(y) 的偶对(x,y)在计算上是不可行的。
生日攻击(Birthday Attack)
• 如果攻击者希望伪造消息M的签名来欺骗接收者 ,则他需要找到满足H(M’)=H(M)的M’来替代M 。对于生成64位散列值的散列函数,平均需要 尝试263次以找到M’。但是建立在生日悖论上的 生日攻击法,则会更有效。
MAC的性质
• 一个安全的MAC函数应具有下列性质:

计算机安全保密2008-05消息认证与数字签名

计算机安全保密2008-05消息认证与数字签名
2013-8-19 5
1 消息认证
2013-8-19
6
1 消息认证
即: 确定消息是否被篡改; 确定发送者身份。
2013-8-19
7
1 消息认证

消息机密性保证: A -> B: Ek2(M || Tk1(M)) A -> B: Ek2(M || Tk1(Ek2(M))) K1,K2均为共享密钥。
24
1 消息认证


md5中需用4个32位链接变量(整数参数),他们 分别为: A=0x01234567 B=0x89abcdef C=0xfedcba98 D=0x76543210 设臵好这四个链接变量后,开始进入四轮、循 环运算,循环的次数是信息中512位信息分组 的数目。
2013-8-19 25
2013-8-19
10
1 消息认证
2. 散列函数,哈希函数。 单向的哈希函数可以接受可变长度的输 入,输入可以是任意长的消息, 产生固 定长度的输出; 哈希函数保证如果输入信息发生改变, 输出的结果会完全不同。 “1+8=9”的结果后,无法由9逆推出 “9=8+1”。
2013-8-19 11
第1轮16步操作 [ABCD 0 7 1] [DABC 1 12 [BCDA 3 22 4] [ABCD 4 7 5] [DABC 5 12 [BCDA 7 22 8] [ABCD 8 7 9] [DABC 9 12 [BCDA 11 22 12] [ABCD 12 7 13] [DABC 13 15] [BCDA 15 22[CDAB 2 17 3]
6] [CDAB 6 17 7]
10] [CDAB 10 17 11] 12 14] [CDAB 14 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

hash函数小结



hash函数把变长信息映射到定长信息 hash函数不具备可逆性 hash函数速度较快 hash函数与对称密钥加密算法有某种相似性 对hash函数的密码分析比对称密钥密码更困难 hash函数可用于消息摘要 hash函数可用于数字签名
数字签名

消息认证用以保护双方之间的数据交换不 被第三方侵犯;但它并不保证双方自身的 相互欺骗。假定A发送一个认证的信息给B, 双方之间的争议可能有多种形式:

公钥加密:鉴别与签名
A→B:EKRa[M] 提供鉴别和签名

–仅A有KRa可以进行加密
–传输中没有被更改 –需要某种结构或冗余
–任何一方均可以使用KUa验证签名
公钥加密:保密、鉴别与签名
A→B: EKUb[EKRa(M)] KUb提供保密性 KRa提供鉴别和签名

消息鉴别码MAC

错误鉴别

错误鉴别通过检错码和纠错码来实现,若 采用校验和,接受后计算校验和并与上一 次计算出的值进行比较,若相等,说明数 据没有改变;若不等,则说明数据可能传 输出错。校验和的方式可以差错,但不能 保护数据。
通信系统典型攻击

窃听 业务流分析 消息篡改
内容修改:消息内容被插入、删除、修改。 顺序修改:插入、删除或重组消息序列。 时间修改:消息延迟或重放。

B伪造一个不同的消息,但声称是从A收到的。 – A可以否认发过该消息,B无法证明A确实发 了该消息。
数字签名

传统签名的基本特点:
能与被签的文件在物理上不可分割 签名者不能否认自己的签名 签名不能被伪造 容易被验证

数字签名是传统签名的数字化,基本要求:
能与所签文件“绑定”
提供鉴别及数字签名
H(M) 受到密码算法的保护; -- 只有A 能够生成EKRa[H(M)]
--
Байду номын сангаас

(2’) A→B: EK[M||EKRa[H(M)]]
提供保密性、鉴别和数字签名。
直接数字签名的缺点



验证模式依赖于发送方的保密密钥; – 发送方要抵赖发送某一消息时,可能会声称其私有密钥 丢失或被窃,从而他人伪造了他的签名。 – 通常需要采用与私有密钥安全性相关的行政管理控制手 段来制止或至少是削弱这种情况,但威胁在某种程度上依 然存在。 – 改进的方式例如可以要求被签名的信息包含一个时间戳 (日期与时间),并要求将已暴露的密钥报告给一个授权 中心。 X的某些私有密钥确实在时间T被窃取,敌方可以伪造X的 签名及早于或等于时间T的时间戳。
数字签名分类

以方式分
直接数字签名direct
digital signature 仲裁数字签名arbitrated digital signature

以安全性分
无条件安全的数字签名 计算上安全的数字签名

以可签名次数分
一次性的数字签名 多次性的数字签名
直接数字签名

Hash函数的分类



根据安全水平: 定义定义1( 1(弱无碰撞弱无碰撞),散列函数h称 为是弱无碰撞的,是指对给定消息x ∈ X,在计 算上几乎找不到异于x的x' ∈ X使h(x)=h(x')。 定义定义2( 2(强无碰撞强无碰撞),散列函数h被 称为是强无碰撞的,是指在计算上几乎不可能找到 相异的x,x'使得h(x)=h(x')。 注:强无碰撞自然含弱无碰撞!
和完整性 消息的发送者和接收者不能抵赖 除了合法的消息发送者,其它人不能伪造合法的消息

首先要选好恰当的鉴别函数,该函数产生一个鉴 别标识,然后在此基础上,给出合理的鉴别协议 (Authentication Protocol),使接收者完成消息 的鉴别。
鉴别函数

可用来做鉴别的函数分为三类: (1) 消息加密函数 用完整信息的密文作为对信息的鉴别。 (2) 消息鉴别码 公开函数+密钥产生一个固定长度的值作 为鉴别标识 (3) 散列函数(Hash Function) 是一个公开的函数,它将任意长的信息 映射成一个固定长度的信息。

冒充:从一个假冒信息源向网络中插入消息 抵赖:接受者否认收到消息;发送者否认发送过 消息。
鉴别模型

一个单纯鉴别系统鉴别系统的模型
窜扰者
信 源
鉴别编码器 信道
鉴别译码器

宿
安全信道 密 钥 源
鉴别系统的组成

鉴别编码器和鉴别译码器可抽象为鉴别函数。 一个安全的鉴别系统,需满足
意定的接收者能够检验和证实消息的合法性、真实性
消息加密
消息的自身加密可以作为一个鉴别的度量。 对称密钥模式和公开密钥模式有所不同。

对称加密:保密性与鉴别
A→B:EK[M] 提供保密 提供鉴别

–仅来自A –传输中没有被更改 –需要某种结构或冗余

不提供签名
公钥加密:保密性
A→B:EKUb[M] 提供保密 不提供鉴别
签名者不能否认自己的签名 签名不能被伪造 容易被自动验证
数字签名应具有的性质
必须能够验证作者及其签名的日期时间; 必须能够认证签名时刻的内容; 签名必须能够由第三方验证,以解决争议; 因此,数字签名功能包含了鉴别的功能

数字签名的设计要求


签名必须是依赖于被签名信息的一个位串模式; 签名必须使用某些对发送者是唯一的信息,以防止双方的 伪造与否认; 必须相对容易生成该数字签名; 必须相对容易识别和验证该数字签名; 伪造该数字签名在计算复杂性意义上具有不可行性,既包 括对一个已有的数字签名构造新的消息,也包括对一个给 定消息伪造一个数字签名; 在存储器中保存一个数字签名副本是现实可行的。

MAC函数类似于加密函数,但不需要可逆性。因此在数 学上比加密算法被攻击的弱点要少。
通过加密得到信息真实性: 问题



保密性与真实性是两个不同的概念 根本上,信息加密提供的是保密性而非真实性 加密代价大(公钥算法代价更大) 鉴别函数与保密函数的分离能提供功能上的灵活 性 某些信息只需要真实性,不需要保密性
Hash函数的分类
根据是否使用密钥 带秘密密钥的Hash函数:消息的散列值由只 有通信双方知道的秘密密钥K来控制。此时, 散列值称作MAC。 不带秘密密钥的Hash函数:消息的散列值 的产生无需使用密钥。此时,散列值称作 MDC。

Hash与MAC的区别
MAC需要对全部数据进行加密 MAC速度慢 Hash是一种直接产生鉴别码的方法
HASH 函数h = H(M)



满足: 1、H可以作用于一个任意长度的数据块; 2、H产生一个固定长度的输出; 3、对任意给定的x ,H(x) 计算相对容易,无论是软件还是硬件实现。 4、对任意给定码h,找到x满足H(x)=h具有计算不可行性;(单向性) 5、对任意给定的数据块x,找到满足H(y)=H(x)的y≠x具有计算不可行 性。 6、找到任意数据对(x,y),满足H(x) = H(y)是计算不可行的。 前三条要求具有实用性,第4条是单向性质,即给定消息可以产生一 个散列码,而给定散列码不可能产生对应的消息。第5条性质是保证 一个给定的消息的散列码不能找到与之相同的另外的消息。即防止伪 造。第6条是对已知的生日攻击方法的防御能力。
– – –
广播的信息难以使用加密(信息量大) 网络管理信息等只需要真实性 政府/权威部门的公告
散列函数Hash Function

H(M): 输入为任意长度的消息M; 输出为一个固定长度的 散列值,称为消息摘要(Message Digest)。 这个散列值是消息M的所有位的函数并提供错误检测能力: 消息中的任何一位或多位的变化都将导致该散列值的变化。 又称为:哈希函数、数字指纹(Digital finger print)、压 缩(Compression)函数、紧缩(Contraction )函数、 数据鉴别码DAC(Data authentication code)、篡改检 验码MDC(Manipulation detection code)
第五章 消息认证与 数字签名
消息认证

消息认证又称为消息鉴别,鉴别的主要目 的目的有二:
第一,验证信息的发送者是真正的,而不是冒
充的,此为信源识别; 第二,验证信息的完整性,在传送或存储过程 中未被篡改,重放或延迟等。
定义
消息鉴别:是一个证实受到的消息来自可 信的源点且未被篡改的过程。 散列函数:一个散列函数以一个变长的报 文作为输入,并产生一个定长的散列码, 有时也称为报文摘要,作为输出 数字签名:是一种防止源点或终点抵赖的 鉴别技术。
(1) A→B: EKRa[M] 提供了鉴别与签名:
只有A具有KRa进行加密; 传输中没有被篡改; 需要某些格式信息/冗余度; 任何第三方可以用KUa
验证签名

(1’) A→B: EKUb [EKRa(M)] 提供了保密(KUb)、鉴别与签名(KRa):
直接数字签名

(2) A→B: M||EKRa[H(M)]


使用一个密钥生成一个固定大小的小数据块,并加入到消 息中,称MAC (Message Authentication Code), 或 密码校验和(cryptographic checksum) MAC = CK(M)

接收者可以确信消息M未被改变。 接收者可以确信消息来自所声称的发送者; 如果消息中包含顺序码(如HDLC,X.25,TCP),则接收者可以保 证消息的正常顺序;
相关文档
最新文档