分组密码的线性攻击方法..
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文从三个方面介绍了分组密码的线性攻击. 首先,描述了分组密码的进本结构和设计原则. 其次介绍线性攻击基本过程,并对线性攻击的发展和延伸作了总结,并介绍了几种由线性攻击引申出来攻击方法. 最后,以DES算法为例,攻击了一个8轮的DES,来演示线性攻击的过程.
该论文只是对线性攻击做了一个总结并加以演示,若想使将来设计的密码器能够抵御线性攻击的攻击,还需作进一步研究和探讨.
This paper describesthelinear block cipher attackfrom three aspects.First,this paperdescribesthe structure and design principles into this block cipher.Secondly, it introducedthe basic process of linear attacks,summarizedthe development and extension of linear attacksand introducedseveral kindsextended by the linear attack out attack.Finally, the DES algorithmattacksan 8 attack of DES to demonstrate the process of linear attacks.
3百度文库2 线性攻击的模块
3.2.1对于
给出一个S盒&s: . n重输入X=( )随机均匀的从集合 中选取,也就是说每一个坐标 定义了一个随机变量 , 取值于{0,1},并且其偏差 . 而且这n个随机变量相互独立.M重输入Y=( )中每一个坐标 定义了一个随机变量 , 取值于{0,1},这m 个随机变量一般不相互独立,与 也不相互独立. 经过验证,如果 ,则有Pr[ ]=0. 如果 则Pr[ ]= ,因为Pr[ = ,并且存在Pr[ ]=1,现在应用上述公式计算随机变量 的偏差,如果这种随机变量的偏差值为0,那么线性攻击就可能实现.
(3)透明性和灵活性:透明性即要求算法是可证明安全的. 如果使用迭代型分组密码,其安全强度与迭代次数的关系应尽可能地明确. 灵活性即要求算法的实现可以适应多种运行环境、明文分组/密钥长度可以伸缩、算法可以移植和变形.
(4)加解密相似性:即加密算法和解密算法相同,仅密钥编排算法不同. 加解密相似性的好处是加解密模块可复用,从而大幅降低了分组密码算法的硬件实现成本.
The paper just made a summary of the linear attack and presentations. Ifyou want to make in the future design of the password is able to withstand the attack of linear attacks.Further research and discussionare needed.
【关键词】分组密码,线性攻击,轮函数,密钥,DES
Linear attack methods of block cipher
【Abstract】
In 1993 at the annual meeting of the European code block cipher algorithm,M.Matsuipresents a very effective method of attackfor iterative form.In fact, the linear attack method for almost all block ciphers are applicable. It isregarded asone of the most important ways to attack the password. The basic idea is to find an effective approximation of linear block cipher algorithm to decipher the password system.This paper will study the linear attack , attack linear process , the development of linear attacks.
其中和分别表示在密钥k控制下加密和解密变换. 通常情况下明文分组和密文分组是等长的,即明文加密后无数据的扩展或压缩,事实上明文空间、密文空间及密钥空间的大小将直接影响分组密码算法的安全性.
2.2分组密码的基本设计原则
分组密码的基本设计原则有:
(1)安全性:影响算法安全性的因素很多,比如密钥空间的大小、明文分组的长度等.混淆(Confusion)和扩散(Diffusion)是C. E. Shannon提出的设计密码体制的两个基本原则,其目的是为了有效地抵抗敌手由密文的统计特性推测明文或密钥信息.
题 目:
分组密码的线性攻击方法
学 院:
数学与信息科学学院
专 业:
信息与计算科学
班 级:
2011级本科1班
姓 名:
吴洪亮
学 号:
指导教师:
2015
年
5
月
7
日
分组密码的线性攻击方法
【摘要】
线性攻击是由M.Matsui在1993年的欧洲密码年会上针对迭代形分组密码算法提出了一种非常有效的攻击方法. 事实上,线性攻击法对几乎所有的分组密码都适用,它是分组密码最重要的攻击方法之一. 其基本思想是通过寻找分组密码算法的有效线性逼近去破译密码系统. 本文将对线性攻击,线性攻击的过程,线性攻击的发展进行研究.
2.3.1
S-P结构中的S是指替换(Substitution),P是指置换,或更广泛的线性变换(Permutation).S-P结构是目前广泛使用的一种分组密码整体结构(见图2.1),AES、SERPENT、ARIA等分组密码都采用此结构. 在该类型分组密码的每一轮中,首先轮输入作用于一个由子密钥控制的可逆函数S,然后再作用于一个置换(或一个可逆的线性变换)P.S-P结构非常清晰,S一般被称为混淆层,主要起混淆的作用.P一般被称为扩散层,主要起扩散的作用. 直观地来看,S-P类型分组密码通过整体结构将混淆层和扩散层迭代多次,这在一定程度上增加了该类型密码的混淆性和扩散性,使得该类型密码的输出和输入之间的依赖关系更为复杂.
分组密码是将明文消息编码表示后的数字序列(通常是二元数字序列,即0,1序列),按固定长度进行分组,每组分别在同一密钥的控制下按同一算法进行逐组加密,从而将各个明文组变换成长度固定的密文组.分组密码将定长的明文块转换成等长的密文,这一过程在秘钥的控制之下.使用逆向变换和同一密钥来实现解密.假设分组密码长度为n, , , 分别表示明文密文和密钥,则分组密码的加密过程可以表示为:
在明确S和P的某些密码指标后,设计者能估计S-P类型分组密码抵抗差分攻击和线性攻击的能力. 和Feistel结构相比,S-P结构可以得到更快速的扩散,更适宜高速的硬件实现. 但是,为了实现S-P类型分组密码的加解密相似特性,需要对子模块作出一定的限制.
2.3.2
Feistel结构可以把任何函数(通常称为轮函数F )转化为一个置换,它是由H.Feistel在设计Lucifer分组密码时发明的,并因DES的使用而流行. 许多分组密码采用了Feistel结构,例如CAMELLIA、DES、FEAL、GOST、LOKI、E2、BLOWFISH和RC5等.
混淆性:所设计的分组密码应使得明文、密文、密钥之间的依赖关系相当复杂,以至于这种依赖关系对密码分析者来说是无法利用的.
扩散性:所设计的分组密码应使得密钥的每一比特影响密文的许多比特,以防止对密钥进行逐段破译;同时,明文的每一比特也影响密文的许多比特,以便充分地隐蔽明文的统计特性.
(2)简洁、快速性:简洁、快速性是指分组密码算法在满足安全性的同时尽可能简单高效. 如果分组密码算法用软件来实现,则要求分组长度尽可能自然地适应软件编程,比如8、16、32比特等. 在软件实现中,按比特置换通常是难于实现的,应尽量避免使用它. 同时,分组上的运算同样应该是易于软件实现的运算,最好是用一些标准处理器所具有的基本指令,如与、或、移位等. 如果分组密码算法用硬件来实现,则应尽量采用规则结构,以便使用超大规模集成电路(VLSI)来实现.
对分组密码的线性攻击的研究起于1993年欧洲的密码年会上M. Matsui对其的提出,事实上. 事实上,线性攻击法对几乎所有的分组密码都适用,很快 线性攻击就成为分组密码最主要的攻击方法了. 对线性攻击的研究也一直如火如荼的进行着. 各种基于线性攻击的新型攻击方法不断被提出.
2 分组密码
2.1分组密码定义
线性攻击首先对密码算法中的非线性变换(S盒)进行线性逼近. 然后将这些线性逼近拓展为对轮函数的线性逼近,再将线性逼近连接起来,从而得到密码算法的一个线性逼近,再利用掌握的大量用同一密钥加密的明文-密文对进行穷举,来得到明文甚至密钥,实现线性攻击. 用线性攻击法时所需的明文密文数量,大致上取决于线性关系式成立的概率p与1/2的偏差,当|p一1/2|越大,所需的明文密文数越小. 一旦我们获得一个有效的线性关系式,我们可以根据以下法则猜测出的一些位. 其中线性攻击的目的是寻找最佳的线性表示,且线性表示有一个较大的偏差ε.
目前对于密码理论与技术的研究主要分为两种,一种是是基于数学的密码理论与技术,其中包括公钥密码、分组密码、流密码、Hash函数、密钥管理、PKI技术及VPN技术等;另一种则是非数学的密码理论与技术,其中包括信息隐藏、量子密码、基于生物特征的识别理论与技术等. 本文所研究的分组密码属于基于基于数学理论的研究. 而作为密码学应用中的重要部分,对于密码的攻击,随着密码学的发展也在不断的取得重大突破. 攻击和抗攻击则是促进密码学发展的主要因素.
对于长度为2n比特的输入 , 和 均为n比特,||表示两个比特串的连接,1轮Feistel结构(见图2.2)通过如下方式计算输出 。其中, 表示两个比特串按位进行异或运算, 是轮函数.
Feistel模型的一个特点是其逆向操作和正向操作实质上具有相同的结构,而这唯一的不同是子密钥的使用次序相反;其另一个特点是每轮只对轮输入的一半进行变换这样似乎使得加密脱密变慢,但却使人们自由的选择f函数而不要求其可逆.Feistel模型的上述特点使其广泛的应用到了分组密码的设计中,如DES,不过人民在使用这种模型时结果上可能会产生变化,如LOKI、GOST、E2、FEAL、BLOWFISH等.
【Key Words】
Block cipher, linear attack, function, key, DES
1 引言
随着信息技术和互联网技术的发展,信息安全越来越受到人们的重视. 小到个人的账户密码,大到国家,商业集团的核心机密,密码学已经深入到了人们生活中的方方面面. 事实上,对于密码应用的历史可以追溯到公元前 400 年,例如凯撒密码. 虽然对于密码的使用如此之早,但直至第二次世界大战,对公众而言密码学依然十分陌生.
20世纪70年代以前,密码学主要在军队和政府中秘密的发展,民间对了解甚少. 近些年来,随着计算机,网络和通讯技术的发展,进入了全球信息化时代,密码学自然而言的进入商业化,越来越多学者开始关注密码学的研究,数据加密标准(Des)的公布,更使密码学在民间的研究水平得到整体提高. 从此密码技术越来越受人们的关注,不仅应用于数据加密等传统领域还在信息认证等方面有所发展,更成为解决信息安全问题的核心技术.
除了这两种模型,常见的分组密码的整体结构还有Lai-Massey结构、MISTY结构、广义Feistel结构,IDEA算法结构,在这里就不加以介绍了.
3分组密码的线性攻击方
3.1线性攻击方法的基本思想
线性攻击是由M. Matsui针对DES算法提出了一种非常有效的攻击方法. 事实上,线性攻击法对几乎所有的分组密码都适用,它是最重要的分组密码的攻击方法之一,也是现代密码学发展史中最有意义的成果之一.若介绍线性攻击就不得不先说明什么是对分组密码的攻击,即通过对已截获的密文的分析来推断明文和密钥.
该论文只是对线性攻击做了一个总结并加以演示,若想使将来设计的密码器能够抵御线性攻击的攻击,还需作进一步研究和探讨.
This paper describesthelinear block cipher attackfrom three aspects.First,this paperdescribesthe structure and design principles into this block cipher.Secondly, it introducedthe basic process of linear attacks,summarizedthe development and extension of linear attacksand introducedseveral kindsextended by the linear attack out attack.Finally, the DES algorithmattacksan 8 attack of DES to demonstrate the process of linear attacks.
3百度文库2 线性攻击的模块
3.2.1对于
给出一个S盒&s: . n重输入X=( )随机均匀的从集合 中选取,也就是说每一个坐标 定义了一个随机变量 , 取值于{0,1},并且其偏差 . 而且这n个随机变量相互独立.M重输入Y=( )中每一个坐标 定义了一个随机变量 , 取值于{0,1},这m 个随机变量一般不相互独立,与 也不相互独立. 经过验证,如果 ,则有Pr[ ]=0. 如果 则Pr[ ]= ,因为Pr[ = ,并且存在Pr[ ]=1,现在应用上述公式计算随机变量 的偏差,如果这种随机变量的偏差值为0,那么线性攻击就可能实现.
(3)透明性和灵活性:透明性即要求算法是可证明安全的. 如果使用迭代型分组密码,其安全强度与迭代次数的关系应尽可能地明确. 灵活性即要求算法的实现可以适应多种运行环境、明文分组/密钥长度可以伸缩、算法可以移植和变形.
(4)加解密相似性:即加密算法和解密算法相同,仅密钥编排算法不同. 加解密相似性的好处是加解密模块可复用,从而大幅降低了分组密码算法的硬件实现成本.
The paper just made a summary of the linear attack and presentations. Ifyou want to make in the future design of the password is able to withstand the attack of linear attacks.Further research and discussionare needed.
【关键词】分组密码,线性攻击,轮函数,密钥,DES
Linear attack methods of block cipher
【Abstract】
In 1993 at the annual meeting of the European code block cipher algorithm,M.Matsuipresents a very effective method of attackfor iterative form.In fact, the linear attack method for almost all block ciphers are applicable. It isregarded asone of the most important ways to attack the password. The basic idea is to find an effective approximation of linear block cipher algorithm to decipher the password system.This paper will study the linear attack , attack linear process , the development of linear attacks.
其中和分别表示在密钥k控制下加密和解密变换. 通常情况下明文分组和密文分组是等长的,即明文加密后无数据的扩展或压缩,事实上明文空间、密文空间及密钥空间的大小将直接影响分组密码算法的安全性.
2.2分组密码的基本设计原则
分组密码的基本设计原则有:
(1)安全性:影响算法安全性的因素很多,比如密钥空间的大小、明文分组的长度等.混淆(Confusion)和扩散(Diffusion)是C. E. Shannon提出的设计密码体制的两个基本原则,其目的是为了有效地抵抗敌手由密文的统计特性推测明文或密钥信息.
题 目:
分组密码的线性攻击方法
学 院:
数学与信息科学学院
专 业:
信息与计算科学
班 级:
2011级本科1班
姓 名:
吴洪亮
学 号:
指导教师:
2015
年
5
月
7
日
分组密码的线性攻击方法
【摘要】
线性攻击是由M.Matsui在1993年的欧洲密码年会上针对迭代形分组密码算法提出了一种非常有效的攻击方法. 事实上,线性攻击法对几乎所有的分组密码都适用,它是分组密码最重要的攻击方法之一. 其基本思想是通过寻找分组密码算法的有效线性逼近去破译密码系统. 本文将对线性攻击,线性攻击的过程,线性攻击的发展进行研究.
2.3.1
S-P结构中的S是指替换(Substitution),P是指置换,或更广泛的线性变换(Permutation).S-P结构是目前广泛使用的一种分组密码整体结构(见图2.1),AES、SERPENT、ARIA等分组密码都采用此结构. 在该类型分组密码的每一轮中,首先轮输入作用于一个由子密钥控制的可逆函数S,然后再作用于一个置换(或一个可逆的线性变换)P.S-P结构非常清晰,S一般被称为混淆层,主要起混淆的作用.P一般被称为扩散层,主要起扩散的作用. 直观地来看,S-P类型分组密码通过整体结构将混淆层和扩散层迭代多次,这在一定程度上增加了该类型密码的混淆性和扩散性,使得该类型密码的输出和输入之间的依赖关系更为复杂.
分组密码是将明文消息编码表示后的数字序列(通常是二元数字序列,即0,1序列),按固定长度进行分组,每组分别在同一密钥的控制下按同一算法进行逐组加密,从而将各个明文组变换成长度固定的密文组.分组密码将定长的明文块转换成等长的密文,这一过程在秘钥的控制之下.使用逆向变换和同一密钥来实现解密.假设分组密码长度为n, , , 分别表示明文密文和密钥,则分组密码的加密过程可以表示为:
在明确S和P的某些密码指标后,设计者能估计S-P类型分组密码抵抗差分攻击和线性攻击的能力. 和Feistel结构相比,S-P结构可以得到更快速的扩散,更适宜高速的硬件实现. 但是,为了实现S-P类型分组密码的加解密相似特性,需要对子模块作出一定的限制.
2.3.2
Feistel结构可以把任何函数(通常称为轮函数F )转化为一个置换,它是由H.Feistel在设计Lucifer分组密码时发明的,并因DES的使用而流行. 许多分组密码采用了Feistel结构,例如CAMELLIA、DES、FEAL、GOST、LOKI、E2、BLOWFISH和RC5等.
混淆性:所设计的分组密码应使得明文、密文、密钥之间的依赖关系相当复杂,以至于这种依赖关系对密码分析者来说是无法利用的.
扩散性:所设计的分组密码应使得密钥的每一比特影响密文的许多比特,以防止对密钥进行逐段破译;同时,明文的每一比特也影响密文的许多比特,以便充分地隐蔽明文的统计特性.
(2)简洁、快速性:简洁、快速性是指分组密码算法在满足安全性的同时尽可能简单高效. 如果分组密码算法用软件来实现,则要求分组长度尽可能自然地适应软件编程,比如8、16、32比特等. 在软件实现中,按比特置换通常是难于实现的,应尽量避免使用它. 同时,分组上的运算同样应该是易于软件实现的运算,最好是用一些标准处理器所具有的基本指令,如与、或、移位等. 如果分组密码算法用硬件来实现,则应尽量采用规则结构,以便使用超大规模集成电路(VLSI)来实现.
对分组密码的线性攻击的研究起于1993年欧洲的密码年会上M. Matsui对其的提出,事实上. 事实上,线性攻击法对几乎所有的分组密码都适用,很快 线性攻击就成为分组密码最主要的攻击方法了. 对线性攻击的研究也一直如火如荼的进行着. 各种基于线性攻击的新型攻击方法不断被提出.
2 分组密码
2.1分组密码定义
线性攻击首先对密码算法中的非线性变换(S盒)进行线性逼近. 然后将这些线性逼近拓展为对轮函数的线性逼近,再将线性逼近连接起来,从而得到密码算法的一个线性逼近,再利用掌握的大量用同一密钥加密的明文-密文对进行穷举,来得到明文甚至密钥,实现线性攻击. 用线性攻击法时所需的明文密文数量,大致上取决于线性关系式成立的概率p与1/2的偏差,当|p一1/2|越大,所需的明文密文数越小. 一旦我们获得一个有效的线性关系式,我们可以根据以下法则猜测出的一些位. 其中线性攻击的目的是寻找最佳的线性表示,且线性表示有一个较大的偏差ε.
目前对于密码理论与技术的研究主要分为两种,一种是是基于数学的密码理论与技术,其中包括公钥密码、分组密码、流密码、Hash函数、密钥管理、PKI技术及VPN技术等;另一种则是非数学的密码理论与技术,其中包括信息隐藏、量子密码、基于生物特征的识别理论与技术等. 本文所研究的分组密码属于基于基于数学理论的研究. 而作为密码学应用中的重要部分,对于密码的攻击,随着密码学的发展也在不断的取得重大突破. 攻击和抗攻击则是促进密码学发展的主要因素.
对于长度为2n比特的输入 , 和 均为n比特,||表示两个比特串的连接,1轮Feistel结构(见图2.2)通过如下方式计算输出 。其中, 表示两个比特串按位进行异或运算, 是轮函数.
Feistel模型的一个特点是其逆向操作和正向操作实质上具有相同的结构,而这唯一的不同是子密钥的使用次序相反;其另一个特点是每轮只对轮输入的一半进行变换这样似乎使得加密脱密变慢,但却使人们自由的选择f函数而不要求其可逆.Feistel模型的上述特点使其广泛的应用到了分组密码的设计中,如DES,不过人民在使用这种模型时结果上可能会产生变化,如LOKI、GOST、E2、FEAL、BLOWFISH等.
【Key Words】
Block cipher, linear attack, function, key, DES
1 引言
随着信息技术和互联网技术的发展,信息安全越来越受到人们的重视. 小到个人的账户密码,大到国家,商业集团的核心机密,密码学已经深入到了人们生活中的方方面面. 事实上,对于密码应用的历史可以追溯到公元前 400 年,例如凯撒密码. 虽然对于密码的使用如此之早,但直至第二次世界大战,对公众而言密码学依然十分陌生.
20世纪70年代以前,密码学主要在军队和政府中秘密的发展,民间对了解甚少. 近些年来,随着计算机,网络和通讯技术的发展,进入了全球信息化时代,密码学自然而言的进入商业化,越来越多学者开始关注密码学的研究,数据加密标准(Des)的公布,更使密码学在民间的研究水平得到整体提高. 从此密码技术越来越受人们的关注,不仅应用于数据加密等传统领域还在信息认证等方面有所发展,更成为解决信息安全问题的核心技术.
除了这两种模型,常见的分组密码的整体结构还有Lai-Massey结构、MISTY结构、广义Feistel结构,IDEA算法结构,在这里就不加以介绍了.
3分组密码的线性攻击方
3.1线性攻击方法的基本思想
线性攻击是由M. Matsui针对DES算法提出了一种非常有效的攻击方法. 事实上,线性攻击法对几乎所有的分组密码都适用,它是最重要的分组密码的攻击方法之一,也是现代密码学发展史中最有意义的成果之一.若介绍线性攻击就不得不先说明什么是对分组密码的攻击,即通过对已截获的密文的分析来推断明文和密钥.