【手続補正書】
【提出日】平成22年4月26日(2010.4.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
共通鍵ブロック暗号処理を実行する暗号処理装置であり、
秘密鍵Ｋに基づいて生成する異なるデータ構成を有する第１中間鍵ＫＡ、および第２中間鍵ＫＢを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なうデータ暗号化部を有し、
前記データ暗号化部は、
ラウンド数ｒのラウンド関数を実行するラウンド関数実行部であり、前記第１中間鍵ＫＡに基づいて生成されるラウンド鍵ＫＡｉ（ただしｉは１〜ｒの整数）のみを入力鍵としてラウンド関数を実行するラウンド関数実行部と、
前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第２中間鍵ＫＢに基づいて生成される鍵ＫＢｉ（ただしｉは０〜ｒ＋１の整数）との排他的論理和演算を実行する排他的論理和演算部と、
を有する構成であることを特徴とする暗号処理装置。
【請求項２】
前記データ暗号化部は、
前記第１中間鍵ＫＡに基づいてラウンド鍵ＫＡｉの生成処理を実行する第１鍵生成部と、
前記第１鍵生成部の生成するラウンド鍵ＫＡｉのみを入力鍵としてラウンド関数を実行するラウンド関数実行部と、
前記入力データまたは前記ラウンド関数実行部からの出力データのいずれかを選択出力する第１セレクタと、
前記第２中間鍵ＫＢに基づいて鍵ＫＢｉの生成処理を実行する第２鍵生成部と、
前記第２鍵生成部の生成する鍵ＫＢｉと、値０を含む複数データの選択出力を実行する第２セレクタと、
前記第１セレクタの出力データの構成データと、前記第２セレクタの出力データとの排他的論理和演算を実行する排他的論理和演算部と、
を有する構成であることを特徴とする請求項１に記載の暗号処理装置。
【請求項３】
前記データ暗号化部は、
前記第２鍵生成部の生成する鍵ＫＢｉを入力し、ビット位置入れ替え処理を実行する入れ替え処理部を有し、
前記第２セレクタは、
前記第２鍵生成部の生成する鍵ＫＢｉと、値０と、前記入れ替え処理部の生成データのいずれかを選択出力する構成であることを特徴とする請求項２に記載の暗号処理装置。
【請求項４】
前記第１鍵生成部は、
前記第１中間鍵ＫＡに基づいて、ラウンド１〜ｒの各ラウンド関数に各々入力するｒ個のラウンド鍵ＫＡ１〜ＫＡｒを生成し、
前記ラウンド関数実行部は、
ラウンド１〜ｒの各ラウンド関数に、前記第１中間鍵ＫＡに基づいて生成されるｒ個のラウンド鍵ＫＡ１〜ＫＡｒを順次入力してラウンド関数を実行し、
前記第２鍵生成部は、
前記第２中間鍵ＫＢに基づいて、前記ラウンド関数の開始前において適用する初期鍵ＫＢ０と、ｒラウンドの最終ラウンド関数の開始後において適用する最終鍵ＫＢｒ＋１と、連続２ラウンドおきのラウンドに対応する鍵ＫＢ３，ＫＢ４，・・・ＫＢｒ−３，ＫＢｒ−２を生成し、
前記排他的論理和演算部は、
前記入力データ、または前記ラウンド関数実行部からの出力データの構成データと、前記第２中間鍵ＫＢに基づいて生成される鍵ＫＢ０，ＫＢ３，ＫＢ４，・・・ＫＢｒ−３，ＫＢｒ−２，ＫＢｒ＋１から選択した鍵ＫＢｉとの排他的論理和演算を実行する構成であることを特徴とする請求項２に記載の暗号処理装置。
【請求項５】
前記排他的論理和演算部は、
前記第２中間鍵ＫＢに基づいて生成される鍵ＫＢ３，ＫＢ４，・・・ＫＢｒ−３，ＫＢｒ−２から選択した同一鍵を、異なるラウンドのラウンド関数実行部からの出力データに対して２回繰り返して利用した排他的論理和演算を実行する構成であることを特徴とする請求項４に記載の暗号処理装置。
【請求項６】
前記排他的論理和演算部は、
前記鍵ＫＢｉから選択した同一鍵を２回繰り返して利用した排他的論理和演算処理において、
４つの連続するラウンド関数に対する入力ラウンド鍵を下記の設定とした場合と等価な設定、すなわち、４連続ラウンドｐ〜ｐ＋３に対して、
（ａ）ｐラウンドにラウンド鍵ＫＡｐを入力、
（ｂ）ｐ＋１ラウンドにラウンド鍵ＫＡｐ＋１を入力、
（ｃ）ｐ＋２ラウンドにラウンド鍵［ＫＡｐ＋２（ＥＸＯＲ）ＫＢｐ＋２］を入力、
（ｄ）ｐ＋３ラウンドにラウンド鍵［ＫＡｐ＋３（ＥＸＯＲ）ＫＢｐ＋３］を入力、
上記（ａ）〜（ｄ）のラウンド鍵の入力処理と等価な処理になるように前記鍵ＫＢｉから選択した同一鍵を２回繰り返して利用した排他的論理和演算処理を実行する構成であることを特徴とする請求項５に記載の暗号処理装置。
【請求項７】
前記排他的論理和演算部は、
前記入力データ、または前記ラウンド関数実行部からの出力データを複数に分割した分割データの一部の分割データに対して、前記第２中間鍵ＫＢに基づいて生成される鍵ＫＢｉまたは鍵ＫＢｉの分割鍵との排他的論理和演算を実行する構成であることを特徴とする請求項１〜６いずれかに記載の暗号処理装置。
【請求項８】
前記ラウンド関数実行部は、
入力データをｎビットとしたとき、ｎ／ｋビット単位（ただしｋ≧２）の分割データを入力する構成であり、ラウンド関数実行部に対する入力データと前記ラウンド鍵ＫＡｉとの排他的論理和演算を実行し、さらに非線形変換および線形変換を実行して出力データを生成する構成であることを特徴とする請求項１〜７いずれかに記載の暗号処理装置。
【請求項９】
前記データ暗号化部は、Ｆｅｉｓｔｅｌ構造に従った暗号化処理を実行する構成であることを特徴とする請求項１〜８いずれかに記載の暗号処理装置。
【請求項１０】
前記第１中間鍵ＫＡは、前記秘密鍵Ｋに対する非線形変換処理により生成される鍵データであり、
前記第２中間鍵ＫＢは、
（ａ）秘密鍵Ｋに対して、第１中間鍵ＫＡと異なる非線形変換を適用したデータ、
（ｂ）秘密鍵Ｋに対して線形変換を適用したデータ、
（ｃ）秘密鍵Ｋそのもの
上記（ａ）〜（ｃ）のいずれかによって構成されるデータであることを特徴とする請求項１〜９いずれかに記載の暗号処理装置。
【請求項１１】
暗号処理装置において、共通鍵ブロック暗号処理を実行する暗号処理方法であり、
データ暗号化部が、秘密鍵Ｋに基づいて生成する異なるデータ構成を有する第１中間鍵ＫＡと第２中間鍵ＫＢを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なうデータ暗号化ステップを有し、
前記データ暗号化ステップは、
ラウンド関数実行部が、前記第１中間鍵ＫＡに基づいて生成されるラウンド鍵ＫＡｉ（ただしｉは１〜ｒの整数）のみを入力鍵としてラウンド数ｒのラウンド関数を実行するラウンド関数実行ステップと、
排他的論理和演算部が、前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第２中間鍵ＫＢに基づいて生成される鍵ＫＢｉ（ただしｉは０〜ｒ＋１の整数）との排他的論理和演算を実行する排他的論理和演算ステップと、
を有することを特徴とする暗号処理方法。
【請求項１２】
前記データ暗号化ステップは、
第１鍵生成部が、前記第１中間鍵ＫＡに基づいてラウンド鍵ＫＡｉの生成処理を実行する第１鍵生成ステップと、
ラウンド関数実行部が、前記第１鍵生成部の生成するラウンド鍵ＫＡｉのみを入力鍵としてラウンド関数を実行するラウンド関数実行ステップと、
第１セレクタが、前記入力データまたは前記ラウンド関数実行部からの出力データのいずれかを選択出力する第１データ選択ステップと、
第２鍵生成部が、前記第２中間鍵ＫＢに基づいて鍵ＫＢｉの生成処理を実行する第２鍵生成ステップと、
第２セレクタが、前記第２鍵生成部の生成する鍵ＫＢｉと、値０を含む複数データの選択出力を実行する第２データ選択ステップと、
排他的論理和演算部が、前記第１セレクタの出力データの構成データと、前記第２セレクタの出力データとの排他的論理和演算を実行する排他的論理和演算ステップと、
を有することを特徴とする請求項１１に記載の暗号処理方法。
【請求項１３】
前記データ暗号化ステップは、さらに、
入れ替え処理部が、前記第２鍵生成部の生成する鍵ＫＢｉを入力し、ビット位置入れ替え処理を実行する入れ替え処理ステップを有し、
前記第２データ選択ステップは、
前記第２鍵生成部の生成する鍵ＫＢｉと、値０と、前記入れ替え処理部の生成データのいずれかを選択出力するステップであることを特徴とする請求項１２に記載の暗号処理方法。
【請求項１４】
前記第１鍵生成ステップは、
前記第１中間鍵ＫＡに基づいて、ラウンド１〜ｒの各ラウンド関数に各々入力するｒ個のラウンド鍵ＫＡ１〜ＫＡｒを生成し、
前記ラウンド関数実行ステップは、
ラウンド１〜ｒの各ラウンド関数に、前記第１中間鍵ＫＡに基づいて生成されるｒ個のラウンド鍵ＫＡ１〜ＫＡｒを順次入力してラウンド関数を実行し、
前記第２鍵生成ステップは、
前記第２中間鍵ＫＢに基づいて、前記ラウンド関数の開始前において適用する初期鍵ＫＢ０と、ｒラウンドの最終ラウンド関数の開始後において適用する最終鍵ＫＢｒ＋１と、連続２ラウンドおきのラウンドに対応する鍵ＫＢ３，ＫＢ４，・・・ＫＢｒ−３，ＫＢｒ−２を生成し、
前記排他的論理和演算ステップは、
前記入力データ、または前記ラウンド関数実行部からの出力データの構成データと、前記第２中間鍵ＫＢに基づいて生成される鍵ＫＢ０，ＫＢ３，ＫＢ４，・・・ＫＢｒ−３，ＫＢｒ−２，ＫＢｒ＋１から選択した鍵ＫＢｉとの排他的論理和演算を実行するステップであることを特徴とする請求項１２に記載の暗号処理方法。
【請求項１５】
前記排他的論理和演算ステップは、
前記第２中間鍵ＫＢに基づいて生成される鍵ＫＢ３，ＫＢ４，・・・ＫＢｒ−３，ＫＢｒ−２から選択した同一鍵を、異なるラウンドのラウンド関数実行部からの出力データに対して２回繰り返して利用した排他的論理和演算を実行するステップであることを特徴とする請求項１４に記載の暗号処理方法。
【請求項１６】
前記排他的論理和演算ステップは、
前記鍵ＫＢｉから選択した同一鍵を２回繰り返して利用した排他的論理和演算処理において、
４つの連続するラウンド関数に対する入力ラウンド鍵を下記の設定とした場合と等価な設定、すなわち、４連続ラウンドｐ〜ｐ＋３に対して、
（ａ）ｐラウンドにラウンド鍵ＫＡｐを入力、
（ｂ）ｐ＋１ラウンドにラウンド鍵ＫＡｐ＋１を入力、
（ｃ）ｐ＋２ラウンドにラウンド鍵［ＫＡｐ＋２（ＥＸＯＲ）ＫＢｐ＋２］を入力、
（ｄ）ｐ＋３ラウンドにラウンド鍵［ＫＡｐ＋３（ＥＸＯＲ）ＫＢｐ＋３］を入力、
上記（ａ）〜（ｄ）のラウンド鍵の入力処理と等価な処理になるように前記鍵ＫＢｉから選択した同一鍵を２回繰り返して利用した排他的論理和演算処理を実行するステップであることを特徴とする請求項１５に記載の暗号処理方法。
【請求項１７】
前記排他的論理和演算ステップは、
前記入力データ、または前記ラウンド関数実行部からの出力データを複数に分割した分割データの一部の分割データに対して、前記第２中間鍵ＫＢに基づいて生成される鍵ＫＢｉまたは鍵ＫＢｉの分割鍵との排他的論理和演算を実行するステップであることを特徴とする請求項１１〜１６いずれかに記載の暗号処理方法。
【請求項１８】
前記ラウンド関数実行ステップは、
入力データをｎビットとしたとき、ｎ／ｋビット単位（ただしｋ≧２）の分割データを入力し、ラウンド関数実行部に対する入力データと前記ラウンド鍵ＫＡｉとの排他的論理和演算を実行し、さらに非線形変換および線形変換を実行して出力データを生成するステップであることを特徴とする請求項１１〜１７いずれかに記載の暗号処理方法。
【請求項１９】
前記第１中間鍵ＫＡは、前記秘密鍵Ｋに対する非線形変換処理により生成される鍵データであり、
前記第２中間鍵ＫＢは、
（ａ）秘密鍵Ｋに対して、第１中間鍵ＫＡと異なる非線形変換を適用したデータ、
（ｂ）秘密鍵Ｋに対して線形変換を適用したデータ、
（ｃ）秘密鍵Ｋそのもの
上記（ａ）〜（ｃ）のいずれかによって構成されるデータであることを特徴とする請求項１１〜１８いずれかに記載の暗号処理方法。
【請求項２０】
暗号処理装置において、共通鍵ブロック暗号処理を実行させるコンピュータ・プログラムであり、
データ暗号化部に、秘密鍵Ｋに基づいて生成する異なるデータ構成を有する第１中間鍵ＫＡと第２中間鍵ＫＢを適用して、複数のラウンド関数を繰り返し実行して入力データのデータ変換処理を行なわせるデータ暗号化ステップを有し、
前記データ暗号化ステップは、
ラウンド関数実行部に、前記第１中間鍵ＫＡに基づいて生成されるラウンド鍵ＫＡｉ（ただしｉは１〜ｒの整数）のみを入力鍵としてラウンド関数を実行させるラウンド関数実行ステップと、
排他的論理和演算部に、前記入力データ、または前記ラウンド関数実行部からの出力データの構成データに対して前記第２中間鍵ＫＢに基づいて生成される鍵ＫＢｉ（ただしｉは０〜ｒ＋１の整数）との排他的論理和演算を実行させる排他的論理和演算ステップと、
を含むことを特徴とするコンピュータ・プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７５
【補正方法】削除
【補正の内容】