在处理设备中执行加密操作的方法技术

技术编号:29039699 阅读:28 留言:0更新日期:2021-06-26 05:49
本公开的各实施例涉及一种在处理设备中执行加密操作的方法。使用密钥执行在由给定数目的字形成的第一操作数与的第二操作数之间的迭代操作。对于密钥中的每个位,迭代操作包括:根据位的值将第一操作集合和第二操作集合中的一个操作集合施加到第一操作数和第二操作数,并且基于控制位值有条件地交换第一操作数和第二操作数的字,控制位值通过将逻辑异或函数施加到随机位而被获取。函数施加到随机位而被获取。函数施加到随机位而被获取。

【技术实现步骤摘要】
在处理设备中执行加密操作的方法


[0001]本描述涉及用于在处理设备中对数据执行加密操作的技术。
[0002]可以应用各种实施例,诸如使用加密或数字签名方案的智能卡、 微控制器、机顶盒等。

技术介绍

[0003]加密协议是抽象的或具体的协议,它们执行与安全相关的功能并 且应用加密方法,通常作为加密原语的序列。
[0004]在使用加密算法的设备(例如,实现加密算法(诸如,ECC或 RSA)的微控制器)的侧信道攻击(Side Channel Attacks)的防护领 域中,已知竖直侧信道攻击(SCA),其中攻击者可以使用设备对任 意数据(输入)进行加密,以获取由加密算法使用的加密密钥。攻击 者在已知输入数据的加密期间记录侧信道信息,该侧信道由功耗、电 磁辐射或其它类似的量表示。
[0005]侧信道与由设备处理的数据链接,这些数据是加密密钥并且攻击 者的数据作为输入,因此表示已知数据。
[0006]攻击者利用不同的已知输入数据和恒定的未知密钥记录许多“踪 迹(traces)”,对一部分加密密钥的值进行假设,并且使用统计方 法使用踪迹来验证这种假设。为了施加这种统计方法,攻击者需要使 用许多踪迹,每个踪迹具有不同的已知输入数据和恒定密钥。
[0007]然而,在非对称加密术中,尽管在计算期间使用的数据发生了变 化,但是还是有数学方法可以为每次执行修改密钥,使得操作结果不 会发生变化。因此,由于密钥不再是恒定的,攻击者无法收集许多踪 迹。
[0008]因此,当攻击者需要在单个踪迹上工作时,攻击者会部署所谓的 水平攻击(Horizontal Attack)。
[0009]在要保护的设备(例如,处理单元或微控制器)中,通常有:存 储器,存储输入/输出数据和中间值;控制器,从RAM存储器读取字 并且将其存储到寄存器中,然后“调用(call)”寄存器上的乘法器 (例如,对存储在寄存器中的操作数执行乘法操作的乘法器单元)。 乘法器将操作数相乘并且将结果写入RAM存储器。在这种情况下, 超过95%的计算是在乘法器内完成的。
[0010]为此,在图1中示出了处理单元或设备10,处理单元或设备10 包括控制器单元或电路11,控制器单元或电路11从存储器13(例如, RAM存储器)读取图1中以a和b表示的字,并且将它们存储到设 置在控制器单元11中的寄存器中,然后对寄存器的内容(字a、b) 调用乘法器单元12。乘法器单元12对存储在控制器11的寄存器中的 操作数a、b执行乘法操作。乘法器12将操作数相乘,例如执行模n 乘法R=a
·
b mod n,并且将结果R写入RAM存储器13。
[0011]参考常规处理设备架构,控制器单元11和乘法器12可以对应于 控制器单元和处
理器单元(诸如CPU)的ALU,而存储器13可以相 对于处理设备10在外部。应当注意,在变型实施例中,这种元件11、 12、13可以是实现的硬件或软件或其各种组合。
[0012]在非对称加密术中,可以使用例如涉及实现模幂的循环的RSA (里夫斯特

沙米尔

阿德曼(Rivest

Shamir

Adleman))加密术,或 涉及实现椭圆曲线标量乘法的循环的ECC(椭圆曲线加密术(EllipticCurve Cryptography))。
[0013]在ECC加密术中,使用了主循环迭代地实现给定操作数P与标 量k(密钥)的标量乘法。首先,在这种循环之外,将第一操作数Q0初始化为无穷大点,并且将第二操作数Q1设置为给定的操作数P。
[0014]在主循环中处理完密钥k的所有位之后,将第一操作数Q0作为 k*P的结果返回。如以下指令组(1)中所示,实现了这种循环,该 循环表示密钥位值k
i
的迭代:
[0015]L1.if k
i
=0:
[0016]L2.Q1=Add(Q1,Q0)
[0017]L3.Q0=Double(Q0)
[0018]L4.else:
[0019]L5.Q0=Add(Q0,Q1)
[0020]L6.Q1=Double(Q1)
ꢀꢀꢀꢀꢀꢀ
(1)
[0021]其中k
i
是密钥k的第i个位,Q0、Q1是从存储器13或从控制器单元 11的对应的寄存器读取的第一操作数和第二操作数,将椭圆曲线点加 法和椭圆曲线点加倍操作相加并加倍。Q1、Q0是以投影格式(X,Y,Z) 表示的点,例如(x,y)=X/Z,Y/Z。在变型实施例中,可以使用其 它类型的投影坐标,诸如(x,y)=X/Z2,Y/Z3。
[0022]因此,点乘法的主循环(1)包括:
[0023]对于密钥k的每个位k
i
,特别是(如果该位的长度为1位) 每个位i,
[0024]如果这种位K
i
为零,则将第二操作数Q1(例如写在存储器 13的相同的地址中)对应于操作数变量设置为等于两个操作数Q1、 Q0的总和并且第一操作数Q0乘以2,
[0025]否则,第一操作数Q0等于两个操作数Q1、Q0的总和并且第 二操作数Q1乘以2。
[0026]而且,以RSA为例,主循环由以下指令组(2)实现,它们表示 每个密钥位k
i
的迭代:
[0027]M1.if k
i
=0:
[0028]M2.q1=s*q1[0029]M3.s=s*s
[0030]M4.else:
[0031]M5.q0=s*q0[0032]M6.s=s*s
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0033]其中s是被称为平方的值,q0或q1是从存储器13读取的操作数,q0通常表示模幂的基数,q1是伪整数值。
[0034]因此,点乘法的RSA主循环包括:
[0035]对于密钥k的每个位k
i
,特别是每个位k
i

[0036]如果这种位k
i
为零,则将第二操作数q1设置为等于第二操 作数q1乘以平方s,s*q1,并且将平方s设置为等于平方乘以其本身 s*s,
[0037]否则,将第一操作数s*q0设置为等于第一操作数q0乘以平 方s,s*q0,并且平方s被
设置为等于平方乘以其本身,s*s。
[0038]通常会确定三个水平攻击族:
[0039]对秘密位操纵的攻击
[0040]对地址的攻击
[0041]对数据的攻击
[0042]例如,如果攻击者可以理解,则基于读/写模式,对于具有乘法循 环(1)的ECC非对称加密术,
[0043]·
在加倍操作期间是否读取或写入ECC操作数Q0或Q1, 或者
[0044]·
在加法操作期间是否写入ECC操作数Q0或Q1。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种方法,包括:在处理设备中对数据执行加密操作,所述执行包括施加非对称加密过程,所述非对称加密过程包括使用密钥在由给定数目的字形成的第一操作数与第二操作数之间的迭代操作,对于所述密钥中的每个位,所述迭代操作包括:根据所述密钥的所述位,向所述第一操作数和所述第二操作数施加第一操作集合和第二操作集合中的一个操作集合;以及基于控制位值有条件地交换所述第一操作数的字和所述第二操作数的字,所述控制位值通过向随机位施加逻辑异或函数而被获取,其中所述有条件地交换包括:在第一寄存器中存储所述第一操作数的所述字;在第二寄存器中存储所述第二操作数的对应的字;根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的值或所述第二寄存器的值;以及根据所述控制位值,在所述第二操作数的所述对应的字中存储所述第二寄存器的值或所述第一寄存器的值。2.根据权利要求1所述的方法,其中所述有条件地交换包括:在所述第一寄存器中存储所述第一操作数的所述字,并且在所述第二寄存器中存储所述第二操作数的对应的字之后:通过在所述第一操作数和所述第二操作数中存储相应的重写值来重写所述第一操作数和所述第二操作数;然后根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的所述值或所述第二寄存器的所述值;以及根据所述控制字值,在所述第二操作数的所述对应的字中存储所述第二寄存器的所述值或所述第一寄存器的所述值。3.根据权利要求2所述的方法,其中所述相应的重写值为零或恒定值。4.根据权利要求2所述的方法,其中所述相应的重写值是随机生成的值。5.根据权利要求2所述的方法,其中所述相应的重写值彼此不同。6.根据权利要求1所述的方法,其中所述非对称加密过程是乘法操作,乘法操作包括在所述迭代过程之前初始化掩码变量,并且所述迭代过程包括:对于所述密钥中的每个位:设置所述随机位;通过对所述随机位和所述密钥的当前位执行逻辑异或操作来获取随机的密钥值;使用对所述掩码变量和所述随机位的逻辑异或操作的结果作为控制位来执行所述有条件地交换;将所述掩码变量设置为所述随机位值;以及根据所述随机的密钥值的值选择要施加到所述第一操作数的当前字和所述第二操作数的对应的字的所述操作集合来执行所述非对称加密乘法的循环。7.根据权利要求6所述的方法,包括:
在第一掩码寄存器中存储所述随机位;在第二掩码寄存器中存储所述随机的密钥值;在第三掩码寄存器中存储所述第一掩码寄存器中存储的值的补码;以及在第四掩码寄存器中存储所述第二掩码寄存器中存储的值的补码。8.根据权利要求1所述的方法,其中所述迭代操作包括椭圆曲线加密术(ECC)标量乘法循环或里夫斯特

沙米尔

阿德曼(RSA)模幂操作循环。9.一种装置,包括:多个寄存器;以及逻辑电路装置,耦合到所述多个寄存器,其中在操作中,所述逻辑电路装置使用密钥执行在由多个字形成的第一操作数与第二操作数之间的迭代操作,对于所述密钥中的每个位,所述迭代操作包括:根据所述密钥的所述位,向所述第一操作数和所述第二操作数施加第一操作集合和第二操作集合中的一个操作集合;以及基于控制位值有条件地交换所述第一操作数的字和所述第二操作数的字,所述控制位值通过向随机位施加逻辑异或函数而被获取,其中所述有条件地交换包括:在所述多个寄存器的第一寄存器中存储所述第一操作数的所述字;在所述多个寄存器的第二寄存器中存储所述第二操作数的对应的字;根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的值或所述第二寄存器的值;以及根据所述控制位值,在所述第二操作数的所述对应的字中存储所述第二寄存器的值或所述第一寄存器的值。10.根据权利要求9所述的装置,其中所述有条件地交换包括:在所述第一寄存器中存储所述第一操作数的所述字,并且在所述第二寄存器中存储所述第二操作数的所述对应的字之后:通过在所述第一操作数和所述第二操作数中存储相应的重写值来重写所述第一操作数和所述第二操作数;根据所述控制位值,在所述第一操作数的所述字中存储所述第一寄存器的所述值或所述第二寄存器的所述值;以及根据所述控制位值,在所述第二操作数的所述对应的字中存储所述第二寄存器的所述值或所述第一寄存器的所述值。11.根据权利要求10所述的装置,其中所述相应的重写值为零或恒定值。12.根据权利要求10所述的装置,其中所述相应的重写值为随机生成的值。13.根据权利要求10所述的装置,其中所述相应的重写值彼此不同。14.根据权利要求9所述的装置,其中所述迭代过程是包括乘法操作的非对称加密过程的一部分,并且在操作中,所述逻辑电路装置在所述迭代过程之前初始化掩码变量,所述迭代过程包括:对于所述密钥中的每个位:设置所述随机位;
通过对所述随机位和所述密钥的当前位执行逻辑异或操作来获取随机的密钥值;使用对所述掩码变量和所述随机位的逻...

【专利技术属性】
技术研发人员:R
申请(专利权)人:意法半导体股份有限公司
类型:发明
国别省市:

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

1