(57)【特許請求の範囲】
【請求項１】
暗号化／復号化装置の暗号化または復号化動作に必要なラウンドキーを生成するキースケジュラにおいて、
ロードイネーブル信号とクロック信号とに応答して、演算キーデータと保存キーデータのうちいずれか一つを入力キーデータとして受信して保存し、保存された前記入力キーデータを前記保存キーデータとして出力するキー保存部と、
演算制御信号に応答して前記保存キーデータを演算し、その演算結果として前記演算キーデータを出力するキー演算部と、
出力制御信号に応答して、各ラウンド毎に前記入力キーデータと前記保存キーデータのうち一部を選択して、暗号ラウンドキーまたは復号ラウンドキーとして出力するキー出力部と、を備え、
前記キー保存部は、
前記ロードイネーブル信号に応答して、前記演算キーデータと前記保存キーデータのうちいずれか一つを前記入力キーデータとしてそれぞれ出力するロードイネーブル回路と、
前記クロック信号に応答して、前記ロードイネーブル回路から受信される前記入力キーデータをそれぞれ保存し、保存された前記入力キーデータを前記保存キーデータとしてそれぞれ出力するレジスタと、を備え、
前記レジスタの全体のサイズは、各ラウンド毎に前記キー出力部から出力される前記暗号ラウンドキー又は前記復号ラウンドキーのサイズよりも大きいことを特徴とするキースケジュラ。
【請求項２】
前記キー保存部は、外部から初期キーデータが受信される時、前記ロードイネーブル信号と前記クロック信号とに応答して前記初期キーデータを保存し、保存された前記初期キーデータを前記保存キーデータとして出力することを特徴とする請求項１に記載のキースケジュラ。
【請求項３】
前記初期キーデータのそれぞれはＮ（Ｎは自然数）ビットであり、
受信される前記初期キーデータの大きさによって、前記キー出力部から出力される前記暗号ラウンドキーの個数及び前記復号ラウンドキーの個数、前記キー演算部により行われる演算動作の反復回数が決定されることを特徴とする請求項２に記載のキースケジュラ。
【請求項４】
前記キー演算部は、前記演算制御信号に応答して、前記初期キーデータの全体ビット数がＪ（Ｊは、前記Ｎより大きい自然数）ビットである時、前記演算動作をＲ（Ｒは、前記Ｎより小さい自然数）回反復的に行い、前記初期キーデータの全体ビット数がＫ（Ｋは、前記Ｊより大きい自然数）ビットである時、前記演算動作をＳ（Ｓは、前記Ｒより大きく、前記Ｎより小さい自然数）回反復的に行い、前記初期キーデータの全体ビット数がＬ（Ｌは、前記Ｋより大きい自然数）ビットである時、前記演算動作をＴ（Ｔは、前記Ｓより大きく、前記Ｎより小さい自然数）回反復的に行うことを特徴とする請求項３に記載のキースケジュラ。
【請求項５】
前記キー出力部は、前記出力制御信号に応答して、前記初期キーデータの全体ビット数が前記Ｊビットである時、それぞれ前記Ｊビットを含む前記Ｒ個の前記暗号ラウンドキーまたは前記復号ラウンドキーを順次に発生させ、前記初期キーデータの全体ビット数が前記Ｋビットである時、それぞれ前記Ｊビットを含む前記Ｓ個の前記暗号ラウンドキーまたは前記復号ラウンドキーを順次に発生させ、前記初期キーデータの全体ビット数がＬビットである時、それぞれ前記Ｊビットを含む前記Ｔ個の前記暗号ラウンドキーまたは前記復号ラウンドキーを順次に発生させることを特徴とする請求項４に記載のキースケジュラ。
【請求項６】
前記キー出力部は、前記出力制御信号に応答して、前記Ｒ番目または前記Ｓ番目または前記Ｔ番目に出力した前記暗号ラウンドキーを、一番目ラウンドの前記復号ラウンドキーとして出力することを特徴とする請求項１に記載のキースケジュラ。
【請求項７】
前記キー演算部は、前記演算動作を前記初期キーデータの全体ビット数が前記Ｊビットである時に２Ｒ回、前記初期キーデータの全体ビット数が前記Ｋビットである時に２Ｓ回、前記初期キーデータの全体ビット数が前記Ｌビットである時に２Ｔ回それぞれ反復的に行うことを特徴とする請求項１に記載のキースケジュラ。
【請求項８】
前記キー演算部が前記演算動作をＲ−１回またはＳ−１回またはＴ−１回反復的に行う間に、前記キー出力部はディセーブルされ、前記キー演算部が前記Ｒ回目または前記Ｓ回目または前記Ｔ回目前記演算動作を行う時、前記キー出力部がイネーブルされて、前記復号ラウンドキーの出力動作を始めることを特徴とする請求項１に記載のキースケジュラ。
【請求項９】
前記初期キーデータの全体ビット数が前記Ｊビットである時、前記キー保存部は、前記クロック信号の１周期ごとに前記入力キーデータを保存し、前記初期キーデータの全体ビット数が前記Ｋビットである時、前記キー保存部は、前記クロック信号の２周期ごとに前記入力キーデータを保存し、前記初期キーデータの全体ビット数が前記Ｌビットである時、前記キー保存部は、前記クロック信号の一周期ごとに前記入力キーデータのうち一部を保存することを特徴とする請求項１に記載のキースケジュラ。
【請求項１０】
前記ロードイネーブル信号のそれぞれは、一対の前記ロードイネーブル回路に印加されることを特徴とする請求項１に記載のキースケジュラ。
【請求項１１】
前記ロードイネーブル回路は、前記ロードイネーブル信号がイネーブルされる時、前記演算キーデータを前記入力キーデータとして出力し、前記ロードイネーブル信号がディセーブルされる時、前記保存キーデータを前記入力キーデータとして出力することを特徴とする請求項９に記載のキースケジュラ。
【請求項１２】
前記初期キーデータの全体ビット数が前記Ｊビットまたは前記Ｋビットである時、前記ロードイネーブル回路のうち一部が動作し、前記初期キーデータの全体ビット数が前記Ｌビットである時、前記ロードイネーブル回路がいずれも動作することを特徴とする請求項１１に記載のキースケジュラ。
【請求項１３】
前記初期キーデータの全体ビット数が前記Ｊビットである時に動作する前記ロードイネーブル回路の数は、前記初期キーデータの全体ビット数が前記Ｋビットである時に動作する前記ロードイネーブル回路の数より小さいことを特徴とする請求項１に記載のキースケジュラ。
【請求項１４】
前記キー保存部に含まれる前記ロードイネーブル回路及び前記レジスタの数は、それぞれＬ／Ｎ個であることを特徴とする請求項１に記載のキースケジュラ。
【請求項１５】
前記キー演算部は、
前記レジスタのそれぞれに対応するように配置され、相互直列連結されて前記保存キーデータと変換キーデータとに応答して、前記演算キーデータをそれぞれ出力するチェーン演算器と、
置換キーデータとラウンド定数とを論理演算して、前記変換キーデータを出力する独立演算器と、を備えることを特徴とする請求項１に記載のキースケジュラ。
【請求項１６】
前記チェーン演算器と前記独立演算器は、それぞれ排他的ＯＲ演算を行うことを特徴とする請求項１５に記載のキースケジュラ。
【請求項１７】
前記チェーン演算器のうち第１チェーン演算器は、前記変換キーデータと前記保存キーデータのうち第１保存キーデータとを論理演算して、前記演算キーデータのうち第１演算キーデータを出力し、残りの前記チェーン演算器のそれぞれは、先端のチェーン演算器から受信される前記演算キーデータと、対応する前記レジスタから受信される前記保存キーデータとを論理演算して前記演算キーデータを出力することを特徴とする請求項１５に記載のキースケジュラ。
【請求項１８】
前記出力制御信号は、内部選択信号と出力選択信号とを含み、
前記キー出力部は、
前記内部選択信号に応答して、前記入力キーデータと前記保存キーデータのうちいずれか一つを選択して、出力キーデータとしてそれぞれ出力する内部選択回路と、
前記内部選択回路から前記出力キーデータを受信し、前記出力選択信号に応答して前記出力キーデータのうち一部を選択して、前記暗号ラウンドキーまたは前記復号ラウンドキーとして出力する出力選択部と、を備えることを特徴とする請求項１５に記載のキースケジュラ。
【請求項１９】
前記内部選択信号のそれぞれは、一対の前記内部選択回路に印加されることを特徴とする請求項１８に記載のキースケジュラ。
【請求項２０】
前記内部選択回路は、前記内部選択信号がイネーブルされる時、前記演算キーデータを選択して前記出力キーデータとして出力し、前記内部選択信号がディセーブルされる時、前記保存キーデータを選択して前記出力キーデータとして出力することを特徴とする請求項１９に記載のキースケジュラ。
【請求項２１】
前記演算制御信号は、第１ないし第４演算制御信号を含み、
前記キー演算部は、
前記第１演算制御信号に応答して、第１チェーン演算器から出力されるいずれか一つの演算キーデータと前記置換キーデータのうちいずれか一つを選択して、その選択された結果を次のチェーン演算器に出力する第１選択回路と、
前記第２及び第３演算制御信号に応答して、第１内部選択回路、第２内部選択回路、及び第３内部選択回路からそれぞれ出力される第１出力キーデータ、第２出力キーデータ、及び第３出力キーデータのうちいずれか一つを出力する第２選択回路と、
前記第２選択回路から受信される前記出力キーデータのビットを、設定された回数の間にローテーションして、ローテーションキーデータを出力するワードローテーション部と、
前記第４演算制御信号に応答して、前記ローテーションキーデータと前記演算キーデータのうちいずれか一つを出力する第３選択回路と、
前記ローテーションキーデータと前記演算キーデータのうち受信されるいずれか一つを、置換テーブルを利用して前記置換キーデータに置換して出力するワード置換部と、
前記ラウンド定数を発生させて前記独立演算器に出力するラウンド定数発生器と、をさらに備えることを特徴とする請求項６に記載のキースケジュラ。
【請求項２２】
前記第１演算制御信号は、前記初期キーデータの全体ビット数が前記Ｊビットまたは前記Ｋビットである時にディセーブルされ、前記初期キーデータの全体ビット数が前記Ｌビットである時に、クロックサイクルごとに交互的にイネーブル及びディセーブルされ、
前記初期キーデータの全体ビット数が前記Ｊビットである時、前記第２及び第３演算制御信号がいずれもディセーブルされ、前記初期キーデータの全体ビット数が前記Ｋビットである時、前記第２演算制御信号がイネーブルされ、前記第３演算制御信号がディセーブルされ、前記初期キーデータの全体ビット数が前記Ｌビットである時、前記第２演算制御信号がディセーブルされ、前記第３演算制御信号がイネーブルされ、
前記第４演算制御信号は、前記初期キーデータの全体ビット数が前記Ｊビットまたは前記Ｋビットである時にディセーブルされ、前記初期キーデータの全体ビット数が前記Ｌビットである時に、クロックサイクルごとに交互的にディセーブル及びイネーブルされ、
ＪはＫより小さく、ＫはＬより小さいことを特徴とする請求項２１に記載のキースケジュラ。
【請求項２３】
前記第１選択回路は、前記第１演算制御信号がイネーブルされる時に前記置換キーデータを出力し、前記第１演算制御信号がディセーブルされる時に前記演算キーデータを出力し、
前記第２選択回路は、前記第２及び第３演算制御信号がディセーブルされる時に前記第１出力キーデータを出力し、前記第２演算制御信号がイネーブルされて前記第３演算制御信号がディセーブルされる時に前記第２出力キーデータを出力し、前記第２演算制御信号がディセーブルされて前記第３演算制御信号がイネーブルされる時に前記第３出力キーデータを出力し、
前記第３選択回路は、前記第４演算制御信号がイネーブルされる時に前記ローテーションキーデータを出力し、前記第４演算制御信号がディセーブルされる時に前記ローテーションキーデータを出力することを特徴とする請求項２２に記載のキースケジュラ。
【請求項２４】
前記出力キーデータの全体ビット数は、前記Ｊビット、前記Ｋビット、及び前記Ｌビットのうちいずれか一つであり、
前記出力選択部は、クロックサイクルごとに前記出力キーデータのうち前記Ｊビットの出力キーデータを選択して、前記暗号ラウンドキーまたは前記復号ラウンドキーとして出力することを特徴とする請求項２１に記載のキースケジュラ。
【請求項２５】
前記キー保存部は、
前記クロック信号に応答して前記演算キーデータをそれぞれ保存し、保存された前記演算キーデータを前記保存キーデータとしてそれぞれ出力するレジスタと、
前記ロードイネーブル信号に応答して、前記クロック信号を前記レジスタにそれぞれ供給するか、または供給を中断するクロックゲート回路と、を備えることを特徴とする請求項１に記載のキースケジュラ。
【請求項２６】
データを暗号化するか、または復号化するシステムにおいて、前記システムは、
コントローラと、
プロセッサと、
キースケジュラと、を備え、
前記コントローラは、前記プロセッサと前記キースケジュラとを制御し、前記プロセッサは、前記キースケジュラにより発生する暗号化または復号化キーに基づいてデータを暗号化して復号化し、
前記キースケジュラは、
ロードイネーブル信号とクロック信号とに応答して、演算キーデータと保存キーデータのうちいずれか一つを入力キーデータとして受信して保存し、保存された前記入力キーデータを前記保存キーデータとして出力するキー保存部と、
演算制御信号に応答して前記保存キーデータを演算し、その演算結果として前記演算キーデータを出力するキー演算部と、
出力制御信号に応答して、各ラウンド毎に前記入力キーデータと前記保存キーデータのうち一部を選択して、暗号ラウンドキーまたは復号ラウンドキーとして出力するキー出力部と、を備え、
前記キー保存部は、
前記ロードイネーブル信号に応答して、前記演算キーデータと前記保存キーデータのうちいずれか一つを前記入力キーデータとしてそれぞれ出力するロードイネーブル回路と、
前記クロック信号に応答して、前記ロードイネーブル回路から受信される前記入力キーデータをそれぞれ保存し、保存された前記入力キーデータを前記保存キーデータとしてそれぞれ出力するレジスタと、を備え、
前記レジスタの全体のサイズは、各ラウンド毎に前記キー出力部から出力される前記暗号ラウンドキー又は前記復号ラウンドキーのサイズよりも大きいことを特徴とするシステム。
【請求項２７】
前記キー保存部は、
外部から初期キーデータが受信される時、前記ロードイネーブル信号と前記クロック信号とに応答して前記初期キーデータを保存し、保存された前記初期キーデータを前記保存キーデータとして出力することを特徴とする請求項２６に記載のシステム。
【請求項２８】
前記初期キーデータのそれぞれはＮ（Ｎは自然数）ビットであり、
受信される前記初期キーデータの大きさによって、前記キー出力部から出力される前記暗号ラウンドキーの個数及び前記復号ラウンドキーの個数、前記キー演算部により行われる演算動作の反復回数が決定されることを特徴とする請求項２６に記載のシステム。
【請求項２９】
前記キー演算部は、
前記演算制御信号に応答して、前記初期キーデータの全体ビット数がＪ（Ｊは、前記Ｎより大きい自然数）ビットである時、前記演算動作をＲ（Ｒは、前記Ｎより小さい自然数）回反復的に行い、前記初期キーデータの全体ビット数がＫ（Ｋは、前記Ｊより大きい自然数）ビットである時、前記演算動作をＳ（Ｓは、前記Ｒより大きく、前記Ｎより小さい自然数）回反復的に行い、前記初期キーデータの全体ビット数がＬ（Ｌは、前記Ｋより大きい自然数）ビットである時、前記演算動作をＴ（Ｔは、前記Ｓより大きく、前記Ｎより小さい自然数）回反復的に行うことを特徴とする請求項２６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＥＳ（Ａｄｖａｎｃｅｄ Ｅｎｃｒｙｐｔｉｏｎ Ｓｔａｎｄａｒｄｓ）アルゴリズムを利用する暗号化／復号化装置に係り、特に暗号化／復号化装置の暗号化及び復号化動作に必要なラウンドキーを生成するキースケジュラに関する。
【背景技術】
【０００２】
最近、ＡＥＳアルゴリズムがＤＥＳ（Ｄａｔａ Ｅｎｃｒｙｐｔｉｏｎ Ｓｔａｎｄａｒｄ）アルゴリズムに続けて、新たな暗号化標準として提示されるにつれて、保安を必要とする応用製品でＡＥＳアルゴリズムが適用されている。ＡＥＳアルゴリズムは、リアルタイムに入力されるデータストリームをブロック別に分けて暗号化するか、または復号化するブロック暗号アルゴリズムとして、一度に処理可能な１ブロックの長さは１２８ビットである。このようなＡＥＳアルゴリズムは、ソフトウェアで実現できるが、外部攻撃についての安全性を保障するためには、ハードウェアで実現することが望ましい。特に、高速動作が要求される応用製品では、ハードウェアで実現された暗号化／復号化装置が広く使われている。
【０００３】
通常、ＡＥＳアルゴリズムを利用した暗号化は、サブバイト変換、シフトロー変換、ミックスカラム変換、及びアドラウンドキー変換過程により行われる。また、ＡＥＳアルゴリズムを利用した復号化は、逆シフトロー変換、逆サブバイト変換、逆ミックスカラム変換、及びアドラウンドキー変換過程により行われる。暗号化または復号化のための前記変換過程が順次に一回ずついずれも行われる時に、１ラウンドが完了し、このラウンドが複数回反復的に行われることによって、データの暗号化または復号化が行われる。
【０００４】
暗号化及び復号化過程のうちアドラウンドキー変換過程では、以前の変換過程で処理されたブロック単位のデータが、キースケジュラにより生成されたラウンドキーと混合されることによって、最終的に暗号化されるか、または復号化されたデータストリームに変換される。ここで、キースケジュラによるラウンドキーの生成のために、キースケジュラに入力される初期入力キーは、１２８ビット、１９２ビット、２５６ビットの３種類のキー長を有する。初期入力キーの長さが長くなるほど、データはさらに高いレベルに暗号化できる。また、初期入力キーの長さによってラウンドの反復回数が決定される。即ち、暗号化／復号化装置は、初期入力キーの長さが１２８ビットである時に１０ラウンド、１９２ビットである時に１２ラウンド、２５６ビットである時に１４ラウンドをそれぞれ反復的に行う。この際、キースケジュラは、暗号化／復号化装置がラウンドを行う度にラウンドキーを提供する必要がある。
【０００５】
一般的に、キースケジュラは、オンザフライ方式またはプリコンピューテーション方式で実現できる。オンザフライ方式は、データの暗号化または復号化過程と同時にラウンドキーを生成するものであって、ラウンドごとに必要なラウンドキーをその時その時生成して出力するものである。プリコンピューテーション方式は、全体ラウンドで使われるラウンドキーを予め生成してメモリに保存しておき、各ラウンドごとに必要なラウンドキーを前記メモリから読み取って出力するものである。
【０００６】
しかし、プリコンピューテーション方式によれば、予め生成されたラウンドキーを保存するための大容量のメモリが必要であり、各ラウンドごとにメモリからラウンドキーを読み取らなければならないので、暗号化／復号化装置の動作速度が減少するという短所がある。ここで、メモリに保存される全体ラウンドキーの大きさは、暗号化／復号化処理される一ブロックのビット数（１２８ビット×（ラウンド数＋１））である。例えば、ラウンドキーが１２８ビットである場合にラウンド数は１０であるので、メモリに保存される全体ラウンドキーの大きさは、１４０８（１２８×１１）ビットである。これと類似に、ラウンドキーが１９２ビット、２５６ビットである場合には、全体ラウンドキーの大きさがそれぞれ１６４４（１２８×１３）ビット、１９２０（１２８×１５）ビットである。
【０００７】
ラウンドキーを保存する装置としてレジスタが使われると仮定すれば、ラウンドキーの長さが２５６ビットである場合、最小１５０００ゲート以上のハードウェアを使わなければならない。したがって、ハードウェアの浪費を減らしつつ、最高の動作性能を得るためには、キースケジュラをオンザフライ方式で実現する必要がある。キースケジュラをオンザフライ方式で実現する場合、データの暗号化／復号化動作と同時にキー生成を行うので電流消費は増加するが、全体ラウンドキーを保存する大容量のメモリをさらに備える必要がなく、かつ一つのラウンドキーを保存する空間のみ備えればよいので、ハードウェアの浪費を減らすことができる。
【０００８】
図１は、従来技術によるキースケジュラを備えるＡＥＳアルゴリズムを利用した暗号化／復号化装置を示すブロック図である。図１を参照すると、暗号化／復号化装置１０は、制御部１１、暗号キースケジュラ１２、復号キースケジュラ１３、及びブロックラウンド処理部１４を含む。暗号キースケジュラ１２は、外部から受信される第１初期ラウンドキーＥ＿ＩＮＫＥＹから暗号ラウンドキーＲ＿ＫＥＹを生成して、ブロックラウンド処理部１４に出力する。復号キースケジュラ１３は、外部から受信される第２初期ラウンドキーＤ＿ＩＮＫＥＹから復号ラウンドキーＩＲ＿ＫＥＹを生成して、ブロックラウンド処理部１４に出力する。
【０００９】
上記のように、従来技術による暗号キースケジュラと復号キースケジュラとは、それぞれ別個のハードウェアで実現されるので、その製造コストと大きさとが増加するという問題点がある。
【００１０】
一方、暗号キースケジュラ１２と復号キースケジュラ１３とは、暗号ラウンドキーと復号ラウンドキーとを生成する時、通常的にワード置換過程を行う。ワード置換過程において、前記暗号キースケジュラと前記復号キースケジュラとは、３２ビットのキーデータを４個のワード（８ビット）に分離し、４個の置換テーブルを利用してキーデータの各ワードを所定値に置換する。ここで、第１初期ラウンドキＥ＿ＩＮＫＥＹの長さと第２初期ラウンドキーＤ＿ＩＮＫＥＹの長さとがそれぞれ２５６ビットである場合、暗号キースケジュラ１２と復号キースケジュラ１３とは、ワード置換過程を１クロックサイクルの間に２回行わねばならない。したがって、暗号キースケジュラ１２と復号キースケジュラ１３とは、それぞれ８個の同一の置換テーブルを備えねばならない。置換テーブルは、その実現方式によって、８００ゲートから２２００ゲートのハードウェアで実現できる。結局、８個の置換テーブルを実現するために、６４００ゲートから１７６００ゲートのハードウェアが要求されるので、暗号キースケジュラ１２と復号キースケジュラ１３とにより全体暗号化／復号化装置の大きさが増加するという問題点がある。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明が解決しようとする課題は、単一のハードウェアで実現されて、可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させ、ラウンドキー生成動作に必要な置換テーブルの数を減少させて、全体大きさを減少させうるキースケジュラを提供することにある。
【課題を解決するための手段】
【００１２】
前記課題を解決するための本発明によるキースケジュラは、暗号化／復号化装置の暗号化または復号化動作に必要なラウンドキーを生成するキースケジュラにおいて、キー保存部、キー演算部、及びキー出力部を備えることを特徴とする。キー保存部は、ロードイネーブル信号とクロック信号とに応答して、演算キーデータと保存キーデータのうちいずれか一つを入力キーデータとして受信して保存し、保存された入力キーデータを保存キーデータとして出力する。キー演算部は、演算制御信号に応答して保存キーデータを演算し、その演算結果として演算キーデータを出力する。キー出力部は、出力制御信号に応答して、入力キーデータと保存キーデータのうち一部を選択して、暗号ラウンドキーまたは復号ラウンドキーとして出力する。
【発明の効果】
【００１３】
本発明によるキースケジュラは、初期ラウンドキー長に対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させ、ラウンドキー生成動作に必要な置換テーブルの数を減少させて、全体の大きさを縮めることができる。
また、本発明によるキースケジュラは、初期ラウンドキー長によって一部レジスタの出力信号がトグリングされることを防止して、消耗電流を減少させることができる。
【発明を実施するための最良の形態】
【００１４】
本発明と、本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施例を例示する添付図面及び添付図面に記載された内容を参照しなければならない。
【００１５】
図２は、本発明によるキースケジュラを備える暗号化／復号化装置６００のブロック図である。図２を参照すると、暗号化／復号化装置６００は、制御部６０１、キースケジュラ７００、及びブロックラウンド処理部６０２を含む。制御部６０１は、外部から受信されるキー情報信号ＫＥＹ＿ＬＥＧに基づいて、キースケジュラ７００に入力される初期ラウンドキー長を判断する。また、制御部６０１は、外部から受信されるモード決定信号ＥＮＣ＿ＤＥＣに基づいて、暗号動作モードであるかまたは復号動作モードであるかを判断する。制御部６０１は、判断結果によってクロック信号ＣＬＫ、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ４、ＬＤ４Ｂ、内部選択信号Ｍ１〜Ｍ４、出力選択信号Ｓ１、Ｓ２、演算制御信号Ｐ１〜Ｐ４、及びラウンド制御信号ＲＣＴＬを出力する。
【００１６】
キースケジュラ７００は、外部から第１ないし第３初期ラウンドキーＥＩＫＥＹ１〜ＥＩＫＥＹ３のうちいずれか一つを受信する。第１初期ラウンドキーＥＩＫＥＹ１の長さは１２８ビットであり、第２初期ラウンドキーＥＩＫＥＹ２の長さは１９２ビットであり、第３初期ラウンドキーＥＩＫＥＹ３の長さは２５６ビットである。キースケジュラ７００は、クロック信号ＣＬＫ、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ４、ＬＤ４Ｂ、内部選択信号Ｍ１〜Ｍ４、出力選択信号Ｓ１、Ｓ２、及び演算制御信号Ｐ１〜Ｐ４に応答して、第１ないし第３暗号ラウンドキーＥＲＫＥＹ１〜ＥＲＫＥＹ３のうちいずれか一つ、または第１ないし第３復号ラウンドキーＤＲＫＥＹ１〜ＤＲＫＥＹ３のうちいずれか一つを発生させる。
【００１７】
ここで、初期ラウンドキ長によって、ブロックラウンド処理部６０２が暗号化または復号化のために反復しなければならないラウンドの数と、キースケジュラ７００により発生する暗号ラウンドキまたは復号ラウンドキの個数とが決定される。
【００１８】
即ち、キースケジュラ７００は、第１初期ラウンドキーＥＩＫＥＹ１を受信すれば、１０ラウンドの間に１０個の第１暗号ラウンドキーＥＲＫＥＹ１または１０個の第１復号ラウンドキーＤＲＫＥＹ１を発生させる。また、キースケジュラ７００は、第２初期ラウンドキーＥＩＫＥＹ２を受信すれば、１２ラウンドの間に１２個の第２暗号ラウンドキーＥＲＫＥＹ２または１２個の第２復号ラウンドキーＤＲＫＥＹ２を発生させる。キースケジュラ７００は、第３初期ラウンドキーＥＩＫＥＹ３を受信すれば、１４ラウンドの間に１４個の第３暗号ラウンドキーＥＲＫＥＹ３または１４個の第３復号ラウンドキーＤＲＫＥＹ３を発生させる。ここで、ブロックラウンド処理部６０２により処理される一つのデータブロック当りのビット数が１２８ビットと仮定すると、キースケジュラ７００が各ラウンドごとに発生させる第１ないし第３暗号ラウンドキーＥＲＫＥＹ１〜ＥＲＫＥＹ３、または第１ないし第３復号ラウンドキーＤＲＫＥＹ１〜ＤＲＫＥＹ３のビット数は、それぞれ１２８ビットである。
【００１９】
ブロックラウンド処理部６０２は、第１ないし第３初期ラウンドキーＥＩＫＥＹ１〜ＥＩＫＥＹ３のうちいずれか一つと、第１ないし前記第３暗号ラウンドキーＥＲＫＥＹ１〜ＥＲＫＥＹ３のうちいずれか一つ、または第１ないし第３復号ラウンドキーＤＲＫＥＹ１〜ＤＲＫＥＹ３のうちいずれか一つとを受信する。ブロックラウンド処理部６０２は、ラウンド制御信号ＲＣＴＬに応答して入力ストリームデータＳＤＡＴ＿ＩＮをブロック別に分け、受信された暗号ラウンドキーＥＲＫＥＹ１またはＥＲＫＥＹ２またはＥＲＫＥＹ３、または復号ラウンドキーＤＲＫＥＹ１またはＤＲＫＥＹ２またはＤＲＫＥＹ３と混合して暗号化するか、または復号化して出力ストリームデータＳＤＡＴ＿ＯＵＴを出力する。
【００２０】
ここで、ブロックラウンド処理部６０２は、暗号化または復号化のためのラウンドを複数回反復的に行い、キースケジュラ７００は、ブロックラウンド処理部６０２の各ラウンドごとに必要な暗号ラウンドキーまたは復号ラウンドキーをその時その時生成して、ブロックラウンド処理部６０２に提供する。
【００２１】
図３は、本発明の一実施例によるキースケジュラを詳細に示すブロック図である。図３を参照すれば、キースケジュラ７００は、キー保存部７０１、キー演算部７０２、及びキー出力部７０３を含む。
【００２２】
キー保存部７０１は、第１ないし第８ロードイネーブル回路７１１〜７１８と第１ないし第８レジスタ７２１〜７２８とを含む。第１ないし第８ロードイネーブル回路７１１〜７１８は、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ４、ＬＤ４Ｂに応答して、初期キーデータｗ［０］〜ｗ［７］、演算キーデータｃ［８ｍ］〜ｃ［８ｍ＋７］（ｍは自然数）、及び保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］（ｎは整数）のうちいずれか一つを選択して入力キーデータｗ［８ｎ］〜ｗ［８ｎ＋７］（ｎは整数）としてそれぞれ出力する。ここで、初期キーデータｗ［０］〜ｗ［７］が第１ないし第８ロードイネーブル回路７１１〜７１８に入力される時、キー演算部７０２は、演算キーデータｃ［８ｍ］〜ｃ［８ｍ＋７］を出力しない。
【００２３】
また、第１ないし第８ロードイネーブル回路７１１〜７１８に入力されるキーデータの数は、キースケジュラ７００に入力される初期ラウンドキーによって決定される。さらに詳しくは、第１初期ラウンドキーＥＩＫＥＹ１が初期キーデータｗ［０］〜ｗ［３］を含み、第２初期ラウンドキーＥＩＫＥＹ２が初期キーデータｗ［０］〜ｗ［５］を含み、第３初期ラウンドキーＥＩＫＥＹ３が初期キーデータｗ［０］〜ｗ［７］を含む。したがって、キースケジュラ７００に第１初期ラウンドキーＥＩＫＥＹ１が入力される時、初期キーデータｗ［０］〜ｗ［３］が第１ないし第４ロードイネーブル回路７１１〜７１４に入力される。また、キースケジュラ７００に第２初期ラウンドキーＥＩＫＥＹ２が入力される時、初期キーデータｗ［０］〜ｗ［５］が第１ないし第６ロードイネーブル回路７１１〜７１６に入力される。また、キースケジュラ７００に第３初期ラウンドキーＥＩＫＥＹ３が入力される時、初期キーデータｗ［０］〜ｗ［７］が第１ないし第８ロードイネーブル回路７１１〜７１８に入力される。
【００２４】
ロードイネーブル信号ＬＤ１、ＬＤ１Ｂは、第１及び第２ロードイネーブル回路７１１、７１２に印加され、ロードイネーブル信号ＬＤ２、ＬＤ２Ｂは、第３及び第４ロードイネーブル回路７１３、７１４に印加される。また、ロードイネーブル信号ＬＤ３、ＬＤ３Ｂは、第５及び第６ロードイネーブル回路７１５、７１６に印加され、ロードイネーブル信号ＬＤ４、ＬＤ４Ｂは、第７及び第８ロードイネーブル回路７１７、７１８に印加される。
【００２５】
第１ないし第８レジスタ７２１〜７２８は、クロック信号ＣＬＫに応答して入力キーデータｗ［８ｎ］〜ｗ［８ｎ＋７］をそれぞれ保存し、保存された入力キーデータｗ［８ｎ］〜ｗ［８ｎ＋７］を保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］としてそれぞれ出力する。第１ないし第８ロードイネーブル回路７１１〜７１８と第１ないし第８レジスタ７２１〜７２８とは、図４を参照してさらに詳細に後述される。
【００２６】
キー演算部７０２は、第１ないし第８チェーン演算器７３１〜７３８、独立演算器７３９、第１ないし第３選択回路７４１〜７４３、ワードローテーション部７５１、ワード置換部７５２、及びラウンド定数発生器７５３を含む。
【００２７】
第１ないし第８チェーン演算器７３１〜７３８は、相互直列連結され、第１ないし第８レジスタ７２１〜７２８に対応するようにそれぞれ配置され、保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］をそれぞれ受信する。第１ないし第８チェーン演算器７３１〜７３８は、保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］と変換キーデータＳＵＣとに応答して、演算キーデータｃ［８ｍ］〜ｃ［８ｍ＋７］をそれぞれ出力する。これをさらに詳細に説明すれば、第１チェーン演算器７３１は、変換キーデータＳＵＣをさらに受信し、第２ないし第８チェーン演算器７３２〜７３８は、それぞれ第１ないし第７チェーン演算器７３１〜７３７から演算キーデータｃ［８ｍ］〜ｃ［８ｍ＋６］をさらに受信する。第１ないし第８チェーン演算器７３１〜７３８は、望ましく排他的ＯＲ演算動作を行う。即ち、第１チェーン演算器７３１は、保存キーデータｒ［８ｎ］と変換キーデータＳＵＣとを排他的ＯＲ演算し、その演算結果として演算キーデータｃ［８ｍ］を出力する。第２ないし第８チェーン演算器７３２〜７３８は、保存キーデータｒ［８ｎ＋１］〜ｒ［８ｎ＋７］と演算キーデータｃ［８ｍ］〜ｃ［８ｍ＋６］をそれぞれ排他的ＯＲ演算し、その演算結果として演算器キーデータｃ［８ｍ＋１］〜ｃ［８ｍ＋７］を出力する。
【００２８】
独立演算器７３９は、置換キーデータＳＵＢとラウンド定数ＲＮＣとを排他的ＯＲ演算して、変換キーデータＳＵＣを出力する。
【００２９】
第１選択回路７４１は、制御部６０１（図２参照）から受信される演算制御信号Ｐ１に応答して、置換キーデータＳＵＢと演算キーデータｃ［８ｍ＋３］のうちいずれか一つを第５チェーン演算器７３５に出力する。さらに詳細に説明すれば、第１選択回路７４１は、演算制御信号Ｐ１がイネーブルされる時、置換キーデータＳＵＢを第５チェーン演算器７３５に出力し、演算制御信号Ｐ１がディセーブルされる時、演算キーデータｃ［８ｍ＋３］を第５チェーン演算器７３５に出力する。また、第２選択回路７４２は、制御部６０１から受信される演算制御信号Ｐ２、Ｐ３に応答して、出力キーデータｘ３、ｘ５、ｘ７のうちいずれか一つをワードローテーション部７５１に出力する。さらに詳細に説明すれば、演算制御信号Ｐ２、Ｐ３がいずれもディセーブルされる時、第２選択回路７４２は、出力キーデータｘ３をワードローテーション部７５１に出力する。演算制御信号Ｐ２がイネーブルされ、演算制御信号Ｐ３がディセーブルされる時、第２選択回路７４２は、出力キーデータｘ５をワードローテーション部７５１に出力する。また、演算制御信号Ｐ２がディセーブルされ、演算制御信号Ｐ３がイネーブルされる時、第２選択回路７４２は、出力キーデータｘ７をワードローテーション部７５１に出力する。第３選択回路７４３は、制御部６０１から受信される演算制御信号Ｐ４に応答して、演算キーデータｃ［８ｍ＋３］とローテーションキーデータＲＯＴのうちいずれか一つをワード置換部７５２に出力する。即ち、第３選択回路７４３は、演算制御信号Ｐ４がイネーブルされる時、演算キーデータｃ［８ｍ＋３］を出力し、前記演算制御信号Ｐ４がディセーブルされる時、ローテーションキーデータＲＯＴを出力する。第１ないし第３選択回路７４１〜７４３は、それぞれマルチプレクサで実現できる。
【００３０】
ワードローテーション部７５１は、第２選択回路７４２から出力キーデータｘ３、ｘ５、ｘ７のうちいずれか一つを受信する。ワードローテーション部７５１は、受信された前記出力キーデータｘ３またはｘ５またはｘ７のビットを８ビットだけローテーションし、ローテーションキーデータＲＯＴを出力する。ここで、ワードローテーション部７５１の動作は、当業者であれば理解できるので、ワードローテーション部７５１の詳細な動作説明は省略する。
【００３１】
次に、ワード置換部７５２は、第３選択回路７４３から前記演算キーデータｃ［８ｍ＋３］とローテーションキーデータＲＯＴのうちいずれか一つを受信する。ワード置換部７５２は、演算キーデータｃ［８ｍ＋３］とローテーションキーデータＲＯＴのうち受信されたいずれか一つを置換して、置換キーデータＳＵＢを出力する。ここで、ワード置換部７５２は図示しなかったが、内部に４個の置換テーブルを含む。ワード置換部７５２は、演算キーデータｃ［８ｍ＋３］とローテーションキーデータＲＯＴのうち受信されたいずれか一つを、４個の置換テーブルに含まれた所定値にそれぞれ置換する。ラウンド定数発生器７５３は、ラウンド定数ＲＮＣを発生させる。
【００３２】
キー出力部７０３は、第１ないし第８内部選択回路７６１〜７６８と出力選択部７７０とを含む。第１ないし第８内部選択回路７６１〜７６８は、制御部６０１から受信される前記内部選択信号Ｍ１〜Ｍ４に応答して、入力キーデータｗ［８ｎ］〜ｗ［８ｎ＋７］と保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］のうちいずれか一つを選択して、出力キーデータｘ０〜ｘ７としてそれぞれ出力する。第１及び第２内部選択回路７６１、７６２に内部選択信号Ｍ１が入力され、第３及び第４内部選択回路７６３、７６４に内部選択信号Ｍ２が入力される。また、第５及び第６内部選択回路７６５、７６６に内部選択信号Ｍ３が入力され、第７及び第８内部選択回路７６７、７６８に内部選択信号Ｍ４が入力される。
【００３３】
第１及び第２内部選択回路７６１、７６２は、内部選択信号Ｍ１がイネーブルされる時、入力キーデータｗ［８ｎ］、ｗ［８ｎ＋１］を出力キーデータｘ０、ｘ１としてそれぞれ出力する。また、第１及び第２内部選択回路７６１、７６２は、内部選択信号Ｍ１がディセーブルされる時、保存キーデータｒ［８ｎ］、ｒ［８ｎ＋１］を出力キーデータｘ０、ｘ１としてそれぞれ出力する。これと類似に、第３ないし第８内部選択回路７６３〜７６８は、内部選択信号Ｍ２〜Ｍ４がイネーブルされる時、入力キーデータｗ［８ｎ＋２］〜ｗ［８ｎ＋７］を出力キーデータｘ３〜ｘ７としてそれぞれ出力する。また、第３ないし第８内部選択回路７６３〜７６８は、内部選択信号Ｍ２〜Ｍ４がディセーブルされる時、保存キーデータｒ［８ｎ＋２］〜ｒ［８ｎ＋７］を出力キーデータｘ３〜ｘ７としてそれぞれ出力する。ここで、第１ないし第８内部選択回路７６１〜７６８は、それぞれマルチプレクサで実現できる。
【００３４】
出力選択部７７０は、制御部６０１から受信される出力選択信号Ｓ１、Ｓ２に応答して出力キーデータｘ０〜ｘ７のうち一部を選択して、第１ないし第３暗号ラウンドキーＥＲＫＥＹ１〜ＥＲＫＥＹ３のうちいずれか一つ、または第１ないし第３復号ラウンドキーＤＲＫＥＹ１〜ＤＲＫＥＹ３のうちいずれか一つとして出力する。出力選択部７７０は、図５を参照してさらに詳細に後述される。
【００３５】
図４は、図３に示された第１及び第２ロードイネーブル回路と、第１及び第２レジスタ７２１、７２２とを詳細に示す図である。第３ないし第８ロードイネーブル回路７１３〜７１８の構成及び具体的な動作説明は、第１及び第２ロードイネーブル回路７１１、７１２と類似しているので省略する。また、第３ないし第８レジスタ７２３〜７２８の構成及び具体的な動作説明は、第１及び第２レジスタ７２１、７２２と類似しているので省略する。
【００３６】
図４を参照すると、第１ロードイネーブル回路７１１は、ＡＮＤゲート７１、７３とＯＲゲート８１とを含み、第２ロードイネーブル回路７１２は、ＡＮＤゲート７２、７４とＯＲゲート８２とを含む。ＡＮＤゲート７１、７２は、ロードイネーブル信号ＬＤ１と初期キーデータｗ［０］、ｗ［１］（または前記演算キーデータｃ［８ｍ］、ｃ［８ｍ＋１］）とに応答して、第１論理信号Ｔ１、Ｔ２をそれぞれ出力する。また、ＡＮＤゲート７３、７４は、反転されたロードイネーブル信号ＬＤ１Ｂと保存キーデータｒ［０］、ｒ［１］（または保存キーデータｒ［８ｎ］、ｒ［８ｎ＋１］）とに応答して、第２論理信号Ｔ３、Ｔ４を出力する。前記ＯＲゲート８１は、前記第１論理信号Ｔ１と前記第２論理信号Ｔ３とに応答して、入力キーデータｗ［０］（またはｗ［８ｎ］）を出力する。ＯＲゲート８２は、第１論理信号Ｔ２と第２論理信号Ｔ４とに応答して、入力キーデータｗ［８ｎ＋１］を出力する。ここで、ロードイネーブル信号ＬＤ１がハイレバルにイネーブルされる時、ＡＮＤゲート７１、７２が初期キーデータｗ［０］、ｗ［１］（または前記演算キーデータｃ［８ｍ］、ｃ［８ｍ＋１］）を第１論理信号Ｔ１、Ｔ２としてそれぞれ出力する。この際、反転されたロードイネーブル信号ＬＤ１Ｂがローレベルであるので、ＡＮＤゲート７３、７４は、第２論理信号Ｔ３、Ｔ４をローレベルに出力する。その結果、ＯＲゲート８１、８２は、第１論理信号Ｔ１、Ｔ２を入力キーデータｗ［８ｎ］、ｗ［８ｎ＋１］としてそれぞれ出力する。
【００３７】
一方、ロードイネーブル信号ＬＤ１がローレベルにディセーブルされる時、ＡＮＤゲート７１、７２は、第１論理信号Ｔ１、Ｔ２をローレベルに出力する。また、反転されたロードイネーブル信号ＬＤ１Ｂがハイレバルであるので、ＡＮＤゲート７３、７４は、保存キーデータｒ［８ｎ］、ｒ［８ｎ＋１］を第２論理信号Ｔ３、Ｔ４として出力する。その結果、ＯＲゲート８１、８２は、第２論理信号Ｔ３、Ｔ４を入力キーデータｗ［８ｎ］、ｗ［８ｎ＋１］としてそれぞれ出力する。したがって、第１及び第２ロードイネーブル回路７１１、７１２は、ロードイネーブル信号ＬＤ１がハイレバルにイネーブルされる時、初期キーデータｗ［０］、ｗ［１］（または前記演算キーデータｃ［８ｍ］、ｃ［８ｍ＋１］）を入力キーデータｗ［８ｎ］、ｗ［８ｎ＋１］としてそれぞれ出力する。また、第１及び第２ロードイネーブル回路７１１、７１２は、前記ロードイネーブル信号ＬＤ１がローレベルにディセーブルされる時、保存キーデータｒ［８ｎ］、ｒ［８ｎ＋１］を入力キーデータｗ［８ｎ］、ｗ［８ｎ＋１］としてそれぞれ出力する。
【００３８】
第１及び第２ロードイネーブル回路７１１、７１２のそれぞれの出力端子には、第１及び第２レジスタ７２１、７２２の入力端子がそれぞれ連結される。第１及び第２レジスタ７２１、７２２のそれぞれは、Ｄフリップフロップで実現できる。第１及び第２レジスタ７２１、７２２は、クロック信号ＣＬＫに応答して入力キーデータｗ［８ｎ］、ｗ［８ｎ＋１］を保存し、保存された前記入力キーデータｗ［８ｎ］、ｗ［８ｎ＋１］を保存キーデータｒ［８ｎ］、ｒ［８ｎ＋１］としてそれぞれ出力する。
【００３９】
図５は、図３に示された出力選択部７７０を詳細に示す図である。図５を参照すれば、出力選択部７７０は、第１ないし第４出力選択回路７７１〜７７４を含む。第１ないし第４出力選択回路７７１〜７７４のそれぞれは、マルチプレクサで実現できる。第１出力選択回路７７１は、制御部６０１から受信される出力選択信号Ｓ１、Ｓ２に応答して、出力キーデータｘ０、ｘ４、ｘ２のうちいずれか一つを選択して出力する。これをさらに詳細に説明すれば、第１出力選択回路７７１は、出力選択信号Ｓ１、Ｓ２がいずれもディセーブルされる時、出力キーデータｘ０を出力し、前記出力選択信号Ｓ１、Ｓ２のうちいずれか一つがイネーブルされる時、出力キーデータｘ４を出力する。また、第１出力選択回路７７１は、出力選択信号Ｓ１、Ｓ２がいずれもイネーブルされる時、出力キーデータｘ２を出力する。
【００４０】
第２出力選択回路７７２は、出力選択信号Ｓ１、Ｓ２に応答して出力キーデータｘ１、ｘ５、ｘ３のうちいずれか一つを出力する。これをさらに詳細に説明すれば、第２出力選択回路７７２は、出力選択信号Ｓ１、Ｓ２がいずれもディセーブルされる時、出力キーデータｘ１を出力し、出力選択信号Ｓ１、Ｓ２のうちいずれか一つがイネーブルされる時、前記出力キーデータｘ５を出力する。また、第２出力選択回路７７２は、出力選択信号Ｓ１、Ｓ２がいずれもイネーブルされる時、出力キーデータｘ３を出力する。
【００４１】
第３出力選択回路７７３は、出力選択信号Ｓ１、Ｓ２に応答して出力キーデータｘ２、ｘ６、ｘ０、ｘ４のうちいずれか一つを出力する。これをさらに詳細に説明すれば、第３出力選択回路７７３は、出力選択信号Ｓ１、Ｓ２がいずれもディセーブルされる時、出力キーデータｘ２を出力し、出力選択信号Ｓ１がイネーブルされ、出力選択信号Ｓ２がディセーブルされる時、出力キーデータｘ６を出力する。また、第３出力選択回路７７３は、出力選択信号Ｓ２がイネーブルされ、出力選択信号Ｓ１がディセーブルされる時、出力キーデータｘ０を出力し、出力選択信号Ｓ１、Ｓ２がいずれもイネーブルされる時、出力キーデータｘ４を出力する。
【００４２】
第４出力選択回路７７４は、出力選択信号Ｓ１、Ｓ２に応答して出力キーデータｘ３、ｘ７、ｘ１、ｘ５のうちいずれか一つを出力する。これをさらに詳細に説明すれば、第４出力選択回路７７４は、出力選択信号Ｓ１、Ｓ２がいずれもディセーブルされる時、出力キーデータｘ３を出力し、出力選択信号Ｓ１がイネーブルされ、出力選択信号Ｓ２がディセーブルされる時、出力キーデータｘ７を出力する。また、第４出力選択回路７７４は、出力選択信号Ｓ２がイネーブルされ、出力選択信号Ｓ１がディセーブルされる時、出力キーデータｘ１を出力し、出力選択信号Ｓ１、Ｓ２がいずれもイネーブルされる時、出力キーデータｘ５を出力する。
【００４３】
一方、図５において、第１ないし第４出力選択回路７７１〜７７４に出力選択信号Ｓ１、Ｓ２が入力されると図示されたが、第１ないし第４出力選択回路７７１〜７７４には、出力選択信号Ｓ３をさらに入力することもできる。その結果、第１ないし第４出力選択回路７７１〜７７４は、出力選択信号Ｓ３がディセーブルされる時、出力選択信号Ｓ１、Ｓ２に応答して出力キーデータｘ０〜ｘ３またはｘ４〜ｘ７またはｘ４、ｘ５、ｘ０、ｘ１またはｘ２〜ｘ５を出力する。また、第１ないし第４出力選択回路７７１〜７７４は、出力選択信号Ｓ３がイネーブルされる時、出力キーデータｘ０〜ｘ３またはｘ４〜ｘ７またはｘ４、ｘ５、ｘ０、ｘ１またはｘ２〜ｘ５を出力しない。
【００４４】
次に、上記のように構成されたキースケジュラ７００の動作過程を説明すれば、次の通りである。まず、キースケジュラ７００が、初期キーデータｗ［０］〜ｗ［３］を含む第１初期ラウンドキーＥＩＫＥＹ１を受信し、第１暗号ラウンドキーＥＲＫＥＹ１を発生させる過程を説明する。
【００４５】
キースケジュラ７００に初期キーデータｗ［０］〜ｗ［３］を含む第１初期ラウンドキーＥＩＫＥＹ１が入力される時、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂと内部選択信号Ｍ１、Ｍ２とがイネーブルされて、キースケジュラ７００が１０個の第１暗号ラウンドキーＥＲＫＥＹ１ｓをいずれも発生させるまで維持される。
【００４６】
また、キースケジュラ７００が１０個の第１暗号ラウンドキーＥＲＫＥＹ１ｓをいずれも発生させるまで、ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂ、内部選択信号Ｍ３、Ｍ４、出力選択信号Ｓ１、Ｓ２、及び演算制御信号Ｐ１〜Ｐ４がいずれもディセーブル状態に維持される。その結果、キースケジュラ７００が１０個の第１暗号ラウンドキーＥＲＫＥＹ１ｓを発生させる間に、第１ないし第４ロードイネーブル回路７１１〜７１４、第１ないし第４レジスタ７２１〜７２４、第１ないし第４チェーン演算器７３１〜７３４のみが動作する。
【００４７】
第５ないし第８ロードイネーブル回路７１５〜７１８は、ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂがディセーブル状態であるので、保存キーデータｒ［８ｎ＋４］〜ｒ［８ｎ＋７］を入力キーデータｗ［８ｎ＋４］〜ｗ［８ｎ＋７］として続けて出力する。その結果、第５ないし第８レジスタ７２５〜７２８の出力信号がトグリングされていないので、第５ないし第８レジスタ７２５〜７２８による消耗電流が減少する。
【００４８】
ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂに応答して第１ないし第４ロードイネーブル回路７１１〜７１４は、初期キーデータｗ［０］〜ｗ［３］を入力キーデータｗ［０］〜ｗ［３］としてそれぞれ出力する。第１ないし第４レジスタ７２１〜７２４は、クロック信号ＣＬＫに応答して入力キーデータｗ［０］〜ｗ［３］を受信して保存し、保存された入力キーデータｗ［０］〜ｗ［３］を保存キーデータｒ［０］〜ｒ［３］としてそれぞれ出力する。
【００４９】
内部選択信号Ｍ１、Ｍ２に応答して第１ないし第４内部選択回路７６１〜７６４は、入力キーデータｗ［０］〜ｗ［３］を選択して出力キーデータｘ０〜ｘ３としてそれぞれ出力する。ここで、出力選択信号Ｓ１、Ｓ２がディセーブル状態であるので、出力選択部７７０が出力キーデータｘ０〜ｘ３（即ち、入力キーデータｗ［０］〜ｗ［３］）を第１暗号ラウンドキーＥＲＫＥＹ１として出力する。しかし、ブロックラウンド処理部６０２（図２参照）は、前記出力選択部７７０から出力される入力キーデータｗ［０］〜ｗ［３］を含む第１暗号ラウンドキーＥＲＫＥＹ１を実質的に受信しない。その理由は、ブロックラウンド処理部６０２が、図２で参照されるように、外部から直接に初期キーデータｗ［０］〜ｗ［３］を受信するためである。この際、ブロックラウンド処理部６０２は、ラウンド制御信号ＲＣＴＬに応答して、出力選択部７７０から出力される第１暗号ラウンドキーＥＲＫＥＹ１を受信するか、または受信しない。
【００５０】
第２選択回路７４２は、演算制御信号Ｐ２、Ｐ３に応答して、出力キーデータｘ３を選択して出力する。ワードローテーション部７５１は、出力キーデータｘ３の各ビットをローテーションして、ローテーションキーデータＲＯＴを出力する。第３選択回路７４３は、演算制御信号Ｐ４に応答して、ローテーションキーデータＲＯＴを選択して出力する。
【００５１】
ワード置換部７５２は、ローテーションキーデータＲＯＴを、４個の置換テーブルを使用してそれぞれ所定値に置換し、置換キーデータＳＵＢを出力する。独立演算器７３９は、置換キーデータＳＵＢとラウンド定数発生器７５３から受信されるラウンド定数ＲＮＣとを論理演算して、変換キーデータＳＵＣを出力する。
【００５２】
第１チェーン演算器７３１は、変換キーデータＳＵＣと保存キーデータｒ［０］とを論理演算して、演算キーデータｃ［４］を出力する。第２チェーン演算器７３２は、保存キーデータｒ［１］と第１チェーン演算器７３１とから受信される演算キーデータｃ［４］とを論理演算して、演算キーデータｃ［５］を出力する。第３チェーン演算器７３３は、保存キーデータｒ［２］と第２チェーン演算器７３２から受信される演算キーデータｃ［５］とを論理演算して、演算キーデータｃ［６］を出力する。第４チェーン演算器７３４は、保存キーデータｒ［３］と第３チェーン演算器７３３から受信される演算キーデータｃ［６］とを論理演算して、演算キーデータｃ［７］を出力する。第１ないし第４ロードイネーブル回路７１１〜７１４は、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂに応答して、演算キーデータｃ［４］〜ｃ［７］を入力キーデータｗ［４］〜ｗ［７］としてそれぞれ出力する。
【００５３】
内部選択信号Ｍ１、Ｍ２に応答して第１ないし第４内部選択回路７６１〜７６４は、入力キーデータｗ［４］〜ｗ［７］を選択して、出力キーデータｘ０〜ｘ３としてそれぞれ出力する。出力選択部７７０は、出力選択信号Ｓ１、Ｓ２に応答して出力キーデータｘ０〜ｘ３を選択して、第１暗号ラウンドキーＥＲＫＥＹ１として出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの一番目サイクルの間に出力キーデータｘ０〜ｘ３、即ち入力キーデータｗ［４］〜ｗ［７］を含む第１暗号ラウンドキーＥＲＫＥＹ１を発生させる。ここで、クロック信号ＣＬＫの一番目サイクルの間に、第１暗号ラウンドキーＥＲＫＥＹ１（即ち、入力キーデータｗ［４］〜ｗ［７］）と第１初期ラウンドキーＥＩＫＥＹ１の初期キーデータｗ［０］〜ｗ［３］とがブロックラウンド処理部６０２（図２参照）に入力される。
【００５４】
次いで、キースケジュラ７００は、入力キーデータｗ［４０］〜ｗ［４３］を含む第１暗号ラウンドキーＥＲＫＥＹ１を発生させるまで、上述した演算動作と第１暗号ラウンドキーＥＲＫＥＹ１の出力動作とを反復的に行う。また、キースケジュラ７００から入力キーデータｗ［４０］〜ｗ［４３］を含む第１暗号ラウンドキーＥＲＫＥＹ１が発生した後、第１ないし前記第４レジスタ７２１〜７２４は、第１復号ラウンドキーＤＲＫＥＹ１を発生させる時に使われる入力キーデータｗ［４０］〜ｗ［４３］を保存し、その保存状態を維持する。ここで、各クロックサイクル別にキースケジュラ７００により発生する第１暗号ラウンドキーＥＲＫＥＹ１は、次の表で示すことができる。
【００５５】
【表１】
0004740611.tif 000002
【００５６】
ここで、クロック信号ＣＬＫの一番目サイクルの間に、入力キーデータｗ［４］〜ｗ［７］を含む第１暗号ラウンドキーＥＲＫＥＹ１と、第１初期ラウンドキーＥＩＫＥＹ１の初期キーデータｗ［０］〜ｗ［３］とがブロックラウンド処理部６０２に入力される。
【００５７】
一方、図６は、キースケジュラ７００が１０個の第１暗号ラウンドキーＥＲＫＥＹ１を発生させる間に、第１ないし第８レジスタ７２１〜７２８から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］のタイミング図である。表１と図６とを参照すると、第１ないし第４レジスタ７２１〜７２４から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋３］は、クロック信号ＣＬＫのサイクルごとにトグリングされる。また、第５ないし第８レジスタ７２５〜７２８から出力される保存キーデータｒ［８ｎ＋４］〜ｒ［８ｎ＋７］は、キースケジュラ７００が１０個の第１暗号ラウンドキーＥＲＫＥＹ１をいずれも発生させる間にトグリングされない。その結果、第５ないし第８レジスタ７２５〜７２８による消耗電流が減少する。
【００５８】
次に、キースケジュラ７００が第１復号ラウンドキーＤＲＫＥＹ１を発生させる動作過程を説明する。キースケジュラ７００が第１復号ラウンドキーＤＲＫＥＹ１を発生させる過程は、キースケジュラ７００が初期キーデータｗ［０］〜ｗ［３］を含む第１初期ラウンドキーＥＩＫＥＹ１を受信する場合と受信していない場合とに区分できる。
【００５９】
まず、キースケジュラ７００が初期キーデータｗ［０］〜ｗ［３］を含む第１初期ラウンドキーＥＩＫＥＹ１を受信する場合、第１復号ラウンドキーＤＲＫＥＹ１を発生させる過程を説明する。
【００６０】
ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂがイネーブルされ、ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂはディセーブルされる。次いで、キースケジュラ７００が第１復号ラウンドキーＤＲＫＥＹ１をいずれも発生させるまで、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂがイネーブル状態に維持され、ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂはディセーブル状態に維持される。
【００６１】
ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂに応答して第１ないし第４ロードイネーブル回路７１１〜７１４は、初期キーデータｗ［０］〜ｗ［３］を入力キーデータｗ［０］〜ｗ［３］として出力する。第１ないし第４レジスタ７２１〜７２４は、クロック信号ＣＬＫに応答して入力キーデータｗ［０］〜ｗ［３］を受信して保存し、保存された入力キーデータｗ［０］〜ｗ［３］を保存キーデータｒ［０］〜ｒ［３］としてそれぞれ出力する。
【００６２】
次いで、第１ないし第４チェーン演算器７３１〜７３４から演算キーデータｃ［４０］〜ｃ［４３］が出力されるまで、キースケジュラ７００は、上述した第１暗号ラウンドキーＥＲＫＥＹ１の生成のための演算動作を反復的に行う。第１ないし第４チェーン演算器７３１〜７３４が演算キーデータｃ［４０］〜ｃ［４３］を出力するまで、上述した演算動作を反復的に行う間、ブロックラウンド処理部６０２は、ラウンド制御信号ＲＣＴＬに応答して、キースケジュラ７００から出力される第１暗号ラウンドキーＥＲＫＥＹ１を受信しない。ここで、第１ないし第４チェーン演算器７３１〜７３４が演算キーデータｃ［４０］〜ｃ［４３］を出力するまで、上述した演算動作を反復的に行う間、図５を参照して上述したように、出力選択部７７０が第１暗号ラウンドキーＥＲＫＥＹ１を出力しないようにすることもできる。
【００６３】
次いで、第１ないし第４チェーン演算器７３１〜７３４から演算キーデータｃ［４０］〜ｃ［４３］が出力される時、第１ないし第４ロードイネーブル回路７１１〜７１４がロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂに応答して、演算キーデータｃ［４０］〜ｃ［４３］を入力キーデータｗ［４０］〜ｗ［４３］として出力する。第１ないし第４レジスタ７２１〜７２４がクロック信号ＣＬＫに応答して、入力キーデータｗ［４０］〜ｗ［４３］を受信して保存し、保存された入力キーデータｗ［４０］〜ｗ［４３］を保存キーデータｒ［４０］〜ｒ［４３］としてそれぞれ出力する。
【００６４】
この際、内部選択信号Ｍ１、Ｍ２がディセーブルされる。演算制御信号Ｐ１〜Ｐ４と出力選択信号Ｓ１、Ｓ２とはいずれもディセーブルされて、キースケジュラ７００が最後の第１復号ラウンドキーＤＲＫＥＹ１を発生させるまで維持される。
【００６５】
第１ないし第４内部選択回路７６１〜７６４は、内部選択信号Ｍ１、Ｍ２に応答して、保存キーデータｒ［４０］〜ｒ［４３］を出力キーデータｘ０〜ｘ３としてそれぞれ出力する。この際、出力選択部７７０は、出力選択信号Ｓ１、Ｓ２に応答して、出力キーデータｘ０〜ｘ３（即ち、保存キーデータｒ［４０］〜ｒ［４３］）を選択して出力する。
【００６６】
第２選択回路７４２は、演算制御信号Ｐ２、Ｐ３に応答して出力キーデータｘ３、即ち保存キーデータｒ［４３］をワードローテーション部７５１に出力する。ワードローテーション部７５１は、保存キーデータｒ［４３］の各ビットをローテーションして、ローテーションキーデータＲＯＴを出力する。演算制御信号Ｐ４に応答して、第３選択回路７４３がローテーションキーデータＲＯＴを選択してワード置換部７５２に出力する。ワード置換部７５２は、ローテーションキーデータＲＯＴを、置換テーブルを使用して置換し、置換キーデータＳＵＢを出力する。独立演算器７３９は、置換キーデータＳＵＢとラウンド定数ＲＮＣとを論理演算して、変換キーデータＳＵＣを出力する。
【００６７】
第１チェーン演算器７３１は、保存キーデータｒ［４０］と変換キーデータＳＵＣとを論理演算して、演算キーデータｃ［３６］を出力する。第２ないし第４チェーン演算器７３２〜７３４は、保存キーデータｒ［４１］〜ｒ［４３］と先端から受信される演算キーデータｃ［３６］〜ｃ［３８］とをそれぞれ論理演算して、演算キーデータｃ［３７］〜ｃ［３９］をそれぞれ出力する。第１ないし第４ロードイネーブル回路７１１〜７１４は、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂに応答して、演算キーデータｃ［３６］〜ｃ［３９］を入力キーデータｗ［３６］〜ｗ［３９］としてそれぞれ出力する。
【００６８】
次いで、内部選択信号Ｍ１、Ｍ２がイネーブルされ、キースケジュラ７００が最後の第１復号ラウンドキーＤＲＫＥＹ１を発生させるまで維持される。第１ないし第４内部選択回路７６１〜７６４は、内部選択信号Ｍ１、Ｍ２に応答して、入力キーデータｗ［３６］〜ｗ［３９］を出力キーデータｘ０〜ｘ３としてそれぞれ出力する。また、出力選択部７７０は、出力選択信号Ｓ１、Ｓ２に応答して、出力キーデータｘ０〜ｘ３を選択して第１復号ラウンドキーＤＲＫＥＹ１として出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの１１番目サイクルの間に、出力キーデータｘ０〜ｘ３、即ち入力キーデータｗ［３６］〜ｗ［３９］を含む第１復号ラウンドキーＤＲＫＥＹ１を発生させる。ここで、クロック信号ＣＬＫの１１番目サイクルの間に、第１復号ラウンドキーＤＲＫＥＹ１（即ち、入力キーデータｗ［３６］〜ｗ［３９］）と保存キーデータｒ［４０］〜ｒ［４３］とがブロックラウンド処理部６０２に入力される。
【００６９】
第１ないし前記第４レジスタ７２１〜７２４は、クロック信号ＣＬＫに応答して、入力キーデータｗ［３６］〜ｗ［３９］を受信して保存し、保存された前記入力キーデータｗ［３６］〜ｗ［３９］を保存キーデータｒ［３６］〜ｒ［３９］としてそれぞれ出力する。次いで、キースケジュラ７００は、入力キーデータｗ［０］〜ｗ［３］を含む第１復号ラウンドキーＤＲＫＥＹ１を発生させるまで、上述した演算動作と第１復号ラウンドキーＤＲＫＥＹ１の出力動作とを反復的に行う。
【００７０】
次に、キースケジュラ７００が、初期キーデータｗ［０］〜ｗ［３］を含む第１初期ラウンドキーＥＩＫＥＹ１を受信していない場合、第１復号ラウンドキーＤＲＫＥＹ１を発生させる過程を説明する。まず、第１ないし第４レジスタ７２１〜７２４は、クロック信号ＣＬＫに応答して、保存されていた入力キーデータｗ［４０］〜ｗ［４３］を保存キーデータｒ［４０］〜ｒ［４３］として出力する。
【００７１】
この際、内部選択信号Ｍ１、Ｍ２がディセーブルされる。演算制御信号Ｐ１〜Ｐ４と出力選択信号Ｓ１、Ｓ２とはディセーブルされて、キースケジュラ７００が最後の第１復号ラウンドキーＤＲＫＥＹ１を発生させるまで維持される。
【００７２】
第１ないし第４内部選択回路７６１〜７６４は、内部選択信号Ｍ１、Ｍ２に応答して、保存キーデータｒ［４０］〜ｒ［４３］を出力キーデータｘ０〜ｘ３としてそれぞれ出力する。出力選択部７７０は、出力選択信号Ｓ１、Ｓ２に応答して、出力キーデータｘ０〜ｘ３（即ち、保存キーデータｒ［４０］〜ｒ［４３］）を選択して出力する。次いで、キースケジュラ７００の動作は、初期キーデータｗ［０］〜ｗ［３］を含む第１初期ラウンドキーＥＩＫＥＹ１を受信した場合、第１復号ラウンドキーＤＲＫＥＹ１を発生させる過程と実質的に同一であるので、その具体的な説明は省略する。
【００７３】
一方、キースケジュラ７００が第１復号ラウンドキーＤＲＫＥＹ１を発生させる過程の間に、第１ないし第４レジスタ７２１〜７２４は、クロック信号ＣＬＫのサイクルごとにアップデートされた入力キーデータｗ［４ｎ］〜ｗ［４ｎ＋３］を保存する。
ここで、各クロックサイクル別に、キースケジュラ７００により発生する第１復号ラウンドキーＤＲＫＥＹ１は、次の表で示すことができる。
【００７４】
【表２】
0004740611.tif 000003
キースケジュラ７００が第１復号ラウンドキーＤＲＫＥＹ１を発生させる間に、第１ないし第８レジスタ７２１〜７２８から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］のタイミング図は、図６に示されたものと同一である。表２と図６とを参照すると、第１ないし第４レジスタ７２１〜７２４から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋３］は、クロック信号ＣＬＫのサイクルごとにトグリングされる。一方、第５ないし第８レジスタ７２５〜７２８から出力される保存キーデータｒ［８ｎ＋４］〜ｒ［８ｎ＋７］は、キースケジュラ７００が第１復号ラウンドキーＤＲＫＥＹ１をいずれも発生させる間にトグリングされない。その結果、第５ないし第８レジスタ７２５〜７２８による消耗電流が減少する。
【００７５】
次に、キースケジュラ７００が初期キーデータｗ［０］〜ｗ［５］を含む第２初期ラウンドキーＥＩＫＥＹ２を受信し、第２暗号ラウンドキーＥＲＫＥＹ２を発生させる過程を説明する。キースケジュラ７００に初期キーデータｗ［０］〜ｗ［５］を含む第２初期ラウンドキーＥＩＫＥＹ２が入力される時、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂと内部選択信号Ｍ１〜Ｍ３とがイネーブルされる。演算制御信号Ｐ２はイネーブルされて、キースケジュラ７００が第２暗号ラウンドキーＥＲＫＥＹ２をいずれも発生させるまで維持される。また、演算制御信号Ｐ１、Ｐ３、Ｐ４とロードイネーブル信号ＬＤ４、ＬＤ４Ｂとはディセーブルされて、キースケジュラ７００が第２暗号ラウンドキーＥＲＫＥＹ２をいずれも発生させるまで維持される。その結果、キースケジュラ７００が１２個の第２暗号ラウンドキーＥＲＫＥＹ２ｓを発生させる間に、第１ないし第６ロードイネーブル回路７１１〜７１６、第１ないし第６レジスタ７２１〜７２６、第１ないし第６チェーン演算器７３１〜７３６のみが動作する。
【００７６】
第７及び第８ロードイネーブル回路７１７、７１８は、ロードイネーブル信号ＬＤ４、ＬＤ４Ｂがディセーブル状態であるので、保存キーデータｒ［８ｎ＋６］、ｒ［８ｎ＋７］を入力キーデータｗ［８ｎ＋６］、ｗ［８ｎ＋７］として続けて出力する。その結果、第７及び第８レジスタ７２７、７２８の出力信号がトグリングされない。したがって、第７及び第８レジスタ７２７、７２８による消耗電流が減少する。
【００７７】
ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂに応答して第１ないし第６ロードイネーブル回路７１１〜７１６は、初期キーデータｗ［０］〜ｗ［５］を入力キーデータｗ［０］〜ｗ［５］として出力する。第１ないし第６レジスタ７２１〜７２６は、クロック信号ＣＬＫに応答して、入力キーデータｗ［０］〜ｗ［５］を受信して保存し、保存された入力キーデータｗ［０］〜ｗ［５］を保存キーデータｒ［０］〜ｒ［５］としてそれぞれ出力する。
【００７８】
内部選択信号Ｍ１〜Ｍ３に応答して、第１ないし第６内部選択回路７６１〜７６６が入力キーデータｗ［０］〜ｗ［５］を出力キーデータｘ０〜ｘ５としてそれぞれ出力する。
【００７９】
第２選択回路７４２は、演算制御信号Ｐ２、Ｐ３に応答して出力キーデータｘ５、即ち入力キーデータｗ［５］を選択して、ワードローテーション部７５１に出力する。ワードローテーション部７５１は、入力キーデータｗ［５］のビットをローテーションし、ローテーションキーデータＲＯＴを出力する。第３選択回路７４３は、演算制御信号Ｐ４に応答してローテーションキーデータＲＯＴを選択して、ワード置換部７５２に出力する。ワード置換部７５２は、ローテーションキーデータＲＯＴを所定値に置換し、置換キーデータＳＵＢを出力する。独立演算器７３９は、置換キーデータＳＵＢとラウンド定数ＲＮＣとを論理演算して、変換キーデータＳＵＣを出力する。
【００８０】
第１チェーン演算器７３１は、変換キーデータＳＵＣと保存キーデータｒ［０］とを論理演算して、演算キーデータｃ［６］を出力する。第２ないし第４チェーン演算器７３２〜７３４は、保存キーデータｒ［１］〜ｒ［３］と先端から受信される演算キーデータｃ［６］〜ｃ［８］とをそれぞれ論理演算して、演算キーデータｃ［７］〜ｃ［９］をそれぞれ出力する。この際、第１選択回路７４１が演算制御信号Ｐ１に応答して、演算キーデータｃ［９］を第５チェーン演算器７３５に出力する。したがって、第５及び第６チェーン演算器７３５、７３６が、保存キーデータｒ［４］、ｒ［５］と先端から受信される演算キーデータｃ［９］、ｃ［１０］とをそれぞれ論理演算して、演算キーデータｃ［１０］、ｃ［１１］を出力する。
【００８１】
ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂがイネーブル状態であるので、第１ないし第６ロードイネーブル回路７１１〜７１６は、演算キーデータｃ［６］〜ｃ［１１］を入力キーデータｗ［６］〜ｗ［１１］としてそれぞれ出力する。
【００８２】
この際、内部選択信号Ｍ１のみがイネーブル状態に維持され、内部選択信号Ｍ２、Ｍ３はディセーブルされる。内部選択信号Ｍ１に応答して、第１及び第２内部選択回路７６１、７６２が入力キーデータｗ［６］、ｗ［７］を出力キーデータｘ０、ｘ１としてそれぞれ出力する。また、内部選択信号Ｍ２、Ｍ３に応答して、第３ないし第６内部選択回路７６３〜７６６が保存キーデータｒ［２］〜ｒ［５］を出力キーデータｘ２〜ｘ５としてそれぞれ出力する。
【００８３】
この際、出力選択信号Ｓ２がイネーブルされ、出力選択信号Ｓ１がディセーブルされる。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０は、出力キーデータｘ０〜ｘ７のうち出力キーデータｘ４、ｘ５、ｘ０、ｘ１を選択して、第２暗号ラウンドキーＥＲＫＥＹ２として出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの一番目サイクルの間に、出力キーデータｘ０、ｘ１（即ち、入力キーデータｗ［６］、ｗ［７］）と出力キーデータｘ４、ｘ５（即ち、保存キーデータｒ［４］、ｒ［５］）を含む第２暗号ラウンドキーＥＲＫＥＹ２とを発生させる。クロック信号ＣＬＫの一番目サイクルの間に、ブロックラウンド処理部６０２には、第２暗号ラウンドキーＥＲＫＥＹ２と第２初期ラウンドキーＥＩＫＥＹ２の初期キーデータｗ［０］〜ｗ［５］とが共に入力される。ここで、第２暗号ラウンドキーＥＲＫＥＹ２の保存キーデータｒ［４］、ｒ［５］と初期キーデータｗ［４］、ｗ［５］とが実質的に同一であるので、ブロックラウンド処理部６０２は、保存キーデータｒ［４］、ｒ［５］を受信しない。したがって、ブロックラウンド処理部６０２は、入力キーデータｗ［６］、ｗ［７］を含む第２暗号ラウンドキーＥＲＫＥＹ２と初期キーデータｗ［０］〜ｗ［５］とを受信する。
【００８４】
第１ないし第６レジスタ７２１〜７２６は、クロック信号ＣＬＫに応答して入力キーデータｗ［６］〜ｗ［１１］を保存し、保存された入力キーデータｗ［６］〜ｗ［１１］を保存キーデータｒ［６］〜ｒ［１１］としてそれぞれ出力する。
【００８５】
次いで、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂと内部選択信号Ｍ１〜Ｍ３とがいずれもディセーブルされ、出力選択信号Ｓ１、Ｓ２がいずれもイネーブルされる。ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂに応答して、第１ないし第６ロードイネーブル回路７１１〜７１６が保存キーデータｒ［６］〜ｒ［１１］を入力キーデータｗ［６］〜ｗ［１１］として続けて出力する。内部選択信号Ｍ１〜Ｍ３に応答して、第１ないし第６内部選択回路７６１〜７６６が保存キーデータｒ［６］〜ｒ［１１］を出力キーデータｘ０〜ｘ５として出力する。
【００８６】
出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０は、出力キーデータｘ２〜ｘ５を選択して、第２暗号ラウンドキーＥＲＫＥＹ２として出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの二番目サイクルの間に、出力キーデータｘ２〜ｘ５、即ち保存キーデータｒ［８］〜ｒ［１１］を含む第２暗号ラウンドキーＥＲＫＥＹ２を発生させる。
【００８７】
次いで、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂが再びイネーブルされる。ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂに応答して、第１ないし第６ロードイネーブル回路７１１〜７１６は、第１ないし第６チェーン演算器７３１〜７３６から上述した動作と類似して演算されて出力される演算キーデータｃ［１２］〜ｃ［１７］を入力キーデータｗ［１２］〜ｗ［１７］として出力する。
【００８８】
次いで、キースケジュラ７００は、第１ないし第６チェーン演算器７３１〜７３６から演算キーデータｃ［４６］〜ｃ［５１］が出力されるまで上述した演算動作と、第２暗号ラウンドキーＥＲＫＥＹ２の出力動作とを反復的に行う。また、第１ないし第６チェーン演算器７３１〜７３６から演算キーデータｃ［４６］〜ｃ［５１］が出力される時、第１ないし前記第６レジスタ７２１〜７２６は、第１ないし第６ロードイネーブル回路７１１〜７１６から受信される入力キーデータｗ［４６］〜ｗ［５１］を保存し、その保存状態を維持する。入力キーデータｗ［４６］〜ｗ［５１］は、キースケジュラ７００による第２復号ラウンドキーＤＲＫＥＹ２の発生過程で使われる。また、キースケジュラ７００が第２暗号ラウンドキーＥＲＫＥＹ２を発生させる間に、第１ないし第６レジスタ７２１〜７２６は、クロック信号ＣＬＫの２サイクルごとにアップデートされた入力キーデータｗ［６ｎ］〜ｗ［６ｎ＋５］を保存する。ここで、各クロックサイクル別に、キースケジュラ７００により発生する第２暗号ラウンドキーＥＲＫＥＹ２は、次の表で示すことができる。
【００８９】
【表３】
0004740611.tif 000004
【００９０】
一方、図７Ａは、キースケジュラ７００が第２暗号ラウンドキーＥＲＫＥＹ２を発生させる間に、第１ないし第８レジスタ７２１〜７２８から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］のタイミング図である。表３と図７Ａとを参照すると、第１ないし第６レジスタ７２１〜７２６から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋５］は、クロック信号ＣＬＫの２サイクルごとにトグリングされる。また、第７及び第８レジスタ７２７、７２８から出力される保存キーデータｒ［８ｎ＋６］、ｒ［８ｎ＋７］は、キースケジュラ７００が第２暗号ラウンドキーＥＲＫＥＹ２をいずれも発生させる間にトグリングされない。その結果、第７及び第８レジスタ７２７、７２８による消耗電流が減少する。
【００９１】
次に、キースケジュラ７００が第２復号ラウンドキーＤＲＫＥＹ２を発生させる過程を説明する。キースケジュラ７００が第２復号ラウンドキーＤＲＫＥＹ２を発生させる過程は、キースケジュラ７００が初期キーデータｗ［０］〜ｗ［５］を含む第２初期ラウンドキーＥＩＫＥＹ２を受信する場合と、第２初期ラウンドキーＥＩＫＥＹ２を受信していない場合とに区分できる。
【００９２】
まず、キースケジュラ７００が初期キーデータｗ［０］〜ｗ［５］を含む第２初期ラウンドキーＥＩＫＥＹ２を受信する場合、第２復号ラウンドキーＤＲＫＥＹ２を発生させる過程を説明する。キースケジュラ７００に初期キーデータｗ［０］〜ｗ［５］を含む第２初期ラウンドキーＥＩＫＥＹ２が入力される時、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂがイネーブルされる。演算制御信号Ｐ２はイネーブルされて、キースケジュラ７００が第２復号ラウンドキーＤＲＫＥＹ２をいずれも発生させるまで維持される。演算制御信号Ｐ１、Ｐ３、Ｐ４とロードイネーブル信号ＬＤ４、ＬＤ４Ｂとがディセーブルされて、キースケジュラ７００が第２復号ラウンドキーＤＲＫＥＹ２をいずれも発生させるまで維持される。その結果、キースケジュラ７００が１２個の第２復号ラウンドキーＤＲＫＥＹ２ｓを発生させる間に、第１ないし第６ロードイネーブル回路７１１〜７１６、第１ないし第６レジスタ７２１〜７２６、第１ないし第６チェーン演算器７３１〜７３６のみが動作する。
【００９３】
前記ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂに応答して、第１ないし第６ロードイネーブル回路７１１〜７１６は、初期キーデータｗ［０］〜ｗ［５］を入力キーデータｗ［０］〜ｗ［５］として出力する。第１ないし第６レジスタ７２１〜７２６は、クロック信号ＣＬＫに応答して入力キーデータｗ［０］〜ｗ［５］を保存し、保存された前記入力キーデータｗ［０］〜ｗ［５］を保存キーデータｒ［０］〜ｒ［５］としてそれぞれ出力する。次いで、キースケジュラ７００は、第１ないし第６チェーン演算器７３１〜７３６から演算キーデータｃ［４６］〜ｃ［５１］が出力されるまで、上述した第２暗号ラウンドキーＥＲＫＥＹ２の生成のための演算動作を反復的に行う。
【００９４】
第１ないし第６チェーン演算器７３１〜７３６が演算キーデータｃ［４６］〜ｃ［５１］を出力するまで、上述した演算動作を反復的に行う間に、ブロックラウンド処理部６０２は、ラウンド制御信号ＲＣＴＬに応答して、キースケジュラ７００から出力される第２暗号ラウンドキーＥＲＫＥＹ２を受信しない。ここで、第１ないし第６チェーン演算器７３１〜７３６が演算キーデータｃ［４６］〜ｃ［５１］を出力するまで、上述した演算動作を反復的に行う間に、図５を参照して詳述したように、出力選択部７７０が第２暗号ラウンドキーＥＲＫＥＹ２を出力しないようにすることもできる。
【００９５】
次いで、第１ないし第６チェーン演算器７３１〜７３６から演算キーデータｃ［４６］〜ｃ［５１］が出力される時、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂがイネーブルされる。ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂに応答して、第１ないし第６ロードイネーブル回路７１１〜７１６が演算キーデータｃ［４６］〜ｃ［５１］を入力キーデータｗ［４６］〜ｗ［５１］としてそれぞれ出力する。第１ないし第６レジスタ７２１〜７２６は、クロック信号ＣＬＫに応答して、入力キーデータｗ［４６］〜ｗ［５１］を受信して保存し、保存された入力キーデータｗ［４６］〜ｗ［５１］を保存キーデータｒ［４６］〜ｒ［５１］としてそれぞれ出力する。
【００９６】
この際、内部選択信号Ｍ１〜Ｍ３がディセーブルされ、出力選択信号Ｓ１、Ｓ２がいずれもイネーブルされる。内部選択信号Ｍ１〜Ｍ３に応答して、第１ないし第６内部選択回路７６１〜７６６が保存キーデータｒ［４６］〜ｒ［５１］を出力キーデータｘ０〜ｘ５としてそれぞれ出力する。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０が出力キーデータｘ２〜ｘ５（即ち、保存キーデータｒ［４８］〜ｒ［５１］）を選択して出力する。第２選択回路７４２は、演算制御信号Ｐ２、Ｐ３に応答して、出力キーデータｘ５（即ち、保存キーデータｒ［５１］）を選択してワードローテーション部７５１に出力する。ワードローテーション部７５１は、保存キーデータｒ［５１］のビットをローテーションし、ローテーションキーデータＲＯＴを出力する。第３選択回路７４３は、演算制御信号Ｐ４に応答して、ローテーションキーデータＲＯＴを選択してワード置換部７５２に出力する。ワード置換部７５２は、ローテーションキーデータＲＯＴを所定値に置換して、置換キーデータＳＵＢを出力する。独立演算器７３９は、置換キーデータＳＵＢとラウンド定数ＲＮＣとを論理演算して、変換キーデータＳＵＣを出力する。
【００９７】
第１チェーン演算器７３１は、変換キーデータＳＵＣと保存キーデータｒ［４６］とを論理演算して、演算キーデータｃ［４０］を出力する。第２ないし第４チェーン演算器７３２〜７３４は、保存キーデータｒ［４７］〜ｒ［４９］と先端から受信される演算キーデータｃ［４０］〜ｃ［４２］をそれぞれ論理演算して、演算キーデータｃ［４１］〜ｃ［４３］をそれぞれ出力する。第１選択回路７４１は、演算制御信号Ｐ１に応答して、演算キーデータｃ［４３］を第５チェーン演算器７３５に出力する。第５チェーン演算器７３５は、演算キーデータｃ［４３］と保存キーデータｒ［５０］とを論理演算して、演算キーデータｃ［４４］を出力する。第６チェーン演算器７３６は、演算キーデータｃ［４４］と保存キーデータｒ［５１］とを論理演算して、演算キーデータｃ［４５］を出力する。
【００９８】
この際、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂがイネーブル状態であるので、第１ないし第６ロードイネーブル回路７１１〜７１６が演算キーデータｃ［４０］〜ｃ［４５］を入力キーデータｗ［４０］〜ｗ［４５］として出力する。
【００９９】
次いで、内部選択信号Ｍ３がイネーブルされ、内部選択信号Ｍ１、Ｍ２はディセーブルされる。また、出力選択信号Ｓ１がディセーブルされ、出力選択信号Ｓ２がイネーブルされる。内部選択信号Ｍ３に応答して、第５及び第６内部選択回路７６５、７６６が入力キーデータｗ［４４］、ｗ［４５］を出力キーデータｘ４、ｘ５として出力する。また、内部選択信号Ｍ１、Ｍ２に応答して、第１ないし第４内部選択回路７６１〜７６４が保存キーデータｒ［４６］〜ｒ［４９］を出力キーデータｘ０〜ｘ３として出力する。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０は、出力キーデータｘ４、ｘ５、ｘ０、ｘ１を選択して、第２復号ラウンドキーＤＲＫＥＹ２として出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの１３番目サイクルの間に、出力キーデータｘ４、ｘ５、ｘ０、ｘ１、即ち保存キーデータｒ［４６］、ｒ［４７］と入力キーデータｗ［４４］、ｗ［４５］を含む第２復号ラウンドキーＤＲＫＥＹ２とを発生させる。ここで、クロック信号ＣＬＫの１３番目サイクルの間に、保存キーデータｒ［４６］、ｒ［４７］と入力キーデータｗ［４４］、ｗ［４５］とを含む第２復号ラウンドキーＤＲＫＥＹ２と、保存キーデータｒ［４８］〜ｒ［５１］とがブロックラウンド処理部６０２に入力される。
【０１００】
第１ないし第６レジスタ７２１〜７２６は、クロック信号ＣＬＫに応答して、入力キーデータｗ［４０］〜ｗ［４５］をそれぞれ保存し、保存された入力キーデータｗ［４０］〜ｗ［４５］を保存キーデータｒ［４０］〜ｒ［４５］としてそれぞれ出力する。
【０１０１】
次いで、内部選択信号Ｍ１〜Ｍ３がディセーブルされ、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂと出力選択信号Ｓ１、Ｓ２とがディセーブルされる。内部選択信号Ｍ１〜Ｍ３に応答して、第１ないし第６内部選択回路７６１〜７６６が保存キーデータｒ［４０］〜ｒ［４５］を出力キーデータｘ０〜ｘ７として出力する。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０は、出力キーデータｘ０〜ｘ３を選択して、第２復号ラウンドキーＤＲＫＥＹ２として出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの１４番目サイクルの間に、出力キーデータｘ０〜ｘ３、即ち保存キーデータｒ［４０］〜ｒ［４３］を含む第２復号ラウンドキーＤＲＫＥＹ２を発生させる。次いで、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ３、ＬＤ３Ｂが再びイネーブルされる。
【０１０２】
キースケジュラ７００は、第１ないし第６チェーン演算器７３１〜７３６から演算キーデータｃ［０］〜ｃ［５］が出力されるまで、上述した演算動作と第２復号ラウンドキーＤＲＫＥＹ２の出力動作とを反復的に行う。
【０１０３】
次に、キースケジュラ７００が初期キーデータｗ［０］〜ｗ［５］を含む第２初期ラウンドキーＥＩＫＥＹ２を受信していない場合、第２復号ラウンドキーＤＲＫＥＹ２を発生させる過程を説明する。まず、第１ないし第６レジスタ７２１〜７２６が、予め保存されていた入力キーデータｗ［４６］〜ｗ［５１］を保存キーデータｒ［４６］〜ｒ［５１］としてそれぞれ出力する。
【０１０４】
この際、内部選択信号Ｍ１〜Ｍ３がディセーブルされ、出力選択信号Ｓ１、Ｓ２がイネーブルされる。内部選択信号Ｍ１〜Ｍ３に応答して、第１ないし第６内部選択回路７６１〜７６６が保存キーデータｒ［４６］〜ｒ［５１］を出力キーデータｘ０〜ｘ５としてそれぞれ出力する。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０が出力キーデータｘ２〜ｘ５（即ち、保存キーデータｒ［４８］〜ｒ［５１］）を選択して出力する。次いで、キースケジュラ７００の動作は、初期キーデータｗ［０］〜ｗ［５］を含む第２初期ラウンドキーＥＩＫＥＹ２を受信した場合、第２復号ラウンドキーＤＲＫＥＹ２を発生させる過程と実質的に同一であるので、その具体的な説明は省略する。キースケジュラ７００の第２復号ラウンドキーＤＲＫＥＹ２の発生過程の間に、第１ないし第６レジスタ７２１〜７２６は、クロック信号ＣＬＫの２サイクルごとにアップデートされた入力キーデータｗ［６ｎ］〜ｗ［６ｎ＋５］を保存する。ここで、各クロックサイクル別に、キースケジュラ７００により発生する第２復号ラウンドキーＤＲＫＥＹ２は、次の表で示すことができる。
【０１０５】
【表４】
0004740611.tif 000005
【０１０６】
一方、図７Ｂは、キースケジュラ７００が第２復号ラウンドキーＤＲＫＥＹ２を発生させる間に、第１ないし第８レジスタ７２１〜７２８から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］のタイミング図である。表４と図７Ｂとで参照されるように、第１ないし第６レジスタ７２１〜７２６から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋５］は、クロック信号ＣＬＫの２サイクルごとにトグリングされる。また、第７及び第８レジスタ７２７、７２８から出力される保存キーデータｒ［８ｎ＋６］、ｒ［８ｎ＋７］は、キースケジュラ７００が第２復号ラウンドキーＤＲＫＥＹ２をいずれも発生させる間にトグリングされない。その結果、第７及び第８レジスタ７２７、７２８による消耗電流が減少する。
【０１０７】
次に、キースケジュラ７００が初期キーデータｗ［０］〜ｗ［７］を含む第３初期ラウンドキーＥＩＫＥＹ３を受信し、第３暗号ラウンドキーＥＲＫＥＹ３を発生させる過程を説明する。キースケジュラ７００に、初期キーデータｗ［０］〜ｗ［７］を含む第３初期ラウンドキーＥＩＫＥＹ３が入力される時、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ４、ＬＤ４Ｂと内部選択信号Ｍ１〜Ｍ４とがイネーブルされる。
【０１０８】
ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ４、ＬＤ４Ｂに応答して、第１ないし第８ロードイネーブル回路７１１〜７１８が、初期キーデータｗ［０］〜ｗ［７］を入力キーデータｗ［０］〜ｗ［７］としてそれぞれ出力する。内部選択信号Ｍ１〜Ｍ４に応答して、第１ないし第８内部選択回路７６１〜７６８が入力キーデータｗ［０］〜ｗ［７］を出力キーデータｘ０〜ｘ７としてそれぞれ出力する。第１ないし第８レジスタ７２１〜７２８は、クロック信号ＣＬＫに応答して、入力キーデータｗ［０］〜ｗ［７］をそれぞれ受信して保存し、保存された入力キーデータｗ［０］〜ｗ［７］を保存キーデータｒ［０］〜ｒ［７］としてそれぞれ出力する。
【０１０９】
この際、演算制御信号Ｐ２、Ｐ４がディセーブルされ、演算制御信号Ｐ３がイネーブルされる。演算制御信号Ｐ２、Ｐ３に応答して、第２選択回路７４２が出力キーデータｘ７（即ち、入力キーデータｗ［７］）を選択して、ワードローテーション部７５１に出力する。ワードローテーション部７５１は、保存キーデータｒ［７］のビットをローテーションし、ローテーションキーデータＲＯＴを出力する。第３選択回路７４３は、演算制御信号Ｐ４に応答してローテーションキーデータＲＯＴを選択して、ワード置換部７５２に出力する。ワード置換部７５２は、ローテーションキーデータＲＯＴを所定値に置換し、置換キーデータＳＵＢを出力する。独立演算器７３９は、置換キーデータＳＵＢとラウンド定数ＲＮＣとを論理演算して、変換キーデータＳＵＣを出力する。
【０１１０】
第１チェーン演算器７３１は、変換キーデータＳＵＣと保存キーデータｒ［０］とを論理演算して、演算キーデータｃ［８］を出力する。第２ないし第４チェーン演算器７３２〜７３４は、保存キーデータｒ［１］〜ｒ［３］と先端から受信される演算キーデータｃ［８］〜ｃ［１０］とをそれぞれ論理演算して、演算キーデータｃ［９］〜ｃ［１１］をそれぞれ出力する。
【０１１１】
この際、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂと内部選択信号Ｍ１、Ｍ２のみがイネーブルされ、ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂと内部選択信号Ｍ３、Ｍ４とはディセーブルされる。また、出力選択信号Ｓ１、Ｓ２がいずれもディセーブルされ、演算制御信号Ｐ１、Ｐ４がイネーブルされる。
【０１１２】
ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂに応答して、第１ないし第４ロードイネーブル回路７１１〜７１４が演算キーデータｃ［８］〜ｃ［１１］を入力キーデータｗ［８］〜ｗ［１１］としてそれぞれ出力する。ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂに応答して第５ないし第８ロードイネーブル回路７１５〜７１８は、保存キーデータｒ［４］〜ｒ［７］を入力キーデータｗ［４］〜ｗ［７］として続けて出力する。内部選択信号Ｍ１、Ｍ２に応答して、第１ないし第４内部選択回路７６１〜７６４が入力キーデータｗ［８］〜ｗ［１１］を選択して、出力キーデータｘ０〜ｘ３としてそれぞれ出力する。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０が出力キーデータｘ０〜ｘ３を選択して、第３暗号ラウンドキーＥＲＫＥＹ３として出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの二番目サイクルの間に、出力キーデータｘ０〜ｘ３、即ち入力キーデータｗ［８］〜ｗ［１１］を含む第３暗号ラウンドキーＥＲＫＥＹ３を発生させる。ここで、クロック信号ＣＬＫの一番目サイクルの間に、ブロックラウンド処理部６０２には、図２に示すように、第３初期ラウンドキーＥＩＫＥＹ３の初期キーデータｗ［０］〜ｗ［７］が外部から直接入力される。
【０１１３】
演算制御信号Ｐ４に応答して、第３選択回路７４３が演算キーデータｃ［１１］を選択して、ワード置換部７５２に出力する。ワード置換部７５２は、演算キーデータｃ［１１］を所定値に置換し、置換キーデータＳＵＢを出力する。第１選択回路７４１は、演算制御信号Ｐ１に応答して、置換キーデータＳＵＢを第５チェーン演算器７３５に出力する。
【０１１４】
第５チェーン演算器７３５は、保存キーデータｒ［４］と置換キーデータＳＵＢとを論理演算し、演算キーデータｃ［１２］を出力する。第６ないし第８チェーン演算器７３６〜７３８は、保存キーデータｒ［５］〜ｒ［７］と先端から受信される演算キーデータｃ［１２］〜ｃ［１４］とをそれぞれ論理演算して、演算キーデータｃ［１３］〜ｃ［１５］をそれぞれ出力する。
【０１１５】
この際、ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂ、内部選択信号Ｍ３、Ｍ４、及び出力選択信号Ｓ１がイネーブルされる。また、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂ、内部選択信号Ｍ１、Ｍ２、及び出力選択信号Ｓ２がディセーブルされる。ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂに応答して、第５ないし第８ロードイネーブル回路７１５〜７１８が演算キーデータｃ［１２］〜ｃ［１５］を入力キーデータｗ［１２］〜ｗ［１５］としてそれぞれ出力する。内部選択信号Ｍ３、Ｍ４に応答して、第５ないし第８内部選択回路７６５〜７６８が入力キーデータｗ［１２］〜ｗ［１５］を選択して、出力キーデータｘ４〜ｘ７としてそれぞれ出力する。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０が前記出力キーデータｘ４〜ｘ７を選択して、第３暗号ラウンドキーＥＲＫＥＹ３として出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの三番目サイクルの間に、出力キーデータｘ４〜ｘ７、即ち入力キーデータｗ［１２］〜ｗ［１５］を含む第３暗号ラウンドキーＥＲＫＥＹ３を発生させる。
【０１１６】
第１ないし第８レジスタ７２１〜７２８は、クロック信号ＣＬＫに応答して入力キーデータｗ［８］〜ｗ［１５］をそれぞれ保存し、保存された入力キーデータｗ［８］〜ｗ［１５］を保存キーデータｒ［８］〜ｒ［１５］としてそれぞれ出力する。次いで、キースケジュラ７００は、第１ないし第８チェーン演算器７３１〜７３８が演算キーデータｃ［５２］〜ｃ［５９］をそれぞれ出力するまで、演算動作と第３暗号ラウンドキーＥＲＫＥＹ３の出力動作とを反復的に行う。
【０１１７】
また、第１ないし前記第８チェーン演算器７３１〜７３８が演算キーデータｃ［５２］〜ｃ［５９］をそれぞれ出力する時、第１ないし前記第８レジスタ７２１〜７２８が、第１ないし第８ロードイネーブル回路７１１〜７１８から受信される入力キーデータｗ［５２］〜ｗ［５９］を保存し、その保存状態を維持する。入力キーデータｗ［５２］〜ｗ［５９］は、キースケジュラ７００が第３復号ラウンドキーＤＲＫＥＹ３を発生させる時に使われる。
【０１１８】
また、キースケジュラ７００の第３暗号ラウンドキーＥＲＫＥＹ３の発生過程の間に、一番目サイクルを除いて、クロック信号ＣＬＫのサイクルごとに、第１ないし第４レジスタ７２１〜７２４と第５ないし第８レジスタ７２５〜７２８とが、交互的にアップデートされた演算キーデータｃ［８ｎ］〜ｃ［８ｎ＋３］、ｃ［８ｎ＋４］〜ｃ［８ｎ＋７］をそれぞれ保存する。その結果、クロック信号ＣＬＫの一サイクルの間に、ワード置換部７５２による置換過程が一回のみ行われるので、ワード置換部７５２は、４個の置換テーブルのみを含めばよい。ここで、各クロックサイクル別に、キースケジュラ７００により発生する第３暗号ラウンドキーＥＲＫＥＹ３は、次の表で示すことができる。
【０１１９】
【表５】
0004740611.tif 000006
【０１２０】
一方、図８Ａは、キースケジュラ７００が第３暗号ラウンドキーＥＲＫＥＹ３を発生させる間、第１ないし第８レジスタ７２１〜７２８から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］のタイミング図である。表５と図８Ａとを参照すると、クロック信号ＣＬＫのサイクルごとに、第１ないし第４レジスタ７２１〜７２４から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋３］と、第５ないし第８レジスタ７２５〜７２８から出力される保存キーデータｒ［８ｎ＋４］〜ｒ［８ｎ＋７］とが交互的にトグリングされる。
【０１２１】
次に、キースケジュラ７００が第３復号ラウンドキーＤＲＫＥＹ３を発生させる過程を説明する。キースケジュラ７００が第３復号ラウンドキーＤＲＫＥＹ３を発生させる過程は、キースケジュラ７００が、初期キーデータｗ［０］〜ｗ［７］を含む第３初期ラウンドキーＥＩＫＥＹ３を受信する場合と受信していない場合とに区分できる。
まず、キースケジュラ７００が初期キーデータｗ［０］〜ｗ［７］を含む第３初期ラウンドキーＥＩＫＥＹ３を受信する場合、第３復号ラウンドキーＤＲＫＥＹ３を発生させる過程を説明する。
【０１２２】
キースケジュラ７００に、初期キーデータｗ［０］〜ｗ［７］を含む第３初期ラウンドキーＥＩＫＥＹ３が入力される時、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ４、ＬＤ４Ｂがいずれもイネーブルされる。ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ４、ＬＤ４Ｂに応答して、第１ないし第８ロードイネーブル回路７１１〜７１８が初期キーデータｗ［０］〜ｗ［７］を入力キーデータｗ［０］〜ｗ［７］としてそれぞれ出力する。第１ないし第８レジスタ７２１〜７２８は、クロック信号ＣＬＫに応答して入力キーデータｗ［０］〜ｗ［７］を保存し、保存された入力キーデータｗ［０］〜ｗ［７］を保存キーデータｒ［０］〜ｒ［７］としてそれぞれ出力する。
【０１２３】
次いで、キースケジュラ７００は、第１ないし第８チェーン演算器７３１〜７３８から演算キーデータｃ［５２］〜ｃ［５９］が出力されるまで、上述した第３暗号ラウンドキーＥＲＫＥＹ３の生成のための演算動作を反復的に行う。第１ないし第８チェーン演算器７３１〜７３８が演算キーデータｃ［５２］〜ｃ［５９］を出力するまで、キースケジュラ７００が上述した演算動作を反復的に行う間に、ブロックラウンド処理部６０２は、ラウンド制御信号ＲＣＴＬに応答して、キースケジュラ７００から出力される第３暗号ラウンドキーＥＲＫＥＹ３を受信しない。ここで、上述した演算動作を反復的に行う間に、図５を参照して詳述したように、出力選択部７７０が第３暗号ラウンドキーＥＲＫＥＹ３を出力しないようにすることもできる。
【０１２４】
第１ないし第８チェーン演算器７３１〜７３８から演算キーデータｃ［５２］〜ｃ［５９］が出力される時、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ４、ＬＤ４Ｂに応答して、第１ないし第８ロードイネーブル回路７１１〜７１８が演算キーデータｃ［５２］〜ｃ［５９］を入力キーデータｗ［５２］〜ｗ［５９］としてそれぞれ出力する。第１ないし第８レジスタ７２１〜７２８がクロック信号ＣＬＫに応答して、入力キーデータｗ［５２］〜ｗ［５９］を受信して保存し、保存された入力キーデータｗ［５２］〜ｗ［５９］を保存キーデータｒ［５２］〜ｒ［５９］としてそれぞれ出力する。
【０１２５】
この際、内部選択信号Ｍ１〜Ｍ４と演算制御信号Ｐ２、Ｐ４とがディセーブルされ、演算制御信号Ｐ３がイネーブルされる。また、出力選択信号Ｓ１がイネーブルされ、出力選択信号Ｓ２がディセーブルされる。内部選択信号Ｍ１〜Ｍ４に応答して、第１ないし第８内部選択回路７６１〜７６８が保存キーデータｒ［５２］〜ｒ［５９］を出力キーデータｘ０〜ｘ７としてそれぞれ出力する。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０が出力キーデータｘ４〜ｘ７（即ち、保存キーデータｒ［５６］〜ｒ［５９］）を選択して出力する。
【０１２６】
次いで、出力選択信号Ｓ１、Ｓ２がいずれもディセーブルされる。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０が出力キーデータｘ０〜ｘ３（即ち、保存キーデータｒ［５２］〜ｒ［５５］）を選択して出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの１５番目サイクルの間に、出力キーデータｘ０〜ｘ３、即ち保存キーデータｒ［５２］〜ｒ［５５］を含む第３復号ラウンドキーＤＲＫＥＹ３を発生させる。ここで、クロック信号ＣＬＫの１５番目サイクルの間に、保存キーデータｒ［５２］〜ｒ［５５］を含む第３復号ラウンドキーＤＲＫＥＹ３と保存キーデータｒ［５６］〜ｒ［５９］とが、ブロックラウンド処理部６０２に入力される。
【０１２７】
演算制御信号Ｐ２、Ｐ３に応答して、第２選択回路７４２が出力キーデータｘ７（即ち、保存キーデータｒ［５９］）を選択して、ワードローテーション部７５１に出力する。ワードローテーション部７５１は、保存キーデータｒ［５９］のビットをローテーションし、ローテーションキーデータＲＯＴを出力する。第３選択回路７４３は、演算制御信号Ｐ４に応答してローテーションキーデータＲＯＴを選択して、ワード置換部７５２に出力する。ワード置換部７５２は、ローテーションキーデータＲＯＴを所定値に置換し、置換キーデータＳＵＢを出力する。独立演算器７３９は、置換キーデータＳＵＢとラウンド定数ＲＮＣとを論理演算して、変換キーデータＳＵＣを出力する。
【０１２８】
第１チェーン演算器７３１は、変換キーデータＳＵＣと保存キーデータｒ［５２］とを論理演算して、演算キーデータｃ［４４］を出力する。第２ないし第４チェーン演算器７３２〜７３４は、保存キーデータｒ［５３］〜ｒ［５５］と先端から受信される演算キーデータｃ［４４］〜ｃ［４６］とをそれぞれ論理演算して、演算キーデータｃ［４５］〜ｃ［４７］をそれぞれ出力する。
【０１２９】
この際、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂがディセーブルされ、演算制御信号Ｐ１、Ｐ４がイネーブルされる。第１ないし第４ロードイネーブル回路７１１〜７１４は、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂに応答して、保存キーデータｒ［５２］〜ｒ［５５］を入力キーデータｗ［５２］〜ｗ［５５］として出力し続ける。
【０１３０】
演算制御信号Ｐ４に応答して、第３選択回路７４３が演算キーデータｃ［４７］を選択して、ワード置換部７５２に出力する。ワード置換部７５２は、演算キーデータｃ［４７］を所定値に置換し、置換キーデータＳＵＢを出力する。第１選択回路７４１は、演算制御信号Ｐ１に応答して、置換キーデータＳＵＢを第５チェーン演算器７３５に出力する。第５チェーン演算器７３５は、保存キーデータｒ［５６］と置換キーデータＳＵＢとを論理演算し、演算キーデータｃ［４８］を出力する。第６ないし第８チェーン演算器７３６〜７３８は、保存キーデータｒ［５７］〜ｒ［５９］と先端から受信される演算キーデータｃ［４８］〜ｃ［５０］とをそれぞれ論理演算して、演算キーデータｃ［４９］〜ｃ［５１］をそれぞれ出力する。
【０１３１】
この際、ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂと内部選択信号Ｍ３、Ｍ４、及び出力選択信号Ｓ１がイネーブルされ、出力選択信号Ｓ２がディセーブルされる。ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂに応答して、第５ないし第８ロードイネーブル回路７１５〜７１８が演算キーデータｃ［４８］〜ｃ［５１］を入力キーデータｗ［４８］〜ｗ［５１］としてそれぞれ出力する。内部選択信号Ｍ３、Ｍ４に応答して、第５ないし第８内部選択回路７６５〜７６８が入力キーデータｗ［４８］〜ｗ［５１］を選択して、出力キーデータｘ４〜ｘ７としてそれぞれ出力する。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０が出力キーデータｘ４〜ｘ７を選択して、第３復号ラウンドキーＤＲＫＥＹ３として出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの１６番目サイクルの間に、出力キーデータｘ４〜ｘ７、即ち入力キーデータｗ［４８］〜ｗ［５１］を含む第３復号ラウンドキーＤＲＫＥＹ３を発生させる。
【０１３２】
次いで、第５ないし第８レジスタ７２５〜７２８は、入力キーデータｗ［４８］〜ｗ［５１］を保存し、保存された入力キーデータｗ［４８］〜ｗ［５１］を保存キーデータｒ［４８］〜ｒ［５１］としてそれぞれ出力する。この際、ロードイネーブル信号ＬＤ３、ＬＤ３Ｂ、ＬＤ４、ＬＤ４Ｂと内部選択信号Ｍ３、Ｍ４とがディセーブルされ、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂと内部選択信号Ｍ１、Ｍ２とがイネーブルされる。また、出力選択信号Ｓ１、Ｓ２と演算制御信号Ｐ２、Ｐ４がいずれもディセーブルされ、演算制御信号Ｐ３がイネーブルされる。
【０１３３】
ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ、ＬＤ２、ＬＤ２Ｂに応答して、第１ないし第４ロードイネーブル回路７１１〜７１４が演算キーデータｃ［４４］〜ｃ［４７］を入力キーデータｗ［４４］〜ｗ［４７］として出力する。内部選択信号Ｍ１、Ｍ２に応答して、第１ないし第４内部選択回路７６１〜７６４が入力キーデータｗ［４４］〜ｗ［４７］を選択して出力キーデータｘ０〜ｘ３として出力する。第５ないし第８内部選択回路７６５〜７６８は、内部選択信号Ｍ３、Ｍ４に応答して、保存キーデータｒ［４８］〜ｒ［５１］を選択して出力キーデータｘ４〜ｘ７として出力する。出力選択信号Ｓ１、Ｓ２に応答して、出力選択部７７０が出力キーデータｘ０〜ｘ３を選択して、第３復号ラウンドキーＤＲＫＥＹ３として出力する。その結果、キースケジュラ７００は、クロック信号ＣＬＫの１７番目サイクルの間に、出力キーデータｘ０〜ｘ３、即ち入力キーデータｗ［４４］〜ｗ［４７］を含む第３復号ラウンドキーＤＲＫＥＹ３を発生させる。
【０１３４】
第１ないし第４レジスタ７２１〜７２４は、クロック信号ＣＬＫに応答して入力キーデータｗ［４４］〜ｗ［４７］をそれぞれ保存し、保存された入力キーデータｗ［４４］〜ｗ［４７］を保存キーデータｒ［４４］〜ｒ［４７］としてそれぞれ出力する。演算制御信号Ｐ４に応答して、第２選択回路７４２が出力キーデータｘ７（即ち、保存キーデータｒ［５１］）を選択して、ワードローテーション部７５１に出力する。次いで、キースケジュラ７００は、第１ないし前記第８チェーン演算器７３１〜７３８が演算キーデータｃ［０］〜ｃ［７］をそれぞれ出力するまで、演算動作と第３復号ラウンドキーＤＲＫＥＹ３の出力動作とを反復的に行う。
【０１３５】
次に、キースケジュラ７００が初期キーデータｗ［０］〜ｗ［７］を含む第３初期ラウンドキーＥＩＫＥＹ３を受信していない場合、第３復号ラウンドキーＤＲＫＥＹ３を発生させる過程を説明する。
【０１３６】
第１ないし第８レジスタ７２１〜７２８は、予め保存されていた入力キーデータｗ［５２］〜ｗ［５９］を保存キーデータｒ［５２］〜ｒ［５９］としてそれぞれ出力する。次いで、ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ４、ＬＤ４Ｂと内部選択信号Ｍ１〜Ｍ４とがいずれもディセーブルされる。ロードイネーブル信号ＬＤ１、ＬＤ１Ｂ〜ＬＤ４、ＬＤ４Ｂに応答して、第１ないし第８ロードイネーブル回路７１１〜７１８が保存キーデータｒ［５２］〜ｒ［５９］を入力キーデータｗ［５２］〜ｗ［５９］として続けて出力する。内部選択信号Ｍ１〜Ｍ４に応答して、第１ないし第８内部選択回路７６１〜７６８が保存キーデータｒ［５２］〜ｒ［５９］を出力キーデータｘ０〜ｘ７として出力する。次いで、キースケジュラ７００の動作は、初期キーデータｗ［０］〜ｗ［７］を含む第３初期ラウンドキーＥＩＫＥＹ３を受信した場合、第３復号ラウンドキーＤＲＫＥＹ３を発生させる過程と実質的に同一であるので、その具体的な説明は省略する。キースケジュラ７００の第３復号ラウンドキーＤＲＫＥＹ３の発生過程の間に、クロック信号ＣＬＫのサイクルごとに、第１ないし第４レジスタ７２１〜７２４と第５ないし第８レジスタ７２５〜７２８とが、交互的にアップデートされた入力キーデータｗ［８ｎ］〜ｗ［８ｎ＋３］、ｗ［８ｎ＋４］〜ｗ［８ｎ＋７］をそれぞれ保存する。ここで、各クロックサイクル別に、キースケジュラ７００により発生する第３復号ラウンドキーＤＲＫＥＹ３は、次の表で示すことができる。
【０１３７】
【表６】
0004740611.tif 000007
【０１３８】
一方、図８Ｂは、キースケジュラ７００が第３復号ラウンドキーＤＲＫＥＹ３を発生させる間に、第１ないし第８レジスタ７２１〜７２８から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋７］のタイミング図である。表６と図８Ｂとで参照されるように、クロック信号ＣＬＫのサイクルごとに、第１ないし第４レジスタ７２１〜７２４から出力される保存キーデータｒ［８ｎ］〜ｒ［８ｎ＋３］と、第５ないし第８レジスタ７２５〜７２８から出力される保存キーデータｒ［８ｎ＋４］〜ｒ［８ｎ＋７］とが交互的にトグリングされる。
【０１３９】
図９は、本発明の他の実施例によるキースケジュラ８００を詳細に示す図である。図９を参照すると、キースケジュラ８００は、キー保存部８０１、キー演算部８０２、及びキー出力部８０３を含む。ここで、キースケジュラ８００の構成及び具体的な動作説明は、図３に示すキースケジュラ７００と一つの相違点を除いて実質的に同一であるので省略する。
【０１４０】
キースケジュラ８００、７００の相違点は、キースケジュラ８００のキー保存部８０１が、第１ないし第４クロックゲート回路８１１〜８１４と第１ないし第８レジスタ８２１〜８２８とを含むことである。第１ないし第４クロックゲート回路８１１〜８１４は、それぞれ二つのレジスタに連結される。即ち、第１クロックゲート回路８１１が第１及び第２レジスタ８２１、８２２に連結され、第２クロックゲート回路８１２が第３及び第４レジスタ８２３、８２４に連結される。また、第３クロックゲート回路８１３が第５及び第６レジスタ８２５、８２６に連結され、第４クロックゲート回路８１４が第７及び第８レジスタ８２７、８２８に連結される。第１ないし第４クロックゲート回路８１１〜８１４のそれぞれは、ロードイネーブル信号ＬＤ１〜ＬＤ４に応答して、第１ないし第８レジスタ８２１〜８２８にクロック信号ＣＬＫを供給するか、または供給を中断する。その結果、第１ないし第８レジスタ８２１〜８２８が入力される信号を保存するか、または保存しない。
【０１４１】
図１０は、図９に示されたクロックゲート回路とレジスタとを詳細に示す図であって、第１クロックゲート回路８１１と第１及び第２レジスタ８２１、８２２のみが示される。第２ないし第４クロックゲート回路８１２〜８１４の構成及び具体的な動作説明は、第１クロックゲート回路８１１と実質的に同一であるので省略する。図１０を参照すると、第１クロックゲート回路８１１は、ＡＮＤゲートで実現できる。第１クロックゲート回路８１１は、ロードイネーブル信号ＬＤ１とクロック信号ＣＬＫとを受信する。第１クロックゲート回路８１１は、ロードイネーブル信号ＬＤ１に応答して、クロック信号ＣＬＫを第１及び第２レジスタ８２１、８２２に出力するか、または出力しない。即ち、第１クロックゲート回路８１１は、ロードイネーブル信号ＬＤ１がイネーブルされる時にクロック信号ＣＬＫを出力し、ロードイネーブル信号ＬＤ１がディセーブルされる時にクロック信号ＣＬＫを出力しない。第１及び第２レジスタ８２１、８２２は、クロック信号ＣＬＫを受信すれば、入力される信号ｗ［０］、ｗ［１］またはｃ［８ｎ］、ｃ［８ｎ＋１］を保存する。
【０１４２】
本発明は図面に示した一実施例に基づいて説明されたが、これは例示的なものに過ぎず、当業者であれば、これから多様な変形及び均等な他の実施例が可能であるという点を理解できるであろう。従って、本発明の真の技術的な保護範囲は、特許請求の範囲の技術的思想により決まらなければならない。
【産業上の利用可能性】
【０１４３】
本発明は、小さいチップ面積と少ない消費電力とが要求されるＡＥＳ暗号化／復号化システムに適している。
【図面の簡単な説明】
【０１４４】
【図１】従来技術によるキースケジュラを備えるＡＥＳアルゴリズムを利用する暗号化／復号化装置のブロック図である。
【図２】本発明によるキースケジュラを備える暗号化／復号化装置のブロック図である。
【図３】本発明の一実施例によるキースケジュラを詳細に示すブロック図である。
【図４】図３に示されたロードイネーブル回路とレジスタとを詳細に示す図である。
【図５】図３に示された出力選択部を詳細に示す図である。
【図６】図３に示されたキースケジュラにより第１暗号ラウンドキーまたは第１復号ラウンドキーが生成される時、レジスタの出力信号のタイミング図である。
【図７】Ａ及びＢは、図３に示されたキースケジュラにより第２暗号ラウンドキーまたは第２復号ラウンドキーが生成される時、レジスタの出力信号のタイミング図である。
【図８】Ａ及びＢは、図３に示されたキースケジュラにより第３暗号ラウンドキーまたは第３復号ラウンドキーが生成される時、レジスタの出力信号のタイミング図である。
【図９】本発明の他の実施例によるキースケジュラを詳細に示す図である。
【図１０】図９に示されたクロックゲート回路とレジスタとを詳細に示す図である。
【符号の説明】
【０１４５】
７００  キースケジュラ
７０１  キー保存部
７０２  キー演算部
７０３  キー出力部
７１１〜７１８  第１ないし第８ロードイネーブル回路
７２１〜７２８  第１ないし第８レジスタ
７３１〜７３８  第１ないし第８チェーン演算器
７３９  独立演算器
７４１〜７４３  第１ないし第３選択回路
７５１  ワードローテーション部
７５２  ワード置換部
７５３  ラウンド定数発生器
７６１〜７６８  第１ないし第８内部選択回路
７７０  出力選択部
【図１】
0004740611.tif 000008
【図２】
0004740611.tif 000009
【図３】
0004740611.tif 000010
【図４】
0004740611.tif 000011
【図５】
0004740611.tif 000012
【図６】
0004740611.tif 000013
【図７】
0004740611.tif 000014
【図８】
0004740611.tif 000015
【図９】
0004740611.tif 000016
【図１０】
0004740611.tif 000017