【手続補正書】
【提出日】平成21年7月10日(2009.7.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
暗号処理装置であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行するＳＰ型Ｆ関数を複数ラウンド繰り返すＦｅｉｓｔｅｌ型共通鍵ブロック暗号処理を実行する暗号処理部を有し、
前記暗号処理部は、
データ系列数：ｄをｄ≧２の整数とした拡張Ｆｅｉｓｔｅｌ構造を適用した暗号処理を実行する構成であり、各ラウンドにおけるＦ関数において実行する線形変換処理に、少なくとも２以上の複数の異なる行列を選択的に適用する構成を有し、
前記２以上の複数の異なる行列は、拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数に含まれる線形変換行列に基づくデータ系列対応の最小分岐数中から選択される全データ系列中の最小分岐数が予め定めた値以上となる条件を満足する複数の異なる行列であり、
前記複数の異なる行列を、拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数に繰り返し配置した構成を有することを特徴とする暗号処理装置。
【請求項２】
前記暗号処理部において利用される前記複数の異なる行列は、
拡張Ｆｅｉｓｔｅｌ構造の各データ系列ｓ（ｉ）に入力する連続するｋ個（ただし、ｋは２以上の整数）のＦ関数に含まれる線形変換行列に基づいて算出されるデータ系列対応の最小分岐数［ＢｋＤ（ｓ（ｉ））］中から選択される全データ系列中の最小分岐数［ＢｋＤ］が３以上となる条件を満足する複数の異なる行列であることを特徴とする請求項１に記載の暗号処理装置。
【請求項３】
前記暗号処理部において利用される前記複数の異なる行列は、
拡張Ｆｅｉｓｔｅｌ構造の各データ系列ｓ（ｉ）に入力する連続する２個のＦ関数に含まれる線形変換行列に基づいて算出されるデータ系列対応の最小分岐数［Ｂ２Ｄ（ｓ（ｉ））］中から選択される全データ系列中の最小分岐数［Ｂ２Ｄ］が３以上となる条件を満足する複数の異なる行列であることを特徴とする請求項１に記載の暗号処理装置。
【請求項４】
前記暗号処理部において利用される前記複数の異なる行列は、
拡張Ｆｅｉｓｔｅｌ構造の各データ系列ｓ（ｉ）に入力する連続する２個のＦ関数に含まれる線形変換行列に基づいて算出されるデータ系列対応の最小分岐数［Ｂ２Ｌ（ｓ（ｉ））］中から選択される全データ系列中の最小分岐数［Ｂ２Ｌ］が３以上となる条件を満足する複数の異なる行列であることを特徴とする請求項１に記載の暗号処理装置。
【請求項５】
前記暗号処理部は、
前記複数の異なる行列を、ｎ個（ただし、ｎは２以上の整数）の異なる行列、
Ｍ０，Ｍ１，・・Ｍｎ−１としたとき、
これらの異なる行列Ｍ０，Ｍ１，・・Ｍｎ−１を、拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数に順番に繰り返し配置した構成を有することを特徴とする請求項１に記載の暗号処理装置。
【請求項６】
前記暗号処理部は、
１つのラウンドに１つのＦ関数のみを実行する拡張Ｆｅｉｓｔｅｌ構造を適用した暗号処理を実行する構成であることを特徴とする請求項１〜５いずれかに記載の暗号処理装置。
【請求項７】
前記暗号処理部は、
１つのラウンドに複数のＦ関数を並列に実行する拡張Ｆｅｉｓｔｅｌ構造を適用した暗号処理を実行する構成であることを特徴とする請求項１〜５いずれかに記載の暗号処理装置。
【請求項８】
前記暗号処理部は、
ａ≧２の任意の整数、ｘ≧１の任意の整数としたとき、前記複数の異なる行列による異なる線形変換処理を実行するａ種類のＦ関数を利用したデータ系列数：ｄ＝２ａｘの拡張Ｆｅｓｉｔｅｌ構造を適用した暗号処理を実行する構成であり、
１つのラウンドにおいて、全種類（ａ種類）のＦ関数を均等にｘ個ずつ実行する構成であることを特徴とする請求項１〜５いずれかに記載の暗号処理装置。
【請求項９】
前記暗号処理部は、
１つのラウンドにおいて並列に実行するａｘ個のＦ関数を実行するＦ関数実行部と、
前記Ｆ関数実行部に対するデータ入出力制御を実行する制御部とを備えた構成であることを特徴とする請求項８に記載の暗号処理装置。
【請求項１０】
前記暗号処理部は、
前記複数の異なる行列による異なる線形変換処理を実行する複数のＦ関数実行部と、
前記複数のＦ関数実行部の利用シーケンスを設定に応じて変更する制御部とを備え、
前記制御部は、
（ａ）データ系列数ｄ＝２としたＦｅｉｓｔｅｌ構造による暗号処理、または、
（ｂ１）データ系列数ｄ≧２の任意数とした拡張Ｆｅｉｓｔｅｌ構造であり、各ラウンドにおいて１つのＦ関数の実行のみを許容した暗号処理、または、
（ｂ２）データ系列数ｄ≧２の任意数とした拡張Ｆｅｉｓｔｅｌ構造であり、各ラウンドにおいて複数のＦ関数の並列実行を許容した暗号処理、
上記（ａ），（ｂ１），（ｂ２）のいずれかの暗号処理を選択的に実行する構成であることを特徴とする請求項１〜５いずれかに記載の暗号処理装置。
【請求項１１】
前記制御部は、
暗号化または復号処理の対象となるデータのビット長に応じて、実行する処理形態を選択する構成であることを特徴とする請求項１０に記載の暗号処理装置。
【請求項１２】
暗号処理装置において、暗号処理を実行する暗号処理方法であり、
暗号処理部において、非線形変換処理および線形変換処理を含むデータ変換処理を実行するＳＰ型Ｆ関数を複数ラウンド繰り返すＦｅｉｓｔｅｌ型共通鍵ブロック暗号処理を実行する暗号処理ステップを有し、
前記暗号処理ステップは、
データ系列数：ｄをｄ≧２の整数とした拡張Ｆｅｉｓｔｅｌ構造を適用した暗号処理を実行するステップであり、各ラウンドにおけるＦ関数において実行する線形変換処理に、少なくとも２以上の複数の異なる行列を選択的に適用した演算を実行する演算ステップを有し、
前記演算ステップにおいて適用する複数の異なる行列は、拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数に含まれる線形変換行列に基づくデータ系列対応の最小分岐数中から選択される全データ系列中の最小分岐数が予め定めた値以上となる条件を満足する複数の異なる行列であり、
前記演算ステップは、
拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数において、前記複数の異なる行列に基づく線形変換演算を実行するステップであることを特徴とする暗号処理方法。
【請求項１３】
前記複数の異なる行列は、
拡張Ｆｅｉｓｔｅｌ構造の各データ系列ｓ（ｉ）に入力する連続するｋ個（ただし、ｋは２以上の整数）のＦ関数に含まれる線形変換行列に基づいて算出されるデータ系列対応の最小分岐数［ＢｋＤ（ｓ（ｉ））］中から選択される全データ系列中の最小分岐数［ＢｋＤ］が３以上となる条件を満足する複数の異なる行列であることを特徴とする請求項１２に記載の暗号処理方法。
【請求項１４】
前記複数の異なる行列は、
拡張Ｆｅｉｓｔｅｌ構造の各データ系列ｓ（ｉ）に入力する連続する２個のＦ関数に含まれる線形変換行列に基づいて算出されるデータ系列対応の最小分岐数［Ｂ２Ｄ（ｓ（ｉ））］中から選択される全データ系列中の最小分岐数［Ｂ２Ｄ］が３以上となる条件を満足する複数の異なる行列であることを特徴とする請求項１２に記載の暗号処理方法。
【請求項１５】
前記複数の異なる行列は、
拡張Ｆｅｉｓｔｅｌ構造の各データ系列ｓ（ｉ）に入力する連続する２個のＦ関数に含まれる線形変換行列に基づいて算出されるデータ系列対応の最小分岐数［Ｂ２Ｌ（ｓ（ｉ））］中から選択される全データ系列中の最小分岐数［Ｂ２Ｌ］が３以上となる条件を満足する複数の異なる行列であることを特徴とする請求項１２に記載の暗号処理方法。
【請求項１６】
前記複数の異なる行列を、ｎ個（ただし、ｎは２以上の整数）の異なる行列、
Ｍ０，Ｍ１，・・Ｍｎ−１としたとき、
前記演算ステップは、
拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数において、これらの異なる行列Ｍ０，Ｍ１，・・Ｍｎ−１を順番に繰り返し実行するステップであることを特徴とする請求項１２に記載の暗号処理方法。
【請求項１７】
前記暗号処理ステップは、
１つのラウンドに１つのＦ関数のみを実行する拡張Ｆｅｉｓｔｅｌ構造を適用した暗号処理を実行するステップであることを特徴とする請求項１２〜１６いずれかに記載の暗号処理方法。
【請求項１８】
情報処理装置において暗号処理アルゴリズムを構築する暗号処理アルゴリズム構築方法であり、
情報処理装置における制御部が、データ系列数：ｄをｄ≧２の整数とした拡張Ｆｅｉｓｔｅｌ構造を適用した暗号処理アルゴリズムの構成において、各ラウンドにおけるＦ関数において実行する線形変換処理に適用する少なくとも２以上の複数の異なる行列を決定する行列決定ステップと、
前記制御部が、前記行列決定ステップにおいて決定した複数の異なる行列を、拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数に繰り返し配置する行列設定ステップを有し、
前記行列決定ステップは、
前記２以上の複数の異なる行列として、拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数に含まれる線形変換行列に基づくデータ系列対応の最小分岐数中から選択される全データ系列中の最小分岐数が予め定めた値以上となる条件を満足する複数の異なる行列を適用行列として決定する処理を実行するステップであることを特徴とする暗号処理アルゴリズム構築方法。
【請求項１９】
暗号処理装置において、暗号処理を実行させるコンピュータ・プログラムであり、
暗号処理部において、非線形変換処理および線形変換処理を含むデータ変換処理を実行するＳＰ型Ｆ関数を複数ラウンド繰り返すＦｅｉｓｔｅｌ型共通鍵ブロック暗号処理を実行させる暗号処理ステップを有し、
前記暗号処理ステップは、
データ系列数：ｄをｄ≧２の整数とした拡張Ｆｅｉｓｔｅｌ構造を適用した暗号処理を実行させるステップであり、各ラウンドにおけるＦ関数において実行する線形変換処理に、少なくとも２以上の複数の異なる行列を選択的に適用した演算を実行する演算ステップを含み、
前記演算ステップにおいて適用する複数の異なる行列は、拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数に含まれる線形変換行列に基づくデータ系列対応の最小分岐数中から選択される全データ系列中の最小分岐数が予め定めた値以上となる条件を満足する複数の異なる行列であり、
前記演算ステップは、
拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数において、前記複数の異なる行列に基づく線形変換演算を実行するステップであることを特徴とするコンピュータ・プログラム。
【請求項２０】
情報処理装置において暗号処理アルゴリズムを構築させるコンピュータ・プログラムであり、
情報処理装置における制御部に、データ系列数：ｄをｄ≧２の整数とした拡張Ｆｅｉｓｔｅｌ構造を適用した暗号処理アルゴリズムの構成において、各ラウンドにおけるＦ関数において実行する線形変換処理に適用する少なくとも２以上の複数の異なる行列を決定させる行列決定ステップと、
前記制御部に、前記行列決定ステップにおいて決定した複数の異なる行列を、拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数に繰り返し配置させる行列設定ステップを有し、
前記行列決定ステップは、
前記２以上の複数の異なる行列として、拡張Ｆｅｉｓｔｅｌ構造の各データ系列に入力するＦ関数に含まれる線形変換行列に基づくデータ系列対応の最小分岐数中から選択される全データ系列中の最小分岐数が予め定めた値以上となる条件を満足する複数の異なる行列を適用行列として決定する処理を実行するステップであることを特徴とするコンピュータ・プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】削除
【補正の内容】
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１９５
【補正方法】変更
【補正の内容】
【０１９５】
図１１において、Ｆ関数を識別するための番号は証明をわかりやすくするために新たに導入したものであり、２つの数字を使ってＦ関数の位置を決定している。
Ｆｉ，ｊのｉは、ラウンド数（１＝１，２ラウンド、２＝３，４ラウンド・・）を示し、ｊは、２つのラウンドにおけるＦ関数の位置を示している。なお、ｊが０，２，４，の偶数であれば、先行ラウンドにおけるＦ関数であり、ｊが１，３，５，の奇数であれば、後続ラウンドにおけるＦ関数である。なお、Ｆ関数Ｆｉ，ｊに含まれる線形変換行列を［Ｍｉ，ｊ］と呼ぶものとする。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０２４０
【補正方法】変更
【補正の内容】
【０２４０】
さらに、データ系列数ｄ＝１２の場合は１つのラウンドに存在する６つのＦ関数をＦ１，Ｆ２，Ｆ３各々２つずつの設定とする。また、データ系列数ｄ＝１８の場合は、１つのラウンドに設定する９つのＦ関数について、Ｆ１，Ｆ２，Ｆ３を３つずつの設定とする。これらを一般化して、データ系列数ｄ＝６ｘの場合には、各ラウンドに設定するＦ関数をＦ１，Ｆ２，Ｆ３の各々がｘ個ずつとなるようにする。すなわち、各ラウンドにおいて、異なるＦ関数が均等に利用される構成とする。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０２５８
【補正方法】変更
【補正の内容】
【０２５８】
このような３種類のＦ関数Ｆ１，Ｆ２，Ｆ３を実行する暗号処理装置の構成例を図１９に示す。図１９に示す暗号処理装置２８０は、Ｆ関数Ｆ１を実行する第１Ｆ関数（Ｆ１）専用処理回路２８１と、Ｆ関数Ｆ２を実行する第２Ｆ関数（Ｆ２）専用処理回路２８２と、Ｆ関数Ｆ３を実行する第３Ｆ関数（Ｆ３）専用処理回路２８３と、制御回路２８４、および補助回路２８５から構成される。第１Ｆ関数（Ｆ１）専用処理回路２８１と、第２Ｆ関数（Ｆ２）専用処理回路２８２と、第３Ｆ関数（Ｆ３）専用処理回路２８３とは並列に動作可能な構成である。制御回路２８４は、各処理部に対するデータ入出力制御を行うとともに、Ｆｅｉｓｔｅｌ構造選択処理を実行する。補助回路２８５はＦ関数以外の演算処理などを実行する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０２６１
【補正方法】変更
【補正の内容】
【０２６１】
上述したように、拡散行列切り替え機構（ＤＳＭ）を満足する線形変換行列を実行する複数の異なるＦ関数を決定し、これらの各Ｆ関数を実装して、Ｆ関数を適用した処理シーケンスを変更することで、
（ａ）データ系列数（分割数）ｄ＝２としたＦｅｉｓｔｅｌ構造
（ｂ１）データ系列数（分割数）ｄ≧２の任意数とした拡張Ｆｅｉｓｔｅｌ構造であり、各ラウンドにおいて１つのＦ関数の実行のみを許容したタイプ１、
（ｂ２）データ系列数（分割数）ｄ≧２の任意数とした拡張Ｆｅｉｓｔｅｌ構造であり、各ラウンドにおいて複数のＦ関数の並列実行を許容したタイプ２、
これらのいずれかの構造に基づく暗号処理を選択的に実行する構成が実現され、暗号化処理または復号処理における処理ビット数を変更可能な装置が実現される。