针对水平旁路分析而受到保护的集成电路制造技术

技术编号:6626894 阅读:169 留言:0更新日期:2012-04-11 18:40
本发明专利技术描述了一种包括乘法功能的集成电路,所述乘法功能被配置以便:执行两个二进制字x和y的乘法运算,所述乘法运算包括字x的分量xi与字y的分量yj的多个基本乘法步骤。所述集成电路的乘法功能被配置以便:通过以随机或伪随机的方式修改执行分量xi与分量yj的基本乘法步骤的顺序来执行两个连续乘法。

【技术实现步骤摘要】

本专利技术的实施例涉及包括乘法功能的集成电路,该乘法功能被配置以便在字χ的分量&与字y的分量Ji的多个基本乘法步骤中执行这两个二进制字χ和y的乘法运算。本专利技术的实施例特别涉及包括外部数据处理功能的集成电路,对该外部数据处理功能的执行至少包括转到二进制字的至少第一乘法步骤或二进制字的第二乘法步骤的条件分支。该条件分支根据集成电路的私有数据而变化。本专利技术的实施例特别涉及用于测试这样的集成电路的过程和系统。本专利技术的实施例还涉及用于针对旁路分析而保护上述类型的集成电路的过程,并且涉及一种对策,其允许这样的集成电路通过包括根据本专利技术实施例的测试过程在内的鉴定或认证过程。
技术介绍
当前,可以在芯片卡或其它嵌入式系统(诸如USB密钥(闪速驱动器)、解码器和游戏控制台,以及按照一般方式的任何受信平台模块TPM)中找到越来越高级的安全处理器。这些按照集成电路形式的处理器通常具有8比特复杂指令集计算机(CISC)核心,或者 8、16或更多比特精简指令集计算机(RISC)核心,此时32比特处理器最为普及。一些集成电路还包括专用于一些密码计算的协处理器,尤其是用于不对称算法(诸如Rivest、Shamir 和Adleman(RSA)、数字签名算法(DSA)、椭圆曲线数字签名算法(ECDSA)等)的算术加速ο作为例子,附图说明图1示出了在便携式支持手持设备(HD)(例如塑料卡或任何其它支持装置)上布置的安全集成电路CIC1。该集成电路包括微处理器MPC、输入/输出电路IOC 或接口通信电路、通过数据和地址总线而链接到微处理器的存储器Ml、M2、M3,以及可选地用于密码计算或算术加速器的协处理器CP1,以及随机数发生器RGEN。存储器Ml是含有易失性应用数据的随机访问存储器(RAM)类型的存储器。存储器M2是含有应用程序的非易失性存储器,例如EEPROM或闪速存储器。存储器M3是含有微处理器的操作系统的只读存储器(ROM)。接口通信电路IOC可以是例如根据IS0/IEC 7816标准的接触类型(contact type)、例如根据IS0/IEC 14443A/B或IS0/IEC 13693标准的具有电感耦合的无接触类型 (contactless type)、通过电耦合(UHF接口电路)起到无接触类型的作用,或者接触和无接触类型这二者(被称“combi (联合)”的集成电路)。图1中示为例子的接口电路IOC是电感耦合无接触接口电路,其配备有用于接收磁场FLD的天线线圈AC1。场FLD由本身配备有天线线圈AC2的读卡器RD来发射。电路IOC包括用于接收和解码由读卡器RD所发射的数据DTr的装置以及用于编码和发射由微处理器MPC所提供的数据DTx的装置。其还可以包括用于从磁场FLD提取集成电路的电源电压Vcc和时钟信号CK的装置。在一些实施例中,集成电路CICl可以被配置以便基于使用秘密密钥d和密码模块η的模幂运算(modular exponentiation),通过密码函数(例如,密码RSA函数)来执行对发送到该集成电路的消息m的加密、解密或签名操作。关于模幂运算的概述模幂运算函数具有下面的数学表达md modulo (n)m是输入数据,(!是指数,并且n是除数。因此,模幂运算函数包括计算m的d次幂 除以11的余数。通过各种密码算法(诸如尺3ム算法、05ム算法、椭圆曲线迪菲霍尔曼(EOTH)、 ECDSA、EIGamal-)来使用这样的函数。然后,数据m是用于加密的消息并且指数d是私 有密钥。可以使用下面的算法来实现这样的函数(根据Barrett方法的模幂运算)取幂算法Input “ m〃 and" n〃 are integers such that m<n“ d〃 is an exponent of v bits such as d= (d^_i d^_2- ^o)2Output :a = ffld modulo nStep 1 :a = 1Step 2 :Pre-calculations of the Barrett reductionStep 3 :for s from 1 to v do (Step 3A) a = BRED (LIM (a, a),n)(Step 3B) if d,_, = 1then a = BRED (LIM (a, m),n)Step 4 :Return result a其中,消息m和模n是整数(例如,10 个比特、2048个比特或更多),d是以2为 基底所表示的?个比特的指数(cU,cU,...(!。ン,“し通”是大整数(large integers)的乘 法函数(“长整数乘法”),并且“88£0”是应用于し通乘法结果的根据Barrett方法的归约 (reduction)函数(“8&^~6 归约”)。在诸如图1中示出的集成电路中,可以由微处理器1 或由协处理器〔 1来执行这 样的模幂算法。替代地,算法的一些步骤可以由微处理器来执行,而其它步骤可以由协处理 器(如果它仅是算术加速器的话)来执行。例如,微处理器可以将步骤3A和;3B的LIM乘 法委托给协处理器,或者根据情况可以将整个计算委托给协处理器。另外,通常由集成电路借助于对二进制字X和y的乘法功能来执行3乘以3(步骤 3A)或a乘以m(步骤;3B)的LIM乘法。该乘法包括字x的分量x, (a,)与字y的分量y」(a,. ■ mP的基本乘法的多个步骤(i和j是迭代变量),以便获得级联的中间结果,从而形成该 乘法的一般结果。旁路分析的概述为了验证由要商业化的安全集成电路所提供的安全级别,以工业级别来实施鉴定 或认证测试。特别地,实施测试以便评估集成电路对于目的是发现集成电路的秘密数据的 旁路分析的稳健性。因此,取幂算法受到这样的控制。更特别地,模幂算法的旁路分析包括在算法的步骤3执行期间,在该步骤的秩s(rank s)的每次迭代处,通过观察集成电路的“行为”来逐比特地推导出指数的值。该观察的目的是确定所考虑的步骤3是仅包括步骤3A还是包括步骤3A以及之后的步骤:3B。在第一种情况下,可以推导出指数的比特dv_s等于0。在第二种情况下,可以推导出比特dv_s等于1。通过对于s = 1到s = ν的每次迭代逐个步骤地进行,可以推断对于从 1到v-1的s来说的指数的所有比特dv_s。例如,在取幂算法的第一迭代期间,运算结果LIM (a, a), LIM (a, m)表明指数的第一比特是1,而运算结果LIM (a, a) LIM (a, a)说明以下发现指数的第一比特是0。为了发现下一个指数比特,必须确定下面的运算的性质。例如,如果这些运算是LIM (a, a) LIM (a, m) LIM (a, a) LIM (a, m)或者 LIM (a, a) LIM (a, a) LIM (a, m)则最后两个运算LIM(a,a)LIM(a,m)表明指数的第二比特是1。相反,在下面的运算之后LIM (a, a) LIM (a, m) LIM (a, a) LIM (a, a)LIM (a, a) LIM (a, m) LIM (a, a) LIM (a, a)第三运算LIM(a,a)表明指数的第二比特是0,因为其后面是LIM本文档来自技高网...

【技术保护点】
1.一种包括乘法功能的集成电路,所述乘法功能被配置以便:在字x的分量xi与字y的分量yj的多个基本乘法步骤中执行至少两个二进制字x和y的乘法,i和j是迭代变量,其中,所述乘法功能进一步被配置以便:通过以随机或伪随机的方式修改执行分量xi与分量yj的基本乘法步骤的顺序来执行二进制字x和y的两个连续乘法。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:B·菲克斯G·加戈纳罗特M·罗瑟莱特V·韦尔努尔
申请(专利权)人:英赛瑟库尔公司
类型:发明
国别省市:FR

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

1