信息安全概论第五章消息认证与数字签名
信息安全原理及应用第5章消息认证
![信息安全原理及应用第5章消息认证](https://img.taocdn.com/s3/m/d3aefaf0fc0a79563c1ec5da50e2524de518d0e9.png)
重复攻击
• Step 1:
– 给定M1和MAC1 = C k1 (M1)
– 对所有2k个密钥,判断MACi = C ki (M1) – 匹配数约为: 2k-n
• Step 2:
– 给定M2和MAC2 = C k1 (M1)
– 对所有2k-n个密钥,判断MACi = C ki (M2) – 匹配数约为: 2k-2n
• 平均来讲,若k=x*n,则需x次循环才能找到正确的密钥。 • 所以,用穷举法攻破MAC比攻破加密算法要困难得多。
对MAC的攻击—攻击算法
• 考虑下面的算法:
消息M=(X1‖X2‖…‖Xm)是由64比特长的分组Xi(i=1,…,m)链接而成 MAC算法是:
(M ) X1 X2 Xm
CK (M ) EK (M )
填充图样
消息长度
消息
Kbit L×512bit
100…0 64bit
• 如果消息长度大于264,则取其对264的模。
• 执行完后,消息的长度为512的倍数(设为L倍),则可将消 息表示为分组长为512的一系列分组Y0,Y1,…,YL-1,而 每一分组又可表示为16个32比特长的字,这样消息中的总字 数为N=L×16,因此消息又可按字表示为M[0,…,N-1]。
• 因此,认证函数比加密函数更不易被攻破,因为即 便攻破也无法验证其正确性。关键就在于加密函数 是一对一的,而认证函数是多对一的。
消息认证码的基本用途
• 只提供消息认证,不提供保密性。(见前) • 提供消息认证和保密性:
A
B
MKC||KE KDCM KC 比较 1
2 2 EK2[M || CK1 (M )]
Hash与MAC的区别
• MAC需要对全部数据进行加密 • MAC速度慢 • Hash是一种直接产生鉴别码的方法 • Hash可用于数字签名
第5章-消息认证、数字签名和密钥管理-网络10
![第5章-消息认证、数字签名和密钥管理-网络10](https://img.taocdn.com/s3/m/f526b15df01dc281e43af009.png)
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) 的结果;
信息安全第五章
![信息安全第五章](https://img.taocdn.com/s3/m/b1354c12964bcf84b9d57b86.png)
(3)签名者B每次只能签[log2 n]比特长的消息, 获得同样长的签名。一般来说,所要签的消息都很 长,如果直接对消息进行签名只能先把所要签的消 息分成若干门。[log2 n]比特长的组,远分组进行 签名。因为RSA数字签名算法所涉及的是模2乘法 运算或模2指数运算,所以这样做带来的缺陷是速 度慢,而且签名太长。克服该缺陷的办法之一是在 对消息进行签名之前作一个压缩变换,这种变换称 作杂凑(Hash)变换,亦称杂凑函数。
2.EIGamal数字签名方案 EIGamal于1985年基于离散对数问题提出了一 个既可用于公钥密码体制又可用于数字签名方案的 密码体制。这个数字签名方案的一个变形已被美国 国家标准技术研究所(NIST)采纳为数字签名标准。 EIGamal数字签名方案像EIGamal公钥密码体制一 样是非确定性的。这意味着对给定的消息有许多合 法的签名。 EIGamal密码体制是基于Zp(p为素数) 上的离散对数问题计算上是难的这一假设。
RSA数字签名方案(或算法)基于RSA公钥密码 体制。该方案中,p=A=Zn,其中n;pq,p和q 是两个素数,定义K={(n,p,q,a,b)|n=pq,p, q为素数,ab=1 mod φ(n)}。密钥K=(n,p,q, a,b)中值n和b是公开的,值p,q和a是保密的。 对K=(n,p,q,a,b),定义Sig k(x)=xa mod n,x属于Zn。Ver k(x,y)=真<=>yb(mod n)=x,y属于Zn。
由于明文中加如了收,发时间等一些附加信息, 就使得第一个漏洞给堵住了,即A,B都无法拿以前的 报文来冒充当前的报文。其次B收到A的签名报文 后,只要用A的公开密钥验证A的签名并恢复出正确 的附加信息(A,B,i),便可以判定M是正确的(因为 (A,B,i)已知) 。
信息安全学习总结13-消息认证与数字签名
![信息安全学习总结13-消息认证与数字签名](https://img.taocdn.com/s3/m/1705e4553c1ec5da50e27016.png)
(十三)消息认证与数字签名作者:山石1.消息认证消息认证(MAC,Message Authentication Code),用来保护通信双方免受第三方的攻击,验证消息的完整性。
接收方能够验证收到的报文是真实的未被篡改的。
(1)认证方案如下:●发方将消息和认证密钥输入认证算法,得到消息的认证标签,一起发送消息和认证标签●收方将同样的认证密钥和收到的消息输入认证算法。
检验计算结果是否与收到的认证标签相同,若相同,则认为消息未经篡改,否则认为消息被入侵者篡改。
(2)对安全认证方案的要求:●通信双方能有效(容易)地产生任意消息的认证标签●通信双方能有效(容易)地验证一给定的数字串是否是一给定消息的认证标签●入侵者不能有效(容易)地产生通信双方没发送消息的认证标签。
2.数字签名(1)概念消息认证用以保护双方之间的数据交换不被第三方侵犯;但它无法防止通信双方的相互攻击(欺骗、抵赖等)。
假定A发送一个认证的信息给B,双方之间的争议可能有多种形式:●B伪造一个不同的消息,但声称是从A收到的。
●A可以否认发过该消息,B无法证明A确实发了该消息。
数字签名的基本功能,就是将消息与发起实体相关联,由签名算法和相应验证算法组成。
●数字签名过程:发送方用其私钥对报文进行加密●验证签名过程:利用发送方公钥解密签名,再与发送方出示的明文或明文摘要进行比较。
●签名算法:RSA、E1Gamal、DSS●签名方案:一次签名、群签名、盲签名等。
(2)数字签名的性质:●用户能有效(容易)地在他选择的文件上产生自己的签名。
●用户能有效(容易)地验证一给定的数字是否是另一特定用户在某特定文件上的签名。
●没人能在其他用户没签名的文件上有效(容易)地产生他们的签名。
(3)数字签名算法的分类:无仲裁数字签名:●仅涉及通信方,假定接受方知道发送方的公钥●优点:无仲裁,不需要与第三方通信,比较方便。
●缺点:方案的有效性依赖于发送方私钥的安全性。
如果私钥被窃取,他人就会冒充发送方进行签名。
05、消息认证与数字签名
![05、消息认证与数字签名](https://img.taocdn.com/s3/m/49026d35001ca300a6c30c22590102020740f2dc.png)
消息认证与数字签名
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章消息认证与数字签名](https://img.taocdn.com/s3/m/314c7c11c5da50e2524d7f2c.png)
第五章 消息认证与数字签名
数字信封
数字信封(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.两个不同的报文极难生成相同的摘要。
MD(消息摘要)、MAC(消息认证码)、数字签名的区别
![MD(消息摘要)、MAC(消息认证码)、数字签名的区别](https://img.taocdn.com/s3/m/d601e1607ed5360cba1aa8114431b90d6c8589e3.png)
MD(消息摘要)、MAC(消息认证码)、数字签名的区别
MD(消息摘要)、MAC(消息认证码)、数字签名的区别
1.MD(消息摘要)
1.1摘要含义
摘要
摘要是哈希值,我们通过散列算法⽐如MD5算法就可以得到这个哈希值。
摘要只是⽤于验证数据完整性和唯⼀性的哈希值,不管原始数据是什么样的,得到的哈希值都是固定长度的。
不管原始数据是什么样的,得到的哈希值都是固定长度的,也就是说摘要并不是原始数据加密后的密⽂,只是⼀个验证⾝份的令牌。
所以我们⽆法通过摘要解密得到原始数据。
2.MAC(消息认证码)
hash算法只能验证数据的完整性,不能防⽌数据被篡改。
⽐如:遇见中间⼈攻击,你会发现攻击者对消息进⾏篡改了,但是通过hash算法计算摘要值,你是⽆法知道消息被改动过的。
因此这个时候就需要MAC算法了。
MAC值 = mac(消息+密钥)
2.2MAC的特点
跟hash算法⼀样,可以验证数据的完整性。
可以验证数据确实是由原始发送⽅发出的。
MAC值⼀般和原始消息⼀起传输,原始消息可以选择加密,也可以选择不加密,通信双⽅会以相同的⽅式⽣成MAC值,然后进⾏⽐较,⼀旦两个MAC值相同表⽰MAC验证正确,否则验证失败。
3.数字签名
MAC不能保证消息的不可抵赖性,⽽数字签名可以保证。
因为数字签名使⽤的是公钥密码体制,私钥只有你⾃⼰才知道;⽽MAC使⽤对称加密,既然⼀⽅能够验证你的MAC,就能够伪造你的MAC,因为发送⽅和接收⽅的秘钥是⼀样的。
当然如果你在MAC中绑定⼀些关键信息,并通过某些⼿段,让⼀⽅只能⽣成MAC,另⼀⽅只能验证MAC,其实也是可以实现签名效果的。
消息认证与数字签名
![消息认证与数字签名](https://img.taocdn.com/s3/m/5cf11734a32d7375a41780d6.png)
最后一次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)))
第05章 消息摘要与数字签名(2)
![第05章 消息摘要与数字签名(2)](https://img.taocdn.com/s3/m/caea18687e21af45b307a8a8.png)
第6章
消息摘要与数字签名
(3)具有数据完整性的数字签名方法
–(5)接收方(B)收到消息(M)和加密的数字签名 (DE)后,使用自己的私钥解密加密过的数字签名 (DE) ,得数字签名。 –(6)接收方(B) 使用与A相同的消息摘要算法计算 消息摘要(MD2)。 –(7)接收方(B)用发送方的公钥解密数字签名。注 意A用私钥加密消息摘要,得到数字签名,因此只能 用A的公钥解密。这个过程得到原先的消息摘要(MDl )。
应的答复,李四的答复是用K王加密的,以为这是张三的公 钥。
(8)王五截获这个消息,用自己的私钥解密,非法获得信
息,并用张三的公钥K张重新加密信息,然后转发给张三, 张三用自己的私钥解密发过来的信息。
(9)这个过程不断重复,张三和李四发送的信息都被王五
看到,而他们两个还以为是直接进行通信呢。
第6章
第6章
消息摘要与数字签名
数字签名作用
用发送方的私钥加密消息有什么用? A的公钥是公开的,谁都可以访问,任何人都可以用其解
密消息,了解消息内容,因而无法实现保密。那么它的作 用是什么?它的作用是:
(1)身份认证:
–如果接收方B收到用A的私钥加密的消息,则可以用A 的公钥解密。如果解密成功,则B可以肯定这个消息是A 发来的。这是因为,如果B能够用A的公钥解密消息,则 表明最初消息用A的私钥加密(记住,用一个公钥加密的 消息只能用相应私钥解密,反过来,用一个私钥加密的 消息只能用相应公钥解密),而且只有A知道他的私钥 。 因此发送方A用私钥加密消息即是他自己的数字签名。
消息摘要与数字签名
李四提供自己的公钥K张,并请求李四也把他的公钥K李给张
三(相互要交换公钥)。
(2)中间攻击者王五截获张三的公钥K张,并用自己的公
计算机安全保密2008-05消息认证与数字签名
![计算机安全保密2008-05消息认证与数字签名](https://img.taocdn.com/s3/m/4472d6d933d4b14e84246800.png)
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课件
![06密码学基础(五)消息认证和数字签名PPT课件](https://img.taocdn.com/s3/m/d5a37c75bcd126fff7050b86.png)
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发送的所有可能的信源集
保密和认证同时是信息系统安全的两个方面,但它们 是两个不同属性的问题。认证不能自动提供保密性, 而保密性也不能自然提供认证功能(能同时实现吗)
信息安全原理与技术之消息认证与数字签名
![信息安全原理与技术之消息认证与数字签名](https://img.taocdn.com/s3/m/e32c7b5884254b35eefd34ae.png)
顺序修改:对通信双方消息顺序的修改,包括插入、 删除和重新排序。
计时修改:对消息的延迟和重放。在面向连接的应用 中,攻击者可能延迟或重放以前某合法会话中的消息 序列,也可能会延迟或重放是消息序列中的某一条消 息。
2020/4/21
2
认证的目的
9
对MAC的攻击
•第一轮
·给定M1, MAC1=CK(M1) ·对所有2k个密钥判断MACi=CKi(M1)
·匹配数2(k-n) 。
•第二轮
·给定M2, MAC2=CK(M2) ·对循环1中找到的2(k-n)个密钥判断MACi=CKi (M2)
·匹配数2(k-2n) 。
❖ 攻击者可以按此方法不断对密钥进行测试,直到 将匹配数缩写到足够小的范围。平均来讲,若
23
Yuval的生日攻击(续)
❖ (3) 攻击者在上述两个消息集合中找出可以产生相同 散列值的一对消息。根据“生日悖论”理论,能找 到这样一对消息的概率是非常大的。如果找不到这 样的消息,攻击者再产生一条有效的消息和伪造的 消息,并增加每组中的明文数目,直至成功为止。
❖ (4) 攻击者用第一组中找到的明文提供给签名方要求 签名,这样,这个签名就可以被用来伪造第二组中 找到的明文的数字签名。这样,即使攻击者不知道 签名私钥也能伪造签名。
ON-1
ON
2020/4/21
13
Hash函数
❖ Hash函数(也称散列函数或杂凑函数)是将 任意长的输入消息作为输入生成一个固定 长的输出串的函数,即h=H(M)。这个输 出串h称为该消息的散列值(或消息摘要, 或杂凑值)。
2020/4/21
14
安全的Hash函数的要求
第5章 消息认证与数字签名
![第5章 消息认证与数字签名](https://img.taocdn.com/s3/m/a13e812acfc789eb172dc83b.png)
②:有保密功能的认证系统与无保密功能的认证系统
有保密功能的认证系统能够同时提 供认证和保密两种功能;
无保密功能的认证系统只是纯粹的 认证系统。
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)在计 算上不可行(弱抗冲突)
第五章 消息认证与数字签名
![第五章 消息认证与数字签名](https://img.taocdn.com/s3/m/0eb0c0ef6294dd88d0d26b62.png)
签名者不能否认自己的签名 签名不能被伪造 容易被自动验证
数字签名应具有的性质
必须能够验证作者及其签名的日期时间; 必须能够认证签名时刻的内容; 签名必须能够由第三方验证,以解决争议; 因此,数字签名功能包含了鉴别的功能
数字签名的设计要求
签名必须是依赖于被签名信息的一个位串模式; 签名必须使用某些对发送者是唯一的信息,以防止双方的 伪造与否认; 必须相对容易生成该数字签名; 必须相对容易识别和验证该数字签名; 伪造该数字签名在计算复杂性意义上具有不可行性,既包 括对一个已有的数字签名构造新的消息,也包括对一个给 定消息伪造一个数字签名; 在存储器中保存一个数字签名副本是现实可行的。
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条是对已知的生日攻击方法的防御能力。
3消息认证和数字签名(武汉大学国际软件学院信息安全课程)
![3消息认证和数字签名(武汉大学国际软件学院信息安全课程)](https://img.taocdn.com/s3/m/4765292a58fb770bf78a553f.png)
MAC举例:基于DES的消息认证码
基于DES的消息认证码
建立在DES上的数据认证算法(FIPS PUB 113) 是使用最广泛的MAC算法之一,也是一个 ANSI标准(X9.17) 数据认证算法采用DES运算的密文块链接 (CBC)方式,其初始向量为0,需要认证的 数据分成连续的64位的分组D1, D2, … , DN, 若最后分组不足64位,则在其后填0直至成为 64位的分组。利用DES加密算法E和密钥K, 计算数据认证码(DAC)的过程如图11.6所示。
Hash函数的安全性
Hash函数的安全性:Hash函数的安全性 取决于其抗击各种攻击的能力,对手的 目标是找到两个不同消息映射为同一 Hash值。 一般假定对手知道Hash算法,采用选择 明文攻击法。
HASH算法
MD5消息摘要算法(RFC 1321)
输出128b的消息摘要 输出160b的消息摘要
K
对HASH函数的要求
对HASH函数的要求
1. 2. 3. 4. H可应用于任意大小的数据块 应用于消息认 H产生定长的输出 证必须满足的 对任意给定的x,计算H(x)容易 对于给定的hash值h,找到满足H(x)=h的x在计算上 是不可行的——单向性 5. 对于给定的分组x,找到满足yx且H(y)=H(x)的y在计 算上是不可行的——抗弱碰撞性 6. 找到任何满足H(x)=H(y)的偶对(x,y)在计算上是不可 行的——抗强碰撞性
消息认证码的基本用法
提供认证
(a)消息认证 (b)消息认证和保密性:与明文有关的认证 (c)消息认证和保密性:与密文有关的认证
提供认证和保密性
(a)消息认证
信息安全第五章119页
![信息安全第五章119页](https://img.taocdn.com/s3/m/e74eae0bf111f18582d05a31.png)
验证方法:
对上述两个问题,只要合理设计明文格式便可 以解决。一种可行的格式如下:
明文=<发方标示符><收方标示符><报文序号><时 间><数据正文><纠错码>
形式上可将A发给B的第i份报文表示为: M=(A,B,i,T,D,C)
将报头附加信息记为: M1=(A,B,i)
A发给B的最终报文为(M1,M),其中M1为明文格 式,M为密文形式。
由于明文中加如了收,发时间等一些附加信息, 就使得第一个漏洞给堵住了,即A,B都无法拿以前的 报文来冒充当前的报文。其次B收到A的签名报文 后,只要用A的公开密钥验证A的签名并恢复出正确 的附加信息(A,B,i),便可以判定M是正确的(因为 (A,B,i)已知) 。
RSA数字签名方案(或算法)基于RSA公钥密码 体制。该方案中,p=A=Zn,其中n;pq,p和q 是两个素数,定义K={(n,p,q,a,b)|n=pq,p, q为素数,ab=1 mod φ(n)}。密钥K=(n,p,q, a,b)中值n和b是公开的,值p,q和a是保密的。
对K=(n,p,q,a,b),定义Sig k(x)=xa mod n,x属于Zn。Ver k(x,y)=真<=>yb(mod n)=x,y属于Zn。
鉴定中心是一个政府参与管理的第三方成员, 以便保证信息的安全和集中管理。用户在获取公开 密钥时,首先向鉴定中心请求数字确认,鉴定中心 确认用户身份后,发出数字确认,同时鉴定中心向 数据库发送确认信息。然后用户使用私有密钥对所 传信息签名,保证信息的完整性、真实性,也使发 送方无法否认信息的发送,之后发向接收方;接收 方接收到信息后,使用公开密钥确认数字签名,进 入数据库检查用户确认信息的状况和可信度;最后 数据库向接收方返回用户确认状态信息。不过,在 使用这种技术时,签名者必须注意保护好私有密钥, 因为它是公开密钥体系安全的重要基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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发送的消息予以否认。因此,除 了认证之外还需要其他机制来防止通信双方的抵赖行 为,最常见的是数字签名技术。