(57)【特許請求の範囲】
【請求項１】
ｋ系列のデータ｛Ｂ１，Ｂ２，…，Ｂｋ｝（ｋは６以上の偶数）のうちのｋ／２個の奇数系列データＢｉ（ｉ＝１，３，…，ｋ−１）をそれぞれ中間データＷｉとするとともに、拡大鍵データの値に応じて変換後の値が決定される全単射なＦ関数に基づいて該奇数系列データＢｉを変換したデータと偶数系列データＢｉ＋１との間における排他的論理和を中間データＷｉ＋１とする非線形変換部と、
前記中間データ｛Ｗ１，Ｗ２，…，Ｗｋ｝を転置してデータ｛Ｂ１，Ｂ２，…，Ｂｋ｝とする転置部と、を備え、
前記転置部の転置処理により前記中間データＷｘ（ｘ＝１，２，…，ｋ）がＢｐ［ｘ］に転置される場合に、当該転置処理をπｋ＝｛ｐ［０］，ｐ［１］，…，ｐ［ｋ］｝と表したとき、
前記ｋ系列が６系列である場合、
π６＝｛２，３，６，１，４，５｝であり、
前記ｋ系列が８系列である場合、
π８＝｛２，３，６，７，８，５，４，１｝、
π８＝｛４，５，２，３，８，１，６，７｝、または、
π８＝｛２，５，４，７，８，１，６，３｝であり、
前記ｋ系列が１０系列である場合、
π１０＝｛２，３，１０，５，４，９，６，７，８，１｝、
π１０＝｛２，３，１０，５，８，９，４，７，６，１｝、
π１０＝｛６，３，２，７，４，５，１０，１，８，９｝、
π１０＝｛２，３，６，７，８，９，４，１，１０，５｝、または、
π１０＝｛２，５，８，３，１０，１，４，９，６，７｝であり、
前記ｋ系列が１２系列である場合、
π１２＝｛２，３，４，５，８，１，１０，１１，６，７，１２，９｝、
π１２＝｛２，３，４，５，８，９，１０，１１，６，１，１２，７｝、
π１２＝｛２，３，６，１，４，７，１０，５，８，１１，１２，９｝、
π１２＝｛２，３，６，１，４，７，１０，１１，１２，９，８，５｝、
π１２＝｛２，３，６，１，８，９，４，５，１２，７，１０，１１｝、
π１２＝｛２，３，６，１，８，９，４，１１，１０，７，１２，５｝、
π１２＝｛２，３，６，１，８，９，１０，５，４，１１，１２，７｝、
π１２＝｛２，３，６，１，８，９，１０，１１，４，７，１２，５｝、
π１２＝｛２，３，６，７，４，９，１０，１１，１２，１，８，５｝、
π１２＝｛２，３，６，７，４，９，１２，１，８，５，１０，１１｝、
π１２＝｛２，３，６，７，４，９，１２，５，８，１１，１０，１｝、
π１２＝｛２，３，６，７，８，１，１０，１１，４，５，１２，９｝、
π１２＝｛２，３，６，７，８，１，１０，１１，１２，５，４，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，４，１，１２，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，１２，１，４，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，１２，９，４，１｝、
π１２＝｛２，３，６，７，８，９，４，１，１２，５，１０，１１｝、
π１２＝｛２，３，６，７，８，９，４，１１，１２，１，１０，５｝、
π１２＝｛２，３，６，７，８，９，１０，５，１２，１，４，１１｝、
π１２＝｛２，３，６，７，８，９，１０，１１，１２，５，４，１｝、
π１２＝｛２，３，６，７，８，９，１２，１，４，１１，１０，５｝、
π１２＝｛２，３，６，７，８，９，１２，５，４，１，１０，１１｝、
π１２＝｛２，３，６，７，８，９，１２，５，１０，１１，４，１｝、
π１２＝｛２，３，６，７，１０，１，４，９，１２，５，８，１１｝、
π１２＝｛２，３，６，７，１０，１，４，１１，１２，９，８，５｝、
π１２＝｛２，３，６，７，１０，１，１２，９，８，５，４，１１｝、
π１２＝｛２，３，６，７，１０，１，１２，９，８，１１，４，５｝、
π１２＝｛２，３，６，７，１０，５，１２，９，８，１１，４，１｝、
π１２＝｛２，３，６，７，１０，１１，４，５，８，１，１２，９｝、
π１２＝｛２，３，６，７，１０，１１，４，５，１２，９，８，１｝、
π１２＝｛２，３，６，７，１０，１１，４，９，１２，１，８，５｝、
π１２＝｛２，３，６，７，１０，１１，８，９，１２，１，４，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，１，４，９，８，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，４，１，８，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，４，５，８，１｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，８，１，４，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，８，５，４，１｝、
π１２＝｛４，１，２，５，８，３，６，９，１２，７，１０，１１｝、
π１２＝｛４，１，２，５，８，９，１０，３，１２，７，６，１１｝、
π１２＝｛４，１，２，５，８，９，１０，７，１２，３，６，１１｝、
π１２＝｛４，１，２，５，８，９，１２，３，６，７，１０，１１｝、
π１２＝｛４，１，２，５，８，９，１２，７，６，３，１０，１１｝、
π１２＝｛４，１，６，３，２，７，１０，１１，１２，９，８，５｝、
π１２＝｛４，１，６，７，２，９，１２，５，８，１１，１０，３｝、
π１２＝｛４，１，６，７，８，３，１０，１１，１２，９，２，５｝、
π１２＝｛４，１，６，７，８，５，１０，１１，１２，３，２，９｝、
π１２＝｛４，１，６，７，８，９，１２，３，２，１１，１０，５｝、
π１２＝｛４，１，６，７，１０，３，１２，５，８，１１，２，９｝、
π１２＝｛４，１，６，７，１０，３，１２，９，２，１１，８，５｝、
π１２＝｛４，１，６，７，１０，５，１２，９，２，１１，８，３｝、
π１２＝｛４，１，６，７，１０，１１，２，５，１２，３，８，９｝、
π１２＝｛４，１，６，７，１０，１１，２，５，１２，９，８，３｝、
π１２＝｛４，１，６，７，１０，１１，２，９，１２，５，８，３｝、
π１２＝｛４，１，６，７，１０，１１，１２，３，８，５，２，９｝、
π１２＝｛４，１，６，７，１０，１１，１２，５，２，３，８，９｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，２，３，８，５｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，２，５，８，３｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，８，３，２，５｝、または、
π１２＝｛４，１，６，７，１０，１１，１２，９，８，５，２，３｝であり、
前記ｋ系列が１４系列である場合、
π１４＝｛２，３，１０，５，４，７，１４，９，８，１１，１２，１３，６，１｝、
π１４＝｛２，３，１０，５，１４，７，８，９，６，１１，４，１３，１２，１｝、
π１４＝｛２，３，１２，５，４，７，１４，９，１０，１１，８，１３，６，１｝、
π１４＝｛６，３，２，５，１２，７，４，９，１４，１１，１０，１３，８，１｝、
π１４＝｛６，３，１０，５，２，７，１４，９，８，１１，４，１３，１２，１｝、
π１４＝｛６，３，１０，５，４，７，２，９，１４，１１，８，１３，１２，１｝、
π１４＝｛６，３，１４，５，１２，７，４，９，２，１１，１０，１３，８，１｝、
π１４＝｛２，３，８，５，４，７，１４，９，６，１３，１０，１１，１２，１｝、
π１４＝｛２，３，８，５，６，７，１２，９，４，１３，１４，１１，１０，１｝、
π１４＝｛２，３，８，５，１２，７，１４，９，６，１３，４，１１，１０，１｝、
π１４＝｛２，３，１０，５，４，７，８，９，１２，１３，１４，１１，６，１｝、
π１４＝｛２，３，１０，５，６，７，１２，９，８，１３，１４，１１，４，１｝、
π１４＝｛２，３，１０，５，１２，７，８，９，６，１３，１４，１１，４，１｝、
π１４＝｛２，３，１２，５，１０，７，４，９，８，１３，１４，１１，６，１｝、
π１４＝｛２，３，１２，５，１０，７，６，９，４，１３，１４，１１，８，１｝、
π１４＝｛２，３，１２，５，１４，７，８，９，６，１３，１０，１１，４，１｝、
π１４＝｛２，３，１４，５，１０，７，６，９，４，１３，８，１１，１２，１｝、
π１４＝｛２，３，１４，５，１０，７，１２，９，８，１３，４，１１，６，１｝、
π１４＝｛２，３，８，５，１０，７，１４，１１，４，９，６，１，１２，１３｝、
π１４＝｛２，３，１０，５，４，７，１４，１１，８，９，６，１，１２，１３｝、
π１４＝｛２，３，１０，５，１２，７，４，１１，６，９，１４，１，８，１３｝、
π１４＝｛２，３，１０，５，１４，７，４，１１，６，９，８，１，１２，１３｝、
π１４＝｛２，３，１０，５，１４，７，６，１１，８，９，４，１，１２，１３｝、
π１４＝｛６，３，２，５，１２，７，１０，１１，８，９，１４，１，４，１３｝、
π１４＝｛６，３，１０，５，２，７，１４，１１，１２，９，８，１，４，１３｝、
π１４＝｛６，３，１０，５，４，７，２，１１，８，９，１４，１，１２，１３｝、
π１４＝｛６，３，１０，５，１２，７，４，１１，８，９，１４，１，２，１３｝、
π１４＝｛６，３，１０，５，１４，７，４，１１，２，９，８，１，１２，１３｝、
π１４＝｛６，３，１２，５，１０，７，１４，１１，４，９，８，１，２，１３｝、
π１４＝｛８，３，２，５，１０，７，４，１１，１２，９，１４，１，６，１３｝、
π１４＝｛８，３，２，５，１０，７，６，１１，１２，９，１４，１，４，１３｝、
π１４＝｛２，３，８，５，４，７，１０，１１，１２，１３，６，１，１４，９｝、
π１４＝｛２，３，１０，５，４，７，８，１１，１２，１３，１４，１，６，９｝、
π１４＝｛２，３，１０，５，１２，７，４，１１，６，１３，８，１，１４，９｝、
π１４＝｛８，３，２，５，１０，７，６，１１，４，１３，１４，１，１２，９｝、
π１４＝｛８，３，２，５，１０，７，６，１１，１２，１３，１４，１，４，９｝、
π１４＝｛２，３，１２，５，４，９，６，７，１４，１，８，１３，１０，１１｝、
π１４＝｛２，３，１２，５，８，９，１４，７，６，１，４，１３，１０，１１｝、
π１４＝｛２，３，８，５，６，９，１０，１１，１４，１，４，１３，１２，７｝、
π１４＝｛２，３，８，５，１４，９，６，１１，４，１，１２，１３，１０，７｝、
π１４＝｛８，３，２，５，１４，９，６，１１，１２，１，４，１３，１０，７｝、
π１４＝｛２，３，１０，７，４，５，１４，１，６，１１，８，１３，１２，９｝、
π１４＝｛２，３，１０，７，１２，５，６，１，１４，１１，８，１３，４，９｝、または、
π１４＝｛２，３，１０，７，１４，５，４，１，８，１１，６，１３，１２，９｝であり、
前記ｋ系列が１６系列である場合、
π１６＝｛２，３，１０，５，１６，７，６，９，１４，１１，８，１５，１２，１３，４，１｝、
π１６＝｛２，３，１２，５，１４，７，１６，９，６，１１，１０，１５，８，１３，４，１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，６，１１，４，１，１４，１５｝、
π１６＝｛２，３，１２，５，１０，７，１６，９，６，１３，８，１１，４，１，１４，１５｝、
π１６＝｛６，３，１０，５，２，７，１２，９，１６，１３，４，１１，８，１，１４，１５｝、
π１６＝｛６，３，１０，５，１２，７，１６，９，４，１３，２，１１，８，１，１４，１５｝、
π１６＝｛６，３，１２，５，２，７，１６，９，４，１３，１４，１１，８，１，１０，１５｝、
π１６＝｛２，３，１０，５，１２，７，８，９，１６，１３，１４，１５，４，１，６，１１｝、
π１６＝｛２，３，１２，５，４，７，８，９，１６，１３，６，１５，１０，１，１４，１１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，４，１，６，１１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，６，１，４，１１｝、
π１６＝｛２，３，１２，５，１０，７，１６，９，６，１３，８，１５，４，１，１４，１１｝、
π１６＝｛２，３，１０，５，１４，７，８，１１，６，９，１６，１，１２，１５，４，１３｝、
π１６＝｛６，３，１４，５，２，７，１０，１１，１２，９，１６，１，８，１５，４，１３｝、
π１６＝｛８，３，１４，５，１２，９，４，７，１６，１，１０，１１，２，１５，６，１３｝、
π１６＝｛８，３，１４，５，１２，９，１０，７，１６，１，４，１１，６，１５，２，１３｝、
π１６＝｛２，３，１２，５，１６，９，４，７，８，１，１０，１３，６，１５，１４，１１｝、
π１６＝｛２，３，８，５，１６，９，１４，１１，４，１，１２，１３，１０，１５，６，７｝、
π１６＝｛２，３，１０，５，８，９，６，１１，１６，１，４，１３，１４，１５，１２，７｝、
π１６＝｛６，３，２，７，１２，５，１４，１，４，９，１６，１３，８，１５，１０，１１｝、
π１６＝｛６，３，１２，７，４，５，１６，１，１４，９，１０，１３，２，１５，８，１１｝、
π１６＝｛２，３，６，７，８，９，１２，１，１６，５，１０，１３，１４，１５，４，１１｝、または、
π１６＝｛６，３，１２，７，１４，９，１６，１，４，５，１０，１３，２，１５，８，１１｝であることを特徴とする、暗号化装置。
【請求項２】
前記非線形変換部と前記転置部とから成るｋ系列一般化Feistel処理部を複数備えていることを特徴とする、請求項１に記載の暗号化装置。
【請求項３】
前記非線形変換部と前記転置部とから成るｋ系列一般化Feistel処理部を複数有する暗号化部を備え、
前記暗号化部は、鍵データから生成された複数の拡大鍵と平文データを前記複数のｋ系列一般化Feistel処理部に入力して、該平文データを暗号化することを特徴とする、請求項２に記載の暗号化装置。
【請求項４】
前記非線形変換部と前記転置部とから成るｋ系列一般化Feistel処理部を複数有する復号化部を備え、
前記復号化部は、鍵データから生成された複数の拡大鍵と暗号文データを前記複数のｋ系列一般化Feistel処理部に入力して、該暗号文データを復号化することを特徴とする、請求項２または３に記載の暗号化装置。
【請求項５】
鍵データから複数の拡大鍵を生成する拡大鍵生成部を備えていることを特徴とする、請求項３または４に記載の暗号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２００９−２４６３０６号（２００９年１０月２７日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、暗号化装置、暗号化方法及びプログラムに関し、特に、データの通信や蓄積の際にデータを秘匿するための共通鍵ブロック暗号に基づく暗号化装置、暗号化方法及びプログラムに関する。
【背景技術】
【０００２】
通信データ又は蓄積データを秘匿する技術として共通鍵ブロック暗号がある。ブロック暗号は、暗号化するデータをある単位（ブロック長という）に区切って暗号化を行う。その代表的なものとして、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）が挙げられる。ＤＥＳでは、フェイステル（Ｆｅｉｓｔｅｌ）構造と呼ばれる構造が初めて採用された。【０００３】
図１は、ブロック長２ｎビットのＦｅｉｓｔｅｌ構造の１ラウンド分の処理を表した図である。入力データをｎビットデータＢ１とＢ２の２つに分割し、Ｂ１と鍵データＫｒとを関数Ｆで攪拌し、その出力データとデータＢ２との間における排他的論理和をＢ１’とする。また、Ｂ１をそのままＢ２’とする。Ｂ１’とＢ２’は、次のラウンドの入力となる。【０００４】
さらに、非特許文献１において、Ｆｅｉｓｔｅｌ構造の分割数を２以上に拡張した一般化Ｆｅｉｓｔｅｌ構造（非特許文献１では、Ｆｅｉｓｔｅｌ−Ｔｙｐｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ（ＦＴＴ）と呼ばれている）が提案されている。非特許文献１では、Ｔｙｐｅ−１からＴｙｐｅ−３までの３種類の構造が提案されているが、ここではＴｙｐｅ−２に限定して説明を行う。以下では特に断らない限り、「一般化Ｆｅｉｓｔｅｌ構造」とは、Ｔｙｐｅ−２のものをいう。【０００５】
図２は、入力データをｋ（２以上の偶数）個に分割（分割した各々を”系列”と呼ぶ）して処理を行う一般化Ｆｅｉｓｔｅｌ構造（以下「ｋ系列一般化Ｆｅｉｓｔｅｌ構造」という。）の１ラウンド分を示す図である。一般化Ｆｅｉｓｔｅｌ構造の１ラウンド分の処理を非線形変換部２０と転置部２１とに分けて考える。非線形変換部２０は、入力されるｋ系列のデータのうちのデータＢｉ（ｉはｋ以下の奇数）をそのまま出力するとともに、データＢｉを関数Ｆにより鍵データＫｊ（ｊ＝（ｉ＋１）／２）と攪拌したものとデータＢｉ＋１との間における排他的論理和を出力する。転置部２１は、系列データを１系列分左巡回シフトする転置処理を行う。【０００６】
次に、一般化Ｆｅｉｓｔｅｌ構造の系列数ｋの大小とメリット（ないしデメリット）との関係について述べる。ブロック長が等しいブロック暗号において、分割数ｋを大きくすると系列データサイズｎは小さくなる。例えば、ブロック長が１２８ビットの場合、ｋ＝２とするとｎ＝６４となり、ｋ＝４とするとｎ＝３２となり、ｋ＝８とするとｎ＝１６となる。系列データサイズが小さくなるとＦ関数の処理サイズも小さくなる。Ｆ関数は実装規模に最も影響する処理であり、Ｆ関数の処理サイズが小さくなると、小規模な実装が可能になるというメリットがある。【０００７】
一方、安全性の面において、分割数ｋを大きくすると不能差分攻撃や飽和攻撃といった暗号解読手法の脅威が増大するというデメリットが知られている。詳細な解読を考える場合にはＦ関数の内部構造も考慮すべきであるものの、ここでは一般化Ｆｅｉｓｔｅｌ構造の系列数の影響を調べるために、Ｆ関数は単に全単射な非線形変換として扱う。【０００８】
非特許文献２によると、系列数が２，４，８，１６の場合の一般化Ｆｅｉｓｔｅｌ構造の不能差分特性はそれぞれ、５，９，１７，３３ラウンドとなることが示されている。また、非特許文献３には、４系列一般化Ｆｅｉｓｔｅｌ構造の不能差分特性について記載されている。【０００９】
これらの結果より、ｋ系列一般化Ｆｅｉｓｔｅｌ構造の場合、入力側に与えた差分値がｋラウンド後まで通過し、さらに出力側に与えた差分値もｋラウンド遡ったラウンドまで通過していることが分かる。そして、中間の１ラウンドで矛盾が生じることによって、不能差分となっている。したがって、ｋ系列一般化Ｆｅｉｓｔｅｌ構造の場合は、２ｋ＋１ラウンドの不能差分特性が存在する。【００１０】
次に、一般化Ｆｅｉｓｔｅｌ構造の系列数と飽和特性ラウンド数との関係について述べる。４系列の場合には、系列データの幅で全数データを与えると、平文から暗号文方向に６ラウンドの飽和特性があり、この特性をさらに平文方向に２ラウンド拡張することができるため、８ラウンドの飽和特性が存在することが、非特許文献２に記載されている。ｋ系列の場合には、１箇所に与えた全数データはｋラウンド経過すると全系列に波及し、さらに３ラウンド経過すると全て不明な状態となる。すなわち、ｋ＋２ラウンドの飽和特性が存在する。また、平文側への拡張は、１ラウンド遡ると全数データは他の１系列に広がるため、ｋ−１系列まで拡散するにはｋ−２ラウンドを要する。したがって、ｋ系列一般化Ｆｅｉｓｔｅｌ構造には、２ｋラウンドの飽和特性が存在する。【００１１】
不能差分攻撃や飽和攻撃では、これらの特性を利用して鍵データの解読を試みる。不能差分攻撃の具体的な攻撃手順は、一例として、非特許文献２に記載されている。一般的なブロック暗号の攻撃は、何らかの特性を利用して解読を行うため、特性のラウンド数が長いほどその攻撃に対して脆弱となる。したがって、かかる解読に対して耐性を持たせるためには、より長い暗号化のラウンド数が必要とされる。逆に、特性のラウンド数を減らすことができれば、より少ないラウンド数で安全性を確保することができる。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】Ｙ．  Ｚｈｅｎｇ，  Ｔ．  Ｍａｔｓｕｍｏｔｏ，  Ｈ．  Ｉｍａｉ，  “Ｏｎ  ｔｈｅ  Ｃｏｎｓｔｒｕｃｔｉｏｎ  ｏｆ  Ｂｌｏｃｋ  Ｃｉｐｈｅｒｓ  Ｐｒｏｖａｂｌｙ  Ｓｅｃｕｒｅ  ａｎｄ  Ｎｏｔ  Ｒｅｌｙｉｎｇ  ｏｎ  Ａｎｙ  Ｕｎｐｒｏｖｅｄ  Ｈｙｐｏｔｈｅｓｅｓ，”  ＣＲＹＰＴＯ  １９８９，ＬＮＣＳ  ｖｏｌ．  ４３５，  ｐｐ．４６１−４８０，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  １９９０．
【非特許文献２】角尾幸保、辻原悦子、中嶋浩貴、久保博靖、「変形Ｆｅｉｓｔｅｌ構造を持つブロック暗号の不可能差分」、２００７年暗号と情報セキュリティシンポジウム、２００７年１月２３日
【非特許文献３】Ｓｏｎｙ  Ｃｏｒｐｏｒａｔｉｏｎ，  “Ｔｈｅ  １２８−ｂｉｔ  Ｂｌｏｃｋｃｉｐｈｅｒ  ＣＬＥＦＩＡ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｅｖａｌｕａｔｉｏｎｓ  Ｒｅｖｉｓｉｏｎ  １．０，”  Ｊｕｎｅ  １，  ２００７．
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上記非特許文献１から３の全開示内容はその引用をもって本書に繰込み記載する。
以下の分析は、本発明によってなされたものである。
上述の通り、一般化Ｆｅｉｓｔｅｌ構造において分割数ｋを大きくすると、不能差分特性及び飽和特性も大きくなるため、暗号化のラウンド数も相対的に大きくする必要がある。ここでは、一般化Ｆｅｉｓｔｅｌ構造の不能差分特性や飽和特性の原因を、データの拡散性という観点で調べる。非特許文献２に示された不能差分特性は、入力や出力として与えた差分値が確率１で残り続けることを利用したものである。【００１４】
図３は、６系列一般化Ｆｅｉｓｔｅｌ構造における差分の拡散の様子を表した図である。系列２に入力された差分値（太実線）は、６ラウンド経過後の系列２のデータ３０まで確率１で通過する。一般化Ｆｅｉｓｔｅｌ構造においては、Ｆ関数の入力となる箇所（例えば分岐３１）で分岐し、一方はＦ関数に入力されて任意の差分値（破線）に変化する。しかし、Ｆ関数の入力とならなかった差分値は変化することなく次のラウンドへ通過する。したがって、差分初期値が消失するためには、Ｆ関数によって生成される任意の差分値との間で排他的論理和が求められなければならない。しかしながら、第１，３，５ラウンドではＦ関数からは差分値がゼロしか出てこないため、差分値としては変化していない。しかし、６ラウンド経過すると全系列にゼロ以外の任意の差分値が波及していることから、さらに１ラウンド経過すると確率１で通過する差分値は存在しなくなる。転置部２１が単なる巡回シフトであるような一般化Ｆｅｉｓｔｅｌ構造では、分割数ｋに依らず、このような性質が存在する。したがって、分割数ｋを大きくするにつれて、確率１で通過するラウンド数も大きくなる。【００１５】
図４は、飽和特性の一例を示す図である。Ａは全数が出現している状態、Ｂはデータの総和がバランス（ゼロ）している状態、Ｕはバランスしているか否かが不明な状態、Ｃは定数を表す。すなわち、図４は、系列２にはデータ幅に応じた全通りのデータを与え、その他の系列には定数を与えた場合の飽和特性の遷移を示す。Ｆ関数が全単射な場合、全通りのデータが入力されると全通りのデータが出力されるため、全数の状態は保たれる。元が同一の全数である全数同士の排他的論理和を求めるとバランス状態となり、バランス状態がＦ関数を通過すると不明な状態となる。一旦、不明な状態となると、以降状態は変化しない。図４に示した例では、８ラウンド経過後の６系列にバランス状態が残っているため、これを利用して飽和攻撃を適用することができる。このバランス状態は第７ラウンドで全数データ４０と全数データ４１の排他的論理和によって生成されたものである。第６ラウンドまでは系列２の状態が定数であるため、次のラウンドの系列１は全数状態が保たれている。そして、第２ラウンドで分岐した全数データ４１が第７ラウンドでようやく排他的論理和されることにより、全数状態が消失している。この性質は分割数ｋに依らずに存在するため、分割数がｋ場合にはｋ＋２ラウンドの飽和特性が存在する。【００１６】
図５は、図４の飽和特性の平文側への拡張を示す図である。このような拡張方法は、一例として、非特許文献３に記載されている。１ラウンド遡る場合、全数データが１系列分増えるため、分割数ｋの場合にはｋ−２ラウンドの拡張が可能である。【００１７】
以上より、分割数がｋの場合、２ｋ（＝（ｋ＋２）＋（ｋ−２））ラウンドの飽和特性が存在する。不能差分特性及び飽和特性の性質を考慮すると、系列データが全系列へ波及するラウンド数を短くすることができれば、これらの特性のラウンド数も短くすることができ、これら特性を利用した攻撃に対する耐性を向上させることができる。【００１８】
そこで、図３をデータの拡散という観点で見直してみる。第４ラウンドの系列６に注目すると、第２ラウンドで分岐した系列１のデータの一方が系列５でさらに分岐しているものの、分岐したデータは系列６の排他的論理和３２で衝突を起こしている。第４ラウンドでは、系列３，４にはまだ波及していないため、波及という観点では系列５のデータを系列４に波及させることができれば、全体への拡散するためのラウンド数を減らすことができる。６系列の場合、全体へ波及するまでに排他的論理和３２〜３５の４箇所で衝突が発生しており、転置処理手段が巡回シフトの場合、拡散性の観点では効率的とは言えない。【００１９】
図６は、８系列の場合の拡散の様子を表した図である。系列１のデータが全系列に波及するまでには排他的論理和６０〜６８の合計９回の衝突が発生している。【００２０】
図７は、系列数ｋごとに偶数系列データが全系列に波及するまでに要する排他的論理和の回数と衝突が発生する回数、衝突割合をまとめた表を示す。図７を参照すると、系列数を大きくするほど衝突割合が大きくなっており、効率が悪くなっていることが分かる。【００２１】
このように、転置部が１系列分左巡回シフトするような規則正しい構造では、データの拡散性がよいとは言えず、結果的に不能差分特性や飽和特性を大きくしている。分割数ｋを大きくすると、Ｆ関数を小型化できるメリットがある一方で、不能差分攻撃や飽和攻撃の適用可能ラウンド数が大きくなる。したがって、その対策として暗号化のラウンド数を増やさねばならず、結果として処理速度の低下を招くという問題がある。【００２２】
そこで、ｋ系列一般化Ｆｅｉｓｔｅｌ型の共通鍵ブロック暗号の不能差分攻撃及び飽和攻撃に対する耐性を、実装規模を増加させることなく向上させることが課題となる。本発明の目的は、かかる課題を解決する情報処理装置、情報処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００２３】
本発明の第１の視点に係る暗号化装置は、
ｋ系列のデータ｛Ｂ１，Ｂ２，…，Ｂｋ｝（ｋは６以上の偶数）のうちのｋ／２個の奇数系列データＢｉ（ｉ＝１，３，…，ｋ−１）をそれぞれ中間データＷｉとするとともに、鍵データの値に応じて変換後の値が決定される全単射なＦ関数に基づいて該奇数系列データＢｉを変換したデータと偶数系列データＢｉ＋１との間における排他的論理和を中間データＷｉ＋１とする非線形変換部と、
前記中間データ｛Ｗ１，Ｗ２，…，Ｗｋ｝を転置してデータ｛Ｂ１，Ｂ２，…，Ｂｋ｝とする転置部とを有する。
ここで、前記転置部の転置処理により前記中間データＷｘ（ｘ＝１，２，…，ｋ）がＢｐ［ｘ］に転置される場合に、当該転置処理をπｋ＝｛ｐ［０］，ｐ［１］，…，ｐ［ｋ］｝と表したとき、
前記ｋ系列が６系列である場合、
π６＝｛２，３，６，１，４，５｝である。
また、前記ｋ系列が８系列である場合、
π８＝｛２，３，６，７，８，５，４，１｝、
π８＝｛４，５，２，３，８，１，６，７｝、または、
π８＝｛２，５，４，７，８，１，６，３｝である。
さらに、前記ｋ系列が１０系列である場合、
π１０＝｛２，３，１０，５，４，９，６，７，８，１｝、
π１０＝｛２，３，１０，５，８，９，４，７，６，１｝、
π１０＝｛６，３，２，７，４，５，１０，１，８，９｝、
π１０＝｛２，３，６，７，８，９，４，１，１０，５｝、または、
π１０＝｛２，５，８，３，１０，１，４，９，６，７｝である。
また、前記ｋ系列が１２系列である場合、
π１２＝｛２，３，４，５，８，１，１０，１１，６，７，１２，９｝、
π１２＝｛２，３，４，５，８，９，１０，１１，６，１，１２，７｝、
π１２＝｛２，３，６，１，４，７，１０，５，８，１１，１２，９｝、
π１２＝｛２，３，６，１，４，７，１０，１１，１２，９，８，５｝、
π１２＝｛２，３，６，１，８，９，４，５，１２，７，１０，１１｝、
π１２＝｛２，３，６，１，８，９，４，１１，１０，７，１２，５｝、
π１２＝｛２，３，６，１，８，９，１０，５，４，１１，１２，７｝、
π１２＝｛２，３，６，１，８，９，１０，１１，４，７，１２，５｝、
π１２＝｛２，３，６，７，４，９，１０，１１，１２，１，８，５｝、
π１２＝｛２，３，６，７，４，９，１２，１，８，５，１０，１１｝、
π１２＝｛２，３，６，７，４，９，１２，５，８，１１，１０，１｝、
π１２＝｛２，３，６，７，８，１，１０，１１，４，５，１２，９｝、
π１２＝｛２，３，６，７，８，１，１０，１１，１２，５，４，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，４，１，１２，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，１２，１，４，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，１２，９，４，１｝、
π１２＝｛２，３，６，７，８，９，４，１，１２，５，１０，１１｝、
π１２＝｛２，３，６，７，８，９，４，１１，１２，１，１０，５｝、
π１２＝｛２，３，６，７，８，９，１０，５，１２，１，４，１１｝、
π１２＝｛２，３，６，７，８，９，１０，１１，１２，５，４，１｝、
π１２＝｛２，３，６，７，８，９，１２，１，４，１１，１０，５｝、
π１２＝｛２，３，６，７，８，９，１２，５，４，１，１０，１１｝、
π１２＝｛２，３，６，７，８，９，１２，５，１０，１１，４，１｝、
π１２＝｛２，３，６，７，１０，１，４，９，１２，５，８，１１｝、
π１２＝｛２，３，６，７，１０，１，４，１１，１２，９，８，５｝、
π１２＝｛２，３，６，７，１０，１，１２，９，８，５，４，１１｝、
π１２＝｛２，３，６，７，１０，１，１２，９，８，１１，４，５｝、
π１２＝｛２，３，６，７，１０，５，１２，９，８，１１，４，１｝、
π１２＝｛２，３，６，７，１０，１１，４，５，８，１，１２，９｝、
π１２＝｛２，３，６，７，１０，１１，４，５，１２，９，８，１｝、
π１２＝｛２，３，６，７，１０，１１，４，９，１２，１，８，５｝、
π１２＝｛２，３，６，７，１０，１１，８，９，１２，１，４，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，１，４，９，８，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，４，１，８，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，４，５，８，１｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，８，１，４，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，８，５，４，１｝、
π１２＝｛４，１，２，５，８，３，６，９，１２，７，１０，１１｝、
π１２＝｛４，１，２，５，８，９，１０，３，１２，７，６，１１｝、
π１２＝｛４，１，２，５，８，９，１０，７，１２，３，６，１１｝、
π１２＝｛４，１，２，５，８，９，１２，３，６，７，１０，１１｝、
π１２＝｛４，１，２，５，８，９，１２，７，６，３，１０，１１｝、
π１２＝｛４，１，６，３，２，７，１０，１１，１２，９，８，５｝、
π１２＝｛４，１，６，７，２，９，１２，５，８，１１，１０，３｝、
π１２＝｛４，１，６，７，８，３，１０，１１，１２，９，２，５｝、
π１２＝｛４，１，６，７，８，５，１０，１１，１２，３，２，９｝、
π１２＝｛４，１，６，７，８，９，１２，３，２，１１，１０，５｝、
π１２＝｛４，１，６，７，１０，３，１２，５，８，１１，２，９｝、
π１２＝｛４，１，６，７，１０，３，１２，９，２，１１，８，５｝、
π１２＝｛４，１，６，７，１０，５，１２，９，２，１１，８，３｝、
π１２＝｛４，１，６，７，１０，１１，２，５，１２，３，８，９｝、
π１２＝｛４，１，６，７，１０，１１，２，５，１２，９，８，３｝、
π１２＝｛４，１，６，７，１０，１１，２，９，１２，５，８，３｝、
π１２＝｛４，１，６，７，１０，１１，１２，３，８，５，２，９｝、
π１２＝｛４，１，６，７，１０，１１，１２，５，２，３，８，９｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，２，３，８，５｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，２，５，８，３｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，８，３，２，５｝、または、
π１２＝｛４，１，６，７，１０，１１，１２，９，８，５，２，３｝である。
さらに、前記ｋ系列が１４系列である場合、
π１４＝｛２，３，１０，５，４，７，１４，９，８，１１，１２，１３，６，１｝、
π１４＝｛２，３，１０，５，１４，７，８，９，６，１１，４，１３，１２，１｝、
π１４＝｛２，３，１２，５，４，７，１４，９，１０，１１，８，１３，６，１｝、
π１４＝｛６，３，２，５，１２，７，４，９，１４，１１，１０，１３，８，１｝、
π１４＝｛６，３，１０，５，２，７，１４，９，８，１１，４，１３，１２，１｝、
π１４＝｛６，３，１０，５，４，７，２，９，１４，１１，８，１３，１２，１｝、
π１４＝｛６，３，１４，５，１２，７，４，９，２，１１，１０，１３，８，１｝、
π１４＝｛２，３，８，５，４，７，１４，９，６，１３，１０，１１，１２，１｝、
π１４＝｛２，３，８，５，６，７，１２，９，４，１３，１４，１１，１０，１｝、
π１４＝｛２，３，８，５，１２，７，１４，９，６，１３，４，１１，１０，１｝、
π１４＝｛２，３，１０，５，４，７，８，９，１２，１３，１４，１１，６，１｝、
π１４＝｛２，３，１０，５，６，７，１２，９，８，１３，１４，１１，４，１｝、
π１４＝｛２，３，１０，５，１２，７，８，９，６，１３，１４，１１，４，１｝、
π１４＝｛２，３，１２，５，１０，７，４，９，８，１３，１４，１１，６，１｝、
π１４＝｛２，３，１２，５，１０，７，６，９，４，１３，１４，１１，８，１｝、
π１４＝｛２，３，１２，５，１４，７，８，９，６，１３，１０，１１，４，１｝、
π１４＝｛２，３，１４，５，１０，７，６，９，４，１３，８，１１，１２，１｝、
π１４＝｛２，３，１４，５，１０，７，１２，９，８，１３，４，１１，６，１｝、
π１４＝｛２，３，８，５，１０，７，１４，１１，４，９，６，１，１２，１３｝、
π１４＝｛２，３，１０，５，４，７，１４，１１，８，９，６，１，１２，１３｝、
π１４＝｛２，３，１０，５，１２，７，４，１１，６，９，１４，１，８，１３｝、
π１４＝｛２，３，１０，５，１４，７，４，１１，６，９，８，１，１２，１３｝、
π１４＝｛２，３，１０，５，１４，７，６，１１，８，９，４，１，１２，１３｝、
π１４＝｛６，３，２，５，１２，７，１０，１１，８，９，１４，１，４，１３｝、
π１４＝｛６，３，１０，５，２，７，１４，１１，１２，９，８，１，４，１３｝、
π１４＝｛６，３，１０，５，４，７，２，１１，８，９，１４，１，１２，１３｝、
π１４＝｛６，３，１０，５，１２，７，４，１１，８，９，１４，１，２，１３｝、
π１４＝｛６，３，１０，５，１４，７，４，１１，２，９，８，１，１２，１３｝、
π１４＝｛６，３，１２，５，１０，７，１４，１１，４，９，８，１，２，１３｝、
π１４＝｛８，３，２，５，１０，７，４，１１，１２，９，１４，１，６，１３｝、
π１４＝｛８，３，２，５，１０，７，６，１１，１２，９，１４，１，４，１３｝、
π１４＝｛２，３，８，５，４，７，１０，１１，１２，１３，６，１，１４，９｝、
π１４＝｛２，３，１０，５，４，７，８，１１，１２，１３，１４，１，６，９｝、
π１４＝｛２，３，１０，５，１２，７，４，１１，６，１３，８，１，１４，９｝、
π１４＝｛８，３，２，５，１０，７，６，１１，４，１３，１４，１，１２，９｝、
π１４＝｛８，３，２，５，１０，７，６，１１，１２，１３，１４，１，４，９｝、
π１４＝｛２，３，１２，５，４，９，６，７，１４，１，８，１３，１０，１１｝、
π１４＝｛２，３，１２，５，８，９，１４，７，６，１，４，１３，１０，１１｝、
π１４＝｛２，３，８，５，６，９，１０，１１，１４，１，４，１３，１２，７｝、
π１４＝｛２，３，８，５，１４，９，６，１１，４，１，１２，１３，１０，７｝、
π１４＝｛８，３，２，５，１４，９，６，１１，１２，１，４，１３，１０，７｝、
π１４＝｛２，３，１０，７，４，５，１４，１，６，１１，８，１３，１２，９｝、
π１４＝｛２，３，１０，７，１２，５，６，１，１４，１１，８，１３，４，９｝、または、
π１４＝｛２，３，１０，７，１４，５，４，１，８，１１，６，１３，１２，９｝である。
また、前記ｋ系列が１６系列である場合、
π１６＝｛２，３，１０，５，１６，７，６，９，１４，１１，８，１５，１２，１３，４，１｝、
π１６＝｛２，３，１２，５，１４，７，１６，９，６，１１，１０，１５，８，１３，４，１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，６，１１，４，１，１４，１５｝、
π１６＝｛２，３，１２，５，１０，７，１６，９，６，１３，８，１１，４，１，１４，１５｝、
π１６＝｛６，３，１０，５，２，７，１２，９，１６，１３，４，１１，８，１，１４，１５｝、
π１６＝｛６，３，１０，５，１２，７，１６，９，４，１３，２，１１，８，１，１４，１５｝、
π１６＝｛６，３，１２，５，２，７，１６，９，４，１３，１４，１１，８，１，１０，１５｝、
π１６＝｛２，３，１０，５，１２，７，８，９，１６，１３，１４，１５，４，１，６，１１｝、
π１６＝｛２，３，１２，５，４，７，８，９，１６，１３，６，１５，１０，１，１４，１１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，４，１，６，１１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，６，１，４，１１｝、
π１６＝｛２，３，１２，５，１０，７，１６，９，６，１３，８，１５，４，１，１４，１１｝、
π１６＝｛２，３，１０，５，１４，７，８，１１，６，９，１６，１，１２，１５，４，１３｝、
π１６＝｛６，３，１４，５，２，７，１０，１１，１２，９，１６，１，８，１５，４，１３｝、
π１６＝｛８，３，１４，５，１２，９，４，７，１６，１，１０，１１，２，１５，６，１３｝、
π１６＝｛８，３，１４，５，１２，９，１０，７，１６，１，４，１１，６，１５，２，１３｝、
π１６＝｛２，３，１２，５，１６，９，４，７，８，１，１０，１３，６，１５，１４，１１｝、
π１６＝｛２，３，８，５，１６，９，１４，１１，４，１，１２，１３，１０，１５，６，７｝、
π１６＝｛２，３，１０，５，８，９，６，１１，１６，１，４，１３，１４，１５，１２，７｝、
π１６＝｛６，３，２，７，１２，５，１４，１，４，９，１６，１３，８，１５，１０，１１｝、
π１６＝｛６，３，１２，７，４，５，１６，１，１４，９，１０，１３，２，１５，８，１１｝、
π１６＝｛２，３，６，７，８，９，１２，１，１６，５，１０，１３，１４，１５，４，１１｝、または、
π１６＝｛６，３，１２，７，１４，９，１６，１，４，５，１０，１３，２，１５，８，１１｝である。
【００２４】
本発明の第２の視点に係る暗号化方法は、
コンピュータが、ｋ系列のデータ｛Ｂ１，Ｂ２，…，Ｂｋ｝（ｋは６以上の偶数）のうちのｋ／２個の奇数系列データＢｉ（ｉ＝１，３，…，ｋ−１）をそれぞれ中間データＷｉとするとともに、鍵データの値に応じて変換後の値が決定される全単射なＦ関数に基づいて該奇数系列データＢｉを変換したデータと偶数系列データＢｉ＋１との間における排他的論理和を中間データＷｉ＋１とする非線形変換工程と、
前記中間データ｛Ｗ１，Ｗ２，…，Ｗｋ｝を転置してデータ｛Ｂ１，Ｂ２，…，Ｂｋ｝とする転置工程とを含む。
ここで、前記転置工程の転置処理により前記中間データＷｘ（ｘ＝１，２，…，ｋ）がＢｐ［ｘ］に転置される場合に、当該転置処理をπｋ＝｛ｐ［０］，ｐ［１］，…，ｐ［ｋ］｝と表したとき、
前記ｋ系列が６系列である場合、
π６＝｛２，３，６，１，４，５｝である。
また、前記ｋ系列が８系列である場合、
π８＝｛２，３，６，７，８，５，４，１｝、
π８＝｛４，５，２，３，８，１，６，７｝、または、
π８＝｛２，５，４，７，８，１，６，３｝である。
さらに、前記ｋ系列が１０系列である場合、
π１０＝｛２，３，１０，５，４，９，６，７，８，１｝、
π１０＝｛２，３，１０，５，８，９，４，７，６，１｝、
π１０＝｛６，３，２，７，４，５，１０，１，８，９｝、
π１０＝｛２，３，６，７，８，９，４，１，１０，５｝、または、
π１０＝｛２，５，８，３，１０，１，４，９，６，７｝である。
また、前記ｋ系列が１２系列である場合、
π１２＝｛２，３，４，５，８，１，１０，１１，６，７，１２，９｝、
π１２＝｛２，３，４，５，８，９，１０，１１，６，１，１２，７｝、
π１２＝｛２，３，６，１，４，７，１０，５，８，１１，１２，９｝、
π１２＝｛２，３，６，１，４，７，１０，１１，１２，９，８，５｝、
π１２＝｛２，３，６，１，８，９，４，５，１２，７，１０，１１｝、
π１２＝｛２，３，６，１，８，９，４，１１，１０，７，１２，５｝、
π１２＝｛２，３，６，１，８，９，１０，５，４，１１，１２，７｝、
π１２＝｛２，３，６，１，８，９，１０，１１，４，７，１２，５｝、
π１２＝｛２，３，６，７，４，９，１０，１１，１２，１，８，５｝、
π１２＝｛２，３，６，７，４，９，１２，１，８，５，１０，１１｝、
π１２＝｛２，３，６，７，４，９，１２，５，８，１１，１０，１｝、
π１２＝｛２，３，６，７，８，１，１０，１１，４，５，１２，９｝、
π１２＝｛２，３，６，７，８，１，１０，１１，１２，５，４，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，４，１，１２，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，１２，１，４，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，１２，９，４，１｝、
π１２＝｛２，３，６，７，８，９，４，１，１２，５，１０，１１｝、
π１２＝｛２，３，６，７，８，９，４，１１，１２，１，１０，５｝、
π１２＝｛２，３，６，７，８，９，１０，５，１２，１，４，１１｝、
π１２＝｛２，３，６，７，８，９，１０，１１，１２，５，４，１｝、
π１２＝｛２，３，６，７，８，９，１２，１，４，１１，１０，５｝、
π１２＝｛２，３，６，７，８，９，１２，５，４，１，１０，１１｝、
π１２＝｛２，３，６，７，８，９，１２，５，１０，１１，４，１｝、
π１２＝｛２，３，６，７，１０，１，４，９，１２，５，８，１１｝、
π１２＝｛２，３，６，７，１０，１，４，１１，１２，９，８，５｝、
π１２＝｛２，３，６，７，１０，１，１２，９，８，５，４，１１｝、
π１２＝｛２，３，６，７，１０，１，１２，９，８，１１，４，５｝、
π１２＝｛２，３，６，７，１０，５，１２，９，８，１１，４，１｝、
π１２＝｛２，３，６，７，１０，１１，４，５，８，１，１２，９｝、
π１２＝｛２，３，６，７，１０，１１，４，５，１２，９，８，１｝、
π１２＝｛２，３，６，７，１０，１１，４，９，１２，１，８，５｝、
π１２＝｛２，３，６，７，１０，１１，８，９，１２，１，４，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，１，４，９，８，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，４，１，８，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，４，５，８，１｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，８，１，４，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，８，５，４，１｝、
π１２＝｛４，１，２，５，８，３，６，９，１２，７，１０，１１｝、
π１２＝｛４，１，２，５，８，９，１０，３，１２，７，６，１１｝、
π１２＝｛４，１，２，５，８，９，１０，７，１２，３，６，１１｝、
π１２＝｛４，１，２，５，８，９，１２，３，６，７，１０，１１｝、
π１２＝｛４，１，２，５，８，９，１２，７，６，３，１０，１１｝、
π１２＝｛４，１，６，３，２，７，１０，１１，１２，９，８，５｝、
π１２＝｛４，１，６，７，２，９，１２，５，８，１１，１０，３｝、
π１２＝｛４，１，６，７，８，３，１０，１１，１２，９，２，５｝、
π１２＝｛４，１，６，７，８，５，１０，１１，１２，３，２，９｝、
π１２＝｛４，１，６，７，８，９，１２，３，２，１１，１０，５｝、
π１２＝｛４，１，６，７，１０，３，１２，５，８，１１，２，９｝、
π１２＝｛４，１，６，７，１０，３，１２，９，２，１１，８，５｝、
π１２＝｛４，１，６，７，１０，５，１２，９，２，１１，８，３｝、
π１２＝｛４，１，６，７，１０，１１，２，５，１２，３，８，９｝、
π１２＝｛４，１，６，７，１０，１１，２，５，１２，９，８，３｝、
π１２＝｛４，１，６，７，１０，１１，２，９，１２，５，８，３｝、
π１２＝｛４，１，６，７，１０，１１，１２，３，８，５，２，９｝、
π１２＝｛４，１，６，７，１０，１１，１２，５，２，３，８，９｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，２，３，８，５｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，２，５，８，３｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，８，３，２，５｝、または、
π１２＝｛４，１，６，７，１０，１１，１２，９，８，５，２，３｝である。
さらに、前記ｋ系列が１４系列である場合、
π１４＝｛２，３，１０，５，４，７，１４，９，８，１１，１２，１３，６，１｝、
π１４＝｛２，３，１０，５，１４，７，８，９，６，１１，４，１３，１２，１｝、
π１４＝｛２，３，１２，５，４，７，１４，９，１０，１１，８，１３，６，１｝、
π１４＝｛６，３，２，５，１２，７，４，９，１４，１１，１０，１３，８，１｝、
π１４＝｛６，３，１０，５，２，７，１４，９，８，１１，４，１３，１２，１｝、
π１４＝｛６，３，１０，５，４，７，２，９，１４，１１，８，１３，１２，１｝、
π１４＝｛６，３，１４，５，１２，７，４，９，２，１１，１０，１３，８，１｝、
π１４＝｛２，３，８，５，４，７，１４，９，６，１３，１０，１１，１２，１｝、
π１４＝｛２，３，８，５，６，７，１２，９，４，１３，１４，１１，１０，１｝、
π１４＝｛２，３，８，５，１２，７，１４，９，６，１３，４，１１，１０，１｝、
π１４＝｛２，３，１０，５，４，７，８，９，１２，１３，１４，１１，６，１｝、
π１４＝｛２，３，１０，５，６，７，１２，９，８，１３，１４，１１，４，１｝、
π１４＝｛２，３，１０，５，１２，７，８，９，６，１３，１４，１１，４，１｝、
π１４＝｛２，３，１２，５，１０，７，４，９，８，１３，１４，１１，６，１｝、
π１４＝｛２，３，１２，５，１０，７，６，９，４，１３，１４，１１，８，１｝、
π１４＝｛２，３，１２，５，１４，７，８，９，６，１３，１０，１１，４，１｝、
π１４＝｛２，３，１４，５，１０，７，６，９，４，１３，８，１１，１２，１｝、
π１４＝｛２，３，１４，５，１０，７，１２，９，８，１３，４，１１，６，１｝、
π１４＝｛２，３，８，５，１０，７，１４，１１，４，９，６，１，１２，１３｝、
π１４＝｛２，３，１０，５，４，７，１４，１１，８，９，６，１，１２，１３｝、
π１４＝｛２，３，１０，５，１２，７，４，１１，６，９，１４，１，８，１３｝、
π１４＝｛２，３，１０，５，１４，７，４，１１，６，９，８，１，１２，１３｝、
π１４＝｛２，３，１０，５，１４，７，６，１１，８，９，４，１，１２，１３｝、
π１４＝｛６，３，２，５，１２，７，１０，１１，８，９，１４，１，４，１３｝、
π１４＝｛６，３，１０，５，２，７，１４，１１，１２，９，８，１，４，１３｝、
π１４＝｛６，３，１０，５，４，７，２，１１，８，９，１４，１，１２，１３｝、
π１４＝｛６，３，１０，５，１２，７，４，１１，８，９，１４，１，２，１３｝、
π１４＝｛６，３，１０，５，１４，７，４，１１，２，９，８，１，１２，１３｝、
π１４＝｛６，３，１２，５，１０，７，１４，１１，４，９，８，１，２，１３｝、
π１４＝｛８，３，２，５，１０，７，４，１１，１２，９，１４，１，６，１３｝、
π１４＝｛８，３，２，５，１０，７，６，１１，１２，９，１４，１，４，１３｝、
π１４＝｛２，３，８，５，４，７，１０，１１，１２，１３，６，１，１４，９｝、
π１４＝｛２，３，１０，５，４，７，８，１１，１２，１３，１４，１，６，９｝、
π１４＝｛２，３，１０，５，１２，７，４，１１，６，１３，８，１，１４，９｝、
π１４＝｛８，３，２，５，１０，７，６，１１，４，１３，１４，１，１２，９｝、
π１４＝｛８，３，２，５，１０，７，６，１１，１２，１３，１４，１，４，９｝、
π１４＝｛２，３，１２，５，４，９，６，７，１４，１，８，１３，１０，１１｝、
π１４＝｛２，３，１２，５，８，９，１４，７，６，１，４，１３，１０，１１｝、
π１４＝｛２，３，８，５，６，９，１０，１１，１４，１，４，１３，１２，７｝、
π１４＝｛２，３，８，５，１４，９，６，１１，４，１，１２，１３，１０，７｝、
π１４＝｛８，３，２，５，１４，９，６，１１，１２，１，４，１３，１０，７｝、
π１４＝｛２，３，１０，７，４，５，１４，１，６，１１，８，１３，１２，９｝、
π１４＝｛２，３，１０，７，１２，５，６，１，１４，１１，８，１３，４，９｝、または、
π１４＝｛２，３，１０，７，１４，５，４，１，８，１１，６，１３，１２，９｝である。
また、前記ｋ系列が１６系列である場合、
π１６＝｛２，３，１０，５，１６，７，６，９，１４，１１，８，１５，１２，１３，４，１｝、
π１６＝｛２，３，１２，５，１４，７，１６，９，６，１１，１０，１５，８，１３，４，１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，６，１１，４，１，１４，１５｝、
π１６＝｛２，３，１２，５，１０，７，１６，９，６，１３，８，１１，４，１，１４，１５｝、
π１６＝｛６，３，１０，５，２，７，１２，９，１６，１３，４，１１，８，１，１４，１５｝、
π１６＝｛６，３，１０，５，１２，７，１６，９，４，１３，２，１１，８，１，１４，１５｝、
π１６＝｛６，３，１２，５，２，７，１６，９，４，１３，１４，１１，８，１，１０，１５｝、
π１６＝｛２，３，１０，５，１２，７，８，９，１６，１３，１４，１５，４，１，６，１１｝、
π１６＝｛２，３，１２，５，４，７，８，９，１６，１３，６，１５，１０，１，１４，１１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，４，１，６，１１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，６，１，４，１１｝、
π１６＝｛２，３，１２，５，１０，７，１６，９，６，１３，８，１５，４，１，１４，１１｝、
π１６＝｛２，３，１０，５，１４，７，８，１１，６，９，１６，１，１２，１５，４，１３｝、
π１６＝｛６，３，１４，５，２，７，１０，１１，１２，９，１６，１，８，１５，４，１３｝、
π１６＝｛８，３，１４，５，１２，９，４，７，１６，１，１０，１１，２，１５，６，１３｝、
π１６＝｛８，３，１４，５，１２，９，１０，７，１６，１，４，１１，６，１５，２，１３｝、
π１６＝｛２，３，１２，５，１６，９，４，７，８，１，１０，１３，６，１５，１４，１１｝、
π１６＝｛２，３，８，５，１６，９，１４，１１，４，１，１２，１３，１０，１５，６，７｝、
π１６＝｛２，３，１０，５，８，９，６，１１，１６，１，４，１３，１４，１５，１２，７｝、
π１６＝｛６，３，２，７，１２，５，１４，１，４，９，１６，１３，８，１５，１０，１１｝、
π１６＝｛６，３，１２，７，４，５，１６，１，１４，９，１０，１３，２，１５，８，１１｝、
π１６＝｛２，３，６，７，８，９，１２，１，１６，５，１０，１３，１４，１５，４，１１｝、または、
π１６＝｛６，３，１２，７，１４，９，１６，１，４，５，１０，１３，２，１５，８，１１｝である。
【００２５】
本発明の第３の視点に係るプログラムは、
ｋ系列のデータ｛Ｂ１，Ｂ２，…，Ｂｋ｝（ｋは６以上の偶数）のうちのｋ／２個の奇数系列データＢｉ（ｉ＝１，３，…，ｋ−１）をそれぞれ中間データＷｉとするとともに、鍵データの値に応じて変換後の値が決定される全単射なＦ関数に基づいて該奇数系列データＢｉを変換したデータと偶数系列データＢｉ＋１との間における排他的論理和を中間データＷｉ＋１として記憶手段に保持する非線形変換処理と、
前記記憶手段に格納された前記中間データ｛Ｗ１，Ｗ２，…，Ｗｋ｝を転置してデータ｛Ｂ１，Ｂ２，…，Ｂｋ｝とする転置処理とをコンピュータに実行させる。
ここで、前記転置処理により前記中間データＷｘ（ｘ＝１，２，…，ｋ）がＢｐ［ｘ］に転置される場合に、前記転置処理をπｋ＝｛ｐ［０］，ｐ［１］，…，ｐ［ｋ］｝と表したとき、
前記ｋ系列が６系列である場合、
π６＝｛２，３，６，１，４，５｝である。
また、前記ｋ系列が８系列である場合、
π８＝｛２，３，６，７，８，５，４，１｝、
π８＝｛４，５，２，３，８，１，６，７｝、または、
π８＝｛２，５，４，７，８，１，６，３｝である。
さらに、前記ｋ系列が１０系列である場合、
π１０＝｛２，３，１０，５，４，９，６，７，８，１｝、
π１０＝｛２，３，１０，５，８，９，４，７，６，１｝、
π１０＝｛６，３，２，７，４，５，１０，１，８，９｝、
π１０＝｛２，３，６，７，８，９，４，１，１０，５｝、または、
π１０＝｛２，５，８，３，１０，１，４，９，６，７｝である。
また、前記ｋ系列が１２系列である場合、
π１２＝｛２，３，４，５，８，１，１０，１１，６，７，１２，９｝、
π１２＝｛２，３，４，５，８，９，１０，１１，６，１，１２，７｝、
π１２＝｛２，３，６，１，４，７，１０，５，８，１１，１２，９｝、
π１２＝｛２，３，６，１，４，７，１０，１１，１２，９，８，５｝、
π１２＝｛２，３，６，１，８，９，４，５，１２，７，１０，１１｝、
π１２＝｛２，３，６，１，８，９，４，１１，１０，７，１２，５｝、
π１２＝｛２，３，６，１，８，９，１０，５，４，１１，１２，７｝、
π１２＝｛２，３，６，１，８，９，１０，１１，４，７，１２，５｝、
π１２＝｛２，３，６，７，４，９，１０，１１，１２，１，８，５｝、
π１２＝｛２，３，６，７，４，９，１２，１，８，５，１０，１１｝、
π１２＝｛２，３，６，７，４，９，１２，５，８，１１，１０，１｝、
π１２＝｛２，３，６，７，８，１，１０，１１，４，５，１２，９｝、
π１２＝｛２，３，６，７，８，１，１０，１１，１２，５，４，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，４，１，１２，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，１２，１，４，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，１２，９，４，１｝、
π１２＝｛２，３，６，７，８，９，４，１，１２，５，１０，１１｝、
π１２＝｛２，３，６，７，８，９，４，１１，１２，１，１０，５｝、
π１２＝｛２，３，６，７，８，９，１０，５，１２，１，４，１１｝、
π１２＝｛２，３，６，７，８，９，１０，１１，１２，５，４，１｝、
π１２＝｛２，３，６，７，８，９，１２，１，４，１１，１０，５｝、
π１２＝｛２，３，６，７，８，９，１２，５，４，１，１０，１１｝、
π１２＝｛２，３，６，７，８，９，１２，５，１０，１１，４，１｝、
π１２＝｛２，３，６，７，１０，１，４，９，１２，５，８，１１｝、
π１２＝｛２，３，６，７，１０，１，４，１１，１２，９，８，５｝、
π１２＝｛２，３，６，７，１０，１，１２，９，８，５，４，１１｝、
π１２＝｛２，３，６，７，１０，１，１２，９，８，１１，４，５｝、
π１２＝｛２，３，６，７，１０，５，１２，９，８，１１，４，１｝、
π１２＝｛２，３，６，７，１０，１１，４，５，８，１，１２，９｝、
π１２＝｛２，３，６，７，１０，１１，４，５，１２，９，８，１｝、
π１２＝｛２，３，６，７，１０，１１，４，９，１２，１，８，５｝、
π１２＝｛２，３，６，７，１０，１１，８，９，１２，１，４，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，１，４，９，８，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，４，１，８，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，４，５，８，１｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，８，１，４，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，８，５，４，１｝、
π１２＝｛４，１，２，５，８，３，６，９，１２，７，１０，１１｝、
π１２＝｛４，１，２，５，８，９，１０，３，１２，７，６，１１｝、
π１２＝｛４，１，２，５，８，９，１０，７，１２，３，６，１１｝、
π１２＝｛４，１，２，５，８，９，１２，３，６，７，１０，１１｝、
π１２＝｛４，１，２，５，８，９，１２，７，６，３，１０，１１｝、
π１２＝｛４，１，６，３，２，７，１０，１１，１２，９，８，５｝、
π１２＝｛４，１，６，７，２，９，１２，５，８，１１，１０，３｝、
π１２＝｛４，１，６，７，８，３，１０，１１，１２，９，２，５｝、
π１２＝｛４，１，６，７，８，５，１０，１１，１２，３，２，９｝、
π１２＝｛４，１，６，７，８，９，１２，３，２，１１，１０，５｝、
π１２＝｛４，１，６，７，１０，３，１２，５，８，１１，２，９｝、
π１２＝｛４，１，６，７，１０，３，１２，９，２，１１，８，５｝、
π１２＝｛４，１，６，７，１０，５，１２，９，２，１１，８，３｝、
π１２＝｛４，１，６，７，１０，１１，２，５，１２，３，８，９｝、
π１２＝｛４，１，６，７，１０，１１，２，５，１２，９，８，３｝、
π１２＝｛４，１，６，７，１０，１１，２，９，１２，５，８，３｝、
π１２＝｛４，１，６，７，１０，１１，１２，３，８，５，２，９｝、
π１２＝｛４，１，６，７，１０，１１，１２，５，２，３，８，９｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，２，３，８，５｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，２，５，８，３｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，８，３，２，５｝、または、
π１２＝｛４，１，６，７，１０，１１，１２，９，８，５，２，３｝である。
さらに、前記ｋ系列が１４系列である場合、
π１４＝｛２，３，１０，５，４，７，１４，９，８，１１，１２，１３，６，１｝、
π１４＝｛２，３，１０，５，１４，７，８，９，６，１１，４，１３，１２，１｝、
π１４＝｛２，３，１２，５，４，７，１４，９，１０，１１，８，１３，６，１｝、
π１４＝｛６，３，２，５，１２，７，４，９，１４，１１，１０，１３，８，１｝、
π１４＝｛６，３，１０，５，２，７，１４，９，８，１１，４，１３，１２，１｝、
π１４＝｛６，３，１０，５，４，７，２，９，１４，１１，８，１３，１２，１｝、
π１４＝｛６，３，１４，５，１２，７，４，９，２，１１，１０，１３，８，１｝、
π１４＝｛２，３，８，５，４，７，１４，９，６，１３，１０，１１，１２，１｝、
π１４＝｛２，３，８，５，６，７，１２，９，４，１３，１４，１１，１０，１｝、
π１４＝｛２，３，８，５，１２，７，１４，９，６，１３，４，１１，１０，１｝、
π１４＝｛２，３，１０，５，４，７，８，９，１２，１３，１４，１１，６，１｝、
π１４＝｛２，３，１０，５，６，７，１２，９，８，１３，１４，１１，４，１｝、
π１４＝｛２，３，１０，５，１２，７，８，９，６，１３，１４，１１，４，１｝、
π１４＝｛２，３，１２，５，１０，７，４，９，８，１３，１４，１１，６，１｝、
π１４＝｛２，３，１２，５，１０，７，６，９，４，１３，１４，１１，８，１｝、
π１４＝｛２，３，１２，５，１４，７，８，９，６，１３，１０，１１，４，１｝、
π１４＝｛２，３，１４，５，１０，７，６，９，４，１３，８，１１，１２，１｝、
π１４＝｛２，３，１４，５，１０，７，１２，９，８，１３，４，１１，６，１｝、
π１４＝｛２，３，８，５，１０，７，１４，１１，４，９，６，１，１２，１３｝、
π１４＝｛２，３，１０，５，４，７，１４，１１，８，９，６，１，１２，１３｝、
π１４＝｛２，３，１０，５，１２，７，４，１１，６，９，１４，１，８，１３｝、
π１４＝｛２，３，１０，５，１４，７，４，１１，６，９，８，１，１２，１３｝、
π１４＝｛２，３，１０，５，１４，７，６，１１，８，９，４，１，１２，１３｝、
π１４＝｛６，３，２，５，１２，７，１０，１１，８，９，１４，１，４，１３｝、
π１４＝｛６，３，１０，５，２，７，１４，１１，１２，９，８，１，４，１３｝、
π１４＝｛６，３，１０，５，４，７，２，１１，８，９，１４，１，１２，１３｝、
π１４＝｛６，３，１０，５，１２，７，４，１１，８，９，１４，１，２，１３｝、
π１４＝｛６，３，１０，５，１４，７，４，１１，２，９，８，１，１２，１３｝、
π１４＝｛６，３，１２，５，１０，７，１４，１１，４，９，８，１，２，１３｝、
π１４＝｛８，３，２，５，１０，７，４，１１，１２，９，１４，１，６，１３｝、
π１４＝｛８，３，２，５，１０，７，６，１１，１２，９，１４，１，４，１３｝、
π１４＝｛２，３，８，５，４，７，１０，１１，１２，１３，６，１，１４，９｝、
π１４＝｛２，３，１０，５，４，７，８，１１，１２，１３，１４，１，６，９｝、
π１４＝｛２，３，１０，５，１２，７，４，１１，６，１３，８，１，１４，９｝、
π１４＝｛８，３，２，５，１０，７，６，１１，４，１３，１４，１，１２，９｝、
π１４＝｛８，３，２，５，１０，７，６，１１，１２，１３，１４，１，４，９｝、
π１４＝｛２，３，１２，５，４，９，６，７，１４，１，８，１３，１０，１１｝、
π１４＝｛２，３，１２，５，８，９，１４，７，６，１，４，１３，１０，１１｝、
π１４＝｛２，３，８，５，６，９，１０，１１，１４，１，４，１３，１２，７｝、
π１４＝｛２，３，８，５，１４，９，６，１１，４，１，１２，１３，１０，７｝、
π１４＝｛８，３，２，５，１４，９，６，１１，１２，１，４，１３，１０，７｝、
π１４＝｛２，３，１０，７，４，５，１４，１，６，１１，８，１３，１２，９｝、
π１４＝｛２，３，１０，７，１２，５，６，１，１４，１１，８，１３，４，９｝、または、
π１４＝｛２，３，１０，７，１４，５，４，１，８，１１，６，１３，１２，９｝である。
また、前記ｋ系列が１６系列である場合、
π１６＝｛２，３，１０，５，１６，７，６，９，１４，１１，８，１５，１２，１３，４，１｝、
π１６＝｛２，３，１２，５，１４，７，１６，９，６，１１，１０，１５，８，１３，４，１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，６，１１，４，１，１４，１５｝、
π１６＝｛２，３，１２，５，１０，７，１６，９，６，１３，８，１１，４，１，１４，１５｝、
π１６＝｛６，３，１０，５，２，７，１２，９，１６，１３，４，１１，８，１，１４，１５｝、
π１６＝｛６，３，１０，５，１２，７，１６，９，４，１３，２，１１，８，１，１４，１５｝、
π１６＝｛６，３，１２，５，２，７，１６，９，４，１３，１４，１１，８，１，１０，１５｝、
π１６＝｛２，３，１０，５，１２，７，８，９，１６，１３，１４，１５，４，１，６，１１｝、
π１６＝｛２，３，１２，５，４，７，８，９，１６，１３，６，１５，１０，１，１４，１１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，４，１，６，１１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，６，１，４，１１｝、
π１６＝｛２，３，１２，５，１０，７，１６，９，６，１３，８，１５，４，１，１４，１１｝、
π１６＝｛２，３，１０，５，１４，７，８，１１，６，９，１６，１，１２，１５，４，１３｝、
π１６＝｛６，３，１４，５，２，７，１０，１１，１２，９，１６，１，８，１５，４，１３｝、
π１６＝｛８，３，１４，５，１２，９，４，７，１６，１，１０，１１，２，１５，６，１３｝、
π１６＝｛８，３，１４，５，１２，９，１０，７，１６，１，４，１１，６，１５，２，１３｝、
π１６＝｛２，３，１２，５，１６，９，４，７，８，１，１０，１３，６，１５，１４，１１｝、
π１６＝｛２，３，８，５，１６，９，１４，１１，４，１，１２，１３，１０，１５，６，７｝、
π１６＝｛２，３，１０，５，８，９，６，１１，１６，１，４，１３，１４，１５，１２，７｝、
π１６＝｛６，３，２，７，１２，５，１４，１，４，９，１６，１３，８，１５，１０，１１｝、
π１６＝｛６，３，１２，７，４，５，１６，１，１４，９，１０，１３，２，１５，８，１１｝、
π１６＝｛２，３，６，７，８，９，１２，１，１６，５，１０，１３，１４，１５，４，１１｝、または、
π１６＝｛６，３，１２，７，１４，９，１６，１，４，５，１０，１３，２，１５，８，１１｝である。
【発明の効果】
【００２６】
本発明の情報処理装置、情報処理方法及びプログラムによると、ｋ系列一般化Ｆｅｉｓｔｅｌ型の共通鍵ブロック暗号の不能差分攻撃及び飽和攻撃に対する耐性を、実装規模を増加させることなく向上させることができる。
【図面の簡単な説明】
【００２７】
【図１】Ｆｅｉｓｔｅｌ構造１ラウンドの例を示す図である。
【図２】ｋ系列一般化Ｆｅｉｓｔｅｌ構造１ラウンドの例を示す図である。
【図３】６系列一般化Ｆｅｉｓｔｅｌ構造における差分の拡散の例を示す図である。
【図４】６系列一般化Ｆｅｉｓｔｅｌ構造における飽和特性の伝搬の例を示す図である。
【図５】６系列一般化Ｆｅｉｓｔｅｌ構造の飽和特性を平文側へ拡張した図である。
【図６】８系列一般化Ｆｅｉｓｔｅｌ構造のデータの拡散の様子を示す図である。
【図７】一般化Ｆｅｉｓｔｅｌ構造の分割数毎のデータ拡散の過程で発生する衝突発生回数と割合を示す図である。
【図８】本発明の第１の実施形態に係る暗号化装置の構成を示すブロック図である。
【図９】本発明の第１の実施形態に係る暗号化装置（６系列）の構成を一例として示すブロック図である。
【図１０】本発明の第１の実施形態に係る暗号化装置（６系列）の構成を一例として示す図である。
【図１１】本発明の第１の実施形態に係る暗号化装置（６系列）における、データの拡散の様子を示す図である。
【図１２】本発明における分割数毎のデータが全体に拡散するために要するラウンド数、不能差分特性ラウンド数、飽和特性ラウンド数を示す図である。
【図１３】本発明の第２の実施形態に係る暗号化装置の構成を示すブロック図である。
【図１４】本発明の第２の実施形態に係る暗号化装置の暗号化部におけるｋ系列一般化Ｆｅｉｓｔｅｌ処理部の構成を示すブロック図である。
【図１５】本発明の第２の実施形態に係る暗号化装置の復号化部におけるｋ系列一般化Ｆｅｉｓｔｅｌ処理部の構成を示すブロック図である。
【図１６】本発明の第２の実施形態に係る暗号化装置の復号化部における６系列一般化Ｆｅｉｓｔｅｌ処理部の構成を示す図である。
【図１７】本発明の第３の実施形態に係る通信装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２８】
第１の展開形態の情報処理装置は、上記第１の視点に係る情報処理装置であることが好ましい。
【００２９】
第２の展開形態の情報処理装置は、
前記中間データＷｘ（ｘ＝１，２，…，ｋ）を転置してＢｐ［ｘ］とする前記転置部による転置処理をπｋ＝｛ｐ［０］，ｐ［１］，…，ｐ［ｋ］｝と表すと、
前記ｋ系列が６系列である場合には、
π６＝｛２，３，６，１，４，５｝であり、
前記ｋ系列が８系列である場合には、
π８＝｛２，３，６，７，８，５，４，１｝、
π８＝｛４，５，２，３，８，１，６，７｝、または、
π８＝｛２，５，４，７，８，１，６，３｝であり、
前記ｋ系列が１０系列である場合には、
π１０＝｛２，３，１０，５，４，９，６，７，８，１｝、
π１０＝｛２，３，１０，５，８，９，４，７，６，１｝、
π１０＝｛６，３，２，７，４，５，１０，１，８，９｝、
π１０＝｛２，３，６，７，８，９，４，１，１０，５｝、または、
π１０＝｛２，５，８，３，１０，１，４，９，６，７｝であり、
前記ｋ系列が１２系列である場合には、
π１２＝｛２，３，４，５，８，１，１０，１１，６，７，１２，９｝、
π１２＝｛２，３，４，５，８，９，１０，１１，６，１，１２，７｝、
π１２＝｛２，３，６，１，４，７，１０，５，８，１１，１２，９｝、
π１２＝｛２，３，６，１，４，７，１０，１１，１２，９，８，５｝、
π１２＝｛２，３，６，１，８，９，４，５，１２，７，１０，１１｝、
π１２＝｛２，３，６，１，８，９，４，１１，１０，７，１２，５｝、
π１２＝｛２，３，６，１，８，９，１０，５，４，１１，１２，７｝、
π１２＝｛２，３，６，１，８，９，１０，１１，４，７，１２，５｝、
π１２＝｛２，３，６，７，４，９，１０，１１，１２，１，８，５｝、
π１２＝｛２，３，６，７，４，９，１２，１，８，５，１０，１１｝、
π１２＝｛２，３，６，７，４，９，１２，５，８，１１，１０，１｝、
π１２＝｛２，３，６，７，８，１，１０，１１，４，５，１２，９｝、
π１２＝｛２，３，６，７，８，１，１０，１１，１２，５，４，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，４，１，１２，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，１２，１，４，９｝、
π１２＝｛２，３，６，７，８，５，１０，１１，１２，９，４，１｝、
π１２＝｛２，３，６，７，８，９，４，１，１２，５，１０，１１｝、
π１２＝｛２，３，６，７，８，９，４，１１，１２，１，１０，５｝、
π１２＝｛２，３，６，７，８，９，１０，５，１２，１，４，１１｝、
π１２＝｛２，３，６，７，８，９，１０，１１，１２，５，４，１｝、
π１２＝｛２，３，６，７，８，９，１２，１，４，１１，１０，５｝、
π１２＝｛２，３，６，７，８，９，１２，５，４，１，１０，１１｝、
π１２＝｛２，３，６，７，８，９，１２，５，１０，１１，４，１｝、
π１２＝｛２，３，６，７，１０，１，４，９，１２，５，８，１１｝、
π１２＝｛２，３，６，７，１０，１，４，１１，１２，９，８，５｝、
π１２＝｛２，３，６，７，１０，１，１２，９，８，５，４，１１｝、
π１２＝｛２，３，６，７，１０，１，１２，９，８，１１，４，５｝、
π１２＝｛２，３，６，７，１０，５，１２，９，８，１１，４，１｝、
π１２＝｛２，３，６，７，１０，１１，４，５，８，１，１２，９｝、
π１２＝｛２，３，６，７，１０，１１，４，５，１２，９，８，１｝、
π１２＝｛２，３，６，７，１０，１１，４，９，１２，１，８，５｝、
π１２＝｛２，３，６，７，１０，１１，８，９，１２，１，４，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，１，４，９，８，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，４，１，８，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，４，５，８，１｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，８，１，４，５｝、
π１２＝｛２，３，６，７，１０，１１，１２，９，８，５，４，１｝、
π１２＝｛４，１，２，５，８，３，６，９，１２，７，１０，１１｝、
π１２＝｛４，１，２，５，８，９，１０，３，１２，７，６，１１｝、
π１２＝｛４，１，２，５，８，９，１０，７，１２，３，６，１１｝、
π１２＝｛４，１，２，５，８，９，１２，３，６，７，１０，１１｝、
π１２＝｛４，１，２，５，８，９，１２，７，６，３，１０，１１｝、
π１２＝｛４，１，６，３，２，７，１０，１１，１２，９，８，５｝、
π１２＝｛４，１，６，７，２，９，１２，５，８，１１，１０，３｝、
π１２＝｛４，１，６，７，８，３，１０，１１，１２，９，２，５｝、
π１２＝｛４，１，６，７，８，５，１０，１１，１２，３，２，９｝、
π１２＝｛４，１，６，７，８，９，１２，３，２，１１，１０，５｝、
π１２＝｛４，１，６，７，１０，３，１２，５，８，１１，２，９｝、
π１２＝｛４，１，６，７，１０，３，１２，９，２，１１，８，５｝、
π１２＝｛４，１，６，７，１０，５，１２，９，２，１１，８，３｝、
π１２＝｛４，１，６，７，１０，１１，２，５，１２，３，８，９｝、
π１２＝｛４，１，６，７，１０，１１，２，５，１２，９，８，３｝、
π１２＝｛４，１，６，７，１０，１１，２，９，１２，５，８，３｝、
π１２＝｛４，１，６，７，１０，１１，１２，３，８，５，２，９｝、
π１２＝｛４，１，６，７，１０，１１，１２，５，２，３，８，９｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，２，３，８，５｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，２，５，８，３｝、
π１２＝｛４，１，６，７，１０，１１，１２，９，８，３，２，５｝、または、
π１２＝｛４，１，６，７，１０，１１，１２，９，８，５，２，３｝であり、
前記ｋ系列が１４系列である場合には、
π１４＝｛２，３，１０，５，４，７，１４，９，８，１１，１２，１３，６，１｝、
π１４＝｛２，３，１０，５，１４，７，８，９，６，１１，４，１３，１２，１｝、
π１４＝｛２，３，１２，５，４，７，１４，９，１０，１１，８，１３，６，１｝、
π１４＝｛６，３，２，５，１２，７，４，９，１４，１１，１０，１３，８，１｝、
π１４＝｛６，３，１０，５，２，７，１４，９，８，１１，４，１３，１２，１｝、
π１４＝｛６，３，１０，５，４，７，２，９，１４，１１，８，１３，１２，１｝、
π１４＝｛６，３，１４，５，１２，７，４，９，２，１１，１０，１３，８，１｝、
π１４＝｛２，３，８，５，４，７，１４，９，６，１３，１０，１１，１２，１｝、
π１４＝｛２，３，８，５，６，７，１２，９，４，１３，１４，１１，１０，１｝、
π１４＝｛２，３，８，５，１２，７，１４，９，６，１３，４，１１，１０，１｝、
π１４＝｛２，３，１０，５，４，７，８，９，１２，１３，１４，１１，６，１｝、
π１４＝｛２，３，１０，５，６，７，１２，９，８，１３，１４，１１，４，１｝、
π１４＝｛２，３，１０，５，１２，７，８，９，６，１３，１４，１１，４，１｝、
π１４＝｛２，３，１２，５，１０，７，４，９，８，１３，１４，１１，６，１｝、
π１４＝｛２，３，１２，５，１０，７，６，９，４，１３，１４，１１，８，１｝、
π１４＝｛２，３，１２，５，１４，７，８，９，６，１３，１０，１１，４，１｝、
π１４＝｛２，３，１４，５，１０，７，６，９，４，１３，８，１１，１２，１｝、
π１４＝｛２，３，１４，５，１０，７，１２，９，８，１３，４，１１，６，１｝、
π１４＝｛２，３，８，５，１０，７，１４，１１，４，９，６，１，１２，１３｝、
π１４＝｛２，３，１０，５，４，７，１４，１１，８，９，６，１，１２，１３｝、
π１４＝｛２，３，１０，５，１２，７，４，１１，６，９，１４，１，８，１３｝、
π１４＝｛２，３，１０，５，１４，７，４，１１，６，９，８，１，１２，１３｝、
π１４＝｛２，３，１０，５，１４，７，６，１１，８，９，４，１，１２，１３｝、
π１４＝｛６，３，２，５，１２，７，１０，１１，８，９，１４，１，４，１３｝、
π１４＝｛６，３，１０，５，２，７，１４，１１，１２，９，８，１，４，１３｝、
π１４＝｛６，３，１０，５，４，７，２，１１，８，９，１４，１，１２，１３｝、
π１４＝｛６，３，１０，５，１２，７，４，１１，８，９，１４，１，２，１３｝、
π１４＝｛６，３，１０，５，１４，７，４，１１，２，９，８，１，１２，１３｝、
π１４＝｛６，３，１２，５，１０，７，１４，１１，４，９，８，１，２，１３｝、
π１４＝｛８，３，２，５，１０，７，４，１１，１２，９，１４，１，６，１３｝、
π１４＝｛８，３，２，５，１０，７，６，１１，１２，９，１４，１，４，１３｝、
π１４＝｛２，３，８，５，４，７，１０，１１，１２，１３，６，１，１４，９｝、
π１４＝｛２，３，１０，５，４，７，８，１１，１２，１３，１４，１，６，９｝、
π１４＝｛２，３，１０，５，１２，７，４，１１，６，１３，８，１，１４，９｝、
π１４＝｛８，３，２，５，１０，７，６，１１，４，１３，１４，１，１２，９｝、
π１４＝｛８，３，２，５，１０，７，６，１１，１２，１３，１４，１，４，９｝、
π１４＝｛２，３，１２，５，４，９，６，７，１４，１，８，１３，１０，１１｝、
π１４＝｛２，３，１２，５，８，９，１４，７，６，１，４，１３，１０，１１｝、
π１４＝｛２，３，８，５，６，９，１０，１１，１４，１，４，１３，１２，７｝、
π１４＝｛２，３，８，５，１４，９，６，１１，４，１，１２，１３，１０，７｝、
π１４＝｛８，３，２，５，１４，９，６，１１，１２，１，４，１３，１０，７｝、
π１４＝｛２，３，１０，７，４，５，１４，１，６，１１，８，１３，１２，９｝、
π１４＝｛２，３，１０，７，１２，５，６，１，１４，１１，８，１３，４，９｝、または、
π１４＝｛２，３，１０，７，１４，５，４，１，８，１１，６，１３，１２，９｝であり、
前記ｋ系列が１６系列である場合には、
π１６＝｛２，３，１０，５，１６，７，６，９，１４，１１，８，１５，１２，１３，４，１｝、
π１６＝｛２，３，１２，５，１４，７，１６，９，６，１１，１０，１５，８，１３，４，１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，６，１１，４，１，１４，１５｝、
π１６＝｛２，３，１２，５，１０，７，１６，９，６，１３，８，１１，４，１，１４，１５｝、
π１６＝｛６，３，１０，５，２，７，１２，９，１６，１３，４，１１，８，１，１４，１５｝、
π１６＝｛６，３，１０，５，１２，７，１６，９，４，１３，２，１１，８，１，１４，１５｝、
π１６＝｛６，３，１２，５，２，７，１６，９，４，１３，１４，１１，８，１，１０，１５｝、
π１６＝｛２，３，１０，５，１２，７，８，９，１６，１３，１４，１５，４，１，６，１１｝、
π１６＝｛２，３，１２，５，４，７，８，９，１６，１３，６，１５，１０，１，１４，１１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，４，１，６，１１｝、
π１６＝｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，６，１，４，１１｝、
π１６＝｛２，３，１２，５，１０，７，１６，９，６，１３，８，１５，４，１，１４，１１｝、
π１６＝｛２，３，１０，５，１４，７，８，１１，６，９，１６，１，１２，１５，４，１３｝、
π１６＝｛６，３，１４，５，２，７，１０，１１，１２，９，１６，１，８，１５，４，１３｝、
π１６＝｛８，３，１４，５，１２，９，４，７，１６，１，１０，１１，２，１５，６，１３｝、
π１６＝｛８，３，１４，５，１２，９，１０，７，１６，１，４，１１，６，１５，２，１３｝、
π１６＝｛２，３，１２，５，１６，９，４，７，８，１，１０，１３，６，１５，１４，１１｝、
π１６＝｛２，３，８，５，１６，９，１４，１１，４，１，１２，１３，１０，１５，６，７｝、
π１６＝｛２，３，１０，５，８，９，６，１１，１６，１，４，１３，１４，１５，１２，７｝、
π１６＝｛６，３，２，７，１２，５，１４，１，４，９，１６，１３，８，１５，１０，１１｝、
π１６＝｛６，３，１２，７，４，５，１６，１，１４，９，１０，１３，２，１５，８，１１｝、
π１６＝｛２，３，６，７，８，９，１２，１，１６，５，１０，１３，１４，１５，４，１１｝、または、
π１６＝｛６，３，１２，７，１４，９，１６，１，４，５，１０，１３，２，１５，８，１１｝であることが好ましい。
【００３０】
第３の展開形態の情報処理装置は、前記非線形変換部と前記転置部とから成るｋ系列一般化Ｆｅｉｓｔｅｌ処理部を複数備えていることが好ましい。
【００３１】
第４の展開形態の情報処理装置は、
前記非線形変換部と前記転置部とから成るｋ系列一般化Ｆｅｉｓｔｅｌ処理部を複数有する暗号化部を備え、
前記暗号化部は、鍵データから生成された複数の拡大鍵と平文データを前記複数のｋ系列一般化Ｆｅｉｓｔｅｌ処理部に入力して、該平文データを暗号化するようにしてもよい。
【００３２】
第５の展開形態の情報処理装置は、
前記非線形変換部と前記転置部とから成るｋ系列一般化Ｆｅｉｓｔｅｌ処理部を複数有する復号化部を備え、
前記復号化部は、鍵データから生成された複数の拡大鍵と暗号文データを前記複数のｋ系列一般化Ｆｅｉｓｔｅｌ処理部に入力して、該暗号文データを復号化するようにしてもよい。
【００３３】
第６の展開形態の情報処理装置は、鍵データから複数の拡大鍵を生成する拡大鍵生成部を備えていてもよい。
【００３４】
第７の展開形態の情報処理方法は、上記第２の視点に係る情報処理方法であることが好ましい。
【００３５】
第８の展開形態の情報処理方法は、前記非線形変換工程と前記転置工程を複数回繰り返す工程を含むことが好ましい。
【００３６】
第９の展開形態の情報処理方法は、
鍵データから生成された複数の拡大鍵と平文データを受信する工程と、
前記非線形変換工程と前記転置工程を複数回繰り返して、前記平文データを暗号化する工程とを含んでいてもよい。
【００３７】
第１０の展開形態の情報処理方法は、
鍵データから生成された複数の拡大鍵と暗号文データを受信する工程と、
前記非線形変換工程と前記転置工程を複数回繰り返して、前記暗号文データを復号化する工程とを含んでいてもよい。
【００３８】
第１１の展開形態のプログラムは、上記第３の視点に係るプログラムであることが好ましい。
【００３９】
第１２の展開形態のプログラムは、前記非線形変換処理と前記転置処理を複数回繰り返す処理をコンピュータに実行させることが好ましい。
【００４０】
第１３の展開形態のプログラムは、
鍵データから生成された複数の拡大鍵と平文データを受信する処理と、
前記非線形変換処理と前記転置処理を複数回繰り返して、前記平文データを暗号化する処理とをコンピュータに実行させるようにしてもよい。
【００４１】
第１４の展開形態のプログラムは、
鍵データから生成された複数の拡大鍵と暗号文データを受信する処理と、
前記非線形変換処理と前記転置処理を複数回繰り返して、前記暗号文データを復号化する処理とをコンピュータに実行させるようにしてもよい。
【００４２】
なお、上記のプログラムは、コンピュータ読み取り可能な記録媒体に格納されたものであってもよい。
【００４３】
（実施形態１）
本発明の第１の実施形態に係る暗号化装置について、図面を参照して説明する。図８は、本実施形態に係る暗号化装置１０の構成を示すブロック図である。図８を参照すると、暗号化装置１０は、非線形変換部１８及び転置部１９を有する。
【００４４】
非線形変換部１８は、ｋ系列のデータ｛Ｂ１，Ｂ２，…，Ｂｋ｝（ｋは６以上の偶数）のうちのｋ／２個の奇数系列データＢｉ（ｉ＝１，３，…，ｋ−１）をそれぞれ中間データＷｉとする。また、非線形変換部１８は、鍵データの値に応じて変換後の値が決定される全単射なＦ関数に基づいて該奇数系列データＢｉを変換したデータと偶数系列データＢｉ＋１との間における排他的論理和を中間データＷｉ＋１とする。
【００４５】
転置部１９は、前記中間データ｛Ｗ１，Ｗ２，…，Ｗｋ｝をデータ｛Ｂ１，Ｂ２，…，Ｂｋ｝に転置する。このとき、転置部１９は、前記中間データのうちのＷｍ（ｍはｋ以下の任意の奇数）からＢｎ（ｎはｋ以下の任意の偶数）への転置においてｎ≠ｍ＋２  ｍｏｄ  ｋ（ｘ  ｍｏｄ  ｙはｘをｙで割ったときの余り）なる関係を満たすものを少なくとも１つ含み、ＷｎからＢｍへの転置においてｍ≠ｎ＋２  ｍｏｄ  ｋなる関係を満たすものを少なくとも１つ含み、ＷｍをＢｎに転置する場合にはＷｍ＋１をＢｎ−１に転置しないようにする。、
【００４６】
暗号化装置１０は、非線形変換部１８と転置部１９から成る対を複数有することが好ましい。
【００４７】
図９は、本実施形態の暗号化装置１０を、一例として、６系列一般化Ｆｅｉｓｔｅｌ構造に対して適用した場合の構成を示す図である。
【００４８】
非線形変換部８０から出力される６つの中間データを左からＷ１、Ｗ２、…、Ｗ６とすると、転置部８１は、Ｗ１をＢｒ＋１，２に、Ｗ２をＢｒ＋１，３に、Ｗ３をＢｒ＋１，６に、Ｗ４をＢｒ＋１，１に、Ｗ５をＢｒ＋１，４に、Ｗ６をＢｒ＋１，５に転置する（以降、この転置処理を｛２，３，６，１，４，５｝と記述する）。この転置処理においては、偶数系列から奇数系列に転置されるとともに、奇数系列から偶数系列に転置されている。
【００４９】
また、奇数系列中間データＷ１はＢｒ＋１，２に転置されているので、ｍ＝１、ｎ＝２であり、Ｗ３（＝Ｗｍ＋２）はＢｒ＋１，６（＝ｎ＋４  ｍｏｄ  ６）に転置されていることから、ｎ＝ｍ＋２  ｍｏｄ  ６という関係にはない。同様に、偶数系列中間データＷ２はＢｒ＋１，３に転置されているので、ｎ＝２、ｍ＝３という関係があり、Ｗ４（＝Ｗｎ＋２）はＢｒ＋１，１（ｍ＋３  ｍｏｄ  ６）に転置されていることから、ｍ＝ｎ＋２  ｍｏｄ  ６という関係にはない。そして、Ｗｉ（ｉ＝１，３，５）とＷｉ＋１の転置先が、それぞれＷｊ（ｊはｋ以下の偶数）とＷｊ−１になることはない。
【００５０】
図１０は、図９に示した暗号化装置の転置部８１の構成を変形したものを示す。図１０を参照すると、転置部９０の転置は｛４，５，２，３，６，１｝であり、転置部８１（図９）とは異なる転置である。しかしながら、図１０の構造は、図９の入力データＢｒと出力データＢｒ＋１をそれぞれ左に２系列巡回シフトしたものであるため、入力データと出力データの関係は同一である。この関係は複数ラウンド繰り返しても変わらないため、図９と図１０の変換の写像は同一とみなすことができる。したがって、転置部８１（図９）と転置部９０（図１０）の拡散性は同一である。
【００５１】
ｋ系列の場合には、このような入れ替えの組み合わせは、ｋの階乗通り存在する。上記の転置部８１、９０は、写像としては異なるものである。本実施形態の暗号化装置１０の転置部１９における転置処理の具体例を、８系列から１６系列までについて以下に示す。
【００５２】
８系列
｛２，３，６，７，８，５，４，１｝
｛４，５，２，３，８，１，６，７｝
｛２，５，４，７，８，１，６，３｝
【００５３】
１０系列
｛２，３，１０，５，４，９，６，７，８，１｝
｛２，３，１０，５，８，９，４，７，６，１｝
｛６，３，２，７，４，５，１０，１，８，９｝
｛２，３，６，７，８，９，４，１，１０，５｝
｛２，５，８，３，１０，１，４，９，６，７｝
【００５４】
１２系列
｛２，３，４，５，８，１，１０，１１，６，７，１２，９｝
｛２，３，４，５，８，９，１０，１１，６，１，１２，７｝
｛２，３，６，１，４，７，１０，５，８，１１，１２，９｝
｛２，３，６，１，４，７，１０，１１，１２，９，８，５｝
｛２，３，６，１，８，９，４，５，１２，７，１０，１１｝
｛２，３，６，１，８，９，４，１１，１０，７，１２，５｝
｛２，３，６，１，８，９，１０，５，４，１１，１２，７｝
｛２，３，６，１，８，９，１０，１１，４，７，１２，５｝
｛２，３，６，７，４，９，１０，１１，１２，１，８，５｝
｛２，３，６，７，４，９，１２，１，８，５，１０，１１｝
｛２，３，６，７，４，９，１２，５，８，１１，１０，１｝
｛２，３，６，７，８，１，１０，１１，４，５，１２，９｝
｛２，３，６，７，８，１，１０，１１，１２，５，４，９｝
｛２，３，６，７，８，５，１０，１１，４，１，１２，９｝
｛２，３，６，７，８，５，１０，１１，１２，１，４，９｝
｛２，３，６，７，８，５，１０，１１，１２，９，４，１｝
｛２，３，６，７，８，９，４，１，１２，５，１０，１１｝
｛２，３，６，７，８，９，４，１１，１２，１，１０，５｝
｛２，３，６，７，８，９，１０，５，１２，１，４，１１｝
｛２，３，６，７，８，９，１０，１１，１２，５，４，１｝
｛２，３，６，７，８，９，１２，１，４，１１，１０，５｝
｛２，３，６，７，８，９，１２，５，４，１，１０，１１｝
｛２，３，６，７，８，９，１２，５，１０，１１，４，１｝
｛２，３，６，７，１０，１，４，９，１２，５，８，１１｝
｛２，３，６，７，１０，１，４，１１，１２，９，８，５｝
｛２，３，６，７，１０，１，１２，９，８，５，４，１１｝
｛２，３，６，７，１０，１，１２，９，８，１１，４，５｝
｛２，３，６，７，１０，５，１２，９，８，１１，４，１｝
｛２，３，６，７，１０，１１，４，５，８，１，１２，９｝
｛２，３，６，７，１０，１１，４，５，１２，９，８，１｝
｛２，３，６，７，１０，１１，４，９，１２，１，８，５｝
｛２，３，６，７，１０，１１，８，９，１２，１，４，５｝
｛２，３，６，７，１０，１１，１２，１，４，９，８，５｝
｛２，３，６，７，１０，１１，１２，９，４，１，８，５｝
｛２，３，６，７，１０，１１，１２，９，４，５，８，１｝
｛２，３，６，７，１０，１１，１２，９，８，１，４，５｝
｛２，３，６，７，１０，１１，１２，９，８，５，４，１｝
｛４，１，２，５，８，３，６，９，１２，７，１０，１１｝
｛４，１，２，５，８，９，１０，３，１２，７，６，１１｝
｛４，１，２，５，８，９，１０，７，１２，３，６，１１｝
｛４，１，２，５，８，９，１２，３，６，７，１０，１１｝
｛４，１，２，５，８，９，１２，７，６，３，１０，１１｝
｛４，１，６，３，２，７，１０，１１，１２，９，８，５｝
｛４，１，６，７，２，９，１２，５，８，１１，１０，３｝
｛４，１，６，７，８，３，１０，１１，１２，９，２，５｝
｛４，１，６，７，８，５，１０，１１，１２，３，２，９｝
｛４，１，６，７，８，９，１２，３，２，１１，１０，５｝
｛４，１，６，７，１０，３，１２，５，８，１１，２，９｝
｛４，１，６，７，１０，３，１２，９，２，１１，８，５｝
｛４，１，６，７，１０，５，１２，９，２，１１，８，３｝
｛４，１，６，７，１０，１１，２，５，１２，３，８，９｝
｛４，１，６，７，１０，１１，２，５，１２，９，８，３｝
｛４，１，６，７，１０，１１，２，９，１２，５，８，３｝
｛４，１，６，７，１０，１１，１２，３，８，５，２，９｝
｛４，１，６，７，１０，１１，１２，５，２，３，８，９｝
｛４，１，６，７，１０，１１，１２，９，２，３，８，５｝
｛４，１，６，７，１０，１１，１２，９，２，５，８，３｝
｛４，１，６，７，１０，１１，１２，９，８，３，２，５｝
｛４，１，６，７，１０，１１，１２，９，８，５，２，３｝
【００５５】
１４系列
｛２，３，１０，５，４，７，１４，９，８，１１，１２，１３，６，１｝
｛２，３，１０，５，１４，７，８，９，６，１１，４，１３，１２，１｝
｛２，３，１２，５，４，７，１４，９，１０，１１，８，１３，６，１｝
｛６，３，２，５，１２，７，４，９，１４，１１，１０，１３，８，１｝
｛６，３，１０，５，２，７，１４，９，８，１１，４，１３，１２，１｝
｛６，３，１０，５，４，７，２，９，１４，１１，８，１３，１２，１｝
｛６，３，１４，５，１２，７，４，９，２，１１，１０，１３，８，１｝
｛２，３，８，５，４，７，１４，９，６，１３，１０，１１，１２，１｝
｛２，３，８，５，６，７，１２，９，４，１３，１４，１１，１０，１｝
｛２，３，８，５，１２，７，１４，９，６，１３，４，１１，１０，１｝
｛２，３，１０，５，４，７，８，９，１２，１３，１４，１１，６，１｝
｛２，３，１０，５，６，７，１２，９，８，１３，１４，１１，４，１｝
｛２，３，１０，５，１２，７，８，９，６，１３，１４，１１，４，１｝
｛２，３，１２，５，１０，７，４，９，８，１３，１４，１１，６，１｝
｛２，３，１２，５，１０，７，６，９，４，１３，１４，１１，８，１｝
｛２，３，１２，５，１４，７，８，９，６，１３，１０，１１，４，１｝
｛２，３，１４，５，１０，７，６，９，４，１３，８，１１，１２，１｝
｛２，３，１４，５，１０，７，１２，９，８，１３，４，１１，６，１｝
｛２，３，８，５，１０，７，１４，１１，４，９，６，１，１２，１３｝
｛２，３，１０，５，４，７，１４，１１，８，９，６，１，１２，１３｝
｛２，３，１０，５，１２，７，４，１１，６，９，１４，１，８，１３｝
｛２，３，１０，５，１４，７，４，１１，６，９，８，１，１２，１３｝
｛２，３，１０，５，１４，７，６，１１，８，９，４，１，１２，１３｝
｛６，３，２，５，１２，７，１０，１１，８，９，１４，１，４，１３｝
｛６，３，１０，５，２，７，１４，１１，１２，９，８，１，４，１３｝
｛６，３，１０，５，４，７，２，１１，８，９，１４，１，１２，１３｝
｛６，３，１０，５，１２，７，４，１１，８，９，１４，１，２，１３｝
｛６，３，１０，５，１４，７，４，１１，２，９，８，１，１２，１３｝
｛６，３，１２，５，１０，７，１４，１１，４，９，８，１，２，１３｝
｛８，３，２，５，１０，７，４，１１，１２，９，１４，１，６，１３｝
｛８，３，２，５，１０，７，６，１１，１２，９，１４，１，４，１３｝
｛２，３，８，５，４，７，１０，１１，１２，１３，６，１，１４，９｝
｛２，３，１０，５，４，７，８，１１，１２，１３，１４，１，６，９｝
｛２，３，１０，５，１２，７，４，１１，６，１３，８，１，１４，９｝
｛８，３，２，５，１０，７，６，１１，４，１３，１４，１，１２，９｝
｛８，３，２，５，１０，７，６，１１，１２，１３，１４，１，４，９｝
｛２，３，１２，５，４，９，６，７，１４，１，８，１３，１０，１１｝
｛２，３，１２，５，８，９，１４，７，６，１，４，１３，１０，１１｝
｛２，３，８，５，６，９，１０，１１，１４，１，４，１３，１２，７｝
｛２，３，８，５，１４，９，６，１１，４，１，１２，１３，１０，７｝
｛８，３，２，５，１４，９，６，１１，１２，１，４，１３，１０，７｝
｛２，３，１０，７，４，５，１４，１，６，１１，８，１３，１２，９｝
｛２，３，１０，７，１２，５，６，１，１４，１１，８，１３，４，９｝
｛２，３，１０，７，１４，５，４，１，８，１１，６，１３，１２，９｝
【００５６】
１６系列
｛２，３，１０，５，１６，７，６，９，１４，１１，８，１５，１２，１３，４，１｝
｛２，３，１２，５，１４，７，１６，９，６，１１，１０，１５，８，１３，４，１｝
｛２，３，１２，５，１０，７，８，９，１６，１３，６，１１，４，１，１４，１５｝
｛２，３，１２，５，１０，７，１６，９，６，１３，８，１１，４，１，１４，１５｝
｛６，３，１０，５，２，７，１２，９，１６，１３，４，１１，８，１，１４，１５｝
｛６，３，１０，５，１２，７，１６，９，４，１３，２，１１，８，１，１４，１５｝
｛６，３，１２，５，２，７，１６，９，４，１３，１４，１１，８，１，１０，１５｝
｛２，３，１０，５，１２，７，８，９，１６，１３，１４，１５，４，１，６，１１｝
｛２，３，１２，５，４，７，８，９，１６，１３，６，１５，１０，１，１４，１１｝
｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，４，１，６，１１｝
｛２，３，１２，５，１０，７，８，９，１６，１３，１４，１５，６，１，４，１１｝
｛２，３，１２，５，１０，７，１６，９，６，１３，８，１５，４，１，１４，１１｝
｛２，３，１０，５，１４，７，８，１１，６，９，１６，１，１２，１５，４，１３｝
｛６，３，１４，５，２，７，１０，１１，１２，９，１６，１，８，１５，４，１３｝
｛８，３，１４，５，１２，９，４，７，１６，１，１０，１１，２，１５，６，１３｝
｛８，３，１４，５，１２，９，１０，７，１６，１，４，１１，６，１５，２，１３｝
｛２，３，１２，５，１６，９，４，７，８，１，１０，１３，６，１５，１４，１１｝
｛２，３，８，５，１６，９，１４，１１，４，１，１２，１３，１０，１５，６，７｝
｛２，３，１０，５，８，９，６，１１，１６，１，４，１３，１４，１５，１２，７｝
｛６，３，２，７，１２，５，１４，１，４，９，１６，１３，８，１５，１０，１１｝
｛６，３，１２，７，４，５，１６，１，１４，９，１０，１３，２，１５，８，１１｝
｛２，３，６，７，８，９，１２，１，１６，５，１０，１３，１４，１５，４，１１｝
｛６，３，１２，７，１４，９，１６，１，４，５，１０，１３，２，１５，８，１１｝
【００５７】
次に、本実施形態の効果について図面を参照して説明する。図１１は、図９に示した暗号化装置におけるデータ波及の様子を示す図である。系列２のデータは５ラウンドで全系列に波及しており、転置処理が巡回シフトの場合よりも１ラウンド少なくなっている。図３に示したように、転置処理が巡回シフトの場合には、第４ラウンドで最初の衝突が発生する。しかしながら、本実施形態の暗号化装置の転置処理によると、第４ラウンドで衝突することなく、まだ拡散していない系列へ拡散しており、この結果、第５ラウンドで全系列にデータが波及している。
【００５８】
図１２は、上記に示した転置処理手段を用いた場合のデータが全系列に波及するために必要なラウンド数を示した表である。図３や図６からわかるように、転置処理が巡回シフトの場合は全系列に波及するまでにｋラウンド必要である。したがって、本実施形態の暗号化装置１０の転置部８１を用いることで、全系列に波及するまでのラウンド数が削減される。さらに、分割数ｋが大きくなるほど削減効果が大きくなっている。また、不能差分特性ラウンド数と飽和特性ラウンド数は拡散に要するラウンド数の約２倍のラウンド数であり、図３に示した方法における特性ラウンド数よりも大幅に削減することができる。
【００５９】
以上より、本実施形態の暗号化装置の効果として、一般化Ｆｅｉｓｔｅｌ構造の規模をほぼ保ったまま、不能差分攻撃や飽和攻撃に対する耐性を向上させることができ、この結果として、処理性能を向上させることができる。また、転置部１９における転置処理はビットデータの入れ替えにすぎないことから、ハードウェア実装又はソフトウェア実装のいずれの方式であっても転置パタンが変わることによって実装規模が増加することはない。
【００６０】
（実施形態２）
本発明の第２の実施形態に係る暗号化装置について、図面を参照して説明する。図１３は、本実施形態の暗号化装置の構成を示すブロック図である。図１３を参照すると、暗号化装置は、拡大鍵生成部１２、暗号化部１３及び復号化部１４を有する。
【００６１】
拡大鍵生成部１２は、鍵データＫから複数の拡大鍵Ｋ１，Ｋ２、…、ＫＲを生成し、該拡大鍵Ｋ１，Ｋ２、…、ＫＲを暗号化部１３と復号化部１４とに供給する。暗号化部１３は、１ブロック分の平文データＰと該拡大鍵Ｋ１，Ｋ２、…、ＫＲが入力され、１ブロック分の暗号文データＣを生成する。復号化部１４は、１ブロック分の暗号文データＣと該拡大鍵Ｋ１，Ｋ２、…、ＫＲが入力され、１ブロック分の平文データＰを生成する。
【００６２】
暗号化部１３は、Ｒ個のｋ系列一般化Ｆｅｉｓｔｅｌ処理部１３０（ｋは６以上の偶数）を有する。まず、ｋｎビットの平文データＰはｋ個のｎビットデータに分割され、鍵データＫ１とともにｋ系列一般化Ｆｅｉｓｔｅｌ処理部１３０に入力され、データの攪拌が行われ、攪拌後のデータが出力される。ｒ（２≦ｒ≦Ｒ）ラウンドにおいは、（ｒ−１）ラウンドのｋ系列一般化Ｆｅｉｓｔｅｌ処理部１３０からの出力と鍵データＫｒが入力され、データと拡大鍵との攪拌が繰り返される。Ｒラウンドのｋ系列一般化Ｆｅｉｓｔｅｌ処理部１３０からのｋ個の出力を連結したｋｎビットのデータが、暗号文データＣとして出力される。
【００６３】
復号化部１４は、Ｒ個のｋ系列一般化Ｆｅｉｓｔｅｌ処理部１４０を有する。まず、ｋｎビットの暗号文データＣはｋ個のｎビットデータに分割され、鍵データＫＲとともにｋ系列一般化Ｆｅｉｓｔｅｌ処理部１４０に入力され、データの攪拌が行われ、攪拌後のデータが出力される。ｒ（２≦ｒ≦Ｒ）ラウンドにおいては、（ｒ−１）ラウンドのｋ系列一般化Ｆｅｉｓｔｅｌ処理部１４０からの出力と鍵データＫｒ’が入力され、データと拡大鍵との攪拌が繰り返される。Ｒラウンドのｋ系列一般化Ｆｅｉｓｔｅｌ処理部１４０からのｋ個の出力を連結したｋｎビットのデータが、平文データＰとして出力される。なお、図１３に示すように、復号化部１４における拡大鍵の使用順序は、暗号化部１３における順序とは逆である。
【００６４】
図１４は、本実施形態に係る暗号化装置の暗号化部１３におけるｋ系列一般化Ｆｅｉｓｔｅｌ処理部１３０の構成を示すブロック図である。図１４を参照すると、ｋ系列一般化Ｆｅｉｓｔｅｌ処理部１３０は、非線形変換部１３１、奇数系列転置部１３２及び偶数系列転置部１３３を有する。
【００６５】
非線形変換部１３１は、ｋ／２個のＦ関数を有する。ｋ個の入力データＢ１，Ｂ２，…，ＢｋのうちＢｉ（ｉはｋ以下の奇数）がそれぞれＦ関数へ入力される。Ｆ関数は、一般的な暗号アルゴリズムで用いられるＳ−ｂｏｘなどの非線形変換処理を行う。拡大鍵データＫｉは、ｋ／２個に均等分割され、各々がＦ関数に入力され、入力データＢｉと攪拌される。Ｆ関数から出力されたｋ／２個のｎビットのデータのそれぞれと、入力データＢｊ（ｊはｋ以下の偶数）との間における排他的論理和を中間データＷｊとする。また、入力データＢｉを、そのまま中間データＷｉとする。
【００６６】
奇数系列転置部１３２は、ｋ個の中間データのうちの奇数系列データの転置を行い、ｋ系列一般化Ｆｅｉｓｔｅｌ処理部１３０の出力データのうちの偶数系列データとして出力する。偶数系列転置部１３３は、ｋ個の中間データのうちの偶数系列データの転置を行い、ｋ系列一般化Ｆｅｉｓｔｅｌ処理部１３０の出力データのうちの奇数系列データとして出力する。これらの転置部における入力系列と出力系列の対応は、分割数ｋに応じて最適なものを適用することが好ましい。
【００６７】
図１５は、本実施形態に係る暗号化装置の復号化部１４におけるｋ系列一般化Ｆｅｉｓｔｅｌ処理部１４０の構成を示すブロック図である。図１４を参照すると、ｋ系列一般化Ｆｅｉｓｔｅｌ処理部１４０は、奇数系列逆転置部１４１、偶数系列逆転置部１４２及び非線形変換部１３１を有する。
【００６８】
奇数系列逆転置部１４１は、ｋ系列一般化Ｆｅｉｓｔｅｌ処理部１４０への入力データのうちの奇数系列データの転置を行い、ｋ系列一般化Ｆｅｉｓｔｅｌ処理部１４０への入力データのうちの偶数系列データとして出力する。奇数系列逆転置部１４１の転置処理は、偶数系列転置部１３３に対して、入力と出力とが逆の関係にある。
【００６９】
偶数系列逆転置部１４２は、ｋ系列一般化Ｆｅｉｓｔｅｌ処理部１４０への入力データのうちの偶数系列データの転置を行い、ｋ系列一般化Ｆｅｉｓｔｅｌ処理部１３０への入力データのうちの奇数系列データとして出力する。偶数系列逆転置部１４２の転置処理は、奇数系列転置部１３２に対して、入力と出力とが逆の関係にある。
【００７０】
図９で示した６系列一般化Ｆｅｉｓｔｅｌ構造の転置部８１を、奇数系列と偶数系列に分けて記述すると、奇数系列転置部１３２は｛２、６、４｝、偶数系列転置部１３３は｛３、１、５｝となり、奇数系列逆転置部１４１は｛４，２，６｝、偶数系列逆転置部１４２は｛１，５，３｝となる。図１６は、復号化部１４におけるｋ系列一般化Ｆｅｉｓｔｅｌ処理部１４０（ｋ＝６）の構成を、かかる場合について示す図である。
【００７１】
（実施形態３）
本発明の第３の実施形態に係る通信装置について、図面を参照して説明する。上記実施形態の暗号化装置は、音声通信端末やデータ通信装置のような通信装置において、通信データを秘匿するためデータ処理部として用いることができる。図１７は、本実施形態に係る通信装置１６の構成を示すブロック図である。図１７を参照すると、通信装置１６は、データ圧縮部１６１、暗号化部１６２、符号化部１６３、復号化部１６４及びデータ復元部１６５を有する。
【００７２】
データを送信する場合には、データ圧縮部１６１は、送信前データに対するデータの圧縮を行う。次に、暗号化部１６２は、圧縮されたデータの暗号化を行う。暗号化部１６２として第１及び第２の実施形態に係る暗号化装置を用いることができる。最後に、符号化部１６３は、暗号化したデータに対してエラー訂正用の符号化を行い、暗号化送信データとして送信する。
【００７３】
データを受信する場合には、符号化部１６３は、暗号化受信データのエラー訂正を行う。次に、復号化部１６４は、エラー訂正されたデータを復号する。最後に、データ復元部１６５は、データの圧縮を解いて復元データを求める。
【００７４】
なお、実施形態１乃至３に係る暗号化装置は、コンピュータ上で動作するプログラム、及び、ＬＳＩなどのハードウェアによっても実現しうる。また、プログラムは、コンピュータ読み取り可能な記録媒体に記録して提供することもできる。
本発明の全開示（請求の範囲及び図面を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００７５】
１０  暗号化装置
１２  拡大鍵生成部
１３  暗号化部
１４  復号化部
１６  通信装置
１８、２０、８０、１３１  非線形変換部
１９、２１、８１、９０  転置部
３０  データ
３１  分岐
３２〜３５、６０〜６８  排他的論理和
４０、４１  全数データ
１３０、１４０  ｋ系列一般化Ｆｅｉｓｔｅｌ処理部
１３２  奇数系列転置部
１３３  偶数系列転置部
１４１  奇数系列逆転置部
１４２  偶数系列逆転置部
１６１  データ圧縮部
１６２  暗号化部
１６３  符号化部
１６４  復号化部
１６５  データ復元部
【図１】
0005617845.tif 000002
【図２】
0005617845.tif 000003
【図３】
0005617845.tif 000004
【図４】
0005617845.tif 000005
【図５】
0005617845.tif 000006
【図６】
0005617845.tif 000007
【図７】
0005617845.tif 000008
【図８】
0005617845.tif 000009
【図９】
0005617845.tif 000010
【図１０】
0005617845.tif 000011
【図１１】
0005617845.tif 000012
【図１２】
0005617845.tif 000013
【図１３】
0005617845.tif 000014
【図１４】
0005617845.tif 000015
【図１５】
0005617845.tif 000016
【図１６】
0005617845.tif 000017
【図１７】
0005617845.tif 000018