(57)【要約】      （修正有）【課題】ＲＣ４アルゴリズムをハードウェアに実現した保安アルゴリズム回路及びデータ暗号化方法を提供する。【解決手段】保安アルゴリズム回路はＳボックス、読み出し制御ロジック、レジスタ、書き込み制御ロジックを含む。Ｓボックスは第１及び第２のポートを有し、一つのクロック信号に応答して第１のポートを介してデータを出力し、同時に第２のポートを介してデータが入力される。読み出し制御ロジックは第１のポートに連結され、Ｓボックスの読み出し動作を制御する。レジスタは読み出し制御ロジックから出力されたアドレス及びＳボックスから出力されたデータを貯蔵する。書き込み制御ロジックはレジスタに貯蔵されたアドレス及びデータが入力され、Ｓボックスの書き込み動作を制御する。これにより、保安アルゴリズムの設計が容易であり、更にデュアルポートＳＲＡＭを使用してパイプライン方式で動作し、従来に比べクロック数を減らすことができる。【選択図】図２
2006238438.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２のポートを有するＳボックス；
前記第１のポートに連結され、前記Ｓボックスの読み出し動作を制御する読み出し制御ロジック；
前記読み出し制御ロジックから出力されたアドレス及び前記Ｓボックスから出力されたデータを貯蔵するレジスタ；および
前記第２のポートに連結され、前記レジスタに貯蔵されたアドレス及びデータが入力され、前記Ｓボックスの書き込み動作を制御する書き込み制御ロジック；
を含み、
前記Ｓボックスは、前記書き込み制御ロジックの制御によってデータが入力され、同時に前記読み出し制御ロジックの制御によってデータを出力すること
を特徴とする保安アルゴリズム回路。
【請求項２】
前記Ｓボックスは、デュアルポートＳＲＡＭであること
を特徴とする請求項１に記載の保安アルゴリズム回路。
【請求項３】
前記読み出し制御ロジックは、第１のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で読み出し動作を実行し、第１の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で読み出し動作を実行すること
を特徴とする請求項１に記載の保安アルゴリズム回路。
【請求項４】
前記書き込み制御ロジックは、前記第１のキーセットアップ信号より所定のクロックだけ遅延された第２のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で書き込み動作を実行し、前記第２の暗号化信号より所定のクロックだけ遅延された第２の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で書き込み動作を実行すること
を特徴とする請求項３に記載の保安アルゴリズム回路。
【請求項５】
外部から入力される入力データ及び前記レジスタで提供されるデータをＸＯＲ演算して暗号化された出力データを生成するＸＯＲゲートをさらに含むこと
を特徴とする請求項１に記載の保安アルゴリズム回路。
【請求項６】
前記入力データをデュアルバッファリングする入力バッファ；および
前記出力データをデュアルバッファリングする出力バッファ；
をさらに含むことを特徴とする請求項５に記載の保安アルゴリズム回路。
【請求項７】
一つのクロック信号に応答して第１のポートを介してデータを出力し、同時に第２のポートを介してデータが入力されるＳボックス；
前記Ｓボックスの第１のポートを介して、読み出し動作のためのアドレスを提供し、前記Ｓボックスからデータが入力される読み出し制御ロジック；
前記読み出し制御ロジックから出力されたアドレス及び前記Ｓボックスから出力されたデータを貯蔵するレジスタ；および
前記レジスタに貯蔵されたアドレス及びデータが入力され、前記Ｓボックスの第２のポートを介して書き込み動作のためのアドレスとデータとを提供する書き込み制御ロジック；
を含むことを特徴とする保安アルゴリズム回路。
【請求項８】
前記Ｓボックスは、デュアルポートＳＲＡＭであること
を特徴とする請求項７に記載の保安アルゴリズム回路。
【請求項９】
前記読み出し制御ロジックは、第１のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で読み出し動作を実行すること
を特徴とする請求項７に記載の保安アルゴリズム回路。
【請求項１０】
前記読み出し制御ロジックは、キーレジスタで提供されるキーデータ、前記Ｓボックスから出力されるデータ、そして前記レジスタで提供されるアドレスが入力され、前記Ｓボックスの第１のポートに提供される第１のアドレスを求めること
を特徴とする請求項９に記載の保安アルゴリズム回路。
【請求項１１】
前記読み出し制御ロジックは、前記第１のアドレスと前記レジスタで提供されるアドレスとが同一な場合には、前記Ｓボックスを読み出さず前記レジスタからデータが入力されること
を特徴とする請求項１０に記載の保安アルゴリズム回路。
【請求項１２】
前記読み出し制御ロジックは、前記第１のアドレス又は順次に増加する第２のアドレスを選択的に前記Ｓボックスの第１のポートに提供すること
を特徴とする請求項１０に記載の保安アルゴリズム回路。
【請求項１３】
前記書き込み制御ロジックは、前記第１のキーセットアップ信号より所定のクロックだけ遅延された第２のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で書き込み動作を実行すること
を特徴とする請求項１０に記載の保安アルゴリズム回路。
【請求項１４】
前記読み出し制御ロジックは、第１の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で読み出し動作を実行すること
を特徴とする請求項７に記載の保安アルゴリズム回路。
【請求項１５】
前記読み出し制御ロジックは、前記Ｓボックスから出力されるデータ及び前記レジスタで提供されるアドレスが入力され、前記Ｓボックスの第１のポートに提供される第１のアドレスを求めること
を特徴とする請求項１４に記載の保安アルゴリズム回路。
【請求項１６】
前記読み出し制御ロジックは、前記第１のアドレスと前記レジスタで提供されるアドレスとが同一な場合には、前記Ｓボックスを読み出さず前記レジスタからデータが入力されること
を特徴とする請求項１５に記載の保安アルゴリズム回路。
【請求項１７】
前記読み出し制御ロジックは、前記第１のアドレス又は順次に増加する第２の読み出しアドレスを選択的に前記Ｓボックスの第１のポートに提供すること
を特徴とする請求項１５に記載の保安アルゴリズム回路。
【請求項１８】
前記書き込み制御ロジックは、前記第１の暗号化信号より所定のクロックだけ遅延された第２の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で書き込み動作を実行すること
を特徴とする請求項１４に記載の保安アルゴリズム回路。
【請求項１９】
保安アルゴリズム回路のデータ暗号化方法であって、
ａ）読み出し制御ロジックがＳボックスの第１のポートを介して読み出し動作のためのアドレスを提供し、前記Ｓボックスは、前記第１のポートからデータを出力する段階；
ｂ）前記読み出し制御ロジックで提供されたアドレス及び前記Ｓボックスから出力されたデータをレジスタに貯蔵する段階；および
ｃ）書き込み制御ロジックが前記レジスタに貯蔵されたアドレス及びデータが入力され、前記Ｓボックスの第２のポートを介して書き込み動作のためのアドレスとデータとを提供する段階；
を含み、
前記Ｓボックスは、前記第２のポートを介してデータが入力され、同時に前記第１のポートを介してデータを出力すること
を特徴とするデータ暗号化方法。
【請求項２０】
前記Ｓボックスは、デュアルポートＳＲＡＭであること
を特徴とする請求項１９に記載のデータ暗号化方法。
【請求項２１】
前記段階ａ）は、第１のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で読み出し動作を実行する段階であること
を特徴とする請求項１９に記載のデータ暗号化方法。
【請求項２２】
前記読み出し制御ロジックは、キーレジスタで提供されるキーデータ、前記Ｓボックスから出力されるデータ、そして前記レジスタで提供されるアドレスが入力され、前記Ｓボックスの第１のポートに提供される第１のアドレスを求めること
を特徴とする請求項２１に記載のデータ暗号化方法。
【請求項２３】
前記読み出し制御ロジックは、前記第１のアドレスと前記レジスタで提供されるアドレスとが同一な場合には、前記Ｓボックスを読み出さず前記レジスタからデータが入力されること
を特徴とする請求項２２に記載のデータ暗号化方法。
【請求項２４】
前記読み出し制御ロジックは、前記第１のアドレス又は順次に増加する第２のアドレスを選択的に前記Ｓボックスの第１のポートに提供すること
を特徴とする請求項２２に記載のデータ暗号化方法。
【請求項２５】
前記段階ｃ）は、前記第１のキーセットアップ信号より所定のクロックだけ遅延された第２のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で書き込み動作を実行する段階であること
を特徴とする請求項２１に記載のデータ暗号化方法。
【請求項２６】
前記段階ａ）は、第１の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で読み出し動作を実行する段階であること
を特徴とする請求項１９に記載のデータ暗号化方法。
【請求項２７】
前記読み出し制御ロジックは、前記Ｓボックスから出力されるデータ及び前記レジスタで提供されるアドレスが入力され、前記Ｓボックスの第１のポートに提供される第１のアドレスを求めること
を特徴とする請求項２６に記載のデータ暗号化方法。
【請求項２８】
前記読み出し制御ロジックは、前記第１のアドレスと前記レジスタで提供されるアドレスとが同一な場合には、前記Ｓボックスを読み出さず前記レジスタからデータが入力されること
を特徴とする請求項２７に記載のデータ暗号化方法。
【請求項２９】
前記読み出し制御ロジックは、前記第１のアドレス又は順次に増加する第２の読み出しアドレスを選択的に前記Ｓボックスの第１のポートに提供すること
を特徴とする請求項２７に記載のデータ暗号化方法。
【請求項３０】
前記段階ｃ）は、前記第１の暗号化信号より所定のクロックだけ遅延された第２の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で書き込み動作を実行する段階であること
を特徴とする請求項２６に記載のデータ暗号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、保安アルゴリズム回路に係り、より詳しくは、ＲＣ４アルゴリズムをハードウェアで実現した保安アルゴリズム回路及びデータ暗号化方法に関する。
【背景技術】
【０００２】
一般に、暗号化方式は、キーの公開可否によって公開キー方式と秘密キー方式とに分けられる。公開キー方式は、暗号化キーと復号化キーとを異にする代わりに両者のうちの一つのキーを公開する方式である。公開キー方式は、キー管理面では効率的であるが、暗号化及び復号化速度が遅いという短所がある。一方、秘密キー方式は、暗号化キーと復号化キーとを同一にする代わりにこれらを公開にしない方式である。秘密キー方式は、キー管理面では、多少非効率的であるが、暗号化及び復号化速度が早く、実現が容易であるという長所がある。そして、秘密キー方式は、暗号化の基本単位によってブロック暗号化方式とストリーム暗号化方式とに分類される。ストリーム暗号化方式は、ビット列に入力される普通文データをビット単位に暗号化する方式である。ストリーム暗号化方式は、安全性は脆弱であるが、高速アルゴリズムに適する。ストリーム暗号化方式の代表的な例がＲＣ４方式である。
【０００３】
図１は、ＲＣ４アルゴリズムを示す順序図である。図１に示されたＲＣ４アルゴリズムは、特許文献１（以下、‘１８５’特許）及び特許文献２（以下、‘６２２’特許）などに掲載されている。
【０００４】
ＲＣ４アルゴリズムは、データを暗号化するのに使用する擬似−乱数を作るためＳボックスを使用する。図１に示されたＲＣ４アルゴリズムは、Ｓボックスを初期化する段階（Ｓ１００）、Ｓボックスをセットアップする段階（Ｓ２００）、そして擬似−乱数を作り、暗号化段階（Ｓ３００）からなる。
【０００５】
段階Ｓ１００は、Ｓボックスのアドレス（ｉ）とデータ（Ｓ[ｉ]）とを同一に配列する過程である。すなわち、 Ｓ[０]＝０、 Ｓ[１]＝１、… 、Ｓ[２５５]＝２５５になる。段階Ｓ２００は、第２２のライン〜第２４のラインが２５６回反復されながらＳボックスを混ぜっ返す過程である。すなわち、Ｓ[ｉ]データ及びＫ[ｋ]キーデータを使用してｊアドレスを求め、Ｓ[ｉ]データ及びＳ[ｊ]データをスワップ演算してＳボックスを混ぜっ返す。段階Ｓ３００は、擬似−乱数（ｘ）を作り、外部から入力される入力データ（Ｄｉｎ）とＳボックスから出力されたデータＳ[ｘ]とをＸＯＲ演算して暗号化された出力データ（Ｄｏｕｔ）を生成する過程である。段階Ｓ３００で、Ｓボックスのスワップ演算は、１バイトの暗号化が実行される時ごとに１回ずつ起こる。段階Ｓ３００は、スワップ演算に使用されるｊアドレスを求める過程とスワップ演算後に擬似−乱数（ｘ）を求め、ＳボックスでＳ[ｘ]を読み出す過程とを除外すれば、概して段階Ｓ２００と類似である。
【０００６】
図１を参照すれば、段階Ｓ２００の第２２のライン〜第２４のラインを１回実行するが、４回の読み出し又は書き込み動作が実行される。すなわち、先ずＳボックスのｉアドレスでＳ[ｉ]データを読み出さなければならない。そしてＳ[ｉ]データについてデータ依存性があるｊアドレスを求め、ｊアドレスからＳ[ｊ]データを読み出さなければならない。そしてｊアドレスにＳ[ｉ]データを書き込み、最後にｉアドレスにＳ[ｊ]データを書き込まれなければならない。
【０００７】
ここで、第２２のライン〜第２４のラインをハードウェアで実現しようとするとき、実行時間に影響を与える要素は、Ｓ[ｉ]データ及びＳ[ｊ]データを読み出し書き込む時間である。従って、Ｓボックスでデータを読み出すか、或いはＳボックスにデータを書き込むことにかかる時間はどんなＳボックスを使用するかによって変わる。
【０００８】
例えば、シングルポートＳＲＡＭ（Ｓｉｎｇｌｅ  Ｐｏｒｔ  ＳＲＡＭ；ＳＰＳＲＡＭ）をＳボックスとして使用する場合には、第２２のライン〜第２４のラインを実行するのに４クロックが必要である。すなわち、Ｓ[ｉ]データを読み出し、Ｓ[ｊ]データを読み出し、Ｓ[ｉ]データを書き込み、Ｓ[ｊ]データを書き込む場合にそれぞれ一つのクロックが必要であるためである。また、デュアルポートＳＲＡＭ（Ｄｕａｌ  Ｐｏｒｔ  ＳＲＡＭ；ＤＰＳＲＡＭ）をＳボックスとして使用する場合には、Ｓ[ｊ]データがＳ[ｉ]データに依存して求められるので、通常３クロックが必要である。すなわち、Ｓ[ｉ]データを読み出す場合に一つのクロックが必要であり、Ｓ[ｊ]データを読み出す場合に一つのクロックが必要であり、Ｓ[ｉ]データ及びＳ[ｊ]データを書きこむ場合に一つのクロックが必要である。
【０００９】
しかしながら、ＲＣ４アルゴリズムでは、第２２のライン〜第２４のラインは２５６回反復して実行される。従って、一回のループで一つのクロックを減らすことは全体の実行時間及び動作速度に大きな影響を及ぼすようになる。前述した例で、シングルポートＳＲＡＭをＳボックスとして使用する場合には、段階Ｓ２００を実行するのに合計１０２４クロックが必要であり、デュアルポートＳＲＡＭをＳボックスとして使用する場合には合計７６８クロックが必要である。
【００１０】
特に、ＲＣ４アルゴリズムでＳボックスをセットアップする段階のクロック数を減らすことは非常に重要な意味がある。例えば、ＩＥＥＥ８０２．１１ｇ−ＯＦＤＭのような規格で、フレームのボディーが伝送される前まで費やされる時間は約１２．５μＳである。この時間内にＳボックスをセットアップし、初期ボディーデータを準備しなければならない。しかしながら、シングルポートＳＲＡＭを使用する従来の保安アルゴリズム回路又はデュアルポートＳＲＡＭを使用する従来のデータ暗号化方法は、データ依存性によって多クロック数を必要にする。従って、所定の時間内にＳボックスをセットアップし、初期ボディーデータを準備する場合には時間が不足するという問題点がある。
【００１１】
また、従来のＲＣ４アルゴリズムを実現した保安アルゴリズム回路は‘１８５特許’及び‘６２２特許’で示すように一つの有限状態マシン（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ；ＦＳＭ）を使用している。従って、デュアルポートメモリをＳボックスとして使用しようとするとき、従来の保安アルゴリズム回路は、一つの有限状態マシンで二つのポートを全て制御しなければならないので設計が複雑になり、これをハードウェアに実現しにくいという問題点がある。
【特許文献１】米国公開特許第２００３／００９１１８５号
【特許文献２】米国特許第６、５４９、６２２号
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の技術的課題は、デュアルポートメモリをＳボックスとして使用するとき設計が簡単で実現が容易であり、クロック数を顕著に減らすことができる保安アルゴリズム回路及びデータ暗号化方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明に従う保安アルゴリズム回路は、第１及び第２のポートを有するＳボックスと、第１のポートに連結され、Ｓボックスの読み出し動作を制御する読み出し制御ロジックと、読み出し制御ロジックから出力されたアドレス及びＳボックスから出力されたデータを貯蔵するレジスタと、第２のポートに連結され、レジスタに貯蔵されたアドレス及びデータが入力され、Ｓボックスの書き込み動作を制御する書き込み制御ロジックと、を含み、Ｓボックスは、書き込み制御ロジックの制御によってデータが入力され、同時に読み出し制御ロジックの制御によってデータを出力することを特徴とする。
【００１４】
この実施形態において、Ｓボックスは、デュアルポートＳＲＡＭであることを特徴とする。
【００１５】
この実施形態において、読み出し制御ロジックは、第１のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で読み出し動作を実行し、第１の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で読み出し動作を実行することを特徴とする。
【００１６】
この実施形態において、書き込み制御ロジックは、第１のキーセットアップ信号より所定のクロックだけ遅延された第２のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で書き込み動作を実行し、第２の暗号化信号より所定のクロックだけ遅延された第２の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で書き込み動作を実行することを特徴とする。
【００１７】
この実施形態において、保安アルゴリズム回路は、外部から入力される入力データ及びレジスタで提供されるデータをＸＯＲ演算して暗号化された出力データを生成するＸＯＲゲートをさらに含むことを特徴とする。
【００１８】
本発明に従う保安アルゴリズム回路の他の一面は、一つのクロック信号に応答して第１のポートを介してデータを出力し、同時に第２のポートを介してデータが入力されるＳボックスと、Ｓボックスの第１のポートを介して、読み出し動作のためのアドレスを提供し、Ｓボックスからデータが入力される読み出し制御ロジックと、読み出し制御ロジックから出力されたアドレス及びＳボックスから出力されたデータを貯蔵するレジスタと、レジスタに貯蔵されたアドレス及びデータが入力され、Ｓボックスの第２のポートを介して書き込み動作のためのアドレスとデータとを提供する書き込み制御ロジックと、を含む。
【００１９】
この実施形態において、Ｓボックスは、デュアルポートＳＲＡＭであることを特徴とする。
【００２０】
この実施形態において、読み出し制御ロジックは、第１のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で読み出し動作を実行することを特徴とする。
【００２１】
この実施形態において、読み出し制御ロジックは、キーレジスタで提供されるキーデータ、Ｓボックスから出力されるデータ、そしてレジスタで提供されるアドレスが入力され、Ｓボックスの第１のポートに提供される第１のアドレスを求めることを特徴とする。
【００２２】
この実施形態において、読み出し制御ロジックは、第１のアドレス又は順次に増加する第２のアドレスを選択的にＳボックスの第１のポートに提供することを特徴とする。
【００２３】
この実施形態において、書き込み制御ロジックは、第１のキーセットアップ信号より所定のクロックだけ遅延された第２のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で書き込み動作を遂行することを特徴とする。
【００２４】
この実施形態において、読み出し制御ロジックは、第１の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で読み出し動作を実行することを特徴とする。
【００２５】
この実施形態において、読み出し制御ロジックは、Ｓボックスから出力されるデータ及びレジスタで提供されるアドレスが入力され、Ｓボックスの第１のポートに提供される第１のアドレスを求めることを特徴とする。
【００２６】
この実施形態において、読み出し制御ロジックは、第１のアドレス又は順次に増加する第２の読み出しアドレスを選択的にＳボックスの第１のポートに提供することを特徴とする。
【００２７】
この実施形態において、書き込み制御ロジックは、第１の暗号化信号より所定のクロックだけ遅延された第２の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で書き込み動作を実行することを特徴とする。
【００２８】
本発明に従う保安アルゴリズム回路のデータ暗号化方法は、ａ）読み出し制御ロジックがＳボックスの第１のポートを介して読み出し動作のためのアドレスを提供し、Ｓボックスは、第１のポートからデータを出力する段階と、ｂ）読み出し制御ロジックで提供されたアドレス及びＳボックスから出力されたデータをレジスタに貯蔵する段階と、ｃ）書き込み制御ロジックがレジスタに貯蔵されたアドレス及びデータが入力され、Ｓボックスの第２のポートを介して書き込み動作のためのアドレスとデータとを提供する段階と、を含み、Ｓボックスは、第２のポートを介してデータが入力され、同時に第１のポートを介してデータを出力することを特徴とする。
【００２９】
この実施形態において、Ｓボックスは、デュアルポートＳＲＡＭであることを特徴とする。
【００３０】
この実施形態において、段階ａ）は、第１のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で読み出し動作を実行する段階であることを特徴とする。
【００３１】
この実施形態において、読み出し制御ロジックは、キーレジスタで提供されるキーデータ、Ｓボックスから出力されたデータ、そしてレジスタで提供されるアドレスが入力され、Ｓボックスの第１のポートに提供される第１のアドレスを求めることを特徴とする。
【００３２】
この実施形態において、読み出し制御ロジックは、第１のアドレス又は順次に増加する第２のアドレスを選択的にＳボックスの第１のポートに提供することを特徴とする。
【００３３】
この実施形態において、段階ｃ）は、第１のキーセットアップ信号より所定のクロックだけ遅延された第２のキーセットアップ信号に応答してＲＣ４アルゴリズムのキーセットアップ段階で書き込み動作を実行する段階であることを特徴とする。
【００３４】
この実施形態において、段階ａ）は、第１の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で読み出し動作を実行する段階であることを特徴とする。
【００３５】
この実施形態において、読み出し制御ロジックは、Ｓボックスから出力されるデータ及びレジスタで提供されるアドレスが入力され、Ｓボックスの第１のポートに提供される第１のアドレスを求めることを特徴とする。
【００３６】
この実施形態において、読み出し制御ロジックは、第１のアドレス又は順次に増加する第２の読み出しアドレスを選択的にＳボックスの第１のポートに提供することを特徴とする。
【００３７】
この実施形態において、段階ｃ）は、第１の暗号化信号より所定のクロックだけ遅延された第２の暗号化信号に応答してＲＣ４アルゴリズムの暗号化段階で書き込み動作を実行する段階であることを特徴とする。
【発明の効果】
【００３８】
本発明に従う保安アルゴリズム回路は、読み出し制御ロジックと書き込み制御ロジックを別に備えているので保安アルゴリズムの設計が容易である。そして、本発明に従う保安アルゴリズム回路及びデータ暗号化方法は、デュアルポートＳＲＡＭを使用してパイプライン方式で動作するので従来に比べてクロック数を顕著に減らすことができる。
【発明を実施するための最良の形態】
【００３９】
以下、当業者が本発明の技術的思想を容易に実施できる程度に説明するために、添付した図面を参照して本発明の好適な実施形態を詳細に説明する。
【００４０】
図２は、本発明の好適な実施形態による保安アルゴリズム回路を示すブロック図である。図２に示された保安アルゴリズム回路２００は、図１に示されたＲＣ４アルゴリズムでＳボックスをセットアップする段階（Ｓ２００）及び暗号化する段階（Ｓ３００）をハードウェアで実現したものである。しかしながら、本発明に従う保安アルゴリズム回路２００は、図１に示されたＲＣ４アルゴリズムのみに限定されるものではなく、データ依存性を有するアルゴリズムに容易に適用できる。ここで、データ依存性とは、図１の段階Ｓ２００及び段階Ｓ３００で示すようにＳ[ｊ]データを求めるためには、必ずそれ以前にＳ[ｉ]データが求められなければならないＳ[ｉ]データとＳ[ｊ]データとの相関関係を言う。
【００４１】
図２を参照すれば、保安アルゴリズム回路２００は、ＭＡＣコントローラ１００によって制御され、デュアルポートＳＲＡＭ２１０と、読み出し制御ロジック２２０と、書き込み制御ロジック２３０と、レジスタ２４０と、インターフェース部２５０と、ＸＯＲゲート２６０と、を含む。
【００４２】
デュアルポートＳＲＡＭ２１０は、第１及び第２のポートを有し、内部に状態表（図示せず）を有しているＳボックスである。デュアルポートＳＲＡＭ２１０の状態表には、２５６バイトのサイズのデータが貯蔵されている。デュアルポートＳＲＡＭ２１０は、相異なる二つのアドレスポート（ＡＤＤＲ１、ＡＤＤＲ２）、制御ポート（ＣＴＲＬ１、ＣＴＲＬ２）、そしてデータポート（ＤＡＴＡ１、ＤＡＴＡ２）を有している。デュアルポートＳＲＡＭ２１０は、一つのクロック信号に応答して第１のデータポート（ＤＡＴＡ１）を介してデータを出力し、同時に第２のデータポート（ＤＡＴＡ２）を介してデータが入力される。
【００４３】
読み出し制御ロジック２２０は、デュアルポートＳＲＡＭ２１０の第１のポートに連結され、デュアルポートＳＲＡＭ２１０の読み出し動作を制御する。読み出し制御ロジック２２０は、第１のキーセットアップ信号（ＫＳＰ１）に応答して図１に示されたＲＣ４アルゴリズムのキーセットアップ段階（Ｓ２００）で読み出し動作を実行し、第１の暗号化信号（ＣＰＨ１）に応答してＲＣ４アルゴリズムの暗号化段階（Ｓ３００）で読み出し動作を実行する。読み出し制御ロジック２２０の内部構成及び動作原理は、後述する図３で詳細に説明される。
【００４４】
書き込み制御ロジック２３０は、デュアルポートＳＲＡＭ２１０の第２のポートに連結され、デュアルポートＳＲＡＭ２１０の書き込み動作を制御する。書き込み制御ロジック２３０は、第１のキーセットアップ信号（ＫＳＰ１）より二つクロックだけ遅延された第２のキーセットアップ信号（ＫＳＰ２）に応答してＲＣ４アルゴリズムのキーセットアップ段階（Ｓ２００）で書き込み動作を実行し、第１の暗号化信号（ＣＰＨ１）より二つクロックだけ遅延された第２の暗号化信号（ＣＰＨ２）に応答してＲＣ４アルゴリズムの暗号化段階（Ｓ３００）で書き込み動作を実行する。書き込み制御ロジック２３０の内部構成及び動作原理は後述する図３で詳細に説明される。
【００４５】
レジスタ２４０は、読み出し制御ロジック２２０と書き込み制御ロジック２３０との間に連結され、読み出し制御ロジック２２０から出力されたアドレス（ＡＤＤＲ１）及びデュアルポートＳＲＡＭ２１０から出力されたデータ（ＤＡＴＡ１）を貯蔵する。レジスタ２４０に貯蔵されたアドレス及びデータは、書き込み制御ロジック２３０の制御によってデュアルポートＳＲＡＭ２１０の第２のポートに入力される。レジスタ２４０の内部構成及び動作原理は、後述する図３で詳細に説明される。
【００４６】
インターフェース部２５０は、ＭＡＣコントローラ１００からキーセットアップ信号（ＫＳＰ）、暗号化信号（ＣＰＨ）など、保安アルゴリズム回路２００の全般的な動作を制御するための制御信号とデータ（ＤＩＮｘ）が入力され、ＭＡＣコントローラ１００に暗号化されたデータ（ＤＯＵＴｘ）を提供する。
【００４７】
インターフェース部２５０は、図１に示されたＲＣ４アルゴリズムのキーセットアップ段階（Ｓ２００）でＭＡＣコントローラ１００からキーセットアップ信号（ＫＳＰ）が入力され、読み出し制御ロジック２２０に第１のキーセットアップ信号（ＫＳＰ１）を提供し、書き込み制御ロジック２３０に第１のキーセットアップ信号（ＫＳＰ１）より二つクロックだけ遅延された第２のキーセットアップ信号（ＫＳＰ２）を提供する。
【００４８】
インターフェース部２５０は、ＲＣ４アルゴリズムの暗号化段階（Ｓ３００）でＭＡＣコントローラ１００から暗号化信号（ＣＰＨ）が入力され、読み出し制御ロジック２２０に第１の暗号化信号（ＣＰＨ１）を提供し、書き込み制御ロジック２３０に第１の暗号化信号（ＣＰＨ１）より二つクロックだけ遅延された第２の暗号化信号（ＣＰＨ２）を提供する。
【００４９】
インターフェース部２５０は、内部にキーレジスタ（図示せず）を含み、読み出し制御ロジックにキーデータ（Ｋ[ｋ]）を提供する。
【００５０】
一方、インターフェース部２５０は、ＭＡＣコントローラ１００で提供されるデータ（ＤＩＮｘ）が入力され、保安アルゴリズム回路２００の内部に入力データ（Ｄｉｎ）を提供する入力バッファ２５１と、保安アルゴリズム回路２００の内部で提供される出力データ（Ｄｏｕｔ）が入力され、ＭＡＣコントローラ１００に暗号化されたデータ（ＤＯＵＴｘ）を提供する出力バッファ２５２と、を含む。
【００５１】
入力バッファ２５１及び出力バッファ２５２は、それぞれ二つのバッファからなったデュアルバッファ構造を有する。すなわち、第１の入力バッファ（図示せず）及び第１の出力バッファ（図示せず）でデータ暗号化動作を実行する間に、第２の入力バッファ（図示せず）を介して新しいデータが入力されるか、或いは第２の出力バッファ（図示せず）を介して暗号化されたデータを出力できる。これにより、データ入力、データ暗号化動作、データ出力の間にオーバーラッピングが可能になって保安アルゴリズム回路２００の性能を高めることができる。
【００５２】
ＸＯＲゲート２６０は、図１に示されたＲＣ４アルゴリズムの暗号化段階（Ｓ３００）でライン３７を実行する。すなわち、ＸＯＲゲート２６０は、入力バッファ２５１で提供される入力データ（Ｄｉｎ）とレジスタ２４０で提供される擬似−乱数データ（Ｓ[ｘ]）をＸＯＲ演算し、暗号化された出力データ（Ｄｏｕｔ）を出力バッファ２５２に提供する。
【００５３】
本発明に従う保安アルゴリズム回路２００は、第１のポートを介してデータを出力し、第２のポートを介してデータが入力されるデュアルポートＳＲＡＭ２１０と、デュアルポートＳＲＡＭ２１０の第１のポートに連結される読み出し制御ロジック２２０と、第２のポートに連結される書き込み制御ロジック２３０と、読み出し制御ロジック２２０から出力されたアドレスとデュアルポートＳＲＡＭ２１０から出力されたデータを貯蔵するレジスタ２４０と、を含む。このような構成を有する本発明に従う保安アルゴリズム回路２００は、読み出し制御ロジック２２０と書き込み制御ロジック２３０が分離されていてＲＣ４アルゴリズムを設計することが容易であるだけではなく、読み出し動作と書き込み動作とを同時に実行できるのでクロック数を減らすことができる長所がある。
【００５４】
図３は、図２に示された保安アルゴリズム回路の読み出し制御ロジック、書き込み制御ロジック、そしてレジスタの内部構成を詳細に示すブロック図である。
【００５５】
図３を参照すれば、読み出し制御ロジック２２０は、読み出し有限状態マシン（Ｒｅａｄ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ；Ｒ＿ＦＳＭ）２２１と、加算器２２２と、Ｊレジスタ２２３と、Ｉカウンタ２２４と、選択回路２２５と、比較器２２６と、を含む。
【００５６】
読み出し有限状態マシン２２１は、第１のキーセットアップ信号（ＫＳＰ１）及び第１の暗号化信号（ＣＰＨ１）に応答してデュアルポートＳＲＡＭ２１０の読み出し動作を制御する。読み出し有限状態マシン２２１の動作は、後述する図４の状態図を参照して詳細に説明される。
【００５７】
加算器２２２は、図１に示されたＲＣ４アルゴリズムのキーセットアップ段階（Ｓ２００）でライン２２又は暗号化段階（Ｓ３００）でライン３４及びライン３６を遂行する。加算器２２２は、キーセットアップ段階（Ｓ２００）で第１のキーセットアップ信号（ＫＳＰ１）に応答してキーレジスタで提供されるＫ[ｋ]データ、デュアルポートＳＲＡＭ２１０で提供されるＳ[ｉ]データ、そしてレジスタ２４０で提供されるｊアドレスが入力されて新しいｊアドレスを生成する。新しいｊアドレスは、Ｊレジスタ２２３に提供される。
【００５８】
一方、加算器２２２は、暗号化段階（Ｓ３００）で第１の暗号化信号（ＣＰＨ１）に応答してデュアルポートＳＲＡＭ２１０で提供されるＳ[ｉ]データ、そしてレジスタ２４０で提供されるｊアドレスが入力されて新しいｊアドレスを生成する。新しいｊアドレスは、Jレジスタ２２３に提供される。そして加算器２２２は、レジスタ２４０で提供されるＳ[ｉ]データとＳ[ｊ]データとが入力されて擬似−乱数ｘを生成する。
【００５９】
Ｊレジスタ２２３は、加算器２２２で提供される新しいｊアドレスを貯蔵する。Ｉカウンタ２２４は、ｉアドレスを０から２５５まで順次に増加する。選択回路２２５は、読み出し有限状態マシン２２１の制御によってＪレジスタ２２３で提供されるｊアドレス、Iカウンタ２２４で提供されるｉアドレス、そして加算器２２２で提供されるｘアドレスの中で一つを選択してデュアルポートＳＲＡＭ２１０にアドレス（ＡＤＤＲ１）を提供する。
【００６０】
比較器２２６は、レジスタ２４０で提供されるｊアドレスとＪレジスタ２２３で提供される新しいｊアドレスとを比較して、一致する場合に検出信号を読み出し有限状態マシン２２１に提供する。読み出し有限状態マシン２２１は、比較器２２６で提供される検出信号に応答してデュアルポートＳＲＡＭ２１０を制御してデータが出力されないようにする。これは、レジスタ２４０に貯蔵されたデータとデュアルポートＳＲＡＭ２１０から出力されるデータが同一であるためである。
【００６１】
続けて、図３を参照すれば、レジスタ２４０は、アドレスレジスタ２４１とデータレジスタ２４５とを含む。アドレスレジスタ２４１は、読み出し制御ロジック２２０から出力されたｉアドレス又はｊアドレスを貯蔵する。読み出し制御ロジック２２０から出力されたｊアドレスは、ＰＪレジスタ（ｐｒｅｖｉｏｕｓ  ｊ  ａｄｄｒｅｓｓ  ｒｅｇｉｓｔｅｒ）２４２に貯蔵され、ｉアドレスは、ＰＩレジスタ（ｐｒｅｖｉｏｕｓ  ｉ  ａｄｄｒｅｓｓ  ｒｅｇｉｓｔｅｒ）２４３に貯蔵される。データレジスタ２４５は、デュアルポートＳＲＡＭ２１０から出力されたＳ[ｉ]データ、Ｓ[ｊ]データ、そしてＳ[ｘ]データを貯蔵する。Ｓ[ｉ]データは、Ｓ[ｉ]レジスタ２４６に貯蔵され、Ｓ[ｊ]データは、Ｓ[ｊ]レジスタ２４７に貯蔵され、Ｓ[ｘ]データは、Ｓ[ｘ]レジスタ２４８に貯蔵される。Ｓ[ｘ]データは、読み出し制御ロジック２２０の制御によってＸＯＲゲート２６０に提供される。
【００６２】
続けて図３を参照すれば、書き込み制御ロジック２３０は、書き込み有限状態マシン（Ｗｒｉｔｅ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ；Ｗ＿ＦＳＭ）２３１と、アドレス選択信号２３２と、データ選択回路２３３と、を含む。
【００６３】
書き込み有限状態マシン２３１は、第２のキーセットアップ信号（ＫＳＰ２）及び第２の暗号化信号（ＣＰＨ２）に応答してデュアルポートＳＲＡＭ２１０の書き込み動作を制御する。書き込み有限状態マシン２３１の動作は後述する図５の状態図を参照して詳細に説明される。
【００６４】
アドレス選択回路２３２は、書き込み有限状態マシン２３１の制御によってＰＪレジスタ２４２で提供されるｊアドレスとＰＩレジスタ２４３で提供されるｉアドレスが入力され、これら中で一つを選択してデュアルポートＳＲＡＭ２１０に提供する。
【００６５】
データ選択回路２３３は、書き込み有限状態マシン２３１の制御によってＳ[ｉ]レジスタ２４６で提供されるＳ[ｉ]データと、Ｓ[ｊ]レジスタ２４７で提供されるＳ[ｊ]データとが入力され、これら中で一つを選択してデュアルポートＳＲＡＭ２１０に提供する。
【００６６】
図４は、図３に示された読み出し有限状態マシンの動作を示す状態図である。図４を参照して図１に示されたＲＣ４アルゴリズムのキーセットアップ段階（Ｓ２００）及び暗号化段階（Ｓ３００）で読み出し有限状態マシン２２１の動作を説明する。
【００６７】
休止状態で第１のキーセットアップ信号（ＫＳＰ１）が読み出し有限状態マシン２２１に入力されれば、読み出し有限状態マシン２２１は、それぞれのクロック信号に応答してＳ[ｉ]読み出し動作とＳ[ｊ]読み出し動作とを順次通り実行する。Ｓ[ｊ]読み出し動作状態で、キーセットアップ段階が進行中である場合には、それぞれのクロック信号に応答してＳ[ｉ]読み出し動作とＳ[ｊ]読み出し動作を反復的に実行する。図４で、‘ＫＳＰ１＿ｐｅｒｉｏｄ’は、キーセットアップ段階が進行中であることを意味する。しかしながら、Ｓ[ｊ]読み出し動作状態でキーセットアップ段階が完了されれば、読み出し有限状態マシン２２１は、休止状態になる。図４で‘ＫＳＰ１＿ｄｏｎｅ’は、キーセットアップ段階が完了されたことを意味する。
【００６８】
一方、休止状態で第１の暗号化信号（ＣＰＨ１）が読み出し有限状態マシン２２１に入力されれば、読み出し有限状態マシン２２１は、それぞれのクロック信号に応答してＳ[ｉ]読み出し動作とＳ[ｊ]読み出し動作とを順次通り実行する。Ｓ[ｊ]読み出し動作状態で、暗号化段階が進行中である場合には、それぞれのクロック信号に応答してＳ[ｘ]読み出し動作と、Ｓ[ｉ]読み出し動作と、Ｓ[ｊ]読み出し動作と、を反復的に実行する。図４で、‘ＣＰＨ１＿ｐｅｒｉｏｄ’は、暗号化段階が進行中であることを意味する。Ｓ[ｘ]読み出し動作状態で暗号化段階が完了されれば、読み出し有限状態マシン２２１は休止状態になる。図４で、‘ＣＰＨ１＿ｄｏｎｅ’は、暗号化段階が完了されたことを意味する。
【００６９】
図５は、図３に示された書き込み有限状態マシンの動作を示す状態図である。図５を参照して図１に示されたＲＣ４アルゴリズムのキーセットアップ段階（Ｓ２００）及び暗号化段階（Ｓ３００）で書き込み有限状態マシン２３１の動作を説明する。
【００７０】
休止状態で第２のキーセットアップ信号（ＫＳＰ２）が書き込み有限状態マシン２３１に入力されれば、書き込み有限状態マシン２３１は、それぞれのクロック信号に応答してＳ[ｉ]書き込み動作とＳ[ｊ]書き込み動作とを順次通り実行する。Ｓ[ｊ]書き込み動作状態で、キーセットアップ段階が進行中である場合には、それぞれのクロック信号に応答してＳ[ｉ]書き込み動作とＳ[ｊ]書き込み動作とを反復的に実行する。図５で、‘ＫＳＰ２＿ｐｅｒｉｏｄ’はキーセットアップ段階が進行中であることを意味する。しかしながら、Ｓ[ｊ]書き込み動作状態でキーセットアップ段階が完了されれば、書き込み有限状態マシン２３１は休止状態になる。図５で、‘ＯＰ２＿ｄｏｎｅ’は、キーセットアップ段階又は暗号化段階が完了されたことを意味する。
【００７１】
一方、休止状態で第２の暗号化信号（ＣＰＨ２）が書き込み有限状態マシン２３１に入力されれば、書き込み有限状態マシン２３１は、それぞれのクロック信号に応答してＳ[ｉ]書き込み動作とＳ[ｊ]書き込み動作とを順次通り遂行する。Ｓ[ｊ]書き込み動作状態で、暗号化段階が進行中である場合には、それぞれのクロック信号に応答してＮＯＰ（Ｎｏ  ＯＰｅｒａｔｉｏｎ）と、Ｓ[ｉ]書き込み動作と、Ｓ[ｊ]書き込み動作と、を反復的に実行する。ここで、ＮＯＰは、Ｓ[ｘ]データを出力する場合に該当し、実際に書き込み有限状態マシン２３１の制御によって書き込み動作が実行されない。図５で、‘ＣＰＨ２＿ｐｅｒｉｏｄ’は、暗号化段階が進行中であることを意味する。Ｓ[ｊ]書き込み動作状態で暗号化段階が完了されれば、書き込み有限状態マシン２２１は休止状態になる。
【００７２】
図６は、図２に示された保安アルゴリズム回路の動作を説明するためのタイミング図である。図６は、図１の段階Ｓ２００でライン２２〜ライン２４を２５６回反復する過程を示す。図６を参照すれば、本発明に従う保安アルゴリズム回路は、読み出し及び書き込み動作をパイプライン方式で実行して一つのループごとに平均２クロックが必要であり、従来に比べて全体的にクロック数がかなり減ったことが分かる。以下では保安アルゴリズム回路及びデータ暗号化方法がクロック順序によって詳細に説明される。
【００７３】
第１のクロック信号（ＣＬＫ１）に応答して、保安アルゴリズム回路２００は、デュアルポートＳＲＡＭ２１０のｉ（ｉ＝０）アドレスからＳ[０]データを読み出し、Ｓ[ｉ]レジスタ２４６に貯蔵する。
【００７４】
第２のクロック信号（ＣＬＫ２）に応答して、保安アルゴリズム回路２００は、デュアルポートＳＲＡＭ２１０のｊ１アドレスからＳ[ｊ１]データを読み出し、Ｓ[ｊ]レジスタ２４７に貯蔵する。ここで、ｊ１アドレスはデュアルポートＳＲＡＭ２１０から出力されたＳ[０]データ、キーレジスタで提供されたＫ[０]データ、そしてＰＪレジスタ２４２で提供されたｊ０アドレスを加算し、モジュラ演算（％）した結果である。ここで、ｊ０アドレスは、ＲＣ４アルゴリズムの初期化段階（Ｓ１００）で限定され、ｊ０＝０である。
【００７５】
第３のクロック信号（ＣＬＫ３）に応答して、保安アルゴリズム回路２００は、デュアルポートＳＲＡＭ２１０のｉ（ｉ＝０）アドレスにＳ[ｊ]レジスタ２４７に貯蔵されたＳ[ｊ１]データを書き込み、同時にデュアルポートＳＲＡＭ２１０のｉ（ｉ＝１）アドレスからＳ[１]データを読み出し、Ｓ[ｉ]レジスタ２４６に貯蔵する。ここで、第２のキーセットアップ信号（ＫＳＰ２）は、第１のキーセットアップ信号（ＫＳＰ１）より二つクロックだけ遅延され、第２の暗号化信号（ＣＰＨ２）は、第１の暗号化信号（ＣＰＨ１）より二つクロックだけ遅延された理由が分かる。すなわち、データ書き込み動作は、第３のクロック信号に応答して始めに実行されるためである。
【００７６】
第４のクロック信号（ＣＬＫ４）に応答して、保安アルゴリズム回路２００は、デュアルポートＳＲＡＭ２１０のｊ１アドレスにＳ[ｉ]レジスタ２４６に貯蔵されたＳ[０]データを書き込み、同時にデュアルポートＳＲＡＭ２１０のｊ２アドレスからＳ[ｊ２]データを読み出してＳ[ｊ]レジスタ２４７に貯蔵する。ここで、ｊ２アドレスは、デュアルポートＳＲＡＭ２１０から出力されたＳ[１]データ、キーレジスタで提供されたＫ[１]データ、そしてＰＪレジスタ２４２で提供されたｊ１アドレスを加算し、モジュラ演算（％）した結果である。
【００７７】
第５のクロック信号（ＣＬＫ５）に応答して、保安アルゴリズム回路２００は、デュアルポートＳＲＡＭ２１０のｉ（ｉ＝１）アドレスにＳ[ｊ]レジスタ２４７に貯蔵されたＳ[ｊ２]データを書き込み、同時にデュアルポートＳＲＡＭ２１０のｉ（ｉ＝２）アドレスからＳ[２]データを読み出してＳ[ｉ]レジスタ２４６に貯蔵する。
【００７８】
第６のクロック信号（ＣＬＫ６）に応答して、保安アルゴリズム回路２００は、デュアルポートＳＲＡＭ２１０のｊ２アドレスにＳ[ｉ]レジスタ２４６に貯蔵されたＳ[１]データを書き込み、同時にデュアルポートＳＲＡＭ２１０のｊ３アドレスからＳ[ｊ３]データを読み出してＳ[ｊ]レジスタ２４７に貯蔵する。ここで、ｊ３アドレスは、デュアルポートＳＲＡＭ２１０から出力されたＳ[２]データ、キーレジスタで提供されたＫ[２]データ、そしてＰＪレジスタ２４２で提供されたｊ２アドレスを加算し、モジュラ演算（％）した結果である。
【００７９】
デュアルポートＳＲＡＭ２１０が一つのクロック信号に応答して読み出して書き込むこのような動作は第５１２のクロックまで反復される。
【００８０】
第５１３のクロック信号（ＣＬＫ５１３）に応答して、保安アルゴリズム回路２００はデュアルポートＳＲＡＭ２１０のｉ（ｉ＝２５５）アドレスにＳ[ｊ]レジスタ２４７に貯蔵されたＳ[ｊ２５６]データを書き込む。
【００８１】
第５１４のクロック信号（ＣＬＫ５１４）に応答して、保安アルゴリズム回路２００は、デュアルポートＳＲＡＭ２１０のｊ２５６アドレスにＳ[ｉ]レジスタ２４６に貯蔵されたＳ[２５５]データを書き込む。このような動作によってＲＣ４アルゴリズムのＳボックスセットアップ段階（Ｓ２００）は終了される。
【００８２】
従来のシングルポートＳＲＡＭをＳボックスとして使用する保安アルゴリズム回路は一つのループを実行する場合に４クロックが必要であり、段階Ｓ２００を実行する場合に合計１０２４クロックが必要である。そして、従来のデュアルポートＳＲＡＭをＳボックスとして使用するデータ暗号化方法は、データ依存性によって一つのループを実行する場合に３クロックが必要であり、段階Ｓ２００を実行する場合に合計７６８クロックが必要である。
【００８３】
しかしながら、本発明に従う保安アルゴリズム回路及びデータ暗号化方法は、Ｓ[ｉ]書き込み動作とＳ[ｉ＋１]読み出し動作とを一つのクロックで実行し、Ｓ[ｊｎ]書き込み動作とＳ[ｊ（ｎ＋１）]読み出し動作とを一つのクロックで実行するパイプライン方法を使用することによって一つのループを実行する場合に平均２クロックが必要である。従って、ＲＣ４アルゴリズムの段階２００を実行する場合に合計５１４クロックが必要である。これは、従来のシングルポートＳＲＡＭをＳボックスとして使用する保安アルゴリズム回路に比べれば、合計５１０クロックを減らしたことになる。そして、従来のデュアルポートＳＲＡＭをＳボックスとして使用するデータ暗号化方法に比べれば、合計２５４クロックを減らしたことになる。
【００８４】
また、本発明に従う保安アルゴリズム回路及びデータ暗号化方法によれば、ｊｎアドレスとｊ（ｎ＋１）アドレスとが同一な場合が発生できる。例えば、図６で保安アルゴリズム回路２００は、第６のクロック信号（ＣＬＫ６）に応答してｊ２アドレスにＳ[１]データを書き込み、同時にｊ３アドレスからＳ[ｊ３]データを読み出す。この際、ｊ２＝ｊ３＝７と仮定すれば、保安アルゴリズム回路２００は、７アドレスにＳ[１]データを書き込み、同時に７アドレスからＳ[１]データを読み出すようになる。しかしながら、デュアルポートＳＲＡＭ２１０で読み出すＳ[１]データは、Ｓ[ｉ]レジスタ２４６に貯蔵されているので、デュアルポートＳＲＡＭ２１０で読み出す動作は不要になる。従って、本発明に従う保安アルゴリズム回路２００は、書き込もうとするｊアドレスと読み出そうとするｊアドレスとを比較して、同一な場合に読み出し動作が省略される。
【００８５】
本発明に従う保安アルゴリズム回路は、図１に示されたＲＣ４アルゴリズムのようにデータ依存性を有するアルゴリズムに容易に適用できる。本発明に従う保安アルゴリズム回路は、デュアルポートを有するメモリとパイプライン方式とを使用してデータ読み出し及び書き込みを効率的に実行することによってクロック数を減らすことができる。
【００８６】
本発明に従う保安アルゴリズム回路は、読み出し制御ロジックと書き込み制御ロジックとが区分されているのでＲＣ４アルゴリズムのような保安アルゴリズムを設計しやすい長所がある。そして本発明に従う保安アルゴリズム回路は、デュアルポートメモリを使用するので、ゲートカウントの側面で大きい利得があり、またＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）プロトタイピングで実現制限なしに使用できる。
【００８７】
なお、本発明の詳細な説明ではデータ暗号化方法について説明したが、本発明に従う保安アルゴリズム回路はデータ復号化方法に関しても同一な原理が適用できる。また、本発明に従う保安アルゴリズム回路は本発明の範囲から外れない限度内で多様な変形が可能なことは勿論である。従って、本発明の範囲は、前述した実施形態に限定されて決められてはならず、特許請求の範囲のみならず、特許請求の範囲と均等な内容によって決められるべきである。
【図面の簡単な説明】
【００８８】
【図１】ＲＣ４アルゴリズムを示す順序図である。
【図２】本発明の好適な実施形態による保安アルゴリズム回路を示すブロック図である。
【図３】図２に示された保安アルゴリズム回路を詳細に示すブロック図である。
【図４】図３に示された読み出し有限状態マシンの動作を示す状態図である。
【図５】図３に示された書き込み有限状態マシンの動作を示す状態図である。
【図６】図３に示された保安アルゴリズム回路の動作を説明するためのタイミング図である。
【符号の説明】
【００８９】
１００  ＭＡＣコントローラ
２００  保安アルゴリズム回路
２１０  デュアルポートＳＲＡＭ
２２０  読み出し制御ロジック
２３０  書き込み制御ロジック
２４０  レジスタ
２４１  有限状態マシン
２５０  インターフェース部
２５１  入力バッファ
２５２  出力バッファ
２６０  ＸＯＲゲート
【図１】
2006238438.tif 000003
【図２】
2006238438.tif 000004
【図３】
2006238438.tif 000005
【図４】
2006238438.tif 000006
【図５】
2006238438.tif 000007
【図６】
2006238438.tif 000008