5.6差分密码分析原理
差分原理的理解与应用
差分原理的理解与应用1. 什么是差分原理差分原理是一种常用的数字信号处理技术,用于对信号进行去噪、滤波、边缘检测等操作。
它基于对信号进行差分运算的原理,利用差分后的信号来提取原始信号的特征。
差分原理在图像处理、音频处理、通信系统等方面有着广泛的应用。
2. 差分原理的基本原理差分原理的基本原理是通过计算相邻时间点或空间点上的差异,来刻画信号的特征。
在一维情况下,可以使用一阶差分或二阶差分来表示信号的变化率或曲率。
一阶差分可以用于边缘检测,而二阶差分则可以用于边缘加强。
在二维图像处理中,可以使用水平差分和垂直差分来计算图像的梯度。
梯度表示了图像中每个像素的变化强度和方向。
通过梯度可以提取图像中的边缘信息,并进行图像增强、图像分割等操作。
3. 差分原理的应用3.1 图像边缘检测差分原理在图像边缘检测中有着广泛的应用。
通过计算图像的一阶差分或二阶差分,可以获取到图像的梯度信息。
根据梯度的变化可以确定图像的边缘位置。
常用的边缘检测算法包括Sobel、Prewitt、Canny等。
这些算法都是基于差分原理来计算图像的梯度,并对梯度进行门限处理来检测图像的边缘。
3.2 信号滤波差分原理还可以用于信号的滤波。
通过计算信号的差分,可以去除信号中的高频噪声,从而平滑信号。
差分滤波可以应用于音频处理中去除噪声、图像处理中去除椒盐噪声等。
3.3 运动检测差分原理在运动检测中有着重要的应用。
通过对连续帧图像进行差分运算,可以提取出图像中的移动部分。
基于差分原理的运动检测能够实时检测到视频中的运动物体,常用于视频监控、人脸跟踪等领域。
3.4 数据压缩差分编码是一种常见的数据压缩技术,它基于差分原理对数据进行编码。
差分编码利用相邻数据点之间的差值来表示原始数据,从而减少数据的存储和传输量。
差分编码常用于图像和音频压缩领域。
4. 总结差分原理是一种常用的数字信号处理技术,通过计算差分获取信号的变化特征。
差分原理在图像边缘检测、信号滤波、运动检测、数据压缩等方面有广泛的应用。
分组密码的差分故障分析
国防科学技术大学研究生院硕士学位论文
图目录
图 3.1 Serpent算法的加密流程 ..................................................................................... 12 图 3.2 线性变换扩散层 16 个字节导致活跃S盒个数的分布图 ................................ 15 图 3.3 线性变换层导致活跃S-box个数的整体分布图............................................... 16 图 3.4 成功恢复轮密钥时所需错误密文的个数分布 ................................................. 17 图 4.1 KeeLoq算法加密过程示意图 ............................................................................ 19 图 4.2 两轮KeeLoq算法示意图 ................................................................................... 22 图 4.3 KeeLoq算法差分传播示意图 ............................................................................ 25 图 4.4 第 521 轮导入故障实验结果 ............................................................................ 28 图 4.5 第 513 轮导入故障实验结果 ........................................................................... 29 图 4.6 第 505 轮导入故障实验结果 ............................................................................ 29 图 4.7 三种方法的穷尽比特数 .................................................................................... 29 图 5.1 轮变换lmor64..................................................................................................... 31 图 5.2 正则变换 or....................................................................................................... 32 图 5.3 两轮Lai-Massay结构 ......................................................................................... 33 图 5.4 FOX64 最后一轮示意图 .................................................................................... 36 图 5.5 第 16 轮差分传播示意图 .................................................................................. 38 图 5.6 第 15 轮差分传播示意图 .................................................................................. 39 图 5.7 实验结果 ............................................................................................................ 40
差分密码分析和线性密码分析原理课件
• 实例演示
01
引言
密码分析简介
密码分析是研究如何 从加密的信息中获取 未加密的信息的学科。
密码分析是信息安全 领域的重要分支,对 于保护信息安全具有 重要意义。
它涉及到密码学的多 个领域,包括密码算 法、加密技术、解密 技术等。
密码分析的重要性
密码分析是保障国家安全的重要手段 之一,能够保护国家机密不被泄露。
线性密码分析实例
总结词
通过实际例子演示线性密码分析的过程和结 果。
详细描述
线性密码分析是一种基于加密算法的线性性 质来破解加密的方法。通过构建一个线性方 程组,可以求解出加密算法中的密钥。这个 过程可以通过实际的例子来演示,例如使用 简单的XOR加密进行演示。在演示过程中, 可以展示如何构建线性方程组,如何求解方
04
差分密码分析与线性密码分 析的比较
理论基础的比较
差分密码分析
基于加密算法中输入和输出之间 的差值关系进行攻击,利用已知 的明文和密文对,通过统计分析 找出算法中的弱点。
线性密码分析
基于加密算法中输入和输出之间 的线性关系进行攻击,利用已知 的明文和密文对,通过线性方程 组求解找出算法中的弱点。
预测密文模式
基于求解得到的参数或密钥,可以预 测密文中可能存在的模式或规律,从 而破解加密算法。
线性密码分析的优缺点
优点
线性密码分析是一种有效的攻击方法,尤其对于一些简单的加密算法,它可以在较短的时间内破解。此外,线性 密码分析方法相对简单,易于理解和实现。
缺点
然而,对于复杂的加密算法,线性密码分析可能变得非常困难,因为需要处理大量的数据和复杂的数学问题。此 外,线性密码分析方法依赖于大量的明文和密文对,而这些数据对可能难以获取。另外,一些加密算法可能不存 在明显的线性关系,使得线性密码分析方法无法适用。
现代密码学第4章4:差分和线性分析
1.差分密码分析
定义在r-轮特征Ω=α0,α1,…,αr中,定义 pi =P(ΔF(Y)=α |ΔY=α ) i i-1 p 即 i 表示在输入差分为αi-1的条件下,轮函 数F的输出差分为αi的概率。 r-轮特征 Ω=α0,α1,…,αr的概率近似看 r p 作 i。
i 1
6
1.差分密码分析过程
10
2. 线性密码分析
线性密码分析是对迭代密码的一种已知 明文攻击,它利用的是密码算法中的“不平 衡(有效)的线性逼近”。
A[i, j,, k ] A[i] A[ j ] A[k ]
设明文分组长度和密文分组长度都为n比 特,密钥分组长度为m比特。记 明文分组为P[1],P[2],…,P[n], 密文分组为C[1],C[2],…,C[n], 密钥分组为K[1],K[2],…,K[m]。
对r-轮迭代密码的差分密码分析过程可综 述为如下的步骤: ① 找出一个(r-1)-轮特征Ω(r-1)= α0,α1,…,αr1,使得它的概率达到最大或几乎最大。 ② 均匀随机地选择明文Y0并计算Y*0,使得 Y0和Y*0的差分为α0,找出Y0和Y*0在实际密钥 加密下所得的密文Yr和Y*r。
7
1.差分密码分析过程
8
1.密码分析复杂度
一种攻击的复杂度可以分为两部分: 数据复杂度和处理复杂度。 数据复杂度是实施该攻击所需输入的数 据量; 而处理复杂度是处理这些数据所需的计 算量。这两部分的主要部分通常被用来刻画 该攻击的复杂度。
9
1.差分密码分析复杂度
差分密码分析的数据复杂度是成对加密 所需的选择明文对(Y0,Y*0)个数的两倍。 差分密码分析的处理复杂度是从 (ΔYr-1, Yr, Y*r)找出子密钥Kr(或Kr的部分比 特)的计算量,它实际上与r无关,而且由于 轮函数是弱的,所以此计算量在大多数情况 下相对较小。 因此,差分密码分析的复杂度取决于它 的数据复杂度。
AES算法加解密原理及安全性分析
AES算法加解密原理及安全性分析AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,用于对数据进行加密和解密。
它是最常用的加密算法之一,被广泛应用于各种信息安全相关领域。
1.密钥扩展:对输入的密钥进行扩展,生成多轮的子密钥用于后续的加密和解密操作。
2.初始轮:将明文与第一轮子密钥进行异或运算。
3.多轮加密:AES算法有128位、192位和256位三种密钥长度,这里以128位密钥为例。
将16字节的明文分为4x4的字节矩阵(称为状态矩阵),与当前轮子密钥进行一系列变换,包括字节替代、行移位、列混淆和轮密钥加等。
这些变换使得密文显示复杂性,增加了破解难度。
4.最后一轮:最后一轮加密与之前的多轮加密略有不同,没有列混淆操作。
5.密文生成:最后一个状态矩阵与最后一轮的子密钥进行异或运算,得到最终的密文。
解密操作与加密操作相似,只是密钥的使用顺序相反,即先使用最后一轮子密钥进行解密,然后逆向进行多轮解密,最后使用第一轮子密钥进行解密,得到原始的明文。
1.密钥长度:AES算法支持三种密钥长度,对于相同的明文和密文,密钥长度越长,破解难度越大。
目前来说,128位密钥足够安全,128位以上的密钥更加安全。
2.穷举攻击:穷举攻击是一种尝试所有可能的密钥组合来破解加密算法的方法。
对于AES算法,由于密钥长度较长,穷举攻击需要耗费巨大的计算资源和时间,对抗穷举攻击具备较高的安全性。
3.差分密码分析:差分密码分析是一种基于统计模型的攻击方法,通过观察明文、密文和密钥对之间的差异性,推断密码的相关信息。
AES算法在设计时考虑了差分密码分析的攻击方法,实现了一系列抵御差分密码分析的特性,提高了算法的安全性。
4.线性密码分析:线性密码分析是一种基于统计特性的攻击方法,通过线性逼近密钥和明文之间的关系,来逐渐推断出密钥。
AES算法在设计时也考虑了线性密码分析的攻击方法,加入了一系列防护机制,提高了算法的安全性。
密码加密算法安全性检测说明
密码加密算法安全性检测说明密码加密算法是保护信息安全的重要手段之一,其安全性直接影响到用户数据的保密性和完整性。
因此,对于密码加密算法的安全性进行检测十分重要。
本文将从密码加密算法的基本原理,安全性评估指标、常见的安全性攻击手段、常用的安全性评估方法等方面进行说明和分析,以提供一定的参考。
一、基本原理密码加密算法是通过将明文转换为密文,通过密码(加密密钥)将密文转换为明文,从而保证信息的安全性。
常见的加密算法包括对称加密算法和非对称加密算法。
对称加密算法使用相同的密钥进行加解密,如DES、AES等。
非对称加密算法使用一对相关的密钥进行加解密,如RSA、ECC等。
二、安全性评估指标对密码加密算法进行安全性评估时,需要考虑以下几个主要指标:1. 密钥空间大小:密钥空间大小越大,破解难度越大。
2. 密文的随机性:密文应该具有很高的随机性,使得攻击者无法根据密文猜测出明文。
3. 抗攻击性:算法应该具备抵御各种已知的攻击手段,如穷举攻击、差分攻击、线性攻击等。
4. 密钥管理:密钥的生成、更新、存储和分发应具备安全性。
5. 高效性:算法的加解密速度较快。
三、常见的安全性攻击手段1. 穷举攻击:通过尝试所有可能的密钥,直到找到正确的密钥破解密文。
2. 字典攻击:使用预先生成的密码字典,逐个尝试将密文破解为明文。
3. 差分攻击:通过分析输入输出对的差异,推导出密钥的一些信息。
4. 线性攻击:通过分析一系列明文-密文对,推导出密钥的一些信息。
5. 暴力攻击:通过不断尝试密钥的组合,直到找到正确的密钥。
6. 中间人攻击:在通信过程中拦截加密数据,窃取密钥或篡改数据。
四、常用的安全性评估方法1. 密钥空间大小分析:通过计算密钥长度和可能的组合数量,确定密钥空间的大小。
2. 线性分析:通过对算法进行线性逼近,推导出密钥的一些信息。
3. 差分分析:通过对算法进行差分逼近,推导出密钥的一些信息。
4. 暴力攻击模拟:通过模拟攻击者的暴力破解行为,评估算法的破解难度和所需时间。
3.1.2_差分密码分析-09年
11
S-Box是非差分均匀的
如果S盒的输入是均匀分布的随机数,其输出也
应该是均匀分布的随机数
密码学补充:差分密码分析
12
S-Box的差分均匀性-1
假设56-bite的密钥是按照均匀分布的原则选择的
,则对于任意轮的任意S盒的输入,在其64比特
的可能取值上也是均匀分布的
入0,产生的差分输出也是0;
f(R,K)的输出在2轮后是0,差分输出则是
(00 00 00 00 , 60 00 00 00)
密码学补充:差分密码分析
31
2轮DES的差分分析-1
假定:去掉初始臵换IP和最终臵换FP。2轮的差分分析 共有7个步骤。 Step 1: 产生明文对(P, P∗),使得
办法是,随机产生一个P ,将其与下述值进 行异或得到P∗
密码学补充:差分密码分析
19
S1 的差分分布表-7
列出S1中输
入异或值为 34的可能的 输入值:
密码学补充:差分密码分析
20
确定密钥的原理-1
假设已知S1的两个输入是01和35,其异或的结果是34, 经过S1之后输出异或的结果是D。查S1的差分分布表,
得到输入异或为34,输出异或为D时,可能的输入:
S3, . . . , S8 等等
因为所有边缘比特都是0,所以S1是唯一的得到非0差分 输入的S盒。
S1的差分输入是 0 0110 0 = 0C 而其他所有S盒S2, . . . , S8的差分输入都是0
密码学补充:差分密码分析
29
2轮DES的特征-3
察看S1的差分分布表,发现当输入异或x’= 0C时,最可能
任意轮的任意S盒的输出,在其16个可能的值(0-
关于密码学与网络安全技术的书籍介绍
关于密码学与网络安全技术的书籍介绍密码学与网络安全技术的书籍介绍《密码学与网络安全》是清华大学出版社出版的图书,作者是美国BehrouzA.Forouzan福罗赞。
密码学与网络安全出版日期:2021年ISBN:9787302185840版本:1版装帧:平装开本:16内容简介《密码学与网络安全》延续了Forouzan先生一贯的风格,以通俗易懂的方式全面阐述了密码学与计算机网络安全问题所涉及的各方面内容,从全局角度介绍了计算机网络安全的概念、体系结构和模式。
《密码学与网络安全》以因特网为框架,以形象直观的描述手法,详细地介绍了密码学、数据通信和网络领域的基础知识、基本概念、基本原理和实践方法,堪称密码学与网络安全方面的经典著作。
《密码学与网络安全》包括其中文导读英文版可作为大学本科通信相关专业的教科书,也可作为对密码学与网络安全有兴趣的读者的自学用书。
作者简介Behrouz A. Forouzan 先生毕业于加州大学艾尔温分校,现在是迪安那大学教授,从事计算机信息系统方面的研究工作。
此外,他还是多家公司的系统开发咨询顾问。
除本书外,Forouzan还著有多部成功的编程与网络方面的书籍,有的已经成为该领域的权威性著作,例如《TCP/IP协议族第3版》和《密码学与网络安全》等。
编辑推荐《密码学与网络安全》作者Behrouz A Forouzan运用一种易于理解的写作风格和直观的表述方法,为我们全面介绍了密码学与网络安全方面的概念。
他把难于理解的教学概念穿插在了中间的章节中,这样既为后面章节的学习打下必要的数学基础,又紧密结合密码学,使枯燥的数学概念变得妙趣横生。
概念阐释直观、易懂稗序可用性强,便于学生实践最新的网络安全技术,贴近实际。
目录第1章导言1.1 安全目标1.1.1 机密性1.1.2 完整性1.1.3 可用性1.2 攻击1.2.1 威胁机密性的攻击1.2.2 威胁完整性的攻击1.2.3 威胁可用性的攻击1.2.4 被动攻击与主动攻击1.3 服务和机制1.3.1 安全服务1.3.2 安全机制1.3.3 服务和机制之间的关系1.4 技术1.4.1 密码术1.4.2 密写术1.5 本书的其余部分第Ⅰ部分对称密钥加密第Ⅱ部分非对称密钥加密第Ⅲ部分完整性、验证和密钥管理第Ⅳ部分网络安全1.6 推荐阅读1.7 关键术语1.8 概要1.9 习题集第Ⅰ部分对称密钥加密第2章密码数学第Ⅰ部分:模算法、同余和矩阵 2.1 整数算法2.1.1 整数集2.1.2 二进制运算2.1.3 整数除法2.1.4 整除性2.1.5 线性丢番图方程2.2 模运算2.2.1 模算符2.2.2 余集:Zn2.2.3 同余2.2.4 在集合Zn当中的运算2.2.5 逆2.2.6 加法表和乘法表2.2.7 加法集和乘法集的不同2.2.8 另外两个集合2.3 矩阵2.3.1 定义2.3.2 运算和关系2.3.3 行列式2.3.4 逆2.3.5 剩余阵2.4 线性同余2.4.1 单变量线性方程2.4.2 线性方程组2.5 推荐阅读2.6 关键术语2.7 概要2.8 习题集第3章传统对称密钥密码 3.1 导言3.1.1 Kerckhoff原理3.1.2 密码分析3.1.3 传统密码的分类 3.2 代换密码3.2.1 单码代换密码3.2.2 多码代换密码3.3 换位密码3.3.1 无密钥换位密码3.3.2 有密钥的换位密码 3.3.3 把两种方法组合起来 3.4 流密码和分组密码3.4.1 流密码3.4.2 分组密码3.4.3 组合3.5 推荐阅读3.6 关键术语3.7 概要3.8 习题集第4章密码数学第Ⅱ部分:代数结构 4.1 代数结构4.1.1 群4.1.2 环4.1.3 域4.1.4 小结4.2 GF2n域4.2.1 多项式4.2.2 运用一个生成器4.2.3 小结4.3 推荐阅读4.4 关键术语4.5 概要4.6 习题集第5章现代对称密钥密码5.1 现代分组密码5.1.1 代换与换位5.1.2 作为置换群的分组密码5.1.3 现代分组密码的成分5.1.4 换字盒5.1.5 乘积密码5.1.6 两类乘积密码5.1.7 关于分组密码的攻击 5.2 现代流密码5.2.1 同步流密码5.2.2 异步流密码5.3 推荐阅读5.4 关键术语5.5 概要5.6 习题集第6章数据加密标准DES6.1 导言6.1.1 数据加密标准DES简史 6.1.2 概观6.2 DES的结构6.2.1 初始置换和最终置换 6.2.2 轮6.2.3 密码和反向密码6.2.4 示例6.3 DES分析6.3.1 性质6.3.2 设计标准6.3.3 DES的缺陷多重 DES.1 双重DES.2 三重DES6.5 DES的安全性6.5.1 蛮力攻击6.5.2 差分密码分析6.5.3 线性密码分析6.6 推荐阅读6.7 关键术语6.8 概要6.9 习题集第7章高级加密标准AES7.1 导言7.1.1 高级加密标准AES简史7.1.2 标准7.1.3 轮7.1.4 数据单位7.1.5 每一个轮的结构7.2 转换7.2.1 代换7.2.2 置换7.2.3 混合7.2.4 密钥加7.3 密钥扩展7.3.1 在AES-128中的密钥扩展7.3.2 AES-192和AES-256中的密钥扩展 7.3.3 密钥扩展分析7.4 密码7.4.1 源设计7.4.2 选择性设计7.5 示例7.6 AES的分析7.6.1 安全性7.6.2 可执行性7.6.3 复杂性和费用7.7 推荐阅读7.8 关键术语7.9 概要7.10 习题集第8章应用现代对称密钥密码的加密 8.1 现代分组密码的应用8.1.1 电子密码本模式8.1.2 密码分组链接CBC模式8.1.3 密码反馈CFB模式8.1.4 输出反馈OFB模式8.1.5 计数器CTR模式8.2 流密码的应用8.2.1 RC48.2.2 A5/18.3 其他问题8.3.1 密钥管理8.3.2 密钥生成8.4 推荐阅读8.5 关键术语8.6 概要8.7 习题集第Ⅱ部分非对称密钥加密第9章密码数学第Ⅲ部分:素数及其相关的同余方程 9.1 素数9.1.1 定义9.1.2 素数的基数9.1.3 素性检验9.1.4 Euler Phi-欧拉?n函数9.1.5 Fermat费尔马小定理9.1.6 Euler定理9.1.7 生成素数9.2 素性测试9.2.1 确定性算法9.2.2 概率算法9.2.3 推荐的素性检验9.3 因数分解9.3.1 算术基本定理9.3.2 因数分解方法9.3.3 Fermat方法 2489.3.4 Pollard p – 1方法9.3.5 Pollard rho方法9.3.6 更有效的方法9.4 中国剩余定理9.5 二次同余9.5.1 二次同余模一个素数9.5.2 二次同余模一个复合数9.6 指数与对数9.6.1 指数9.6.2 对数9.7 推荐阅读9.8 关键术语9.9 概要9.10 习题集第10章非对称密钥密码学10.1 导言10.1.1 密钥10.1.2 一般概念10.1.3 双方的需要10.1.4 单向暗门函数10.1.5 背包密码系统10.2 RSA密码系统10.2.1 简介10.2.2 过程10.2.3 一些普通的例子10.2.4 针对RSA的攻击10.2.5 建议10.2.6 最优非对称加密填充OAEP 10.2.7 应用10.3 RABIN密码系统10.3.1 过程10.3.2 Rabin系统的安全性10.4 ELGAMAL密码系统10.4.1 ElGamal密码系统10.4.2 过程10.4.3 证明10.4.4 分析10.4.5 ElGamal的安全性10.4.6 应用10.5 椭圆曲线密码系统10.5.1 基于实数的椭圆曲线10.5.2 基于GF p的椭圆曲线10.5.3 基于GF2n的椭圆曲线10.5.4 模拟ElGamal的椭圆曲线加密系统 10.6 推荐阅读10.7 关键术语10.8 概要10.9 习题集第Ⅲ部分完整性、验证和密钥管理第11章信息的完整性和信息验证11.1 信息完整性11.1.1 文档与指纹11.1.2 信息与信息摘要11.1.3 区别11.1.4 检验完整性11.1.5 加密hash函数标准11.2 随机预言模型11.2.1 鸽洞原理11.2.2 生日问题11.2.3 针对随机预言模型的攻击 11.2.4 针对结构的攻击11.3 信息验证11.3.1 修改检测码11.3.2 信息验证代码MAC11.4 推荐阅读11.5 关键术语11.6 概要11.7 习题集第12章加密hash函数12.1 导言12.1.1 迭代hash函数12.1.2 两组压缩函数12.2 SHA-51212.2.1 简介12.2.2 压缩函数12.2.3 分析12.3 WHIRLPOOL12.3.1 Whirlpool密码12.3.2 小结12.3.3 分析12.4 推荐阅读12.5 关键术语12.6 概要12.7 习题集第13章数字签名13.1 对比13.1.1 包含性13.1.2 验证方法13.1.3 关系13.1.4 二重性13.2 过程13.2.1 密钥需求13.2.2 摘要签名13.3 服务13.3.1 信息身份验证13.3.2 信息完整性13.3.3 不可否认性13.3.4 机密性13.4 针对数字签名的攻击13.4.1 攻击类型13.4.2 伪造类型13.5 数字签名方案13.5.1 RSA数字签名方案13.5.2 ElGamal数字签名方案13.5.3 Schnorr数字签名方案 13.5.4 数字签名标准DSS13.5.5 椭圆曲线数字签名方案 13.6 变化与应用13.6.1 变化13.6.2 应用13.7 推荐阅读13.8 关键术语13.9 概要13.10 习题集第14章实体验证14.1 导言14.1.1 数据源验证与实体验证 14.1.2 验证的类型14.1.3 实体验证和密钥管理14.2 口令14.2.1 固定口令14.2.2 一次性密码14.3 挑战—应答14.3.1 对称密钥密码的运用14.3.2 带密钥hash函数的应用 14.3.3 非对称密钥密码的应用 14.3.4 数字签名的应用14.4 零知识14.4.1 Fiat-Shamir协议14.4.2 Feige-Fiat-Shamir协议 14.4.3 Guillou-Quisquater协议 14.5 生物测试14.5.1 设备14.5.2 注册14.5.3 验证14.5.4 技术14.5.5 准确性14.5.6 应用14.6 推荐阅读14.7 关键术语14.8 概要14.9 习题集第15章密钥管理15.1 对称密钥分配15.2 KERBEROS15.2.1 服务器15.2.2 操作15.2.3 不同服务器的运用15.2.4 Kerberos第五版15.2.5 领域15.3 对称密钥协定15.3.1 Diffie-Hellman密钥协定 15.3.2 站对站密钥协定15.4 公钥分配15.4.1 公钥公布15.4.2 可信中心15.4.3 可信中心的控制15.4.4 认证机关15.4.5 X.50915.4.6 公钥基础设施PKI15.5 推荐阅读15.6 关键术语15.7 概要15.8 习题集第Ⅳ部分网络安全第16章应用层的安全性:PGP和S/MIME 16.1 电子邮件16.1.1 电子邮件的构造16.1.2 电子邮件的安全性16.2 PGP16.2.1 情景16.2.2 密钥环16.2.3 PGP证书16.2.4 密钥撤回16.2.5 从环中提取消息16.2.6 PGP包16.2.7 PGP信息16.2.8 PGP的应用16.3 S/MIME16.3.1 MIME16.3.2 S/MIME16.3.3 S/MIME的应用1 推荐阅读16.5 关键术语16.6 概要16.7 习题集第17章传输层的安全性:SSL和TLS 17.1 SSL结构17.1.1 服务17.1.2 密钥交换算法17.1.3 加密/解密算法17.1.4 散列算法17.1.5 密码套件17.1.6 压缩算法17.1.7 加密参数的生成17.1.8 会话和连接17.2 4个协议17.2.1 握手协议17.2.2 改变密码规格协议17.2.3 告警协议17.2.4 记录协议17.3 SSL信息构成17.3.1 改变密码规格协议17.3.2 告警协议17.3.3 握手协议17.3.4 应用数据17.4 传输层安全17.4.1 版本17.4.2 密码套件17.4.3 加密秘密的生成17.4.4 告警协议17.4.5 握手协议17.4.6 记录协议17.5 推荐阅读17.6 关键术语17.7 概要17.8 习题集第18章网络层的安全:IPSec 18.1 两种模式18.2 两个安全协议18.2.1 验证文件头AH18.2.2 封装安全载荷ESP18.2.3 IPv4和IPv618.2.4 AH和ESP18.2.5 IPSec提供的服务18.3 安全关联18.3.1 安全关联的概念18.3.2 安全关联数据库SAD18.4 安全策略18.5 互联网密钥交换IKE18.5.1 改进的Diffie-Hellman密钥交换 18.5.2 IKE阶段18.5.3 阶段和模式18.5.4 阶段Ⅰ:主模式18.5.5 阶段Ⅰ:野蛮模式18.5.6 阶段Ⅱ:快速模式18.5.7 SA算法18.6 ISAKMP18.6.1 一般文件头18.6.2 有效载荷18.7 推荐阅读18.8 关键术语18.9 概要18.10 习题集附录A ASCII附录B 标准与标准化组织附录C TCP/IP套件附录D 初等概率附录E 生日问题附录F 信息论附录G 不可约多项式与本原多项式列举附录H 小于10 000的素数附录I 整数的素因数附录J 小于1000素数的一次本原根列表附录K 随机数生成器附录L 复杂度附录M ZIP附录N DES差分密码分析和DES线性密码分析附录O 简化DESS-DES附录P 简化AESS-AES附录Q 一些证明术语表参考文献感谢您的阅读,祝您生活愉快。
差分密码分析和线性密码分析原理
密码分析原理
CONTENTS
01
02
差分密码分析
线性密码分析
PART
ONE
差分密码分析
差分密码分析简介
差分密码分析是迄今为止已知的攻击迭代分组密码最有效
的方法之一,其基本思想是:通过分析明文对的差值对密
文对的差值来影响来恢复某些密钥比特
当密码分析人员可以进行选择明文分析时,差分密码分析
(00 00 00 00 , 60 00 00 00)
22
2轮DES的特征差分密码分析
假定:去掉初始置换IP和最终置换FP。2轮的差分分析
共有7个步骤。
Step 1: 产生明文对(P, P∗),使得
办法是,随机产生一个P ,将其与下述值进
行异或得到P∗
23
2轮DES的特征差分密码分析
Step 2: 对于产生的明文对(P, P∗) ,计算加密后产生密文
十分有效。
已知明文的差分密码分析也是可行的,但是要求已知明密
文的量很大
差分密码分析的历史
Biham和Shamir对多种加
密算法和Hash函数进行差
分密码分析攻击,结果发
表在[BIHA93]中
设计DES的IBM小组知道
了差分分析
1974
1991
1990
差分密码分析公开发表
最早研究是Murphy分析
1 y’=
0 00
入一定是x’= 0 且
1
0
0
S盒的输入通过置换
P
成为
f(R,K)
的输出。
0
0
0
0
0
0
1
0
如前所述,f(R,K)的差分输出是
差分功耗分析攻击下密码芯片风险的量化方法
差分功耗分析攻击下密码芯片风险的量化方法随着现代社会对数字安全需求的不断提高,密码学一直是研究的重点。
密码芯片作为一种重要的加密设备,由于其在保障数据安全方面的作用,被广泛采用。
然而,密码芯片的安全性也存在着不同的攻击方法。
其中,差分功耗分析攻击是一种比较常见、高效的攻击方式,对密码芯片的安全性产生了一定程度的威胁。
在这种情况下,需要运用适当的方法进行风险分析和量化评估,以提高密码芯片在实际应用中的安全性。
1. 差分功耗分析攻击简介差分功耗分析攻击是一种通过分析目标芯片在处理数据时所消耗电能的方式获取密码密钥的攻击方式。
攻击者首先通过外部观察针对密码芯片进行敌意代码注入,利用针对敏感数据的实现代码,分析每个时钟周期的功耗特征等方式,将所有的采集数据加以处理,找到与密钥相关的信息,最终推导出密钥。
这种攻击方式不同于传统的暴力破解方式,其采用的是分析手段,能更加有效地获取密码芯片的敏感信息。
2. 差分功耗分析攻击的风险差分功耗分析攻击是一种比较常见、高效的攻击方式,对密码芯片的安全性产生了威胁。
根据文献和实验结果,差分功耗分析攻击可成为卡片密码芯片的一种主要攻击方式。
在现代数字社会中,加密芯片的安全性往往涉及到重要资料的安全。
若加密芯片不够安全,则黑客有可能通过非法方式获取重要的数据。
因此,差分功耗分析攻击的风险对于密码芯片的安全性具有重要意义。
3. 差分功耗分析攻击风险的量化方法目前,量化分析是一种验证设计安全性的方法,可用于评估针对芯片的不同攻击的概率。
在这方面,已有许多方法被提出,以对差分功耗分析攻击的风险进行量化。
(1)密钥迭代次数密钥迭代次数是指固定密码长度之后,进行加密操作的次数。
通过增加迭代的次数,可以增强密码芯片的安全性。
这个量化方法是比较实用的,因为它借助相关算法将攻击建模,并根据迭代次数和正常运行的功率,动态地测量实验中攻击成功率和容差性。
(2)密钥长度密钥长度是指在加密过程中用于保障安全性的密码长度。
5.8分组密码的工作模式和一般设计原理
5.8分组密码的工作模式和一般设计原理第八节分组密码的工作模式和一般设计原理1分组密码的工作模式为什么要设计工作模式?分组密码的工作模式是:根据不同的数据格式和安全性要求, 以一个具体的分组密码算法为基础构造一个分组密码系统的方法。
分组密码的工作模式应当力求简单, 有效和易于实现。
21980年12月, FIPS 81标准化了为DES开发的五种工作模式。
这些工作模式适合任何分组密码。
现在, AES的工作模式正在研发, 这些AES的工作模式可能会包含以前DES的工作模式, 还有可能包括新的工作模式。
我们仅以DES为例介绍分组密码主要的五种工作模式。
34直接使用DES 算法对64bit 的数据进行加密的工作模式就是ECB 模式。
在这种工作模式下, 加密变换和解密变换分别为:DES ()i i k c m = i =1,2,… (4.12)1DES ()i i k m c ?= i=1,2,… (4.13) 这里k 是DES 的种子密钥, i m 和ic 分别是第i 组明文和密文。
电码本(ECB)模式在给定密钥下, i m有642种可能的取值, i c也有642种可能的取值, 各(i m, i c)彼此独立, 构成一个巨大的单表代替密码, 因而称其为电码本模式。
5+=,则相应的密文ECB模式的缺点是:如果n i im m+=,即在给定密钥k下,同一明文组总是产生同n i ic c一密文组,这会暴露明文组的数据格式。
某些明文的数据格式会使得明文组有大量的重复或较长的零串,一些重要的数据常常会在同一位置出现,特别是格式化的报头、作业号、发报时间、地点等特征都将被泄露到密文之中,使攻击者可以利用这些特征。
6该模式好的一面就是用同个密钥加密的单独消息,其结果是没有错误传播。
实际上,每一个分组可被看作是用同一个密钥加密的单独消息。
密文中数据出了错,解密时,会使得相对应的整个明文分组解密错误,但它不会影响其他明文。
第五章 分组密码(5.1-5.3)
5.1分组密码基本概念
对于分组密码两个设计原则是扩散和混淆。 扩散原则: 1)明文中的每一位影响密文中的许多位,这样可 以隐蔽明文的统计特性;
2)使得密钥的每一位影响密文的许多位
扩散例子
分组密码的基本要求
混淆原则:设计的密码算法应使得密钥和明文 以及密文之间的依赖关系变得尽可能复杂。 可以使用复杂的非线性代替变换来达到较好的 混淆效果。
差分密码分析(Differential cryptanalysis)
差分密码分析是一种 攻击迭代分组密码 的 选 择明文统计分析破译法。 它不是直接分析密文或密钥的统计相关性,而 是分析明文差分和密文差分之间的统计相关 性。
差分密码分析(Differential cryptanalysis)
线性攻击
S盒的非线性特点是DES安全性的主要源泉
Rueppel[1986]的流密码专著中曾提出以最接近 的线性函数逼近非线性布尔函数的概念, Matsui推广了这一思想以 最隹线性函数逼近S 盒输出的非零线性组合[1993],即所谓线性攻 击,这是一种已知明文攻击法。
线性攻击
为此对每一S盒的输入和输出之间构造统计线性路径, 并最终扩展到整个算法。
48 bit寄存器
密 钥 产 生 器
选择压缩运算 S
32 bit寄存器
置换运算 P
按bit模2和 Li (32bit) Ri (32bit)
乘积变换框图
给定明文差分为1的明文对,其对应的密文差分可计算 得到(不唯一)。(选择明文攻击,此时敌手有DES 加密器,但不知道密钥)
挑选出概率最大的密文差分,作为正确的密文差分,对应的 明文对为正确对。 对于最后一轮(i=16)的乘积变换中的8个S盒,输出差分是唯一 的(可由正确的密文差分经逆置换IP-1推出),输入差分可能有 多种情况。 对于正确对,尝试所有可能的第16轮的子密钥K16(48bits) 输出正确差分的次数最大的子密钥很可能就是真正的子密钥
差分密码分析的复杂度-Read
分组密码的设计原则
可实现性角度: • 应该具有标准的组件结构 (子模块),以适应超大规 模集成电路的实现。 • 分组密码的运算能在子模块上通过简单的运算进行。
8
Feistel密码结构
9
数据加密标准 DES ( Data Encryption Standard )
明文和密文的长度均为64位,密钥长度为56位。
13
DES的加密过程
第一步:初始置换IP。 – 对于给定的明文m,通过初始置换IP获得 m0 ,并将 m0 分为两部分,前面32位记为 L0 ,后面32位记为 R0 , 即 m0 IP(m) L0 R0 。
14
DES的加密过程
第二步:乘积变换( 16轮)。 – 在每一轮中依据下列方法计算 Li Ri( 1 i 16 )(16 轮中的计算方法相同): Li Ri 1 ,Ri Li 1 f ( Ri 1 , K i ) – 其中,K i 为第i轮使用的子密钥,各 K i 均为 K 的一 个置换选择,所有 K i 构成密钥方案。函数 f ( X , X ) 中的变量 X 为16位字符串,X 为48位字符串, 函 数 f ( X , X ) 输出的结果为32位字符串。
12
DES算法描述
• 算法设计中采用的基本变换和操作: – 置换(P) • 重新排列输入的比特位置。 – 交换(SW) • 将输入的左右两部分的比特进行互换。 – 循环移位 • 将输入中的比特进行循环移位,作为输出。 – 一个复杂变换( fK ) • 通常是一个多阶段的乘积变换; • 与密钥 Key 相关; • 必须是非线性变换; • 实现对密码分析的扰乱; • 是密码设计安全性的关键。
17
DES的密钥计算
• DES在各轮中所用的密钥均为由初始密钥(即种子密 钥)导出的48位密钥。 • 初始密钥为64位,其中第8、16、24、32、40、48、56、 64位均为校验位。 • 如此设置校验位的目的是使每8个字节所含的字符“1” 个数为奇数,以便能够检测出每个字节中的错误。
线性密码分析
差分密码分析
❖ 定义2 r-轮特征是一个差分序列a0,a1,…,ar,其中ai是Yi和 Yi*(0ir)的差分。 r-轮特征=a0,a1,…,ar的概率是指在明文Y0 和子密钥K1,…,Kr独立、均匀随机时,明文对Y0和Y0*的差分为 a0的条件下,Yi和Yi* *(0ir)的差分为ai的概率
❖ 定义3 如果 r-轮特征=a0,a1,…,ar满足条件: Y0和Y0*的差分为 a0,第i轮输出Yi和Yi*的差分为ai(1ir),则称明文对Y0和Y0*为特 征的一个正确对,否则称为特征的错误对
9
差分密码分析
❖ R轮迭代密码的差分攻击算法 ❖ 第1步:找出一个(r-1)轮特征=a0,a1,…,ar-1,使得它的概率达到最大
或几乎最大
❖ 第2步:均匀随机地选择明文Y0并计算Y0*,使得Y0和Y0*的差分为a0, 找出Y0和Y0*在实际密钥加密下所得的密文Yr和Yr*。若最后一轮的子 密钥Kr(或Kr的部分比特)有2m个可能值Krj(1j2m),设置相应的2m个 计数器j(1j2m);用每个Krj解密密文Yr和Yr*,得到Yr-1和Yr-1*,如果 Yr-1和Yr-1*的差分是ar-1,则给相应的计数器j加1。
是一种选择明文攻击,由穷尽密钥搜索攻击和查表攻击 两种方法混合而成,在选择明文攻击中以时间换空间, 比穷尽密钥搜索攻击时间复杂度小,比查表攻击空间复 杂度小
5
差分密码分析
1. 差分密码分析基本原理 差分密码分析是已知的攻击跌代密码(所谓 跌代密码就是以跌代一个简单的轮函数为基 础的密码,即通过选择某个较简单的密码变 换,在密钥控制下以跌代方式多次利用它进 行加密变换)最有效的方法之一,其基本思 想是:通过分析明文6对的差值对密文对的差 值的影响来恢复某些密钥比特
差分密码分析
该特征出现的概率是14/64 ·1 = 14/64 所以,出错的概率是50/64 对 正确的S1K 值不一定出现在每个表中,需要寻找的是
最常出现的S1K 值 正确值以14/64 出现在各表中,剩余的63个值以大致
等概的方式出现
38
已知明文攻击-1
25
确定密钥的原理-6
而正确的密钥值必定同时出现在两个集合
因此可以确定密钥是在
中的一个。
要确定到底是哪一个,需要知道更多的输入输
出异或对。
26
多轮DES的特征
差分输入具有很高的或然性,可以直接追踪到多轮的 情况,观察到: E扩展中的异或值是线性的: 异或值与密钥是无关的:
27
2轮DES的特征-1
35
2轮DES的差分分析-5
Step 5: 计算这些表的交集 因为正确的密钥必定同时出现在每张表中
如果有不止一个S1K值,就说明还需要更多的明文和 密文差分对才能唯一确定密钥S1K,转到第一步,计
算更多的数据 需要的明文密文差分对的数量,大致等于使用的特
征概率的倒数,本例中需要64/14 ≈ 5对 如果只得到一个S1K ,就是正确的,转到第六步。
因为 所以
22
确定密钥的原理-3
这样就得到:
所以,可能的密钥就是
23
确定密钥的原理-4
此外,假设已知S1的两个输入是21和15,它们异或后的结 果是34,输出异或后的结果是3 。查S1的差分分布表,得到 输入异或为34,输出异或为3时,可能的输入: 。
24
确定密钥的原理-5
这样就可以从
得到可能的密钥值
11
S-Box是非差分均匀的
5.7线性密码分析原理
第七节线性密码分析原理12对随机给定的明文P 和相应的密文C 上面的等式成立的概率p ≠1/2.线性密码分析的方法是寻找一个给定密码算法的具有下列形式的“有效的”线性表达式P [i 1, i 2,…, i a ] ⊕ C [j 1, j 2,…, j b ] = K [k 1, k 2,…, k c ] (4.11)这里i 1, i 2,…, i a ; j 1, j 2,…, j b 和 k 1, k 2,…, k c , 表示固定的比特位置。
需要解决的问题1.是否存在线性优势?2.如何求单轮变换的线性优势?3.如何求多轮变换的线性优势?3我们需要的是等式成立的概率具有非均匀的分布,所以用⏐p −1/2⏐来刻画等式的有效性(定义εi = p i− 1/2为偏差).4我们把最有效的线性表达式(也就是⏐p −1/2⏐是最大的)称作最佳线性逼近式, 相应的概率p称作最佳概率. 为了计算等式(4.11)成立和有效的概率, 我们先给出一些理论上要用到的结果.56设 X 1, X 2, …, X k 是取值于集合{0,1}的独立随机变量. 设p 1, p 2,….都是实数, 且对所有的i , i =1,2,…, k 有0 ≤ p i ≤ 1, 再设Pr[X i = 0] = p i , 则Pr[X i = 1] = 1−p i .对取值于{0,1}的随机变量, 用分布偏差来表示它的概率分布. 随机变量X i 的偏差定义为12i i p ε=− 堆积引理7引理(堆积引理. Piling-up lemma ) 设1,......,k i i X X 是独立的随机变量, 12......k i i i ε表示随机变量X i 1⊕ X i 2-⊕…⊕X i k 的偏差, 则121 (12)k j k k i i i i j εε−==∏ 证明:用数学归纳法。
首先k = 2时……8推论 设1,......,k i i X X 是独立的随机变量,12......ki i i ε表示随机变量X i 1⊕ X i 2⊕…⊕X i k 的偏差, 若对某个j 有0j i ε=, 则12......0k i i i ε=.注:引理4.1只在相关随机变量是统计独立的情况下才成立.利用堆积引理, 我们可以将每轮变换中偏差最大的线性逼近式进行组合, 组合后的所有轮变换的线性逼近式, 也将拥有最佳的偏差, 即寻找分组密码的最佳线性逼近式.9S-盒的线性逼近由上述分析我们知道, 分组密码的最佳线性逼近式的寻找, 归结为每轮线性逼近式的寻找, 而每轮的变换中, 除了非线性变换(即S-盒)部分, 线性部分是自然的线性关系, 也就是说, 每轮线性逼近式的寻找, 只需寻求S-盒部分的最佳线性逼近式.1011考虑如下一个S-盒:{0,1}{0,1}m ns π→(我们并未假定s π是一个置换, 甚至也未假定m = n ). m 重输入X = (x 1, x 2, …, x m ) 均匀随机地从集合{0,1}m中选取,这就是说, 每一个坐标x i 定义了一个随机变量i X , i X 取值于{0,1}, 并且其偏差0i ε=即(0)(1)1/2i i p X p X ====.12进一步, 假设这m 个随机变量相互独立, n 重输出Y = (y 1, y 2,…, y n )中每一个坐标y i 定义了一个随机变量i Y , i Y 取值于{0,1}. 这n 个随机变量一般来说不是相互独立的, 与X i 也不相互独立.13现在考虑计算如下形式的随机变量的偏差值:()()11m m i i j j i i a X b Y ==⊕⊕⊕其中a = (a 1,…, a m )和b = (b 1,…, b n )分别为m 和n 维随机向量, a i 和b j 为0或1.14设N L (a , b )表示满足如下条件的二元m + n 组(x 1,x 2,…, x m , y 1,…, y n )的个数:(y 1,…, y n ) = πs (x 1, x 2,…, x m )(记为条件B )且11()()0mni i j j i j a X b Y ==⊕=⊕⊕(记为条件A )则P (A / B) = P (A, B) / P(B) = (N L (a , b ) / 2m +n) / (2m / 2m +n)= N L (a , b ) / 2m,15对于一个具有输入a 与输出b 的随机变量()()11m m i i j j i i a X b Y ==⊕⊕⊕的偏差计算公式为:ε(a , b )= N L (a , b )/2m−1/2正是由于S-盒的ε(a , b )的不同, 使得线性分析的实现成为可能.下面举一个例子。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六节差分密码分析原理1差分分析(differential cryptanalysis)方法是一种选择明文攻击。
该方法的基本思想是: 通过分析一对特选的明文对的差相应密文对的差的影响来提取密钥信息。
这种攻击方法主要适用于攻击迭代密码。
2需要解决的问题1.是否存在差分优势?2.如何求单轮变换的差分优势?3.如何求多轮变换的差分优势?4.差分优势和选择明文的关系?34对分组长度为n 的r 轮迭代密码, 将两个n 比特串x 与x *的差分定义为:*x x x ∆=⊕ (4.8)如果给定一对n 长的明文m 和m *, 那么在密钥的控制下, 第i 轮迭代所产生的中间密文差为 *()()()c i c i c i ∆=⊕ 0i r ≤≤ (4.9)其中⊕表示比特串集合上的一个特定的群运算。
现在的差分攻击多数定义为模2运算。
概念5因为k i是第i 轮迭代的子密钥, 所以()((1),)i c i f c i k =−*()((1),)((1),)i i c i f c i k f c i k ∆=−⊕− 这里, 每轮迭代所用的子密钥ik 与明文统计独立, 且可以认为它服从均匀分布。
当i= 0时,c(0) = m, c*(0) = m*, ∆c(0) = ∆m= m⊕m* ;当i= r时,∆c=∆c(r)。
6因为k i是第i轮迭代的子密钥, 所以c(i) = f(c(i−1), k i)∆c(i) = f(c(i−1), k i) ⊕f(c*(i−1), k i) 这里, 每轮迭代所用的子密钥与明文统计独立, 且可以认为它服从均匀分布。
78例 在DES 中, 令***0000,m L R m L R ==. 如果*00R R =, 则明文差 **'000000(,0)m L R L R L α=∆=⊕=,其中'*000L L L =⊕。
9假如DES 只有一轮迭代, 而不是16 轮迭代, 那么我们根据DES 轮函数可以计算出 L 1 = R 0 L 1* = R 0*R 1 = L 0 ⊕ f (R 0, k 1) R 1* = L 0* ⊕ f (R 0*, k 1) 于是**'111110(0,)L R L R L α=⊕=→L 1⊕L 1* = 0→R 1⊕R 1* = L 0′这个差分一轮的概率是1。
这表明, 随机地选择一对输入差为(L′0,0)的明文, 经过DES的一轮迭代后的密文差为(0, L′0)的概率为1, 因而不可能得到其它的密文差。
10第五章分组密码与数据加密标准11例 在DES 中, 令***0000,m L R m L R ==. 如果*00(60000000)R R +=(以下均以16进制表示32bit 数据), 则明文差为*0**0000'0(,)(,60000000)m m mL L R R L α=∆=⊕=⊕⊕=第五章分组密码与数据加密标准12***,10101160000000L R L R L L ==⇒⊕=******** (,),(,)()(,)(,)()((()))((()))11100111110000110000R L f R k R L f R k R RL L f R k f R k L L P S E R k P S E R k =⊕=⊕⇒⊕=⊕⊕⊕=⊕⊕⊕⊕⊕= L 0′ ⊕ P (S (E (R 0) ⊕k1) ⊕ S (E (R 0*) ⊕k 1) )13因为R 0和R 0*经过相同的扩展运算后分别与k 1模2 相加, 所以选择压缩运算S-盒的输入差为E (R 0) ⊕k 1 ⊕E (R 0*) ⊕k 1 = E (R 0) ⊕E (R 0*) = E (R 0⊕R 0*)= E (60000000)= (001100, 000000, 000000, 000000, 000000, 000000,000000, 000000)14因为S 2-盒至S 8-盒的输入差都是000000, 所以它们的输出差都是0000的概率为1。
而S 1-盒的输入差为001100, 考虑下列问题:1. S 1-盒的输入差为001100,对应多少对输入?2. 其输出差有多少种取值?24 = 1626 = 6415这样的一轮迭代的特征是01ααΩ=. 这表明, 随机地选择一对输入差为'0(,60000000)L 的明文, 经过一轮迭代后的输出差为'10(60000000,00808200)L α=+的概率是14/64, 而得到其它形式的密文差是相当随机的且具有的概率都很小。
简单地说就是:某些输入差对应的输出差,具有较大的概率,这就是我们需要的信息。
参看书PS1-盒和P159差分分布表,例如131(000000) ⊕(001100) = (001100)(000001) ⊕(001101) = (001100)S(000000)⊕S(001100) = 0101S(000001)⊕S(001101) = 11011617S 1-盒的输入差为001100, 其输出差为1110的概率是14/64。
于是, 选择压缩运算S 的输出差为E0000000的概率为14/64. 再经过置换运算P, 它的输出差是00808200, 故'10(60000000,00808200)L α=⊕'*000L L L =⊕分析正是由于输入差和输出差的分布表的不均匀性,才导致了差分分析的可能性。
18191. 是否存在差分优势?2. 如何求单轮变换的差分优势?3. 如何求多轮变换的差分优势?4. 差分优势和选择明文的关系?需要解决的问题√√20定义r-轮特征Ω是一个差分序列α0α1….αr其中α0是明文对m 和m *的差分, αi (1 ≤i ≤r )是第i 轮输出c (i )和c *(i )的差分。
21定义 在r-轮特征01......r αααΩ=中, 设1(((1))|(1))i i i p p f c i c i ααΩ−=∆−=∆−= (4.10)为第i 轮迭代输入差(即为第(i -1)轮迭代输出差)为1i α−, 输出差为i α的概率(或差分扩散率).定义r-轮特征Ω=01......rααα的概率是指在明文和子密钥12,,......,rk k k独立, 均匀随机时, 明文对m和m*的差分为α0的条件下, 第i(1)i r≤≤轮输出c(i 和c*(i)的差分为αi的概率(或称为特征Ω的差分扩散率) 。
2223定义 设101......m αααΩ=和201......l βββΩ=分别是m-轮特征和l -轮特征。
若0m αβ=, 则1Ω和2Ω的级联定义为一个()m l +-轮特征011............m l αααββΩ=。
并且Ω的概率为Ω1和Ω2的概率的乘积。
在实际应用中,r-轮特征Ω = α0, α1,…., αr的概率可以用p1Ω×p2Ω×…×p rΩ来近似,因此,r-轮特征可以看作r个单轮特征的级联,它的概率是r个单轮特征概率的乘积。
24251. 是否存在差分优势?2. 如何求单轮变换的差分优势?3. 如何求多轮变换的差分优势?4. 差分优势和选择明文的关系?需要解决的问题√√√定义若r-轮特征Ω= α0, α1,…., αr满足(1) m与m*的差分为α;(2) 第i轮输出c(i)与c*(i)的差分为αi (1 ≤i≤r),则称明文对m与m*是一个正确对,否则称其为错误对。
2627定理假设每一轮子密钥是统计独立且是均匀分布的,则r -轮特征Ω= α0, α1,…., αr 的概率恰好是差分为α0的明文对是正确对的概率。
证明差分是α0的明文对m 与m *是特征Ω= α0, α1,…., αr 的正确对, 当且仅当第i (1 ≤i ≤r )轮输出c (i )和c *(i )的差分为αi 。
28因为第i 轮的输入差为αi -1,输出差为αi 的概率与具体的输入无关,而且又假定每一轮迭代的子密钥统计独立且是均匀分布的,所以第i 轮输入差为αi -1,输出差为αi 的概率与前面各轮的作用无关。
因此,差分是α0的明文对是特征Ω的正确对的概率是每个单轮特征概率的乘积。
29假如我们找到一个概率比较大的轮特征Ω= α0, α1,…., αr ,那么我们可以随机地选择输入差为α0的明文对,根据定义4.5和定理4.6,这样的明文对是正确对的概率和特征Ω的概率相同。
已知条件和攻击目标之间的关系?3031综上所述, 对r 轮迭代密码的差分攻击的步骤如下:1) 找出一个(r −1)轮特征011......r ααα−Ω=, 使它的概率达到最大或几乎最大.差分分析攻击步骤322) 均匀随机地选择明文m , 并计算出m *, 使*0m m α⊕=, 再找出m 和m *在实际密钥加密下所得的密文()c r 和*()c r .333) 若最后一轮的子密钥r k (或r k 的部分比特)有2m 个可能的值(12)rm j k j ≤≤, 我们就设置2m 个相应的计数器j δ(12)m j ≤≤, 用每一个可能的密钥解密c (r )和*()c r 得到(1)c r −和*(1)c r −. 若(1)c r −+*(1)c r −1r α−=, 则给相应的计数器j δ加1。
4) 重复第2、3步, 直到有一个或几个计数器的值明显高于其它计数器的值, 输出它们所对应的子密钥(或部分比特)。
攻击成功!34小结1.是否存在差分优势?2.如何求单轮变换的差分优势?3.如何求多轮变换的差分优势?4.差分优势和选择明文的关系?35。