(57)【特許請求の範囲】
【請求項１】
所定の線形処理を行う線形処理部と所定の非線形処理を行う非線形処理部とを少なくとも備え、Ｎビットの処理対象データを線形処理部及び非線形処理部に順次導くことにより暗号化したデータを生成する暗号復号回路であって、
前記非線形処理部は、非線形処理部に入力される処理対象データに対応するアドレスに当該データに対する非線形処理データが予め記憶されたテーブルメモリからなり、
前記非線形処理部は、Ｎビットの入力データをＳビット毎に分割して処理するＫ（Ｋ＝Ｎ／Ｓ）個の非線形処理部がパラレルに接続され、Ｎビットの入力データをＳビット毎のデータに分けて並列処理するものであり、
各非線形処理部は、
１個のテーブルメモリと、
Ｓビットの入力データをＬビット毎に順次テーブルメモリに出力する切替手段と、
テーブルメモリから順次出力されたＬビットのデータを整列し、Ｓビットのパラレルデータとして出力する１個のデータ整列手段とからなることを特徴とする暗号復号回路。
【請求項２】
前記非線形処理部は、１個のテーブルメモリ内に少なくとも２種類の暗号方式に対する非線形処理データを選択可能に記憶したものであることを特徴とする請求項１記載の暗号復号回路。
【請求項３】
前記非線形処理部は、所定の鍵データに対する非線形処理を行うものであることを特徴とする請求項１又は２記載の暗号復号回路。
【請求項４】
前記テーブルメモリは、ＲＡＭ又はＲＯＭであることを特徴とする請求項１〜３のいずれかに記載の暗号復号回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介して転送されるデータの中から処理対象となるデータを処理する暗号復号回路に関するものである。
【０００２】
【従来の技術】
近年、ネットワーク上のデータ処理速度の高速化に伴い、ネットワーク上に配置される暗号復号回路は、処理速度の高速化が要求されている。通常、暗号復号処理は、入力されたデータに対して所定の線形処理及び非線型処理を施すことにより行われるが、非線型処理は、一般的に計算が複雑あるため、暗号復号化を高速に処理するうえで大きなボトルネックとなっている。
【０００３】
非線形処理の高速化の観点からは非線形処理部をハードウエアにより構成することが好ましい。従来、非線形処理をハードウエアにより行う場合、非線形処理部に入力されるデータから非線形処理データが導出されるような論理関数を構築し、この論理関数をＡＮＤ回路やＯＲ回路等を用いた組み合わせ回路を組むことにより実現していた。
【０００４】
【発明が解決しようとする課題】
しかしながら、非線形処理は複雑であるため、組み合わせ回路が多段化し、非線形処理の高速化を図ることが困難であった。特に非線型処理部に入力されるデータのビット数が増大すると、組み合わせ回路の段数が増大し、非線形処理データが出力されるまで時間がかかるという問題があった。
【０００５】
本発明はこのような問題を解決するためになされたものであり、高速に非線型処理を行うことのできる暗号復号回路を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、請求項１記載の発明は、所定の線形処理を行う線形処理部と所定の非線形処理を行う非線形処理部とを少なくとも備え、Ｎビットの処理対象データを線形処理部及び非線形処理部に順次導くことにより暗号化したデータを生成する暗号復号回路であって、前記非線形処理部は、非線形処理部に入力される処理対象データに対応するアドレスに当該データに対する非線形処理データが予め記憶されたテーブルメモリからなり、前記非線形処理部は、Ｎビットの入力データをＳビット毎に分割して処理するＫ（Ｋ＝Ｎ／Ｓ）個の非線形処理部がパラレルに接続され、Ｎビットの入力データをＳビット毎のデータに分けて並列処理するものであり、各非線形処理部は、１個のテーブルメモリと、Ｓビットの入力データをＬビット毎に順次テーブルメモリに出力する切替手段と、テーブルメモリから順次出力されたＬビットのデータを整列し、Ｓビットのパラレルデータとして出力する１個のデータ整列手段とからなることを特徴とする。この発明によれば、予め非線形処理データが記憶されたテーブルメモリを用意し、このテーブルメモリから非線形処理データを読み出すことにより非線形処理が行われる。したがって、従来のように非線形処理部を組み合わせ回路で構成する場合に比べ、組み合わせ回路の多段化による処理時間の遅延という問題が解消され、高速処理が可能となる。
【０００９】
また、この発明によれば、非線形処理部をパラレルに接続して、非線形処理を並列処理するとともに、各非線形処理部は、入力されたＳビットのデータをＬビット毎に分割し直列的に処理する。したがって、非線形処理の高速化を図りつつ、非線形処理部の回路規模が縮小される。
【００１０】
請求項２記載の発明は、請求項１記載の暗号復号回路において、前記非線形処理部は、１個のテーブルメモリ内に少なくとも２種類の暗号方式に対する非線形処理データを選択可能に記憶したものであることを特徴とする。この発明によれば、１個のテーブルメモリ内に少なくとも２種類の暗号方式に対する非線形処理データを記憶したため、暗号方式に応じてテーブルメモリを別に設ける必要がなく、非線形処理部の回路規模が縮小される。
【００１１】
請求項３記載の発明は、請求項１又は２記載の暗号復号回路において、前記非線形処理部は、鍵データに対する非線形処理を行うものであることを特徴とする。この発明によれば、非線形処理部は鍵データに対しても非線形処理を施すため、鍵データのために別個に非線形処理部を設ける必要がなく、回路規模が縮小される。
【００１２】
請求項４記載の発明は、請求項１〜３のいずれかに記載の暗号復号回路において、前記テーブルメモリは、ＲＡＭ又はＲＯＭであることを特徴とする。この発明によれば、テーブルメモリはＲＡＭ又はＲＯＭにより構成される。
【００１３】
【発明の実施の形態】
図１は、図２〜図５に示す第１〜第４実施形態に係る暗号復号回路の基本構成の一例を示したブロック図である。図１に示す暗号複合回路は、暗号化する前の処理対象データを暗号化する暗号処理及び暗号化した後の処理対象データを復号化する復号処理の両方の処理を行うことが可能である。
【００１４】
図１に示す暗号復号回路は、例えば、ネットワークを介して処理対象データＤ１を取り込むデータ入力部１と、処理対象データＤ１を暗号化して出力するデータ出力部７とを備え、データ入力部１からデータ出力部７に向けて順番に、セレクタ２、線形処理部３、非線型処理部４、演算部５、線形処理部６が１２８ビットのパラレルラインにより接続されている。また、演算部５には、所定の鍵データを取り込む鍵入力部８が、演算部５の入力側に接続された鍵処理部９を介して接続されている。また、線形処理部６の出力側に接続されたパラレルラインは２つに分岐しており、一方はフィードバックライン１１によりセレクタ２の入力側に接続され、他方はデータ出力部７に接続されている。また、セレクタ２、データ出力部７、非線形処理部４には制御部１０が接続されている。
【００１５】
データ入力部１は、所定ビット例えば１２８ビットのデータが記憶可能なバッファから構成されており、処理対象データを１２８ビットずつ取り込んで記憶し、セレクタ２へ出力する。
【００１６】
セレクタ２は、データ入力部１からのデータと線形処理部６からのデータとを、制御部１０からの制御信号を受けて、選択的に切り替え、線形処理部３へ出力する。
【００１７】
線形処理部３は、入力されたデータに所定の線形係数を乗算する乗算器と、乗算後のデータに所定の係数を加算する加算器と、処理後のデータを一時的に記憶するバッファなどから構成され、例えば、Ｙ＝ａＸ＋ｂ(Ｘ：入力データ、ａ、ｂ：係数、Ｙ：出力データ)で表わされるような線形処理を行う。線形処理部３は多段構成が可能であり、本実施形態では２段接続されおり、処理対象データＤ１に対して２回の線形処理を施し、線形処理データＤ２を算出するようにしている。
【００１８】
非線形処理部４は、Ｙ＝ｆ(Ｘ)(Ｙ：非線形処理データ、Ｘ：入力データ、ｆ：非線形関数)で表わされる非線形処理を行う。非線形処理部４は、記憶素子例えばＲＡＭ(random access memory)からなるテーブルメモリにより構成されている。テーブルメモリは、非線形処理関数の入力データＸに対応するアドレスを有し、各アドレスに予め求めた出力データＹを記憶している。本実施形態では、非線形処理部４に入力された線形処理データＤ２に対応するアドレスの記憶データをテーブルメモリの当該アドレスから読み出すことにより非線形処理を行う。すなわち、非線形処理部４は、線形処理データＤ２が入力されると、線形処理データＤ２が示すアドレス領域に記憶された非線形処理後のデータを演算部５へ出力する。
【００１９】
本実施形態では、テーブルメモリを構成するＲＡＭはＳＲＡＭ(static RAM)で構成されている。
【００２０】
非線形関数は、線形関数に比較して演算が複雑である。非線型処理部４を従来のように入力データに対応する非線形処理データが出力される組み合わせ回路(記憶素子を含まない回路)を用いて構成すると、回路が大規模化し、処理に時間がかかる。そこで、本発明では、非線型処理部４を予め各入力データが示すアドレスに非線形処理データが記憶されたテーブルメモリで構成し、処理時間の短縮化及び回路の小規模化を図っている。なお、テーブルメモリとしてはＲＡＭの代わりにＲＯＭ(read only memory)を用いてもよい。
【００２１】
鍵入力部８は、所定ビットのデータが記憶可能なバッファから構成され、処理対象データを暗号化するための所定の鍵データを取り込んでバッファに記憶する。
【００２２】
鍵処理部９は、鍵入力部８から入力された鍵データＤ６に対して所定の演算処理を施し、鍵処理データＤ７を算出し、演算部５へ出力する。
【００２３】
演算部５は、乗算器や加算器などの演算回路から構成され、非線形処理部４から出力された非線形処理データＤ３及び鍵処理部９から出力された鍵処理データＤ７に対して所定の演算処理を施して、演算データＤ４を求め線形処理部６へ出力する。
【００２４】
線形処理部６は、線形処理部３と同様の構成であり、演算部５から出力された演算データＤ４を読み込んで所定の線形処理を施し、線形処理データＤ５を求める。
【００２５】
データ出力部７は、１２８ビットのデータを記憶するバッファなどから構成されており、線形処理データＤ５を記憶し、制御部１０の制御信号に基づいて、線形処理データＤ５を出力する。
【００２６】
制御部１０は、ＣＰＵ(中央演算処理装置)及び、制御プログラムなどを記憶した記憶部を備えており、暗号復号回路全体を制御する。制御部１０は、本暗号復号回路がフィードバック処理をする回数を記憶している。制御部１０は、セレクタ２に対して制御信号を出力することにより、セレクタ２の接続状態の切り替えを行わせる。すなわち、フィードバック処理を行なうときは、セレクタ２は線形処理部６と線形処理部３とを接続させ、線形処理部６から出力された線形処理データＤ５は、線形処理部３に導かれる。また、フィードバック処理を行わないときは、セレクタ２は、データ入力部１と線形処理部３とを接続させ、データ入力部１から出力された処理対象データＤ１は、線形処理部３へ導かれる。
【００２７】
次に、暗号復号回路における非線形処理部４の各実施形態について説明する。
【００２８】
(第１実施形態)
図２は第１実施形態に係る非線型処理部４１の構成を示した図である。第１実施形態に係る暗号復号回路は、１２８ビットの線形処理データＤ２を８ビット毎の１６個のブロックデータＤ２１分割し、分割された各ブロックデータＤ２１のそれぞれに対して非線形処理を同時に施し、非線形処理を並列的に行う。
【００２９】
非線形処理部４１は、線形処理部３と演算部５との間にパラレル接続された１６個のテーブルメモリ４１１、４１１、…から構成される。各テーブルメモリ４１１は、線形処理部３の出力側に接続された１２８ビットのパラレルラインと８ビット毎、すなわち、８ライン単位で上位ビットから順番に接続されている。
【００３０】
テーブルメモリ４１１は、８ビットのブロックデータＤ２１に対応する非線形処理データＤ３１を記憶している。テーブルメモリ４１１は、ブロックデータＤ２１が示すアドレスに当該ブロックデータＤ２１に対応する非線形処理データＤ３１が記憶されている。
【００３１】
テーブルメモリ４１１を構成するＲＡＭは、非線形処理データＤ３１を記憶するメモリアレイ部と、指定されたアドレスに対応するメモリアレイ部のアドレス領域をデコードするアドレスデコーダなどから構成されている。ＲＡＭは、アドレスのビット数が増大するにつれて、アドレスデコーダを構成する論理回路が複雑化し、アドレスのデコードに時間がかかってしまう。本実施形態では、１２８ビットのデータを８ビット毎の１６個のブロックデータＤ２１とし、このブロックデータＤ２１を１６個のテーブルメモリ４１１により個別に処理させる構成としたので、テーブルメモリ４１１のアドレスデコーダを８ビットの入力データに対する処理を行うもので構成でき、アドレスデコーダを簡素化できる。
【００３２】
次に、本実施形態に係る暗号復号回路の非線形処理部４１の動作について説明する。
【００３３】
線形処理部３からの線形処理データＤ２であって１６個に分割された各ブロックデータＤ２１が対応するテーブルメモリ４１１に同時に入力される。次いで、テーブルメモリ４１１から入力されたブロックデータＤ２が示すアドレスに記憶された非線形処理データＤ３１が同時に読み出され、再整列された形で演算部５へ出力される。
【００３４】
このように、本実施形態によれば、非線形処理部４１に入力される１２８ビットの線形処理データＤ２を８ビット毎に１６個のブロックデータＤ２１に分割し、分割したブロックデータＤ２１を１６個のテーブルメモリ４１１に同時に導き、ブロックデータＤ２１を並列的に処理するため、テーブルメモリ４１１のアドレスのデコード時間が短縮化され、非線型処理の高速化が実現される。
【００３５】
(第２実施形態)
図３は、第２実施形態に係る非線形処理部４２の構成を示した図である。第２実施形態は、非線形処理部４２に入力される１２８ビットの入力データを８ビット毎に１６個のブロックデータＤ２１に分割し、分割したブロックデータＤ２１をシリアルに整列させて、１個のテーブルメモリ４２２に順次出力し、非線形処理を直列的に行う。
【００３６】
非線形処理部４２は、線形処理部３の出力側に接続された切替部４２１と線形処理部６の入力側に接続されたデータ整列部４２３と、切替部４２１とデータ整列部４２３との間に介設された１個のテーブルメモリ４２２とから構成されている。切替部４２１とテーブルメモリ４２２間及びテーブルメモリ４２２とデータ整列部４２３間はそれぞれ８ビットのパラレルラインで接続されている。
【００３７】
切替部４２１は、線形処理部３の出力側に接続された１６個のバッファ４２１２と、各バッファ４２１２の出力側に接続された切替回路４２１１とを含む。
【００３８】
各バッファ４２１２は、８ビットのデータが記憶可能な容量を有しており、線形処理部３の出力側に接続された１２８ビットのパラレルラインに対して上位ビットから順番に８ビットずつ接続されている。バッファ４２１２は、１２８ビットの線形処理データＤ２を上位ビットから順番に８ビット毎に分割されたブロックデータＤ２１を記憶する。
【００３９】
切替回路４２１１は、バッファ４２１２のそれぞれの出力側と８ビットのパラレルラインで接続されている。切替回路４２１１は、１６個のバッファ４２１２に対して順番に１個ずつ選択してテーブルメモリ４２２と接続するので、接続されたバッファ４２１２に記憶されているブロックデータＤ２１がテーブルメモリ４２２へ順次導かれる。
【００４０】
テーブルメモリ４２２は、８ビットの非線形処理データＤ３１を記憶している。テーブルメモリ４２２は、切替回路４２１１から８ビットのブロックデータＤ２１を受けて、ブロックデータＤ２１に対応する非線形処理データＤ３１を読み出し、データ整列部４２３に出力する。
【００４１】
データ整列部４２３は、テーブルメモリ４２２の出力側と８ビットのパラレルラインで接続された切替回路４２３１と、演算部５と切替回路４２３１との間にそれぞれパラレルに介設された１６個のバッファ４２３２を含む。
【００４２】
切替回路４２３１は、図３の左の１ブロック目のバッファ４２３２から１６ブロック目のバッファ４２３２までをテーブルメモリ４２２と前記切替回路４２１１と同期連動して順番に接続を行うもので、テーブルメモリ４２２で処理された非線形処理データＤ３１をデータ整列部４２３の対応するブロックのバッファ４２３２へ導く。
【００４３】
次に、非線型処理部４２の動作について説明する。
【００４４】
まず、線形処理部３により処理された１２８ビットの線形処理データＤ２が先頭ビットから順番に８ビットのブロックデータＤ２１に分割され、切替部４２１の１ブロック目のバッファ４２１２から１６ブロック目のバッファ４２１２に記憶される。次いで、切替回路４２１１により、１〜１６ブロック目のバッファ４２１２のうち１のバッファ４２１２がテーブルメモリ４２２と接続される。次いで、テーブルメモリ４２２と接続された１ブロック目のバッファ４２１２からブロックデータＤ２１がテーブルメモリ４２２に入力されると、ブロックデータＤ２１に対応する非線形処理データＤ３１がデータ整列部４２３へ出力される。次いで、切替回路４２３１により、１６個のバッファ４２３２のうち１のバッファ４２３２がテーブルメモリ４２２と接続され、小非線形処理データＤ３１がバッファ４２３２に記憶される。
【００４５】
次いで、全てのバッファ４２３２に非線形処理データＤ３１が記憶されると、各バッファ４２３２から非線形処理データＤ３１が演算部５へ並列的に出力される。したがって、データ整列部４２３から１２８ビットの非線形処理データＤ３が演算部５へ出力される。
【００４６】
以上、説明したように第２実施形態に係る非線形処理部４２によれば、入力された１２８ビットのデータは、８ビット毎のブロックデータＤ２１に分割され順次テーブルメモリ４２２に導かれ非線型処理が直列的に行われるため、非線形処理部４２のテーブルメモリ４２２を１個で構成でき、非線形処理部４２を小型化することができる。
【００４７】
(第３実施形態)
図４は第３実施形態に係る非線型処理部４３の構成を示す図である。非線形処理部４３は、第２実施形態に係る非線形処理部４２を基本構成とする非線形処理部４３ａ、４３ｂをパラレルに接続し、非線形処理部４３ａに線形処理データＤ２の上位６４ビット分を、非線形処理部４３ｂに下位６４ビット分を担当させて、直列処理と並列処理とを併用して非線形処理を行うものである。非線形処理部４３ｂは、非線形処理部４３ａと同一構成であるため、非線形処理部４３ａの構成について説明する。
【００４８】
非線形処理部４３ａは、線形処理部３の出力側に接続された切替部４３１ａと、切替部４３１ａの出力側に接続された１個のテーブルメモリ４３２ａと、テーブルメモリ４３２ａの出力側に接続されたデータ整列部４３３ａとからなる。
【００４９】
切替部４３１は、線形処理部３の出力側と接続された８個のバッファ４３１２ａと、８個のバッファ４３１２ａのそれぞれの出力側と接続された切替回路４３１１ａとからなる。
【００５０】
バッファ４３１２ａは、それぞれ線形処理部３の出力側に８ビットのパラレルラインで接続されており、線形処理部３から出力される１２８ビットの線形処理データＤ２を上位ビットから順番に８ビットずつ分割して、ブロックデータＤ２１ａとして記憶する。
【００５１】
切替回路４３１１ａは、バッファ４３１２ａの出力側に８ビットのパラレルラインで接続されており、制御部１０の制御信号に基づいて、１ブロック目のバッファ４３１２ａから８ブロック目までのバッファ４３１２ａをテーブルメモリ４３２ａと順番に接続する。接続されたバッファ４３１２ａに記憶されたブロックデータＤ２１ａは、テーブルメモリ４３２ａへ導かれる。
【００５２】
テーブルメモリ４３２ａは、ブロックデータＤ２１ａに対応する非線形処理データＤ３１ａを記憶する。データ整列部４３３ａは、テーブルメモリ４３２ａの出力側に接続された切替回路４３３１ａと切替回路４３３１ａの出力側にそれぞれ接続された８個のバッファ４３３２ａとを含む。切替回路４３３１ａは、テーブルメモリ４３２ａと８ビットのパラレルラインで接続されている。切替回路４３３１ａは、制御部１０の指示に基づいて、１ブロック目のバッファ４３３２ａから８ブロック目までのバッファ４３３２ａをテーブルメモリ４３２ａに順番に接続し、テーブルメモリ４３２ａで処理された非線形処理データＤ３１ａを対応するブロックのバッファ４３３２ａへ導く。
【００５３】
次に、非線形処理部４３の動作について説明する。
【００５４】
線形処理部３から出力される１２８ビットの線形処理データＤ２の上位６４ビットのデータが先頭ビットから順番に８ビットのブロックデータＤ２１ａに分割され、非線形処理部４３ａの切替部４３１ａの１ブロック目のバッファ４３１２ａから８ブロック目のバッファ４３１２ａまでに記憶される。また、これと同時に線形処理データＤ２の下位６４ビットのデータが先頭ビットから順番に８ビットのブロックデータＤ２１ｂに分割され、非線形処理部４３ｂの切替部４３１ｂの１ブロック目のバッファ４３１２ｂから８ブロック目のバッファ４３１２ｂまでに記憶される。
【００５５】
次いで、切替部４３１ａ、４３１ｂの１ブロック目のバッファ４３１２ａ、４３１２ｂから８ブロック目のバッファ４３１２ａ、４３１２ｂに記憶されたブロックデータＤ２１が順番にテーブルメモリ４３２ａ、４３２ｂへ出力される。
【００５６】
次いで、テーブルメモリ４３２ａ、４３２ｂから出力された非線形処理データＤ３１ａ、Ｄ３１ｂが切替回路４３３１ａ、４３３１ｂを介して対応するブロックのバッファ４３３２ａ、４３３２ｂに出力される。切替回路４３１１ａ、４３１１ｂは、同期連動して切替動作を行っているため、切替部４３１ａ、４３１ｂの任意のブロックのバッファ４３１２ａ、４３１２ｂに記憶されたブロックデータＤ２１ａ、Ｄ２１ｂは、テーブルメモリ４３２ａ、４３２ｂにより非線形処理データＤ３１ａ、Ｄ３１ｂとされた後、データ整列部４３３ａ、４３３ｂの対応するブロックのバッファ４３３２ａ、４３３２ｂに記憶される。
【００５７】
次いで、データ整列部４３３ａ、４３３ｂの全てのバッファ４３３２ａ、４３３２ｂに非線形処理データＤ３１ａ、Ｄ３１ｂが記憶されると、非線形処理データＤ３１ａ、Ｄ３１ｂは、１２８ビットの非線形処理データＤ３として演算部５へ再整列された形で出力される。
【００５８】
このように、本実施形態に係る非線形処理部４３によれば、非線形処理部４３ａ及び４３ｂをパラレル接続し、線形処理データＤ２を上位６４ビットと下位６４ビットに分割し、分割された上位６４ビットのデータを非線形処理部４３ａにより処理させ、下位６４ビットのデータを非線形処理部４３ｂにより処理させるため、非線形処理部４３の回路規模の縮小を図るととともに、非線形処理の高速化を実現することができる。
【００５９】
(第４実施形態)
図５は第４実施形態に係る非線形処理部４４の１個のテーブルメモリ４４２の構成を示す図である。
【００６０】
非線形処理部４４を構成するテーブルメモリ４４２は、アドレスを示すビット数のうち上位と下位の分割されており、上位領域には、暗号方式１に対する非線形処理データを記憶し、下位領域には、暗号方式２に対する非線形処理データを記憶し、１つのテーブルメモリ４４２で２種類の非線形処理を行う。
【００６１】
本実施形態に係る非線形処理部４４は、それぞれ８ビットの非線形処理データＤ３を記憶したテーブルメモリ４４２が、線形処理部３と演算部５との間にパラレルに１６個介設されている。そして、各テーブルメモリ４４２は、８ビットの線形処理データＤ２を読み込み、８ビットの非線形処理データＤ３を出力する。
【００６２】
非線形処理部４４は、所定の８ビットの線形処理データＤ２２から９ビットのアドレスデータを生成するアドレス生成部４４１と、８ビットで表わされる非線形処理データを記憶したテーブルメモリ４４２で構成されている。
【００６３】
テーブルメモリ４４２は、９ビットのアドレスデータでアクセス可能な記憶容量、すなわち、５１２バイトの記憶容量を有している。テーブルメモリ４４２は、最上位ビットが「０」となるアドレスには、暗号方式１により求めた非線形処理データが記憶され、最上位ビットが「１」で表わされるアドレスには暗号方式２により求めた非線形処理データが記憶されている。
【００６４】
アドレス生成部４４１は、制御部１０の制御信号に基づいて、線形処理部３から出力された８ビットの線形処理データＤ２２に対して先頭ビットとして暗号方式に応じて「０」または「１」を付与して９ビットのアドレスデータを生成する。すなわち、線形処理データＤ２２が暗号処理方式１に対するデータである場合、アドレス生成部４４１は、線形処理データＤ２２の先頭ビットに「０」を付与し、９ビットのアドレスデータを生成する。線形処理データＤ２２が暗号方式２に対するデータである場合、アドレス生成部４４１は、線形処理データＤ２２に対して先頭ビットに「１」を付与して９ビットのアドレスデータを生成する。したがって、非線形処理データＤ２２は、暗号方式に応じて先頭ビットに「０」又は「１」が付与されて９ビットのデータとされ、テーブルメモリ４４２に入力される。
【００６５】
テーブルメモリ４４２に９ビットのデータが入力されると、テーブルメモリ４４２は、データに対応する非線形処理データＤ３２を演算部５へ出力する。
【００６６】
このように、本実施形態によれば、テーブルメモリ４４２内に暗号方式１及び暗号方式２に対する非線形処理データを領域を分けて記憶したため、暗号方式毎にテーブルメモリ４４２を設ける必要がなく、回路規模が縮小される。
【００６７】
(第５実施形態)
第５実施形態は、１つのテーブルメモリで鍵データに対する非線形処理と処理対象データに対する非線形処理を併用して行なうものである。この場合、テーブルメモリは、第４実施形態に示すテーブルメモリ４４２において、暗号方式２に対する非線形処理データを記憶した領域に、鍵データに対する非線形処理データを記憶する。すなわち、メモリアドレスの先頭ビットが「０」であるアドレスには、処理対象データに対する非線形処理データを記憶させ、メモリアドレスの先頭ビットが「１」であるアドレスには、鍵処理データに対する非線形処理データを記憶させる。そして、アドレス生成部４４１は、鍵データに対して非線形処理を施す場合、制御部１０の制御信号に基づいて、入力されるデータの先頭ビットに「１」を付与して合計９ビットのデータとし、テーブルメモリ４４２に出力する。テーブルメモリ４４２は、入力された９ビットのデータが示すアドレスに対応する鍵データに対する非線形処理データを読み出し、演算部５へ出力する。
【００６８】
このように第６実施形態によれば、１つのテーブルメモリ４４２に鍵データに対する非線形処理データと、処理対象データに対する非線形処理データを記憶させたため、鍵データ用に別個にテーブルメモリを設ける必要がなく、テーブルメモリの個数を減らすことが可能となり、回路規模を縮小することができる。
【００６９】
なお、本発明は以下の態様を採ることができる。
【００７０】
(１)第１〜第５の実施形態において、暗号復号回路は１２８ビットの処理対象データを処理するものとしたが、これに限定されず、２５６ビット、６４ビット、３２ビット、１６ビット、８ビットなど、あらゆるビット数の処理対象データを取り扱うものであってもよい。この場合、データ入力部１〜データ出力部７を処理対象データのビット数に対応する数のパラレルラインで接続すればよい。
【００７１】
(２)第４実施形態においては、１個のテーブルメモリに２種類の暗号方式の非線形処理を行なう態様を示したが、これに限定されず、３種類以上の暗号方式の非線形処理を行なうものであってもよい。この場合、テーブルメモリは、暗号の種類毎に記憶領域を分け、各領域に各暗号方式の非線形処理データを記憶させればよい。
【００７２】
(３)第３実施形態において、２個の非線形処理部４３ａ、４３ｂをパラレルに接続しているが、これに限定されず、３個以上の非線形処理部４３ａ、４３ｂ、４３ｃ、…をパラレルに接続してもよい。この場合、非線形処理部の個数に応じて線形処理データを分割し、各非線形処理部に処理させればよい。
【００７３】
(４)第２、第３実施形態において、切替部４２１、４３１ａ、４３１ｂにバッファ４３１２、４３１１ａ、４３１１ｂを設けたが、これに限定されず、バッファ４３１２、４３１１ａ、４３１１ｂを設けなくともよい。この場合、ブロックデータＤ２１、Ｄ２１ａ、Ｄ２１ｂは、切替回路４２１１、４３１ａ、４３１ｂを介してテーブルメモリ４２２、４３２ａ、４３２ｂに導けばよい。
【００７４】
【発明の効果】
請求項１記載の発明によれば、非線形処理の高速化が可能となる。また、非線形処理部を直列的処理と並列処理とを併用して行なわせるようにしたことにより、非線形処理の高速化とともに、非線形処理部の回路規模の縮小が図られる。
【００７８】
請求項２記載の発明によれば、暗号方式に応じてテーブルメモリを別に設ける必要がなく、非線形処理部の回路規模を縮小することができる。
【００７９】
請求項３記載の発明によれば、鍵データのために別に非線形処理部を設ける必要がなく、回路規模を縮小することができる。
【００８０】
請求項４記載の発明によれば、テーブルメモリがＲＯＭ又はＲＡＭにより構成される。
【図面の簡単な説明】
【図１】  暗号復号回路の基本構成の一例を示した図である。
【図２】  第１実施形態の非線形処理部を示した図である。
【図３】  第２実施形態の非線形処理部を示した図である。
【図４】  第３実施形態の非線形処理部を示した図である。
【図５】  第４実施形態の非線形処理部を示した図である。
【符号の説明】
１  データ入力部
２  セレクタ
３  線形処理部
４  ４１  ４２  ４３  ４４  非線形処理部
４３Ａ  ４３Ｂ  非線形処理部
４１１  ４２２  ４３２  ４４２  テーブルメモリ
４２１  ４３１  切替部
４２１１  ４３１１  切替回路
４２１２  ４３１２  バッファ
４２３  ４３３  データ整列部
４２３１  ４３３１  切替回路
４２３２  ４３３２  バッファ
５  演算部
６  線形処理部
７  データ出力部
８  鍵入力部
９  鍵処理部
１０  制御部
１１  フィードバックライン
【図１】
0004120193.tif 000002
【図２】
0004120193.tif 000003
【図３】
0004120193.tif 000004
【図４】
0004120193.tif 000005
【図５】
0004120193.tif 000006