第12章 散列算法和MAC算法

合集下载

散列算法(也叫摘要算法)

散列算法(也叫摘要算法)

散列算法(也叫摘要算法)散列算法(也叫摘要算法)是一种将任意长度的数据映射为固定长度散列值的算法。

它的主要功能是将输入数据压缩成一个固定长度的散列值,以便在数据存储、比较和检索等操作中快速查找数据,而不需要保留原始数据。

散列算法被广泛应用于密码学、数据完整性验证、数字签名、内容寻址和数据结构等领域。

散列算法的基本原理是将输入数据进行数学转换,经过一系列的操作,输出一个固定长度的散列值。

不同的输入数据会产生不同的散列值,即使只有一个比特的差异。

这种特性使得散列算法适用于唯一标识大量数据的场景,例如在密码验证中,可以将用户输入的密码经过散列算法处理后,与数据库中存储的散列值进行比较,而不需要直接存储用户的原始密码,从而提高了安全性。

散列算法的设计目标包括:1.处理速度快:散列算法需要高效地处理大量数据,以便在实时应用中实现快速的数据处理和查询。

2.均匀分布:散列算法应该能够将输入数据均匀分布到散列值空间中,以减少碰撞(即不同数据产生相同散列值的情况)的概率,提高散列算法的效果。

3.不可逆性:散列算法应是不可逆的,即不应该能够通过散列值反推原始数据。

这样可以保证数据的机密性,同时在密码学中也能够提供不可伪造的数字签名。

常用的散列算法包括:1. MD5(Message Digest Algorithm 5):MD5是一种常见的散列算法,可以将任意长度的数据转换为128位的散列值。

然而,由于其设计上的弱点,MD5已经不再被推荐在安全领域使用,因为存在碰撞攻击(即找到两个不同的输入数据,但散列值相同的情况)的风险。

2. SHA(Secure Hash Algorithm):SHA系列算法是美国国家标准技术研究所(NIST)设计的一系列散列算法。

包括SHA-1、SHA-256、SHA-512等不同长度的散列值。

SHA-1也已经不再被推荐在安全领域使用,而SHA-256和SHA-512仍然被广泛应用。

3. CRC(Cyclic Redundancy Check):CRC算法是一种用来检测和纠正数据传输错误的算法,常用于数据完整性验证。

无线网络安全技术应用11散列算法和MAC算法

无线网络安全技术应用11散列算法和MAC算法
9/31
Secure Hash Algorithm算法
1992年NIST制定了SHA(128位) 1993年SHA成为标准(FIPS PUB 180) 1994年修改产生SHA-1(160位) 1995年SHA-1成为新的标准,作为SHA-1
(FIPS PUB 180-1) 2002年发布修订版SHA-256,SHA-384,SHA-
T]
X散:列将码标用识K符xaI加D密x ,后密形文成EK签xy[名M发],送以给及A对。IDx和密文消息的
A:解密签名,用散列码验证消息,这时A只能验证消息 的密文而不能读取其内容。然后A将来自X的所有信息加 上时间戳并用Kay加密后发送给Y。
2019/11/16
41
直接数字签名方法2
用发送方的私钥对消息的hash码进行加密 (2) A→B: M||EKRa[H(M)]
提供数字签名
H(M) 受到密码算法的保护,例如MD5或SHA1;
只有A 能够生成EKRa[H(M)]
(2’) A→B: EK[M||EKRa[H(M)]] 提供保密性、数字签名。
引入仲裁者,通信双方都非常信任仲裁者。
2019/11/16
40
直接数字签名方法1
用发送方的私钥对整条消息进行加密来产生签名. (1) A→B: EKRa[M]
提供了鉴别与签名
只有A具有KRa进行加密; 传输中没有被篡改; 任何第三方可以用KUa 验证签名
(1’) A→B: EKUb [EKRa(M)] 提供了保密(KUb)、鉴别与签名(KRa)
仲裁者在这一类签名模式中扮演敏感和关 键的角色。
所有的参与者必须极大地相信这一仲裁机制工 作正常。(trusted system)

SSL协议的工作原理(图解安全套接字)

SSL协议的工作原理(图解安全套接字)

SSL协议的工作原理图解安全套接字SSL协议的工作原理1、密码学的相关概念密码学(cryptography):目的是通过将信息编码使其不可读,从而达到安全性。

明文(plain text):发送人、接受人和任何访问消息的人都能理解的消息.密文(cipher text):明文消息经过某种编码后,得到密文消息。

加密(encryption):将明文消息变成密文消息.解密(decryption):将密文消息变成明文消息.算法:取一个输入文本,产生一个输出文本.加密算法:发送方进行加密的算法.解密算法:接收方进行解密的算法.密钥(key):只有发送方和接收方理解的消息对称密钥加密(Symmetric Key Cryptography):加密与解密使用相同密钥。

非对称密钥加密(Asymmetric Key Cryptography):加密与解密使用不同密钥。

2、相关的加密算法介绍DES算法即数据加密标准,也称为数据加密算法.加密过程如下:在SSL中会用到分组DES、三重DES算法等加密算法对数据进行加密。

当然可以选用其他非DES加密算法,视情况而定,后面会详细介绍.3、密钥交换算法使用对称加密算法时,密钥交换是个大难题,所以Diffie和Hellman提出了著名的Diffie—Hellman密钥交换算法.Diffie-Hellman密钥交换算法原理:RSA加密算法是基于这样的数学事实:两个大素数相乘容易,而对得到的乘积求因子则3、散列算法:主要用于验证数据的完整性,即保证时消息在发送之后和接收之前没有被篡改对于SSL 中使用到的散列算法有MD5、SHA—1。

4、数字证书:数字证书其实就是一个小的计算机文件,其作用类似于我们的身份证、护照,用于证明身份,在SSL中,使用数字证书来证明自己的身份,而不是伪造的。

5、简单的总结:在SSL中会使用密钥交换算法交换密钥;使用密钥对数据进行加密;使用散列算法对数据的完整性进行验证,使用数字证书证明自己的身份。

《密码学与信息安全》复习提纲

《密码学与信息安全》复习提纲

《密码学与信息安全》复习提纲第1章引言安全攻击的两种类型。

被动攻击的概念。

主动攻击的概念。

常见的被动攻击和主动攻击各有哪些?安全服务包括哪些类型?安全机制分为特定安全机制和普遍的安全机制。

常见的特定安全机制主要有哪些?第2章传统加密技术对称加密方案的5个基本成分。

密码编码学系统对明文的处理方法。

攻击传统的密码体制的两种一般方法。

基于密码分析者知道信息的多少而产生的密码攻击的几种类型。

无条件安全的概念。

计算上安全的概念。

传统对称密码使用的两种技术。

单表代换密码的加密过程。

对单表代换密码的统计学攻击过程。

Playfair密码中密钥矩阵的构成方法。

Playfair密码的加密和解密过程。

Hill密码的加密和解密过程。

一次一密的概念。

实现一次一密的两个基本难点。

置换技术的概念。

转轮机的基本原理。

第3章分组密码和数据加密标准流密码与分组密码的区别。

乘积密码的概念。

混淆和扩散的概念及区别。

Feistel密码的典型结构。

其具体实现依赖于哪些参数?Feistel密码加密过程和解密过程的异同点。

数据加密标准DES的加密过程。

DES密钥的产生过程。

两种重要的密码分析方法:差分分析和线性分析。

Feistel密码的强度来自于三个方面:迭代轮数、轮函数、密钥扩展算法。

轮函数的三个设计标准:非线性、严格雪崩效应、位独立。

第5章高级加密标准三重DES的优缺点。

计时攻击和能量分析攻击的概念。

AES轮函数由四个不同的阶段组成:字节代换、行移位、列混淆、轮密钥加。

高级加密标准AES的加密过程。

AES密钥的产生过程。

第6章对称密码的其他内容多重加密的概念。

对称密码有5种标准的工作模式:电子密码本、密文分组链接、密文反馈、输出反馈、计数器模式。

对双重DES进行中间相遇攻击的过程。

密文分组链接模式(CBC)对明文的处理过程。

密文反馈模式和输出反馈模式的区别。

设计流密码需要考虑的三个主要因素。

流密码RC4的密钥流产生过程。

密文窃取模式(CTS)对明文的处理过程。

区块链电子档案管理解决方案

区块链电子档案管理解决方案

区块链电子档案管理解决方案第1章引言 (4)1.1 背景与现状 (4)1.2 区块链技术概述 (4)1.3 区块链在电子档案管理中的应用前景 (5)第2章区块链电子档案管理基本理论 (5)2.1 电子档案管理概念 (5)2.2 区块链电子档案管理特点 (5)2.3 区块链电子档案管理架构 (5)第3章区块链关键技术 (5)3.1 区块链原理与结构 (5)3.2 共识算法 (5)3.3 加密算法与隐私保护 (5)第4章区块链电子档案管理系统设计 (5)4.1 系统需求分析 (5)4.2 总体设计 (5)4.3 详细设计与实现 (5)第5章电子档案的区块链存储 (5)5.1 电子档案数据结构设计 (5)5.2 电子档案上链流程 (5)5.3 存储优化策略 (5)第6章电子档案的区块链加密与隐私保护 (5)6.1 电子档案加密策略 (5)6.2 隐私保护技术 (5)6.3 安全性与隐私保护评估 (5)第7章区块链电子档案管理系统的功能实现 (5)7.1 档案创建与存储 (5)7.2 档案查询与检索 (5)7.3 档案更新与删除 (5)第8章智能合约在电子档案管理中的应用 (5)8.1 智能合约概述 (5)8.2 智能合约设计与开发 (5)8.3 智能合约在电子档案管理中的具体应用 (5)第9章区块链电子档案管理的监管与审计 (6)9.1 监管机制设计 (6)9.2 审计流程与方法 (6)9.3 法律法规与政策建议 (6)第10章区块链电子档案管理系统的测试与优化 (6)10.1 系统测试方法与策略 (6)10.2 功能测试与优化 (6)10.3 安全测试与改进 (6)第11章区块链电子档案管理的应用案例分析 (6)11.1 行业应用案例 (6)11.2 金融行业应用案例 (6)11.3 医疗行业应用案例 (6)第12章区块链电子档案管理的未来展望 (6)12.1 技术发展趋势 (6)12.2 行业应用拓展 (6)12.3 法律法规与标准规范建设展望 (6)第1章引言 (6)1.1 背景与现状 (6)1.2 区块链技术概述 (6)1.3 区块链在电子档案管理中的应用前景 (7)第2章区块链电子档案管理基本理论 (7)2.1 电子档案管理概念 (7)2.2 区块链电子档案管理特点 (7)2.3 区块链电子档案管理架构 (8)第3章区块链关键技术 (8)3.1 区块链原理与结构 (8)3.1.1 区块结构 (8)3.1.2 链式结构 (8)3.1.3 分布式存储 (9)3.2 共识算法 (9)3.2.1 工作量证明(PoW) (9)3.2.2 权益证明(PoS) (9)3.2.3 委托权益证明(DPoS) (9)3.2.4 实用拜占庭容错算法(PBFT) (9)3.3 加密算法与隐私保护 (9)3.3.1 散列(哈希)算法 (9)3.3.2 非对称加密算法 (9)3.3.3 零知识证明(ZKP) (10)3.3.4 同态加密 (10)第4章区块链电子档案管理系统设计 (10)4.1 系统需求分析 (10)4.1.1 功能需求 (10)4.1.2 功能需求 (10)4.1.3 安全需求 (10)4.2 总体设计 (10)4.2.1 系统架构 (11)4.2.2 模块划分 (11)4.2.3 功能模块设计 (11)4.3 详细设计与实现 (11)4.3.1 用户管理模块 (11)4.3.2 档案管理模块 (11)4.3.3 权限控制模块 (12)4.3.4 区块链模块 (12)第5章电子档案的区块链存储 (12)5.1 电子档案数据结构设计 (12)5.1.1 档案元数据结构 (12)5.1.2 档案内容数据结构 (12)5.1.3 档案索引结构 (12)5.2 电子档案上链流程 (12)5.2.1 档案预处理 (13)5.2.2 档案数据存储 (13)5.2.3 档案索引 (13)5.2.4 档案上链验证 (13)5.3 存储优化策略 (13)5.3.1 数据压缩 (13)5.3.2 数据分片 (13)5.3.3 数据缓存 (13)5.3.4 存储策略调整 (13)5.3.5 数据去重 (13)第6章电子档案的区块链加密与隐私保护 (14)6.1 电子档案加密策略 (14)6.1.1 引言 (14)6.1.2 对称加密算法 (14)6.1.3 非对称加密算法 (14)6.1.4 混合加密算法 (14)6.2 隐私保护技术 (14)6.2.1 引言 (14)6.2.2 匿名化技术 (14)6.2.3 零知识证明 (14)6.2.4 同态加密 (14)6.3 安全性与隐私保护评估 (15)6.3.1 引言 (15)6.3.2 加密算法安全性评估 (15)6.3.3 隐私保护技术有效性评估 (15)6.3.4 系统安全性评估 (15)第7章区块链电子档案管理系统的功能实现 (15)7.1 档案创建与存储 (15)7.1.1 档案模板设计 (15)7.1.2 档案创建 (15)7.1.3 档案存储 (15)7.2 档案查询与检索 (16)7.2.1 关键词搜索 (16)7.2.2 精准查询 (16)7.2.3 档案预览 (16)7.2.4 档案与查看 (16)7.3 档案更新与删除 (16)7.3.1 档案更新 (16)7.3.2 档案删除 (16)第8章智能合约在电子档案管理中的应用 (16)8.1 智能合约概述 (17)8.2 智能合约设计与开发 (17)8.3 智能合约在电子档案管理中的具体应用 (17)第9章区块链电子档案管理的监管与审计 (18)9.1 监管机制设计 (18)9.1.1 监管目标 (18)9.1.2 监管原则 (18)9.1.3 监管主体 (18)9.1.4 监管措施 (18)9.2 审计流程与方法 (19)9.2.1 审计目标 (19)9.2.2 审计流程 (19)9.2.3 审计方法 (19)9.3 法律法规与政策建议 (19)9.3.1 完善法律法规 (19)9.3.2 政策建议 (19)第10章区块链电子档案管理系统的测试与优化 (19)10.1 系统测试方法与策略 (19)10.1.1 黑盒测试 (20)10.1.2 白盒测试 (20)10.1.3 灰盒测试 (20)10.2 功能测试与优化 (20)10.2.1 功能测试内容 (20)10.2.2 功能优化策略 (21)10.3 安全测试与改进 (21)10.3.1 安全测试内容 (21)10.3.2 安全改进措施 (21)第11章区块链电子档案管理的应用案例分析 (21)11.1 行业应用案例 (21)11.2 金融行业应用案例 (21)11.3 医疗行业应用案例 (22)第12章区块链电子档案管理的未来展望 (22)12.1 技术发展趋势 (22)12.2 行业应用拓展 (22)12.3 法律法规与标准规范建设展望 (23)第1章引言1.1 背景与现状1.2 区块链技术概述第2章区块链电子档案管理基本理论2.1 电子档案管理概念2.2 区块链电子档案管理特点2.3 区块链电子档案管理架构第3章区块链关键技术3.1 区块链原理与结构3.2 共识算法3.3 加密算法与隐私保护第4章区块链电子档案管理系统设计4.1 系统需求分析4.2 总体设计4.3 详细设计与实现第5章电子档案的区块链存储5.1 电子档案数据结构设计5.2 电子档案上链流程5.3 存储优化策略第6章电子档案的区块链加密与隐私保护6.1 电子档案加密策略6.2 隐私保护技术6.3 安全性与隐私保护评估第7章区块链电子档案管理系统的功能实现7.1 档案创建与存储7.2 档案查询与检索7.3 档案更新与删除第8章智能合约在电子档案管理中的应用8.1 智能合约概述8.2 智能合约设计与开发8.3 智能合约在电子档案管理中的具体应用9.1 监管机制设计9.2 审计流程与方法9.3 法律法规与政策建议第10章区块链电子档案管理系统的测试与优化10.1 系统测试方法与策略10.2 功能测试与优化10.3 安全测试与改进第11章区块链电子档案管理的应用案例分析11.1 行业应用案例11.2 金融行业应用案例11.3 医疗行业应用案例第12章区块链电子档案管理的未来展望12.1 技术发展趋势12.2 行业应用拓展12.3 法律法规与标准规范建设展望第1章引言1.1 背景与现状信息技术的飞速发展,大数据、云计算、物联网等新兴技术已深入到我们生活的方方面面。

密码学知识要点

密码学知识要点

1. 安全服务有哪些?认证、访问控制、数据加密性、数据完整性、不可否认性和可用性。

2. 密码学研究的主要问题?pl密码学研究确保信息的秘密性和真实性技术。

密码学(密码技术)分类:密码编码学:对信息进行编码实现信息隐蔽:密码分析学:研究分析破译密码4. 何谓Kerckhoff假设?假定密码分析中或敌手知道除密钥外所有的密码系统,这个假设称作Kerckhoff 假设。

一个系统的基本设计目标就是在Kerckhoff假设下是安全的,即一个密码系统的安全性不依赖于算法,而仅与密钥有关。

5. 无条件的安全性?如果无论破译员有多少密文,仍无足够信息能恢复明文,这样的算法是无条件安全的。

事实上只有一次一用的密码本是不可攻破的。

其它所有密码系统在惟密文攻击下都是可以攻破的。

6. 攻击密码体制的一般方法?惟密文攻击、已知明文攻击、选择明文攻击,选择文本,选择密文攻击,选择密钥攻击,软磨硬泡式破译。

7. 传统密码学使用的技术?对称密码加密、代换技术、置换技术转轮机、隐写术8. 密码体制的构成要素?明文空间、密文空间、密钥空间和密码算法。

9. 密码体制的分类?根据密钥的特点:分为传统和公钥密码体制;按照对明文发消息的加密方式的不同:分为分组密码和流密码。

10•计算上安全的准则?。

破译该密码的成本超过被加密信息的价值。

破译该密码的时间超过该信息有用的生命周期。

11. 分组密码的工作模式?电码体(ECB、密文组链接(CBQ、密文反馈(CFB、输出反馈(OFB和计时器(CTR)12. Feistle密码的理论基础?基于1945年Shannon理论引进的混淆和扩散p46,使用乘积密码的概念来逼近简单代换密码,交替的使用代换和置换。

13. 雪崩效应?明文或密钥的一点小的变动都引起密文的较大的变化。

14. DES的强度?使用64比特的分组和56比特的密钥(56位的密钥共有2的56次方种可能,这个数字大约是7.2X10的16次方)穷举攻击:2人56次尝试、强力攻击:2人55次尝试、差分密码分析法:47,线性密码分析法:43次尝试。

现代密码学第7章:散列函数

现代密码学第7章:散列函数
31
散列函数的使用方式
由于加密运算的速度较慢,代价较高, 而且很多加密算法还受到专利保护,因此在 不要求保密性的情况下,方式②和③将比其 他方式更具优势。
32
2.2 散列函数应满足的条件
散列函数的目的是为需认证的数据产生 一个“指纹”。为了能够实现对数据的认证, 散列函数应满足以下条件: ① 函数的输入可以是任意长。 ② 函数的输出是固定长。 ③ 已知x,求H(据认证算法
数据认证算法是最为广泛使用的消息认 证码中的一个,已作为FIPS Publication (FIPS PUB 113)并被ANSI作为X9.17标准。 算法基于CBC模式的DES算法,其初始向量 取为零向量。需被认证的数据(消息、记录、 文件或程序)被分为64比特长的分组D1, D2,…,DN,其中最后一个分组不够64比特 的话,可在其右边填充一些0,然后按以下 过程计算数据认证码(见图2):
16
1.2 产生MAC的函数应满足的要求 假定k>n,且敌手已得到M1和MAC1,其 中MAC1=CK1(M1),敌手对所有可能的密 钥值Ki求MACi=CKi(M1),直到找到某个Ki使得 MACi=MAC1。由于不同的密钥个数为2k,因 此将产生2k个MAC,但其中仅有2n个不同, 由于2k>2n,所以有很多密钥(平均有 2k/2n=2k-n个)都可产生出正确的MAC1,而 敌手无法知道进行通信的两个用户用的是哪 一个密钥,还必须按以下方式重复上述攻击:
21
1.2 产生MAC的函数应满足的要求
考虑到MAC所存在的以上攻击类型,可知它应 满足以下要求,其中假定敌手知道函数C,但不知 道密钥K: ① 如果敌手得到M和CK(M),则构造一满足 CK(M′)=CK(M)的新消息M′在计算上是不可行的。 ② CK(M)在以下意义下是均匀分布的: 随机选取两 个消息M、M′,Pr[CK(M)=CK(M′)]=2-n,其中n为 MAC的长。 ③ 若M′是M的某个变换,即M′=f(M),例如f为插入 一个或多个比特,那么Pr[CK(M)=CK(M′)] = 2-n。

Hash,MAC,HMAC

Hash,MAC,HMAC

Hash,MAC,HMACHash-MD5, SHA-1, integrityMAC- keyed hash, integrity & authenticity. HMAC 长度和其所⽤的hash长度⼀样Hash是⼀种从任何⼀种数据中创建⼩的数字“指纹”的⽅法。

散列函数把消息或数据压缩成摘要,使得数据量变⼩,将数据的格式固定下来。

如果两个散列值是不相同的(根据同⼀函数),那么这两个散列值的原始输⼊也是不相同的。

这个特性是散列函数具有的结果,具有这种性质的散列函数称为单向散列函数。

但另⼀⽅⾯,散列函数的输⼊和输出不是唯⼀对应關係的,如果两个散列值相同,两个输⼊值很可能是相同的。

但也可能不同,這種情況稱為「碰撞」,這通常是兩個不同⾧度的散列值,刻意計算出相同的輸出值。

Hash,⼀般翻译做“散列”,也有直接⾳译为"哈希"的,就是把任意长度的输⼊(⼜叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。

这种转换是⼀种压缩映射,也就是,散列值的空间通常远⼩于输⼊的空间,不同的输⼊可能会散列成相同的输出,⽽不可能从散列值来唯⼀的确定输⼊值。

简单的说就是⼀种将任意长度的消息压缩到某⼀固定长度的消息摘要的函数。

HASH主要⽤于信息安全领域中加密算法,他把⼀些不同长度的信息转化成杂乱的128位的编码⾥,叫做HASH值. 也可以说,hash就是找到⼀种数据内容和数据存放地址之间的映射关系了解了hash基本定义,就不能不提到⼀些著名的hash算法,MD5 和 SHA1 可以说是⽬前应⽤最⼴泛的Hash算法。

MD5(RFC1321) 是 Rivest 于 1991 年对 MD4 的改进版本,将任意长的明⽂ hash 成 128 bit 的杂凑值。

MD5是⼀种不可逆的加密算法,⽬前是最牢靠的加密算法之⼀,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成⼀段唯⼀的固定长度的代码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

=ROTR28(a)⊕ROTR34(a)⊕ROTR39(a)
512 e 1
= ROTR14(e) ⊕ROTR18(e) ⊕ROTR41(e)
ROTRn(x):对64比特的变量x循环右移n比特
Wt: 64比特字,从当前的512比特输入分组导出 Kt: 64比特附加常数 +: 模264加
前16个Wt直接取自当前分组的16个字。余下 的值按如下方式导出:
(3)HMAC和CMAC的作用是什么?与散 列函数比较有什么不同。简述它们产生 的机理。
(4)SHA-512中使用的基本算术和逻辑运 算是什么?
如果单向散列函数满足这一性质,则称其 是抗弱碰撞的。
6)找出任意两个不同的输入x、y,使得 H(x)=H(y)在计算上是不可行的。如果单向 散列函数满足这一性质,则称其是抗强碰撞
的。
典型的安全散列函数的总体结构:
散列函数将输入消息分为L个固定长度的分组, 每一分组长为b位,最后一个分组不足b位时需 要将其填充为b位,最后一个分组包含输入的 总长度。
• 步骤3:初始化散列缓冲区。散列函数的中间 结果和最终结果保存于512比特的缓冲区中, 缓冲区用8个64比特的寄存器(a,b,c,d,e,f,g,h) 表示,并将这些寄存器初始化为下列64比特的 整数:
a=6A09E667F3BCC908
e=510E527FADE682D1
b=BB67AE8584CAA73B
散列函数中重复使用了压缩函数f,它的输入是前 一步中得出的n位结果(称为链接变量)和一 个b位分组,输出为一个n位分组。链接变量的 初值由算法在开始时指定,其终值即为散列值, 通常b>n,因此成为压缩。散列函数可归纳如 下:
CV0=IV=初始n位值
CVi=f(CVi-1,Yi-1) 1≤i≤L
H(M)=CVL
道认证机制抗密码分析的强度。
12.3.2 HMAC算法
• K+: 为使K为b位长而在K左边填充0后所 得的结果。
• ipad: 00110110(十六进制数36)重复b/8次的 结果。
• opad: 01011100(十六进制数5C) 重复b/8次 的结果。
当密钥不变时,可以进行预处理。
12.4 CMAC
)+Maj(a,b,c)
a= T1 +T2
b=a
c=b
d=c
e=d+ T1 f=e
g=f
h=g
其中: t : 步骤数,0≤t≤79 Ch(e,f,g)= (e AND f)⊕(NOT e AND g) Maj(a,b,c)= (a AND b)⊕(a AND c) ⊕(b AND c)
512 a 0
12.1.1 SHA-512逻辑原理
这个过程包含下列步骤:
• 步骤1:附加填充位。填充消息使其长度模 1024与896同余,即使消息已经满足上述长 度要求,仍然需要进行填充,因此填充位 数在1到1024之间。填充由一个1和后续的0 组成。
• 步骤228比特的无符号整 数,它包含填充前消息的长度。
Wt=σ1512(Wt-2)+Wt-7+σ0512 (Wt-15)+ Wt-16 其中:
σ0512 (x) = ROTR1(x) ⊕ROTR8(x)⊕SHR7(x) σ1512(x)= ROTR19(x) ⊕ROTR61(x)⊕SHR6(x) SHRn(x): 对64比特变量x向左移动n位,右边
填充0
12.1安全散列算法
安全散列算法(SHA)是由美国标准与技术协会 (NIST)设计,并于1993年作为联邦信息处 理标准(FIPS 180)发布,修订版于1995年 发布(FIPS 180-1),通常称之为SHA-1.
SHA-1产生160比特的散列值。2002年,NIST 发布了修订版2,FIPS180-2,其中给出了三种 新的SHA版本,散列值长度依次为256,384 和512比特。分别称为SHA-256,SHA-384, SHA-512。这些新的版本和SHA-1具有相同的 基础结构,使用了相同的模算术和二元逻辑运 算。2005年,NIST宣布了逐步废除SHA-1的 意图,到2010年,逐步转而依赖SHA的其他版 本。
根据条件和一个常数进行异或运算得到,其中
常数依赖于分组的大小。第二个子密钥是采用
相同的方式从第一个子密钥导出。
对于长度为64或128的分组,需要
R64=059 11011 R128=012010000111
思考题:
(1)散列函数的作用是什么?散列函数应 满足什么条件?
(2)散列函数MD5、SHA-1、SHA-256、 SHA-384、SHA-512、Whirlpool的输入 和输出各为多少bit?
• 步骤5:输出。所有的N个1024比特分组都处 理完以后,从第N阶段输出的是512比特的消 息摘要。
Ho=IV Hi=SUM 64(Hi-1,abcdefghi) MD=HN
12.1.2 SHA-512轮函数
T1=h+Ch(e,f,g)+(1512e )+Wt+Kt
T2=(
512 a 0
1)函数的输入可以是任意长。 2)函数的输出是固定长,如MD5输出128bit, SHA-1输出160 bit。具有压缩性。 3)已知X,求H(x)较为容易,可用硬件或软件实 现。 4)已知h,求使得H(x)=h的x在计算上是不可行 的,这一性质称为函数的单向性,称H(x)为单向 散列函数。
5)已知x,找出y(y≠x)使得H(y)=H(x)在计算上 是不可行的。
第12章 散列算法和MAC算法
消息认证是用来验证消息完整性的一种机制 或服务。消息认证确保收到的数据确实和发 送时的一样(即没有修改、插入、删除或重 放),且发送方声称的身份是真实有效的。 产生消息认证符的函数分为如下三类: 1. 消息加密:整个消息的密文作为认证符。 2. 消息认证码(MAC):它是消息和密钥的函 数,它产生定长的值,以该值作为认证符。 目前有两种MAC:HMAC和CMAC 3. 散列函数:它是将任意长的消息映射为定长 的散列值的函数,以该散列值作为认证符。 目前主要有:MD5,SHA-1,SHA256, SHA-384,SHA-512,Whirlpool 等。
在数字签名方案中也要用到散列函数。对需 要签名的消息用一个函数,产生一个固定 长度的消息摘要(Message Digest),最 后对消息摘要进行签名,得到确定长度的 签名消息。
散列(hash)函数也称为杂凑值或消息摘要。
散列函数应满足的条件:
散列函数的目的是为需认证的数据产生一 个“指纹”。为了能够实现对数据的认 证,散列函数应满足以下条件:
1.当消息长度是分组长度b的n倍时。
2.当消息长度不是分组长度b的n倍时。
两个n比特的密钥由k比特的加密密钥按如下方式 导出:
L=E(K,0n)
K1=L.x
注:L左移一位
K2=L.x2=(L.x).x
注:L左移二位
首先将分组密码应用到一个全0分组上。第一个
子密钥从所得密文导出,即先左移一位,并且
f=9B05688C2B3E6C1F
c=3C6EF372FE94F82B
g=1F83D9ABFB41BD6B
d=A54FF53A5F1D36F1
h=5BE0CD19137E2179
• 步骤4:以1024比特的分组(16个字)为单位 处理消息。算法的核心是具有80轮运算的模块。 每 由 一 表一 当 轮 示轮 前 还 轮, 被 使 数如 处 用 。理附这t,的加些使的常1用0常数2一4数如比个下K特6t4,获消比其得息特中:分的0前组值≤t8≤MW07i个导t9,,素出该用数。值来取每 三次根,取小数部分的前64比特。
CMAC也称为CBC-MAC(密文分组链接消息认证码)。这 种基于密文的MAC在政府和工业界广泛采用。这种认证算 法仅能处理固定长度为nm的消息,其中n 密文分组的长度, m是一个固定的正整数。
Black和Rogaway证明了这种限制可以使用三个密钥来克服: 一个密钥长为k,用在密文分组链接的每一步,两个长度 为n的密钥,其中k是密钥长度,n为密文分组长度。Iwata 和Kurosawa又优化了该构造,使得两个n比特的密钥可以 从加密密钥导出,而不是单独提供。这种优化已经被 NIST采用作为基于密文消息认证码(CMAC)运算模式, 对于AES,3DES适用。
SHA-1
消息摘要 160 长度
消息长度 <264
SHA-256 SHA-384 SHA-512
256
384
512
<264
<2128
<2128
分组长度 512
512
1024
1024
字长度 32 步骤数 80 安全性 80
32
64
64
64
80
80
128
192
256
1.所有的长度以比特为单位 2.安全性是指对输了长度为n比特散列函数的生日攻击产生碰撞的工作量大约为2n/2
12.3.1 HMAC设计目标
• 不必修改而直接使用现有的hash函数。特别地, 很容易免费得到软件上执行速度较快的散列函数 及其代码。
• 如果找到或者需要更快或更安全的hash函数,应 能很容易地替代原来嵌入的hash函数。
• 应保持hash函数的原有性能。 • 对密钥的使用和处理应较简单。 • 如果已知嵌入的hash函数的强度,则完全可以知
SHA-1输入为小于264比特长的任意消息,分为512 比特长的分组,最终输出为160比特。
SHA-256、SHA-384、SHA-512的情况见上表。
12.3.1 HMAC设计目标
目前已经提出了许多方案将密钥加到现有的 散列函数中。HMAC(RFC 2104)是最受 支持的方案,它是IP安全里必须实现的 MAC方案,并且在其他Internet协议中也使 用了HMAC。HMAC也已作为FIPS标准发 布(FIPS 198).
相关文档
最新文档