专利名称:运算处理装置、运算处理控制方法以及计算机程序的制作方法
技术领域:
本发明涉及运算处理装置、运算处理控制方法以及计算才几程 序。更具体地,本发明涉及使用逻辑电路的运算处理装置、运算处 理控制方法以及计算机程序,能够有效地执行与诸如根据AES (高 级力口密标准)标准的通用密匙力口密或诸如才艮据RSA (Rivest-Sharmir-Adleman )算法的7>共密匙加密相关的运算,或者 有效地执行与诸如才艮据SHA-1 (安全哈希算法1 )的哈希函数相关 的运算。
背景技术:
近年来,网络通信和电子商务已经变得非常受欢迎。因此,通 信中的安全性变得越来越重要。在通信中实现高安全性的 一种技术 是使用密码,并且实际在通信中使用许多加密技术。
加密方法被分为两种类型通用密匙加密和公共密匙加密。通 用密匙加密技术的特定实例是使用DES (数据加密标准)算法以及
使用AES (高级加密标准)算法的技术。AES加密被广泛地用作 DES加密的后继加密算法。公共密匙加密的特定实例是RSA (Rivest-Shamir画Adleman )力。密和ECC (椭圓曲线密码学)加密。
用于才艮据这种算法扭J于加密处理的加密处理装置可以通过4丸 行以诸如C的程序语言所写的程序在CPU上实现,或者可以以使 用各种门电路的硬件装置的形式实现。
加密处理装置扭J亍^:据加密处理以将给出的明文加密成密文, 或执行数据解密处理以将给出的密文解密成明文。期望以安全的方 式寺丸4于加密或解密处理, <吏得信息不#1泄露。然而,实际上,已知 各种分析或攻击用在加密或解密中的密匙或算法的技术。攻击方法 可以分成两种类型石皮坏性-文击和非石皮坏、性攻击。
在石皮坏性攻击中,通过〗吏用诸如硝酸的化学剂的化学处理来溶 解IC芯片的封装,并从IC芯片的暴露管芯中物理地读取秘密信息。 众所周知,才艮据暴露管芯上的互连配线再现电^各。这就是所知的逆 向工程。可以乂人互连配线中直4妄才是耳又出秘、密信息。此夕卜,还知道通 过用激光束或电{兹波照射存储单元来4企测存储单元的状态以7见察 在存储器中写入的秘密信息。
非石皮坏性攻击还^皮称作侧信道攻击。在这种方法中,IC芯片的 封装没有被化学溶解,但是由可从外部获得的诸如消耗电流、电磁 辐射、运算时间等的物理信息4企测秘密信息。例如,在由Kocher 等人1999年所写的i仑文(Paul C. Kocher, Joshaua Jaffe和Benjamin Jun, "Differential Power Analysis", CRYPTO 1999, Lecture Note in Computer Science, Vol.1666, Springer-Verlag ( 1999 ), 388-397页 (下文称作非专利文献l))中,讨论了通过观察当由装置执行根据 DES算法(通用密匙加密4支术的一种)的加密处理时所发生的消寿毛 电流消的变化来检测密匙信息(秘密信息)的技术。攻击技术的存 在导致了秘密信息被泄露为不是秘密的可能性,因此,需要更安全 地保护信息的技术。
更具体地,在非专利文献1中讨i仑的DPA (差分功津毛分析)攻 击中,为许多对应于不同的输入明文的加密运算观察电流消碑毛,并 基于秘密信息的位值统计地分析电流消耗。经由统计分析检测与秘 密信息具有相关性的电流消耗模式,并从电流消耗模式中提取秘密 信息。
已经建议了上述防止秘、密信息净皮攻击的各种4支术。例如,在 Elisabeth Oswald等人的i仑文(Elisabeth Oswald, Stefan Mangard, Norbert Pramstaller, "A Side-Channel Analysis Resistant Description of the AES S-box,,, FSE 2005, LNCS 3557, 413-423页(下文称作非专 利文献2))中讨论了保护与AES算法(通用密匙加密方法的一种) 相关的信息的技术。在这种技术中,通过使用随机数来隐藏包括秘 密信息的中间值来保护称作AES运算中字节替换(subbyte)转换 的S盒(S-box)运算。
在Kris Tiri等人的论文(Kris Tiri, Ingrid Verbauwhede, "Securing Encryption Algorithms against DPA at the Logic Level: Next Generation Smart Card Technology", CHES 2003, LNCS 2779, 125-136页(下文称作非专利文献3))中7>开了4吏用WDDL (波形 差分动态逻辑)的技术,通过交替执行预充电(pre-charge)阶段中 的运算和评估(evaluation)阶段的运算来保护秘密信息。
在预充电阶段中,初始化门电路,并在评估阶段中执行实际运 算。以互补形式给出门电路的输入,并且来自门电路的输出以互补 形式出现。为互补输入形成正逻辑和负逻辑,从而获得互补输出。 在交替执行预充电阶段和评估阶段且输入和输出以互补形式出现
的WDDL技术中,仅在从预充电阶段向评估阶,殳或从评估阶段向 预充电阶段的转换处允许任意信号的变化。
由于WDDL的上述特性,所以不会发生不必要的瞬时变化。 除此之外,在WDDL中,响应于<壬意1#入,两个输出中l又有一个 发生变化。因此,CMOS (互补金属氧化物半导体)逻辑的电流消 耗不发生改变,这是因为仅当逻辑状态发生变化时才发生充电/放 电。因此,不会发生依赖于秘密信息位值的电流消耗的变化。这有 效地保护秘密信息不受DPA攻击。
可通过使用例如二元判定图(BDD)的硬件执行称作AES算 法中字节替换转换运算的内部S盒运算。稍后将详述二元判定图 (BDD)。例如,在日本未审查专利申^青7>开第2003-223100号(下 文称作专利文献l)中,同样可以找到二元判定图(BDD)的描述。
专利文献1包括通过组合电路和其实际实现的S盒或二元判定 图(BDD)结构的讨论。使用通用密匙加密的加密运算包括使用称 作S盒的非线性变换单元的非线性变换处理。加密运算的总运算速 度极大地依赖于S盒的运算速度。例如,用于AES算法的S盒需 要用于在Galois i或中确定逆元(inverse element)的电^各。
如果使用合成域等而不是二元判定图(BDD )来实现这种电路, 则电路延迟比基于二元判定图(BDD)的电路中的延迟大几倍。因 此,从运算速度的^L点来看,期望实现使用二元判定图(BDD)的 电路。
发明内容
然而,在非专利文献1中描述的保护秘密信息的^支术中,由于 内部信号间的传4番延迟中差而使信号电平发生瞬时变化,并且存在
从这个瞬时变化中才企测出包括秘密信息的中间值的可能性。因此, 秘密信息没有被完全隐藏。
在非专利文献2中/>开的4吏用WDDL的技术中,需要确定电 路配线布局,使得不存在互补信号间的传播延迟差。在运算中,如 果在两个输入间存在巨大的传播延迟差,则该差可引起秘密信息被 DPA -丈击4全测到。
当使用二元判定图(BDD)实现非线性变化电路以获得高运算 速度时,有可能发生DPA攻击从信号的不必要的瞬时变化中4企测 到诸如密钥的秘密信息。即,在由基于二元判定图(BDD)的逻辑 电路执行的运算中,发生内部信号的瞬时变化。因此,可通过DPA 攻击从瞬时变化中检测到秘密信息。
考虑到上述问题,期望提供运算处理装置、运算处理控制方法 以及计算机程序,能够使用逻辑电路执行运算,其中,逻辑电路具 有最小的延迟差而不具有信号的不必要的瞬时变化,并对诸如试图 泄露秘密信息的DPA攻击的攻击具有高4氏抗性。
根据本发明的一个实施例,提供了一种运算处理装置,用于对 输入位执行数据变换,其包括逻辑电路以及适于使用逻辑电路控制 数据变换处理的控制单元,其中,逻辑电路包括被输入其中的选择 信号所控制的多个选择器,由输入位给出选择信号,选择器以分层 结构配置,使得将恒定值输入至位于底层中的多个选择器,对于每 一层根据选择信号选择恒定值并将其传送给更高层中的选择器,以 及一 恒定值最终#皮最高层中的 一选择器选4奪并乂人最高层中的该选 择器输出。控制单元控制数据变换处理,使得交替执行预充电阶段 和评估阶段,在预充电阶段中,将对逻辑电路中的选择器的所有输 入值i殳定为相等,在评估阶l殳中,产生对应于输入位的输出位,由 输入位所给出的选择信号在预充电阶,史中被切换。
在该运算处理装置中,逻辑电路中的每个选择器均可包括第 一与门,向其输入一个恒定值和选择信号;第二与门,向其输入一 个恒定值和选择信号的反相选择信号;以及或门,向其输入第一与 门的输出和第二与门的输出,在预充电阶段中,控制单元可将对第 一与门和第二与门的输入设定为相等值。
在运算处理装置中,逻辑电路中的每个选择器均可包括经由其 接收选择信号的输入节点和经由其接收选择信号的反相选择信号 的输入节点,并且逻辑电路还可包括在各个选择信号输入节点的前 级处所设置的逻辑运算元件、在反相选择信号输入节点的前级处所 设置的逻辑运算元件以及在位于底层且向其输入恒定值的各个选 择器的前级处所设置的逻辑运算元件,每个逻辑运算元件都用于接 收预充电信号,并且控制单元可切换输入至逻辑运算元件的预充电 信号以在切换预充电阶段和评估阶段之间进行切换。
在该运算处理装置中,每个逻辑运算元件都可以是与门,将预 充电信号输入至其一个输入,控制单元可切换输入至每个与门的一 个输入的预充电信号以在预充电阶段和评估阶段之间进行切换。
在该运算处理装置中,每个逻辑运算元件都可以是或门,将预 充电信号输入至其一个输入,控制单元可切换输入至每个或门的一 个输入的预充电信号以在预充电阶段和评估阶段之间进行切换。
在该运算处理装置中,在逻辑电路中的选择器中,可以用单个 公共选择器代替向其提供相等输入值的多个选择器。
在该运算处理装置中,逻辑电路中的选择器可以包括具有反相 输出的选择器和具有反相输入的选择器。
在该运算处理装置中,控制单元可控制数据变换处理,使得在 预充电阶段中,向设置在底层中的每个选择器输入恒定值,而在评 估阶段中,向底层中的选择器输入恒定值或随机值。
在该运算处理装置中,控制单元可控制门电路的输出,使得在 在该运算处理装置中,可配置逻辑电^各以实现二元判定图
(BDD )。
在该运算处理装置中,逻辑电^各可用于对输入位执4亍作为数据 变才灸处理的非线性变4灸处理。
根据本发明的一个实施例,提供了一种运算处理控制方法,用 于在运算处理装置中控制对输入位的数据变换处理,该运算处理装 置包括逻辑电路,其包括被输入其中的选择信号所控制的多个选择 器,由输入位给出选择信号,选择器以分层结构配置,使得将恒定 值输入至位于底层中的多个选择器,对于每一层根据选择信号选择 恒定值并将其传送给更高层中的选择器,以及一恒定值最终被最高 层中的 一选择器选择并从最高层中的该选择器输出,该方法包括通 过控制单元控制使用逻辑电路的数据变换处理,使得交替执行预充 电阶段和评估阶段,在预充电阶段中,将对逻辑电路中的选择器的 所有输入值i殳定为相等,在评估阶,殳中,产生对应于输入位的输出 位,在预充电阶l殳中切换由输入位给出的选择信号。
在该运算处理控制方法中,逻辑电路中的每个选择器均可包 括第一与门,向其输入一个恒定值和选择信号;第二与门,向其 输入一个恒定值和该选4,信号的反相选择信号;以及或门,向其输 入第一与门的输出和第二与门的输出,在预充电阶^a中,控制单元 可将对第一与门和第二与门的输入设定为相等值。
在该运算处理控制方法中,逻辑电路中的每个选择器均可包括 经由其接收选择信号的输入节点和经由其接收选择信号的反相选 择信号的输入节点,并且逻辑电路还可包括在各个选择信号输入节 点的前级处所设置的逻辑运算元件、在反相选择信号输入节点的前 级处所设置的逻辑运算元件以及在位于底层且向其输入恒定值的 各个选择器的前级处所设置逻辑运算元件,每个逻辑运算元件都用 于才妄收预充电信号,并且控制单元可切换输入至逻辑运算元件的预 充电信号以在预充电阶段和评估阶段之间进行切换。
在该运算处理控制方法中,每个逻辑运算元件都可以是与门, 将预充电信号输入至其一个输入,并且控制单元可切换输入至每个 与门的 一 个输入的预充电信号以在预充电阶,殳和评估阶^殳之间进 行切换。
在该运算处理控制方法中,每个逻辑运算元件都可以是或门, 将预充电信号输入至其一个输入,并且控制单元可切换输入至每个 或门的 一个输入的预充电信号以在预充电阶,殳和评估阶^殳之间进 行切换。
在该运算处理控制方法中,控制单元可控制数据变换处理,使 得在预充电阶段中,向设置在底层中的每个选择器输入恒定值,而 在评估阶段中,向底层中的选择器输入恒定值或随机值。
在该运算处理控制方法中,控制单元可控制数据变换处理,使根据本发明的一个实施例,提供了 一种可由运算处理装置执行
以对输入位执行数据变换处理的计算机程序,该运算处理装置包括 逻辑电路,其包括被输入其中的选择信号所控制的多个选择器,由 输入位给出选择信号,选择器以分层结构配置,使得将恒定值输入 至位于底层中的多个选择器,对于每一层根据选择信号选择恒定值 并将其传送给更高层中的选择器,以及一恒定值最终被最高层中的 一选择器选择并从最高层中的该选择器输出,该计算机程序控制数 据变换处理,使得交替执行预充电阶段和评估阶段,在预充电阶段 中,将对逻辑电路中的选择器的所有输入值设定为相等,在评估阶 段中,产生对应于输入位的输出位,在预充电阶段中切换由输入位 给出的选4爭信号。
经由以计算机可读方式存储程序的诸如CD、FD或MO的存储 介质或经由诸如网络的通信介质,可将计算机程序提供给能够执行 各种计算才几程序代码的计算才几系统。通过如上所述提供计算才几可读
形式的程序,可以才艮据程序在计算冲几系统上寺丸行处理。
从以下参照附图的示例性实施例的描述中,本发明的其他目 的、特征和优点将变得显而易见。在本说明书中,术语"系统"用于 描述多个装置的逻辑集合,且不需要要求多个装置设置在单个外壳 中。
如上所述,根据本发明的实施例,配置用于诸如非线性数据变 换的数据变换的逻辑运算装置,使得在预充电阶段中,逻辑电路中 的选择器的所有输入纟皮维持为相等值并切换输入位,而在预充电阶 段之后的评估阶段中,执行数据变换处理并产生输出位。因为在预 充电阶段中将所有选#^器输入复位为相等值,所以难以在切换输入 位的时刻基于信号的瞬时变化才丸行分析,因此,逻辑运算装置对于 DPA (差分功耗分析)等具有高抵抗性。
图1示出了才艮据使用AES算法或DES算法的通用密匙加密的 加密处理的基本功能结构的实例;
图2示出了才艮据AES算法的加密处理的功能结构的实例;
图3示出了执行AES加密处理的硬件结构的实例;
图4示出了用在非线性变换处理中的变换表(S盒表)的实例;
图5示出了通过逻辑电路输出作为根据非线性变换表(S盒表) 的非线性变换的结果而获得的完整输出数据的低阶(low order) — 4立所实3见的二元判定图(BDD)的实例;
图6示出了仅表示在图4所示表格中表示的256个输出值的每 一个的最低有效位的变换表;
图7示出了用在非线性变换逻辑电路中的选择器的结构实例;
图8A和8B是用于解释4言号的瞬时变4匕的示图9示出了^皮配置为可在预充电阶,殳和评估阶,殳l喿作的逻辑电 路的实例;
图10示出了用在非线性变换逻辑电路中的选择器的结构实例;
图11示出了根据本发明的实施例的被配置为执行非线性变换 处理的逻辑电if各的实例;
图12A和12B示出了根据本发明的实施例的切换逻辑电路中 的信号的方法实例; 图13示出了4艮据本发明的实施例的在非线性变换处理中控制 逻辑电路的方法实例;
图14示出了由单个选择器代替多个选择器的方法实例;
图15示 相输入选择器配置的逻辑电路;
图16
结构实例;
图17示出了根据本发明的实施例的包括或门的逻辑电路的结 构实例;以及
图18示出了根据本发明的实施例的用作加密处理装置的IC模 块的结构实例。
具体实施例方式
下面将参照具体实施例更详细地描述才艮据本发明的运算处理 装置、运算处理控制方法以及计算枳4呈序。
在下述实施例中,通过实例假定将本发明应用于使用AES (高 级加密标准)算法(通用密匙加密法的一种)的加密处理。在AES 算法中,例如,将128位明文转4灸为128位密文。同才羊对于作为一 种传统通用密匙加密法的DES (凄t据加密标准)算法,通过重复执 行轮操作(round operation )而实现数据变换。注意,本发明不仅适 用于使用AES或DES算法的通用密匙加密处理,还适用于各种非 线性或线性数据变换处理,例如基于RSA算法等的/>共密匙加密 处理、诸如SHA-1的哈希函数的计算等。
本发明具体实施例的描述包括下列部分。
1. 使用通用密匙的加密处理的基本功能结构
2. 使用BDD的非线性变换单元(S盒)的一般结构 3 .才艮据本发明的非线性变换单元的第 一 实例
4. 根据本发明的非线性变换单元的第二实例(具有共用的选择
器)
5. 根据本发明的非线性变换单元的第三实例(使用反相输出选 择器和反相输入选择器配置)
6. 才艮据本发明的非线性变换单元的第四实例(使用随机数作为 输入)
7. 根据本发明的非线性变换单元的第五实例(包括或门)
8. 加密处理装置的实例
1.使用通用密匙的加密处理的基本功能结构
图1示出了根据使用AES算法或DES算法的通用密匙加密的 加密处理的基本功能结构的实例。如图l所示,通用密匙加密的基 本功能结构包括密匙调度(scheduling )单元101和凄t据变换器110。 密匙调度单元101接收密钥100,并基于接收的密钥100产生用在 各轮中的轮密匙。将产生的轮密匙提供给各个轮操作单元151-1至 151-n。
在数据变换器110中,轮操作单元151-1至151-n根据由密匙 调度单元IOI提供的轮密匙对接收数据执行数据变换,并输出所得 到的变换数据。
在由轮、燥作单元151-1至151-n ^^亍的凄t据变换处理中,重复 执行相似的轮操作。在每轮中,对输入位执行使用变换表的非线性 变换、线性变换、或使用输入密匙(轮密匙)的数据变换。将每轮 中的运算结果传送给下一轮。
例如,在AES加密处理中,由4&操作单元151-1至151-n执行
的非线性变换处理称作字节替换转换。使用预先准备的非线性变换 表(S盒表)执行被称作字节替换转换的非线性变换处理。
图2示出了 AES力口密处理的细节。密匙调度单元201接收密 钥200,并基于4妄收的密钥200产生用在各寿仑中的4仑密匙。将产生 的轮密匙提供给各个轮操作单元210。如图2所示,用于AES加密 的轮操作单元210包括异或门211,用于计算输入数据和轮密匙 之间的异或;S盒212,用于执行被称作字节替换转换的非线性转 换;列混合(mix-column )单元213,用于交换乂人各个S盒212 #T 出的数据;异或门214,用于计算从各个列混合单元213输出的数 据和轮密匙之间的异或;以及S盒215,用于对从各个异或门214 输出的数据执行非线性转换。注意,在上述处理中,将数据分为多 ,殳(segment),每一,殳包括8位,并且如图2所示,以8位数据为 单位执行处理。
如上所述,重复执行轮操作。在通过硬件实现AES加密处理 单元的情况下,在AES加密处理单元中i殳置单个專仑^操作单元,并通 过该单个4仑」燥作单元重复执4亍4仑才喿作。图3示出了通过石更件实现 AES加密处理单元的实例。
在图3所示的实例中,如果向AES加密处理单元250输入第 一轮密匙0,则异或门251计算轮密匙0和将^皮加密的数据(128 位)之间的异或。将得到的数据经由选择器252提供给寄存器253。 然后,将数据分为多段,每段都包括8位,并将其提供给S盒254。 S盒254对相应8位数据执行非线性变换处理。将得到的数据提供 纟合列混合单元255。列混合单元255交换,接收凄t据中的位值。将得 到的数据经由选择器256提供给异或门257。异或门257确定接收 数据和轮密匙之间的异或。将结果经由选择器252返回至寄存器 253,并再次输入至S盒254。因此,重复执行该处理。当已经执行 了预定轮数时,从寄存器253输出作为上面处理结果而获得的密文。
在用作轮操作单元中的非线性变换单元的每个S盒中,如果给 出8位数据,则根据非线性变换表(S盒表)对给出的8位数据执 行非线性变换,从而产生8位输出数据。因为16个S盒的每一个 都产生8位非线性变换数据,所以由于非线性变换获得总共包括128 (16x8)位的输出数据。图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位^f直的交集乡会出的相应8位输入值的8位输出^直。
即,8位输入数据可采用00至FF ( 00000000至11111111 )的 256个不同的位值。每个8位值由高阶4位和低阶4位的组合表示, 并在图4所示的表格中进行描述。
例》口,只于于十六进制中的00 (二进制中的00000000) l命入, 根据图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层的各层 中的选择器从一层连接到另一层。最终从设置在第l层中的选择器 输出1位值。
在第1层中设置1个选择器,在第2层中设置2个选择器,在 第3层中设置4个选择器,在第4层中设置8个选择器,在第5层 中设置16个选择器,在第6层中设置32个选择器,在第7层中设 置64个选择器,以及在第8层中设置128个选择器,因此总共设 置了 255个选择器。
将来自第2层的输出输入至第l层中的选择器。将来自第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个车lr出j直(63、 7C、 77..... 54、 BB、 16)的每
一个的最低有效位的集合给出输入至图5底部所示第8层中的选择 器的256位值(10110111...11110010)。
例如,输入至图5底部第8层中的选4奪器的最左边位置处的位 值('T,)对应于图4所示表格中的顶行中最左边位置处的输出值 ("63")的最低有效位,而输入至图5底部第8层中的选择器的最 右边位置处的位值("0")对应于图4所示表格中底4亍中最右边位置 处的输出值("16")的最低有效位。
图6示出了仅表示在图4所示表格中表示的相应256个输出值
(63、 7C、 77..... 54、 BB、 16)的最^f氐有^M立的变4灸表。即,图
6所示的表才各表示在图4所示表格中表示的相应256 ( 16x16)个输
出^f直(63、 7C、 77..... 54、 BB、 16)的最寸氐有岁文4立,并a夺图6所
示表格中的这些位值设定为输入至图5所示电路中的第8层中的选 择器的值。
由具有经受非线性变换的总共128位的输入数据的一个8位段 给出输入至各层中的选择器的选择信号。更具体地,将输入8位数 据的最高有效位(in[7])作为选择信号输入至第1层中的选择器, 将输入8位数据的第2位(in[6])作为选择信号输入至第2层中的选择器。在随后的层中,类似地输入选择信号。最后,将最低有效位(in[O])作为选择信号输入至第8层中选择器。
从通过划分经受非线性变换的128位数据而获得的8位革殳中顺 序选择输入8位数据。因此,基于段执行非线性变换处理。
当输入至特定选择器的选择信号是"O"时,选择选择器左侧上 的输入,并将其输出至更高层中的选择器。当输入至特定选择器的 选择信号是'T,时,选择选择器右侧上的输入,并将其输出至更高层 中的选择器。因此,如果确定选择信号的8位,则输出第8层中的 选择器的256个输入中的对应一个。输入至第1至第8层的选择信 号的集合唯一确定哪一个输入至第8层中的选择器的恒定值被最终 选择并输出。
例如,在给出"00000000"作为经受非线性变换的输入8位数据 给出的情况下,选择信号的所有位是"0"。结果,在所有选择器中选 择左侧处的输入并输出至更高层。因此,将图5底部处第8层中的 选择器的输入的最左边位置处的位值"l"输出作为来自第1层中的 选择器的最终值。该输出值对应于图4所示表格中的顶行中的最左 边位置处的输出值("63")的最低有效位。如上所述,才艮据经受非 线性变换的数据的位值(OOOOOOOO至11111111),输出输入至第8 层中的选才奪器的256个值中的一个。由图4所示表格中的相应256 个^T出^f直(63、 7C、 77、…、54、 BB、 16)的最4氐有步丈^f立的纟且合纟合 出输入至第8层中的选择器的256个值。
通过设置包括在类似于图5所示分层结构中设置的选择器的8 个电^各,可以确定乂人图4的表格所示的256个可能^f直(63、7C、77、...、 54、 BB、 16)中选择的输出值的所有8位。 在图5所示的电路中,如上所述参照图6,通过图4所示表格 中的相应256个丰俞出4直(63、 7C、 77、…、54、 BB、 16)的最{氐有 效位的组合给出输入至图5底部处第8层中的选择器的256位值 (10110111…11110010)。
如果由图4所示表才各中的相应256个丰lT出^直(63、 7C、 77.....
54、 BB、 16)的第2位的组合给出输入至底部处第8层中的选择器 的256位值,则获得输出值的第2位的值。类似地,可以获得输出 值的第3至第8位。如果将以这种方式获得的第1至第8位值结合 起来,则获得对应于根据图4所示的非线性变换表通过变换给出的 8位值而获得的值的8位输出值。
因此,当给出输入值时,以上述方式配置的电路能够输出与根 据图4所示表格(S盒表)通过非线性变换而获得的值相对应的值。 换句话i兌,可通过由诸如图5所示的二元判定图(BDD)所定义的 逻辑功能实现由诸如图4所示的非线性变换表(S盒表)所定义的 变换。
在图5所示的逻辑电^各中,如上所述,在第1层中i殳置1个选 择器,在第2层中设置2个选择器,在第3层中设置4个选择器, 在第4层中设置8个选择器,在第5层中设置16个选择器,在第6 层中设置32个选择器,在第7层中设置64个选择器,在第8层中 i殳置128个选4奪器,因此,总共i殳置了 255个选择器。例如,可以 如图7所示配置每个选择器。
在图7所示的选择器中,选择器270包括与门271、与门272 以及或门273。将才艮据S盒表确定的恒定4直a和选4奪信号的反相信 号输入至与门271。将4艮据S盒表确定的恒定值b和选拷,信号输入 至与门272。将与门271的输出和与门272的输出!餘入至或门273。
当输入至选择器的选择信号是"O"时,选择并输出输入至选择
器的恒定值"a"。然而,当输入至选择器的选择信号是'T,时,选择 并输出输入至选择器的恒定值"b"。
在诸如图5所示二元判定图的各层中^1置类似于图7所示结构 的选择器,使得从最低层至最高层顺序确定输出。然而,在使用这 种选择器的结构中,由于每层中选择信号的输入定时的波动,所以 会发生信号电平的瞬时变化。
下面参照图8描述信号电平的瞬时变化。在图8中,部分(l) 示出了在各层中输入的选择信号((p) in
至in[7])的转变和使用 图5所示二元判定图(BDD)的逻辑电路中的最终选择器输出((q) out)的转变的时序图。在图8中,部分(2)以放大的方式示出了 图8 ( 1 )中的部分281。如图8(2)所示,在输入至图5中所示逻 辑电路中的相应8个层(第1至第8层)的相应8个选择信号((p) in
至in[7])中发生转变。难以在精确的相同时间改变8个选4^信 号((p) in
至in[7]),并且会在8个选择信号之间的转变定时中 产生差。
因此,所有l叙入8位都需要特定的时间周期,以在开始转变后 完成转变。在图8 (2)中,由At表示这个转变周期。图8 (2)中 所示的输出((q) out)的信号电平根据相应8个选择器层的输入8 位的状态而改变。在由图8(2)中的虚线表示的输出信号(q)的 范围内,由于选择信号的转变定时的波动,输出信号(q)的电平 会发生变化。
存在通过分析输出信号的电平中的变化泄露基于二元判定图 (BDD)的逻辑电路中使用的信号值的可能性。如上所述,在"背 景4支术"的部分中,存在基于丰IT出的瞬时变化的分析由DPA攻击泄 露秘密信息的可能性。 如上所述,在WDDL (波形差分动态逻辑)技术中,为了防止 发生信号的瞬时变化,有必要确定电路配线布局, -使得在每个互补 信号之间没有传播延迟差。如果在运算中两个输入之间具有显著的 传才番延迟差,则难以完美地/f呆护秘、密信息不受DPA攻击等。
3.根据本发明的非线性变换单元的第一实例
作为第一实例,如下所述,本发明提供了用作能够以最小的延 迟差而不具有不必要的信号的瞬时变化执行运算的非线性变换单 元(S盒)的逻辑电^各的结构。
更具体地,下面描述的第一实例是适于根据通用密匙分组密码 (block cipher)算法扭J于加密处理的加密处理装置,该加密处理装 置包括逻辑电路,用于通过对输入位执行非线性变换处理产生输 出位;以及控制单元,控制运算,使得在逻辑电路的输出被维持为 固定值的预充电阶,殳中切换才是供给逻辑电^各的输入位。如果完成输 入位的切换,则控制单元将运算阶,殳从预充电阶,殳切换为评估阶 段。在评估阶段中,对输入位执行非线性变换处理,并输出作为非 线性变换处理结果而获得的输出位。
图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所示,向每个选 择器输入选择信号和反相选择信号。图IO示出了选择器的结构实 例。
在图10所示的实例中,选择器300包括与门301、与门302 以及或门303。将才艮据S盒表确定的恒定4直a和反相选择信号输入 至与门301。将才艮据S盒表确定的恒定值b和选择信号输入至与门 302。将与门301的输出和与门302的输出输入至或门303。
在选择器300中,不同于上面参照图7描述的选择器270,独 立地输入选择信号和反相选择信号。即,在图10所示的选择器300 中,llr入至与门301和与门302的4个信号彼此独立。相反,在图 7所示选择器270的情况下,由相同的单个选才奪信号产生输入至与 门271的反相选择信号和输入至与门272的选择信号。
此外,在图10所示的该选择器300中,当输入至选择器的选 择信号是"O"时,选择输入至选择器的恒定值"a"并输出作为输出信 号c;而当输入至选择器的选择信号是'T,时,选择输入至选择器的 恒定值"b"并输出作为输出信号c。
图11示出了根据本发明本实施例的用作基于二元判定图 (BDD)执行非线性变换处理的S盒的逻辑电路结构的具体实例。 在图11所示的该电i 各中,配置每个选择器使得输入至选择器的 选择信号和反相选择信号是是独立可控的。
如图11所示,根据本发明本实施的用于例执行非线性变换处
理的逻辑电路包括连接至第8层中选择器的各个输入的与门、连接 至选择器的各个选择信号输入端的与门、以及连接至选择器的各个 反相选4奪信号输入端的与门。
经由256个与门将256个值输入至第8层中的选4奪器。如输入 至图5所示第8层中的选择器的,为相应的256个与门的输入中一 个4是供相同的恒定值。更具体地,由图4所示表格中的相应256个
$俞出<直(63、 7C、 77..... 54、 BB、 16)的第一至第/^f立中的一个
的组合给出恒定值。
另一方面,由总共具有128位经受非线性变换的输入tt据的一 个8位段给出输入至各层中的选择器的选择信号,使得将该8位段 的最高有效位(in[7])作为选择信号经由与门输入至第l层中的选 择器,将该8位段的第2位(in[6])作为选择信号经由与门输入至 第2层中的选l奪器,以及在以下的层中,类似地经由与门输入选4奪 信号。最后,将该8位段的最低有效位(in[O])作为选择信号经由 与门输入至第8层中的选择器。
如上所述,从通过划分经受非线性变换的的128位数据而获得 的8位段中顺序选择输入8位数据。因此,基于段执行非线性变换 处理。
除选择信号之外,还将反相选择信号经由与门输入至选择器。
如上所述,^4居本实施例的逻辑电路包括连接至向其输入恒定 值的第8层中的选择器的各个输入的与门、连接至选择器的各个选 择信号输入端的与门以及连接至选择器的各个反相选择信号输入 端的与门,并输入数据,使得经由与门将数据输入至第8层中的选 择器,经由与门将选择信号输入至各个选择器,以及经由与门将反
相选择信号输入至各个选择器。上述电路结构可使逻辑电路具有预 充电阶段和评估阶段。通过图中未示出的控制单元控制阶段之间的 切换、输入至逻辑电路的信息的设定以及输入至逻辑电路的信息的 切换。
在图11所示的电路结构中,如图5所示的电路结构一样,如 上面参照图6所描述的,由图4所示表格中的相应256个输出值(63、
7C、 77.....54、 BB、 16)的最低有效位的组合给出输入至第8层
中的选4奪器的恒定值。因此,如图5所示的逻辑电^各一样,图11 所示的逻辑电路输出作为非线性变换处理结果而获得的输出8位数 据的最低有效位。
如图11所示,将预充电信号(prch)l命入至与第8层中的各个 选择器连4妄的256个与门的每一个的另一输入端、与各层中的选择 器的各个选择信号输入端连接的8个与门的每一个的另 一输入端、 以及与各层中的选择器的各个反相选择信号输入端连接的8个与门 的每一个的另一输入端。当预充电信号(prch)为"O"时,输入至第 8层中的选择器的256个值、输入至各层中选择器的选择信号以及 输入至各层中选择器的反相选择信号全部变为"0"。该状态^^称作预 充电阶段状态。即,在预充电阶段中,所有选择器输入都被设为"0"。
当预充电信号(prch)为"l"时,经由与门将恒定值输入至第8 层中的选择器,并将选择信号和反相选择信号输入至选择器。注意, 如上所述,由总共具有128位经受非线性变换的输入数据的一个8 位段给出输入至各层中选择器的选择信号,并通过反转选择信号来 给出反相选择信号。该状态被称作评估阶段状态。
在本实施例中,交替执行评估阶段中的运算和预充电阶段中的 运算。在评估阶段中,使用设置在8层中的选择器确定输出值,而 在预充电阶,殳中,所有l叙入U^皮i殳为"0"。
30
车#入至各个选择器的4直以下面参照图12A和12B描述的方式 改变。图12A示出了选择器300的结构,以及图12B示出了输入至 选择器300的信号的变化。在图12A所示的选择器300中,将根据 S盒表确定的恒定值"a"和反相选择信号输入至与门301,将根据S 盒表确定的恒定值"b"和选择信号l叙入至与门302,并将与门301的
车lr出和与门302的i叙出iir入至或门303。
图12B以表格形式示出了输入至选择器300的信号的临时变 化。在该表格中,时间/人左向右消逝,并随时间切4奐阶萃殳。响应于 阶段变化切换输入至选择器的信号。如上所述,在^4居本发明的本 实施例的逻辑电路中,交替执行预充电阶段中的运算和评估阶段中 的运算,使得在预充电阶段中将输入至选择器的所有信号设定为0, 并将正确的恒定值、选择信号以及反相选择信号输入至选择器,并 在评估阶段中计算输出位。
图12B示出了输入至选择器的信号(即,恒定值"a"、恒定值"b"、 选择信号以及反相选择信号)的临时变化。将这些信号经由一个与
门输入至选择器,而向每一个与门的另一输入端提供预充电信号, 其中,预充电信号在预充电阶段中取"0"以及在评估阶段中取'T,。
在第一预充电阶4殳中,预充电信号祐 没为"O",因此输入至选 择器的所有信号都变为"O"。在随后的评估阶段中,预充电信号被设 为'T,,使得将正确的恒定值、选择信号以及反相选择信号输入至选 择器。在评估阶段中,以相同的方式运算各层中的其它选择器,因 此从第1层(顶部)中的选择器输出与一组8个选择信号(8位数 才居)相只t应的4直。
在评估阶段之后,运算阶,殳再次纟皮切换至预充电阶^殳,输入至 选择器的所有值都被设为"O"。在该预充电阶段周期中,将选择信号 和反相选择信号切换为下一组值(8位婆t据)。在经过该预充电阶^殳
周期之后,将运算阶段切换至评估阶段,从第l层(顶部)中的选
择器输出新的一组8个选择信号(8位#:据)。
在上述交替切换评估阶段和预充电阶段的运算中,在将阶段从 输入至选择器的所有信号都为"0"的预充电阶^殳切4灸至评估阶革殳的 转换周期中,向选择器输入新的选择信号。因此,在转换周期中输 入至选择器的信号变化通常出现为从"O"到真实的输入值。因此,难 以通过分析与第8层中信号电平的瞬时变化相对应的功耗的变化来 斥企测真实的^t据值。
更具体地,在信号已经进入阶段被切换为选择器输入均被设为 "O"的预充电阶段之后的稳定状态的时刻,切换对选择器的选择信 号。因此,即使在各层的选择信号之间发生转变定时差,选择器输 出仍维持为"O",因此在输出值(out)中没有发生变化。因此,由 瞬时变化引起的llT出值的瞬时变化是不可冲全测的。这防止了泄漏秘、
翁^5 'l 。
在本实施例中,在确定对应于给出的一组8个选才奪信号(8位 数据)的输出值后,将对选择器的所有输入都复位为"O"。在复位所 有丰命入后,输入新的一组8个选4奪信号。因此,在本实施例中,当 切换选择信号时,没有发生由选择信号的瞬时变化所《1起的输出值 的变化。这4吏得可以减少用在基于二元判定图(BDD)的逻辑电路 中的信号值被分析的可能性,因此实现对DPA攻击抵抗性的提高。
现在,参考图13,描述交替出现在评估阶段和预充电阶段中执 行的运算的期间输入至用作非线性变换单元的S盒(BDD)的信号 的切换。
如上面参照图11所描述的,在用作非线性变换单元的逻辑电 路中,向实现二元判定图(BDD)的S盒输入选择信号、反相选择 信号以及恒定值。在评估阶4史中,输入真实值。然而,在预充电阶
4史所有值;故切换为"0"。
在图13所示^皮配置为切换输入至S盒(BDD)的信号的电^各 中,将经受非线性变换处理的数据输入至数据寄存器321,并在数 据寄存器控制器324的控制下从数据寄存器321中顺序输出输入数 据的8位段。在评估阶段中,将每个8位段数据作为选择信号和反 相选择信号输入至S盒(BDD) 323。注意,由反相器322通过反 转选择信号来产生反相选择信号。
在预充电阶段中,预充电控制器325输出预充电信号("l")。 在评估阶段中,响应于预充电信号,将选4奪信号和反相选择信号输 入至S盒(BDD) 323中的选择器。尽管在图13中没有示出,但 还将预充电信号('T,)输入至与S盒(BDD) 323中的最底层中的 选择器连接的每个与门的一个输入端,从而在评估阶段中,向最底 层中的选择器输入恒定值,并从S盒(BDD ) 323输出真实输入值 的非线性变换的结果。
在预充电阶段中,预充电控制器325将预充电信号("0")输 出至S盒(BDD) 323,从而选择信号、反相选择信号以及输入至 第8层的值全部变为"0"。结果,输入至S盒(BDD) 323中的选择 器的所有信号都变为"O",并从S盒(BDD) 323输出"0"。
向数据寄存器控制器324和预充电控制器325输入时钟信号。 响应于时钟信号,预充电控制器325在评估阶段中输出"1",从而将 响应于从数据寄存器324输出的控制信号而从数据寄存器321输出 的数据作为真实输入信号输入至选择器并在S盒(BDD) 323中被 处理。结果,输出表示非线性变换真实结果的值。在预充电阶段中, 预充电控制器325输出预充电信号"0",从而S盒(BDD) 323中的 所有选择器的输入都变为"0",且S盒(BDD) 323的输出同样变为 "0"。与时钟信号同步,在阶段之间的转变处执行信号的切换。
因此,在本实施例中,如上所述,在"i平估阶,史中卩夺一组8个选 择信号(8位数据)和8个反相选择信号输入至S盒323。在评估 阶段随后的预充电阶革殳中,将预充电信号"0"/人预充电控制器325 才是供给S盒323, /人而所有选择器#釙入都#皮复位为"0"。在随后的评 估阶段中,从复位状态开始输入新的选择信号,并重复执行上述处 理。因此,在本实施例中,当切换选择信号时,没有发生由选择信 号的瞬时变化所引起的输出值的变化。这使得可以减少用在基于二 元判定图(BDD)的逻辑电路中的信号值被分析的可能性,因此实 现对DPA攻击4氐抗性的l是高。
4.根据本发明的非线性变换单元的第二实例(具有共用的选择器)
图11所示使用二元判定图(BDD)的逻辑电^各输出输出凌t据 的8位中一位。因此,为了获得完整的8位输出凄t据作为对车命入8 位数据的非线性变换的结果,需要提供类似于图ll所示的、总共8 个4吏用二元判定图(BDD)的逻辑电^各。
每个都用于输出一位的、 -使用二元判定图(BDD)的8个逻辑 电路的组合导致增加了电路复杂性。为了降低总的电路复杂性,可 由更少量的选择器代替一些选^^器。
参考图14,描述由单个选择器代替多个选择器的方法实例。例 如,如图14A所示,在多个选择器351和352具有相同输入值的情 况下,如图14B所示,可由单个选择器代替这些选择器。由单个选 择器代替多个选择器使得降低了使用二元判定图(BDD)的逻辑电 路总的电路复杂性,因此可以实现成本的降低。电路复杂性的降低 导致功4毛的减少。 5.根据本发明的非线性变换单元的第三实例(使用反相输出选择器 和反相输入选4奪器配置)
现在,描述使用反相输出选择器和反相输入选4,器配置的非线 性变4灸单元的第三实例。下面参照图15描述才艮据第三实例的逻辑 电路的结构和4喿作。
才艮据第三实例的4吏用二元判定图(BDD)的逻辑电路的结构不 同于上面参照图11描述的根据第一实例的逻辑电路的结构,其中, 在偶数层中使用反相输出选择器,以及在奇数层中使用反相输入选 择器。因为二元判定图(BDD)具有8层,所以反相发生偶数次。 因此,在所有8层中设置非反相输入/输出的结构和才艮据层来设置反 相输出选择器和反相输入选择器的的结构之间,在来自逻辑电路的 最终输出中不存在差。
与图11所示的电路进行比较,使用反相输出选择器和反相输 入选择器使得减小了逻辑电路总的尺寸。因此,除尺寸减小之外, 还实现了功耗的降低。
才艮据本实施例的以上述方式配置的逻辑电3各如下进4于,喿作。
在评估阶革史中,如先前的实施例,选4奪器4妄收真实输入值,对 其确定非线性变换的真实输出值。更具体地,将经受非线性变换的 总数据的一段的8位数据作为选择信号和反相选择信号输入至选择 器,并将根据非线性变换表(S盒表)(例如,图4或图6所示的表) 确定的恒定值输入至第8层中的选择器。
在预充电阶段中,如先前的实施例,所有选4奪器输入,即,选 择信号、反相选择信号以及输入最底层中的选择器的值都被设为 "0"。
在所有选择器输入都^皮:没为"o"的预充电阶l殳中,切换llr入至
反相输出选择器和反相输入选择器的的选择信号(in)。在预充电阶 段随后的评估阶段中,输入将对其确定真实输出值(作为非线性变 换处理的结果)的恒定值、选择信号以及反相选择信号。交替重复 预充电阶,殳和评估阶革殳。
在根据本实施例的结构中,如同先前的实施例,在预充电阶段 中将选择器的所有输入都设为"O",以及在随后的评估阶段中,从复 位状态开始输入新的选冲奪信号。因此,重复4丸行输入的复位和新选 择信号的输入。在信号已经进入阶段被切换为选择器输入被全部设 为"O"的预充电阶段之后的稳定状态的时刻,切换对选择器的选择信 号。因此,即使在各层的选择信号之间发生转变定时差,选择器输 出仍维持为"O",因此在输出值(out)中没有发生变化。因此,由 瞬时变化引起的输出值的瞬时变化是不可检测的。因此,在本实施 例中,当切换选择信号时,没有发生由选择信号的瞬时变化所引起 的输出值的变化。这使得可以减少用在基于二元判定图(BDD)的 逻辑电路中的信号值被分析的可能性,因此实现对DPA攻击抵抗 性的提高。
6.根据本发明的非线性变换单元的第四实例(使用随机数作为输 入)
在下面描述的第四实例中,向非线性变换单元输入随枳4t。下 面参照图16描述4艮据第四实例的非线性变纟奐单元的结构和纟喿作。
根据第四实例的使用二元判定图(BDD)的逻辑电路的结构不 同于上面参照图11描述的根据第一实例的逻辑电路的结构,其中, 将经由两个输入节点中的一个输入至确定l是供l会第8层的输入值的 与门的值^皮i殳定的不同于第 一 实例。
在上述第一实例中,与输入至图5所示第8层中的选择器的恒 定值相同,将相同的恒定值提供给相应256个与门的一个输入。更 具体地,在第一实例中,由图4所示表才各中的相应256个输出值(63、
7C、 77.....54、 BB、 16)的第一至第八位中的一个的组合给出输
入至第8层中的选择器的恒定值。在图11所示的实例中,如上面 参照图6所描述的,由图4所示表格中的相应256个输出值(63、 7C、 77..... 54、 BB、 16)的最低有效位的组合给出恒定值。
即,在上述第一实例中,/人图4所示表格中的相应256个$#出 4直(63、 7C、 77、…、54、 BB、 16)的第一至第7\>(立中的一个才是取 总共256个值("0"或"1"),并直接将提取的256个恒定值输入至与 门。相反,在第四实例中,适当组合恒定值、反相恒定值以及随积i 数,然后将得到的值输入256个与门。
更具体地,将以下lt据的组合用作输入值(al)如同上述第 一实施例,从非线性变换表(S盒表)中描述的对应输出值的位值 中所提取的恒定值;(a2)通过反转恒定值(al )而获得的值;以及 (a3 )随机数。
可使用(al )至(a3 )的所有组合,或者可使用(al )至(a3 ) 的4壬意两个的纟且合。
在本实施例中,存储表示什么时候以及数据(al)至(a3)的 哪一个被使用的管理信息,并根据管理信息获得正确输出值。在输 入反相恒定值(a2)的情况下,最终输出变成等于正确输出值的反 相(当正确输出值为'T,时,输出"0";而当正确输出值为"O"时,输 出'T,),因此,可以使用反相输出值作为正确输出值。
更具体地,例如,在如图16所示配置用于获得非线性变换的8 位输出值的最低有效位的逻辑电路的情况下,输入图4所示表格中的才目应256个丰叙出4直(63、 7C、 77..... 54、 BB、 16)的最^f氐有岁文^f立,即,上面参照图6描述的4立<直1、 0、 1、 1、 0、…、0、 0、 1、 0,或车#入其反相4直,即,0、 1、 0、 0、 1、…、1、 1、 0、 1。当專命 入反相值时,最终输出值的反相被用作非线性变换的正确结果。
在本实施例中,除恒定值或反相恒定值之外,还可以输入随才几 数。这使得选择器输出中的"0"和"1"的出现随机化,从而使DPA分 析变得更加困难。
在本实施例中,在评估阶革殳中,下列数据^皮用作输入值(al) 如同上述第一实施例,从非线性变换表(S盒表)中描述的对应输 出值的位值中所提取的恒定值;(a2)通过反转恒定值(al )而获得 的值;以及(a3)随机数。如上所述,可使用(al)至(a3 )的所 有组合,或者可使用(al)至(a3)的任意两个的组合。随机数对 于所有8个逻辑功能可以相等或可以不相等。
在预充电阶段中,所有选择器输入,即,选择信号,反相选择 信号以及输入至最底层中选I奪器的值都祐 没定为"O"。
在本实施例中,在预充电阶4殳和评估阶l殳之间切换车lr入至选择 起的选择信号(in),其中,在预充电阶段中,所有选择器输入都被 设定为"0",在评估阶段中,选择信号或反相选择信号被设定为真实 值,并通过以下数据中的一个给出输入至底层中选择器的值(al) 如同上述第一实施例,从非线性变换表(S盒表)中描述的对应输 出值的位值中所提取的恒定值;(a2 )通过反转恒定值(al )而获得 的值;以及(a3 )随枳4t。
在上述处理中,存储表示什么时候以及数据(al)至(a3)的 哪一个#皮-使用的管理信息,并^4居管理信息获得正确输出值。 此外,在根据本实施例的实现中,在预充电阶段中将选择器的
所有输入都i殳定为"o",在随后的评估阶,殳中,/人复位状态开始输入 新的选择信号。在信号已经进入阶段被切换为选择器输入都被设定
为"o"的预充电阶段之后的稳定状态的时刻,切换对选择器的选择信
号。因此,即使在各层的选择信号中发生转变定时差,选择器输出
仍维持为"0",因此在输出值(out)中没有变化发生。因此,由瞬 时变化引起的输出值的瞬时变化是不可检测的。因此,在本实施例 中,当切换选择信号时,没有发生由选择信号中的瞬时变化所引起 的输出值的变化。这使得可以减小用在基于二元判定图(BDD)的 逻辑电路中的信号值被分析的可能性,因此实现对DPA攻击抵抗 性的提高。
7.根据本发明的非线性变换单元的第五实例(包括或门)
在先前的实例中,当切换输入至各层的选择信号时,预充电信 号(prch)被设定为"0",从而所有选择器输入都被设定为"O"。可 选地,当切换输入至各层的选择信号时,所有选择器输入可被设定 为'T,而不是"0"。这同样4吏得DPA分析变得更加困难。
图17示出了根据本实施例的使用二元判定图(BDD)的逻辑 电路的结构。在根据本实施例的逻辑电路中,如图17所示,在底 层中的选4奪器之前的位置处"i殳置或门,使得经由或门将恒定值输入 至这些选择器,在选^奪信号输入端之前的位置处i殳置或门,使得经 由或门将选择信号输入至选择器,以及在反相选择信号输入端之前 的位置处设置或门,使得经由或门将反相选择信号输入至选择器, 从而每个或门的一个输入都被用作用于接收预充电信号的输入端。
在本实例中,与先前的实例相反,使用具有电平"l"的预充电 信号。当输入预充电信号时,将所有选择器输入都切换为"l"。在评 估阶段中,向选择器输入真实恒定值、选择信号以及反相选择信号。
如上所述,在本实施例中,不同于先前的实施例,输入至选择器的 所有信号在复位状态中都为"l"。
在该结构中,在信号已经进入阶段被切换为选择器输入都被设 定为"1"的预充电阶段之后的稳定状态的时刻,切换对选择器的选择
信号(in)。因此,即使在各层的选择信号中发生转换定时差,选择 器输出仍维持为"l",因此在输出值(out)中没有变化发生。因此,
秘密信息。
当切换各层的选择信号时,输出可被随机设定为"0"或'T,。这 可以通过控制从其将输出信号提供给第8层的与门来实现,使得从 以下三种值的组合中选择从与门输出的信号所有1的组合、所有 0的组合、以及恒定值或随机值的组合。
在预充电阶段中,通过切换适于随机选择所有0或所有1使得 向第8层输入选择的所有0或1的切换,进行从与门输出的值的选 择。
此外,在该结构中,在信号已经进入阶段被切换为选择器输入 被全部设定为"0"或"1"的预充电阶段之后的稳定状态的时刻,切换 对选择器的选择信号(in)。因此,即使在各层的选择信号中发生转 变定时差,选择器输出仍维持为"0"或"1",因此在输出值(out)中 没有发生变化。因此,由瞬时变化引起的输出值的瞬时变化是不可 冲企测的。这防止了泄漏秘、密信息。
可直接采样上述实例中的一个或者可结合多个实例的技术。
在上述实例中,将本发明应用于通用密匙加密处理中的非线性 变换处理。然而,本发明不仅可应用于使用AES或DES算法的通 用密匙加密处理,而且还可应用于诸如基于RSA算法等的7>共密 匙加密处理和"^者如SHA-1的p合希函^i:的计算等的多种非线性或线 性数据变换处理。
8.加密处理装置的实例
最后,下面参照图18描述用作适于产生密文或石皮i斧密文的加 密处理装置的IC才莫块500。可在诸如个人计算才几、IC卡、读取器/ 写入器等的各种信息处理装置上执行根据上述任意一个实例的处 理,并且可在这种装置中4吏用图18所示的IC才莫块500。
在图18所示的IC模块500中,CPU (中央处理单元)501是 用作控制单元的处理器,其控制加密处理的开始/结束、数据的传送 /接收、各部分间的数据传送等,并执行各种处理。存储器502是用 于存储由CPU 501执行的程序以及运算中使用的固定数据的ROM (只读存储器),或者是用作用于存储由CPU 501执行的程序以及 改变运算中出现的参数的存储区域或用作CPU 501的工作区域的 RAM (随才几存取存储器)。存储器502还可^皮用作用于存储诸如在 加密处理中使用的密钥(K)等的密匙数据的存储区域。期望以对 篡改具有高抵抗性的形式实现数据存储区域。
加密处理单元503包括非线性变换电if各,其包括如上述一个实 例的使用根据二元判定图(BDD)以分层结构形式设置的选择器而 配置的逻辑电路,并且在预充电阶段和评估阶段中交替运算。
由用作控制单元的CPU 501根据预安装的程序控制两个阶段 间的切换、控制来自门电路的输出、输入至选择器的选择信号的切 换、输出的选择等,使得由逻辑电路提供正确输出。例如,CPU 501 读取预先存储在ROM中的加密程序,并执行加密程序以控制加密 处理单元503中的4吏用二元判定图(BDD)的逻辑电路的运算。
随枳4t生成器504生成用于生成用在加密处理中的密匙的随枳j 数。随机数生成器504还生成用在装置间的认证中或用在其它加密 处理中的随机数。随机数生成器504可通过使用LFSER (线性反馈 移位寄存器)的随机数生成器或伪随机数生成器实现。
传送/接收单元505是lt据通信单元,适于#丸行与诸如读取器/ 写入器的外部装置或另一 IC才莫块的数据通信相关的处理,以输出 在IC模块中生成的加密数据或从诸如读取器/写入器的外部装置接 收数据。
已经在上面参照特定实施例通过实例且没有限制地描述了本 发明。本领域的4支术人员应该明白,在不背离本发明的精神或范围 的条件下,可以进4亍各种4奮改和替换。即,已经在上面通过实例且 没有限制地描述了本实施例。完全由4又利要求确定本发明的范围。
可以通过硬件、软件、或硬件和软件的结合来执行在本说明书 中7^开的任意处理。在通过软件4丸行处理的情况下,可将处理程序 安装在嵌入硬件的专用计算机中设置的存储器中,并且可通过计算 机执行程序,或者程序可被安装在能够执行各种处理的通用计算机 上并可在通用计算4几上^皮冲丸4亍。
在本说明书中公开的处理可以以与程序中的描述的相同顺序 时序地4丸行,或者4艮据计算4几的处理能力并行或单独扭"行。在本i兌 明书中,术语"系统"用于描述多个装置的逻辑集成,并且不需要多 个装置设置在单个外壳中。
本领域的技术人员应该理解,根据设计要求和其它因素,可以 有多种修改、组合、再组合和改进,均应包含在本发明的权利要求 或等同物的范围之内。
权利要求
1.一种运算处理装置,用于对输入位执行数据变换,包括逻辑电路,包括被输入其中的选择信号控制的多个选择器,所述选择信号由所述输入位给出,所述选择器以分层结构配置,使得将恒定值输入至位于底层中的多个选择器,对于每一层根据选择信号选择所述恒定值并将其传送至更高层中的选择器,以及,一恒定值最终被最高层中的一选择器选择并从所述最高层中的该选择器中输出;以及控制单元,用于控制使用所述逻辑电路的所述数据变换处理,所述控制单元控制所述数据变换处理,使得交替执行预充电阶段和评估阶段,在所述预充电阶段中,所述逻辑电路中的选择器的所有输入值都被设定为相等,在所述评估阶段中,产生对应于所述输入位的输出位,由所述输入位所给出的所述选择信号在所述预充电阶段中被切换。
2. 根据权利要求1所述的运算处理装置,其中,所述逻辑电路中的每个所述选择器都包括第一与门,向其输入一个所述恒定值和所述选择信第二与门,向其输入一个所述恒定值和所述选择信号 的反相选择信号,以及或门,向其输入所述第一与门的输出和所述第二与门的输出,以及在所述预充电阶段中,所述控制单元将对所述第一与门 和所述第二与门的输入设定为相等值。
3. 根据权利要求1所述的运算处理装置,其中,述选择信号的输入节点和经由其接收所述选择信号的反相选 择信号的输入节点,所述逻辑电路还包括设置在各个选择信号输入节点的前级处的逻辑运算 元件,以及设置在所述反相选择信号输入节点的前级处的逻辑 运算元件,以及设置在位于底层且向其输入所述恒定值的各个选择 器的前级处的逻辑运算元件,每个逻辑运算元件都用于接收预充电信号,以及所述控制单元切换输入至所述逻辑运算元件的所述预充
4.根据权利要求3所述的运算处理装置,其中,每个逻辑运算元件都是与门,将所述预充电信号输入至 其一个输入,以及所述控制单元切换输入至每个与门的一个l叙入的所述预换。
5. 根据权利要求3所述的运算处理装置,其中,每个逻辑运算元件都是或门,将所述预充电信号输入至 其一个l俞入,以及所述控制单元切换输入至每个或门的一个输入的所述预换。
6. 才艮据权利要求1所述的运算处理装置,其中,在所述逻辑电路 中的选择器中,用单个公共选择器代替被提供相等输入值的多 个选择器。
7. 根据权利要求1所述的运算处理装置,其中,所述逻辑电路中 的选择器包括具有反相输出的选择器和具有反相输入的选择器。
8. 根据权利要求1所述的运算处理装置,其中,所述控制单元控 制所述数据变换处理,使得在所述预充电阶段中,向设置在所 述底层中的每个选择器输入所述恒定值,而在所述评估阶段 中,向所述底层中的选择器输入恒定值或随机值。
9. 根据权利要求1所述的运算处理装置,其中,所述控制单元控 制门电路的输出,使得在所述预充电阶段中将对所述底层中的 选择器的输入随机设定为"O"或"1"。
10. 根据权利要求1所述的运算处理装置,其中,配置所述逻辑电;咯以实现二元判定图(BDD)。
11. 根据权利要求1所述的运算处理装置,其中,所述逻辑电路用 于对所述数据变换处理的非线性变换处 理。
12. —种运算处理控制方法,用于在运算处理装置中控制对输入位 的数据变换处理,所述运算处理装置包括逻辑电路,包括被输入其中的选择信号控制的多个选择 器,所述选择信号由所述输入位给出,所述选择器以分层结构 配置,使得将恒定值输入至位于底层中的多个选择器,对于每 一层根据选择信号选择所述恒定值并将其传送至更高层中的 选择器,以及, 一恒定值最终净皮最高层中的一选择器选择并从 所述最高层中的该选择器中输出,所述方法包括通过控制单元控制使用所述逻辑电路的所 述数据变换处理,使得交替执行预充电阶段和评估阶段,在所 述预充电阶段中,将对所述逻辑电路中的选择器的所有输入值 i殳定为相等,在所述评估阶段中,产生对应于所述输入位的输 出位,由所述输入位症合出的所述选择信号在所述预充电阶,爻中 被切换。
13. 根据权利要求12所述的运算处理控制方法,其中,所述逻辑电路中的每个所述选择器都包括第一与门,向其输入一个所述恒定值和所述选才奪信号,第二与门,向其输入一个所述恒定值和所述选择信号 的反相选择信号,以及或门,向其输入所述第一与门的输出和所述第二与门 的输出,以及在所述预充电阶段中,所述控制单元将对所述第一与门 和所述第二与门的输入设定为相等值。
14. 根据权利要求12所述的运算处理控制方法,其中,述选捧信号的输入节点和经由其接收所述选择信号的反相选择信号的所述输入节点,以及所述逻辑电路还包括设置在各个选择信号输入节点的前级处的逻辑运算元件,以及设置在所述反相选择信号输入节点的前级处的逻辑运算元件,以及设置在位于底层且向其输入所述恒定值的各个选择器的前级处的逻辑运算元件,每个逻辑运算元件都用于接收预充电信号,以及所述控制单元切换输入至所述逻辑运算元件的所述预充电信号,以在所述预充电阶段和所述评估阶段之间进行切换。
15. 根据权利要求14所述的运算处理控制方法,其中,每个逻辑运算元件都是与门,将所述预充电信号输入至其一个输入,以及所述控制单元切换输入至每个与门的一个输入的所述预充电信号,以在所述预充电阶段和所述评估阶段之间进行切换。
16. 根据权利要求14所述的运算处理控制方法,其中,每个逻辑运算元件都是或门,将所述预充电信号输入至其一个输入,以及所述控制单元切换输入至每个或门的一个输入的所述预 充电信号,以在所述预充电阶,殳和所述评估阶段之间进行切 换。
17. 根据权利要求12所述的运算处理控制方法,其中,所述控制 单元控制所述数据变换处理,^吏得在所述预充电阶,殳中,向i殳 置在所述底层中的每个选择器输入所述恒定值,而在所述评估 阶段中,向所述底层中的选择器输入恒定值或随机值。
18. 根据权利要求12所述的运算处理控制方法,其中,所述控制 单元控制门电路的输出,使得在所述预充电阶段中将对所述底 层中的选择器的输入随机设定为"O"或"1"。
19. 一种计算机程序,可由运算处理装置才丸行以对输入位4丸^f亍^t 据变换处理,所述运算处理装置包括逻辑电^各,包括一皮输 入其中的选择信号所控制的多个选择器,所述选择信号由所 述输入位给出,所述选择器被配置成分层结构,使得将恒定 值输入至位于底层中的多个选择器,对于每一层根据选择信 号选4奪所述恒定值并将其传送至更高层中的选择器,以及, 一恒定值最终被最高层中的一选择器选择并从所述最高层中 的该选择器中输出所述计算机程序控制所述数据变换处理,使得交替执行 予贞充电阶,殳和"i平估阶,殳,在所述预充电阶^殳中,所有llr入所述 逻辑电路中的所述选择器的值被设定为相等,将对所述逻辑电 路中的选择器的所有输入值设定为相等,在所述评估阶段中, 产生对应于所述输入位的输出位,由所述输入位给出的所述选 择信号在所述预充电阶段中被切换。
全文摘要
本发明公开了运算处理装置、运算处理控制方法及计算机程序,其中,适于对输入位执行数据变换的运算处理装置具有适于对输入位执行数据变换的逻辑电路。逻辑电路包括被配置分层结构中并被对应于输入位的选择信号所控制的选择器。选择输入至位于分层结构的底层中的选择器的恒定值,并将其从一层向另一层朝向顶层传送。最终从顶层选择并输出恒定值。由控制单元控制数据变换处理,使得交替执行预充电阶段和评估阶段。在预充电阶段中,将对选择器的所有输入值都设定为相等。在评估阶段中,产生给定输入位的输出位。在预充电阶段中切换选择信号。本发明的逻辑运算装置对于DPA(差分功耗分析)等具有高抵抗性。
文档编号G09C1/00GK101206816SQ20071030215
公开日2008年6月25日 申请日期2007年12月14日 优先权日2006年12月15日
发明者宫户良和, 秋下彻 申请人:索尼株式会社