JP4435593B2 - 耐タンパー情報処理装置 - Google Patents

耐タンパー情報処理装置 Download PDF

Info

Publication number
JP4435593B2
JP4435593B2 JP2004027550A JP2004027550A JP4435593B2 JP 4435593 B2 JP4435593 B2 JP 4435593B2 JP 2004027550 A JP2004027550 A JP 2004027550A JP 2004027550 A JP2004027550 A JP 2004027550A JP 4435593 B2 JP4435593 B2 JP 4435593B2
Authority
JP
Japan
Prior art keywords
data
bit
information processing
random number
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004027550A
Other languages
English (en)
Other versions
JP2005223477A5 (ja
JP2005223477A (ja
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.)
Renesas Technology 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
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2004027550A priority Critical patent/JP4435593B2/ja
Priority to CNB2004100926745A priority patent/CN100356342C/zh
Priority to US10/990,977 priority patent/US7454017B2/en
Publication of JP2005223477A publication Critical patent/JP2005223477A/ja
Publication of JP2005223477A5 publication Critical patent/JP2005223477A5/ja
Application granted granted Critical
Publication of JP4435593B2 publication Critical patent/JP4435593B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Description

本発明は、情報処理装置における消費電力解析やハードウェアプロービングによる処理情報の読み出し・解析を防止することのできる、耐タンパー情報処理装置に関するものである。また、データ記録・読み出し時における攻撃による、データ変化・改ざんを検出することの出来るフォールトディテクタブル(Fault Detectable)な、もしくはデータ変化・改ざんを自動的に回復することのできるフォールトトーレラント(Fault Tolerant)な耐タンパー情報処理装置に関するものである。特に、そのような機能が要件であるICカード(スマートカード)に代表される、1チップに集積された情報処理装置に関するものである。
あるシステムや装置に対する「アタッカー」とは、設計者が意図していない方法を用いて、システムや装置に対する解析や攻撃を行い、本来外部に開示されない情報を取り出す行為者のことを意味する。ICカードに代表される高いセキュリティを持ったマイクロコンピュータチップでは、アタッカーをはじめとして正規のユーザーでさえも自由に読み書きできないように期待される情報の保持や、秘密情報である暗号鍵を使って、秘匿するべく期待されるデータの暗号化や復号化を行うことがある(例えば、特許文献1を参照)。
尚、特許文献1は、デジタル受信機、例えば、MPEG−2デジタルテレビジョン受信機
の復号機関と、システムデコーダとの間において、第1データバスのN並列ビットラインの各々のNビットの暗号文ビットストリームのビットオーダをスクランブルして、Nビット幅のスクランブルされた暗号文ビットストリームを発生させ、スクランブルされたNビットの暗号文ビットストリームのビットオーダをスクランブル解除して、元の暗号文ビットストリームと同一のスクランブル解除された暗号文ビットストリームを発生させる旨を開示する。
マイクロコンピュータの基本構成は、図1に示すように、中央演算装置101、記憶装置104、そして各部の情報のやりとりを行うための入出力ポート107、およびそれらを結ぶ信号線103を有している。中央処理装置101は、論理演算や算術演算などを行う装置であり、記憶装置104は、プログラムやデータを格納する装置である。記憶装置104は、例えばROM(Read Only Memory)やRAM(Random Access Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、FRAM(Ferromagnetic Random Access Memory)などを用いて構成される。ROMは、内容が固定された、変更できないメモリであり、主にプログラムを格納するメモリである。RAMは自由に書き換えができるメモリであるが、電源の供給が中断されると、記憶している内容が消失する。すなわち、デバイスへの電源供給が中断されると、RAMの内容は、保持できなくなる。EEPROM、FRAMは、電源の供給が中断されてもその内容を保持することができるメモリである。
例えば接触型ICカードに供されるコンピュータの本体の例を、図2に示す。図2にはこの半導体装置のチップをプラスチックカード上に実装した場合の端子配置を示している。当該コンピュータの本体は、カードの中央の横に配置されたCOTと呼ばれるパッケージ形態のICチップ202である。図2には端子配置の例が示されている。即ち、ICカードは、Vcc(供給電源)、GND(グランド)、RST(リセット)、I/O(入出力)、およびCLK(クロック)の端子を持つ。前記チップはこれらの信号を外部から、例えば端末機から、供給されることによって稼動する。前記端末機自体は基本的に一般のカード・システムのものを用いることができる。
ICカードに代表される、マイクロコンピュータに対する攻撃の方法として、非特許文献2に記載された差分電力解析(Differential Power Analysis)が知られている。DPAは、マイクロコンピュータによる暗号化処理時の消費電力を解析することで、暗号化処理で使用した秘密の鍵を特定する攻撃である。消費電力は図2におけるVccとGNDの間に抵抗を設置し、その両端の電圧を観察することによって測定することができる。消費電力の測定方法については、非特許文献2にも一例が記載されている。
消費電力解析攻撃を防止するための技術として、特許文献2において、データを情報処理装置間で暗号化して送受信する方式が開示されている。同方式を用いることで、データ転送時の消費電力と転送データとの相関を低く、もしくは無くすことができるため、消費電力解析攻撃は著しく困難なものとなる。
また、特許文献3において、データの値が同じであっても、消費電流が予測不可能な方法で変化させる方法として、データを暗号化し、暗号化の鍵を短い期間で変化させることにより、データの真の値と電気的な表現の関連性を予測不能にする技術が開示されている。
一方で、FIB加工などの物理的な改造を行うなどの方法により、処理データを故意に変化させることで、秘密の暗号鍵を取り出す攻撃が知られている。例えば、RSA暗号の処理中に処理データを変化させることで秘密の暗号鍵を取り出す攻撃が、非特許文献3として、DES暗号に対する攻撃が、非特許文献4として発表されている。一般的な対策として、同一の処理を2度以上行い、その結果が一致すれば処理結果が正しいと判定する方法が知られている。
特表2000−507072号公報
特開2001−5731号公報 特開2003−152702号公報 Paul Kocher,Joshua Jaffe,Benjamin Jun,"Differential Power Analysis,"Advances in Cryptography−CRYPTO‘99,pp.389−397,Springer−Verlag,1999 W.Rankl,W.Effing,"Smart Card Handbook Second Edition",John Wiley&sons,LTD.p.422 D.Boneh,R.A.Demillo,R.J.Lipton,"On the Importance of Checking Cryptographic Protocols for Faults",Proc. of EUROCRYPT‘97,pp.37−51,Springer−Verlag,1997 E.Biham,A.Shamir,"Differential Fault Analysis of SecretKey Cryptosystems" ,Proc. of Crypto‘97,pp.513−525,Springer−Verlag,1997 Alfred J.Menezes、PaulC.van Oor.Vanstone、"HANDOBOOK of APPLIED CRYPTOGRAPHY",CRC press,p.516
本発明の課題は、消費電力解析攻撃を困難にすると同時に、ハードウェアプロービングによる、直接のデータ読み取りをも困難なものとし、さらにはデータバスにおけるデータ転送中のエラーを検出もしくは修正することである。すなわち、高いセキュリティを持つ情報処理装置を提供せんとするものである。当該情報処理装置としてはコンピュータシステム、わけてもマイクロコンピュータシステムを代表例としてあげることが出来る。更には、本発明は、高いセキュリティを持つ、ICカード(スマートカード)に代表されるカード部材、およびカード・システムを提供するものである。
本発明のより技術的な課題を示せば、それは、マイクロコンピュータチップでのデータ処理と消費電力との関連性を減少させることである。また、チップ内部で転送されるデータのプロービングによる直接読み取りや改ざんを防止することである。特にICカードは、秘匿するべき重要な情報の格納や、カード内での暗号処理やデータの認証処理を行うために用いられている。このように高い安全性を要求される用途にICカードが用いられるのは、プログラムや重要な情報がICカードチップの中に密閉されており、さらには様々な情報隠蔽措置が施され、秘密データの処理を盗み見ることが困難であるためである。
従来、ICカードにおける暗号処理を解読することは、暗号アルゴリズム自体の解読の困難さと同程度と考えられていた。しかし、ICカードが暗号処理を行う際の消費電力を解析することにより、暗号処理の内容や暗号鍵を推測する攻撃方法は、暗号アルゴリズムの直接的な解読を行う方法よりも容易であると目されている。
P.Kocherらによって提案された消費電力解析と呼ばれるこの方法は、ICカードが処理するデータのビット状態と消費電力の間に関連性があることを利用した攻撃である。従って、消費電力とチップの処理との関連性が小さくなれば、観測した消費電力から、ICカードチップ内での処理や暗号鍵を推測することは困難になる。本発明の着眼点は、マイクロコンピュータの消費電力と処理されるデータとの関連を減少させることである。その手段の主なものは、消費電力の差を生み出す原因の一つである信号線(例えば、バスラインや、RAM内のビット線、ワード線等)の充放電を元のデータと異なるものにすることによるものである。
以下にまず、本発明の背景となる消費電力の観測による、処理の解読の可能性について説明する。このことが理解されれば、本発明の趣旨が容易に理解されよう。
上述の消費電力解析の骨子は次の通りである。ICカード用チップを構成するCMOS(Complemetary Metal−Oxide−Semiconductor) のゲート回路は、出力状態が1から0あるいは0から1に変わった時に電力を消費する。特に信号線は大きな配線容量を持つため、ゲート回路は、バスのデータ値が1から0あるいは0から1に変わると、その充放電のために大きな電力を消費する。こうした消費電力を観測すれば、ICカード用チップの中での情報処理の内容が解読される可能性がある。
図3は、ICカード用チップの1サイクルでの消費電力の時系列波形を示したものである。処理しているデータの値に依存して、消費電力の波形が301や302のように異なる。このような複数の消費電力に対する波形の差は、信号線を流れるデータや中央演算装置で処理しているデータ等に依存して生じる。
現在、ICカード用チップの信号線の制御方式には、大別して二つの種類がある。一つはスタティック信号線制御方式であり、もう一つがプリチャージ信号線制御方式である。スタティック信号線制御方式は、バスが保持しているデータのクリアを行わないものである。一方、プリチャージ信号線制御方式は、一回の処理が終わる毎にデータをクリアするために、信号線のデータを全て1または0にしてから次のデータを乗せる制御方式である。尚、プリチャージを信号値の1か0のどちらにするかは、論理回路が順論理か、逆論理かで異なる。しかし、その動作の本質は変わらない。
上述の基本動作の説明から明らかなように、この制御方式の違いにより、消費電力の波形が異なる。消費電力波形の違いから、どちらの制御方式を用いているかを判断する事ができる。信号線の制御方式がわかれば、固定されている暗号鍵について、処理するデータを変更して、それに応じた消費電力の変化を観測することにより、暗号鍵のビット値の影響が観測できる。さらに、これらの消費電力の波形を分析することにより、暗号鍵を推定できる可能性が生ずる。消費電力の具体的な分析方法を決定するには、解析対象である処理の方式に関する情報が必要であるが、現代暗号の成果の一つである暗号アルゴリズムの公開と標準化によって、暗号化方式に関する情報は得やすくなっている。
すでに述べたように、バスデータの暗号化による消費電力と実データとの相関を減少させる方法については、特許文献2によって開示されている技術が存在する。特許文献2の方法は、(a)バスラインの両端に暗号化・復号化装置を設置し、同一の暗号鍵を用いて、送信側で暗号化を行い、受信側で復号化を行う。(b)情報記憶装置に接続されたバスラインにおいて、データ送信側に暗号化・復号化装置を設置し、同一の暗号鍵を用いて、送信側において暗号化を行ったデータを情報記憶装置に記憶する。情報記憶装置からのデータ読み出しの際には、先の暗号鍵を用いて復号化を行う。という2通りの方法である。(他の方法も開示されているが、本発明に関連しないためここでは述べない。)
確かにこの方法を用いて、消費電力と実データとの相関を減少させることが出来る。しかし、(a)については、情報記憶装置へのデータ書き込み及び読み出しが実データについて行われるので、その際に生じる実データに依存した消費電力が観測される。また、復号化を行った後のデータをプロービングによって直接読み出すことが可能である。(b)については、バスラインのプロービングによるデータの読み出しを行えば、情報記憶装置に記憶されるデータを知ることができる。この場合、一度に大量のデータが送信されるため、すべてのデータを捕捉することが出来ないとしても、一部のデータを目印として、情報記憶装置に記憶されている情報を読み出せば、逐次一連のデータを取得することができる。取得したデータは暗号化されているものの、暗号処理の実装方法によっては、同一データがどのタイミングで使用されたかを判定するだけで、暗号鍵を取得することができる。また、暗号鍵を送信側と受信側で共有する必要があるため、そのための専用のバスラインを用意する必要があり、そのバスラインをプロービングすることによって暗号鍵を得ることが出来る可能性があるという点にも注意する必要があろう。
消費電力解析への対策が必要である一方で、バスラインに対する直接のプロービングによるデータ読み出しに対する対策が必要である。データはICチップ内部のバスラインを通じて各モジュール間で送受信される。そのバスラインを流れるデータを直接プロービングすることによって、送受信データを読み取ることができる。プロービングは、LSIのデバッグやテスティングの際に、一般的に用いられる方法である。暗号の実装方法によっては、すべてのバスデータを一度に読み取る必要は無く、一部の配線を通じてやり取りされるデータを観測すれば十分である場合がある。例えば、RSA暗号を実装する方式の一つとしてバイナリ法が知られているが、バイナリ法では、あるタイミングで使用されるデータが2種類のいずれであるかを逐次判定できれば、最終的に暗号鍵を特定することが出来る。2種類の判定であるならば、最小で1本のバスラインを監視すればよい。よって、一部の配線のみを観測しても暗号の解読が行えないことが必要である。
また、データは電気的に送受信されるため、たとえばFIB加工によって物理的に配線をGNDに接続するなどして、一部もしくは全部のデータが故意に変化させられる可能性がある。アタッカーが故意に狙った暗号処理タイミングでこのような攻撃を行えば、特許文献3、4に記載のように、暗号鍵を読み取られる可能性がある。そのため、配線を通じて転送されるデータの完全性を確保する必要がある。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば下記のとおりである。
演算装置と、前記演算装置から送信されるデータを格納する記憶装置と、前記演算装置と前記記憶装置とを接続する(N+r)ビットのデータバスと、乱数生成装置と、データ変換装置とを有し、前記データ変換装置は、前記演算装置から送信されるNビットのデータを前記乱数生成装置で生成されたrビットの乱数からなるデータを鍵として前記Nビットのデータを暗号化しNビットの暗号化データを生成し、前記暗号化データと前記乱数とを連接することにより(N+r)ビットのデータを生成し、前記(N+r)ビットのデータをデータバスに出力することを特徴とする情報処理装置。
上記構成により、消費電力を解析することによるマイクロコンピュータ内部の状態を推定すること、バスラインをプロービングすることによるデータの読み出しを行うこと、転送データの改ざんを行うことなどの攻撃に対抗するために、内部データのランダム化を行う。そのための、データ変換装置およびデータバス構成および情報処理装置構成を与える。
本発明は、消費電力を解析することによるマイクロコンピュータ内部の状態を推定すること、バスラインをプロービングすることによるデータの読み出しを行うこと、転送データの改ざんを行うことが困難とする効果を奏する。その結果、消費電力解析や、差分故障解析といった、暗号処理に対する攻撃への耐性を向上させることが出来る。
ここで、以下の説明の理解を容易にする為、本願明細書での特徴的な用語である「暗号化」と「ランダム化」について説明する。
「暗号化」とは、ある暗号化鍵を用いて、あるデータをある規則に従って、変化させる動作のことをいう。「暗号化」においては、暗号化鍵は暗号化装置の内部に保持されるため、暗号化データとは一緒に送信、転送されることはない。一般的な暗号アルゴリズムは、暗号化鍵に暗号の安全性を依存しているため、基本的に装置外部に暗号化鍵が出力されることはない。そのため、暗号化装置の外部において暗号化データを観察しても、アタッカーは暗号化鍵に関する情報を得ることは出来ない。二者間で安全に暗号化鍵を共有するためには、Diffe−Hellman鍵共有方式(非特許文献5を参照)や公開鍵暗号を用いた方法が用いられる。
一方、本願明細書における「ランダム化」とは、以下の(1)〜(3)のいずれかを意味するものとする。(1)データをランダム化鍵によって暗号化した結果と、ランダム化鍵との連接を行う。(2)データとランダム化鍵との連接で得られるデータを非線形変換によって変換する。(3)データをランダム化鍵によって暗号化した結果と、ランダム化鍵との連接を行い、さらに非線形変換を行う。
尚、上記(1)、(3)の「ランダム化」において、データを暗号化するという点においてはランダム化鍵と暗号化鍵とその役割は同じであるが、暗号化されたデータと共に転送されるという点において「暗号化」における暗号化鍵と異なる。そのため、アタッカーは十分に精密にデータを取得すれば、ランダム化鍵と、データまたは暗号化されたデータとを特定することが原理的に可能である。この点において、暗号化は本質的に異なるといえる。ただし、本提案のランダム化装置は、ランダム化されたデータとランダム化鍵から構成される転送データの観測が十分でなければ、ランダム化鍵やデータを推定することが困難であるようにランダム化を行う。ランダム化ではランダム化鍵をデータまたは暗号化データと共に転送するため、転送データが一般に、ランダム化鍵ビット長nとデータビット長mの和であるn+mビットのデータとなる。
課題を解決するために、本発明が基礎とする考え方は次の3通りに分類される。
(1)データのランダム化
第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を得ることが出来る。
ランダム化データとして、3通りの形態がある。1つ目の形態は、ランダム化するべきデータをランダム化鍵によって暗号化した結果と、ランダム化鍵との連接によって得られる形態である。2つ目の形態は、ランダム化するべきデータとランダム化鍵との連接で得られるデータを非線形変換装置によって変換した結果得られる形態である。3つ目の形態は、1つ目の形態のランダム化データをさらに非線形変換装置によって変換した結果得られる形態である。
1つ目の形態と3つ目の形態においては、データがランダム化鍵によって予測できない形態に変換されるため、アタッカーは転送データの形態を予測することができない。これにより、転送データの形態を予測することが必要な消費電流解析などを効果的に防止することができる。2つ目の形態は、データのハミングウェイトが変化しないため、完全な消費電流解析対策とはならないが、ランダム化鍵を連接することによって消費電流におけるデータ依存成分のS/N比が小さくなり、攻撃を困難にする効果が得られる。すなわち、ランダム化鍵を用いてビット拡張を行うことは、消費電流解析に対する耐性を向上させる効果がある。
本発明で開示する方式は、特許文献2と異なり、受信側すなわち情報記憶装置側にもランダム化・復元装置を設置しており、ランダム化鍵も送信側と受信側で異なるように設定する。また、特許文献2は暗号化鍵を用いた暗号化を行っているが、本発明で開示する方式は、暗号化とは本質的に異なる、ランダム化を行っている。
そして、例えば、ランダムに配線された微細なバスに対して正確なハードウェアプロービングを行わなければならないなどの物理的な制約も考慮すれば、アタッカーが転送データを十分正確に観測することは難しく、現実的に攻撃を行うことは難しいといえる。
受信側Bは、さらに情報記憶装置に接続されるとしたが、その間に外部通信装置を設置することで、ランダム化を保った状態で外部へのデータ転送を行う場合もある。
(2)ビット転送時の配線選択のランダム化
第2の形態は、データを送受信する際に、ある1ビットの送受信に使用する配線を、複数の配線からランダムに選択する方法である。配線とデータビットの対応は、ランダム化鍵に依存して決定される。
情報処理装置内部で取り扱うデータは、一般的に8の倍数ビットを単位としている。一般の情報処理装置では、データdの上位ビットからd0,d1,…,d7とし、バスラインの番号0から7を対応させる。これは、配線長を出来るだけ短くすることでデータ転送遅延を極力減少させるため、また、整然と配線することによってデバッグやテスティング時のバスライン番号の判別を容易にするためである。本発明では、データ送受信の際のデータdとバスライン番号との対応関係を、データ転送ごとに変化させる。さらには、両者の対応は非線形な関係となるように構成する。対応を非線形な関係とすることで、バスラインを異なるタイミングで複数回観察しても、ランダム化される前のデータに関する情報を容易に得られないようにすることができ、耐タンパー性が向上する。
データ転送ごとにデータのビット番号とバスライン番号との対応関係が変化するため、アタッカーは単一のバスラインをプロービングによって観測しても、現在データの第何ビットを観測しているかを知ることができない。これはすなわち、アタッカーがすべてのバスラインを観測しても、データビット番号とバスライン番号との対応関係を規定するアルゴリズムが分からなければ、得られる情報はデータのハミングウェイトのみであることを意味する。64ビットバスラインであれば、ハミングウェイトhに対応するデータは、64Ch通り存在する。たとえば最も起こりうる場合であるh=32の場合、対応するデータの候補は64C32=260.7通りとなり、総当りによる検索は事実上不可能である。さらに、マイクロコンピュータは微細加工されているため、プローブのサイズによる制約から、一度に観測することの出来るバスラインの本数は限られ、実際に攻撃を行うことは著しく困難なものとなる。
(3)エラー検出用符号を用いた転送時ビットエラーの検出
データ送受信の際のデータバス幅を増加し、データとともにエラー検出用符号を併せて送る。受信側では、エラー検出用符号の正当性を検査し、必要であれば、エラー検出処理を行い、エラーが含まれていれば、エラー信号を発行する。
エラー検出用符号は、送信されるデータとは独立の乱数としても良く、その場合、受信側でも同じ乱数を共有もしくは生成する。先の対策方式によって、送信データに依存してデータ転送に使用されるバスライン番号とデータのビット番号が異なることに注意すると、エラー検出用符号を乱数とすることによって、同一データを転送する際にも、ビット番号とバスライン番号の対応が毎回変化するため、耐タンパー性を向上させることができる。同じ乱数を共有するためには、送信側で生成した乱数を、バスラインを通じて受信側に転送しても良いし、LFSRなどの良く知られた擬似乱数生成器を用いることもできる。送信側で生成した乱数を、バスラインを通じて受信側に転送する場合、送信する乱数がバスラインにおいてアタッカーの攻撃を受けて変化しても、引き続きデータを転送する際に、送信側と受信側での共有乱数の不一致によって速やかにエラーが発見される。よって、乱数を共有する際のバスラインにおけるデータの完全性の保障については、特別な対策を行う必要は無い。この点は、従来の暗号化を用いる方式では実現することのできない、本願発明の特徴である。擬似乱数生成器を用いる場合は、各々の擬似乱数生成器が同一の擬似乱数列を出力するように初期化し、同一タイミングで同一の数が得られるように構成する。そのような方法として最も容易なのは、同一の初期値から動作を開始し、同一のクロックタイミングで順次乱数列を出力するように構成する方法である。
乱数を用いるのではなく、エラー検出符号を送信データに依存して生成して使用しても良い。その場合は、同じデータについて同じエラー検出符号が生成されるため、データのランダム化効果は得られない。しかし、さらに(1)に従って送信データのランダム化を併せて行うことで、データのランダム化を行うことが出来る。エラー検出符号の代わりに、エラー訂正符号を使用すれば、受信側で、エラー訂正用符号の正当性を検査し、データにエラーが含まれていれば、エラーからの回復を試みることができる。
<実施例1>
本実施例では、CPUから記憶装置にデータを記録する際のデータ変換装置の配置について記述している。
ここで、データ変換装置は、データの非線形変換を行うものであり、データのビット表現そのものを変化させる機能を有する場合と、データのビット表現そのものを変化させる機能およびデータのビット番号とバスの番号との対応関係を変換する序列の変換機能も有する場合がある。ビット表現を変化させるとは、少なくとも一つ以上のあるデータDの変換Fによる像(D)のハミングウェイトがDとは異なることを意味し、序列の変換とは、すべてのDについて、DとF(D)のハミングウェイトが常に一致するように変換を行うことを意味している。データの変換は一般に、このビット表現を変化させる場合と序列を変化させる場合の和集合であるから、本願発明においては両者を総じてデータ変換装置と呼ぶことにする。特に呼び分ける場合は、前者をビット表現変換装置と呼び、後者をビット序列変換装置と呼ぶ。
データ序列変換装置のみを用いた場合でも、ハードウェアプロービングに対する耐タンパー性を得ることができるため、構成要素として単にデータ変換装置と表記する場合は、当該部分をデータ序列変換装置と読み替えて構成することも意味している。
図4に示すように、CPU401から記憶装置402にデータDを記録する場合、データDはCPUからデータバス404に向けて送り出される。データDはまず、データ変換装置403に入力され、データ変換装置403は変換処理FによってデータDを変換し、データD'を出力する。データD'は、データバス404を経由してデータ変換装置405に入力される。データ変換装置405では、変換処理FによってデータD'をデータDに変換して出力する。データDは記憶装置402に記録される。
ここで、データ変換装置403および405に関して、同じデータ変換処理Fによって、403ではD'=F(D)としてD'を得、405では、D=F(D')として得ている。変換と復元を異なる処理として行うように構成すれば、CPU401側と記憶装置402側でそれぞれ、変換及び復元用の装置を設置する必要があり、本実施例のように構成する場合に比べて2倍程度の装置規模となる。本実施例で述べたような変換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)を入れ替える処理がその一例である。明らかに、この入れ替えを2度繰り返すと、元の状態に戻る。また、図5に示すように、GF(2n)における逆元を求める変換INVを変換Fとして使用することが出来る。逆元を求めるとは、あるデータDについてDxD'=1となるようなD'を求めることを言う。一般にD'はD-1とも表記される。データDが32ビットの数である場合、データDをGF(232)の元であるとし、例えば既約多項式m(x)=x32+x7+x6+x2+1を用いて、
D'=F(D)=D-1mod m(x)
のようにしてデータD'を得る。データD'を、データバス503を通してデータ変換装置504に転送し、データ変換装置504においてD'をFで処理することによってDを得ることができる。これは、次に示す関係が成立するためである。
F(D')=D'-1 mod m(x)=(D-1)-1mod m(x)=D
<実施例2>
図6に示した本実施例では、データ変換装置を拡張し、データ変換部におけるデータ変換処理に先立って、逆元計算INVを行う前に鍵データRとの加算とデータ拡張を行うことによってさらにデータの攪乱を行う例である。ここでの加算とは、論理加算D'=D xor Rを意味している。その上で、データとD'とRの連接によってデータビット長を拡張し、データ変換部である逆元計算INVへの入力を得る。連接とは、データD'とRを平行接続することで、ビット長が両データのビット長の和であるデータをえることを意味する。これをD'│Rと表記する。CPU601から出力されたデータD0はデータ変換装置602に入力される。データ変換装置602は、さらに鍵加算部603とデータ拡張部604、逆元計算部605から構成されており、データD0 は鍵加算部603において鍵R0を加算されD0'となる。データ拡張部604でD0'とR0を連接したD1を得た後、D1はデータ変換部、すなわちここでは逆元計算部605を経てD2となる。D2はデータバス606を通り、次のデータ変換装置607に入力される。データ変換装置607は、内部に鍵加算部608および逆元計算部609を持つ。データD2は鍵加算部608において鍵R1が加算されD3となり、D3は逆元計算部609を経てD4となる。D4が記憶装置610に記録される。ここで、加算処理と逆元計算はGF(2n)で行うことに注意する。すなわち、加算は排他的論理和演算に対応する。排他的論理和演算は2度行うと互いに打ち消しあう性質がある。
データ読み出しの際は、上記の手順を全く逆方向に適用すればよい。このことは、
D4=(((D0+R0)│R0)-1+R1)-1 mod m(x)
より、逆方向の処理結果が、
t((D4-1+R1)-1 mod m(x)) +R0 =t(((((D0+R0)-1 +R1)-1)-1 +R1)-1 mod m(x)) +R0
=t(((D0+R0)-1 +R1+R1)-1 mod m(x)) +R0
=t((D0+R0)│R0))+R0
=D0+R0+R0
=D0
となることから、確認することが出来る。ここで、t(x│y)は、yを取り除いてビット長を縮める処理であり、データ拡張の逆変換に対応する。
本実施例のように装置を構成することで、鍵が異なるデータ変換装置602および607を用いて、データバス606を通過するデータの保護と、記憶装置610に記録するデータの秘匿が可能となる。本実施例では、データ変換装置602および607を独立した装置であるかのように記述したが、鍵加算とデータ拡張は順序を入れ替えることが可能であるため、データ拡張部604をデータ変換装置602の外部に持てば、データ変換装置602と607は同一の構成とすることができる。このとき、鍵のみが異なるという性質から、処理部のほとんどを共通化し、鍵を保持しているレジスタのみが異なるように構成することも可能であり、そのように構成することで、さらに装置の回路規模を縮小することが出来る。
<実施例3>
本実施例では、データ変換装置の構成例を示す。基本的なデータ変換装置は、データ変換部701のみからなり図7に示したように、データDを受け取り、データ変換を行った後にデータD'を出力する。しかし、図8に示したように、データ変換装置801は、データRをさらに入力として受け取り、データRを鍵とみなして、鍵データ保持用のレジスタ802に保持し、鍵は鍵加算部803においてデータDに加算され、その結果と鍵Rを合わせてデータ拡張部604によってデータ拡張した後にデータ変換部805に入力され、変換されたデータはD'として出力されるように構成することも出来る。図9では、さらにデータRを読み出すことが出来るように構成した例である。攻撃によりデータに連接された鍵データが変化した場合、データD'をデータDに戻す変換を行うことが出来なくなる。鍵データが変化する可能性がある場合は、鍵データの読み出しを適当なタイミングで行い、変化が起きていないことを確認し、変化している場合は書き込み線を通じて鍵データの書き込みを行う。一方、図10に示すように、データ変換装置1001は、鍵データを受け取る先を乱数源1002とし、鍵更新指示信号線からの信号によって鍵保持部1003に保持している鍵を更新するように構成することが出来る。このように構成することによって、データ変換装置1001によるデータ変換を予測もしくは操作できる者が存在しなくなり、バスを通じて転送されるデータD'の安全性をより高めることが出来る。この場合、鍵保持部のデータは読み出せないように構成することが望ましい。データD'生成時とデータD復元時の鍵が異なることによるデータの破損は、パリティやエラー検出符号などを用いて検出することができる。もちろん、この場合も、鍵保持部1003のデータを読み書きできるようにすることが可能であり、鍵の更新タイミングをランダムに決定するなどの、より複雑な鍵利用を行い、データの安全性を高める方法を取ることも出来る。
以上、データ変換装置におけるデータ変換について述べた。次にデータ変換装置によるデータ変換解除を図11に示す。データ変換解除とは、データ変換部によって変換されたデータD'から、元のデータDを取り出す処理を指す。データ逆変換部に入力されたD'はデータ逆変換部1102による変換の後、データ縮小部1103に入力される。データ縮小部は、入力をデータと鍵データに分割し、それぞれを鍵加算部1104に入力する。鍵加算部では、データと鍵データを加算し、その結果をDとして出力する。ここで、データ逆変換部の処理は、データ変換時のデータ変換部の処理は同一である。データ逆変換を経たデータは、鍵加算が行われたデータと鍵データとの連接になっているので、これを鍵データ縮小部がそれぞれに分割する。鍵加算部1104の処理は論理加算である。データ変換時の加算が論理加算であったことから、この処理によって元のデータDを得ることができる。データ変換時の鍵加算として共通鍵暗号による暗号化を用いた場合は、ここでの鍵加算は、同じ共通鍵暗号による復号化処理に対応する。データ縮小部で得られる鍵データは、後の鍵加算部で用いられると共に、後の実施例に示すように、破棄する場合とデータ転送中のデータ誤りの検出や訂正に使用する場合もある。
<実施例4>
図12に示した本実施例では、データ変換装置1201は、複数のデータ変換部1207を持つ。データRは鍵保持部1202に保持され、データCは選択情報保持部1203に保持され、データDはデータ変換装置1201に入力される。データDは鍵加算部1204において、鍵保持部1202に保持されたデータRが加算され、その結果は、データ拡張部1205に入力される。データ拡張部1205の結果は、処理選択部1206によって、選択情報保持部1203に保持されたデータCに基づいて複数から選択された一つ以上のデータ変換部1207に渡される。データ変換部1207は、受け取ったデータを変換し、データD'として出力する。このとき、どのデータ変換部1207が選択されたかが装置の動作電流などの様子から漏洩することを防ぐために、データCの如何に関わらず、すべてのデータ変換部1からNを動作させて、ノイズを増加させることもできる。
一方、図13に示すように、鍵加算部1304において鍵保持部1302に保持されているデータRを加算されたデータDは、データ拡張部1305を経て、データ変換部1306の1からNすべてに入力され、選択情報保持部1303の保持されたデータCに基づいて、出力選択部1307でN個の出力うちの1つが選択され、その結果をデータD'として出力するように構成することも出来る。この場合、出力選択部1307の動作は、データ変換部1306の動作と比較してわずかな動作であるため、消費電流等による判別は困難となる。
図14に、図12に対応するデータ変換解除時のデータ変換装置を示す。データ変換装置1401は、データD'を受け取り、処理選択部でデータ変換時に使用した処理選択情報Cに基づいて、データ逆変換部1404のいずれかを選択する。データ逆変換部1404は、先に述べた実施例と同様に、データ変換時の逆変換を行う。データ逆変換されたデータは、データ縮小部1405によってデータと鍵データに分離され、次の鍵加算部1406において加算される。加算結果が元のデータDとなる。加算が共通鍵暗号によって代替可能であることは、すでに述べたとおりである。図13に対応するデータ変換解除時のデータ変換装置も、同様にして構成することができる。また明らかに、図12と14が組み合わされている必要がなく、図13のデータ変換に図14のデータ変換解除を、図12のデータ変換装置に図13に対応するデータ変換解除を組み合わせても良い。
本実施例では、データ変換装置に、鍵保持部および鍵加算部、データ拡張部を併せた例を示したが、実際の仕様において、必ずしもこれらを統合して実装とする必要は無い。というのは、データ変換部のみでもアタッカーは多くの試行錯誤が必要となるため、鍵加算を行わずとも、安全性が十分であると判断できるためである。
<実施例5>
図15に示した本実施例では、データDを、データバス1504を通じて転送する際に、データDをデータRとともにデータ変換装置1503によって変形する。変形されたデータは、データバス1504を通過した後に、データ変換装置1505に入力される。データ変換装置1505は、データ変換装置1503の逆変換を行い、データRとデータDを得る。ここで、データRを乱数源から得られた乱数とすることで、データバス1504を通過するデータは、同一のデータDに対しても毎回変化するため、データDとデータバス1504を通過するデータの間の相関は無く、消費電流解析などの攻撃を防止することが出来る。また、データバス1504のプロービングによるデータ読み出しを行っても、データRが不明であるため、データDを推定することが困難となる。図15では、データDを32ビットの数とし、データRを8ビットの数とする例を示した。データ変換装置1503の出力は、データ変換装置1505でデータDとRを復元するために、40ビット以上とする必要がある。このとき、データRが不明であっても、データバス1504をプロービングして得た40ビットから、データDを256通りに限定することが出来る。しかし複数ブロックで構成されるデータにおいて、32ビットnブロックのデータは、256通りの候補数を持ち、実用上8ブロック以上(256ビット以上)のデータを推定することは困難である。もちろん、本実施例は、データDおよびRのビット長を制限するものではなく、データRのビット長を大きくしたり、またブロック数を増加させるためにデータDのビット長を小さくしたりすることで、総当りによるデータの推定をより困難にすることが出来る。本実施例においては、データ変換装置1505の出力であるデータRは、そのまま破棄してもよい。
一方で、図16に示すように、データRを、データバス1603を通じて転送し、データ変換装置1606の出力との比較を比較装置1609において行うように構成すれば、データバス1605を通じて転送されたデータのランダム化効果とともに、転送時のデータ変化などを検出することが出来る。データ変化の原因は、電気的な条件から発生するデータの破損である場合や、アタッカーによる故意のデータ破壊である場合などがある。特に、データ破壊によって暗号解読が行われる例があり、図16の実施例のようにデータの正しさを検証し、比較結果に基づいて適切なエラー処理を行うことで、このような暗号解読を防止することが出来る。データRのビット長を大きくすることで、より高いエラー検出性能を得ることが出来る。
ここでは、データの送信側と受信側で、データRをデータバスで転送共有する例を示したが、二つの同期した擬似乱数生成装置を用いることで、データ転送を省略することが出来る。擬似乱数生成装置の初期値を設定する場合には、本発明に従ったデータバスを用いることが出来る。
<実施例6>
図17に示した、本実施例では、データDをデータバス1701から分岐してエラー訂正コード(ECC)生成装置1702に接続して、データDに対応するECCコードを生成し、データバス1703を通じてデータDとともにデータ変換装置1704に入力する。データ変換装置1704で変換されたデータは、データバス1705を通じてデータ変換装置1706に入力され、データ変換装置1706は、データDとECCコードに入力データを分離する。ECCコードとデータDは、それぞれデータバス1707、1708を通じてECC検査装置1709に入力され、ECC検査装置1709は、必要でありかつ可能であれば、データDに含まれるエラーを修正し、修正されたデータDを出力する。また、データDにエラーが含まれていた場合は、エラー信号出力線を通じて、エラーが発生したことを伝える。ここで、エラー信号出力線は、必ずしもエラー信号のみを出力するものではなく、エラーが含まれなかった場合は、正常にデータ転送が行われたことをあらわす信号を出力したり、エラーが発生した場合においても修正が可能であったかどうかをあらわす信号を出力したりするように構成することで、より適切にデータを管理することが出来る。
<実施例7>
図18に示した本実施例では、データDを転送する際に、鍵加算装置1801において鍵K0を加算し、その結果はデータバス1803を通じてデータ変換装置1804に入力される。また、データバス1803は、ECC生成装置1802に接続されており、ECC生成装置1802は入力データに基づいてエラー訂正コードを生成する。同エラー訂正コードは、データバスを通じて、データ変換装置1804に入力される。データ変換装置1804は、2つの入力に基づいたデータ変換を行い、変換されたデータは、データバス1805を通じてデータ変換装置1806に送られる。データ変換装置1806は、入力データを2つに分離し、データバス1807および1808を通過してECC検査装置1809に送る。ここで、2つのデータは、データ変換装置1804に入力された2つのデータに対応する。すなわち、一方はデータDに鍵K0が加算されたデータであり、もう一方は、それに対応するエラー訂正コードである。これら2つのデータから、ECC検査装置1809は必要に応じてエラー訂正を行い、結果を鍵加算装置1810に渡す。ECC検査装置1809は、データにエラーを検出した場合、エラー信号出力線を通じて、エラーが発生したことを通知する。鍵加算装置1810は、受け取ったデータに鍵K1を加算し、データD'を出力する。本実施例において、鍵K0をランダムに変化させることで、データDが固定値であっても、データバス1805を通過するデータはランダム化されるため、アタッカーはデータバス1805を監視しても、データDを得ることが出来ない。また、鍵K0と鍵K1を等しいものとすることで、データDはデータD'と等しいものとなる。この場合、本実施例では、鍵加算装置1801によってデータDに鍵K0を加算した上で、ECC生成装置1802によるエラー訂正コードの生成を行ったが、順序を入れ替えて、データDに関するエラー訂正コードを生成し、その後データDに鍵K0を加算したものをデータ変換装置1804に入力し、データ変換装置1806の出力に関しても、データに鍵K1(ただし、今K1=K0と仮定している)を加算した後でECC検査装置1809によるエラー検査および訂正を行うように構成しても同様に転送データの安全性を確保することが出来る。
図19に示した実施例は、特にデータDの送信先が記憶装置1906である場合である。記憶装置1906は、データ変換装置1907およびECC検査装置1908、鍵加算装置1909を内部に保持している。データバス1905を通して記憶装置1906に送付されたデータは、データ変換装置1907によってデータ部とエラー訂正コード部に分離され、ECC検査装置1908において、データ部の正しさの検証もしくはデータ部の修正が行われる。ECC検査装置1908の出力は鍵加算装置1909に渡され、鍵加算装置1909では、受け取ったデータに鍵K1を加算した結果であるデータD'を出力する。記憶装置1906は、データD'を記憶する。このとき、鍵K0とK1を互いに独立な値とすることによって、データDの送出側は実際に記録されたデータD'の形式を知ることができず、記憶装置1906に記憶されているデータD'を読み取ってもデータDを推定することが出来ないという、高い安全性を得ることが出来る。
図20に示した実施例では、鍵加算装置2001においてデータDに鍵Kを加算した結果と、ECC生成装置2002によって生成されたエラー訂正コードに基づいてデータ変換装置2003を用いて変形して得たデータD'を、データバス2004を通じて記憶装置2005に記録している。データD'読み出しの際は、データバス2006を通してデータ変換装置2007に入力し、データ変換装置2007によってデータ部とエラー訂正コード部に分離した結果をECC検査装置2008に入力する。必要に応じて修正されたデータは、鍵加算装置2009において、鍵Kが加算された結果、データDとして得ることが出来る。この方式の特長は、データバス2004および2006に限らず記憶装置2005上でのデータ変化をECC検査装置2008において検出もしくは修正することが出来るという点である。鍵KはデータDに対応しており、必ずしもシステムで固定されている必要は無い。例えば、記憶装置のメモリアドレスやシステムのクロックカウントに依存した一時鍵を自動的に生成する鍵生成装置を用いて鍵Kを生成するように装置を構成すれば、ユーザーが鍵Kの管理が全く不要で、暗号化の有無を意識せずともよい、安全な装置を提供することが出来る。
図21に、データ変換装置を備える情報処理装置の例を示す。情報総理装置の中央演算装置2101およびコプロセッサ2102、入出力ポート2107、記憶装置2104には、データ変換装置2108を設置しており、データが内部バス2103を通過する際の、先に述べた各種攻撃への対策としている。ここで、データ変換装置2108は、図19に示すような鍵加算装置1901、ECC生成装置1903やECC検査装置1908、図16に示すような比較装置1609を内部に含む構成とすることがある。また、必ずしもすべての装置にデータ変換装置を設置する必要はなく、図20に示す実施例に見られるように、記憶装置にはデータ変換装置を設置しない構成も可能である。入出力ポート2107を通じて送受信されるデータは、基本的にアタッカーに既知の情報であるので必ずしもデータのランダム化などは必要ではない。
そこで、入出力ポートに設置されるデータ変換装置は、単にエラー検出・訂正を行える最低限の構成とすることで装置の実装負荷を軽減することが可能である。このとき、入出力ポートとのデータ送受信を行う装置は、エラー検出・訂正のみを行う特別なモードを備える。
一般的なマイクロコンピュータの構成図。 一般的なICカード(スマートカード)の外観。 マイクロコンピュータにおける2つの異なる処理に対応する、2種類の消費電力波形。 CPUから記憶装置にデータDを記録する際のデータ変形手順。 データDの変形に逆元計算器を用いた場合の装置構成を示す図。 データDの変形に際して鍵データ加算を併せて行う装置構成を示す図。 基本的なデータ変換装置。 鍵加算部とデータ変換部から構成されるデータ変換装置。 鍵入出力バスを備えたデータ変換装置。 鍵を乱数源から得るように構成したデータ変換装置。 データ変換解除を行うデータ変換装置。 複数のデータ変換部を持つデータ変換装置例1。 複数のデータ変換部を持つデータ変換装置例2。 複数のデータ逆変換部を持つデータ変換解除時のデータ変換装置例。 乱数RとデータDを併せてデータ変換装置に入力することで、バスラインにおけるデータの攪乱を行う情報処理装置。 乱数Rにより、バスラインデータの攪乱を行い、かつデータエラーを検出する構成とした情報処理装置。 エラー修正コードを用いてバスラインデータの攪乱を行い、かつデータエラーの検出修正を行う構成とした情報処理装置。 さらに鍵加算を行うことで、バスラインデータの攪乱を行う構成とした情報処理装置。 記憶装置内部にデータ変換装置、ECC検査装置、鍵加算装置を統合する構成とした情報処理装置。 バスライン中に記憶装置を設置することにより、データ変換コストを削減する構成とした情報処理装置。 データ変換装置を備えた、マイクロコンピュータの構成図。
符号の説明
101…中央演算装置、102…コプロセッサ、103…信号線1、104…記憶装置、105…プログラム格納部、106…データ格納部、107…入出力ポート、
201…ICカード、202…ICチップ、301,302…消費電力の波形、401…CPU、402…記憶装置、403,405…データ変換装置、404…データバス、501…CPU、503…データバス、504…データ変換装置、505…記憶装置、
2001、2009…鍵加算装置、2002…ECC生成装置、2003、2007…データ変換装置、2004,2006…データバス、2005…記憶装置、2008…ECC検査装置。

Claims (15)

  1. 演算装置と、
    前記演算装置から送信されるデータを格納する記憶装置と、
    前記演算装置と前記記憶装置とを接続する(N+r)ビットのデータバスと、
    乱数生成装置と、
    データ変換装置とを有し、
    前記データ変換装置は、前記演算装置から送信されるNビットのデータを前記乱数生成装置で生成されたrビットの乱数からなるデータを鍵として前記Nビットのデータを暗号化しNビットの暗号化データを生成し、前記暗号化データと前記乱数とを連接することにより(N+r)ビットのデータを生成し、前記(N+r)ビットのデータをデータバスに出力することを特徴とする情報処理装置。
  2. 請求項1記載の情報処置装置において、
    前記データ変換装置が、さらに前記(N+r)ビットのデータに対し非線形変換を行ないデータバスに出力することを特徴とする情報処理装置。
  3. 演算装置と、
    前記演算装置から送信されるデータを格納する記憶装置と、
    前記演算装置と前記記憶装置とを接続する(N+r)ビットのデータバスと、
    乱数生成装置と、
    データ変換装置とを有し、
    前記データ変換装置は、前記演算装置から送信されるNビットのデータと前記乱数生成装置で生成されたrビットの乱数とを連接することにより(N+r)ビットのデータを生成し、前記(N+r)ビットのデータに対し非線形変換を行ないデータバスに出力することを特徴とする情報処理装置。
  4. 請求項2または3のいずれかに記載の情報処理において、
    前記非線形変換は、前記(N+r)ビットのデータの逆元を求める処理であることを特徴とする情報処理装置。
  5. 請求項1記載の情報処理装置において、
    前記乱数生成装置は、前記データバスの転送ごとに乱数を生成することを特徴とする情報処理装置。
  6. 請求項5記載の情報処理装置において、
    前記乱数生成装置は、擬似乱数生成装置であることを特徴とする情報処理装置。
  7. 請求項記載の情報処理装置において、
    第2のデータ変換装置を有し、
    前記第2のデータ変換装置は、前記データバスの各バスラインにより前記演算装置から前記記憶装置へ転送されて来る各ビットが、前記Nビットと前記rビットのいずれのビットに対応するかを判定し、前記(N+r)ビットの中から、前記Nビットを取り出し、前記rビットを廃棄することを特徴とする情報処理装置。
  8. 請求項記載の情報処理装置において、
    前記データ変換装置および前記第2のデータ序列変換装置は、(N+r)ビットのデータを入力として受け取り、GF(2 )における既約多項式m(x)およびm’(x)を法の値としたNビットの逆元を出力する変換装置であることを特徴とする情報処理装置。
  9. 請求項8記載の情報処理装置において、
    前記データ変換装置および前記第2のデータ逆変換装置において用いる前記既約多項式に関して、m(x)=m’(x)となるように構成することを特徴とする情報処理装置。
  10. 請求項9記載の情報処理装置において、
    データ比較装置と、
    前記乱数生成装置から得られたrビットをデータ比較装置に送信する第2のデータバスを備え、
    前記データ比較装置は、前記第2のデータ変換装置から得られたrビットと、前記第2のデータバスを通じて得られたrビットを比較し、両者のビットが一致した場合は前記rビットを破棄し、両者が一致しなければエラー信号を出力することを特徴とする情報処理装置。
  11. 請求項記載の情報処理装置において、
    データ比較装置と、
    第2の乱数生成装置とを備え、
    前記乱数生成装置および第2の乱数生成装置は、いずれも擬似乱数生成装置であり、前記乱数生成装置は第2の乱数生成装置との間に同期信号線を有し、前記乱数生成装置はデータ変換装置に接続され、前記第2の乱数生成装置は前記データ比較装置に接続され、前記比較装置は前記第2のデータ変換装置から得られたrビットと、前記第2の乱数生成装置から得られたrビットとを比較することを特徴とする情報処理装置。
  12. 請求項記載の情報処理装置において、
    前記データ変換装置および前記第2のデータ変換装置を複数備え、
    前記複数のデータ変換装置の出力のうちの一つを第1出力とし、前記第1出力を前記データバスを通じて前記複数の第2のデータ変換装置に入力し、前記複数の第2のデータ変換装置の出力のうち、前記の第1出力を除いた出力を破棄することを特徴とする情報処理装置。
  13. 演算装置と、
    前記演算装置から送信されるデータを格納する記憶装置と、
    前記演算装置と前記記憶装置とを接続するNビットのデータバスと、
    乱数生成装置と、
    データ変換装置とを有し、
    前記データ変換装置は、Nビットのデータを入力として受け取り、GF(2 )における既約多項式m(x)を法の値としたNビットの逆元を前記データバスに出力することを特徴とする情報処理装置。
  14. 請求項13記載の情報処理装置において、
    前記データバスに接続された第2のデータ変換装置を有し、
    前記データバスに入力されるNビットのデータは、前記演算装置からの出力であるdビットのデータと前記乱数生成装置からの出力であるrビットのデータとの連接として構成され、
    前記第2のデータ変換装置は、前記データバスの各バスラインにより転送されてくるNビットのデータについて前記既約多項式を法の値としたNビットの逆元を出力し、出力の各ビットが前記dビットと前記rビットのいずれのビットに対応するか判定し、(d+r)ビットの中から、前記dビットを取り出し、前記rビットを廃棄することを特徴とする情報処理装置。
  15. 請求項14記載の情報処理装置において、
    前記データ変換装置は、複数の異なるGF(2 )における既約多項式を法の値とした逆元を出力する変換装置から成り、前記第2のデータ変換装置は前記データ変換装置と同一であることを特徴とする情報処理装置。

JP2004027550A 2003-11-18 2004-02-04 耐タンパー情報処理装置 Expired - Fee Related JP4435593B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004027550A JP4435593B2 (ja) 2004-02-04 2004-02-04 耐タンパー情報処理装置
CNB2004100926745A CN100356342C (zh) 2003-11-18 2004-11-16 信息处理装置
US10/990,977 US7454017B2 (en) 2003-11-18 2004-11-18 Information processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004027550A JP4435593B2 (ja) 2004-02-04 2004-02-04 耐タンパー情報処理装置

Publications (3)

Publication Number Publication Date
JP2005223477A JP2005223477A (ja) 2005-08-18
JP2005223477A5 JP2005223477A5 (ja) 2006-08-17
JP4435593B2 true JP4435593B2 (ja) 2010-03-17

Family

ID=34998796

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4435593B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4986206B2 (ja) * 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置
JP5112123B2 (ja) * 2008-03-14 2013-01-09 株式会社東芝 携帯可能電子装置およびicカード
JP5146156B2 (ja) 2008-06-30 2013-02-20 富士通株式会社 演算処理装置
FR2935823B1 (fr) * 2008-09-11 2010-10-01 Oberthur Technologies Procede et dispositif de protection d'un microcircuit contre les attaques.
US8689357B2 (en) * 2012-05-19 2014-04-01 Freescale Semiconductor, Inc. Tamper detector for secure module
JP2017034555A (ja) * 2015-08-04 2017-02-09 株式会社ジェイテクト データ通信システム、データ通信機器及びデータ通信方法

Also Published As

Publication number Publication date
JP2005223477A (ja) 2005-08-18

Similar Documents

Publication Publication Date Title
US7454017B2 (en) Information processing unit
US10491372B2 (en) Protection method and device against a side-channel analysis
KR101680918B1 (ko) 특히 고차의 관측 공격에 대해 보호되는 암호화 회로
Merli et al. Side-channel analysis of PUFs and fuzzy extractors
US9571289B2 (en) Methods and systems for glitch-resistant cryptographic signing
US11418321B2 (en) Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method
Barenghi et al. Fault injection attacks on cryptographic devices: Theory, practice, and countermeasures
Barenghi et al. A fault induction technique based on voltage underfeeding with application to attacks against AES and RSA
KR20150064148A (ko) 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템
JP2005510095A (ja) 情報漏洩が低減される装置および方法
Tunstall Smart card security
Regazzoni et al. Can knowledge regarding the presence of countermeasures against fault attacks simplify power attacks on cryptographic devices?
JP4435593B2 (ja) 耐タンパー情報処理装置
JP4386766B2 (ja) データ処理装置における誤り検出
US10374791B2 (en) Method of protecting electronic circuit against eavesdropping by power analysis and electronic circuit using the same
Alioto et al. Differential power analysis attacks to precharged buses: a general analysis for symmetric-key cryptographic algorithms
Karri et al. Parity-based concurrent error detection in symmetric block ciphers
JP2005045760A (ja) 暗号処理方法及び装置
JPWO2005027403A1 (ja) 情報処理装置
Ruchti et al. When the Decoder Has to Look Twice: Glitching a PUF Error Correction
Yu et al. On designing PUF-based TRNGs with known answer tests
Yu et al. A compact ASIC implementation of the advanced encryption standard with concurrent error detection
Shoufan A fault attack on a hardware-based implementation of the secure hash algorithm SHA-512
Hesse et al. A Modular Open-Source Cryptographic Co-Processor for Internet of Things
Yu et al. A hybrid approach to concurrent error detection for a compact ASIC implementation of the advanced encryption standard

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060705

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060705

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091208

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091224

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees