上海交大密码学课件--第11讲 认证、哈希算法
密(研)11-密码学Hash函数
第11章 密码学Hash函数Crytographic Hash Functions课程内容大纲1. 引言第一部分:对称密码2. 传统加密技术第三部分:密码学数据完整性算法11.密码学Hash函数3. 分组密码与数据加密标准(DES) 12.消息认证码(MAC) 4. 数论与有限域的基本概念 13.数字签名 5. 高级加密标准(AES) 6. 分组密码的工作模式 7. 伪随机数的产生和流密码第四部分:相互信任14.密钥管理与分发 15.用户认证第二部分:公钥密码8. 数论入门 9. 公钥密码学与RSA 10. 密钥管理和其他公钥密码体制讲课内容11.1 密码学Hash函数的应用 11.2 两个简单的Hash函数 11.3 需求和安全性、安全Hash函数结构 11.4 基于分组密码链接的Hash函数 11.5 安全Hash算法(SHA) 补充:Hash函数MD511.1 密码学Hash函数的应用Hash函数定义• (单词"hash"的翻译:哈希、杂凑、散列、… ) • Hash函数H是一公开函数,用于将任意长的消息 M映射为较短的、固定长度的一个值H(M)。
称函 值H(M)为杂凑值、杂凑码或消息摘要 M → h = H(M)• 在安全应用中使用的Hash函数称为密码学Hash 函数(cryptographic hash function)Hash函数特点• Hash值 H(M) 是消息中所有 比特的函数,因此提供了一 种错误检测能力,即改变消 息中任何一个比特或几个比 特都会使杂凑码发生改变。
Hash函数的应用(1)消息认证 (2)数字签名 (3)其它一些应用Hash函数应用之一:消息认证• 消息认证是用来验证消息完整性的一种机制或服务 完整性 • 当Hash函数用于提供消息认证功能时,Hash函数 值通常称为消息摘要(message digest)• 一般地,消息认证是通过使用消息认证码(MAC) 实现的,即带密钥的Hash函数。
哈希算法
哈希算法以及应用—MD510级数字媒体杨国强摘要:Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。
这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。
数学表述为:h = H(M) ,其中H( )--单向散列函数,M--任意长度明文,h--固定长度散列值。
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。
关键词:哈希算法;MD5绪论在信息安全领域中应用的Hash算法,还需要满足其他关键特性:第一当然是单向性(one-way),从预映射,能够简单迅速的得到散列值,而在计算上不可能构造一个预映射,使其散列结果等于某个特定的散列值,即构造相应的M=H-1(h)不可行。
这样,散列值就能在统计上唯一的表征输入值,因此,密码学上的 Hash 又被称为"消息摘要(message digest)",就是要求能方便的将"消息"进行"摘要",但在"摘要"中无法得到比"摘要"本身更多的关于"消息"的信息。
第二是抗冲突性(collision-resistant),即在统计上无法产生2个散列值相同的预映射。
给定M,计算上无法找到M',满足H(M)=H(M') ,此谓弱抗冲突性;计算上也难以寻找一对任意的M和M',使满足H(M)=H(M') ,此谓强抗冲突性。
密码学基础ppt课件
2019
29
对称密码算法 vs.非对称密码算法
对称密码算法(Symmetric cipher):加密密钥和解 密密钥相同,或实质上等同,即从一个易于推出另一 个。又称传统密码算法(Conventional cipher)、秘密密 钥算法或单密钥算法。
DES、3DES、IDEA、AES
16
密码学
密码学(Cryptology)
• 研究信息系统安全保密的科学。由两个 相互对立、相互斗争,而且又相辅相成 、相互促进的分支科学所组成的,分别 称为密码编码学(Cryptography)和密码 分析学(Cryptanalysis)。
2019
17
密码编码学 Vs. 密码分析学
密码编码学(Cryptography) • 主要研究对信息进行编码,实现对信息的隐 蔽。 密码分析学( Cryptanalysis ) • 主要研究加密消息的破译或消息的伪造。
加密和解密算法的操作通常都是在一组密钥的控制下进 行的,分别称为加密密钥(Encryption Key) 和解密密钥 (Decryption Key)。
2019 23
密码算法
密码算法(Cryptography Algorithm):用于加密 和解密操作的数学函数。 加密算法(Encryption Algorithm):发送者对明 文进行加密操作时所采用的一组规则。 解密算法(Decryption Algorithm):接收者对密 文进行解密操作时所采用的一组规则。
90年代,逐步出现椭圆曲线等其他公钥算法。
公钥密码使得发送端和接收端无密钥传输的保密通 信成为可能!
2019 14
什么是密码学
密码学基本概念 密码体制分类 密钥管理
crypto-11
2011-3-16
现代密码学理论与实践-11
21/37
Hash Functions
Condenses arbitrary message to fixed size Usually assume that the hash function is public and not keyed
cf. MAC which is keyed
接收方可以确信报文未被更改; 接收方可以确信报文来自声称的发送者; 接收方可以确信报文序号正确,如果有的话。
报文鉴别不提供保密 MAC函数类似加密,但非数字签名,也无需可逆 将MAC直接与明文并置,然后加密传输比较常用
2011-3-16
现代密码学理论与实践-11
10/37
Message Authentication Codes
基于DES的报文鉴别码 FIPS PUB 113
该算法定义为以密码分组链接(CBC)为操作方 式的用0作为初始化向量的DES
2011-3-16
现代密码学理论与实践-11
18/37
2011-3-16
现代密码学理论与实践-11
19/37
使用消息认证码的几种情形
相同报文进行多点广播,以明文加对应MAC的形式进行 广播,接收者负责鉴别,不正确时发出告警 接收方无法对所有收到的报文进行解密工作,则可以进 行有选择地鉴别,对报文作随机检查 对明文计算机程序进行鉴别,检查完整性 某些应用不关注报文的保密而更重视鉴别报文的真实性, 如SNMPv3,将保密与鉴别分开 保密函数与鉴别函数的分离能提供结构上的灵活性,如 在应用层完成鉴别而在较低层加密 在超过接收时间后继续延长保护期限,同时允许处理报 文内容 MAC不提供数字签名,因为双方共享密钥。
《密码学》课件
THANKS
感谢观看
使用复杂密码
鼓励用户使用包含大写字母、小写字 母、数字和特殊字符的复杂密码。
使用密码管理工具
推荐用户使用密码管理工具,如 LastPass、1Password等,以方便管 理和存储多个密码。
05 经典密码学应用
网络安全
01
保障数据传输安全
通过加密技术对网络传输的数据 进行保护,防止数据被窃取或篡 改。
《经典密码学》ppt课件
contents
目录
• 密码学简介 • 加密算法 • 经典密码体制 • 密码破解与防御 • 经典密码学应用 • 未来密码学展望
01 密码学简介
密码学定义
密码学是一门研究保护信息安全的科 学,它涉及到信息的编码、传输、存 储和访问等各个环节的安全保密问题 。
密码学通过使用加密算法和密钥管理 等技术手段,对信息进行加密、解密 、认证和保护,以确保信息的机密性 、完整性和可用性。
密码学的重要性
01
02
03
保护国家安全
密码学在国家安全领域中 发挥着至关重要的作用, 如军事通信、情报传递等 。
保障商业利益
商业组织需要保护商业机 密和客户数据,避免商业 利益受到损失。
维护个人隐私
个人隐私的保护是社会文 明进步的体现,密码学能 够防止个人信息被非法获 取和滥用。
密码学的发展历程
密钥派生函数
使用密钥派生函数从原始密钥生成多个派生 密钥,以提高安全性。
多重哈希
使用多种哈希算法对密码进行多次哈希,增 加破解难度。
加密存储
使用加密算法将密码存储在安全环境中,只 有通过解密才能获取原始密码。
密码管理策略
定期更换密码
密码学基础通用课件
目录 CONTENT
• 密码学概述 • 加密技术基础 • 对称加密技术 • 非对称加密技术 • 哈希函数与数字签名 • 密码学在现实生活中的应用
01
密码学概述
密码学的定义与目的
密码学的定义
密码学是研究如何隐藏信息,使其变 得难以理解和未经授权的情况下不可 访问的科学。
密码学的目的
对称加密技术的评估标准
安全性
评估对称加密技术的安全性主要 考虑密钥的长度、加密算法的复 杂性和破解的难度等因素。
效率
评估对称加密技术的效率主要考 虑加密和解密的速度以及所需的 计算资源等因素。
适应性
评估对称加密技术的适应性主要 考虑其能否适应不同的应用场景 和需求,例如数据的大小、传输 速度和存储空间等因素。
灵活性
灵活性是指加密技术对不同需求的适应能力。如果一个加 密算法只能用于某些特定的应用场景,则它可能不适用于 其他场景。
03
对称加密技术
对称加密技术的原理
对称加密技术是一种基于密钥的加密 方法,其中加密和解密使用相同的密 钥。这种方法的安全性基于密钥的保 密性。
对称加密技术可以用于保护数据的机 密性,也可以用于数字签名等其他应 用。
数字签名的原理与类别
数字签名的原理
数字签名是一种用于验证数字文件真实性和完整性的技术。它利用公钥密码体系中的签名密钥对文件 进行签名,通过验证签名密钥的匹配性和文件内容的完整性,来判断文件的真实性和可信度。
数字签名的类别
根据使用的公钥密码体系和签名算法的不同,数字签名可以分为多种类别。常见的类别包括RSA、 DSA、ECDSA等。这些数字签名方案在安全性、性能和实现难度等方面存在差异,应根据具体需求选 择合适的数字签名方案。
认证、哈希算法PPT课件
T[64] = EB86D391
16 MD5算法描述(Cont.)
• 步骤5:输出结果。所有L个512位数据块处理完毕后,最后的结果 就是128位消息摘要。
CV0 = IV CVq+1 = SUM32(CVq,RFI[Yq,RFH[Yq,RFG[Yq,RFF[Yq,CVq]]]]) MD = CVL
其中:IV = ABCD的初始值(见步骤3) Yq = 消息的第q个512位数据块 L = 消息中数据块数; CVq = 链接变量,用于第q个数据块的处理 RFx = 使用基本逻辑函数x的一轮功能函数。 MD = 最终消息摘要结果 SUM32=分别按32位字计算的模232加法结果。
Yq
512
CVq 128
字
T[i] = 表T中的第i个32位字;
+
= 模 232的加;
ABCD
基本MD5操作(单步)
+
g
X[k] +
T[i] +
CLSs
Function g g(b,c,d) 1 F(b,c,d) (bc)(bd) 2 G(b,c,d) (bd)(cd) 3 H(b,c,d) bcd 4 I(b,c,d) c(bd)
实现都实际可行; – 对任意给定的码h, 寻求x使得H(x)=h在计算上是不
可行的(单向性); – 任意给定分组x, 寻求不等于x的y, 使得H(y)= H(x)
在计算上不可行(弱抗攻击性); – 寻求对任何的(x,y)对使得H(x)=H(y)在计算上不可
行(强抗攻击性);
7 Hash 函数设计原理
• 步骤2: 添加长度。原始消息长度(二进制位的个数 ),用64位表示。
表示为L个512位的数据块:Y0,Y1,…,YL-1。其长度为 L512bits。令N=L16,则长度
密码学基础 ppt课件
2.1.2 密码体制
– 消息(为了沟通思想而传递的信息)在密码学中 被称为明文(Plain Text)。
– 伪装消息以隐藏它的内容的过程称为加密 (Encrypt)
– 被加密的消息称为密文(Cipher Text) – 把密密文钥转ke 变为明文的过程称为解密(De密c钥rkydpt)。
明文
加密
• 密码体制描述如下:
– M=C=Z/(26);q=26;
– K={ k1,k2∈Z | 0< k1,k2<26,gcd(k1,26)=1};
– Ek(m)=(k1m+k2) mod q;
– Dk(c)= k1#( c - k2) mod q,其中k1#为k1在模q 下的乘法逆元。
• 密钥范围
– K1:所有和26互素的数。K1=1?
22
S-DES
• S-DES加密算法
– S-DES是由美国圣达卡拉大学 的Edward Schaeffer教授提出 的,主要用于教学,其设计思 想和性质与DES一致,有关函 数变换相对简化,具体参数要 小得多。
– 输入为一个8位的二进制明文 组和一个10位的二进制密钥, 输出为8位二进制密文组;
– 解密与加密基本一致。
• 古典替换密码:单表代替密码,多表代替密码以及 轮换密码。
• 对称密钥密码:分组密码和流密码。 • 公开密钥密码:加密和解密使用不同的密钥。
– 密码分析也称为密码攻击,密码分析攻击主要 包括:
• 唯密文攻击、已知明文攻击、选择明文攻击、自适 应选择明文攻击、选择密文攻击、选择密钥攻击。
8
2.2 古典替换密码
使用频度,进行匹配分析。
• 如果密文信息足够长,很容易对单表代替密码进行破译。
密码学基础课件ppt课件
密码分析II——简单替换密
0.14
码
0.12
0.10
明文样本
0.08
统计分布
0.06
0.04
0.02
0.00
A C E G I K MOQ S UWY
2019/6/13
密文样本 统计分布
课后预习
• 有没有好的办法能避免统计分析呢? • Double Transposition(双置换)
2019/6/13
密码学基本概念
• 密码学(Cryptology)The art and science of making and breaking “secret codes”
o 是研究编制密码和破译密码的技术科学。
• 密码编码学( Cryptography )making “secret codes”
• 如何破解? • Try Them All • DES(Data Encryption Standard),有效密钥长度为
56bit
2019/6/13
SUCCESS
THANK YOU
2019/6/13
密码分析II——简单替换密
码
• 任意置换
• 26! > 288 > 1026 • Try Them All? • 1千万亿次/秒=1015 • 1026 1015 =1011秒 ≈ 3000年
古典密码
• 密码学的发展大致可以分为两个主要阶段:
1. 从它的出现开始,到19世纪末为止。
这个阶段的密码技术,无论是加密方法和实现手段 都比较原始,主要采用人工处理和简单机械处理的方法来加密或 解密信息,安全保密的强度无从估计。存在着保密性不高、抗破 译的能力低、使用范围狭窄、科学性不强等问题。
数据加密解密身份认证流程Alice先用Hash算法对发送发信息即PPT课件
7.2 SET协议
(Secure Electronic Transaction,SET) 背景:网上消费者发出的支付指令在由商户送到 支付网关之前,是在公用网上传送的,这一点与 持卡POS消费者有着本质的不同。因此,在开放的 网络上处理交易,如何保证传输数据的安全成为 电子商务能否普及的最重要的因素之一,SET正是 在这种需求的推动下应运而生的。 它 是 由 VISA 和 MasterCard 两 大 信 用 卡 公 司 发 起 , 会同IBM、Microsoft等信息产业巨头于1997年6月 正式制定发布的用于因特网事务处理的一种标准。
安全电子交易(SET)是目前已经标准化且 被业界广泛接受的一种网际网络信用卡付款 机制。 SET协议包括SET的交易流程、程序设 计规格与SET协议的完整描述三部分,在SET 协议中主要定义了以下内容: (1) 加密算法(如RSA和DES)的应用; (2) 证书消息和对象格式; (3) 购买消息和对象格式; (4) 请款消息和对象格式; (5) 参与者之间的消息协议。
最高权威的是根CA (Root CA,RCA),是各 个下级CA证书的基础。由它生成品牌CA (BCA), 再 由品牌CA生成地区CA (CCA)、支付CA(PCA)和商户 CA (MCA)。
再交易双方的通信过程中,认证系统都会将 对方的证书沿着信任链逐级的追溯到根证书,而所 有SET软件都知道根证书的公钥,从而确认该证书的 合法性。
在SET中,最主要的证书是持卡人证书、支 付网关证书和商家证书。其他还有银行证书、发卡 机构证书。
第11章 (11)教材配套课件
2 公钥加密体制的密钥管理
公钥加密的一个主要用途是分配单钥密码体 制使用的密钥。
本节介绍两方面内容: ——公钥密码体制所用的公开密钥的分配。 ——如何用公钥体制来分配单钥体制所需密 钥。
2.1 公钥的分配
1. 公开发布 公开发布指用户将自己的公钥发给每一其他 用户,或向某一团体广播。例如PGP (pretty good privacy)中采用了RSA算法, 它的很多用户都是将自己的公钥附加到消息 上,然后发送到公开(公共)区域,如因特 网邮件列表。
⑤ A以f(N2)作为对B的应答,其中f是对N2进行某种 变换(例如加1)的函数,并将应答用会话密钥加 密后发送给B。
这两步可使B相信第③步收到的消息不是一个重放。
注意: 第③步就已完成密钥分配,第④、⑤两步 结合第③步执行的是认证功能。
主密钥与会话密钥
密钥可根据其不同用途分为会话密钥和主密钥两种 类型,会话密钥又称为数据加密密钥,主密钥又称 为密钥加密密钥。由于密钥的用途不同,因此对密 钥的使用方式也希望加以某种控制。
因此A能验证自己发出的请求在被KDC收到之前, 是否被他人篡改。而且A还能根据一次性随机数相 信自己收到的应答不是重放的过去的应答。
此外,消息中还有B希望得到的两项内容:
▪ 一次性会话密钥KS; ▪ A的身份(例如A的网络地址)IDA。 这两项由KB加密,将由A转发给B,以建立A、 B之间的连接并用于向B证明A的身份。
要防止密钥泄漏,就要对密钥的产生、密钥的分发、密 钥的储存、密钥的使用和销毁等各个环节进行精心设计。许 多标准化组织提出了一些密钥管理技术的标准,如 ISO11770-X和IEEE1363。本章我们主要讨论密钥的产生和 分发问题,探讨对称体制下共享密钥的建立方法、公钥体制 下的公钥管理办法和多人分享密钥问题。
哈希算法.ppt
hashtables - 7
Comp 122, Fall 2003
Lin / Devi
Methods of Resolution
Chaining: (拉链法)
T[h[k]]. h[k] is the hash value of key k.
hashtables - 5
Comp 122, Fall 2003
Lin / Devi
Hashing
U
(universe of keys)
K
k1
k4
(actual k2
keys)
k5 k3
collision
hashtables - 6
hashtables - 11
Comp 122, Fall 2003
Lin / Devi
Analysis on Chained-Hash-Search
Load factor =n/m = average keys per slot.
» m – number of slots. » n – number of elements stored in the hash table.
time required is Θ(1+α).
hashtables - 13
Comp 122, Fall 2003
Lin / Devi
Expected Cost of a Successful Search
Theorem: A successful search takes expected time Θ(1+α).
hash 算法和加密算法介绍
hash 算法和加密算法介绍hash 算法定义:hash (哈希或散列)算法是信息技术领域非常基础也非常重要的技术。
它能将任意长度的二进制值(明文)映射为较短的固定长度的二进制值(hash 值),并且不同的明文很难映射为相同的hash 值。
例如计算一段话“hello blockchain world, this is yeasy@github”的md5 hash 值为89242549883a2ef85dc81b90fb606046 。
➢$ echo "hello blockchain world, this is yeasy@github"|md5➢89242549883a2ef85dc81b90fb606046这意味着我们只要对某文件进md5 hash 计算,得到结果为89242549883a2ef85dc81b90fb606046 ,这就说明文件内容极大概率上就是“hello blockchain world, this is yeasy@github”。
可见,hash 的核心思想十分类似于基于内容的编址或命名。
注:md5 是一个经典的hash 算法,其和SHA-1 算法都已被证明安全性不足应用于商业场景。
一个优秀的hash 算法,将能实现:正向快速:给定明文和hash 算法,在有限时间和有限资源内能计算出hash 值。
逆向困难:给定(若干)hash 值,在有限时间内很难(基本不可能)逆推出明文。
输入敏感:原始输入信息修改一点信息,产生的hash 值看起来应该都有很大不同。
冲突避免:很难找到两段内容不同的明文,使得它们的hash 值一致(发生冲突)。
冲突避免有时候又被称为“抗碰撞性”。
如果给定一个明文前提下,无法找到碰撞的另一个明文,称为“抗弱碰撞性”;如果无法找到任意两个明文,发生碰撞,则称算法具有“抗强碰撞性”。
流行的算法目前流行的hash 算法包括MD5(已被证明不够安全)和SHA-1,两者均以MD4 为基础设计的。
Hill密码-上海交通大学数学系
21
13
18
8
12
1
19
15
20
加 密:左乘加密矩阵 A 1 2
0 3
直接结果
57 4437 35 25 25 57 38 60
63
39
54
24
36
3
57
45
60
密文向量
5 1811 9 25 25 5128
11
13
2
24
10
3
5
19
A1
20 1
3 21
15
3
18 1
19
(mod26)
利用Matlab
A-1 =[1 17;0 9]
密文 向量
C=[15 23 9 0 24 21 9 5 2 21 18 9 12 8 1 13 12 10 15 5 8;
10 16 19 21 1 21 19 1 1 3 19 16 2 1 13 13 16 10 20 14 8]
信息不足的情况
已知一段密文以Hill2 加密,明文字母表值 为自然顺序, 密文为
ZCWVUSQAVAGWYPGOUCCUONWY
WVQCKLQT 已获知其中相邻字母GO表示字母VE, 试破译 这密文
175
哈希函数和数字签名概述
MAC的动机
为了鉴别而加密整个报文不够方便
对称加密整个报文是个浪费
• 即使同时为了保密,也有另外的办法和体制
用非对称加密速度太慢,每秒仅百来笔
• 后来引入了签名体制
鉴别和加密的分离带来灵活性
确实有时只要鉴别而不用(或不能)加密
• 如法律文书、公开信、声明、公告、公证、鉴定等 • 如软件鉴别/防病毒、网络管理报文等
数据
用户B
哈希算法
哈希算法
哈希值
用户A 的私 钥
用户A 的公 钥
哈希值
哈希值
如果哈希值匹配,说 明该数据由该私钥签 名。
18
数字签名的要求
依赖性:数字签名必须依赖要签名消息的比特模式 (不可分离性)
唯一性:签名者使用唯一的“消息”生成数字签名 ,以防伪造和否认 (独特性)
可验证性 :数字签名必须是在算法上可验证的。 抗伪造:伪造一个数字签名在计算上不可行 (不可
4
哈希运算——完整性
用户A
用户B
数据 哈希算法
哈希值
哈希算法
如果哈希值匹配, 说明数据有效
数据
哈希值
用户A发函数
安全Hash函数的一般结构
Y0
Y1
YL-1
b
b
b
IV n
f
n
f
n
……
n fn
CVL
CV1
CVL-1
IV = 初始值
CV = 链接值
Yi = 第i 个输入数据块
输入:最大长度为264位的消息; 输出:160位消息摘要; 处理:输入以512位数据块为单位处理.
8
比较SHA1/ MD5
散列值长度
MD5 128bits SHA1 160bits
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
Word A: 01 23 45 67 Word B: 89 AB CD EF Word C: FE DC BA 98 Word D: 76 54 32 10
14 MD5算法描述(Cont.)
• 步骤4:处理消息块(512位 = 16个32位 字)。一个压缩函数是本算法的核心 (HMD5)。它包括4轮处理。四轮处理具有 相似的结构,但每次使用不同的基本逻辑 函数,记为F,G,H,I。每一轮以当前的512 位数据块(Yq)和128位缓冲值ABCD作为 输入,并修改缓冲值的内容。每次使用 64元素表T[1…64]中的四分之一
T[1] T[2] T[3] T[4] ...
= D76AA478 = E8C7B756 = 242070DB = C1BDCEEE
T[16] = 49b40821
T[49] T[50] T[51] T[52]
= F4292244 = 432AFF97 = AB9423A7 = FC93A039
...
MD5产生报文摘要的过程
填充 (1 to 512 bits)
100…0
报文长度 (K mod 264)
512 bits
YL-1
512
128
HMD5
CVL-1
128-bit 摘要
11 MD5算法描述
• 步骤1: 添加填充位(一个1 和若干个0)。在消息的最 后添加适当的填充位使得数据位的长度满足length 448 mod 512。
+ ABCD
2i = (1+5i) mod 16 3i = (5+3i) mod 16 2i = 7i mod 16
18 MD4 (1990年10月作为RFC1320发表)
by Ron Rivest at MIT
• MD4的设计目标 • 安全性: • 速度:32位体系结构下计算速度快. • 简明与紧凑:易于编程. • 有利的小数在前的结构(Intel 80xxx, Pentium )
• MD4与MD5的区别 • MD4用3轮,每轮16 步,MD5用4轮,每轮16步. • MD4中第一轮没有常量加;MD5中64步每一步用了 一个不同的常量 T[i]; • MD5用了四个基本逻辑函数,每轮一个;MD4用了 三个. • MD5每轮加上前一步的结果;MD4没有.
•
•
•
END
• T表,由sin 函数构造而成。T的第i个元素表示 为T[i],其值等于 232abs(sin(i)),其中i是弧度。 由于abs(sin(i))是一个0到1之间的数,T的每一 个元素是一个可以表示成32位的整数。T表提 供了随机化的32位模板,消除了在输入数据中 的任何规律性的特征
15 T 表
单个 512-bit 分组的 MD5 处理过程
17 MD5 压缩函数
每一轮包含对缓冲区ABCD的16步操作所组成的一个序列。
ab + (( a + g(b,c,d) + X[k] +T[i])<<<s)
其中,
a,b,c,d = 缓冲区的四个字,以一个给定的次序排列;
g = 基本逻辑函数F,G,H,I之一;
3. 消息认证过程
4. 1利用对称密码进行认证
• 利用对称密码加密的消息可以作为认证 内容
• 因为只有密钥的拥有者才可以生成 • (要求消息有一定的冗余度) • 但不能解决消息的不可否认性 • (无法证明谁生成的消息)
4.2 报文鉴别码
报文鉴别
|| M
K
HC
M
CH
K
比较
H(K,M)
5. Hashing Functions
• 把任意长的消息“压缩”成固定长的消息的算 法
• 数字签名时,常被使用 • 通常,HASH 函数是公开的 • 输出长度应足够大,防止生日攻击
• 64-bits 认为太小 • 通常 128-512bits
6. Hash 函数设计原理
– H能用于任何大小的数据 – H产生定长输出; – 对任意给定的x, H(x)要相对易于计算,使得软硬件
ABC
D 32
F,T[1…16],X[i] 16 steps
ABC
D
G,T[17…32],X[2i] 16 steps
ABC D
H,T[33…48],X[3i] 16 steps
ABC D
I,T[49…64],X[4i] 16 steps
+ is mod 232 + + + +
CVq+1 128
其中:IV = ABCD的初始值(见步骤3) Yq = 消息的第q个512位数据块 L = 消息中数据块数; CVq = 链接变量,用于第q个数据块的处理 RFx = 使用基本逻辑函数x的一轮功能函数。 MD = 最终消息摘要结果 SUM32=分别按32位字计算的模232加法结果。
Yq
512
CVq 128
第11讲 认证、哈希算法
• 上海交通大学
1. Message Authentication
消息认证包括: • 消息源/完整性 • 身份识别 • 不可否认性
2. 消息认证码 (MAC)
• message authentication code (MAC) • 签名的电子等价形式 • 与消息同时发送 • 通过一些算法, 依赖于消息及双方共享的秘密 • 消息可以是任意长 • MAC 可以是任意长,但常选固定长度 • 这需要hash function • “压缩”消息成固定长度
Yi = 第i 个输入数据块
f = 压缩算法 n = 散列码的长度 b = 输入块的长度
CV0=IV= initial n-bit value CVi=f(CVi-1, Yi-1) (1 i L) H(M) = CVL
9 MD5 算法逻辑
• 输入:任意长度的消息 • 输出:128位消息摘要 • 处理:以512位输入数据块为单位
MD5 (RFC 1321) developed by Ron Rivest at MIT in 90’s.
L512 bits=N 32bits K bits
报文
512 bits
Y0
512
512 bits
Y1
512
512 bits
Yq
512
128
128
HMD5
HMD5
IV
CV1
128
HMD5
CVq
<<<s = 对32位字循环左移s位
X[k] = M[q16 + k] = 在第q个512位数据块中的第k个32位
字
T[i] = 表T中的第i个32位字;
+
= 模 232的加;
ABCD
基本MD5操作(单步)
+
g
X[k] +
T[i] +
CLSs
Function g g(b,c,d) 1 F(b,c,d) (bc)(bd) 2 G(b,c,d) (bd)(cd) 3 H(b,c,d) bcd 4 I(b,c,d) c(b
16 MD5算法描述(Cont.)
• 步骤5:输出结果。所有L个512位数据块处理完毕后,最后的结果 就是128位消息摘要。
CV0 = IV CVq+1 = SUM32(CVq,RFI[Yq,RFH[Yq,RFG[Yq,RFF[Yq,CVq]]]]) MD = CVL
实现都实际可行; – 对任意给定的码h, 寻求x使得H(x)=h在计算上是不
可行的(单向性); – 任意给定分组x, 寻求不等于x的y, 使得H(y)= H(x)
在计算上不可行(弱抗攻击性); – 寻求对任何的(x,y)对使得H(x)=H(y)在计算上不可
行(强抗攻击性);
7 Hash 函数设计原理
• 步骤2: 添加长度。原始消息长度(二进制位的个数 ),用64位表示。
表示为L个512位的数据块:Y0,Y1,…,YL-1。其长度为 L512bits。令M[0…N-1]表示以字为单位的消息表 示。
12 MD5算法描述(Cont.)
• 步骤3:初始化MD缓冲区。一个128位MD缓 冲区用以保存中间和最终散列函数的结果。它 可以表示为4个32位的寄存器(A,B,C,D)。 寄存器初始化为以下的16进制值。 A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476
• 生日攻击(基于生日悖论) 在k个人中,找一个与某人生日相同的人的 概率超过0.5时,只需k>183; 而在此人群 中,至少有两个人生日相同的概率超过0.5, 只需k>23.
8 安全杂凑算法的一般结构
Y0
Y1
b
b
n n fn f
CV1
YL-1
b
n
nf
CVL
CVL-1
IV = 初始值
CV = 链接值