针对RSA密码算法M-ary实现的侧信道攻击方法

文档序号:8474971阅读:459来源:国知局
针对RSA密码算法M-ary实现的侧信道攻击方法
【技术领域】
[0001] 本发明涉及密码算法分析检测领域,尤其涉及一种针对RSA密码算法中幂剩余计 算M-ary实现时乘法输出的侧信道能量分析攻击的方法。
【背景技术】
[0002] 随着信息和分析电路技术的发展,对硬件密码电子设备的破解不再单纯的停留在 协议和算法上,而是从其处理数据的过程中泄露的信息入手、进行破解。硬件密码电子设备 在处理信息的工程中存在能量、电磁、错误和时间等信息的泄露,利用这些泄露的信息对密 码电子设备进行攻击,就是所谓的侧信道攻击(Side Channel Attacks),侧信道攻击可分 为能量分析攻击、电磁攻击和错误攻击等,其中能量分析攻击因效率较高,成为侧信道的主 要手段。 侧信道能量分析攻击是通过采集加密芯片等硬件密码电子设备在进行加、解密或签名 等操作时产生的能量消耗,利用密码学和统计学原理等,分析和破译密钥信息的一种攻击 方式,侧信道能量分析攻击又分为简单能量分析攻击(Simple Power Analysis,SPA)、差分 能量分析攻击(Differential Power Analysis,DPA)和相关性能量分析攻击(Correlation Power Analysis,CPA)〇 在侧信道能量分析攻击中,CPA和DPA相比SPA具有更强的攻击性,所以能量分析攻击 中比较常用的是CPA和DPA。 其中,DPA攻击的过程如下: (1) 随机选择N组不相同明文或密文Mi ( i e [1,N])进行加/解密运算,采集每组明 文进行加密运算时设备产生的能量曲线Ti (t),te {1,…,k},其中k为能量轨迹的采样 点数。 (2) 选择密钥K1Q e Ω,Ω为密钥空间),计算在KjP Mi条件下,密码算法进行加密 运算时在被攻击点产生的中间值Dia。 (3) 根据中间值Du确定选择函数F(Mi,K1),根据选择函数将凡⑴分为两个子集Stl 和S1,定义式如下: S0= ITi (t) IF (Mi, K1) =0} S1= ITi (t) IF (Mi, K1Ml (4) 计算每个采样点上两个子集的能量平均之差,如
【主权项】
1. 针对RSA密码算法中幕剩余计算M-ary实现时乘法输出的侧信道能量分析攻击的方 法,其特征在于,对使用M-air实现的RSA密码算法实施侧信道能量分析过程中,攻击对象 为乘法输出值。
2. 根据权利要求1所述的选择乘法输出值为攻击对象进行RSA密码算法幕剩余计算 M-ary实现侧信道能量分析的方法,其特征在于,对幕剩余计算M-ary实现的每轮攻击时, 选择乘法输出(轮输出)作为攻击点,即。=。*R/ (mod脚的返回值作为攻击对象,该里 的乘法输出值。是当第i轮时,轮输入值为C1_1,轮指数K/长度为Mbit时对应的攻击对 象,有Ci=(Cw)非'*R/ (m〇d脚。
3. 根据权利要求1或2所述的选择乘法输出值为攻击对象进行RSA密码算法幕剩余 计算M-ary实现的侧信道能量分析的方法,其特征在于,选择每轮乘法输出值为对象对RSA 密码算法的CPA侧信道能量分析。
4. 根据权利要求3所述的选择乘法输出值为攻击对象进行RSA密码算法幕剩余计算 M-ary实现的侧信道能量分析的方法,其特征在于,选择每轮乘法输出值为对象对RSA密码 算法的CPA侧信道能量分析步骤如下: (1) 每次输入一个底数Pi,1G{〇, 1,…,A-1},共输入A组;用密钥(K,N)进行RSA密 码运算,采集能量轨迹,即采集测量时间对应的能量样本信息,建立采样能量消耗矩阵; (2) 选择乘法输出值作为攻击对象; (3) 确定能量消耗相关性模型; (4) 确定攻击对象和模型后,从第一轮开始,依次猜测每轮M比特长的指数,计算轮运 算中乘法输出值,确定中间值矩阵; (5) 利用(4)的中间值和中间值矩阵,根据相关性模型,求出仿真能量消耗值和仿真能 量消耗矩阵; (6) 计算仿真能量消耗矩阵与采样能量消耗矩阵的线性相关系数,得到正确的猜测轮 指数; (7) 从第1轮到第S轮,重复步骤(4)至(6),攻击得到所有轮的轮指数,再按二进制比 特位从左到右串接起来,就得到完整的指数密钥。
5. 根据权利要求4选择乘法输出值为攻击对象进行RSA密码算法幕剩余计算M-ary实 现的侧信道能量分析的方法,其特征在于,利用CPA进行步骤(4)的具体步骤如下: (1)猜测第i轮M比特的指数值ku=j,jG{0,1,…,2M-U; 似用Pi计算R/=化)J(mod脚j=0,…,2"-1 ; 做用R/=(Pi)嘴第i-1轮的输出CH,对2"个指数猜测值分别进行第i轮运算,确定 2M个猜测值对应的乘法输出C1^1,其中
对A组底数P进行幕剩余操作时,依次计算ku对应的乘法输出值,得到中间值矩阵
6. 根据权利要求4选择乘法输出值为攻击对象进行RSA密码算法幕剩余计算M-ary实 现的侧信道能量分析的方法,其特征在于,利用CPA进行步骤(5)的具体步骤如下: (1) 利用能量消耗相关性模型,可将步骤(4)中所计算出的乘法输出值C^i所对应的 仿真能量消耗为;hui=H(Cui),即第1组底数第i轮第j个猜测轮指数值K/对应的仿真能 量功耗;H(x)是汉明重量模型,即计算X中比特位值为1的个数; (2) 对A组底数进行RSA密码运算,确定共2"个轮指数猜测值对应的仿真能量消耗矩 阵为:
7. 根据权利要求4选择乘法输出值为攻击对象进行RSA密码算法幕剩余计算M-ary实 现的侧信道能量分析的方法,其特征在于,利用CPA进行步骤(6)的具体步骤如下: 对步骤(1)的采样能量消耗矩构
巧步骤巧)的仿真能量消 耗矩阵H分别计算前者第j列和后者第t列的相关系数:
;其中Wfi表示为第1个底数、第t个时间的对应的采样能量消耗值,T为能量轨迹中的采样 时间点个数,为矩阵H第j列的平均值,为矩阵W中第t列的平均值,Pit表示第1 个猜测密钥对应的仿真能量消耗与第t个时间点采样能量消耗之间的线性相关系数。
8. 计算所有列与列之间的相关系数,则得到了仿真能量消耗和实际采样能量消耗间的 相关矩阵
,选取R中的最大值r。,v=maxh,t),r。,对应 的第i轮猜测轮指数IC为正确轮指数。
【专利摘要】本发明公开了一种针对RSA密码算法中幂剩余计算M-ary实现时乘法输出的侧信道能量分析攻击的方法,其核心在于幂剩余计算用M-ary实现时,以乘法输出作为攻击对象实施CPA攻击。包括以下步骤:(1)采集信号,建立采样矩阵;(2)选择乘法输出作为攻击对象;(3)确定相关性模型;(4)猜测轮指数值,计算出中间值矩阵;(5)计算仿真能量消耗矩阵;(6)计算(1)和(5)所确定矩阵之间的线性相关系数,攻击出正确的轮指数。(7)重复(4)至(6),攻击得到所有正确的轮指数,串接后得到完整指数。本发明的方法给出了一种新的M-ary侧信道攻击方法,增强了RSA密码算法分析攻击的灵活性、有效性和成功率。
【IPC分类】H04L9-06
【公开号】CN104796250
【申请号】CN201510168212
【发明人】吴震, 杜之波, 饶金涛, 王敏, 李大为, 罗鹏, 郑晓光, 刘剑峰
【申请人】成都信息工程学院, 成都芯安尤里卡信息科技有限公司, 国家密码管理局商用密码检测中心, 北京中电华大电子设计有限责任公司
【公开日】2015年7月22日
【申请日】2015年4月11日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1