Warning: copy(htaccessbak): failed to open stream: No such file or directory in /home/jtokkyo/public_html/header.php on line 10
暗号化装置、プログラム及び方法 - 特開2008−107636 | j-tokkyo
トップ :: G 物理学 :: G09 教育;暗号方法;表示;広告;シ−ル

【発明の名称】 暗号化装置、プログラム及び方法
【発明者】 【氏名】丹羽 朗人

【氏名】佐野 文彦

【要約】 【課題】入力データを非均等分割した場合にも線型変換部としてMDS変換を利用でき、線型変換部における行列生成の制限を緩和する。

【解決手段】MDS変換部14が各Sボックス131〜135のうちのSボックス131〜134から出力される出力データをMDS変換する構成により、全てのSボックス(非線型変換手段)の出力を線型変換部(MDS変換手段)へ入力するという前提が無いので、線型変換部が存在しない場合が無い。よって、入力データを非均等分割した場合にも線型変換部としてMDS変換を利用できる。
【特許請求の範囲】
【請求項1】
ブロック暗号方式に用いられ、それぞれF関数部を有する複数段のラウンド関数部がカスケード接続されてなる暗号化装置であって、
前記各F関数部は、
入力されるデータに基づいて排他的論理和を算出する排他的論理和手段と、
前記排他的論理和手段から出力される出力データを分割する分割手段と、
前記分割手段に分割された各データをメモリ内の置換テーブルを用いて非線型変換する複数の非線型変換手段と、
前記各非線型変換手段のうちの一部の非線型変換手段から出力される出力データをMDS変換するMDS変換手段と、
前記MDS変換手段から出力される出力データと、前記各非線型変換手段のうちの残りの非線型変換手段から出力される出力データとを結合して出力する出力手段と
を備えたことを特徴とする暗号化装置。
【請求項2】
請求項1に記載の暗号化装置において、
前記一部の非線型変換手段は、
互いに等しいビット数の入力サイズを有し、出力データを前記MDS変換手段に出力する複数の第1の非線型変換手段であり、
前記残りの非線型変換手段は、
前記第1の非線型変換手段の入力サイズとは異なる入力サイズを有し、出力データを前記出力手段に出力する第2の非線型変換手段であることを特徴とする暗号化装置。
【請求項3】
請求項2に記載の暗号化装置において、
前記第2の非線型変換手段は、前記第1の非線型変換手段の入力サイズよりも小さい入力サイズを有することを特徴とする暗号化装置。
【請求項4】
ブロック暗号方式に用いられ、それぞれF関数部を有する複数段のラウンド関数部がカスケード接続されてなる暗号化装置のプログラムであって、
前記暗号化装置の各F関数部を、
入力されるデータに基づいて排他的論理和を算出する排他的論理和手段、
前記排他的論理和手段から出力される出力データを分割する分割手段、
前記分割手段に分割された各データを、前記暗号化装置のメモリに記憶された置換テーブルを用いて非線型変換する複数の非線型変換手段、
前記各非線型変換手段のうちの一部の非線型変換手段から出力される出力データをMDS変換するMDS変換手段、
前記MDS変換手段から出力される出力データと、前記各非線型変換手段のうちの残りの非線型変換手段から出力される出力データとを結合して出力する出力手段、
として機能させるためのプログラム。
【請求項5】
ブロック暗号方式に用いられ、それぞれF関数部を有する複数段のラウンド関数部がカスケード接続されてなる暗号化装置の各F関数部が実行する暗号化方法であって、
入力されるデータに基づいて排他的論理和を算出する排他的論理和算出工程と、
前記排他的論理和算出工程から出力される出力データを分割する分割工程と、
前記分割工程により分割された各データを、前記暗号化装置のメモリに記憶された置換テーブルを用いて非線型変換する複数の非線型変換工程と、
前記各非線型変換工程のうちの一部の非線型変換工程から出力される出力データをMDS変換するMDS変換工程と、
前記MDS変換工程から出力される出力データと、前記各非線型変換工程のうちの残りの非線型変換工程から出力される出力データとを結合して出力する出力工程と、
を備えたことを特徴とする暗号化方法。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、電子データの暗号化を行う共通鍵ブロック暗号方式を用いる暗号化装置、プログラム及び方法に係り、例えば、入力データを非均等分割した場合にも線型変換部としてMDS変換を利用でき、線型変換部における行列生成の制限を緩和し得る暗号化装置、プログラム及び方法に関する。
【背景技術】
【0002】
高度情報化社会において情報セキュリティを確保するためには、データを暗号化及び復号するための暗号技術が基本的な技術となる。暗号技術の中では、共通鍵ブロック暗号と呼ばれる方式が一般的に用いられている。
【0003】
多くの共通鍵ブロック暗号では、ファイステル(Feistel)構造と呼ばれる繰り返し構造を採用しており、ファイステル構造では、構成要素としてF関数と呼ばれる関数が用いられている。F関数においては、入力データを分割し、得られた各データを、それぞれ置換テーブルを用いてデータを置換する複数のS−BOX(以下、Sボックスという)と呼ばれる非線型関数に入力し、各非線型関数の出力データを線型関数によって拡散する構造が用いられることが多い。この構造はSPN(Substitution Permutation Network)構造と呼ばれている。
【0004】
このような共通鍵ブロック暗号では、入力ビット数が通常64ビットあるいは128ビットであり、F関数でのデータ分割が、通常、均等分割(分割された各データのビット数が等しい)となっている。このため、Sボックスへの入力ビット数は、通常2ビットであり、実際には計算機のメモリ容量の制限等により8ビットとなることが多い。また、均等分割の場合には、後段の線型変換に適した関数としてMDS(maximum distance separable:最小距離分離)変換(例えば、非特許文献1参照)と呼ばれる線型関数が知られている。
【0005】
このようなF関数においては、入力データの分割を細かく(Sボックスへの入力ビット数を小さく)すれば、置換テーブルを参照する回数が増えて実行時間が低速になり、分割を粗く(Sボックスへの入力ビット数を大きく)すれば、置換テーブルのサイズが大きくなってSボックス内の記憶装置のメモリ量が増大し、参照速度が低速になる可能性がある。このため、入力データの分割を調節して計算機で使用するのに最適なメモリ量を実現できることが望ましい。
【0006】
しかしながら、均等分割の場合、前述したメモリ量の増大や参照時間の低速化といった不都合から、Sボックスの置換テーブルのサイズを大きくできない問題がある。
【0007】
こうした問題に対処するため、特許文献1では、非均等分割も視野に入れて、計算機の1次キャッシュメモリ量及び全体の入出力数を基にこれを最適化して、全体の入出力数を分割してSボックスの入出力数を決めて、余りを任意のSボックスの入出力に追加する、といった、その計算機に適合する暗号を構成する技術を提案している。
【0008】
また、特許文献2では、非均等分割の場合に適切な線型変換部が存在するか否かを判定し、存在する場合には、線型変換部として、擬似MDS変換に対応する行列を生成する技術を提案している。なお、「擬似MDS変換」とは、特許文献2に記載された線型変換の名称であり、均等分割でのMDS変換に対応するものを意味している。
【特許文献1】特開2001−282102号公報
【特許文献2】特開2002−91297号公報
【非特許文献1】共通鍵ブロック暗号の選択/設計/評価に関するドキュメント、通信・放送機構
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら特許文献2に記載の技術は、通常は特に問題は無いが、本発明者の検討によれば、全てのSボックスの出力を線型変換部へ入力することを前提とし、この前提による線型変換部の存在を判定することにより、行列の生成への制限が生じている点で改良の余地があると考える(特許文献2の第40−42段落参照)。
【0010】
本発明は上記実情を考慮してなされたもので、入力データを非均等分割した場合にも線型変換部としてMDS変換を利用でき、線型変換部における行列生成の制限を緩和し得る暗号化装置、プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
第1の発明は、ブロック暗号方式に用いられ、それぞれF関数部を有する複数段のラウンド関数部がカスケード接続されてなる暗号化装置であって、前記各F関数部としては、入力されるデータに基づいて排他的論理和を算出する排他的論理和手段と、前記排他的論理和手段から出力される出力データを分割する分割手段と、前記分割手段に分割された各データをメモリ内の置換テーブルを用いて非線型変換する複数の非線型変換手段と、前記各非線型変換手段のうちの一部の非線型変換手段から出力される出力データをMDS変換するMDS変換手段と、前記MDS変換手段から出力される出力データと、前記各非線型変換手段のうちの残りの非線型変換手段から出力される出力データとを結合して出力する出力手段とを備えた暗号化装置である。
【0012】
なお、第1の発明は、「装置」として表現したが、これに限らず、「方法」、「プログラム」又は「コンピュータ読取り可能な記憶媒体」として表現しても良い。
【0013】
(作用)
従って、第1の発明では、MDS変換手段が各非線型変換手段のうちの一部の非線型変換手段から出力される出力データをMDS変換する構成により、特許文献2とは異なり、全てのSボックス(非線型変換手段)の出力を線型変換部(MDS変換手段)へ入力するという前提が無いので、線型変換部が存在しない場合が無い。
【0014】
従って、入力データを非均等分割した場合にも線型変換部としてMDS変換を利用でき、線型変換部における行列生成の制限を緩和することができる。
【発明の効果】
【0015】
以上説明したように本発明によれば、入力データを非均等分割した場合にも線型変換部としてMDS変換を利用でき、線型変換部における行列生成の制限を緩和できる。
【発明を実施するための最良の形態】
【0016】
以下、本発明の各実施形態を図面を用いて説明する。なお、以下の装置は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。また、以下の説明中のビット数や段数は一例であり、他の値にしてもよいことはいうまでも無い。
【0017】
(一実施形態)
図1は本発明の一実施形態に係る暗号化装置の構成を示す模式図である。この暗号化装置1は、互いにカスケード接続された23段の鍵変換関数部fk1〜fk23と、各鍵変換関数部fk1〜fk23から個別に鍵K1〜K23が入力され、互いにカスケード接続された23段のラウンド関数部R1〜R23とを備えている。
【0018】
ここで、1段目の鍵変換関数部fk1は、96ビットの共通鍵が入力されると、この共通鍵に所定の鍵変換関数を施して32ビットの鍵K1を生成し、この鍵K1を1段目のラウンド関数部R1に送出し、鍵変換関数部fk1への入力前の96ビットの共通鍵を2段目の鍵変換関数部fk2に送出するものである。
【0019】
2〜22段目の鍵変換関数部fk2〜fk22は、前段の96ビットの共通鍵が入力されると、この鍵K1〜K21に所定の鍵変換関数を施して32ビットの鍵K2〜K22を生成し、この鍵K2〜K22を2〜22段目のラウンド関数部R2〜R22にそれぞれ送出し、それぞれの鍵変換関数部fk2〜fk22への入力前の96ビットの共通鍵を3〜23段目の鍵変換関数部fk3〜fk23にそれぞれ送出するものである。
【0020】
23段目の鍵変換関数部fk23は、96ビットの共通鍵が入力されると、この鍵に所定の鍵変換関数を施して32ビットの鍵K23を生成し、この鍵K23を23段目のラウンド関数部R23に送出するものである。
【0021】
一方、1段目のラウンド関数部R1は、1ブロック(64ビット)の平文データが左右32ビットずつに分割されて入力された入力データDL0,DR0に対し、右側の入力データDR0をF関数部F1が鍵変換関数部fk1からの鍵K1により変換し、変換結果FOと左側の入力データDL0との排他的論理和を排他的論理和部XOR1が算出し、算出結果を2段目への右側の32ビットの入力データDR1とし、F関数部F1による変換前の右側の入力データDR0を2段目の左側の32ビットの入力データDL1とし、これら入力データDL1,DR1を2段目のラウンド関数部R2に出力するものである。
【0022】
2〜22段目のラウンド関数部R2〜R22は、前段のラウンド関数部R1〜R21から入力された入力データDL1,DR1〜DL21,DR21に対し、右側の入力データDR1〜DR21をF関数部F2〜F22が鍵変換関数部fk2〜fk22からの鍵K2〜K22により変換し、変換結果FOと左側の入力データDL1〜DL21との排他的論理和を排他的論理和部XOR2〜XOR22が算出し、算出結果を3〜23段目への右側の32ビットの入力データDR2〜DR22とし、F関数部F2〜F22による変換前の右側の入力データDR1〜DR21を3〜23段目の左側の32ビットの入力データDL2〜DR22とし、これら入力データDL2,DR2〜DL22,DR22を3〜23段目のラウンド関数部R3〜R23に出力するものである。
【0023】
23段目のラウンド関数部R23は、前段のラウンド関数部R22から入力された入力データDL22,DR22に対し、右側の入力データDR22をF関数部F23が鍵変換関数部fk23からの鍵K23により変換し、変換結果FOと左側の入力データDL22との排他的論理和を排他的論理和部XOR23が算出し、算出結果を左側の32ビットの出力データDR23とし、F関数部F23による変換前の右側の入力データDR22を右側の出力データDL23とし、これら出力データDL23,DR23を結合した64ビット(1ブロック)の暗号文を出力するものである。
【0024】
ここで、各F関数部F1〜F23は、図2に示すように、排他的論理和部11、分割部12、Sボックス(非線型変換手段)131〜135、MDS変換部14及び出力部15を備えている。
【0025】
排他的論理和部11は、入力される32ビットの入力データDRi-1及び32ビットの鍵Ki(但し、1≦i≦23)に基づいて排他的論理和を算出し、算出結果を示す32ビットの出力データを分割部12に出力する機能をもっている。
【0026】
分割部12は、排他的論理和部11から出力される32ビットの出力データを4つの7ビットデータと1つの4ビットデータとに非均等に5分割(=4つの7ビットデータ+1つの4ビットデータ)し、得られた4つの7ビットデータをSボックス131〜134に出力し、当該1つの4ビットデータをSボックス135に出力する機能をもっている。
【0027】
非均等に5分割する方法は、例えば、排他的論理和部11から出力される32ビットの出力データを4分割し、得られた4つの8ビットデータから1ビットずつデータを分割する方式が使用可能となっている。
【0028】
ここで、1ビットずつ分割する方式を使用した理由は、「入力の各部は必ず出力全体に影響を及ぼす」ことを保証する拡散性を確保する観点から、なるべく多くのビット数のデータをMDS変換するようにしたためである。しかし、1ビットずつの分割には限定されない。
【0029】
Sボックス131〜134(第1の非線型変換手段)は、分割部12に分割されて得た各7ビットデータを図示しないメモリに記憶された置換テーブルを用いて非線型変換し、非線型変換結果を示す7ビットの出力データをMDS変換部14に出力する機能をもっている。ここで、Sボックス131〜134は、出力データをMDS変換部14に出力するように配置され、互いに等しいビット数(7ビット)の入力サイズを有している。
【0030】
また、Sボックス131〜134は、それぞれ任意の置換テーブルを使用可能であるが、ここではテーブル数を抑制してメモリ量を最適化する観点から、Sボックス131,133が互いに同一の置換テーブル(S1)を用いている。同じ観点からSボックス132,134は、Sボックス131,133の置換テーブル(S1)とは異なるが、互いに同一の置換テーブル(S2)を用いている。
【0031】
Sボックス135(第2の非線型変換手段)は、分割部12に分割されて得られた4ビットデータをメモリ内の置換テーブルを用いて非線型変換し、非線型変換結果を示す4ビットの出力データを出力部15に出力する機能をもっている。
【0032】
また、Sボックス135は、出力データをMDS変換部14を介さずに出力部15に出力するように配置され、Sボックス131〜134の入力サイズとは異なる入力サイズを有しており、ここではSボックス131〜134の入力サイズよりも小さい入力サイズ(4ビット)を有している。
【0033】
MDS変換部14は、各Sボックス131〜135のうちの一部のSボックス131〜134から出力される28ビットの出力データをMDS変換し、変換結果を示す28ビットの出力データを出力部15に出力する機能をもっている。
【0034】
なお、MDS変換部14は、入力データのビット数と出力データのビット数とが互いに等しいため、特許文献2とは異なり擬似MDS変換を用いず、線型変換部が存在しない場合が無いものである。
【0035】
出力部15は、MDS変換部14から出力される28ビットの出力データと、各Sボックス131〜135のうちの残りのSボックス135から出力される4ビットの出力データとを結合して32ビットの出力データFOを排他的論理和部XORiに出力する機能をもっている。
【0036】
ここで、32ビットの出力データFOは、MDS変換部14から出力される28ビットの出力データが4分割された4つの7ビットデータのそれぞれの最上位ビットMSBに対し、Sボックス135から出力される4ビットの出力データが4分割されてなる4つの1ビットデータを配置し、得られた4つの8ビットデータFO[0]〜FO[3]を結合したものである。
【0037】
ここで、4つの7ビットデータのそれぞれに、4ビットの出力データを4分割した4つの1ビットの出力データを配置した理由は、前述同様に、拡散性を確保する観点から好ましいためである。但し、4つの1ビットの出力データをそれぞれ配置する位置は、7ビットデータの最上位ビットMSBの位置に限らず、7ビットデータの最小桁のビットLSBの位置でもよく、あるいは7ビットデータの他の任意の桁のビット位置でもよい。
【0038】
次に、以上のように構成された暗号化装置の動作を説明する。
いま、暗号化装置1は、平文データと共通鍵とが入力されたとする。なお、共通鍵は、予め暗号化装置内の図示しないメモリに記憶していてもよい。
【0039】
(鍵生成動作)
暗号化装置1の1段目の鍵変換関数部fk1は、96ビットの共通鍵が入力されると、この共通鍵に所定の鍵変換関数を施して32ビットの鍵K1を生成し、この鍵K1を1段目のラウンド関数部R1に送出する。
【0040】
以下同様に、2〜22段目の鍵変換関数部fk2〜fk22は、96ビットの共通鍵が入力されると、この鍵に所定の鍵変換関数を施して32ビットの鍵K2〜K22を生成し、この鍵K2〜K22を2〜22段目のラウンド関数部R2〜R22にそれぞれ送出し、それぞれの鍵変換関数部fk2〜fk22への入力前の96ビットの共通鍵を3〜23段目の鍵変換関数部fk3〜fk23にそれぞれ送出する。
【0041】
23段目の鍵変換関数部fk23は、96ビットの共通鍵が入力されると、この鍵に所定の鍵変換関数を施して32ビットの鍵K23を生成し、この鍵K23を23段目のラウンド関数部R23に送出する。
【0042】
(暗号化の動作)
一方、暗号化装置1は、平文データを64ビットの各ブロックに分割し、各ブロックの平文データについて暗号化処理を開始する。
【0043】
始めに、暗号化装置1は、1ブロック(64ビット)の平文データを左右32ビットずつに分割し、得られた入力データDL0,DR0を1段目のラウンド関数部R1に入力する。
【0044】
1段目のラウンド関数部R1は、この入力データDL0,DR0に対し、右側の入力データDR0をF関数部F1が鍵変換関数部fk1からの鍵K1により変換する。
【0045】
F関数部F1においては、排他的論理和部11が、入力される32ビットの入力データDRi-1及び32ビットの鍵Kiに基づいて排他的論理和を算出し、算出結果を示す32ビットの出力データを分割部12に出力する。
【0046】
分割部12は、この32ビットの出力データを4つの7ビットデータと1つの4ビットデータとに非均等に5分割し、得られた4つの7ビットデータをSボックス131〜134に出力し、当該1つの4ビットデータをSボックス135に出力する。
【0047】
Sボックス131〜134は、分割部12から得られた各7ビットデータを図示しないメモリに記憶された置換テーブルを用いて非線型変換し、非線型変換結果を示す7ビットの出力データをMDS変換部14に出力する。
【0048】
Sボックス135は、分割部12から得られた4ビットデータをメモリ内の置換テーブルを用いて非線型変換し、非線型変換結果を示す4ビットの出力データを出力部15に出力する。
【0049】
MDS変換部14は、Sボックス131〜134から受けた28ビットの出力データをMDS変換し、変換結果を示す28ビットの出力データを出力部15に出力する。
【0050】
出力部15は、MDS変換部14から受けた28ビットの出力データと、Sボックス135から受けた4ビットの出力データとを結合して32ビットの出力データFO(F関数部F1による変換結果)を排他的論理和部XOR1に出力する。
【0051】
続いて、1段目のラウンド関数部R1の排他的論理和部XOR1では、F関数部F1から受けた出力データFOと、左側の入力データDL0との排他的論理和を算出する。
【0052】
ここで、1段目のラウンド関数部R1では、排他的論理和部XOR1による算出結果を2段目への右側の32ビットの入力データDR1とし、F関数部F1による変換前の右側の入力データDR0を2段目の左側の32ビットの入力データDL1とし、これら入力データDL1,DR1を2段目のラウンド関数部R2に出力する。
【0053】
以下同様に、2〜22段目のラウンド関数部R2〜R22においては、前段のラウンド関数部R1〜R21から入力された入力データDL1,DR1〜DL21,DR21に対し、右側の入力データDR1〜DR21をF関数部F2〜F22が鍵変換関数部fk2〜fk22からの鍵K2〜K22により変換し、この変換結果FOと左側の入力データDL1〜DL21との排他的論理和を排他的論理和部XOR2〜XOR22が算出し、算出結果を3〜23段目への右側の32ビットの入力データDR2〜DR22とし、F関数部F2〜F22による変換前の右側の入力データDR1〜DR21を3〜23段目の左側の32ビットの入力データDL2〜DR22とし、これら入力データDL2,DR2〜DL22,DR22を3〜23段目のラウンド関数部R3〜R23に出力する。
【0054】
23段目のラウンド関数部R23は、前段のラウンド関数部R22から入力された入力データDL22,DR22に対し、右側の入力データDR22をF関数部F23が鍵変換関数部fk23からの鍵K23により変換し、変換結果FOと左側の入力データDL22との排他的論理和を排他的論理和部XOR23が算出し、算出結果を左側の32ビットの出力データDR23とし、F関数部F23による変換前の右側の入力データDR22を右側の出力データDL23とし、これら出力データDL23,DR23を結合した64ビット(1ブロック)の暗号文を出力する。
【0055】
暗号化装置1では、以上の1ブロック毎の暗号化動作を平文データの各ブロックに対して実行し、最終的な暗号文を得る。なお、各ブロックに対して暗号化動作を実行する際には、所望により、暗号文ブロック連鎖方式(cipher block chaining:CBCモード)等の利用モードを用いてもよい。また、復号時には、暗号化時とは逆の順番で鍵K23〜K1を用いて暗号文データを平文データに戻せばよい。
【0056】
上述したように本実施形態によれば、MDS変換部14が各Sボックス131〜135のうちのSボックス131〜134から出力される出力データをMDS変換する構成により、特許文献2とは異なり、全てのSボックス(非線型変換手段)の出力を線型変換部(MDS変換手段)へ入力するという前提が無いので、線型変換部が存在しない場合が無い。従って、入力データを非均等分割した場合にも線型変換部としてMDS変換を利用でき、線型変換部における行列生成の制限を緩和することができる。
【0057】
補足すると、本実施形態においては、F関数Fiへの32ビットの入力データを非均等なビット数で5分割し、4個の7ビットデータと1個の4ビットデータとの各々を5個のSボックス131〜135への入力とする。これらSボックスのうち、互いにビット長が均等となっているSボックス131〜134からの4個の分割データ(7ビットずつ)に対してはMDS変換を行い、他のSボックス135の出力データについては、MDS変換を行う対象から外し、このSボックス135の出力データについては、ビット長が均等であるSボックス131〜134の出力データに対するMDS変換結果と適切に並べて結合したものをF関数の出力データFOとしている。
【0058】
これにより、SPN構造のF関数部において、入力データを均等なビット数で分割した場合に後段の線型変換部に採用されるMDS変換を、入力データを非均等なビット数で分割した場合にも後段の線型変換部に採用することができるので、線型変換部の設計の制限を緩和することができる。
【0059】
すなわち、本実施形態によれば、入力データの非均等分割によりSボックスのテーブルの数と大きさを抑制したことに加え、均等なビット数で分割した場合によく使用されるMDS変換を、入力データを非均等分割した場合にも線型変換部で使用できるようにしている。
【0060】
なお、本実施形態は、非均等分割ではあるが、特許文献1とは異なり、特定の計算機等を対象に最適化したものではなく、任意の暗号化装置のメモリ量を最適化することができる。また、例えばICカードのような小型携帯装置は、情報機器の中でも比較的メモリ量が小さいので、本実施形態の適用により、メモリ量を最適化することが好ましい。
【0061】
さらに、本実施形態は、非均等分割の場合に限らず、図3に示すように、均等分割の場合にも適用できる。すなわち、本実施形態は、図3に示すように、入力データを8ビットに均等分割し、各分割データをSボックス131〜134に入力し、Sボックス131〜133の出力データをMDS変換部14に入力し、Sボックス134の出力データをMDS変換部14を介さずに出力部15に入力する変形例としても、本実施形態と同様に実施して同様の効果を得ることができる。
【0062】
また、本実施形態及びその変形例における暗号化装置1の用途は、データの暗号化に限らず、2つのエンティティ間で、一方が乱数を生成して暗号化して得られた暗号化乱数を相手に送信し、相手が暗号化乱数を復号できた場合(相手が自分と同じ共通鍵を有する場合)に、相手を正当な相手と認証する認証装置としても使用できることは言うまでもない。ここでいう認証装置は、いわゆるチャレンジ・レスポンス認証を用いる認証装置である。チャレンジ・レスポンス認証については、例えば、ISO/IEC 9798-2: 1999, Entity authentication - Part 2: Mechanisms using symmetric encipherment algorithms (2nd edition)の文献に詳しい。
【0063】
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0064】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0065】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
【0066】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0067】
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0068】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0069】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0070】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【0071】
【図1】本発明の一実施形態に係る暗号化装置の構成を示す模式図である。
【図2】同実施形態におけるF関数部の構成を示す模式図である。
【図3】同実施形態におけるF関数部の変形例を示す模式図である。
【符号の説明】
【0072】
fk1〜fk23…鍵変換関数部、R1,R2,R23…ラウンド関数部、F1, F2, Fi, F23…F関数部、1…暗号化装置、11…排他的論理和部、12…分割部、131〜135…Sボックス、14…MDS変換部、15…出力部。
【出願人】 【識別番号】000003078
【氏名又は名称】株式会社東芝
【識別番号】301063496
【氏名又は名称】東芝ソリューション株式会社
【出願日】 平成18年10月26日(2006.10.26)
【代理人】 【識別番号】100058479
【弁理士】
【氏名又は名称】鈴江 武彦

【識別番号】100091351
【弁理士】
【氏名又は名称】河野 哲

【識別番号】100088683
【弁理士】
【氏名又は名称】中村 誠

【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊

【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司

【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘

【識別番号】100084618
【弁理士】
【氏名又は名称】村松 貞男

【識別番号】100092196
【弁理士】
【氏名又は名称】橋本 良郎


【公開番号】 特開2008−107636(P2008−107636A)
【公開日】 平成20年5月8日(2008.5.8)
【出願番号】 特願2006−291392(P2006−291392)