密码处理装置、密码处理方法以及计算机程序.pdf

上传人:a1 文档编号:484528 上传时间:2018-02-19 格式:PDF 页数:40 大小:2.10MB
返回 下载 相关 举报
摘要
申请专利号:

CN200410087466.6

申请日:

2004.07.07

公开号:

CN1601578A

公开日:

2005.03.30

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回|||实质审查的生效|||公开

IPC分类号:

G09C1/00

主分类号:

G09C1/00

申请人:

索尼株式会社;

发明人:

阿部让司; 金丸昌司

地址:

日本东京都

优先权:

2003.07.07 JP 271525/2003; 2003.07.07 JP 271524/2003

专利代理机构:

北京市柳沈律师事务所

代理人:

王志森;黄小临

PDF下载: PDF下载
内容摘要

提供一种密码处理装置、密码处理方法以及计算机程序。根据本发明所述的结构,调制时钟信号是根据以随机数为基础的信号生成,而且根据该调制时钟信号确定数据处理定时以执行数据处理。因此,使随着加密和解密数据的密码处理装置的运行时间、通过测量耗损功率而进行的加密密钥、解密密钥等的保密信息分析(即基于功率分析的密码分析)变得困难,因此实现具有高保密性水平的密码处理装置和方法。

权利要求书

1.  一种密码处理装置,包括:
调制时钟信号产生单元,用于生成将要用作数据处理定时控制信号的调制时钟信号;以及
数据处理单元,用于接收调制时钟信号并根据输入的调制时钟信号确定处理定时以执行数据处理,其中;
所述调制时钟信号产生单元生成与以随机数为基础的随机数信号相对应的调制时钟信号,并输出调制时钟信号到所述数据处理单元。

2.
  根据权利要求1所述的密码处理装置,进一步包括:
时钟信号产生单元,用于生成具有恒定周期的正常时钟信号;以及
计数器,用于测量相对于正常时钟信号的随机数信号的延迟量,其中:
当所述计数器测量的延迟小于预设可允许延迟时间时,所述调制时钟信号产生单元输出所述与随机数信号相对应的所述调制时钟信号到所述的数据处理单元,当所述延迟达到预设可允许延迟时间的上限时,输出与所述正常时钟信号相对应的所述调制时钟信号到所述数据处理单元。

3.
  根据权利要求1所述的密码处理装置,其中:
所述数据处理单元确定关于将在密码处理中生成的中间数据存储到寄存器的处理的定时,或关于根据调制时钟信号从寄存器读取在执行密码处理中将要应用的中间数据的读取处理的定时。

4.
  根据权利要求1所述的密码处理装置,其中:
所述密码处理装置是用于根据公共密钥密码系统来执行密码处理的密码处理装置,该公共密钥密码系统使用多级循环函数单元;以及
所述数据处理单元确定:关于将在多级循环函数单元生成的中间数据存储到寄存器的处理的定时,或关于根据调制时钟信号从寄存器读取在多级循环函数单元上的处理中将要应用的中间数据的读取处理的定时。

5.
  一种密码处理方法,包括:
调制时钟信号产生步骤,生成与以随机数为基础的随机数相对应的调制时钟信号,该调制时钟信号用作数据处理定时控制信号;以及
数据处理步骤,接收调制时钟信号并根据该输入调制时钟信号确定处理定时以执行数据处理。

6.
  根据权利要求5所述的密码处理方法,进一步包括:
时钟信号产生步骤,生成具有恒定周期的正常时钟信号;以及
延迟量测量步骤,测量相对于正常时钟信号的随机数信号的延迟量,其中;
当所述计数器测量的延迟小于预设可允许延迟时间时,所述调制时钟信号产生步骤将所述与随机似乎信号相对应的调制时钟信号设置为将被输出到所述数据处理单元的时钟信号,当延迟达到预设可允许延迟时间的上限时,输出与所述正常时钟信号相对应的所述调制时钟信号到所述数据处理单元。

7.
  根据权利要求5所述的密码处理方法,其中:
所述数据处理步骤确定关于将在密码处理上生成的中间数据存储到寄存器的处理的定时,或关于根据调制时钟信号从寄存器读取在执行密码处理上将要应用的中间数据的读取处理的定时。

8.
  根据权利要求5所述的密码处理方法,其中:
所述密码处理步骤是用于根据公共密钥密码系统来执行密码处理的密码处理步骤,该公共密钥密码系统使用多级循环函数单元;以及
所述数据处理步骤确定关于将在多级循环函数单元生成的中间数据存储到寄存器的处理的定时,或关于根据调制时钟信号从寄存器读取在多级循环函数单元上将要应用的中间数据的读取处理的定时。

9.
  一种用于在计算机系统上执行密码处理的计算机程序,所述计算机程序包括:
调制时钟信号产生步骤,生成与以随机数为基础的随机数相对应的调制时钟信号,该调制时钟信号用作数据处理定时控制信号;以及
数据处理步骤,接收调制时钟信号并根据该输入的调制时钟信号确定处理定时以执行数据处理。

10.
  一种密码处理装置,包括:
数据处理单元,用于执行输入数据的数据处理;
反向数据产生组件,用于生成比特数据的反向数据,该比特数据构成由数据处理单元通过数据处理生成的中间数据;以及
多个数据存储单元,每一个数据存储单元用于存储与中间数据相对应的非反向比特数据和反向比特数据。

11.
  根据权利要求10所述的密码处理装置,其中:
所述密码处理装置是用于根据公共密钥密码系统来执行密码处理的密码处理装置,该公共密钥密码系统使用多级循环函数单元;以及
所述数据处理单元包括多级数据转换单元;以及
所述中间数据是在每一级所述数据转换单元的输出数据。

12.
  根据权利要求10所述的密码处理装置,其中:
所述多个数据存储单元包括:
第一数据存储单元,用于存储没有反向的构成所述中间数据的比特数据;以及
第二数据存储单元,用于存储经过反向的构成所述中间数据的所有比特数据。

13.
  根据权利要求10所述的密码处理装置,其中:
所述多个数据存储单元包括:
第一数据存储单元,用于逐位存储有关构成所述中间数据的比特数据的反向或非反向数据;以及
第二数据存储单元,用于存储有关构成所述中间数据的比特数据的在第一数据存储单元中所存储的比特数据的逐位反向的数据。

14.
  根据权利要求10所述的密码处理装置,其中:
所述反向数据产生组件是反向器;以及
其中所述多个数据存储单元之一存储通过反向器的反向数据。

15.
  根据权利要求10所述的密码处理装置,进一步包括:
在其中所述多个数据存储单元之一的输出级的输出数据反向处理组件,作为用于输出数据到所述数据处理单元的中间数据存储组件。

16.
  根据权利要求10所述的密码处理装置,其中:
设置所述密码处理装置为具有一种用于对中间数据的非反向数据和反向数据执行存储处理的结构,从而使在与所述多个数据存储单元有关的数据存储处理时的汉明权的总和保持恒定。

17.
  一种密码处理方法,包括:
数据处理步骤,执行输入数据的数据处理;
反向数据产生步骤,生成比特数据的反向数据,该比特数据构成由数据处理单元通过数据处理生成的中间数据;以及
数据存储步骤,在多个数据存储单元的每一个中存储与中间数据相对应的非反向比特数据和反向比特数据。

18.
  如权利要求17所述的密码处理方法,其中:
所述密码处理方法是用于根据公共密钥密码系统来执行密码处理的密码处理方法,该公共密钥密码系统使用多级循环函数单元;以及
所述数据处理步骤包括多级数据转换步骤;以及
所述中间数据是在每一级所述数据转换步骤的输出数据。

19.
  如权利要求17所述的密码处理方法,其中:
所述多个数据存储步骤包括:
第一数据存储步骤,用于存储没有反向的构成所述中间数据的比特数据;以及
第二数据存储步骤,用于存储经过反向的构成所述中间数据的所有比特数据。

20.
  如权利要求17所述的密码处理方法,其中:
所述数据存储步骤包括;
第一数据存储步骤,用于逐位存储有关构成所述中间数据的比特数据的反向或非反向数据;以及
第二数据存储步骤,用于存储有关构成所述中间数据的比特数据的在第一数据存储步骤中所存储的比特数据的逐位反向的数据。

21.
  如权利要求17所述的密码处理方法,其中:
当数据存储单元中所存储的数据是反向数据而且还采用该数据进行数据处理时,设置所述密码处理方法来执行对所存储数据的再反向处理;以及
所述数据处理步骤执行对所述再反向数据的数据处理。

22.
  如权利要求17所述的密码处理方法,其中:
设置所述密码处理方法来对中间数据的非反向数据和反向数据执行存储处理,从而使在与所述多个数据存储单元有关的数据存储处理时的汉明权的总和保持恒定。

23.
  一种用于在计算机系统上执行密码处理的计算机程序,所述计算机程序包括:
数据处理步骤,执行输入数据的数据处理;反向数据产生步骤,生成比特数据的反向数据,该比特数据构成由数据处理单元通过数据处理生成的中间数据;以及
数据存储步骤,在多个数据存储单元的每一个中存储与中间数据相对应的非反向比特数据和反向比特数据。

说明书

密码处理装置、密码处理方法以及计算机程序
技术领域
本发明涉及一种密码处理装置、一种密码处理方法以及一种计算机程序。更具体的是,本发明涉及一种密码处理装置、一种密码处理方法以及一种计算机程序,其中通过控制处理过程定时(例如基于随机数生成的调制时钟信号而存储由密码处理所生成的中间数据的定时)来增加对密码分析形成的阻力。
背景技术
随着近来网络通信和电子商务的发展,保密性维护正变成重要问题。一种用于维护保密性的方法是密码技术。实际上当前执行的通信运用了多种加密方案。
实际上在使用这样一种系统,其中在诸如IC卡那样的小装置中嵌入了密码处理模块,并在IC卡与用作数据阅读器/记录器的阅读器/记录器之间执行数据发送/接收。该系统执行验证处理或加密,并对发送/接收的数据解密。
例如,该密码处理模块执行输入明码文及输出密码文的数据加密处理,或输入密码文及输出明码文的数据解密处理。这些密码处理包括由例如组成密码处理模块的半导体模块之类的硬件来执行的电处理。因此,当半导体模块执行密码处理时,存在对通过分析耗损功率来分析应用于该密码处理的密钥和算法的担心。
例如,在诸如IC卡那样的算法处理单元上进行的攻击(即密码分析攻击)包括通过分析处理时间而估计保密信息的定时攻击(TA:Timing Attack)、通过监控密码处理期间的功率耗损而估计保密信息的简单功率分析(SPA:Simple Power Analysis)、通过测量密码处理期间用于大量数据的耗损功率以及统计地分析所测量的数据的差动功率分析(DPA:Differential PowerAnalysis)、以及其他攻击。
通常的密码处理装置由数据输入单元、存储单元、密码处理单元以及数据输出单元所构成。例如,当将要加密输入数据时,该装置以下述方式运行。即,从数据输入单元输入明码文到密码处理单元。在密码处理单元中用于执行诸如DES(Data Encryption Standard,数据加密标准)那样密码处理算法的处理单元根据预定密码算法处理数据。
在密码处理算法每个执行阶段生成的中间数据连续存储在存储单元中,而且获得存储单元中所存储的中间数据来根据预定处理顺序执行密码处理。由于密码处理单元完成了系列预定的密码处理算法,所以从输出单元输出所生成的密码文。
在密码处理装置中,在加密处理开始之后开始特定加密中间处理过程所花费的时间通常是常数。在以下所提及的非专利文献1中详细地描述一种密码算法的执行方法。
密码处理装置与对通过运用如上所述的称为简单功率分析和差动功率分析的加密方法来分析施加到密码处理的密钥信息和算法的担心有关。
简单功率分析和差动功率分析是这样的密码分析方法,该密码分析方法通过密码处理装置测量在密码处理期间的各种时刻的功率耗损,以及通过利用在当保存在诸如当前存储器和寄存器那样的半导体器件中的值产生变化时以及在当该保存值不产生变化时二者之间存在耗损功率差值的特性来识别由密码处理装置保持的、诸如密码密钥那样的保密信息。
可以例举两点作为有效地满足简单功率分析和差动功率分析的功能,其中第一点是可以识别在每个测量耗损功率的时刻执行的密码处理过程,第二点是在每个时刻测量的耗损功率值明确地反映在加密装置中执行的加密处理的计算结果。
诸如加密装置、解密装置和加密/解密装置那样传统密码处理装置满足上述两点条件以致简单功率分析和差动功率分析有效地运行,导致密码文能够被分析的问题的存在。
为了解决这个问题,已经建议了几种方法。例如,专利文献1描述了一种旨在防止差动分析和线性分析的数据加密方法和装置。根据专利文献1,在将数据划分为多个块并顺序加密所划分块的结构中,该结构具体为从在先处理块的中间结果中提取被应用于将要经受密码处理的块的密钥,从而来执行为每个块运用不同密钥的处理。结果,使统计上的密钥估计变得困难。
专利文献2显示的是防止泄漏应用于密码处理的密钥信息的结构。根据专利文献2中所描述的结构,在非易失性存储器中存储加密的密钥信息,当接通电源时解码存储在非易失性存储器中加密的密钥信息,并在易失性存储器中存储该解密结果密钥信息。这些操作被应用于密码处理。当关断电源时,从该易失性存储器中主动擦除该密钥信息以防止密钥信息的泄漏。
以下提及的专利文献3显示的是一种具有对通过诸如简单功率分析和差动功率分析那样的耗损功率测量进行的密码分析形成阻力的加密装置。根据专利文献3所描述地结构,中间数据控制装置根据随机数来改变由密码处理所生成的中间数据,并根据该由随机数所改变的中间数据来执行密码处理。它还使最终输出(密码文)不依赖于随机数成为可能。由于这种结构,密码处理设备中的状态改变成为基于由随机数所改变的中间数据的改变。结果,通过诸如单功率分析和差动功率分析那样的耗损功率测量的密码分析变得更加困难。
此外,以下提及的非专利文献2显示的是一种通过在连续执行密码处理的过程中插入随机定时偏移(shift)来防止使定时匹配波形变得困难的方法。
如上所述,给出了多种关于泄漏密码密钥或算法的对策。然而,在专利文献1中所描述的结构需要执行从已处理过的块中提取中间数据并产生新密钥的复杂处理,从而存在有关降低算法处理效率和产生处理延迟的的担心。在专利文献2中所描述的结构在执行密码处理期间不提供关于通过诸如简单功率分析和差动功率分析那样的耗损功率测量进行密码分析的对策,尽管它具有防止泄漏密钥数据本身的效果。Messerges已经指出,可以由称为高阶差动功率分析的密码分析方法来攻击专利文献3中所描述的运用随机数的方法。例如,在[“Using Second-Order Power Analysis to Attack DPA ResistantSoftware”,T.S.Messerges,CHES2000]中所描述的。
尽管上述非专利文献2描述了通过在连续执行密码处理的过程中插入随机定时偏移可以使定时匹配波形变得困难,但是它并未揭示特定插入随机定时偏移的具体方法。其也未揭示用于通过定时偏移插入来解决性能下降的装置,并不能应用于在预定时段内需要执行高速处理的系统中。
例如,对于在诸如车站检票口、购物中心等各种不同的入口处广泛使用的用于执行密码处理的IC模块,需要其实现压缩和高速处理。因而非常有必要具有能够提供高速处理而不使处理算法复杂化、并具有对差动功率分析和高阶差动功率分析形成阻力的结构。
专利文献1:日本未审专利公开号HEI-9-230786
专利文献2:日本未审专利公开号HEI-8-504067
专利文献3:日本未审专利公开号2000-305453
非专利文献1:“Applied Cryptography”(Bruce Shneier所著)JohnWieley&Sons,Inc.1996,ISBN 0-471-11709-9,pp.623-673
非专利文献2:“DES and Differential Power Analysis”,Louis Goubin,Jacques Patarin,CHES99
发明内容
本发明考虑到上述问题并旨在提供一种密码处理装置、一种密码处理方法以及一种计算机程序,其能够不使处理算法变得复杂而对通过以由密码处理序列所进行的规则处理导致该耗损功率变化的检测等为基础的简单功率分析、差动功率分析和高阶差动功率进行的密码分析增加难度。
本发明的第一个方面提供一种密码处理装置,其特征在于包含:调制时钟信号产生单元,用于生成用作数据处理定时控制信号的调制时钟信号;以及数据处理单元,用于接收调制时钟信号并根据输入的调制时钟信号确定处理定时以执行数据处理,其中该调制时钟信号产生单元具有这样一种结构:调制时钟信号产生单元生成与以随机数为基础的随机数信号相对应的调制时钟信号并输出该调制时钟信号到数据处理单元。
本发明的第二个方面提供一种密码处理方法,其特征在于包含:调制时钟信号产生步骤,生成与以随机数为基础的随机数相对应的调制时钟信号,该调制时钟信号用作数据处理定时控制信号;以及数据处理步骤,接收调制时钟信号并根据该输入调制时钟信号确定处理定时以执行数据处理。
本发明的第三个方面提供一种用于在计算机系统上执行密码处理的计算机程序,该计算机程序的特征在于包括:调制时钟信号产生步骤,生成与以随机数为基础的随机数相对应的调制时钟信号,该调制时钟信号用作数据处理定时控制信号;以及数据处理步骤,接收调制时钟信号并根据该输入调制时钟信号确定处理定时以执行数据处理。
本发明的第四个方面提供一种密码处理设备,其特征在于包括:数据处理单元,用于执行输入数据的数据处理;反向数据产生设备,用于生成比特数据的反向数据,该比特数据构成由数据处理单元通过数据处理生成的中间数据;以及多个数据存储单元,每一个数据存储单元用于存储与中间数据相对应的非反向比特数据和反向比特数据。
本发明的第五个方面提供一种密码处理方法,其特征在于包括:数据处理步骤,执行输入数据的数据处理;反向数据产生步骤,生成比特数据的反向数据,该比特数据构成由数据处理单元通过数据处理生成的中间数据;以及数据存储步骤,在多个数据存储单元的每一个中存储与中间数据相对应的非反向比特数据和反向比特数据。
本发明的第六个方面提供一种用于在计算机系统上执行密码处理的计算机程序,其特征在于包括:数据处理步骤,执行输入数据的数据处理;反向数据产生步骤,生成比特数据的反向数据,该比特数据构成由数据处理单元通过数据处理生成的中间数据;以及数据存储步骤,在多个数据存储单元的每一个中存储与中间数据相对应的非反向比特数据和反向比特数据。
根据本发明所述的结构,调制时钟信号是根据以随机数为基础的信号生成,而且根据该调制时钟信号确定数据处理定时以执行数据处理。因此,使随着加密和解密数据的密码处理装置的运行时间、通过测量耗损功率而进行的加密密钥、解密密钥等的保密信息分析(即基于功率分析的密码分析)变得困难,因此实现具有高保密性水平的密码处理装置和方法
根据本发明的装置,如果延迟量短于预设可允许最大延迟时间,根据与随机数信号相对应的调制时钟信号来执行控制,反之如果延迟时间达到预设可允许最大延迟时间,则根据与正常时钟信号相对应的时钟信号来执行控制。因此,能防止产生过度的处理延迟,而且可以保证在预定期间内完成处理。
根据本发明的结构,例如在用于执行由具有多级循环函数单元所组成的公共密钥密码处理的密码处理设备中,由随机数确定在每一级存储F函数输出的定时(即存储来自S框并经由置换单元的中间数据输出值的定时)、以及读取来自寄存器用于下一级处理的数据的定时。并在预定可允许最大延迟时间之后,根据正常时钟信号执行数据读写。因此,在可允许最大延迟时间之前以随机数为基础以不规则定时执行数据处理,从而能够对密码分析方法增加阻力,该加密方法诸如通过随时间流逝所进行的耗损功率的测量获得加密密钥和解密密钥那样的保密信息。在预定可允许最大延迟时间之后,根据普通的时钟信号执行写数据和读数据以便能防止生成过度的处理延迟并可以保证在预定期间内完成处理。
根据本发明的结构,可以实现对各种分析攻击具有高阻力的一种密码处理装置和密码处理方法而不使处理算法变得复杂。
根据本发明的结构,可以使一种通过测量在数据加密或解密期间的装置的耗损功率来获得诸如加密密钥和解密密钥那样的保密信息的密码分析方法(即,通过诸如功率分析和差动功率分析那样的耗损功率测量的密码分析)变得困难,而且另外使高阶差动功率分析应用也变得困难。
附图说明
图1显示的是DES密码处理的基本配置图;
图2显示的是构成循环(round)函数单元的每个循环的转换单元的结构图;
图3显示的是F函数的结构图;
图4显示的是三重DES密码处理的配置图;
图5A和5B是举例说明具有S框的F函数结构以及包含寄存器作为中间数据存储单元的密码处理设备结构的实例的框图;
图6显示的是作为密码处理执行设备的IC模块结构的实例的框图;
图7是举例说明以时钟信号为基础控制处理过程定时的框图;
图8显示的是时钟信号的实例并举例说明由该时钟信号控制处理过程定时的框图;
图9显示的是根据本发明的配置的作为密码处理执行设备的IC模块结构的实例(第一实施例)的框图;
图10A到10E显示的是产生调制时钟信号的实例并举例说明由该调制时钟信号控制处理过程定时的框图;
图11是举例说明由调制时钟信号控制处理过程定时的框图;
图12是举例说明调制时钟信号产生单元的处理过程的流程图;
图13显示的是根据本发明的密码处理装置的转换处理单元特定结构的以及带有寄存器的数据存储结构的实例(第二实施例)的框图;
图14显示的是根据本发明所述的密码处理装置的转换处理单元的特定结构的以及带有寄存器的数据存储结构的实例(第三实施例)的框图;
图15显示的是AES密码处理的配置的框图;以及
图16显示的是作为密码处理执行设备的IC设备结构的实例的框图,其中本发明的配置适用于该设备。
具体实施方式
在下文中,将详细描述根据本发明所述的密码处理装置、密码处理方法以及计算机程序。
尽管存在各种密码处理算法,但大致将这些密码处理算法分为公开密钥密码方案和公共密钥密码方案,公开密钥密码方案将不同的密钥设置为加密密钥和解密密钥,例如公开密钥和私有密钥;公共密钥密码方案将公共密钥设置为加密密钥和解密密钥。
在一种公共密钥密码方案中,在公共密钥的基础上生成多个密钥,并且通过使用所生成的多个密钥来分别执行密码处理。公共密钥块密码方案是典型的运用该密钥产生方案的算法。
可以将公共密钥块密码算法划分为循环函数单元和密钥次序表单元,循环函数单元主要执行输入数据的置换,而密钥次序表单元生成应用于循环函数单元相应循环的密钥。将主密钥输入到密钥次序表单元来生成应用于循环函数单元每个循环的每个密钥(子密钥),将生成的密钥应用到每个循环函数单元。用作U.S.A标准密码方案的DES(数据加密标准)是公共密钥密码方案的典型方案。
将参照附图来描述DES密码处理的基本结构。DES密码处理具有通过转换函数的简单重复将明码文转换成密码文的结构。图1显示了DES密码处理的基本结构。DES密码处理由用于执行输入数据转换的循环函数单元110和用于产生密钥的密钥次序表单元120构成,所产生的密钥应用于循环函数单元的每个循环。
在循环函数单元110中,首先在初始置换单元111将明码文(64比特)划分成分别具有32比特的L和R。从而将划分的32比特L和R输入到第一级转换单元112并使其经受一次以从密钥次序表单元120的第一级密钥产生单元122输入的密钥K(1)为基础的转换处理。将转换处理结果输入到下面的第二级转换单元113。
在密钥次序表单元120中,首先,选择置换单元121从输入主密钥(64比特)中去掉8个奇偶校验比特并对剩余的56比特执行置换处理,将经过置换的56比特输入到第一级密钥产生单元122。在第一密钥产生单元122中,执行用于输入比特列的、去除奇偶校验比特等的偏移处理来产生48比特的子密钥K(1),该子密钥K(1)被输出到循环函数单元110的第一级转换单元112。在第一级密钥产生单元122中,将通过偏移处理所获得的高比特列(28比特)和低比特列(28比特)输出到较低级的第二级密钥产生单元123。
循环函数单元具有十六级的转换单元。每转换单元接收来自前级转换单元的输出,运用从密钥次序表单元120输入的密钥执行转换处理,并输出转换结果到后续级的转换单元。十六级的转换单元所转换的输出被输入到逆置换单元114,在这里执行与初始置换单元111相反的置换处理来输出密码文。
图2显示了构成循环函数单元110每个循环的转换单元的结构。如图2中所示,转换单元在前级(n-1级)接收来自转换单元的两个输入L(n-1)和R(n-1),并接收来自密钥次序表单元的密钥(k(n))。在F函数单元151中,通过使用从密钥次序表单元输入的密钥(k(n)),使从前面的转换单元输入的比特列(R(n-1))经受转换处理,并在转换结果和从前面的转换单元输入的剩余比特列(L(n-1))之间执行异或操作,由此产生输出R(n)到后续级转换单元。把从R(n-1)处获得的比特列L(n)以及由上述F函数和异或运算所产生的比特列R(n)输入到下一级转换单元来重复类似的运算。
在图3中显示了F函数的结构。F函数具有多个用于执行非线性处理的S框。置换单元171将来自前级循环函数单元的输入值R(n-1)扩展为48比特,并在48比特的比特列和从密钥次序表单元输入的密钥(48比特)之间执行异或操作。每次6比特地将异或输出输入到多个用于执行非线性转换处理的S框181-1到181-8中的每个S框。例如,每个S框通过使用例如转换表来执行将6比特转换成4比特的非线性转换处理。
把从S框181-1到181-8输出的比特4×8=32输入到置换单元172,在这里执行比特位置交换处理来生成并输出32比特的F函数输出。
如参照图1到3所描述的,由多级(16级)转换处理执行DES密码处理。在例如用于经由因特网的数据通信装置的相互验证处理以及应用于对IC卡和阅读器/记录器的相互验证处理的密码处理之类的各种应用中广泛采用为了增强密码强度而多次执行DES密码处理的、诸如三次执行DES密码处理的三重密码处理的这样一种配置。为了将要执行一次的单次DES密码处理与三重DES密码处理区别开来,而将此方式称为单次DES密码处理。
如图4所示,该三重DES密码处理的配置,重复三次执行参照图1到3所描述的DES密码处理来生成源自于明码文的密码文。每个单次DES密码处理单元185、186和187都具有上述16级循环函数,并由具有S框的F函数16次重复该处理。
通常,在三重DES密码处理中,在第一个单次DES密码处理单元185和最后DES密码处理单元187使用相同的主密钥(K1),在中间DES密码处理单元186使用不同的主密钥(K2)。可以通过多次重复执行DES密码处理来增强密码安全性。
然而,此类公共密钥密码方案与涉及通过密码分析使密钥或密码算法泄漏的问题相关。首先,将描述简单功率分析(SPA:Simple Power Analysis)。大部分诸如智能卡那样的防止篡改设备由晶体管构成的逻辑电路组成。对门电路施加电压时,耗损电流和功率。电路的耗损功率通常与处于执行状态下的算法运算和数据值有关。例如,当相对于写入0而写入1的时候,乘法运算需要耗损较大的功率,而且该乘法运算和开方运算耗损不同的功率。
既然功率耗损量随算法运算和数据值而变化,那么可以通过监视设备的耗损功率中的变化来获得诸如汉明权那样的保密信息,该设备通过使用该保密信息来执行算法运算,从而熵能够变小。把直接将耗损功率中的变化用于分析的方法称为简单功率分析。
可以通过在设备与电源或接地之间插入串联电阻,并测量通过该电阻的电流值来获得设备的耗损功率。可以通过测量执行公共密钥密码实际算法运算的智能卡的耗损功率的波形,来清楚地检查在每级公共密钥密码的算法运算。通过详细地分析该耗损功率波形,可以获得诸如密钥寄存器交换那样的信息。
接下来,将描述差动功率分析(DPA:Differential Power Analysis)。防止篡改设备的耗损功率通常依赖于算法运算的内容和连同该算法运算一同使用的保密信息。然而,在依赖于这些内容的耗损功率中的变化太小而通常难以同测量误差,噪音等变化区别开来。
Kocher等已经提出了一种方法(差动功率分析),该方法使用大量测量值的平均值来抑制测量误差、噪音等的影响,并且用所有数据的平均值的差值来消除算法运算的功率耗损的影响,从而仅仅获得由所使用的保密信息导致的耗损功率中的变化。
Kocher等给出了一些应用DES的实例。首先,估计输入到第一级或第十六级循环函数单元的一些比特,留意所估计的最终将要在从第一级或第十六级写入存储器的1比特数据的值。根据该值,把耗损功率的监视器数据分组。接下来,计算每一组的平均测量值并计算测量值与该平均值的差值。如果估计正确并将所考虑的比特用于一种算法运算,则耗损功率的差值变大。如果估计不正确,则不能确定差值。
特定地根据以下过程执行差动功率分析(步骤1到步骤7)。
步骤1:m次监视加密处理来获得在第十六级的耗损功率中的变化T1,...,Tm。然后,记录密码文C1,...,Cm。当在第十六级的功率耗损中的变化用于分析时,不需要明码文信息。如果m大约为1000就足够了。
步骤2:选择依赖于密钥的分布函数D(Ks,C),其中Ks是某种密钥信息而C是密码文。例如,考虑留意在最后一级的S框1的输出的第一比特的值,并估计施加到S框的6比特部分密钥。假如这样,则通过以下公式提供函数D。
D(C1,C6,K16)=C1SBOX1(C6K16)
K16是在第十六级应用于S框1的6比特部分密钥的估计值;C6是经受与K16进行异或操作(XOR)的6比特密码文;SBOX1(x)是在把6比特x应用于S框1时,输出结果的第一比特;C1是经受与SBOX1的输出结果进行异或操作的1比特密码文。
步骤3:通过使用以下D函数将T1,...,Tm分为两个组
S0={Ti|D(.,.,.)=0}
S1={Ti|D(.,.,.)=0}
接下来,计算每组耗损功率的平均值。
A 0 = 1 | S 0 | Σ T i ∈ S 0 ]]>
T 1 = 1 | S 1 | Σ T ∈ S 1 T i ]]>
其中|S0|+|S1|=m
步骤4:如下计算A0-A1的差值来获得功率差值信号D。
D=A0-A1
步骤5:如果部分密钥的估计密钥Ks不正确,D(.,.,.)几乎随机地输出与密码文相关的“0”和“1”。因此,如果提取足够大量的样本,D的值近似于0。然而实际上由于与正确估计值Ks的相互作用,所以D的波形并不完全变平。如果Ks是正确的,D(.,.,.)使用与所留意的比特的实际值相同的值,从而通过将m设置为无限大,D近似于当使用所留意的比特时的耗损值。
与D(.,.,.)无关的其他数据值、测量误差等近似为0。由于耗损功率依赖于数据的比特值,则D(.,.,.)的波形在使用所留意的比特的区域中是脉冲,在其他区域中是平直的。
步骤6:重复上述运算来估计将要应用于S框1的部分密钥。该迭代最大值是26=64次。
步骤7:对剩余的7个S框执行类似操作来获得48比特私有密钥的信息。通过完全检索来获得剩余8比特的密钥信息。尽管该实例用于DES,但是还可以以类似的方式将它应用于Camellia等所使用的8×8的S框。
接下来,将描述高阶差动功率分析。尽管上述差动功率分析了与一个事件有关的样本的信息,但是高阶差动功率分析了与多个事件有关的信息。分布函数D可以对各自样本使用不同的加权,并且能够将该样本分为两个或更多的组。此类函数可以放弃多个预防性对策并且可以在明码文和密码文信息不完整的时候也能分析该保密信息。对于用它取代简单平均值是行而有效的,另一种处理用于具有典型统计性质的样本。
当通过参照图1到4所描述的在多级(16级)的转换处理执行密码处理时,每级的处理结果(即中间数据)只在存储器中存储一次,然后在下一级处理开始时从该寄存器中导出该处理结果。也就是说,重复执行向寄存器中存储中间数据和从寄存器中导出中间数据的操作。
参看图5,将描述具体处理。图5显示具有S框204的F函数的实例以及具有寄存器207和208作为中间数据存储单元的密码处理设备的结构的实例。
当参考图1到4所描述的在多级(16级)执行转换处理的时候,在寄存器207和208中存储在每个处理级生成的中间数据,并在下一处理级时,从寄存器207和208中导出这些中间数据来执行处理。
图5(a)相对应于图2中所显示的转换处理单元,图5(b)显示了转换处理单元和作为中间数据存储单元的寄存器的细节。在L寄存器211和R寄存器212中存储前级处理结果,即L(n-1)和R(n-1),然后将R寄存器中的32比特数据输入到F函数单元200。在置换单元201中,对32比特数据进行扩展/置换来获得48比特数据。置换单元201对应于图3中所显示的置换单元171。
对于置换单元201的输出,从密钥次序表单元提供密钥(k(n))202,在异或(XOR)单元203执行异或处理,并将处理结果输入到S框204。S框执行非线性转换,并且对于S框204的输出,置换单元205执行诸如比特交换那样的置换处理。其后在异或(XOR)单元206,使置换结果与L寄存器211中存储的值进行一次异或处理。在R存储器212和L存储器211中存储异或处理的结果。在下一级处理时导出该存储数据来重复类似处理。
在诸如图5中所示的不考虑有关简单功率分析、差动功率分析和高阶差动功率分析的对策的实施中,在寄存器中直接存储F函数单元200的输出,并且通过从寄存器导出数据并根据所导出的数据来执行在后续级的处理。
执行这些处理的设备是一种由晶体管构成的逻辑电路,如前面所描述的,它假定功率与执行算法运算和所使用的数据值相关。例如,在寄存器中写入数据0和在寄存器中写入数据1时使用差动耗损功率。因而有可能通过监视该设备的耗损功率中的变化来分析保密信息,该设备重复执行与寄存器相关的中间数据读写操作。
图6显示将被用作执行密码处理的设备的IC模块300的结构的实例。例如,可以由PC、IC卡、阅读器/记录器或其他各种信息处理装置来执行上述密码处理。可以在这些不同的装置中装配图6中所示的IC模块300。
图6中所显示的CPU(中央处理单元)301是用于开始和结束密码处理、根据密码处理程序执行每个处理、控制数据发送/接收、控制在各自的组成单元之间的数据传递、在存储器(寄存器)302中存储数据、从存储器(寄存器)302中读取数据并执行其他多种处理的处理器。由时钟信号产生单元310生成的时钟信号来控制处理器将执行的多种处理的执行定时。
存储器(寄存器)302由ROM(只读存储器)和RAM(随机存取存储器)构成,ROM用于存储将要由CPU 301执行的程序或作为算法运算参数的固定数据,RAM将用作存储对于CPU 301要进行的处理而执行的程序的存储区域或工作区域等。存储器(寄存器)302还包括用于存储上述中间数据的存储区域。存储器302可以用作对密码处理而言所必需的密钥数据等的存储区域。
随机数产生单元303执行生成必需随机数(例如,对于生成密码处理必需的密钥而言是必需的)的处理。
发送/接收单元304是用于执行与外部进行数据通信的数据通信处理单元(例如,执行与诸如阅读器/记录器那样IC模块的数据通信),输出在IC模块内生成的密码文或从诸如阅读器/记录器那样外部装置输入数据。
如前面参照图5所描述的,在寄存器内存储密码处理期间所生成的中间数据,并从寄存器中读取这些数据用于接下来的处理。由具有一恒定周期的时钟信号来控制这些数据读写的处理定时。
即如图7所示,时钟信号产生单元310生成具有一恒定周期的时钟信号,并将其提供到作为处理器的CPU 301。CPU 301执行与存储器(寄存器)302相关的数据写和数据读处理。
如图8所示,由时钟信号产生单元310生成的时钟信号是具有一恒定周期的时钟周期的数字波形信号。例如,CPU 301执行与存储器(寄存器)302相关的写数据处理以及与存储器(寄存器)302相关的读数据处理。
由于时钟信号产生单元310生成的时钟信号的时间间隔是常数,所以通过测量耗损功率、获取诸如加密密钥和解密密钥那样的保密信息的密码分析方法可以有效地执行。即通过监控随时间流逝的耗损功率中的变化,可以分析与寄存器相关的数据存储定时以及多种处理定时。
本发明消除了与根据上述规则处理定时执行的处理所导致的攻击相关的缺点。在本发明配置中,不直接把时钟信号本身用作处理执行定时,而以随机数为基础生成调制时钟信号作为随机处理执行定时控制信号。
图9显示作为密码处理执行设备的IC模块500结构的实例。图9中所显示的CPU(中央处理单元)501用作数据处理单元,而且它是用于开始和结果密码处理、根据密码处理程序执行每个处理、控制数据发送/接收、控制在各自的组成单元之间的数据传送、在存储器(寄存器)502中存储数据、从存储器(寄存器)502中读取数据并执行各种处理的处理器。由调制时钟信号产生单元530生成的调制时钟信号来控制将要由处理器执行的多种处理的执行定时。
调制时钟信号产生单元530接收来自时钟信号产生单元510的具有恒定周期的正常时钟信号以及由随机数信号产生单元520生成的随机数信号,并从这两个信号生成调制时钟信号。调制时钟信号产生单元530具有计数器540,并根据该计数器测量处理延迟时间是否比预定可允许延迟时间短。如果处理延迟时间比可允许延迟时间短,则把以随机数信号为基础的调制时钟信号输出到CPU 501,并且在该延迟变成可允许延迟时间的上限时,把具有恒定周期的正常时钟信号输出到CPU 501。利用这些处理过程来控制处理执行定时。以后将详细描述这些处理的细节。
存储器(寄存器)502由ROM(只读存储器)和RAM(随机存取存储器)构成,ROM用于存储将要由CPU 501执行的程序或作为算法运算参数的固定数据,RAM将用作存储对于CPU 501要进行的处理而执行的程序的存储区域或工作区域等。存储器(寄存器)502还包括用于存储上述中间数据的存储区域。存储器502可以用作对密钥数据等对密码处理而言所必需的数据的存储区域。该用于保密数据等的存储区域优先由具有防止篡改结构的存储器组成。
随机数产生单元503执行生成必需随机数(例如,对于生成密码处理必需的密钥而言是必需的)的处理。
发送/接收单元504是用于执行与外部进行数据通信的数据通信处理单元(例如,执行与诸如阅读器/记录器那样IC模块的数据通信),输出在IC模块内生成的密码文或从诸如阅读器/记录器那样外部装置输入数据。
在该实施例的结构中,根据调制时钟信号产生单元530生成的调制时钟信号来确定将要由作为数据处理单元的CPU 501执行的诸如与存储器(寄存器)502相关的数据存储处理和与存储器(寄存器)502相关的数据读取处理那样的各种处理的定时。
参看图10A到10E,将描述将要由调制时钟信号产生单元530生成的调制时钟信号。调制时钟信号产生单元530接收来自时钟信号产生单元510的具有恒定周期的正常时钟信号以及由随机数信号产生单元520生成的随机数信号,并且从这两个信号生成调制时钟信号。
图10A显示从时钟信号产生单元510输入的具有恒定周期的正常时钟信号。在图10B中显示了由随机数信号产生单元520生成的随机数的实例,并且在图10C中显示了以该随机数为基础生成的随机数信号。
在图10B中显示了随机数[110011101101]的实例。在图10C中的随机数信号是在随机数[1]处取[高]并在随机数[0]处取[低]的信号。由随机数产生单元520随机生成这种随机数,而且在图10C中的随机数信号是以随机生成的随机数为基础的信号集合。
调制时钟信号产生单元530接收图10A中所示来自时钟信号产生单元510的具有恒定周期的正常时钟信号和图10C中所示来自随机数信号产生单元520的随机数信号,并生成图10E中所示来自这两个信号的调制时钟信号,并输出该调制时钟信号作为用于处理定时的控制信号。把各种处理定时设置为图10E中所示的调制时钟信号上升沿(1)到(5)。
图10E中所示的前一半调制时钟信号是在图10C中的随机数信号,它的后一半调制时钟信号是与图10A中的时钟信号相对应的信号。调制时钟信号产生单元530具有计数器540,计数器540测量根据图10C中的随机数信号执行处理时的延迟。即,相对于在图10A中基于正常时钟信号的处理,计算由基于图10C中的随机数信号的处理生成的该延迟。如果该延迟比预设可允许延迟时间短,输出图10C中的随机数信号作为调制时钟信号,并且在延迟到达预设可允许延迟时间的上限时,输出图10A中的正常时钟信号作为调制时间信号。通过这些处理,可以防止过度的处理延迟并可以保证在预定周期内完成处理。
在图10A到10E所示的实例中,设置最大可允许延迟时间为计数器的值=4。即,输出图10C中的随机数信号作为调制时钟信号直到相对于图10A中的正常时钟信号图10C中随机数信号的定时所生成的延迟数变成4为止,并且在延迟达到4时,输出图10A中的正常时钟信号作为调制时钟信号。
将图10D计数器的初始状态设置为[0],并且当在图10A中正常时钟信号的上升沿或下降沿的数量与图10C中随机数信号的上升沿或下降沿的数量之间生成差值时,对计数器进行递增计数。在该图所示的实例中,在每一个点(a)、(c)、(e)和(f)处,图10A中的正常时钟信号生成上升沿或下降沿,反之在图10C中的随机数信号并不生成上升沿或下降沿,而且计数器540在每个点进行递增计数。
在图10A到10E所示的实例中,设置最大可允许延迟时间为计数器的值=4。如图10E中所示,由于在点(f)处计数器的计数值是4,则输出图10C中的随机数信号作为截止到点(f)的调制时钟信号,并且在延迟达到预设可允许延迟时间的上限时,即在计数值=4时,输出图10A中的正常时钟信号作为调制时钟信号。通过这些处理,可以将处理延迟抑制到时钟数=4(当把处理延迟转换成正常时钟数量的时侯)。因此,可以防止过度的处理延迟并且可以保证在预定期间内完成处理。
参看图11,来描述根据调制时钟信号在寄存器中写数据和从寄存器中读数据的处理。
在参照图1到5所描述的具有多级循环函数单元的每个级以及在下一级处理开始时间时,以S框输出为基础在数据存储处理中重复执行在存储器(寄存器)502中写数据或从存储器(寄存器)502中读数据的处理。
根据调制时钟信号产生单元530生成的调制时钟信号来确定对这些处理的定时。CPU 501获得由调制时钟信号产生单元530生成的调制时钟信号,并在由输入调制时钟信号所确定的处理定时中(即在图10E中所示的点(1)到(5))执行与存储器(寄存器)502相关的读数据处理或与存储器(寄存器)502相关的写数据处理。
调制时钟信号产生单元530接收图10A中所示由时钟信号产生单元510提供的具有恒定周期的正常时钟信号以及图10C中所示的随机数信号,并根据这两个信号生成图10E中所示的调制时钟信号。
调制时钟信号产生单元530具有计数器540,并通过使用计数器540来测量在根据图10C的随机数信号执行处理时的延迟。如果延迟比预设可允许延迟时间短,则输出图10C的随机数信号作为调制时钟信号,并在该延迟达到预设可允许延迟时间的上限时,将图10A的正常时钟信号作为调制时钟信号提供给CPU 501,CPU 501用作数据处理单元。CPU 501基于从调制时钟信号产生单元530输入的调制时钟信号,在定时控制的情况下执行处理。该延迟时间计数处理防止过度的处理延迟并保证在预定期间内完成处理。
图12是举例说明将由调制时钟信号产生单元530执行的生成并输出调制时钟信号的处理的流程图。参看流程图,来描述调制时钟信号产生单元530的处理过程。
在步骤S101,调制时钟信号产生单元接收具有恒定周期的正常时钟信号(参看图10A)和随机数信号(参看图10C)。
在步骤S102,以随机数信号(参看图10C)为基础生成调制时钟信号,而且调制时钟信号产生单元中的计数器开始计数相对于正常时钟信号的随机数信号的延迟(参看图10D)。
在步骤S103,判断由计数器的计数所确定的延迟量是否比预设可允许最大延迟时间短。在图10A到10E中所示的实例中,设置可允许最大延迟时间为计数值=4。
如果延迟量比预设可允许最大延迟时间短(在步骤S103判断为:是),则流程前进到步骤S104,在这里输出随机数信号作为调制时钟信号。如果延迟量到达预设可允许最大延迟时间(在步骤S103判断为:否),则流程前进到步骤S105,在这里输出正常时钟信号作为调制时钟信号。
如上所述,根据本发明的结构,例如,通过采用以随机数为基础生成的调制时钟信号来设置处理定时,使得根据调制时钟信号控制在寄存器中存储中间数据或从寄存器中读出数据的处理。因此,不执行由规则时钟所进行的处理,从而有可能对以沿时间轴的耗损功率为基础的密码分析增加阻力,并提供具有高保密性水平的密码处理。
此外,根据本发明的结构,在随机数信号的控制下通过计数器计算延迟量,然后在延迟时间到达可允许最大延迟时间之后,输出正常时钟信号来执行由正常时钟信号设置的定时处理。因此,可以使系统实现能够防止过度延迟,保证在预定期间内完成处理,并且甚至在需要具有高速处理的系统中也不生成处理错误。
图13显示了根据本发明的各个密码处理装置的另一个作为数据处理单元的转换处理单元的数据存储器结构的特定配置以及作为数据存储单元的寄存器的实例。在图13中所示本发明的密码处理装置中,为了对付上述简单功率分析、差动功率分析以及高阶差动功率分析,用金属线把以S框604的输出为基础的F函数单元600的输出分支为两个输出。不改变其值的一个输出被输入到第一存储单元610,并在R寄存器612和L寄存器611中存储该输出。另一个输出被输入到第二数据存储单元620,然后由反向器621和622对该输出值进行反向之后,在R′寄存器622和L′寄存器632中存储该反向的输出值。
在寄存器中存储比特值时耗损的功率与S框604的输出的汉明权成正比(更严格地说是具有高相关性)。由于通过分支到第一数据存储单元610的R寄存器612和L寄存器611来存储数据,而且与此同时不改变输出值,以及通过分支到第二数据存储单元620的R′寄存器622和L′寄存器632来存储数据,而且与此同时对输出值进行反向,所以可以使两个汉明权的和总是为常数。这变得难于通过监视上述设备的耗损功率中的变化来获得与保密信息相关的汉明权信息,而且对以耗损功率变化为基础的分析增加了难度。
优选的是在没有偏移的存储时刻并行地在各个寄存器中存储非反向数据和反向数据。通过该定时控制,变得难于获得与沿时间轴的设备耗损功率中的变化相关的汉明权信息。
将以图13中所示的结构为基础对该处理进行描述。图13中的结构显示作为中间数据存储单元的寄存器以及包括F函数的转换处理单元,该F函数用于在密码处理的多个级上重复执行转换处理。
在第一数据存储单元610的L寄存器611和R寄存器612中存储在前级(n-1级)的处理结果,即L(n-1)和R(n-1),将R寄存器的32比特数据输入到F函数单元600,并在置换单元601中将32比特扩展/转换成48比特。该置换单元601对应于图3中所示的置换单元171。
把来自密钥次序表单元的密钥(k(n))602应用到置换单元601的输出,而且异或(XOR)单元603执行异或算法运算来输入该处理结果到S框604。S框604执行非线性转换,使S框604的输出在置换单元605中经受诸如比特交换那样的置换处理。此后,在异或(XOR)单元606,使该置换结果与第一数据存储单元610的L寄存器611中所存储的值进行异或算法运算。
在第一数据存储单元610的R寄存器612和L寄存器611中存储该结果。在下一级处理提取这些存储的数据来重复类似的处理。同样在该实施例的配置中,反向器621对来自S框604并经由置换单元605的输出值进行反向,并在第二数据存储单元620的R′寄存器622中存储该反向的输出值。R′寄存器622中所存储的比特数据的值是从R寄存器612中存储的32比特数据反向得到的32比特数据。
而且,与第一数据存储单元610的L存储器611中所存储的32比特数据相一致,反向器631对该比特数据进行反向并在第二数据存储单元620的L′寄存器632中存储该反向的比特数据。L′寄存器632中所存储的比特数据的值是从L寄存器611中所存储的32比特数据反向得到的32比特数据。
在下一级处理不使用第二数据存储单元620的R′寄存器622和L′寄存器632中所存储的比特数据。
如上所述,根据本实施例的结构,在第一数据存储单元610的R寄存器612和L存储器611中直接存储来自S框604并经由置换单元605的输出值,在第二数据存储单元620的R′寄存器622和L′寄存器632中存储该输出值的反向数据。因此,有可能在寄存器存储处理期间保持两个汉明权的和总是为常数。这变得难于获得与保密信息相关的汉明权信息,而且增加了对以耗损功率变化为基础的分析难度。
接下来,将描述本发明第三实施例的结构。图14显示了根据实施例所述的转换处理单元的特定结构以及密码处理装置的寄存器的数据存储结构的实例。在图14中所示的本发明的密码处理装置的结构中,为了对付上述简单功率分析、差动功率分析以及高阶差动功率分析,用金属线把以S框704的输出为基础的F函数单元700的输出分支为两个输出。类似于第二实施例,两个输出被输入到第一数据存储单元710和第二数据存储单元720。
在第三实施例中,可以有选择地把反向数据或非反向数据输入到第一数据存储单元7 10和第二数据存储单元720。如果输入到第一数据存储单元710的值是非反向数据,那么输入到第二数据存储单元720的值是反向数据。如果输入到第一数据存储单元710的值是反向数据,那么输入到第二数据存储单元720的值是非反向数据。
在第一数据存储单元710和第二数据存储单元720的每一个寄存器输入级上提供开关751、752、762和772,使得经由反向器721、731、761和771能够设置在寄存器中存储反向数据、或设置在寄存器中存储非反向数据而与反向器没有牵连。
输入到第一数据存储单元710和第二数据存储单元720的每个寄存器中的比特数据是32比特数据。可以用这两种配置:把所有比特的反向比特数据或非反向比特数据输入到寄存器;或者可以生成在32比特数据的每一个第二比特进行反向和非反向的比特数据并输入该比特数据到寄存器。
也就是说,例如,如果以来自F函数装置700的输出为基础从异或(XOR)单元706输出的比特列是[01001011...],如果把所有比特的非反向数据输入到第一数据存储单元710的R寄存器712中,并且如果在第二数据寄存单元720的R′寄存器722中存储该反向数据,那么输入到第一数据存储单元710的R寄存器712的值与输出比特列[01001011...]的值相同,而且输入到第二数据寄存单元720的R′寄存器722的值是反向比特列[10110100...]。
如果以来自F函数装置700的输出为基础从异或(XOR)单元706输出的比特列是[01001011...],如果把在32比特的每一个第二比特进行反向和非反向的数据输入到第一数据存储单元710的R寄存器712中,而且如果在第二数据寄存单元720的R′寄存器722中存储具有从输入到R寄存器712的比特数据反向的模式的比特数据,那么输入到第一数据存储单元710的R寄存器712的值与输入到第二数据寄存单元720的R′寄存器722的值如下所示:
输出比特列:     [01001011...]
R寄存器存储值:  [00011110...]
R′寄存器存储值:[11100001...]
在以上描述中,带有下横线的数据是输出值的反向比特数据。
在第一数据存储单元和第二数据存储单元中存储所有比特数据的反向数据和非反向数据的组合的情况下,或者在第一数据存储单元和第二数据存储单元中存储在每一个第二比特进行反向和非反向的比特数据的组合的情况中,在第一数据存储单元和第二数据存储单元中存储在每一个32比特的比特对0和1、或1和0。
在第一数据存储单元710的L寄存器711中和第二数据存储单元720的L′寄存器732中还存储在每一个32比特的比特对0和1、或1和0。
如前面所描述的,在寄存器中存储比特值时耗损的功率与S框的输出的汉明权成正比。由于数对0和1、或1和0通过第一数据存储单元710的R寄存器712和L寄存器711以及第二存储单元720的R′寄存器722和L′寄存器732的分支进行存储,则可以使汉明权的和总是为常数。这变得难于通过监视设备的耗损功率中的变化来获得汉明权信息,而且增加了对于以耗损功率变化为基础上的分析难度。
在该实施例中,第一数据存储单元710的寄存器711和712中所存储的数据用于下一级处理。因而,如果在这些寄存器中存储反向比特数据,那么在为了下一级处理而输出该数据时再一次执行反向处理是必需的。所以,在第一数据存储单元710的R寄存器712和L寄存器711的输出级提供反向器781和791以及开关782和792。
如果存储在第一数据存储单元710的R寄存器711和L寄存器712中的数据是反向数据,那么输出经由反向器781和791再一次进行反向的比特数据作为将要应用于下一级处理的值。通过该处理,能够获得与不执行比特数据反向处理的情况完全相同的输出结果。
将描述以图14中所示的结构为基础的处理。类似于图13,图14中的结构显示作为中间数据存储单元的寄存器以及包括F函数的转换处理单元,该F函数用于在密码处理的多个级重复执行转换处理。
在第一数据存储单元710的L寄存器711和R寄存器712中存储在前级(n-1级)基于处理结果的比特数据。由预设控制程序存储该值为反向或非反向的比特。
如果该32比特数据是反向数据,在开关782的控制下经由反向器781将R寄存器712的32比特数据输入到F函数单元700,反之如果该存储器比特是非反向数据,将该数据输入到F函数单元700而与反向器781没有牵连。
在F函数单元700的置换单元701中,把32比特扩展/转换成48比特。置换单元701对应于图3中所示的置换单元171。把来自密钥次序表单元的密钥(k(n))702应用到置换单元701的输出,而且异或(XOR)单元703执行异或算法运算来把处理结果输入到S框704。S框704执行非线性转换,使S框704的输出在置换单元705经受诸如比特交换那样置换处理。此后,在异或(XOR)单元706,使该置换结果与第一数据存储单元710的L寄存器711中所存储的值进行异或算法运算。如果该存储数据是反向比特,在反向器791的控制下经由反向器791将L寄存器711中的32比特数据输入异或(XOR)单元706,反之如果该存储数据是非反向比特,将该比特数据输入到异或(XOR)单元706而不牵连反向器791。
在第一数据存储单元710的R寄存器712和L寄存器711中存储该结果作为反向比特或非反向比特。在第二数据存储单元720的R′寄存器722和L′寄存器732中存储具有该存储比特的反向模式的比特数据。在下一级处理不使用第二数据存储单元720的R′寄存器722和L′寄存器732中所存储的比特数据。
在上述实施例中已经描述了将应用于DES密码方案算法的实例。本发明还适用于将要取代DES的以下一代公共密钥密码而著称的AES(高级加密标准)。AES是运用具有比DES的64比特还要长的、比特长度为128、192和256比特的密钥的密码处理,而且AES提供了强大的保密性。
AES可以通过使用独立不同于128、192和256比特的密钥长度和块长度来执行处理,而且重复执行多个类似于上述DES的循环处理。
如图15所示,在AES密码处理的结构中,对输入明码文801执行运用前期密钥(K-pre)802的初始置换(前白化(Pre-whitening))之后,由多个循环所构成的AES密码处理单元803执行AES密码处理,而且最后执行最终置换(后白化(Post-whitening))来输出密码文,该最终置换运用了后期密钥(K-post)804。AES加密处理是具有对分析增加难度(即高保密性)的密码处理。
同样在该AES密码处理中,类似于上述结构的生成反向数据并在寄存器中存储反向数据的结构用于在AES密码处理的执行级上生成的中间数据的存储。因而,能够在寄存器存储处理中总是保持汉明权的和为常数。因此,这变得更难于通过监视在设备的耗损功率中的变化来获得汉明权信息,以致可以增加以耗损功率变化为基础进行分析的难度。
最后,在图16中显示作为用于执行上述密码处理的设备的IC模块900的结构的实例。例如,可以由PC、IC卡、阅读器/记录器或其他各种信息处理装置来执行上述密码处理。可以在这些不同的机器中实现如图16中所示的IC模块900。
图16中所显示的CPU(中央处理单元)901是用于开始和结束密码处理、控制数据发送/接收、控制在各自的组成单元之间的数据传递、并且执行其他各种程序的处理器。存储器902由ROM(只读存储器)和RAM(随机存取存储器)构成,ROM用于存储由CPU 901执行的程序或作为计算运算参数的固定数据,RAM将用作存储对于CPU 901要进行的处理而执行的程序的存储区域或工作区域。存储器902还包括用于存储上述中间数据的存储区域。存储器902可用作密码处理所必需的密钥数据等的存储区域。该用于数据等的存储区域优选地由具有防止篡改结构的存储器组成。
例如,密码处理单元903根据上述DES和AES执行加密处理、解密处理等。尽管举例来说,把离散模块用作密码处理组件,而没有提供独立的加密模块,但是例如可以采用这种结构:其中在ROM中存储密码处理程序,而且CPU 901读取并执行在ROM中所存储的每一个程序。
随机数产生单元904执行生成随机数的处理,所述随机数对于生成密码处理必需的密钥来说是必需的。
发送/接收单元905是用于执行与外部进行数据通信的数据通信处理单元(例如,执行与诸如阅读器/记录器那样IC模块的数据通信),执行输出该IC模块内所产生的密码文或从诸如记录器/阅读器那样外部机器输入数据的处理。
在上述实施例中,尽管将计数器用作必备单元,但是如果无需考虑延迟量和性能下降的话,没有必要用计数器来测量延迟量。因而,可以使用这样一种结构,其中不提供计数器,而且总是根据以随机数为基础生成的调制时钟信号来输出以随机数信号为基础生成的调制时钟信号来执行处理。
已经参照特定实施例详细地描述了本发明。然而,很明显本领域的技术人员能够不脱离本发明的主旨而进行修改和替换。即,通过使用举例说明的实例公开了本发明,但是本发明并不受到这些公开的实施例的限制。为了判断本发明的主旨,应该考虑在本说明书的开头所描述的权利要求书。
可以由硬件、软件或两者的组合结构来执行本说明书中所描述的一系列处理过程。如果由软件执行处理过程,则在专用硬件中内置的计算机存储器中安装记录处理步骤的程序并执行该程序,或者在能够执行不同处理的通用计算机存储器中安装该程序并执行该程序。
例如,可以预先在作为记录介质的硬盘或ROM(只读存储器)中存储该程序。另外,可以在可移动记录介质中暂时或永久地存储该程序,例如软盘、CD-ROM(光盘只读存储器)、MO(磁光)磁盘、DVD(数字化视频光盘)、磁盘和半导体存储器。可以提供这类可移动记录介质作为所谓的封装软件。
可以在计算机中从上述可移动记录介质安装该程序,从下载网点无线传输该程序到计算机,或经由诸如LAN(局域网)和因特网那样的网络来有线传输该程序到计算机。计算机接收以这种方式传输的程序并在诸如硬盘那样的内置记录介质中安装该程序。
除了能不仅仅根据该描述而连续定时执行说明书中所描述的各种处理外,还可以并行执行或根据执行处理的装置的处理能力而单独执行或在必要的时侯执行上述各种处理。说明书中的系统意指多个装置的逻辑组合结构,且不受系统的限制,在该系统中每一个装置具有适应于相同外壳的一种结构。
本发明适用于一种用于执行验证处理和密码处理的设备,例如,具有密码处理模块的IC卡或其他密码处理装置。通过采用本发明的配置,通过功率分析将变得难于在IC模块中篡改密码处理密钥和算法,防止过度的处理延迟。本发明的配置可以提供具有高保密性水平的密码处理执行函数的设备或装置。

密码处理装置、密码处理方法以及计算机程序.pdf_第1页
第1页 / 共40页
密码处理装置、密码处理方法以及计算机程序.pdf_第2页
第2页 / 共40页
密码处理装置、密码处理方法以及计算机程序.pdf_第3页
第3页 / 共40页
点击查看更多>>
资源描述

《密码处理装置、密码处理方法以及计算机程序.pdf》由会员分享,可在线阅读,更多相关《密码处理装置、密码处理方法以及计算机程序.pdf(40页珍藏版)》请在专利查询网上搜索。

提供一种密码处理装置、密码处理方法以及计算机程序。根据本发明所述的结构,调制时钟信号是根据以随机数为基础的信号生成,而且根据该调制时钟信号确定数据处理定时以执行数据处理。因此,使随着加密和解密数据的密码处理装置的运行时间、通过测量耗损功率而进行的加密密钥、解密密钥等的保密信息分析(即基于功率分析的密码分析)变得困难,因此实现具有高保密性水平的密码处理装置和方法。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 教育;密码术;显示;广告;印鉴


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1