JP3927151B2 - 記憶装置 - Google Patents
記憶装置 Download PDFInfo
- Publication number
- JP3927151B2 JP3927151B2 JP2003155462A JP2003155462A JP3927151B2 JP 3927151 B2 JP3927151 B2 JP 3927151B2 JP 2003155462 A JP2003155462 A JP 2003155462A JP 2003155462 A JP2003155462 A JP 2003155462A JP 3927151 B2 JP3927151 B2 JP 3927151B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- circuit
- storage
- address
- circuits
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
【発明の属する技術分野】
本発明は、データを記憶する記憶装置に関する。
【0002】
【従来の技術】
暗号システムへの攻撃方法の一つとしてPaul Kocherらによって提案されたDPAがある(例えば、非特許文献1参照)。この攻撃方法は、暗号処理を行っているハードウェアの消費電力を測定し、測定結果を統計的に処理することで、秘密鍵を推測する方法である。
【0003】
DPA対策の技術に、データマスキング法がある(例えば、特許文献1又は非特許文献2参照)。データマスキング法では、内部で処理するデータに乱数マスクと呼ばれるランダムデータを作用させて該データをランダム化することによって、データ変化による消費電力の隠蔽を行っている。
【0004】
以下、データマスキング法の概要について説明する。
【0005】
最初に、入力された平文をマスキングするために、平文に乱数マスクとの排他論理和を施す。
【0006】
次に、所定の暗号鍵に基づき、マスキングされた平文に対する暗号化処理を行う。その際、暗号アルゴリズムとしては、通常の暗号アルゴリズムが使用されるのではなく、これを上記で使用された乱数マスクに対応するアルゴリズムに変形したものが使用される。
【0007】
そして、暗号化処理の結果から、上記で使用された乱数マスクの影響を取り除く処理を行って、暗号文を求める。
【0008】
この結果、通常の暗号処理と同様の暗号文が得られるが、通常の暗号処理とは相違して、データ変化による消費電力は隠蔽される。従って、DPAによっても、秘密鍵を推測することはできない。
【0009】
ところで、多くの暗号アルゴリズムでは、非線型変換テーブル(SBOX)が用いられる。非線型変換テーブルを用いる暗号アルゴリズムについてデータマスキング法を実現する場合には、この非線型変換テーブルも乱数マスクに応じてランダム化される必要がある。
【0010】
データマスキング法を用いない構成では、非線型変換テーブルは、ROMとして構成されることが多いが、データマスキング法を用いる場合、乱数マスクを変更するときは非線型変換テーブルも当該乱数マスクを用いて変換しなければならないので、ある乱数マスクに対応する非線型変換テーブルを構成するROMを、使用する全ての乱数マスクについて用意するか、またはRAMを用いてその都度、使用する乱数マスクに対応する非線型変換テーブルを生成する必要がある。
【0011】
ところが、前者の複数のROMを用いる方法では、使用するマスク数が多い場合には、ROMの個数が多くなり、ハード規模が増大してしまうという問題がある。
【0012】
他方、後者のRAMを用いる構成では、データの読み出し、データの変換によるランダム化、データの書き込みという一連の処理を、非線型変換テーブルの全データについて、繰り返し実行する必要があり、処理時間が増大してしまうという問題がある。
【0013】
【特許文献1】
特開2002−366029
【0014】
【非特許文献1】
Differential Power Analysis; Paul Kocher, Joshua Jaffe, Benjamin Jun, “Differential Power Analysis”, Proceedings of Advances in Cruptlogy, CRYPT´99
【0015】
【非特許文献2】
Thomas S. Messerges, “Secureing the AES Finalists Against Power Analysis Attacks”, Proceding of Fast Software Encryption Work-shop 2000
【0016】
【発明が解決しようとする課題】
以上説明したように、非線型変換テーブルを用いる暗号アルゴリズムについてデータマスキング法を実現する場合には、ハード規模が増大する、処理時間が増大する、といった問題があった。
【0017】
本発明は、上記事情を考慮してなされたもので、ハード規模を増大させることなく、データの変換を高速に実現できる記憶装置を提供することを目的とする。
【0018】
【課題を解決するための手段】
本発明に係る記憶装置は、データを記憶するための複数のデータ記憶回路と、それぞれの前記データ記憶回路に記憶されているデータに対して、制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路とを備え、前記データ記憶回路は、記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶するものであり、前記複数のデータ変換回路内には、それぞれ、対応する前記データ記憶回路に割り当てられた固定アドレスが格納されており、前記データ変換回路は、第1の動作を示す動作指示信号及び入力データが与えられた場合に、該入力データを前記制御データとして前記変換及び前記出力を行い、第2の動作を示す動作指示信号及び指定アドレス並びに入力データが与えられた場合には、該指定アドレスと前記固定アドレスとを比較し、それらが一致したときは、該入力データをそのまま対応する前記データ記憶回路へ出力し、一致しないときは、対応する前記データ記憶回路に記憶されているデータをそのまま対応する前記データ記憶回路へ出力することを特徴とする。
また、本発明に係る記憶装置は、データを記憶するための複数のデータ記憶回路と、それぞれの前記データ記憶回路に記憶されているデータに対して、制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路と、前記複数のデータ記憶回路の各々に割り当てられた固定アドレスを格納し、前記複数のデータ記憶回路の各々の記憶動作を制御するための制御回路とを備え、前記データ記憶回路は、記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶するものであり、前記データ変換回路は、第1の動作を示す動作指示信号及び入力データが与えられた場合には、該入力データを前記制御データとして前記変換及び前記出力を行い、第2の動作を示す動作指示信号及び入力データが与えられた場合には、該入力データをそのまま対応する前記データ記憶回路へ出力し、前記制御回路は、記憶動作を指示する制御信号及び第1の動作を示す動作指示信号が与えられた場合には、全ての前記データ記憶回路へ前記記憶指示信号を与え、記憶動作を指示する制御信号及び第2の動作を示す動作指示信号並びに指定アドレスが与えられた場合には、該指定アドレスと同一の固定アドレスを割り当てられた前記データ記憶回路にのみ前記記憶指示信号を与えることを特徴とする。
また、本発明に係る記憶装置は、データを記憶するための複数のデータ記憶回路と、それぞれの前記データ記憶回路に記憶されているデータに対して、制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路とを備え、前記複数のデータ記憶回路の各々に割り当てられた固定アドレスを格納し、前記複数のデータ記憶回路の各々の記憶動作を制御するための制御回路とを備え、前記データ記憶回路は、記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶するものであり、前記制御回路は、第1の記憶動作を指示する制御信号及び指定アドレスが与えられた場合には、該指定アドレスと同一の固定アドレスを割り当てられた前記データ記憶回路にのみ前記記憶指示信号を与えるとともに、該データ記憶回路につき処理済みである旨を示す情報を保持し、第2の記憶動作を指示する制御信号が与えられた場合には、処理済みである旨を示す情報が保持されている前記データ記憶回路以外の全ての前記データ記憶回路へ前記記憶指示信号を与えるとともに、全ての前記データ記憶回路につき処理済みでない旨を示す情報を保持することを特徴とする。
【0019】
また、本発明に係る記憶装置は、データを記憶するための複数のデータ記憶回路と、それぞれの前記データ記憶回路に記憶されているデータに対して第1の制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路と、それぞれの前記データ記憶回路に対応するアドレスを記憶するための複数のアドレス記憶回路と、それぞれの前記アドレス記憶回路に記憶されているアドレスに対して第2の制御データに基づく可逆的な変換を施し、この結果得られたアドレスを対応する前記アドレス記憶回路へ出力するための複数のアドレス変換回路と、外部から与えられた指定アドレスと、対応する前記アドレス記憶回路に記憶されているアドレスとを比較し、一致が検出された場合に一致信号を出力する複数のアドレス側一致検出回路と、読出指示信号が与えられた場合に、前記一致信号を出力した前記アドレス側一致検出回路に対応する前記データ記憶回路に記憶されているデータを出力する読出回路とを備え、前記データ記憶回路は、第1の記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶し、前記アドレス記憶回路は、第2の記憶指示信号が与えられた場合に、対応する前記アドレス変換回路から出力されるアドレスを記憶することを特徴とする。
【0020】
また、本発明に係る記憶装置は、データを記憶するための複数のデータ記憶回路と、それぞれの前記データ記憶回路に記憶されているデータに対して第1の制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路と、それぞれの前記データ記憶回路に対応するアドレスを記憶するための複数のアドレス記憶回路と、それぞれの前記アドレス記憶回路に記憶されているアドレスに対して第2の制御データに基づく可逆的な変換を施し、この結果得られたアドレスを対応する前記アドレス記憶回路へ出力するための複数のアドレス変換回路と、外部から与えられた指定アドレスと、対応する前記アドレス記憶回路に記憶されているアドレスとを比較し、一致が検出された場合に第1の一致信号を出力する複数のアドレス側一致検出回路と、外部から与えられた指定データと、対応する前記データ記憶回路に記憶されているデータとを比較し、一致が検出された場合に第2の一致信号を出力する複数のデータ側一致検出回路と、第1のモードを示すモード指示信号及び読出指示信号が与えられた場合に、前記第1の一致信号を出力した前記アドレス側一致検出回路に対応する前記データ記憶回路に記憶されているデータを出力し、第2のモードを示すモード指示信号及び読出指示信号が与えられた場合に、前記第2の一致信号を出力した前記データ側一致検出回路に対応する前記アドレス記憶回路に記憶されているアドレスを出力する読出回路とを備え、前記データ記憶回路は、第1の記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶し、前記アドレス記憶回路は、第2の記憶指示信号が与えられた場合に、対応する前記アドレス変換回路から出力されるアドレスを記憶することを特徴とする。
【0021】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
【0022】
本発明によれば、ハード規模を増大させることなく、データの変換を高速に実現できる記憶装置を提供することができる。例えば、本発明の記憶装置をデータマスキング法を適用した暗号処理装置に使用すれば、データマスキング法を高速に実現することが可能となる。
【0023】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0024】
(第1の実施形態)
図1に、本発明の第1の実施形態に係る記憶装置の構成例を示す。
【0025】
図1に示されるように、本実施形態の記憶装置は、複数のデータ変換回路1と、複数の記憶回路2と、データ選択回路3とを備えている。
【0026】
各記憶回路2は、初期状態(例えば、リセット信号端子(図示せず)からのリセット信号により素子がリセットされたときの状態)では、予め定められた値(例えば、非線型変換テーブル(SBOX)のデータに相当する値)を保持しており、また、データ更新指示入力端子(図示せず)から入力されたデータ更新指示信号(あるいはデータ変換指示信号)に従って、対応する変換回路1の出力を記憶する。
【0027】
データ変換回路1は、対応する記憶回路2に保持されているデータ(以下、保持データ)に対し、データ入力端子(図示せず)から入力されたランダムデータ(制御データ)(例えば、データマスキング法における乱数マスク)に基づいて、可逆的な変換を施す。
【0028】
データ選択回路3は、読み出し指示入力端子(図示せず)から入力された読み出し指示信号に従って、複数の記憶回路2のうち、アドレス入力端子(図示せず)から入力されたアドレスに対応するものに保持されている保持データを、読み出しデータ出力端子(図示せず)に出力する。例えば、データ選択回路3は、各記憶回路2に割り当てられたアドレスを保持しており(実際には、例えば、一致検出回路の形態で保持していてもよい。)、アドレス入力端子から入力されたアドレスと同一のアドレスを割り当てられた記憶回路2に保持されている保持データのみを読み出しデータとして出力する。
【0029】
以下、図2及び図3を参照しながら、本記憶装置のデータ変換動作について説明する。
【0030】
図2は、各記憶回路2の保持データが変遷する例を示すもので、説明を簡単にするために、記憶装置がアドレス“0”〜“5”を記憶することができ、各アドレスに対応する記憶回路2はそれぞれ4ビットのデータを記憶することができ、各記憶回路2に対応する変換回路1は保持データとランダムデータとの各ビットの排他論理和を行う場合を例にとっている。
【0031】
図3は、ランダムデータ“0110”によりアドレス“0”〜“5”の保持データを一括変換するデータ更新動作及びアドレス“0”〜“5”の保持データを逐次読み出すデータ読み出し動作の例を示すタイミングチャートである。
【0032】
図2(a)に示した例では、初期状態として、
アドレス0の記憶回路は、“0100”、
アドレス1の記憶回路は、“1100”、
アドレス2の記憶回路は、“0101”、
アドレス3の記憶回路は、“1110”、
アドレス4の記憶回路は、“1101”、
アドレス5の記憶回路は、“1011”、
をそれぞれ保持するものとしている。
【0033】
この状態で、図3に示すように、データ入力端子からランダムデータ“0110”が入力され、データ更新指示入力端子からの信号によりデータ更新が指示されると、各記憶回路2に対応するデータ変換回路1は、対応する記憶回路2に保持されている保持データとランダムデータ“0110”との間のビット単位での排他的論理和の演算を行い、各演算結果を対応する記憶回路2に記憶する。これによって、すべての記憶回路2に保持されているデータが、同時に(一括して)、“0110”を排他論理和された値に更新される。
【0034】
すなわち、図2(a)に例示した各記憶回路2の内容に“0110”が排他論理和され、図2(b)に示すように、
アドレス0の記憶回路は、“0010”、
アドレス1の記憶回路は、“1010”、
アドレス2の記憶回路は、“0011”、
アドレス3の記憶回路は、“1000”、
アドレス4の記憶回路は、“1011”、
アドレス5の記憶回路は、“1101”、
にそれぞれ変更される。
【0035】
次いで、図3に示すように、アドレス入力端子から読み出しアドレス“0000”が入力され、データ読み出し指示入力端子からの信号によりデータ読み出しが指示されると、アドレス“0000”に対応する記憶回路2に保持されているデータ“0010”が、読み出しデータ出力端子から出力される。他のアドレスについても同様に逐次読み出しがなされる。
【0036】
なお、読み出されたデータ“0010”に、使用されたランダムデータ“0110”を排他的論理和すると、初期状態のデータ“0100”が得られる。他のデータについても同様である。
【0037】
さらに、ランダムデータとして“1100”が入力され、データ更新が指示されると、
アドレス0の記憶回路は、“1110”、
アドレス1の記憶回路は、“0110”、
アドレス2の記憶回路は、“1111”、
アドレス3の記憶回路は、“0100”、
アドレス4の記憶回路は、“0111”、
アドレス5の記憶回路は、“0001”、
にそれぞれ変更される。
【0038】
次いで、アドレス入力端子から読み出しアドレス“0000”が入力され、データ読み出し指示入力端子からの信号によりデータ読み出しが指示されると、アドレス“0000”に対応する記憶回路2に保持されているデータ“1110”が、読み出しデータ出力端子から出力される。他のアドレスについても同様に逐次読み出しがなされる。
【0039】
なお、読み出されたデータ“1110”に、 “1010”(使用されたランダムデータ“0110”と“1100”の排他論理和)排他的論理和すると、初期状態のデータ“0100”が得られる。他のデータについても同様である。
【0040】
このように本実施形態によれば、記憶装置内の各アドレスに対応した記憶回路に保持されている保持データを、データ入力端子から入力されたランダムデータを用いて、同時に更新することができるので、ハード規模を増大させることなく、処理時間を短くすることが可能となる。
【0041】
ここで、図4に、変換回路1として、排他論理和を用いた場合の構成例を示す。変換回路1として排他論理和を用いて構成した場合、一対の変換回路1及び記憶回路2には、例えば図5に示されるような構成を用いることができる。図5に示した一対の変換回路1及び記憶回路2は、N+1個(N+1は複数。例えば、記憶回路2が保持する保持データのビット数。)の排他論理和回路32と、フリップフロップやラッチなどのN+1個の記憶素子31とで構成される。なお、図5では、データ更新指示入力は省略している(例えば、データ更新指示入力がフリップフロップ(記憶素子31)のクロック端子へ与えられる)。
【0042】
なお、上記の例では、可逆的な変換を行う変換回路の一例として排他論理和を用いたが、例えば、シフトローテート、ビットの並び替えなど、他にも種々の可逆的な変換を用いる構成が実施可能である(複数の変換の組合せも可能である)。
【0043】
なお、記憶回路2を非線型変換テーブル(SBOX)として用いる場合に、各記憶回路2に初期状態として非線型変換テーブル(SBOX)のデータに相当する値を保持させる代わりに、非線型変換テーブル(SBOX)のデータを、ランダムデータで変換したものに相当する値を保持させるようにしてもよい。
【0044】
なお、上記では、各信号やデータは、記憶装置外部から各入力端子を介して与えられる構成を想定して説明したが、本記憶装置と同一チップ上に搭載された他の装置から各信号やデータが与えられる構成も可能である(以降の各実施形態についても同様である)。
【0045】
(第2の実施形態)
図6に、本発明の第2の実施形態に係る記憶装置の構成例を示す。
【0046】
本実施形態では、第1の実施形態と相違する点を中心に説明する。
【0047】
図6に示されるように、本実施形態の記憶装置は、複数のデータ変換回路1と、複数の記憶回路2と、データ選択回路3とを備えている。
【0048】
記憶回路2及びデータ選択回路3は、第1の実施形態と同様である。
【0049】
データ変換回路1は、それぞれ、対応する記憶回路2に割り当てられたアドレスを保持している(実際には、例えば、一致検出回路の形態で保持していてもよい。)。そして、対応する記憶回路2に保持されているデータに対し、データ入力端子(図示せず)から入力されたランダムデータ(制御データ)(例えば、データマスキング法における乱数マスク)に基づいて、可逆的な変換を施す動作を行うデータ変換モードと(この点は、第1の実施形態と同様である。)、アドレス入力端子(図示せず)から入力されたアドレスと、当該データ変換回路1に対応する記憶回路2に予め割り当てられたアドレスとを比較し、それらが一致した場合に、データ入力端子から入力された入力データを出力し、一致しなかった場合に、当該データ変換回路1に対応する記憶回路2に保持されている保持データを出力する(この比較は、実際には、例えば、該当する一致検出回路のみが一致信号を出すことによって実現し、この一致信号の有無によって動作が変わるようにしてもよい。)データ入力モードとの2つの更新動作モードを持つ。
【0050】
更新動作モードの切り替えは、書き込み指示入力端子(図示せず)からの書き込み指示信号によって行われる。すなわち、データ更新指示入力端子からの信号によりデータ更新が指示される場合に、図7に示すように、書き込み指示が有効のとき(データ入力モードを示す信号が入力されたとき)は、アドレス入力と一致するアドレスを持つ記憶回路2に対応する変換回路1のみ入力データが出力され(これが当該記憶回路2に保持される。)、それ以外の不一致の変換回路1からは、当該記憶回路2に保持されている値がそのまま出力され(これが当該記憶回路2に再度保持される。)、他方、書き込み指示が無効のとき(データ変換モードを示す信号が入力されたとき)は、第1の実施形態と同様に、入力されたランダムデータを用いた一括データ変換が行われる(図3参照)。
【0051】
データ入力モードにおいて、アドレスを指定して対応する記憶回路に所定の値を書き込むことを、アドレスの指定を変えながら各記憶回路について繰り返し行うことによって、本記憶装置に所望のデータを、(例えば、初期状態として)保持させることができる。
【0052】
このような構成の記憶装置を用いることで、記憶回路に初期状態でセットされるデータ以外の任意のデータを書き込むことができるようになる。例えば、本記憶装置を、非線型変換テーブルとして用いる場合に、任意の暗号方式に対応する非線型変換テーブルとして用いることができる。
【0053】
次に、図8に、本実施形態の記憶装置の変形例を示す。
【0054】
図8の構成では、図6の構成と相違して、書き込み制御回路4が用いられている。
【0055】
書き込み制御回路4は、データ更新指示入力端子(図示せず)からの信号によりデータ更新が指示されると、すべての記憶回路2に書き込み指示を行う。同時に、各データ変換回路1は、対応する記憶回路2に保持されている保持データを、データ入力からの入力データを用いて変換し、出力する。そして、各記憶回路2は、書き込み制御回路4からの制御信号により、データ変換回路1の出力を記憶する。
【0056】
一方、書き込み指示入力端子からの信号により書き込みが指示されると、アドレス入力端子から入力されたアドレスに対応する記憶回路2のみに書き込み指示を行う。同時に、データ変換回路1は、データ入力端子からの入力データを出力する。そして、入力されたアドレスに対応する記憶回路2のみが、該データ変換回路1の出力すなわち入力データを記憶する。
【0057】
この場合において、データ変換回路1として排他論理和を用いたときの構成例を図9に示す。なお、図中、37−i(i=0〜N)は、一致検出回路であり、一致検出回路37−iは、アドレス入力が、割り当てられたアドレスiと一致する場合にのみ、一致を示す制御信号を出力するものである。
【0058】
このような構成を用いても、あらかじめ保持されているデータ以外の任意のデータを記憶回路に保持することが可能となる。
【0059】
このように、本実施形態によれば、本記憶装置をRAMとして用いることができ、同一のモジュールで複数のアルゴリズムに対応させることが可能となる。
【0060】
(第3の実施形態)
図10に、本発明の第3の実施形態に係る記憶装置の構成例を示す。
【0061】
本実施形態では、第1の実施形態と相違する点を中心に説明する。
【0062】
図10に示されるように、本実施形態の記憶装置は、第1のデータ(例えば、非線型変換テーブルのデータ)を変換(可逆的な変換)するための複数のデータ変換回路(D)11と、第1のデータを保持するための複数の記憶回路(D)12と、データ選択回路13と、第2のデータ(例えば、非線型変換テーブルのアドレス)を変換するための複数のデータ変換回路(A)21と、第2のデータを保持するための複数の記憶回路(A)22と、複数の一致検出回路(A)25とを備えている。
【0063】
一対のデータ変換回路(D)及び記憶回路(D)は、基本的には、第1の実施形態の一対のデータ変換回路1及び記憶回路2と同様である。
【0064】
また、一対のデータ変換回路(A)及び記憶回路(A)も、基本的には、第1の実施形態の一対のデータ変換回路1及び記憶回路2と同様である。すなわち、本実施形態では、第2のデータ(例えば、アドレス)についても、ランダムデータ(制御データ)(例えば、乱数マスク)に基づく変換(可逆的な変換)を行うことができる点が、第1の実施形態と相違している。なお、各記憶回路(A)にも、初期状態では、予め定められた値(例えば、非線型変換テーブルのアドレスに相当する値)を保持している。
【0065】
一致検出回路(A)は、アドレス入力端子(A)(図示せず)から入力されたアドレスと、対応する記憶回路(A)に保持されたアドレスとを比較して、一致しているか否かを示す制御信号を出力する。
【0066】
データ選択回路13は、読み出し指示入力端子(図示せず)から入力された読み出し指示信号に従って、複数の記憶回路(D)のうち、アドレス入力(A)から入力されたアドレスに一致するアドレスを保持している記憶回路(A)に対応するものに保持されている保持データを、読み出しデータ出力端子(図示せず)に出力する。
【0067】
さて、データマスキング法では、非線型変換(SBOXなど)への入力をも乱数マスクによってマスキングする構成もある。テーブルへの入力は、本記憶装置では、アドレス入力である。従って、アドレス入力もマスキングに対応できると好ましい。図10の構成によれば、アドレス入力のマスキングにも対応することができる。この場合、読み出しアドレスを指示するアドレス入力(A)には、乱数マスクによってマスキングされたアドレスを入力すればよい。
【0068】
以下、図11を参照しながら、本記憶装置のデータ変換動作について説明する。
【0069】
図11(a)に示すように、初期状態では、
アドレス0に対応する記憶回路D−0は、“0100”、
アドレス1に対応する記憶回路D−1は、“1100”、
アドレス2に対応する記憶回路D−2は、“0101”、
アドレス3に対応する記憶回路D−3は、“1110”、
アドレス4に対応する記憶回路D−4は、“1101”、
アドレス5に対応する記憶回路D−5は、“1011”、
をそれぞれ保持し、
アドレス0に対応する記憶回路A−0は、“0000”、
アドレス1に対応する記憶回路A−1は、“0001”、
アドレス2に対応する記憶回路A−2は、“0010”、
アドレス3に対応する記憶回路A−3は、“0011”、
アドレス4に対応する記憶回路A−4は、“0100”、
アドレス5に対応する記憶回路A−5は、“0101”、
をそれぞれ保持しているものとする。
【0070】
この状態で、例えば、アドレス入力として0011(十進法で3)を入力すると、保持されている値が“0011”である記憶回路A−3のみが一致を出力し、データとして記憶回路D−3に保持されている“1110“が出力される。
【0071】
この状態から、例えば、データに“0110”を排他論理和し、他方、アドレスには、“1010”を排他論理和するものとすると、これによって、図11(b)に示すように、
アドレス0に対応する記憶回路D−0は、“0010”、
アドレス1に対応する記憶回路D−1は、“1010”、
アドレス2に対応する記憶回路D−2は、“0011”、
アドレス3に対応する記憶回路D−3は、“1000”、
アドレス4に対応する記憶回路D−4は、“1011”、
アドレス5に対応する記憶回路D−5は、“1101”、
を保持し、
アドレス0に対応する記憶回路A−0は、“1010”、
アドレス1に対応する記憶回路A−1は、“1011”、
アドレス2に対応する記憶回路A−2は、“1000”、
アドレス3に対応する記憶回路A−3は、“1001”、
アドレス4に対応する記憶回路A−4は、“1110”、
アドレス5に対応する記憶回路A−5は、“1111”、
を保持する状態になる。
【0072】
なお、データの変換と、アドレスの変換とは、同時に行ってもよいし、順次に行ってもよい。
【0073】
この状態で、例えば、アドレス用乱数マスク“1010”が施されたアドレスとして“1001”(1010と0011の排他論理和)を入力すると、記憶回路A−3に保持されている値が“1001”であるので、記憶回路A−3が一致を出力し、それに対応した記憶回路D−3のデータ“1000”が出力される。なお、読み出されたデータ“1000”にデータ用乱数マスク“0110”を排他論理和すると“1110”が出力される。
【0074】
このように、図10に示した構成を用いれば、アドレスに乱数マスクを施した場合でも、所望の結果を得ることができる。
【0075】
(第4の実施形態)
図12に、本発明の第4の実施形態に係る記憶装置の構成例を示す。
【0076】
本実施形態では、第3の実施形態と相違する点を中心に説明する。
【0077】
まず、データ更新動作は、第3の実施形態と同じである。
【0078】
次に、図12の構成は、図10の構成に加えて、複数の一致検出回路(D)15を備えている。一致検出回路(D)は、アドレス入力端子(D)(図示せず)から入力されたデータと、対応する記憶回路(D)に保持されたデータとを比較して、一致しているか否かを示す制御信号を出力する。
【0079】
データ選択回路23は、読み出し動作において、第1のモードと第2のモードを持ち、モード入力端子(図示せず)からの信号により第1のモードが指示された場合の動作は、第3の実施形態と同様、図13に例示するように、複数の記憶回路(D)のうち、アドレス入力(A)から入力されたアドレスに一致するアドレスを保持している記憶回路(A)に対応するものに保持されている保持データを、読み出しデータ出力端子(図示せず)に出力する。
【0080】
これに対して、第2のモードが指示された場合は、第1のモードとは逆の参照を行う。すなわち、図14に例示するように、複数の記憶回路(A)のうち、アドレス入力(D)から入力されたデータに一致するデータを保持している記憶回路(D)に対応するものに保持されているアドレスを、読み出しデータ出力端子(図示せず)に出力する。
【0081】
さて、暗号アルゴリズムによっては、非線型変換テーブルと、その逆のテーブルとを必要とするものがある。図12の構成は、このような逆変換テーブルを実現する機能をも併せ持つことができる。
【0082】
図12において、モード入力は、通常のテーブル参照(第1のモード)か、逆テーブル参照(第2のモード)かが入力される。
【0083】
通常のテーブル参照の場合は、図10に例示した記憶装置と同様に動作する。
【0084】
逆テーブル参照の場合は、アドレス入力(D)から出力すべきアドレスが入力される。
【0085】
ここで、図11に示した動作例を用いて逆テーブル参照の動作を説明する。
【0086】
初期状態において、逆テーブル参照として、アドレス入力(D)に“1100”が入力された場合、記憶回路D−1に保持されている内容が一致する。従って、この場合、記憶回路D−1に対応する記憶回路A−1の内容である“0001”が出力される。
【0087】
一方、変換後の状態においては、逆テーブル参照として、アドレス入力Dに“1000”が入力された場合、記憶回路D−3に保持されている内容が一致する。従って、この場合、記憶回路D−3に対応した記憶回路A−3の内容である“1001”が出力される。
【0088】
このように図12に示す構成を用いることで、アドレスを入力してデータを出力する通常のテーブル参照と、データを入力してアドレスを出力する逆のテーブル参照との両方を実現することが可能となる。すなわち、1つのモジュールで、あるテーブル参照とその逆のテーブル参照とを実現することが可能となる。
【0089】
(第5の実施形態)
図15に、本発明の第5の実施形態に係る記憶装置の構成例を示す。
【0090】
本実施形態では、第1の実施形態と相違する点を中心に説明する。
【0091】
図15の構成は、図1の構成に加えて、更新制御回路14及び更新識別回路8を備えている。
【0092】
更新識別回路8は、対応する記憶回路2に保持されているデータが、データ入力端子(図示せず)から入力されたデータによって更新済みか否かを識別するものである。
【0093】
更新制御回路14は、これまでの全記憶回路2に対する一括更新(あるいは一括変換)に加えて、一部の記憶回路2のみに対する部分更新(あるいは部分変換)をも可能にしたものである。なお、図中、38−i(i=0〜N)は、一致検出回路であり、一致検出回路38−iは、アドレス入力が、割り当てられたアドレスiと一致する場合にのみ、一致を示す制御信号を出力するものである。
【0094】
本実施形態では、未更新の記憶回路のみ更新可能とし(一旦、更新済みになると、状態がリセットされるまで更新不可になる)、全記憶回路2が更新された場合に、全記憶回路が未更新の状態にリセットされるものとしている。例えば、一括更新がなされた場合に、その時点で未更新の記憶回路2のみが更新されるとともに、全記憶回路が未更新の状態にリセットするなどである。
【0095】
なお、データ選択回路3から、入力アドレスに対応する記憶装置2の保持データが読み出される際に、対応する更新識別回路9に保持されている更新状態を示す情報をも、保持データとともに読み出されるようにしてもよい。この場合、外部で、更新状態に応じた処理を行うことができる。
【0096】
以下、図16を用いて本実施形態における変換動作について説明する。
【0097】
図16(a)に示すように、初期状態では、記憶回路2のそれぞれは、あらかじめ定められた値を保持している。また、更新識別回路8は、初期状態では、すべて未更新であることを示す値(例えば、“0”)を保持している。
【0098】
データ変換は、データ入力に与えられたデータと、記憶回路2に保持されているデータとの排他論理和で行われるものとする。
【0099】
このような状態から、まず、アドレス1に保持されているデータのみ変換し、次いで、アドレス3に保持されているデータのみ変換し、次いで、アドレス2に保持されているデータのみ変換するものとする。
【0100】
すると、図16(b)に示すように、変換に用いられたデータ“0110”によって、アドレス1に保持されていた“1100”が“1010”に変更され、アドレス3に保持されていた“1110”が“1000”に変更され、アドレス2に保持されていた“0101”が“0011”に変更されるとともに、対応する更新識別回路8に保持されている値がそれぞれ未更新であることを示す値(例えば、“0”)から更新済みであることを示す値(例えば、“1”)に変更される。
【0101】
次いで、一括更新がなされると、図16(c)に示すように、未更新であるアドレス0,4,5にそれぞれ保持されているデータのみ変換されるとともに、全更新識別回路8に保持されている値が、未更新であることを示す値(例えば、“0”)にリセットされる。
【0102】
図16に示すように、変更されたかどうかの2つの状態のみを識別できる構成の場合、更新されたアドレスが再び更新されてしまうと、読み出されたデータがどのような変更をされたかが特定できなくなってしまうため、一度変更されたデータは、記憶装置内のすべてのデータが変更されるまで更新できないように制御される。また、変更されていない記憶回路2を一括して更新するための一括更新指示入力を持ち、この信号が入力されると、更新識別回路9が未更新を示している記憶回路の内容が一括して変更され、記憶装置全体として整合がとれるような状態にすることが可能となる。
【0103】
なお、更新識別回路が更新回数を記憶するような構成も可能である。この場合、更新回数もデータ読み出しのときに同時に読み出すようにすれば、外部で、更新回数に応じた処理を行うことができる。更新回数の記憶は、例えばカウンタなどによって行うことができ、この場合、予め定められた上限値を越えていない場合に更新が行われ、上限値に達していた場合は、更新が行われないように制御することができる。
【0104】
なお、上記では、1回の部分更新では、一つの記憶回路についてのみ更新を行うようにしたが、1回の部分更新で、複数の記憶回路についての更新を可能としてもよい。
【0105】
このように部分的に変換を行うことが可能である記憶装置を用いることで、同時に変化する記憶装置の個数を減らすことができ、それによって、消費電力の増加を抑えることが可能となる。
【0106】
なお、第2の実施形態は、図10(データに対応する記憶回路(D)の側とアドレスに対応する記憶回路(A)の側の一方または双方)、図12(データに対応する記憶回路(D)の側とアドレスに対応する記憶回路(A)の側の一方または双方)、図15など、他の実施形態にも適用可能である。
【0107】
また、第5の実施形態は、図6、図8、図10(データに対応する記憶回路(D)の側とアドレスに対応する記憶回路(A)の側の一方または双方)、図12(データに対応する記憶回路(D)の側とアドレスに対応する記憶回路(A)の側の一方または双方)など、他の実施形態にも適用可能である。
【0108】
(第6の実施形態)
これまで説明してきた各実施形態に係る記憶装置を、データマスキング法を用いた暗号処理装置に適用する場合について説明する。
【0109】
まず、図17を参照しながら、データマスキング法を用いた暗号処理の概要について説明する。
【0110】
データマスキング法では、通常の暗号処理を行う前に、入力された平文に乱数マスクを変形(図中、101)する。なお、図17では、この変形は、排他論理和を例にとって示している。
【0111】
次に、暗号鍵を与え、乱数マスクにより変形されたアルゴリズムを用いて(図中、102)、乱数マスクにより変形された平文に対する暗号化処理を行う。
【0112】
そして、使用された乱数マスクを取り除く処理が行って(図中、103)、暗号文を出力する。
【0113】
なお、使用される乱数マスクは、適宜のタイミングで、変更される。
【0114】
図18に、図10に例示した構成に係る記憶装置を、暗号アルゴリズムの一つであるDES(Data Encryption Standard)のS関数(S1〜S8)に適用した場合の暗号処理装置の構成例を示す。
【0115】
DESでは、最初のラウンドの前に初期転置(Initial permutation)が行われ、また、最後のラウンドの後に初期転置の逆転置が行われるが、図18では、それらは省略してある。
【0116】
図18において、201,202,203で示す回路(丸の中に+の記号を記述したもの)は、排他論理和回路である。また、204(四角の中にEと記述したもの)は、DESのE関数である。また、205(四角の中にPと記述したもの)は、DESのP関数である。
【0117】
図18では、図10の記憶装置は、乱数マスクによりマスキングされたS関数を実現するために用いられる。図18において、200が、図10の記憶装置である。なお、図中、200で示す記憶装置内に、2つの排他論理和と1つのS関数とが記述されているが、これは、乱数マスクによりマスキングされたアルゴリズムを理解しやすくするために示したものであり、それらが実際に設けられるわけではない。
【0118】
また、図18に示すように、記憶回路200の入力側の排他論理和は、元のアドレスがアドレス側の乱数マスク(図10においてデータ入力(A)から入力される。)によってマスクされる。一方、出力側の排他論理和は、元のデータがデータ側の乱数マスク(図10においてデータ入力(D)から入力される。)によってマスクされる。
【0119】
また、図18に示すように、記憶回路200にアドレスが入力され(図10においてアドレス入力(A)から入力される)、対応するデータが出力される(図10において読み出しデータ出力から出力される)。
【0120】
さて、図18の構成例において、各記憶装置200は、S関数のS1〜S8のそれぞれに対応して初期化されている。
【0121】
最初に、左データに乱数マスクM0が排他論理和され、右データに乱数マスクM1が排他論理和される。
【0122】
最初のラウンドの処理において、記憶装置200では、アドレスに対応する記憶回路(A)は、乱数マスクM1にE関数を作用させた値でマスクされ、また、データに対応する記憶回路(D)は、乱数マスクM0とM2を排他論理和したものにP関数の逆関数を作用させた値でマスクされる。
【0123】
この結果、記憶装置200からは、入力アドレスに対応するデータが、上記の値(乱数マスクM0とM2を排他論理和したものにP関数の逆関数を作用させた値)によってマスクされた状態で、出力される。
【0124】
この出力がP関数に入力されると、P関数からは、乱数マスクM0とM2を排他論理和した値でマスクされたデータに相当するものが出力される。
【0125】
そして、次の排他論理和によって乱数マスクM0が無効となり、結局、処理結果は、乱数マスクM2によってマスクされたものになる。
【0126】
以下同様にして各ラウンドの処理が行われた後、最後に、左データに乱数マスクM17が排他論理和され、右データに乱数マスクM16が排他論理和され、これによって、すべての乱数マスクの影響が取り除かれた処理結果が得られる。
【0127】
このように、本来のアルゴリズムに対応した処理について途中の値をランダムデータによってマスクして処理することが可能となり、DPAに対処することができる。
【0128】
なお、図18において、図12に例示した構成に係る記憶装置を用いる場合には、第1のモード(通常のテーブル参照のモード)にして、上記と同様に用いればよい。
【0129】
また、図19に、図1,6,8,15などに例示した構成に係る記憶装置のいずれかを用いる場合の構成例を示す(図中、300が、該記憶装置を示す)。図18との相違は、データの側だけマスキングされる点である。なお、図19では、アドレスの側はマスキングしないので、301及び306の排他論理和回路を省く構成も可能である。
【0130】
なお、図20に示すように、これまでの実施形態で説明したいずれかの記憶装置400、CPU401、ROM402及びRAM403をバスで接続した構成を用い、記憶装置400については図18や図19と同様の使い方をするが、それ以外の処理はソフトウェアにより行うような、暗号アルゴリズムの実装も可能である。図18や図19では、暗号アルゴリズム全体をハードウェアで実現しているが、図20に示した構成を用いることでテーブル参照以外の機能をCPUで実行することが可能となる。このような構成を用いれば、記憶装置300を複数の暗号アルゴリズムで利用することが可能となる。例えば、図6に例示したような書き込み機能を持つ記憶装置を用いれば、通常のRAMのように用いることができる。また、図12に例示したような逆関数を実現できるような機能を持たせれば、CAM(Content Addressable memory)のように用いることも可能である。
【0131】
なお、以上の各機能は、ソフトウェアとして記述し適当な機構をもったコンピュータに処理させても実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるためのプログラムとして実施することもできる。加えて該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【0132】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0133】
【発明の効果】
本発明によれば、ハード規模を増大させることなく、データの変換を高速に実現できる記憶装置を提供することができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施形態に係る記憶装置の構成例を示す図
【図2】 同実施形態に係る記憶装置の動作例について説明するための図
【図3】 同実施形態に係る記憶装置の動作例について説明するための図
【図4】 同実施形態において変換回路として排他論理和を用いた場合の記憶装置の構成例を示す図
【図5】 同実施形態における変換回路及び記憶回路の構成例を示す図
【図6】 本発明の第2の実施形態に係る記憶装置の構成例を示す図
【図7】 同実施形態に係る記憶装置の動作例について説明するための図
【図8】 同実施形態に係る記憶装置の他の構成例を示す図
【図9】 同実施形態におけるデータ変換回路及び書き込み制御回路の構成例を示す図
【図10】 本発明の第3の実施形態に係る記憶装置の構成例を示す図
【図11】 同実施形態に係る記憶装置の動作例について説明するための図
【図12】 本発明の第4の実施形態に係る記憶装置の構成例を示す図
【図13】 同実施形態に係る記憶装置の動作例について説明するための図
【図14】 同実施形態に係る記憶装置の動作例について説明するための図
【図15】 本発明の第5の実施形態に係る記憶装置の構成例を示す図
【図16】 同実施形態に係る記憶装置の動作例について説明するための図
【図17】 データマスキング法の概要について説明するための図
【図18】 本発明の第6の実施形態に係る暗号処理装置の構成例を示す図
【図19】 同実施形態に係る暗号処理装置の他の構成例を示す図
【図20】 同実施形態に係る暗号処理装置のさらに他の構成例を示す図
【符号の説明】
1,11,21…データ変換回路、2,12,22…記憶回路、3,13,23…データ選択回路、4…書き込み制御回路、14…更新制御回路、15,25…一致検出回路、8…更新識別回路、31…記憶素子、32…排他的論理和回路、37−0〜37−N,38−0〜38−N…一致検出回路
Claims (19)
- データを記憶するための複数のデータ記憶回路と、
それぞれの前記データ記憶回路に記憶されているデータに対して、制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路とを備え、
前記データ記憶回路は、記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶するものであり、
前記複数のデータ変換回路内には、それぞれ、対応する前記データ記憶回路に割り当てられた固定アドレスが格納されており、
前記データ変換回路は、第1の動作を示す動作指示信号及び入力データが与えられた場合に、該入力データを前記制御データとして前記変換及び前記出力を行い、第2の動作を示す動作指示信号及び指定アドレス並びに入力データが与えられた場合には、該指定アドレスと前記固定アドレスとを比較し、それらが一致したときは、該入力データをそのまま対応する前記データ記憶回路へ出力し、一致しないときは、対応する前記データ記憶回路に記憶されているデータをそのまま対応する前記データ記憶回路へ出力することを特徴とする記憶装置。 - 前記動作指示信号及び前記指定アドレス並びに前記入力データは、いずれも、前記記憶装置の外部から入力され、全ての前記データ変換回路へ共通に与えられるものであることを特徴とする請求項1に記載の記憶装置。
- データを記憶するための複数のデータ記憶回路と、
それぞれの前記データ記憶回路に記憶されているデータに対して、制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路と、
前記複数のデータ記憶回路の各々に割り当てられた固定アドレスを格納し、前記複数のデータ記憶回路の各々の記憶動作を制御するための制御回路とを備え、
前記データ記憶回路は、記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶するものであり、
前記データ変換回路は、第1の動作を示す動作指示信号及び入力データが与えられた場合には、該入力データを前記制御データとして前記変換及び前記出力を行い、第2の動作を示す動作指示信号及び入力データが与えられた場合には、該入力データをそのまま対応する前記データ記憶回路へ出力し、
前記制御回路は、記憶動作を指示する制御信号及び第1の動作を示す動作指示信号が与えられた場合には、全ての前記データ記憶回路へ前記記憶指示信号を与え、記憶動作を指示する制御信号及び第2の動作を示す動作指示信号並びに指定アドレスが与えられた場合には、該指定アドレスと同一の固定アドレスを割り当てられた前記データ記憶回路にのみ前記記憶指示信号を与えることを特徴とする記憶装置。 - 前記制御信号及び前記指定アドレス、前記動作指示信号並びに前記入力データは、いずれも、前記記憶装置の外部から入力され、前記制御信号及び前記指定アドレスは、前記制御回路へ与えられ、前記動作指示信号は、前記制御回路及び全ての前記データ変換回路へ共通に与えられ、前記入力データは、全ての前記データ変換回路へ共通に与えられるものであることを特徴とする請求項3に記載の記憶装置。
- データを記憶するための複数のデータ記憶回路と、
それぞれの前記データ記憶回路に記憶されているデータに対して、制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路とを備え、
前記複数のデータ記憶回路の各々に割り当てられた固定アドレスを格納し、前記複数のデータ記憶回路の各々の記憶動作を制御するための制御回路とを備え、
前記データ記憶回路は、記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶するものであり、
前記制御回路は、第1の記憶動作を指示する制御信号及び指定アドレスが与えられた場合には、該指定アドレスと同一の固定アドレスを割り当てられた前記データ記憶回路にのみ前記記憶指示信号を与えるとともに、該データ記憶回路につき処理済みである旨を示す情報を保持し、第2の記憶動作を指示する制御信号が与えられた場合には、処理済みである旨を示す情報が保持されている前記データ記憶回路以外の全ての前記データ記憶回路へ前記記憶指示信号を与えるとともに、全ての前記データ記憶回路につき処理済みでない旨を示す情報を保持することを特徴とする記憶装置。 - 前記制御信号及び前記指定アドレスは、いずれも、前記記憶装置の外部から入力され前記制御回路へ与えられるものである請求項5に記載の記憶装置。
- 前記制御データは、前記記憶装置の外部から入力され、全ての前記データ変換回路へ共通に与えられるものであり、
前記記憶指示信号は、前記記憶装置の外部から入力され、全ての前記データ記憶回路へ共通に与えられるものであることを特徴とする請求項1、3または5に記載の記憶装置。 - 前記複数のデータ記憶回路の各々に割り当てられた固定アドレスを格納し、読出指示信号及び指定アドレスが与えられた場合に、該指定アドレスと同一の固定アドレスを割り当てられた前記データ記憶回路に記憶されているデータを出力する読出回路を更に備えたことを特徴とする請求項1、3または5に記載の記憶装置。
- 前記読出指示信号及び前記指定アドレスは、いずれも、前記記憶装置の外部から入力され前記読出回路へ与えられるものである請求項8に記載の記憶装置。
- 前記データ記憶回路は、フリップフロップ回路又はラッチ回路を用いて構成されたものであることを特徴とする請求項1、3または5に記載の記憶装置。
- 前記データ変換回路は、前記変換として、対応する前記データ記憶回路に記憶されているデータに対して前記制御データによる排他論理和を施すものであることを特徴とする請求項1、3または5に記載の記憶装置。
- データを記憶するための複数のデータ記憶回路と、
それぞれの前記データ記憶回路に記憶されているデータに対して第1の制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路と、
それぞれの前記データ記憶回路に対応するアドレスを記憶するための複数のアドレス記憶回路と、
それぞれの前記アドレス記憶回路に記憶されているアドレスに対して第2の制御データに基づく可逆的な変換を施し、この結果得られたアドレスを対応する前記アドレス記憶回路へ出力するための複数のアドレス変換回路と、
外部から与えられた指定アドレスと、対応する前記アドレス記憶回路に記憶されているアドレスとを比較し、一致が検出された場合に一致信号を出力する複数のアドレス側一致検出回路と、
読出指示信号が与えられた場合に、前記一致信号を出力した前記アドレス側一致検出回路に対応する前記データ記憶回路に記憶されているデータを出力する読出回路とを備え、
前記データ記憶回路は、第1の記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶し、前記アドレス記憶回路は、第2の記憶指示信号が与えられた場合に、対応する前記アドレス変換回路から出力されるアドレスを記憶することを特徴とする記憶装置。 - データを記憶するための複数のデータ記憶回路と、
それぞれの前記データ記憶回路に記憶されているデータに対して第1の制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路と、
それぞれの前記データ記憶回路に対応するアドレスを記憶するための複数のアドレス記憶回路と、
それぞれの前記アドレス記憶回路に記憶されているアドレスに対して第2の制御データに基づく可逆的な変換を施し、この結果得られたアドレスを対応する前記アドレス記憶回路へ出力するための複数のアドレス変換回路と、
外部から与えられた指定アドレスと、対応する前記アドレス記憶回路に記憶されているアドレスとを比較し、一致が検出された場合に第1の一致信号を出力する複数のアドレス側一致検出回路と、
外部から与えられた指定データと、対応する前記データ記憶回路に記憶されているデータとを比較し、一致が検出された場合に第2の一致信号を出力する複数のデータ側一致検出回路と、
第1のモードを示すモード指示信号及び読出指示信号が与えられた場合に、前記第1の一致信号を出力した前記アドレス側一致検出回路に対応する前記データ記憶回路に記憶されているデータを出力し、第2のモードを示すモード指示信号及び読出指示信号が与えられた場合に、前記第2の一致信号を出力した前記データ側一致検出回路に対応する前記アドレス記憶回路に記憶されているアドレスを出力する読出回路とを備え、
前記データ記憶回路は、第1の記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶し、前記アドレス記憶回路は、第2の記憶指示信号が与えられた場合に、対応する前記アドレス変換回路から出力されるアドレスを記憶することを特徴とする記憶装置。 - 前記第1の制御データ及び前記第1の記憶指示信号、前記第2の制御データ、前記第2の記憶指示信号及び前記指定アドレス、並びに前記読出指示信号は、いずれも、前記記憶装置の外部から入力され、前記第1の制御データは、全ての前記データ変換回路へ共通に与えられ、前記第1の記憶指示信号は、全ての前記データ記憶回路へ共通に与えられ、前記第2の制御データは、全ての前記アドレス変換回路へ共通に与えられ、前記第2の記憶指示信号は、全ての前記アドレス記憶回路へ共通に与えられ、前記指定アドレスは、全ての前記アドレス側一致検出回路へ共通に与えられ、前記読出指示信号は、前記読出回路へ与えられることを特徴とする請求項12または13に記載の記憶装置。
- 前記指定データ及び前記モード指示信号は、いずれも、前記記憶装置の外部から入力され、前記指定データは、全ての前記データ側一致検出回路へ共通に与えられ、前記モード指示信号は、前記読出回路へ与えられることを特徴とする請求項13に記載の記憶装置。
- 前記アドレス記憶回路及び前記データ記憶回路は、フリップフロップ回路又はラッチ回路を用いて構成されたものであることを特徴とする請求項12または13に記載の記憶装置。
- 前記データ変換回路は、前記変換として、対応する前記データ記憶回路に記憶されているデータに対して前記第1の制御データによる排他論理和を施すものであり、前記アドレス変換回路は、前記変換として、対応する前記アドレス記憶回路に記憶されているアドレスに対して前記第2の制御データによる排他論理和を施すものであることを特徴とする請求項12または13に記載の記憶装置。
- 前記複数のデータ記憶回路は、初期状態として、予め定められたビット数の特定の内容のデータを記憶した状態を有するものであることを特徴とする請求項1、3、5、12または13に記載の記憶装置。
- 前記複数のデータ記憶回路は、初期状態として、特定の暗号アルゴリズムで使用される非線型変換テーブルのデータを記憶した状態を有するものであることを特徴とする請求項18に記載の記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003155462A JP3927151B2 (ja) | 2003-05-30 | 2003-05-30 | 記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003155462A JP3927151B2 (ja) | 2003-05-30 | 2003-05-30 | 記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004354920A JP2004354920A (ja) | 2004-12-16 |
JP3927151B2 true JP3927151B2 (ja) | 2007-06-06 |
Family
ID=34049821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003155462A Expired - Fee Related JP3927151B2 (ja) | 2003-05-30 | 2003-05-30 | 記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3927151B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007000702A2 (en) | 2005-06-29 | 2007-01-04 | Koninklijke Philips Electronics N.V. | Arrangement for and method of protecting a data processing device against a cryptographic attack or analysis |
EP3010173B1 (en) * | 2013-07-18 | 2019-01-16 | Nippon Telegraph And Telephone Corporation | Key storage device, key storage method, and program therefor |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63313255A (ja) * | 1987-06-16 | 1988-12-21 | Ricoh Co Ltd | 計算機システムにおけるデ−タ機密保護方法 |
FR2650097B1 (fr) * | 1989-07-19 | 1992-12-31 | Pailles Jean Claude | Carte a microcircuit cable et procede de transaction entre une carte a microcircuit cable correspondante et un terminal |
JPH06195268A (ja) * | 1992-12-25 | 1994-07-15 | Fujitsu Ltd | Icメモリカード及びそのデータ保護方法及び装置 |
JPH06119251A (ja) * | 1992-10-02 | 1994-04-28 | Sharp Corp | 読み出し専用メモリ |
JP3600454B2 (ja) * | 1998-08-20 | 2004-12-15 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
JP4596686B2 (ja) * | 2001-06-13 | 2010-12-08 | 富士通株式会社 | Dpaに対して安全な暗号化 |
JP4357815B2 (ja) * | 2002-09-11 | 2009-11-04 | 株式会社東芝 | 暗号演算回路 |
EP1548687B1 (en) * | 2002-12-18 | 2013-01-09 | Fujitsu Limited | Tamper-resistant elliptical curve encryption using secret key |
-
2003
- 2003-05-30 JP JP2003155462A patent/JP3927151B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004354920A (ja) | 2004-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8422668B1 (en) | Table lookup operation on masked data | |
US8184806B2 (en) | Table masking for resistance to power analysis attacks | |
US20200364377A1 (en) | Determining cryptographic operation masks for improving resistance to external monitoring attacks | |
US8515057B2 (en) | Method and device for executing crytographic calculation | |
US20160127123A1 (en) | Systems And Methods For Dynamic Data Masking | |
US20100098244A1 (en) | System and method for stream/block cipher with internal random states | |
US11258579B2 (en) | Method and circuit for implementing a substitution table | |
CN106487498B (zh) | 电子电路对边信道攻击的抵抗的检验 | |
WO2007083528A1 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP2007195132A (ja) | 暗号処理装置 | |
EP3667647A1 (en) | Encryption device, encryption method, decryption device, and decryption method | |
US20050232416A1 (en) | Method and device for determining a result | |
EP1601132B1 (en) | Table Masking for Resistance to Power Analysis Attacks | |
US11824969B2 (en) | Method and circuit for performing a substitution operation | |
US20020101985A1 (en) | Single-cycle hardware implementation of crypto-function for high throughput crypto-processing | |
US20190362105A1 (en) | Data Security Using Bit Transposition During Memory Accesses | |
JP3927151B2 (ja) | 記憶装置 | |
US11500786B2 (en) | System and method for protecting memory encryption against template attacks | |
JP4863279B2 (ja) | メモリシステム及びメモリアクセス方法 | |
CN110266481B (zh) | 基于矩阵的后量子加、解密方法与解密装置 | |
US7103180B1 (en) | Method of implementing the data encryption standard with reduced computation | |
US20060125664A1 (en) | Masking of binary words processed by an integrated circuit | |
EP3531612B1 (en) | Method and device for performing substitution table operations | |
US9832014B2 (en) | Symmetrical iterated block encryption method and corresponding apparatus | |
CN111510296A (zh) | Sm4/aes双模加密电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070205 |
|
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: 20070227 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070301 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100309 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110309 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120309 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130309 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130309 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140309 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |