加密集成电路防电源攻击方法

文档序号:6768055阅读:407来源:国知局
专利名称:加密集成电路防电源攻击方法
技术领域
本发明适用的技术领域为带有数字加密的集成电路芯片设计。目前应用比较广泛的带有加密技术的集成电路芯片是各种类型的IC卡集成电路芯片,如GSM手机上使用的SIM卡芯片、CDMA手机上使用的UIM卡芯片、银行卡芯片、社保卡芯片、交通卡芯片、除以上所列之外的其他各类身份卡芯片、记账卡芯片、各种不同应用的存储卡芯片、账号电话卡等集成电路芯片。
背景技术
既然是带有加密的技术,就存在有解密与如何防止被非法解密的问题。攻击带有加密技术的集成电路芯片采用的方法有穷举法,解剖芯片分析电路得到加密方法(加密算法)、密文或个别明文密文对、密钥(包括password或signature)等。另外一种不破坏集成电路芯片的分析加密方法从而得到密文或密钥的攻击方法就是电源攻击,使用测试设备对芯片的电源耗电电流进行监测,记录芯片电源耗电电流的变化过程,分析加密算法从而得到密钥,或从功耗电流的微小差别分析芯片内非易失性存储器的读写过程,得到存入非易失性存储器的内容等。非法攻击者可以通过以上方法达到伪造、盗用各类加密集成电路的目的,造成加密集成电路合法使用者的财产与权益损害。电源攻击法与解剖芯片的方法相比,为达到解密集成电路芯片的目的,使用电源攻击法的攻击者所需付出的代价要小得多,对非法攻击者会更具有吸引力。

发明内容
本发明的中心思想是在设计带加密技术的集成电路时,在实现集成电路本身功能的设计之外,另外设计一部分电路用于产生随机变化的额外的附加功耗电流,附加功耗电流将迭加在原设计的电路功耗电流之上。额外附加的这部分功耗电流的大小是随机变化的,当攻击者从芯片的电源上来监测芯片的功耗电流时,无法把附加的这部分电流与芯片正常工作时的耗电电流分开,在这部分附加功耗电流随芯片的工作时钟随机变化时将掩盖芯片正常工作时的功耗电流变化,使攻击者无法观察到真实的芯片功耗电流的变化规律,无法分析芯片中加密算法的加密过程,或无法分析得到写在非易失性存储器内的内容,从而达到防止加密集成电路受到电源攻击法攻击的目的。
具体实施例方式在设计所要保护的带加密技术的集成电路时,设计一个随机数发生器(在已经有随机数发生器的一些带加密技术的集成电路中,如在与原电路中随机数发生器的使用不发生冲突的情况下可直接使用原来的随机数发生器),也可使用循环周期足够长的伪随机数发生器。此随机数发生器应足够大,如32bit、64bit、128bit或更大,在额外加入的门数与功耗允许的情况下越大效果会越好。应使用集成电路芯片上驱动实现加密算法电路所使用的时钟沿来驱动随机数发生器电路,每个驱动时钟沿应能产生一个新的随机数,即组成随机数发生器电路的所有触发器的‘0’、‘1’状态在每个驱动时钟沿产生一次新的组合,由‘0’翻转到‘1’或由‘1’翻转到‘0’的触发器个数应该是随机的。
在使用CMOS工艺生产的集成电路上,由于电路的对称性功耗电流主要集中在单元电路‘0’、‘1’状态的翻转瞬间,在电路不发生‘0’、‘1’状态翻转时的静态,‘0’、‘1’两个状态的功耗基本相同。单纯由触发器组成的随机数发生器的功耗电流也将集中在驱动时钟沿的附近,会留下静态窗口。为防止攻击者利用静态窗口来分析电路,应在每个触发器的输出端接一个‘0’、‘1’状态翻转时瞬态功耗电流不同的负载电路。负载电路的‘0’、‘1’状态翻转时的瞬态功耗电流差应与被保护的集成电路工作时的最小功耗电流变化量可比。
仔细考察逻辑集成电路的工作过程,可以看到在时钟沿驱动触发器翻转时所形成的功耗电流会集中在时钟沿附近。如图(1)(A)所示是单一由时钟上升沿驱动触发器翻转后形成功耗电流脉冲,由于同时翻转的触发器的个数不同电流脉冲的高度会有所不同。在实际的逻辑集成电路中,逻辑电路不仅仅是由触发器组成的,在每个触发器之后会连接一些组合逻辑。如果先假设触发器后面跟有三级组合逻辑电路,类似于图(2)所示,而且每级逻辑门的时间延时相同,大约十分之一时钟周期左右。这样在组合逻辑的输出由‘0’转变为‘1’或由‘1’转变为‘0’时的功耗电流会形成像图(1)(B)中所示那样,在触发器的功耗电流脉冲之后排列成三个脉冲电流,每一级脉冲电流的高度与多少个逻辑门发生了‘0’到‘1’或‘1’到‘0’的转变相关。在实际的逻辑集成电路中不同功能的触发器与不同功能的逻辑门电路的延时会有所不同,所形成的功耗电流会有一定的分布,但是某一特定功能的逻辑集成电路在工作时,会形成带有类似指纹特征的功耗电流特征分布图案。记录和分析集成电路电源上的电流变化规律就可以辨别出这些带有指纹特征的功耗电流特征图案。图(3)为一个做16轮DES加密运算的集成电路,在其电源功耗电流上留下的特征图案。在某一特定功能的逻辑集成电路处理不同的数据时,功耗电流的特征图案会有微小的变化。使用差分电流分析法就可以分辨出这些微小的变化,可以进一步分析出每次处理的数据的‘0’和‘1’的个数。这就是使用电源攻击法的攻击者所要做的工作。
如果仅仅使用随时钟沿随机翻转的触发器所形成的附加功耗电流就无法完全掩盖逻辑集成电路功耗电流的特征图案。要想完全掩盖功耗电流的特征图案,必须在附加的触发器的功耗电流之后再加入一些带有一定延时分布的附加功耗电流。
图(4)是我们使用的一种负载电路的原理图,可以用来改变逻辑集成电路功耗电流瞬态变化的高度,因为使用了储能元件可以不过多的增加实际集成电路的平均功耗电流。在电路输入端由‘1’翻转到‘0’时,两个RC电路串接的N管导通,电源开始向电容充电,跨接在两个RC电路上的P管截止。在电路输入端由‘0’翻转到‘1’时,两个RC电路上的串接的N管截止,经过两个反相器的延时时间之后,跨接的P管导通,将两个充完电的电容串接向电源放电。图(5)是四个这种负载电路在由“1110”翻转到“0001”,或由“0001”翻转到“1110”时产生的功耗电流的情况。
在与随机翻转触发器相接时插入一些延时buffer,推后其改变功耗电流瞬态变化高度的位置,这样在多个随机翻转的触发器后面使用这种负载电路时插入不同的延时,就可以形成带有一定时间分布的功耗电流的改变,达到完全掩盖功耗电流指纹特征图案的目的。具体设计电路时可以将随机翻转触发器分为多组,在每一组触发器后面插入具有不同延时的buffer,然后再接负载电路。例如使用64个触发器作为随机翻转触发器,分为四组,每组16个触发器。第一组插入1/6时钟周期的延时,第二组插入2/6时钟周期的延时,...,第四组插入4/6时钟周期的延时。在时钟的上升沿和下降沿都驱动随机翻转触发器的设计中,可插入1/12、2/12、3/12、4/12时钟周期延时的buffer。为了减少所使用的延时buffer的门数,可以适当的减少插入的延时,但是至少应覆盖两个驱动时钟沿之间2/3的区域,否则达不到足够掩盖指纹特征图案的目的。也可分组用每一个触发器控制环振的起振或停振,组内环振级数相同,组间环振级数不同,环振的输出驱动负载电路,有一定几率使多个负载电路产生的部分脉冲电流的位置相同。在多时钟集成电路芯片(或单一时钟但时钟的上升沿与下降沿同时使用的集成电路)上如果涉及到加密电路的时钟沿多于一个,为达到好的保护效果可使用多个附加随机功耗生成电路,应每个驱动时钟沿驱动一个附加随机功耗电路。
电路中的电阻与电容的取值,应根据被保护集成电路的平均功耗电流和工作频率来确定。在每个延时分组为16个触发器时,单一负载电路电容充电时的脉冲电流峰值在平均功耗电流的1/30到1/20左右,RC的充放电时间常数为工作时钟频率周期的1/20左右比较合适
权利要求
权利要求
本发明的技术要点是防电源攻击电路产生附加随机变化的功耗电流迭加在被保护的带加密技术集成电路的功耗电流之上,掩盖原集成电路所产生的有变化规律的功耗电流。使用本发明保护的集成电路在测量其功耗电流时,将看不出明显的变化规律类似于使流分量上迭加的噪声电流,即使能看出大概的有规律的变化轮廓在使用差分电流技术分析时得到的也只是无明显规律的类似噪声电流的结果。凡带有以上技术特征的带有加密技术的集成电路(包括用硬件实现加密技术的集成电路和SOC集成电路使用软件实现加密技术的集成电路),应是使用了本发明所说明的方法保护的集成电路,属于本专利保护的范围。
全文摘要
本发明的名称是加密集成电路防电源攻击的方法,所属技术领域为集成电路设计,用于带有加密技术的集成电路设计,防止攻击者用电源攻击的方法破解加密技术。所谓电源攻击是指攻击者使用测量设备,监测带有加密技术的集成电路的电源功耗电流,分析集成电路加密过程中功耗电流的瞬态变化,破解加密方法。本发明防止电源攻击的方法是在设计带加密技术集成电路的同时在集成电路芯片中设计一个防电源攻击电路,扰乱集成电路正常工作时电源功耗电流的变化规律,使攻击者使用测量设备无法测量和监测到集成电路工作过程中真实功耗电流的变化规律,防止带加密技术的集成电路被破解。
文档编号G11C11/34GK1485857SQ0212923
公开日2004年3月31日 申请日期2002年9月27日 优先权日2002年9月27日
发明者张智宏 申请人:北京华虹集成电路设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1