DES算法差分电磁攻击及区分函数的选择
差分能量攻击样本选取方法
差分能量攻击样本选取方法摘要:为了解决差分能量攻击(dpa)中的样本选取问题,提出了一套样本选取方法。
方法从所使用的实验平台出发,通过理论分析提出样本选取方式和数量,然后进行实验验证。
以aes算法为例,分别进行了仿真实验和实测实验,验证了所提出的选取方法的准确性。
结果表明,仿真攻击的明文样本应该按顺序取,数量为一个全排列,而实测攻击应该直接采用大量随机数,两者对明文样本的要求存在较大差别。
关键词:差分能量攻击;样本选取;功耗曲线;高级加密标准中图分类号: tn492;tp309.2 文献标志码:aabstract: to resolve the problem with selecting the samples in the differential power attack (dpa), this paper proposed a set of samples selection method. based on the given experimental platform, the mode and amount of samples selection were proposed through theoretical analysis, and then were validated by experiments. for advanced encryption standard (aes), this paper put forward the samples selection methods for simulation test and practical experimentation, and proved that the proposed method was right. the results show that the simulation sample plaintext attack should betaken in sequence, with the quantity of a full array. and the attack should be measured directly using a large number of random numbers. there is a big difference in the explicit requirements of the sample.key words: differential power attack (dpa); samples selection; power trace; advanced encryption standard (aes) 0 引言能量攻击是应用最为广泛且最具威胁的旁道攻击技术之一,其基本思想是通过分析密码设备的能量消耗获得其密钥。
DES算法详解
1 DES算法的原理
1.1 DES算 法 的 基 本 框 架 DES对64位明文分组进行操作,其加密过程如图1所示。 (1) 给定一个明文X,通过一个固定的初始置换IP,置
根据以上分析可以得出:若 Ej和 Ej*是 S-盒 Sj的两个输 入,Sj 的输出异或是C'j,记E'j = Ej ⊕ Ej*,则密钥比特 Jj 出
现在集合test j(Ej,Ej*,C'j)之中,即:Jj ∈ test j(Ej,Ej*,C'j)。
2.2 确 定 密 钥 Jj的方法 给定任意一个三重组Ej、Ej*、C'j,能确定一个test j, 并
这里的Ej和Ej*是两个长度为6比特的串,C'j是 长 度 为 4 比 特的串。引入新的集合定义test
testj(Ej,Ej*,C'j) = {Bj ⊕ Ej | Bj ∈INj (E'j,C'j)}
即testj(Ej,Ej*,C'j)是Ej和集合INj (E'j,C'j) 中的每一个元 素取异或所得的异或值构成的集合。而Bj ⊕ Ej =Jj,从而有密 钥Jj属于集合test。
3 DES的差分密码分析攻击
3.1 3轮 DES的差分密码分析攻击 在以下的讨论中,假定攻击者采用的是选择明文攻击。 首先确定一个三重组。设L0R0和L0* R0*是 两 对 明 文 , 对
换X的比特从而获得X0,记X0=IP(X)=L0R0,这里的L0是X0的 前32比特,R0是X0的后32比特。
DES算法的详细分析
DES算法的详细分析DES(Data Encryption Standard)是一种对称加密算法,是在计算机领域最常用的加密算法之一、DES算法是由IBM的Horst Feistel于1973年研究开发的。
DES是一种分组密码,每个64位的明文分组经过一系列的置换和替换运算,最终被加密成一个64位的密文。
DES算法采用分组密码的模式,每个明文分组被分成64位,然后通过一系列的置换和替换操作,最终得到一个64位的密文。
DES算法中最重要的部分是Feistel网络结构,它是一种用于对称加密的结构,包含16轮的加密操作。
在每一轮中,明文分组被分成左右两部分,左半部分和右半部分经过不同的置换和替换操作后再结合在一起,形成下一轮操作的输入。
DES算法的核心是密钥调度算法和轮函数。
密钥调度算法用于生成每一轮的子密钥,通过对原始64位密钥进行置换和替换操作得到16个48位的子密钥。
轮函数是DES算法中的重要部分,它包括扩展、异或、S盒替换和置换操作,通过这些操作对每一轮的输入进行计算,最终得到输出。
DES算法的优点是加密速度快,实现简单,安全性较高。
然而,DES算法也存在一些缺点,主要是密钥长度太短,只有56位,这使得DES算法容易受到暴力破解攻击。
为了增强安全性,人们提出了3DES算法和AES算法。
3DES(Triple Data Encryption Standard)是DES的增强版,它使用了两个密钥对数据进行三次加密,增强了安全性。
3DES算法的密钥长度为112位或168位,比DES算法的56位密钥更加安全。
AES(Advanced Encryption Standard)是一种高级加密标准,目前被广泛应用于电子商务和互联网安全领域。
AES算法使用了更长的密钥长度(128位、192位或256位),并采用了更复杂的置换和替换操作,提高了安全性。
总的来说,DES算法是一种经典的加密算法,虽然在现代网络安全领域已经被3DES和AES算法所取代,但DES算法仍然被广泛应用于传统密码学和网络安全领域。
DES加密算法
DES加密算法1950年代末至1970年代初,密码学家发现了许多消息传递系统被成功入侵的案例。
为了应对这种威胁,美国国家安全局(NSA)与IBM公司合作开发了一种新的加密算法,即数据加密标准(Data Encryption Standard,简称DES)。
DES在20世纪70年代末被正式采纳,并成为许多国家及组织使用的标准加密算法,它不仅安全可靠,而且非常高效。
本文将对DES加密算法进行详细介绍。
一、DES加密算法简介DES加密算法是一种对称密钥算法,使用相同的密钥进行加密和解密。
在加密和解密过程中,DES算法将数据分成64位大小的数据块,并进行一系列置换、替换、混淆和反混淆等操作。
DES算法共有16轮运算,每轮运算都与密钥有关。
最终输出的密文与64位的初始密钥相关联,只有使用正确的密钥才能解密并还原原始数据。
二、DES加密算法的原理DES算法的核心是通过一系列的置换、替换和混淆技术对数据进行加密。
以下是DES算法的主要步骤:1. 初始置换(Initial Permutation)DES算法首先将明文进行初始置换,通过一系列规则将64位明文重新排列。
2. 轮函数(Round Function)DES算法共有16个轮次,每轮都包括以下几个步骤:a) 拓展置换(Expansion Permutation)将32位的数据扩展为48位,并进行重新排列。
b) 密钥混淆(Key Mixing)将48位的数据与轮次对应的子密钥进行异或运算。
c) S盒代替(S-box Substitution)将48位的数据分为8个6位的块,并根据S盒进行替换。
S盒是一个具有固定映射关系的查找表,用于增加加密算法的复杂性和安全性。
d) 置换函数(Permutation Function)经过S盒代替后,将得到的数据再进行一次置换。
3. 左右互换在每轮的运算中,DES算法将右半部分数据与左半部分进行互换,以实现加密算法的迭代。
4. 逆初始置换(Inverse Initial Permutation)最后,DES算法对经过16轮运算后的数据进行逆初始置换,得到最终的密文。
DES算法的详细分析
DES算法的详细分析DES(Data Encryption Standard)是一种对称加密算法,是美国联邦政府使用的加密标准。
它采用了分组密码的方式对数据进行加密和解密处理。
本文将对DES算法进行详细分析,涵盖算法原理、加密过程、密钥生成、弱点以及DES的安全性评估等方面。
1.算法原理:-将明文数据分成64位的分组,使用64位密钥进行加密。
-密钥通过密钥生成算法进行处理,生成16个48位的子密钥。
-明文分为左右两半部分,每轮加密时,右半部分与子密钥进行逻辑运算,并与左半部分进行异或操作。
-运算结果作为下一轮的右半部分,左半部分不变。
循环16轮后得到密文。
2.加密过程:-初始置换(IP):将64位明文按照预定的规则进行位重排。
-分为左右两半部分L0,R0。
-通过16轮的迭代过程,每轮使用不同的48位子密钥对右半部分进行扩展置换(E盒扩展),与子密钥进行异或操作,再通过S盒代换和P 盒置换输出。
-将经过迭代的左右两半部分进行交换。
-最后经过逆初始置换(IP^-1)后输出64位密文。
3.密钥生成:-密钥生成算法从初始64位密钥中减小奇偶校验位,然后使用置换选择1(PC-1)表对密钥进行位重排,得到56位密钥。
-将56位密钥分为两部分,每部分28位,并进行循环左移操作,得到16个48位的子密钥。
4.弱点:-DES算法的密钥长度较短,只有56位有效位,容易受到穷举攻击。
-由于DES算法设计时的数据量较小,运算速度较快,使得密码破解更加容易。
-DES算法对明文的局部统计特性没有进行充分的打乱,可能导致部分明文模式的加密结果不够随机。
5.DES的安全性评估:-DES算法的弱点导致了它在现代密码学中的安全性问题,已经不再适用于高强度加密要求的场景。
- 美国国家标准与技术研究所(NIST)发布了Advanced Encryption Standard(AES)来替代DES作为加密标准。
-DES算法可以用于低安全性需求的领域,或作为加密算法的组成部分。
des差分攻击
首先随机生成一对符合轮数要求(如2、3轮要求 )的明文,对该明文按照所选轮数进行加密,得到两组对应密文,分别求取异或,按照上文方法构造计数器,发现符合条件的密钥可能值在对应的计数器上加1,此过程重复5次(3次以上基本就不会有问题了),在各个计数器中寻找计数为5的对应值,则此数对应的6位0、1比特就是子密钥的6比特。
乍一看六位输入与四位输出貌似没什么关系。但事实上,对于同一个s盒具有相同输入异或的所有输入六比特组的输出四比特异或值有一定规律。
具体些说,对于输入异或相同的明文对B,B*仅有32组,而这32组输出异或却并不是均匀分布,而是仅分布在很少的几个四比特值中;也可以说具有相同输入异或且输出四比特异或也相同的六比特输入数量不多且分布不均匀。正是这种输入输出输出异或间的不均匀性可以被攻击者利用并破解密钥。
结束后输出:
1用户输入的密钥(0、1)
2攻击该轮的当前子密钥
3攻击结束时计数器情况
4得到的子密钥
执行截图
示例程序密钥均设为dianasun
一轮
可以看到当前的子密钥和我们得到的密钥相同,攻击有效。
二轮
结果如图
三轮
结果……
3.将得到的Ei、ki进行异或计算(模二加法),得到的48位结果每六比特一组,分为八组进入八个s盒子。
4.在s盒中,六比特第一第六比特控制行数,第二三四五位控制列数计算得一个0-15的十进制数,转换为四位二进制数输出。这样八个s盒共得到32位结果。
DES算法详细介绍
1973年5月15日,美国国家标准局(现在美国国家标准技术研究所(NIST)在联邦注册报上发表一则启事,公开征集用来保护传输和静止存储中的计算机数据的密码算法,这一举措最终导致了数据加密标准DES的出现。
DES采用分组乘积密码体制,它是由IBM开发,是对早期被称为Lucifer 密码体制的改进。
DES在1975年3月17日首次在联邦记录中公布,而且声明对比算法征求意见。
到1977年2月15日拟议中的DES被采纳为“非密级”应用的一个联邦标准。
最初预期DES作为一个标准只能使用10~15年,然而,出于种种原因,可能是DES还没有受到严重的威胁,事实证明了DES要长寿得多。
在其被采用后,大约每隔5年被评审一次。
DES的最后一次评审是在1999年1月。
但是,随着计算机计算能力的提高,由于DES的密钥过短,仅有56位,对DES的成功攻击也屡见报端。
例如:1999年1月,RSA数据安全公司宣布:该公司所发起的对56位DES的攻击已经由一个称为电子边境基金(EFF)的组织,通过互联网上的100000台计算机合作在22小时15分钟内完成。
在这种情况下,对于替代DES的要求日益增多。
最终,NIST于1997年发布公告,征集新的数据加密标准作为联邦信息处理标准以代替DES。
新的数据加密标准称为AES,关于AES的讨论将放在后面的4.5节。
尽管如此,DES的出现是现代密码学历史上非常重要的事件。
它对于我们分析掌握分组密码的基本理论与设计原理仍然具有重要的意义。
4.1.1DES算法描述DES是一个16轮的Feistel型结构密码,它的分组长度为64比特,用一个56比特的密钥来加密一个64比特的明文串,输出一个64比特的密文串。
其中,使用密钥为64比特,实用56比特,另8位用作奇偶校验。
加密的过程是先对64位明文分组进行初始置换,然后分左、右两部分分别经过16轮迭代,然后再进行循环移位与变换,最后进行逆变换得出密文。
加密与解密使用相同的密钥,因而它属于对称密码体制。
DES算法详解
DES算法详解简介 DES(Data Encryption Standard)数据加密标准。
DES是有IBM公司研制的⼀种对称加密算法,美国国家标准局于1977年公布把它作为⾮机要部门使⽤的数据加密标准。
DES是⼀个分组加密算法,就是将明⽂分组进⾏加密,每次按顺序取明⽂⼀部分,⼀个典型的DES以64位为分组,加密解密⽤算法相同。
它的密钥长度为56位,因为每组第8位是⽤来做奇偶校验,密钥可以是任意56位的数,保密性依赖于密钥。
概念 1、密钥:8个字节共64位的⼯作密钥(决定保密性能) 2、明⽂:8个字节共64位的需要被加密的数据 3、密⽂:8个字节共64位的需要被解密的数据加解密过程加密 1、明⽂数据分组,64位⼀组。
2、对每组数据进⾏初始置换。
即将输⼊的64位明⽂的第1位置换到第40位,第2位置换到第8位,第3位置换到第48位。
以此类推,最后⼀位是原来的第7位。
置换规则是规定的。
L0(Left)是置换后的数据的前32位,R0(Right)是置换后的数据的后32位; 具体置换规则有四步: 第⼀步:将明⽂数据转换为16*4的⼆维数组,形成⼀个数据空间。
第⼆步:数据左右对分,变成两个16*2的⼆维数组,然后每个数组各⾃都需要这样操作:从下往上,每两⾏形成⼀⾏数据。
分别得到两个8*4的⼆维数组。
第三步:新建⼀个16*4的⼆维数组(strNew1[16][4]),数组上半部分空间的数据存储左边数据块置换的结果,下半部分存储右边数据库置换的结果。
最后⼀步:把整个(strNew1[16][4])16*4的⼆维数组数据空间的按列进⾏置换到新的⼆维数组(strNew2[16][4]): 数组strNew1第2列放到数组strNew2第1列的位置; 数组strNew1第4列放到数组strNew2第2列的位置; 数组strNew1第1列放到数组strNew2第3列的位置; 数组strNew1第3列放到数组strNew2第4列的位置; 数组strNew2就是我们初始置换的结果。
DES加密算法应用
DES加密算法应用DES(Data Encryption Standard)是一种对称加密算法,广泛应用于信息安全领域。
它是一种块密码算法,将明文按照64位分组,并通过一系列的逻辑运算和替代置换操作,将其加密为64位的密文。
DES算法由于其高度的可靠性和保密性,被广泛应用于保护数据的传输和存储过程中。
一. DES加密算法原理DES加密算法由4个基本步骤组成:初始置换、16轮密钥迭代、逆初始置换和密钥生成。
1. 初始置换初始置换是将明文按照特定的顺序重新排列,以增加加密过程的复杂度。
此步骤又称为IP置换,共包含64位,其中第1、2、3...64个位对应着明文的第58、50、42...18个位置。
2. 16轮密钥迭代密钥迭代是DES算法的核心操作,它通过将初始密钥分解为16个子密钥,并将这些子密钥应用于每一轮加密过程中。
每个子密钥为48位,通过使用特定的置换和替代函数生成,保证每一轮密钥的唯一性和随机性。
3. 逆初始置换逆初始置换是对加密后的64位密文进行重新排列的过程,以得到最终的加密结果。
逆初始置换是初始置换的逆操作,确保了密文的正确重组。
4. 密钥生成密钥生成是将初始密钥经过置换、循环左移、压缩置换等操作生成16个子密钥的过程。
每个子密钥对应一轮加密,保证了DES算法的安全性和密钥的变化。
二. DES加密算法的应用领域DES加密算法广泛应用于信息安全领域,以下是其中的几个主要应用领域:1. 网络传输保护在网络传输中,数据信息需要经过加密保护,以防止被黑客截获或篡改。
DES加密算法通过对数据进行加密,确保了数据传输的安全性。
比如,HTTPS协议中常用的SSL加密就是使用DES算法保护敏感数据的传输。
2. 数据存储保护在数据存储中,DES算法可以将文件、数据库等敏感数据进行加密保护。
即使数据被非法获取,由于没有正确的解密密钥,黑客很难获取到有意义的明文信息。
这在各种系统中都有广泛应用,比如金融领域中的银行账号、密码存储、用户隐私数据等。
DES算法DFA攻击的差分差错位置判别方法
D S 法 D A攻击 的差 分差错位置判 别方法 E 算 F
王信敏 张 涛
Ⅵ NG n n, Xi mi ZHANG a To
中国石油大学 ( 华东 )经济管理学 院 , 山东 东营 276 50 1
Co lg f E o o c Ad n s a i n, i a Un v r i o to e m , n y n S a d n 5 0 1 C i a l e o c n mi mi it to Ch n i e st f Per lu Do g i g, h n o g 2 7 6 , h n e r y
最后两轮 的差分差错对 DE 算 法进 行了有效的 DF S A攻击 , 】 继 而 出现 了针 对其 他 分组 算 法 的 D A攻 击 , AE 、DE F 如 S I At
该算 法采 用 5 比特 密钥 ,4 6 6 比特 的分组长 度 , 对数 据进行 1 6
轮 的加密 。每轮变 换规则为 :
等 。D S 法的 D A攻击对 于差错 出现在最 后 2 的情 况只 E算 F 轮 需要几个选择密文即可成功实现攻击- z 。而对于差错出现在 中间轮数 , 该攻击也有很 高的成功率 。 D A攻击 的前提 是能够 准确 地选 择差错 的位 置 , 是成 F 这
D A 即差 分差 错 攻击 , D S F, 是 E 算法 的 一种 有 效攻 击 方 法 , 法通过在 D S 法最后几轮 产生一 个 1 该方 E算 比特 的差错 , 获得 同一个 明文 的两 个不 同密文 输 出 , 后使 用差 分分析 的 然 方法 来获得 第 1个 子密 钥 。该方 法首先 由B nh D m l 和 6 oe 、 e io l Lp n 出 用 于攻 击公 钥 算法 , io 提 , t 后来 Bhm和 Sa i 用 i a hm r 使
关于侧信道攻击及其对策的一点探讨_刘洋
[2] Stefan Dziembowski. Krzysztof Pietrzak. Leakage-resilient Cryptography. In 49th Annual IEEE Symposium on Foundations of Computer Science, FOCS 2008, Pages 293-302. IEEE Computer Society.
入侵型攻击通过特殊的工具对由于差分能量攻击dpa者需要的硬件资设备进行物理篡改需要打开卡片直接访问芯片源很小除了算法之外几乎无需了解其他的任表面如揭开智能卡的保护层直接在数据总线何信息非常有效差分能量攻击成为最广泛的上连线观察数据传输
关于侧信道攻击 及其对策的一点探讨
刘洋 联通系统集成有限公司信息安全中心
一、概述
智能卡在当今社会中是一种极为普及的密码设备,拥 有强大的认证与存储重要信息的功能。智能卡的主要优势 在于能够把内部数据如密钥,在内部处理,仅把处理结果 公开。但是,在使用输入信息和密钥所进行的处理过程 中,智能卡会产生诸如能量消耗或者电磁散射之类的信息 泄漏,基于此,最近出现了一些新的攻击手段,攻击者有 可能利用它们获取保存在智能卡内部的数据,如侧信道攻 击。当然,侧信道攻击并不仅限于智能卡。
而目前为止,与各种攻击相应的对策也已研究至一定 程度。这些对策主要分为两类:硬件/物理对策和履行对 策。硬件/物理对策试图阻止攻击者知道未改变的物理输 出,如一个组织可能考虑将他们重要的密码设备放置于一 个“Faraday”笼内来阻止电磁辐射。履行对策自身又分 为两类:隐藏对策和化妆对策。隐藏对策是将所有输入的 输出都变得相似,化妆对策是把处理的数据用某些方式修 改,但是不影响最终结果。
DES算法详细介绍
DES算法详细介绍1973年5⽉15⽇,美国国家标准局(现在美国国家标准技术研究所(NIST)在联邦注册报上发表⼀则启事,公开征集⽤来保护传输和静⽌存储中的计算机数据的密码算法,这⼀举措最终导致了数据加密标准DES的出现。
DES采⽤分组乘积密码体制,它是由IBM开发,是对早期被称为Lucifer 密码体制的改进。
DES在1975年3⽉17⽇⾸次在联邦记录中公布,⽽且声明对⽐算法征求意见。
到1977年2⽉15⽇拟议中的DES被采纳为“⾮密级”应⽤的⼀个联邦标准。
最初预期DES作为⼀个标准只能使⽤10~15年,然⽽,出于种种原因,可能是DES还没有受到严重的威胁,事实证明了DES 要长寿得多。
在其被采⽤后,⼤约每隔5年被评审⼀次。
DES的最后⼀次评审是在1999年1⽉。
但是,随着计算机计算能⼒的提⾼,由于DES的密钥过短,仅有56位,对DES的成功攻击也屡见报端。
例如:1999年1⽉,RSA数据安全公司宣布:该公司所发起的对56位DES的攻击已经由⼀个称为电⼦边境基⾦(EFF)的组织,通过互联⽹上的100000台计算机合作在22⼩时15分钟内完成。
在这种情况下,对于替代DES的要求⽇益增多。
最终,NIST于1997年发布公告,征集新的数据加密标准作为联邦信息处理标准以代替DES。
新的数据加密标准称为AES,关于AES的讨论将放在后⾯的4.5节。
尽管如此,DES的出现是现代密码学历史上⾮常重要的事件。
它对于我们分析掌握分组密码的基本理论与设计原理仍然具有重要的意义。
4.1.1DES算法描述DES是⼀个16轮的Feistel型结构密码,它的分组长度为64⽐特,⽤⼀个56⽐特的密钥来加密⼀个64⽐特的明⽂串,输出⼀个64⽐特的密⽂串。
其中,使⽤密钥为64⽐特,实⽤56⽐特,另8位⽤作奇偶校验。
加密的过程是先对64位明⽂分组进⾏初始置换,然后分左、右两部分分别经过16轮迭代,然后再进⾏循环移位与变换,最后进⾏逆变换得出密⽂。
面向DES加密算法的差分功耗分析攻击方法
Dif r n i l we tc ay i o fe e ta Po r Ata k An l ssf rDES Co eAl o ih d g rt m
S i a Z UN Ha. o . HAO Qin H n 1i t a g , E Xu . a (. e to n n iern , d ac n iern olg , hj z u n 5 0 3 Chn ; 1 D p. f Gu s gn eig Or n n eE gn eigC l e S ia h a g0 0 0 , ia E e i 2 De to o ue n ie r g O d a c n iern l g , hj z u n 5 0 3 Chn ) . p. f mp tr gn ei , r n n eE gn eigCol e S ia h a g0 0 0 , ia C E n e i A s atBae nsd h n e atc s h oya dDE o eag r h tepoet ar s u t o ec luaig b t c: sdo iec a n l t k e r n Sc d loi m,h rjc r e t i c d ac lt r a t t c i o N me n
smpig t p t it u u i n ac lts i v rg o rv le a l i s o. no 2 s b nt a d c luae t a ea e p we au .Me n hl, h rjc o sre eh r n me s s a w i te poet b ev swh te e e ie t ek p era a yp it o edfee t l o rc ret d ew eh rtepe iu ert e su t ni vd n a sa p a t n ons ft i rni we u v oj g h te h rvo ssce k y asmpi s p h f ap u o
DES算法详细介绍
DES算法详细介绍DES(Data Encryption Standard)即数据加密标准,是一种对称加密算法,于1977年成为美国联邦政府的标准加密算法。
DES算法主要用于保护计算机网络和数据的机密性。
DES算法使用一个称为“密钥”的64位的输入来对输入的64位数据进行加密或解密。
密钥在加密和解密过程中是相同的,这是DES的对称性质。
DES算法工作在分组密码模式下,将64位输入数据分为两个32位的数据块,然后分别进行加密和解密操作,最后再将两个数据块合并。
简单来说,DES加密算法可以分为四个主要步骤:初始置换、加密轮函数、密钥生成和反置置换。
初始置换:首先,将64位的输入数据按照一个特定的排列顺序进行置换,将原始的数据乱序,生成一个新的64位数据。
这个置换的目的是使输入数据更难以被破解,增加了密码的强度。
加密轮函数:接下来,将初始置换得到的数据分割成两个32位的数据块,分别称为左半部分L0和右半部分R0。
然后,通过一系列的加密轮函数对L0和R0进行加密,每个加密轮函数输入32位的左半部分和48位的子密钥,输出32位的结果。
加密轮函数包括扩展置换、异或操作、S 盒代替和P盒置换。
扩展置换:将32位的数据R0按照一种特定的排列扩展成48位,使得每个数据位的重要度更加均衡。
异或操作:将扩展得到的48位数据与子密钥进行按位异或操作,增加密码的复杂度。
S盒代替:将得到的异或结果按照8个6位的分组进行代替操作,也就是将每个6位的分组通过8个不同的S盒进行代替,即将6位的输入映射成4位的输出。
P盒置换:将S盒代替后得到的32位数据做一次置换,打乱数据的顺序。
密钥生成:在加密轮函数中需要使用子密钥进行异或操作。
DES算法通过对64位的密钥进行置换和选择操作,生成16个48位的子密钥。
子密钥的生成是DES算法中一个关键的步骤,也是加密过程中最耗时的步骤之一反置置换:最后,将经过加密轮函数后的数据进行反置置换,得到最终的加密结果。
基于3DES密码算法的差分能量分析攻击方法的研究
0 引言
随着密码设备的普及,人们越来越关注其安全
性,一般会在设备中嵌入一些密码算法,DES 是最 常见的密码算法之一,其改进的 3DES 算法在很多 领域都有应用,因此对 3DES 的研究很有现实意义。
基金项目: 本课题得到国家自然科学基金资助(项目编号41572347) 作者简介: 周悦(1979–),女,高级工程师,主要研究方向:软件性能测试、安全测试;文毅(1989–),男,初级工程师,主要研究方向: 侧信道攻击、错误注入攻击;杨旭(1996–),男,本科生,主要研究方向:安全测试;王秀君(1978–),女,信息系统项目管理师,主要研究 方向:项目管理、软件测试、硬件安全检测;李梅(1969–),女,教授,主要研究方向:信号处理、物联网技术。
DPA 攻击的策略一般由以下 5 个步骤组成: (1)选择算法的某个中间值,用函数 f (d, k) 表 示,d 通常是明文(或密文),k 代表的是密钥的一 部分。满足这些条件的中间值即可用来恢复 k。 (2)测量能量消耗。记录大量数据值 d 加密(或 解密)时的能量消耗曲线。数据值 di 所对应的能量 消耗的曲线用 ti (ti,1,,tt, T ) 来表示,其中 T 代表着 这条能量迹的长度。对于 D 个数据分组来说,用一 个 D×T 的矩阵 T 来代表这些数据值 di 的能量迹。 (3)计算假设的中间值。对密钥进行假设猜测, 用向量 k (k1, k 2,, kk) 来表示,然后计算出假设的 中间值 vi, j f (di, kj) (i 1,, D, j 1,, K ) ,用大小 为 D×K 的矩阵 V 来表示。设备执行操作时只使用了 K 中的一个值,我们用 kck 来表示设备用到的密钥, DPA 攻击的目标就是找出经过 D 次密码运算矩阵 V 中被处理的那列,进而得到 kck 。 (4)将假设中间值映射成能量消耗值。利用能 量模型将已经假设好的中间值 V 映射成相应的能量 消耗值矩阵 H。我们在实验中采用的是汉明重量模 型[3],通过映射得到 hi, j HW (vi, j) ,映射的效果越 好,DPA 攻击就越成功。 (5)对比分析能量迹以及能量消耗值。比较矩 阵 H 和 T 相应列的值,即比较 hi 与 tj 。事实上就是 拿假设的能量消耗来与设备实际产生的能量迹进行 比较,用一个 R 矩阵来表示比较的结果,矩阵的大 小是 K×T,并且其中的每一元素 ri, j 代表着 tj 与 hi 的 相关性结果。计算相关系数 ri, j 如公式(1)所示, 得到的 ri, j 值越高,就说明 tj 与 hi 的匹配性越好。 通过公式(1)可形成多条相关性曲线,每一条 曲线对应一个密钥假设。相关系数矩阵出现的最大 值对应正确的密钥假设,在该曲线上表现为一个明
DES的描述
关于DES1、DES的描述为了建立适用于计算机系统的商用密码,美国商业部的国家标准局NBS于1973年5月和1974年8月两次发布通告,向社会征求密码算法。
在征得的算法中,由IBM公司提出的算法lucifer中选。
1975年3月,NBS向社会公布了此算法,以求得公众的评论。
于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(American National Standard Institute,ANSI) 承认。
1977年1月以数据加密标准DES(Data Encryption Standard)的名称正式向社会公布。
随着攻击技术的发展,DES本身又有发展,如衍生出可抗差分分析攻击的变形DES 以及密钥长度为128比特的三重DES等。
2000年1月19日,由电子边疆基金会组织研制的25万美元的DES解密机以22.5小时的战绩,成功地破解了DES加密算法。
DES已逐渐完成了它的历史使命。
DES是一个分组加密算法,它以64位为分组对数据加密。
64位一组的明文从算法的一端输入,64位的密文从另一段输出。
它是一个对称算法:加密和解密用的是同一个算法。
密钥通常表示为64位的数,但每个第8位都用作奇偶校验,可以忽略,所以密钥长度为56位。
密钥可以是任意的56位的数,且可在任意的时候改变。
DES算法只不过是加密的两个基本技术——混乱和扩散的组合,即先代替后置换,它基于密钥作用于明文,这是一轮(round),DES在明文分组上实施16轮相同的组合技术。
如下图所示:2、算法概要DES对64位明文分组进行操作。
通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长。
然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密钥结合。
经过16轮后,左、右半部分合在一起经过一个末置换(初始置换的逆置换),算法就完成了。
在每一轮中,密钥位移位,然后再从密钥的56位中选出48位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
明 重 量 全 为 0对 应 的 电 磁 信 息 泄 露 曲 线 映 射 到 中 , 将 中 间 值 各 个 比 特 位 的 汉 明 重 量 全 为 1对 应 的 电 磁 信 息泄 露 曲线 映射 到 S 中 ,剩 下 的 电磁 信 息 泄 露 曲 线 映 射到 S 。 G — D E MA 区 分 函 数 通 过 检 测 中 间 值 各 比 特 位 的 汉 明重 量 之 和与 阈值 的大小 关 系对 电磁 泄露 山 I 线 进 行 分组 ,当中 间值 的各 比特位 汉 明重 量之 和 小 丁 n / 2时 , 将 对 应 电 磁 信 息 泄 露 曲 线 映 射 到 中 ; 大于 t t / 2 , 将 电磁 信 息泄露 曲线映 射 到 S . 中 ;剩 下 的 电 磁 信 息 f I 1 f 露
别分 到集合 S 。 和集 合 S 。 : S l i = f I H[ D( G, ) =1 , 1 ≤i ≤N} 正 确猜 测 密 钥 对应 的分 组 正 确 , 差值 最 大 ; 而 错 误 密钥 对 应 的差 值很 小 ; 且 非该 中间值 出现 的 时刻 , 可 认 为是 随机 数 , 差 值 近 似 为 0。因 此 , 根 据 差 分 曲 线 上 出现
Ap p l i c a t i o n o f I n t e gr a t e d Ci r c u i t s
2 DE MA 的 区 分 函数 构 造
D E MA是 采 用 均 值 差 法 对 密 码 芯 片 运 行 过 程 中 的 电
多 比特 D E MA 攻 击 的 区 分 函 数 构 造 方 法 有 以 下 两
比 特 的 汉 明 重 量 是 0还 是 1 , 将 相 对 应 的 功 耗 曲 线 分
S “ = { I H[ D( C , ) 6 】 = 0, 1 ≤i ≤N}
密 码 芯 片 泄 露 的 电 磁 信 息 依 赖 于 当 前 被 处 理 的 数
据 , 在 进 行单 比特 D E MA 攻 击 时 , 仅 仅 利 用 个 比 特 位 对 电磁泄 露 曲线进行 分组 , 由于不 同电磁泄 露 } H l 线 对 该 比特 位 的 数 据 相 关 性 不 同 , 从 而 导 致 其 所 对 应 的 仃 川 信 号大 小 不 同 。 当 该 比 特 位 的 有 用 信 号较 小 时 , 任 噪 声 的
< >
2
=
2
圈 瑁
2. 1 单 比 特 DE MA 攻 击 方 法
曲线 映 射 到 5 。
2
奁 南… 卤… 幽 结 果
图 2 差 分 电 磁 分 析 的 原 理 图
3 攻 击 实 验 及 结 果 分 析
为 了采集 D E S算 法 运 行 时 的 电 磁 泄 露 息 , 将 DE S 算法 的 硬件 描述 下 载到 F P G A 开发 板 L, 利 川 近 场 探 头 采集 D E S密 码 芯 片 工 作 过 程 叶 1 的 电磁 泄露 信息 。 为 了
比特 位 的 汉 明重 量构 造 区 分 函数 进 行 D E MA 攻 击 的 方
( 1 ) A O N — D E MA 区 分 函 数 : 将 电 磁 信 息 泄 露 曲 线 映 射
到 以 下 3个 集 合 中 :
S = { 1 日【 D( C 』 , ) 0 , 1 ≤i ≤N} S l i = {  ̄I H[ D ( C , ) ] = n , 1 ≤i ≤N}
对比 D E S密 码 芯 片 的 3种 D E MA 攻 击 方 式 的 似 峰 脱 象
பைடு நூலகம்
单 比特 D E MA 攻 击 区 分 函 数 的 构 造 过 程 : 攻 击 者 选 择一 个与 明文 G 和 密 钥 相 关 的 中 间 值 D( C , ) , 对 其 进 行 汉 明 重 量 建 模 日( ・ ) , 并 根 据 汉 明 重 量 模 型 值 的 大 小 将对 应 的功耗 曲线分 到不 同的集合 中 。 对 于 单 比特 D E MA 攻 击 , 攻 击 者 将 根 据 中 间 值 的 某
一
以及攻击 成功 率 , 本 文 选 择 DE S密 码 算 法 第 1个 S盒 输 出 的 第 1位 进 行 单 比 特 DE MA 攻 击 , 选 择 第 1个 S盒 输
出的 4 b i t 进 行多 比特 D E MA 攻 击 . . 3 . 1 DE S 密 码 芯 片 的 单 比特 DE MA 攻 击
种[ 6 1 :
磁 信息 泄漏 进行 统计 分析 , 从 而 得 到 获 取 密 码 算 法 的 密 钥 信 息 。差 分 分 析 的 一 般 步 骤 如 图 2所 示 。根 据 各 组 猜 测 密 钥 相 对 应 的 假 设 中 间 值 的 汉 明 重 量 将 实 际 电 磁 曲 线 分 为两个 集合 , 分 别对 它们求 均值 , 然 后做 差处 理 , 得 到 各 组 猜 测 密 钥 对 应 的 差 分 电 磁 曲线 。 其 中 , 选 择 一 个
和 构 造 区 分 函 数 进 行 DE MA 攻 击 的 方 法 称 为 多 比 特
D E MA 攻 击
S 1 = I
D C
≤ ≤ Ⅳ
S = I H D C AON
≤ ≤ Ⅳ
—
D E MA 区 分 函 数 是 将 中 间 值 各 个 比 特 位 的 汉
=
{ J g S o , S l }
f 2 ) G _ D E MA 区 分 函 数 : 将 电 磁 信 息 泄 露 曲 线 映 射 到 以 下 3个 集 合 中 :
S = pl H D C
≤ ≤ 7 、 『
法 称 为 单 比 特 DE MA 攻 击 , 选 择 多 个 比特 位 汉 明 重 鼍 之