(57)【要約】【課題】動作周波数の高速化に対応することのできるＡＥＳ暗号回路を得る。【解決手段】ShiftRows変換回路３の変換結果を一時保存する第１のフリップフロップ４を設ける。また、MixColumns変換回路５は、第１のフリップフロップ４の出力に対して、列方向に混合する変換を行うと共に、その変換結果を一時保存する第２のフリップフロップを有する。これにより、SubBytes変換回路２からAddRoundKey変換回路６によるラウンド処理をパイプライン化する。【選択図】図１
2008040244.tif 000002
【特許請求の範囲】
【請求項１】
対象となる平文を所定のブロック単位に分割し、それぞれのブロックの平文に対して予め決められたラウンド処理を所定回数実行して暗号化を行うＡＥＳ暗号回路において、
前記ブロックのデータを複数行、複数列のデータとして、当該データに対して所定のデータ量毎のビット転置を行うSubBytes変換回路と、
前記SubBytes変換回路の出力に対して、行方向へのシフト変換を行うShiftRows変換回路と、
前記ShiftRows変換回路の変換結果を一時保存する第１のフリップフロップと、
前記第１のフリップフロップの出力に対して、列方向に混合する変換を行うと共に、当該変換結果を一時保存する第２のフリップフロップを有するMixColumns変換回路と、
前記MixColumns変換回路の出力と鍵データとの排他的論理和演算を行うAddRoundKey変換回路と、
前記AddRoundKey変換回路の出力と入力データとを選択し、前記SubBytes変換回路に出力する選択回路とを備え、
前記SubBytes変換回路から前記AddRoundKey変換回路は、前記ラウンド処理をパイプライン化することを特徴とするＡＥＳ暗号回路。
【請求項２】
MixColumns変換回路は、
入力データを所定ビット単位で分割する分割回路と、前記分割回路の出力データに対して、ガロア体演算を行う乗算回路および排他的論理和回路を備え、
前記乗算回路は、
前記分割回路の出力データと固定値との排他的論理和演算を行う排他的論理和演算部と、
前記分割回路の出力データにおける所定のビット値に基づいて、前記排他的論理和演算部の出力と、当該分割回路の出力データにおける所定のビット以外のビット値とを選択する選択部と、
前記選択部の出力を一時保存する第２のフリップフロップとを備えたことを特徴とする請求項１記載のＡＥＳ暗号回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば通信回線に使用される暗号装置に関し、特に、ＡＥＳ（Advanced Encryption Standard）を用いるＡＥＳ暗号回路に関するものである。
【背景技術】
【０００２】
インターネット上で第三者からの盗聴を防ぐ暗号方法としてＡＥＳが用いられている。この共通鍵ＡＥＳブロック暗号法は、１２８ビット、１９２ビットあるいは２５６ビットを１ブロックとし、その１ブロック毎に４つの基本演算SubBytes/ShiftRows/MixColumns/AddRoundKeyをこの順に並べた「ラウンド処理」を所定の回数だけ実行して暗号化を行うものである。
【０００３】
従来、このようなＡＥＳ暗号回路としては、例えば特許文献１や特許文献２に示されるように構成されていた。例えば１２８ビットデータの場合は次の通りである。即ち、先ず、元の１ブロックの平文データを８ビット毎に４×４のマスに振り分け、同じようにマスを持つ拡張されたKeyデータと排他的論理和を取り、第１番目のラウンドデータを作成する。続いて、第１番目のラウンドデータに対して、SubBytes処理を行う。このSubBytes処理とは、非線形のビット転置であり、各Byte単位に分けられたマスの内部でビット転置を行うものである。次に、１マス毎にマスの横方向に対して左シフトを行うShiftRows処理を実施する。次に、その結果に対してマスの縦方向に対しての処理であるMixColumns処理が実行され、その処理結果を、別のKeyデータと排他的論理和処理するAddRoundKey処理を終えて第２番目のラウンドデータが作成される。この第１番目のラウンドデータから第２番目のラウンドデータを作成するまでの処理が、第１番目のラウンド処理である。以後、このラウンド処理が繰り返され、全部で１０回のラウンド処理が実行され、暗号文データが作成できる。尚、１０回目のラウンド処理のときには、MixColumns処理は実行されない。
【０００４】
【特許文献１】特開２００４−１８４５６７号公報
【特許文献２】特開２００３−１５５２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このＡＥＳブロック暗号方式を回線上で実現するハードウエアを考える場合、１ラウンドに必要な時間をｔとし、データ伝送速度をｖとした場合、ｔ×１１がｖより小さい値である必要がある。データ伝送速度が速くなるとｔを小さくする必要が生じ、そのためには動作周波数を上げなくてはならない。しかしながら、高速化のために動作周波数を上げると、１段のラウンド処理が１クロックで収まらなくなることがあり、単純に動作周波数を上げるだけでは高速化にならないという問題があった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、動作周波数の高速化に対応することのできるＡＥＳ暗号回路を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るＡＥＳ暗号回路は、ShiftRows変換回路の変換結果を一時保存する第１のフリップフロップを設けると共に、第１のフリップフロップの出力に対して、列方向に混合する変換を行うと共に、変換結果を一時保存する第２のフリップフロップを有するMixColumns変換回路を設け、SubBytes変換回路からAddRoundKey変換回路がパイプライン処理を行うようにしたものである。
【発明の効果】
【０００８】
この発明のＡＥＳ暗号回路は、ShiftRows変換回路およびMixColumns変換回路の後段側にフリップフロップを配置し、１段のラウンド処理をパイプライン化するようにしたので、各機能の分割処理が可能となり、同時刻におけるデータの並列処理を実現し１段のラウンド処理に必要なクロック数を変えずに回路動作速度向上を図ることができ、その結果、データ伝送速度を向上させることができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１によるＡＥＳ暗号回路を示すブロック図である。
図において、ＡＥＳ暗号回路は、選択回路１、SubBytes変換回路２、ShiftRows変換回路３、フリップフロップ４、MixColumns変換回路５、AddRoundKey変換回路６を備えている。
選択回路１は、入力データ（InputBlock）と、AddRoundKey変換回路６の出力とを選択して、SubBytes変換回路２に出力するための選択回路である。SubBytes変換回路２は、同期型のＲＯＭ（Read Only Memory）で構成され、バイト毎のビット転置を行うための回路である。ShiftRows変換回路３は、SubBytes変換回路２の出力に対して行方向へのシフト変換を行うための回路であり、その後段側にフリップフロップ（第１のフリップフロップ）４が接続され、ShiftRows変換回路３の出力を一時保存するよう構成されている。MixColumns変換回路５は、フリップフロップ４に保持されているShiftRows変換回路３の出力に対して、列方向の混合を行う変換回路であり、また、図示しないフリップフロップ（第２のフリップフロップ）を有し、その出力を保持するよう構成されている。AddRoundKey変換回路６は、MixColumns変換回路５の出力と、予め決められた鍵データである固定キー（Key）との排他的論理和演算を行う回路である。
【００１０】
このように、実施の形態１のＡＥＳ暗号回路では、ShiftRows変換回路３の後段とMixColumns変換回路５にフリップフロップを配置し、パイプライン処理を施す。よって、SubBytes変換回路２→ShiftRows変換回路３→MixColumns変換回路５→AddRoundKey変換回路６の処理遅延を３クロックとする。
【００１１】
図２は、この発明の実施の形態１の動作を示す説明図である。
図において、InputBlock１０１は、１２８ビットの暗号化時の時刻データである。Key１０２は、１２８ビットの暗号鍵である。Plane１０３は、１２８ビットの暗号化前データである。Cipher１０４は、１２８ビットの暗号化後データである。InputBlock１０１及びKey１０２を用いてＥｋ処理を経たデータと暗号化前データ（Plane１０３）の１２８ビット毎の排他的論理和が暗号化後データ（Cipher１０４）となる。Ｅｋ処理ではSubBytes→ShiftRows→MixColumns→AddRoundKeyの処理を１０回繰り返した後、再度SubBytes→ShiftRows→AddRoundKeyの処理を行う。
【００１２】
図３は、実施の形態１の各部のタイミングを示すタイミングチャートである。
例えば、図４に示すように、従来のＡＥＳ暗号化回路の動作タイミングでは、最初のデータ処理が完了した後に次処理が開始される。一方、実施の形態１ではSubBytes，ShiftRows，MixColumnsの処理遅延による各処理後に生じる未処理の時間を利用し、次データの処理を行っている。またＥｋ処理の出力レートは従来の処理と変わらない。更に、１動作周期内での処理量が削減されるため、暗号化回路の動作速度を向上させることが可能となる。
【００１３】
以上のように、実施の形態１のＡＥＳ暗号回路によれば、対象となる平文を所定のブロック単位に分割し、それぞれのブロックの平文に対して予め決められたラウンド処理を所定回数実行して暗号化を行うＡＥＳ暗号回路において、ブロックのデータを複数行、複数列のデータとして、データに対して所定のデータ量毎のビット転置を行うSubBytes変換回路と、SubBytes変換回路の出力に対して、行方向へのシフト変換を行うShiftRows変換回路と、ShiftRows変換回路の変換結果を一時保存する第１のフリップフロップと、第１のフリップフロップの出力に対して、列方向に混合する変換を行うと共に、変換結果を一時保存する第２のフリップフロップを有するMixColumns変換回路と、MixColumns変換回路の出力と鍵データとの排他的論理和演算を行うAddRoundKey変換回路と、AddRoundKey変換回路の出力と入力データとを選択し、SubBytes変換回路に出力する選択回路とを備え、SubBytes変換回路からAddRoundKey変換回路は、ラウンド処理をパイプライン化するようにしたので、各機能の分割処理が可能となり、同時刻におけるデータの並列処理を実現し１段のラウンド処理に必要なクロック数を変えずに回路動作速度向上を図ることができ、その結果、データ伝送速度を向上させることができる。
【００１４】
実施の形態２．
図５は、実施の形態２の構成図であり、MixColumns変換回路５の内部構成を示している。
図において、MixColumns変換回路５は、分割回路５１、乗算回路５２、排他的論理和回路５３を備えている。分割回路５１は、入力データを所定ビット単位に分割する回路であり、本実施の形態では、１２８ビットの入力データを８ビット単位に分割する例を示している。乗算回路５２および排他的論理和回路５３は、分割回路５１で分割された８ビットのデータのそれぞれに対してガロア体演算を行うための回路であり、それぞれ１６個設けられている。乗算回路５２は、分割回路５１の出力データと固定値との排他的論理和演算を行う排他的論理和演算部５２１と、分割回路５１の出力データにおける所定のビット値に基づいて、排他的論理和演算部（ｘｏｒ）５２１の出力と、分割回路５１の出力データにおける所定のビット以外のビット値とを選択する選択部５２２と、選択部５２２の出力を一時保存するフリップフロップ５２３とを備えている。また、このフリップフロップ５２３は、MixColumns変換回路５における第２のフリップフロップの機能を実現するための構成である。
【００１５】
このように構成されたMixColumns変換回路５では、分割回路５１によって１２８ビットデータが８ビット単位に分割され、それぞれの分割データが乗算回路５２に入力される。乗算回路５２および排他的論理和回路５３では、次のようなガロア体演算を行う。
【数１】
2008040244.tif 000003
【００１６】
即ち、上式（１）は、
S0c′＝({02}*S0c)+({03}*S1c)+S2c+S3c
S1c′＝S0c+({02}*S1c)+({03}*S2c)+S3c
S2c′＝S0c+S1c+({02}*S2c)+({03}*S3c)              （２）
S3c′＝({03}*S0c)+S1c+S2c+({02}*S3c)
となる。
【００１７】
ここで、分割回路５１から出力される８ビットデータが式（１）中のS0c，S1c，S2c，S3cに相当し、MixColumns変換回路５の演算結果が式（２）中のS0c′，S1c′，S2c′，S3c′に相当する。また、式（２）中の“＋”は排他的論理和回路５３の処理に相当し、“＊”は乗算回路５２の処理に相当する。
【００１８】
また、乗算回路５２の動作は次の通りである。
８ビットデータをS[7:0]とすると{02}*S[7:0]の演算を行う場合、ガロア体演算では下式（３）のようになる。
if  S[7]＝0  then
Y←左シフト(S[7:0])
else                                              （３）
Y←左シフト(S[7:0])+{1B}
end if
但し、S[7]は８ビットデータの最上位ビットである。
【００１９】
ここで、上式（３）で示す最上位ビットによる場合分けが選択部５２２の選択動作に相当する。また、上式（３）で示す左シフトが図５中の、７ビットを左（上位）シフトした結果に０を付加する構成に相当する。更に、排他的論理和演算部５２１に入力される固定値が上式（３）における{1B}に相当する。また、{03}*S＝{02}*S+Sであり、“＋”は排他的論理和演算部５２１の処理に相当する。
【００２０】
以上のように、実施の形態２のＡＥＳ暗号回路によれば、MixColumns変換回路は、入力データを所定ビット単位で分割する分割回路と、分割回路の出力データに対して、ガロア体演算を行う乗算回路および排他的論理和回路を備え、乗算回路は、分割回路の出力データと固定値との排他的論理和演算を行う排他的論理和演算部と、分割回路の出力データにおける所定のビット値に基づいて、排他的論理和演算部の出力と、分割回路の出力データにおける所定のビット以外のビット値とを選択する選択部と、選択部の出力を一時保存する第２のフリップフロップとを備えたので、演算結果を一時保存する機能を持ったMixColumns変換回路を具体的に実現することができる。
【図面の簡単な説明】
【００２１】
【図１】この発明の実施の形態１によるＡＥＳ暗号回路を示す構成図である。
【図２】この発明の実施の形態１の動作を示す説明図である。
【図３】この発明の実施の形態１の動作を示すタイミングチャートである。
【図４】従来のＡＥＳ暗号回路の動作を示すタイミングチャートである。
【図５】この発明の実施の形態２によるＡＥＳ暗号回路のMixColumns変換回路を示す構成図である。
【符号の説明】
【００２２】
１  選択回路、２  SubBytes変換回路、３  ShiftRows変換回路、４  フリップフロップ（第１のフリップフロップ）、５  MixColumns変換回路、６  AddRoundKey変換回路、５１  分割回路、５２  乗算回路、５３  排他的論理和回路、５２１  排他的論理和演算部、５２２  選択部、５２３  フリップフロップ（第２のフリップフロップ）。
【図１】
2008040244.tif 000004
【図２】
2008040244.tif 000005
【図３】
2008040244.tif 000006
【図４】
2008040244.tif 000007
【図５】
2008040244.tif 000008