(57)【要約】【課題】ＡＥＳブロック暗号化におけるラウンド処理を高速化する。【解決手段】入力データの１ブロックを８ビットごとに複数のデータに区切ったときの、その複数のデータのそれぞれを３２ビットのデータに変換する演算テーブル１１１〜１１４と、変換された３２ビットのデータのそれぞれをラッチするラッチ回路１２Ａ〜１２Ｐとを設ける。ラッチされたデータを所定の組み合わせでイクスクルーシブオア処理する複数のイクスクルーシブオア回路１３Ａ〜１３Ｐと、このイクスクルーシブオア出力と、ラウンドキーデータとのイクスクルーシブオア処理を行うイクスクルーシブオア回路１４とを設ける。イクスクルーシブオア回路１３Ａ〜１３Ｐからは、出力としてＡＥＳブロック暗号化法におけるＳｕｂＢｙｔｅｓ処理およびＭｉｘＣｏｌｕｍｎ処理の実行結果と同等のデータを取り出す。イクスクルーシブオア回路１４から平文データの暗号文データを取り出す。【選択図】        図１
2004184567.tif 000002
【特許請求の範囲】
【請求項１】
入力データの１ブロックを８ビットごとに演算テーブルに供給して３２ビットのデータに変換し、
この変換結果のデータをラッチし、
このラッチされたデータを所定の組み合わせでイクスクルーシブオア処理してＡＥＳブロック暗号化法におけるＳｕｂＢｙｔｅｓ処理およびＭｉｘＣｏｌｕｍｎ処理の実行結果と同等のデータを生成し、
この同等のデータと、ラウンドキーデータとのイクスクルーシブオア処理を実行して上記入力データをラウンド処理した結果のデータを得る
ようにしたＡＥＳブロック暗号方法。
【請求項２】
１回のラウンド処理が、
入力データの１ブロックを８ビットごとに演算テーブルに供給して３２ビットのデータに変換し、
この変換結果のデータをラッチし、
このラッチされたデータを所定の組み合わせでイクスクルーシブオア処理してＡＥＳブロック暗号化法におけるＳｕｂＢｙｔｅｓ処理およびＭｉｘＣｏｌｕｍｎ処理の実行結果と同等のデータを生成し、
この同等のデータと、ラウンドキーデータとのイクスクルーシブオア処理を実行することによりラウンドデータを生成する
ようにした処理であって、
上記ラウンドデータを新たな入力データとして上記ラウンド処理を所定の回数繰り返すことにより暗号文データを得る
ようにしたＡＥＳブロック暗号方法。
【請求項３】
入力データの１ブロックを８ビットごとに複数のデータに区切ったときの、その複数のデータのそれぞれを３２ビットのデータに変換する演算テーブルと、
上記変換された３２ビットのデータのそれぞれをラッチするラッチ回路と、
このラッチされたデータを所定の組み合わせでイクスクルーシブオア処理する複数のイクスクルーシブオア回路と、
この複数のイクスクルーシブオア回路の出力と、ラウンドキーデータとのイクスクルーシブオア処理を行う別のイクスクルーシブオア回路と
を有し、
上記複数のイクスクルーシブオア回路からは、上記出力としてＡＥＳブロック暗号化法におけるＳｕｂＢｙｔｅｓ処理およびＭｉｘＣｏｌｕｍｎ処理の実行結果と同等のデータを取り出し、
上記別のイクスクルーシブオア回路から上記入力データのラウンド処理の結果のラウンドデータを取り出す
ようにしたＡＥＳブロック暗号回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＡＥＳブロック暗号方法およびその暗号回路に関する。
【０００２】
【従来の技術】
平文データを暗号文データに暗号化する方法の１つとして、ＡＥＳブロック暗号化法がある。このＡＥＳブロック暗号化法は、平文データの１２８ビット、１９２ビットあるいは２５６ビットを１ブロックとし、その１ブロックごとに「ラウンド処理」と呼ばれる処理を所定の回数だけ実行して暗号化を行うものである（例えば、非特許文献１参照）。
【０００３】
図６は、そのＡＥＳブロック暗号化の処理手順のアウトラインを示し、この図６における第２行目以降の各行の処理が、それぞれ上記の「ラウンド処理」である。そして、ＡＥＳブロック暗号化を行う場合には、まず、図６の第１行目に示すように、もとの１ブロックの平文データが、ラウンドキーデータとイクスクルーシブオア処理されて第１番目のラウンドデータが作成される。
【０００４】
続いて、図６の第２行目に示すように、第１行目の処理で作成された第１番目のラウンドデータに対して、後述するＳｕｂＢｙｔｅｓ処理、ＳｈｉｆｔＲｏｗ処理、ＭｉｘＣｏｌｕｍｎ処理と呼ばれる処理が順に実行され、その処理結果が、別のラウンドキーデータとイクスクルーシブオア処理されて第２番目のラウンドデータが作成される。この第１番目のラウンドデータから第２番目のラウンドデータを作成するまでの処理が、第１番目のラウンド処理である。
【０００５】
そして、以後、この第１番目のラウンド処理と同様のラウンド処理が繰り返され、全部でＲ回のラウンド処理が実行されたとき、その処理結果が暗号文データとして取り出される。
【０００６】
なお、最後のラウンド処理のときには、ＭｉｘＣｏｌｕｍｎ処理は実行されない。また、ラウンド処理の回数Ｒは、１ブロックの長さと、ラウンドキーデータの長さとから決まり、１０回、１２回あるいは１４回のどれかとされる。さらに、ラウンドキーデータの長さは１２８ビット、１９２ビットあるいは２５６ビットのどれかとされる。
【０００７】
図７は、ラウンド処理の実際の処理手順および処理内容を示す。なお、この例においては、平文データの１ブロックが１２８ビットであり、したがって、ラウンドデータの１ブロックも１２８ビットの場合である。
【０００８】
まず、図７Ａに示すように、第ｒ番目（１≦ｒ≦Ｒ−１）のラウンドデータは、８ビットごとに１６個のデータＡ〜Ｐに区切られる。そして、図７Ｂに示すように、そのラウンドデータは、８ビットのデータごとに４行４列のデータテーブルの各セルに振り分けられる。このとき、ラウンドデータは、まず、データＡ〜Ｄが第１列の第１行〜第４行のセルに順に振り分けられ、次にデータＥ〜Ｈが第２列の第１行〜第４行のセルに順に振り分けられ、・・・というように、列順に、かつ、各列においては、行順に振り分けられる。
【０００９】
続いて、その振り分けられたデータＡ〜Ｐに対してＳｕｂＢｙｔｅｓ処理が行われ、図７Ｃに示すように、データＡ〜ＰはデータＳ００〜Ｓ３３とされる。このＳｕｂＢｙｔｅｓ処理は、データＡ〜Ｐのそれぞれに対して、非線形のビット転置を行うものであり、そのビット転置は、データＡ〜Ｐを２進数の多項式とし、図８Ａに示す式に対して逆元を計算し、さらに、所定の行列でアフィン変換を行うものである。ただし、実際には、このＳｕｂＢｙｔｅｓ処理は、Ｓテーブルと呼ばれるテーブルを使用して実現される。
【００１０】
次に、図７Ｄに示すように、データＳ００〜Ｓ３３に対してＳｈｉｆｔＲｏｗ処理が行われる。このＳｈｉｆｔＲｏｗ処理は、第１行のデータＳ００〜Ｓ０３はそのままとし、第２行のデータＳ１０〜Ｓ１３を左方向に１列分回転させ、第３行のデータＳ２０〜Ｓ２３を左方向に２列分回転させ、第４行のデータＳ３０〜Ｓ３３を左方向に３列分回転させるものである。
【００１１】
そして、ＳｈｉｆｔＲｏｗ処理の行われたデータＳ００〜Ｓ３２に対してＭｉｘＣｏｌｕｍｎ処理が行われ、図７Ｅに示すように、データＳ００〜データＳ３２はデータＤ００〜Ｄ３３とされる。このＭｉｘＣｏｌｕｍｎ処理は、図７Ｄのデータテーブルの各列ごとに、図８Ｂに示す演算を実行してデータＳ００〜データＳ３２からデータＤ００〜Ｄ３３を得るものである。
【００１２】
さらに、図７Ｆに示すように、４行４列のラウンドキーデータＫ００〜Ｋ３３が用意される。このラウンドキーデータＫ００〜Ｋ３３は、暗号化用のキーデータから生成されるものであり、データＫ００〜Ｋ３３のそれぞれも８ビットであるが、暗号化用のキーデータそのものは、１２８ビット、１９２ビットあるいは２５６ビットのいずれかである。また、ラウンドキーデータＫ００〜Ｋ３３は、ラウンドデータごとに変更される。
【００１３】
そして、このラウンドキーデータＫ００〜Ｋ３３と、データＤ００〜Ｄ３３とのイクスクルーシブオアが演算され、図７Ｇに示すように、その演算結果のデータＥ００〜Ｅ３３が取り出される。このデータＥ００〜Ｅ３３が、第ｒ番目のラウンドデータＡ〜Ｐをラウンド処理した結果のデータであり、第（ｒ＋１）番目のラウンド処理の入力データとなる。
【００１４】
以上がラウンド処理の処理手順および処理内容であるが、ＡＥＳブロック暗号回路をハードウェアにより構成する場合、ＭｉｘＣｏｌｕｍｎ処理の実行部をハードウェアにより構成すると、そのロジックのリソースが極端に大きくなってしまう。そこで、ＡＥＳブロック暗号回路をハードウェア化する場合、ＳｕｂＢｙｔｅｓ処理およびＭｉｘＣｏｌｕｍｎ処理を１つの演算テーブルにより実行するようにしたものがある。
【００１５】
図９は、そのＳｕｂＢｙｔｅｓ処理およびＭｉｘＣｏｌｕｍｎ処理を１つの演算テーブルにより実現する場合のラウンド処理の処理手順および処理内容を示す。
【００１６】
まず、図９Ａに示すように、第ｒ番目のラウンドデータは、８ビットごとに１６個のデータＡ〜Ｐに区切られる。そして、図９Ｂに示すように、そのラウンドデータは、８ビットのデータごとに４行４列のマトリックステーブルの各セルに振り分けられる。このとき、ラウンドデータは、まず、データＡ〜Ｄが第１列の第１行〜第４行のセルに順に振り分けられ、次にデータＥ〜Ｈが第２列の第１行〜第４行のセルに順に振り分けられ、・・・というように、列順に、かつ、各列においては、行順に振り分けられる。
【００１７】
次に、図９Ｃに示すように、データＡ〜Ｐに対してＳｈｉｆｔＲｏｗ処理が行われる。このＳｈｉｆｔＲｏｗ処理は、第１行のデータＡ〜Ｍはそのままとし、第２行のデータＢ〜Ｎを左方向に１列分回転させ、第３行のデータＣ〜Ｏを左方向に２列分回転させ、第４行のデータＤ〜Ｐを左方向に３列分回転させるものである。
【００１８】
続いて、そのＳｈｉｆｔＲｏｗ処理の行われたデータＡ〜Ｌに対して、ＳｕｂＢｙｔｅｓ処理およびＭｉｘＣｏｌｕｍｎ処理が実行される。このＳｕｂＢｙｔｅｓ処理およびＭｉｘＣｏｌｕｍｎ処理は、所定の演算テーブルを用いたテーブル変換およびイクスクルーシブオア処理により以下のように実行される。
【００１９】
すなわち、まず、図９Ｃのマトリックステーブルの第１列について、第１の演算テーブルを用いてテーブル変換を行うことにより、図９Ｄに示すように、
・データＡから８ビット×４個のデータａ０、ａ１、ａ２、ａ３を得る。
・データＦから８ビット×４個のデータｆ０、ｆ１、ｆ２、ｆ３を得る。
・データＫから８ビット×４個のデータｋ０、ｋ１、ｋ２、ｋ３を得る。
・データＰから８ビット×４個のデータｐ０、ｐ１、ｐ２、ｐ３を得る。
【００２０】
次に、図９Ｄの第１列のデータａ０〜ｐ３について、イクスクルーシブオア処理を行い、図９Ｅに示すように、
・ａ＝ａ０＾ｆ０＾ｋ０＾ｐ０を得る。
・ｆ＝ａ１＾ｆ１＾ｋ１＾ｐ１を得る。
・ｋ＝ａ２＾ｆ２＾ｋ２＾ｐ２を得る。
・ｐ＝ａ３＾ｆ３＾ｋ３＾ｐ３を得る。
ただし、＾は、イクスクルーシブオアを示す。
【００２１】
同様にして、図９Ｃの第２列のデータＥ、Ｊ、Ｏ、Ｄに対して、第２の演算テーブルを用いて図９Ｄに示すようなテーブル変換を行うとともに、イクスクルーシブオア処理を行って図９Ｅに示すようにデータｅ、ｊ、ｏ、ｄを得る。また、同様にして、図９Ｃの第３列および第４列のデータを、第３および第４の演算テーブルを用いてデータｉ、ｎ、ｃ、ｈおよびｍ、ｂ、ｇ、ｌを得る。
【００２２】
さらに、図９Ｆに示すように、４行４列のラウンドキーデータＫ００〜Ｋ３３が用意される。このラウンドキーデータＫ００〜Ｋ３３は、暗号化用のキーデータから生成されるものであり、データＫ００〜Ｋ３３のそれぞれも８ビットであるが、暗号化用のキーデータそのものは、１２８ビット、１９２ビットあるいは２５６ビットのいずれかである。また、ラウンドキーデータＫ００〜Ｋ３３は、ラウンドごとに変更される。
【００２３】
そして、このラウンドキーデータＫ００〜Ｋ３３と、図９Ｅに示すデータａ〜ｌとのイクスクルーシブオアが演算され、図９Ｇに示すように、その演算結果としてデータＥ００〜Ｅ３３が取り出される。このデータＥ００〜Ｅ３３が、第ｒ番目のラウンドデータＡ〜Ｐをラウンド処理した結果のデータであり、第（ｒ＋１）番目のラウンド処理の入力データとなる。
【００２４】
以上がラウンド処理の具体的な内容であり、このラウンド処理が図６により説明したように繰り返されて平文データが暗号分データに暗号化されるものである。
【００２５】
【非特許文献１】
「ＡＥＳ  Ｈｏｍｅ  Ｐａｇｅ」、［ｏｎｌｉｎｅ］、［２００２年１１月１２日検索］、インターネット〔ＵＲＬ：ｈｔｔｐ：／／ｃｓｒｃ．ｎｉｓｔ．ｇｏｖ／ｅｎｃｒｙｐｔｉｏｎ／ａｅｓ／〕
【００２６】
【発明が解決しようとする課題】
ところで、図９に示すような手順でラウンド処理を行う場合、各ラウンドにおけるデータと時間の流れとの関係は図１０に示すようになる。なお、図１０においては、簡単のため、各回路における処理の時間遅れは無視する。
【００２７】
すなわち、ホストコンピュータとＡＥＳブロック暗号回路とを接続するデータバスのバス幅を１６ビットとすれば、ホストコンピュータがＡＥＳブロック暗号回路に第ｒ番目のラウンドデータを転送するとき、図１０Ａに示すように、まず、データＡ、Ｂを転送し、次に、データＣ、Ｄを転送し、・・・というように、ラウンドデータを２つずつ（１６ビットずつ）転送することができる。
【００２８】
そして、最後のデータＯ、Ｐの転送が終了したとき、図９Ｂの状態となるので、図１０Ｂに示すように、まず、ＳｈｉｆｔＲｏｗ処理を実行して図９Ｃの状態を得る。次に、そのＳｈｉｆｔＲｏｗ処理を終えたら、図１０Ｃに示すように、図９Ｃの第１列についてテーブル変換（図９Ｄ）およびイクスクルーシブオア処理（図９Ｅ）を実行して図９Ｅの第１列のデータａ〜ｐを得る。
【００２９】
この場合、演算テーブルは、単にデータ変換をしているだけなので、図１０Ａ、Ｂに示すように、データＡ、Ｂの期間に、データａ０〜ａ３、ｂ０〜ｂ３が得られる。そして、これらデータａ０〜ａ３、ｂ０〜ｂ３をいったんラッチ回路にラッチすることにより、図１０Ｄに示すように、その第１列のイクスクルーシブオア処理の結果を連続して得る。
【００３０】
続いて、図１０Ｃに示すように、図９Ｃの第２列についてテーブル変換（図９ＣおよびＤ）およびイクスクルーシブオア処理（図９ＤおよびＥ）を実行して図９Ｅの第２列のデータｅ〜ｄを得る。なお、このとき、例えば図９Ｅの第２列のイクスクルーシブオア処理の結果をラッチすることにより、図１０Ｄに示すように、その第２列のイクスクルーシブオア処理の結果を連続して得るようにする。
【００３１】
さらに、図９Ｃの第３列および第４列についてテーブル変換およびイクスクルーシブオア処理を、列ごとに順に実行するとともに、ラッチを行うことにより、図１０Ｄに示すように、第３列および第４列のイクスクルーシブオア処理の結果を連続して得る。
【００３２】
そして、最後に、図１０Ｅに示すように、各列のデータと、ラウンドキーデータＫ００〜Ｋ３３とのイクスクルーシブオアをとってラウンド処理結果のデータＥ００〜Ｅ３３を得る（図９Ｇの状態）。なお、図１０において、破線部分はデータに意味のないことを示す。こうして作成されたデータＥ００〜Ｅ３３は、２つずつ（１６ビットずつ）ホストコンピュータに返送して１ラウンド分の処理を終了し、以後、以上の処理をラウンドごと繰り返す。
【００３３】
したがって、図１０Ａ〜Ｅの処理の場合には、すべての処理が順番に実行されていくので、ホストコンピュータが第ｒ番目のラウンドデータＡ〜Ｐを転送してからラウンド処理結果のデータＥ００〜Ｅ３３が得られるようになるまでに時間がかかってしまう。
【００３４】
この発明は、このような問題点を解決し、第ｒ番目のラウンドデータを転送してからラウンド処理結果のデータが得られるようなるまでの時間を短縮し、ホストコンピュータから見たＡＥＳブロック暗号化回路のラウンド処理を高速化しようとするものである。
【００３５】
【課題を解決するための手段】
この発明においては、例えば、
入力データの１ブロックを８ビットごとに演算テーブルに供給して３２ビットのデータに変換し、
この変換結果のデータをラッチし、
このラッチされたデータを所定の組み合わせでイクスクルーシブオア処理してＡＥＳブロック暗号化法におけるＳｕｂＢｙｔｅｓ処理およびＭｉｘＣｏｌｕｍｎ処理の実行結果と同等のデータを生成し、
この同等のデータと、ラウンドキーデータとのイクスクルーシブオア処理を実行して上記入力データをラウンド処理したデータを得る
ようにしたＡＥＳブロック暗号方法
とするものである。
したがって、ＡＥＳブロック暗号回路において、ラウンドデータの受信と、テーブル変換とが平行して実行され、ＡＥＳブロック暗号回路の全体としての処理が高速になる。
【００３６】
【発明の実施の形態】
▲１▼  ＡＥＳブロック暗号回路の構成および処理方法（１６ビット転送の場合）
図１において、符号１０は、この発明によるＡＥＳブロック暗号回路の一例を示し、符号２０は、ＡＥＳブロック暗号回路１０を使用するホストコンピュータを示す。そして、ホストコンピュータ２０のメモリ２３には、ＡＥＳブロック暗号回路１０により暗号化される平文データが用意される。また、この例においては、ホストコンピュータ２０の外部バス２９のバス幅は１６ビットの場合である。
【００３７】
そして、ＡＥＳブロック暗号回路１０は、第１〜第４の演算テーブル１１１〜１１４と、ラッチ回路１２Ａ〜１２Ｐと、イクスクルーシブオア回路１３Ａ〜１３Ｐ、１４と、キーデータテーブル１５とを有する。
【００３８】
この場合、演算テーブル１１１〜１１４は、図９ＣにおけるデータＡ〜Ｐを、図９Ｄにおけるデータ（ａ０〜ａ３）〜（ｐ０〜ｐ３）に変換するためのものである。このため、演算テーブル１１１〜１１４のそれぞれは、入力が８ビットで出力が８ビット×４組とされるとともに、図９ＣおよびＤの第１行〜第４行に対応する内容とされている。そして、ホストコンピュータ２０が外部バス２９を通じ、さらに、入力用のレジスタ（ラッチ）１６を通じて演算テーブル１１１〜１１４の入力端に接続される。
【００３９】
また、ラッチ回路１２Ａ〜１２Ｐは、演算テーブル１１１〜１１４により変換されたデータ（ａ０〜ａ３）〜（ｐ０〜ｐ３）を、次のラウンド処理まで保持するためのものである。このため、ラッチ回路１２Ａ〜１２Ｐのそれぞれは、８ビット×４組の容量とされ、演算テーブル１１１〜１１４の出力が供給される。
【００４０】
さらに、イクスクルーシブオア回路１３Ａ〜１３Ｐは、図９Ｄにおけるデータ（ａ０〜ａ３）〜（ｐ０〜ｐ３）を図９Ｅにおけるデータａ〜ｐに変換するためのものであり、ラッチ回路１２Ａ〜１２Ｐによりラッチされたデータ（図９Ｄ）が供給される。
【００４１】
また、イクスクルーシブオア回路１４は、図９Ｅにおけるデータａ〜ｐを、図９Ｆに示すラウンドキーデータＫ００〜Ｋ３３により出力データＥ００〜Ｅ３３に変換するためのものである。このため、ラウンドキーデータＫ００〜Ｋ３３がキーデータテーブル１５に用意され、これらラウンドキーデータＫ００〜Ｋ３３がイクスクルーシブオア回路１４に供給されるとともに、イクスクルーシブオア回路１３Ａ〜１３Ｐからのデータａ〜ｐがイクスクルーシブオア回路１４に供給される。そして、イクスクルーシブオア回路１４の出力は出力用のレジスタ（ラッチ）１６に供給される。
【００４２】
さらに、ＡＥＳブロック暗号回路１０は制御回路１８を有する。この制御回路１８は、ホストコンピュータ２０からの指示にしたがって、上述した各回路１１１〜１１４、１２Ａ〜１２Ｐ、１３Ａ〜１３Ｐ、１４〜１７の動作を制御することにより、ホストコンピュータ２０から供給される１ブロックのデータを、１ラウンドごとにラウンド処理するためのものである。
【００４３】
このような構成において、以下のようにしてＡＥＳブロック暗号化が実行される。なお、以下においては、１ブロックは１２８ビットであり、図９Ａに示すように、その１２８ビットを８ビットごとに区切ったとき、その８ビットごとのデータを順にデータＡ〜Ｐとする。さらに、各回路における処理の時間遅れは、簡単のため、無視する。
【００４４】
まず、ホストコンピュータ２０はＡＥＳブロック暗号回路１０に第ｒ番目のラウンドデータを供給するとき、図２Ａに示すように、期間Ｔ１にデータＡ、Ｂを供給し、期間Ｔ２にデータＣ、Ｄを供給し、・・・というように、期間Ｔ１〜Ｔ８に８ビットのデータを２つずつ供給する（ここまでは図１０Ａと同じ）。
【００４５】
すると、ＡＥＳブロック暗号回路１０において、これに供給されたラウンドデータは、レジスタ１６を通じて演算テーブル１１１〜１１４に供給される。そして、そのラウンドデータのうち、データＡが第１の演算テーブル１１１により８ビット×４個のデータａ０〜ａ３に変換され、データＢが第２の演算テーブル１１２により８ビット×４個のデータｂ０〜ｂ３に変換される。
【００４６】
この場合、演算テーブル１１１、１１２は、単にデータ変換をしているだけなので、図２Ａ、Ｂに示すように、データＡ、Ｂの期間Ｔ１に、データａ０〜ａ３、ｂ０〜ｂ３が得られる。そして、これらデータａ０〜ａ３、ｂ０〜ｂ３は、ラッチ回路１２Ａ、１２Ｂにそれぞれラッチされて期間Ｔ１以後も保持される。
【００４７】
また、期間Ｔ２に、第２番目のデータＣ、Ｄのうち、データＣが第３の演算テーブル１１３によりデータｃ０〜ｃ３に変換されるとともに、データＤが第４の演算テーブル１１４によりデータｄ０〜ｄ３に変換される。これらのデータｃ０〜ｃ３、ｄ０〜ｄ３もラッチ回路１２Ｃ、１２Ｄにラッチされて保持される。
【００４８】
同様に、期間Ｔ３〜Ｔ８に、残るデータＥ〜Ｐも、第１〜第４の演算テーブル１１１〜１１４によりデータ（ｅ０〜ｅ３）〜（ｐ０〜ｐ３）に変換され、ラッチ回路１２Ｅ〜１２Ｐに保持される。
【００４９】
すると、ラッチ回路１２Ａ〜１２Ｐのラッチしたデータは、イクスクルーシブオア回路１３Ａ〜１３Ｐに供給されているとともに、データＭ、Ｎの期間Ｔ７になったとき、図９Ｄの第３列のデータ（ｉ０〜ｉ３）〜（ｈ０〜ｈ３）がすべて揃うので、図２Ｃに示すように、この期間Ｔ７に、データｉ０、ｎ０、ｃ０、ｈ０が、イクスクルーシブオア回路１３ｉによりイクスクルーシブオア処理されて図９Ｅの第３列第１行のデータｉが形成される。
【００５０】
また、同じ期間Ｔ７に、データｉ１、ｎ１、ｃ１、ｈ１がイクスクルーシブオア回路１３ｎによりイクスクルーシブオア処理されて図９Ｅの第３列第２行のデータｎが形成される。同様に、イクスクルーシブオア回路１３Ｃによりデータｉ２、ｎ２、ｃ２、ｈ２から図９Ｅの第３列第３行のデータｃが形成され、イクスクルーシブオア回路１３Ｈによりデータｉ３、ｎ３、ｃ３、ｈ３から図９Ｅの第３列第４行のデータｈが形成される。
【００５１】
この場合、データ（ｉ０〜ｉ３）〜（ｈ０〜ｈ３）は、ラッチ回路１３Ｉ〜１３Ｈにラッチされているので、図２Ｃに示すように、データｉ〜ｈは、期間Ｔ７以後も連続して得ることができるようになる。なお、図２において、破線部分はデータに意味のないことを示す（以下同様）。
【００５２】
さらに、期間Ｔ７には、図９Ｄの第４列のデータ（ｍ０〜ｍ３）〜（ｌ０〜ｌ３）もすべて揃うので、イクスクルーシブオア回路１２Ｍ、１２Ｂ、１２Ｇ、１２Ｉにより図９Ｅの第４列のデータｍ、ｂ、ｇ、ｌが形成され、図２Ｃに示すように、期間Ｔ７から、ラッチ回路１３Ｍ、１３Ｂ、１３Ｇ、１３Ｌから図９Ｅの第４列のデータｍ、ｂ、ｇ、ｌを連続して得ることができるようになる。
【００５３】
また、続くデータＯ、Ｐの期間Ｔ８になると、図９Ｄの第１列のデータ（ａ０〜ａ３）〜（ｐ０〜ｐ３）がすべて揃うので、図２Ｃに示すように、期間Ｔ８に、データａ０、ｆ０、ｋ０、ｐ０が、イクスクルーシブオア回路１３Ａによりイクスクルーシブオア処理されて図９Ｅの第１列第１行のデータａが形成される。
【００５４】
さらに、同じ期間Ｔ８に、データａ１、ｆ１、ｋ１、ｐ１がイクスクルーシブオア回路１３Ｆによりイクスクルーシブオア処理されて図９Ｅの第１列第２行のデータｆが形成される。同様に、イクスクルーシブオア回路１３Ｋによりデータａ２、ｆ２、ｋ２、ｐ２から図９Ｅの第１列第３行のデータｋが形成され、イクスクルーシブオア回路１３Ｐによりデータａ３、ｆ３、ｋ３、ｐ３から図９Ｅの第１列第４行のデータｐが形成される。
【００５５】
また、期間Ｔ８には、図９Ｄの第２列のデータ（ｅ０〜ｅ３）〜（ｄ０〜ｄ３）もすべて揃うので、イクスクルーシブオア回路１２Ｅ、１２Ｊ、１２Ｏ、１２Ｄにより図９Ｅの第２列のデータｅ、ｊ、ｏ、ｄが形成され、図２Ｃに示すように、期間Ｔ８から、ラッチ回路１３Ｅ、１３Ｊ、１３Ｏ、１３Ｄから図９Ｅの第２列のデータｅ、ｊ、ｏ、ｄを連続して得ることができるようになる。
【００５６】
こうして、期間Ｔ８に、図９Ｅにおけるデータａ〜ｌはすべて揃うとともに、以後も連続して得られことになる。そこで、この期間Ｔ８に、図９Ｅのデータａ〜ｐがイクスクルーシブオア回路１４に供給されるとともに、キーデータテーブル１５からラウンドキーデータＫ００〜Ｋ３３がイクスクルーシブオア回路１４に供給され、図２Ｄに示すように、期間Ｔ８から第ｒ番目のラウンド処理結果のデータＥ００〜Ｅ３３が取り出される。そして、このデータＥ００〜Ｅ３３が、続く期間Ｔ９にホストコンピュータ２０に転送される。
【００５７】
そして、以上の処理が１ラウンドごとに繰り返されて平文データの１ブロックが暗号文データに暗号化される。
【００５８】
こうして、ラウンド処理されたラウンドデータを得ることができるが、この場合、特に上述のＡＥＳブロック暗号回路１０によれば、ホストコンピュータ２０から見てラウンド処理に必要な時間を短縮することができる。
【００５９】
すなわち、図１０のラウンド処理の場合には、第ｒ番目のラウンドの最後のデータＯ、Ｐが供給されてからラウンド処理結果のデータＥ００〜Ｅ３３を出力するようになるまでに、１回のＳｈｉｆｔＲｏｗ処理の時間と、４回のテーブル変換およびイクスクルーシブオア処理の時間とが必要となる。しかし、上述した▲１▼のラウンド処理方法の場合には、図２からも明かなように、最後のデータＯ、Ｐが供給されると、直ちにラウンド処理結果のデータＥ００〜Ｅ３３を出力することができ、ホストコンピュータ２０からみたラウンド処理時間を短縮することができる。
【００６０】
しかも、そのとき、ホストコンピュータ２０は、図１０のＡＥＳブロック暗号化の場合と同様に平文データを供給するだけでよく、暗号化のための処理や手順を変更する必要がない。
【００６１】
▲２▼  ＡＥＳブロック暗号化法（８ビット転送の場合）
これは、ホストコンピュータとＡＥＳブロック暗号回路とを接続するバスのバス幅が８ビットの場合である。
【００６２】
この場合には、ホストコンピュータがＡＥＳブロック暗号回路にラウンドデータを供給するとき、図３Ａに示すように、ラウンドデータは、データＡ、Ｂ、Ｃ、・・・の順に８ビットずつメモリ２３から読み出され、ＡＥＳブロック暗号回路に供給される。
【００６３】
すると、図３Ｂに示すように、ＡＥＳブロック暗号回路において、第１番目のデータＡが第１の演算テーブルによりデータａ０〜ａ３に変換される。この場合、演算テーブルは、単にデータ変換をしているだけなので、図３Ａ、Ｂに示すように、データＡの期間に、データａ０〜ａ３が出力される。そして、これらのデータ（ａ０〜ａ３）、（ｂ０〜ｂ３）はラッチ回路にラッチされる。
【００６４】
以下同様に、データＢ〜Ｐも、第１〜第４の演算テーブルによりデータ（ｃ０〜ｃ３）〜（ｐ０〜ｐ３）に変換されるとともに、ラッチ回路にラッチされる。そして、データＭの期間になると、図９Ｄの第４列のデータ（ｍ０〜ｍ３）〜（ｌ０〜ｌ３）がすべて揃う。
【００６５】
そこで、図３Ｃに示すように、データＭの期間に、ラッチされているデータｍ０、ｂ０、ｇ０、ｌ０がイクスクルーシブオア処理されて図９Ｅの第４列第１行のデータｍが形成される。また、データｍ１、ｂ１、ｇ１、ｌ１がイクスクルーシブオア処理されて図９Ｅの第４列第２行のデータｂが形成され、同様に、データｍ２、ｂ２、ｇ２、ｌ２から図９Ｅの第４列第３行のデータｇが形成され、データｍ３、ｂ３、ｇ３、ｌ３から図９Ｅの第４列第４行のデータｌが形成される。
【００６６】
続くデータＮの期間には、図９Ｄの第３列のデータ（ｉ０〜ｉ３）〜（ｈ０〜ｈ３）がすべて揃うので、このデータＮの期間に、同様にして図９Ｅの第３列のデータｉ、ｎ、ｃ、ｈが形成される。
【００６７】
また、次のデータＯの期間には、図９Ｄの第２列のデータ（ｅ０〜ｅ３）〜（ｄ０〜ｄ３）がすべて揃うので、このデータＯの期間に、同様にして図９Ｅの第２列のデータｅ、ｊ、ｏ、ｄも形成され、さらに、データＰの期間には、図９Ｄの第１列のデータ（ａ０〜ａ３）〜（ｐ０〜ｐ３）がすべて揃うので、このデータＰの期間に、図９Ｅの第１列のデータａ、ｆ、ｋ、ｐも形成される。こうして、データＰの期間が終了するまでに、図９Ｅにおけるデータａ〜ｌはすべて揃うことになる。
【００６８】
そこで、図３Ｄに示すように、データＰの期間に、図９Ｅのデータａ〜ｐと、ラウンドキーデータＫ００〜Ｋ３３とがイクスクルーシブオア処理されて目的とする出力データＥ００〜Ｅ３３が形成され、その後、この出力データＥ００〜Ｅ３３がホストコンピュータに転送される。
【００６９】
そして、以上の処理が１ラウンドごとに繰り返されて平文データの１ブロックが暗号文データに暗号化される。
【００７０】
こうして、ホストコンピュータとＡＥＳブロック暗号回路とを接続するバスのバス幅が８ビットの場合も、図３にも示すように、ラウンドデータの最後のデータＰがＡＥＳブロック暗号回路に供給されると、ただちに暗号文データを得ることができ、暗号文データの作成に必要な時間を短縮することができる。
【００７１】
▲３▼  ＡＥＳブロック暗号化法（３２ビット転送の場合）
これは、ホストコンピュータとＡＥＳブロック暗号回路とを接続するバスのバス幅が３２ビットの場合である。
【００７２】
この場合には、ホストコンピュータがＡＥＳブロック暗号回路にラウンドデータを供給するとき、図４Ａに示すように、まず、ラウンドデータのデータＡ〜Ｄを供給し、次に、データＥ〜Ｈを供給し、・・・というように、８ビットのデータを４つずつ供給する。
【００７３】
すると、図４Ｂに示すように、ＡＥＳブロック暗号回路において、第１番目のデータＡ〜Ｄのうち、データＡが第１の演算テーブルによりデータａ０〜ａ３に変換され、他のデータＢ〜Ｄも第２〜第４の演算テーブルによりデータ（ｂ０〜ｂ３）〜（ｄ０〜ｄ３）に変換される。そして、これらのデータ（ａ０〜ａ３）〜（ｄ０〜ｄ３）はラッチ回路に保持される。
【００７４】
また、第２番目のデータＥ〜Ｈも第１〜第４の演算テーブルによりデータ（ｅ０〜ｅ３）〜（ｈ０〜ｈ３）に変換され、これらのデータ（ｅ０〜ｅ３）〜（ｈ０〜ｈ３）もラッチ回路に保持される。さらに、第３番目および第４番目のデータＩ〜Ｌ、Ｍ〜Ｐも同様にデータ（ｉ０〜ｉ３）〜（ｌ０〜ｌ３）、（ｍ０〜ｍ３）〜（ｐ０〜ｐ３）に変換され、これらのデータもラッチ回路に保持される。
【００７５】
そして、データＭ〜Ｐの期間になると、図９Ｄの各列のデータがすべて揃うので、図４Ｃに示すように、データＭ〜Ｐの期間に、データ（ａ０〜ｐ０）〜（ａ３〜ｐ３）がイクスクルーシブオア処理されて図９Ｅの各セルのデータａ〜ｐが形成される。そこで、図４Ｄに示すように、データＭ〜Ｐの期間に、図９Ｅのデータａ〜ｐと、ラウンドキーデータＫ００〜Ｋ３３とがイクスクルーシブオア処理されて目的とする出力データＥ００〜Ｅ３３が形成され、その後、この出力データＥ００〜Ｅ３３がホストコンピュータに転送される。
【００７６】
そして、以上の処理が１ラウンドごとに繰り返されて平文データの１ブロックが暗号文データに暗号化される。
【００７７】
こうして、ホストコンピュータとＡＥＳブロック暗号回路とを接続するバスのバス幅が３２ビットの場合も、図４にも示すように、平文データの最後のデータＰがＡＥＳブロック暗号回路に供給されると、ただちに暗号文データを得ることができ、暗号文データの作成に必要な時間を短縮することができる。
【００７８】
▲４▼  記録再生装置
図５は、この発明をＣＤ−Ｒ／ＲＷ記録再生装置に適用した場合の一形態を示す。
【００７９】
すなわち、符号３１はオーディオ信号の信号源、例えばマイクロフォン、符号３２はオーディオ信号の出力先、例えばスピーカ３２を示し、これらはオーディオインターフェイス回路３３を通じて後述するマイクロコンピュータ４０のシステムバス４９に接続される。さらに、このシステムバス４９には、ディスクインターフェイス回路３４を通じてディスクドライブ装置３５が接続され、このドライブ装置３５に、ＣＤ−ＲあるいはＣＤ−ＲＷなどのディスク３６がセットされる。
【００８０】
そして、マイクロコンピュータ４０は、図１におけるコンピュータ２０に対応するとともに、この記録再生装置全体の動作を制御するシステムコントロール回路を構成するものである。そして、このマイクロコンピュータ４０は、ＣＰＵ４１、各種のプログラムおよびデータの書き込まれたＲＯＭ４２、ワークエリア用のＲＡＭ４３を有し、これらがシステムバス４９に接続される。
【００８１】
さらに、▲１▼および▲２▼において説明したＡＥＳブロック暗号回路１０がシステムバス４９に接続されるとともに、このＡＥＳブロック暗号回路１０と相補のＡＥＳブロック復号処理を実行するＡＥＳブロック復号回路１１がバス４９に接続される。なお、ＲＡＭ４３は、その一部のアドレスエリアがメモリ２３として使用される。
【００８２】
また、ユーザインターフェイスとして、各種の操作キー４４およびディスプレイ、例えばＬＣＤ４５もシステムバス４９に接続される。さらに、システムバス４９には、外部インターフェイスとしてＵＳＢインターフェイス回路４６が接続され、このＵＳＢインターフェイス回路４６に、外部機器として例えばパーソナルコンピュータ５０が接続される。
【００８３】
そして、記録時および再生時には、暗号化処理あるいは復号化処理の必要・不必要に対応して以下のような処理が実行される。
【００８４】
▲４▼−１  通常の記録
暗号化を必要としない記録時には、マイクロフォン３１からのオーディオ信号がインターフェイス回路３３に供給されてデジタルオーディオデータにＡ／Ｄ変換され、このデジタルオーディオデータが、システムバス４９を通じてディスクインターフェイス回路３４に供給されてエラー訂正用のエンコード処理および記録用のＥＦＭ変調処理が行われる。そして、このエンコード処理および変調処理の行われた信号が、ディスクドライブ装置３５に供給され、ディスク３６に記録される。
【００８５】
▲４▼−２  通常の再生
ドライブ装置３５によりディスク３６から信号が再生され、この再生信号がディスクインターフェイス回路３４に供給されて記録時とは相補の処理、すなわち、ＥＦＭ復調処理およびエラー訂正用のデコード処理が行われ、もとのデジタルオーディオデータが取り出される。そして、このデジタルオーディオデータが、システムバス４９を通じてインターフェイス回路３３に供給されてアナログのオーディオ信号にＤ／Ａ変換され、このオーディオ信号がスピーカ３２に供給される。
【００８６】
なお、デジタルオーディオデータ以外のデジタルデータをディスク３６に対して記録あるいは再生する場合には、そのためのエンコード処理やデコード処理などが必要となるが、それらの処理もディスクインターフェイス回路３４において実行される。
【００８７】
▲４▼−３  オーディオ信号の暗号化および記録
オーディオ信号を暗号化してディスク３６に記録する場合には、マイクロフォン３１からのオーディオ信号がインターフェイス回路３３に供給されてデジタルオーディオデータにＡ／Ｄ変換され、このデジタルオーディオデータがＲＡＭ４３にいったんバッファリングされてからＡＥＳブロック暗号回路１０に供給され、暗号文データに暗号化される。
【００８８】
そして、この暗号文データが、ディスクインターフェイス回路３４に供給されてエラー訂正用のエンコード処理および記録用のＥＦＭ変調処理が行われ、その後、ディスクドライブ装置３５に供給され、ディスク３６に記録される。
【００８９】
▲４▼−４  オーディオ信号の再生および復号化
ディスク３６に記録されているオーディオ信号を復号化して再生する場合には、ドライブ装置３５によりディスク３６から信号が再生され、この再生信号がディスクインターフェイス回路３４に供給されてもとの暗号データがデコードされて取り出される。そして、この暗号データが、ＲＡＭ４３にいったんバッファリングされてからＡＥＳブロック復号回路１１に供給され、もとのデジタルオーディオデータにブロック復号化される。
【００９０】
そして、この復号化されたデジタルオーディオデータがインターフェイス回路３３に供給されてもとのアナログのオーディオ信号にＤ／Ａ変換され、このオーディオ信号がスピーカ３２に供給される。
【００９１】
▲４▼−５  オーディオ信号の再暗号化
これは、ディスク３６に暗号化されて記録されているオーディオ信号を再暗号化（もとの暗号文データを平文データに復号化し、その平文データを別のキーデータにより再び暗号文データに暗号化すること）し、その再暗号化したデジタルオーディオデータを例えばパーソナルコンピュータ５０に出力する場合である。
【００９２】
すなわち、ディスク３６の再生が開始されると、▲４▼−４と同様、ディスク３６からの再生信号が、ディスクインターフェイス回路３４によりもとの暗号文データにデコードされ、さらにＡＥＳブロック復号回路１１により平文データに復号化されてＲＡＭ４３に順次書き込まれていく。そして、この平文データがＡＥＳブロック暗号回路１０により暗号文データに再暗号化され、この再暗号文データがＵＳＢインターフェイス回路４６を通じてパーソナルコンピュータ５０が供給される。そして、以後、このような処理が、ディスク３６から１セクタ分の暗号文データが再生されるごとに繰り返される。
【００９３】
こうして、ディスク３６に暗号化されて記録されているオーディオ信号は再暗号化されてパーソナルコンピュータ５０に出力されるが、この場合、ＡＥＳブロック暗号回路１０の暗号化処理を高速に実行できるので、上記のようにディスク３６を再生しながらリアルタイムで処理を実行することができる。
【００９４】
▲５▼  その他
上述において、ＡＥＳブロック暗号回路１０は、外部バス２９のバス幅が、８ビット、１６ビットあるいは３２ビットのいずれであるかを、ホストコンピュータ２０からの情報により判別し、あるいはＡＥＳブロック暗号回路１０に用意した切り換え端子に外部からあらかじめ設定されているレベルにより判別し、その判別結果にしたがって、▲１▼、▲２▼あるいは▲３▼を選択し、暗号化処理を実行することもできる。
【００９５】
また、上述においては、平文データの１ブロックが１２８ビットの場合であるが、１ブロックが１９２ビットあるいは２５６ビットの場合にも、同様に処理することができる。
【００９６】
〔この明細書で使用している略語の一覧〕
Ａ／Ｄ    ：Ａｎａｌｏｇ  ｔｏ  Ｄｉｇｉｔａｌ
ＡＥＳ    ：Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ
ＣＤ      ：Ｃｏｍｐａｃｔ  Ｄｉｓｃ
ＣＤ−Ｒ  ：ＣＤ  Ｒｅｃｏｒｄａｂｌｅ
ＣＤ−ＲＷ：ＣＤ  ＲｅＷｒｉｔａｂｌｅ
ＣＰＵ    ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ
Ｄ／Ａ    ：Ｄｉｇｉｔａｌ  ｔｏ  Ａｎａｌｏｇ
ＥＦＭ    ：Ｅｉｇｈｔ  ｔｏ  Ｆｏｕｒｔｅｅｎ  Ｍｏｄｕｌａｔｉｏｎ
ＬＣＤ    ：Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ
ＲＡＭ    ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ
ＲＯＭ    ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ
ＵＲＬ    ：Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ
ＵＳＢ    ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ
【００９７】
【発明の効果】
この発明によれば、ラウンド処理にかかる時間を短縮することができ、したがって、平文データを暗号文データに暗号化する短縮することができる。しかも、そのとき、ホストコンピュータは平文データを供給するだけでよく、暗号化のための処理や手順を変更する必要がない。
【図面の簡単な説明】
【図１】この発明の一形態を示す系統図である。
【図２】この発明の一形態を示すタイミング図である。
【図３】この発明の他の形態を示すタイミング図である。
【図４】この発明の他の形態を示すタイミング図である。
【図５】この発明の一形態を示す系統図である。
【図６】ＡＥＳブロック暗号化処理を説明するための図である。
【図７】ラウンド処理を説明するための図である。
【図８】ラウンド処理で使用される数式を示す図である。
【図９】ラウンド処理を説明するための図である。
【図１０】ラウンド処理を説明するためのタイミング図である。
【符号の説明】
１０…ＡＥＳブロック暗号回路、１２Ａ〜１２Ｐ…ラッチ回路、１３Ａ〜１３Ｐ、１４…イクスクルーシブオア回路、１５…キーデータテーブル、１８…制御回路、２０…ホストコンピュータ、２３…メモリ、１１１〜１１４…演算テーブル
【図１】
2004184567.tif 000003
【図２】
2004184567.tif 000004
【図３】
2004184567.tif 000005
【図４】
2004184567.tif 000006
【図５】
2004184567.tif 000007
【図６】
2004184567.tif 000008
【図７】
2004184567.tif 000009
【図８】
2004184567.tif 000010
【図９】
2004184567.tif 000011
【図１０】
2004184567.tif 000012