加密系统边信道攻击测试方法技术方案

技术编号:9062365 阅读:196 留言:0更新日期:2013-08-22 01:25
加密系统边信道攻击测试方法,涉及信息安全技术。本发明专利技术包括下述步骤:在被控设备上输入特定的明文,使用被攻击密码系统加密,捕获功耗曲线,其特征在于,输入的明文为汉明重量很小的大数。本发明专利技术的有益效果是,攻击效率很高,且具有一定的普适性,用单一的屏蔽特殊数的方法无法防范,采用本发明专利技术的攻击测试有利于促进更高安全性能的信息安全系统的开发。

【技术实现步骤摘要】
加密系统边信道攻击测试方法
本专利技术涉及信息安全技术。
技术介绍
对RSA算法机制进行SPA攻击的基本思想就是区分功耗曲线中模乘运算与模平方运算的不同特征,据此破解出密钥。近年出现很多将功耗分析攻击方法与传统密码分析方法结合的攻击方法。如文献[57]将故障攻击与功耗分析结合,文献[57,58]中将选择明文与简单功耗分析结合,提取密钥。文献[59]将选择明文与时间攻击结合。文献[49,60]给出了基于中国剩余定理(ChineseRemaindertheorem,CRT)的实现算法的选择明文与SPA结合的攻击。在密码学或密码分析中,选择明文攻击是一种传统的密码分析方法。在这种攻击方法中,攻击者可以事先任意选择一定数量的明文,让被攻击的加密算法加密,并得到相应的密文。攻击者的目标是通过这一过程获得关于加密算法的一些信息,以利于攻击者以后更有效的破解由同样加密算法(以及相关钥匙)加密的信息。在最坏情况下,攻击者可以直接获得解密用的钥匙。这种攻击模式乍看起来并不现实,因为很难想像攻击者可以选择任意的信息并要求加密系统进行加密。不过,在公钥密码学中,这就是一个很现实的模式。这是因为公钥密码方案中,加密用的公钥是公开的,这样攻击者就可以直接用它来加密任意的信息。在已知明文攻击、已知密文攻击和选择明文攻击这几种方式当中,选择明文攻击是对密码系统最有威胁的一种。一个安全的密码系统必须能抵御选择明文密码攻击。将选择明文攻击与功耗分析攻击相结合,在被控设备上输入特定的明文或消息,运行被攻击密码系统加密或签名,得到相应密文或签名。在此过程中捕获功耗曲线,寻找其功耗特征与秘密信息的相关性,以便恢复密钥。参见S.M.Yen,W.C.Lien,S.J.Moon,andJ.C.Ha,”PoweranalysisbyexploitingchosenmessageandinternalcollisionsvulnerabilityofcheckingmechanismforRSA-decrytion.”Mycrypt2005,LectureNotesinComputerScience,vol.3715,pp.183-195,sep2005。Yen等人提出一种以N-1为特殊输入数据的选择明文SPA攻击。当以N-1这一特殊数据为明文进行SPA攻击时,S1、S2和M三种运算在整个模幂过程中出现的顺序存在着特定的规律。而且由于输入数据的特殊性,三种运算所对应的功耗差异明显,进行相同运算时,功耗接近。以密钥“10100”为例,描述明文为N-1时运算过程中的操作特性及数据特性。明文为N-1时,从左到右BR算法所对应的运算和数据如表1所示。表1密钥为“10100”,明文为N-1时的运算过程由表1中得出:在以“N-1”为明文进行操作过程中,各个模乘计算结束后,只存在三种情况:第一种情况,操作数是“1”,乘数是“N-1”,结果为“N-1”;第二种情况,操作数都是“N-1”,乘数是“N-1”,结果为“1”;第三种情况,操作数都是“1”,乘数都是“1”,结果为“1”。这三种情况我们分别用M、S1和S2来表示:在整个从左到右的BR算法的运算过程中,这些关系都是不变的。蒙哥马利算法作为一种模乘运算的快速算法,也被应用到RSA算法的SPA攻击过程中。运用蒙哥马利算法后,预处理操得到M'=(N-1)×RmodN=N-1和C'=1×RmodN=R,在上述从左到右的BR算法过程中,运算和数据结果如表2所示。表2密钥为“10100”,明文为N-1时的详细运算过程三种运算形式分别变为如下三种运算:在整个模幂运算过程中,这三种运算的顺序有着一定规律,它们的顺序排列规律如表3所示。表3三种运算间关系根据表3中所列,三种运算的序列存在着一定的规律。M运算只出现在第三列中,且是出现在两步运算中的第二步,这表明M运算只出现在密钥位为“1”时的运算中,表示乘法运算,而且是密钥位“1”结束时的运算。S1运算和S2运算不仅出现在第二列,而且在第三列的第一步运算中出现,这表明S1运算和S2运算不一定是某个密钥位结束时的操作。由表中第一行可知,若当前密钥位是以M运算结束的。那么,无论下一个密钥位是“0”还是“1”,都要进行S1运算。所以,M运算和S1运算总是成对出现的,而且M运算出现在S1运算之前,M运算之后绝不会直接出现S2运算;若当前密钥位是以S2运算或者S1运算结束的,无论下一个密钥位是“0”还是密钥位“1”都要进行S2运算。因为SPA攻击主要是从M运算、S1运算、S2运算的功耗差异中估计出密钥位的值。所以,不必过多考虑关于模幂算法实现的详细信息以及电路结构。由于N-1的特殊性,在整个模幂过程中执行每种运算时,输入的数据相同而且进行的操作相同(例如,每次进行M运算时,输入的数据都是R,进行的操作都是Z=R×(N-1)R×R-1modN)。因此,每种运算出现在功耗曲线中的波形都对应着一种固定的形式,而且三种波形都比较容易区分。根据上述三种运算间顺序的排列规律以及波形特征,当给定一条RSA密码芯片的SPA功耗曲线时,只要能够确定出某一轮的运算是M运算,那么就可以将这一轮与上一轮两轮运算看作是密钥位中的“1”;当连续出现n个S2运算时,就可以将前n-1个S2运算对应n-1个密钥位“0”;其余的均对应密钥位“0”。根据上述对应方法即可破解密钥。理论上,由于N-1的特殊性,M,S1和S2三种运算只要能够辨认出其中的一种即可破解出密钥。因为在整个的功耗曲线中,存在着三种波形,而且仅有三种,分别对应着M,S1,S2这三种运算,而且三种运算的出现次序又有着一定的规律。例如,判断出M运算所对应的波形,那么,密钥中所有的比特位“1”就找到了,其余位均为“0”,密钥就可以破解。图1是N-1为明文的SPA攻击示意图。在图1的功耗曲线中,按照上述理论推导,M运算总是和S1运算成对出现的,将M运算与它前一个运算组合在一起标为“1”;将两个连续的S2运算中的第一个S2运算标为“0”;将其余的运算均标为“0”。根据推导可以得到此次加密的密钥为“1001010”。以上攻击方法在真实环境中的攻击效果,Miyamoto等人在FPGA平台上实现了算法,并对攻击方法进行了验证。参见AtsushiMiyamoto,NaofumiHommaandTakafumiAoki,CHOSEN-MESSAGESPAATTACKSAGAINSTFPGA-BASEDRSAHARDWAREIMPLEMENTATIONS.FPL2008:3-40关于明文为N-1的SPA攻击实验与分析明文为N-1时的SPA攻击实验方案如下:1)随机产生一个密钥d;2)随机产生n组模数N0……Nn-1,并且每组明文M分别为N0-1……Nn-1-1,输入每一组数据模数N和明文M进行实验,每组数据采集m条曲线,得到n组功耗曲线;3)观察每一条功耗曲线的波形特征,对比算法中的运算特性,得到密钥信息;4)随机产生x个密钥d,对于每一个密钥d,重复步骤(2)和(3)。按照上述实验方案,对于明文为N-1时的数据,在功耗分析平台上进行了大量的实验。实验证明,N-1做明文对蒙哥马利模乘算法实现的RSA密码芯片做SPA攻击的效果是明显的。图2是实验后得到的功耗曲线图。通常本文档来自技高网...
加密系统边信道攻击测试方法

【技术保护点】
加密系统边信道攻击测试方法,包括下述步骤:在被控设备上输入特定的明文,使用被攻击密码系统加密,捕获功耗曲线,其特征在于,输入的明文为汉明重量很小的大数。

【技术特征摘要】
2012.03.31 CN 201210090687.31.加密系统边信道攻击测试方法,其特征在于,包括下述步骤:1)确定选择明文由选择明文通过蒙哥马利模乘算法得到输入明文,所述选择明文的取值为以下各数之任一:在汉明重量为1的数中:21023、21022、21021、21020、21019、21018;在汉明重量为...

【专利技术属性】
技术研发人员:陈艾东陈运许森
申请(专利权)人:成都信息工程学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1