CN101739889B - 密码处理装置 - Google Patents
密码处理装置 Download PDFInfo
- Publication number
- CN101739889B CN101739889B CN2009102228897A CN200910222889A CN101739889B CN 101739889 B CN101739889 B CN 101739889B CN 2009102228897 A CN2009102228897 A CN 2009102228897A CN 200910222889 A CN200910222889 A CN 200910222889A CN 101739889 B CN101739889 B CN 101739889B
- Authority
- CN
- China
- Prior art keywords
- decoding
- data
- register
- block
- processing apparatus
- 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
Links
Images
Classifications
-
- 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
- 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
- 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)
- Storage Device Security (AREA)
- Logic Circuits (AREA)
Abstract
本发明公开了一种密码处理装置。该密码处理装置包括:至少一个寄存器,被配置为存储用于运算的数据;第一运算块,被配置为根据存储在寄存器中的数据执行运算;第二运算块,被配置为执行寄存器存储值和密钥中的一者与第一运算块的运算结果之间的逻辑运算;以及译码块,被配置为以预定比特数为单位对二进制数据译码以将二进制数据变换为比特数多于二进制数据的比特数的译码数据。
Description
技术领域
本发明涉及密码处理装置,更具体而言,涉及在对功率分析(poweranalysis)的耐久性方面有所增强的密码处理装置,这种功率分析即密码分析处理或攻击处理。
背景技术
在IC(集成电路)卡中,要传送的数据被加密以防止存储在每个IC卡中的秘密信息在与主机计算机的传送过程中被泄漏。
当前最常使用的加密方法是DES(数据加密标准)。
在DES中,相同的密钥在IC卡的拥有者和用于加密数据的主机计算机之间被共享,数据发送方利用该密钥对数据加密并发送经加密的数据,并且数据接收方利用相同的密钥对所接收的加密数据解密以取出消息。
因此,如果恶意第三方试图截取数据,则难以取出消息,除非该第三方也有密钥。
例如,用于加密和解密的密钥被存储在诸如EEPROM之类的每个IC卡的非易失性存储器中。
IC卡的安全性通过采用这样一种配置来维持,其中提供控制以使得在加密和解密时密钥数据被直接传送到IC卡中结合的密码引擎而不经过CPU,从而使得IC卡的拥有者甚至IC卡开发工程师都基本上不可能取出密钥数据。
然而,P.Kocher等人报告了一种被称为DPA(差分功率分析)的攻击方法,通过该方法来测量IC卡的电流消耗并且对测量结果执行统计处理,从而取出密钥。
在该DPA攻击中,可以利用大约1000个不同明文(plaintext)来执行加密操作以测量所消耗的电流的波形,从而统计地处理所测得的消耗电流以取出密钥。
作为一种应对DPA攻击的方法,例如已知一种在日本专利特开2004-347975号公报中公开的技术。
在所公开的技术中,一比特数据被展开为具有相同汉明(Hamming)权重的两比特值。对于通过运算的数据转变,布置了两个阶段,即评估阶段和预充电(precharge)阶段。
然后,执行控制以使得首先转变到非“0”且非“1”的状态,然后转变到在执行运算之后获得的数据,从而防止在计算值的转变中涉及的电流改变被检测出来。
更具体而言,假定密码运算的执行例如使得数据“0”被设定为“01”且数据“1”被设定为“10”。然后,如果通过轮次(round)运算而使得数据改变,则例如首先转变到“00”,然后转变到由运算所得到的数据。
即,如果转变被表达如下,则对于所有转变,基于运算的每个比特的转变仅引起一比特的改变(无论运算结果如何),从而使得难以从电流改变中取出密钥。
从“0”到“0”的转变:“01”到“00”到“01”
从“0”到“1”的转变:“01”到“00”到“10”
从“1”到“0”的转变:“10”到“00”到“01”
从“1”到“1”的转变:“10”到“00”到“10”
发明内容
然而,上述相关技术的方法要求这样一种配置,其中在执行密码运算的每个电路中必须执行对两比特的互补运算。因此,该配置至少使得电路规模加倍,这继而使得电流消耗加倍,因为所扩展的两比特之一总是在一个电路中操作。
因此,本发明的实施例针对与相关技术的方法和装置相关联的上述和其他问题,并且通过提供如下一种密码处理装置而解决了所针对的问题:该密码处理装置被配置为抑制加密运算电路的电路规模的增大和在电路操作时漏电流的生成,从而使得难以尝试电流分析。
在实现本发明的实施例时,提供了一种密码处理装置。该密码处理装置具有:至少一个寄存器,被配置为存储用于运算的数据;第一运算块,被配置为根据存储在寄存器中的数据执行运算;第二运算块,被配置为执行寄存器存储值和密钥中的一者与第一运算块的运算结果之间的逻辑运算;以及译码块,被配置为以预定比特数为单位对二进制数据译码以将二进制数据变换为比特数多于二进制数据的比特数的译码数据。在该配置中,第二运算块的运算结果被存储在寄存器中,并且译码块被布置为使得:沿着从寄存器存储值和轮次密钥中的至少一者的供应块和第一运算块到第二运算块的信号布线所传播的数据被以下述状态提供,在该状态中,二进制数据被以预定比特数为单位译码以便被变换为比特数多于二进制数据的比特数的译码数据。
根据本发明的实施例,使用了这样一种配置,其中译码值被用于沿着信号布线传播的数据,并且在运算块中利用译码值执行运算。
因此,信号布线上和运算块中的漏电流被最小化以增强DPA抵抗力。
本发明的实施例可以抑制加密运算电路的电路规模的增大和在操作时漏电流的生成,从而使得难以尝试电流分析。
附图说明
本发明的其他目的和方面将从下面结合附图对实施例的描述中变清楚,在附图中:
图1是图示作为本发明一个实施例的密码处理装置的DES运算电路的示例性配置的示图;
图2是图示F函数块的示例性配置的示图;
图3A、3B和3C是各自以表格形式图示在两比特数据情况下二进制数据和译码数据之间的关系的示图;
图4是图示与图3A所示的译码方法相对应的译码块和编码块的示例性配置的电路图;
图5是图4中所示的译码块的真值表;
图6是图4中所示的电路的定时图;
图7是图示在与本发明第一实施例相关联的寄存器的输入/输出块中、编码块以及译码和预充电控制块的示例性配置的电路图;
图8是两比特二进制数据的EXOR(Exclusive-OR,异或)运算的真值表;
图9是两比特译码数据的EXOR运算的真值表;
图10是图示基于图9形成的EXOR运算块的电路图;
图11是图10中所示的电路的定时图;
图12是图示Sbox的示例性配置的示图;
图13是图示Sbox的示例性译码输出的示图;
图14是图示Sbox的译码输出的更具体示例的示图;
图15是图示所有Sbox的输出比特的译码对的示图;
图16是图示作为本发明第二实施例的密码处理装置的DES运算电路的示例性配置的示图;
图17是图示在与第二实施例相关联的寄存器的输入/输出块中、预充电控制块的示例性配置的示图;
图18是图示通用AES运算电路的示例性配置的示图;
图19是图示作为本发明第三实施例的AES运算电路的示例性配置的示图;
图20是图示作为本发明第四实施例的密码处理装置的DES运算电路100B的示例性配置的示图;
图21是图示与第四实施例相关联的DES运算电路100B的F函数块的示图;
图22是图示普通二进制运算中的示例性扩展函数的示图;
图23是图示第四实施例中的扩展函数的示图;
图24是图示第四实施例中的BDD的Sbox的子Sbox的示例性配置的示图;
图25是图示第四实施例中的BDD的子Sbox的示例性译码输出的示图;以及
图26是图示作为可应用本发明的配置的密码处理执行设备的IC模块的示例性配置的示图。
具体实施方式
下面将参考附图通过实施例更详细描述本发明。应当注意,对实施例的描述将按以下顺序进行:
(1)第一实施例(DES运算电路的第一示例性配置)
(2)第二实施例(DES运算电路的第二示例性配置)
(3)第三实施例(AES运算电路的示例性配置)
(4)第四实施例(DES运算电路的第三示例性配置)
在本发明实施例的密码处理装置中,通过利用两个或更多个比特对数据译码而获得的数据被用于运算。
每个译码值的汉明权重是恒定的。
从第一角度来看,在第一至第三实施例的密码处理装置中,采用了这样一种配置,其中要沿着信号布线发送的数据是译码值,并且该译码值在要以二进制为基础操作的函数运算电路和寄存器的输入端处被编码,所得到的数据在输出端处被译码。Sbox的输出被利用不同子Sbox的输出比特译码。
从第二角度来看,在第四实施例中,输入数据(明文或密文(ciphertext))被译码,密码运算都通过译码值而被执行,在运算之后译码数据被编码,从而提供输出数据(密文或明文)。
在第一至第三实施例和第四实施例中,运算周期的一个轮次是由预充电阶段和评估阶段构成的。
(1)第一实施例
参考图1,示出了作为本发明第一实施例的密码处理装置的DES运算电路的示例性配置。
该DES运算电路100具有IP(初始置换)块101、第一译码(Dec)块102、开关(SW)103L、103R、第一编码(Enc)块104和第二编码(Enc)块105。
另外,DES运算电路100具有作为第一寄存器的L寄存器(L Reg)106、作为第二寄存器的R寄存器(R Reg)107、第一译码和预充电控制块(Dec & PC)108以及第二译码和预充电控制块109。
另外,DES运算电路100具有第三编码块110、F函数块111、第二译码块112、EXOR运算块113、第四编码块114、逆置换块(IP-1)115和密文输出块116。
译码块102以预定的比特数为单位对在初始置换块101中经IP置换的明文的二进制数据进行译码,从而将二进制数据变换为译码数据。
译码块102经由开关103L、103R将译码数据输出到第一编码块104和第二编码块105。该实施例的译码处理将在后面描述。
开关103L的活动触点a连接到译码块102的输出,活动触点b连接到第二译码和预充电控制块109、第三编码块110和第四编码块114,并且固定触点c连接到第一编码块104的输入。
开关103R的活动触点a连接到第一译码块102的输出,活动触点b连接到EXOR运算块113的输出和第四编码块114,并且固定触点c连接到第二编码块105。
第一编码块104将经第一译码块102译码或者经第二译码和预充电控制块109译码的数据编码为二进制数据,并将该二进制数据输出到L寄存器106。
第二编码块105将经第一译码块102译码的数据或者EXOR运算块113的运算结果编码为二进制数据,并将该二进制数据输出到R寄存器107。
与作为数据捕获信号的锁存脉冲相同步,L寄存器106锁存(或存储)例如经第一编码块104编码的32比特数据。
与作为数据捕获信号的锁存脉冲相同步,R寄存器107锁存(或存储)例如经第二编码块105编码的32比特数据。
第一译码和预充电控制块108以预定比特数为单位对L寄存器106中锁存的二进制数据进行译码,并将通过与预充电控制信号PC的逻辑运算而获得的译码值或预充电值提供到EXOR运算块113的输入之一。
第二译码和预充电控制块109以预定比特数为单位对R寄存器107中锁存的二进制数据进行译码,并将通过与预充电控制信号PC的逻辑运算而获得的译码值或预充电值输出到第三编码块110。
第三编码块110将由第二译码和预充电控制块109获得的译码值编码为二进制数据,并将该二进制数据输出到F函数块111。
F函数块111使用密钥Kn对第三编码块110获得的二进制数据执行F函数运算。例如,F函数块111形成第一运算块。
参考图2,示出了F函数块111的示例性配置。
图2中所示的F函数块111具有扩展部分1111、EXOR运算部分1112、Sbox 1113和P置换部分1114。
扩展部分1111对R寄存器107中的锁存数据(被第三编码块110编码为二进制数据)执行扩展处理(或者比特扩展处理),并将经扩展的数据提供到EXOR运算部分1112的输入之一。
EXOR运算部分1112执行扩展部分1111的输出数据和轮次密钥(与经扩展的比特具有相同比特数)Kn之间的EXOR(异或)运算,并将运算结果输出到Sbox 1113。
Sbox 1113对EXOR运算部分1112的运算结果执行非线性变换处理。
Sbox 1113例如利用变换表执行从48比特到32比特的非线性处理。
P置换部分1114对Sbox 1113的输出数据的比特位置进行置换,并将置换结果输出到第二译码块112。
第二译码块112以预定比特数为单位对F函数块111的输出二进制数据(P置换部分1114的输出)进行译码,并将经译码的数据提供到EXOR运算块113的另一输入。
EXOR运算块113执行经第一译码和预充电控制块108译码的L寄存器106中的锁存数据和经第二译码块112译码的来自P置换部分1114的数据之间的EXOR(异或)运算。
例如,EXOR运算块113形成第二运算块。
第四编码块114将该轮次运算之后获得的译码运算结果编码为二进制数据,并将该二进制数据输出到逆置换块115。
逆置换块115对由第四编码块114通过编码获得的二进制数据执行逆置换(IP-1),并将所得到的数据经由密文输出块116作为密文输出。
具有上述配置的本实施例的密码处理装置具有对数据进行译码和编码的特征,因此能够抑制加密运算电路的电路规模的增大和在运算时漏电流的发生,从而使得难以执行电流分析。
下面详细描述本实施例的译码功能和编码功能。
首先,说明译码值。
下面使用例如对2比特数据进行译码的示例。
图3A至3C以表格形式示出了在2比特数据情况下二进制数据和译码数据之间的关系。
在该示例中,译码块将2比特二进制数据BNDT译码为4比特数据。
在图3A和3B所示的译码方法中,由译码器获得的四个译码数据各自总是在不同位置处具有“1”,并且在其他位置中填充有“0”。
或者,在图3C所示的译码方法中,由译码器获得的四个译码数据DCDT各自总是在不同位置处具有“0”,并且在其他位置中填充有“1”。
在图3A所示的译码方法中,按以下方式执行译码处理:
如果二进制数据BNDT的两比特(b1,b0)为(0,0),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(0,0,0,1);
如果二进制数据BNDT的两比特(b1,b0)为(0,1),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(0,0,1,0);
如果二进制数据BNDT的两比特(b1,b0)为(1,0),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(0,1,0,0);以及
如果二进制数据BNDT的两比特(b1,b0)为(1,1),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(1,0,0,0)。
在图3B所示的译码方法中,按以下方式执行译码处理:
如果二进制数据BNDT的两比特(b1,b0)为(0,0),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(0,0,0,1);
如果二进制数据BNDT的两比特(b1,b0)为(0,1),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(0,1,0,0);
如果二进制数据BNDT的两比特(b1,b0)为(1,0),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(0,0,1,0);以及
如果二进制数据BNDT的两比特(b1,b0)为(1,1),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(1,0,0,0)。
在图3C所示的译码方法中,按以下方式执行译码处理:
如果二进制数据BNDT的两比特(b1,b0)为(0,0),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(1,1,1,0);
如果二进制数据BNDT的两比特(b1,b0)为(0,1),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(1,1,0,1);
如果二进制数据BNDT的两比特(b1,b0)为(1,0),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(1,0,1,1);以及
如果二进制数据BNDT的两比特(b1,b0)为(1,1),则译码数据DCDT的四比特(d3,d2,d1,d0)被译码为(0,1,1,1)。
在对2比特数据译码的情况下,存在4!=24种模式,可以使用其中的任何一种。即,不仅可以使用图3A的译码方法,也可以使用图3B的译码方法。或者,可以使用任何其他方法;即,与图3C中所示的示例一样,在不同位置中设定“0”,而在其他位置中填充“1”。
下面描述对应于图3A中所示的译码方法的译码块和编码块。
参考图4,示出了对应于图3A中所示的译码方法的译码块和编码块的示例性配置。
图5示出了图4中所示的译码块的真值表。
应当注意,图4中所示的电路配置例如可应用于图1中所示的第二译码和预充电控制块109以及第三编码块110。
另外,除了预充电控制信号PC以外,图4中所示的电路配置基本上可应用于第一译码块102和第一编码块104、第一译码块102和第二编码块105。
图4中所示的译码块200具有3输入NOR(或非)门NR200至NR203、反相器IV200、IV201、译码线LD200至LD203、控制线LCTL、以及作为信号线的译码输出线LDO200至LDO203。
另外,译码块200具有二进制数据BNDT的比特b0的输入端Tb0、比特b1的输入端Tb1、以及预充电控制信号PC的输入端TPC。
译码线LD200连接到输入端Tb0,译码线LD201连接到反相器IV200的输出端,反相器IV200的输入端连接到输入端Tb0。
译码线LD202连接到输入端Tb1,译码线LD203连接到反相器IV201的输出端,反相器IV201的输入端连接到输入端Tb1。
控制线LCTL连接到输入端TPC。
NOR门NR200的第一输入端连接到译码线LD200,第二输入端连接到控制线LCTL,第三输入端连接到译码线LD202。NOR门NR200的输出端连接到译码输出线LDO200。
NOR门NR201的第一输入端连接到译码线LD201,第二输入端连接到控制线LCTL,第三输入端连接到译码线LD202。NOR门NR201的输出端连接到译码输出线LDO201。
NOR门NR202的第一输入端连接到译码线LD200,第二输入端连接到控制线LCTL,第三输入端连接到译码线LD203。NOR门NR202的输出端连接到译码输出线LDO202。
NOR门NR203的第一输入端连接到译码线LD201,第二输入端连接到控制线LCTL,第三输入端连接到译码线LD203。NOR门NR203的输出端连接到译码输出线LDO203。
编码块300具有2输入OR(或)门O300、O301以及4输入NOR门NR300。
OR门O300的第一输入端连接到译码输出线LDO201,第二输入端连接到译码输出线LDO203。
OR门O301的第一输入端连接到译码输出线LDO202,第二输入端连接到译码输出线LDO203。
NOR门NR300的第一输入端连接到译码输出线LDO200,第二输入端连接到译码输出线LDO201。NOR门NR300的第三输入端连接到译码输出线LDO202,第四输入端连接到译码输出线LDO203。
译码块200由2比特二进制数据BNDT生成反相比特数据,并将总共四比特的数据(由输入的两比特和其反相比特数据构成)提供到相应的NOR门,从而生成4比特译码数据d0、d1、d2和d3。
编码块300基本上通过对4比特译码数据布置两个2输入NOR门配置而成。
对于比特数据的编码,译码数据d0不被使用。为了生成比特b0’,应用了译码数据d1和d3之间的OR运算的结果。为了生成比特b1’,应用了译码数据d2和d3之间的OR运算的结果。
下面描述具有上述配置的图4所示的电路的基本操作。
参考图6,示出了图4中所示的电路的定时图。
预充电控制信号PC是用于控制预充电操作的信号。
当预充电控制信号为活动高电平(H)时,译码数据d0至d3都变为低电平(0),如图5和图6所示,这表示预充电状态。
当预充电控制信号PC变为低电平(L)从而进入评估阶段时,仅有根据2比特数据而选择的一条译码输出线变高。
然后,当预充电控制信号PC变高进入预充电阶段时,仅有根据2比特数据而选择的一条译码输出线的数据(或信号)变低。
因此,当转变到评估阶段时,仅有一条译码输出线变高,并且当转变到预充电阶段时,仅有一条译码输出线变低,从而将所有译码输出线预充电到低电平。
在译码输出线(信号布线)末端的编码块300中,通过“d3”和“d2”之间的OR运算生成“b1’”,并且通过“d3”和“d1”之间的OR运算生成“b0’”。
应当注意,“’”表示由于信号延迟而与“b1”和“b0”略微不同的定时(尽管逻辑是相同的)。
“PC’”表示延迟信号中的预充电控制信号;当译码值(b1’,b0’)=(0,0)时,该预充电控制信号使得数据和预充电值之间产生不同,并且该预充电控制信号被用于函数内部的阶段控制。
参考图7,示出了与本发明第一实施例相关联的寄存器的输入/输出块中的编码块以及译码和预充电控制块的示例性配置。
图7中所示的配置等同于图1中所示的第一编码块104、L寄存器106以及第一译码和预充电控制块108的配置,或者第二编码块105、R寄存器107以及第二译码和预充电控制块109的配置。
下面,以第一编码块104、L寄存器106以及第一译码和预充电控制块108的配置作为示例。
与图4中所示的基本配置相似,在第一编码块104中并行布置了32个OR门O300至O331。
以两比特为单位经第一译码块102译码的总共64比特数据d0’至d63’被提供到第一编码块104。
然后,这些数据被存储在L寄存器106中作为经第一编码块104编码的32比特二进制数据。
L寄存器106将所存储的数据的比特Q0至Q31及其反相比特/Q0至/Q31(“/”表示反相)提供到第一译码和预充电控制块108。
在图7所示的配置中,在寄存器一侧包括等同于图4所示的译码块200的反相器IV200、IV201的配置。
在第一译码和预充电控制块108中,布置了用于包括反相比特的每四个比特的图4所示的译码块200。
译码块200具有3输入NOR门NR200至NR263、译码线LD200至LD263、控制线LCTL、以及作为信号布线的译码输出线LDO200至LDO263。
存储在L寄存器106中的值被第一译码和预充电控制块108译码,译码值被与预充电控制信号PC进行逻辑运算,并且所得到的值被提供到后级的EXOR运算块113作为译码值或预充电值。
下面描述作为运算电路的EXOR运算块和用在DES运算电路中的F函数。
参考图8,示出了2比特二进制数据的EXOR运算的真值表。
参考图9,示出了2比特译码数据的EXOR运算的真值表。
参考图10,示出了图示基于图9形成的EXOR运算块的电路图。
参考图11,示出了图10中所示的电路的定时图。
下面将利用标号400来描述EXOR运算块113。
EXOR运算块400具有译码输出线LD400至LD403、LD410至LD413、AND-NOR(与-或非)门ANR400至ANR407、以及2输入NAND(与非)门NA400至NA403。
EXOR运算块400还具有输入端TIb0至TIb3、TIc0至TIc3、以及输出端TOd0至TOd3。
译码输出线LD400连接到输入端TIb0,译码输出线LD401连接到输入端TIb1,译码输出线LD402连接到输入端TIb2,译码输出线LD403连接到输入端TIb3。
译码输出线LD410连接到输入端TIc0,译码输出线LD411连接到输入端TIc1,译码输出线LD412连接到输入端TIc2,译码输出线LD413连接到输入端TIc3。
AND-NOR门ANR400的第一输入端连接到译码输出线LD400,第二输入端连接到译码输出线LD410。AND-NOR门ANR400的第三输入端连接到译码输出线LD401,第四输入端连接到译码输出线LD411。
AND-NOR门ANR401的第一输入端连接到译码输出线LD402,第二输入端连接到译码输出线LD412。AND-NOR门ANR401的第三输入端连接到译码输出线LD403,第四输入端连接到译码输出线LD413。
AND-NOR门ANR402的第一输入端连接到译码输出线LD411,第二输入端连接到译码输出线LD400。AND-NOR门ANR402的第三输入端连接到译码输出线LD410,第四输入端连接到译码输出线LD401。
AND-NOR门ANR403的第一输入端连接到译码输出线LD413,第二输入端连接到译码输出线LD402。AND-NOR门ANR403的第三输入端连接到译码输出线LD412,第四输入端连接到译码输出线LD403。
AND-NOR门ANR404的第一输入端连接到译码输出线LD412,第二输入端连接到译码输出线LD400。AND-NOR门ANR404的第三输入端连接到译码输出线LD413,第四输入端连接到译码输出线LD401。
AND-NOR门ANR405的第一输入端连接到译码输出线LD410,第二输入端连接到译码输出线LD402。AND-NOR门ANR405的第三输入端连接到译码输出线LD411,第四输入端连接到译码输出线LD403。
AND-NOR门ANR406的第一输入端连接到译码输出线LD413,第二输入端连接到译码输出线LD400。AND-NOR门ANR406的第三输入端连接到译码输出线LD412,第四输入端连接到译码输出线LD401。
AND-NOR门ANR407的第一输入端连接到译码输出线LD411,第二输入端连接到译码输出线LD402。AND-NOR门ANR407的第三输入端连接到译码输出线LD410,第四输入端连接到译码输出线LD403。
NAND门NA400的第一输入端连接到NOR门NR400的输出端,第二输入端连接到NOR门NR401的输出端。
NAND门NA401的第一输入端连接到NOR门NR402的输出端,第二输入端连接到NOR门NR403的输出端。
NAND门NA402的第一输入端连接到NOR门NR404的输出端,第二输入端连接到NOR门NR405的输出端。
NAND门NA403的第一输入端连接到NOR门NR406的输出端,第二输入端连接到NOR门NR407的输出端。
在基于二进制数据的运算之间的EXOR运算中,如果进行控制以便在将预充电数据都设定为“0”之后将两个数据改变为原始数据并且在这两个信号改变中存在延迟差异,则将发生以下结果。
即,在改变为快速改变的数据之后,EXOR运算电路的输出从“0”改变为原始EXOR运算结果,这使得该非预期的转变变为DPA攻击的目标(作为漏洞)。
然而,对于图10中所示的EXOR运算块400(其中直接在译码数据之间执行EXOR运算),在AND-NOR门ANR400至ANR407处接收输入。
因此,如图11所示,在两个译码数据的稍后数据中预充电数据为全“0”时,预充电状态中的全“0”保持被输出,而不管之前改变的数据的值。
然后,当稍后数据已改变时,从全“0”转变到EXOR结果,从而防止了变为DPA攻击目标的“非预期数据”的生成。
在本实施例中,来自R寄存器107的译码数据被紧邻在F函数块111之前的第三编码块110编码,并且所得到的二进制数据被输入到F函数块111中。
在F函数块111中,如上参考图2所述,32比特的二进制数据被扩展为48比特以与48比特的轮次密钥进行异或,并且该运算的结果通常被输入在Sbox中。
参考图12,示出了Sbox的示例性配置。
参考图13,示出了Sbox的示例性译码输出。
参考图14,示出了Sbox的译码输出的更具体示例。
参考图15,示出了所有Sbox的输出比特的译码对。
图12示出了子Sbox S0。
图12中所示的配置被称为BDD(Binary Decision Diagram,二元判定图),其中开关电路11130被以金字塔方式布置。
这些开关电路中每一个的输入是基于由规范定义的表来连接的,这些金字塔中的四个金字塔构成一个子Sbox S0。
接下来,如图13所示,通过并行布置八个子Sbox S0至S7来构成Sbox 1113,并且通过P置换部分1114的P置换基于重布置信息来重布置其输出比特。
Sbox 1113的输出是二进制数据,并且如图14所示,基于P置换部分1114的P置换来重布置Sbox 1113的二进制输出然后利用每个相邻比特进行译码,从而将输出提供到F函数块111。
子Sbox S0的比特的译码对是用于比特b0的子Sbox S3的比特b2、用于比特b1的子Sbox S1的比特b3、用于比特b2的子Sbox S2的比特b0、以及用于比特b3的子Sbox S6的比特b0。
因而,子Sbox S0的比特的译码对总是不同子Sbox的比特。
然后,该F函数的译码输出被与译码值状态下L寄存器106的译码数据进行异或运算,并且EXOR运算的结果被提供到R寄存器107。所提供的数据在锁存脉冲的上升沿被捕获,从而更新了R寄存器107的值。
接下来,当从预充电阶段转变到评估阶段时,每次进行译码时一条信号线变高,该信号改变提供了DPA攻击的目标。
在一种攻击方法中,首先利用两个或更多个明文来执行密码运算以测量电流消耗波形。
接下来,通过例如估计子Sbox S0的6比特密钥来利用每个明文执行仿真。基于所关注的节点的值或值改变,对实际的电流消耗波形进行分组。
最后,取各组的平均值之间的差异以检查峰值,从而确定估计密钥的有效性。
然而,Sbox输出被译码,从而总是仅有一个输出在译码基础上改变(无论数据如何),这使得各组之间没有差异。
严格地说,难以使得译码信号的布线容量相等;该容量的差异引起了充电/放电电流之间的微小差异(由于译码值),这可能提供攻击目标。
然而,与根据所关注的比特是使得充电/放电电流流动还是不使得该电流流动来进行分组并且与通常的DPA攻击一样取分组的平均值之间的差异的情况相比,漏电流明显较小,从而极大地增加了DPA攻击的难度。
DPA攻击被划分为1比特攻击(其中通过关注子Sbox的一比特来进行攻击)和4比特攻击(其中通过关注所有四比特来进行攻击)。
4比特攻击在相关度上高于2比特攻击,因此当估计密钥正确时的峰值电流较大。
然而,在例如针对子Sbox S0的比特b0执行1比特攻击的情况下,子Sbox S0的比特b0被利用子Sbox S3的比特b2译码,因此DPA攻击必须通过估计两个子Sbox S0和S3来执行。
因为子Sbox的密钥为六比特长,所以如果在通常的DPA攻击中估计26=64种组合,则其中仅出现一种峰值波形。
另一方面,在本实施例中,必须估计12比特的密钥,从而需要估计其中峰值从212=4,096种组合中出现的12比特密钥。
另外,泄漏源是基于译码布线的负载容量之间的差异的电流,因此原始漏电流是极小的,从而使得任何DPA攻击是极其困难的。
如果针对子Sbox S0的四比特进行攻击,则这四个比特被利用子SboxS3、S1、S2和S6的比特进行译码,因此这四个子Sbox的密钥必须同时被估计。并且,必须从2(6+6*4)=230=1,073,741,824种组合中估计出峰值出现的30比特密钥,这实际上使得任何攻击都极其困难。
图15示出了所有子Sbox的输出比特的译码对。在每一种情况下,必须通过估计4至5个子Sbox的密钥来尝试攻击,这使得攻击非常困难。
迄今为止所进行的描述是关于以两比特为基础执行译码的情况的。然而,本实施例也可应用于在以三比特为基础、以四比特为基础或者以更多比特为基础执行译码时的情况。
因而,伴随着沿着信号布线传播的信号的充电/放电的漏电流可以作为禁止任何DPA攻击的充电/放电电流,从而实现难以进行DPA攻击的配置。
下面描述图1中所示配置的整体操作。
DES密码通过16轮次的运算形成。如前所述,如果该配置通过硬件设计,则用于一个轮次的电路被布置,并且被操作16次,如图1所示。
在执行密码运算时,明文被初始置换块101进行IP置换,被第一译码块102以两比特为基础进行译码,并且经由开关103L、103R被提供到L寄存器106、R寄存器107。
在本实施例中,输入到L寄存器106和R寄存器107中的输入数据被第一编码块104和第二编码块105编码,以存储到L寄存器106和R寄存器107中作为二进制数据。
然后,寄存器存储值被第一译码和预充电控制块108与第二译码和预充电控制块109译码以便与预充电控制信号PC进行逻辑运算,从而作为译码值或预充电值提供到运算电路。在L寄存器106一侧上的数据被提供到EXOR运算块113。
在R寄存器107一侧上的数据被提供到L寄存器106的输入和F函数块111的输入,作为要被F函数块111的输入级之前的第三编码块110编码为二进制数据的译码数据,该二进制数据随后被输入到F函数块111中。对该二进制数据执行F函数运算。
接下来,F函数块111的输出被第二译码块112译码以便输入到EXOR运算块113中。
L寄存器106中的数据被译码以便输入到EXOR运算块113的另一输入中。对该输入的数据(作为译码数据)执行EXOR运算,运算的结果被提供到R寄存器107的输入。
F函数块111的输出被与L寄存器106中的值进行异或运算。此时,这两个输入都是译码值。
这些译码值可以被编码、异或、然后被再次译码,或者可以直接对译码数据执行EXOR运算。
如果直接对译码数据执行EXOR运算,则将不会发生基于信号延迟差异而提供DPA攻击目标的泄漏。
在本实施例中,如上所述,采用了直接对译码值执行EXOR运算的方法。F函数块111的输出和L寄存器106的存储值之间的EXOR运算的结果被第四编码块114在第16轮次的情况下利用R寄存器107的输出进行编码,所得到的编码值被进行逆IP置换以作为密文而输出。
在第16轮次之前的情况下,F函数块111的输出和L寄存器106的存储值之间的EXOR运算的结果被提供到R寄存器107的输入侧。
如上所述,根据本发明的该第一实施例,译码值被用于要沿着信号布线传播的数据,以提供其中通过运算块中的译码值来执行运算的配置。该新颖配置减少了沿着信号布线以及在运算块中的漏电流,从而增强了DPA抵抗力。
(2)第二实施例
下面描述本发明的第二实施例。
参考图16,示出了作为本发明第二实施例的密码处理装置的DES运算电路的示例性配置。
与第二实施例相关联的DES运算电路100A和与第一实施例相关联的DES运算电路100有以下几点不同。
即,在DES运算电路100A中,第一译码块102的译码数据在不经编码的情况下以64比特被存储在L寄存器106A和R寄存器107A中。
L寄存器106A和R寄存器107A的存储值的反相输出被在第一预充电控制块117和第二预充电控制块118中与预充电控制信号PC进行逻辑运算,以便作为译码值或预充电值提供到运算块。
参考图17,示出了在与第二实施例相关联的寄存器的输入/输出块中的预充电控制块的示例性配置。
如图17所示,在L寄存器106A(R寄存器107A)的输入侧上未布置第一预充电控制块117(第二预充电控制块118)的编码块,其中在输入侧不加改变地输入第一译码块102的译码数据d0’至d63’。
在L寄存器106A(R寄存器107A)的输入侧上未布置诸如译码线等的译码功能块,并且在输出侧上仅布置了控制线LCTL和NOR门NR200A至NR263A。
根据上述第二实施例,其他配置与第一实施例中相同,因此提供了与上述第一实施例基本相同的效果。
(3)第三实施例
在本发明的第一和第二实施例中,描述了这些实施例被应用于DES的示例。
在第三实施例中,描述了本发明的概念被应用于AES(高级加密标准)的示例。
参考图18,示出了一般AES运算电路的示例性配置。
参考图19,示出了作为第三实施例的AES运算电路的示例性配置。
关于AES,数据为128比特长,并且定义了三种密钥(128比特、192比特和256比特)。这些密钥被向FIPS(联邦信息处理标准)注册为AES-128、AES-192和AES-256的规范。运算轮次的数目根据密钥长度是10、12和14。
下面将描述AES-128。
图18中所示的AES运算电路150具有替换字节(sub bytes)变换块151、移位行(shift rows)变换块152、混合列(mix columns)变换块153、开关154、EXOR运算块155和128比特寄存器156。
替换字节变换块151执行Sub_Bytes()函数以执行通过Sbox的替换变换。
移位行变换块152执行Shift_Rows()函数以移位替换字节变换块151的字节数据。
混合列变换块153执行Mix_Columns()函数以执行GF(28)中的矩阵运算。
在该示例中,寄存器156被布置为紧邻在替换字节变换块(Sub_Bytes()函数)151之前;还可以将该寄存器布置在另一位置处。
在密码运算时,明文被与第0轮次的密钥进行异或,然后在128比特寄存器156中被捕获。
接下来,当128比特寄存器156的输出改变时,执行Sub_Bytes()函数和Shift_Rows()函数。直到第9轮次,连续执行Mix_Columns()函数,并且将其运算结果与轮次密钥进行异或。
在第10轮次时,Mix_Columns()函数被跳过,并且在Shift_Rows()函数之后获得的运算结果被与轮次密钥进行异或以捕获到128比特寄存器156中。
因而,执行了AES运算电路150的基本处理。
在与本实施例相关联的AES运算电路150A中,编码块161被布置在替换字节变换块151的输入侧上,并且译码块171被布置在替换字节变换块151的输出侧上。
编码块162被布置在混合列变换块153的输入侧上,并且译码块172被布置在混合列变换块153的输出侧上。
译码块173被布置在轮次密钥的输入块上。
译码块174被布置在明文供应块上。
另外,编码块163被布置在寄存器156A的密文输出块中。
在与本实施例相关联的AES运算电路150A中,明文被译码块174译码以便输入到运算流中。
运算的结果被编码块163编码以便输出。
在运算流中,通过Sub_Bytes()函数和Mix_Columns()函数的输入而执行编码并且以二进制形式执行运算,运算的结果被译码块171、172译码以便输出。
轮次密钥也被译码块173译码以便提供到运算流,在运算流中,译码值被彼此进行异或。
在该示例中,译码值被不加改变地存储在寄存器156A中;在以两比特为基础进行译码的情况下,布置了256比特的寄存器(128比特寄存器的两倍)。
应当注意,另一种配置也可能是适用的,其中寄存器值在输入处被编码以便以二进制形式存储,并且其输出被译码以便提供到运算块。
根据上述本发明的第三实施例,提供了与上述第一和第二实施例基本相同的效果。
(4)第四实施例
下面描述本发明的第四实施例。
参考图20,示出了作为本发明第四实施例的密码处理装置的DES运算电路的示例性配置。
与第四实施例相关联的DES运算电路100B和与第二实施例相关联的DES运算电路100A有以下不同。
如上所述,与第二实施例相关联的DES运算电路100A使用沿着信号布线传播的信号作为译码值,从而使得DPA攻击变得困难。
在运算块中,编码在其输入处被执行以便以二进制形式运算,从而产生了此时的漏电流变为攻击目标的可能性。
与第四实施例相关联的DES运算电路100B具有这样一种配置,其中运算块也利用译码值进行运算,从而减少了运算块中漏电流的可能性。
参考图21,示出了与第四实施例相关联的DES运算电路100B的F函数块。
图21中所示的F函数块111B与图2中所示的F函数块111的基本不同之处在于:轮次密钥Kn被译码,并且在执行P置换之后Sbox执行非线性置换。
于是,在与第四实施例相关联的DES运算电路100B中,译码块119被布置在对轮次密钥Kn的F函数块111B的输入块处,并且F函数块111B的R寄存器107A的数据输入块的编码块被省略。
译码数据被输入到F函数块111B中,在扩展部分1111B中对输入的译码数据执行比特扩展,并且将扩展后的数据与译码数据的轮次密钥(作为译码值)进行异或。
接下来,原本是通过Sbox执行非线性变换,然后对输出执行P置换;然而,在第四实施例中,通过P置换部分1114B执行P置换,然后通过Sbox 1113B执行非线性变换以输出F函数。
下面具体说明用于利用2比特译码值执行运算的配置。
参考图22,示出了通常的二进制运算中扩展函数的一个示例。
参考图23,示出了图示第四实施例中的扩展函数的示图。
参考图24,示出了第四实施例中BDD的Sbox的子Sbox的示例性配置。
参考图25,示出了第四实施例中BDD的子Sbox的示例性译码输出。
图23中所示的扩展部分500(1111B)具有2输入NOR门NR500至NR504、3输入NOR门NR505、反相器IV500、IV501、译码线LD500至LD503。
NOR门NR500的第一输入端连接到比特b2、b3的译码数据d4的供应线,第二输入端连接到比特b2、b3的译码数据d6的供应线。
NOR门NR500的输出端连接到译码线LD500,并且经由反相器IV500连接到译码线LD501。
NOR门NR501的第一输入端连接到比特b8、b9的译码数据d16的供应线,第二输入端连接到比特b8、b9的译码数据d17的供应线。
NOR门NR501的输出端连接到译码线LD502,并且经由反相器IV501连接到译码线LD503。
NOR门NR502的第一输入端连接到译码线LD502,第二输入端连接到译码线LD500。
NOR门NR503的第一输入端连接到译码线LD503,第二输入端连接到译码线LD500。
NOR门NR504的第一输入端连接到译码线LD502,第二输入端连接到译码线LD501。
NOR门NR505的第一输入端连接到译码线LD503,第二输入端连接到控制信号PC’的供应线,第三输入端连接到译码线LD501。
在扩展部分500中,比特b4、b5的译码数据d8至d11保持不变。同样地,比特b6、b7的译码数据d12至d15保持不变。
NOR门NR502至NR505的输出成为比特b3、b8的译码数据dx3、dx2、dx1和dx0。
如图22所示,在通常的二进制运算的扩展函数中,32比特F函数输入被划分为8个4比特群组,并且每个4比特群组被扩展为6比特(通过向4比特群组的两端加上2比特),所得到的6比特群组被输入到子Sbox中。
在第四实施例中,输入信号是以两比特为基础来译码的。
因而,如图23所示,对于四比特,使用了两个译码值;对于相邻比特,仅仅必要的比特被从相邻的译码值中取出,所取出的比特被译码以进行生成。
扩展函数的输出被与以两比特为基础译码的轮次密钥进行异或。对于EXOR运算部分1112B,使用了图10所示的配置。
在该EXOR运算部分1112B的情况下,如果在两个输入之间存在延迟差异,则输出根据稍后的信号改变而发生改变,从而防止了生成基于之前改变的数据的中间值。
在扩展函数的输出中,由逻辑运算生成的译码值与另外两个译码值相比具有延迟。该延迟在与密钥的EXOR运算之后被保持不变。具有该延迟的信号被用作Sbox的最后级的开关控制信号,从而减轻了延迟。
在第四实施例的情况下,Sbox 1113B的输入信号是2比特译码数据。当该信号被编码回二进制数据时,该二进制数据提供了泄漏源。
在第四实施例中,为了不加改变地利用2比特译码信号执行Sbox运算,开关电路11130B被用于选择来自四个输入信号的输出中的一个,如图24所示。
在该配置中,图12中所示的三个开关电路11130被一个4输入1输出开关电路11130B替代。
该开关电路11130B执行控制,以使得要通过2比特译码信号从四个输入中选择出的一个数据被选择出来,并且所选的一个数据被发送到下一开关电路11130B。
因此,在通常的Sbox的输入信号宽为六比特的情况下,该信号被提供作为三组信号,这三组信号在该第四实施例中被每两比特地译码,并且Sbox 1113B由开关电路11130B的三级配置而成。
Sbox 1113B的输出是二进制数据;通常,该输出通过P置换而被重布置以提供F函数的输出。
在第四实施例的情况下,F函数的该输出以两比特为基础被译码,并且译码数据被输入到执行与L寄存器106A的EXOR运算的EXOR运算块113中;然而,因为直到译码块为止的信号布线的数据是二进制数据,所以存在被DPA攻击的可能性。
这里提出了一种用于克服上述问题的方法,其中用于生成Sbox 1113B的比特的电路基于P置换之后的重布置而被布置,并且要译码的比特的生成电路被并排布置,如图25所示。
因此,从Sbox的每个输出到译码块的信号布线可以被最小化,从而继而使得信号布线上的电流泄漏最小化。
使用该布置配置引起了Sbox输入信号的长度增大的问题;然而,Sbox输入信号是译码数据,因此译码基础上的四个信号以相同的方式被拉长。
因而,充电/放电电流也增大(无论数据如何),这使得对DPA抵抗力的降低维持在可忽略的水平。
如上所述,已经示出了这样一种配置,其中DES的运算电路部分能够利用译码值进行运算。
同样地,该配置可以被改变以便利用译码值来操作用于AES的运算电路部分。
如上所述,根据本实施例,使用了这样一种配置,其中译码值被用于通过信号布线发送的数据,并且运算块通过译码值而被操作,从而使得信号布线和运算块上的漏电流最小化以增强DPA抵抗力。
IC的操作电流由下式表达:{IC的操作电流=由于负载布线的充电/放电所消耗的电流+由于直通电流(through-current)所消耗的电流+由于泄漏所消耗的电流}。
IC的操作电流的规范是基于操作电流的实际测量数据来设定的。
对于规范的充电/放电电流成分,如果例如关注32条信号线,则0和32之间的值被取为信号改变,并且由作为该值平均值的16个信号和最大为32条信号线的充电/放电的实际测量结果来确定规范。
然而,如果例如使用以两比特为单位译码的译码信号,则信号数目增大到64,但是四个中仅有一个总是改变,并且发生改变的电流数目总是16(无论二进制数据如何),从而与通常配置相比使得负载布线的最大充电/放电电流减半。
在通过利用线圈接收磁力来生成电力以进行操作的卡的情况下,可用的电流受限,因此,电流规范由最大操作电流确定,从而允许操作电流的规范被设定为相对较低的水平。
下面参考图26描述IC模块600的示例性配置,IC模块600是用于执行上述密码处理的设备。
上述处理可在各种类型的信息处理装置中执行,例如PC、IC卡、读写器等等。图26中所示的IC模块600可以被配置到这些类型的装置中。
在图26中,CPU(中央处理单元)601是用于开始和结束密码处理、控制数据发送和接收、控制各种配置块之间的数据传送、并且执行各种程序的处理器。
存储器602包括用于存储要由CPU 601执行的程序和作为操作参数的固定数据的ROM(只读存储器)。
存储器602还具有存储要由CPU 601执行的程序和在执行期间不时改变的参数并且提供工作区域(其中例如执行程序)的RAM(随机访问存储器)。
另外,存储器602可用作用于存储密码处理所必需的密钥数据等的存储区域。用于数据等的存储区域优选地被配置为具有防篡改构造的存储器。
密码处理块603是被配置为执行包括多级轮次函数重复处理的密码算法(例如上述DES算法)的密码处理装置。
更具体而言,图1中所示的DES运算电路100、图16中所示的DES运算电路100A、图19中所示的AES运算电路150A和图20中所示的DES运算电路100B被应用于密码处理块603。
发送/接收块604是被配置为执行与外部的数据通信的数据通信处理块;更具体而言,发送/接收块执行与IC模块(例如读写器)的数据通信,从而例如输出在IC模块内部生成的密文并输入来自外部设备(例如读写器)的数据。
应当注意,应用在密码处理块603中的各种控制信号(例如上述开关控制信号)是在定时生成电路606中生成的,定时生成电路606在被从时钟生成电路605提供来的时钟信号触发时进行操作。所生成的信号可以被提供到密码处理块603。
尽管利用具体项目描述了本发明的优选实施例,但是这种描述仅用于说明目的,并且应当理解,可以对其进行改变和变化,更不脱离权利要求的精神或范围。
本申请包含与2008年11月20日向日本专利局提交的日本在先专利申请JP 2008-296411有关的主题,该申请的全部内容通过引用结合于此。
Claims (13)
1.一种密码处理装置,包括:
至少一个寄存器,被配置为存储用于运算的数据作为寄存器存储值;
第一运算块,被配置为根据存储在所述寄存器中的数据执行运算;
第二运算块,被配置为执行所述寄存器存储值和密钥中的一者与所述第一运算块的运算结果之间的逻辑运算;以及
译码块,被配置为以预定比特数为单位对二进制数据进行译码以将所述二进制数据变换为比特数多于所述二进制数据的比特数的译码数据,
其中所述第二运算块的运算结果被存储在所述寄存器中,并且
所述译码块被布置为使得:沿着从所述寄存器存储值和所述密钥中的至少一者的供应块和所述第一运算块到所述第二运算块的信号布线传播的数据被以一状态提供,在该状态中,二进制数据被以所述预定比特数为单位译码以便被变换为比特数多于所述二进制数据的比特数的译码数据。
2.如权利要求1所述的密码处理装置,其中所述译码数据被变换以使得:对于所述二进制数据中的每一个,逻辑“1”和逻辑“0”之一位于不同位置处,并且其余的位置是逻辑“0”和逻辑“1”之一。
3.如权利要求1所述的密码处理装置,其中所述寄存器包括第一寄存器和第二寄存器;
译码块被布置用于对输入明文的二进制数据进行译码以便变换为所述译码数据并将所述译码数据选择性地提供到所述第一寄存器和所述第二寄存器;
所述第一运算块根据存储在所述第二寄存器中的数据执行运算;
所述第二运算块执行所述第一寄存器的存储值和所述第一运算块的运算结果之间的异或运算;并且
所述第二运算块的运算结果被存储在所述第二寄存器中。
4.如权利要求3所述的密码处理装置,其中所述第一寄存器的输入块和所述第二寄存器的输入块各自具有被配置为对所述译码数据进行编码以便变换为二进制数据的编码块;
所述第一寄存器的输出块和所述第二寄存器的输出块各自具有被配置为对存储在所述第一寄存器和所述第二寄存器中的二进制数据进行译码以便变换为所述译码数据的译码块;
所述第一运算块的输入块具有被配置为对存储在所述第二寄存器中的所述译码数据进行编码以便变换为二进制数据的编码块;并且
所述第一运算块的输出块具有被配置为对所述运算结果进行译码以便变换为被输出到所述第二运算块的所述译码数据的译码块。
5.如权利要求4所述的密码处理装置,其中通过预充电阶段和评估阶段形成了一个轮次;
所述第一寄存器的输出块和所述第二寄存器的输出块中的每一个的所述译码块在预充电阶段中将所有译码数据预充电为预定电平,在所述预充电阶段中,预充电控制信号为活动的;并且
所述译码块在所述评估阶段中执行所述译码处理。
6.如权利要求3所述的密码处理装置,其中所述第一运算块的输入块具有被配置为对存储在所述第二寄存器中的译码数据进行编码以便变换为二进制数据的编码块;并且
所述第一运算块的输出块具有被配置为对所述运算结果进行译码以便变换为所述译码数据并将所述译码数据输出到所述第二运算块的译码块。
7.如权利要求6所述的密码处理装置,其中一个轮次由预充电阶段和评估阶段形成;并且
所述第一寄存器的输出块和所述第二寄存器的输出块中的每一个的所述译码块在预充电阶段中将所有译码数据预充电为预定电平,在所述预充电阶段中,预充电控制信号为活动的。
8.如权利要求1所述的密码处理装置,其中所述第一运算块具有作为非线性变换块的Sbox,所述Sbox由多个子Sbox形成,所述Sbox的输出被利用不同的所述多个子Sbox的输出比特译码。
9.如权利要求3所述的密码处理装置,其中所述第一运算块具有被配置为扩展输入数据的比特的扩展块;以及
被配置为执行所述扩展块的扩展数据和已对其执行了所述译码处理的密钥之间的异或运算的异或运算块。
10.如权利要求9所述的密码处理装置,其中所述第一运算块具有被配置为置换作为所述异或运算块的运算结果的比特位置的置换块;以及
被配置为对所述置换块的输出数据执行非线性变换处理的Sbox。
11.如权利要求1所述的密码处理装置,还包括:
被配置为对所述运算之后译码的运算结果进行编码以便变换为二进制数据的编码块。
12.如权利要求1所述的密码处理装置,其中所述译码数据的汉明权重彼此相等。
13.如权利要求1所述的密码处理装置,其中所述密码处理装置基于数据加密标准算法和高级加密标准算法之一执行密码处理运算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008-296411 | 2008-11-20 | ||
JP2008296411A JP4687775B2 (ja) | 2008-11-20 | 2008-11-20 | 暗号処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101739889A CN101739889A (zh) | 2010-06-16 |
CN101739889B true CN101739889B (zh) | 2012-04-25 |
Family
ID=41571860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102228897A Expired - Fee Related CN101739889B (zh) | 2008-11-20 | 2009-11-20 | 密码处理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8370642B2 (zh) |
EP (1) | EP2190143A1 (zh) |
JP (1) | JP4687775B2 (zh) |
CN (1) | CN101739889B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101811755B1 (ko) * | 2011-07-15 | 2018-01-26 | 엘지전자 주식회사 | 이동 단말기 |
CN102970132B (zh) * | 2011-08-31 | 2015-02-18 | 北京中电华大电子设计有限责任公司 | 一种防止对分组算法进行功耗分析和电磁辐射分析的防护方法 |
DE102011088502B3 (de) * | 2011-12-14 | 2013-05-08 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken |
JP6136325B2 (ja) * | 2013-02-08 | 2017-05-31 | 日本電気株式会社 | 暗号処理装置、暗号処理方法およびプログラム |
DE102013205544A1 (de) * | 2013-03-28 | 2014-10-02 | Robert Bosch Gmbh | Vorrichtung und Verfahren zur Verarbeitung von Daten |
WO2014205398A1 (en) * | 2013-06-21 | 2014-12-24 | Cryptography Research, Inc. | Energy analysis for differential power analysis resistance |
US20150260768A1 (en) * | 2014-03-13 | 2015-09-17 | Kabushiki Kaisha Toshiba | Detection method of algorithm in integrated circuit |
TWI712915B (zh) | 2014-06-12 | 2020-12-11 | 美商密碼研究公司 | 執行一密碼編譯操作之方法,以及電腦可讀非暫時性儲存媒體 |
KR102446866B1 (ko) | 2014-08-28 | 2022-09-23 | 삼성전자주식회사 | 부채널 공격을 방지하는 암복호화기 및 이의 구동 방법 그리고 이를 포함하는 제어 장치 |
SG10201405852QA (en) | 2014-09-18 | 2016-04-28 | Huawei Internat Pte Ltd | Encryption function and decryption function generating method, encryption and decryption method and related apparatuses |
US9654111B1 (en) * | 2014-11-12 | 2017-05-16 | Maxim Integrated Products, Inc. | Systems and methods for protecting data using reconfigurable logic paths |
WO2016167076A1 (ja) * | 2015-04-16 | 2016-10-20 | ブリルニクスインク | 固体撮像装置、固体撮像装置の駆動方法、および電子機器 |
US10530566B2 (en) | 2015-04-23 | 2020-01-07 | Cryptography Research, Inc. | Configuring a device based on a DPA countermeasure |
US10255462B2 (en) * | 2016-06-17 | 2019-04-09 | Arm Limited | Apparatus and method for obfuscating power consumption of a processor |
CN109039608B (zh) * | 2018-08-24 | 2023-05-09 | 东南大学 | 一种基于双S核的8-bitAES电路 |
CN109951268B (zh) * | 2019-02-18 | 2020-12-22 | 吉林大学珠海学院 | 基于位置换和位变换的加密解密方法和装置 |
CN110795747A (zh) * | 2019-10-18 | 2020-02-14 | 浪潮电子信息产业股份有限公司 | 一种数据加密存储方法、装置、设备及可读存储介质 |
KR20210108787A (ko) | 2020-02-26 | 2021-09-03 | 삼성전자주식회사 | 듀얼 인코더를 포함하는 시큐리티 회로 및 이를 포함하는 암복호화기 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007251390A (ja) * | 2006-03-14 | 2007-09-27 | Sony Corp | 半導体集積回路 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0812537B2 (ja) * | 1993-03-11 | 1996-02-07 | 日本電気株式会社 | 暗号化装置 |
JP3029381B2 (ja) * | 1994-01-10 | 2000-04-04 | 富士通株式会社 | データ変換装置 |
US5511123A (en) * | 1994-08-04 | 1996-04-23 | Northern Telecom Limited | Symmetric cryptographic system for data encryption |
US5745577A (en) * | 1996-07-25 | 1998-04-28 | Northern Telecom Limited | Symmetric cryptographic system for data encryption |
US5949884A (en) * | 1996-11-07 | 1999-09-07 | Entrust Technologies, Ltd. | Design principles of the shade cipher |
JP3351305B2 (ja) * | 1997-08-07 | 2002-11-25 | 日本電気株式会社 | 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体 |
US6182216B1 (en) * | 1997-09-17 | 2001-01-30 | Frank C. Luyster | Block cipher method |
WO1999067766A2 (en) * | 1998-06-03 | 1999-12-29 | 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 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
JP2000305453A (ja) * | 1999-04-21 | 2000-11-02 | Nec Corp | 暗号化装置,復号装置,および暗号化・復号装置 |
CA2298990A1 (en) * | 2000-02-18 | 2001-08-18 | Cloakware Corporation | Method and system for resistance to power analysis |
US6931127B2 (en) * | 2000-05-31 | 2005-08-16 | Hynix Semiconductor Inc. | Encryption device using data encryption standard algorithm |
CN1193537C (zh) * | 2000-07-04 | 2005-03-16 | 皇家菲利浦电子有限公司 | 将输入数据块加密转换成输出数据块的方法和系统 |
CA2327911A1 (en) * | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
US20030086564A1 (en) * | 2001-09-05 | 2003-05-08 | Kuhlman Douglas A. | Method and apparatus for cipher encryption and decryption using an s-box |
US7194633B2 (en) * | 2001-11-14 | 2007-03-20 | International Business Machines Corporation | Device and method with reduced information leakage |
KR100423811B1 (ko) | 2001-12-12 | 2004-03-22 | 한국전자통신연구원 | 카스미 암호화 알고리즘을 응용한 암호화 장치 |
US8582774B2 (en) * | 2002-03-07 | 2013-11-12 | Gemalto Sa | Method for making safe an electronic cryptography assembly with a secret key |
US7221756B2 (en) * | 2002-03-28 | 2007-05-22 | Lucent Technologies Inc. | Constructions of variable input length cryptographic primitives for high efficiency and high security |
GB0211812D0 (en) * | 2002-05-23 | 2002-07-03 | Koninkl Philips Electronics Nv | S-box encryption in block cipher implementations |
KR100456599B1 (ko) * | 2002-11-12 | 2004-11-09 | 삼성전자주식회사 | 병렬 디이에스 구조를 갖는 암호 장치 |
JP3819872B2 (ja) * | 2003-05-23 | 2006-09-13 | 株式会社東芝 | 論理演算装置 |
JP3945497B2 (ja) * | 2004-06-30 | 2007-07-18 | 株式会社日立製作所 | 情報処理装置、icカード |
JP2006019872A (ja) * | 2004-06-30 | 2006-01-19 | Sony Corp | 暗号処理装置 |
JP2008524901A (ja) * | 2004-12-20 | 2008-07-10 | エヌエックスピー ビー ヴィ | データ処理装置及びその動作方法 |
DE602005002349T2 (de) * | 2005-05-10 | 2008-01-17 | Research In Motion Ltd., Waterloo | Schlüsselmaskierung für kryptographische Prozesse |
JP2007189659A (ja) * | 2005-12-15 | 2007-07-26 | Toshiba Corp | 暗号化装置、暗号化方法及び暗号化プログラム |
BRPI0714242A2 (pt) * | 2006-07-12 | 2013-01-29 | Koninkl Philips Electronics Nv | sistema e mÉtodo para aumentar a resistÊncia Á adulteraÇço de uma unidade de processamento de dados digitais, e, produto de programa de computador |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP4967544B2 (ja) * | 2006-09-01 | 2012-07-04 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2008099204A (ja) * | 2006-10-16 | 2008-04-24 | Toshiba Corp | 論理回路 |
JP5203594B2 (ja) | 2006-11-07 | 2013-06-05 | 株式会社東芝 | 暗号処理回路及び暗号処理方法 |
JP4909018B2 (ja) * | 2006-11-16 | 2012-04-04 | 富士通株式会社 | 共通鍵暗号のための暗号化装置 |
JP4453697B2 (ja) * | 2006-12-15 | 2010-04-21 | ソニー株式会社 | 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム |
US8538015B2 (en) | 2007-03-28 | 2013-09-17 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US7970129B2 (en) * | 2007-04-19 | 2011-06-28 | Spansion Llc | Selection of a lookup table with data masked with a combination of an additive and multiplicative mask |
JP4936996B2 (ja) * | 2007-05-24 | 2012-05-23 | 株式会社東芝 | 非線形データ変換器、暗号化装置、および復号装置 |
GB2453367A (en) * | 2007-10-04 | 2009-04-08 | Univ Newcastle | Cryptographic processing using isomorphic mappings of Galois fields |
US20110110519A1 (en) * | 2008-01-09 | 2011-05-12 | Tomoyasu Suzaki | Data transmission device, data reception device, methods thereof, recording medium, and data communication system therefor |
US20100329450A1 (en) * | 2009-06-30 | 2010-12-30 | Sun Microsystems, Inc. | Instructions for performing data encryption standard (des) computations using general-purpose registers |
-
2008
- 2008-11-20 JP JP2008296411A patent/JP4687775B2/ja not_active Expired - Fee Related
-
2009
- 2009-10-14 EP EP09252412A patent/EP2190143A1/en not_active Withdrawn
- 2009-11-19 US US12/621,620 patent/US8370642B2/en not_active Expired - Fee Related
- 2009-11-20 CN CN2009102228897A patent/CN101739889B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007251390A (ja) * | 2006-03-14 | 2007-09-27 | Sony Corp | 半導体集積回路 |
Non-Patent Citations (2)
Title |
---|
LLOYD D W.A practical comparison of asynchronous design styles.《Asynchronous Circuits and Systems》.2001, * |
Simon Moore.Balanced self-checking asynchronous logic for smart card applications.《Microprocessors and microsystems》.2003,第27卷(第9期), * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
Also Published As
Publication number | Publication date |
---|---|
EP2190143A8 (en) | 2010-10-06 |
JP4687775B2 (ja) | 2011-05-25 |
EP2190143A1 (en) | 2010-05-26 |
US20100153744A1 (en) | 2010-06-17 |
US8370642B2 (en) | 2013-02-05 |
JP2010124276A (ja) | 2010-06-03 |
CN101739889A (zh) | 2010-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101739889B (zh) | 密码处理装置 | |
JP4596686B2 (ja) | Dpaに対して安全な暗号化 | |
CA2749961C (en) | Cryptography circuit protected against observation attacks, in particular of a high order | |
US8369516B2 (en) | Encryption apparatus having common key encryption function and embedded apparatus | |
KR101564601B1 (ko) | 메시지의 암호 해싱 및 데이터 암호화의 유사-난수 생성을 위한 암호화 방법 및 그 장치 | |
EP2228941B1 (en) | Encryption processing apparatus | |
KR100800468B1 (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
CN110663216A (zh) | 密码设备和方法 | |
CN108650076A (zh) | 基于量子可逆逻辑的aes加密系统硬件模块的实现方法 | |
Dewangan et al. | Study of avalanche effect in AES using binary codes | |
CN104348625A (zh) | 加解密装置及其加解密方法 | |
CN105184115A (zh) | 用于将隐式完整性或可信性检查包括到白箱实现中的方法 | |
CN104301095A (zh) | Des轮运算方法和电路 | |
Bai et al. | Protect white‐box AES to resist table composition attacks | |
Kelber et al. | General design rules for chaos-based encryption systems | |
Brier et al. | Fast primitives for internal data scrambling in tamper resistant hardware | |
Golić | DeKaRT: A new paradigm for key-dependent reversible circuits | |
Karri et al. | Parity-based concurrent error detection in symmetric block ciphers | |
KR20170108595A (ko) | 논리적 보수 관계값을 이용한 부채널 분석 방지 암호화 장치 및 방법 | |
JP5500277B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
US10678709B2 (en) | Apparatus and method for memory address encryption | |
US20220417012A1 (en) | Method for performing cryptographic operations in a processing device, corresponding processing device and computer program product | |
Kim et al. | Protecting secret keys in networked devices with table encoding against power analysis attacks | |
De Paola et al. | Bayesian system for differential cryptanalysis of DES | |
Swayamprakash et al. | Design of Advanced Encryption Standard using Verilog HDL |
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: 20120425 Termination date: 20151120 |
|
EXPY | Termination of patent right or utility model |