(57)【特許請求の範囲】
【請求項１】
入力データを２分した一方の入力データを、ランダマイズ処理のアルゴリズムを決定する回路構成情報に基づいてランダマイズ処理を行うランダマイズ処理手段と、
前記ランダマイズ処理がなされたデータを入力し、鍵データに基づいて暗号処理を行う関数Ｆ部と、
前記入力データを２分した他方の入力データと、前記関数Ｆ部の出力データとを入力して、双方の排他的論理和を出力する排他的論理和回路と、
前記回路構成情報が前記ランダマイズ処理手段の回路構成情報として適切か否かを検査する回路構成情報検査手段と、
前記回路構成情報検査手段により回路構成情報が不適切と判定された場合に、不適切な回路構成情報に基づくランダマイズ処理を回避する不適切ランダマイズ処理回避手段と、
を有することを特徴とする暗号処理装置。
【請求項２】
前記不適切ランダマイズ処理回避手段は、
前記回路構成情報検査手段により前記回路構成情報が適切と判定された場合には前記回路構成情報に基づいてランダマイズ処理を行い、
前記回路構成情報検査手段により前記回路構成情報が不適切と判定された場合には前記回路構成情報に基づかない固定のランダマイズ処理を行うことを特徴とする請求項１に記載の暗号処理装置。
【請求項３】
所定のビット幅からなるデータを等しいビット幅からなるｎ個のデータブロックに分ける手段と、
前記ｎ個のデータブロックをデコードするデコード手段と、
前記ｎ個のデータブロックから前記デコード手段を用いて得られるｎ個のデコード結果のビット毎論理和を求める手段と、
前記ビット毎論理和の論理積を求める手段と、
を備えることを特徴とするデータ重複検査回路。
【請求項４】
前記回路構成情報検査手段は、
回路構成データを等しいビット幅からなるｎ個のデータブロックに分ける手段と、
前記ｎ個のデータブロックをデコードするデコード手段と、
前記ｎ個のデータブロックから前記デコード手段を用いて得られるｎ個のデコード結果のビット毎論理和を求める手段と、
前記ビット毎論理和の論理積を求める手段と、
を備えることを特徴とする請求項１又は２に記載の暗号処理装置。
【請求項５】
入力データを２分した一方の入力データを、ランダマイズ処理のアルゴリズムを決定する回路構成情報に基づいてランダマイズ処理を行うランダマイズ処理ステップと、
前記ランダマイズ処理がなされたデータを入力し、鍵データに基づいて関数Ｆ部により暗号処理を行う暗号処理ステップと、
前記入力データを２分した他方の入力データと、前記関数Ｆ部の出力データとを入力して、双方の排他的論理和を出力する排他的論理和ステップと、
前記回路構成情報が前記ランダマイズ処理手段の回路構成情報として適切か否かを検査する回路構成情報検査ステップと、
前記回路構成情報検査ステップにおいて回路構成情報が不適切と判定された場合に、不適切な回路構成情報に基づくランダマイズ処理を回避する不適切ランダマイズ処理回避ステップと、
を含むことを特徴とする暗号処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、外部から与えた回路構成情報に基づいてアルゴリズムを決定することが可能な暗号処理装置並びに暗号処理方法に関し、特に、無効な回路構成情報による誤処理を回避する技術に関する。
【０００２】
【従来の技術】
近年インターネットが急激に普及し、電子現金／電子商取引が実用化されようとしている。このような商取引の電子化／ネットワーク化の発展に伴い、不正利用による危険性が増大し、それらを防止するための情報セキュリティ技術の重要性が高まって来ている。その情報セキュリティ技術の中で暗号技術は中心的な構成要素である。
【０００３】
図１４に、秘密鍵暗号の基本情報のブロック図を示す。秘密鍵暗号とは、施錠と開錠の鍵が同一であり送信者と受信者でその鍵を共有する暗号である。以下、基本アルゴリズムを説明する。
【０００４】
６４ビットのテキスト入力が左右３２ビットに分けられ、一方の３２ビットデータが鍵により処理アルゴリズムが制御される関数Ｆ１に入力される。この関数Ｆ１では、鍵データを用いて暗号処理を行い、３２ビットデータを出力する。関数Ｆ１から出力された３２ビットデータは、前記６４ビットの入力を左右３２ビットに分けた他方の３２ビットデータと排他的論理和（ＥＸＯＲ：丸に＋印）回路２に入力され、ビットごとの排他的論理和がとられ、次段の関数Ｆ１への入力となる。これらの処理を数段繰り返し、最後に左右３２ビットデータを結合し６４ビットの暗号文を得る。復号化は上に述べた処理手段を逆に行うことにより達成される。
【０００５】
上記の秘密鍵暗号の代表的なものとして、１９７７年に米国商務省標準局（ＮＢＳ）により暗号方式の標準と定められ現在標準となっているＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）がある。しかしながら、この暗号アルゴリズムは標準に定められてからすでに２０年以上の年月が経っており、暗号研究者らによっても様々な解読法が研究されていることもあり、より強度の高い暗号アルゴリズムの必要性が迫られている。
【０００６】
図１５に、上記暗号アルゴリズムを強化する手段として、回路構成情報に基づいて処理方法が変更されるようになっているランダマイズ処理回路２８を導入した暗号処理装置のブロック図を示す。前記ランダマイズ処理回路２８は回路構成情報に基づいて回路の配置を行うリコンフィギュアラブル回路などにより構成される。これにより、回路構成情報を変更することにより暗号アルゴリズム自体を変更することが可能となるため、暗号の強度を大幅に増加することができる。
【０００７】
この手法によれば、ランダマイズ処理回路２８を制御する回路構成情報を増加させることにより、より強度の高い暗号処理装置を実現することができる。
【０００８】
【発明が解決しようとする課題】
しかしながら、上記ランダマイズ処理部においてランダマイズ処理を決定する回路構成情報は、すべてのビットに関しランダムに入力してよいものではなく、前記ランダマイズ処理部に適切なデータを入力しなければならない。外部からの不正な攻撃などにより回路構成情報を壊されてしまうと、壊された回路構成情報により構成されたランダマイズ処理回路は破壊してしまう可能性がある。
【０００９】
本発明は、上記問題点を解決するためになされたものであり、その目的は、前記ランダマイズ処理のアルゴリズムを決定する回路構成情報として不適切な入力がなされたときにそれを検出する装置と、不適切な回路構成情報入力によって起こるランダマイズ処理回路の破壊等を回避する装置、ならびに暗号処理に用いられたものと同じ鍵および回路構成情報に基づいて復号化処理を行っても元の入力テキストを再現できないという誤った暗号処理を回避する装置及び方法を提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、第１の発明は、入力データを２分した一方の入力データを、ランダマイズ処理のアルゴリズムを決定する回路構成情報に基づいてランダマイズ処理を行うランダマイズ処理手段と、前記ランダマイズ処理がなされたデータを入力し、鍵データに基づいて暗号処理を行う関数Ｆ部と、前記入力データを２分した他方の入力データと前記関数Ｆ部の出力データとを入力して、双方の排他的論理和を出力する排他的論理和回路と、前記回路構成情報が前記ランダマイズ処理手段の回路構成情報として適切か否かを検査する回路構成情報検査手段と、前記回路構成情報検査手段により回路構成情報が不適切と判定された場合に、不適切な回路構成情報に基づくランダマイズ処理を回避する不適切ランダマイズ処理回避手段とを有することを特徴とする。
【００１３】
上記発明の構成では、回路構成情報検査手段による検査結果がランダマイズ処理回路の制御信号として入力されるようになっており、この制御信号によってランダマイズ処理回路を保護するモードへの切り換えを行うような構成になっている。これにより、外部からの攻撃により回路構成情報が壊されたとしても、壊れた回路構成情報の入力によるランダマイズ処理回路の破損、不適切なランダマイズ処理を防ぐことができ、常にランダマイズ処理回路を正常に動作させることが可能となる。
【００１４】
第２の発明は、前記第１の発明の不適切ランダマイズ処理回避手段が、前記回路構成情報検査手段により前記回路構成情報が適切と判定された場合には前記回路構成情報に基づいてランダマイズ処理を行い、前記回路構成情報検査手段により前記回路構成情報が不適切と判定された場合には前記回路構成情報に基づかない固定のランダマイズ処理を行うことを特徴とする。
【００１５】
上記発明の構成では、回路構成情報検査手段による検査結果がランダマイズ処理回路の制御信号となり、この制御信号により回路構成情報に基づいたランダマイズ処理又は回路構成情報に基づかない固定のランダマイズ処理のどちらか一方を選択するような構成になっている。これにより、外部からの攻撃により回路構成情報が壊されても、その後適切な回路構成信号が入力されるまで壊れた回路構成信号により構成されたランダマイズ処理回路による誤った暗号処理結果が出力されることを防ぐことが可能となる。
【００１６】
第３の発明は、データ重複検査回路に関し、所定のビット幅（例えば、１６０ビット）からなるデータを等しいビット幅（例えば、５ビット）からなるｎ個（例えば、３２個）のデータブロックに分ける手段と、前記ｎ個のデータブロックをデコードするデコード手段と、前記ｎ個のデータブロックから前記デコード手段を用いて得られるｎ個のデコード結果のビット毎論理和を求める手段と、前記ビット毎論理和の論理積を求める手段を備えることを特徴とする。
【００１７】
上記発明の構成によれば、所定のビット幅からなるデータを等しいビット幅からなるｎ個のデータブロックに分割して得られた全てのデータブロックに重複があるかどうかを検査することが可能となる。また、データブロックの重複を調べる他の手段として図１６に示す入力検査回路のようにｎ×（ｎ−１）／２個の一致比較回路２９を用いることでｎ個のデータブロックすべてを比較することにより重複を調べるように構成することもできるが、上記発明の構成の方がハードウェア量を小さくすることが可能となる。
【００１８】
第４の発明においては、前記第１又は第２の発明の回路構成情報検査手段は、回路構成データ（「回路構成情報」と同義）を等しいビット幅からなるｎ個のデータブロックに分ける手段と、前記ｎ個のデータブロックをデコードするデコード手段と、前記ｎ個のデータブロックから前記デコード手段を用いて得られるｎ個のデコード結果のビット毎論理和を求める手段と、前記ビット毎論理和の論理積を求める手段を備えることを特徴とする。
【００１９】
上記発明の構成によれば、回路構成情報として全てのデータブロックが異ならなければならない場合において、前記回路構成情報を入力とすることによりデータブロックに重複があるかどうかを検査する手段を小さいハードウェア量で実現できるため、暗号処理装置を実現するためのハードウェア量を低減することが可能となる。
【００２０】
第５の発明は、入力データを２分した一方の入力データを、ランダマイズ処理のアルゴリズムを決定する回路構成情報に基づいてランダマイズ処理を行うランダマイズ処理ステップと、前記ランダマイズ処理がなされたデータを入力し、鍵データに基づいて関数Ｆ部により暗号処理を行う暗号処理ステップと、前記入力データを２分した他方の入力データと前記関数Ｆ部の出力データとを入力して、双方の排他的論理和を出力する排他的論理和ステップと、前記回路構成情報が前記ランダマイズ処理手段の回路構成情報として適切か否かを検査する回路構成情報検査ステップと、前記回路構成情報検査ステップにおいて回路構成情報が不適切と判定された場合に、不適切な回路構成情報に基づくランダマイズ処理を回避する不適切ランダマイズ処理回避ステップと、を含むことを特徴とする。
【００２１】
上記発明の構成によれば、回路構成情報検査手段の出力を見ることにより、入力した回路構成情報がランダマイズ処理回路に対し適切であるかどうかを判断することが可能となる。
【００２２】
【発明の実施の形態】
以下、本発明に関わる入力検査装置およびこれを用いた暗号処理装置並びに暗号処理方法について、実施の形態を図面に基づいて詳しく説明をする。
【００２３】
図１は、本発明の第１の実施形態である暗号処理装置を示すブロック図である。この暗号処理装置は、ランダマイズ処理回路３を用いた暗号処理装置に、ランダマイズ処理アルゴリズムを決定する回路構成情報が前記ランダマイズ処理回路３に適切であるかを検査する回路構成情報検査回路４を導入したものである。回路構成情報検査回路４は、前記検査の結果を出力する。その一方で、ランダマイズ処理回路３には回路構成情報と、前記検査結果が入力される。ランダマイズ処理回路３は、入力された回路構成情報によりランダマイズ処理のアルゴリズムが決定されるが、前記回路構成情報検査回路４により回路構成情報が不適切と判定されると、
▲１▼ランダマイズ処理回路３が破壊されないように、
▲２▼入力された回路構成情報に依存しない固定の暗号処理を行うように回路が構成される。
【００２４】
上記の手段により回路構成を決定されたランダマイズ処理回路３を含む暗号処理装置の暗号処理手段を説明する。
【００２５】
まず入力テキストデータを２分し、一方のデータは、１段目のランダマイズ処理回路３の入力となり、かつ２段目の排他的論理和回路２の入力となる。１段目のランダマイズ処理回路３のランダマイズ処理結果は関数Ｆ１に入力され、この関数Ｆ１の出力データと前記テキストデータの他方は１段目の排他的論理和回路２に入力されビット毎の排他的論理和処理が行われる。１段目の排他的論理和回路２の出力結果は２段目のランダマイズ処理回路３の入力となり、かつ３段目の排他的論理和回路２（図示せず）の入力となる、という処理手段になっている。復号化処理は上に述べた処理手順を逆に行うことにより達成される。
【００２６】
なお、全てのランダマイズ処理回路に同一の回路構成情報を与えても良いし、個々のランダマイズ処理回路に異なる回路構成情報を与えても良い。
【００２７】
図２に、上に示した第１の実施形態において、ランダマイズ処理として入力ビットの順番をランダマイズして出力するクロスバースイッチ回路８を用いたランダマイズ処理回路３の実施例を示す。この実施例の構成は、回路構成情報検査回路４による検査結果がセレクタ６のセレクト信号として入力され、回路構成情報が適切と判定された場合には前記セレクタ６は入力された回路構成情報を出力し、不適切と判定された場合には回路情報ＲＯＭ５に記憶されている回路構成情報を出力するようになっており、前記セレクタ６により出力された回路構成情報がデコーダ７によりデコードされ、前記デコード出力がクロスバースイッチ回路８に入力され回路構成を決定する、という構成になっている。前記セレクタ６により、不適切な回路構成情報のクロスバースイッチ回路８への入力を防ぐことが可能となっている。
【００２８】
ここで、上記ランダマイズ処理回路３におけるクロスバースイッチ回路８により行われるランダマイズ処理について説明する。図２中のクロスバースイッチ回路８は、３２ビットデータを入力とするが、その入力ビットの順番をランダマイズして３２ビットデータを出力するようになっている。例えば、入力の１ビット目は２４ビット目に出力し、２ビット目は１１ビット目に出力する、といったランダマイズ処理を行う。このランダマイズ処理方法は回路構成情報によって決定される。クロスバースイッチ回路８に入力される回路構成情報は、それぞれの入力ビットに対し出力３２ビットのうちどのビットに割り当てるかを５ビットデータ（以下、選択信号と呼ぶ。）により表す構成になっている。入力ビットは３２ビットなので回路構成情報はビット幅１６０のデータとなる。それぞれの入力ビットの出力ビット先を決定する選択信号はデコーダ７により３２ビットデータに変換され、クロスバースイッチ回路８の入力となる。クロスバースイッチ回路８は入力ビット線と出力ビット線の接続のＯＮ／ＯＦＦを切り換える多数のスイッチにより構成されており、上記デコーダ７の出力が１つ１つのクロスバースイッチのＯＮ／ＯＦＦを切り換える、という構成になっている。このクロスバースイッチ回路８によるランダマイズ処理においては、それぞれの入力ビットデータの出力ビット先がすべて異なっていることが必要である。すなわち、上で説明した各入力ビットの出力先を選択する３２個の選択信号の中に重複するものがあってはならない。
【００２９】
上記クロスバースイッチ回路８の動作を説明するため、図３において上記クロスバースイッチ回路８を簡単化した２入力２出力クロスバースイッチ回路についての回路構成方法を表した図を示す。この２入力２出力クロスバースイッチ回路の場合、入れ換えを行うビット数は２ビットなので、回路構成情報は２つの１ビット選択信号により構成される２ビット信号となる。
【００３０】
図３（ａ）は選択信号に重複のない適切な回路構成情報を入力したときの２入力２出力クロスバースイッチ回路の構成である。この例では入力された回路構成情報は“０１”であるので、デコードされた選択信号は入力データの上位ビット（ＩＮ＿１）、下位ビット（ＩＮ＿０）に対してそれぞれ“０１”、“１０”となる。これにより、入力上位ビット（ＩＮ＿１）との接続を決定するスイッチは出力上位ビット（ＯＵＴ＿１）に関してはＯＦＦ状態となり、出力下位ビット（ＯＵＴ＿０）に関してはＯＮ状態となり、ＩＮ＿１とＯＵＴ＿０が接続されることになる。同様にＩＮ＿０はＯＵＴ＿１と接続されるので、上記回路構成情報により構成されたクロスバースイッチ回路では２ビット入力データが“１０”である場合には“０１”が出力されるというランダマイズ処理がなされることになる。
【００３１】
図３（ｂ）は選択信号が重複している不適切な回路構成情報を入力したときの２入力２出力クロスバースイッチ回路の構成である。この例では入力された回路構成情報は“１１”であるので、ＩＮ＿１とＩＮ＿０がともにＯＵＴ＿１に接続されることになる。このように構成された２入力２出力クロスバースイッチ回路ではＩＮ＿１とＩＮ＿０がショートされているため入力データとして“１０”が入力された場合、ＩＮ＿１とＩＮ＿０の２端子間には大電流が流れることになるためクロスバースイッチ回路の破壊を引き起こす大きな原因となる。
【００３２】
上で説明した回路破壊からの回避は、図２において説明したランダマイズ処理回路３にセレクタ６および回路情報ＲＯＭ５を設けたことによって実現されている。回路情報ＲＯＭ５に適切な回路構成情報を記憶させておくことにより、不適切な回路構成情報が入力された場合には前記セレクタ６により回路情報ＲＯＭ５に記憶されている回路構成情報をクロスバースイッチ回路８に入力されるようにすることで、上で説明したようなクロスバースイッチ回路８の破壊を防ぐことができる。同時に不適切な回路構成情報の入力による誤処理を防ぐことも可能となる。
【００３３】
上記クロスバースイッチ回路８によるランダマイズ処理の回路構成情報を検査する手段として、図４と図５において回路構成情報検査回路４の実施例を示す。
【００３４】
図４は、回路構成情報検査回路４の第１の実施例を示す。この回路構成情報検査回路４は組み合わせ回路により実現したものであり、３２個の５ビット入力３２ビット出力デコーダ７，ビット毎の論理和回路１１，３２ビット入力論理積回路１２により構成される回路である。上記ランダマイズ処理の場合、回路構成情報を構成する３２個の選択信号の中での重複の有無を調べればよい。回路構成情報は５ビットずつ、すなわち選択信号１つずつデコーダ７により３２ビット信号に変換される。回路構成情報が適切である場合、３２個のデコーダ７の３２ビット出力は“１”の立つビット位置がすべて異なることになる。次にビット毎の論理和回路１１により、３２個のデコーダ７による３２の３２ビット出力データのビット毎論理和が出力される。回路構成情報が適切である場合は、この出力はすべてのビットで“１”が立っている３２ビット信号となる。最後に、ビット毎の論理和回路１１の出力データが３２ビット入力論理積回路１２に入力され、出力として回路構成情報の検査結果を出力する。検査結果出力は、回路構成情報が適切である場合は“１”、そうでない場合は“０”となる。この出力結果により入力した回路構成情報が適切であるか否かを知ることが可能となる。
【００３５】
図５は、回路構成情報検査回路４の第２の実施例を示す。この回路構成情報検査回路４は順序回路により実現したものであり、１つの５ビット入力３２ビット出力デコーダ７，２つの３２ビット信号のビット毎の論理和をとるビット毎論理和回路１３，ビット幅３２のレジスタ１４，３２ビット入力論理積回路１２により構成される。図５中には示していないが、３２ビットレジスタ１４の初期値としては“０”が入力されている。基本的な処理方法は第１の実施例と同様であるが、この回路構成情報検査回路４では回路構成情報を構成する３２の５ビット選択信号を１サイクル毎に１つ入力し、１つずつ選択信号のビット毎論理和をとっていく点で大きく異なる。
【００３６】
上の２つの実施例に関して、第１の実施例は組み合わせ回路で実現しているため１サイクルで回路構成情報検査処理を終えることができる一方、第２の実施例では３２サイクルで処理が完了するようになっており第１の実施例より処理に要する時間はかかることになるが、ハードウェア量としては、３２ビットレジスタ１４が必要となるものの、第１の実施例において３２個必要であったデコーダ７は１つで十分となり、さらにビット毎の論理和回路１４に関しては第１の実施例において３２個であった３２ビット入力信号は２個で済むことになるため、ハードウェア量を低減させることが可能となる。
【００３７】
実際、３２入力３２出力クロスバースイッチ回路の回路構成情報を検査する回路構成情報検査回路４を上記２つの実施例および図１６の例と同じ構成で設計を行い、図１６の一致比較回路２９を用いたものと面積を比較した結果、第１の実施例に関しては４分の１程度、第２の実施例に関しては５分の１程度になる。
【００３８】
図６は、本発明の第２の実施形態である暗号処理装置を示すブロック図である。この暗号処理装置では暗号化／復号化切り換え信号を設けており、暗号化／復号化切り換え信号を暗号化モードにすると入力テキストとして平文を入力すると暗号化処理がなされ出力結果として暗号文が得られ、復号化モードでは暗号文を入力すると復号化処理がなされ出力として平文が得られるようになっている。
【００３９】
この暗号処理装置におけるランダマイズ処理回路１５は１つの３２ビットデータ入力に対し２つの３２ビットデータ出力を持ち、一方の出力データは関数Ｆ１に入力され、他方は次段の排他的論理和回路２の入力となる。ランダマイズ処理回路１５の制御信号としては、回路構成情報、回路構成情報の検査結果および暗号化／復号化切り換え信号が入力され、回路構成情報はランダマイズ処理のアルゴリズムを決定し、回路構成情報の検査結果と暗号化／復号化切り換え信号は２つの３２ビット出力データを制御するようになっている。
【００４０】
図７に、上記の第２の実施形態におけるランダマイズ処理回路１５の一実施例を示す。この実施例では、ランダマイズ処理回路１５は入力データのランダマイズを行うランダマイズ処理コア回路１６，次段の排他的論理和回路２への出力データを制御するセレクタ１７，関数Ｆへの出力データを制御するセレクタ１８，そしてセレクタ１８のセレクタ信号を決定する論理積回路１９により構成されている。
【００４１】
ランダマイズ処理コア回路１６は３２ビット入力データをランダマイズして３２ビット出力データを出力する回路であり、回路構成情報入力によりランダマイズ処理のアルゴリズムが決定され、暗号化／復号化切り換え信号入力によりランダマイズ処理が暗号化モードと復号化モードにおいて逆変換の関係になるように切り換えられ、回路構成情報の検査結果の入力によりランダマイズ処理コア回路の破壊を保護するように回路が構成されるようになっている。
【００４２】
ここで、図８を用いて上記ランダマイズ処理回路１５における３２ビットデータの流れについて説明する。図８中に太線で示したのがランダマイズ処理回路１５の出力に関わる３２ビットデータの流れであり、それぞれ
（ａ）回路構成情報が適切であるとき暗号化モードに設定された場合、
（ｂ）回路構成情報が適切であるとき復号化モードに設定された場合、
（ｃ）回路構成情報が不適切と判定され回路保護モードに設定された場合、
である。上に説明したとおり（ａ）のランダマイズ処理コア回路１６と（ｂ）のランダマイズ処理コア回路１６のランダマイズ処理はお互い逆変換の関係になっている。この実施例については、回路構成情報が適切である場合には図８（ａ），図８（ｂ）のようにデータの流れを制御することにより暗号化処理、復号化処理を実現するが、回路構成情報が不適切である場合には図８（ｃ）のようにランダマイズ処理を行ったデータは出力しないようになっている。このようにデータの流れを制御することにより、回路構成情報が不適切であるときはランダマイズ処理を行わない図１４の暗号化処理と同じ処理をすることで誤った暗号処理結果の出力を防ぎ、不適切な回路構成情報により決定されたランダマイズ処理に依存しない正しい暗号処理結果を出力することが可能となる。
【００４３】
図９は、上で説明したランダマイズ処理コア回路１６の一実施例を示すもので、ランダマイズ処理として図２，図３において説明したクロスバースイッチ回路８を用いたものである。このランダマイズ処理コア回路１６は回路構成情報の各々の５ビット選択信号をデコードする３２個のデコーダ７，クロスバースイッチ回路８，クロスバースイッチ回路８の入力端子と出力端子を切り換えるスイッチ２０，検査結果と暗号化／復号化切り換え信号からスイッチ２０のスイッチング方法を決定する論理和回路２１により構成される。回路構成情報が適切である場合、復号化モードのクロスバースイッチ回路８による処理は暗号化モードのクロスバースイッチ回路８の出力端子と入力端子を取り換えるようスイッチ２０を切り換えることにより実現できる。一方、回路構成情報が不適切である場合は、復号化モードと同様に暗号化モードのクロスバースイッチ回路８の出力端子と入力端子を取り換えるようスイッチ２０を切り換えることによりクロスバースイッチ回路８の破壊を保護している。上記回路保護方法を、簡単のために２入力２出力クロスバースイッチ回路で説明すると、入力端子と出力端子を取り換えるようスイッチングすることで図３（ｂ）のＯＵＴ＿１，ＯＵＴ＿０側からデータが入力されることになるので回路に大電流が流れることを防ぐことができるようになる。このように回路構成情報が不適切と判定された場合には復号化モードに切り換えることで、クロスバースイッチ回路の破壊を回避することが可能となる。
【００４４】
図１０は、本発明の第３の実施形態である暗号処理装置を示すブロック図である。この実施形態は、上で説明したランダマイズ処理としてクロスバースイッチ回路８を用いた暗号処理装置の第２の実施形態において、ランダマイズ処理回路１５と関数Ｆ１を繰り返し利用することによってハードウェアを減少させるよう回路を構成したものである。
【００４５】
この実施形態では、入力テキストデータを２分しその各々のデータと処理済みデータとを選択して出力するセレクタ２２と、前記セレクタ２２が出力したデータを保持するレジスタ２３を設けるようにすることで、ランダマイズ処理回路２４と関数Ｆ１を繰り返し利用可能にすることでハードウェア量の低減が可能となっている。
【００４６】
図１１は、本発明の第４の実施形態である暗号処理装置を示すブロック図である。この実施形態は、上で説明した第３の実施形態において、図４の回路構成情報検査回路４と図９のランダマイズ処理コア回路１６に共通する３２個のデコーダ７を共有することで、さらにハードウェア量を減少することが可能となる実施例を示したものである。
【００４７】
この実施形態では、回路構成情報検査回路を含むランダマイズ処理回路２４と関数Ｆ１を繰り返し利用するとともに、さらに回路構成情報検査回路とランダマイズ処理コア回路とで３２個のデコーダを共用することによりハードウェア量のさらなる低減が可能となっている。
【００４８】
図１２はこの実施形態における回路構成情報検査回路を含むランダマイズ処理回路２４の一実施例を示したものである。この実施例では、回路構成情報検査回路を含むランダマイズ処理コア回路２５において回路構成情報の検査が行われ検査結果が出力されるようになっているが、機能的には図７のランダマイズ処理回路１５と同じである。
【００４９】
図１３は、回路構成情報検査回路を含むランダマイズ処理コア回路２５の一実施例を示した図である。この回路は、図９のランダマイズ処理コア回路１６において必要とされる３２個のデコーダ７を図４の回路構成情報回路４と共有することにより得られたものである。図１３を見ればわかるように、回路構成情報検査回路を含むランダマイズ処理コア回路２５は、回路構成情報検査部２６とランダマイズ処理コア部２７からなっている。そして、デコーダ７を回路構成情報検査部２６とランダマイズ処理コア部２７において共有することにより、さらにハードウェア量を低減することが可能となる。
【００５０】
かくして、クロスバースイッチ回路をランダマイズ処理として用いた上記実施例において、入力された回路構成情報がランダマイズ処理のアルゴリズムを決定するデータとして適切か不適切かの認知、不適切な回路構成情報入力によるランダマイズ処理回路の破壊の回避、および不適切な回路構成情報の入力により同じ鍵および回路構成情報に基づいて得られた暗号文に対し復号化処理を行っても元の入力テキストを再現できないような処理を行ってしまうという誤った暗号結果出力の回避が可能となる。
【００５１】
【発明の効果】
以上の発明により、ランダマイズ処理回路を有する暗号処理装置において、ランダマイズ処理のアルゴリズムを決定する回路構成情報として不適切な入力がされた場合においても、不適切なデータ入力によるランダマイズ処理回路の破壊を回避しつつ、不適切な回路構成情報入力による誤った暗号処理を行う代わりに入力された回路構成情報に依存しない固定の暗号処理による暗号処理結果出力が可能となるため、外部からの不正な攻撃に対する暗号の秘密保持の向上を図ることが可能となる。
【図面の簡単な説明】
【図１】本発明の入力検査装置を用いた暗号処理装置の第１の実施形態を示すブロック図である。
【図２】ランダマイズ処理回路の第１の実施例を示すブロック図である。
【図３】クロスバースイッチ回路の回路構成方法について説明するための図である。
【図４】回路構成情報検査回路の第１の実施例を示すブロック図である。
【図５】回路構成情報検査回路の第２の実施例を示すブロック図である。
【図６】本発明の入力検査装置を用いた暗号処理装置の第２の実施形態を示すブロック図である。
【図７】ランダマイズ処理回路の第２の実施例を示すブロック図である。
【図８】ランダマイズ処理回路においての３２ビットデータの流れを説明するための図である。
【図９】ランダマイズ処理コア回路の一実施例を示すブロック図である。
【図１０】本発明の入力検査装置を用いた暗号処理装置の第３の実施形態を示すブロック図である。
【図１１】本発明の入力検査装置を用いた暗号処理装置の第４の実施形態を示すブロック図である。
【図１２】回路構成情報検査回路を含むランダマイズ処理回路の一実施例を示すブロック図である。
【図１３】回路構成情報検査回路を含むランダマイズ処理コア回路の一実施例を示すブロック図である。
【図１４】秘密鍵暗号の基本構造により構成される暗号処理装置を示すブロック図である。
【図１５】ランダマイズ処理回路を有する暗号処理装置を示すブロック図である。
【図１６】一致比較回路を用いて構成した回路構成情報検査回路を示すブロック図である。
【符号の説明】
１  関数Ｆ
２  排他的論理和回路
３  ランダマイズ処理回路
４  回路構成情報検査回路
５  回路情報ＲＯＭ
６  セレクタ
７  デコーダ
８  クロスバースイッチ回路
９  ＯＦＦ状態にあるスイッチ
１０  ＯＮ状態にあるスイッチ
１１  ビット毎の論理和回路
１２  ３２ビット入力論理積回路
１３  ビット毎の論理和回路
１４  レジスタ
１５  ランダマイズ処理回路
１６  ランダマイズ処理コア回路
１７  セレクタ
１８  セレクタ
１９  論理積回路
２０  スイッチ
２１  論理和回路
２２  セレクタ
２３  レジスタ
２４  回路構成情報検査回路を含むランダマイズ処理回路
２５  回路構成情報検査回路を含むランダマイズ処理コア回路
２６  回路構成情報検査部
２７  ランダマイズ処理コア部
２８  ランダマイズ処理回路
２９  一致比較回路
３０  論理和回路
３１  ＮＯＲ回路
【図１】
0003634153.tif 000002
【図２】
0003634153.tif 000003
【図３】
0003634153.tif 000004
【図４】
0003634153.tif 000005
【図５】
0003634153.tif 000006
【図６】
0003634153.tif 000007
【図７】
0003634153.tif 000008
【図８】
0003634153.tif 000009
【図９】
0003634153.tif 000010
【図１０】
0003634153.tif 000011
【図１１】
0003634153.tif 000012
【図１２】
0003634153.tif 000013
【図１３】
0003634153.tif 000014
【図１４】
0003634153.tif 000015
【図１５】
0003634153.tif 000016
【図１６】
0003634153.tif 000017