微电路中的对抗措施方法、微电路和包括该微电路的智能卡的制作方法

文档序号:6468107阅读:119来源:国知局
专利名称:微电路中的对抗措施方法、微电路和包括该微电路的智能卡的制作方法
技术领域
本发明涉及微电路中的对抗措施方法。
本发明还涉及实施该方法的微电路和具有这种微电路的智能卡型的便携式媒体。
应该注意便携式器件如智能卡的微电路,具有围绕包括控制器和通过总线连接到存储器的算术和逻辑单元(ALU)的处理器(或微处理器)所形成的结构,该存储器包括含有例如敏感数据项或密码术算法项(密钥)的非易失的程序存储器。该控制器管理输入/输出信号I/O(指令,地址,数据)以及算术和逻辑单元按控制器的命令对数据的进行算术操作。
用于智能卡的这种微电路有一些应用,例如用于访问某些数据库,用于银行,用于例如电视、汽油分配或公路通过费的遥控收费。
本发明尤其可用于媒体如智能卡中敏感数据的保密。它涉及由该微电路的处理器操作的秘密数据,并且该数据易于通过连接该存储器与处理器的总线传送。
本发明可应用于秘密信息的保密,如智能卡用户的秘密代码或在加密计算操作中使用的电子密钥,以供加密和/或鉴别和/或信息的电子签名之用。
本发明尤其可用于实施密钥密码术算法或所谓的公共密钥算法的情况。这些算法用于对服务或数据的访问严格受控的应用中。
在密钥密码术算法中可以引用DES(数据加密标准)算法。也有其他密钥算法,像RC5算法或COMP128算法。当然这些并不是全部。
在公共密钥密码术算法中可以引用RSA(Rivest Shamir和Adelman),E1 Gamal,Schnorr,Fiat Shamir,或DSA或DSS。
简要而一般地说,这些算法的目的是进行主机系统(服务器、现金分配器,等)和密钥或包含在该卡中的公共密钥和秘密密钥的密码计算,以及反过来给主机系统提供加密的信息或容许进行这种(卡式的)微电路的鉴别,或签发信息。
这些密码术算法的整体安全性依赖于能够将需要保持秘密的数据保持秘密状态的事实,这些数据必须保持处于秘密状态。在密码术算法情况下,密钥或若干密钥不能单从该卡和外部世界之间交换的信息的了解来导出。
然而,当密码处理器或智能卡处理器实行担负操作秘密数据的运算时,根据电流消耗或差分电流消耗分析,已经出现来自外部的攻击,这样的操作使有不良企图的第三者通过被称为如DPA(差分功率分析)攻击而实行攻击,就能够发现含在此卡中的密钥。
这些DPA攻击的原理依赖于这样的事实,即执行指令的处理器的电流消耗是根据所操作的数据而变化的。
特别是,当处理器执行的指令需要逐位地操作数据项时,依赖于此位是等于“1”或“0”而存在两种不同的电流型式。典型地,若处理器在操作“0”,那么在该执行时刻存在消耗电流的第一幅度并且,若处理器在操作“1”,那么就存在不同于第一幅度的消耗电流的第二幅度。
于是DPA攻击的过程就根据操作的位值利用在指令执行期间卡中电流消耗型式的差别。简单地说,在包括逐位操作数据项的执行至少一个指令的算法进展中,DPA攻击行动在于识别一个或更多的具体时段;在此或这些时段中绘制很大数目N的电流消耗曲线,采用此算法的每一不同信息有一条曲线;对每条曲线进行预言,由该数据项的一个位为子密钥即至少部分密钥的假设取值,它容许作此预言;同时根据相应的布尔的(Boolean)选择函数将这些曲线分类获得的第一束曲线,对它的预言等于“1”,同时获得的第二束曲线,对它的预言等于“0”。通过在获得的两束曲线之间进行平均电流消耗的差分分析,就能得到信息信号DPA(t)。
若子密钥假设不正确,那么每束曲线实际上包括像操作“0”的曲线那样多的对应操作“1”的曲线。因此就电流消耗来说此两束曲线是等价的,并且信息信号大体上是零。若子密钥假设是正确的,那么一束曲线实际上包括对应操作“1”的曲线并且另一束实际包括对应操作“0”的曲线获得的信息信号DPA(t)不是零它包括据以分类的对应于由位处理器操作的消耗峰。这些峰有对应于处理器消耗的差的幅度,它依赖于是在操作“1”或“0”。因此,逐步地,发现含在微电路中的所有的或部分的密钥是可能的。
存在着许多实施算法,其中处理器或有关计算单元(加密处理器)在某一时刻必须进行逐位数据操作。
像已述的那样,对密码术算法来说这是特别的情况。在这些逐位操作的执行期间通过分析电流消耗,发现操作数据项的至少某些位值是可能的。对该数据项的了解能够提供关于密码术算法执行期间得到的中间结果的信息,它们反过来使得发现所用密钥的至少某些位成为可能。
申请人意识到,这样的攻击能够从观察电流消耗的变化来实现,此变化同微电路总线上二进制值的转换有关。这是因为申请人观察到,从一个数据项到另一个数据项,同样重要的两个位之间的状态变化比之状态不变的情况会产生较高的消耗。这样,对在总线上流动的数据而言,转换就留下记号。当然这种情况对这些数据是秘密数据是很不利的。
本发明的目的就是解决此问题。
它的目的是保护被逐位操作的数据,即对该数据施加对抗措施,也就是干扰,结果一个数据项转换到下一个通过总线的数据项期间,电流消耗的分析显示在这些数据项上没有信息信息信号DPA(t)在DPA攻击中将总是一样的。
如权利要求所述,本发明涉及微电路中的对抗措施方法,此电路包括能够执行运算的处理器,其中之一在于操作至少一个秘密数据项,至少一个含有该秘密数据项或若干秘密数据项的非易失存储器,和至少一个工作存储器,上述存储器由总线连接到上述处理器,原则上,其特征在于该方法包括在源自处理器执行运算的数据项之间注入若干随机数据项到总线上。
根据另一种特征,该方法在于在秘密数据项或若干秘密数据项被操作的时段,激活注入若干随机数据项到总线上,在此时段中,并且在这些时段之外禁止上述随机数据项的注入。
根据另一种特征,操作秘密数据项的运算由密码术算法来执行。
该密码术算法可以是秘密密钥算法。
作为替代该密码术算法可以是公共密钥算法。
秘密数据项可以是个人识别代码。
本发明也涉及智能卡型便携式器件的微电路,包括能执行运算的处理器,其中之一在于操作至少一个秘密数据项,至少一个包括该秘密数据项或若干秘密数据项的非易失存储器,和至少一个工作存储器,它们由总线连接到上述处理器,原则上,其特征在于它包括随机数据发生器和复用器,此复用器包括连接到随机数据发生器输出端的输入端,为了按照处理器的指令将随机数据项注入到此总线上,此输入端连接到处理器的输入/输出总线。
随机数据发生器被一频率高于处理器频率的时钟信号所激活。
该时钟信号可以是多个处理器时钟信号,所述信号能够在内部产生(处理器的内部)或来自外部(来自其中装有微电路的智能卡的连接区)。
微电路有能够供给上述时钟信号的逻辑电路,此时钟信号是多个处理器时钟信号。
当微电路有若干总线时,注入随机数据项的装置(means)是由宏指令来执行的。
本发明也涉及智能卡,它包括如刚才介绍的微电路。
从阅读下文提出的和通过非限制性实例给出的描述以及参看附图,本发明的其他具体特征和优点将清楚地显现出来,在附图中

图1描述简化的能执行根据本发明的方法的微电路结构;图2A到2G描述微电路的运行信号;图3描述根据本发明的微电路的一种实施方案的详细实施图。
图1描述简化的微电路,也就是说仅仅是了解本发明所必须的部分。
在装配智能卡情况下,微电路具有该卡的微模块结构,即它具有包括控制器11的主处理单元1(称为处理器),一个或更多的总线12用于将单元1连接到相关存储器,这些存储器包含至少一个程序存储器M1(非易失ROM型),至少一个工作存储器M2(RAM型),和至少一个电可编程的程序存储器M3(EEPROM型)。该微电路也可以有计算单元2(密码处理器)以供执行模数取幂计算,像例如实行RSA(Rivest Shamir Adelman)公共密钥密码术算法的情况那样。
为实施根据本发明的对抗措施方法,图1所示的微电路,也有由时钟H激发的随机数发生器3,和由控制其输出S的信号C激发的复用器4。该微电路也有系统5用以管理由控制器11控制的在(有两个输入e1,e2和一个输出S的复用器类型的)总线B上流动的信息。在从一个存储器读取的情况下,系统5使得将算术和逻辑单元12直接连接到存储器M1、M2、M3上成为可能;在写入到一个存储器的情况下,复用器4的输出至总线B。
微电路的控制器11按照已作的说明能够与密码算子(operator)2相连并操作一个或更多的秘密数据项。
为简化起见,将采用单个操作秘密数据项情况(例如它是密钥算法或PIN代码(个人识别代码)执行中的情况)。此数据项以保密方式存储在与处理器11相关的非易失程序存储器M1中。
在执行密码运算或验证识别代码(PIN)期间,根据本发明,处理器将进行一次或多次中断以便将随机数据项注入到总线12上(通过该总线易于传输秘密数据项)。
事实上,在执行包括例如写秘密数据项的指令期间,通过处理器启动,于是后者(秘密数据项)通过总线B传输以便进入工作存储器M2,目的在于以此数据项来执行处理。对每次执行的运算,一系列数据项因此通过总线B传输。根据本发明的方法,该处理器能够发布中断,此中断能用秘密数据操作程序本身(在此情况下是密码术程序)来触发,中断在执行中的指令的目的是保留寄存器中的前后关系和触发(由发生器3产生的)随机数据项导入到总线B上。中断在执行中的指令的信号能够用作复用器4的控制信号C。
图2A到2G说明微电路的运行信号。
图2A中说明处理器的时钟信号CLK。
图2B说明控制随机发生器3的时钟信号H的实例。
选取高于处理器时钟信号CLK的时钟频率H,以便在执行指令的中断时刻和其恢复时刻之间能够注入若干随机数据项DA1、DAn。于是在这两个时刻之间,这些随机数据项在由总线B传送的数据项之间被注入。随机数据项的目的是随机地重新加载或卸载总线。
若干数据项的导入使获得预期的结果成为可能。
选取快于处理器时钟信号CLK的时钟H,例如其中的多路系统,以便传送至少两个随机数据项。
该数据项,命令或是要处理的数据,在图2C的总线图上作了说明。
图2D说明执行指令的进展和它在接收中断信号时的中断。图2E中说明,此中断使产生控制复用器输出的信号C成为可能。
图2F说明由处理器发出的写控制信号。
图2G说明由随机发生器3产生的数据项DA。
图2E说明激发复用器3的控制信号C的一个实例。根据所说明的实例,当信号C处于0,复用器以其输出S传递在其输入E1上接收的信号,以及当信号C处于1,它就传递在其输入E2上接收的数据;根据此实例,在由处理器发出中断执行指令时,此信号C是处于1。
复用器4的输入E1对应于处理器(ALU)的输出数据。
在输入E2上接收的数据是由发生器3发出的数据。
图3说明本发明的一个实施方案的详细实例。
当在智能卡里装配了微电路时,它也有同外部世界相联系的接口13,在此图中作了图解说明。此接口包括用来接收时钟信号CLK、电压信号Vcc和Vss,复位到零信号的复位、以及输入/输出信号I/O的智能卡的连接器。它也有异步的传输单元。
在将要描述的实施方案中,时钟信号H由逻辑电路5乘时钟信号CLK来获得。此电路5包括例如顺序引导延迟的门电路51。该延迟可以是T/4(T是时钟CLK的周期),并在此情况下通过总线传送的两个数据项之间注入至少两个随机数据项成为可能。
控制信号C是由给那个终端编程的处理器产生的。
可以给那个终端装配逻辑电路。
当微电路有若干总线时,刚才已描述的功能可以不通过电路而是通过提供给那个终端的宏指令来实施。
权利要求
1.微电路中的对抗措施方法,所述电路包括能实行运算的处理器,上述运算之一在于操作至少一个秘密数据项,并包括至少一个含有该秘密数据项或若干该秘密数据项的非易失存储器,和至少一个工作存储器,上述存储器由总线连接到上述处理器,其特征在于该方法包括在源于由处理器执行运算的数据项之间注入若干随机数据项到总线上,这些随机数据项的目的是随机地重新加载或卸载总线。
2.根据权利要求1的微电路中的对抗措施方法,其特征在于它在操作秘密数据项或若干秘密数据项的时段中将若干随机数据项激发注入到总线上,而在这些时段之外禁止上述随机数据项的注入。
3.根据权利要求1或2的对抗措施方法,其特征在于操作秘密数据项的运算由密码术算法来执行。
4.根据权利要求3的对抗措施方法,其特征在于该密码术算法是秘密密钥算法。
5.根据权利要求3的对抗措施方法,其特征在于该密码术算法是公共密钥算法。
6.根据权利要求1或2的对抗措施方法,其特征在于该秘密数据项是个人识别代码。
7.智能卡型便携式器件的微电路,包括能执行运算的处理器,上述运算之一在于操作至少一个秘密数据项,并包括至少一个含有该秘密数据项或若干该秘密数据项的非易失存储器(M1,M3),和至少一个由总线(B)连接到上述处理器的工作存储器(M2),其特征在于它有按照处理器的命令将随机数据项注入到此总线上的装置。
8.根据权利要求7的便携式器件的微电路,其特征在于将随机数据项注入到此总线上的装置包括随机数据发生器(3),和与随机数据发生器输出相连的输入(E2)的复用器(4),上述随机数据发生器连接到总线(B)。
9.根据权利要求8的便携式器件的微电路,其特征在于随机数据发生器被频率高于处理器频率的时钟信号(H)触发。
10.根据权利要求8和9的便携式器件的微电路,其特征在于该时钟信号(H)是多个处理器时钟信号(CLK)。
11.根据权利要求8到10的任一项的便携式器件的微电路,其特征在于它有能供给上述时钟信号(H)的逻辑电路(5),该时钟信号是多个处理器时钟信号。
12.根据权利要求7的便携式器件的微电路,其特征在于,当该微电路有若干总线时,注入随机数据项的装置是由宏指令来执行的。
13.智能卡,其特征在于它包含根据权利要求7到12的任一项的微电路。
全文摘要
本发明涉及一种微电路中的对抗措施方法,此电路包含能执行运算的处理器,其中之一在于处理至少一种秘密数据,上述微电路包含至少一种含有该秘密数据或若干秘密数据的非易失存储器,至少一种工作存储器,上述存储单元通过总线连接到上述处理器。本发明的特征在于,该方法包括将来自由处理器执行运算的数据之间的几个随机数据注入到总线上,上述随机数据用来随机地重新加载或卸载总线。本发明可用于智能卡。
文档编号G06K19/073GK1426573SQ01808650
公开日2003年6月25日 申请日期2001年4月18日 优先权日2000年4月28日
发明者N·达鲍斯, D·纳卡彻 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1