CN101206816A - 运算处理装置、运算处理控制方法以及计算机程序 - Google Patents
运算处理装置、运算处理控制方法以及计算机程序 Download PDFInfo
- Publication number
- CN101206816A CN101206816A CNA2007103021527A CN200710302152A CN101206816A CN 101206816 A CN101206816 A CN 101206816A CN A2007103021527 A CNA2007103021527 A CN A2007103021527A CN 200710302152 A CN200710302152 A CN 200710302152A CN 101206816 A CN101206816 A CN 101206816A
- Authority
- CN
- China
- Prior art keywords
- input
- selector switch
- selection signal
- signal
- door
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
本发明公开了运算处理装置、运算处理控制方法及计算机程序,其中,适于对输入位执行数据变换的运算处理装置具有适于对输入位执行数据变换的逻辑电路。逻辑电路包括被配置分层结构中并被对应于输入位的选择信号所控制的选择器。选择输入至位于分层结构的底层中的选择器的恒定值,并将其从一层向另一层朝向顶层传送。最终从顶层选择并输出恒定值。由控制单元控制数据变换处理,使得交替执行预充电阶段和评估阶段。在预充电阶段中,将对选择器的所有输入值都设定为相等。在评估阶段中,产生给定输入位的输出位。在预充电阶段中切换选择信号。本发明的逻辑运算装置对于DPA(差分功耗分析)等具有高抵抗性。
Description
相关申请的交叉参考
本发明包含于2006年12月15日在日本专利局提交的日本专利申请JP 2006-337828的主题,其全部内容结合于此作为参考。
技术领域
本发明涉及运算处理装置、运算处理控制方法以及计算机程序。更具体地,本发明涉及使用逻辑电路的运算处理装置、运算处理控制方法以及计算机程序,能够有效地执行与诸如根据AES(高级加密标准)标准的通用密匙加密或诸如根据RSA(Rivest-Sharmir-Adleman)算法的公共密匙加密相关的运算,或者有效地执行与诸如根据SHA-1(安全哈希算法1)的哈希函数相关的运算。
背景技术
近年来,网络通信和电子商务已经变得非常受欢迎。因此,通信中的安全性变得越来越重要。在通信中实现高安全性的一种技术是使用密码,并且实际在通信中使用许多加密技术。
加密方法被分为两种类型:通用密匙加密和公共密匙加密。通用密匙加密技术的特定实例是使用DES(数据加密标准)算法以及使用AES(高级加密标准)算法的技术。AES加密被广泛地用作DES加密的后继加密算法。公共密匙加密的特定实例是RSA(Rivest-Shamir-Adleman)加密和ECC(椭圆曲线密码学)加密。
用于根据这种算法执行加密处理的加密处理装置可以通过执行以诸如C的程序语言所写的程序在CPU上实现,或者可以以使用各种门电路的硬件装置的形式实现。
加密处理装置执行数据加密处理以将给出的明文加密成密文,或执行数据解密处理以将给出的密文解密成明文。期望以安全的方式执行加密或解密处理,使得信息不被泄露。然而,实际上,已知各种分析或攻击用在加密或解密中的密匙或算法的技术。攻击方法可以分成两种类型:破坏性攻击和非破坏性攻击。
在破坏性攻击中,通过使用诸如硝酸的化学剂的化学处理来溶解IC芯片的封装,并从IC芯片的暴露管芯中物理地读取秘密信息。众所周知,根据暴露管芯上的互连配线再现电路。这就是所知的逆向工程。可以从互连配线中直接提取出秘密信息。此外,还知道通过用激光束或电磁波照射存储单元来检测存储单元的状态以观察在存储器中写入的秘密信息。
非破坏性攻击还被称作侧信道攻击。在这种方法中,IC芯片的封装没有被化学溶解,但是由可从外部获得的诸如消耗电流、电磁辐射、运算时间等的物理信息检测秘密信息。例如,在由Kocher等人1999年所写的论文(Paul C.Kocher,Joshaua Jaffe和BeniaminJun,“Differential Power Analysis”,CRYPTO 1999,Lecture Note inComputer Science,Vo1.1666,Springer-Verlag(1999),388-397页(下文称作非专利文献1))中,讨论了通过观察当由装置执行根据DES算法(通用密匙加密技术的一种)的加密处理时所发生的消耗电流消的变化来检测密匙信息(秘密信息)的技术。攻击技术的存在导致了秘密信息被泄露为不是秘密的可能性,因此,需要更安全地保护信息的技术。
更具体地,在非专利文献1中讨论的DPA(差分功耗分析)攻击中,为许多对应于不同的输入明文的加密运算观察电流消耗,并基于秘密信息的位值统计地分析电流消耗。经由统计分析检测与秘密信息具有相关性的电流消耗模式,并从电流消耗模式中提取秘密信息。
已经建议了上述防止秘密信息被攻击的各种技术。例如,在Elisabeth Oswald等人的论文(Elisabeth Oswald,Stefan Mangard,Norbert Pramstaller,“A Side-Channel Analysis Resistant Description ofthe AES S-box”,FSE 2005,LNCS 3557,413-423页(下文称作非专利文献2))中讨论了保护与AES算法(通用密匙加密方法的一种)相关的信息的技术。在这种技术中,通过使用随机数来隐藏包括秘密信息的中间值来保护称作AES运算中字节替换(subbyte)转换的S盒(S-box)运算。
在Kris Tiri等人的论文(Kris Tiri,Ingrid Verbauwhede,“SecuringEncryption Algorithms against DPA at the Logic Level:NextGeneration Smart Card Technology”,CHES 2003,LNCS 2779,125-136页(下文称作非专利文献3))中公开了使用WDDL(波形差分动态逻辑)的技术,通过交替执行预充电(pre-charge)阶段中的运算和评估(evaluation)阶段的运算来保护秘密信息。
在预充电阶段中,初始化门电路,并在评估阶段中执行实际运算。以互补形式给出门电路的输入,并且来自门电路的输出以互补形式出现。为互补输入形成正逻辑和负逻辑,从而获得互补输出。在交替执行预充电阶段和评估阶段且输入和输出以互补形式出现的WDDL技术中,仅在从预充电阶段向评估阶段或从评估阶段向预充电阶段的转换处允许任意信号的变化。
由于WDDL的上述特性,所以不会发生不必要的瞬时变化。除此之外,在WDDL中,响应于任意输入,两个输出中仅有一个发生变化。因此,CMOS(互补金属氧化物半导体)逻辑的电流消耗不发生改变,这是因为仅当逻辑状态发生变化时才发生充电/放电。因此,不会发生依赖于秘密信息位值的电流消耗的变化。这有效地保护秘密信息不受DPA攻击。
可通过使用例如二元判定图(BDD)的硬件执行称作AES算法中字节替换转换运算的内部S盒运算。稍后将详述二元判定图(BDD)。例如,在日本未审查专利申请公开第2003-223100号(下文称作专利文献1)中,同样可以找到二元判定图(BDD)的描述。
专利文献1包括通过组合电路和其实际实现的S盒或二元判定图(BDD)结构的讨论。使用通用密匙加密的加密运算包括使用称作S盒的非线性变换单元的非线性变换处理。加密运算的总运算速度极大地依赖于S盒的运算速度。例如,用于AES算法的S盒需要用于在Galois域中确定逆元(inverse element)的电路。
如果使用合成域等而不是二元判定图(BDD)来实现这种电路,则电路延迟比基于二元判定图(BDD)的电路中的延迟大几倍。因此,从运算速度的观点来看,期望实现使用二元判定图(BDD)的电路。
发明内容
然而,在非专利文献1中描述的保护秘密信息的技术中,由于内部信号间的传播延迟中差而使信号电平发生瞬时变化,并且存在从这个瞬时变化中检测出包括秘密信息的中间值的可能性。因此,秘密信息没有被完全隐藏。
在非专利文献2中公开的使用WDDL的技术中,需要确定电路配线布局,使得不存在互补信号间的传播延迟差。在运算中,如果在两个输入间存在巨大的传播延迟差,则该差可引起秘密信息被DPA攻击检测到。
当使用二元判定图(BDD)实现非线性变化电路以获得高运算速度时,有可能发生DPA攻击从信号的不必要的瞬时变化中检测到诸如密钥的秘密信息。即,在由基于二元判定图(BDD)的逻辑电路执行的运算中,发生内部信号的瞬时变化。因此,可通过DPA攻击从瞬时变化中检测到秘密信息。
考虑到上述问题,期望提供运算处理装置、运算处理控制方法以及计算机程序,能够使用逻辑电路执行运算,其中,逻辑电路具有最小的延迟差而不具有信号的不必要的瞬时变化,并对诸如试图泄露秘密信息的DPA攻击的攻击具有高抵抗性。
根据本发明的一个实施例,提供了一种运算处理装置,用于对输入位执行数据变换,其包括逻辑电路以及适于使用逻辑电路控制数据变换处理的控制单元,其中,逻辑电路包括被输入其中的选择信号所控制的多个选择器,由输入位给出选择信号,选择器以分层结构配置,使得将恒定值输入至位于底层中的多个选择器,对于每一层根据选择信号选择恒定值并将其传送给更高层中的选择器,以及一恒定值最终被最高层中的一选择器选择并从最高层中的该选择器输出。控制单元控制数据变换处理,使得交替执行预充电阶段和评估阶段,在预充电阶段中,将对逻辑电路中的选择器的所有输入值设定为相等,在评估阶段中,产生对应于输入位的输出位,由输入位所给出的选择信号在预充电阶段中被切换。
在该运算处理装置中,逻辑电路中的每个选择器均可包括:第一与门,向其输入一个恒定值和选择信号;第二与门,向其输入一个恒定值和选择信号的反相选择信号;以及或门,向其输入第一与门的输出和第二与门的输出,在预充电阶段中,控制单元可将对第一与门和第二与门的输入设定为相等值。
在运算处理装置中,逻辑电路中的每个选择器均可包括经由其接收选择信号的输入节点和经由其接收选择信号的反相选择信号的输入节点,并且逻辑电路还可包括在各个选择信号输入节点的前级处所设置的逻辑运算元件、在反相选择信号输入节点的前级处所设置的逻辑运算元件以及在位于底层且向其输入恒定值的各个选择器的前级处所设置的逻辑运算元件,每个逻辑运算元件都用于接收预充电信号,并且控制单元可切换输入至逻辑运算元件的预充电信号以在切换预充电阶段和评估阶段之间进行切换。
在该运算处理装置中,每个逻辑运算元件都可以是与门,将预充电信号输入至其一个输入,控制单元可切换输入至每个与门的一个输入的预充电信号以在预充电阶段和评估阶段之间进行切换。
在该运算处理装置中,每个逻辑运算元件都可以是或门,将预充电信号输入至其一个输入,控制单元可切换输入至每个或门的一个输入的预充电信号以在预充电阶段和评估阶段之间进行切换。
在该运算处理装置中,在逻辑电路中的选择器中,可以用单个公共选择器代替向其提供相等输入值的多个选择器。
在该运算处理装置中,逻辑电路中的选择器可以包括具有反相输出的选择器和具有反相输入的选择器。
在该运算处理装置中,控制单元可控制数据变换处理,使得在预充电阶段中,向设置在底层中的每个选择器输入恒定值,而在评估阶段中,向底层中的选择器输入恒定值或随机值。
在该运算处理装置中,控制单元可控制门电路的输出,使得在预充电阶段中将对底层中的选择器的输入随机设定为“0”或“1”。
在该运算处理装置中,可配置逻辑电路以实现二元判定图(BDD)。
在该运算处理装置中,逻辑电路可用于对输入位执行作为数据变换处理的非线性变换处理。
根据本发明的一个实施例,提供了一种运算处理控制方法,用于在运算处理装置中控制对输入位的数据变换处理,该运算处理装置包括逻辑电路,其包括被输入其中的选择信号所控制的多个选择器,由输入位给出选择信号,选择器以分层结构配置,使得将恒定值输入至位于底层中的多个选择器,对于每一层根据选择信号选择恒定值并将其传送给更高层中的选择器,以及一恒定值最终被最高层中的一选择器选择并从最高层中的该选择器输出,该方法包括通过控制单元控制使用逻辑电路的数据变换处理,使得交替执行预充电阶段和评估阶段,在预充电阶段中,将对逻辑电路中的选择器的所有输入值设定为相等,在评估阶段中,产生对应于输入位的输出位,在预充电阶段中切换由输入位给出的选择信号。
在该运算处理控制方法中,逻辑电路中的每个选择器均可包括:第一与门,向其输入一个恒定值和选择信号;第二与门,向其输入一个恒定值和该选择信号的反相选择信号;以及或门,向其输入第一与门的输出和第二与门的输出,在预充电阶段中,控制单元可将对第一与门和第二与门的输入设定为相等值。
在该运算处理控制方法中,逻辑电路中的每个选择器均可包括经由其接收选择信号的输入节点和经由其接收选择信号的反相选择信号的输入节点,并且逻辑电路还可包括在各个选择信号输入节点的前级处所设置的逻辑运算元件、在反相选择信号输入节点的前级处所设置的逻辑运算元件以及在位于底层且向其输入恒定值的各个选择器的前级处所设置逻辑运算元件,每个逻辑运算元件都用于接收预充电信号,并且控制单元可切换输入至逻辑运算元件的预充电信号以在预充电阶段和评估阶段之间进行切换。
在该运算处理控制方法中,每个逻辑运算元件都可以是与门,将预充电信号输入至其一个输入,并且控制单元可切换输入至每个与门的一个输入的预充电信号以在预充电阶段和评估阶段之间进行切换。
在该运算处理控制方法中,每个逻辑运算元件都可以是或门,将预充电信号输入至其一个输入,并且控制单元可切换输入至每个或门的一个输入的预充电信号以在预充电阶段和评估阶段之间进行切换。
在该运算处理控制方法中,控制单元可控制数据变换处理,使得在预充电阶段中,向设置在底层中的每个选择器输入恒定值,而在评估阶段中,向底层中的选择器输入恒定值或随机值。
在该运算处理控制方法中,控制单元可控制数据变换处理,使得在预充电阶段中将对底层中的选择器的输入随机设定为“0”或“1”。
根据本发明的一个实施例,提供了一种可由运算处理装置执行以对输入位执行数据变换处理的计算机程序,该运算处理装置包括逻辑电路,其包括被输入其中的选择信号所控制的多个选择器,由输入位给出选择信号,选择器以分层结构配置,使得将恒定值输入至位于底层中的多个选择器,对于每一层根据选择信号选择恒定值并将其传送给更高层中的选择器,以及一恒定值最终被最高层中的一选择器选择并从最高层中的该选择器输出,该计算机程序控制数据变换处理,使得交替执行预充电阶段和评估阶段,在预充电阶段中,将对逻辑电路中的选择器的所有输入值设定为相等,在评估阶段中,产生对应于输入位的输出位,在预充电阶段中切换由输入位给出的选择信号。
经由以计算机可读方式存储程序的诸如CD、FD或MO的存储介质或经由诸如网络的通信介质,可将计算机程序提供给能够执行各种计算机程序代码的计算机系统。通过如上所述提供计算机可读形式的程序,可以根据程序在计算机系统上执行处理。
从以下参照附图的示例性实施例的描述中,本发明的其他目的、特征和优点将变得显而易见。在本说明书中,术语“系统”用于描述多个装置的逻辑集合,且不需要要求多个装置设置在单个外壳中。
如上所述,根据本发明的实施例,配置用于诸如非线性数据变换的数据变换的逻辑运算装置,使得在预充电阶段中,逻辑电路中的选择器的所有输入被维持为相等值并切换输入位,而在预充电阶段之后的评估阶段中,执行数据变换处理并产生输出位。因为在预充电阶段中将所有选择器输入复位为相等值,所以难以在切换输入位的时刻基于信号的瞬时变化执行分析,因此,逻辑运算装置对于DPA(差分功耗分析)等具有高抵抗性。
附图说明
图1示出了根据使用AES算法或DES算法的通用密匙加密的加密处理的基本功能结构的实例;
图2示出了根据AES算法的加密处理的功能结构的实例;
图3示出了执行AES加密处理的硬件结构的实例;
图4示出了用在非线性变换处理中的变换表(S盒表)的实例;
图5示出了通过逻辑电路输出作为根据非线性变换表(S盒表)的非线性变换的结果而获得的完整输出数据的低阶(low order)一位所实现的二元判定图(BDD)的实例;
图6示出了仅表示在图4所示表格中表示的256个输出值的每一个的最低有效位的变换表;
图7示出了用在非线性变换逻辑电路中的选择器的结构实例;
图8A和8B是用于解释信号的瞬时变化的示图;
图9示出了被配置为可在预充电阶段和评估阶段操作的逻辑电路的实例;
图10示出了用在非线性变换逻辑电路中的选择器的结构实例;
图11示出了根据本发明的实施例的被配置为执行非线性变换处理的逻辑电路的实例;
图12A和12B示出了根据本发明的实施例的切换逻辑电路中的信号的方法实例;
图13示出了根据本发明的实施例的在非线性变换处理中控制逻辑电路的方法实例;
图14示出了由单个选择器代替多个选择器的方法实例;
图15示出了根据本发明的实施例的使用反相输出选择器和反相输入选择器配置的逻辑电路;
图16示出了根据本发明的实施例的输入随机数的逻辑电路的结构实例;
图17示出了根据本发明的实施例的包括或门的逻辑电路的结构实例;以及
图18示出了根据本发明的实施例的用作加密处理装置的IC模块的结构实例。
具体实施方式
下面将参照具体实施例更详细地描述根据本发明的运算处理装置、运算处理控制方法以及计算机程序。
在下述实施例中,通过实例假定将本发明应用于使用AES(高级加密标准)算法(通用密匙加密法的一种)的加密处理。在AES算法中,例如,将128位明文转换为128位密文。同样对于作为一种传统通用密匙加密法的DES(数据加密标准)算法,通过重复执行轮操作(round operation)而实现数据变换。注意,本发明不仅适用于使用AES或DES算法的通用密匙加密处理,还适用于各种非线性或线性数据变换处理,例如基于RSA算法等的公共密匙加密处理、诸如SHA-1的哈希函数的计算等。
本发明具体实施例的描述包括下列部分。
1.使用通用密匙的加密处理的基本功能结构
2.使用BDD的非线性变换单元(S盒)的一般结构
3.根据本发明的非线性变换单元的第一实例
4.根据本发明的非线性变换单元的第二实例(具有共用的选择器)
5.根据本发明的非线性变换单元的第三实例(使用反相输出选择器和反相输入选择器配置)
6.根据本发明的非线性变换单元的第四实例(使用随机数作为输入)
7.根据本发明的非线性变换单元的第五实例(包括或门)
8.加密处理装置的实例
1.使用通用密匙的加密处理的基本功能结构
图1示出了根据使用AES算法或DES算法的通用密匙加密的加密处理的基本功能结构的实例。如图1所示,通用密匙加密的基本功能结构包括密匙调度(scheduling)单元101和数据变换器110。密匙调度单元101接收密钥100,并基于接收的密钥100产生用在各轮中的轮密匙。将产生的轮密匙提供给各个轮操作单元151-1至151-n。
在数据变换器110中,轮操作单元151-1至151-n根据由密匙调度单元101提供的轮密匙对接收数据执行数据变换,并输出所得到的变换数据。
在由轮操作单元151-1至151-n执行的数据变换处理中,重复执行相似的轮操作。在每轮中,对输入位执行使用变换表的非线性变换、线性变换、或使用输入密匙(轮密匙)的数据变换。将每轮中的运算结果传送给下一轮。
例如,在AES加密处理中,由轮操作单元151-1至151-n执行的非线性变换处理称作字节替换转换。使用预先准备的非线性变换表(S盒表)执行被称作字节替换转换的非线性变换处理。
图2示出了AES加密处理的细节。密匙调度单元201接收密钥200,并基于接收的密钥200产生用在各轮中的轮密匙。将产生的轮密匙提供给各个轮操作单元210。如图2所示,用于AES加密的轮操作单元210包括:异或门211,用于计算输入数据和轮密匙之间的异或;S盒212,用于执行被称作字节替换转换的非线性转换;列混合(mix-column)单元213,用于交换从各个S盒212输出的数据;异或门214,用于计算从各个列混合单元213输出的数据和轮密匙之间的异或;以及S盒215,用于对从各个异或门214输出的数据执行非线性转换。注意,在上述处理中,将数据分为多段(segment),每一段包括8位,并且如图2所示,以8位数据为单位执行处理。
如上所述,重复执行轮操作。在通过硬件实现AES加密处理单元的情况下,在AES加密处理单元中设置单个轮操作单元,并通过该单个轮操作单元重复执行轮操作。图3示出了通过硬件实现AES加密处理单元的实例。
在图3所示的实例中,如果向AES加密处理单元250输入第一轮密匙0,则异或门251计算轮密匙0和将被加密的数据(128位)之间的异或。将得到的数据经由选择器252提供给寄存器253。然后,将数据分为多段,每段都包括8位,并将其提供给S盒254。S盒254对相应8位数据执行非线性变换处理。将得到的数据提供给列混合单元255。列混合单元255交换接收数据中的位值。将得到的数据经由选择器256提供给异或门257。异或门257确定接收数据和轮密匙之间的异或。将结果经由选择器252返回至寄存器253,并再次输入至S盒254。因此,重复执行该处理。当已经执行了预定轮数时,从寄存器253输出作为上面处理结果而获得的密文。
在用作轮操作单元中的非线性变换单元的每个S盒中,如果给出8位数据,则根据非线性变换表(S盒表)对给出的8位数据执行非线性变换,从而产生8位输出数据。因为16个S盒的每一个都产生8位非线性变换数据,所以由于非线性变换获得总共包括128(16×8)位的输出数据。图4示出了用在非线性变换处理中的变换表(S盒表)的实例。
在图4所示的变换表中,在顶部的水平行中以十六进制描述将被变换的输入8位数据的低阶4位(0、1、2、…、d、e、f)。十六进制中的0至f对应于二进制中的0000至1111。在最左边的垂直列中以十六进制描述将被变换的输入8位数据的高阶4位(0、1、2、…、d、e、f)。变换表表示每个都由变换表中的高阶4位值和低阶4位值的交集给出的相应8位输入值的8位输出值。
即,8位输入数据可采用00至FF(00000000至11111111)的256个不同的位值。每个8位值由高阶4位和低阶4位的组合表示,并在图4所示的表格中进行描述。
例如,对于十六进制中的00(二进制中的00000000)输入,根据图4所示的变换表格输出十六进制中的63。即,将表格左上部的值“63”选择作为输出值。在将C0(十六进制)给出作为输入的情况下,根据图4所示的表格输出BA(十六进制)。如上所述,在由轮操作单元执行的非线性变换处理中,根据在图4所示变换表中描述的1对1映射,将每个输入8位值变换为输出8位值。
2.使用BDD的非线性变换单元(S盒)的一般结构
例如,可通过基于二元判定图(BDD)的硬件电路实现根据这种非线性变换表(S盒表)的变换功能。图5示出了通过逻辑电路根据非线性变换表(S盒表)输出全部变换数据的低阶一位所实现的二元判定图(BDD)的实例。
在图5所示的实例中,在第1至第8层中分层设置每个都实现2输入1输出逻辑功能的选择器,从而以逻辑电路的形式实现二元判定图(BDD)。设置在金字塔状分层结构的第1至第8层的各层中的选择器从一层连接到另一层。最终从设置在第1层中的选择器输出1位值。
在第1层中设置1个选择器,在第2层中设置2个选择器,在第3层中设置4个选择器,在第4层中设置8个选择器,在第5层中设置16个选择器,在第6层中设置32个选择器,在第7层中设置64个选择器,以及在第8层中设置128个选择器,因此总共设置了255个选择器。
将来自第2层的输出输入至第1层中的选择器。将来自第3层的输出输入至第2层中的选择器。将来自第4层的输出输入至第3层中的选择器。将来自第5层的输出输入至第4层中的选择器。将来自第6层的输出输入至第5层中的选择器。将来自第7层的输出输入至第6层中的选择器。将来自第8层的输出输入至第7层中的选择器。将“0”或“1”的恒定值输入至第8层中的选择器。
根据图4所示的非线性变换表(S盒表)确定输入至第8层中的选择器的“0”或“1”的总共256个恒定值(256位数据)。
图5所示的逻辑电路起输出作为非线性变换的结果而获得的8位数据的最低有效位的选择电路的作用。在该选择电路中,由图4所示表格中的256个输出值(63、7C、77、…、54、BB、16)的每一个的最低有效位的集合给出输入至图5底部所示第8层中的选择器的256位值(10110111…11110010)。
例如,输入至图5底部第8层中的选择器的最左边位置处的位值(“1”)对应于图4所示表格中的顶行中最左边位置处的输出值(“63”)的最低有效位,而输入至图5底部第8层中的选择器的最右边位置处的位值(“0”)对应于图4所示表格中底行中最右边位置处的输出值(“16”)的最低有效位。
图6示出了仅表示在图4所示表格中表示的相应256个输出值(63、7C、77、…、54、BB、16)的最低有效位的变换表。即,图6所示的表格表示在图4所示表格中表示的相应256(16×16)个输出值(63、7C、77、…、54、BB、16)的最低有效位,并将图6所示表格中的这些位值设定为输入至图5所示电路中的第8层中的选择器的值。
由具有经受非线性变换的总共128位的输入数据的一个8位段给出输入至各层中的选择器的选择信号。更具体地,将输入8位数据的最高有效位(in[7])作为选择信号输入至第1层中的选择器,将输入8位数据的第2位(in[6])作为选择信号输入至第2层中的选择器。在随后的层中,类似地输入选择信号。最后,将最低有效位(in[0])作为选择信号输入至第8层中选择器。
从通过划分经受非线性变换的128位数据而获得的8位段中顺序选择输入8位数据。因此,基于段执行非线性变换处理。
当输入至特定选择器的选择信号是“0”时,选择选择器左侧上的输入,并将其输出至更高层中的选择器。当输入至特定选择器的选择信号是“1”时,选择选择器右侧上的输入,并将其输出至更高层中的选择器。因此,如果确定选择信号的8位,则输出第8层中的选择器的256个输入中的对应一个。输入至第1至第8层的选择信号的集合唯一确定哪一个输入至第8层中的选择器的恒定值被最终选择并输出。
例如,在给出“00000000”作为经受非线性变换的输入8位数据给出的情况下,选择信号的所有位是“0”。结果,在所有选择器中选择左侧处的输入并输出至更高层。因此,将图5底部处第8层中的选择器的输入的最左边位置处的位值“1”输出作为来自第1层中的选择器的最终值。该输出值对应于图4所示表格中的顶行中的最左边位置处的输出值(“63”)的最低有效位。如上所述,根据经受非线性变换的数据的位值(00000000至11111111),输出输入至第8层中的选择器的256个值中的一个。由图4所示表格中的相应256个输出值(63、7C、77、…、54、BB、16)的最低有效位的组合给出输入至第8层中的选择器的256个值。
通过设置包括在类似于图5所示分层结构中设置的选择器的8个电路,可以确定从图4的表格所示的256个可能值(63、7C、77、…、54、BB、16)中选择的输出值的所有8位。
在图5所示的电路中,如上所述参照图6,通过图4所示表格中的相应256个输出值(63、7C、77、…、54、BB、16)的最低有效位的组合给出输入至图5底部处第8层中的选择器的256位值(10110111…11110010)。
如果由图4所示表格中的相应256个输出值(63、7C、77、…、54、BB、16)的第2位的组合给出输入至底部处第8层中的选择器的256位值,则获得输出值的第2位的值。类似地,可以获得输出值的第3至第8位。如果将以这种方式获得的第1至第8位值结合起来,则获得对应于根据图4所示的非线性变换表通过变换给出的8位值而获得的值的8位输出值。
因此,当给出输入值时,以上述方式配置的电路能够输出与根据图4所示表格(S盒表)通过非线性变换而获得的值相对应的值。换句话说,可通过由诸如图5所示的二元判定图(BDD)所定义的逻辑功能实现由诸如图4所示的非线性变换表(S盒表)所定义的变换。
在图5所示的逻辑电路中,如上所述,在第1层中设置1个选择器,在第2层中设置2个选择器,在第3层中设置4个选择器,在第4层中设置8个选择器,在第5层中设置16个选择器,在第6层中设置32个选择器,在第7层中设置64个选择器,在第8层中设置128个选择器,因此,总共设置了255个选择器。例如,可以如图7所示配置每个选择器。
在图7所示的选择器中,选择器270包括与门271、与门272以及或门273。将根据S盒表确定的恒定值a和选择信号的反相信号输入至与门271。将根据S盒表确定的恒定值b和选择信号输入至与门272。将与门271的输出和与门272的输出输入至或门273。
当输入至选择器的选择信号是“0”时,选择并输出输入至选择器的恒定值“a”。然而,当输入至选择器的选择信号是“1”时,选择并输出输入至选择器的恒定值“b”。
在诸如图5所示二元判定图的各层中设置类似于图7所示结构的选择器,使得从最低层至最高层顺序确定输出。然而,在使用这种选择器的结构中,由于每层中选择信号的输入定时的波动,所以会发生信号电平的瞬时变化。
下面参照图8描述信号电平的瞬时变化。在图8中,部分(1)示出了在各层中输入的选择信号((p)in[0]至in[7])的转变和使用图5所示二元判定图(BDD)的逻辑电路中的最终选择器输出((q)out)的转变的时序图。在图8中,部分(2)以放大的方式示出了图8(1)中的部分281。如图8(2)所示,在输入至图5中所示逻辑电路中的相应8个层(第1至第8层)的相应8个选择信号((p)in[0]至in[7])中发生转变。难以在精确的相同时间改变8个选择信号((p)in[0]至in[7]),并且会在8个选择信号之间的转变定时中产生差。
因此,所有输入8位都需要特定的时间周期,以在开始转变后完成转变。在图8(2)中,由Δt表示这个转变周期。图8(2)中所示的输出((q)out)的信号电平根据相应8个选择器层的输入8位的状态而改变。在由图8(2)中的虚线表示的输出信号(q)的范围内,由于选择信号的转变定时的波动,输出信号(q)的电平会发生变化。
存在通过分析输出信号的电平中的变化泄露基于二元判定图(BDD)的逻辑电路中使用的信号值的可能性。如上所述,在“背景技术”的部分中,存在基于输出的瞬时变化的分析由DPA攻击泄露秘密信息的可能性。
如上所述,在WDDL(波形差分动态逻辑)技术中,为了防止发生信号的瞬时变化,有必要确定电路配线布局,使得在每个互补信号之间没有传播延迟差。如果在运算中两个输入之间具有显著的传播延迟差,则难以完美地保护秘密信息不受DPA攻击等。
3.根据本发明的非线性变换单元的第一实例
作为第一实例,如下所述,本发明提供了用作能够以最小的延迟差而不具有不必要的信号的瞬时变化执行运算的非线性变换单元(S盒)的逻辑电路的结构。
更具体地,下面描述的第一实例是适于根据通用密匙分组密码(block cipher)算法执行加密处理的加密处理装置,该加密处理装置包括:逻辑电路,用于通过对输入位执行非线性变换处理产生输出位;以及控制单元,控制运算,使得在逻辑电路的输出被维持为固定值的预充电阶段中切换提供给逻辑电路的输入位。如果完成输入位的切换,则控制单元将运算阶段从预充电阶段切换为评估阶段。在评估阶段中,对输入位执行非线性变换处理,并输出作为非线性变换处理结果而获得的输出位。
图9示出了以适于执行非线性变换的金字塔状分层选择器结构形式的二元判定图(BDD)的基本结构。如图9所示,以类似于上面参照图5描述的金字塔状选择器结构形式的二元判定图(BDD)的方式,通过以金字塔状结构的形式设置在8层中的选择器配置根据本实施例的使用S盒的逻辑电路。对于底部处第8层中的选择器,输入类似于对输入至图5中第8层中的选择器的那些恒定值的恒定值。更具体地,由图4所示表格中的相应256个输出值(63、7C、77、…、54、BB、16)的第一至第八位中的一个的组合给出恒定值。
在图9中示出的逻辑电路中,在第1层中设置1个选择器,在第2层中设置2个选择器,在第3层中设置4个选择器,在第4层中设置8个选择器,在第5层中设置16个选择器,在第6层中设置32个选择器,在第7层中设置64个选择器,在第8层中设置128个选择器,因此总共设置了255个选择器。如图9所示,向每个选择器输入选择信号和反相选择信号。图10示出了选择器的结构实例。
在图10所示的实例中,选择器300包括与门301、与门302以及或门303。将根据S盒表确定的恒定值a和反相选择信号输入至与门301。将根据S盒表确定的恒定值b和选择信号输入至与门302。将与门301的输出和与门302的输出输入至或门303。
在选择器300中,不同于上面参照图7描述的选择器270,独立地输入选择信号和反相选择信号。即,在图10所示的选择器300中,输入至与门301和与门302的4个信号彼此独立。相反,在图7所示选择器270的情况下,由相同的单个选择信号产生输入至与门271的反相选择信号和输入至与门272的选择信号。
此外,在图10所示的该选择器300中,当输入至选择器的选择信号是“0”时,选择输入至选择器的恒定值“a”并输出作为输出信号c;而当输入至选择器的选择信号是“1”时,选择输入至选择器的恒定值“b”并输出作为输出信号c。
图11示出了根据本发明本实施例的用作基于二元判定图(BDD)执行非线性变换处理的S盒的逻辑电路结构的具体实例。在图11所示的该电路中,配置每个选择器,使得输入至选择器的选择信号和反相选择信号是是独立可控的。
如图11所示,根据本发明本实施的用于例执行非线性变换处理的逻辑电路包括连接至第8层中选择器的各个输入的与门、连接至选择器的各个选择信号输入端的与门、以及连接至选择器的各个反相选择信号输入端的与门。
经由256个与门将256个值输入至第8层中的选择器。如输入至图5所示第8层中的选择器的,为相应的256个与门的输入中一个提供相同的恒定值。更具体地,由图4所示表格中的相应256个输出值(63、7C、77、…、54、BB、16)的第一至第八位中的一个的组合给出恒定值。
另一方面,由总共具有128位经受非线性变换的输入数据的一个8位段给出输入至各层中的选择器的选择信号,使得将该8位段的最高有效位(in[7])作为选择信号经由与门输入至第1层中的选择器,将该8位段的第2位(in[6])作为选择信号经由与门输入至第2层中的选择器,以及在以下的层中,类似地经由与门输入选择信号。最后,将该8位段的最低有效位(in[0])作为选择信号经由与门输入至第8层中的选择器。
如上所述,从通过划分经受非线性变换的的128位数据而获得的8位段中顺序选择输入8位数据。因此,基于段执行非线性变换处理。
除选择信号之外,还将反相选择信号经由与门输入至选择器。
如上所述,根据本实施例的逻辑电路包括连接至向其输入恒定值的第8层中的选择器的各个输入的与门、连接至选择器的各个选择信号输入端的与门以及连接至选择器的各个反相选择信号输入端的与门,并输入数据,使得经由与门将数据输入至第8层中的选择器,经由与门将选择信号输入至各个选择器,以及经由与门将反相选择信号输入至各个选择器。上述电路结构可使逻辑电路具有预充电阶段和评估阶段。通过图中未示出的控制单元控制阶段之间的切换、输入至逻辑电路的信息的设定以及输入至逻辑电路的信息的切换。
在图11所示的电路结构中,如图5所示的电路结构一样,如上面参照图6所描述的,由图4所示表格中的相应256个输出值(63、7C、77、…、54、BB、16)的最低有效位的组合给出输入至第8层中的选择器的恒定值。因此,如图5所示的逻辑电路一样,图11所示的逻辑电路输出作为非线性变换处理结果而获得的输出8位数据的最低有效位。
如图11所示,将预充电信号(prch)输入至与第8层中的各个选择器连接的256个与门的每一个的另一输入端、与各层中的选择器的各个选择信号输入端连接的8个与门的每一个的另一输入端、以及与各层中的选择器的各个反相选择信号输入端连接的8个与门的每一个的另一输入端。当预充电信号(prch)为“0”时,输入至第8层中的选择器的256个值、输入至各层中选择器的选择信号以及输入至各层中选择器的反相选择信号全部变为“0”。该状态被称作预充电阶段状态。即,在预充电阶段中,所有选择器输入都被设为“0”。
当预充电信号(prch)为“1”时,经由与门将恒定值输入至第8层中的选择器,并将选择信号和反相选择信号输入至选择器。注意,如上所述,由总共具有128位经受非线性变换的输入数据的一个8位段给出输入至各层中选择器的选择信号,并通过反转选择信号来给出反相选择信号。该状态被称作评估阶段状态。
在本实施例中,交替执行评估阶段中的运算和预充电阶段中的运算。在评估阶段中,使用设置在8层中的选择器确定输出值,而在预充电阶段中,所有输入值被设为“0”。
输入至各个选择器的值以下面参照图12A和12B描述的方式改变。图12A示出了选择器300的结构,以及图12B示出了输入至选择器300的信号的变化。在图12A所示的选择器300中,将根据S盒表确定的恒定值“a”和反相选择信号输入至与门301,将根据S盒表确定的恒定值“b”和选择信号输入至与门302,并将与门301的输出和与门302的输出输入至或门303。
图12B以表格形式示出了输入至选择器300的信号的临时变化。在该表格中,时间从左向右消逝,并随时间切换阶段。响应于阶段变化切换输入至选择器的信号。如上所述,在根据本发明的本实施例的逻辑电路中,交替执行预充电阶段中的运算和评估阶段中的运算,使得在预充电阶段中将输入至选择器的所有信号设定为0,并将正确的恒定值、选择信号以及反相选择信号输入至选择器,并在评估阶段中计算输出位。
图12B示出了输入至选择器的信号(即,恒定值“a”、恒定值“b”、选择信号以及反相选择信号)的临时变化。将这些信号经由一个与门输入至选择器,而向每一个与门的另一输入端提供预充电信号,其中,预充电信号在预充电阶段中取“0”以及在评估阶段中取“1”。
在第一预充电阶段中,预充电信号被设为“0”,因此输入至选择器的所有信号都变为“0”。在随后的评估阶段中,预充电信号被设为“1”,使得将正确的恒定值、选择信号以及反相选择信号输入至选择器。在评估阶段中,以相同的方式运算各层中的其它选择器,因此从第1层(顶部)中的选择器输出与一组8个选择信号(8位数据)相对应的值。
在评估阶段之后,运算阶段再次被切换至预充电阶段,输入至选择器的所有值都被设为“0”。在该预充电阶段周期中,将选择信号和反相选择信号切换为下一组值(8位数据)。在经过该预充电阶段周期之后,将运算阶段切换至评估阶段,从第1层(顶部)中的选择器输出新的一组8个选择信号(8位数据)。
在上述交替切换评估阶段和预充电阶段的运算中,在将阶段从输入至选择器的所有信号都为“0”的预充电阶段切换至评估阶段的转换周期中,向选择器输入新的选择信号。因此,在转换周期中输入至选择器的信号变化通常出现为从“0”到真实的输入值。因此,难以通过分析与第8层中信号电平的瞬时变化相对应的功耗的变化来检测真实的数据值。
更具体地,在信号已经进入阶段被切换为选择器输入均被设为“0”的预充电阶段之后的稳定状态的时刻,切换对选择器的选择信号。因此,即使在各层的选择信号之间发生转变定时差,选择器输出仍维持为“0”,因此在输出值(out)中没有发生变化。因此,由瞬时变化引起的输出值的瞬时变化是不可检测的。这防止了泄漏秘密信息。
在本实施例中,在确定对应于给出的一组8个选择信号(8位数据)的输出值后,将对选择器的所有输入都复位为“0”。在复位所有输入后,输入新的一组8个选择信号。因此,在本实施例中,当切换选择信号时,没有发生由选择信号的瞬时变化所引起的输出值的变化。这使得可以减少用在基于二元判定图(BDD)的逻辑电路中的信号值被分析的可能性,因此实现对DPA攻击抵抗性的提高。
现在,参考图13,描述交替出现在评估阶段和预充电阶段中执行的运算的期间输入至用作非线性变换单元的S盒(BDD)的信号的切换。
如上面参照图11所描述的,在用作非线性变换单元的逻辑电路中,向实现二元判定图(BDD)的S盒输入选择信号、反相选择信号以及恒定值。在评估阶段中,输入真实值。然而,在预充电阶段所有值被切换为“0”。
在图13所示被配置为切换输入至S盒(BDD)的信号的电路中,将经受非线性变换处理的数据输入至数据寄存器321,并在数据寄存器控制器324的控制下从数据寄存器321中顺序输出输入数据的8位段。在评估阶段中,将每个8位段数据作为选择信号和反相选择信号输入至S盒(BDD)323。注意,由反相器322通过反转选择信号来产生反相选择信号。
在预充电阶段中,预充电控制器325输出预充电信号(“1”)。在评估阶段中,响应于预充电信号,将选择信号和反相选择信号输入至S盒(BDD)323中的选择器。尽管在图13中没有示出,但还将预充电信号(“1”)输入至与S盒(BDD)323中的最底层中的选择器连接的每个与门的一个输入端,从而在评估阶段中,向最底层中的选择器输入恒定值,并从S盒(BDD)323输出真实输入值的非线性变换的结果。
在预充电阶段中,预充电控制器325将预充电信号(“0”)输出至S盒(BDD)323,从而选择信号、反相选择信号以及输入至第8层的值全部变为“0”。结果,输入至S盒(BDD)323中的选择器的所有信号都变为“0”,并从S盒(BDD)323输出“0”。
向数据寄存器控制器324和预充电控制器325输入时钟信号。响应于时钟信号,预充电控制器325在评估阶段中输出“1”,从而将响应于从数据寄存器324输出的控制信号而从数据寄存器321输出的数据作为真实输入信号输入至选择器并在S盒(BDD)323中被处理。结果,输出表示非线性变换真实结果的值。在预充电阶段中,预充电控制器325输出预充电信号“0”,从而S盒(BDD)323中的所有选择器的输入都变为“0”,且S盒(BDD)323的输出同样变为“0”。与时钟信号同步,在阶段之间的转变处执行信号的切换。
因此,在本实施例中,如上所述,在评估阶段中将一组8个选择信号(8位数据)和8个反相选择信号输入至S盒323。在评估阶段随后的预充电阶段中,将预充电信号“0”从预充电控制器325提供给S盒323,从而所有选择器输入都被复位为“0”。在随后的评估阶段中,从复位状态开始输入新的选择信号,并重复执行上述处理。因此,在本实施例中,当切换选择信号时,没有发生由选择信号的瞬时变化所引起的输出值的变化。这使得可以减少用在基于二元判定图(BDD)的逻辑电路中的信号值被分析的可能性,因此实现对DPA攻击抵抗性的提高。
4. 根据本发明的非线性变换单元的第二实例(具有共用的选择器)
图11所示使用二元判定图(BDD)的逻辑电路输出输出数据的8位中一位。因此,为了获得完整的8位输出数据作为对输入8位数据的非线性变换的结果,需要提供类似于图11所示的、总共8个使用二元判定图(BDD)的逻辑电路。
每个都用于输出一位的、使用二元判定图(BDD)的8个逻辑电路的组合导致增加了电路复杂性。为了降低总的电路复杂性,可由更少量的选择器代替一些选择器。
参考图14,描述由单个选择器代替多个选择器的方法实例。例如,如图14A所示,在多个选择器351和352具有相同输入值的情况下,如图14B所示,可由单个选择器代替这些选择器。由单个选择器代替多个选择器使得降低了使用二元判定图(BDD)的逻辑电路总的电路复杂性,因此可以实现成本的降低。电路复杂性的降低导致功耗的减少。
5. 根据本发明的非线性变换单元的第三实例(使用反相输出选择器和反相输入选择器配置)
现在,描述使用反相输出选择器和反相输入选择器配置的非线性变换单元的第三实例。下面参照图15描述根据第三实例的逻辑电路的结构和操作。
根据第三实例的使用二元判定图(BDD)的逻辑电路的结构不同于上面参照图11描述的根据第一实例的逻辑电路的结构,其中,在偶数层中使用反相输出选择器,以及在奇数层中使用反相输入选择器。因为二元判定图(BDD)具有8层,所以反相发生偶数次。因此,在所有8层中设置非反相输入/输出的结构和根据层来设置反相输出选择器和反相输入选择器的的结构之间,在来自逻辑电路的最终输出中不存在差。
与图11所示的电路进行比较,使用反相输出选择器和反相输入选择器使得减小了逻辑电路总的尺寸。因此,除尺寸减小之外,还实现了功耗的降低。
根据本实施例的以上述方式配置的逻辑电路如下进行操作。
在评估阶段中,如先前的实施例,选择器接收真实输入值,对其确定非线性变换的真实输出值。更具体地,将经受非线性变换的总数据的一段的8位数据作为选择信号和反相选择信号输入至选择器,并将根据非线性变换表(S盒表)(例如,图4或图6所示的表)确定的恒定值输入至第8层中的选择器。
在预充电阶段中,如先前的实施例,所有选择器输入,即,选择信号、反相选择信号以及输入最底层中的选择器的值都被设为“0”。
在所有选择器输入都被设为“0”的预充电阶段中,切换输入至反相输出选择器和反相输入选择器的的选择信号(in)。在预充电阶段随后的评估阶段中,输入将对其确定真实输出值(作为非线性变换处理的结果)的恒定值、选择信号以及反相选择信号。交替重复预充电阶段和评估阶段。
在根据本实施例的结构中,如同先前的实施例,在预充电阶段中将选择器的所有输入都设为“0”,以及在随后的评估阶段中,从复位状态开始输入新的选择信号。因此,重复执行输入的复位和新选择信号的输入。在信号已经进入阶段被切换为选择器输入被全部设为“0”的预充电阶段之后的稳定状态的时刻,切换对选择器的选择信号。因此,即使在各层的选择信号之间发生转变定时差,选择器输出仍维持为“0”,因此在输出值(out)中没有发生变化。因此,由瞬时变化引起的输出值的瞬时变化是不可检测的。因此,在本实施例中,当切换选择信号时,没有发生由选择信号的瞬时变化所引起的输出值的变化。这使得可以减少用在基于二元判定图(BDD)的逻辑电路中的信号值被分析的可能性,因此实现对DPA攻击抵抗性的提高。
6. 根据本发明的非线性变换单元的第四实例(使用随机数作为输入)
在下面描述的第四实例中,向非线性变换单元输入随机数。下面参照图16描述根据第四实例的非线性变换单元的结构和操作。
根据第四实例的使用二元判定图(BDD)的逻辑电路的结构不同于上面参照图11描述的根据第一实例的逻辑电路的结构,其中,将经由两个输入节点中的一个输入至确定提供给第8层的输入值的与门的值被设定的不同于第一实例。
在上述第一实例中,与输入至图5所示第8层中的选择器的恒定值相同,将相同的恒定值提供给相应256个与门的一个输入。更具体地,在第一实例中,由图4所示表格中的相应256个输出值(63、7C、77、…、54、BB、16)的第一至第八位中的一个的组合给出输入至第8层中的选择器的恒定值。在图11所示的实例中,如上面参照图6所描述的,由图4所示表格中的相应256个输出值(63、7C、77、…、54、BB、16)的最低有效位的组合给出恒定值。
即,在上述第一实例中,从图4所示表格中的相应256个输出值(63、7C、77、…、54、BB、16)的第一至第八位中的一个提取总共256个值(“0”或“1”),并直接将提取的256个恒定值输入至与门。相反,在第四实例中,适当组合恒定值、反相恒定值以及随机数,然后将得到的值输入256个与门。
更具体地,将以下数据的组合用作输入值:(a1)如同上述第一实施例,从非线性变换表(S盒表)中描述的对应输出值的位值中所提取的恒定值;(a2)通过反转恒定值(a1)而获得的值;以及(a3)随机数。
可使用(a1)至(a3)的所有组合,或者可使用(a1)至(a3)的任意两个的组合。
在本实施例中,存储表示什么时候以及数据(a1)至(a3)的哪一个被使用的管理信息,并根据管理信息获得正确输出值。在输入反相恒定值(a2)的情况下,最终输出变成等于正确输出值的反相(当正确输出值为“1”时,输出“0”;而当正确输出值为“0”时,输出“1”),因此,可以使用反相输出值作为正确输出值。
更具体地,例如,在如图16所示配置用于获得非线性变换的8位输出值的最低有效位的逻辑电路的情况下,输入图4所示表格中的相应256个输出值(63、7C、77、…、54、BB、16)的最低有效位,即,上面参照图6描述的位值1、0、1、1、0、…、0、0、1、0,或输入其反相值,即,0、1、0、0、1、…、1、1、0、1。当输入反相值时,最终输出值的反相被用作非线性变换的正确结果。
在本实施例中,除恒定值或反相恒定值之外,还可以输入随机数。这使得选择器输出中的“0”和“1”的出现随机化,从而使DPA分析变得更加困难。
在本实施例中,在评估阶段中,下列数据被用作输入值:(a1)如同上述第一实施例,从非线性变换表(S盒表)中描述的对应输出值的位值中所提取的恒定值;(a2)通过反转恒定值(a1)而获得的值;以及(a3)随机数。如上所述,可使用(a1)至(a3)的所有组合,或者可使用(a1)至(a3)的任意两个的组合。随机数对于所有8个逻辑功能可以相等或可以不相等。
在预充电阶段中,所有选择器输入,即,选择信号,反相选择信号以及输入至最底层中选择器的值都被设定为“0”。
在本实施例中,在预充电阶段和评估阶段之间切换输入至选择起的选择信号(in),其中,在预充电阶段中,所有选择器输入都被设定为“0”,在评估阶段中,选择信号或反相选择信号被设定为真实值,并通过以下数据中的一个给出输入至底层中选择器的值:(a1)如同上述第一实施例,从非线性变换表(S盒表)中描述的对应输出值的位值中所提取的恒定值;(a2)通过反转恒定值(a1)而获得的值;以及(a3)随机数。
在上述处理中,存储表示什么时候以及数据(a1)至(a3)的哪一个被使用的管理信息,并根据管理信息获得正确输出值。
此外,在根据本实施例的实现中,在预充电阶段中将选择器的所有输入都设定为“0”,在随后的评估阶段中,从复位状态开始输入新的选择信号。在信号已经进入阶段被切换为选择器输入都被设定为“0”的预充电阶段之后的稳定状态的时刻,切换对选择器的选择信号。因此,即使在各层的选择信号中发生转变定时差,选择器输出仍维持为“0”,因此在输出值(out)中没有变化发生。因此,由瞬时变化引起的输出值的瞬时变化是不可检测的。因此,在本实施例中,当切换选择信号时,没有发生由选择信号中的瞬时变化所引起的输出值的变化。这使得可以减小用在基于二元判定图(BDD)的逻辑电路中的信号值被分析的可能性,因此实现对DPA攻击抵抗性的提高。
7. 根据本发明的非线性变换单元的第五实例(包括或门)
在先前的实例中,当切换输入至各层的选择信号时,预充电信号(prch)被设定为“0”,从而所有选择器输入都被设定为“0”。可选地,当切换输入至各层的选择信号时,所有选择器输入可被设定为“1”而不是“0”。这同样使得DPA分析变得更加困难。
图17示出了根据本实施例的使用二元判定图(BDD)的逻辑电路的结构。在根据本实施例的逻辑电路中,如图17所示,在底层中的选择器之前的位置处设置或门,使得经由或门将恒定值输入至这些选择器,在选择信号输入端之前的位置处设置或门,使得经由或门将选择信号输入至选择器,以及在反相选择信号输入端之前的位置处设置或门,使得经由或门将反相选择信号输入至选择器,从而每个或门的一个输入都被用作用于接收预充电信号的输入端。
在本实例中,与先前的实例相反,使用具有电平“1”的预充电信号。当输入预充电信号时,将所有选择器输入都切换为“1”。在评估阶段中,向选择器输入真实恒定值、选择信号以及反相选择信号。
如上所述,在本实施例中,不同于先前的实施例,输入至选择器的所有信号在复位状态中都为“1”。
在该结构中,在信号已经进入阶段被切换为选择器输入都被设定为“1”的预充电阶段之后的稳定状态的时刻,切换对选择器的选择信号(in)。因此,即使在各层的选择信号中发生转换定时差,选择器输出仍维持为“1”,因此在输出值(out)中没有变化发生。因此,由瞬时变化引起的输出值的瞬时变化是不可检测的。这防止了泄漏秘密信息。
当切换各层的选择信号时,输出可被随机设定为“0”或“1”。这可以通过控制从其将输出信号提供给第8层的与门来实现,使得从以下三种值的组合中选择从与门输出的信号:所有1的组合、所有0的组合、以及恒定值或随机值的组合。
在预充电阶段中,通过切换适于随机选择所有0或所有1使得向第8层输入选择的所有0或1的切换,进行从与门输出的值的选择。
此外,在该结构中,在信号已经进入阶段被切换为选择器输入被全部设定为“0”或“1”的预充电阶段之后的稳定状态的时刻,切换对选择器的选择信号(in)。因此,即使在各层的选择信号中发生转变定时差,选择器输出仍维持为“0”或“1”,因此在输出值(out)中没有发生变化。因此,由瞬时变化引起的输出值的瞬时变化是不可检测的。这防止了泄漏秘密信息。
可直接采样上述实例中的一个或者可结合多个实例的技术。
在上述实例中,将本发明应用于通用密匙加密处理中的非线性变换处理。然而,本发明不仅可应用于使用AES或DES算法的通用密匙加密处理,而且还可应用于诸如基于RSA算法等的公共密匙加密处理和诸如SHA-1的哈希函数的计算等的多种非线性或线性数据变换处理。
8.加密处理装置的实例
最后,下面参照图18描述用作适于产生密文或破译密文的加密处理装置的IC模块500。可在诸如个人计算机、IC卡、读取器/写入器等的各种信息处理装置上执行根据上述任意一个实例的处理,并且可在这种装置中使用图18所示的IC模块500。
在图18所示的IC模块500中,CPU(中央处理单元)501是用作控制单元的处理器,其控制加密处理的开始/结束、数据的传送/接收、各部分间的数据传送等,并执行各种处理。存储器502是用于存储由CPU 501执行的程序以及运算中使用的固定数据的ROM(只读存储器),或者是用作用于存储由CPU 501执行的程序以及改变运算中出现的参数的存储区域或用作CPU 501的工作区域的RAM(随机存取存储器)。存储器502还可被用作用于存储诸如在加密处理中使用的密钥(K)等的密匙数据的存储区域。期望以对篡改具有高抵抗性的形式实现数据存储区域。
加密处理单元503包括非线性变换电路,其包括如上述一个实例的使用根据二元判定图(BDD)以分层结构形式设置的选择器而配置的逻辑电路,并且在预充电阶段和评估阶段中交替运算。
由用作控制单元的CPU 501根据预安装的程序控制两个阶段间的切换、控制来自门电路的输出、输入至选择器的选择信号的切换、输出的选择等,使得由逻辑电路提供正确输出。例如,CPU 501读取预先存储在ROM中的加密程序,并执行加密程序以控制加密处理单元503中的使用二元判定图(BDD)的逻辑电路的运算。
随机数生成器504生成用于生成用在加密处理中的密匙的随机数。随机数生成器504还生成用在装置间的认证中或用在其它加密处理中的随机数。随机数生成器504可通过使用LFSER(线性反馈移位寄存器)的随机数生成器或伪随机数生成器实现。
传送/接收单元505是数据通信单元,适于执行与诸如读取器/写入器的外部装置或另一IC模块的数据通信相关的处理,以输出在IC模块中生成的加密数据或从诸如读取器/写入器的外部装置接收数据。
已经在上面参照特定实施例通过实例且没有限制地描述了本发明。本领域的技术人员应该明白,在不背离本发明的精神或范围的条件下,可以进行各种修改和替换。即,已经在上面通过实例且没有限制地描述了本实施例。完全由权利要求确定本发明的范围。
可以通过硬件、软件、或硬件和软件的结合来执行在本说明书中公开的任意处理。在通过软件执行处理的情况下,可将处理程序安装在嵌入硬件的专用计算机中设置的存储器中,并且可通过计算机执行程序,或者程序可被安装在能够执行各种处理的通用计算机上并可在通用计算机上被执行。
在本说明书中公开的处理可以以与程序中的描述的相同顺序时序地执行,或者根据计算机的处理能力并行或单独执行。在本说明书中,术语“系统”用于描述多个装置的逻辑集成,并且不需要多个装置设置在单个外壳中。
本领域的技术人员应该理解,根据设计要求和其它因素,可以有多种修改、组合、再组合和改进,均应包含在本发明的权利要求或等同物的范围之内。
Claims (19)
1.一种运算处理装置,用于对输入位执行数据变换,包括:
逻辑电路,包括被输入其中的选择信号控制的多个选择器,所述选择信号由所述输入位给出,所述选择器以分层结构配置,使得将恒定值输入至位于底层中的多个选择器,对于每一层根据选择信号选择所述恒定值并将其传送至更高层中的选择器,以及,一恒定值最终被最高层中的一选择器选择并从所述最高层中的该选择器中输出;以及
控制单元,用于控制使用所述逻辑电路的所述数据变换处理,
所述控制单元控制所述数据变换处理,使得交替执行预充电阶段和评估阶段,在所述预充电阶段中,所述逻辑电路中的选择器的所有输入值都被设定为相等,在所述评估阶段中,产生对应于所述输入位的输出位,由所述输入位所给出的所述选择信号在所述预充电阶段中被切换。
2.根据权利要求1所述的运算处理装置,其中,所述逻辑电路中的每个所述选择器都包括:
第一与门,向其输入一个所述恒定值和所述选择信号,
第二与门,向其输入一个所述恒定值和所述选择信号的反相选择信号,以及
或门,向其输入所述第一与门的输出和所述第二与门的输出,以及
在所述预充电阶段中,所述控制单元将对所述第一与门和所述第二与门的输入设定为相等值。
3.根据权利要求1所述的运算处理装置,其中,
所述逻辑电路中的每个所述选择器都包括经由其接收所述选择信号的输入节点和经由其接收所述选择信号的反相选择信号的输入节点,
所述逻辑电路还包括:
设置在各个选择信号输入节点的前级处的逻辑运算元件,以及
设置在所述反相选择信号输入节点的前级处的逻辑运算元件,以及
设置在位于底层且向其输入所述恒定值的各个选择器的前级处的逻辑运算元件,
每个逻辑运算元件都用于接收预充电信号,以及
所述控制单元切换输入至所述逻辑运算元件的所述预充电信号,以在所述预充电阶段和所述评估阶段之间进行切换。
4.根据权利要求3所述的运算处理装置,其中,
每个逻辑运算元件都是与门,将所述预充电信号输入至其一个输入,以及
所述控制单元切换输入至每个与门的一个输入的所述预充电信号,以在所述预充电阶段和所述评估阶段之间进行切换。
5.根据权利要求3所述的运算处理装置,其中,
每个逻辑运算元件都是或门,将所述预充电信号输入至其一个输入,以及
所述控制单元切换输入至每个或门的一个输入的所述预充电信号,以在所述预充电阶段和所述评估阶段之间进行切换。
6.根据权利要求1所述的运算处理装置,其中,在所述逻辑电路中的选择器中,用单个公共选择器代替被提供相等输入值的多个选择器。
7.根据权利要求1所述的运算处理装置,其中,所述逻辑电路中的选择器包括具有反相输出的选择器和具有反相输入的选择器。
8.根据权利要求1所述的运算处理装置,其中,所述控制单元控制所述数据变换处理,使得在所述预充电阶段中,向设置在所述底层中的每个选择器输入所述恒定值,而在所述评估阶段中,向所述底层中的选择器输入恒定值或随机值。
9.根据权利要求1所述的运算处理装置,其中,所述控制单元控制门电路的输出,使得在所述预充电阶段中将对所述底层中的选择器的输入随机设定为“0”或“1”。
10.根据权利要求1所述的运算处理装置,其中,配置所述逻辑电路以实现二元判定图(BDD)。
11.根据权利要求1所述的运算处理装置,其中,所述逻辑电路用于对所述输入位执行作为所述数据变换处理的非线性变换处理。
12.一种运算处理控制方法,用于在运算处理装置中控制对输入位的数据变换处理,所述运算处理装置包括:
逻辑电路,包括被输入其中的选择信号控制的多个选择器,所述选择信号由所述输入位给出,所述选择器以分层结构配置,使得将恒定值输入至位于底层中的多个选择器,对于每一层根据选择信号选择所述恒定值并将其传送至更高层中的选择器,以及,一恒定值最终被最高层中的一选择器选择并从所述最高层中的该选择器中输出,
所述方法包括通过控制单元控制使用所述逻辑电路的所述数据变换处理,使得交替执行预充电阶段和评估阶段,在所述预充电阶段中,将对所述逻辑电路中的选择器的所有输入值设定为相等,在所述评估阶段中,产生对应于所述输入位的输出位,由所述输入位给出的所述选择信号在所述预充电阶段中被切换。
13.根据权利要求12所述的运算处理控制方法,其中,
所述逻辑电路中的每个所述选择器都包括:
第一与门,向其输入一个所述恒定值和所述选择信号,
第二与门,向其输入一个所述恒定值和所述选择信号的反相选择信号,以及
或门,向其输入所述第一与门的输出和所述第二与门的输出,以及
在所述预充电阶段中,所述控制单元将对所述第一与门和所述第二与门的输入设定为相等值。
14.根据权利要求12所述的运算处理控制方法,其中,
所述逻辑电路中的每个所述选择器都包括经由其接收所述选择信号的输入节点和经由其接收所述选择信号的反相选择信号的所述输入节点,以及
所述逻辑电路还包括:
设置在各个选择信号输入节点的前级处的逻辑运算元件,以及
设置在所述反相选择信号输入节点的前级处的逻辑运算元件,以及
设置在位于底层且向其输入所述恒定值的各个选择器的前级处的逻辑运算元件,
每个逻辑运算元件都用于接收预充电信号,以及
所述控制单元切换输入至所述逻辑运算元件的所述预充电信号,以在所述预充电阶段和所述评估阶段之间进行切换。
15.根据权利要求14所述的运算处理控制方法,其中,
每个逻辑运算元件都是与门,将所述预充电信号输入至其一个输入,以及
所述控制单元切换输入至每个与门的一个输入的所述预充电信号,以在所述预充电阶段和所述评估阶段之间进行切换。
16.根据权利要求14所述的运算处理控制方法,其中,
每个逻辑运算元件都是或门,将所述预充电信号输入至其一个输入,以及
所述控制单元切换输入至每个或门的一个输入的所述预充电信号,以在所述预充电阶段和所述评估阶段之间进行切换。
17.根据权利要求12所述的运算处理控制方法,其中,所述控制单元控制所述数据变换处理,使得在所述预充电阶段中,向设置在所述底层中的每个选择器输入所述恒定值,而在所述评估阶段中,向所述底层中的选择器输入恒定值或随机值。
18.根据权利要求12所述的运算处理控制方法,其中,所述控制单元控制门电路的输出,使得在所述预充电阶段中将对所述底层中的选择器的输入随机设定为“0”或“1”。
19.一种计算机程序,可由运算处理装置执行以对输入位执行数据变换处理,所述运算处理装置包括:逻辑电路,包括被输入其中的选择信号所控制的多个选择器,所述选择信号由所述输入位给出,所述选择器被配置成分层结构,使得将恒定值输入至位于底层中的多个选择器,对于每一层根据选择信号选择所述恒定值并将其传送至更高层中的选择器,以及,一恒定值最终被最高层中的一选择器选择并从所述最高层中的该选择器中输出
所述计算机程序控制所述数据变换处理,使得交替执行预充电阶段和评估阶段,在所述预充电阶段中,所有输入所述逻辑电路中的所述选择器的值被设定为相等,将对所述逻辑电路中的选择器的所有输入值设定为相等,在所述评估阶段中,产生对应于所述输入位的输出位,由所述输入位给出的所述选择信号在所述预充电阶段中被切换。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006-337828 | 2006-12-15 | ||
JP2006337828A JP4453697B2 (ja) | 2006-12-15 | 2006-12-15 | 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム |
JP2006337828 | 2006-12-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101206816A true CN101206816A (zh) | 2008-06-25 |
CN101206816B CN101206816B (zh) | 2010-08-18 |
Family
ID=39526479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103021527A Expired - Fee Related CN101206816B (zh) | 2006-12-15 | 2007-12-14 | 运算处理装置和运算处理控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7659837B2 (zh) |
JP (1) | JP4453697B2 (zh) |
CN (1) | CN101206816B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101952870A (zh) * | 2008-01-21 | 2011-01-19 | 索尼公司 | 数据转换器、数据转换方法以及计算机程序 |
CN103886377A (zh) * | 2014-02-21 | 2014-06-25 | 北京神舟航天软件技术有限公司 | 基于bdd的知识库规则产生式的检查方法 |
CN109947009A (zh) * | 2017-12-05 | 2019-06-28 | 矢崎总业株式会社 | 运算装置 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4935229B2 (ja) * | 2006-08-02 | 2012-05-23 | ソニー株式会社 | 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム |
JP4535119B2 (ja) * | 2007-11-20 | 2010-09-01 | 沖電気工業株式会社 | 共通鍵生成システム、共通鍵生成方法及びそれを用いるノード |
FR2935059B1 (fr) * | 2008-08-12 | 2012-05-11 | Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst | Procede de detection d'anomalies dans un circuit de cryptographie protege par logique differentielle et circuit mettant en oeuvre un tel procede |
JP4687775B2 (ja) * | 2008-11-20 | 2011-05-25 | ソニー株式会社 | 暗号処理装置 |
KR101646705B1 (ko) * | 2009-12-01 | 2016-08-09 | 삼성전자주식회사 | 에스-박스를 구현한 암호화 장치 |
FR2955436B1 (fr) * | 2010-01-19 | 2012-11-23 | St Microelectronics Rousset | Procede et dispositif de contremesure pour proteger des donnees circulant dans un composant electronique |
US11336425B1 (en) * | 2010-06-01 | 2022-05-17 | Ternarylogic Llc | Cryptographic machines characterized by a Finite Lab-Transform (FLT) |
US11093213B1 (en) * | 2010-12-29 | 2021-08-17 | Ternarylogic Llc | Cryptographic computer machines with novel switching devices |
DE102010029735A1 (de) * | 2010-06-07 | 2011-12-08 | Robert Bosch Gmbh | Verfahren zum Generieren eines Bitvektors |
JP5198526B2 (ja) * | 2010-09-21 | 2013-05-15 | 株式会社東芝 | 暗号化装置および復号装置 |
CN102546160B (zh) * | 2010-12-08 | 2016-03-02 | 上海华虹集成电路有限责任公司 | 用于椭圆曲线密码防御差分功耗攻击的方法 |
US8325433B2 (en) * | 2011-01-19 | 2012-12-04 | Lsi Corporation | Systems and methods for reduced format data processing |
CN102857334B (zh) * | 2012-07-10 | 2015-07-08 | 记忆科技(深圳)有限公司 | 一种实现aes加解密的方法及装置 |
US20150215114A1 (en) * | 2014-01-29 | 2015-07-30 | Mohammad A. Alahmad | Method for generating a secure cryptographic hash function |
US10489611B2 (en) * | 2015-08-26 | 2019-11-26 | Rambus Inc. | Low overhead random pre-charge countermeasure for side-channel attacks |
US20230125560A1 (en) * | 2015-12-20 | 2023-04-27 | Peter Lablans | Cryptographic Computer Machines with Novel Switching Devices |
US10256973B2 (en) * | 2016-09-30 | 2019-04-09 | Intel Corporation | Linear masking circuits for side-channel immunization of advanced encryption standard hardware |
JP7296609B2 (ja) * | 2017-11-14 | 2023-06-23 | 地方独立行政法人東京都立産業技術研究センター | デジタル処理装置、デジタル処理装置の製造方法及びプログラム |
US10263767B1 (en) * | 2018-07-03 | 2019-04-16 | Rajant Corporation | System and method for power analysis resistant clock |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4100606A (en) * | 1977-02-09 | 1978-07-11 | Texas Instruments Incorporated | Key debounce system for electronic calculator or microprocessor |
CA1251583A (en) * | 1985-03-28 | 1989-03-21 | Yoshiaki Yato | Multiplex system |
US5821885A (en) * | 1994-07-29 | 1998-10-13 | Discovision Associates | Video decompression |
US5692020A (en) * | 1995-06-07 | 1997-11-25 | Discovision Associates | Signal processing apparatus and method |
US6130633A (en) * | 1998-06-02 | 2000-10-10 | Cirrus Logic, Inc. | Multibit digital to analog converter with feedback across the discrete time/continuous time interface |
JP2000036736A (ja) | 1998-07-21 | 2000-02-02 | Sony Corp | ダイナミック論理回路 |
WO2003001567A2 (en) * | 2001-06-20 | 2003-01-03 | R3 Logic, Inc. | High resolution, low power, wide dynamic range imager with embedded pixel processor and dram storage |
JP4328487B2 (ja) | 2002-01-28 | 2009-09-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 組合せ回路、暗号回路、その生成方法及びプログラム |
CN1525307A (zh) * | 2003-02-26 | 2004-09-01 | 上海华园微电子技术有限公司 | 一种模乘运算电路和一种运用该模乘运算电路的加密方法 |
-
2006
- 2006-12-15 JP JP2006337828A patent/JP4453697B2/ja not_active Expired - Fee Related
-
2007
- 2007-11-30 US US11/948,582 patent/US7659837B2/en not_active Expired - Fee Related
- 2007-12-14 CN CN2007103021527A patent/CN101206816B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101952870A (zh) * | 2008-01-21 | 2011-01-19 | 索尼公司 | 数据转换器、数据转换方法以及计算机程序 |
CN101952870B (zh) * | 2008-01-21 | 2014-01-22 | 索尼公司 | 数据转换器和数据转换方法 |
CN103886377A (zh) * | 2014-02-21 | 2014-06-25 | 北京神舟航天软件技术有限公司 | 基于bdd的知识库规则产生式的检查方法 |
CN109947009A (zh) * | 2017-12-05 | 2019-06-28 | 矢崎总业株式会社 | 运算装置 |
Also Published As
Publication number | Publication date |
---|---|
US20080143561A1 (en) | 2008-06-19 |
JP4453697B2 (ja) | 2010-04-21 |
CN101206816B (zh) | 2010-08-18 |
JP2008153806A (ja) | 2008-07-03 |
US7659837B2 (en) | 2010-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101206816B (zh) | 运算处理装置和运算处理控制方法 | |
CN101908958B (zh) | 密码处理装置、方法、算法构建方法和信息处理装置 | |
CA2750358C (en) | Cryptography circuit particularly protected against information-leak observation attacks by the ciphering thereof | |
KR20180002071A (ko) | 부채널 분석에 대응한 보호 방법 및 장치 | |
CN101496342B (zh) | 加密装置、程序及方法 | |
Mane et al. | High speed area efficient FPGA implementation of AES algorithm | |
CN107769910A (zh) | 一种基于Latch PUF的抗边信道攻击DES防护方法及电路 | |
CN101009554A (zh) | 一种抗功耗攻击的字节替换电路 | |
CN101739889A (zh) | 密码处理装置 | |
US20120093308A1 (en) | Apparatus and method for generating random data | |
CN101814985B (zh) | 应用多混沌映射多动态s盒的分组密码系统 | |
Gafsi et al. | High securing cryptography system for digital image transmission | |
CN114679250A (zh) | 基于混合混沌和Arnold变换的图像加密算法 | |
Ahmad et al. | A secure network communication protocol based on text to barcode encryption algorithm | |
CN100393029C (zh) | 在使用密钥密码学算法的电子元件中的防范方法 | |
CN1826753B (zh) | 保密密钥控制的可逆电路和相应的数据处理方法 | |
Luo et al. | Cryptanalysis of a chaotic block cryptographic system against template attacks | |
CN108123792A (zh) | 一种sm4算法电路的功耗加扰方法 | |
JP4935229B2 (ja) | 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム | |
Im et al. | S-Box attack using FPGA reverse engineering for lightweight cryptography | |
CN101479774B (zh) | 加密处理装置、数据变换方法和集成电路 | |
Jawad et al. | A novel dynamic secret key generation for an efficient image encryption algorithm | |
Samra et al. | PUF Based Cryptographic Key Generation | |
Li et al. | Secure key storage using state machines | |
JP4849140B2 (ja) | データ変換装置、演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム |
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: 20100818 Termination date: 20151214 |
|
EXPY | Termination of patent right or utility model |