CN1957384B - 电子元件和数据处理方法 - Google Patents

电子元件和数据处理方法 Download PDF

Info

Publication number
CN1957384B
CN1957384B CN2004800431276A CN200480043127A CN1957384B CN 1957384 B CN1957384 B CN 1957384B CN 2004800431276 A CN2004800431276 A CN 2004800431276A CN 200480043127 A CN200480043127 A CN 200480043127A CN 1957384 B CN1957384 B CN 1957384B
Authority
CN
China
Prior art keywords
random number
xor
bit
mentioned
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2004800431276A
Other languages
English (en)
Other versions
CN1957384A (zh
Inventor
铃木大辅
佐伯稔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN1957384A publication Critical patent/CN1957384A/zh
Application granted granted Critical
Publication of CN1957384B publication Critical patent/CN1957384B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Logic Circuits (AREA)

Abstract

本发明提供一种不设置进行抵消消耗电力偏离的互补动作的电路,就能够对抗要根据消耗电力确定秘密信息的攻击的电子元件。基本元件(A100)由多个晶体管(101)~晶体管(112)构成。基本元件(A100)输入x1、x2、随机数r、控制信号en作为输入信号,输出z。输出z是将随机数r与(x1^r)&(x2^r)进行异或而输出的。另外,在确定了x1、x2、随机数r的各输入信号的状态转移后,根据控制信号en,输出z。因此,输出z的信号转移率是均等的,能够对抗根据消耗功率确定秘密信息的攻击。

Description

电子元件和数据处理方法 
技术领域
本发明涉及构成实现加密算法的半导体设备的电子元件。例如涉及对根据设备的消耗功率确定在设备内处理的秘密信息的攻击进行对抗的电子元件、数据处理方法。 
背景技术
现有的与半导体设备有关的用于秘密信息保护的对抗措施大致区分为利用了以CPU(中央处理单元)为代表的某特定的半导体设备的基于软件的对抗措施、对半导体设备自身的基于硬件的对抗措施的2种。 
通过以IC卡为代表的同时具有CPU和存储器的设备结构来实现前者的基于软件的对抗措施。例如,在特开2000-066585号公报中,说明了针对广泛使用的共通密钥块密码DES(Data EncryptionStandard),依照预先规定的规则X使用随机数参数R,对于在其算法中使用的被称为S-box的置换表,事先计算与在算法中规定的S-box不同的多个置换表,并将其结果存储在存储器上。在进行算法的处理时,使用非加密文数据M(或加密文数据C)、密钥数据K以及随机数参数R,对加密文数据C(非加密文数据M)进行处理。由此,与通常的只基于M(C)和K的处理相比,正好有R的可取值的个数的量的处理流程发生变化,因此伴随于此的消耗功率也多样化。另外,说明通过使用随机数参数R,无法预测处理的中间值,因此无法根据消耗功率解读秘密信息。其他,特表2002-540654号公报也是类似的对抗措施,但只有上述的规则X和随机数参数R的取值方法不同,本质上是同等的对抗措施。 
通过用半导体设备实现算法时的设计方法,来实现后者的基于硬件的对抗措施。例如,在特表2003-526134号公报中,其对抗措施是: 针对作为数字电路的基本元件的AND门,安装一对其开关特性是互补(抵消)的INV-AND门(以下,将其简称为门对)。说明了由此设备的消耗功率并不依存于算法的中间值,因此无法根据消耗功率解读秘密信息。另外,作为类似的对抗措施,有特开2002-311826号公报。它不以门为单位构成对,而是用某种电路单位(该例子的情况下为实现S-box的电路)构成对。但是,它只是看上去不同,本质上是与特表2003-526134号公报完全一样的对抗措施。 
上述现有的基于门对的对抗措施在原理上是有可能根据消耗功率解读秘密信息的。以下说明其理由。 
门对的安全性的根据在于:AND门和INV-AND门进行完全互补的动作。为了满足该条件,成对的AND门和INV-AND门必须在同一定时下动作,并且与该门的前级连接的负载相等。这是因为即使在动作定时有微小的偏离的情况下,观测的消耗功率也会产生时间差,因各个门产生的功率的相位产生偏离而能够被观测。另外,在某门对的AND门和INV-AND门的负载不同的情况下,该2个门动作之后的消耗功率不同。因此,能够容易地判断哪个门动作了,并不是互补的动作。为了进行互补动作而追加的门(以下将其称为虚拟门)是实现逻辑所不需要的门,并不使用该门的输出。因此,与必要的门相比,虚拟门有其前级的负载减小的倾向。为了实现相同的负载,在并不是门的对,而是对电路全体形成对的情况下,作为例子在特开2002-311826号公报那样的对抗措施的情况下,保证对应的门对在同一定时下动作是非常困难的。这些问题的原因在于:门对或电路对为了实现互补的动作,而存在2个输出节点。 
专利文献1:特开2000-066585号公报 
专利文献2:特表2002-540654号公报 
专利文献3:特表2003-526134号公报 
专利文献4:特开2002-311826号公报 
发明内容
本发明的目的在于:通过用一个输出节点构成原理上进行互补动作的半导体元件,来解决上述时间差的问题和负载的问题。 
本发明的电子元件的特征在于:作为输入信号输入规定的数据与第一随机数的异或的结果,根据输入的输入信号执行规定的逻辑运算,作为输出信号输出执行了的逻辑运算的结果与第二随机数的异或。 
本发明的电子元件的特征在于: 
作为输入信号输入表示将n(n≥1)比特的第一随机数与n比特的数据进行了异或后的数据的XOR数据、n比特的第一随机数、1比特的第二随机数,通过XOR数据和第一随机数的异或而计算出n比特的数据,使用计算出的n比特的数据的各比特,执行规定的逻辑运算,作为输出信号输出执行了的逻辑运算的结果与第二随机数的异或。 
其特征在于: 
上述第一随机数是n比特的各比特相同的值, 
上述第二随机数是与上述第一随机数的各比特的值相等的值。 
上述电子元件的特征在于: 
不依存于输入信号的状态变化,不进行过渡处理,而输出输出信号。 
上述电子元件的特征还在于: 
在输入指示输出信号的输出的指示信号的同时,在输入了指示信号的情况下,输出输出信号。 
其特征在于:上述规定的逻辑运算是与(AND)、与非(NAND)、或(OR)、或非(NOR)、异或(XOR)中的任意一个。 
本发明的电子元件由多个晶体管构成,输入第一随机数、第二随机数、n比特(n≥1)的数据,作为输出信号输出规定的信号,其特征在于: 
在输入了第一随机数、第二随机数和n比特的数据的情况下,执行第一随机数与n比特的数据的异或,使用表示异或的执行结果的各比特,进行规定的逻辑运算,并执行规定的逻辑运算的结果与第二随机数的异或,通过多个晶体管的开关动作而输出表示与所得到的结果等价的 结果的输出信号。 
其特征在于: 
上述第一随机数是各比特相同的值的n比特随机数, 
上述第二随机数是与上述第一随机数的各比特的值相等的值的1比特的随机数。 
其特征在于: 
上述电子元件同时进行上述多个晶体管的开关。 
其特征在于: 
上述电子元件在输入指示输出信号的输出的指示信号的同时,在输入了指示信号的情况下,输出输出信号。 
本发明的电子元件输入第一随机数、第二随机数、n比特(n≥1)的数据,作为输出信号输出规定的信号,其特征在于包括: 
输入第一随机数、第二随机数、n比特的数据的输入部件; 
存储由0和1构成的逻辑数据的存储部件; 
多个晶体管,在上述输入部件输入了第一随机数、第二随机数、n比特的数据的情况下,执行第一随机数与n比特的数据的异或,使用表示异或的执行结果的各比特,进行规定的逻辑运算,并执行规定的逻辑运算的结果与第二随机数的异或,通过开关动作从上述存储部件存储的逻辑数据取得与上述所得到的结果等价的结果,并作为输出信号输出。 
其特征在于: 
上述第一随机数是各比特相同的值的n比特随机数, 
上述第二随机数是与上述第一随机数的各比特的值相等的值的1比特的随机数。 
其特征在于:上述多个晶体管同时进行开关。 
其特征在于: 
上述输入部件还输入指示输出信号的输出的指示信号, 
上述电子元件在输入了指示信号的情况下,输出输出信号。 
本发明的数据处理方法的特征在于: 
作为输入信号输入规定的数据与第一随机数的异或的结果,根据输 入的输入信号执行规定的逻辑运算,作为输出信号输出执行了的逻辑运算的结果与第二随机数的异或。 
本发明的数据处理方法的特征在于:作为输入信号输入表示将n比特的第一随机数与n比特的数据进行了异或后的数据的XOR数据、n比特的第一随机数、1比特的第二随机数,通过XOR数据和第一随机数的异或而计算出n比特的数据,使用计算出的n比特的数据的各比特,执行规定的逻辑运算,作为输出信号输出执行了的逻辑运算的结果与第二随机数的异或。 
通过本发明,不设置进行互补动作的电路,就能够对抗根据消耗功率确定秘密信息的攻击。 
附图说明
图1是表示用于说明实施例1的基本元件A的处理的示意元件20的图。 
图2是表示实施例1的电路30的结构的概要的框图。 
图3是表示实施例1的动作30的动作的流程图。 
图4是表示实施例1的电路31的结构的图。 
图5是表示实施例1的电路30和电路31的各层中使用的控制信号的定时的图。 
图6是表示实施例1的基本元件A100的图。 
图7是表示实施例1的基本元件A100的直值表的图。 
图8A是表示2输入AND门的图。 
图8B是表示2输入AND门的真值表的图。 
图8C是说明2输入AND门的信号转移率的图。 
图9A是表示2输入AND门的图。 
图9B是2输入AND门的真值表。 
图9C是说明2输入AND门的过渡转移和信号转移率的关系的图。 
图10A是表示实施例1的基本元件A100的输入输出的图。 
图10B是表示实施例1的基本元件A100的真值表的图。 
图10C是表示实施例1的基本元件A100的输入信号的变化和输出信号z的关系的图。 
图11是表示与基本元件A100逻辑等价的电路的图。 
图12A是表示在DES算法中定义的S1表的输入输出的图。 
图12B是表示S1表的内容的图。 
图12C是表示输入值和输出值的一个例子的图。 
图13是表示对S1表的第一行进行了等价变形后的公式的图。 
图14是表示实施图13所示的公式的电路结构的图。 
图15是表示实施例2的LUT200的图。 
图16是表示组合实施例2的2输入的基本元件而构成的电路的图。 
图17是表示实施例3的基本元件A300的图。 
图18是表示实施例3的基本元件A400的图。 
图19是表示实施例3的基本元件A500的图。 
图20是表示实施例3的基本元件A600的图。 
图21是表示实施例3的基本元件B700的图。 
图22是表示实施例3的基本元件A800的图。 
图23是表示在进行对策前进行了根据消耗功率确定秘密信息的攻击的情况下的消耗功率的时间变化的曲线图。 
图24是表示在进行对策后进行了根据消耗功率确定秘密信息的攻击的情况下的消耗功率的时间变化的曲线图。 
符号说明 
1:输入数据X,2:选择器,3:随机数产生器,4、5:异或,6:非线性变换S1,7:线性变换L2,8:控制电路,9:定时生成电路TG,10:定时控制电路TC,11:AND 门,12:异或,13、14:寄存器,20:元件,21、22:XOR,23、24:AND门,25:输出点,26:控制信号en,27:XOR,30:电路,31:电路,40:AND门,100:基本元件A,101~112:晶体管,113:施加部件,114:接地,115:上部,116:下部,200:LUT,201~230:支路,250:输入部件,260: SRAM,270:数据列,280:通路晶体管,291、292:LUT,300:基本元件A,400:基本元件A,401~412:晶体管,413:施加部件,414:接地,415:上部,416:下部,417:部分电路,500:基本元件A,501~512:晶体管,600:基本元件A,601~612:晶体管,700:基本元件A,701~718:晶体管,719:施加部件,720:接地,721:上部,722:下部,723:并联电路,724、725、726:并联电路,727:部分电路,800:基本元件A,801~816:晶体管,817:施加部件,818:接地,819:上部,820:下部。 
具体实施方式
实施例1 
使用图1~图11,说明实施例1。实施例1涉及进行非线性变换的处理的基本元件A、进行线性变换的基本元件B、以及使用基本元件A、基本元件B处理加密算法的电路。另外,以下,也将n比特的数据A与n比特的数据B的比特之间的异或表示为A<XOR>B。 
任意的加密算法F为了坚持其安全性,必须组合非线性变换Si(0≤i≤p)、线性变换Lj(0≤j≤q)而构成。这表示在用数字电路实现的情况下,能够等价变换为AND(与)门和XOR(异或)门的组合。当然,也可以组合OR(或)、NOR(或非)、NAND(与非)等基本门来实现。但是,这些处理也能够全部等价变换为AND门和XOR门的组合。因此,以AND和XOR为中心进行说明。权利要求则与AND、XOR、OR、NOR、NAND等全部的基本门对应。 
首先,说明构成非线性变换Si的基本元件A。以下,将构成非线性变换的元件称为基本元件A。另外,非线性变换Si由基本元件A构成。 
图1设想了基本元件A输入2比特的输入数据(x1,x2)的情况,是表示用于说明基本元件A的处理的权宜元件20的图。图1的元件20是用于说明基本元件A的处理的示意结构,并不表示基本元件A的实施例。基本元件A的具体实施例将作为图6的基本元件A100在后面说 明。 
元件20具备XOR22、AND门23、XOR27、AND门24。元件20输入将随机数r与(xi,xj)进行了异或后的x1(x1=xi^r)、x2(x2=xj^r)。另外,输入随机数r和控制信号en26。 
说明元件20的动作。 
(1)元件20输入作为数据(xi,xj)(规定的数据的一个例子)与随机数r(第一随机数的一个例子)的异或的x1(x1=xi^r)、x2(x2=xj^r)。 
(2)XOR22输入(x1,x2)(XOR数据的一个例子)和随机数r,执行异或。即,执行“xi^r^r”、“xj^r^r”。XOR22的输出为xi和xj。 
(3)AND门23输入xi、xj,输出“xi & xj”(输出点25)。 
(4)XOR27输入随机数r(第二随机数的一个例子)和“xi & xj”,输出“xi & xj^r”。 
(5)AND门24输入“xi & xj^r””和控制信号en26,在控制信号en26为“1”时,输出“z=xi & xj^r”。但是这只是一个例子,对于基本元件A的动作,如果将控制信号en的有意义设置为“0”,则也可以通过用OR门置换AND门24的动作来实现。 
另外,如果假设控制信号en是用“上升沿”或“下降沿”来决定有意义的信号,则基本元件A的动作也可以通过以下的方式的动作来实现,即用触发器置换AND门24,根据控制信号en为“上升沿”或“下降沿”来取得XOR27的输出。以下,对于基本元件A的动作,为了简化说明,而将控制信号en的有意义设置“1”,通过基于上述AND门24的动作来进行说明。权利要求与信号的有意义为“0”、“1”、“上升沿”、“下降沿”的全部方式对应。另外,对于基本元件B也一样。 
接着,将n比特输入的情况与图1所示的2比特输入的元件20对比进行说明。在非线性变换Si的各非线性处理中,例如通过根据下述那样的进行从(1a)到(4a)的处理的基本元件A来实现n输入AND。基本元件A输入作为n比特的数据的X(x1,x2,......xn)、作为n比特的随机数的Ra(r1,r2,......rn)(第一随机数的一个例子)、作为1比特的随机数的rb(第二随机数的一个例子)、控制信号en(指令信号的一个例子)作为输入。另外,作为输出而输出 
z=((x1^r1)&(x2^r2)&……(xn^rn)^rb)&en。 
(1a)将n比特的输入X(x1,x2,……xn)(XOR数据的一个例子)与n比特的随机数Ra(r1,r2,……rn)进行异或(另外,假设x1、x2等在输入前与随机数Ra进行了异或)。将其作为X’。在元件20的情况下,是x1=xi^r,x2=xj^r。另外,随机数Ra=(r1,r2)=(r,r)。因此,X’=(xi,xj)。 
(2a)针对X’的全部比特,取得与(AND)。将其作为x”。在元件20的情况下,x”=xi&xj。 
(3a)对x”和作为1比特的随机数的rb进行异或。将其作为y。在元件20的情况下,rb=r,y=xi&xj^r。 
(4a)进行y与控制用信号en的AND并输出。将其作为z。在元件20的情况下,如上所述,z=xi&xj^r。另外,在输出z的情况下,在确定了全部的输入信号后,通过将控制信号en设置为“1”而一起输出。 
用单一的计算元件执行上述(1a)到(4a)的处理的全部,将其作为基本元件A而构成非线性变换Si。在输出z的情况下,如上所述,在确定全部的输入信号后,根据控制信号en一起输出z。 
基本元件A的特征在于以下的点。即,输入对作为现有的加密处理算法的处理对象的数据(xi,xj等)和随机数进行了异或的数据。另外,在将随机数与对作为现有的处理对象的数据的规定的逻辑运算的结果进行了异或的状态下输出。进而,在输出时,在确定了全部的输入信号后输出。根据该特征,能够对根据设备的消耗功率确定在设备内处理的秘密信息的攻击进行对抗。能够对抗的理由如下。将随机数r与输出z进行异或而输出。由于该随机数r以1/2的概率出现“0”、“1”,所以输出z的信号转移率α为1/2。另外,在输出z的情况下,在全部输入信号的状态转移完成了的情况下,执行处理而输出输出信号z。在此,“处理”是指执行以下的一连串的步骤:通过作为n比特的数据的X(XOR数据)与随机数Ra(第一随机数)的异或而计算出n比特的数 据,使用计算出的n比特数据的各比特,执行AND运算(规定的逻辑运算的一个例子),并进行执行了的AND运算(逻辑运算)的结果与随机数Rb(第二随机数)的异或。因此,从攻击者无法检测出输出z的功率的变动。对于后述的基本元件B也一样。对于该特征点,将在图8~图11的说明中进一步说明。 
为了进一步简化基本元件A的结构,也可以只使用1比特的随机数。即, 
(1b)将n比特的输入X(x1,x2,……xn)与基于1比特随机数r的n比特组合进行异或。将其作为X’。即, 
X’=(x1^r,x2^r,……xn^r) 
(2b)针对X’的全部比特取得AND。将其作为x”。即, 
x”=(x1^r)&(x2^r)&……&(xn^r)。 
(3b)对x”和r进行异或。将其作为y。即, 
y=(x1^r)&(x2^r)&……&(xn^r)^r。 
(4b)取得y与控制用信号en的AND并输出。将其作为z。 
用单一的计算元件执行(1b)到(4b)的处理的全部,将其作为基本元件A而构成Si。即,基本元件A(X)为 
z=((x1^r)&(x2^r)&……(xn^r)^r)&en。 
接着,说明构成线性变换Lj的基本元件B的概要。 
以下,将构成线性变换的元件称为基本元件B。假设线性变换Lj由基本元件B构成。在线性变换Lj的各线性处理中,例如用进行下述那样的处理的元件实现n输入XOR。 
(1c)针对n比特的输入X(x1,x2,……xn)的全部比特进行XOR。将其作为x’。即, 
x’=x1^x2^……^xn。 
(2c)对x’和1比特的随机数r进行异或。将其作为y。即 
y=(x1^x2^……^xn)^r。 
(3c)取得y与控制用信号en的AND并输出。将其作为z。 
用单一的计算元件执行(1c)到(3c)的处理的全部,将其作为基 本元件B而构成Lj。即,基本元件B(X)为 
z=(x1^x2^……^xn^r)&en。 
在此,在输入X已经与随机数成分进行了异或的情况下,例如在是A(X)的输出的情况下,如果X是奇数比特列,则不进行(2c)的处理。 
使作为基本元件A、基本元件B的输入使用的控制用信号en比各基本元件的其他输入信号充分延迟地进行变化。即,在上述基本元件A、基本元件B的情况下,只在控制用信号en为逻辑“1”时,以“(加密算法的中间值或处理结果)^随机数值”的形式,各基本元件输出结果,在除此以外的情况下,始终输出0。使用这些基本元件A、基本元件B构成加密算法F。如后述的图2的“最后的变换层”的情况那样,通过针对基本元件A或基本元件B的处理结果,与在之前的处理中使用的随机数进行异或,能够得到加密文或非加密文。 
接着,根据图2,说明使用基本元件A、基本元件B处理加密算法的电路。图2是表示使用基本元件A、基本元件B进行加密算法F的处理的电路30的结构的概要的框图。基本元件A、基本元件B是与加密算法的最小单位的基本运算对应的对抗措施,因此并不只限于适用算法。 
电路30具备选择器2、随机数产生器3、异或4、异或5、非线性变换S16、线性变换L27等、控制电路8、定时生成电路TG9、定时控制电路TC10、AND门11、异或12、寄存器13、寄存器14。非线性变换S16、线性变换L27等形成层。非线性变换Si由基本元件A构成。另外,线性变换Lj由基本元件B构成。 
图3是表示图2所示的电路30的动作的流程图。参考图3,说明电路30的动作。 
输入数据X1(非加密文、加密文、密钥等)通过异或4与随机数R1进行处理,成为X<XOR>R1,并输入到非线性变换S16(S101)。另外,在图2中,按照非线性变换S16、线性变换L2等的顺序形成层。这只是一个例子。非线性变换层、线性变换层的顺序以及层数依存于算法 F和实现方法。来自异或5以上的输入为0,随机数产生器3的最上的输出是随机数R1。另外,从到非线性变换S16的右边的输入是随机数R1和随机数R2。从到非线性变换S16的左边输入上述控制用信号en1 (S102)。控制用信号en1比作为输入信号的X<XOR>R1、R1、R2的信号变化慢地变化为“1”。由控制电路8、定时生成电路TG9、定时控制电路TC10进行该控制。非线性变换S16输出X1<XOR>R2(S103)。同样,线性变换L27输入X1<XOR>R2、R2、以及比这些信号变化慢的控制用信号en2作为输入。由此,线性变换L27输出X2<XOR>R2。以后同样地,循环进行非线性变换、线性变换的处理(S104)。 
另外,在用同一电路处理非线性变换、线性变换的电路的情况下,由选择器2选择在最后的变换层Sn(或Ln)输出的结果Xi<XOR>Rj,再次作为异或4的输入。这时,来自异或5以上的输入是Rj,随机数产生器3的最上的输出是Rj+1。由此,来自异或4的右边的输入为Rj<XOR>Rj+1,异或4的输出为Xi<XOR>Rj+1(S105)。 
在加密算法F的处理所需要的非线性变换、线性变换的处理结束了的阶段,控制电路8向AND 门11输入“1”。由此,在最后的变换层Sn (或Ln)输出的结果Xn<XOR>Rm通过异或12与Rm进行处理,输出数据Xn(S106)。 
图4是针对图2所示的电路30表示将随机数简化为1比特后的电路31的结构的图。例如电路31的非线性变换S1由上述的只使用1比特的随机数的基本元件A构成。电路31与电路30相比,削减了在电路上使用的随机数的个数,因此能够用比电路30少的电路面积实现。 
图5是表示在图2的电路30、图4的电路31的各层中使用的控制信号的定时的图。在使加密算法的处理开始的start信号成为有效后,在针对输入数据X1,选择器2、异或4的处理结束,并且其处理结果充分传递到构成非线性变换S1的基本元件A后,最初的层S1的控制信号en(S1)变化为逻辑1。然后,S1输出运算结果,数据传递到构成L2的基本元件B。在全部数据传递后的阶段,L2的控制信号(L2)变化为逻辑1。对其后的层进行同样的动作,最终作为最后的层的S2i-1的控制信 号en(S2i-1)变化为逻辑1。 
对于上述控制信号,为了进行以下的计算,必须进行将各控制信号设置为逻辑0的初始化处理。初始化的方式有在全部计算结束后的阶段进行的方法。另外,作为其他的方法,如图5所示,还有从上位层顺序地进行初始化的方法。从上位层顺序进行初始化的方法能够缩短到下一个计算开始为止的等待时间,因此能够实现高速处理。但是,在作为初始化对象的层与下一个层之间,需要存储作为初始化对象的层的输出的寄存器。因此,电路成本增加。 
图6是作为上述基本元件A的实施例表示用晶体管具体构成的基本元件A100的图。图6的基本元件A100输入x1(x1=xi^r)、x2(x2=xj^r)、随机数r、控制信号en(指示信号的一个例子)。另外,输出z=((x1^r)&(x2^r)^r)&en。在z的公式中,x1、与x2进行异或的随机数r是第一随机数。第3个随机数r是第二随机数。 
使用图6说明基本元件A100的结构。 
(1)基本元件A100由上部115和下部116的串联连接构成。从上部115和下部116之间输出输出信号z。 
(2)在图6中,记号“!”表示信号的反转。另外,对构成上部115的各晶体管附加的向右的箭头“→”表示在信号为“0”时晶体管导通。另外,对构成下部116的各晶体管附加的向左的箭头“←”表示在信号为“1”时晶体管导通。因此,上部115是在信号为“0”时导通的晶体管的集合。另外,下部116是在信号为“1”时导通的晶体管的集合。向施加部件113施加与逻辑“1”相当的电压。 
(3)在向施加部件113施加与逻辑“1”相当的电压的情况下,根据各晶体管的开关动作,输出 
z=((x1^r)&(x2^r)^r)&en。 
(4)说明基本元件A100的晶体管的结构。上部115的结构是在晶体管101、晶体管102与晶体管103的并联电路、晶体管104与晶体管105的串联连接与晶体管106并联连接的并联电路之间进行串联连接而构成。 
(5)下部116的结构是在晶体管107、晶体管108与晶体管109的串联连接、晶体管110与晶体管111的并联电路与晶体管112的串联连接之间进行并联连接而构成。另外,晶体管107、晶体管109、晶体管112的一端与接地114连接。 
(6)接着说明输入信号。输入信号全部反转而输入到晶体管。 
输入信号x1反转,输入到晶体管102、晶体管104、晶体管108以及晶体管110。 
(7)输入信号x2反转,输入到晶体管103、晶体管105、晶体管109以及晶体管111。 
(8)输入信号r反转,输入到晶体管106和晶体管112。 
(9)输入信号en反转,输入到晶体管101和晶体管107。 
如上所述,基本元件A100输入作为将随机数r与xi、xj的各个进行异或的数据的x1、x2,在将随机数r和与xi、xj对应的规定的逻辑运算结果进行了异或的状态下输出。另外,在输出的情况下,在确定全部的输入信号后一起输出。即,输出信号不受输入信号的过渡转移的影响。另外,不生成从输入到输出的中途的数据地一起输出。由此,能够对抗根据消耗功率确定秘密信息的攻击。 
图6的基本元件A100是2输入AND型,如上所述,输出如下的z。 
A(x1,x2):z=((x1^r) & (x2^r)^r) & en 
在此,x1=xi^r,x2=xj^r。 
图4的用基本元件A100构成非线性变换S1的情况如下。针对作为非线性变换S1的输入的X<XOR>{r,r,r,......r}、r、控制信号en,基本元件A100对任意的2比特进行A(xi^r,xj^r)的处理,输出z。即 
z=(((xi^r)^r) & ((xj^r)^r)) & en。 
另外,在en=1的情况下,输出z=xi & xj^r。 
图7表示基本元件A100的真值表。 
在x1=0的情况下,输出z的信号转移为“从0到1”或“从1到0”的信号转移率α(x1=0)为 
α(x1=0)=P0×P1(x1=0)+P1×P0(x1=0)=1/2。 
在此,P0是z为“0”的概率。P1是z为“1”的概率。根据真值表,P0=4/8,P1=4/8。 
另外,P1(x1=0)是在x1=0的条件下z为“1”的概率。P0(x1=0)是在x1=0的条件下z为“0”的概率。根据真值表,P0(x1=0)=3/4,P1(x1=0)=1/4。 
因此,α(x1=0)=P0×P1(x1=0)+P1×P0(x1=0)=4/8×1/4+4/8×3/4=1/2。 
如果在x1=1的情况下也同样进行计算,则根据真值表,P0(x1=1)=1/4,P1(x1=1)=3/4。 
因此,α(x1=1)=P0×P1(x1=1)+P1×P0(x1=1)=4/8×3/4+4/8×1/4=1/2。因此信号转移率α在输入x1(或x2)为1和0的情况下是相同的。另外,对于输出z,根据控制信号en,在确定了输入信号后一起进行输出。即,输出信号不受输入信号的过渡转移的影响。另外,不生成从输入到输出的中途的数据地一起进行输出。因此,在基本元件A中,无法根据消耗功率预测秘密信息。 
图8A~图8C是说明基本元件A100的随机数r和控制信号en的作用的图。在不使用随机数r和控制信号en的状态下处理上述基本元件A100的xi&xj的情况下,与图8A所示的2输入AND门一样。该情况下的真值表为图8B。在该情况下,根据图8B的真值表,输出中的信号转移率α为 
在xi=0时,α(xi=0)=1/4, 
在xi=1时,α(xi=1)=1/2。即,信号转移率α不同。 
使用图8C详细进行说明。首先在xi=0的情况下,输出z的信号转移为“从0到1”或“从1到0”的信号转移率α(xi=0)为 
α(xi=0)=P0×P1(xi=0)+P1×P0(xi=0)=1/4。 
在此,P0是z为“0 ”的概率。P1是z为“1”的概率。根据图8B的真值表,P0=3/4,P1=1/4。另外,P1(xi=0)是在xi=0的条件下z为“1”的概率。P0(xi=0)是在xi=0的条件下z为“0”的概率。 
根据真值表,P0(xi=0)=1,P1(xi=0)=0。因此 
α(xi=0)=P0×P1(xi=0)+P1×P0(xi=0)=3/4×0+1/4×1=1/4。 
如果在xi=1的情况下也进行同样的计算,则根据真值表,P0(xi=1)=1/2,P1(xi=1)=1/2。因此 
α(xi=1)=P0×P1(xi=1)+P1×P0(xi=1)=3/4×1/2+1/4×1/2=1/2。因此,如上所述,为 
在xi=0时,α(xi=0)=1/4, 
在xi=1时,α(xi=1)=1/2。这样,信号转移率α产生偏差。 
因此,图8A所示的2输入AND在一方的输入xi(或xj)为0和1的情况下产生功率差。因此,能够根据消耗功率预测AND门的输入。由此,能够确定在处理中使用的秘密信息。 
接着,使用图9A~图9C,说明控制信号en。不使用图9A所示那样的控制信号en的基本元件A’在输入信号的变化有时间差的情况下,在过渡转移中产生不依存于随机数的信号变化,信号转移率α产生偏差。因此,能够确定秘密信息。图9B表示图9A的基本元件A’的真值表,另外,图9C表示基本元件A’的信号转移率α。根据图9B的真值表。与输出z有关的信号转移率α(xi=0)、信号转移率α(xi=1)的任意一个都为1/2。但是,在输入信号的变化有时间差的情况下,如下。例如,在基本元件A’中,在如图9C所示那样按照xi、xj、r的顺序信号变化的情况下,在xj变化的时间中,信号转移率α产生与图8C一样的偏差。因此,能够根据消耗功率预测AND门的输入。即使xi、xj、r变化的顺序不同,但只有偏差产生的时间偏移。另外,在输入信号的变化没有时间差的情况下,没有问题。 
图10A~图10C是表示基本元件A100的处理的图。 
图10A是表示基本元件A100的输入输出的图。 
图10B是表示基本元件A100的真值表的图。 
图10C是表示输入信号的变化和输出信号z的关系的图。 
在图10C中,根据图10B的真值表,信号转移率α不依存于xi、xj 的0、1而为1/2。进而,如图10C所示,在控制信号en为0的期间,基本元件A100的输出z始终为0。因此,通过比xi、xj、r的信号变化延迟地使控制信号en为1,则输出z不产生过渡转移,信号转移率α只产生均等的转移。因此,无法根据消耗功率确定秘密信息。 
这样,将对于输入输出值,针对作为现有的处理对象的值的xi、xj 等与随机数进行异或,并且其输出为输出根据控制信号en计算出的结果的情况和输出任意的值那样的处理方式也适用于3输入或以上的AND处理、其他OR、NOR、NAND、XOR等中,构成非线性变换层、线性变换层。 
在通过上述方法构成基本元件时,即使简单地组合现有的基本门进行与上述一样的计算,也不能作为对抗措施发挥功能。例如,图11是图6的等价电路。图11的AND门40表示为了进行xi&xj的处理而进行与图8A一样的动作。因此,由于信号转移率α产生偏差,所以能够预测AND门40的输入。图11的“等价电路”与图1的元件20一样。在元件20的输出点25,与AND门40一样,信号转移率α产生偏差。因此,元件20是用于说明基本元件A的示意的结构。为了防止通过功率消耗泄漏秘密信息,为了针对输入输出值对现有的值与随机数进行异或,并且其输出根据控制信号en一起输出而进行处理,则如图6的基本元件A100那样,必须用一起输出输出z的单一的运算元件实现处理。 
通过安装特表2003-526134号公报、特开2002-311826号公报的门对、电路对等互补电路使信号转移率α均等化的方式并不只限于进行互补动作的电路在同一定时下进行动作,不作为对抗措施发挥功能。另一方面,在本实施例1的基本元件A100中,在单体的运算元件中信号转移率α成为均等,并且输出z不产生过渡转移。因此,不需要“进行互补动作的电路需要在同一定时下动作”的上述那样的条件。因此,能够高效地实现对抗措施。另外,图6的基本元件A100只存在一条输出线。因此,如门对、电路对那样,不需要考虑“输出线的负载的均等 化”。 
实施例1的基本元件A输入n比特的数据与随机数Ra的异或的数据X,执行规定的逻辑运算,作为输出信号输出逻辑运算的结果与随机数rb的异或,因此能够使输出信号的信号转移率均等。因此,通过使得没有消耗功率的偏差,能够对抗根据消耗功率确定秘密信息的攻击。 
实施例1的基本元件A通过使用一种随机数r进行处理来削减随机数的种类,因此与使用多种随机数的情况相比,能够减小安装面积。 
实施例1的基本元件A在输入信号的状态转移完成了的情况下,执行处理而输出输出信号,因此能够使输出的信号转移均等。 
实施例1的基本元件A根据指示输出的控制信号en(指示信号)输出输出z,因此能够使信号转移率均等。 
通过实施例1的基本元件A100,能够对抗根据消耗功率确定秘密信息的攻击。另外,基本元件A100通路晶体管的电路结构而进行硬件的对抗,因此与软件的对抗策略相比,能够进行高速处理。 
实施例1的基本元件A100通过使用一种随机数r进行处理来削减随机数的种类,因此与使用多种随机数的情况相比,能够减小安装面积。 
实施例1的基本元件A100根据指示输出的控制信号en(指示信号)而输出输出z,因此能够使信号转移率均等。 
实施例2 
接着,使用图12A~图16说明实施例2。实施例2说明了通过使用存储器元件而实现与图6所示的实施例1的基本元件A100等价的功能的LUT200(后述的图15)。 
首先,作为非线性层的例子,说明DES的S-box的构成方法。然后,说明在S-box中适用LUT200的情况。 
“S-box”是指针对某输入而进行规定的输出的变换表。在DES中,定义了8种6比特输入、4比特输出的表。可以全部用AND-XOR电路来实现这样的变换表。 
图12A是表示在DES算法中定义的S1表的输入输出的图。如图 12A所示,S1表将6比特的数据{X5,X4,X3,X2,X1,X0}作为输入,变换为4比特的数据{y3,y2,y1,y0}并输出。 
图12B是表示S1表的内容的图。在图12B的S1表中,根据输入数据{X5,X4,X3,X2,X1,X0}的{X5,X0}决定行。另外,根据{X4,X3,X2,X1}决定列。 
图12C是表示输入值和输出值的一个例子的图。 
由于{X5,X4,X3,X2,X1,X0}={011011},所以,{X5,X0}={01}=1。 
因此决定为S1表的第2行。接着,{X4,X3,X2,X1}={1101}=13。因此,决定为S1表的第14列。因此,将{011011}变换为2行14列的“5”(0101)。 
图12B所示的S1表的第1行的“14,4,13,……0,7”可以根据图13所示的y’0等价变形为y’3的公式。同样,第2行以后也可以进行变换。图13的公式与图4的电路31的情况一样,可以如图14所示那样的分别由1层的非线性层和1层的线性层构成。在图14中,与图4的情况一样,输入数据预先通过随机数r进行异或并输入到非线性层。接着,在第1层的非线性层中进行AND处理,在第2层的线性层中进行XOR的处理。 
设想了到此为止说明了的对抗措施如图6的基本元件A100那样,由MOSFET(Metal Oxide Semiconductor Field Effect Transistor)构成的情况。但是,也可以考虑不根据MOSFET电平设计加密算法的电路的情况。例如,也可以考虑设计为以FPGA(Field Programble GateArray)为代表能够改写的半导体设备的情况。在该情况下,为以下这样的设计,即能够由设计者自由地变更基于预先安装在芯片上的SRAM(静态随机存取存储器)而构成的存储器元件(以下将其简称为LUT)、以触发器为代表的存储元件的内部状态、其布线。图15表示这样的设备的实施例。 
图15是表示使用4输入1输出的LUT200实现与图6的基本元件A100等价的功能的结构的图。 
LUT200与基本元件A100等价,作为输入而输入x1、x2、r、en。输出z为z=((x1^r)&(x2^r)^r)&en。 
LUT200具备输入部件250、多个SRAM260等(存储部件)、多个通路晶体管280等。SRAM具有存储实现逻辑函数的值的功能。数据列270(逻辑数据)由各SRAM所存储的数据构成。通路晶体管具有对左右的连线进行开关的功能。 
说明图15的LUT200的结构。各通路晶体管被配置在树结构的各支路上。如后述那样,各通路晶体管被配置在支路201~支路230的30个支路的各个上。输入信号线对配置在各支路上的通路晶体管进行ON/开关动作。如果输入“0”,则作为开关功能的通路晶体管打开。 
(1)接着,说明LUT200的结构。LUT200从输出Z,2分支地分支为支路201、支路202。支路202分支为支路205、支路206的2分支。支路205分支为支路211、支路212的2分支。支路206分支为支路213、支路214的2分支。支路211分支为支路223、支路224的2分支。支路212分支为支路225、支路226的2分支。支路213分支为支路227、支路228的2分支。支路214分支为支路229、支路230的2分支。SRAM与“支路223、支路224、……支路230”的各个连接。 
(2)支路201与支路202一样进行分支。支路201分支为支路203、支路204的2分支。支路203分支为支路207、支路208的2分支。支路204分支为支路209、支路210的2分支。支路207分支为支路215、支路216的2分支。支路208分支为支路217、支路218的2分支。支路209分支为支路219、支路220的2分支。支路210分支为支路221、支路222的2分支。SRAM与“支路215、支路216、……支路222”的各个连接。在图15中,在与支路216、支路218、支路220连接的SRAM中存储“1”。在其他的SRAM中存储“0”。 
(3)说明输入信号。输入信号x2的反转信号被输入到配置在支路201上的通路晶体管。输入信号x2被输入到配置在支路202上的通路晶体管。输入信号x1的反转信号被输入到配置在支路203、支路205上的通路晶体管。输入信号x1被输入到配置在支路204、支路206上的通路 晶体管。输入信号r的反转信号被输入到配置在支路207、支路209、支路211、支路213上的通路晶体管。输入信号r被输入到配置在支路208、支路210、支路212、支路214上的通路晶体管。输入信号en的反转信号被输入到配置在支路215、支路217、支路219、支路221、支路223、支路225、支路227、支路229上的通路晶体管。输入信号en被输入到配置在支路216、支路218、支路220、支路222、支路224、支路226、支路228、支路230上的通路晶体管。 
如果设控制信号en的有意义为“0”,则上述的z=((x1^r)&(x2^r)^r)&en中的“&en”的处理变更为“|en”(与控制信号en的OR),可以以同样的考虑方法,通过LUT实现基本元件A的等价功能。 
另外,如果同时输入输入信号x1、x2、r,则不需要控制信号en。在该情况下,各个对应的晶体管同时进行开关。 
另外,通过在2输入OR、NOR、NAND、XOR等中也适用同样的处理方式,能够对抗根据消耗功率确定秘密信息的攻击。 
在3输入或以上的基本元件中,一般大多是LUT的大小被固定了的情况。因此,如图16所示,通过组合2输入的基本元件而构成是现实的。在该情况下,需要使用2个不同的控制信号。这是因为:如图16所示,对于作为LUT292的输入的LUT291的输出、来自LUT292中的LUT291的输入以外的输入,由于信号变化有时间差,所以在共有控制信号的情况下,由于上述的理由(输入信号的过渡转移),随机性变得不发挥作用。 
根据实施例2的LUT200,能够对抗根据消耗功率确定秘密信息的攻击。 
实施例2的LUT200通过使用一种随机数r进行处理来削减随机数的种类,因此与使用多种随机数的情况相比,能够减小安装面积。 
实施例2的LUT200的多个晶体管同时进行开关,因此不出现从输入到输出的中途过程,能够使信号转移率均等。 
实施例2的LUT200根据指示输出的控制信号en(指示信号)输出输出z,因此,能够使信号转移率均等。
实施例3 
接着,使用图17~图22,说明与图6的基本元件A100、图15的LUT200不同的基本元件。图17~图22所示的一连串基本元件与基本元件A100、LUT200等一样,能够对抗根据消耗功率确定秘密信息的攻击。 
图17是表示实施例3的基本元件A300的图。基本元件A300相对于图6的基本元件A100,构成为削减了输入控制信号en的晶体管101和晶体管107。即,基本元件A300的输入信号是x1、x2、r。另外,输出z为z=((x1^r) & (x2^r)^r)。 
不存在控制信号en。基本元件A300是设想了以相同的定时将输入信号x1、x2、r输入到各晶体管的情况的元件。 
即,由于同时输入输入信号,所以同时进行对应的多个晶体管的开关动作。这是因为在该情况下不需要控制信号en。 
实施例3的基本元件A300不需要输入控制信号en,因此能够以简单的结构实现。 
图18是表示实施例3的基本元件A400的图。相对于图6的基本元件A100是2输入AND型,基本元件A400是2输入OR型。输入信号是x1、x2、r、en。另外,输出z为z=((x1^r)|(x2^r)^r) & en。 
与基本元件A100的情况一样,输入x1、x2为x1=xi^r,x2=xj^r。因此,将随机数与输入输出进行异或。通过根据控制信号en进行各晶体管的开关,来一起输出z。由此,与基本元件A100一样,能够对抗根据消耗功率确定秘密信息的攻击。 
(1)说明基本元件A400的结构。基本元件A400由上部415和下部416的串联连接构成。从上部415和下部416之间输出输出信号z。 
(2)在图18中,记号“!”、向右的箭头“→”、向左的箭头“←”与图6的情况一样。另外,它们的含意对于后述的图19~图22也一样。向施加部件413施加与逻辑“1”对应的电压。 
(3)在向施加部件413施加了与逻辑“1”对应的电压的情况下,根 据各晶体管的开关,输出z=((x1^r)|(x2^r)^r) & en。 
(4)上部415由晶体管401和部分电路417的串联连接构成。 
晶体管401的一端与施加部件413连接,另一端与部分电路417连接。部分电路417将晶体管402与晶体管403的串联连接、晶体管404与晶体管405的并联电路与晶体管406的串联连接并联连接起来。 
(5)下部416的晶体管的结构是与图6的基本元件A100的下部116一样的结构。即,晶体管407~晶体管412的配置与晶体管107~晶体管112的配置一样。其中,相对于向下部116的晶体管112输入输入信号r的反转信号,输入信号r不进行反转而直接输入到下部416的晶体管412。 
(6)接着,说明输入信号。输入信号x1的反转信号输入到晶体管402、晶体管404、晶体管408、晶体管410。 
(7)输入信号x2的反转信号输入到晶体管403、晶体管405、晶体管409、晶体管411。 
(8)输入信号r输入到晶体管406和晶体管412。 
(9)输入信号en的反转信号输入到晶体管401、晶体管407。 
图19是表示实施例3的基本元件A500的图。相对于图6的基本元件A100是2输入AND型,基本元件A500是2输入NAND型。输入信号是x1、x2、r、en。另外,输出z为z=(~((x1^r) & (x2^r))^r) & en。与基本元件A100的情况一样,输入信号x1、x2为x1=xi^r,x2=xj^r。 
因此,将随机数与输入输出进行异或。通过根据控制信号en进行各晶体管的开关动作,而一起输出z。由此,与基本元件A100一样,能够对抗根据消耗功率确定秘密信息的攻击。 
(1)基本元件A500的晶体管的结构如图19所示,与图18的基本元件A400一样。其中,输入到各晶体管的信号的反转不同。 
(2)说明输入信号。输入信号x1被输入到晶体管502、晶体管504、晶体管508、晶体管510。 
(3)输入信号x2输入到晶体管503、晶体管505、晶体管509、晶 体管511。 
(4)将输入信号r输入到晶体管506和晶体管512。 
(5)将输入信号en的反转信号输入到晶体管501和晶体管507。 
图20是表示实施例3的基本元件A600的图。相对于图6的基本元件A100是2输入AND型,基本元件A600是2输入NOR型。输入信号是x1、x2、r、en。另外,输出z为“z=(~((x1^r)|(x2^r))^r) & en”。与基本元件A100的情况一样,输入x1、x2为x1=xi^r,x2=xj^r。 
因此,将随机数与输入输出进行异或。通过根据控制信号en进行各晶体管的开关动作,而一起输出z。由此,与基本元件A100一样,能够对抗根据消耗功率确定秘密信息的攻击。 
(1)基本元件A600的晶体管的结构如图20所示,与图18的基本元件A400一样。其中,输入到各晶体管的信号的反转有无是不同的。 
(2)说明输入信号。输入信号x1被输入到晶体管602、晶体管604、晶体管608、晶体管610。 
(3)输入信号x2输入到晶体管603、晶体管605、晶体管609。另外,输入信号x2的反转信号输入到晶体管611。 
(4)将输入信号r的反转信号输入到晶体管606和晶体管612。 
(5)将输入信号en的反转信号输入到晶体管601和晶体管607。 
图21是表示实施例3的基本元件B700的图。相对于图6的基本元件A100是2输入AND型,基本元件B700是2输入XOR型。输入信号是x1、x2、r、en。另外,输出z为z=((x1^r)^(x2^r)^r)& en。与基本元件A100的情况一样,输入x1、x2为x1=xi^r,x2=xj^r。 
因此,将随机数与输入输出进行异或。通过根据控制信号en进行各晶体管的开关动作,而一起输出z。由此,与基本元件A100一样,能够对抗根据消耗功率确定秘密信息的攻击。 
(1)基本元件B700由上部721和下部722的串联连接构成。从上部721和下部722之间输出输出信号z。 
(2)向施加部件719施加相当于逻辑“1”的电压。 
(3)在向施加部件719施加相当于逻辑“1”的电压的情况下,通过各晶体管的开关动作,输出 
z=((x1^r)^(x2^r)^r)&en。 
(4)上部721由晶体管701和部分电路727的串联连接构成。晶体管701的一端与施加部件719连接,另一端与部分电路727连接。 
(5)说明部分电路727的结构。部分电路727将晶体管702与并联电路723的串联连接、并联电路724与晶体管709的串联连接并联连接起来。 
另外,并联电路723是对晶体管703与晶体管704的串联连接、晶体管705与晶体管706的串联连接进行并联连接而构成并联电路。 
另外,并联电路724是由晶体管707和晶体管708构成并联电路。 
(6)以下,说明下部722的结构。 
下部722是对晶体管710、并联电路725与晶体管715的串联连接、并联电路726与晶体管718的串联连接进行并联连接。另外,并联电路725与并联电路723一样,对晶体管711与晶体管712的串联连接、晶体管713与晶体管714的串联连接进行并联连接,构成并联电路。并联电路726与并联电路724一样,由晶体管716和晶体管717构成并联电路。 
(7)以下,说明向各晶体管的输入信号。输入信号x1输入到晶体管703、晶体管707、晶体管711、晶体管716。另外,输入信号x1的反转信号输入到晶体管705、晶体管713。输入信号x2输入到晶体管704、晶体管708、晶体管712、晶体管717。另外,输入信号x2的反转信号输入到晶体管706、晶体管714。输入信号r输入到晶体管709、晶体管718。输入信号r的反转信号输入到晶体管702、晶体管715。输入信号en的反转信号输入到晶体管701、晶体管710。 
图22是表示实施例3的基本元件A800的图。相对于图6的基本元件A100是2输入AND型,基本元件A800是3输入AND型。输入信号是x1、x2、x3、r、en。另外,输出z为z=((x1^r)&(x2^r)& (x3^r)^r)&en。与基本元件A100的情况一样,输入x1、x2、x3为x1=xi^r,x2=xj^r,x3=xk^r。 
因此,将随机数与输入输出进行异或。通过根据控制信号en进行各晶体管的开关动作,而一起输出z。由此,与基本元件A100一样,能够对抗根据消耗功率确定秘密信息的攻击。 
(1)基本元件A800由上部819和下部820的串联连接构成。从上部819和下部820之间输出输出信号z。 
(2)向施加部件817施加相当于逻辑“1”的电压。 
(3)在向施加部件817施加了相当于逻辑“1”的电压的情况下,通过各晶体管的开关动作,输出 
z=((x1^r)&(x2^r)&(x3^r)^r)&en。 
(4)上部819通过将晶体管801、基于晶体管802和晶体管803和晶体管804的并联电路、基于晶体管805和晶体管806和晶体管807的串联连接与晶体管808的并联电路进行串联连接而构成。 
(5)下部820将晶体管809、基于晶体管810和晶体管811和晶体管812的串联连接、基于晶体管813和晶体管814和晶体管815的并联电路与晶体管816的串联连接进行并联连接,而构成并联电路。 
(6)以下,说明向各晶体管的输入信号。在基本元件A800中,作为输入信号的x1、x2、x3、r、en全部反转地输入到各晶体管。输入信号x1的反转信号输入到晶体管802、晶体管805、晶体管810、晶体管813。输入信号x2的反转信号输入到晶体管803、晶体管806、晶体管811、晶体管814。输入信号x3的反转信号输入到晶体管804、晶体管807、晶体管812、晶体管815。输入信号r的反转信号输入到晶体管808、晶体管816。输入信号en的反转信号输入到晶体管801、晶体管809。 
图23是表示在进行了根据消耗功率确定秘密信息的攻击的情况下的消耗功率的时间变化的曲线图。图23针对不使用基本元件A、基本元件B的由AND电路、XOR电路构成的电路表示出采取对策前的状态。如图所示,在执行AND计算和XOR计算时,出现消耗电量的峰 值。根据该峰值的出现,能够确定秘密信息。 
图24相对于图23表示出使用基本元件A、基本元件B采取对策的情况。图23的情况下出现的峰值消失了。通过该峰值的消失,而变得无法确定秘密信息了。 

Claims (14)

1.一种构成实现加密算法的半导体设备的电子元件,其特征在于:
具有用于进行异或运算的第一异或运算电路和第二异或运算电路,
作为输入信号输入:对n比特的数据和n比特的第一随机数进行了异或运算后的XOR数据、n比特的第一随机数、1比特的第二随机数,
利用上述第一异或运算电路,运算出XOR数据与第一随机数的异或而计算出n比特的数据,
使用计算出的n比特的数据的各比特,执行规定的逻辑运算,
利用上述第二异或运算电路,对所执行的1比特的逻辑运算结果和第二随机数进行异或运算后,作为输出信号输出,其中n≥1。
2.根据权利要求1所述的构成实现加密算法的半导体设备的电子元件,其特征在于:
上述第一随机数的各比特的值相同,
上述第二随机数具有与上述第一随机数的各比特相同的1比特的值。
3.根据权利要求1所述的构成实现加密算法的半导体设备的电子元件,其特征在于:
上述电子元件在输入信号的状态转移结束了的情况下,执行处理而对输出信号进行输出。
4.根据权利要求1所述的构成实现加密算法的半导体设备的电子元件,其特征在于:
上述电子元件进而在输入指示输出信号的输出的指示信号的同时,在输入了指示信号的情况下,对输出信号进行输出。
5.根据权利要求1所述的构成实现加密算法的半导体设备的电子元件,其特征在于:
上述规定的逻辑运算是与、与非、或、或非、异或中的任意一个,其中,与是AND,与非是NAND,或是OR,或非是NOR,异或是XOR。
6.一种构成实现加密算法的半导体设备的电子元件,由多个晶体管构成,输入第一随机数、第二随机数、n比特的数据,作为输出信号输出规定的信号,其特征在于:
上述多个晶体管包括用于进行异或运算的第一异或运算电路和第二异或运算电路,
在输入了第一随机数、第二随机数和n比特的数据的情况下,
利用上述第一异或运算电路,执行第一随机数与n比特的数据的异或而得到第一结果,
使用表示上述第一结果的各比特,进行规定的逻辑运算而得到第二结果,
利用上述第二异或运算电路,执行上述第二结果与第二随机数的异或而得到第三结果,
通过开关动作而输出表示与上述第三结果等价的第四结果的输出信号,其中n≥1。
7.根据权利要求6所述的构成实现加密算法的半导体设备的电子元件,其特征在于:
上述第一随机数的各比特的值相同,
上述第二随机数具有与上述第一随机数的各比特相同的1比特的值。
8.根据权利要求6所述的构成实现加密算法的半导体设备的电子元件,其特征在于:
上述电子元件同时进行上述多个晶体管的开关动作。
9.根据权利要求6所述的构成实现加密算法的半导体设备的电子元件,其特征在于:
上述电子元件在输入指示输出信号的输出的指示信号的同时,在输入了指示信号的情况下,对输出信号进行输出。
10.一种构成实现加密算法的半导体设备的电子元件,输入第一随机数、第二随机数、n比特的数据,作为输出信号输出规定的信号,其中n≥1,其特征在于包括:
输入第一随机数、第二随机数、n比特的数据的输入部件;
存储由0和1构成的逻辑数据的存储部件;以及
多个晶体管,
上述多个晶体管包括用于进行异或运算的第一异或运算电路和第二异或运算电路,
在上述输入部件输入了第一随机数、第二随机数、n比特的数据的情况下,
利用上述第一异或运算电路,执行第一随机数与n比特的数据的异或而得到第一结果,
使用表示上述第一结果的各比特,进行规定的逻辑运算而得到第二结果,
利用上述第二异或运算电路,执行上述第二结果与第二随机数的异或而得到第三结果,
通过开关动作从上述存储部件所存储的逻辑数据取得与上述第三结果等价的第四结果,并作为输出信号输出。
11.根据权利要求10所述的构成实现加密算法的半导体设备的电子元件,其特征在于:
上述第一随机数的各比特的值相同,
上述第二随机数具有与上述第一随机数的各比特相同的1比特的值。
12.根据权利要求10所述的构成实现加密算法的半导体设备的电子元件,其特征在于:
上述多个晶体管同时进行开关动作。
13.根据权利要求10所述的构成实现加密算法的半导体设备的电子元件,其特征在于:
上述输入部件还输入指示输出信号的输出的指示信号,
上述电子元件在输入了指示信号的情况下,对输出信号进行输出。
14.一种在构成实现加密算法的半导体设备的电子元件中的数据处理方法,其特征在于:
作为输入信号输入:对n比特的数据和n比特的第一随机数进行了异或运算后的XOR数据、n比特的第一随机数、1比特的第二随机数,
利用用于进行异或运算的第一异或运算电路,运算出XOR数据与第一随机数的异或而计算出n比特的数据,
使用计算出的n比特的数据的各比特,执行规定的逻辑运算,
利用用于进行异或运算的第二异或运算电路,对所执行的1比特的逻辑运算结果和第二随机数进行异或运算后,作为输出信号输出,其中n≥1。
CN2004800431276A 2004-07-07 2004-07-07 电子元件和数据处理方法 Expired - Fee Related CN1957384B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2004/009633 WO2006006199A1 (ja) 2004-07-07 2004-07-07 電子素子及びデータ処理方法

Publications (2)

Publication Number Publication Date
CN1957384A CN1957384A (zh) 2007-05-02
CN1957384B true CN1957384B (zh) 2011-04-06

Family

ID=35783565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800431276A Expired - Fee Related CN1957384B (zh) 2004-07-07 2004-07-07 电子元件和数据处理方法

Country Status (6)

Country Link
US (1) US8577942B2 (zh)
EP (1) EP1764762B1 (zh)
JP (1) JP4589327B2 (zh)
CN (1) CN1957384B (zh)
TW (1) TWI276337B (zh)
WO (1) WO2006006199A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2954868A1 (fr) * 2009-12-24 2011-07-01 St Microelectronics Rousset Procede et dispositif de contremesure pour proteger des donnees circulant dans un composant electronique
JP5322977B2 (ja) * 2010-03-04 2013-10-23 株式会社エヌ・ティ・ティ・データ 消費電力錯乱型論理回路及び情報記憶媒体
JP5544611B2 (ja) 2010-07-28 2014-07-09 学校法人立命館 耐タンパ性メモリ集積回路およびそれを利用した暗号回路
JP2012150661A (ja) * 2011-01-19 2012-08-09 Toshiba Corp プロセッサ動作検査システム、及びその検査方法
US10905305B2 (en) * 2011-05-20 2021-02-02 Ecolab Usa Inc. Automated cleaning method and apparatus
CN104333362B (zh) * 2014-09-16 2017-07-04 哈尔滨工业大学(威海) 一种同或‑异或双轨预充电逻辑单元
CN108092760A (zh) * 2016-11-22 2018-05-29 北京同方微电子有限公司 一种分组密码的协处理器装置和非线性变换方法
TWI631544B (zh) * 2017-03-03 2018-08-01 友達光電股份有限公司 顯示面板及驅動方法
CN110414276B (zh) * 2018-04-27 2021-05-18 联华电子股份有限公司 电子元件的加密方法
CN109359470B (zh) * 2018-08-14 2020-09-01 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1272010A (zh) * 1999-04-28 2000-11-01 富士软件Abc株式会社 加密/解密方法和使用多仿射密钥系统的验证方法及装置
CN1358376A (zh) * 1999-03-08 2002-07-10 格姆普拉斯公司 在实现密钥加密算法的电子元件中的对抗方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5808486A (en) * 1997-04-28 1998-09-15 Ag Communication Systems Corporation Glitch free clock enable circuit
AU6381699A (en) 1998-06-03 2000-01-10 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
AU6238499A (en) 1998-06-03 2000-01-10 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
DE19850721A1 (de) 1998-11-03 2000-05-18 Koninkl Philips Electronics Nv Datenträger mit Verschleierung des Stromverbrauchs
FR2789776B1 (fr) 1999-02-17 2001-04-06 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
JP3844116B2 (ja) 2001-04-16 2006-11-08 株式会社ルネサステクノロジ 暗号化・復号化装置とicカード
JP4596686B2 (ja) 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
KR100446317B1 (ko) * 2001-12-24 2004-09-01 주식회사 하이닉스반도체 코드 롬의 테스트시 데이터를 보호하기 위한 장치
DE10201449C1 (de) * 2002-01-16 2003-08-14 Infineon Technologies Ag Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
EP1351148A3 (en) 2002-04-04 2008-05-07 Texas Instruments Incorporated Power profiling system and method for correlating runtime information
US7403620B2 (en) * 2002-07-02 2008-07-22 Stmicroelectronics S.A. Cyphering/decyphering performed by an integrated circuit
KR101061906B1 (ko) * 2004-02-19 2011-09-02 삼성전자주식회사 전력분석공격에 안전한 기본 연산 장치 및 방법
KR100594265B1 (ko) * 2004-03-16 2006-06-30 삼성전자주식회사 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
JP4271077B2 (ja) * 2004-04-30 2009-06-03 株式会社東芝 マスク論理回路及び暗号装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1358376A (zh) * 1999-03-08 2002-07-10 格姆普拉斯公司 在实现密钥加密算法的电子元件中的对抗方法
CN1272010A (zh) * 1999-04-28 2000-11-01 富士软件Abc株式会社 加密/解密方法和使用多仿射密钥系统的验证方法及装置

Also Published As

Publication number Publication date
EP1764762B1 (en) 2019-05-15
TW200603591A (en) 2006-01-16
JP4589327B2 (ja) 2010-12-01
US8577942B2 (en) 2013-11-05
EP1764762A1 (en) 2007-03-21
WO2006006199A1 (ja) 2006-01-19
EP1764762A4 (en) 2009-11-18
CN1957384A (zh) 2007-05-02
JPWO2006006199A1 (ja) 2008-04-24
US20080021940A1 (en) 2008-01-24
TWI276337B (en) 2007-03-11

Similar Documents

Publication Publication Date Title
Miller et al. Spectral techniques for reversible logic synthesis
CN100583739C (zh) 加密装置、加密方法及其存储介质
Etzion et al. Algorithms for the generation of full-length shift-register sequences
JP4687775B2 (ja) 暗号処理装置
CN107070630B (zh) 一种aes算法的快速安全硬件结构
Zhong et al. On minimum period of nonlinear feedback shift registers in grain-like structure
CN1957384B (zh) 电子元件和数据处理方法
CN101009554A (zh) 一种抗功耗攻击的字节替换电路
CN102880840B (zh) 一种用于防御攻击的电流型物理不可克隆函数电路
CN104852795B (zh) 一种轮输出为布尔掩码的zuc序列密码算法掩码防护方法
CN101957741A (zh) 一种基于亚阈值特性的真随机数发生器
CN101782846B (zh) 用于蒙哥马利乘法的运算电路及密码电路
US10437561B2 (en) Stochastic parallel microprocessor
CN101431405B (zh) Des加密方法及其硬件电路实现方法
CN103761068A (zh) 优化的蒙哥马利模乘方法、模平方方法和模乘硬件
KR101061906B1 (ko) 전력분석공격에 안전한 기본 연산 장치 및 방법
CN106230580A (zh) 一种可变密钥多重加密方法
CN108650072A (zh) 一种支持多种对称密码算法芯片及其抗攻击电路实现方法
CN101866401A (zh) 演化s盒对抗旁路式攻击的方法
CN107171782A (zh) 一种基于可逆逻辑电路的aes私密日志加密方法
US20060161610A1 (en) Device and method for generating a sequence of numbers
CN201039199Y (zh) 一种抗功耗攻击的字节替换电路
CN102135871B (zh) 利用混沌原理产生随机数的装置及其动态口令牌
Sarkar The filter-combiner model for memoryless synchronous stream ciphers
CN108566271A (zh) 复用轮变换电路、aes加密电路及其加密方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110406

Termination date: 20200707

CF01 Termination of patent right due to non-payment of annual fee