消息认证与数字签名
信息安全学习总结13-消息认证与数字签名
(十三)消息认证与数字签名作者:山石1.消息认证消息认证(MAC,Message Authentication Code),用来保护通信双方免受第三方的攻击,验证消息的完整性。
接收方能够验证收到的报文是真实的未被篡改的。
(1)认证方案如下:●发方将消息和认证密钥输入认证算法,得到消息的认证标签,一起发送消息和认证标签●收方将同样的认证密钥和收到的消息输入认证算法。
检验计算结果是否与收到的认证标签相同,若相同,则认为消息未经篡改,否则认为消息被入侵者篡改。
(2)对安全认证方案的要求:●通信双方能有效(容易)地产生任意消息的认证标签●通信双方能有效(容易)地验证一给定的数字串是否是一给定消息的认证标签●入侵者不能有效(容易)地产生通信双方没发送消息的认证标签。
2.数字签名(1)概念消息认证用以保护双方之间的数据交换不被第三方侵犯;但它无法防止通信双方的相互攻击(欺骗、抵赖等)。
假定A发送一个认证的信息给B,双方之间的争议可能有多种形式:●B伪造一个不同的消息,但声称是从A收到的。
●A可以否认发过该消息,B无法证明A确实发了该消息。
数字签名的基本功能,就是将消息与发起实体相关联,由签名算法和相应验证算法组成。
●数字签名过程:发送方用其私钥对报文进行加密●验证签名过程:利用发送方公钥解密签名,再与发送方出示的明文或明文摘要进行比较。
●签名算法:RSA、E1Gamal、DSS●签名方案:一次签名、群签名、盲签名等。
(2)数字签名的性质:●用户能有效(容易)地在他选择的文件上产生自己的签名。
●用户能有效(容易)地验证一给定的数字是否是另一特定用户在某特定文件上的签名。
●没人能在其他用户没签名的文件上有效(容易)地产生他们的签名。
(3)数字签名算法的分类:无仲裁数字签名:●仅涉及通信方,假定接受方知道发送方的公钥●优点:无仲裁,不需要与第三方通信,比较方便。
●缺点:方案的有效性依赖于发送方私钥的安全性。
如果私钥被窃取,他人就会冒充发送方进行签名。
MD(消息摘要)、MAC(消息认证码)、数字签名的区别
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,其实也是可以实现签名效果的。
消息认证的检验内容
消息认证的检验内容
消息认证是一种通过加密和验证技术来确保数据安全的方法。
在这种方法中,发送方使用密钥将消息编码,接收方使用相同的密钥进行解码和验证。
下面将详细介绍消息认证的检验内容。
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
消息认证的概念
消息认证的概念
消息认证是指通过特定的算法和方法,确保消息的完整性和可信性,以防止消息被篡改、伪造或替换。
认证机制可以验证消息的真实性和发送者的身份,并确认消息在传输过程中未被篡改。
消息认证的概念通常包括以下几个方面:
1. 数据完整性:认证机制使用哈希函数等算法,对消息进行计算和生成摘要,将该摘要附加到消息中。
接收者可以使用同样的算法计算摘要,比对发送者附加的摘要,以判断消息是否在传输过程中被篡改。
2. 数据源认证:认证机制使用数字签名等方法,发送者使用私钥来对消息进行签名,接收者使用对应的公钥来验证签名的有效性。
通过验证签名,接收者可以确认消息的来源和发送者的身份。
3. 重播攻击防护:认证机制可能使用时间戳或随机数等方法,防止重放攻击的发生。
接收者会检查消息的时间戳或随机数,确保消息不是之前发送的重复消息。
4. 防止伪造:认证机制使用加密算法或密钥交换协议等方法,确保通信的安全性,防止第三方伪造消息,窃听通信或篡改通信内容。
消息认证在保障通信安全性和防范网络攻击方面起着重要的作用。
它可以用于保护重要数据和信息的传输,确保消息的可信度和完整性。
06_密码学基础(五)_消息认证和数字签名
密码学基础(五)
内容
消息认证
MAC 散列算法
MD5 SHA/SHA-1
数字签名
问题的提出
通信威胁: 1. 泄露:把消息内容发布给任何人或没有合法密钥的 进程 2. 流量分析:发现团体之间信息流的结构模式。在一 个面向连接的应用中,可以用来确定连接的频率和持 续时间长度 3. 伪造:从一个假冒信息源向网络中插入消息 4. 内容修改:消息内容被插入删除变换修改 5. 顺序修改:插入删除或重组消息序列 6. 时间修改:消息延迟或重放 7. 否认:接受者否认收到消息,发送者否认发送过消 息
认证编码的基本方法
认证编码的基本方法是要在发送的消息中引入多余度 ,使通过信道传送的可能序列集Y大于消息集X。 对于任何选定的编码规则,则(相应于某一特定密钥) :发方从Y中选出用来代表消息的许用序列,即码字 收方根据编码规则唯一地确定出发方按此规则向他传 来的消息。 窜扰者由于不知道密钥,因而所伪造的假码字多是Y 中的禁用序列,收方将以很高的概率将其检测出来, 而被拒绝认证 系统设计者的任务是构造好的认证码 (Authentication Code),使接收者受骗概率极小化
注:若设E=1- e(-(k(k-1)/(2n)) ,可解出k的关于n、E 的函数,有
若略去-k项,有:k≈(n(ln(1/(1-E))×2)0.5; 若取E=0.5,我们估计:k≈1.17 n0.5 ≈n0.5 说明在集合X中,n0.5个随机元素散列的结果产 生一个碰撞的概率为50%!
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|
消息认证与数字签名
最后一次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)))
消息认证(Message Authentication)
Message Digest
目标:确保信息的完整性(Integrity) 特色: (1) 不需密钥 (2) 任意长信息输入,固定长摘要输出 (3) 找出两个不同的输入,使输出相同在计算上很难 常用系統: MD5 (RFC 1321) SHA-1 (FIPS 180-1)
Structure of Message Digest
Message authentication code
• Prerequisite: A and B shares a key K
– Can be a session key
• MAC: a short fixed-size data block, depending on the message M and the shared key K • MAC(K,M)=CK(M) • Sender: M||CK(M) • Receiver: on receiving M’|C’
HMAC的设计目标
• Hash函数不使用密钥,不能直接用于MAC • HMAC要求 –可不经修改使用现有hash函数 –其中嵌入的hash函数可易于替换为更快和更安 全的hash函数 –保持嵌入的hash函数的最初性能,不因适用于 HAMC而使其性能降低 –以简单方式使用和处理密钥 –在对嵌入的hash函数合理假设的基础上,易于 分析 HMAC用于认证时的密码强度
MD5不再安全!?
安全的杂凑函数在设计时必须满足两个要求
● ●
找到两个不同输入而得到相同的输出值在计算上是不可行的—— 抗碰撞
给定一输出值找出输入值在計算上是不可行的——单向性
2004年在Crypto會議,來自山東大學的王出一种可以快速找到碰撞的方法 受影响的算法—— MD5、HAVAL-128、MD4、RIPEMD SHA-0及減弱条件下的SHA-1不安全——在任何初始值下 用240次hash运算可以找出SHA-0的碰撞 SHA-1预计至2010年也会被破解
第10章 数字签名与消息认证
第10章 数字签名与消息认证
10.2 Hash 函 数
10.2.1 Hash函数的概念
在前面的章节里,我们不只一次地用到了Hash函数, 已经初步知道了这是一类单向(计算h = H(m)是容易的, 但求逆运算是困难的)函数,本节我们对这类函数做进一 步讨论。
Hash函数h = H(m)也称为散列函数,它将任意长度的 报文m映射为固定长度的输出h(摘要),另外该函数除满足 单向性外,还应具备下列两项条件之一:
第10章 数字签名与消息认证
2.Schnorr签名方案 Schnorr签名方案是一个短签名方案,它是ElGamal 签名方案的变形,其安全性是基于离散对数困难性和 hash函数的单向性的。 假设p和 q是大素数,是q能被p-1整除,q是大于等 于160 bit的整数,p是大于等于512 bit的整数,保证 GF(p)中求解离散对数困难;g是GF(p)中元素,且gq1
(1) 接收方相信发送方发来的消息未被篡改,这是 因为攻击者不知道密钥,所以不能够在篡改消息后相 应地篡改MAC,而如果仅篡改消息,则接收方计算的
新MAC将与收到的MAC不同。
Source A
M K
C (a) Message authentication
M CK(M)
Destination B C
定SHA-3算法。
第10章 数字签名与消息认证
10.3 消 息 认 证
10.3.1 消息认证与消息认证码
消息认证是指验证者验证所接收到的消息是否确实来自 真正的发送方,并且消息在传送中没被修改的过程。消息认 证是抗击伪装、内容篡改、序号篡改、计时篡改和信源抵赖 的有效方法。
第10章 数字签名与消息认证
第10章 数字签名与消息认证
第四章数字签名
r=f2(k, p, q, g)=(gk mod p) mod q
p q g
f2f 2 k
r x g
f1 m H
s
(a)
DSA的验证过程框图
w=f3(s′, q)=(s′) -1mod q;
v=f4(y, q, g, H(m′), w, r′)
=[(g(H(m′)w)
m′ s′ r′
mod qyr′w mod q)
签名者 签名有效 时间
源文件被修改后,签 名无效
数字签名应具有的性质
必须能够验证作者及其签名的日期时间;
必须能够认证签名时刻的内容; 签名必须能够由第三方验证,以解决争议; 因此,数字签名功能包含了认证的功能; WHY?
数字签名的设计要求
依赖性 唯一性 可验性 抗伪性 可用性
签名必须是依赖于被签名信息的一个比特模式,
(4) 用户为待签消息选取的秘密数k是满足0<k<q的随机数 或伪随机数。
(5) 签名过程。 用户对消息m的签名为(r, s), 其中 r=(gk mod p) mod q s=[k-1(H(m)+xr)] mod q H(m)是由SHA求出的杂凑值。
(6) 验证过程。 设接收方收到的消息为m′, 签名为(r′,s′)。 计算
签名方案2
(1)X→A: IDX‖ EkXY[m]‖ EkXA[IDX‖H(EkXY[m])] (2)A→Y:
EkAY[IDX‖EkXY[m]‖EkXA[IDX‖H(EkXY[m])]‖T]
kXY——X、Y共享的密钥
签名方案2存在的问题
仲裁者有可能和发方共谋以否认发方曾发
过的消息,也可以和收方共谋以伪造发方的签 名。
签名必须使用某些对发送者是唯一的信息,以防伪造与否认;
消息认证和数字签名
可编辑ppt
4
1 消息认证
消息认证
消息认证就是验证消息的完整性.当接收方 收到发送方的报文时,接收方能够验证收到 的报文是真实的未被篡改的。
保密和认证同时是信息系统安全的两个方面, 但它们是两个不同属性的问题,认证不能自 动提供保密性,而保密性也不能自然提供认 证功能。
可编辑ppt
5
1 消息认证
可编辑ppt
15
2 数字签名
消息认证与数字签名的区别:
前者能验证消息来源及完整性,防范第三者; 后者在收发双方产生利害冲突时,解决纠纷。
可编辑ppt
16
2 数字签名
数字签名需要解决的一些问题
1.签字后的文件可能被B重复使用。如果签字 后的文件是一张支票,B很容易多次用该电子 支票兑换现金,为此A需要在文件中加上一些 该支票的特有的凭证,如timestamp等,以防 止上述情况发生。
可编辑ppt
13
2 数字签名
数字签名的设计要求 签名必须是依赖于被签名信息的一个位串模板 签名必须使用某些对发送者是唯一的信息,以防止 双方的伪造与否认 必须相对容易生成该数字签名 必须相对容易识别和验证该数字签名 伪造该数字签名在计算复杂性意义上具有不可行性, 既包括对一个已有的数字签名构造新的消息,也包 括对一个给定消息伪造一个数字签名 在存储器中保存一个数字签名副本是现实可行的
送过消息
可编辑ppt
3
1 消息认证
认证则主要是为了防止第三方的主动攻击 。 认证系统的目的有两个: 第一, 信源识别,即验
证发信人确实不是冒充的; 第二, 检验发送信息 的完整性, 也就是说, 即使信息确实是经过授权 的信源发送者发送的, 也要验证在传送过程中 是否被篡改, 重放或延迟。 在认证理论中一般将信源识别和发送信息的完 整性检验两者作为一个整体进行讨论。
消息认证的三种方法
消息认证的三种方法
消息认证的三种方法包括:
1. 密码认证:使用预先共享的密码或密钥来验证消息的完整性和真实性。
发送方使用密钥对消息进行加密,并将其与消息一起发送。
接收方使用相同的密钥对消息进行解密,并验证消息是否与发送方发送的密文匹配。
2. 数字签名认证:使用公钥密码学技术创建和验证数字签名来验消息的完整性、真实性和身份。
发送方使用其私钥对消息进行数字签名,然后将消息和签名一起发送。
接收方使用发送方的公钥来验证签名,以确保消息是由发送方提供且未被篡改的。
3. 消息认证码(MAC)认证:使用一个密钥和散列函数来创
建和验证MAC来验证消息的完整性和真实性。
发送方使用密
钥和散列函数对消息进行计算,并将生成的MAC与消息一起
发送。
接收方使用相同的密钥和散列函数对收到的消息进行计算,并验证计算出的MAC是否与发送方发送的MAC匹配。
这种方法还可以防止消息被篡改,因为即使消息的内容被轻微更改,计算出的MAC也会与发送方发送的MAC不匹配。
这些方法可以单独或结合使用,以提供更强的消息认证和安全性。
消息认证与数字签名
生日攻击实例
A准备两份合同M和M′,一份B会同意,一份会 取走他的财产而被拒绝 A对M和M′各做32处微小变化(保持原意),分别产 生2^32个64位hash值 根据前面的结论,超过0.5的概率能找到一个M和一 个M′,它们的hash值相同 A提交M,经B审阅后产生64位hash值并对该值签名, 返回给A A用M′替换M
消息认证与数字签名
计算机科学系 邹瑞源
问题提出
密码学被应用到哪些方面?
信息认证
消息认证的含义 数据起源认证 验证信息在传送过程中的正确性 消息认证的检验内容 报文的源,内容真伪,时间有效性等 验证数据完整性的方法 检错码和纠错码 消息认证模式
消息认证
消息认证技术 (1)消息加密函数(Message encryption)
返回
需仲裁的签名
X
A
Y
使用对称密码算法,明文传输 密文传输? XA: M || EkXA[ IDx || H(M) ] AY: EkAY[ IDx || M || EkXA[ IDx || H(M) ] ||T] 说明:kXA ,kAY 分为X和A、A和Y的共享密钥
T:时戳(不是旧消息的重放) Idx:x的标识符 H(M):M的摘要 方法缺陷:若A不公正,与X共谋否认签名,或与Y串 通伪造签名
数字签名
消息认证与数字签名的区别: 前者能验证消息来源及完整性,防范第三 者;后者在收发双方产生利害冲突时,解 决纠纷。 应用 数字水印
摘要签名
过程
H2
消息M 消息M 消息M
比较
Dk2
H
Ek1
S
S
H1
把签名过程从对原文件转移到一很短的hash值上,可以提高效率
5、消息认证和数字签名讲义
上述标出的认证编码器和认证译码器可抽象为认证函数 一个安全的认证系统,首先要选好恰当的认证函数,然
后在此基础上,给出合理的认证协议(Authentication Protocol)
| 7/24/2013 5 © 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证模型
不带秘密密钥的Hash函数:消息的散列值的产生无需使
用密钥,此时散列值称作MDC
| 7/24/2013 21 © 广东省信息安全技术重点实验室
Sun Yat-sen University
哈希函数-生日攻击
如果采用传输加密的散列值和不加密的报文M, 攻击者需要找到M-,使得H(M-)=H(M),以便使用 替代报文来欺骗接收者
哈希函数
H可应用于任意大小的数据块
H 产生定长的输出
对于任意给定的x,容易计算出H(x) H是单向(one-way)函数 给定h,找到满足 h = H(x)的x在计算上是不可行的 complexity of finding x out of h is 2n, where n is the number of
一种基于生日悖论的攻击可能做到这一点,生日 问题
一个教室中,最少应有多少个学生,才使至少有两人具
有相同生日的概率不小于1/2?
概率结果与人的直觉是相违背的 实际上只需23人,即任找23人,从中总能选出两人具有
相同生日的概率至少为1/2
| 7/24/2013
22
© 广东省信息安全技术重点实验室
| 7/24/2013
12
© 广东省信息安全技术重点实验室
Sun Yat-sen University
消息认证码
MAC函数类似于加密函数,但不需要可逆性,因 此在数学上比加密算法被攻击的弱点要少
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(c)公开密钥加密,仲裁不能看到报文内容 (1)X→A:IDx//EKRx[IDx//EKUy[EKRx[M]]] (2)A→Y:EKRa[IDx//EKUy[EKRx[M]]//T]
注:X=发方;Y=收方;A=仲裁;M=报文
数字签名算法
签名算法:RSA、DSA、MD5、SHA等 验证算法
数字证书
接收方
完整性技术:
奇偶校验 检错码 纠错码 消息验证码(MAC)
散列函数
散列函数:
M || M H 比较
H
H(M)
MAC
M KRa H E
||
M
H 比较
h H ( x) 特性: 一致性 随机性 唯一性 单向性
EKRa[H(M)]
HMAC
D
散列函数的用法
对称密钥加密[报文+消息 对称密钥加密[消息摘要] 摘要] 提供鉴别
M E D M
需仲裁的数字签名
(a)常规加密,仲裁能看到报文内容 (1)X→A:M//EKxa[IDx//H(M)] (2)A→Y:EKay[IDx//M//EKxa[IDx//H(M)]//T] (b)常规加密,仲裁不能看到报文内容 (1)X→A:IDx//EKxy[M]//EKxa[IDx//H(EKxy[M])] (2)A→Y:EKay[IDx//EKxy[M]//EKxa[IDx//H(EKxy[M])]//T]
采用公钥密码体制,如RSA。 格式一般采用X.509国际标准。 由权威公正的第三方机构即CA中心签发。
数字证书
数字水印
信息隐藏原理
也称为信息伪装技术,它是利用人类感觉器官对数字 信号的感觉冗余,将一个消息(秘密信息)隐藏在另 一个消息(非秘密信息)之中,实现隐蔽通信或隐蔽 标志。
密钥 秘密信息 宿主信息 编码器 掩蔽宿主 密钥 检测器 秘密信息 宿主信息
第五章 消息认证与数字签名
回顾
计算机系统安全的五个属性: 可用性(Availability) 可靠性(Reliability) 完整性(Integrity) 保密性(Confidentiality) 不可抵赖性(Non-Repudiation)
消息认证
信息 发送方
完整性需要验证:
1. 信息发送方是否真实?接收方是否真实? 2. 信息在传输过程中是否被改变? 3. 信息的到达时间是否在指定的期限内?
用途
MD5的作用是对一段信息(message)生成信息摘要 (message-digest),该摘要对该信息具有唯一性,可 以作为数字签名。用于验证文件的有效性(是否有丢 失或损坏的数据),对用户密码的加密,在哈希函数中 计算散列值。
特点
输入一个任意长度的字节串,生成一个128位的整数。 由于算法的某些不可逆特征,在加密应用上有较好 的安全性。并且,MD5算法的使用不需要支付任何 版权费用。
扩展数据至LEN=K*64+56个字节,K为整数。 补位方法: 补一个1,然后补0。相当于补一个0x80的字节, 再补值为0的字节。这一步里总共补充的字节数 为0~63个。
Step2:附加数据长度
用一个64位的整数表示数据的原始长度(以bit 为单位),将这个数字的8个字节按低位在前, 高位在后的顺序附加在补位后的数据后面。 这时,数据被填补后的总长度为: LEN = K*64+56+8=(K+1)*64 Bytes。 注意:这个64位整数是输入数据的原始长度 而不是填充字节后的长度。
/* 然后进行如下操作 */
A = A + AA B = B + BB C = C + CC D = D + DD Next I /* 结束对I的循环*/
Step6:输出结果
A,B,C,D连续存放,共16个字节,128位。 按十六进制依次输出这个16个字节。
数字签名
问题的提出
假定John向Mary发送一个带鉴别的报文,可能 会出现如下的争执: 1、Mary可能伪造不同的报文,并声称它来自 John。Mary只要简单地生成一个报文,并附加 使用由John和Mary所共享的密钥生成的鉴别码 即可。 2、John可以否认发送过该报文。因为Mary伪 造一个报文是可能的,无法证明John发送过该 报文这一事实。
Step4:处理位操作函数
定义四个MD5基本的按位操作函数: X,Y,Z为32位整数。 F(X,Y,Z) = (X and Y) or (not(X) and Z) G(X,Y,Z) = (X and Z) or (Y and not(Z)) H(X,Y,Z) = X xor Y xor Z I(X,Y,Z) = Y xor (X or not(Z))
说明
唯一性和不可逆性都不是绝对的,从理论上 分析是一种多对一的关系,但两个不同的信 息产生相同摘要的概率很小。 不可逆是指从输出反推输入所需的运算量和 计算时间太大,使用穷搜字典的方法又需要 太多的存储空间。
MD5-算法描述
算法输入是一个字节串,每个字节是8个bit。 共六个步骤
Step1:补位
/* 第4轮*/
/* 以 [abcd k s i]表示如下操作 a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */ /* Do the following 16 operations. */ [ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52] [ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56] [ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60] [ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
信息隐藏系统模型
特点
自恢复性:秘密数据在一定程度破坏后,接收方仍然能 恢复隐藏信息。 鲁棒性:不因宿主文件的某种改动而导致隐藏信息丢失 的能力。 安全性:隐藏算法具有较强的抗攻击的能力,使隐藏信 息不会被破坏。 不可检测性:隐藏宿主与原始宿主具有一致的特性,使 攻击者无法判断是否有隐藏信息。 透明性:经过一系列的隐藏处理后,目标数据没有明显 的降质现象,而隐藏的数据却无法人为地看见或听见。
具体过程如下:
/* 设置主循环变量 */ For i = 0 to N/16-1 do /*每循环一次,把数据原文存放在16个元素的数组X中. */ For j = 0 to 15 do Set X[j] to M[i*16+j]. end /结束对J的循环 /* Save A as AA, B as BB, C as CC, and D as DD. */ AA = A BB = B CC = C DD = D
再定义四个分别用于四轮变换的函数。 设Mj表示消息的第j个子分组(从0到15), <<<s表示循环左移s位,则四种操作为: FF(a,b,c,d,Mj,s,ti)表示 a=b+((a+(F(b,c,d)+Mj+ti)<<<s) GG(a,b,c,d,Mj,s,ti)表示 a=b+((a+(G(b,c,d)+Mj+ti)<<<s) HH(a,b,c,d,Mj,s,ti)表示 a=b+((a+(H(b,c,d)+Mj+ti)<<<s) II(a,b,c,d,Mj,s,ti)表示 a=b+((a+(I(b,c,d)+Mj+ti)<<<s)
/* 第2轮* */
/* 以 [abcd k s i]表示如下操作 a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */ /* Do the following 16 operations. */ [ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20] [ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24] [ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28] [ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]
/* 第1轮*/
/* 以 [abcd k s i]表示如下操作 a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */ /* Do the following 16 operations. */ [ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 7 3] [BCDA 3 22 4] [ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 7 7] [BCDA 7 22 8] [ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12] [ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
Step3:初始化MD5参数
有四个32位整数变量 (A,B,C,D) 用来计算信息 摘要,每一个变量被初始化成以下以十六进 制数表示的数值,低位的字节在前面。 word A: 01 23 45 67 word B: 89 ab cd ef word C: fe dc ba 98 word D: 76 54 32 10 注意:低位的字节在前面指的是Little Endian 平台上内存中字节的排列方式。