CN100356342C - 信息处理装置 - Google Patents

信息处理装置 Download PDF

Info

Publication number
CN100356342C
CN100356342C CNB2004100926745A CN200410092674A CN100356342C CN 100356342 C CN100356342 C CN 100356342C CN B2004100926745 A CNB2004100926745 A CN B2004100926745A CN 200410092674 A CN200410092674 A CN 200410092674A CN 100356342 C CN100356342 C CN 100356342C
Authority
CN
China
Prior art keywords
data
mentioned
converting apparatus
random number
key
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
Application number
CNB2004100926745A
Other languages
English (en)
Other versions
CN1619588A (zh
Inventor
神永正博
渡边高志
远藤隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Renesas Electronics Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from JP2003387524A external-priority patent/JP2005149262A/ja
Priority claimed from JP2004027550A external-priority patent/JP4435593B2/ja
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Publication of CN1619588A publication Critical patent/CN1619588A/zh
Application granted granted Critical
Publication of CN100356342C publication Critical patent/CN100356342C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Abstract

本发明提供信息处理装置。本发明的目的位于提供给具有高安全性的IC卡等的抗干预的信息处理装置。本发明,可通过提供具有存放程序的程序存放部,存放数据的存储器,按照程序进行规定的处理的运算装置,连接运算装置和存储器的数据总线,运算装置具有将在运算中使用的逻辑地址及对应逻辑地址每次运算或信息处理装置的每次起动时随机地设定的上述存储器的物理地址进行变换的变换部的信息处理装置来解决上述课题。

Description

信息处理装置
技术领域
本发明涉及具有高安全性的抗干预信息处理装置,特别涉及可应用于IC卡的极有效的技术。
本发明涉及可以防止在信息处理装置中的消耗电力分析及硬件检验而产生的处理信息的读出和分析的抗干扰信息处理装置。另外还涉及可以检出在数据记录和读出时的攻击所引起的数据变化和篡改的故障检出或可以自动恢复数据变化和篡改的容错抗干预信息处理装置。特别涉及这种功能是必要条件的以IC卡(智能卡)为代表的单片集成的信息处理装置。
背景技术
IC卡是用来保持不容许随便改写的个人信息,对使用作为秘密信息的密钥的数据进行加密及对密文进行解密的装置。IC卡本身不具备电源。接触式的IC卡在插入到IC卡用的读写器时,接受供电,就可以动作。非接触式的IC卡接收从读写器发出的电波,通过利用电磁感应原理产生电力而动作。在IC卡可以动作时,接收从读写器发送的命令并按照该命令进行数据传送等的处理。因为接触式和非接触式IC卡,其本身本质上是同样的IC芯片,所以下面只对接触式的IC卡予以说明。
IC卡的基本概念,如图1所示,是在卡101上装载IC卡用芯片102。如图所示,一般IC卡在规定的位置具有供电端子Vcc、接地端子GND、复位端子RST、输入输出端子I/O以及时钟端子CLK。此端子的位置,由ISO7816的标准确定。通过这些个端子进行从读写器供电及与读写器的数据通信。
装载于IC卡上的半导体芯片的构成,基本上与通常的微型计算机构成相同。图2为示出装载于IC卡上的半导体芯片的基本构成的框图。如图2所示,卡部件用的半导体芯片具有中央处理装置(CPU)201、存储装置204、输入输出(I/O)端口207、协同处理器202。此处,存储装置204具有PA(程序区)及DA(数据区)。
另外,根据系统的不同也有不具有协同处理器的场合。CPU201,是进行逻辑运算及算术运算等的装置,存储装置204是存储程序及数据的装置。输入输出端口是与读写器进行通信的装置。协同处理器是高速进行加密处理本身或加密处理所必需的运算的装置。比如,有用来进行RSA加密的模数运算的特别的运算装置及进行DES加密的处理的装置等。在IC卡用处理器中,不具有协同处理器的也很多。数据总线203是连接各装置的总线。
存储装置204有ROM(只读存储器)及RAM(随机存储器)、EEPROM(电可擦可编程只读存储器)等。ROM是存储信息不可改变的存储器,主要是存放程序的存储器。RAM是可以自由改写的存储器,在供电中断时存储的内容消失。EEPROM是即使供电中断其内容也可以保持的存储器。此EEPROM在需要改写存储信息,将IC卡从读写器中拔出也可以保持的数据时使用。比如,可将在预付卡中的使用金额保持于EEPROM中。
在以上述IC卡为代表的微型计算机等的信息处理装置中,有时对所希望的信息进行保持及使用作为秘密信息的密钥对要隐匿的所希望的数据进行加密及解密,以使尝试对信息处理装置进行非法侵入的攻击者为首甚至正规用户也不能自由地读写。
然而,通过对信息处理装置的消耗电力及发射电磁波的观测,有可能推定在信息处理装置内部处理的信息。
作为其对策,有使数据的存放位置改变并且还通过对数据加密和解密而进行保存的方法及改变数据存放位置以使不能从改变前的存放位置预测改变后的存放位置的数据存放位置改变方法(比如,参照专利文献1(日本专利特开2003-134103号公报))。
所谓对某一系统或装置的“攻击者”,指的是利用设计者意图以外的方法对系统及装置进行的分析及攻击,取出原本对外部不公开的信息的行为者。在由IC卡所代表的具有高安全性的微型计算机芯片中,有时对所希望的信息进行保持及使用作为秘密信息的密钥对要隐匿的所希望的数据进行加密及解密,以使攻击者为首甚至正规用户也不能自由地读写(比如,参照专利文献1)。
另外,在专利文献2(日本专利特表2000-507072号公报)公开了内容为在数字接收机,比如,MPEG-2数字电视接收机的解密机和系统解密器之间,将第1数据总线的N个并行位线的各个的N位的加密位流的位次序加扰而产生N位宽度的经过加扰的加密文位流,对加扰的N位的加密位流的位次序进行解扰而产生与原来的加密文位流相同的解扰的加密位流。
微型计算机的基本构成,如图10所示,具有中央运算装置1001、存储装置1004、而且用来进行各部分信息的交换的输入输出端口1007以及连接这些的信号线1003。中央运算装置1001是进行逻辑运算和算术运算等的装置,存储装置1004是存放程序及数据的装置。存储装置1004,比如,由ROM(只读存储器)及RAM(随机存储器)、EEPROM(电可擦可编程只读存储器)、FRAM(铁磁随机存储器)等构成。ROM是内容固定而不可改变的存储器,主要是存放程序的存储器。RAM是可以自由改写的存储器,在供电中断时存储的内容消失。EEPROM、FRAM是即使供电中断其内容也可以保持的存储器。
例如,在图2示出在接触型IC卡中提供的计算机主体。在图2中示出将此半导体装置的芯片安装到塑料卡上时的端子配置。该计算机的主体,是横置于卡中央的称为COT的封装形态的IC芯片1102。在图11中示出端子配置的示例。就是说,IC卡具有Vcc(供电电源)、GND(接地)、RST(复位)、I/O(输入输出)以及CLK(时钟)的端子。上述芯片,通过从外部,比如,终端机,供给的这些信号工作。上述终端机本身基本上可以使用一般的卡/系统。
作为对IC卡所代表的微型计算机的攻击方法,公知的有在非专利文献2(W.Rankl,W.Effing,“Smart Card Handbook SecondEdition”,John Wiley & Sons,LTD.p.422)中记载的差分电力分析(DPA)。DPA是通过对微型计算机加密处理时的消耗电力进行分析,确定在加密处理中使用的密钥的攻击。消耗电力可以通过在图2的Vcc和GND之间设置电阻并观察其两端的电压而测定。关于消耗电力的测定方法在非专利文献2中也记载有一个例子。
作为用来防止消耗电力分析攻击的技术,在专利文献3(日本专利特开2001-5731号公报)中公开了将数据在信息处理装置间加密进行收发的方式。由于通过使用该方式,可使数据传送时的消耗电力和传送数据之间的相关性低或没有,消耗电力分析攻击变得明显困难。
另外,在专利文献4(日本专利特开2003-152702号公报)中,作为即使数据的值相同也可使消耗电流以不能预测的方法变化的方法,公开了一种通过将数据加密并使密钥在短期间内变化而使数据的真值和电气表现的关联性变成不可能预测的技术。
另一方面,公知有根据对FIB加工等进行的物理改造等的方法,通过有意使处理数据改变而取出秘密密钥的攻击。比如,通过在RSA加密的处理中使处理数据改变,而取出秘密密钥的攻击,作为非专利文献3(D.Boneh,R.A.Demillo,R.J.Lipton,“On the Importance ofChecking Cryptographic Protocols for Faults”,Proc.ofEUROCRYPT‘97,pp.37-51,Springer-Verlag,1997)发表,对DES加密的攻击,作为非专利文献4(E.Biham,A.Shamir,“DifferentialFault Analysis of Secret Key Cryptosystems”,Proc.of Crypto‘97,PP.513-525,Springer-Verlag,1997)发表。作为一般的对策,公知的有对同一处理进行次数大于等于2,在其结果一致时就判定处理结果为正确的方法。
非专利文献1:Paul Kocher,Joshua Jaffe,Benjam in Jun,“Differential Power Analysis,”Advances in Cryptography-CRYPTO‘99,pp.389-397,Springer-Verlag,1999
发明内容
本发明可提供具有高安全性的卡部件等的抗干预的信息处理装置。
本发明的技术课题为减小卡部件,比如,IC卡用芯片中的数据处理和消耗电流的关联性。如果减小消耗电流和芯片处理的关联性,从观测到的消耗电流的波形推测IC卡用芯片内的处理及密钥就变得困难。
就是说,本发明可使卡部件等具有高安全性。
IC卡,由于是将程序及重要的信息密闭于IC卡用芯片之中,所以用来进行重要信息的存放及在卡中进行加密处理。历来认为解读IC卡中的加密的难度与解读加密算法的难度相同。然而,通过观测及分析IC卡进行加密处理时的消耗电流,有可能比解读加密算法更容易地推定加密处理的内容及密钥。消耗电流,可通过测定由读写器供给的电流进行观测。其理由如下。
构成IC卡用芯片的CMOS,在输出状态从1变成0或从0变成1时会消耗电流。特别是,在数据总线203中,由于总线驱动器的电流、布线及与布线相连接的晶体管的静电电容,在总线的值从1变成0或从0变成1时会有大电流流过。因此,如果对消耗电流进行观测,就可能了解到在IC卡用芯片中进行何种动作。
图3示出IC卡用芯片的一个循环中的消耗电流的波形。根据所处理的数据的不同,电流波形不同而分别为301或302。这种差别,是由于流过总线203的数据和在中央运算装置201中处理的数据而产生的。
协同处理器202,可与CPU并列地,比如,进行512位的模数运算。因此,可以长时间观测与CPU的消耗电流不同的消耗电流波形。通过观测该协同处理器的特征波形,可以很容易测定协同处理器的动作次数。在协同处理器的动作次数与密钥存在某种关系时,就可能通过动作次数推定密钥。另外,在协同处理器中的运算内容中存在取决于密钥的偏向时,有可能从消耗电流求出该偏向而推定密钥。
消耗电力依赖数据的典型例子是地址总线消耗的电力。地址总线,因为必须一直动作,其控制是静态方式。在静态方式中,不是每次都清除数据,消耗的电力是紧前一个值和现在的值的变化量。所以,比如,在地址(程序计数器)以每次2位变化时:
800C→800E→8010→8012→8014→8016→8018
其消耗电力大致分别与
800C→800E的变化位数=1
800E→8010的变化位数=4
8010→8012的变化位数=1
8012→8014的变化位数=2
8014→8016的变化位数=1
8016→8018的变化位数=3
成比例。此处,地址的值是以16进制数表示的(以下除了特别说明之外,都假设地址是以16进制数表示的)。由于电力消耗是根据二进制发生,以二进制数表示更容易了解。刚才的地址变化序列,因为高位8位不变,只以低位8位表示时如下所示。
00001100→00001110→00010000→00010010→00010100→
00100110→00011000
在连续的二值间进行“异或”运算时,可得到变化量的序列为:
00000010→00011110→00000010→00000110→00000010
→00001110
很容易理解,这些汉明权重与上述变化位数相对应。
在利用此这一性质时,不开封IC芯片通过研究消耗电力的变化就可以非法取出内部信息。特别是,如差分电力分析(DPA:DifferentialPower Analysis),对于多数数据进行统计处理而取出密钥的攻击,即使是在对加密程序的安装方法没有任何知识的场合也是有效的。
作为解决这一问题的方法,可以认为将汉明距离配置成为相等的方法是有效的。然而,一般在IC卡这样的小型器件中,RAM的大小受到严格的限制,在数据数多及数据大时,将汉明距离配置成为完全相等是困难的。
本发明的课题是在使消耗电力分析攻击变得困难的同时,使藉助硬件检验直接读出数据也变得困难,并且还对数据总线中的数据传送中的错误进行检测和校正。就是说,可以提供具有高安全性的信息处理装置。作为该信息处理装置可以举出的有计算机系统,特别是以微型计算机系统为代表例。此外,本发明可以提供具有高安全性的以IC卡(智能卡)为代表的卡部件以及卡/系统。
如果示出本发明的技术课题,那就是减少微型计算机芯片中的数据处理和消耗电力的关联性。另外,还有防止对在芯片内部传送的数据的检验引起的直接读入及篡改。特别是用于进行IC卡对要隐匿的重要信息的存放及在卡内的加密处理及数据的认证处理。这样,之所以将IC卡用于要求高安全性的用途,是因为将程序及重要信息密闭于IC卡芯片中并且实施种种信息隐蔽措施而使盗取秘密数据困难。
历来认为解读IC卡的加密处理与解读加密算法本身的难度相同。然而,令人注目的是通过对IC卡进行加密处理之际的消耗电力的分析,推测加密处理的内容及密钥的攻击方法,比直接解读加密算法的方法容易。
由P.Kocher等提议的称为消耗电力分析的这一方法,是利用在IC卡处理的数据的位状态和消耗电力之间的存在关联性这一点的攻击。所以,如果消耗电力和芯片的处理的关联性小时,从观察到的消耗电力推测IC卡用芯片内的处理及密钥就变得困难。本发明的着眼点就是使微型计算机的消耗电力和处理的数据之间的关联性减小。该手段的主要之点就是将产生消耗电力的差的原因之一的信号线(比如,总线、RAM内的位线、字线等)的充放电变得与原来的数据不同。
下面首先对成为本发明的背景的利用对消耗电力的观测解读处理的可能性予以说明。理解这一点就容易理解本发明的主旨。
上述的消耗电力分析的关键如下。构成IC卡用芯片的CMOS(互补金属氧化物半导体)的门电路在输出状态从1变成0或从0变成1时消耗电力。特别是由于信号线具有大布线电容,门电路在总线的数据值从1变成0或从0变成1时由于其充放电而消耗很大的电力。如果观测这种消耗电力,就可能解读IC卡用芯片中的信息处理的内容。
图3示出IC卡用芯片的一个循环中的消耗电力的时间序列波形。根据处理的数据值的不同,消耗电力的波形不同而分别为301或302。这种对多个消耗电力的波形的差,是由于流过信号线的数据及在中央运算装置中处理的数据等不同而产生的。
现在,IC卡用芯片的信号线的控制方式大体上可分为两种。一种是静态信号线控制方式,还有一种是预充电信号线控制方式。静态信号线控制方式是不对总线保持的数据进行清除的方式。另一方面,预充电信号线控制方式,是为了在每次结束一次处理时清除数据,使信号线的数据全部成为1或0之后,装载下一个数据的控制方式。另外,将预充电变成为信号值的0或1的哪一个,因逻辑电路是正逻辑或负逻辑而异。所以其动作本质不变。
从对上述的基本动作的说明可知,由于此控制方式的不同,消耗电力的波形也不同。由消耗电力的波形的不同,可以判断采用哪一种控制方式。如果了解信号线的控制方式,对于固定的密钥,改变处理的数据,通过对与其相应的消耗电力的变化的观测,可以观测到密钥的位值的影响。此外,通过分析这些消耗电力的波形,可以产生推定密钥的可能性。为了决定消耗电力的具体分析方法,关于作为分析对象的处理方式的信息是必需的,通过对作为现代加密的成果之一的加密算法的公开和标准化,易于得到关于加密方式的信息。
如上所述,关于减少利用总线数据加密的消耗电流和真实数据的相关性的方法,存在由专利文献2公开的技术。专利文献2的方法有(a)在总线的两端设置加密和解密装置,利用同一密钥在发送侧进行加密,而在接收侧进行解密和(b)在与信息处理装置相连接的总线中,在数据发送侧设置加密和解密装置,将利用同一密钥在发送侧进行加密的数据存储于信息处理装置中。在从信息处理装置中读出数据之际,利用先前的密钥进行解密的这样两种方法。(还公开了其他方法,但由于与本发明无关,此处不进行叙述。)
的确,在使用这一方法时,可以减少消耗电力和真实数据的相关性。然而,对于(a),因为是将真实数据对信息处理装置进行数据写入和读出,可以观测在其时产生的取决于真实数据的消耗电力。另外,通过检验可以直接读出解密后的数据。对于(b),在进行由于总线的检验产生的数据的读出时,可以了解存储于信息处理装置中的数据。此时,尽管由于一次发送大量的数据而不能捕捉到全部的数据,在将一部分数据作为标记,读出存储于信息处理装置中的信息时,可以顺序取得一系列的数据。虽然取得的数据是经过加密的,只要利用加密处理的安装方法,判定同一数据是在哪一定时使用,就可以取得密钥。另外,由于密钥是在发送侧和接收侧所共有的,必须准备为此目的专用的总线,大概也必须注意通过对该总线进行检验可以取得密钥这一点。
一方面对消耗电力分析的对策是必需的,另一方面对于利用对总线的直接检验的数据读出的对策是必需的。数据通过IC芯片内部的总线在各模块间收发。通过直接对流过该总线的数据进行检验,可以读入和收发数据。检验是一般在LSI的调试和测试时使用的方法。根据安装方法的不同,有时不需要一次将全部的总线数据读取,对通过一部分布线交换的数据进行观测就足够了。比如,作为安装RSA加密的方式之一公知的有二进制法,在二进制法中,在依次判定在某一定时使用的数据是两种中的任何一种时,最终可以确定密钥。如果是两种判定,最少监视一根总线就可以。所以,只观测一部分布线,也必须不能对加密进行解读。
另外,由于数据是以电学方式进行收发,比如,通过FIB加工将物理布线与GND相连接等等,有可能有意使一部分或全部的数据变化。在攻击者有意瞄准的加密处理定时可进行这种攻击时,如在专利文献3、4中所记载,有可能读入密钥。因此,必须确保通过布线传送的数据的完整性。
本发明可以获得使通过对消耗电力的分析推定微型计算机内部的状态,通过检验总线进行数据的读出及对传送数据进行篡改变得困难的效果。其结果,可以提高对称为消耗电力分析及差分故障分析的加密处理的攻击的抵抗。
在本申请中公开的发明之中,代表性的内容的概要可简单说明如下。
本发明的信息处理装置的特征在于具有对运算装置在运算中使用的逻辑地址和从上述逻辑地址和随机数通过运算决定的上述存储器的物理地址进行变换的变换部。
通过上述构成,可能使数据和地址的关系随机化,减小消耗电力和信息处理装置内的处理的关联性,使信息处理装置内的处理及密钥的推测变得困难。
本发明的信息处理装置的特征在于具有运算装置;存放从上述运算装置发送的数据的存储装置;连接上述运算装置和上述存储装置的(N+r)位的数据总线;随机数生成装置;以及数据变换装置;上述数据变换装置,对上述运算装置发送的N位的数据,将由上述随机数生成装置所生成的r位的随机数组成的数据作为密钥对上述N位的数据加密而生成N位的加密数据,通过连接上述加密数据和上述随机数而生成(N+r)位的数据,并将上述(N+r)位的数据输出到数据总线。
通过上述构成,为了对抗通过对消耗电力的分析推定微型计算机内部的状态,对通过检验总线进行数据的读出及对数据进行篡改的攻击,进行对内部数据的随机化。提供用于此目的的数据变换装置及数据总线构成及信息处理装置构成。
本发明,保持物理地址和由程序指定的地址之间一对一的对应关系原样不变并在适当的定时将其改变。因此,地址不具有连续性,可得到高加扰效果,可减小在信息处理装置内的数据处理和消耗电流的关联性。如果减小消耗电流和芯片的处理的关联性,从观测的消耗电流和波形推测信息处理装置内的处理及密钥就变得困难。
就是说,根据本发明,可以提供具有高安全性的IC卡等的抗干预的信息处理装置。
本发明可以获得使通过对消耗电力的分析推定微型计算机内部的状态,通过检验总线进行数据的读出及对传送数据进行篡改变得困难的效果。其结果,可以提高对称为消耗电力分析及差分故障分析的加密处理的攻击的抵抗。
根据本发明,提供一种信息处理装置,其特征在于包括:  运算装置;存储从上述运算装置所发送的数据的存储装置;连接上述运算装置和上述存储装置的(N+r)位的第一数据总线;随机数生成装置;以及数据变换装置,上述数据变换装置,对上述运算装置发送的N位的数据,将由上述随机数生成装置所生成的r位的随机数组成的数据作为密钥对上述N位的数据加密而生成N位的加密数据,通过连接上述加密数据和上述随机数而生成(N+r)位的数据,并将上述(N+r)位的数据输出到上述第一数据总线。
附图说明
图1为示出IC卡的概观及端子的示例的平面图。
图2为示出微型计算机的基本构成的框图。
图3为示出IC卡的消耗电流的波形的示例的示图。
图4为示出本发明的实施例1的示图。
图5为补充图4的说明的示图。
图6为补充图4的说明的示图。
图7为示出本发明的实施例2的示图。
图8为示出本发明的实施例3之中的地址变化一定的程序的部分的示图。
图9为示出本发明的整体构成的示图。
图10为一般微型计算机的构成图。
图11为一般IC卡(智能卡)的外观。
图12为与微型计算机的两种不同的处理相对应的两种消耗电力的波形。
图13为从CPU向存储装置记录数据D之际的数据变形步骤。
图14为示出对数据D的变形使用反元计算器的场合的装置构成的示图。
图15为示出在数据D的变形之际同时进行键(密钥)数据加法的装置构成图。
图16为基本的数据变换装置。
图17为由键(密钥)加法部和数据变换部所构成的数据变换装置。
图18为具有键(密钥)输入输出总线的数据变换装置。
图19为可从随机数源取得键(密钥)的构成的数据变换装置。
图20为进行数据变换解消的数据变换装置。
图21为具有多个数据变换部的数据变换装置例1。
图22为具有多个数据变换部的数据变换装置例2。
图23为具有多个数据逆变换部的数据变换解消时的数据变换装置例。
图24为通过将随机数R和数据D合并输入到数据变换装置而对总线的数据进行加扰的信息处理装置。
图25为利用随机数R对总线数据进行加扰并且检测数据错误而构成的信息处理装置。
图26为利用纠错码进行总线数据的加扰并且进行数据错误的检错纠错而构成的信息处理装置。
图27为还通过进行键(密钥)加法进行总线数据的加扰而构成的信息处理装置。
图28为在存储装置内部集合数据变换装置、ECC检查装置及键(密钥)加法装置而构成的信息处理装置。
图29为通过在总线中设置存储装置来削减数据变换成本而构成的信息处理装置。
图30为具备数据变换装置的微型计算机的构成图。
图31为利用随机数R进行地址总线上的数据的加扰并且检测数据的错误而构成的信息处理装置。
图32为具备数据变换装置的微型计算机的构成图。
具体实施方式
本发明的本质是保持物理地址和由程序指定的地址之间原封不动地保持一对一的对应关系并在适当的定时将其改变。从安全性的观点而言,对应关系复杂为佳,在上述的差分电力分析(DPA)这样的统计性攻击的防卫中,每次只改变物理地址是重要的。于是,在实施时,可以选择进行地址映射的电路尽可能单纯。
为了解决上述问题,在本发明中,对于加密计算等,包含秘密信息的处理,每次执行该加密计算的一部分时都在物理上改变配置数据的地址。在配置地址的决定方法中有以下这样的方法。一种是不能从外部预测的方法,即看上去是随机的进行加扰配置的方法,另外一种是以使从外部不能判别差异的均匀配置的方法。除此之外是将两者组合使用的方法。任何一种都是基于在消耗电力中表现处理数据的汉明权重或汉明距离的实验事实的对策技术。在这些实现方法中,可以考虑种种形态。
最典型的方法如下。
与程序指定的数据的地址为ADDR(USER)相对,将物理地址ADDR(PHYS)利用随机数R(R为整数)改变如下:
ADDR(PHYS)=ADDR(START)+(((ADDR(USER)-
ADDR(START))+R)mod M)    (式1)
其中,ADDR(START)是随机化的地址的开始位置,M是适当的自然数(随机化RAM区域的大小),XmodM是将X除以M得到的余数。基于(式1)改变物理地址的是专用的运算装置。另外,随机数R的生成,使用内置于IC卡中的随机数发生装置是最一般的情况,但也可以代之以使用线性叠合法等伪随机数生成算法。在内置于IC卡中的随机数生成装置中有利用物理噪声的真随机数生成装置及使用LFSR的伪随机数生成装置等。特别是,由于伪随机数生成装置既可以作为硬件安装,也可以以软件安装,所以也可以是在CPU上生成伪随机数并使用其结果的构成。
由于原来的地址是ADDR(USER),只要R不是M的倍数,由(式1)决定的物理地址与ADDR(USER)不同。R的改变,既可以在每次复位时进行,也可以在每次执行加密处理时进行。
下面示出根据(式1)改变物理地址的数值例。
比如,设M为128。最初,在每次执行程序时R改变,当R依次改变为50、4、120、56时,用户指定的地址ADDR(USER)=2000在每次执行时变化为2050、2004、2120及2056。据此,可以防止利用DPA的统计性攻击。比如,在如DES(DATA ENCRYPTIONSTANDARD:美国的标准加密)的SBOX的处理这种藉助查表参照数据的场合,可以得到数据和地址之间的对应关系,在上述方法中此对应关系可以随机化,可使秘密密钥取出困难。
地址改变也可以使用(式1)以外的方法。本质上,ADDR(USER)和ADDR(PHYS)是一对一的对应关系,(式1)只不过是其一例而已。
作为本发明的实施例,除了(式1)的方法之外,可举出以下的示例作为另外的例子。即:
对于从RAM的地址ADDR_L对ADDR_H(ADDR_L<ADDR_H)进行访问(即ADDR_L≤ADDR(USER)≤ADDR_H),
考虑是以概率1/2随机选择ADDR(PHYS)=ADDR_H-ADDR(USER)(式2)
还是原封不动地选择ADDR(PHYS)=ADDR(USER)的电路。利用这一方法,如DPA这样的统计性攻击是困难的。
自然,也有除此之外的方法。在使随机数R成为具有与地址空间相同位长时,使
ADDR(PHYS)=ADDR(USER)XOR R    (式3)
也是有效的方法。其中,XOR是每位的“异或”。很明显,由(式3)ADDR(USER)和ADDR(PHYS)一一对应。
上述,因为安装比较容易并且效果好,对其他各种地址映射的方法也进行考虑是自不待言的。
通过分别使用这种对策和部分地使用将地址间的汉明距离取得一致的方法,可以获得灵活有效的对策。
下面对本发明的各种实施例予以详细的说明。
首先,图9示出本发明的整体构成。本构成具有中央处理装置(CPU)901、协同处理器902、地址变换部903、地址总线904、数据总线905、输入输出(I/O)端口906、存储器部907、EEPROM908、ROM911、RAM914及随机数发生装置915。另外,EEPROM908具有EEPROM的程序区909及数据区910,ROM911具有ROM程序区912及ROM数据区913。
CPU201是进行逻辑运算和算术运算的装置,在优选实施例中,CPU读出存放于EEPROM908、ROM911等非易失性存储器中的程序并按照该程序进行固定的处理。
存储器部906是存放程序及数据的装置。输入输出端口是进行读写和通信的装置。
地址变换部903在CPU和地址总线904之间,判定发送到地址总线904的地址值是否是指EEPROM、ROM、RAM等的位置,如果是RAM的指定区域,则CPU发出的地址信号利用如图4、7的结构进行变换。905是数据总线,不进行变换。
图4、图7的PC通常在CPU的内部。就是说,地址变换部,在图4中,是除掉401、402的部分,在图7中,是除掉701、702的部分。
另外,CPU,为了使程序计数器改变,具有计算PC+displacement(相当于转移命令等之中的跳转目的地)的电路。所以,有时连减法器(与加法器相同)都在CPU的内部。
在构成上,ADDR-BUF与地址总线904相连接,将经过变换的地址输出到地址总线。数据输出用的驱动器连接到ADDR-BUF,将ADDR-BUF的数据输出到地址总线。在变换中,由于随机数是必需的,随机数发生装置915与地址变换部相连接。此随机数发生装置,与图4的402、图7的702相对应。随机数发生装置,由于在利用CPU901及协同处理器902生成密钥等的时候也使用,根据信息处理装置有时在内部具有一个共用的随机数发生装置或多个随机数发生装置的情况。也可以使这些随机数发生装置与连接到本地址变换部的随机数发生装置915完全共用或一部分共用。通过这样的构成,可以抑制由于硬件的安装面积或软件安装导致的程序设置容量的增加引起的成本增加。
协同处理器是高速进行加密处理或加密处理所必需的运算的装置。根据系统有时也没有协同处理器。在实施例中,由于CPU的存储器(RAM)和协同处理器是独立的,地址变换部和协同处理器没有关系。在协同处理器共有CPU和存储器(RAM)的情况下,在协同处理器上也必须连接地址变换部。在该情况下,在地址变换中使用的随机数R,与在CPU的地址变换部中使用的相同。因此,成为共有存放随机数R的缓冲器的构成。
<实施例1>
首先利用图4、5、6对按照(式1)对物理地址进行映射的实施例及其动作予以说明。
首先,示出最简单的M=2m(2的m次方)的形式的场合的实施例。
图4所示的本发明的实施例由以下的部分构成。就是说,其构成包括程序计数用缓冲器401、随机数发生装置402、随机数用的缓冲器403、加法器404、存放2m-I=M-1(在二进制表示中m个1并列)的缓冲器(PC)405、计算逻辑积(逻辑AND)的电路406、物理地址缓冲器407、判定程序计数器的位置是否在指定区域的判定电路408、选择器409、零缓冲器410、起始地址缓冲器411、减法器412及结束地址缓冲器413。其中,在零缓冲器中存放值0。因为这是固定值,不需要是寄存器,为了简单起见,这样就可以。程序计数器,是存放微型计算机执行程序之际的执行命令或数据的位置的。判定电路408,是在程序计数器的值在指定区域(即ADDR(START)和ADDR(END)之间)时,将1发送到选择器409,在不在指定区域时,将0发送到选择器409,以及将程序计数器的值发送到加法器404的装置。另外,选择器409是当判定电路408的输出信号为1时将403的值发送到加法器404,当判定电路408的输出信号为0时将401的值发送到加法器404的装置。为了避免繁杂,关于这些的构成不予叙述,在具有关于逻辑电路的基本知识时,很容易构成,本发明的实现性不会受到损害。另外,要注意的是在本实施例中计算的是从ADDR(START)的相对位置,不是ADDR(PHYS)本身。根据系统可在ADDR-BUF的结果上加上ADDR(START)使用,此处为了简单起见而省略。
在图4中,首先,按照控制信号随机数发生装置402生成随机数,在R-BUF中存放该值。此处,在将随机数发生装置402生成的随机数R重新存放到R-BUF中的定时有二个:(1)在复位后在重新进行包含秘密信息的处理之前;(2)在其以后的处理中不利用存储器上(随机偏置的区域)的数据的情况下,在将存储器上的数据释放之后重新进行包含秘密信息的处理之前。
R-BUF的值,在控制信号重新来到之前一直固定。ADDR(USER)临时存放于PC中,由判定电路408判定是否在该地址区域中。假如不在指定区域,判定电路408在将0发送到选择器409的同时,将PC-ADDR(START)的值发送到加法器404。如果在指定区域,408在将1发送到409的同时,向加法器404发送PC-ADDR(START)的值。选择器409,在接收到该信号时将存放于R-BUF中的随机数发送到加法器404,而加法器404计算两者的和,将该值发送到逻辑积运算电路406,计算与405的值的逻辑积并存放到ADDR-BUF。(因为这与只取出加法器404的输出的低位m位一样,所以在加法器404中的计算可以一直到第m位。在m固定时,这种构成也可能。)ADDR-BUF的值与
(ADDR(USER)-ADDR(START)+R)mod M
一致。
在指定区域以外时,选择器409接受判定电路408的信号0,将零缓冲器410的值0发送到加法器404。此时,ADDR-BUF的值成为ADDR(USER)-ADDR(START)。就是说,地址不变。
因为这些示出的是与ADDR(START)的相对位置关系,实际的物理地址ADDR(PHYS),成为从本来的位置算起循环地仅相差R的位置。比如,在ADDR(USER)+R包含于指定区域中时,如图5所示,可直接成为ADDR(PHYS)。在ADDR(USER)+R超出指定区域时,超出指定区域的部分,如图6所示,从ADDR(START)偏移剩余部分的位置上设置物理地址。
此处,处理的是M为2的乘方的场合,而在将其扩展到不是2的乘方的一般的M时,也可以设置除法器代替405和406。这是扩展M的实施例,具有精细进行指定区域的优点。
在本实施例中,是在原封不动地保持物理地址和由程序指定的地址之间一对一的对应关系的情况下,使其随机改变。据此,地址不具有连续性,可得到高加扰效果,可以减小信息处理装置内的数据处理和消耗电流的关联性。如果减小消耗电流和芯片的处理的关联性,从观测到的消耗电流的波形推测信息处理装置内的处理及密钥就会变得困难。
就是说,根据本实施例,可以提供具有高安全性的卡部件等的抗干预的信息处理装置。
另外,在本实施例中,示出的是对IC卡的应用例,当然也可以应用于IC卡以外的信息处理装置。
<实施例2>
下面,示出在物理地址和逻辑地址的对应关系最单纯加扰效果高的实施例。假设地址的位数是n。通常,存储器的差异由地址的高位的位决定。在本实施例中,为了简单起见,设RAM区域全部成为最高位的位为1的区域。就是说,RAM区域为具有2n-1位的大小的区域。
本实施例,由以下的部分构成。即程序计数用缓冲器701、随机数发生装置702、随机数用的缓冲器703、判定程序计数器的位置是否在指定区域的判定电路704、选择器705、零缓冲器706、计算异或值的电路707以及物理地址缓冲器708。其中,在零缓冲器中存放值0。因为这是固定值,不需要是寄存器,为了简单起见,使其这样。707进行n位的异或运算。另外,R-BUF是n位的缓冲器,最高位永远为0。各构成单元间的联系如图7所示。
程序计数器的值,存放于程序计数用缓冲器701中。判定电路704,在该程序计数器的值的最高位为0时,向选择器705发送0,而在最高位为1时,在向705发送1的同时,将该程序计数器的值发送到“异或”运算电路707。705在该信号为1时,将R-BUF703的值(随机数)发送到707。R-BUF的值由随机数发生装置702供给。此处,在将随机数发生装置702生成的随机数R重新存放到R-BUF中的定时有二个:(1)在复位后在重新进行包含秘密信息的处理之前;(2)在其以后的处理中不利用存储器上(随机偏置的区域)的数据的情况下,在将存储器上的数据释放之后重新进行包含秘密信息的处理之前。
现在,因为在PC(程序计数器(逻辑地址))的最高位是1时(在地址指的是RAM时),判定电路704将信号1发送到选择器705,所以选择器将存放于R-BUF中的随机数发送到707。在707中,计算R-BUF的随机数R和程序计数器PC地址的异或值,存放到ADDR-BUF708。这成为物理地址。此物理地址只要R不为0,就成为与逻辑地址不同的值。
因为在PC的最高位是0时(在地址指的是RAM以外时),判定电路704将信号0发送到选择器705,所以选择器将存放于ZERO-BUF中的值0发送到707。在707中,计算0和程序计数器PC的值的异或值,存放到ADDR-BUF708。由于和0的异值不改变原来的值,原来的PC的值成为物理地址。本实施例,可指定的RAM的区域受到限定,但一般地址不具有连续性,可得到高加扰效果。
<实施例3>
本发明,通过使用与配置数据使地址变化为一定的技术的组合,可以更加提高安全性。比如,可以认为,通过在RAM中,在对成为DPA攻击的对象的区域应用本发明的方式,对于成为不利用统计方法而是直接观测取出内部信息的攻击方式的对象的部分,配置数据使地址变化为一定,可对更广范围的内部数据安全地进行处理,可以提高安全性。
本实施例,比如,内容如下。
现在,RAM区域的地址以十六进制数表示时为从C000至CFFF。下面考虑在上述实施例1示出的M的扩展例中,应用于从C900起至CFFF止的区域的信息处理装置。在此条件下,考虑以下的程序。
(以下,实施例的程序,是以H8微型计算机的汇编语言写成的,但微型计算机的构成本质上是相同的,利用命令集合没有本质差别的其他汇编语言编写也可以获得同样的效果。关于H8微型计算机和汇编程序,比如,可参照藤泽幸穗的“H8微型计算机完全手册”欧姆社2000年出版。)
下面,在2位的数据d为′00′、′01′、′10′、′11′时,分别考虑将数据Y0、Y1、Y2、Y3传送到某一协同处理器的数据寄存器CDB的程序。Y0、Y1、Y2、Y3,是具有同一长度DATA_LENGTH的数据,预先存放于RAM的规定位置(图8,804-807)。各数据的起始地址,分别为Y0_TOP、Y1_TOP、Y2_TOP、Y3_TOP。另外,CDB的起始地址为CDB_TOP(图8,808)。
还有,规定满足
Ham(Copy,Y0_TOP)
=Ham(Copy,Y1_TOP)
=Ham(Copy,Y2_TOP)
=Ham(Copy,Y3_TOP)
(条件1)
比如,在规定DATA_LENGTH=1024/16=64,Copy=0100,Y0_TOP=C200、Y1_TOP=C400、Y0_TOP=C700、Y0_TOP=C800时,为
Ham(Copy,Y0_TOP)=Ham(0100,C200)=4
Ham(Copy,Y1_TOP)=Ham(0100,C400)=4
Ham(Copy,Y2_TOP)=Ham(0100,C700)=4
Ham(Copy,Y3_TOP)=Ham(0100,C800)=4
并且,各数据不重复地配置于RAM上,在字传送的各阶段满足(条件1)。
以下所示的程序由三个部分构成。第一部分是以起始地址(标号)为MAIN的主要部,第二部分是以Copy为起始地址的传送子程序,第三部分是以table为起始地址的数据部。第一、第二部分配置于ROM或EEPROM(图8,802,803)。在程序执行中,最初程序计数器的值作为MAIN设置。
[程序1]
/***MAIN***/
MAIN:
0000 MOV.W@d,R2
0002 SHLL R2
0004 MOV.W@(table,R2),R0
0006 MOV.W#CDB_TOP,R1
0008 MOV.B#DATA_LENGTH,R3H
000A JSR C0py
/***Copy Routine***/
Copy:
0100 MOV.W@R0,R4
0102 MOV.W R4,@R1
0104 ADDS#2,R0
0106 ADDS#2,R1
0108 DEC.B,R3H
010A BNE Copy
010C RTS
/***table***/
table:
0200.DATA.W Y0_TOP;(=C200)
0202.DATA.W Y1_TOP;(=C400)
0204.DATA.W Y2_TOP;(=C700)
0206.DATA.W Y3_TOP;(=C800)
下面基于上述[程序1]及图8对此程序的动作予以说明。
程序及数据的定位如图8所示。CDB是用作RAM的一部分。
最初,因为程序计数器指向MAIN=0000,微型计算机从MOV.W@d,R2顺序执行命令。
在0000,从该地址读出2位的d,将其存放于寄存器R2,在0002,将寄存器R2的值左移1位。这等于将R2的值乘以2倍。在0004,将存放于在table=0200上加上R2的值的地址的数据传送到寄存器R0。比如,在d的值为3时,存放于0200+2*3=0206的地址的数据Y3_TOP所指示的地址C800存放到R0。
在0006,CBD的起始地址CDB_TOP存放于寄存器R1。在0008,数据的字长DATA_LENGTH=64存放于R3H中。在000A,利用称为JSR Copy的命令,将程序计数器的值改变为0100(标号名“Copy”)。在0100,将存放于R0的地址的数据传送到寄存器R4,在0102,将R4的值传送到存放于R1的地址位置。在0104、0106,将地址递增2,在0108,将存放于寄存器R3H中的计数值递减1。在010A,在计数值不为0时,再次将程序计数变更为复制子程序的起始,重复上述操作一直到寄存器R3H的值成为0为止。当R3H的值成为0时,程序计数变成010C,从子例程中退出,变更为000A的下一个地址,即000C,于是处理结束。
在利用地址0100的传送命令读出数据Y0、Y1、Y2、Y3之际的程序计数,从0100变化为R0。此时,包含于R0中的值与0100的汉明距离永远相同。
就是说,在d=0的场合,变化如下:
0100→C200(汉明距离4)
0100→C202(汉明距离5)
0100→C204(汉明距离5)
0100→C080(汉明距离4)
在d=1的场合,为:
0100→C400(汉明距离4)
0100→C402(汉明距离5)
0100→C404(汉明距离5)
0100→C480(汉明距离4)
汉明距离的变化方式与d=0的场合完全相同。可知在d=2,3时也同样地变化。
据此,从C900起到CFFF止,由于上述实施例1所示的M的扩展例的场合的效果,每次都产生伴随随机地址变化的电流,关于使用从C000起到C900止的区域的一部分(存储从Y0起到Y4止的部分)的处理(程序1),如上述说明所示,伴随地址变化的电流与数据无关而成为一定。由此,在使用从C000起到C900止的处理中,由于地址的变化小,从电流读出地址很困难,在C900起到CFFF止的区域中,根据以DPA为首的电流统计处理读出内部数据是很困难。
此处,为了容易理解以下的说明,下面对作为在本申请说明书中的特征用语“加密”和“随机化”予以说明。
所谓的“加密”指的是利用某一密钥,某一数据按照某一规则改变的动作。在“加密”中,由于密钥保持于加密装置的内部,故不与加密数据一起发送和传送。一般的加密算法,由于加密的安全性取决于密钥,基本上不将密钥输出到装置外部。因此,在即使是加密装置的外部观察加密数据,攻击者也不能获得关于密钥的信息。为了在两者间安全地共有密钥,使用Diffe-Hellman键(密钥)共有方式(参照非专利文献5(Alfred.J.Menezes,Paul C.van Oor.Vanstone,“HANDBOOK of APPLIED CRYPTOGRAPHY”,CRC Press,p.516))及使用公钥的方法。
另一方面,本申请说明书所谓的“随机化”,指的是以下的(1)~(3)中的任何一种。(1)将数据利用随机化键(密钥)加密的结果和随机化键(密钥)进行连接。(2)利用非线性变换对通过数据和随机化键(密钥)的连接得到的数据进行变换。(3)将利用随机化键(密钥)对数据加密的结果和随机化键(密钥)进行连接,并进行非线性变换。
另外,在上述(1)、(3)的“随机化”中,在对数据加密这一点上,随机化键(密钥)和密钥的作用相同,但在与加密数据一起传送这一点上与“加密”的密钥不同。因此,在攻击者充分精密地取得数据时,原理上可确定随机化键(密钥)、数据或加密的数据。在这一点上,加密可以说本质上不同。但是,本提案的随机化装置,进行当由随机化数据和随机化键(密钥)构成的传送数据的观测不充分,推定随机化键(密钥)及数据困难的随机化。在随机化中,由于随机化键(密钥)与数据或加密数据一起传送,所以传送数据一般成为随机化键(密钥)位长n和数据位长m之和的n+m位的数据。
为解决此课题,本发明的基础考虑方法可以分为以下三类。
(1)数据的随机化
第一形态是通过使数据总线通过信息处理装置和信息存储装置之间收发的数据随机化而使原来的数据和消耗电力之间不产生相关性的形态。在总线的发送侧A设置有随机化和复原装置1,而在接收侧B设置有随机化和复原装置2。接收侧还与信息存储装置相连接。此处假设设置于接收侧B的随机化和复原装置2,有时也设置于信息存储装置内部。在数据发送时,在发送侧A,利用随机化和复原装置1,进行依靠设定的随机化键(密钥)KA的随机化并将随机化数据发送到接收侧B。接收侧B利用随机化和复原装置2,依靠所设定的随机化键(密钥)KB进行复原并将复原数据发送到信息存储装置。信息存储装置将接收到的数据进行记录。通过将在发送侧A和接收侧B使用的随机化键(密钥)KA和KB设定为不同,接收侧B的复原处理输出与先前随机化的真实数据D不同的值D′。即使将发送数据在总线上检验读出,实际上也不可能了解记录于信息存储装置中的数据是什么形态。因此,基于在总线上的读出的数据,不能确定记录于信息存储装置中的数据的位置。在从信息存储装置读出数据之际,通过随机化和复原装置2利用随机化键(密钥)KB使读出的数据随机化并通过总线发送到随机化和复原装置1。由于随机化和复原装置1利用随机化键(密钥)KA进行复原,结果可以获得先前的真实数据D。
作为随机化数据,有以下三种形态。第一种形态是通过将应该随机化的数据通过随机化键(密钥)加密的结果和随机化键(密钥)进行连接而得到的形态。第二种形态是通过将应该随机化的数据和随机化键(密钥)进行连接而得到的数据利用非线性变换装置进行变换的结果而得到的形态。第三种形态是将第一种形态的随机化数据再利用非线性变换装置进行变换的结果而得到的形态。
在第一种形态和第三种形态中,由于数据依靠随机化键(密钥)变换为不可预测的形态,攻击者不能预测传送数据的形态。因此,可以有效地防止预测传送数据的形态所必需的消耗电流分析等等。第二种形态,由于汉明权重不改变,不能说是完全的消耗电流分析的对策,但通过连接随机化键(密钥),使消耗电流的数据依赖分量的S/N比变小,可以获得使攻击变得困难的效果。就是说,利用随机化键(密钥)进行位扩展可以获得提高对消耗电流分析的抵抗性的效果。
在本发明中公开的方式,与专利文献2不同,在接收侧,即信息存储装置侧,也设置随机化和复原装置,并且随机化键(密钥)也设定为在发送侧和接收侧不同。另外,专利文献2是利用随机化键(密钥)进行加密,但本发明公开的方式进行与加密在本质上不同的随机化。
于是,比如,考虑到必须对于随机布线的微细的总线进行正确的硬件检验等物理制约,攻击者很难充分正确地观测传送数据,实际进行攻击是很困难的。
接收侧B还与信息存储装置相连接,有时也通过在其间设置外部通信装置而在保持随机化的状态下将数据传送到外部。
(2)位传送时的布线选择的随机化
第2形态是在收发数据之际从多个布线中随机选择在收发某一位所使用的布线的方法。布线和数据位的对应依靠随机化键(密钥)决定。
在信息处理装置内部处理的数据一般是以8的倍数为单位。在一般的信息处理装置中,从数据d的高位位起表示为d0、d1、...、d7,与总线的编号0至7相对应。这是由于通过使布线长度尽可能缩短而极力减小数据传送的延迟,并且通过使布线整然有序而使得调试和测试时的总线编号容易判别之故。在本发明中,使数据收发之际的数据d和总线编号的对应关系在每次数据传送时都改变。此外,两者的对应构成非线性关系。通过使对应关系成为非线性关系,可以做到即使是在不同的定时对总线进行多次观测,也不容易获得有关随机化之前的数据的信息,可以提高抗干预性。
由于每次数据传送时数据的位编号和总线编号的对应关系都改变,即使是攻击者通过对单个总线的检验进行观测,也了解不到现在观测的是数据的第几位。这就是说,即使是攻击者观测全部总线,如果不了解规定数据位编号和总线编号的对应关系的算法,所得到的信息只是数据的汉明权重。如果是64位总线,与汉明权重h相对应的数据有大约64Ch。比如,在最可能发生的场合的h=32的场合,对应的数据的候选为约64C32=264.7,全部地检索事实上是不可能的。此外,由于微型计算机是微细加工产物,受到探针的尺寸的制约,一次可观测的总线的根数是受到限制的,实际进行攻击是显著困难。
(3)利用检错用符号的传送时位出错的检测
增加数据收发之际的数据总线宽度,与数据一起合并发送检错用符号。在接收侧,检查检错用符号的合法性,必要时,进行检错处理,如果包含错误,就发出出错信号。
检错用符号,也可以作为独立于发送的数据的随机数,在此场合,在接收侧也共有或生成相同的随机数。在注意到根据先前的对策方式,取决于发送数据而在数据传送中使用的总线编号和数据的位编号不同时,由于通过使检错用符号成为随机数,即使是在传送同一数据时,位编号和总线编号的对应每次都改变,所以可以提高抗干预性。为了共用随机数,也可以将在发送侧生成的随机数通过总线传送到接收侧,可以使用LFSR等众所周知的伪随机数生成器。在将在发送侧生成的随机数通过总线传送到接收侧时,即使发送的随机数在总线中受到攻击者的攻击而变化时,在传送继续数据时,由于发送侧和接收侧的共有随机数不一致,可迅速发现错误。因此,对于保障在随机数共有之际的总线的数据的完整性,不需要采用特别的对策。这一点在使用现有的加密方式中不能实现是本申请发明的特征。在采用伪随机数生成器的场合,其构成为进行初始化以使各个伪随机数生成器输出同一伪随机数组,在同一定时可以获得同一数。作为这种方法最容易的构成方法是从同一初始值开始动作,在同一时钟定时顺序输出随机数组的。
不使用随机数而是根据发送数据生成检错符号并使用也可以。在此场合,由于对于相同的数据可生成相同的检错符号,不能获得数据随机化效果。然而,此外,按照(1)通过一并进行发送数据的随机化,可以进行数据的随机化。在使用纠错符号代替检错符号时,在接收侧检查纠错用符号的合法性,如果包含数据错误,可以尝试从错误恢复。
<实施例1>
在本实施例中,记述了对于在从CPU向记录装置记录数据之际的数据变换装置的配置。
此处,数据变换装置是进行数据的非线性变换的装置,有时具有使数据的位模式本身改变的功能,也有时具有使数据的位模式本身改变的功能及数据的位编号与总线的编号的对应关系变换的序列的变换功能。所谓的使位模式改变指的是至少大于等于一个的某一数据D通过变换F的像(D)的汉明权重与D不同,所谓的序列的变换指的是对所有的D,进行变换使D和F(D)的汉明权重永远一致。数据的变换,因为一般是使此位模式改变的场合和使序列改变的场合的合集合,所以在本申请发明中将两者总称为数据变换装置。特别是在分开称呼的场合,将前者称为位模式变换装置,而将后者称为位序列变换装置。
由于即使是在只使用数据序列变换装置的场合,也可以得到对于硬件检验的抗干预性,所以在作为构成要素单称数据变换装置的场合,也指该构成为将该部分改称为数据序列变换装置。
如图13所示,在从CPU1301向存储装置1302记录数据时,数据D是从CPU1301向数据总线1304发送。数据D首先输入到数据变换装置1303,数据变换装置1303通过变换处理F对数据D进行变换并输出数据D′。数据D′,经数据总线1304输入到变换装置1305。在变换装置1305中,通过变换处理F将数据D′变换为数据D输出。数据D记录于存储装置1302中。
此处,关于数据变换装置1303及1305,利用相同的变换处理F,在403中得到D′作为D′=F(D),在1305中得到作为D=F(D′)。在为了使变换和复原作为不同的处理进行的构成中,必须在CPU1301侧和存储装置1302侧分别设置变换及复原用的装置,与本实施例的构成的场合相比装置规模约大一倍。作为本实施例所述的变换F的示例,可以举出改变数据D的位的位置的置换处理。|I|=|J|=n/2,对于作为I∩J=φ并且I∪J={1,...,n}的I{1,...,n}、J{1,...,n},D[i]作为表示D的第i位,改换D[i](i∈I),D[j](j∈J)的处理是其一例。很清楚,在重复此改换两次时,返回到原来的状态。另外,如图14所示,可将求GF(2n)的反元的变换INV用作变换F。所谓的求反元,指的是对某一数据D求出使DxD′=1的D′。一般,D′也表示为D-1。在数据D是32位的数时,将数据D作为GF(232)的元,比如,利用不可约多项式m(x)=x32+x7+x6+x2+1得到D′使D′=F(D)=D-1mod m(x)。将数据D′通过数据总线1403传送到数据变换装置1404,在数据变换装置1404中可通过以F对D′进行处理而得到D。这是因为如下的关系成立之故:
F(D′)=D′-1mod m(x)=(D-1)-1mod m(x)=D
<实施例2>
在图15所示的本实施例中,是扩展数据变换装置,在数据变换部的数据变换处理之前,在进行反元计算INV之前,通过与密钥数据R相加进行数据扩展,进而进行数据的加扰的例子。此处所谓的加法,指的是逻辑加D′=D xor R。此外,通过数据和D′和R的连接扩展数据位长,得到对作为数据变换部的反元计算INV的输入。所谓的连接,指的是通过将数据D′和R平行连接,得到位长为两数据的位长的和的数据。这表示为D′|R。从CPU1501输出的数据D0输入到数据变换装置1502。数据变换装置1502,还由密钥加法部1503和数据扩展部1504、反元计算部1505构成,数据D0在密钥加法部1503中与密钥R0相加而成为D0′。在得到利用数据扩展部1504将D0′和R0连接的D1之后,D1经过数据变换部,即此处为经过反元计算部1505变成D2。D2通过数据总线1506输入到下一个数据变换装置1507。数据变换装置1507在内部具有密钥加法部1508及反元计算部1509。数据D2在密钥加法部1508中与密钥R1相加而成为D3,D3经反元计算部1509而成为D4。D4记录于存储装置1510中。此处,要注意加法处理和反元计算是通过GF(2n)进行。就是说,加法是与异或运算相对应。异或运算具有进行两次就互相抵消的性质。
在数据读出时,可以将上述步骤完全逆向应用。这一点,因为从
D4=(((D0+R0)|R0)-1+R1)-1mod m(x)
逆向的处理结果成为
t((D4-1+R1)-1modm(x))+R0=t(((((D0+R0)-1+R1)-1)-1+R1)-1modm(x))+R0
=t(((D0+R0)-1+R1+R1)-1mod m(x))+R0
=t((D0+R0)|R0))+R0
=D0+R0+R0
=D0
而得到确认。此处,t(x|y)是去掉y缩短位长的处理,与数据扩展的逆变换相对应。
通过如本实施例这样构成装置,利用密钥不同的数据变换装置1502及1507,使通过数据总线1506的数据的保护和记录到存储装置1510的数据的隐匿成为可能。在本实施例中,将数据变换装置1502及1507作为独立的装置那样地予以记述,由于密钥加法和数据扩展可以更改顺序,所以将数据扩展部1504置于数据变换装置1502的外部时,数据变换装置1502和1507就可以成为一样的构成。此时,由于只有密钥不同这一性质,处理部的大部分可以通用化,其构成也可以是只有保持密钥的寄存器的不同,通过这样的构成,还可以缩小装置的电路规模。
<实施例3>
在本实施例中示出数据变换装置的构成例。基本的数据变换装置,只由数据变换装置1601构成,如图16所示,接受数据D,进行数据变换之后,输出数据D′。然而,如图17所示,数据变换装置1701也可以是如下的构成,还接受数据R作为输入,将数据R看作密钥,保持于密钥数据保持用的寄存器1702中,密钥在密钥加法部1703中与数据D相加,将其结果与密钥R合并由数据扩展部1704进行数据扩展后输入到数据变换部1705并将变换后的数据作为D′输出。在图18中示出的是还可以读出数据R的构成例。在由于攻击与数据连接的密钥数据发生变化的场合,不能进行将数据D′返回到D的变换。密钥数据有可能变化时,密钥数据的读出在适当的定时进行,确认未发生变化,而在发生变化的场合,通过写入线进行密钥数据的写入。另一方面,如图19所示,数据变换装置1901的构成为将接受密钥数据的对象作为随机数源1902,根据来自密钥更新指示信号线的信号更新保持于密钥保持部1903中的密钥。通过这样的构成,就不会有可以预测或操作通过数据变换装置1901进行数据变换的人,可以进一步提高通过总线传送的数据D′的安全性。此时,希望的构成是密钥保持部的数据不能读出。数据D′生成时和数据D复原时的密钥不同所产生的数据破坏,可以利用奇偶及检错符号等检出。当然,在这种情况下也可以采用可能使密钥保持部1903的数据可以读写,随机地决定密钥更新定时等的进行更复杂的密钥利用提高数据的安全性的方法。
以上,对数据变换装置的数据变换进行了描述。下面,图20示出利用数据变换装置进行数据变换解消。所谓的数据变换解消指的是由数据变换部从经过数据变换的数据D′取出原来的数据D的处理。输入到数据逆变换部的D′,由数据逆变换部2002变换之后,输入到数据缩小部2003。数据缩小部将输入分割为数据和密钥数据,分别输入到密钥加法部2004。在密钥加法部中,将数据和密钥数据相加,其结果作为D输出。此处,数据逆变换部的处理与数据变换时的数据变换部的处理相同。经过数据逆变换的数据,因为是进行密钥相加的数据和密钥数据连接而成的,将其由数据缩小部分割为各自本身。密钥加法部2004的处理是逻辑加。由于数据变换时的加法是逻辑加,通过此处理可以获得原来的数据D。在作为数据变换时的密钥加法使用通过公共密钥进行加密时,此处的密钥加法,与使用相同公共密钥的解密处理相对应。数据缩小部得到的密钥数据在后面的密钥加法部中被使用的同时,如后面的实施例所示,也有废弃和应用于数据传送中的数据检错和纠错的时候。
<实施例4>
在图21示出的本实施例中,数据变换装置2101具有多个数据变换部2107。数据R保持于密钥保持部2102中,数据C保持于选择信息保持部2103中,数据D输入到数据变换装置2101。数据D在密钥加法部2104中与保持于密钥保持部2102中的数据R相加,其结果输入到数据扩展部2105。数据扩展部2105的结果,由处理选择部2106传递到基于保持于选择信息保持部2103中的数据C从多个之中所选择的大于等于一个的数据变换部2107。数据变换部2107对接收到的数据进行变换,作为数据D′输出。此时,为了防止从装置的工作电流等的情况泄漏选择的是哪一个数据变换部2107,也可以不管数据C如何,使全部数据变换部1至N工作而使噪声增加。
另一方面,如图22所示,也可以是如下的构成:在密钥加法部2204中与保持于密钥保持部2202中的数据R相加的数据D,经过数据扩展部2205输入到数据变换部2206的1至N之中,基于保持于选择信息保持部2203中的数据C由输出选择部2207在N个输出之中选择一个,将其结果作为D′输出。在此场合,由于输出选择部2207的动作与数据变换部12206的动作比较是很小的动作,利用消耗电流进行判别很困难。
在图23中示出与图21相对应的数据变换解消时的数据变换装置。数据变换装置2301,接受数据D′,基于处理选择部在数据变换时使用的处理选择信息C,选择数据逆变换部2304中的某一个。数据逆变换部2304与上述的实施例一样,进行数据变换时的逆变换。经过数据逆变换的数据,由数据缩小部2305分离为数据和密钥数据,在下一个密钥加法部2306中相加。相加的结果成为原来的数据D。关于加法可利用公共密钥代替这一点已如前述。与图22相对应的数据变换解消时的数据变换装置也可同样地构成。另外,很显然,没有必要将图21和23组合,也可以是将图22的数据变换与图23的数据变换解消相组合,将图21的数据变换装置与图22相对应的数据变换解消相组合。
在本实施例中,示出的是在数据变换装置上合并密钥保持部及密钥加法部、数据扩展部的示例,但在实际规格中,不一定是将这些集合安装。之所以这样说的原因是由于只有数据变换部是攻击者发生众多试行错误所必需的,可以判断即使不进行密钥加法安全性也足够之故。
<实施例5>
在图24示出的本实施例中,在通过数据总线2404传送数据D之际,由数据变换装置2403使数据D和数据R一起变形。经过变形的数据在通过数据总线2404之后,输入到数据变换装置2405。数据变换装置2405进行数据变换装置2403的逆变换,得到数据R和数据D。此处,通过将数据R作为从随机数源得到的随机数,通过数据总线2404的数据由于即使是对于同一数据D也每次都改变,所以在数据D和通过数据总线2404的数据之间无相关性,可以防止消耗电流分析等的攻击。另外,即使是进行利用检验数据总线2404的数据读出,由于数据R不明,推定数据D很困难。在图24中,示出的是设数据D为具有32位的数,数据R为8位的数的示例。数据变换装置2403的输出为了在数据变换装置2405将数据D和R复原,必须大于等于40位。此时,即使是数据R不明,由于通过检验数据总线2404获得的40位,可以将数据D限定为约256。然而,在由多个块构成的数据中,32位n块的数据,具有约256n的候选数,实用上推定大于等于8块(大于等于256位)的数据是困难的。自然,本实施例,并不限制数据D和数据R的位长,通过加大数据R的位长或由于使块数增加而使数据D的位长变小,总体上进行数据推定是困难的。在本实施例中,作为数据变换装置2405的输出的数据R也可以原封不动地予以废弃。
另一方面,如图25所示,在构成为通过数据总线2503传送数据R,在比较装置2509中进行与数据变换装置2506的输出的比较时,可以在检测通过数据总线2505所传送的数据的随机化效果的同时一起检测传送时的数据变化等。数据变化的原因有由于电气条件发生的数据破损和由于攻击者有意造成的数据破坏等的情况。特别是,存在通过数据破坏进行解密的例子,如图25的实施例所示,通过验证数据的正确性,基于比较结果进行适当的错误处理,可以防止这种解密。通过加大数据R的位长,可以得到更高的检错性能。
此处,示出的是在数据的发送侧和接收侧利用数据总线传送共有数据R的示例,但通过使用两个同步的伪随机数生成装置,可以省略数据传送。在设定伪随机数生成装置的初始值的场合,可以使用依据本发明的数据总线。
<实施例6>
在图26示出的本实施例中,数据D从数据总线2601分路与纠错码(ECC)生成装置2602相连接,生成与数据D相对应的ECC码,通过数据总线2603与数据D一起输入到数据变换装置2604。经过数据变换装置2604变换的数据,通过数据总线2605输入到数据变换装置2606,而数据变换装置2606将输入数据分离为数据D与ECC码。ECC码和数据D,分别通过数据总线2607和2608输入到ECC检查装置2609,而ECC检查装置2609根据必要和可能对包含于数据D中的错误进行纠正并将经过纠错的数据D输出。另外,在数据D中包含错误时,通过出错信号输出线将发生错误一事进行传达。此处,出错信号输出线并不一定只输出出错信号,在不包含错误时,也可输出正常进行数据传送的表示信号以及输出在发生错误时是否可以纠错的表示信号,通过这种构成,可以对数据进行更合适的管理。
<实施例7>
在图27示出的本实施例中,在传送数据D时,在密钥加法装置2701中加上密钥K0,其结果通过数据总线2703输入到数据变换装置2704。另外,数据总线2703与ECC生成装置2702相连接,ECC生成装置2702基于输入数据生成纠错码。同一纠错码通过数据总线输入到数据变换装置2704。数据变换装置2704进行基于两个输入的数据变换,经过变换的数据,通过数据总线2705传送到数据变换装置2706。数据变换装置2706,将输入的数据分离为两个,通过数据总线2707及2708发送到ECC检查装置2709。此处,两个数据,与输入到数据变换装置2704的两个数据相对应。就是说,一个是在数据D上加上密钥K0的数据,另一个是与其相对应的纠错码。根据这两个数据,ECC检查装置2709根据需要进行纠错并将结果传送到密钥加法装置2710。ECC检查装置2709,在数据中检测到错误时,通过出错信号输出线通知有错误发生。密钥加法装置2710,将接收到的数据与密钥K1相加而输出数据D′。在本实施例中,通过使密钥K0随机变化,即使是数据D是固定值,由于通过数据总线2705的数据是随机化的,即使攻击者对数据总线2705进行监视,也得不到数据D。另外,通过使密钥K0和密钥K1相等,数据D和数据D′变为相等。此时,在本实施例中,是在利用密钥加法装置2701在数据D上加上密钥K0,进行利用ECC生成装置2702的纠错码的生成,但如果构成为改变顺序,生成关于数据D的纠错码,其后将在数据D上加上密钥K0的结果输入到数据变换装置2704,并且对于数据变换装置2706的输出,也在数据上加上密钥K1(其中现在假设K1=K0)之后,进行利用ECC检查装置2709的检错及纠错,也同样可以确保传送数据的安全性。
图28所示的实施例特别是数据D的发送目的是存储装置2806。存储装置2806内部具有数据变换装置2807、ECC检查装置2808及密钥加法装置2809。通过数据总线2805送交存储装置2806的数据,由数据变换装置2807分离为数据部及纠错码部,在ECC检查装置2808中,进行数据部的正确性的验证或数据部的校正。ECC检查装置2808的输出,传输到密钥加法装置2809,在密钥加法装置2809中,输出作为在接收到的数据上加上密钥K1的结果的数据D′。存储装置2806存储数据D′。此时,通过使密钥K0和密钥K1成为互相独立的值,可以获得数据D的发送侧对实际记录的数据D′的形式不可能了解,即使是读出存储于存储装置2806中的数据D′也不能推定数据D的这种高安全性。
在图29所示的实施例中,将在密钥加法装置2901中在数据D上加上密钥K的结果和基于由ECC生成装置2902所生成的纠错码利用数据变换装置2903进行变形而得到的数据D′,通过数据总线2904记录到存储装置2905。在数据D′读出时,通过数据总线2906输入到数据变换装置2907,将利用数据变换装置2907分离为数据部和纠错码部的结果输入到ECC检查装置2908。根据需要进行校正过的数据,在密钥加法装置2909中加上密钥K的结果可以作为数据D被得到。这一方式的特点是不限于数据总线2904及2906,在存储装置2905上的数据变化也可以在ECC检查装置2908中检测或校正这一点。密钥K与数据D相对应,不一定需要由系统固定。比如,在利用自动生成依赖存储装置的存储器地址及系统的时钟计数的临时密钥的密钥生成装置来生成密钥K的构成时,可以提供用户完全不需要对密钥K进行管理,不需要意识到加密的有无的安全装置。
在图30中示出具有数据变换装置的信息处理装置。对信息处理装置的中央运算装置3001及协同处理器3002、输入输出端口3007、存储装置3004设置有数据变换装置3008,作为对数据通过内部总线3003时的上述的各种攻击的对策。此处,数据变换装置3008的构成可以是内部包含图28所示的密钥加法装置2801、ECC生成装置2803及ECC检查装置2808、图25所示的比较装置2509。另外,不一定需要在所有的装置中都设置数据变换装置,如从图29所示的实施例可知,也可以是在存储装置中不设置数据变换装置的构成。通过输入输出端口3007收发的数据,因为基本上是攻击者已知的信息,不一定必须进行数据的随机化。
于是,为输入输出端口设置的数据变换装置,只是可进行检错纠错的最低限度的构成,所以可以减轻装置的安装负载。此时,进行输入输出端口的收发的装置,备有只进行检错纠错的特别模式。
在以上的实施例中,叙述的是关于进行数据传送或存放及读出时的处理,但也不一定只限于数据。比如,将数据原样不变改读为地址,利用同样的构成可以得到地址的抗干预性。此处,示出进行地址的随机化时的一实施例,如图31所示。在图31所示的本实施例中,在将地址A通过地址总线3105传送时,将地址A与数据R一起由数据变换装置3104进行变形。经过变形的数据,在通过地址总线3105之后,输入到数据变换装置3106。数据变换装置3106进行数据变换装置3104的逆变换,得到数据R和地址A。此处,通过将数据R变成从随机数源得到的随机数,因为通过地址总线3105的数据,对于同一地址D也每次都改变,故在地址A和通过数据总线3105的数据之间无相关性,可以防止消耗电流分析等的攻击。另外,即使是进行利用检验数据总线3105的数据读出,由于数据R不明,所以推定数据D很困难。在图31中,示出的是设地址A为具有32位的数,数据R为8位的数的示例。数据变换装置3104的输出,为了在数据变换装置3106将地址A和R复原,必须大于等于40位。此时,即使是数据R不明,由于通过检验地址总线3105获得的40位,可以将数据D限定为约256。然而,在由多个块构成的数据中,32位n块的数据,具有约256n的候选数,实用上推定大于等于8块(大于等于256位)的数据是困难的。自然,本实施例,并不限制地址A和数据R的位长,通过加大数据R的位长或由于分割为多个块进行传送而使地址A在各传送时的位长变小,通过总体上进行数据推定是困难的。在本实施例中,作为数据变换装置3106的输出的数据R也可以原封不动地予以废弃。在构成为通过地址总线3105传送数据R,在比较装置3109中进行与数据变换装置3106的输出的比较的话,可以在检测通过地址总线3105传送的数据的随机化效果的同时检测传送时的数据变化等。数据变化的原因,有由于电气条件发生的数据破损和由于攻击者有意造成的数据破坏。特别是,存在通过数据破坏进行解密的例子,如图31的实施例所示,通过验证数据的正确性,基于比较结果进行适当的错误处理,可以防止这种解密。通过加大数据R的位长,可以得到更高的检错性能。
下面利用图32对数据流予以描述。数据D从信息处理装置的外部,通过输入输出端口3208给予信息处理装置。此时,从输入输出端口给予的数据D,有时存储于存储装置3209,有时存储于中央运算装置3201及协同处理器3202备有的寄存器中。在存储于存储装置的情况下,从输入输出端口给予的数据D,接受数据变换装置3206的变换,通过内部总线3205,接受设置于存储装置侧的数据变换装置3207的逆变换并存储于存储装置。在存储于中央运算装置的寄存器的情况下,从输入输出端口给予的数据D,接受数据变换装置3206的变换,通过内部总线3205,接受设置于中央运算装置侧的数据变换装置3203的逆变换并存储于中央运算装置的寄存器中。在存储于协同处理器的寄存器的情况下,从输入输出端口给予的数据D,接受数据变换装置3206的变换,通过内部总线3205,接受设置于协同处理器侧的数据变换装置3204的逆变换并存储于协同处理器的寄存器中。在利用中央运算装置对存储于存储装置中的数据进行处理的情况下,存储于存储装置的数据存放部3211中的数据由数据变换装置3207进行变换,通过内部总线3205,接受中央运算装置侧的数据变换装置3203的逆变换,传送到中央运算装置的寄存器。在将处理结果存放于存储装置时,由数据变换装置3203对处理结果进行变换,通过内部总线3205由存储装侧的数据变换装置3207进行逆变换并存储于存储装置。在利用协同处理器进行处理时也一样,接受由数据变换装置3207进行的变换的数据,接受协同处理器侧的数据变换装置3204的逆变换,传送到协同处理器的寄存器。在将处理结果经过数据变换装置3204的变换,由存储装侧的数据变换装置3207进行逆变换之后,存储于存储装置。中央运算装置在从存储装置中读出命令码进行处理的情况下,从存储装置的程序存放部3210读出命令码,命令码在数据变换装置3207进行变换,通过内部总线3205由中央运算装置侧的数据变换装置3203进行逆变换,传送到中央运算装置。在将数据D取出到信息处理装置的外部的情况下,使用输入输出端口3208。此时,也与数据输入时一样,存储取出的数据场所有中央运算装置及协同处理器的寄存器和存储装置。在从中央运算装置的寄存器读出时,数据接受由数据变换装置3203进行的变换,通过内部总线3205,在输入输出端口侧的数据变换装置3206进行逆变换并通过输入输出端口传送到信息处理装置的外部。在从协同处理器的寄存器读出时,数据接受由数据变换装置3204进行的变换,通过内部总线3205,在输入输出端口侧的数据变换装置3206进行逆变换并通过输入输出端口传送到信息处理装置的外部。在从存储装置读出时,数据接受由数据变换装置3207进行的变换,通过内部总线3205,在输入输出端口侧的数据变换装置3206进行逆变换并通过输入输出端口输出到外部。另外,写入到存储装置的数据和从存储装置读出的数据,有作为命令码进行处理和作为数据进行处理的情况,为此有将其各自用存放地址明确分离和不加特别区别进行存储的情况。另外,至少在访问存储装置时,指定作为数据的存放目的的地址。该地址也与数据一样由数据变换装置进行变换和逆变换。
如上所述,通过内部总线3205上的数据及地址,是接受由数据变换装置进行变换的数据及地址,即使攻击者对消耗电力进行观测,在攻击中也不能取得可利用的信息。除此之外,通过将数据变换装置形成为可以对数据错误进行检测或校正的构成,可以针对攻击者有意使数据改变的攻击确保处理的安全性。

Claims (14)

1.一种信息处理装置,其特征在于包括:
运算装置;
存储从上述运算装置所发送的数据的存储装置;
连接上述运算装置和上述存储装置的(N+r)位的第一数据总线;
随机数生成装置;以及
数据变换装置,
上述数据变换装置,对上述运算装置发送的N位的数据,将由上述随机数生成装置所生成的r位的随机数组成的数据作为密钥对上述N位的数据加密而生成N位的加密数据,通过连接上述加密数据和上述随机数而生成(N+r)位的数据,并将上述(N+r)位的数据输出到上述第一数据总线。
2.根据权利要求1所述的信息处理装置,其特征在于:
其中的上述数据变换装置还对上述(N+r)位的数据进行非线性变换并输出到上述第一数据总线。
3.根据权利要求2所述的信息处理装置,其特征在于:
其中的上述非线性变换是改变上述(N+r)位的数据的位位置的置换处理。
4.根据权利要求3所述的信息处理装置,其特征在于:
上述非线性变换是求上述(N+r)位的数据的反元的处理。
5.根据权利要求1所述的信息处理装置,其特征在于:
上述随机数生成装置在上述第一数据总线的每次传送中生成随机数。
6.根据权利要求5所述的信息处理装置,其特征在于:
上述随机数生成装置是伪随机数生成装置。
7.根据权利要求1所述的信息处理装置,其特征在于包括:
第二数据变换装置,
上述第二数据变换装置,对由上述第一数据总线的各总线线路从上述运算装置向上述存储装置传送来的各位与上述N位和上述r位中的哪一位相对应进行判定,从上述(N+r)位之中,取出上述N位而废弃上述r位。
8.根据权利要求7所述的信息处理装置,其特征在于:
上述数据变换装置及上述第二数据变换装置,将(N+r)位的数据作为输入而接收,将GF(2n)的不可约多项式m(x)及m′(x)作为除数的值的N位的反元予以输出的变换装置。
9.根据权利要求8所述的信息处理装置,其特征在于:
在上述数据变换装置及上述第二数据变换装置中使用的上述不可约多项式满足公式m(x)=m′(x)。
10.根据权利要求9所述的信息处理装置,其特征在于包括:
数据比较装置;以及
将从上述随机数生成装置得到的r位发送到数据比较装置的第二数据总线,
上述数据比较装置,将从上述第二数据变换装置得到的r位与通过上述第二数据总线得到的r位进行比较,在两者的位一致时将上述r位废弃,而在两者不一致时输出出错信号。
11.根据权利要求9所述的信息处理装置,其特征在于包括:
数据比较装置;以及
第二随机数生成幕置,
上述随机数生成装置及第二随机数生成装置都是伪随机数生成装置,在上述随机数生成装置和第二随机数生成装置之间具有同步信号线,上述随机数生成装置与数据变换装置相连接,上述第二随机数生成装置与上述数据比较装置相连接,上述比较装置将从上述第二数据变换装置得到的r位与从上述第二随机数生成装置得到的r位进行比较。
12.根据权利要求7所述的信息处理装置,其特征在于包括:
多个上述数据变换装置及上述第二数据变换装置,
将上述多个数据变换装置的输出之中的一个作为第一输出,将上述第一输出通过上述数据总线输入到上述多个第二数据变换装置,在上述多个第二数据变换装置的输出之中,将上述第一输出以外的输出废弃。
13.根据权利要求12所述的信息处理装置,其特征在于包括:
用来选择上述多个数据变换装置的输出之中的一个的第一输出选择装置;
用来选择上述多个第二数据变换装置的输出之中的一个的第二输出选择装置,
上述第一输出选择装置与上述第二输出选择装置共有决定选择动作的数据。
14。根据权利要求13所述的信息处理装置,其特征在于:
上述第二输出选择装置选择与上述第一输出选择装置所选择的上述多个数据变换装置之中的一个的逆变换相对应的上述多个第二数据变换装置的输出之中的一个。
CNB2004100926745A 2003-11-18 2004-11-16 信息处理装置 Expired - Fee Related CN100356342C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003387524A JP2005149262A (ja) 2003-11-18 2003-11-18 情報処理装置
JP2003387524 2003-11-18
JP2004027550A JP4435593B2 (ja) 2004-02-04 2004-02-04 耐タンパー情報処理装置
JP2004027550 2004-02-04

Publications (2)

Publication Number Publication Date
CN1619588A CN1619588A (zh) 2005-05-25
CN100356342C true CN100356342C (zh) 2007-12-19

Family

ID=34575983

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100926745A Expired - Fee Related CN100356342C (zh) 2003-11-18 2004-11-16 信息处理装置

Country Status (2)

Country Link
US (1) US7454017B2 (zh)
CN (1) CN100356342C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270427A (zh) * 2017-01-03 2018-07-10 意法半导体(鲁塞)公司 用于对集成模块的电流消耗进行管理的设备和方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602005015178D1 (de) * 2004-02-05 2009-08-13 Research In Motion Ltd Speicherung auf einem chip,erzeugung und handhabung eines geheimschlüssels
JP4551802B2 (ja) * 2005-03-29 2010-09-29 株式会社東芝 プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法
JP4986206B2 (ja) * 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置
JP2007288254A (ja) * 2006-04-12 2007-11-01 Sony Corp 通信システム、通信装置および方法、並びにプログラム
JP2008003976A (ja) 2006-06-26 2008-01-10 Sony Corp メモリアクセス制御装置および方法、並びに、通信装置
JP4349389B2 (ja) * 2006-07-28 2009-10-21 ソニー株式会社 データ記憶装置、および、通信装置
KR100836758B1 (ko) * 2006-09-11 2008-06-10 삼성전자주식회사 메모리 카드의 암호화 장치 및 그것에 따른 데이터 기입 및독출 방법
KR100837802B1 (ko) * 2006-09-13 2008-06-13 주식회사 하이닉스반도체 데이터 입출력 오류 검출 기능을 갖는 반도체 메모리 장치
US8632407B2 (en) 2007-08-01 2014-01-21 Cfph, Llc General gaming engine
KR101311963B1 (ko) * 2007-08-06 2013-09-26 삼성전자주식회사 파워 어택으로부터 안전하게 데이터를 쓰고 읽을 수 있는반도체 메모리 장치 및 그 방법
JP4696099B2 (ja) * 2007-08-07 2011-06-08 日立オムロンターミナルソリューションズ株式会社 表示画像変換装置
JP5146156B2 (ja) * 2008-06-30 2013-02-20 富士通株式会社 演算処理装置
US10802990B2 (en) * 2008-10-06 2020-10-13 International Business Machines Corporation Hardware based mandatory access control
US10255463B2 (en) 2008-11-17 2019-04-09 International Business Machines Corporation Secure computer architecture
US9325492B2 (en) * 2009-12-04 2016-04-26 Stmicroelectronics, Inc. Method for increasing I/O performance in systems having an encryption co-processor
CN101739590B (zh) * 2010-01-25 2012-05-23 深圳市同洲电子股份有限公司 一种智能卡卡号处理方法及装置
US8549367B1 (en) * 2010-12-29 2013-10-01 Cadence Design Systems, Inc. Method and system for accelerating memory randomization
JP6265783B2 (ja) * 2014-03-06 2018-01-24 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム
US10530566B2 (en) * 2015-04-23 2020-01-07 Cryptography Research, Inc. Configuring a device based on a DPA countermeasure
US10489611B2 (en) * 2015-08-26 2019-11-26 Rambus Inc. Low overhead random pre-charge countermeasure for side-channel attacks
JP6903529B2 (ja) * 2017-09-11 2021-07-14 株式会社東芝 情報処理装置、情報処理方法およびプログラム
CN109697174B (zh) * 2018-12-14 2023-06-23 中国航空工业集团公司西安航空计算技术研究所 一种机载计算机存储系统敏感分区防护方法
CN110247760B (zh) * 2019-06-18 2022-06-10 徐州徐工挖掘机械有限公司 一种can总线数据的加密、解密方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4064558A (en) * 1976-10-22 1977-12-20 General Electric Company Method and apparatus for randomizing memory site usage
CN1391163A (zh) * 2001-06-08 2003-01-15 提阿克股份有限公司 信息处理装置及程序复原方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455934A (en) * 1993-03-23 1995-10-03 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
KR960705317A (ko) * 1994-08-08 1996-10-09 이데이 노부유키 데이타 기록 방법, 데이타 기록 장치, 둥근 원반 형상 기록 매체, 컴퓨터 시스템 및 데이타 복제 방지 방법(Data recording method, data, recording apparatus, disk-shaped recording medlum, computer system and data copy preventing method)
US5818934A (en) * 1996-12-18 1998-10-06 Phillips Electronics North America Corporation Method and apparatus for providing a cryptographically secure interface between the decryption engine and the system decoder of a digital television receiver
JP4083925B2 (ja) 1999-06-24 2008-04-30 株式会社日立製作所 情報処理装置、カード部材および情報処理システム
US6912557B1 (en) * 2000-06-09 2005-06-28 Cirrus Logic, Inc. Math coprocessor
JP4045777B2 (ja) 2001-10-30 2008-02-13 株式会社日立製作所 情報処理装置
JP3904432B2 (ja) * 2001-11-16 2007-04-11 株式会社ルネサステクノロジ 情報処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4064558A (en) * 1976-10-22 1977-12-20 General Electric Company Method and apparatus for randomizing memory site usage
CN1391163A (zh) * 2001-06-08 2003-01-15 提阿克股份有限公司 信息处理装置及程序复原方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108270427A (zh) * 2017-01-03 2018-07-10 意法半导体(鲁塞)公司 用于对集成模块的电流消耗进行管理的设备和方法
CN108270427B (zh) * 2017-01-03 2021-06-15 意法半导体(鲁塞)公司 用于对集成模块的电流消耗进行管理的设备和方法

Also Published As

Publication number Publication date
US20050108498A1 (en) 2005-05-19
US7454017B2 (en) 2008-11-18
CN1619588A (zh) 2005-05-25

Similar Documents

Publication Publication Date Title
CN100356342C (zh) 信息处理装置
US20220405428A1 (en) Masked gate logic for resistance to power analysis
CN100390695C (zh) 更少信息泄露的设备与方法
KR100837270B1 (ko) 스마트 카드 및 그것의 데이터 보안 방법
US7661132B2 (en) Tag privacy protection method, tag device, backend apparatus, updater, update solicitor and record medium carrying such programs in storage
US9571289B2 (en) Methods and systems for glitch-resistant cryptographic signing
Oren et al. On the effectiveness of the remanence decay side-channel to clone memory-based PUFs
KR20170098731A (ko) 부채널 분석으로부터 회로를 보호하는 방법
EP1308885A1 (en) Information processing and encryption unit
US6666381B1 (en) Information processing device, information processing method and smartcard
KR20100021446A (ko) 물리적 복제 방지 기능을 이용한 전자 장치의 전자 보안 방법 및 시스템
CN105406957B (zh) 保护密码设备对抗实现攻击
Tunstall Smart card security
CN102014015A (zh) 智能密钥设备的自检方法
US8321691B2 (en) EMA protection of a calculation by an electronic circuit
US20020124179A1 (en) Fault detection method
Garcia et al. Wirelessly lockpicking a smart card reader
US20040064715A1 (en) Method and device for accessing a memory to prevent tampering of a program in the memory
JP4386766B2 (ja) データ処理装置における誤り検出
KR101997005B1 (ko) 전력 분석을 통한 도청에 대항하여 전자 회로를 보호하는 방법 및 이를 이용한 전자 회로
JP2006019872A (ja) 暗号処理装置
JP4435593B2 (ja) 耐タンパー情報処理装置
JP2005149262A (ja) 情報処理装置
Karri et al. Parity-based concurrent error detection in symmetric block ciphers
US7886163B2 (en) Authentication protocol with memory integrity verification

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
ASS Succession or assignment of patent right

Owner name: NEC CORP.

Free format text: FORMER OWNER: RENESAS TECHNOLOGY CORP.

Effective date: 20100812

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: RENESAS ELECTRONICS CO., LTD.

Free format text: FORMER NAME: NEC CORP.

COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: TOKYO, JAPAN TO: KANAGAWA, JAPAN

CP01 Change in the name or title of a patent holder

Address after: Kanagawa, Japan

Patentee after: Renesas Electronics Corp.

Address before: Kanagawa, Japan

Patentee before: NEC ELECTRONICS Corp.

TR01 Transfer of patent right

Effective date of registration: 20100812

Address after: Kanagawa, Japan

Patentee after: NEC ELECTRONICS Corp.

Address before: Tokyo, Japan

Patentee before: Renesas Technology Corp.

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071219

Termination date: 20131116