JP2006155140A - 情報処理装置、および、そのアドレス制御方法 - Google Patents

情報処理装置、および、そのアドレス制御方法 Download PDF

Info

Publication number
JP2006155140A
JP2006155140A JP2004343648A JP2004343648A JP2006155140A JP 2006155140 A JP2006155140 A JP 2006155140A JP 2004343648 A JP2004343648 A JP 2004343648A JP 2004343648 A JP2004343648 A JP 2004343648A JP 2006155140 A JP2006155140 A JP 2006155140A
Authority
JP
Japan
Prior art keywords
value
address
program counter
conversion unit
information processing
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.)
Granted
Application number
JP2004343648A
Other languages
English (en)
Other versions
JP4664655B2 (ja
Inventor
Takashi Watanabe
高志 渡邊
Toshio Okochi
俊夫 大河内
Takashi Endo
隆 遠藤
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 JP2004343648A priority Critical patent/JP4664655B2/ja
Publication of JP2006155140A publication Critical patent/JP2006155140A/ja
Application granted granted Critical
Publication of JP4664655B2 publication Critical patent/JP4664655B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】悪意あるアタッカーが、プログラムカウンタの変化系列の違いによって、消費電力パターンの変化を観察することによって暗号における秘密鍵を推定する攻撃をおこなうことを防止する。
【解決手段】CPUと記憶装置を備える情報処理装置において、プログラムカウンタの更新に用いられるアドレス変位値を格納するレジスタの値を、任意の値αによってマスクする。このマスクしたアドレス変位値に従って、プログラムカウンタの値を順次更新する。また、アドレスを受信する側、すなわち記憶装置側にアドレス逆変換装置を備え、マスクされたアドレスを逆変換することで、対応するアドレスを得て、CPUが記憶装置へのアクセスをおこなえるようにする。
【選択図】 図1

Description

本発明は、情報処理装置、および、そのアドレス制御方法に係り、情報記憶用のメモリとそのメモリへのアクセス機能を備えた情報処理装置であって、スマートカードに代表される、処理データの秘匿性が重要な耐タンパー情報処理装置に用いて好適な情報処理装置、および、そのアドレス制御方法に関する。
近年、メモリを内蔵したマイクロプロセッサ(マイクロコンピュータ)をICカードなどに埋め込み、個人情報を利用できるようにして、生活の様々な場面で利用できるようにする情報処理装置が注目を集めている。
以下、このような情報処理装置に関連する従来の技術として、CPUとメモリマネージメントユニットについて述べる。
中央処理装置(CPU)は、命令コードに従い所定の操作をおこなう演算装置である。一般的なCPUは、論理演算・算術演算・比較演算・分岐処理から構成される命令コード群を処理することができる。命令コードはメモリに保存されており、CPUが保持しているプログラムカウンタ(PC)には、次に実行するべき命令コードが格納されているアドレスが記憶されている。一度に読み込まれる命令コードのサイズをSとすれば、PCには、一つの命令コードを処理するごとに、Sが加算される。Sは、処理の簡略化による高速化のために、一定値である場合が多い。分岐処理がおこなわれる場合には、PCには分岐先までの相対距離が加算または減算されるか、分岐先の絶対アドレスが設定される。
CPUとメモリを備えるマイクロコンピュータの多くは、メモリマネージメントユニット(MMU)と呼ばれるコントローラーを備えている。MMUの主な機能は、アドレス変換とメモリ保護である。アドレス変換とは、CPUから与えられた論理アドレスを(メモリの実体である)物理アドレスに変換することである。メモリ保護とは、論理アドレスごとに(または、複数の論理アドレスをまとめて1ブロックとし、全論理アドレス空間をいくつかのブロックに分割した後に、各ブロックごとに)読み書きの可否を設定して、OSなどのシステムが使用する領域がユーザープログラムから侵害されないように保護することである。
なお、CPUがアクセス可能なアドレス領域は、CPUが備えるアドレス線のビット長によって決まる。32ビットCPUであれば、アドレス線のビット長も32ビットであることが多い。32ビットで表現できるアドレスの数は、(232=)約43億通りである。つまり、1アドレスにつき1バイトのデータを格納すると考えれば、32ビットCPUは4ギガバイトのメモリ空間にアクセスできる計算になる。しかし、実際に情報処理装置に搭載されているメモリの容量は、CPUが指定することのできるアドレス空間のサイズと比較して小さいことがほとんどである。例えば、現在のスマートカードのメモリ容量は、1メガバイト未満である。
ところで、クレジットカードなどに利用されるスマートカードは、個人情報がメモリ上に保持されるため、盗用、漏洩などがないように機密保護をすることが最重要課題となる。
悪意あるアタッカーは、海賊行為(タンパー行為)によってスマートカードに保持された情報を読み取ろうとする。このようなアタッカーがスマートカードの情報を読み取る手法として消費電力解析法がある。
消費電力解析法は、暗号処理をICチップ上でおこなう際の消費電力と暗号処理の途中データとの相関を利用して暗号鍵を特定する攻撃法である。より具体的に述べれば、以下の通りである。CMOSで構成されているICチップの動作時の消費電力は、CMOSスイッチのON/OFF動作数に比例している。よって、ICチップ内部で処理されているデータの論理変化分(ハミング距離)が、消費電力として観測される。暗号アルゴリズムの安全性は、「暗号への入力と出力が得られても秘密鍵がわからない」という形で保証されており、処理途中のデータから秘密鍵がわからないということに関しては保障されていない。実際に、暗号処理途中のデータがわかる場合、暗号の安全性は低下する。消費電力解析法では、暗号処理の途中の消費電力を記録して攻撃に使用する。つまり、消費電力解析法は、暗号処理途中のデータを消費電力すなわちデータのハミング距離という形で観測することで、暗号本来が備える安全性を低下させた上で攻撃をおこなう方法であると言える。
最後に、消費電力解析の防止法に関する、従来の技術とその問題点について述べる。
以下の特許文献1は、消費電力解析への対策方法として、記憶するデータを暗号化することによって、データバスを通過するデータと記憶データとの相関を小さくすることが有効であるとし、対策方式を開示している。この方式の特徴は、あるデータDをある物理アドレスPAに記録する場合に、いずれも物理アドレスPAを指し示す複数の異なる論理アドレスの集合L={LA'[I]: I=0,1,…,n−1}を用意し、Lのうちの一つLA'[I]を外部から予測できない方法で選択し、さらに選択したLA'[I]に依存してデータDをD'[I]に変形することである。これによって、同一の物理アドレスにデータDを記憶する場合でも、記憶データ値を外部から予測できない値に変化させることができる。
しかしながら、この方式には、書き込みの際と読み出しの際には同一の論理アドレスLA'[I]を使用する必要があるという、制限が存在する。LA'[I]が書き込みの際と読み出しの際で同一であれば、LA'[I]と消費電流の関係を利用して、例えば「少なくとも同じデータDがどのタイミングで使用されているか」など、データDに関する情報を得ることができる。さらには、この明細書中には直接的には言及がないものの、書き込みと読み出し時で使用する論理アドレスが同一である必要があるため、書き込み時に用いた論理アドレスを、読み出し時に備えて記憶しておく必要がある。このことは、書き込み時に用いた論理アドレスを記憶するための特別なメモリを備える必要があることを意味している。スマートカードのような小型の装置では、搭載可能なメモリ容量が制限されるため、特別なメモリを必要としない対策方式が望ましい。
また、以下の特許文献2は、メモリ装置の連続するアドレスに記録されているデータを暗号処理用演算ユニット内部のレジスタに転送する際の、論理アドレス値依存の消費電力パターンを隠蔽する方法を開示している。特許文献2の段落番号0059、0060には、nは読み出すデータのサイズとするとき、各データが格納されている連続する論理アドレス群LA[I](I∈{0,…,n−1})を、オフセットLOと読み出しバイト数LDの二つで表現する技術が開示されている。例示のため、論理アドレスは16進数で表記した16ビットとし、各アドレスには1バイトのデータが格納されており、データは1バイトごとに読み出されるとする。論理アドレス0100から、16バイトを読み出す場合、一般的なマイコンでは、0100,0101,0102,…,100Fが順番に現れることになるが、特許文献2の情報処理装置では、アドレスバスに現れるデータが,読み出し開始アドレスである0100と読み出しサイズである16をあらわす0010の2つとなる。さらに、これらは事前にメモリ装置と暗号処理用演算ユニットで共有されている値でマスクされており、例えば、マスク値をF8B2であるとするならば、アドレスバスに現れるのは、読み出し開始アドレスである(0100+F8B2=)F9B2または(0100−F8B2=)084Eと、読み出しサイズである(0010+F8B2=)F8C2または(0010−F8B2=)075Eとなる。また、本来ならば16個のアドレスがアドレスバス現れるところを2つのデータの送信で情報の伝達が完了したことを隠蔽するために、残りの14個のアドレスが現れるべきタイミングで、暗号処理用演算ユニットは乱数をアドレスバスを通じて送信し、受信側であるメモリ装置はそれらを無視するように構成している。このため、アタッカーは、アドレスバスの消費電力を観察しても、乱数を観察しているに過ぎないため、どのアドレスからデータが読まれたのかを知ることができない。
特開2002−328844号公報 特開2001−195555号公報
上述の消費電力解析法により、アタッカーは、CPU内部が保持しているプログラムカウンタの変化系列から、プログラムの処理フローを推測することができる。
以下では、その消費電力解析法によるプログラムの処理フローの解析例について説明する。
プログラムカウンタの変化形列において、連続するプログラムカウンタ値間のハミング距離の系列に注目する。ハミング距離の系列が消費電力として観測可能であることは、先に述べたとおりである。ここで、ハミング距離は、同じ長さのビット列を有するパターンにおいて、その値が変化するビット位置の個数として定義することができる。例えば、ビット列表現で、11=(1,0,1,1)と12=(1,1,0,0)と表される場合は、第2〜第4ビット目の三つが変化しているのでハミング距離は、3となる。
プログラムカウンタの変化系列は、プログラムの処理フローに応じて変化する。たとえば、条件分岐命令によって、系列1もしくは系列2に分岐する場合を考える。論理アドレスは16進数で表記した16ビットとし、プログラムカウンタは2ずつ進むとする。条件分岐命令が、論理アドレス0000に設置されており、系列1は0010から系列2は001Aから開始する。このとき、処理系列1のプログラムカウンタの変化は、
0000→0010→0012→0014→0016→0018→001A→001C→001E→0020→ …
となるのに対して、処理系列2のプログラムカウンタの変化は、
0000→001A→001C→001E→0020→0022→0024→0026→0028→002A→ …
となる。
それぞれのハミング距離の系列は、系列1では、
1→1→2→1→3→1→2→1→5→ …
であるのに対して、系列2では、
3→2→1→5→1→2→1→3→1→ …
となり、明らかに消費電力の系列が異なることがわかる。このことから、アタッカーは分岐条件が成立したかどうかを知ることができる。
この解析によって、電子商取引等で用いられるRSA暗号の解読をおこなうことができる。RSA暗号の中核となる演算は、yを演算の入力値、Nを公開鍵、xを秘密鍵とした、べき乗剰余演算yx mod Nである。攻撃者の目的は、秘密鍵xを知ることである。べき乗剰余演算の一般的な処理方法は、バイナリー法である。Len(x)でxのビット長を、x[i]でxを二進数展開したときのMSBからi+1番目の1ビットを表し、バイナリー法のアルゴリズムをC言語風に記述すると以下のように表すことができる。
V = 1;
for (i = 0; i < Len(x); i++){
V = V2 mod N;
if (x[i] == 1){ ……(*)
V = V×y mod N;
}
}
return V;
本アルゴリズムでは、(*)における条件分岐の成立・不成立が、秘密鍵xの各ビットに依存している。すなわち、条件分岐の成立・不成立が判明すれば、秘密鍵を特定することができる。本アルゴリズムでは、分岐が成立した場合にVにyを乗じる処理が行われる。この際のPC値の変化系列は明らかに分岐が不成立の場合と異なるため、上述した理由によって、秘密鍵を特定することができるのである。
上述の特許文献1に開示された技術は、メモリセルへのアクセス時の論理アドレスが複数種類存在するため、メモリ内部における消費電力解析に対する対策として機能する。しかしながら、これら複数種類の論理アドレスの生成源となっている値は、CPU内部で物理アドレスと一対一に対応する値でプログラムカウンタに保持されているため、CPU内部のプログラムカウンタに対する消費電力解析への対策としては機能しない。また、特許文献2に開示された技術についても同様であり、アドレスバスにおける消費電力解析に対する対策としては機能するが、CPU内部では論理アドレスと物理アドレスがただ一通りに対応付けられて処理されているため、 CPU内部に対する消費電力解析への対策としては機能しない。
本発明は、上記問題点を解決するためになされたもので、その目的は、ICチップの中でも特にアドレスバスおよびCPU内部のプログラムカウンタおよびその関連するレジスタ等における消費電力を解析することによる内部データの推定や特定をおこなう試みを困難にすることによって、安全性の高い情報処理装置およびそのアドレス制御方法を提供することにある。
本発明の情報処理装置は、プログラムカウンタの更新に用いられるアドレス変位値を格納するレジスタの値dを任意の値αによってマスクする。このマスクしたアドレス変位値に従って、プログラムカウンタの値を順次更新する。また、本発明の情報処理装置は、アドレスを受信する側、すなわち記憶装置側にアドレス逆変換装置を備えており、マスクされたアドレスを逆変換することで、対応するアドレスを得て、CPUがそのアドレスによりメモリセルへのアクセスをおこなう。なお、ここで「マスク」とは、アタッカーが予測できない値を用いて、保護対象の値を予測不可能な値に変換することを意味する。
このようにすれば、CPUが使用するプログラムカウンタの値が、外部から予測できない値αによってマスクされているため、CPUの内部やアドレスバスにおいて、プログラムカウンタの変化系列に依存した消費電力を解析したとしても、プログラムの処理フローやメモリアクセスに関する、有用な情報を得ることができない。
なお、アドレス変位値とは、以下の値のことを意味している。マイコン内部でプログラム処理が進行する場合、命令コードのサイズ分だけメモリ装置からデータを読み出し、次の命令コード実行に備える処理がおこなわれる。このときの読み出しデータのサイズとしては、一般的に2バイトないし4バイトといった固定値が用いられる。この固定値のことを、ここでは、アドレス変位値と呼ぶ。アドレス変位値は、多くの場合一通りに設定されているが、必ずしも一通りである必要は無く、先行する命令コードに依存して、多様な値を取る場合がある。ただし、これら複数種類のアドレス変位値すべてについてマスクされたアドレス変位値を持つように構成すれば同様の効果を得ることができるため、ここでは、アドレス変位値として、ただひとつの固定値を用いる場合について述べる。
マスク処理は、任意の値αとの排他的論理和や加減算、乗算などの算術演算、αをパラメータとする順列やαを鍵として用いる暗号化処理である場合などがある。
さらに、αとして用いる値は、事前に定義した値の系列を任意の順番で使用する場合や、物理的な機構による真正乱数生成器あるいはソフトウェアにより実現される擬似乱数生成器の出力を用いる場合も想定される。
本発明によれば、ICチップの中でも特にアドレスバスおよびCPU内部のプログラムカウンタおよびその関連するレジスタ等における消費電力を解析することによる内部データの推定や特定をおこなう試みを困難にすることによって、安全性の高い情報処理装置およびそのアドレス制御方法を提供することができる。
〔マイクロコンピュータの構成とICカードへの実装〕
先ず、図2および図3を用いて本発明に係るマイクロコンピュータとICカードへの実装の様子について説明する。
図2は、本発明に係るマイクロコンピュータをICカードに実装した様子を示す図である。
図3は、本発明に係るマイクロコンピュータの基本構成を示す構成図である。
本発明に係るマイクロコンピュータは、図2に示されるように、この半導体装置のチップをプラスチックカード上に実装した接触型ICカードに用いることができる。
このマイクロコンピュータの本体は、カードの中央の横に配置されたCOTと呼ばれるパッケージ形態のICチップ202である。
ICカード201は、図3にも図示されているように、Vcc(供給電源)、GND(グランド)、RST(リセット)、I/O(入出力)およびCLK(クロック)の端子を持ち、カード上のチップはこれらの信号を外部から、例えば、端末機から、供給されることによって稼動する。その場合に用いる端末機自体は基本的に一般のカード・システムと同じ仕様のものでよい。
マイクロコンピュータは、図3に示されるように、中央処理装置CPU、記憶装置である読み出し専用メモリROM、書き換え可能不揮発性メモリEEPROMおよび書き換え可能揮発性メモリRAM、コプロセッサCPR、そして各部の情報のやりとりをおこなうための入出力ポートI/O、およびそれらを結ぶ信号線としてアドレスバス301やデータバス302などを有している。
コプロセッサCPRは、内部に独自の記憶装置CRAMを保持することもある。中央処理装置CPUは、論理演算や算術演算などをおこなう装置であり、記憶装置は、プログラムやデータを格納する装置である。クロック生成器CLKGは、図2に示されるICチップの端子202を経由して、ICチップ外部からクロック信号の供給を受け、そのクロック信号に同期した内部システムクロック信号を生成し、CPUなどの内部装置に供給する。システムコントローラSYSCRは、CPUやバス信号などの制御をおこなう装置であり、乱数生成器RNGやタイマーTIM、セキュリティロジックSECLなどのコントロールをおこなう。
セキュリティロジックSECLは、アタッカーからの消費電力解析をおこなわせないようにするため、アドレス情報を暗号化するための仕組みであり、これは後に詳説する。
なお、SYSCR,CPU,TIM,SECLなどをまとめてCPUと呼ぶ場合もある。
記憶装置は、例えば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は、電源の供給が中断されてもその内容を保持することができるいわゆる不揮発性メモリである。これらの組み合わせの違いは必ずしも本発明の本質とは関係しないため、図3には、すべての種類のメモリ構成について記述していない。ROMのみからなる情報処理装置や磁気記憶装置を持つ情報処理装置などについても、同様に構成することができることはもとよりである。
入出力ポートI/Oは、ICチップ内部と外部との間でデータ通信をおこなうためのポートである。アドレスバス301は、アクセス先の記憶装置のアドレスを転送するバスであり、データバス302は、当該アドレスから読み出されたデータ、あるいは、当該アドレスに書き込まれるべきデータの転送に用いられるバスである。
CPUは、プログラムカウンタPCを内部に持ち、PCが指し示すアドレスに記憶されている命令コードおよびデータを読み出して処理をおこなう。PCは通常、一定値分だけインクリメントするという方法で更新される。すなわち、PCが指し示すアドレスから命令コードを読み出した後に、一定のアドレス変位値dだけ先のアドレスを指すようにPCを更新し(|PC|=|PC|+d、ここで|PC|はPCの内部に格納される値)、引き続きPCが指し示すアドレスから命令コードを読み出すという処理を繰り返すことになる。ここで、一定のアドレス変位値とは、多くの場合、2であることが多い。これは、8ビットCPUの命令コードが1バイトのインストラクションコードと1バイトのオペランドの2バイトで構成されることが多いためである。
〔実施形態1〕
以下、図1、図4ないし図9を用いて本発明に係る第一の実施形態について説明する。
先ず、図1を用いて本発明に係る情報処理装置の構成について説明する。
図1は、本発明の第一の実施形態に係る情報処理装置の構成図である。
本発明の情報処理装置は、上述のように、セキュリティロジックSECL部を設け、悪意のアタッカーが情報処理装置の消費電力を解析して、情報を読み取るのを防ぐために、アドレス情報をセキュリティロジックSECL部により暗号化してメモリ側に転送し、メモリ側で復号しCPUがメモリにアクセスするためのアドレスを取り出すようにしたものである。
セキュリティロジックSECL部は、アドレス変換装置ATEからなり、内部にインクリメントサイズレジスタISRを有する。
インクリメントサイズレジスタISRは、PCのインクリメントサイズdを記憶する。
また、アドレス逆変換装置ATDが記憶装置との間にあるアドレスバス101に接続されており、ATDは、内部にアドレス逆変換用の値を記憶するレジスタATRを有している。
この情報処理装置では、ICチップが起動されプログラムを実行する前に、ATEで生成するマスク値αによって、ISR値dをマスクする。そして、ATEでISR値dをマスクした値によりATE内部のISRは書き換えられる。
そして、ATEは、マスク値αに基づき逆変換に必要な値βを生成し、ATDに送信する。その結果、ATDはβをATRに保持する。
以上の初期的な処理をおこなった後は、PCは通常通り、ATEにおいて、ISR値に従って順次更新される。CPUがPC値の指し示すアドレスLA'にアクセスする際は、アドレスバスを通じて転送されたLA'をATDが受け取り、ATDはATR値βを用いてLA'の逆変換をおこない、CPUがメモリにアクセスする際のアドレスに相当するLAを得る。その上で、CPUは、そのLAに対応する実際のメモリセルへのアクセスをおこなう。このアクセスが読み出し動作の場合は、読み出されたデータがデータバス302を通じてCPUに転送され、書き込み動作の場合は、書き込むべきデータがCPUからデータバスを通じて記憶装置に転送される。
これらの処理を、より詳細に述べれば、次のようになる。ATEとCPUは、システムコントローラSYSCRから初期化信号INIを受ける。SYSCRがINIを発行するのは、ICチップの外部からリセット信号RSTを受けた場合や、CPUが命令コードとしてリセットを指示する場合などである。INIを受けたATEは、乱数生成器RNGを用いて、あるマスク値αを選び、ある関数f(x)を用いて、β=f(α)を計算する。このβがアドレスの復号化のために用いられる値である。
そして、インクリメントサイズレジスタISRに初期値dが保持されているとすると、その初期値dとマスク値αと演算された値により、インクリメントサイズレジスタISRを書き換える。なお、RNGは、ハードウェア機構で実現される真正乱数生成器である場合もあり、ソフトウェアにより実現される擬似乱数生成器である場合もある。ATEはこのβをATDに送り、ATDはβをATRに記憶する。
CPUはアクセスするメモリアドレスを格納するプログラムカウンタPCを保持しており、この間に、CPUはPCを0に初期化する。以上が初期化処理である。
それ以降の動作は以下の通りである。CPUはATEを用いて、メモリから命令コードを読み出すごとに、|PC|'をISR分だけ増加させる。すなわち、|PC|'=|PC|'+|ISR|とする。ここで、|ISR|は、ISRの初期値dをマスク値αによりマスクした値である。また、ここでの|PC|'の記号は、PCの値をマスクした変位値により更新していったプログラムカウンタの値であることを示した。
ここで、 |PC|' =LA'とすると、LA'がアドレスバスを介してメモリに送られる。メモリ側では、メモリセルにLA'が到達する前に、ATDがLA'を受け取り、ATRに保持している先の値βを用いて、CPUがメモリをアクセスする際のアドレスに相当するLA=g(LA',β)を得る。ここで、g(x,y)は、マスクを除去するための関数である。
上述の一連のアドレスの処理について具体例を述べると示すと以下のようになる。
インクリメントサイズレジスタISRの初期値dが2であるとする。
d=|ISR|=2 …(式1)
また、マスク値αを16進表記で、2B37とする。
α=(2B37) …(式2)
最初にISRの値を更新するときには、dとαの積をとる。この値をd'とすると、
d'=|ISR|=d・α=2×(2B37) …(式3)
である。
βの計算に使用する関数f(x)を、f(x)=x−1 mod 2とする。これは、元数が2場合の有限環における乗法の逆元を求めることに対応している。ここで、nはメモリのサイズに対応する適当な整数、例えば、n=16とする。すなわち、
α・β≡1 mod 216 …(式4)
(2B37)・β≡1 mod 216
である。
ここで、元数が2場合の有限環は、αがゼロおよび2の倍数のときには逆元を持たないので、αがゼロおよび2の倍数ではないこと、すなわち奇数であることが必要になる。なお、αの生成に真正乱数生成器や擬似乱数生成器を使用する場合、αは1/2の確率で偶数となる。しかしながら、奇数のαを得るためには、αの最下位のビットを無条件に1とするように処理すればよく、ほとんど処理の負荷なくαが奇数であることを保証することができる。
プログラムカウンタの値は、最初は0なので、マスクされたアドレス変位値の整数倍となる。したがって、 kを整数として、以下の(式5)が成り立つ
LA'=k・d'= k・2α …(式5)
この式5に式4のβをかけると、
LA=LA' ・β=k・d'・β= k・2α・β …(式6)
≡ 2k mod 2
として、LAを求めることができる。
ここで、逆変換用の関数g(x,y)は、g(x,y)=x×y mod 2としたことになる。
次に、図4を用いて上記の関数f(x)を用いたPC値のマスクによるハミング距離の影響について説明する。
図4は、PCの変化系列ごとのハミング距離の変化を表したグラフである。
いま、PC値の変化系列が、
0000→0010→0012→0014→0016→0018→001A→001C→001E→0020→ …(系列1)
であるとき、ハミング距離の系列は、
1→1→2→1→3→1→2→1→5→ …
である。
マスク値として2B37を用いて、このPC値の系列をマスクした場合、PC値の変化系列は、以下のように変化する。
0000→B370→09DE→604C→B6BA→0D28→6396→BA04→1072→66E0→ …(系列2)
これに対応するハミング距離の系列は、以下の通りである。
8→10→7→11→9→11→8→9→8→ …
一方、別のマスク値D4C9を用いた場合、PC値の変化系列は、以下のように変化する。
0000→4C90→F622→9FB4→4946→F2D8→9C6A→45FC→EF8E→9920→ …(系列3)
これに対応するハミング距離の系列は、以下の通りである。
5→9→8→10→11→9→9→8→10→ …
このように、同一のPC値の変化系列も、マスク値によってハミング距離の系列が変化する。図4は、三つの異なるマスク値を用いて、同一のPC値の変化系列をマスクした場合の、ハミング距離の系列を示したものである。マスク値によってハミング距離の系列が異なる挙動となるため、消費電力がハミング距離に比例して現れることから、消費電力を観察しても有用な情報を得ることができないことがわかる
次に、図5および図6を用いて本発明の第一の実施形態に係る情報処理装置のアドレスに関する処理について説明する。
図5は、アドレス変換装置ATEの構成図である。
図6は、アドレス逆変換装置ATDの構成図である。
先ず、初期化時の処理手順について述べる。
アドレス変換装置ATEは、初期化信号INIがオンになると、乱数生成器RNGの出力αがゼロでないことを確認して、αの最下位ビットを1であるときに、アドレス変位値レジスタISRに、元の値dにマスクした値d'をアドレス変位値レジスタISRに記憶する。RNGの出力がゼロである場合は、最下位ビットを1をたしたり、再度新しい値を生成したり、RNGの故障診断などをおこなう。
ISRの値αはさらに、上記関数f(x)すなわち、逆元計算器INVに入力される。INVの出力βは、アドレスバスABに送られる。同時に、アドレス逆変換装置ATDに逆変換に用いる値βの取り込みを促すための信号βEがオンになる。ATDでは、βEがオンであることを受けて、ABからの入力値βを、二出力のうち一方を選択する出力セレクタSELOを用いて、アドレス変換値レジスタATRに取り込む。以上の手順が終了すれば、INIはオフになる。
次に、PCの更新とメモリへのアクセスについて述べる。
CPUは、PCを更新する場合、PC値をATEの入力ポートPCIに送る。ATEは、PCIから受け取ったPC値にISR値を加算して、出力ポートPCOに送る。CPUは、PCOからの出力値を新しいPC値として記憶する。
これまでの記法を使うと、|PC|'=|PC|'+|ISR|=|PC|'+d'である。
そして、CPUは、PC値である|PC|'をABを通じて送信する。
CPUがメモリにアクセスする場合、ATDはABから|PC|'を受け取り、βEがオフであるので、上の具体例では乗算器MULを用いてATR値βを乗じた結果を出力ポートPBに出力する。出力値は、上記で確認したように、マスクされていないCPUがメモリをアクセスするためのアドレスである。
なお、ICチップのリセット時に必ずしもINIが発行されない場合、ATRの初期値を1とする。この初期値は、ATEが用いられない場合の整合性を確保するために必要である。これは、マスクされていないアドレス値に1を乗じても、値が変化しないことを利用した方法であるが、ATR値が1の場合は乗算自体をおこなわないようにすれば、処理に必要な時間や電力を削減することができるため、そのように構成することが望ましい。もちろん、ATDを使用しない場合は、ATD部を非活性化してバイパスするように構成することもできる。
以上の処理は、プログラムカウンタを順次、一定のアドレス変位値により更新していく場合の処理であったが、一般的なCPUは、ジャンプ命令に相当する命令を実行することができる。ジャンプ命令とは、あるアドレスから、所定のアドレスにPCの値を変化させる命令である。この場合、命令コードには、ジャンプ先のアドレスが含まれる。命令コードは、多くの場合、ROMなどの書き換え不可能な記憶装置に記録されているため、命令実行時までに、マスク値に応じた、ジャンプ先アドレスの変換をおこなう必要がある。これまで述べたきたアドレス変換は、CPUが命令コードをジャンプ命令であると判断した場合に、マスク値をジャンプ先アドレスに乗じることで容易におこなうことができる。CPUに命令コードキャッシュを備えれば、命令実行時間のペナルティなしで、このアドレス変換をおこなうことができる。
また、アドレス変換装置およびアドレス逆変換装置が適宜演算処理をおこなう場合について説明してきたが、初期化時にアドレス変換および逆変換テーブルを作成し、アドレス変換処理および逆変換処理を、テーブル参照によりおこなう構成にしてもよい。このような構成にすることにより、処理速度の高速化を図ることができる。アドレス変換および逆変換テーブルは、揮発性メモリに格納し、チップリセットごとに再生成する。マスク値の更新が必要ない場合は、アドレス変換および逆変換テーブルを一度だけ書き込みが可能なメモリーに格納するように構成してもよい。少なくとも異なるICチップで互いに相関を持たないマスク値を用いるようにすれば、悪意のあるアタッカーが一つのICチップを解析したとしても、他のICチップの解析に対する手がかりが得られないようにすることができる。
〔実施形態2〕
以下、図7ないし図9を用いて本発明に係る第二の実施形態について説明する。
図7は、アドレス変換装置ATEUの構成図である。
図8は、アドレス逆変換装置ATDUの構成図である。
図9は、本発明の第二の実施形態に係る情報処理装置の信号線におけるデータの流れを表すタイミングチャートである。
第一の実施形態では、マスク値は、乱数生成器RNGにより発生させていたが、いったんマスク値αが定まると、CPUのメモリのアドレスの連続性を保つため、CPU自体をリセットしたり、再起動するまで変更することができなかった。
本実施形態は、マスク値を任意の時点で変更したり、任意の時点でアドレス変換を開始することのできる情報処理装置に関するものである。
本実施形態のアドレス変換装置とアドレス逆変換装置は、マスク値の更新をおこなう機能をサポートしているので、それぞれアドレス変換装置ATEUとアドレス逆変換装置ATDUと記載することにする。
マスク値の更新手順は、以下の通りである。
なお、第二の実施形態でも、マスク値の逆変換関数を、f(x)=x−1 mod 2であるものとして説明する。
図7に示されるATEUは、マスク値更新信号UPDがオンになると、RNGを用いて任意の値α^を生成し、テンポラリレジスタTRに保存する。さらに二入力から一方を選択して出力する入力セレクタSELIによって、TR値がINVに入力される。その出力値β^=α^−1 mod 2はそのままABを通じてATDUに送信される。
TRが更新されたタイミングで、TR値はMULを用いて、現在のISR値に乗じられ、結果は再びISRに記憶される。TR値はさらに、PCIから入力された|PC|'にも乗じられ、その結果はPCOを通じて出力される。すなわち、|ISR|=|ISR|×α^ mod 2および|PC|'=|PC|'×α^ mod 2とする。
UPDがオンであることから、更新を指示する信号UEと、ABの値の取り込みを促すβEがオンとなる。ATDは、βEがオンであるためABの値をTRに取り込み、UEがオンであるため、TR値β^をATR値に乗じる。その結果はATRに記憶される。すなわち、|ATR|=|ATR|×β^ mod 2となる。この結果、ISRには、α×α^ mod 2が記憶されており、ATRには、α−1×α^−1 mod 2(=(α×α^)−1 mod 2)が記憶される。また、|PC|'はマスクされていない値のα×α^ mod 2倍数になる。すなわち、CPUから送信されるアクセス先アドレスは、α×α^ mod 2が乗じられた値となっており、ATRを乗じることで、マスクを除去することができる。
ある時点でマスク処理を開始する場合、図7と図8に示される各信号線の関係を示すと図9に示されるようになる。
 ̄AE(AEオーバーライン)は、アドレスを示す値LAがアドレスバスABを通じて得られることを意味するAEの論理反転値であるので、 ̄AEがオフ(論理0)であれば、LAがABを通じて得られる状態であることを意味する。本実施形態では、ATEUからATDUに逆変換用の値βを転送する際に、アドレスバスを共用することでセキュリティを高めているため、LAとβを同時に転送することができない。よって、 ̄AEがオフであるときは、βEはオフである必要があり、βEがオンであるときは、 ̄AEはオンである必要がある。本例では、 ̄AEをオフにして、CPUはアドレスLA[1]をアドレスバスABに送出する。同時にATDUでは、ATDU内部のATRに記憶している値である1を用いて、ABから得たアドレスLA[1]を逆変換し、CPUがメモリにアクセスするアドレスLA[1]を得る。LA[1]は、アドレスバスPBに送られ、メモリセルへのアクセスがおこなわれる。すでに述べたように、ATR値が1である場合は、逆変換は自分自身への恒等変換であるから、ATDUによる逆変換の結果は入力と同じ値となる。すなわち、この場合は、処理自体をバイパスする構成にすることも可能である。
引き続いて、ATEUは更新信号UPDがオンになると、内部で任意の値αを生成し、さらにαからβを生成する。βはアドレスバスABを通じて送出される。このとき、UEとβEもオンになり、ATDUはβをABから取り込んで、ATR値に乗じることでATR値の更新を行う。更新が終了するタイミングで、UPDはオフになり、その結果、UEとβEもオフとなる。これ以降のタイミングでは、CPUが使用するプログラムカウンタ値はマスクされた値になるため、次のメモリアクセスでABに現れるのは、マスクされた値LA'[2]である。 ̄AEがオフであるから、ATDUは、LA'[2]をアドレスとして取り込み、ATR値を乗じること逆変換し、CPUがメモリにアクセスするアドレスLA[2]を得る。以下、同様にしてプログラムカウンタの値がマスクされたまま、処理が継続される。
マスク値の更新は、任意のタイミングでおこなうことができるが、べき乗剰余演算時のループにおける分岐と非分岐の差異を隠蔽する場合には、ループ中のある分岐処理から次の分岐処理までの間におこなうことが望ましい。例えば、分岐命令を実行した直後にマスク値の更新をおこなうように構成すればよい。また、消費電力を測定する際のSN比によっては、数回の分岐処理を観測しただけでは、分岐の有無を判断できない場合があることを鑑みれば、かならずしも分岐命令処理ごとにマスク値を更新する必要は無く、マスク値更新用の命令コードを用意して、ユーザーが任意のタイミングで実施することができるように構成してもよい。さらには、RNGを用いて外部から予測できないタイミングで実施するようにしてもよい。
処理の途中で、もはやセキュリティを確保する必要がなくなった場合など、PC値のマスクが不要となった場合、アドレス変換装置ATEUは、アドレス逆変換装置ATDUからATR値を受信し、|PC|'に乗じることで、マスクを除去することができる。すなわち、上で述べた場合のアドレス変換装置からアドレス逆変換装置に、逆変換のためのβを転送する場合の逆の方向の転送にあたる。その後のPCの更新には、CPUが備えているインクリメント値を用いればよい。また、ATR値は1に初期化するか、すでに述べた方法で非活性する。ATR値を受信する以外にも、ATEUにおいてISR値をINVで処理し、その値を用いることもできる。さらには、ATR値のコピーをATEUやCPUに保持し、マスク除去処理に備えるように構成することもできる。安全性を高めるために「セキュリティモード」を備え、セキュリティモードのON/OFFを切り替える「セキュリティビット」を備える構成にすれば、このセキュリティビットの設定を、ユーザーがコントロールすることができるように構成することで、必要に応じて保護の適用と解除をおこなうことができる。セキュリティビットがONの場合は、上記の手順に従って安全性を高めた処理をおこない、セキュリティビットがOFFの場合は、マスクによる保護が停止すればよい。
〔実施形態3〕
以下、図10を用いて本発明に係る第三の実施形態を説明する。
図10は、本発明の第三の実施形態に係る情報処理装置の構成図である。
なお、図10では、アドレス変換装置ATEとアドレス変換装置ATDと記載しているが、実施形態2のようにマスク値の更新機能を有するアドレス変換装置ATEUとアドレス変換装置ATDUであってもよい。
本実施形態では、アドレス変換装置ATEとアドレス逆変換装置ATDをつなぐ経路として、アドレスバス401およびデータバス403のほかに、逆変換用の値βを転送するための専用のバス402を備えている。先の実施形態では、逆変換用の値をアドレスバスを用いて転送することによって、配線を減らすことができ、さらにβの転送を隠蔽することができるが、マスク値の更新の際のメモリアクセスレートが落ちることになる。一方、本実施形態のように、逆変換用の値を転送する専用のバスを持てば、アドレスバスを占有する必要が無くなるため、マスク値の更新処理を高速化することができる。ただし、βはセキュリティ上の重要な値であるので、バス402の配線はできるだけ発見が困難になるようにおこなうことや、β値の転送時以外には乱数を転送するなどの対策をおこなうことで、アタッカーによる解析を困難にすることができる。
〔実施形態4〕
以下、図11を用いて本発明に係る第四の実施形態を説明する。
図11は、本発明の第四の実施形態に係る情報処理装置の構成図である。
なお、図11では、アドレス変換装置ATEとアドレス変換装置ATDと記載しているが、実施形態2のようにマスク値の更新機能を有するアドレス変換装置ATEUとアドレス変換装置ATDUであってもよい。
本実施形態では、アドレス逆変換装置ATDを各記憶装置ごとに用意する。また、ATEには、それぞれの記憶装置ごとに異なるマスク値を用いることができるように、複数のISRを備える。複数のマスク値を用いることにより、安全性を高めることができる。ただし、必ずしもすべてのマスク値が異なるように構成する必要は無く、一部あるいはすべてが同じ値であっても良い。
〔実施形態5〕
以下、図12を用いて本発明に係る第五の実施形態を説明する。
図12は、本発明の第五の実施形態に係る情報処理装置の構成図である。
なお、図12では、アドレス変換装置ATEとアドレス変換装置ATDと記載しているが、実施形態2のようにマスク値の更新機能を有するアドレス変換装置ATEUとアドレス変換装置ATDUであってもよい。
本実施形態では、一部の記憶装置のみにATDを設置しているが、それぞれの記憶領域ごとに別々のプログラムカウンタを用意し別のアドレス空間としてアクセスすることが可能となっている。
ATDを設置する記憶装置としては、頻繁に書き換えられないものを選択することが望ましい。たとえば、読み出し専用メモリであるROMや、書き換え回数の制限されるEEPROMなどがATD設置によって保護をおこなう対象の候補である。このような保護領域の制限は、記憶装置の種類によっておこなう方法とは別に、システム的な機能によっておこなう方法がある。すなわち、アドレス空間の一部領域をセキュリティを確保する領域であると定義し、当該アドレス領域にアクセスする場合にのみATEおよびATDによる保護をおこなうように構成することができる。
〔実施形態6〕
以下、図13を用いて本発明に係る第六の実施形態を説明する。
図13は、本発明の第六の実施形態に係る情報処理装置の構成図である。
なお、図13では、アドレス変換装置ATEとアドレス変換装置ATDと記載しているが、実施形態2のようにマスク値の更新機能を有するアドレス変換装置ATEUとアドレス変換装置ATDUであってもよい。
本実施形態の構成では、二つ以上のPC[I],ISR[I],ATR[I]の組(I∈{1,2,…,m})を備え、どの組を使用するかの選択を外部から予測できない方法でおこなう。これによって、マスク値の更新をおこなわずとも、複数のマスク値を切り替えて使用することができるため、消費電力から情報を取得する攻撃をより効率よく防止することができる。どの組を使用するかの選択には、たとえば、乱数生成装置RNGから得られる乱数を用いる。使用する組の変更は、マスク値の更新タイミングとしては、実施形態2に述べたようなタイミングに従っておこなえばよい。また、特に読み出しと書き込みで異なる組を使用するようにすることで、読み出しと書き込み時の消費電力が異なるように構成すれば、データの書き込みと読み出し時の消費電力の相関を利用する解析をも防止することができる。どの組を使用するかは、ATEで生成した値を専用のバス502を通じてATDに転送することによって情報を伝えることができる。
本発明の第一の実施形態に係る情報処理装置の構成図である。 本発明に係るマイクロコンピュータをICカードに実装した様子を示す図である。 本発明に係るマイクロコンピュータの基本構成を示す構成図である。 PCの変化系列ごとのハミング距離の変化を表したグラフである。 アドレス変換装置ATEの構成図である。 アドレス逆変換装置ATDの構成図である。 アドレス変換装置ATEUの構成図である。 アドレス逆変換装置ATDUの構成図である。 本発明の第二の実施形態に係る情報処理装置の信号線におけるデータの流れを表すタイミングチャートである。 本発明の第三の実施形態に係る情報処理装置の構成図である。 本発明の第四の実施形態に係る情報処理装置の構成図である。 本発明の第五の実施形態に係る情報処理装置の構成図である。 本発明の第六の実施形態に係る情報処理装置の構成図である。
符号の説明
102、302、403、503…データバス
402…ATR値転送バス
502…選択情報転送バス
CPU…中央演算装置
PC…プログラムカウンタ
I/O…入出力装置および入出力ポート
ATE…アドレス変換装置
ISR…インクリメントアドレスレジスタ
RNG…乱数生成器
SYSCL…システムコントローラ
SECL…セキュリティロジック
TIM…タイマー
ATD…アドレス逆変換装置
ATR…アドレス逆変換用パラメータレジスタ
ROM…読み出し専用不揮発性メモリ
EEPROM…書き換え可能不揮発性メモリ
RAM…書き換え可能揮発性メモリ
CPR…コプロセッサ
CRAM…コプロセッサメモリ
Vcc…電源入力端子
Vss…接地端子
RST…リセット入力端子
CLK…クロック入力端子
CLKG…システムクロック生成器
INV…逆元計算器
ADD…加算器
MUL…乗算器
SELO…二出力から一方を選択するセレクタ
SELI…二入力から一方を選択するセレクタ
βE…β値のフェッチを指示する信号線
101、301、401、501、AB…暗号化された可能性のあるアドレスバス
PB…暗号化されていないアドレスバス
UE…マスク値更新を指示する信号線
TR…一時値保存用レジスタ

Claims (10)

  1. プログラムカウンタを有する中央処理装置と前記中央処理装置からアクセスされる記憶装置とを備える情報処理装置において、
    さらに、アドレス変位値レジスタを有するアドレス変位値変換部とアドレス逆変換部とを備え、
    前記アドレス変位値変換部は、前記アドレス変位値レジスタに格納された値を暗号化して、その暗号化した値により前記プログラムカウンタを順次更新して、
    前記プログラムカウンタの値をバスを介して前記アドレス逆変換部に転送し、
    前記アドレス逆変換部は、転送されてくる前記プログラムカウンタの値を復号化して、前記中央処理装置が前記記憶装置にアクセスするためのアドレスを求めることを特徴とする情報処理装置。
  2. 前記アドレス変位値変換装置は、任意値生成器を備え、前記アドレス変位値レジスタの値は、前記アドレス変位値レジスタの初期値と前記任意値生成器が生成した値とを演算した値であることを特徴とする請求項1に記載の情報処理装置。
  3. 前記任意値生成器が生成する値は、真正乱数または擬似乱数であることを特徴とする請求項2記載の情報処理装置。
  4. 前記アドレス逆変換部が、前記プログラムカウンタを復号化するための値を前記バスを介して転送することを特徴とする請求項1記載の情報処理装置。
  5. 前記アドレス逆変換部が、前記プログラムカウンタを復号化するための値を転送するための専用のバスを有することを特徴とする請求項1記載の情報処理装置。
  6. 前記アドレス変位値レジスタとマスク値を乗算した数が、前記プログラムカウンタを更新する増加値であって、
    前記マスク値の元数2の有限環における逆元を求めて、その逆元により前記アドレス逆変換部が、転送されてくる前記プログラムカウンタの復号化をおこなうことを特徴とする請求項1記載の情報処理装置。
  7. プログラムカウンタを有する中央処理装置と前記中央処理装置からアクセスされる記憶装置とを備える情報処理装置のアドレス制御方法において、
    前記情報処理装置は、さらに、アドレス変位値レジスタを有するアドレス変位値変換部とアドレス逆変換部と任意値生成器とを備え、
    前記アドレス変位値レジスタに値を設定する手順と、
    前記任意値生成器が、真正乱数または擬似乱数により生成されるマスク値を生成する手順と、
    前記アドレス変位値変換部が、前記アドレス変位値レジスタの値と前記マスク値を演算する手順と、
    前記アドレス変位値レジスタの値と前記マスク値を演算した値によって、前記プログラムカウンタを更新する手順と、
    前記プログラムカウンタを復号化するために必要な値を、前記マスク値に基づき求める手順と、
    前記プログラムカウンタを復号化するために必要な値をバスを介して前記アドレス逆変換部に転送する手順と、
    前記プログラムカウンタの値をバスを介して前記アドレス逆変換部に転送する手順と、
    前記アドレス逆変換部が、前記プログラムカウンタを復号化するために必要な値に基づき転送されてくる前記プログラムカウンタの値を復号化してアドレスを求める手順と、
    前記復号化されたアドレスにより、前記中央処理装置が前記記憶装置にアクセスする手順とを有することを特徴とする情報処理装置のアドレス制御方法。
  8. プログラムカウンタを有する中央処理装置と前記中央処理装置からアクセスされる記憶装置とを備える情報処理装置のアドレス制御方法において、
    前記情報処理装置は、さらに、アドレス変位値レジスタを有するアドレス変位値変換部とアドレス逆変換部と任意値生成器とを備え、
    前記アドレス変位値レジスタに値dを設定する手順と、
    前記任意値生成器が、真正乱数または擬似乱数により生成されるマスク値αを生成する手順と、
    前記アドレス変位値変換部が、前記アドレス変位値レジスタの値dと前記マスク値αとの乗算値d×αを演算する手順と、
    前記アドレス変位値レジスタdの値と前記マスク値αとの乗算値d×αにより前記プログラムカウンタをインクリメントする手順と、
    前記プログラムカウンタを復号化するために必要な値として、前記マスク値αの元数2の有限環における逆元βを求める手順と、
    前記プログラムカウンタを復号化するために必要な値βをバスを介して前記アドレス逆変換部に転送する手順と、
    前記アドレス逆変換部が、前記プログラムカウンタを復号化するために必要な値βに基づき転送されてくる前記プログラムカウンタの値を復号化してアドレスを求める手順と、
    前記復号化されたアドレスにより、前記中央処理装置が前記記憶装置にアクセスする手順とを有することを特徴とする情報処理装置のアドレス制御方法。
  9. 前記アドレス変位値レジスタに値を設定する手順を、前記中央処理装置がプログラムを開始する前におこなうことを特徴とする請求項7記載の情報処理装置のアドレス制御方法。
  10. 前記任意値生成器がマスク値を生成する手順を、前記中央処理装置が動作中の任意の時点でおこなうことを特徴とする請求項7記載の情報処理装置のアドレス制御方法。
JP2004343648A 2004-11-29 2004-11-29 情報処理装置、および、そのアドレス制御方法 Expired - Fee Related JP4664655B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004343648A JP4664655B2 (ja) 2004-11-29 2004-11-29 情報処理装置、および、そのアドレス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004343648A JP4664655B2 (ja) 2004-11-29 2004-11-29 情報処理装置、および、そのアドレス制御方法

Publications (2)

Publication Number Publication Date
JP2006155140A true JP2006155140A (ja) 2006-06-15
JP4664655B2 JP4664655B2 (ja) 2011-04-06

Family

ID=36633377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004343648A Expired - Fee Related JP4664655B2 (ja) 2004-11-29 2004-11-29 情報処理装置、および、そのアドレス制御方法

Country Status (1)

Country Link
JP (1) JP4664655B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114465822A (zh) * 2022-04-08 2022-05-10 北京网藤科技有限公司 针对plc的攻击向量的自动生成方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203237A (ja) * 1998-01-16 1999-07-30 Toshiba Corp 半導体集積回路
JP2001195555A (ja) * 2000-01-12 2001-07-19 Hitachi Ltd Icカードとマイクロコンピュータ
JP2002328845A (ja) * 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
JP2003516071A (ja) * 1999-12-02 2003-05-07 インフィネオン テクノロジーズ アクチェンゲゼルシャフト 暗号化機能を備えるマイクロプロセッサ装置
JP2003296104A (ja) * 2002-04-05 2003-10-17 Hitachi Ltd プロセッサおよびアセンブラ/コンパイラ
JP2004126841A (ja) * 2002-10-01 2004-04-22 Renesas Technology Corp プログラム実装方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203237A (ja) * 1998-01-16 1999-07-30 Toshiba Corp 半導体集積回路
JP2003516071A (ja) * 1999-12-02 2003-05-07 インフィネオン テクノロジーズ アクチェンゲゼルシャフト 暗号化機能を備えるマイクロプロセッサ装置
JP2001195555A (ja) * 2000-01-12 2001-07-19 Hitachi Ltd Icカードとマイクロコンピュータ
JP2002328845A (ja) * 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
JP2003296104A (ja) * 2002-04-05 2003-10-17 Hitachi Ltd プロセッサおよびアセンブラ/コンパイラ
JP2004126841A (ja) * 2002-10-01 2004-04-22 Renesas Technology Corp プログラム実装方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114465822A (zh) * 2022-04-08 2022-05-10 北京网藤科技有限公司 针对plc的攻击向量的自动生成方法及系统
CN114465822B (zh) * 2022-04-08 2022-07-22 北京网藤科技有限公司 针对plc的攻击向量的自动生成方法及系统

Also Published As

Publication number Publication date
JP4664655B2 (ja) 2011-04-06

Similar Documents

Publication Publication Date Title
US7949883B2 (en) Cryptographic CPU architecture with random instruction masking to thwart differential power analysis
Suh et al. Aegis: A single-chip secure processor
Saputra et al. Masking the energy behavior of DES encryption [smart cards]
US6345359B1 (en) In-line decryption for protecting embedded software
De Mulder et al. Protecting RISC-V against side-channel attacks
US6691921B2 (en) Information processing device
US20040025032A1 (en) Method and system for resistance to statiscal power analysis
JP5146156B2 (ja) 演算処理装置
JP4683442B2 (ja) 処理装置および集積回路
JP4199937B2 (ja) 耐タンパー暗号処理方法
WO2016190924A2 (en) Side channel analysis resistant architecture
EP2987086A2 (en) Secure computing
US20170046280A1 (en) Data processing device and method for protecting a data processing device against attacks
JP2004054834A (ja) プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
CN108959129B (zh) 一种基于硬件的嵌入式系统机密性保护方法
JP2004109420A (ja) 乱数生成装置及び乱数生成方法
JP2004126841A (ja) プログラム実装方法
TW494306B (en) Secret code protection circuit capable of protecting read only memory data
JP2005149262A (ja) 情報処理装置
JP4664655B2 (ja) 情報処理装置、および、そのアドレス制御方法
Zheng et al. Securing embedded systems and their IPs with digital reconfigurable PUFs
Hossain et al. Hexon: Protecting firmware using hardware-assisted execution-level obfuscation
KR20100015077A (ko) 시스템 온 칩에서 암호화 방법 및 장치
Saputra et al. Masking the energy behaviour of encryption algorithms
US20230106942A1 (en) Method of communication between functional blocks in a system-on-chip and system-on-chip thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071120

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071120

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101206

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: 20101221

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: 20110107

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: 20140114

Year of fee payment: 3

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