消息认证与数字签名

合集下载

信息安全学习总结13-消息认证与数字签名

信息安全学习总结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(消息认证码)、数字签名的区别
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. 密钥的更新
为了保持消息认证的安全性,发送方和接收方需要定期更新密钥。

密钥更新应该在一定的时间间隔内进行,并且使用安全的方式来实现。

总之,消息认证是确保数据安全的重要方法,发送方和接收方应该采取相应的措施来确保消息的完整性,来源和不可否认性。

同时,密钥的保密性和更新也应得到重视。

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

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

消息认证的概念

消息认证的概念

消息认证的概念
消息认证是指通过特定的算法和方法,确保消息的完整性和可信性,以防止消息被篡改、伪造或替换。

认证机制可以验证消息的真实性和发送者的身份,并确认消息在传输过程中未被篡改。

消息认证的概念通常包括以下几个方面:
1. 数据完整性:认证机制使用哈希函数等算法,对消息进行计算和生成摘要,将该摘要附加到消息中。

接收者可以使用同样的算法计算摘要,比对发送者附加的摘要,以判断消息是否在传输过程中被篡改。

2. 数据源认证:认证机制使用数字签名等方法,发送者使用私钥来对消息进行签名,接收者使用对应的公钥来验证签名的有效性。

通过验证签名,接收者可以确认消息的来源和发送者的身份。

3. 重播攻击防护:认证机制可能使用时间戳或随机数等方法,防止重放攻击的发生。

接收者会检查消息的时间戳或随机数,确保消息不是之前发送的重复消息。

4. 防止伪造:认证机制使用加密算法或密钥交换协议等方法,确保通信的安全性,防止第三方伪造消息,窃听通信或篡改通信内容。

消息认证在保障通信安全性和防范网络攻击方面起着重要的作用。

它可以用于保护重要数据和信息的传输,确保消息的可信度和完整性。

06_密码学基础(五)_消息认证和数字签名

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 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章 数字签名与消息认证
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、消息认证和数字签名讲义

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 平台上内存中字节的排列方式。
相关文档
最新文档