密码运算处理电路的制作方法

文档序号:6618642阅读:256来源:国知局
专利名称:密码运算处理电路的制作方法
技术领域
本发明涉及密码运算处理电路,更详细地说是涉及具有防止密钥 等隐匿数据的分析的手段的密码运算处理电路。
背景技术
近来,随着使用IC卡或带有IC卡功能的携带式电话机等进行电 子交易或自动检票等的发展,I c卡等的安全保证成为重要问题。
但是,已经发现了通过观测和分析IC卡进行密码运算处理期间的 消耗功率(消耗电流)来分析IC卡内部的密钥或密码运算处理内容
的方法。作为代表性的分析手段,有将消耗电流的变化用于直接分析
的方法即简单功率分析(Simple Power Analysis; SPA)或通过对〗见测 数据进行统计处理来推断机密密钥的方法即功率差分分析 (Differential Power Analysis; DPA )等。
作为现有的简单功率分析对策,已知在通常处理期间插入用于使 密码运算处理步骤的定时改变的虚拟处理的手法、或使动作(工作) 时钟周期改变从而使消耗电流在时间轴上改变的手法。这些手法,每 次都使密码运算处理的步骤或定时改变、并使从时间轴看去时的消耗 电流波形改变,因此,使在时间轴上对电流波形进行比较的这种数据 依存性的分析实际上变得不可能,从而实现了机密保护(参照专利文 献1 )。
作为现有的功率差分分析对策,已知由噪声生成电路将噪声电流 重叠在通常处理的消耗电流上的手法。在这种手法中,即使反复进行 多次相同的运算,电流波形也不相同,因此使差分分析很难进行,从 而实现了机密保护(参照专利文献2)。
专利文献1:日本特开2000 — 259799号公报
专利文献2:日本特开2005 — 252705号公报

发明内容
作为简单功率分析对策,当过多地追加用于使密码运算处理步骤 的定时改变的虚拟处理时,则存在着直到密码运算执行结束为止的时 间延长、密码运算处理的性能显著降低的问题。相反,在用于使密码 运算处理步骤的定时改变的虚拟处理较少时,密码运算处理的性能降 低较小,但存在着很容易在外部读取由通常密码处理引起的电流波形 变化这样的问题。
作为简单功率分析对策,对于使动作时钟周期改变从而使消耗电
流在时间轴上改变的手法,存在着易于从外部观测时钟周期等信息并 可通过数字信号处理将所观测到的电流波形作为一定的时钟周期的 电流波形进行修复分析这样的问题。
作为功率差分分析对策,对于由噪声生成电路将噪声电流重叠在
通常处理的消耗电流上的手法,可利用近来的作为LSI分析4支术的液 晶分析、发光分析等在LSI内部确定消耗了电流的物理位置。按照液 晶分析,可将特定部位的电流变化作为液晶的透射率变化进行观测, 因而存在着可进行电流分析的问题。
为解决上述课题,本发明的密码运算处理电路的特征在于,包括 存储密码运算用数据的存储器;用于对该密码运算用数据进行运算的 运算器;用于暂时存储对该运算器的输入输出数据的寄存器;接收密 码运算指令并为了对密码运算用数据进行密码处理而对存储器、运算 器和寄存器进行控制的密码控制电路;接收用于指示密码运算指令的 执行已结束的运算完成信号并对密码控制电路发出用于使存储器、运 算器和寄存器动作的伪运算指令的伪运算指令电路。 、
本发明的密码运算处理电路,在来自CPU等的密码运算指令的执 行结束后,由伪运算指令电路发出使如果是通常则停止着的存储器、 运算器和寄存器动作的伪运算指令,从而使存储器、运算器或寄存器
以与密码运算指令相同的指令进行动作并消耗电流,因此,很难用消 耗电流的大小等确定密码运算处理的结束或开始等的定时,因而保密
性提高。进而,伪运算指令始终只在没有发送来自CPU等的密码运
算指令的期间发出,因此决不会使来自CPU等的密码运算指令的发
送延迟,因此不会使密码运算处理的性能降低。


图1是表示本发明的密码运算处理电路的结构例的框图。
图2是表示图1的密码运算处理电路的动作的时序图。 图3是表示图1的密码运算处理电路中没有伪运算指令电路时的 动作的时序图。
图4是表示图1中的伪运算指令电路的详细结构例的框图。
图5是表示图4中的密码运算指令存储电路的存储内容的例子的图。
图6是表示图1中的密码控制电路的详细结构例的框图。 图7是表示具有图6的密码控制电路的密码运算处理电路的动作 的时序图。
图8是表示具有图6的密码控制电路的密码运算处理电路的动作
的另一个时序图。
图9是表示具有图6的密码控制电路的密码运算处理电路的动作
的又一个时序图。
图IO是表示具有图6的密码控制电路的密码运算处理电路的动作
的其他的时序图。
图11是将图7~图IO汇总后示出的时序图。
图12是表示图6中的伪控制电路的详细结构例的框图。
图13是表示图12中的通常控制信号存储电路的存储内容的例子的图。
图14是表示图1的密码运算处理电路的变形例的框图。 图15是表示图14中的密码运算指令存储电路的存储内容的例子 的图。
图16是表示图14中的通常控制信号存储电路的存储内容的例子
的图。
图17是表示图6的变形例的密码控制电路和运算部的结构的框图。
图18是表示具有图17的密码控制电路和运算部的密码运算处理
电路的动作的时序图。
图19是表示图17的变形例的运算部的结构的框图。
图20是表示具有图19的运算部的密码运算处理电路的动作的时序图。
标号i兌明
IOO伪运算指令电路 102运算部 104存储器B 106寄存器A 108寄存器C 110时钟
112密码运算完成信号
114运算完成信号
116寄存器A控制信号
118运算器控制信号
120存储器B控制信号
122存储器A输出数据
124运算器输出数据
400密码运算指令存储电路
402密码运算指令履历信息
601通常控制电路
603选择器
604通常控制电路存储器A控制信号 605通常控制电路寄存器A控制信号
101密码控制电路 103存储器A 105运算器 107寄存器B 109 CPU
111密码运算指令 113伪运算指令 115存储器A控制信号
117寄存器B控制信号 119寄存器C控制信号
121存储器A输出数据
123寄存器B输出数据 125寄存器C输出数据 401伪运算指令生成电路 600动作状况通知电路 602伪4空制电路
606通常控制电路寄存器B控制信号 607通常控制电路运算器控制信号 608通常控制电路寄存器C控制信号 609通常控制电路存储器B控制信号 610伪控制电路存储器A控制信号 611伪控制电路寄存器A控制信号 612伪控制电路寄存器B控制信号 613伪控制电路运算器控制信号 614伪控制电路寄存器C控制信号 615伪控制电路存储器B控制信号 616动作状况通知信号 801伪控制信号生成电路 IOOO位值0计数电路 1300预置电路A 1302预置电路A控制信号 1304预置电路A输出数据 1306脉沖信号发生电路 1501延迟电S各B 1503延迟电路B输出数据
800通常控制信号存储电路 802通常控制信号履历信息 1001位值O计数信息 1301预置电路B 1303预置电路B控制信号 1305预置电路B输出数据 1500延迟电路A 1502延迟电路A输出数据
具体实施例方式
以下,参照

用于实施本发明的优选方式。此外,对图中 相同或相当的部分标以相同的符号,并不再重复其说明。
图1示出本发明的密码运算处理电路的结构例。图1的密码运算 处理电路具有伪运算指令电路100、密码控制电路IOI、运算部102、 存储器A103、存储器B104。运算部102具有运算器105、寄存器A106、 寄存器B107、寄存器C108。
伪运算指令电路100根据从CPU109输出的密码运算指令111识 別开始密码运算的情况,然后接收指示密码运算指令111的执行已结
束的信号即运算完成信号114,并对CPU109输出密码运算完成信号 112,并且对密码控制电路101发出伪运算指令113。之后,当接收还 作为指示伪运算指令113的执行已结束的信号的运算完成信号114并 识别出伪运算已完成时,再次发出伪运算指令113。伪运算指令113 的发送反复进行直到从CPU109输出新的密码运算指令111为止。
密码控制电路101接收来自CPU109的密码运算指令111或来自 伪运算指令电路100的伪运算指令113,为了控制存储器A103、存储 器B104、运算器105、寄存器A106、寄存器B107、寄存器C108而 输出存储器A控制信号115、存储器B控制信号120、运算器控制信 号118、寄存器A控制信号116、寄存器B控制信号117、寄存器C 控制信号119。而且,当密码运算指令111或伪运算指令113的执行 结束时,密码控制电路101输出运算完成信号114。当伪运算指令113 的处理正在执行中而从CPU109发出了密码运算指令111时,强制性 地结束基于伪运算指令113进行的控制,并开始密码运算指令111的 处理。
存储器A103,例如是与时钟脉冲110的下降沿同步的存储器,从 由来自密码控制电路101的存储器A控制信号115指示的地址输出存 储器A输出数据121。
存储器B104,例如是与时钟脉冲110的下降沿同步的存储器,对 由来自密码控制电路101的存储器B控制信号120指示的地址写入寄 存器C输出数据125。
运算器105是组合电路,将存储器A输出数据122和寄存器B输 出数据123作为输入进行基于运算器控制信号118的运算,并将结果 输出为运算器输出数据124。
寄存器A106,将存储器A输出数据121作为输入,当来自密码 控制电路101的寄存器A控制信号116变为有效时,保持存储器A 输出数据121,并输出为存储器A输出数据122。
寄存器B107,将存储器A输出数据121作为输入,当来自密码 控制电路101的寄存器B控制信号117变为有效时,保持存储器A
输出数据121,并输出为存储器B输出数据123。
寄存器C108,将运算器输出数据124作为输入,当来自密码控制 电路101的寄存器C控制信号119变为有效时,保持运算器输出数据 124,并输出为寄存器C输出数据125。
CPU109对密码控制电路101发出密码运算指令111来实施密码运 算处理,而且接收来自伪运算指令电路IOO的密码运算完成信号112 来识别密码运算处理的结束。
图2示出图1的密码运算处理电路的动作。在此,作为一例,首 先假定从CPU109发出称为指令1的密码运算指令111。
密码控制电路101对指令1进行解码,分别从存储器A103的地 址A1、地址A2读出数据D1、数据D2,并将数据D1存储在寄存器 A106、将数据D2存储在寄存器B107。存储器A消耗电流II是存储 器A103进行了读出动作而产生的消耗电流,形成与地址Al、地址 A2的读出动作对应的消肆毛电流波形。
密码控制电路101对指令1进行解码并输出运算1作为运算器控 制信号118。在该例中,运算1是在确定输出结果之前最低需要5个 时钟周期的指令。运算器105对存储器A输出数据122的输出Dl和 寄存器B输出数据123的输出D2进行运算,并在3个时钟周期后输 出DA作为运算器输出数据124。每当对作为组合电路的运算器105 的输入寄存器即寄存器A106和寄存器B107存储数据时,运算部消 耗电流II发生变化,在确定了寄存器Al06和寄存器B107的值之后, 运算也要执行3个时钟周期,因此将消耗电流。
密码控制电路101对指令1进行解码后输出用于在运算1结束的 定时将运算结果存储在寄存器C108中的寄存器C控制信号119,并 将DA存储在寄存器C108。然后,密码控制电路101对指令1进行 解码后发出存储器B控制信号120,将寄存器C输出数据125即DA 存储在存储器B104的地址AA。存储器B消耗电流II是对存储器B104 进行了写入动作而产生的消耗电流,形成与对地址AA的写入动作对 应的消电流波形。
之后,密码控制电路101将指示来自CPU109的指令1的执行已 结束的运算完成信号114输出到伪运算指令电路100。
伪运算指令电路100在根据从CPU109输出的密码运算指令111 识别出已开始了指令1的密码运算之后,接收作为指示指令1的执行 已结束的信号的运算完成信号114,并对CPU109输出密码运算完成 信号112。以下,将该指令1的密码运算的从开始到结束的期间定义 为"密码运算处理1"。
在CPU109中,在接收到密码运算完成信号112后为了发出新的 密码运算指令ill即指令2,需要几十个时钟周期作为程序处理期间。 但是,在图2中示出从接收指令1的密码运算完成信号112起在8时 钟周期后发出了指令2的例子。
伪运算指令电路100对密码控制电路101发出指令G作为伪运算 指令113。在此,假定指令G为从伪运算指令电路100固定输出的指 令,分别从存储器A103的地址al、地址a2读出^:据dl、数据d2, 并将数据dl存储在寄存器A106、将数据d2存储在寄存器B107,在 运算器105中进行需要2个时钟周期的运算直到输出结果确定为止, 在将dx作为运算结果存储在寄存器C108并将dx存储在存储器B104 的地址ax之后,向伪运算指令电路100输出运算完成信号114并结 束指令G的处理。此外,由于需要存储器B控制信号120的数据存 储用地址ax不破坏密码运算指令111等使用的存储空间,因此,将 CPU109不使用的地址用作数据存储用地址。
伪运算指令电路IOO根据指示伪运算指令113的执行已结束的运 算完成信号114反复进行伪运算指令113的发送,直到从CPU109输 出新的密码运算指令111为止,但在图2的例子中,由于在同一定时 从CPU109发出了作为新的密码运算指令111的指令2,因此,中止 伪运算指令113的发送。以下,将从该伪运算指令113的实行开始到 结束的期间定义为"伪运算处理"。
在图2中,图1的密码运算处理电路的总体的消耗电流波形为存 储器A消耗电流II 、运算器消耗电流II和存储器B消耗电流II之和,
因而"电路总体的消耗电流n,,是合计后的消耗电流波形。在图2中, 电路总体的消耗电流n在"密码运算处理r期间和"伪运算处理,, 期间,为大致连续的消耗电流波形。
图3示出图i的密码运算处理电路中没有作为本发明的构成要素
的伪运算指令电路100时的动作。在图3中可以看出,在相当于图2
的"伪运算处理"期间的时钟周期期间,密码运算处理电路不动作, 所以电路总体的消耗电流i的波形持续地成为low(低)电平期间, 可从消耗电流波形的变化明确指令执行的结束、开始的定时。
如上所述,在图1的密码运算处理电路中,在来自CPU109等的 密码运算指令111的执行结束后,由伪运算指令电路IOO发出使如果 是通常则停止着的存储器A103、存储器B104、运算器105、寄存器 A106、寄存器B107、寄存器C108进行动作的伪运算指令113,存储 器A103、存储器B104、运算器105、寄存器A106、寄存器B107、 寄存器C108与发出了密码运算指令111时相同的方式进行动作并消 耗电流,因此,很难用消耗电流的大小等来确定出密码运算处理的结 束或开始等的定时,因而保密性提高。
进而,伪运算指令113只在没有发送来自CPU109等的密码运算 指令lll的期间被发送,因此不会使来自CPU109等的密码运算指令 111的发送延迟,所以不会降低密码运算处理的性能(performance )。
在此,假定伪运算指令113是固定的且总是发出相同的指令,但 也可以将与此前从CPU 109发出的密码运算指令111相同的指令作为 伪运算指令113来发出。由此,即使在密码运算指令111的执行结束, 也要执行具有相同的消耗电流波形的伪运算指令113,因此很难分析
出密码运算指令lll的执行在哪个定时结束这一情况,对电流分析的 保密性进一步提高。
此外,存储器A103和存储器B104也可以是相同的存储器。而且, 运算器105的输入和保持其输入数据的寄存器也可以是3个以上。而 且,运算器105也可以由加法器、乘法器等多个运算要素构成。
图4示出图1中的伪运算指令电路100的详细结构例。图4的伪
运算指令电路IOO包括存储来自CPU109的密码运算指令111的密码 运算指令存储电路400、和从过去的密码运算指令历史生成伪运算指 令113的伪运算指令生成电路401。
密码运算指令存储电路400存储CPU109输出的密码运算指令111 来作为密码运算指令历史信息402。
伪运算指令生成电路401接收指示密码运算指令111的执行已结 束的信号即运算完成信号114,根据从密码运算指令存储电路400输 出的密码运算指令历史信息402生成伪运算指令113。
图5示出图4中的密码运算指令存储电路400的存储内容的一例。 如图5所示,密码运算指令存储电路400将过去发送的多个密码运算 指令111存储在由RAM形成的FIFO (FIRST-IN FIRST-OUT:先进 先出)存储器中。在此,将存储有密码运算指令111的FIFO地址称 为存储槽(slot)。
在图5中具有5个存储槽,从存储槽1开始依次存入过去的密码 运算指令111,当存储槽占满时从存储于存储槽5的密码运算指令111 起废除。在此,在存储槽1中存储有通过进行以分别来自地址2和地 址3的160位长的数据作为输入的乘法运算来将结果输出到地址0的 指令,在存储槽2中存储有通过进行以分别来自地址O和地址1的160 位长的数据作为输入的加法运算来将结果输出到地址1的指令,在存 储槽3中存储有通过以分别来自地址4和地址5的160位长的数据作 为输入的乘法运算来将结果输出到地址0的指令,在存储槽4中存储 有通过以分别来自地址O和地址1的160位长的lt据作为输入的加法 运算来将结果输出到地址1的指令,在存储槽5中存储有通过以分别 来自地址l和地址6的160位长的数据作为输入的减法运算来将结果 输出到地址1的指令。
伪运算指令生成电路401接收指示密码运算指令111的执行已结 束的信号即运算完成信号114,检索存储槽1~存储槽5中所存储的 密码运算指令lll,识别出以160位作为输入的乘法运算为2次、以 160位作为输入的加法运算为2次、以160位作为输入的减法运算为
1次,在出现频率上乘法运算和加法运算的次数相同,但在最后发送 的存储槽1中存储有乘法运算,因此决定选择加法运算,并选择存储
槽4,根据存储槽4的密码运算指令111生成通过进行将分别来自地 址0和地址1的160位长的数据作为输入的加法运算来将结果输出到 地址AX的伪运算指令113。由于需要数据存储用地址AX不破坏密 码运算指令111等使用的存储空间,因此,将CPU109不使用的地址 用作数据存储用地址。
如上所述,在图4的结构中,将从CPU109逐次发出的密码运算 指令111存储在RAM等中,并从所存储的密码运算指令111中选择 出现频率高的密码运算指令111作为伪运算指令113发出,因此,即 使实施电流分析,也很难分清是执行着逐次发出的密码运算指令111、 还是作为伪运算指令113执行着出现频率高的密码运算指令111,因 而对电流分析的保密性进一 步提高。
此外,伪运算指令生成电路401也可以从所存储的密码运算指令 111中随机地选择密码运算指令111来作为伪运算指令113发出。由 此,即使实施电流分析,也很难分清是执行着逐次发出的密码运算指 令111、还是作为伪运算指令113随机地执行着过去的密码运算指令 111,因而对电流分析的保密性进一步提高。
另外,密码运算指令存储电路400也可以由非易失性存储器构成。 由此,将从CPU109逐次发出的密码运算指令111存储在非易失性存 储器中,即使在电源断电后也仍能存储过去的密码运算指令111的历 史,并从所存储的密码运算指令111中选择密码运算指令111来作为 伪运算指令113发出,因此,即使是在接通电源后执行密码运算并反 复执行电源断电等程序借以观测电流波形变化的电流分析手法中,也 很难分清是执行着密码运算指令111、还是作为伪运算指令113执行 着过去的密码运算指令111,因而对电流分析的保密性进一步提高。
此外,密码运算指令存储电路400的存储槽数在此设为5个,但 存储槽数也可以增减。
其次,即使是正在执行来自CPU109的密码运算指令111的过程
中,也存在着存储器103、 104、运算器105和寄存器106、 107、 108 以时钟周期为单位停止的期间。而且,即使是伪运算指令113正在执 行中,也存在着存储器103、 104、运算器105和寄存器106、 107、 108以时钟周期为单位停止的期间。着眼于这一点,在以下说明的例 子中,通过使这些运算资源103 - 108总是进行动作来消耗电流,从 而使对电流分析的保密性进一步提高。
图6示出图1中的密码控制电路101的详细结构例。图6的密码 控制电路101具有动作状况通知电路600、通常控制电3各601、伪控 制电路602、选择器603。
通常控制电路601接收密码运算指令111或伪运算指令113,对 选择器603输出通常控制电路存储器A控制信号604、通常控制电路 寄存器A控制信号605、通常控制电路寄存器B控制信号606、通常 控制电路运算器控制信号607、通常控制电路寄存器C控制信号608、 通常控制电路存储器B控制信号609 (以下将这些控制信号称为通常 控制信号)。而且,当根据密码运算指令111或伪运算指令113进行 的控制结束时,对伪运算指令电路IOO输出运算完成信号114。
伪控制电路602对选择器603输出伪控制电路存储器A控制信号 610、伪控制电路寄存器A控制信号611、伪控制电路寄存器B控制 信号612、伪控制电路运算器控制信号613、伪控制电路寄存器C控 制信号614、伪控制电路存储器B控制信号615 (以下将这些控制信 号称为伪控制信号)。
即使是密码运算指令111或伪运算指令113正在执行中,动作状 况通知电路600也对选择器603输出指示来自通常控制电路601的通 常控制信号不需要占有存储器A103、存储器B104、运算器105、寄 存器A106、寄存器B107或寄存器C108的时钟周期期间的6位的动 作状况通知信号[5:0]616。
选择器603根据动作状况通知信号[5:0]616进行选择,由动作状 况通知信号[O]从通常控制电路存储器A控制信号604或伪控制电路 存储器A控制信号610中选择存储器A控制信号115,由动作状况通
知信号[l]从通常控制电路寄存器A控制信号605或伪控制电路寄存 器A控制信号611中选择寄存器A控制信号116,由动作状况通知信 号[2]从通常控制电路寄存器B控制信号606或伪控制电路寄存器B 控制信号612中选择寄存器B控制信号117,由动作状况通知信号[3] 从通常控制电路运算器控制信号607或伪控制电路运算器控制信号 613中选择运算器控制信号118,由动作状况通知信号[4]从通常控制 电路寄存器C控制信号608或伪控制电路寄存器C控制信号614中 选择寄存器C控制信号119,由动作状况通知信号[5]从通常控制电路 存储器B控制信号609或伪控制电路存储器B控制信号615中选择 存储器B控制信号120。
以下,参照图7~图11说明如上述那样构成的密码运算处理电路 的动作。此外,在图7~图10中,将为正确执行密码运算指令111 而来自密码控制电路101的各种控制信号必须占有存储器A103、存 储器B104、运算器105、寄存器A106、寄存器B107或寄存器C108 的期间分别表示为"存储器A控制占有期间"、"存储器B控制占有 期间"、"运算器控制占有期间"、"寄存器A控制占有期间"、"寄存器 B控制占有期间"、"寄存器C控制占有期间"。
图7是根据来自动作状况通知电路600的动作状况通知信号
616而从通常控制电路存储器A控制信号604或伪控制电路存储器 A控制信号610中选择存储器A控制信号115的例子。
动作状况通知信号
616是作为对密码运算指令111进行解码后 的结果在2个时钟周期选择通常控制电路存储器A控制信号604、并 在除此以外的期间选择伪控制电路存储器A控制信号610的信号。通 常控制电路存储器A控制信号604是地址Al 、地址A2的读出信号, 伪控制电路存储器A控制信号610输出按每个时钟周期增1的从地址 A6到地址A16的读出信号。
选择器603根据动作状况通知信号
616,从通常控制电路存储 器A控制信号604或伪控制电路存储器A控制信号610中输出在每 个时钟周期访问存储器A103那样的存储器A控制信号115。根据该
存储器A控制信号115,从存储器A103读出存储器A输出数据121,
作为其结果,得到如存储器A消耗电流m那样的每个时钟周期消耗电
流的消摔毛电流波形。
图8是根据来自动作状况通知电路600的动作状况通知信号[l] 616从通常控制电路寄存器A控制信号605或伪控制电路寄存器A控 制信号611中选择寄存器A控制信号116、且根据动作状况通知信号 [2] 616从通常控制电路寄存器B控制信号606或伪控制电路寄存器B 控制信号612中选择寄存器B控制信号117的例子。
动作状况通知信号[l] 616是作为对密码运算指令111进行解码后 的结果在6个时钟周期选择通常控制电路寄存器A控制信号605、在 除此之外的期间选择伪控制电路寄存器A控制信号611的信号。通常 控制电路寄存器A控制信号605是用于将来自存储器A输出数据121 的值D1存储在寄存器A106中的信号,伪控制电路寄存器A控制信 号611是由于在每个时钟周期都将存储器A输出数据121取入到寄存 器A106中,因此总是输出High (高)电平的信号。
动作状况通知信号[2] 616,是作为对密码运算指令111进行解码 后的结果在5个时钟周期选择通常控制电路寄存器B控制信号606、 在除此之外的期间选择伪控制电路寄存器B控制信号612的信号。通 常控制电路寄存器B控制信号606是用于将来自存储器A输出数据 121的数据D2存储在寄存器B107中的信号,伪控制电路寄存器B 控制信号612是由于在每个时钟周期都将存储器A输出数据121取入 到寄存器B107中,因此总是输出High电平的信号。
选择器603根据动作状况通知信号[l] 616,输出如将来自存储器 A输出数据121的数据D6、数据D7、数据D1、数据D14、数据D15、 数据D16取入到寄存器A106那样的寄存器A控制信号116。并且, 选择器603还根据动作状况通知信号[2] 616,输出如将来自存储器A 输出数据121的数据D6、数据D7、数据D1、数据D2、数据D14、 数据D15、数据D16取入到寄存器B107那样的寄存器B控制信号117。
图9是根据来自动作状况通知电路600的动作状况通知信号[3]
616从通常控制电路运算器控制信号607或伪控制电路运算器控制信 号613中选择运算器控制信号118、且根据动作状况通知信号[4] 616 从通常控制电路寄存器C控制信号608或伪控制电路寄存器C控制 信号614中选择寄存器C控制信号119的例子。
动作状况通知信号[3] 616是作为对密码运算指令111进行解码后 的结果在5个时钟周期选择通常控制电路运算器控制信号607、在除 此之外的期间选择伪控制电路运算器控制信号613的信号。通常控制 电路运算器控制信号607是用于由运算器105以来自存储器A输出数 据122的值D1和来自寄存器B输出数据123的值D2作为输入来执 行运算1的信号,伪控制电路运算器控制信号613是用于将存储器A 输出数据122和寄存器B输出数据123作为输入并使运算器105动作 的信号,在该例中,输出用于以每个时钟周期为单位执行运算0~运 算IO的信号。
动作状况通知信号[4] 616是作为对密码运算指令111进行解码后 的结果在1个时钟周期选择通常控制电路寄存器C控制信号608、在 除此之外的期间选择伪控制电路寄存器C控制信号614的信号。通常 控制电路寄存器C控制信号608是用于将作为来自运算器输出数据 124的运算结果的值DA存储在寄存器C108的信号,伪控制电路寄 存器C控制信号614是由于在每个时钟周期都将运算器输出数据124 取入到寄存器C108中,因此总是输出High电平的信号。
选择器603根据动作状况通知信号[3] 616,输出如将存储器A输 出数据122和寄存器B输出数据123作为运算器105的输入而由运算 器105执行运算0、运算1、运算2、运算1、运算8、运算9、运算 IO那样的运算器控制信号118。并且,选择器603还根据动作状况通 知信号[4]616,输出如在每个时钟周期将运算器输出数据124取入到 寄存器C108那样的寄存器C控制信号119。根据上述运算器控制信 号U8和寄存器C控制信号119,由运算器105在每个时钟周期执行 某些运算并存储在寄存器C108中,因此能够得到如运算部消耗电流 III那样的每个时钟周期消耗电流的消耗电流波形。
图10是根据来自动作状况通知电路600的动作状况通知信号[5] 616从通常控制电路存储器b控制信号609或伪控制电路存储器b控 制信号615中选择存储器b控制信号120的例子。
动作状况通知信号[5] 616是作为对密码运算指令111进行解码后 的结果在1个时钟周期选择通常控制电路存储器b控制信号609、在 除此之外的期间选择伪控制电路存储器b控制信号615的信号。通常 控制电路存储器b控制信号609是对存储器b104的地址aa写入寄 存器c输出数据值da的写入信号,伪控制电路存储器b控制信号 615是在每个时钟周期对存储器b104的固定地址ax写入寄存器c 输出数据125的写入信号。关于根据伪控制电路存储器b控制信号 615进行的对存储器b104的写入动作,按照地址有可能盖写密码运 算指令111等所需的数据,所以将cpu109不使用的地址ax用作数 据存储用地址。
选择器603根据动作状况通知信号[5] 616,从通常控制电路存储 器b控制信号609或伪控制电路存储器b控制信号615输出在每个 时钟周期对存储器b104进行写入的存储器b控制信号120。根据该 存储器b控制信号120,将寄存器c输出数据125写入存储器b104, 作为其结果,能够得到如存储器b消耗电流iii那样的每个时钟周期消 肆毛电流的消4毛电流波形。
图11是将图7~图io汇总后的图。在图11中,密码运算处理电
路的消耗电流波形为存储器a消耗电流m、运算部消耗电流m和存储 器b消耗电流m之和,因而"电路总体的消耗电流m"是合计后的消 耗电流波形。电路总体的消耗电流ni与图2的总体的消耗电流n的"密 码运算处理r期间相比,是更为连续的消耗电流波形。
此外,在图7~图11中说明了在密码运算指令111的执行中的密
码控制电路101的动作,但伪运算指令113的执行情况也相同。
如上所述,在图6的结构中,包括产生用于执行密码运算指令111 或伪运算指令113的通常控制信号604- 609的通常控制电路601、即 使正在执行在密码运算指令111或伪运算指令113也指示通常控制电
路601不需要占有存储器A103、存储器B104、运算器105、寄存器 A106、寄存器B107或寄存器C108的时钟周期期间的动作状况通知 电路600、产生用于强制性地使存储器A103、存储器B104、运算器 105、寄存器A106、寄存器B107或寄存器C108进行动作的伪控制信 号610~615的伪控制电路602、以及根据来自动作状况通知电路600 的通知切换通常控制信号604 ~ 609和伪控制信号610 ~ 615的选择器 603,因此,在通常控制电路601不需要占有存储器A103、存储器 B104、运算器105、寄存器A106、寄存器B107或寄存器C108的期 间,能够将控制从通常控制电路601切换到伪控制电路602,从而使 存储器A103、存储器B104、运算器105、寄存器A106、寄存器B107 或寄存器C108总是进行动作来消耗电流,即使是密码运算指令111 或伪运算指令113正在执行中也能够使消耗电流变得更均匀,从而对 电流分析的保密性进一步提高。
图12示出图6中的伪控制电路602的详细结构例。图12的伪控 制电路602包括通常控制信号存储电路800、和伪控制信号生成电路 801。通常控制信号存储电路800根据通常控制电路601输出的通常 控制信号604 ~ 609来存储通常控制信号历史信息802。伪控制信号生 成电路801读出通常控制信号存储电路800所存储的通常控制信号历 史信息802,生成并输出伪控制信号610~615。
图13示出图12中的通常控制信号存储电路800的存储内容的例 子。如图13所示,通常控制信号存储电路800在其内部具有多个用 于存储数据的存储槽。各存储槽具有以1个集合来存储通常控制电路 601输出的通常控制电路运算器控制信号607、从通常控制电路存储 器A控制信号604和通常控制电路寄存器A控制信号605得到的存 储器A地址(寄存器A用)、从通常控制电路存储器A控制信号604 和通常控制电路寄存器B控制信号606得到的存储器A地址(寄存 器B用)、从通常控制电路存储器B控制信号609得到的存储器B地 址的结构。
伪控制信号生成电路801读出存储在这些存储槽的每1个内的通
常控制信号历史信息802,并生成伪控制信号610~615。对于该伪控 制信号生成电路801读出哪个存储槽的数据的算法,可以是(1 )按 照在存储槽中所存储的顺序来读出、(2 )选择频率最高的密码运算指 令的存储槽、(3)随机地选择存储槽等的任何一种算法。
在用如上所述的算法进行读出时,即使在时钟周期单位中也能够 进行过去实施过的运算资源103~108的动作、或过去的具有频率高 的消^^电流波形的运算资源103~108的动作、或过去的消^^电流波 形的状态随机出现的运算资源103~108的动作,密码运算指令或伪 运算指令113的消耗电流变得均匀,因此对电流分析的保密性进一步 提高。
另外,通常控制信号存储电路800也可以由非易失性存储器构成。 在这种情况下,即使在电源断电后也仍能存储过去的通常控制信号历 史信息802,并从所存储的通常控制信号604 ~ 609中选择并输出伪控 制信号610~615,因此,即使是在如接通电源后执行密码运算并反复 执行电源断电等程序借以观测电流波形变化那样的电流分析手法中, 密码运算指令111执行中或伪运算指令113执行中所呈现的消耗电流 波形取决于所存4诸的过去的通常控制信号604- 609,因此对电流分析 的保密性进一步提高。
其次,在该运算器105中的处理相同的情况下,运算器105的消 耗电流在很大程度上取决于作为运算对象的输入数据。具体地说,当 在输入数据中位值0较多时和较少时,在消耗电流上就出现了差别。 因此,在以下说明的例子中,通过利用位值0的计数来提高对电流分 析的保密性。
图14示出图1的密码运算处理电路的变形例。在图14中,除图 1所示的密码运算处理电路的结构以外,还具有位值O计数电路1000。 位值O计数电路IOOO将存储器A输出数据121作为输入,对该输入 數据的位值为0的位数进行计数,并将其作为位值0计数信息1001 输出到密码运算指令存储电路400和通常控制信号存储电路800。
例如,当存储器A输出数据121具有32位的数据宽度并以十六
进制数表示而输出了 39DF7EB6的数据时,该数据以二进制数表示为 0011—1001_1101_1111—0111_1110—1011—0110,所以位值为o的位的数 为10个。因此,位值0计数信息1001输出10。
图15示出图14中的密码运算指令存储电路400的存储内容的例 子。如图15所示,密码运算指令存储电路400除了密码运算指令111 以外,还具有将位值0计数信息1001存储在相同存储槽的结构。在 此,假定从存储槽序号小的开始依次为最近存储的数据。
当假定存储器A输出数据121具有32位的数据宽度时,存储在 图15的存储槽1的密码运算指令111,将地址Al和地址A2的各数 据作为输入并进行指令3的运算,将其结果存储在地址A3中,此时 由位值0计数电路1000计数所得到的位值0计数信息1001,在地址 Al中为17、在地址A2中为14。
存储在存储槽2的密码运算指令111,将地址A5和地址A6的各 数据作为输入并进行指令3的运算,将其结果存储在地址A7中,此 时由位值0计数电路1000计数所得到的位值0计数信息1001,在地 址A5中为14、在地址A6中为16。
存储在存储槽3中的密码运算指令111,将地址A7和地址A8的 各数据作为输入并进行指令3的运算,将其结果存储在地址A9中, 此时由位值0计数电路1000计数所得到的位值0计数信息1001,在 地址A7中为5、在地址A8中为3。即,可看出从地址A7和地址A8 读出的数据都是相对于32位的数据宽度其位值0的计数非常少的数 据。
存储在存储槽4中的密码运算指令111,将地址A3和地址A4的 各数据作为输入并进行指令3的运算,将其结果存储在地址A5中, 此时由位值0计数电路1000计数所得到的位值0计数信息1001,在 地址A3中为18、在地址A4中为19。
存储在各存储槽中的密码运算指令111都是向运算器105发出指 令3的指令,存储在各存储槽中的O值计数具有存储槽3较少的特征, 存储槽1、存储槽2、存储槽4为类似的数字。在存在相对于数据宽
度O值计数非常少、或非常多的数据的情况下,使用了这种数据的密 码运算所激活的位数非常少,因此在密码运算处理中的消耗电流波形 上产生独特的峰值。
对于伪运算指令生成电路401,当接收指示密码运算指令111的 执行已结束的信号即运算完成信号114后检索存储槽1~存储槽4中 所存储的密码运算指令111并识别出所有存储槽都是指令3时,进一 步检索位值O计数信息1001。在存在相对于数据宽度0值计数非常少、 或非常多的数据的情况下,使用了这种数据的运算所激活的位数非常 少,所以在密码运算处理中的消耗电流波形上产生独特的峰值,因此 生成有意图地使该峰值增加的伪运算指令113。由此,选择使用了位 于最小的位值0计数的存储槽即存储槽3来生成伪运算指令113。
如上所述,在具有图14的结构的密码运算处理电路中,伪运算指 令生成电路401判断存储在密码运算指令存储电路400中的位值O计 数的分布并选择使用了位于最大或最小的位值0计数的密码运算指令 111来生成伪运算指令113,因此,所生成的伪运算指令113能够表 示出过去的异常的消耗电流波形,从而很难分清是执行着密码运算指 令111、还是作为伪运算指令113执行着表示出过去的异常的消耗电 流波形的密码运算指令111,因而对电流分析的保密性进一步提高。
此外,伪运算指令生成电路401也可以判断存储在密码运算指令 存储电路400的位值0计数的分布并选择使用了位于平均值的位值0 计数的密码运算指令111来生成伪运算指令113。由于选择使用了位 于平均值的位值0计数的密码运算指令111来生成伪运算指令113, 因此,所生成的伪运算指令113能够表示出平均的消耗电流波形,从 而很难分清是执行着密码运算指令111、还是作为伪运算指令113执 行着数据中所包含的位值0计数的频率较高的密码运算指令111,因 而对电流分析的保密性进一 步提高。
图16示出图14中的通常控制信号存储电路800的存储内容的例 子。如图16所示,通常控制信号存储电路800除了通常控制电路运 算器控制信号607、存储器A地址和存储器B地址以外,还具有以1
个集合来存储位值0计数信息1001的结构。在此,假定从存储槽序
号小的开始依次为最近存储的数据。
当假定存储器A输出数据121具有32位的数据宽度时,按照图 16的存储槽1,对从存储器A地址(寄存器A用)Al和存储器A地 址(寄存器B用)A2读出的数据,作为通常控制电路运算器控制信 号607发出运算2,并将运算结果写入存储器B地址AA。这时由位 值0计数电路1000计数所得到的寄存器A用和寄存器B用的位值0 计数信息1001分别为31和32。即,可以看出是是位值0的计数相对 于32位的数据宽度非常多的数据。
另外,相反,在图16的存储槽3所存储的数据中,由位值O计数 电路1000计数所得到的寄存器A用和寄存器B用的位值0计数信息 1001分别为0和1,因此,可以看出是位值0的计数相对于32位的 数据宽度非常少的数据。
如上所述,当存在O值计数相对于数据宽度非常少、或非常多的 数据时,由于使用了这种数据的密码运算所激活的位数非常少,所以 在密码运算处理中的消耗电流波形上产生独特的峰值。
由于存储槽1中所存储的数据是最新的数据,所以由通常控制电 路601输出了产生如上所述的独特的峰值的通常控制信号604 ~ 609。 在这种情况下,如果接在其后的伪控制信号610~615不是产生同样 的独特峰值的控制信号,就不能有效地进行伪装。而与此相反,当由 通常控制电路601输出了不产生如上所述的独特的峰值的通常控制信 号604 ~ 609时,如果接在其后的伪控制信号610~615不是不产生独 特的峰值的控制信号,就不能有效地进行伪装。因此,伪控制信号生 成电路801判断最新存储的存储槽的位值0计数信息1001,并读出具 有平均、最大或最小的位值0计数信息1001的存储槽的数据来生成 伪控制信号610 ~ 615。
通过执行这种伪运算,很难区分与执行着原来的密码运算的定时 的消耗电流波形的差別,因而很难分析出原来的密码运算的执行定 时。
如上所述,在具有图14的结构的密码运算处理电路中,通过由位
值0计数电路1000对存储器A输出数据121的位值0的个数进行计 数并将其计数值存储在密码运算指令存储电路400和通常控制信号存 储电路800中,就能够再现与过去发生过的异常的消耗电流波形或平 均的消耗电流波形具有相同的特征的消耗电流波形,因此,很难判断 基于消耗电流分析的密码运算处理和伪运算处理,因而对消耗电流分 析的保密性提高。
其次,即使在运算器105的连续的控制中输入数据是从存储器 A103不同地址读出的数据,当数据的值本身完全相同时,在运算器 105中也不会消耗电流。因此,在以下说明的例子中,通过预先设定 构成运算器105的电路的电位,从而提高对电流分析的保密性。
图17示出了图6的变形例的密码控制电路101和运算部102的结 构。图17的运算部102除了图1中示出的运算部102的结构以外, 为了预先设定构成运算器105的电路的电位,还具有预置电路A1300 和预置电路B1301。在图17的例子中,两个预置电路1300、 1301例 如是反相电路。另外,图17的密码控制电路101除了图6中示出的 密码控制电路101的结构以外,还具有用于产生与动作开始时钟脉沖 沿同步的脉冲信号来使两个预置电路1300、 1301动作的脉冲信号产
生电^各1306。
预置电路A1300,当来自脉冲信号产生电路1306的预置电路A 控制信号1302变为有效时,使来自寄存器A106的存储器A输出数 据122翻转,并对运算器105输出预置电路A输出数据1304。
预置电路B1301,当来自脉沖信号产生电路1306的预置电路B控 制信号1303为有效时,使来自寄存器B107的存储器B输出数据123 翻转,并对运算器105输出预置电路B输出数据1305。
脉冲信号产生电路1306是利用时钟IIO来产生脉冲信号的电路, 所产生的信号作为预置电路A控制信号1302和预置电路B控制信号 1303输出到预置电路A1300和预置电路B1301。
图18示出具有图17的密码控制电路101和运算部102的密码运
算处理电路的动作。
按照图18,密码控制电路101,根据来自CPU109的密码运算指 令111接收指令4。在此,指令4为在一系列的密码运算处理中运算 器105反复进行4次2个时钟周期的运算4。
密码控制电路101对指令4进行解码,读出存储器A103的地址 Al ~地址A8的各数据D1、数据D2,并将数据D1存储在寄存器A106 内、将数据D2存储在寄存器B107内。存储器A消耗电流IV是由存 储器A103进行了读出动作而产生的消耗电流,成为与从地址Al ~地 址A8的读出动作对应的消津毛电流波形。
然后,密码控制电路101利用运算器控制信号118对运算器105 进行控制使其实施运算4,这时,脉冲信号产生电路1306控制预置电 路A控制信号1302,使寄存器A输出数据122翻转一次并输出为预 置电路A输出数据1304。由此,运算器105在用原来的数据Dl和 D2实施运算之前,暂时实施D1的翻转数据与D2的运算。每当对作 为组合电路的运算器105的输入寄存器即寄存器A106和寄存器B107 存储数据时,运算部消耗电流IV改变,寄存器A106和寄存器B107 的值确定之后,运算也要执行2个时钟周期,因此要消耗电流。
在从地址A1 A8读出的存储器A输出数据121如图18所示那 样为Dl和D2连续的情况下,寄存器A输出数据122和寄存器B输 出数据123的值不变。在这种情况下,在以往的结构中运算器105的 输入不变,实际上运算器105不动作,因此不消耗电流,但在本发明 中,通过由脉冲信号产生电路1306控制预置电路A1300和预置电路 B1301并使输入数据翻转一次,每次都实施运算处理,从而运算器105 消库毛电流。
接着,密码控制电路101对指令4进行解码并在运算4结束的定 时输出用于将运算结果存储在寄存器C108的寄存器C控制信号119, 并将DA存储在寄存器C108中。并且,密码控制电路101对指令4 进行解码并发出存储器B控制信号120,将作为寄存器C输出数据 125的DA存储在存储器B104的地址AA ~地址AD。存储器B消耗
电流IV是对存储器B104进行了写入动作而产生的消耗电流,形成与 地址AA ~地址AD的写入动作对应的消库毛电流波形。
如上所述,按照图17的结构,通过由脉冲信号产生电路1306控 制预置电路A控制信号1302和预置电路B控制信号1303,使对运算 器105输入的数据翻转一次,即使对运算器105的输入数据在每个时 钟周期都是相同的值,也要在每个时钟脉沖沿强制性地改变运算器 105内部的电位并其消耗电流,因此对电流分析的保密性提高。
此外,在图17中,作为预置电路1300、 1301的例子说明了反相 电路,但也可以是如将运算部102内部的各信号预先设定为固定值那 样的电路。
图19示出图17的变形例的运算部102的结构。图19的运算部 102除了图17中示出的运算部102的结构以外,还具有为了使对运算 器105输入的输入数据按每个位延迟值不同而设置的延迟电路 A1500、延迟电路B1501。此外,在图19中,省略了控制信号的图示。
延迟电路A1500在每个时钟周期对来自预置电路A1300的预置电 路A输出数据1304在每个位附加不同的延迟量,并对运算器105输 出不是所有的位在同一定时改变的数据来作为延迟电路A输出数据
1502。
延迟电路B1501在每个时钟周期对来自预置电路B1301的预置电 路B输出数据1305在每个位附加不同的延迟量,并对运算器105输 出不是所有的位在同一定时改变的数据来作为延迟电路B输出数据
1503。
图20示出具有图19的运算部102的密码运算处理电路的动作。 按照图20,密码控制电路101根据来自CPU109的密码运算指令111 接收指令4。在此,指令4是指在一系列的密码运算处理中运算器105 反复进行4次2个时钟周期的运算4。
密码控制电路101对指令4进行解码,分别读出存储器A103的 地址Al ~地址A8的数据D1、数据D2,并将数据D1存储在寄存器 A106、将数据D2存储在寄存器B107中。存储器A消耗电流V是使
存储器A103进行了读出动作而产生的消耗电流,形成与从地址Al ~ 地址A8的读出动作对应的消耗电流波形。
然后,密码控制电路101利用运算器控制信号118向运算器105 进行指令使其实施运算4,这时,脉冲信号产生电路1306控制预置电 路A控制信号1302,使寄存器A输出数据122翻转一次并输出为预 置电路A输出数据1304。而且,延迟电路A1500在每个时钟周期对 预置电路A输出数据1304在每个位附加不同的延迟量,在不是所有 的位在同一定时改变的状态下,输出为延迟电路A输出数据1502。 由此,运算器105在用原来的数据Dl和D2实施运算之前,暂时实 施Dl的翻转数据与D2的运算,且在数据的变化点使每个位的延迟 量改变,因此连续地实施使用不同数据的运算。每当对作为组合电路 的运算器105的输入寄存器即寄存器A106和寄存器B107存储数据 时,运算部消耗电流V改变,寄存器A106和寄存器B107的值确定 之后,运算也要执行2个时钟周期,因此要消耗电流。
当从地址A1 A8读出的存储器A输出数据121如图20所示那 样为Dl和D2连续时,寄存器A输出数据122和寄存器B输出数据 123的值不变。在这种情况下,在以往的结构中运算器105的输入不 变,实际上运算器105不动作,因此不消耗电流,但在本发明中,通 过由脉冲信号产生电路1306控制预置电路A1300和预置电路B1301 并使输入数据翻转一次、进而由延迟电路A1500和延迟电路B1501 在每个时钟周期对每个位附加不同的延迟量来使输入数据连续变化,
能够使运算器105连续地实施运算。
接着,密码控制电路101对指令4进行解码并在运算4结束的定 时输出用于将运算结果存储在寄存器C108的寄存器C控制信号119, 并将DA存储在寄存器C108中。并且,密码控制电路101对指令4 进行解码并发出存储器B控制信号120,将作为寄存器C输出数据 125的DA存储在存储器B104的地址AA ~地址AD。存储器B消耗 电流V是对存储器B104进行了写入动作而产生的消耗电流,形成与 地址AA ~地址AD的写入动作对应的消库毛电流波形。
如上所述,按照图19的结构,通过由脉沖信号产生电路1306控 制预置电路A控制信号1302和预置电路B控制信号1303,使输入到 运算器105的数据翻转一次,进而,通过由延迟电路A1500和延迟电 路B1501在每个时钟周期对输入到运算器105的数据在每个位附加不 同的延迟量而使其变化,使运算器105中的消耗电流波形受输入数据 的延迟的影响,因而对消耗电流分析的保密性提高。
如上所述,本发明的密码运算处理电路作为要求密码运算等的保 密性的数据处理电路是有用的,能够应用于IC卡等。
权利要求
1.一种密码运算处理电路,其特征在于,包括存储密码运算用数据的存储器;用于对上述密码运算用数据进行运算的运算器;用于暂时存储对上述运算器的输入输出数据的寄存器;接收密码运算指令并为了对上述密码运算用数据进行密码处理而对上述存储器、上述运算器和上述寄存器进行控制的密码控制电路;以及 接收用于指示上述密码运算指令的执行已结束的运算完成信号并对上述密码控制电路发出用于使上述存储器、上述运算器和上述寄存器动作的伪运算指令的伪运算指令电路。
2. 根据权利要求1所述的密码运算处理电路,其特征在于,上述伪运算指令电路将与上述密码运算指令相同的指令作为上述 伪运算指令而发出。
3. 根据权利要求1所述的密码运算处理电路,其特征在于, 上述伪运算指令电路具有存储上述密码运算指令的密码运算指令存储电路;和 根据过去的密码运算指令历史来生成上述伪运算指令的伪运算指 令生成电路。
4. 根据权利要求3所述的密码运算处理电路,其特征在于, 上述伪运算指令生成电路选择存储于上述密码运算指令存储电路的密码运算指令历史中的出现频率高的密码运算指令来生成上述伪 运算指令。
5. 根据权利要求3所述的密码运算处理电路,其特征在于, 上述伪运算指令生成电路随机地选择存储于上述密码运算指令存储电路的密码运算指令历史中的密码运算指令来生成上述伪运算指 令。
6. 根据权利要求3所述的密码运算处理电路,其特征在于,上述密码运算指令存储电路由非易失性存储器构成,即使在电源 断电以后也仍保持过去的密码运算指令历史以生成上述伪运算指令。
7. 根据权利要求3所述的密码运算处理电路,其特征在于, 上述密码控制电路具有产生用于执行上述密码运算指令或上述伪运算指令的通常控制信 号的通常控制电路;即使在执行上述密码运算指令或上述伪运算指令的过程中也指示 上述通常控制电路不需要占有上述存储器、上述运算器或上述寄存器 的期间的动作状况通知电路;在上述存储器、上述运算器和上述寄存器的动作处于停止的期间 产生用于强制性地使上述存储器、上述运算器和上述寄存器动作的伪 控制信号的伪控制电路;以及根据来自上述动作状况通知电路的通知来切换上述通常控制信号 和上述伪控制信号的选择器。
8. 根据权利要求7所述的密码运算处理电路,其特征在于, 上述伪控制电路具有存储上述通常控制电路所输出的上述存储器的地址和控制上述运 算器的运算器控制信号的通常控制信号存储电路;和根据过去的通常控制信号历史来生成上述伪控制信号的伪控制信 号生成电路。
9. 根据权利要求8所述的密码运算处理电路,其特征在于, 上述伪控制信号生成电路选择存储于上述通常控制信号存储电路的通常控制信号历史中的出现频率高的通常控制信号来生成上述伪 控制信号。
10. 根据权利要求8所述的密码运算处理电路,其特征在于, 上述伪控制信号生成电路随机地选择存储于上述通常控制信号存储电路的通常控制信号历史中的通常控制信号来生成上述伪控制信号。
11. 根据权利要求8所述的密码运算处理电路,其特征在于, 上述通常控制信号存储电路由非易失性存储器构成,即使在电源 断电以后也仍保持过去的通常控制信号历史来生成上述伪控制信号。
12. 根据权利要求8所述的密码运算处理电路,其特征在于, 还具有对从上述存储器读出的数据中所包含的位值0的个数进行计数的位值0计数电路,上述密码运算指令存储电路还具有存储来自上述位值0计数电 路的位值0计数值的功能。
13. 根据权利要求12所述的密码运算处理电路,其特征在于, 上述伪运算指令生成电路判断存储在上述密码运算指令存储电路中的位值0计数的分布,并选择使用了位于平均值的位值O计数的密 码运算指令来生成上述伪运算指令。
14. 根据权利要求12所述的密码运算处理电路,其特征在于, 上述伪运算指令生成电路判断存储在上述密码运算指令存储电路中的位值0计数的分布,并选择使用了位于最大值或最小值的位值0 计数的密码运算指令来生成上述伪运算指令。
15. 根据权利要求12所述的密码运算处理电路,其特征在于, 上述通常控制信号存储电路还具有存储来自上述位值0计数电路的位值0计数值的功能。
16. 根据权利要求15所述的密码运算处理电路,其特征在于, 上述伪控制信号生成电路判断存储在上述通常控制信号存储电路中的位值0计数的分布,并选择使用了位于平均值的位值0计数的通 常控制信号来生成上述伪控制信号。
17. 根据权利要求15所述的密码运算处理电路,其特征在于, 上述伪控制信号生成电路判断存储在上述通常控制信号存储电路中的位值0计数的分布,并选择使用了位于最大值或最小值的位值0 计数的通常控制信号来生成上述伪控制信号。
18. 根据权利要求7所述的密码运算处理电路,其特征在于, 还具有预先设定构成上述运算器的电路的电位的预置电路, 上述密码控制电路还具有用于产生与上述运算器的动作开始时 钟脉冲沿同步的脉冲信号来使上述预置电路动作的脉冲信号产生电路。19. 根据权利要求18所述的密码运算处理电路,其特征在于, 上述预置电路仅在上述脉沖信号产生电路的脉冲信号期间使上述寄存器的输出数据翻转。20. 根据权利要求18所述的密码运算处理电路,其特征在于,还具有使对于向上述运算器输入的输入数据的每个位的延迟值 不同的延迟电路。
全文摘要
具有接收来自CPU(109)等的密码运算指令(111)的执行已结束的信息之后取代CPU(109)等而对密码控制电路(101)发出伪运算指令(113)的伪运算指令电路(100)。在密码运算指令(111)的执行结束后,使通常处于停止状态的存储器、运算器和寄存器等运算资源(103~108)动作来消耗电流,因此很难用消耗电流的大小等来确定密码运算处理的结束或开始等的定时。伪运算指令(113)始终只在没有发送来自CPU(109)等的密码运算指令(111)的期间发出,因此不会使密码运算处理的性能降低。
文档编号G06F21/75GK101366231SQ200780001859
公开日2009年2月11日 申请日期2007年6月19日 优先权日2006年11月9日
发明者吉本哲朗, 田中崇之 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1