第五章 消息认证与数字签名
消息认证与数字签名
•
应当注意 只用私钥加密不能提供保密性。因为任 何人只要有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、消息认证与数字签名
消息认证与数字签名
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章消息认证与数字签名
第五章 消息认证与数字签名
数字信封
数字信封(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.两个不同的报文极难生成相同的摘要。
信息安全概论第五章消息认证与数字签名
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章 认证技术
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消息认证与数字签名
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
06密码学基础(五)消息认证和数字签名PPT课件
MAC算法的要求
条件:
➢ 攻击者知道MAC函数但不知道密钥K
要求:
➢ 已知M和CK(M),要想构造M使得CK(M)=CK(M)在 计算上不可行 (计算上无碰撞)
➢ CK(M)均匀分布:随机选择M和M, Pr[CK(M) = CK(M)]=2-|MAC|
➢ f是M的一个变换(例如对某些位取反),那么, Pr[CK(M)= CK(f(M))]=2-|MAC|
对于任何选定的编码规则,则(相应于某一特定密钥) :发方从Y中选出用来代表消息的许用序列,即码字
收方根据编码规则唯一地确定出发方按此规则向他传 来的消息。
窜扰者由于不知道密钥,因而所伪造的假码字多是Y 中的禁用序列,收方将以很高的概率将其检测出来, 而被拒绝认证
系统设计者的任务是构造好的认证码 (Authentication Code),使接收者受骗概率极小化
y得*∈到A一k个, 以合使法接的收消者息收x*到,y*这后样,窜可扰用者密欺钥诈k解成密功 。 窜扰者虽然知道X,Y,y,A(.,.),但不知具体密码k
关于MAC算法
MAC不等于数字签名
➢ 因为通讯双方共享同一个密钥
MAC有固定的长度
MAC结构的重要性,例如,密钥足够长+加密 算法足够好安全
通信双方是用户A为发信方,用户B为接收方, 用户B接收到信息后,通过解密来判决信息是 否来自A、 信息是否是完整的、有无窜扰。
常规加密
公钥加密
私钥加密
公私钥加密
公(私d)公钥私加钥密加密:机:机密密性性,,可可认认证和证签和名签名
消息认证码(MAC)
简介: 设S为通信中的发方A发送的所有可能的信源集
保密和认证同时是信息系统安全的两个方面,但它们 是两个不同属性的问题。认证不能自动提供保密性, 而保密性也不能自然提供认证功能(能同时实现吗)
第5章消息认证与数字签名
SET协议简介
SET(Secure Electronic Transaction,安全电子交易) 协议 由VISA和MasterCard两大信用卡公司于1997年5月联合 推出的规范。 应用于Internet上的以银行卡为基础进行在线交易的安 全标准。
SET协议的特点(优点)
对商家,提供了保护自己的手段,免受欺诈,使运营成本降 低; 对消费者,保证了商家的合法性,保护信用卡号等个人信息 不会被窃取; 对银行和发卡机构、信用卡组织,拓展网上业务,保证网上 支付的安全性; 对参与交易各方,定义了互操作接口,使一个系统可以用不 同厂商的产品。
单向散列算法
简介
MD5算法 SHA-1算法 其它算法
简介
名称:Hash Function、哈希函数、单向杂凑函数、数据(消息)摘要函数 单向散列函数 H(M) 作用于一任意长度的消息 M,它返回一固定长度的散 列值 h: h = H(M) 单向散列函数的特性: 给定 M,很容易计算 h。 给定 h,根据 h = H(M) 计算 M 很难。 给定 M,要找到另一消息 M’,并满足 H(M) = H(M’) 很难。 单向散列函数的重要之处就是赋予 M 唯一的“指纹”。 密码学上常用的单向散列函数有RSA公司MD系列中的MD2、MD4、MD5,美 国NIST的SHA、SHA-1,欧盟RIPE项目的RIPEMD、RIPEMD-128、 RIPEMD-160等。
通过数字签名能够实现对原始报文鉴别与验 证,保证报文的完整性、权威性和发送者对 所发报文的不可抵赖性。数字签名机制提供 了一种鉴别方法,普遍用于银行、电子贸易 等,以解决伪造、抵赖、冒充、篡改等问题。 数字签名与数据加密完全独立。数据可以既 签名又加密,只签名,只加密,当然,也可 以既不签名也不加密。
第05章 数字签名与身份认证
沈阳航空航天大学
身份认证技术和数字签名的区别
1 2
两者都是确保数据真实性的安全措施 认证一般是基于收发双方共享的保密数据, 以证实被鉴别对象的真实性;而用于验证签名的数据是公开的 认证允许收发双方互相验证其真实性,数字签名则允许 第三者验证 对于数字签名来说,发送方不能抵赖、接收方不能伪造, 并且可由仲裁进行调解,而认证却不一定具备这些特点 认证技术的实现可能需要使用数字签名技术
沈阳航空航天大学
直接数字签名的安全性
方案的安全性依赖于发送方A私有密钥的安全性。
发送方可以声称自己的私有密钥丢失或被盗用,而否
认其发送过某个报文。
改进:每个签名报文中包含一个时间戳。
问题:
A的私有密钥确实在时间 T 被窃取; 攻击者窃取 A的密钥后,则可能发送带有 A的签名 报文,附上一个等于 T 的时间戳,接收者无法判别。
沈阳航空航天大学
数字签名的分类
无条件安全的数字签名 计算上安全的数字签名
直接数字签名 仲裁数字签名
分类
一次性的数字签名 多次性的数字签名
沈阳航空航天大学
直接数字签名
1 2 3 4
实现比较简单,在技术上仅涉及到通信的源点A和终点B双方。 前提条件:(1)采用公开密钥算法 (2)接收者B需要了解发送者A 的公开密钥KUA
两个基本的方式
相互认证
单向认证
沈阳航空航天大学
重放攻击问题的解决方式
报文序号方式 报文重放(replay) (1)在认证交换中对消息报文编排序号,消息序号合法 攻击 时才接受。 攻击过程: 目的:用于通信各方之间的相互进行身份认证, (2)问题:通信各方必须保持序号同步。 窃听。 同时交换会话密钥。 时间戳方式 复制或部分复制一个报文。 (1)在报文中附加发送的时间戳;接收时只有报文时间 在以后的某个时间重放 需要解决的核心问题: 戳与本地时间足够接近时,才认为是一个合法的新报文。 (1)可以拦截原信息,用重放消息取代; (2)问题: 密钥交换的机密性和时效性。 (2)可以在一个合法有效的时间窗内重放一个带时间戳的消息。 (a) 通信各方的时钟同步比较困难; 后果 机密性 扰乱接收者正常的工作。 (b) 时间窗口的大小如何确定。 窃取会话密钥,假扮成一个通信方欺骗其他人。 防止会话密钥被篡改或和泄露;
信息安全技术05章
信息安全技术05章第五章认证技术现代密码的两个最重要的分⽀就是加密和认证。
加密的⽬的是防⽌敌⽅获得机密信息。
认证则是为了防⽌敌⽅的主动攻击,包括验证信息真伪及防⽌信息在通信过程中被篡改、删除、插⼊、伪造、延迟及重放等。
认证主要包括三个⽅⾯:消息认证、⾝份验证和数字签名。
上⼀章介绍了数字签名技术,本章将对认证技术的另外两个⽅⾯进⾏介绍。
5.1 消息认证⽹络安全所⾯临的基本攻击类型,包括:被动攻击(获取消息的内容、进⾏业务流分析)主动攻击(假冒、重放、消息的篡改、业务拒绝)。
抗击被动攻击的⽅法是加密,抗击主动攻击的⽅法则是消息认证。
消息认证是⼀个过程,⽤以验证接收消息的真实性(的确是由它所声称的实体发来的)和完整性(未被篡改、插⼊、删除),同时还⽤于验证消息的顺序性和时间性(未重排、重放、延迟)。
除此之外,在考虑⽹络安全时还需考虑业务的不可否认性,即防⽌通信双⽅中的其⼀⽅对所传输消息的否认。
实现消息的不可否认性可通过数字签字,数字签字也是⼀种认证技术,也可⽤于抗击主动攻击。
5.1.1 消息认证的模式5.1.2 认证函数消息认证机制和数字签字机制都有⼀产⽣认证符的基本功能,这⼀基本功能⼜作为认证协议的⼀个组成成分。
认证符是⽤于认证消息的数值,它的产⽣⽅汉⼜分为消息加密、消息认证码MAC(Message Authentication Code)、杂凑函数(Hash Function)三⼤类,下⾯分别介绍。
1.消息加密(Message Encryption Function):消息加密产⽣认证符是指将消息加密后的密⽂作为认证符,其⽤法⼜根据单钥加密还是公钥加密有所不同。
1)单钥加密图5.1表⽰消息M的发送⽅A根据单钥加密算法以与接收⽅B 共享的密钥K对消息加密后发往B。
第三⽅不知密钥K就不能恢复消息的明⽂,因此系统提供了保密性。
图5.1单钥消息加密:保密性和认证性该系统还向B保证所收到的消息的确来⾃A,因为只有A知道密钥K。
第五章 消息认证与数字签名
签名者不能否认自己的签名 签名不能被伪造 容易被自动验证
数字签名应具有的性质
必须能够验证作者及其签名的日期时间; 必须能够认证签名时刻的内容; 签名必须能够由第三方验证,以解决争议; 因此,数字签名功能包含了鉴别的功能
数字签名的设计要求
签名必须是依赖于被签名信息的一个位串模式; 签名必须使用某些对发送者是唯一的信息,以防止双方的 伪造与否认; 必须相对容易生成该数字签名; 必须相对容易识别和验证该数字签名; 伪造该数字签名在计算复杂性意义上具有不可行性,既包 括对一个已有的数字签名构造新的消息,也包括对一个给 定消息伪造一个数字签名; 在存储器中保存一个数字签名副本是现实可行的。
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条是对已知的生日攻击方法的防御能力。
第5章-消息认证、数字签名和密钥管理-网络10
5
图5-2 认证性
6
(1)发送方将消息M和MAC一起发送给接收方。 (2)接收方受到消息后,假设为M‘,使用相同的 密钥K,计算新的MAC’= C(K,M‘),比较MAC’和 所收到的MAC。如果计算得出的MAC'和收到的 MAC是相同的,则可认为:
接收方可以相信消息未被修改。因为若攻击者 篡改了消息,他必须同时相应地修改MAC值, 但攻击者不知道密钥,因此他不能在篡改消息 后相应地篡改MAC,而如果仅篡改消息,则接 收方计算的新MAC'将与收到的不同。
填充的方法是在消息后面添加一位“1”,后续 都是“0”。(如果消息长度正好为448位,则 仍需要填充512位,填充后的消息长度为 448+512=960位。)
(2)添加原始消息长度:在填充后的消息后面再 添加一个64位的二进制整数,表示填充前原始消 息的长度L。这时经过处理后的消息长度正好是 512位的倍数。
因此,HMAC使用的Hash函数并不局限于某一种 Hash函数,使用不同的Hash函数,就可得到不 同的HMAC算法。
24
2、HMAC算法
图5-6 HMAC 的总体结构
25
H:嵌入的Hash函数(如MD5); M:HMAC的消息输入(包括Hash函数所添加的填 充位); IV:作为Hash函数输入的初始值; Yi:M中的第i个分组,0≤i≤ L-1; L:是M的分组数; b:每一分组所含的位数; n:使用的Hash函数所产生的散列值的位长; K:密钥,建议密钥长度大于n。若密钥长度大于b, 则将密钥输入作为Hash函数的输入,产生一个n位 的密钥。 K+:为使K为b位长而在K左边填充0后的结果; ipad:为重复b/8次 00110110(十六进制数36)的 结果; opad:为重复b/8次01011100(十六进制数5C) 的结果;
第5章 消息认证与数字签名
②:有保密功能的认证系统与无保密功能的认证系统
有保密功能的认证系统能够同时提 供认证和保密两种功能;
无保密功能的认证系统只是纯粹的 认证系统。
7
③:有仲裁认证系统与无仲裁认证系统。
传统的认证系统只考虑了通信双方互相信任, 共同抵御敌 方的主动攻击的情形, 此时系统中只有参与通信的发方和接收 方及发起攻击的敌方, 而不需要裁决方。因此, 称之为无仲裁 人的认证系统。
但在现实生活中, 常常遇到的情形是通信双方并不互相信 任,比如,发信方发送了一个消息后, 否认曾发送过该消息; 或者收信方接收到发方发送的消息后,否认曾接收到该消息或 宣称接收到了自己伪造的不同于接收到的消息的另一个消息。 一旦这种情况发生, 就需要一个仲裁方来解决争端。这就是有 仲裁人认证系统的含义。有仲裁人认证系统又可分为单个仲裁 人认证系统和多仲裁人认证系统。
第五章 消息认证与数字签名
1
保证信息的完整性主要通过信息认证和 数字签名来实现。
公钥密码体制最重要的一种应用是 数字签名。而数字签名通常需要与散列 函数结合起来使用。
本章先介绍信息认证,然后介绍散 列函数,最后介绍数字签名。
2
5.1消息认证
• 消息认证主要是用来保证信息的完整性当接 收方收到发送方的报文时,接收方能够验证 收到的报文是真实的未被篡改的。 • 检验内容应包括: (1)证实报文的源和宿 (2)报文内容是否曾受到偶然的或有意的 篡改 (3)报文的序号和时间栏 总之,消息认证使接收者能识别消息的 源,内容的真伪,时间性和意定的信宿.
14
散列函数的性质
• H能用于任何大小的数据分组,都能产生定长的输出 • 对于任何给定的x,H(x)要相对易于计算 • 对任何给定的散列码h,寻找x使H(x)=h在计算上不可行 • 对任何给定的分组x,寻找不等于x的y,使得H(x)=H(y)在计 算上不可行(弱抗冲突)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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),则接收者可以保 证消息的正常顺序;