数据处理电路及其控制方法

文档序号:7615950阅读:133来源:国知局
专利名称:数据处理电路及其控制方法
技术领域
一般来说,本发明涉及数据处理电路及其控制方法。更具体来说,本发明涉及一种为防止用于加密方案、如DES(数据加密标准)的加密密钥被盗提供高安全性的数据处理电路及其控制方法。
背景技术
例如,在采用IC(集成电路)卡和读取器/写入器的系统中,要在IC卡与读取器/写入器之间交换的数据采用加密密钥进行加密,以便防止数据篡改或窃取。
加密方案大致分为共享密钥类型和公钥类型。在共享密钥类型中,采用称作共享密钥的同一个加密密钥对数据加密和解密,共享密钥类型的一种已知加密方案是DES。在公钥类型中,采用称作公钥和私钥的分开的加密密钥对数据加密和解密,公钥类型的一种已知加密方案是RSA(Rivest,Shamir,Adeleman)算法。
一般来说,加密通过硬件加密电路、如单IC来执行,因为如果加密过程可被观察,则加密方案和加密密钥会容易被破解(找出)。在这种情况下,例如,未加密数据(或明文)及其加密数据(或密文)可在是IC的加密电路外部观察到。但是,难以破解加密电路用来从明文和密文进行加密的加密方案和加密密钥。
最近,已经提出一种使加密电路所用的加密密钥可以通过分析加密电路的功耗(电流消耗)来解码的、称作DPA(差异功率分析)的技术(参见例如P.Kocher、J.Jaffe、B.Jun的“差异功率分析”,Advances inCryptology-Crypto 99 Proceedings,Lecture Notes In Computer ScienceVol.1666,M.Wiener ed.,Springer-Verlag,1999,也可从http://www.cryptography.com/resources/whitepers/DPA.pdf(自2004年2月23日起))。
DPA是利用加密电路所执行的处理中的逻辑“1”与“0”电平之间的功耗的细小差异的一种技术。加密电路例如由金属氧化物半导体(MOS)IC组成。理想条件下,没有电流流入MOS IC。
但实际上,泄漏电流等流入加密电路。泄漏电流等取决于逻辑“1”或“0”电平,在加密电路所执行的处理中产生逻辑“1”与“0”电平之间的功耗的差异。此外,加密电路中的功耗在数据被变换时增加。在DPA中,利用功耗的差异对加密电路所使用的加密密钥进行解码。
采用DES进行加密的加密电路从加密密钥(即共享密钥)产生中间密钥,并采用中间密钥对数据加密。
DPA算法使加密电路中所使用的中间密钥能够较易于通过分析加密电路的功耗来破解(解码)。因此,DPA方法在加密电路所执行的加密的安全性方面具有严重问题。

发明内容
因此,本发明的一个目的是提供防止通过基于功耗分析的攻击盗取加密密钥的高安全性。
在本发明的一个方面,用于执行与对数据加密有关的处理的数据处理电路包括处理单元,执行与对数据加密有关的处理;噪声生成单元,产生噪声;以及叠加单元,将噪声叠加到处理单元消耗的电流上。
数据处理电路还可包括定时信号生成电路,定时信号生成电路产生表明噪声叠加到消耗电流上的定时的定时信号,以及叠加单元可按照定时信号将噪声叠加到消耗电流上。
处理单元可与预定时钟同步地执行处理,以及定时信号生成单元可根据预定时钟产生定时信号。
数据处理电路还可包括第二噪声生成单元,它产生不同于噪声生成单元所产生的噪声的第二噪声,以及第二噪声也可叠加到消耗电流上。
噪声生成单元可通过相加多个独立信号来产生噪声,以及数据处理电路还可包括控制单元,它控制使噪声生成单元根据加密的安全等级产生噪声要相加的信号数量。
在本发明的另一个方面,用于包括执行与对数据加密有关的处理的处理单元的数据处理电路的控制方法包括产生噪声的噪声生成步骤以及将噪声叠加到处理单元消耗的电流上的叠加步骤。
在根据本发明的数据处理电路和控制方法中,产生噪声,以及所产生的噪声被叠加到处理单元所消耗的电流上。
根据本发明,可提供高安全性。


图1是根据本发明的第一实施例的IC芯片的框图;图2是流程图,表示IC芯片的操作;图3是流程图,表示图1所示的噪声生成电路的操作;图4是用于图1所示的IC芯片中的信号的时序图;图5是根据本发明的第二实施例的IC芯片的框图;图6是用于图5所示的IC芯片中的信号的时序图;以及图7是根据本发明的第三实施例的IC芯片的框图。
具体实施例方式
现在参照附图来描述本发明的实施例。
图1说明根据本发明的第一实施例的IC芯片。
在图1所示的IC芯片中,从IC芯片外部提供的数据(明文)被加密,而且加密数据被输出到外部。
在图1中,用于加密的加密密钥、待加密的数据(明文)以及主时钟MCLK被提供给加密处理电路1。
加密处理电路1根据例如DES采用所提供的加密密钥与所提供的主时钟MCLK同步地对所提供的明文数据进行加密。具体来说,加密处理电路1从所提供的加密密钥生成中间密钥,并根据DES采用中间密钥对数据加密。加密处理电路1将已加密数据输出到IC芯片外部。
电源VDD经由电源线L从IC芯片外部提供给加密处理电路1,以及加密处理电路1响应电源VDD的供电而执行加密。
在图1中(另外在图5和图7中),加密处理电路1消耗电流Ides。加密处理电路1连接到IC芯片的接地端子,以及所消耗的电流Ides最终流到IC芯片的接地端子。
主时钟MCLK还提供给延迟电路2。延迟电路2使所提供的主时钟MCLK延迟与加密处理电路1所执行的加密处理变换数据的时间周期对应的时间周期,以及将延迟时钟提供给门电路3。
根据从延迟电路2提供的主时钟MCLK,门电路3产生定时信号IT,表明如下所述的噪声生成电路5产生的噪声电流In叠加到加密处理电路1消耗的电流Ides上的定时,以及将所产生的定时信号IT提供给开关4。
开关4的第一端连接到电源线L,以及第二端连接到噪声生成电路5。开关4根据从门电路3提供的定时信号IT接通或断开,使得噪声生成电路5产生的噪声电流In叠加到流入电源线L的消耗电路Ides上。
噪声生成电路5包括N个振荡器101、102、…、10N,N个噪声生成器111、112、…、11N,N个开关121、122、…、12N,N个电流源131、132、…、13N,以及控制电路14。噪声生成电路5计算多个独立信号(电流)的总和,从而产生具有高斯分布的噪声电流。更准确地说,这个噪声电流是可视为其分布接近高斯分布的噪声的电流。
振荡器10n根据来自控制电路14的控制信号驱动噪声生成器11n,其中n=1,2,…,N。噪声生成器11n由振荡器10n驱动以产生例如伪随机噪声,而伪随机噪声作为输出信号提供给开关12n。
开关12n根据来自噪声生成器11n的输出信号接通或断开。开关12n的第一端连接到电流源13n,以及第二端连接到IC芯片的接地端子。当开关12n接通时,从电流源13n输出的电流经由开关12n流到IC芯片的接地端子。
电流源13n的第一端连接到开关12n的第一端,以及使具有预定幅度(电平)的电流经由开关12n流动。电流源131至13N的第二端相互连接,以及电流源131至13N的第二端互相连接的节点连接到开关4的第二端。
加密处理电路1执行的加密的安全等级提供给控制电路14。
安全等级取决于要由加密电路1加密的数据的重要性或保密性。安全等级可从IC芯片外部提供,或者可在IC芯片中预先设置。
控制电路14根据所提供的安全等级控制振荡器101至10N。
在噪声生成电路5中,电流源131至13N引起流动的电流在电流源131至13N的第二端相互连接的节点处相加,以及使所得的噪声电流In流入开关4。
连接到电流源13n的第一端的开关12n根据来自振荡器10n所驱动的噪声生成器11n的输出信号而接通或断开。因此,电流源13n使电流按照来自噪声生成器11n的输出信号流动。
根据中心极限定理,通过相加多个独立信号得到的总和信号随着要相加的信号数量的增加而接近高斯分布。
在噪声生成电路5中,从噪声生成器111至11N输出的伪随机噪声信号是独立(或正交)信号。因此,电流源131至13N引起的经由开关121至12N流动的电流也是独立信号。
在噪声生成电路5中,电流源131至13N引起流动的独立电流在电流源131至13N的第二端相互连接的节点处相加,以及产生其分布接近高斯分布的电流,即作为(噪声极接近)真正随机噪声的噪声电流。
理论上,在图1所示的IC芯片中,流入电源线L的电流I通过将噪声生成电路5产生的噪声电流In叠加到加密处理电路1所消耗的电流Ides上、即Ides+In来得到。流入电源线L的电流I不等于加密处理电路1所消耗的电流Ides,而是其中噪声电流In叠加在消耗电流Ides上的一种电流。因此,可在IC芯片外部观察到的电流I通过将噪声电流In叠加在消耗电流Ides上来确定,而不是加密处理电路1所消耗的电流Ides,从而防止通过基于消耗电流Ides的分析的DPA攻击来破解中间密钥,以便提供高安全性。
噪声电流In叠加在消耗电流Ides上,以便对IC芯片外部隐藏消耗电流Ides,因此期望是随机的(随机性高)。
另一方面,根据中心极限定理,当电流源131至13N的数量增加时,可产生接近高斯分布的噪声电流(即更随机的噪声电流)。因此,希望增加引起独立电流流动的电流源131至13N的数量,以便防止流入电源线L的电流I被通过DPA进行分析。
但是,当引起独立电流流动的电流源131至13N的数量N增加时,整个IC芯片的电流消耗也会增加。
一般来说,对于较高安全等级(将由加密电路1加密的数据的重要性或保密性)的需求,要求更高的抗DPA攻击的能力。
控制电路14根据安全等级控制为了产生噪声电流要相加的独立电流的数量。
当安全等级较低时(即,当将由加密电路1加密的数据的重要性或保密性较低时),控制电路14根据安全等级控制振荡器101至10N以减少驱动噪声生成器111至11N的振荡器的数量。开关12n在噪声生成器11n没有被振荡器10n驱动时处于断开位置,从而没有引起任何电流从电流源13n流出。
因此,通过减少驱动噪声生成器111至11N的振荡器的数量,在电流源131至13N的第二端相互连接的节点处相加的独立电流的数量也可减少。
在这种情况下,虽然噪声生成电路5产生了略少随机性的噪声电流,但整个IC芯片的电流消耗可减小。
当安全等级较高时(即,当将由加密电路1加密的数据的重要性或保密性较高时),控制电路14根据安全等级控制振荡器101至10N以增加驱动噪声生成器111至11N的振荡器的数量。连接到电流源13n的开关12n根据来自振荡器10n所驱动的噪声生成器11n的输出伪随机噪声信号接通或断开。因此,当驱动噪声生成器111至11N的振荡器的数量增加时,在电流源131至13N的第二端相互连接的节点处相加的独立电流的数量也增加。
在这种情况下,虽然整个IC芯片的电流消耗略微增加,但更随机的噪声电流可由噪声生成电路5产生,从而产生更强的抗DPA攻击的能力。
图2是流程图,表示图1所示的IC芯片的操作。
在步骤S1,IC芯片中的门电路3产生定时信号IT。当主时钟MCLK经由延迟电路2提供给门电路3时,门电路3根据经由延迟电路2提供的主时钟MCLK产生定时信号IT,并将定时信号IT提供给开关4。
在步骤S2,开关4根据从门电路3提供的定时信号IT接通或断开。响应开关4的通-断操作,噪声生成电路5所产生的噪声电流In的流动被接通或断开。在电源线L中,噪声生成电路5所产生的噪声电流In仅当开关4接通时才叠加到加密处理电路1所消耗的电流Ides上。
其流动响应开关4的通-断操作而接通或断开的噪声电流In由In’表示。
在步骤S3,加密处理电路1执行加密处理,从而对提供给加密处理电路1的数据进行加密。
在图1所示的IC芯片中,消耗电流Ides从电源线L流到加密处理电路1。噪声电流In’从电源线L流到噪声生成电路5。因此,流入电源线L的电流I由消耗电流Ides与噪声电流In’之和表示。
图3是流程图,表示图1所示的噪声生成电路5的操作。
在步骤S11,噪声生成电路5中的控制电路14根据所提供的安全等级确定要激活的振荡器的数量(即驱动噪声生成器111至11N的振荡器的数量),以及产生表明振荡器数量的控制信号。控制电路14将控制信号提供给振荡器101至10N。
响应来自控制电路14的控制信号,在步骤S12,与来自控制电路14的控制信号所表明的数量对应的数量的振荡器101至10N被激活以驱动相应的噪声生成器111至11N。例如,如果来自控制电路14的控制信号表明数量N’,其中N’为1至N的某个值,则振荡器101至10N’驱动噪声生成器111至11N’,以及输出信号从噪声生成器111至11N提供给开关121至12N’。
在步骤S13,开关121至12N’根据来自噪声生成器111至11N’输出信号接通或断开。然后,电流源131至13N’引起流动的独立电流在电流源131至13N的第二端相互连接的节点处相加,以及产生所得噪声电流In。
图4是时序图,表示用于图1所示的IC芯片中的信号。
图1所示的加密处理电路1例如在主时钟MCLK的上升沿被激活。
在图4中,门电路3所产生的定时信号IT在主时钟MCLK的上升沿附近被设置为逻辑“1”电平,而在其它情况下则被设置为逻辑“0”电平。
在图1所示的IC芯片中,当开关4处于接通位置时,噪声生成电路5所产生的噪声电流In从电源线L流到噪声生成电路5(或者开关4)。
虽然噪声生成电路5所产生的噪声电流In在图4中与主时钟MCLK同步地变化,但噪声电流In不需要与主时钟MCLK同步地变化。从噪声生成器111至11N输出以产生噪声电流In的信号不需要相互同步,或者不需要与主时钟MCLK同步。
噪声电流In’响应开关4根据定时信号IT的通-断操作而从电源线L流到噪声生成电路5。噪声电流In’在定时信号IT设置为逻辑“1”电平的时间周期中相当于噪声电流In。
图4还表示加密处理电路1所消耗的电流Ides以及流入电源线L的电流I。电流I是其中噪声电流In’叠加到消耗电流Ides上的电流。
如图4所示,消耗电流Ides隐藏在电流I中。
消耗电流Ides也可通过将噪声生成电路5所产生的噪声电流In而不是噪声电流In’叠加到消耗电流Ides上来隐藏。
但是,如果噪声生成电路5所产生的噪声电流In叠加在消耗电流Ides上,则噪声电流In始终流动,因此整个IC芯片的电流消耗增加。
例如,如果在逻辑“0”与“1”电平之间消耗电流Ides中没有差异出现于加密处理电路1所执行的加密处理中的定时处叠加噪声电流,则可能难以隐藏加密处理电路1所消耗的电流Ides。
在图1所示的IC芯片中,在逻辑“0”与“1”电平之间消耗电流Ides的差异出现于加密处理电路1所执行的加密处理中的定时处叠加噪声电流。更明确地说,噪声电流在包含在其中图1所示加密处理电路1被激活的主时钟MCLK的上升沿的时间周期、也就是在定时信号IT设置为逻辑“1”电平的时间周期被叠加。
因此,加密处理电路1所消耗的电流Ides、即在加密处理电路1所执行的加密处理中在逻辑“0”与“1”电平之间的消耗电流Ides的差异可被隐藏,以及整个IC芯片的功耗可减少。
图5是根据本发明的第二实施例的IC芯片的简图。在图5,与图1所示对应的组件被赋予相同的参考标号,因此省略对它们的描述。图5所示的IC芯片具有与图1所示的IC芯片相似的结构,但它还包括噪声生成电路21。
噪声生成电路21具有与图1所示的噪声生成电路5相似的结构。但是,噪声生成电路5和21产生不同类型的噪声电流。
在图5中,噪声生成电路21产生噪声电流In”。
在图5所示的IC芯片中,噪声生成电路21所产生的噪声电流In”从电源线L流到噪声生成电路21。流入电源线L的电流I通过将经由开关4流动的噪声电流In’和噪声电流In”叠加到加密处理电路1所消耗的电流Ides上来得到。
与噪声生成电路5相似,噪声生成电路21根据安全等级控制为产生噪声电流In”而要相加的独立信号的数量。
图6是时序图,表示用于图5所示的IC芯片中的信号。
图6所示的主时钟MCLK、定时信号IT、噪声电流In、噪声电流In’以及加密处理电路1所消耗的电流Ides与图4所示相同。
虽然噪声电流In在图6中与主时钟MCLK同步地变化,但噪声电流In不需要与主时钟MCLK同步地变化。同样的情况适用于噪声电流In”。
图6还表示噪声生成电路21所产生的噪声电流In”以及流入电源线L的电流I。电流I是其中噪声电流In’和In”叠加到消耗电流Ides上的电流。
如图6所示,消耗电流Ides隐藏在电流I中。
使图6(或图4)所示的噪声电流In’仅在开关4根据定时信号IT接通的时间周期里流动,因此是根据定时信号IT的动态噪声电流。
另一方面,图6所示的噪声电流In”始终从电源线L流到噪声生成电路21,因此是静态噪声电流。
在图5所示的IC芯片中,加密处理电路1所消耗的电流Ides通过动态噪声电流In’和静态噪声电流In”来隐藏。因此,图5所示的IC芯片可比图1所示的IC芯片提供对DPA攻击的更强抵抗力。
图7是根据本发明的第三实施例的IC芯片的简图。在图7,与图1所示对应的组件被赋予相同的参考标号,因此省略对它们的描述。图7所示的IC芯片具有与图1所示的IC芯片相似的结构,但它还包括门电路31、开关32和噪声生成电路33。
与门电路3相似,门电路31根据从延迟电路2输出的主时钟MCLK产生定时信号,并将所产生的定时信号提供给开关32。门电路31所产生的定时信号在不同于从门电路3输出的定时信号IT的定时(时间周期)被设置为逻辑“1”电平。
开关32根据从门电路31输出的定时信号接通或断开。
如上所述,门电路31产生不同于从门电路3输出的定时信号IT的定时信号。因此,开关4和32在不同定时处接通或断开。
噪声生成电路33具有与图1所示的噪声生成电路5相似的结构。噪声生成电路5和33可产生不同类型的噪声电流,与图5所示的噪声生成电路5和21相似,或者可产生相同类型的噪声电流。
在图7所示的IC芯片中,开关32的通-断操作使噪声电流In从电源线L流到噪声生成电路33。噪声电流In为动态噪声电流,与开关4的通-断操作引起的从电源线L流到噪声生成电路5的噪声电流In’相似。
因此,在图7所示的IC芯片中,彼此不同的动态噪声电流In’和In叠加在加密处理电路1所消耗的电流Ides上。也就是说,在图7所示的IC芯片中,消耗电流Ides通过两个不同的动态噪声电流In’和In来隐藏。因此,与图5所示的IC芯片相似,图7所示的IC芯片可比图1所示的IC芯片提供对DPA攻击的更强抵抗力。
在图5和图7所示的第二和第三实施例中,两个不同的噪声电流叠加在加密处理电路1所消耗的电流Ides上。但是,三个或三个以上噪声电流可叠加在消耗电流Ides上。
图5所示的IC芯片可以不包括延迟电路2、门电路3以及噪声生成电路5。在这种情况下,只有噪声生成电路21所产生的静态噪声电流In”叠加到加密处理电路1所消耗的电流Ides上。与图5所示的没有包括延迟电路2、门电路3以及噪声生成电路5的IC芯片等效的配置可通过图1所示的IC芯片来实现,其中开关4保持常闭。
图1所示的IC芯片可选择一种其中开关4始终处于接通位置的模式,或者其中开关4根据从门电路3输出的定时信号IT来接通或断开的模式。
在所述实施例中,已经在执行DES加密的IC芯片的上下文中描述了本发明。但是,本发明也可适用于执行DES加密之外的任何类型的加密的IC芯片,或者不仅执行加密处理而且还执行与加密有关的处理、如解密的IC芯片。
本发明可以不仅适用于IC芯片,而且适用于执行数据加密或与加密有关的处理、例如解密的IC卡、读取器/写入器、或者任何其它具有IC卡功能的PDA(个人数字助理)、如蜂窝电话。
所述实施例只是本发明的实例,本发明不限于这些实施例。可进行各种修改而没有背离本发明的范围。
权利要求
1.一种用于执行与对数据加密有关的处理的数据处理电路,包括用于执行与对数据加密有关的处理的处理部件;用于产生噪声的噪声生成部件;以及用于将所述噪声叠加到所述处理部件所消耗的电流上的叠加部件。
2.如权利要求1所述的数据处理电路,其特征在于还包括定时信号生成部件,用于产生表明所述噪声被叠加到所述消耗电流上时的定时的定时信号,其中所述叠加部件根据所述定时信号将所述噪声叠加到所述消耗电流上。
3.如权利要求2所述的数据处理电路,其特征在于,所述处理部件与预定时钟同步地执行所述处理,以及所述定时信号生成部件根据所述预定时钟产生所述定时信号。
4.如权利要求1所述的数据处理电路,其特征在于还包括第二噪声生成部件,用于产生与所述噪声生成部件所产生的所述噪声不同的第二噪声,其中所述第二噪声也被叠加到所述消耗电流上。
5.如权利要求1所述的数据处理电路,其特征在于,所述噪声生成部件通过相加多个独立信号来产生噪声,以及所述数据处理电路还包括控制部件,用于根据加密的安全等级控制使所述噪声生成部件产生所述噪声要相加的信号数量。
6.一种用于数据处理电路的控制方法,所述数据处理电路包括用于执行与对数据加密有关的处理的处理部件,所述控制方法包括产生噪声的噪声生成步骤;以及将所述噪声叠加到所述处理部件所消耗的电流上的叠加步骤。
7.一种用于执行与对数据加密有关的处理的数据处理电路,包括处理器,配置成执行与对数据加密有关的处理;噪声生成器,配置成产生噪声;以及叠加单元,配置成将所述噪声叠加到所述处理器所消耗的电流上。
8.如权利要求7所述的数据处理电路,其特征在于还包括定时信号生成器,所述定时信号生成器配置成产生定时信号,该信号表明所述噪声叠加到所述消耗电流上时的定时,其中所述叠加单元根据所述定时信号将所述噪声叠加到所述消耗电流上。
9.如权利要求8所述的数据处理电路,其特征在于,所述处理器与预定时钟同步地执行所述处理,以及所述定时信号生成器根据所述预定时钟产生所述定时信号。
10.如权利要求7所述的数据处理电路,其特征在于还包括第二噪声生成器,所述第二噪声生成器配置成产生与所述噪声生成器所产生的所述噪声不同的第二噪声,其中所述第二噪声也被叠加到所述消耗电流上。
11.如权利要求7所述的数据处理电路,其特征在于,所述噪声生成器通过相加多个独立信号来产生噪声,以及所述数据处理电路还包括控制器,所述控制器配置成根据加密的安全等级控制使所述噪声生成器产生所述噪声要相加的信号数量。
全文摘要
当加密处理电路对数据加密时,电流流入加密处理电路。噪声生成电路所产生的噪声电流被叠加到加密处理电路所消耗的电流上。本发明适用于采用密钥对明文数据加密的IC芯片,从而防止密钥通过基于电流消耗分析的DPA攻击被破解,从而提供高安全性。
文档编号H04L9/00GK1665180SQ200510053030
公开日2005年9月7日 申请日期2005年3月4日 优先权日2004年3月4日
发明者有泽繁, 江坂征二 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1