当前位置:
文档之家› 第03章 消息鉴别与数字签名
第03章 消息鉴别与数字签名
① B伪造一个消息,并声称是从A收到的。因A
密钥,A无法证明自己没有发送。 ② A可以否认发送过某个消息,B无法证明A发送过。
B共享
电子商务方面法律应防范:例:
(1)进行电子资金转账时,接收方增加转账资金 ,并声称这是来自发送方的转账金额。(2)委托方发 送电子邮件要求经纪人进行股票交易,交易赔钱, 委托方伪称从没有发过这样的消息。 应用环境:通信(电子交易)双方彼此不能完全
3.2数字签名
3.2.1 数字签名简介 3.2.2 基于公钥密码的数字签名原理 3.2.3 数字签名算法(难)
3.2.1 数字签名简介
1.
2.
数字签名必要性 数字签名的概念及特征
3.2.1 -1数字签名的必要性
消息鉴别 能通过验证消息完整性和真实性,保 护通信不受外部第三方的攻击,但不能防止通 信双方内部的相互攻击,如:
3.1.2 -1 消息鉴别码原理
MAC与加密函数类似, 但不需要可逆,更不易 攻破。 使用分离的消息鉴别码的情形(3): 加解密算法,尤其公钥算法代价大。广播信息 经济可靠方式,明文传送,一个接收者验证。 一些应用不关心保密,而关心消息鉴别 将鉴别函数和加密函数结构上分离,可使层次 结构更加灵活。应用层鉴别消息,传输层提供 保密。
根据特征数字签名应满足下列条件 —实现机制-6
签名必须是与信息相关的二进制位串。 签名必须使用发送者某些独有信息,以防伪造与抵赖; 产生数字签名比较容易; 识别和验证签名比较容易; 伪造该数字签名在计算是不可行的:无论从给定的数字 签名伪造消息,还是从给定消息伪造一个数字签名; 保存一个数字签名副本是可行的。
3.1.4 MD5 *
4.
定义辅助函数
4个非线性函数 F(X,Y,Z), G(X,Y,Z), H(), I() 4种操作:FF(a,b,c,d,Mj,s,ti)= a b+ ( a+ F(b,c,d)+ M[i]+ti)<<s
5.
4轮计算 (4*16)
第一轮 FF(a,b,c,d,Mj,s,ti) 16次 2. 第二轮 GG(a,b,c,d,Mj,s,ti) 16次 3. 第三轮 HH(a,b,c,d,Mj,s,ti) 16次 4. 第四轮 II(a,b,c,d,Mj,s,ti) 16次 ti = 4294967296*abs(sin(i))整数部分 最后 a,b,c,d=a+AA,b+BB,c+CC,d+DD
1.不必修改而直接使用现有的散列函数。散列函数---黑盒 2.如果找到更快更安全的散列函数,应能很容易替代原来嵌 HMAC 总体结构图 图3-5 p59 入的散列函数。 3.应保持散列函数的原有性能,不能过分降低其性能。 HMAC(K,M)= 4.对密钥的使用和处理应比较简单 + opad)||H[ (K+ ipad)||M]] 5.(K 如果已知嵌入的散列函数的强度,则完全可以知道认证机 H[ 制抗密码分析的强度。
信任的情况下….
数字签名,手写签名。
3.2.1 -2数字签名的概念及其特征
数字签名概念(DS)ISO7498-2: ▲ 附加在数据单元上的一些数据,或是对数据单元 所作的密码变换,这种数据和变换允许数据单元 接收者用以确认数据单元来源和数据单元完整性 ,并保护数据,防止被人(包括接收者)进行伪造. 消息鉴别概念 一个数字签名体制是一个五元组 (M,A,K,S,V) 消息鉴别 概念:是一个对收到的消息进行验证 M:消息空间; A:签名空间 K密钥空间; 的过程,验证的内容包括: S:签名算法集合,V:验证算法集合 。满足对任意k, 有一签名算法 Sigk 一验证算法 Verk ,对任意mM, 真实性:消息发送者是真正的,而非假冒 aA完整性:消息在存储和传输过程中没有被篡 , Ver改过。 k(m,a)=1 a=Sigk(m)
3.1.4 -3 MD5*
MD5: 1991 麻省理工学院 Ronald L.Rivest MD4改进,速度慢,安全性高。 输入512分组(16*32)输出128位(4*32) 步骤 1. 消息填充 结果长度模512 =448 2. 添加长度
3. 4. 5.
初始化缓冲区 (4*32) a b c d→AA BB CC DD 定义辅助函数 4个非线性函数 4轮计算
消息鉴别技术
3.1.1 消息鉴别的概念
消息鉴别 概念:是一个对收到的消息进行验
证的过程,验证的内容包括: 真实性:消息发送者是真正的,而非假冒 完整性:消息在存储和传输过程中没有被篡 改过。 消息鉴别系统功能上的层次结构 高层:认证协议
低层 产生鉴别符 高层:调用鉴别函数,验证
低层:鉴别函数
3.1.4 散列函数
1.
2.
3.
散列函数 是一种将输入任意长度消息映射到 固定长度消息摘要的函数。 h=H(M),没有K 散列函数安全性 SHA-1算法 MD5算法
3.1.4 -1 散列函数安全性
攻击:
攻击者得到h(M),试图伪造M’ ,使h(M’)= h(M)
散列函数必须满足的安全特征(3):
源A
宿B
M H()
M
H(M)
E()
D()
M
H(M)
H()
密钥K
密钥K
比较
(a)加密消息及散列码
|| H()
M 密钥K
D()
比较
H()
E()
(b)只加密散列码
密钥K
3.1.3 基于散列函数的鉴别
HMAC 散列函数+MAC(K,M) IP安全 和SSL协议使用HMAC RF2104给出的HMAC设计目标(5)
3.1.3 基于散列函数的鉴别
散列函数(Hash)是消息鉴别码(MAC)的一 种变形。散列函数与消息鉴别码相同点:
输入都是可变大小M; 输出都是固定大小散列码 H(M) 散列码不使用密钥,它仅是输入消息的函数。 需要安全地存放和传输消息摘要,防止被篡改。
散列函数与消息鉴别码不同点:
3.1.4 -2 SHA-1算法
SHA是美 国家标准和技术协会(NIST)1993提出, 1995年发布SHA-1。输入512比特单位分组,输出 160比特消息摘要。
1.
2.
3.
步骤: 附加填充位 填充后结果长度(模512)=448 附加长度 64位:表示原始消息长度 初始化散列缓冲区
两个缓冲区(2* 5*32位),第一个缓冲区ABCDE 初始化值.第二个缓冲区H0 H1 H2 H3 H4
(m,a)是一个消息签名对。
3.2.1 -2数字签名的概念及其特征
数字签名特征(4) (提出需求)
可验证性 不可伪造性 不可否认性:发送方发送签名消息,无法抵 赖发送行为;接收方在收到消息后,也无法 否认接收行文 数据完整性:发送方能够对消息的完整性进 行校验,具有消息鉴别的作用
3.2.1 -2数字签名的概念及其特征
Wj= (W j-3 Wj-8 W j-14 W j-16)<<1 (16<= j<=79)
H0,H1,H2,H3,H4 A,B,C,D,E TEMP= (A<<5 )+ ft (B,C,D) + E +Wj+Kt, ft非线性函数 明文相关的内容
E=D D=C C=B<<30, B= A A=TEMP 最后:A,B,C,D,E H0+A,H1+B,H2+C,H3+D,H4+E
3.1.1 消息鉴别的概念
根据鉴别符的生成方式,鉴别函数分(3类):
基于消息加密方式 以整个消息的密文作为鉴别符 基于消息鉴别码(MAC)3.1.2 发送方利用公开函数+密钥产生一个固定长度的 值作为鉴别标识,并与消息一同发送 基于散列函数 3.1.3 采用hash函数将任意长度的消息映射为一个定长 的散列值,以此散列值为鉴别码。MAC方式的一 种特例
第3章 消息鉴别与数字签名
经典密码学->现代公开的计算机环境
保密有效系统地保障电子数据的机密性、完整性 和真实性
公开的计算机网络环境中,传输中的数据可能 遭受到威胁(5种):
1. 2. 3.
保密 消息 鉴别 数字 签名
4. 5.
泄密 通信业务量分析 伪造: 攻击者假冒发方身份,向网络插入一条消 息;或假冒接收方发送一个消息确认。 篡改:内容篡改 序号篡改 时间篡改 行为抵赖
4.
5.
计算消息摘要(每一个阶段一个分组),每组 80轮 输出。第N阶段输出
计算消息摘要
步骤2得到的消息块M1,M2,…Mn. 每块80轮运算 ,每轮输入ABCDE,更新. 每一轮使用:
附加常数Kt 给出, 0<=t<=79; 函数ft
Wj=Mj (0<= j<=15)
消息M扩充(16*32比特) (80*32比特)
单向性 对于任意给定的散列码h,寻找x使得H(x)=h 在计算上不可行。 强对抗碰撞性(3) 输入 输出 h(M)容易计算+ (4):寻找任何的(M1,M2)使得H(M1)=h(M2) 在计算 上不可行。 弱对抗碰撞性 (4减弱):对于任意给定的分组M,寻找不 等于M的M’,使得H(M’)=h(M)在计算上不可行。弱 对抗碰撞的散列函数随着使用次数增加,安全性降低。