(57)【要約】【課題】ハード規模を増大させることなく、データの変換を高速に実現できる記憶装置を提供すること。【解決手段】データを記憶する複数の記憶回路２と、記憶回路２に対応して一つずつ設けられ、対応する記憶回路２に記憶されているデータを、入力されたランダムデータを用いて変換し、対応する記憶回路２へ出力する複数の変換回路１とを備え、複数の記憶回路２はデータ更新指示が入力された場合にそれぞれ対応する変換回路１から出力される変換データを記憶する。また、データ選択回路３を備え、データ選択回路３は、読み出し指示が入力された場合に、外部から入力されたアドレスと同じアドレスを割り当てられた記憶回路２に記憶されているデータを読み出しデータとして出力する。【選択図】    図１
2004354920.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するための複数のデータ記憶回路と、
それぞれの前記データ記憶回路に記憶されているデータに対して、制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路とを備え、
前記データ記憶回路は、記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶することを特徴とする記憶装置。
【請求項２】
前記制御データは、前記記憶装置の外部から入力され、全ての前記データ変換回路へ共通に与えられるものであり、
前記記憶指示信号は、前記記憶装置の外部から入力され、全ての前記データ記憶回路へ共通に与えられるものであることを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記複数のデータ変換回路内には、それぞれ、対応する前記データ記憶回路に割り当てられた固定アドレスが格納されており、
前記データ変換回路は、第１の動作を示す動作指示信号及び入力データが与えられた場合に、該入力データを前記制御データとして前記変換及び前記出力を行い、第２の動作を示す動作指示信号及び指定アドレス並びに入力データが与えられた場合には、該指定アドレスと前記固定アドレスとを比較し、それらが一致したときは、該入力データをそのまま対応する前記データ記憶回路へ出力し、一致しないときは、対応する前記データ記憶回路に記憶されているデータをそのまま対応する前記データ記憶回路へ出力することを特徴とする請求項１に記載の記憶装置。
【請求項４】
前記動作指示信号及び前記指定アドレス並びに前記入力データは、いずれも、前記記憶装置の外部から入力され、全ての前記データ変換回路へ共通に与えられるものであることを特徴とする請求項３に記載の記憶装置。
【請求項５】
前記複数のデータ記憶回路の各々に割り当てられた固定アドレスを格納し、前記複数のデータ記憶回路の各々の記憶動作を制御するための制御回路を更に備え、
前記データ変換回路は、第１の動作を示す動作指示信号及び入力データが与えられた場合には、該入力データを前記制御データとして前記変換及び前記出力を行い、第２の動作を示す動作指示信号及び入力データが与えられた場合には、該入力データをそのまま対応する前記データ記憶回路へ出力し、
前記制御回路は、記憶動作を指示する制御信号及び第１の動作を示す動作指示信号が与えられた場合には、全ての前記データ記憶回路へ前記記憶指示信号を与え、記憶動作を指示する制御信号及び第２の動作を示す動作指示信号並びに指定アドレスが与えられた場合には、該指定アドレスと同一の固定アドレスを割り当てられた前記データ記憶回路にのみ前記記憶指示信号を与えることを特徴とする請求項１に記載の記憶装置。
【請求項６】
前記制御信号及び前記指定アドレス、前記動作指示信号並びに前記入力データは、いずれも、前記記憶装置の外部から入力され、前記制御信号及び前記指定アドレスは、前記制御回路へ与えられ、前記動作指示信号は、前記制御回路及び全ての前記データ変換回路へ共通に与えられ、前記入力データは、全ての前記データ変換回路へ共通に与えられるものであることを特徴とする請求項５に記載の記憶装置。
【請求項７】
前記複数のデータ記憶回路の各々に割り当てられた固定アドレスを格納し、読出指示信号及び指定アドレスが与えられた場合に、該指定アドレスと同一の固定アドレスを割り当てられた前記データ記憶回路に記憶されているデータを出力する読出回路を更に備えたことを特徴とする請求項１に記載の記憶装置。
【請求項８】
前記読出指示信号及び前記指定アドレスは、いずれも、前記記憶装置の外部から入力され前記読出回路へ与えられるものである請求項７に記載の記憶装置。
【請求項９】
前記複数のデータ記憶回路の各々に割り当てられた固定アドレスを格納し、前記複数のデータ記憶回路の各々の記憶動作を制御するための制御回路を更に備え、
前記制御回路は、第１の記憶動作を指示する制御信号及び指定アドレスが与えられた場合には、該指定アドレスと同一の固定アドレスを割り当てられた前記データ記憶回路にのみ前記記憶指示信号を与えるとともに、該データ記憶回路につき処理済みである旨を示す情報を保持し、第２の記憶動作を指示する制御信号が与えられた場合には、処理済みである旨を示す情報が保持されている前記データ記憶回路以外の全ての前記データ記憶回路へ前記記憶指示信号を与えるとともに、全ての前記データ記憶回路につき処理済みでない旨を示す情報を保持することを特徴とする請求項１に記載の記憶装置。
【請求項１０】
前記制御信号及び前記指定アドレスは、いずれも、前記記憶装置の外部から入力され前記制御回路へ与えられるものである請求項９に記載の記憶装置。
【請求項１１】
前記データ記憶回路は、フリップフロップ回路又はラッチ回路を用いて構成されたものであることを特徴とする請求項１に記載の記憶装置。
【請求項１２】
前記データ変換回路は、前記変換として、対応する前記データ記憶回路に記憶されているデータに対して前記制御データによる排他論理和を施すものであることを特徴とする請求項１に記載の記憶装置。
【請求項１３】
データを記憶するための複数のデータ記憶回路と、
それぞれの前記データ記憶回路に記憶されているデータに対して第１の制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路と、
それぞれの前記データ記憶回路に対応するアドレスを記憶するための複数のアドレス記憶回路と、
それぞれの前記アドレス記憶回路に記憶されているアドレスに対して第２の制御データに基づく可逆的な変換を施し、この結果得られたアドレスを対応する前記アドレス記憶回路へ出力するための複数のアドレス変換回路と、
外部から与えられた指定アドレスと、対応する前記アドレス記憶回路に記憶されているアドレスとを比較し、一致が検出された場合に一致信号を出力する複数のアドレス側一致検出回路と、
読出指示信号が与えられた場合に、前記一致信号を出力した前記アドレス側一致検出回路に対応する前記データ記憶回路に記憶されているデータを出力する読出回路とを備え、
前記データ記憶回路は、第１の記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶し、前記アドレス記憶回路は、第２の記憶指示信号が与えられた場合に、対応する前記アドレス変換回路から出力されるアドレスを記憶することを特徴とする記憶装置。
【請求項１４】
データを記憶するための複数のデータ記憶回路と、
それぞれの前記データ記憶回路に記憶されているデータに対して第１の制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路と、
それぞれの前記データ記憶回路に対応するアドレスを記憶するための複数のアドレス記憶回路と、
それぞれの前記アドレス記憶回路に記憶されているアドレスに対して第２の制御データに基づく可逆的な変換を施し、この結果得られたアドレスを対応する前記アドレス記憶回路へ出力するための複数のアドレス変換回路と、
外部から与えられた指定アドレスと、対応する前記アドレス記憶回路に記憶されているアドレスとを比較し、一致が検出された場合に第１の一致信号を出力する複数のアドレス側一致検出回路と、
外部から与えられた指定データと、対応する前記データ記憶回路に記憶されているデータとを比較し、一致が検出された場合に第２の一致信号を出力する複数のデータ側一致検出回路と、
第１のモードを示すモード指示信号及び読出指示信号が与えられた場合に、前記第１の一致信号を出力した前記アドレス側一致検出回路に対応する前記データ記憶回路に記憶されているデータを出力し、第２のモードを示すモード指示信号及び読出指示信号が与えられた場合に、前記第２の一致信号を出力した前記データ側一致検出回路に対応する前記アドレス記憶回路に記憶されているアドレスを出力する読出回路とを備え、
前記データ記憶回路は、第１の記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶し、前記アドレス記憶回路は、第２の記憶指示信号が与えられた場合に、対応する前記アドレス変換回路から出力されるアドレスを記憶することを特徴とする記憶装置。
【請求項１５】
前記第１の制御データ及び前記第１の記憶指示信号、前記第２の制御データ、前記第２の記憶指示信号及び前記指定アドレス、並びに前記読出指示信号は、いずれも、前記記憶装置の外部から入力され、前記第１の制御データは、全ての前記データ変換回路へ共通に与えられ、前記第１の記憶指示信号は、全ての前記データ記憶回路へ共通に与えられ、前記第２の制御データは、全ての前記アドレス変換回路へ共通に与えられ、前記第２の記憶指示信号は、全ての前記アドレス記憶回路へ共通に与えられ、前記指定アドレスは、全ての前記アドレス側一致検出回路へ共通に与えられ、前記読出指示信号は、前記読出回路へ与えられることを特徴とする請求項１３または１４に記載の記憶装置。
【請求項１６】
前記指定データ及び前記モード指示信号は、いずれも、前記記憶装置の外部から入力され、前記指定データは、全ての前記データ側一致検出回路へ共通に与えられ、前記モード指示信号は、前記読出回路へ与えられることを特徴とする請求項１４に記載の記憶装置。
【請求項１７】
前記アドレス記憶回路及び前記データ記憶回路は、フリップフロップ回路又はラッチ回路を用いて構成されたものであることを特徴とする請求項１３または１４に記載の記憶装置。
【請求項１８】
前記データ変換回路は、前記変換として、対応する前記データ記憶回路に記憶されているデータに対して前記第１の制御データによる排他論理和を施すものであり、前記アドレス変換回路は、前記変換として、対応する前記アドレス記憶回路に記憶されているアドレスに対して前記第２の制御データによる排他論理和を施すものであることを特徴とする請求項１３または１４に記載の記憶装置。
【請求項１９】
前記複数のデータ記憶回路は、初期状態として、予め定められたビット数の特定の内容のデータを記憶した状態を有するものであることを特徴とする請求項１、１３または１４に記載の記憶装置。
【請求項２０】
前記複数のデータ記憶回路は、初期状態として、特定の暗号アルゴリズムで使用される非線型変換テーブルのデータを記憶した状態を有するものであることを特徴とする請求項１９に記載の記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データを記憶する記憶装置に関する。
【０００２】
【従来の技術】
暗号システムへの攻撃方法の一つとしてＰａｕｌ  Ｋｏｃｈｅｒらによって提案されたＤＰＡがある（例えば、非特許文献１参照）。この攻撃方法は、暗号処理を行っているハードウェアの消費電力を測定し、測定結果を統計的に処理することで、秘密鍵を推測する方法である。
【０００３】
ＤＰＡ対策の技術に、データマスキング法がある（例えば、特許文献１又は非特許文献２参照）。データマスキング法では、内部で処理するデータに乱数マスクと呼ばれるランダムデータを作用させて該データをランダム化することによって、データ変化による消費電力の隠蔽を行っている。
【０００４】
以下、データマスキング法の概要について説明する。
【０００５】
最初に、入力された平文をマスキングするために、平文に乱数マスクとの排他論理和を施す。
【０００６】
次に、所定の暗号鍵に基づき、マスキングされた平文に対する暗号化処理を行う。その際、暗号アルゴリズムとしては、通常の暗号アルゴリズムが使用されるのではなく、これを上記で使用された乱数マスクに対応するアルゴリズムに変形したものが使用される。
【０００７】
そして、暗号化処理の結果から、上記で使用された乱数マスクの影響を取り除く処理を行って、暗号文を求める。
【０００８】
この結果、通常の暗号処理と同様の暗号文が得られるが、通常の暗号処理とは相違して、データ変化による消費電力は隠蔽される。従って、ＤＰＡによっても、秘密鍵を推測することはできない。
【０００９】
ところで、多くの暗号アルゴリズムでは、非線型変換テーブル（ＳＢＯＸ）が用いられる。非線型変換テーブルを用いる暗号アルゴリズムについてデータマスキング法を実現する場合には、この非線型変換テーブルも乱数マスクに応じてランダム化される必要がある。
【００１０】
データマスキング法を用いない構成では、非線型変換テーブルは、ＲＯＭとして構成されることが多いが、データマスキング法を用いる場合、乱数マスクを変更するときは非線型変換テーブルも当該乱数マスクを用いて変換しなければならないので、ある乱数マスクに対応する非線型変換テーブルを構成するＲＯＭを、使用する全ての乱数マスクについて用意するか、またはＲＡＭを用いてその都度、使用する乱数マスクに対応する非線型変換テーブルを生成する必要がある。
【００１１】
ところが、前者の複数のＲＯＭを用いる方法では、使用するマスク数が多い場合には、ＲＯＭの個数が多くなり、ハード規模が増大してしまうという問題がある。
【００１２】
他方、後者のＲＡＭを用いる構成では、データの読み出し、データの変換によるランダム化、データの書き込みという一連の処理を、非線型変換テーブルの全データについて、繰り返し実行する必要があり、処理時間が増大してしまうという問題がある。
【００１３】
【特許文献１】
特開２００２−３６６０２９
【００１４】
【非特許文献１】
Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ；  Ｐａｕｌ  Ｋｏｃｈｅｒ，  Ｊｏｓｈｕａ  Ｊａｆｆｅ，  Ｂｅｎｊａｍｉｎ  Ｊｕｎ，  “Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ”，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｕｐｔｌｏｇｙ，  ＣＲＹＰＴ´９９
【００１５】
【非特許文献２】
Ｔｈｏｍａｓ  Ｓ．  Ｍｅｓｓｅｒｇｅｓ，  “Ｓｅｃｕｒｅｉｎｇ  ｔｈｅ  ＡＥＳ  Ｆｉｎａｌｉｓｔｓ  Ａｇａｉｎｓｔ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ  Ａｔｔａｃｋｓ”，  Ｐｒｏｃｅｄｉｎｇ  ｏｆ  Ｆａｓｔ  Ｓｏｆｔｗａｒｅ  Ｅｎｃｒｙｐｔｉｏｎ  Ｗｏｒｋ−ｓｈｏｐ  ２０００
【００１６】
【発明が解決しようとする課題】
以上説明したように、非線型変換テーブルを用いる暗号アルゴリズムについてデータマスキング法を実現する場合には、ハード規模が増大する、処理時間が増大する、といった問題があった。
【００１７】
本発明は、上記事情を考慮してなされたもので、ハード規模を増大させることなく、データの変換を高速に実現できる記憶装置を提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明に係る記憶装置は、データを記憶するための複数のデータ記憶回路と、それぞれの前記データ記憶回路に記憶されているデータに対して、制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路とを備え、前記データ記憶回路は、記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶することを特徴とする。
【００１９】
また、本発明に係る記憶装置は、データを記憶するための複数のデータ記憶回路と、それぞれの前記データ記憶回路に記憶されているデータに対して第１の制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路と、それぞれの前記データ記憶回路に対応するアドレスを記憶するための複数のアドレス記憶回路と、それぞれの前記アドレス記憶回路に記憶されているアドレスに対して第２の制御データに基づく可逆的な変換を施し、この結果得られたアドレスを対応する前記アドレス記憶回路へ出力するための複数のアドレス変換回路と、外部から与えられた指定アドレスと、対応する前記アドレス記憶回路に記憶されているアドレスとを比較し、一致が検出された場合に一致信号を出力する複数のアドレス側一致検出回路と、読出指示信号が与えられた場合に、前記一致信号を出力した前記アドレス側一致検出回路に対応する前記データ記憶回路に記憶されているデータを出力する読出回路とを備え、前記データ記憶回路は、第１の記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶し、前記アドレス記憶回路は、第２の記憶指示信号が与えられた場合に、対応する前記アドレス変換回路から出力されるアドレスを記憶することを特徴とする。
【００２０】
また、本発明に係る記憶装置は、データを記憶するための複数のデータ記憶回路と、それぞれの前記データ記憶回路に記憶されているデータに対して第１の制御データに基づく可逆的な変換を施し、この結果得られたデータを対応する前記データ記憶回路へ出力するための複数のデータ変換回路と、それぞれの前記データ記憶回路に対応するアドレスを記憶するための複数のアドレス記憶回路と、それぞれの前記アドレス記憶回路に記憶されているアドレスに対して第２の制御データに基づく可逆的な変換を施し、この結果得られたアドレスを対応する前記アドレス記憶回路へ出力するための複数のアドレス変換回路と、外部から与えられた指定アドレスと、対応する前記アドレス記憶回路に記憶されているアドレスとを比較し、一致が検出された場合に第１の一致信号を出力する複数のアドレス側一致検出回路と、外部から与えられた指定データと、対応する前記データ記憶回路に記憶されているデータとを比較し、一致が検出された場合に第２の一致信号を出力する複数のデータ側一致検出回路と、第１のモードを示すモード指示信号及び読出指示信号が与えられた場合に、前記第１の一致信号を出力した前記アドレス側一致検出回路に対応する前記データ記憶回路に記憶されているデータを出力し、第２のモードを示すモード指示信号及び読出指示信号が与えられた場合に、前記第２の一致信号を出力した前記データ側一致検出回路に対応する前記アドレス記憶回路に記憶されているアドレスを出力する読出回路とを備え、前記データ記憶回路は、第１の記憶指示信号が与えられた場合に、対応する前記データ変換回路から出力されるデータを記憶し、前記アドレス記憶回路は、第２の記憶指示信号が与えられた場合に、対応する前記アドレス変換回路から出力されるアドレスを記憶することを特徴とする。
【００２１】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
【００２２】
本発明によれば、ハード規模を増大させることなく、データの変換を高速に実現できる記憶装置を提供することができる。例えば、本発明の記憶装置をデータマスキング法を適用した暗号処理装置に使用すれば、データマスキング法を高速に実現することが可能となる。
【００２３】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００２４】
（第１の実施形態）
図１に、本発明の第１の実施形態に係る記憶装置の構成例を示す。
【００２５】
図１に示されるように、本実施形態の記憶装置は、複数のデータ変換回路１と、複数の記憶回路２と、データ選択回路３とを備えている。
【００２６】
各記憶回路２は、初期状態（例えば、リセット信号端子（図示せず）からのリセット信号により素子がリセットされたときの状態）では、予め定められた値（例えば、非線型変換テーブル（ＳＢＯＸ）のデータに相当する値）を保持しており、また、データ更新指示入力端子（図示せず）から入力されたデータ更新指示信号（あるいはデータ変換指示信号）に従って、対応する変換回路１の出力を記憶する。
【００２７】
データ変換回路１は、対応する記憶回路２に保持されているデータ（以下、保持データ）に対し、データ入力端子（図示せず）から入力されたランダムデータ（制御データ）（例えば、データマスキング法における乱数マスク）に基づいて、可逆的な変換を施す。
【００２８】
データ選択回路３は、読み出し指示入力端子（図示せず）から入力された読み出し指示信号に従って、複数の記憶回路２のうち、アドレス入力端子（図示せず）から入力されたアドレスに対応するものに保持されている保持データを、読み出しデータ出力端子（図示せず）に出力する。例えば、データ選択回路３は、各記憶回路２に割り当てられたアドレスを保持しており（実際には、例えば、一致検出回路の形態で保持していてもよい。）、アドレス入力端子から入力されたアドレスと同一のアドレスを割り当てられた記憶回路２に保持されている保持データのみを読み出しデータとして出力する。
【００２９】
以下、図２及び図３を参照しながら、本記憶装置のデータ変換動作について説明する。
【００３０】
図２は、各記憶回路２の保持データが変遷する例を示すもので、説明を簡単にするために、記憶装置がアドレス“０”〜“５”を記憶することができ、各アドレスに対応する記憶回路２はそれぞれ４ビットのデータを記憶することができ、各記憶回路２に対応する変換回路１は保持データとランダムデータとの各ビットの排他論理和を行う場合を例にとっている。
【００３１】
図３は、ランダムデータ“０１１０”によりアドレス“０”〜“５”の保持データを一括変換するデータ更新動作及びアドレス“０”〜“５”の保持データを逐次読み出すデータ読み出し動作の例を示すタイミングチャートである。
【００３２】
図２（ａ）に示した例では、初期状態として、
アドレス０の記憶回路は、“０１００”、
アドレス１の記憶回路は、“１１００”、
アドレス２の記憶回路は、“０１０１”、
アドレス３の記憶回路は、“１１１０”、
アドレス４の記憶回路は、“１１０１”、
アドレス５の記憶回路は、“１０１１”、
をそれぞれ保持するものとしている。
【００３３】
この状態で、図３に示すように、データ入力端子からランダムデータ“０１１０”が入力され、データ更新指示入力端子からの信号によりデータ更新が指示されると、各記憶回路２に対応するデータ変換回路１は、対応する記憶回路２に保持されている保持データとランダムデータ“０１１０”との間のビット単位での排他的論理和の演算を行い、各演算結果を対応する記憶回路２に記憶する。これによって、すべての記憶回路２に保持されているデータが、同時に（一括して）、“０１１０”を排他論理和された値に更新される。
【００３４】
すなわち、図２（ａ）に例示した各記憶回路２の内容に“０１１０”が排他論理和され、図２（ｂ）に示すように、
アドレス０の記憶回路は、“００１０”、
アドレス１の記憶回路は、“１０１０”、
アドレス２の記憶回路は、“００１１”、
アドレス３の記憶回路は、“１０００”、
アドレス４の記憶回路は、“１０１１”、
アドレス５の記憶回路は、“１１０１”、
にそれぞれ変更される。
【００３５】
次いで、図３に示すように、アドレス入力端子から読み出しアドレス“００００”が入力され、データ読み出し指示入力端子からの信号によりデータ読み出しが指示されると、アドレス“００００”に対応する記憶回路２に保持されているデータ“００１０”が、読み出しデータ出力端子から出力される。他のアドレスについても同様に逐次読み出しがなされる。
【００３６】
なお、読み出されたデータ“００１０”に、使用されたランダムデータ“０１１０”を排他的論理和すると、初期状態のデータ“０１００”が得られる。他のデータについても同様である。
【００３７】
さらに、ランダムデータとして“１１００”が入力され、データ更新が指示されると、
アドレス０の記憶回路は、“１１１０”、
アドレス１の記憶回路は、“０１１０”、
アドレス２の記憶回路は、“１１１１”、
アドレス３の記憶回路は、“０１００”、
アドレス４の記憶回路は、“０１１１”、
アドレス５の記憶回路は、“０００１”、
にそれぞれ変更される。
【００３８】
次いで、アドレス入力端子から読み出しアドレス“００００”が入力され、データ読み出し指示入力端子からの信号によりデータ読み出しが指示されると、アドレス“００００”に対応する記憶回路２に保持されているデータ“１１１０”が、読み出しデータ出力端子から出力される。他のアドレスについても同様に逐次読み出しがなされる。
【００３９】
なお、読み出されたデータ“１１１０”に、  “１０１０”（使用されたランダムデータ“０１１０”と“１１００”の排他論理和）排他的論理和すると、初期状態のデータ“０１００”が得られる。他のデータについても同様である。
【００４０】
このように本実施形態によれば、記憶装置内の各アドレスに対応した記憶回路に保持されている保持データを、データ入力端子から入力されたランダムデータを用いて、同時に更新することができるので、ハード規模を増大させることなく、処理時間を短くすることが可能となる。
【００４１】
ここで、図４に、変換回路１として、排他論理和を用いた場合の構成例を示す。変換回路１として排他論理和を用いて構成した場合、一対の変換回路１及び記憶回路２には、例えば図５に示されるような構成を用いることができる。図５に示した一対の変換回路１及び記憶回路２は、Ｎ＋１個（Ｎ＋１は複数。例えば、記憶回路２が保持する保持データのビット数。）の排他論理和回路３２と、フリップフロップやラッチなどのＮ＋１個の記憶素子３１とで構成される。なお、図５では、データ更新指示入力は省略している（例えば、データ更新指示入力がフリップフロップ（記憶素子３１）のクロック端子へ与えられる）。
【００４２】
なお、上記の例では、可逆的な変換を行う変換回路の一例として排他論理和を用いたが、例えば、シフトローテート、ビットの並び替えなど、他にも種々の可逆的な変換を用いる構成が実施可能である（複数の変換の組合せも可能である）。
【００４３】
なお、記憶回路２を非線型変換テーブル（ＳＢＯＸ）として用いる場合に、各記憶回路２に初期状態として非線型変換テーブル（ＳＢＯＸ）のデータに相当する値を保持させる代わりに、非線型変換テーブル（ＳＢＯＸ）のデータを、ランダムデータで変換したものに相当する値を保持させるようにしてもよい。
【００４４】
なお、上記では、各信号やデータは、記憶装置外部から各入力端子を介して与えられる構成を想定して説明したが、本記憶装置と同一チップ上に搭載された他の装置から各信号やデータが与えられる構成も可能である（以降の各実施形態についても同様である）。
【００４５】
（第２の実施形態）
図６に、本発明の第２の実施形態に係る記憶装置の構成例を示す。
【００４６】
本実施形態では、第１の実施形態と相違する点を中心に説明する。
【００４７】
図６に示されるように、本実施形態の記憶装置は、複数のデータ変換回路１と、複数の記憶回路２と、データ選択回路３とを備えている。
【００４８】
記憶回路２及びデータ選択回路３は、第１の実施形態と同様である。
【００４９】
データ変換回路１は、それぞれ、対応する記憶回路２に割り当てられたアドレスを保持している（実際には、例えば、一致検出回路の形態で保持していてもよい。）。そして、対応する記憶回路２に保持されているデータに対し、データ入力端子（図示せず）から入力されたランダムデータ（制御データ）（例えば、データマスキング法における乱数マスク）に基づいて、可逆的な変換を施す動作を行うデータ変換モードと（この点は、第１の実施形態と同様である。）、アドレス入力端子（図示せず）から入力されたアドレスと、当該データ変換回路１に対応する記憶回路２に予め割り当てられたアドレスとを比較し、それらが一致した場合に、データ入力端子から入力された入力データを出力し、一致しなかった場合に、当該データ変換回路１に対応する記憶回路２に保持されている保持データを出力する（この比較は、実際には、例えば、該当する一致検出回路のみが一致信号を出すことによって実現し、この一致信号の有無によって動作が変わるようにしてもよい。）データ入力モードとの２つの更新動作モードを持つ。
【００５０】
更新動作モードの切り替えは、書き込み指示入力端子（図示せず）からの書き込み指示信号によって行われる。すなわち、データ更新指示入力端子からの信号によりデータ更新が指示される場合に、図７に示すように、書き込み指示が有効のとき（データ入力モードを示す信号が入力されたとき）は、アドレス入力と一致するアドレスを持つ記憶回路２に対応する変換回路１のみ入力データが出力され（これが当該記憶回路２に保持される。）、それ以外の不一致の変換回路１からは、当該記憶回路２に保持されている値がそのまま出力され（これが当該記憶回路２に再度保持される。）、他方、書き込み指示が無効のとき（データ変換モードを示す信号が入力されたとき）は、第１の実施形態と同様に、入力されたランダムデータを用いた一括データ変換が行われる（図３参照）。
【００５１】
データ入力モードにおいて、アドレスを指定して対応する記憶回路に所定の値を書き込むことを、アドレスの指定を変えながら各記憶回路について繰り返し行うことによって、本記憶装置に所望のデータを、（例えば、初期状態として）保持させることができる。
【００５２】
このような構成の記憶装置を用いることで、記憶回路に初期状態でセットされるデータ以外の任意のデータを書き込むことができるようになる。例えば、本記憶装置を、非線型変換テーブルとして用いる場合に、任意の暗号方式に対応する非線型変換テーブルとして用いることができる。
【００５３】
次に、図８に、本実施形態の記憶装置の変形例を示す。
【００５４】
図８の構成では、図６の構成と相違して、書き込み制御回路４が用いられている。
【００５５】
書き込み制御回路４は、データ更新指示入力端子（図示せず）からの信号によりデータ更新が指示されると、すべての記憶回路２に書き込み指示を行う。同時に、各データ変換回路１は、対応する記憶回路２に保持されている保持データを、データ入力からの入力データを用いて変換し、出力する。そして、各記憶回路２は、書き込み制御回路４からの制御信号により、データ変換回路１の出力を記憶する。
【００５６】
一方、書き込み指示入力端子からの信号により書き込みが指示されると、アドレス入力端子から入力されたアドレスに対応する記憶回路２のみに書き込み指示を行う。同時に、データ変換回路１は、データ入力端子からの入力データを出力する。そして、入力されたアドレスに対応する記憶回路２のみが、該データ変換回路１の出力すなわち入力データを記憶する。
【００５７】
この場合において、データ変換回路１として排他論理和を用いたときの構成例を図９に示す。なお、図中、３７−ｉ（ｉ＝０〜Ｎ）は、一致検出回路であり、一致検出回路３７−ｉは、アドレス入力が、割り当てられたアドレスｉと一致する場合にのみ、一致を示す制御信号を出力するものである。
【００５８】
このような構成を用いても、あらかじめ保持されているデータ以外の任意のデータを記憶回路に保持することが可能となる。
【００５９】
このように、本実施形態によれば、本記憶装置をＲＡＭとして用いることができ、同一のモジュールで複数のアルゴリズムに対応させることが可能となる。
【００６０】
（第３の実施形態）
図１０に、本発明の第３の実施形態に係る記憶装置の構成例を示す。
【００６１】
本実施形態では、第１の実施形態と相違する点を中心に説明する。
【００６２】
図１０に示されるように、本実施形態の記憶装置は、第１のデータ（例えば、非線型変換テーブルのデータ）を変換（可逆的な変換）するための複数のデータ変換回路（Ｄ）１１と、第１のデータを保持するための複数の記憶回路（Ｄ）１２と、データ選択回路１３と、第２のデータ（例えば、非線型変換テーブルのアドレス）を変換するための複数のデータ変換回路（Ａ）２１と、第２のデータを保持するための複数の記憶回路（Ａ）２２と、複数の一致検出回路（Ａ）２５とを備えている。
【００６３】
一対のデータ変換回路（Ｄ）及び記憶回路（Ｄ）は、基本的には、第１の実施形態の一対のデータ変換回路１及び記憶回路２と同様である。
【００６４】
また、一対のデータ変換回路（Ａ）及び記憶回路（Ａ）も、基本的には、第１の実施形態の一対のデータ変換回路１及び記憶回路２と同様である。すなわち、本実施形態では、第２のデータ（例えば、アドレス）についても、ランダムデータ（制御データ）（例えば、乱数マスク）に基づく変換（可逆的な変換）を行うことができる点が、第１の実施形態と相違している。なお、各記憶回路（Ａ）にも、初期状態では、予め定められた値（例えば、非線型変換テーブルのアドレスに相当する値）を保持している。
【００６５】
一致検出回路（Ａ）は、アドレス入力端子（Ａ）（図示せず）から入力されたアドレスと、対応する記憶回路（Ａ）に保持されたアドレスとを比較して、一致しているか否かを示す制御信号を出力する。
【００６６】
データ選択回路１３は、読み出し指示入力端子（図示せず）から入力された読み出し指示信号に従って、複数の記憶回路（Ｄ）のうち、アドレス入力（Ａ）から入力されたアドレスに一致するアドレスを保持している記憶回路（Ａ）に対応するものに保持されている保持データを、読み出しデータ出力端子（図示せず）に出力する。
【００６７】
さて、データマスキング法では、非線型変換（ＳＢＯＸなど）への入力をも乱数マスクによってマスキングする構成もある。テーブルへの入力は、本記憶装置では、アドレス入力である。従って、アドレス入力もマスキングに対応できると好ましい。図１０の構成によれば、アドレス入力のマスキングにも対応することができる。この場合、読み出しアドレスを指示するアドレス入力（Ａ）には、乱数マスクによってマスキングされたアドレスを入力すればよい。
【００６８】
以下、図１１を参照しながら、本記憶装置のデータ変換動作について説明する。
【００６９】
図１１（ａ）に示すように、初期状態では、
アドレス０に対応する記憶回路Ｄ−０は、“０１００”、
アドレス１に対応する記憶回路Ｄ−１は、“１１００”、
アドレス２に対応する記憶回路Ｄ−２は、“０１０１”、
アドレス３に対応する記憶回路Ｄ−３は、“１１１０”、
アドレス４に対応する記憶回路Ｄ−４は、“１１０１”、
アドレス５に対応する記憶回路Ｄ−５は、“１０１１”、
をそれぞれ保持し、
アドレス０に対応する記憶回路Ａ−０は、“００００”、
アドレス１に対応する記憶回路Ａ−１は、“０００１”、
アドレス２に対応する記憶回路Ａ−２は、“００１０”、
アドレス３に対応する記憶回路Ａ−３は、“００１１”、
アドレス４に対応する記憶回路Ａ−４は、“０１００”、
アドレス５に対応する記憶回路Ａ−５は、“０１０１”、
をそれぞれ保持しているものとする。
【００７０】
この状態で、例えば、アドレス入力として００１１（十進法で３）を入力すると、保持されている値が“００１１”である記憶回路Ａ−３のみが一致を出力し、データとして記憶回路Ｄ−３に保持されている“１１１０“が出力される。
【００７１】
この状態から、例えば、データに“０１１０”を排他論理和し、他方、アドレスには、“１０１０”を排他論理和するものとすると、これによって、図１１（ｂ）に示すように、
アドレス０に対応する記憶回路Ｄ−０は、“００１０”、
アドレス１に対応する記憶回路Ｄ−１は、“１０１０”、
アドレス２に対応する記憶回路Ｄ−２は、“００１１”、
アドレス３に対応する記憶回路Ｄ−３は、“１０００”、
アドレス４に対応する記憶回路Ｄ−４は、“１０１１”、
アドレス５に対応する記憶回路Ｄ−５は、“１１０１”、
を保持し、
アドレス０に対応する記憶回路Ａ−０は、“１０１０”、
アドレス１に対応する記憶回路Ａ−１は、“１０１１”、
アドレス２に対応する記憶回路Ａ−２は、“１０００”、
アドレス３に対応する記憶回路Ａ−３は、“１００１”、
アドレス４に対応する記憶回路Ａ−４は、“１１１０”、
アドレス５に対応する記憶回路Ａ−５は、“１１１１”、
を保持する状態になる。
【００７２】
なお、データの変換と、アドレスの変換とは、同時に行ってもよいし、順次に行ってもよい。
【００７３】
この状態で、例えば、アドレス用乱数マスク“１０１０”が施されたアドレスとして“１００１”（１０１０と００１１の排他論理和）を入力すると、記憶回路Ａ−３に保持されている値が“１００１”であるので、記憶回路Ａ−３が一致を出力し、それに対応した記憶回路Ｄ−３のデータ“１０００”が出力される。なお、読み出されたデータ“１０００”にデータ用乱数マスク“０１１０”を排他論理和すると“１１１０”が出力される。
【００７４】
このように、図１０に示した構成を用いれば、アドレスに乱数マスクを施した場合でも、所望の結果を得ることができる。
【００７５】
（第４の実施形態）
図１２に、本発明の第４の実施形態に係る記憶装置の構成例を示す。
【００７６】
本実施形態では、第３の実施形態と相違する点を中心に説明する。
【００７７】
まず、データ更新動作は、第３の実施形態と同じである。
【００７８】
次に、図１２の構成は、図１０の構成に加えて、複数の一致検出回路（Ｄ）１５を備えている。一致検出回路（Ｄ）は、アドレス入力端子（Ｄ）（図示せず）から入力されたデータと、対応する記憶回路（Ｄ）に保持されたデータとを比較して、一致しているか否かを示す制御信号を出力する。
【００７９】
データ選択回路２３は、読み出し動作において、第１のモードと第２のモードを持ち、モード入力端子（図示せず）からの信号により第１のモードが指示された場合の動作は、第３の実施形態と同様、図１３に例示するように、複数の記憶回路（Ｄ）のうち、アドレス入力（Ａ）から入力されたアドレスに一致するアドレスを保持している記憶回路（Ａ）に対応するものに保持されている保持データを、読み出しデータ出力端子（図示せず）に出力する。
【００８０】
これに対して、第２のモードが指示された場合は、第１のモードとは逆の参照を行う。すなわち、図１４に例示するように、複数の記憶回路（Ａ）のうち、アドレス入力（Ｄ）から入力されたデータに一致するデータを保持している記憶回路（Ｄ）に対応するものに保持されているアドレスを、読み出しデータ出力端子（図示せず）に出力する。
【００８１】
さて、暗号アルゴリズムによっては、非線型変換テーブルと、その逆のテーブルとを必要とするものがある。図１２の構成は、このような逆変換テーブルを実現する機能をも併せ持つことができる。
【００８２】
図１２において、モード入力は、通常のテーブル参照（第１のモード）か、逆テーブル参照（第２のモード）かが入力される。
【００８３】
通常のテーブル参照の場合は、図１０に例示した記憶装置と同様に動作する。
【００８４】
逆テーブル参照の場合は、アドレス入力（Ｄ）から出力すべきアドレスが入力される。
【００８５】
ここで、図１１に示した動作例を用いて逆テーブル参照の動作を説明する。
【００８６】
初期状態において、逆テーブル参照として、アドレス入力（Ｄ）に“１１００”が入力された場合、記憶回路Ｄ−１に保持されている内容が一致する。従って、この場合、記憶回路Ｄ−１に対応する記憶回路Ａ−１の内容である“０００１”が出力される。
【００８７】
一方、変換後の状態においては、逆テーブル参照として、アドレス入力Ｄに“１０００”が入力された場合、記憶回路Ｄ−３に保持されている内容が一致する。従って、この場合、記憶回路Ｄ−３に対応した記憶回路Ａ−３の内容である“１００１”が出力される。
【００８８】
このように図１２に示す構成を用いることで、アドレスを入力してデータを出力する通常のテーブル参照と、データを入力してアドレスを出力する逆のテーブル参照との両方を実現することが可能となる。すなわち、１つのモジュールで、あるテーブル参照とその逆のテーブル参照とを実現することが可能となる。
【００８９】
（第５の実施形態）
図１５に、本発明の第５の実施形態に係る記憶装置の構成例を示す。
【００９０】
本実施形態では、第１の実施形態と相違する点を中心に説明する。
【００９１】
図１５の構成は、図１の構成に加えて、更新制御回路１４及び更新識別回路８を備えている。
【００９２】
更新識別回路８は、対応する記憶回路２に保持されているデータが、データ入力端子（図示せず）から入力されたデータによって更新済みか否かを識別するものである。
【００９３】
更新制御回路１４は、これまでの全記憶回路２に対する一括更新（あるいは一括変換）に加えて、一部の記憶回路２のみに対する部分更新（あるいは部分変換）をも可能にしたものである。なお、図中、３８−ｉ（ｉ＝０〜Ｎ）は、一致検出回路であり、一致検出回路３８−ｉは、アドレス入力が、割り当てられたアドレスｉと一致する場合にのみ、一致を示す制御信号を出力するものである。
【００９４】
本実施形態では、未更新の記憶回路のみ更新可能とし（一旦、更新済みになると、状態がリセットされるまで更新不可になる）、全記憶回路２が更新された場合に、全記憶回路が未更新の状態にリセットされるものとしている。例えば、一括更新がなされた場合に、その時点で未更新の記憶回路２のみが更新されるとともに、全記憶回路が未更新の状態にリセットするなどである。
【００９５】
なお、データ選択回路３から、入力アドレスに対応する記憶装置２の保持データが読み出される際に、対応する更新識別回路９に保持されている更新状態を示す情報をも、保持データとともに読み出されるようにしてもよい。この場合、外部で、更新状態に応じた処理を行うことができる。
【００９６】
以下、図１６を用いて本実施形態における変換動作について説明する。
【００９７】
図１６（ａ）に示すように、初期状態では、記憶回路２のそれぞれは、あらかじめ定められた値を保持している。また、更新識別回路８は、初期状態では、すべて未更新であることを示す値（例えば、“０”）を保持している。
【００９８】
データ変換は、データ入力に与えられたデータと、記憶回路２に保持されているデータとの排他論理和で行われるものとする。
【００９９】
このような状態から、まず、アドレス１に保持されているデータのみ変換し、次いで、アドレス３に保持されているデータのみ変換し、次いで、アドレス２に保持されているデータのみ変換するものとする。
【０１００】
すると、図１６（ｂ）に示すように、変換に用いられたデータ“０１１０”によって、アドレス１に保持されていた“１１００”が“１０１０”に変更され、アドレス３に保持されていた“１１１０”が“１０００”に変更され、アドレス２に保持されていた“０１０１”が“００１１”に変更されるとともに、対応する更新識別回路８に保持されている値がそれぞれ未更新であることを示す値（例えば、“０”）から更新済みであることを示す値（例えば、“１”）に変更される。
【０１０１】
次いで、一括更新がなされると、図１６（ｃ）に示すように、未更新であるアドレス０，４，５にそれぞれ保持されているデータのみ変換されるとともに、全更新識別回路８に保持されている値が、未更新であることを示す値（例えば、“０”）にリセットされる。
【０１０２】
図１６に示すように、変更されたかどうかの２つの状態のみを識別できる構成の場合、更新されたアドレスが再び更新されてしまうと、読み出されたデータがどのような変更をされたかが特定できなくなってしまうため、一度変更されたデータは、記憶装置内のすべてのデータが変更されるまで更新できないように制御される。また、変更されていない記憶回路２を一括して更新するための一括更新指示入力を持ち、この信号が入力されると、更新識別回路９が未更新を示している記憶回路の内容が一括して変更され、記憶装置全体として整合がとれるような状態にすることが可能となる。
【０１０３】
なお、更新識別回路が更新回数を記憶するような構成も可能である。この場合、更新回数もデータ読み出しのときに同時に読み出すようにすれば、外部で、更新回数に応じた処理を行うことができる。更新回数の記憶は、例えばカウンタなどによって行うことができ、この場合、予め定められた上限値を越えていない場合に更新が行われ、上限値に達していた場合は、更新が行われないように制御することができる。
【０１０４】
なお、上記では、１回の部分更新では、一つの記憶回路についてのみ更新を行うようにしたが、１回の部分更新で、複数の記憶回路についての更新を可能としてもよい。
【０１０５】
このように部分的に変換を行うことが可能である記憶装置を用いることで、同時に変化する記憶装置の個数を減らすことができ、それによって、消費電力の増加を抑えることが可能となる。
【０１０６】
なお、第２の実施形態は、図１０（データに対応する記憶回路（Ｄ）の側とアドレスに対応する記憶回路（Ａ）の側の一方または双方）、図１２（データに対応する記憶回路（Ｄ）の側とアドレスに対応する記憶回路（Ａ）の側の一方または双方）、図１５など、他の実施形態にも適用可能である。
【０１０７】
また、第５の実施形態は、図６、図８、図１０（データに対応する記憶回路（Ｄ）の側とアドレスに対応する記憶回路（Ａ）の側の一方または双方）、図１２（データに対応する記憶回路（Ｄ）の側とアドレスに対応する記憶回路（Ａ）の側の一方または双方）など、他の実施形態にも適用可能である。
【０１０８】
（第６の実施形態）
これまで説明してきた各実施形態に係る記憶装置を、データマスキング法を用いた暗号処理装置に適用する場合について説明する。
【０１０９】
まず、図１７を参照しながら、データマスキング法を用いた暗号処理の概要について説明する。
【０１１０】
データマスキング法では、通常の暗号処理を行う前に、入力された平文に乱数マスクを変形（図中、１０１）する。なお、図１７では、この変形は、排他論理和を例にとって示している。
【０１１１】
次に、暗号鍵を与え、乱数マスクにより変形されたアルゴリズムを用いて（図中、１０２）、乱数マスクにより変形された平文に対する暗号化処理を行う。
【０１１２】
そして、使用された乱数マスクを取り除く処理が行って（図中、１０３）、暗号文を出力する。
【０１１３】
なお、使用される乱数マスクは、適宜のタイミングで、変更される。
【０１１４】
図１８に、図１０に例示した構成に係る記憶装置を、暗号アルゴリズムの一つであるＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のＳ関数（Ｓ１〜Ｓ８）に適用した場合の暗号処理装置の構成例を示す。
【０１１５】
ＤＥＳでは、最初のラウンドの前に初期転置（Ｉｎｉｔｉａｌ  ｐｅｒｍｕｔａｔｉｏｎ）が行われ、また、最後のラウンドの後に初期転置の逆転置が行われるが、図１８では、それらは省略してある。
【０１１６】
図１８において、２０１，２０２，２０３で示す回路（丸の中に＋の記号を記述したもの）は、排他論理和回路である。また、２０４（四角の中にＥと記述したもの）は、ＤＥＳのＥ関数である。また、２０５（四角の中にＰと記述したもの）は、ＤＥＳのＰ関数である。
【０１１７】
図１８では、図１０の記憶装置は、乱数マスクによりマスキングされたＳ関数を実現するために用いられる。図１８において、２００が、図１０の記憶装置である。なお、図中、２００で示す記憶装置内に、２つの排他論理和と１つのＳ関数とが記述されているが、これは、乱数マスクによりマスキングされたアルゴリズムを理解しやすくするために示したものであり、それらが実際に設けられるわけではない。
【０１１８】
また、図１８に示すように、記憶回路２００の入力側の排他論理和は、元のアドレスがアドレス側の乱数マスク（図１０においてデータ入力（Ａ）から入力される。）によってマスクされる。一方、出力側の排他論理和は、元のデータがデータ側の乱数マスク（図１０においてデータ入力（Ｄ）から入力される。）によってマスクされる。
【０１１９】
また、図１８に示すように、記憶回路２００にアドレスが入力され（図１０においてアドレス入力（Ａ）から入力される）、対応するデータが出力される（図１０において読み出しデータ出力から出力される）。
【０１２０】
さて、図１８の構成例において、各記憶装置２００は、Ｓ関数のＳ１〜Ｓ８のそれぞれに対応して初期化されている。
【０１２１】
最初に、左データに乱数マスクＭ０が排他論理和され、右データに乱数マスクＭ１が排他論理和される。
【０１２２】
最初のラウンドの処理において、記憶装置２００では、アドレスに対応する記憶回路（Ａ）は、乱数マスクＭ１にＥ関数を作用させた値でマスクされ、また、データに対応する記憶回路（Ｄ）は、乱数マスクＭ０とＭ２を排他論理和したものにＰ関数の逆関数を作用させた値でマスクされる。
【０１２３】
この結果、記憶装置２００からは、入力アドレスに対応するデータが、上記の値（乱数マスクＭ０とＭ２を排他論理和したものにＰ関数の逆関数を作用させた値）によってマスクされた状態で、出力される。
【０１２４】
この出力がＰ関数に入力されると、Ｐ関数からは、乱数マスクＭ０とＭ２を排他論理和した値でマスクされたデータに相当するものが出力される。
【０１２５】
そして、次の排他論理和によって乱数マスクＭ０が無効となり、結局、処理結果は、乱数マスクＭ２によってマスクされたものになる。
【０１２６】
以下同様にして各ラウンドの処理が行われた後、最後に、左データに乱数マスクＭ１７が排他論理和され、右データに乱数マスクＭ１６が排他論理和され、これによって、すべての乱数マスクの影響が取り除かれた処理結果が得られる。
【０１２７】
このように、本来のアルゴリズムに対応した処理について途中の値をランダムデータによってマスクして処理することが可能となり、ＤＰＡに対処することができる。
【０１２８】
なお、図１８において、図１２に例示した構成に係る記憶装置を用いる場合には、第１のモード（通常のテーブル参照のモード）にして、上記と同様に用いればよい。
【０１２９】
また、図１９に、図１，６，８，１５などに例示した構成に係る記憶装置のいずれかを用いる場合の構成例を示す（図中、３００が、該記憶装置を示す）。図１８との相違は、データの側だけマスキングされる点である。なお、図１９では、アドレスの側はマスキングしないので、３０１及び３０６の排他論理和回路を省く構成も可能である。
【０１３０】
なお、図２０に示すように、これまでの実施形態で説明したいずれかの記憶装置４００、ＣＰＵ４０１、ＲＯＭ４０２及びＲＡＭ４０３をバスで接続した構成を用い、記憶装置４００については図１８や図１９と同様の使い方をするが、それ以外の処理はソフトウェアにより行うような、暗号アルゴリズムの実装も可能である。図１８や図１９では、暗号アルゴリズム全体をハードウェアで実現しているが、図２０に示した構成を用いることでテーブル参照以外の機能をＣＰＵで実行することが可能となる。このような構成を用いれば、記憶装置３００を複数の暗号アルゴリズムで利用することが可能となる。例えば、図６に例示したような書き込み機能を持つ記憶装置を用いれば、通常のＲＡＭのように用いることができる。また、図１２に例示したような逆関数を実現できるような機能を持たせれば、ＣＡＭ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  ｍｅｍｏｒｙ）のように用いることも可能である。
【０１３１】
なお、以上の各機能は、ソフトウェアとして記述し適当な機構をもったコンピュータに処理させても実現可能である。
また、本実施形態は、コンピュータに所定の手段を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるためのプログラムとして実施することもできる。加えて該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
【０１３２】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【０１３３】
【発明の効果】
本発明によれば、ハード規模を増大させることなく、データの変換を高速に実現できる記憶装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る記憶装置の構成例を示す図
【図２】同実施形態に係る記憶装置の動作例について説明するための図
【図３】同実施形態に係る記憶装置の動作例について説明するための図
【図４】同実施形態において変換回路として排他論理和を用いた場合の記憶装置の構成例を示す図
【図５】同実施形態における変換回路及び記憶回路の構成例を示す図
【図６】本発明の第２の実施形態に係る記憶装置の構成例を示す図
【図７】同実施形態に係る記憶装置の動作例について説明するための図
【図８】同実施形態に係る記憶装置の他の構成例を示す図
【図９】同実施形態におけるデータ変換回路及び書き込み制御回路の構成例を示す図
【図１０】本発明の第３の実施形態に係る記憶装置の構成例を示す図
【図１１】同実施形態に係る記憶装置の動作例について説明するための図
【図１２】本発明の第４の実施形態に係る記憶装置の構成例を示す図
【図１３】同実施形態に係る記憶装置の動作例について説明するための図
【図１４】同実施形態に係る記憶装置の動作例について説明するための図
【図１５】本発明の第５の実施形態に係る記憶装置の構成例を示す図
【図１６】同実施形態に係る記憶装置の動作例について説明するための図
【図１７】データマスキング法の概要について説明するための図
【図１８】本発明の第６の実施形態に係る暗号処理装置の構成例を示す図
【図１９】同実施形態に係る暗号処理装置の他の構成例を示す図
【図２０】同実施形態に係る暗号処理装置のさらに他の構成例を示す図
【符号の説明】
１，１１，２１…データ変換回路、２，１２，２２…記憶回路、３，１３，２３…データ選択回路、４…書き込み制御回路、１４…更新制御回路、１５，２５…一致検出回路、８…更新識別回路、３１…記憶素子、３２…排他的論理和回路、３７−０〜３７−Ｎ，３８−０〜３８−Ｎ…一致検出回路
【図１】
2004354920.tif 000003
【図２】
2004354920.tif 000004
【図３】
2004354920.tif 000005
【図４】
2004354920.tif 000006
【図５】
2004354920.tif 000007
【図６】
2004354920.tif 000008
【図７】
2004354920.tif 000009
【図８】
2004354920.tif 000010
【図９】
2004354920.tif 000011
【図１０】
2004354920.tif 000012
【図１１】
2004354920.tif 000013
【図１２】
2004354920.tif 000014
【図１３】
2004354920.tif 000015
【図１４】
2004354920.tif 000016
【図１５】
2004354920.tif 000017
【図１６】
2004354920.tif 000018
【図１７】
2004354920.tif 000019
【図１８】
2004354920.tif 000020
【図１９】
2004354920.tif 000021
【図２０】
2004354920.tif 000022