【手続補正書】
【提出日】平成15年7月31日(2003.7.31)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロック暗号方式による暗号化装置であって、
第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す複数の第１の処理手段と、
前記第１の処理手段からの第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２の処理手段とを備え、
前記第１の処理手段の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施す複数の非線形変換処理手段と、前記複数の非線形変換処理手段からの第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施す線形拡散処理手段とを含むものであることを特徴とする暗号化装置。
【請求項２】
前記第２の処理手段は予め選択された最大距離分離行列を用いて第１のデータ幅を持つ入力データから第１のデータ幅を持つ出力データを求めるものであることを特徴とする請求項１に記載の暗号化装置。
【請求項３】
前記最大距離分離行列として全行列要素について下位所定ビットのみ非零であるものを選択することを特徴とする請求項２に記載の暗号化装置。
【請求項４】
前記最大距離分離行列として同一行に属する全行列要素が相異なる値を持つものを選択することを特徴とする請求項２または３に記載の暗号化装置。
【請求項５】
前記第２の処理手段は、前記第１のデータ幅から所定数個おきに１ビットを取りだして連結したデータを入力として最大距離分離行列を用いて出力を求める処理を、該１ビットを取り出す位置を変えたものについてそれぞれ行うものであることを特徴とする請求項２に記載の暗号化装置。
【請求項６】
前記線形拡散処理手段は予め選択された最大距離分離行列を用いて第２のデータ幅を持つ入力データから第２のデータ幅を持つ出力データを求めるものであることを特徴とする請求項１ないし５のいずれか１項に記載の暗号化装置。
【請求項７】
さらに段数に依存する鍵データを生成するための鍵生成手段を備え、
前記鍵生成手段は、前段の出力に非線形変換処理を施したものと、前々段の出力に非線形変換処理を施したものに線形拡散処理を施したものとの排他的論理和を取ったものを当該段の出力とする処理を、必要段数分繰り返し行う手段を含むものであることを特徴とする請求項１に記載の暗号化装置。
【請求項８】
ブロック暗号方式による暗号化方法であって、
第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す第１のステップと、
前記第１のステップにより得られた第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２のステップとを有し、
前記第１のステップにおける非線形変換処理の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施すステップと、このステップにより得られた第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施すステップとを含むものであることを特徴とする暗号化方法。
【請求項９】
第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す第１の機能と、
前記第１の機能により得られた第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２の機能とをコンピュータに実現させるための、ブロック暗号方式による暗号化プログラムを記録したコンピュータ読取り可能な記録媒体であって、
前記第１の機能における非線形変換処理の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施す機能と、この機能により得られた第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施す機能を含むものであることを特徴とする暗号化プログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項１０】
ブロック暗号方式による復号装置であって、
第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す複数の第１の処理手段と、
前記第１の処理手段からの第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２の処理手段とを備え、
前記第１の処理手段の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施す複数の非線形変換処理手段と、前記複数の非線形変換処理手段からの第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施す線形拡散処理手段とを含むものであることを特徴とする復号装置。
【請求項１１】
ブロック暗号方式による復号方法であって、
第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す第１のステップと、
前記第１のステップにより得られた第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２のステップとを有し、
前記第１のステップにおける非線形変換処理の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施すステップと、このステップにより得られた第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施すステップとを含むものであることを特徴とする復号方法。
【請求項１２】
第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す第１の機能と、
前記第１の機能により得られた第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２の機能とをコンピュータに実現させるための、ブロック暗号方式による復号プログラムを記録したコンピュータ読取り可能な記録媒体であって、
前記第１の機能における非線形変換処理の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施す機能と、この機能により得られた第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施す機能を含むものであることを特徴とする復号プログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項１３】
共通鍵ブロック暗号方式による暗号化装置であって、
初段では入力された１２８ビットの平文ブロックデータを、２段目以降では前段での処理が施された１２８ビットのブロックデータを入力とし、該ブロックデータを４分割した４組の３２ビット・データに対してそれぞれ局所的な線形拡散処理および非線形変換処理を施し出力する４つの第１の非線形変換処理部と、これら４つの第１の非線形変換処理部からそれぞれ出力された４組の３２ビット・データを連結した１２８ビットのブロックデータに対して最大距離分離行列を用いて線形拡散処理を施し次段へ出力する第１の拡散処理部とを、１段分の段構成として、該段構成を所定段数分接続し、
最後の前記第１の拡散処理部の後段に、この第１の拡散処理部から出力される１２８ビットのブロックデータを入力とする前記４つの第１の非線形変換処理部を接続し、
この４つの第１の非線形変換処理部の後段に、これら４つの第１の非線形変換処理部からそれぞれ出力された４組の３２ビット・データを連結した１２８ビットのブロックデータに対して１２８ビットの鍵データを加算して１２８ビットの暗号化されたブロックデータとして出力する第１の鍵加算部を接続して構成されるとともに、
前記第１の非線形変換処理部の各々は、与えられた１組の前記３２ビット・データをさらに４分割した４組の８ビット・データに対してそれぞれ８ビットの鍵データを加算する４つの第２の鍵加算部と、各第２の鍵加算部の出力に対してそれぞれ８ビットの入出力変換表を用いて非線形変換を行う４つの第２の非線形変換処理部と、これら４つの第２の非線形変換処理部からそれぞれ出力された４組の８ビット・データを連結した３２ビット・データに対して最大距離分離行列を用いて線形拡散処理を施す第２の拡散処理部と、この第２の拡散処理部の後段にさらに接続された４組の前記第２の鍵加算部および第２の非線形変換処理部とを含むものであることを特徴とする暗号化装置。
【請求項１４】
共通鍵ブロック暗号方式による暗号化装置であって、
初段では入力された６４ビットの平文ブロックデータを、２段目以降では前段での処理が施された６４ビットのブロックデータを入力とし、該ブロックデータを２分割した２組の３２ビット・データに対してそれぞれ局所的な線形拡散処理および非線形変換処理を施し出力する２つの第１の非線形変換処理部と、これら２つの第１の非線形変換処理部からそれぞれ出力された２組の３２ビット・データを連結した６４ビットのブロックデータに対して最大距離分離行列を用いて線形拡散処理を施し次段へ出力する第１の拡散処理部とを、１段分の段構成として、該段構成を所定段数分接続し、
最後の前記第１の拡散処理部の後段に、この第１の拡散処理部から出力される６４ビットのブロックデータを入力とする前記２つの第１の非線形変換処理部を接続し、
この２つの第１の非線形変換処理部の後段に、これら２つの第１の非線形変換処理部からそれぞれ出力された２組の３２ビット・データを連結した６４ビットのブロックデータに対して６４ビットの鍵データを加算して６４ビットの暗号化されたブロックデータとして出力する第１の鍵加算部を接続して構成されるとともに、
前記第１の非線形変換処理部の各々は、与えられた１組の前記３２ビット・データをさらに４分割した４組の８ビット・データに対してそれぞれ８ビットの鍵データを加算する４つの第２の鍵加算部と、各第２の鍵加算部の出力に対してそれぞれ８ビットの入出力変換表を用いて非線形変換を行う４つの第２の非線形変換処理部と、これら４つの第２の非線形変換処理部からそれぞれ出力された４組の８ビット・データを連結した３２ビット・データに対して最大距離分離行列を用いて線形拡散処理を施す第２の拡散処理部と、この第２の拡散処理部の後段にさらに接続された４組の前記第２の鍵加算部および第２の非線形変換処理部とを含むものであることを特徴とする暗号化装置。
【請求項１５】
ブロック暗号方式における最大距離分離行列を利用したデータ拡散処理のために、相対応する入力ワードと最大距離分離行列の要素との乗算を求めるための演算装置であって、
前記入力ワードと前記最大距離分離行列の対応する要素とを、桁溢れを考慮せずに乗算する乗算手段と、
前記入力ワードの上位所定ビットをキーとして、桁溢れを調整するための帰還ワードを検索する検索手段と、
前記乗算手段による乗算結果と、検索された前記帰還ワードとの排他和をとって、桁溢れを帰還した乗算結果を求める排他和手段とを備えたことを特徴とする演算装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
【課題を解決するための手段】
本発明は、ブロック暗号方式による暗号化装置であって、第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す複数の第１の処理手段と、前記第１の処理手段からの第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２の処理手段とを備え、前記第１の処理手段の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施す複数の非線形変換処理手段と、前記複数の非線形変換処理手段からの第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施す線形拡散処理手段とを含むものであることを特徴とする。
好ましくは、前記第２の処理手段は予め選択された最大距離分離行列を用いて第１のデータ幅を持つ入力データから第１のデータ幅を持つ出力データを求めるものであるようにしてもよい。
好ましくは、前記最大距離分離行列として全行列要素について下位所定ビットのみ非零であるものを選択するようにしてもよい。
好ましくは、前記最大距離分離行列として同一行に属する全行列要素が相異なる値を持つものを選択するようにしてもよい。
好ましくは、前記第２の処理手段は、前記第１のデータ幅から所定数個おきに１ビットを取りだして連結したデータを入力として最大距離分離行列を用いて出力を求める処理を、該１ビットを取り出す位置を変えたものについてそれぞれ行うものであるようにしてもよい。
好ましくは、前記線形拡散処理手段は予め選択された最大距離分離行列を用いて第２のデータ幅を持つ入力データから第２のデータ幅を持つ出力データを求めるものであるようにしてもよい。
好ましくは、さらに段数に依存する鍵データを生成するための鍵生成手段を備え、前記鍵生成手段は、前段の出力に非線形変換処理を施したものと、前々段の出力に非線形変換処理を施したものに線形拡散処理を施したものとの排他的論理和を取ったものを当該段の出力とする処理を、必要段数分繰り返し行う手段を含むものであるようにしてもよい。
また、本発明は、ブロック暗号方式による暗号化方法であって、第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す第１のステップと、前記第１のステップにより得られた第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２のステップとを有し、前記第１のステップにおける非線形変換処理の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施すステップと、このステップにより得られた第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施すステップとを含むものであることを特徴とする。
また、本発明は、第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す第１の機能と、前記第１の機能により得られた第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２の機能とをコンピュータに実現させるための、ブロック暗号方式による暗号化プログラムを記録したコンピュータ読取り可能な記録媒体であって、前記第１の機能における非線形変換処理の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施す機能と、この機能により得られた第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施す機能を含むものであることを特徴とする暗号化プログラムを記録したコンピュータ読取り可能な記録媒体である。
また、本発明は、ブロック暗号方式による復号装置であって、第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す複数の第１の処理手段と、前記第１の処理手段からの第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２の処理手段とを備え、前記第１の処理手段の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施す複数の非線形変換処理手段と、前記複数の非線形変換処理手段からの第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施す線形拡散処理手段とを含むものであることを特徴とする復号装置。
また、本発明は、ブロック暗号方式による復号方法であって、第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す第１のステップと、前記第１のステップにより得られた第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２のステップとを有し、前記第１のステップにおける非線形変換処理の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施すステップと、このステップにより得られた第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施すステップとを含むものであることを特徴とする復号方法。
また、本発明は、第１のデータ幅のデータが複数に分割された第２のデータ幅の各データに対してそれぞれ非線形変換処理を施す第１の機能と、前記第１の機能により得られた第２のデータ幅の各データからなる第１のデータ幅のデータに対して線形拡散処理を施す第２の機能とをコンピュータに実現させるための、ブロック暗号方式による復号プログラムを記録したコンピュータ読取り可能な記録媒体であって、前記第１の機能における非線形変換処理の全部または一部は、それぞれ、前記第２のデータ幅のデータがさらに複数に分割された第３のデータ幅の各データに対してそれぞれ非線形変換処理を施す機能と、この機能により得られた第３のデータ幅の各データからなる第２のデータ幅のデータに対して線形拡散処理を施す機能を含むものであることを特徴とする復号プログラムを記録したコンピュータ読取り可能な記録媒体である。
また、本発明は、共通鍵ブロック暗号方式による暗号化装置であって、初段では入力された１２８ビットの平文ブロックデータを、２段目以降では前段での処理が施された１２８ビットのブロックデータを入力とし、該ブロックデータを４分割した４組の３２ビット・データに対してそれぞれ局所的な線形拡散処理および非線形変換処理を施し出力する４つの第１の非線形変換処理部と、これら４つの第１の非線形変換処理部からそれぞれ出力された４組の３２ビット・データを連結した１２８ビットのブロックデータに対して最大距離分離行列を用いて線形拡散処理を施し次段へ出力する第１の拡散処理部とを、１段分の段構成として、該段構成を所定段数分接続し、最後の前記第１の拡散処理部の後段に、この第１の拡散処理部から出力される１２８ビットのブロックデータを入力とする前記４つの第１の非線形変換処理部を接続し、この４つの第１の非線形変換処理部の後段に、これら４つの第１の非線形変換処理部からそれぞれ出力された４組の３２ビット・データを連結した１２８ビットのブロックデータに対して１２８ビットの鍵データを加算して１２８ビットの暗号化されたブロックデータとして出力する第１の鍵加算部を接続して構成されるとともに、前記第１の非線形変換処理部の各々は、与えられた１組の前記３２ビット・データをさらに４分割した４組の８ビット・データに対してそれぞれ８ビットの鍵データを加算する４つの第２の鍵加算部と、各第２の鍵加算部の出力に対してそれぞれ８ビットの入出力変換表を用いて非線形変換を行う４つの第２の非線形変換処理部と、これら４つの第２の非線形変換処理部からそれぞれ出力された４組の８ビット・データを連結した３２ビット・データに対して最大距離分離行列を用いて線形拡散処理を施す第２の拡散処理部と、この第２の拡散処理部の後段にさらに接続された４組の前記第２の鍵加算部および第２の非線形変換処理部とを含むものであることを特徴とする。
また、本発明は、共通鍵ブロック暗号方式による暗号化装置であって、初段では入力された６４ビットの平文ブロックデータを、２段目以降では前段での処理が施された６４ビットのブロックデータを入力とし、該ブロックデータを２分割した２組の３２ビット・データに対してそれぞれ局所的な線形拡散処理および非線形変換処理を施し出力する２つの第１の非線形変換処理部と、これら２つの第１の非線形変換処理部からそれぞれ出力された２組の３２ビット・データを連結した６４ビットのブロックデータに対して最大距離分離行列を用いて線形拡散処理を施し次段へ出力する第１の拡散処理部とを、１段分の段構成として、該段構成を所定段数分接続し、最後の前記第１の拡散処理部の後段に、この第１の拡散処理部から出力される６４ビットのブロックデータを入力とする前記２つの第１の非線形変換処理部を接続し、この２つの第１の非線形変換処理部の後段に、これら２つの第１の非線形変換処理部からそれぞれ出力された２組の３２ビット・データを連結した６４ビットのブロックデータに対して６４ビットの鍵データを加算して６４ビットの暗号化されたブロックデータとして出力する第１の鍵加算部を接続して構成されるとともに、前記第１の非線形変換処理部の各々は、与えられた１組の前記３２ビット・データをさらに４分割した４組の８ビット・データに対してそれぞれ８ビットの鍵データを加算する４つの第２の鍵加算部と、各第２の鍵加算部の出力に対してそれぞれ８ビットの入出力変換表を用いて非線形変換を行う４つの第２の非線形変換処理部と、これら４つの第２の非線形変換処理部からそれぞれ出力された４組の８ビット・データを連結した３２ビット・データに対して最大距離分離行列を用いて線形拡散処理を施す第２の拡散処理部と、この第２の拡散処理部の後段にさらに接続された４組の前記第２の鍵加算部および第２の非線形変換処理部とを含むものであることを特徴とする。
また、本発明は、ブロック暗号方式における最大距離分離行列を利用したデータ拡散処理のために、相対応する入力ワードと最大距離分離行列の要素との乗算を求めるための演算装置であって、前記入力ワードと前記最大距離分離行列の対応する要素とを、桁溢れを考慮せずに乗算する乗算手段と、前記入力ワードの上位所定ビットをキーとして、桁溢れを調整するための帰還ワードを検索する検索手段と、前記乗算手段による乗算結果と、検索された前記帰還ワードとの排他和をとって、桁溢れを帰還した乗算結果を求める排他和手段とを備えたことを特徴とする。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】削除
【補正の内容】
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】削除
【補正の内容】
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】削除
【補正の内容】
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】削除
【補正の内容】
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】削除
【補正の内容】
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】削除
【補正の内容】
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】削除
【補正の内容】
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】削除
【補正の内容】
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】削除
【補正の内容】