(57)【要約】【課題】  ＡＥＳのような、ガロア体（有限体）上の演算処理を有するブロック暗号において、処理速度が高速であり、かつ従来方式よりも少ない記憶容量で処理可能な方式を提案する。【解決手段】  換字テーブルと排他的論理和の組み合わせにより、換字テーブル用記憶容量を減少させる。即ち、Ｎバイト（ビット）＊１個の基礎となる事前計算データと、１バイト（ビット）＊Ａ個（Ａの個数は利用する暗号の処理体系に依存）の事前計算データ及びｅｘｃｌｕｓｉｖｅ  ｏｒのような論理演算を用いる。【選択図】  図１
2007034178.tif 000002
【特許請求の範囲】
【請求項１】
入力データから変換データを生成するデータ変換装置において，
入力データに対し，換字変換・転置変換および論理演算を少なくとも１つ用いることによって，複数の中間データを出力する第１の中間データ生成手段と，
入力データおよび固定値に対し，換字変換・転置変換および論理演算を少なくとも１つ用いることによって，複数の中間データを出力する第２の中間データ生成手段と，
上記複数の第１，第２の中間データに対し，排他的論理和を少なくとも１つ用いることによって，不要なデータを打ち消し，変換データを生成する変換データ生成手段とを備えたことを特徴とするデータ変換装置。
【請求項２】
上記入力データ，出力データおよび中間データの範囲は，暗号化方式及びグループ列の採りうることのできる最大範囲に応じて可変であることを特徴とする，
請求項１に記載のデータ変換装置。
【請求項３】
上記入力データには，固定値を含んでもよいことを特徴とする，
請求項１に記載のデータ変換装置。
【請求項４】
請求項１又は請求項３記載の固定値は，任意の正の整数であることを特徴とする，
請求項１に記載のデータ変換装置。
【請求項５】
上記換字変換は，ガロア体上の逆数・乗算演算のような，出力値が予測可能であり，かつ可逆変換であることを特徴とする請求項１に記載のデータ変換装置。
【請求項６】
上記転置変換は，ＡＥＳのＳｈｉｆｔＲｏｗｓ処理におけるバイト単位の置換のような，ある単位でのデータ置換処理であることを特徴とする請求項１に記載のデータ変換装置。
【請求項７】
上記論理演算は排他的論理和やシフト演算などを含むことを特徴とする請求項１に記載のデータ変換装置。
【請求項８】
上記換字変換・転置変換および論理演算は，少なくとも１つの換字変換にまとめることも可能とすることを特徴とする請求項１に記載のデータ変換装置
【請求項９】
請求項５又は請求項８記載の換字変換は，入力値に対応する出力値をＲＯＭのような記憶媒体に予め格納し，変換処理時に参照可能であることを特徴とする請求項１に記載のデータ変換装置
【請求項１０】
入力データから変換データを生成するデータ変換装置において，
入力データに対し，換字変換・転置変換および論理演算を少なくとも１つ用いることによって，複数の中間データを出力する第１の中間データ生成手段と，
上記複数の第１の中間データに対し，排他的論理和を少なくとも１つ用いることによって，不要なデータを打ち消し，変換データを生成する変換データ生成手段とを備えたことを特徴とするデータ変換装置。
【請求項１１】
上記入力データ，出力データおよび中間データの範囲は，暗号化方式及びグループ列の採りうることのできる最大範囲に応じて可変であることを特徴とする，
請求項１０に記載のデータ変換装置。
【請求項１２】
上記換字変換は，ガロア体上の逆数・乗算演算のような，出力値が予測可能であり，かつ可逆変換であることを特徴とする請求項１０に記載のデータ変換装置。
【請求項１３】
上記転置変換は，ＡＥＳのＳｈｉｆｔＲｏｗｓ処理におけるバイト単位の置換のような，ある単位でのデータ置換処理であることを特徴とする請求項１０に記載のデータ変換装置。
【請求項１４】
上記論理演算は排他的論理和やシフト演算などを含むことを特徴とする請求項１０に記載のデータ変換装置。
【請求項１５】
上記換字変換・転置変換および論理演算は，少なくとも１つの換字変換にまとめることも可能とすることを特徴とする請求項１０に記載のデータ変換装置。
【請求項１６】
請求項１２又は請求項１５記載の換字変換は，入力値に対応する出力値をＲＯＭのような記憶媒体に予め格納し，変換処理時に参照可能であることを特徴とする請求項１０に記載のデータ変換装置。
【請求項１７】
請求項１〜請求項１６の何れか１項に記載のデータ変換装置の機能をコンピュータに実現させるためのプログラム。
【請求項１８】
請求項１７に記載のプログラムを格納し、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＩＣカードや携帯電話のような，記憶容量が制限された環境下での暗号化，復号処理において，好適なものである。
【背景技術】
【０００２】
従来より，データを暗号化するための様々な暗号方式が知られている。暗号方式の一つに共通鍵暗号と呼ばれる暗号方式がある。共通鍵暗号は，大きく分けてブロック暗号とストリーム暗号と呼ばれる２つの方式に分類される。ブロック暗号は，固定された長さ各入力ブロックと鍵データを，換字・転置処理により攪拌し，同じ長さの出力ブロックに写す暗号化方式である。ストリーム暗号は，平文と鍵ストリームに排他的論理和のような論理演算を施し，暗号文を得る暗号化方式である。ブロック暗号の代表的なものとしては，ＤＥＳ（Ｄａｔａ Ｅｎｃｒｙｐｔｉｏｎ Ｓｔａｎｄａｒｄ）やＡＥＳ（Ａｄｖａｎｃｅｄ Ｅｎｃｒｙｐｔｉｏｎ Ｓｔａｎｄａｒｄ）がある。ストリーム暗号の代表的なものとしてはＲＣ４がある。
【０００３】
一般的な共通鍵暗号による暗号化処理の構成を図２に示す。図２の暗号化装置は，暗号化対象データと鍵データを入力とし，暗号化データを出力するものであって，暗号処理部と鍵処理部によって構成されている。第１ラウンドから第ｎラウンドまでの順番に，ｎ段階の処理を行う。鍵処理部は，入力された暗号鍵をもとに，ｎ段階のラウンド処理のそれぞれで用いられる拡大鍵１から拡大鍵ｎの生成を順次行う。
【０００４】
図３は，各ラウンド内の構成を示したものである。ラウンド内は，図３に示されている通り，主に換字処理と転置処理によって構成されている。換字処理の原理はガロア体の逆元演算のような出力値が予測可能であり，かつ可逆変換である演算処理である。上記演算処理をソフトウェア等で実装する場合，予め入力値に対応する出力値をＲＯＭ等の記憶媒体に格納しておき，実際の処理の際に参照する上記換字処理が用いられるのが一般的である。また，転置処理は，ある一定のデータ単位及び範囲内でのデータの入れ替えを行う処理である。入れ替えを行うデータ単位及び範囲は利用する暗号方式に依存する。ブロック暗号は，処理の殆どを上記ラウンド内の処理に費やしており，ラウンド内の処理を高速に行うことにより，ブロック暗号全体の劇的な速度向上を期待できる。
【０００５】
ラウンド内の処理を高速に行う方法として，非特許文献１として、「 Optimized Software Implementations of E2 / Kazumaro Aoki, Hiroki Ueda(1999/TIEICE)」がある。上記非特許文献の方式を適用すると，各ラウンド内の構成は図４のように表される。上記非特許文献の方式の特徴は，１）換字処理と転置処理を１つにまとめて処理が行える。２）データ単位を図３のような１ではなくＮとして扱える。以上の点が挙げられる。
又、別の従来例としては、特許文献１及び特許文献２をあげることが出来る。
【非特許文献１】Optimized Software Implementations of E2 / Kazumaro Aoki, Hiroki Ueda(1999/TIEICE)
【特許文献１】特開2000-019958号公報
【特許文献２】特開2004-120307号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述した図３のラウンド処理の方式と図４のラウンド処理の方式をまとめると図１１のようになる。図１１に示されている通り，図３のラウンド処理の方式は，記憶保持量は少ないが低速である。一方，図４の方式では，高速だが記憶保持量は大きくなる。以上の問題点がある。また，図４の方式は，換字処理に必要なデータサイズが大きいため，キャッシュの少ない環境では，キャッシュミス等により，複数回データをロードする事態が生じる可能性があり，結果として，処理が低速になる可能性がある。
【０００７】
本発明は上述の問題点に鑑み，換字処理・転置処理のような変換処理を有するブロック暗号において，図３の方式より処理速度が高速であり，図４の方式よりも少ない記憶容量で処理可能な暗号化，復号方式，装置，システム，コンピュータプログラム，及びそれを記憶した記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
入力データから変換データを生成するデータ変換装置において、
入力データに対し、換字変換・転置変換および論理演算を少なくとも１つ用いることによって，複数の中間データを出力する第１の中間データ生成手段と、
入力データおよび固定値に対し、換字変換・転置変換および論理演算を少なくとも１つ用いることによって、複数の中間データを出力する第２の中間データ生成手段と、
上記複数の第１，第２の中間データに対し、排他的論理和を少なくとも１つ用いることによって、不要なデータを打ち消し、変換データを生成する変換データ生成手段とを備えたことを特徴とする。
【発明の効果】
【０００９】
以上説明した通り，本発明によって，換字処理・転置処理のような変換処理を有するブロック暗号において，図３の方式より処理速度が高速であり，図４の方式よりも少ない記憶容量で処理可能な暗号化，復号方式を提供可能である。
【発明を実施するための最良の形態】
【００１０】
次に、本発明の詳細を実施例の記述に従って説明する。
【００１１】
以下，図面を参照して，本発明の好適な実施形態を説明する。
【００１２】
（第１の実施例）
図１は本発明における各実施形態を実現する情報処理装置の電気的構成を説明するための図である。なお，本発明の実現にあたって，図１に示される全ての機能を使用することは必須ではない。
【００１３】
情報処理装置１００は，上記図１に示すように，公衆回線等のモデム１１８，表示部としてのモニタ１０２，ＣＰＵ１０３，ＲＯＭ１０４，ＲＡＭ１０５，ＨＤ（ハードディスク）１０６，ネットワークのネットワーク接続部１０７，ＣＤ１０８，ＦＤ（フレキシブルディスク）１０９，ＤＶＤ（デジタル・ビデオ・ディスク，またはDigital Versatile Disk）１１０，プリンタ１１５のインターフェース（Ｉ／Ｆ）１１７，及び操作部としてのマウス１１２やキーボード１１３等のインターフェース（Ｉ／Ｆ）１１１が，バス１１６を介して互いに通信可能に接続されて構成されている。
【００１４】
マウス１１２及びキーボード１１３は，情報処理装置１００に対する各種指示等をユーザが入力するための操作部である。この操作部を介して入力された情報（操作情報）は，インターフェース１１１を介して，情報処理装置１００内に取り込まれる。
【００１５】
情報処理装置１００での各種情報（文字情報や画像情報等）は，プリンタ１１５により印刷出力できるようになされている。
【００１６】
モニタ１０２は，ユーザへの各種指示情報や，文字情報或いは画像情報等の各種情報の表示を行う。
【００１７】
ＣＰＵ１０３は，情報処理装置１００全体の動作制御を司るものであり，本実施の形態においては制御手段として機能している。
【００１８】
すなわち，ＣＰＵ１０３は，ＨＤ（ハードディスク）１０６等から処理プログラム（ソフトウェアプログラム）を読み出して実行することで，情報処理装置１００全体を制御する。特に，本実施の形態では，ＣＰＵ１０３は，ＨＤ１０６等から，暗号化処理機能および復号処理機能を実現する処理プログラムを読み出して実行することで，後述する情報変換処理を実施する。
【００１９】
ＲＯＭ１０４は，暗号化処理機能および復号処理機能のための処理プログラムや，プログラム内で用いられる各種データ等を記憶する。
【００２０】
ＲＡＭ１０５は，ＣＰＵ１０３での各種処理のために，一時的に処理プログラムや処理対象の情報を格納するための作業用エリア等として使用される。
【００２１】
ＨＤ１０６は，大容量記憶装置の一例としての構成要素であり，各種データ，あるいは各種処理の実行時にＲＡＭ１０５等へ転送される情報変換処理等のための処理プログラム等を保存する。
【００２２】
ＣＤ（ＣＤドライブ）１０８は，外部記憶媒体の一例としてのＣＤ（ＣＤ−Ｒ）に記憶されたデータを読み込み，また，当該ＣＤへデータを書き出す機能を有する。
【００２３】
ＦＤ（フレキシブルディスクドライブ）１０９は，ＣＤ１０８と同様に，外部記憶媒体の一例としてのＦＤ１０９に記憶されたデータを読み出す。また，種々のデータを上記ＦＤ１０９へ書き込む機能を有している。
【００２４】
ＤＶＤ（デジタル・ビデオ・ディスク）１１０は，ＣＤ１０８やＦＤ１０９と同様に，外部記憶媒体の一例としてのＤＶＤ１１０に記憶されたデータを読み出し，また，上記ＤＶＤ１１０へデータを書き込む機能を有している。
【００２５】
なお，ＣＤ１０８，ＦＤ１０９，ＤＶＤ１１０等の外部記憶媒体に対して，例えば，編集用のプログラム或いはプリンタドライバが記憶されている場合には，これらのプログラムをＨＤ１０６へインストールしておき，必要に応じて，ＲＡＭ１０５へ転送するように構成してもよい。
【００２６】
インターフェース（Ｉ／Ｆ）１１１は，マウス１１２或いはキーボード１１３によるユーザからの入力を受け付けるためのものである。
【００２７】
モデム１１８は，通信モデムであり，インターフェース（Ｉ／Ｆ）１１９を介して，例えば，公衆回線等を通じて外部のネットワークに接続される。
【００２８】
ネットワーク接続部１０７は，インターフェース（Ｉ／Ｆ）１１４を介して，外部のネットワークに接続される。
【００２９】
なお本発明は，複数の機器（例えば，ホストコンピュータ，インターフェース機器，リーダ，プリンタ等）から構成されるシステムに適用しても，一つの機器からなる装置（例えば，複写機，ファクシミリ装置等）に適用してもよい。
【００３０】
以下，本発明の実施の形態を図面と共に説明する。
【００３１】
図２にブロック暗号処理を行う装置を示す。暗号化対象データ２００と鍵データ２０１が，図１に示す情報処理装置１００に入力される。暗号化対象データ２００は暗号処理部２０２に，鍵データ２０１は鍵処理部２０３に，それぞれ入力される。鍵処理部２０３では，入力された鍵情報２０１を元に拡大鍵が生成され，暗号処理部２０２に入力される。暗号処理部２０２では，同時に入力された暗号化対象データ２００を第１ラウンド２０４から第ｎラウンド２０５まで順次行うことにより暗号化処理され，暗号化データ２０６が情報処理装置１００から出力される。暗号化処理に対する復号処理モジュールは，上記処理を逆側から順次行うことによって可能となる。
【００３２】
図５はＡＥＳ（Ａｄｖａｎｃｅｄ Ｅｎｃｒｙｐｔｉｏｎ Ｓｔａｎｄａｒｄ）における各ラウンド処理の構成を示す。図５の各マス目は１バイト単位で構成されている。ＡＥＳの各ラウンド処理はＲ１：ＳｕｂＢｙｔｅｓ５０２，Ｒ２：ＳｈｉｆｔＲｏｗｓ５０３，Ｒ３：ＭｉｘＣｏｌｕｍｎｓ５０４，Ｒ４：ＡｄｄＲｏｕｎｄＫｅｙ５０５によって構成されている。ＳｕｂＢｙｔｅｓ５０２は１バイト毎の換字変換である。例えば入力として００（１６）（（１６）は１６進数表記を示す。）が与えられた場合，６３（１６）が出力値となる。ＳｕｂＢｙｔｅｓの原理は，ガロア体ＧＦ（２＾８）上における既約多項式X^8＋X^4＋X^3＋X＋１での逆元演算である。ＳｈｉｆｔＲｏｗｓ５０３はバイト単位の置換である。図６に示されている通り，Ｓ１０はＳ１３の位置に，Ｓ１１はＳ１０の位置に，以下図６に示されているとおりに置換される。ここで，ＳｈｉｆｔＲｏｗｓ後の出力値をＲｘｙ（０＜＝ｘ＜＝３，０＜＝ｙ＜＝３）とする。ＭｉｘＣｏｌｕｍｎｓ５０４は列単位の換字変換および排他的論理和によって構成される。ＭｉｘＣｏｌｕｍｎｓ５０４の一般式は式１に表される。
【００３３】
【数１】
2007034178.tif 000003
式１に示されている通り，各列のあるバイトに対しては乗算処理を行い，またあるバイトに対してはそのままの状態で，各列の全バイトの排他的論理和を計算することで，各列の出力値を導出する。上記乗算処理は，ガロア体GF（２＾８）上における既約多項式X^8＋X^4＋X^3＋X+１での乗算処理であり，入力に対応する出力値が予測可能であることから，換字処理が用いられるのが一般的である。ＡｄｄＲｏｕｎｄＫｅｙ５０５は，鍵処理部２０３にて生成された各ラウンド用の拡大鍵５０７とＭｉｘＣｏｌｕｍｎｓ５０４までに算出された出力値との排他的論理和を行う処理である。
【００３４】
図７は，本発明による各ラウンド処理の構成を示す。入力データ７０１は，ＳｈｉｆｔＲｏｗｓ処理７０２によって，図７に示されている所定の位置に置換される。次に，式２に示されている換字変換＆排他的論理輪演算７０３によって，Ｘｘｙ（０＜＝ｘ＜＝３，０＜＝ｙ＜＝３）が出力される。
【００３５】
【数２】
2007034178.tif 000004
式２の特徴としては，１）入力データ１バイトに対し，１バイト単位ではなく，１列単位（４バイト）単位でＳｕｂＢｙｔｅｓ変換を行う。２）１）の処理で必要な換字テーブルの大きさは，1列（４バイト）×ガロア体の採りうる範囲（２５６）×テーブルの個数（各列ともに同じテーブルを使用）（１）＝１０２４バイトである。以上が挙げられる。上記求められたＸｘｙに対し，ＳｈｉｆｔＲｏｗｓ処理７０２後のＩｘｙに換字変換を行ったもの（ＴＢ１[Ｘｘｙ]，ＴＢ２[Ｘｘｙ]とする。）を排他的論理和７０４することにより，式１の形にすることができる。つまり，ＭｉｘＣｏｌｕｍｎｓ処理７０５後のＣｘｙが算出される。なお，ＴＢ１[Ｘｘｙ]，ＴＢ２[Ｘｘｙ]に必要な換字テーブルの大きさは，1マス（１バイト）×ガロア体の採りうる範囲（２５６）×テーブルの個数（ＴＢ１[ ]， ＴＢ２[ ]）（２）である。
【００３６】
図８は，本実施例のフローチャートである。Ｓ８０１では，N−1ラウンドの出力結果がNラウンドの入力値として入力される。Ｓ８０２は，入力データに対するＳｈｉｆｔＲｏｗｓ処理である。結果は，図７のR'1 ７０２に示される値になる。Ｓ８０３は，Ｓ８０２で転置された入力データに対するＳｕｂＢｙｔｅｓ処理である。ただし，上記で述べたとおり，入力１バイトに対し，出力４バイトのＳｕｂＢｙｔｅｓ処理である。処理内容は，式２にて示されている。結果は，図７のＲ'２ ７０３に示される値になる。 Ｓ８０４は，図７のR'1 ７０２の各入力データ１マス（１バイト）に対し，換字変換を行う。上記換字変換は式３で表される。
【００３７】
【数３】
2007034178.tif 000005
なお式３中のＲｘｙは，ＳｈｉｆｔＲｏｗｓ &ＳｕｂＢｙｔｅｓ処理後のデータ，記号・は上記ガロア体上の乗算処理，記号＾は排他的論理和を示す。また，式３中Iｘｙは，図７のR'1 ７０２の各入力データのうち，上記式１内で｛０３｝と乗算するＲを求める際の入力値を指す。例えば，図７のＲ'４ ７０５のＣ００を求める際には，Ｉ１１がＩｘｙとなる。 また，Xは０〜２５５の間の固定値を示す。S８０４は，図７のR'1 ７０２の各入力データ１マス（１バイト）に対し，換字変換を行う。上記換字変換は式４で表される。
【００３８】
【数４】
2007034178.tif 000006
式４中Iｘｙは，図７のR'1 ７０２の各入力データのうち，上記式１内で｛０２｝と乗算するＲを求める際の入力値を指す。例えば，図７のＲ'４ ７０５のＣ００を求める際には，Ｉ００がＩｘｙとなる。その他，式中の記号・パラメータの意味は上記式３と同様である。S８０６は，S８０３，S８０４，S８０５で求められた出力データの排他的論理和演算処理である。結果は，図７のＲ'４ ７０５に示される値になる。S８０７では，上記ＡｄｄＲｏｕｎｄＫｅｙ変換を行う。結果は，図５の第ｎラウンドの出力データ７０７となる。S８０８では，S８０７までの出力結果をNラウンドの出力結果として出力する。以上で第Nラウンドの処理は終了となる。
【００３９】
（第２の実施例）
第１の実施例では，式１及び式２は１つないし２つのガロア体上の乗算や固定値等を用いて構成された。ガロア体上の乗算処理の性質を省みた上で，式１及び式２は１つのガロア体上の乗算処理のみで構成することも可能である。
【００４０】
図９は，本実施例のフローチャートである。S９０１では，N−1ラウンドの出力結果がNラウンドの入力値として入力される。S９０２は，入力データに対するＳｈｉｆｔＲｏｗｓ処理である。結果は，図７のR'1 ７０２に示される値になる。S９０３は，S９０２で転置された入力データに対するＳｕｂＢｙｔｅｓ処理である。ただし，上記で述べたとおり，入力１バイトに対し，出力４バイトのＳｕｂＢｙｔｅｓ処理である。処理内容は，式２にて示されている。結果は，図７のＲ'２ ７０３に示される値になる。 S９０４は，図７のR'1 ７０２の各入力データ１マス（１バイト）に対し，換字変換を行う。上記換字変換は式５で表される。
【００４１】
【数５】
2007034178.tif 000007
なお式５中のＲｘｙは，ＳｈｉｆｔＲｏｗｓ &ＳｕｂＢｙｔｅｓ処理後のデータ，記号・は上記ガロア体上の乗算処理，記号＾は排他的論理和を示す。また，式５中Iｘｙは，図７のR'1 ７０２の各入力データのうち，上記式１内で｛０３｝と乗算するＲを求める際の入力値を指す。例えば，図７のＲ'４ ７０５のＣ００を求める際には，Ｉ１１がＩｘｙとなる。 S９０５は，図７のR'1 ７０２の各入力データ１マス（１バイト）に対し，換字変換を行う。上記換字変換は式６で表される。
【００４２】
【数６】
2007034178.tif 000008
式６中Iｘｙは，図７のR'1 ７０２の各入力データのうち，上記式１内で｛０２｝と乗算するＲを求める際の入力値を指す。例えば，図７のＲ'４ ７０５のＣ００を求める際には，Ｉ００がＩｘｙとなる。その他，式中の記号・パラメータの意味は上記式５と同様である。S９０６は，S９０３，S９０４，S９０５で求められた出力データの排他的論理和演算処理である。結果は，図７のＲ'４ ７０５に示される値になる。Ｓ９０７では，上記ＡｄｄＲｏｕｎｄＫｅｙ変換を行う。結果は，図５の第ｎラウンドの出力データ７０７となる。Ｓ９０８では，Ｓ９０７までの出力結果をＮラウンドの出力結果として出力する。以上で第Ｎラウンドの処理は終了となる。
【００４３】
（第３の実施例）
第１および第２の実施例は，ある決まった数・大きさの中間データ，換字変換・転置変換および排他的論理和によって構成されていた。換字変換・転置変換および排他的論理和の性質を省みた上で，任意の数・大きさの中間データ，換字変換・転置変換および排他的論理和によって構成することも可能である。
【００４４】
図１０は，本実施例におけるＡＥＳのブロック図である。まず，Ｎ−1ラウンドの出力結果１００１から，任意の数・大きさの換字変換・転置変換および排他的論理和によって，任意の数の中間データＸ１００２を生成する。そして，上記中間データＸから，任意の数の排他的論理和によって，ＭｉｘＣｏｌｕｍｎｓ処理後のデータＣｘｙ１００３を生成する。上記に示したとおり，入力データから，任意の数・大きさの換字変換・転置変換および排他的論理和によって，任意の数・大きさの中間データを生成し，生成された中間データから，任意の数の排他的論理和によって，上記式１のような構成となり，ＭｉｘＣｏｌｕｍｎｓ処理後のデータＣｘｙ１００３を生成できる場合は，本発明の範疇に含まれる。
【００４５】
（第４の実施例）
第１，第２および第３の実施例は，複数の機器（例えばホストコンピュータ，インターフェース機器，リーダ，プリンタ等）から構成されるシステムの一部として適用しても，ひとつの機器（たとえば複写機，ファクシミリ装置）からなるものの一部に適用してもよい。
【００４６】
また，本発明は上記実施の形態を実現するための装置及び方法及び実施の形態で説明した方法を組み合わせて行う方法のみに限定されるものではなく，上記システムまたは装置内のコンピュータ（ＣＰＵあるいはＭＰＵ）に，上記実施の形態を実現するためのソフトウエアのプログラムコードを供給し，このプログラムコードに従って上記システムあるいは装置のコンピュータが上記各種デバイスを動作させることにより上記実施の形態を実現する場合も本発明の範疇に含まれる。
【００４７】
またこの場合，前記ソフトウエアのプログラムコード自体が上記実施の形態の機能を実現することになり，そのプログラムコード自体，及びそのプログラムコードをコンピュータに供給するための手段，具体的には上記プログラムコードを格納した記憶媒体は本発明の範疇に含まれる。
【００４８】
この様なプログラムコードを格納する記憶媒体としては，例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ等を用いることができる。
【００４９】
また，上記コンピュータが，供給されたプログラムコードのみに従って各種デバイスを制御することにより，上記実施の形態の機能が実現される場合だけではなく，上記プログラムコードがコンピュータ上で稼働しているＯＳ(オペレーティングシステム)，あるいは他のアプリケーションソフト等と共同して上記実施の形態が実現される場合にもかかるプログラムコードは本発明の範疇に含まれる。
【００５０】
更に，この供給されたプログラムコードが，コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後，そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い，その処理によって上記実施の形態が実現される場合も本発明の範疇に含まれる。
【図面の簡単な説明】
【００５１】
【図１】発明の実施の形態に係る処理装置の構成を示すブロックである。
【図２】本発明の第１の実施形態に係る暗号装置の概要である。
【図３】ブロック暗号方式のラウンド部分の図である。
【図４】非特許文献を適用した場合のブロック暗号方式のラウンド部分の図である。
【図５】ＡＥＳのラウンド部分を説明する概念図である。
【図６】ＡＥＳのＳｈｉｆｔＲｏｗｓ部分を説明する概念図である。
【図７】本発明の第１の実施形態に係るラウンド部分の処理例を説明する概念図である。
【図８】本発明の第１の実施形態に係る暗号処理フローチャートを説明する概念図である。
【図９】本発明の第２の実施形態に係る暗号処理フローチャートを説明する概念図である。
【図１０】本発明の第３の実施形態に係るＭｉｘＣｏｌｕｍｎｓまでの処理例を説明する概念図である。
【図１１】図３のラウンド処理の方式と図４のラウンド処理の方式をまとめた図である。
【符号の説明】
【００５２】
１００  情報処理装置
１０２  モニタ
１０３  ＣＰＵ
１０４  ＲＯＭ
１０５  ＲＡＭ
１０６  ＨＤ
１０７  ネットワーク接続部
１０８  ＣＤドライブ
１０９  ＦＤドライブ
１１０  ＤＶＤドライブ
１１１  インターフェース
１１２  マウス
１１３  キーボード
１１４  インターフェース
１１５  プリンタ
１１６  バス
１１７  インターフェース
１１８  モデム
１１９  インターフェース
【図１】
2007034178.tif 000009
【図２】
2007034178.tif 000010
【図３】
2007034178.tif 000011
【図４】
2007034178.tif 000012
【図５】
2007034178.tif 000013
【図６】
2007034178.tif 000014
【図７】
2007034178.tif 000015
【図８】
2007034178.tif 000016
【図９】
2007034178.tif 000017
【図１０】
2007034178.tif 000018
【図１１】
2007034178.tif 000019