(57)【特許請求の範囲】
【請求項１】
暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、前記第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、前記第１のブロックと、を出力する第１のフェイステル型ハッシュ手段と、
前記単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化手段と、
前記単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成手段と、
前記中間乱数と、前記第１のブロックと、を加算し、加算結果を出力する加算手段と、
前記加算結果をハッシュ関数により圧縮し、該圧縮した加算結果と、前記単位ブロック中間暗号文と、を加算し、第２の加算結果を生成し、該生成した第２の加算結果と、前記加算結果と、を合わせた出力結果を出力する第２のフェイステル型ハッシュ手段と、
前記出力結果を暗号文として出力する暗号文出力手段と、
を有することを特徴とする共通鍵ブロック暗号化装置。
【請求項２】
暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、前記第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、前記第１のブロックと、を出力する第１のフェイステル型ハッシュ手段と、
前記単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化手段と、
前記単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成手段と、
前記中間乱数と、前記第１のブロックと、を加算し、加算結果を出力する加算手段と、
前記加算結果と、前記単位ブロック中間暗号文と、を連結し暗号文として出力する暗号文出力手段と、
を有することを特徴とする共通鍵ブロック暗号化装置。
【請求項３】
前記単位ブロック暗号化手段は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成手段は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードに対し、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項１記載の共通鍵ブロック暗号化装置。
【請求項４】
前記単位ブロック暗号化手段は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成手段は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードに対し、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項１記載の共通鍵ブロック暗号化装置。
【請求項５】
前記単位ブロック暗号化手段は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成手段は、前記ブロック暗号による修正カウンターモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項１記載の共通鍵ブロック暗号化装置。
【請求項６】
前記単位ブロック暗号化手段は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成手段は、前記ブロック暗号による修正ＯＦＢモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項１記載の共通鍵ブロック暗号化装置。
【請求項７】
前記単位ブロック暗号化手段は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成手段は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードの最初の暗号化処理を省略したモードに、前記単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して前記中間乱数を生成することを特徴とする請求項２記載の共通鍵ブロック暗号化装置。
【請求項８】
前記単位ブロック暗号化手段は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成手段は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードの最初の暗号化処理を省略したモードに、前記単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して前記中間乱数を生成することを特徴とする請求項２記載の共通鍵ブロック暗号化装置。
【請求項９】
前記単位ブロック暗号化手段は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成手段は、前記ブロック暗号による修正カウンターモードの最初の暗号化処理を省いたモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項２記載の共通鍵ブロック暗号化装置。
【請求項１０】
前記単位ブロック暗号化手段は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成手段は、前記ブロック暗号による修正ＯＦＢモードの最初の暗号化処理を省いたモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項２記載の共通鍵ブロック暗号化装置。
【請求項１１】
前記単位ブロック暗号化手段は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成手段は、初期ベクトルを付加的な入力として受け付けるストリーム暗号へ、前記単位ブロック中間暗号文を初期ベクトルとして入力し、前記中間乱数を生成することを特徴とする請求項１または２記載の共通鍵ブロック暗号化装置。
【請求項１２】
情報処理装置において行う共通鍵ブロック暗号化方法であって、
暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、前記第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、前記第１のブロックと、を出力する第１のフェイステル型ハッシュ工程と、
前記単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化工程と、
前記単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成工程と、
前記中間乱数と、前記第１のブロックと、を加算し、加算結果を出力する加算工程と、  前記加算結果をハッシュ関数により圧縮し、該圧縮した加算結果と、前記単位ブロック中間暗号文と、を加算し、第２の加算結果を生成し、該生成した第２の加算結果と、前記加算結果と、を出力する第２のフェイステル型ハッシュ工程と、
前記第２の加算結果と、前記加算結果と、を基に暗号文として出力する暗号文出力工程と、
を、前記情報処理装置が行うことを特徴とする共通鍵ブロック暗号化方法。
【請求項１３】
情報処理装置において行う共通鍵ブロック暗号化方法であって、
暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、前記第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、前記第１のブロックと、を出力する第１のフェイステル型ハッシュ工程と、
前記単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化工程と、
前記単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成工程と、
前記中間乱数と、前記第１のブロックと、を加算し、加算結果を出力する加算工程と、  前記加算結果と、前記単位ブロック中間暗号文と、を連結し暗号文として出力する暗号文出力工程と、
を、前記情報処理装置が行うことを特徴とする共通鍵ブロック暗号化方法。
【請求項１４】
前記単位ブロック暗号化工程は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成工程は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードに対し、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項１２記載の共通鍵ブロック暗号化方法。
【請求項１５】
前記単位ブロック暗号化工程は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成工程は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードに対し、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項１２記載の共通鍵ブロック暗号化方法。
【請求項１６】
前記単位ブロック暗号化工程は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成工程は、前記ブロック暗号による修正カウンターモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項１２記載の共通鍵ブロック暗号化方法。
【請求項１７】
前記単位ブロック暗号化工程は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成工程は、前記ブロック暗号による修正ＯＦＢモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項１２記載の共通鍵ブロック暗号化方法。
【請求項１８】
前記単位ブロック暗号化工程は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成工程は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードの最初の暗号化処理を省略したモードに、前記単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して前記中間乱数を生成することを特徴とする請求項１３記載の共通鍵ブロック暗号化方法。
【請求項１９】
前記単位ブロック暗号化工程は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成工程は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードの最初の暗号化処理を省略したモードに、前記単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して前記中間乱数を生成することを特徴とする請求項１３記載の共通鍵ブロック暗号化方法。
【請求項２０】
前記単位ブロック暗号化工程は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成工程は、前記ブロック暗号による修正カウンターモードの最初の暗号化処理を省いたモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項１３記載の共通鍵ブロック暗号化方法。
【請求項２１】
前記単位ブロック暗号化工程は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成工程は、前記ブロック暗号による修正ＯＦＢモードの最初の暗号化処理を省いたモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項１３記載の共通鍵ブロック暗号化方法。
【請求項２２】
前記単位ブロック暗号化工程は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成工程は、初期ベクトルを付加的な入力として受け付けるストリーム暗号へ、前記単位ブロック中間暗号文を初期ベクトルとして入力し、前記中間乱数を生成することを特徴とする請求項１２または１３記載の共通鍵ブロック暗号化方法。
【請求項２３】
情報処理装置において実行させる共通鍵ブロック暗号化プログラムであって、
暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、前記第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、前記第１のブロックと、を出力する第１のフェイステル型ハッシュ処理と、
前記単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化処理と、
前記単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成処理と、
前記中間乱数と、前記第１のブロックと、を加算し、加算結果を出力する加算処理と、  前記加算結果をハッシュ関数により圧縮し、該圧縮した加算結果と、前記単位ブロック中間暗号文と、を加算し、第２の加算結果を生成し、該生成した第２の加算結果と、前記加算結果と、を出力する第２のフェイステル型ハッシュ処理と、
前記第２の加算結果と、前記加算結果と、を基に暗号文として出力する暗号文出力処理と、
を、前記情報処理装置において実行させることを特徴とする共通鍵ブロック暗号化プログラム。
【請求項２４】
情報処理装置において実行させる共通鍵ブロック暗号化プログラムであって、
暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、前記第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、前記第１のブロックと、を出力する第１のフェイステル型ハッシュ処理と、
前記単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化処理と、
前記単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成処理と、
前記中間乱数と、前記第１のブロックと、を加算し、加算結果を出力する加算処理と、  前記加算結果と、前記単位ブロック中間暗号文と、を連結し暗号文として出力する暗号文出力処理と、
を、前記情報処理装置において実行させることを特徴とする共通鍵ブロック暗号化プログラム。
【請求項２５】
前記単位ブロック暗号化処理は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成処理は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードに対し、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項２３記載の共通鍵ブロック暗号化プログラム。
【請求項２６】
前記単位ブロック暗号化処理は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成処理は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードに対し、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項２３記載の共通鍵ブロック暗号化プログラム。
【請求項２７】
前記単位ブロック暗号化処理は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成処理は、前記ブロック暗号による修正カウンターモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項２３記載の共通鍵ブロック暗号化プログラム。
【請求項２８】
前記単位ブロック暗号化処理は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成処理は、前記ブロック暗号による修正ＯＦＢモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項２３記載の共通鍵ブロック暗号化プログラム。
【請求項２９】
前記単位ブロック暗号化処理は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成処理は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードの最初の暗号化処理を省略したモードに、前記単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して前記中間乱数を生成することを特徴とする請求項２４記載の共通鍵ブロック暗号化プログラム。
【請求項３０】
前記単位ブロック暗号化処理は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成処理は、前記ブロック暗号と、前記ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードの最初の暗号化処理を省略したモードに、前記単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して前記中間乱数を生成することを特徴とする請求項２４記載の共通鍵ブロック暗号化プログラム。
【請求項３１】
前記単位ブロック暗号化処理は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成処理は、前記ブロック暗号による修正カウンターモードの最初の暗号化処理を省いたモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項２４記載の共通鍵ブロック暗号化プログラム。
【請求項３２】
前記単位ブロック暗号化処理は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成処理は、前記ブロック暗号による修正ＯＦＢモードの最初の暗号化処理を省いたモードに、前記単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して前記中間乱数を生成することを特徴とする請求項２４記載の共通鍵ブロック暗号化プログラム。
【請求項３３】
前記単位ブロック暗号化処理は、ブロック暗号を用いて前記単位ブロック中間文を暗号化し、前記単位ブロック中間暗号文を生成し、
前記疑似乱数生成処理は、初期ベクトルを付加的な入力として受け付けるストリーム暗号へ、前記単位ブロック中間暗号文を初期ベクトルとして入力し、前記中間乱数を生成することを特徴とする請求項２３または２４記載の共通鍵ブロック暗号化プログラム。
【請求項３４】
平分入力手段から平文を受けて２分割するか、又は、前記平分入力手段側で前記平文を２分割してなる、第１及び第２のブロックに関して、前記第１のブロックをハッシュ関数に入力し第１のハッシュ値を計算する手段と、前記第１のハッシュ値と前記第２のブロックとを加算し加算結果を単位ブロック中間文として出力する手段と、を含む第１のフェイステル型ハッシュ手段と、
前記第１のフェイステル型ハッシュ手段から出力される前記単位ブロック中間文を受けて暗号化し、前記暗号化した単位ブロック中間文を単位ブロック中間暗号文として出力する単位ブロック暗号化手段と、
前記単位ブロック暗号化手段から出力される前記単位ブロック中間暗号文を受け、前記単位ブロック中間暗号文に基づき、中間乱数を生成して出力する擬似乱数生成手段と、
前記擬似乱数生成手段から出力される前記中間乱数と、前記第１のフェイステル型ハッシュ手段のハッシュ関数に入力する前の前記第１のブロックとを受け、前記中間乱数と前記第１のブロックとを加算し加算結果を出力する加算手段と、
前記加算手段から出力される、前記中間乱数と前記第１のブロックとの加算結果を受け前記加算結果をハッシュ関数に入力し第２のハッシュ値を計算する手段と、前記第２のハッシュ値と前記単位ブロック暗号化手段から出力される前記単位ブロック中間暗号文と受けこれらを加算し加算結果を出力する手段と、前記第２のハッシュ値と前記単位ブロック中間暗号文との加算結果と、前記加算手段から出力される、前記中間乱数と前記第１のブロックとの加算結果とを加算し加算結果を暗号文として出力する手段と、を含む第２のフェイステル型ハッシュ手段と、
前記第２のフェイステル型ハッシュ手段から出力された暗号文を出力する暗号文出力手段と、
を含む、ことを特徴とする共通鍵ブロック暗号化装置。
【請求項３５】
平分入力手段から平文を受けて２分割するか、又は、前記平分入力手段側で前記平文を２分割してなる、第１及び第２のブロックに関して、前記第１のブロックをハッシュ関数に入力し第１のハッシュ値を計算する手段と、前記第１のハッシュ値と前記第２のブロックとを加算し加算結果を単位ブロック中間文として出力する手段と、を含む第１のフェイステル型ハッシュ手段と、
前記第１のフェイステル型ハッシュ手段から出力される前記単位ブロック中間文を受けて暗号化し、前記暗号化した単位ブロック中間文を単位ブロック中間暗号文として出力する単位ブロック暗号化手段と、
前記単位ブロック暗号化手段から出力される前記単位ブロック中間暗号文を受け、前記単位ブロック中間暗号文に基づき、中間乱数を生成して出力する擬似乱数生成手段と、
前記擬似乱数生成手段から出力される前記中間乱数と、前記第１のフェイステル型ハッシュ手段のハッシュ関数に入力する前の前記第１のブロックとを受け、前記中間乱数と前記第１のブロックとを加算し加算結果を出力する加算手段と、
前記加算手段から出力される、前記中間乱数と前記第１のブロックとの加算結果と、前記単位ブロック暗号化手段から出力される前記単位ブロック中間暗号文とを受け、これらを連結したものを暗号文として出力する暗号文出力手段と、
を含む、ことを特徴とする共通鍵ブロック暗号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラムに関し、特に、安全性の高い暗号処理と、高速な暗号処理と、の組み合せを用いて、大きなブロックサイズに対するブロック暗号を行う共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラムに関するものである。
【背景技術】
【０００２】
近年、ブロック暗号やハッシュ関数などの暗号処理を暗号部品とし、新たな暗号を構成するアプローチが数多く知られている。【０００３】
例えば、ファイル暗号では、暗号化データのセクタ単位での処理を容易とするために、標準的なブロックサイズ（１２８ｂｉｔなど）のブロック暗号を用いて、セクタのサイズに対応した、より大きなブロックサイズ（５１２ｂｉｔなど）のブロック暗号を構成する研究が行われている。【０００４】
通常、このような暗号部品の組み合せは、該暗号部品の選択平文攻撃（Chosen Plain text Attack;CPA）への安全性が、該暗号部品により新たに構成される暗号の十分な安全性を確保するために必要とされてきた。なお、新たに構成される暗号の十分な安全性とは、新たに構成される暗号がブロック暗号の場合には、選択平文攻撃への安全性、もしくは、選択平文／暗号文攻撃への安全性を示し、新たに構成される暗号がストリーム暗号の場合には、（初期ベクトルを攻撃者が選択できるというモデルのもとでの）選択平文攻撃への安全性を示している。【０００５】
なお、選択平文攻撃に安全な暗号部品のみを用いた方法の場合には、新たに構成される暗号のスループット（単位時間当たりの処理量）が、暗号部品のスループットを上回ることはできない。【０００６】
これに対し、選択平文攻撃に安全な暗号部品のみを用いるのではなく、選択平文攻撃に安全な暗号部品と既知平文攻撃(Known Plain text Attack;KPA)に安全な暗号部品とを組み合わせる方法がある（例えば、特許文献１、非特許文献１参照）。【０００７】
なお、上記特許文献１、上記非特許文献１は、ブロック暗号の出力を、ハッシュ関数やストリーム暗号で拡大することによりストリーム暗号を構成するものである。なお、上記特許文献１には、選択平文攻撃に安全なブロック暗号と、既知平文攻撃に安全なハッシュ関数やストリーム暗号と、を用いれば、新たに構成されるストリーム暗号は安全である旨が開示されている。【０００８】
既知平文攻撃は、選択平文攻撃より弱いクラスの攻撃である。既知平文攻撃に安全な暗号部品は、安全性への要求が弱いため、選択平文攻撃に安全な暗号部品よりも高速に動作することが期待できる。さらに、上記特許文献１の手法において、選択平文攻撃に安全なブロック暗号と、既知平文攻撃に安全なハッシュ関数やストリーム暗号と、を用いれば、新たに構成される暗号のスループットを、既知平文攻撃に安全な暗号部品のスループットとほぼ同等にすることが可能となる。【０００９】
なお、選択平文攻撃に対して安全な暗号部品をＰ１、既知平文攻撃に対して安全な暗号部品をＰ２とする。【００１０】
また、選択平文攻撃に対して安全な暗号部品Ｐ１の鍵をＫ１とし、既知平文攻撃に対して安全な暗号部品Ｐ２の互いに独立なｔ個の鍵（ｔは、任意の正の整数）をそれぞれＫ２_１，Ｋ２_２，...,Ｋ２_ｔとする。【００１１】
また、暗号Ｐｉ（ｉは１または２）で鍵Ｋを用いて平文ｍを暗号化するとき、ｍの暗号文をＰｉ［ｋ］（ｍ）で表すとする。【００１２】
この条件にて上記特許文献１の方式におけるストリーム暗号では、１ブロック分の鍵ストリームＧは、以下の（式１）にて表されることになる。【００１３】
Ｇ＝（P2[K2_1](Y),P2[K2_2](Y),...,P2[K2_t](Y)）・・・（式１）
但し、Ｙは、初期入力がｃ、鍵がＫ１のときＰ１の出力Ｐ１[K1](c)を表す。【００１４】
また、上記（式１）の代わりに、非特許文献２に開示されている方式を適用することも可能である。これは以下の（式１’）にて表されることになる。【００１５】
Ｇ＿｛1，1｝○(G_[2,2]○(G_[3,4]…G_[d,2^(d-1)])...)(Y)・・・（式１'）【００１６】
ただし、dはlog_[2](t)−1以上の最小の正整数であり、ｉ＝1,2,...,dについてG_[ｉ]は、Ｐ２の２つの鍵を用いた１ブロック入力２ブロック出力であり、G_[i](X)=(P2[K2_2i-1](X),P2[K2_2i](X))という処理を行う。【００１７】
G_[i,2^(i-1)]は、2^(i-1)ブロック入力2^(i)ブロック出力であり、全ての入力ブロックへG_[i]を適用し、それぞれの結果を連結して出力する処理である。全体の出力は、各G_[i,2^(i-1)]の出力を連結する。なお、図８にＰ２の鍵を４つ使用した場合を示す。また、○は関数の合成を表す演算子であり、ある２つの関数ＦとＧとについて、F○Gは、F○G(X)=G(F(X))という合成関数を表す。ここでは、（式１）と同様に（式１'）のＹをP1[K1](c)としたモードを、擬似ランダムツリーモード（Pseudorandom Tree mode,ＰＲＴモードと略す）と呼ぶ。【００１８】
Ｐ１の出力Ｙをｔ倍にしていることから、以後はｔを拡大率と呼ぶ。なお、初期入力ｃの生成方法はいくつか考えられるが、例えば、初期値を１とし、１ブロック分の鍵ストリーム生成の度に、カウントアップする変数をｃとする方法がある。【００１９】
上記特許文献１の方式は、１ブロック分の入力に対してｔブロック分の出力を行う暗号処理に関するものであるが、同様の処理はＰ１のみを用いて行うことも可能である。これは非特許文献３に開示されている修正カウンターモード、もしくは、修正ＯＦＢ(Output Feed Back)モードを使えばよいことになる。なお、Ｐ１を用いた修正カウンターモードを（式２）に示し、Ｐ１を用いた修正ＯＦＢモードを（式３）に示す。【００２０】
（式２）
入力ｘについて、(P1(P1(x)+c_1),P1(P1(x)+c_2),...,P1(P1(x)+c_t)))、を出力。
但し、c_1,...,c_tは、ｔ個のそれぞれ互いに異なる定数とする。【００２１】
（式３）
入力ｘについて、(P1(P1(x)),P1(P1(x)+y_1),...,P1(P1(x)+y_t-1)、を出力。
但し、y_1=P1(P1(x)),y_2=P1(P1(x)+y_1),...,y_t-1=P1(P1(x)+y_t-2)を満たすものとする。【００２２】
なお、修正カウンターモードや修正ＯＦＢモードはＰ１のみの暗号部品を用いて、Ｐ２という追加の暗号部品を必要としないため簡素化を図れることになるが、その代わりに、修正カウンターモードや修正ＯＦＢモードのスループットは、Ｐ１の暗号部品のスループットよりも高速にはならないことになる。【００２３】
なお、本発明より先に出願された他の技術文献として、入力データの暗号化段階を少なくとも２つの段階で構成し、各暗号化段階で所定バイト長のブロック単位で暗号分ブロック連鎖モードを用いて暗号化し、かつ最初の暗号化段階では入力データに依存しない固定の初期化ベクトルを用い、次の暗号化段階以降では前の暗号化手段における１つのブロックの暗号結果を初期化ベクトルとして用い、大きなデータをブロック化して暗号化する際に、元のデータが推測されるのを困難にすることを可能とするブロック暗号方法及び複合方法がある（例えば、特許文献２参照）。【００２４】
また、平文Ｍをｒ（ｒは２以上の整数）個の分割平文に分割し、ｒ個の分割平文のうちのｎ個（ｎ＜ｒ）の分割平文をｎ個の暗号文に暗号化し、残りの（ｒ−ｎ）個の分割平文と前記ｎ個の暗号文とを出力暗号文として出力し、高速で簡易な暗号系を構成できるものがある（例えば、特許文献３参照）。【００２５】
また、ハッシュ関数について開示されたものがある（例えば、非特許文献４参照）。【００２６】
また、ＡＥＳ（Advanced Encryption Standard）などの選択平文／暗号文攻撃に安全なブロック暗号について開示されたものがある（例えば、非特許文献５参照）。【００２７】
また、ストリーム暗号ＳＥＡＬについて開示されたものがある（例えば、非特許文献６参照）。
【特許文献１】米国特許第６１０４８１１号明細書
【特許文献２】特開２００２−１０８２０５号公報
【特許文献３】特開２００２−１７５００８号公報
【非特許文献１】アイエロ、ラヤゴパラン、アンド ベンカテサン、ハイスピード スードランダム ナンバー ジェネレーション ウィズ スモール メモリー、1999年3月、ファスト ソフトウェア エンクリプション、シックス インターナショナル ワークショップ、エフエスイー９９、レクチャー ノーツ イン コンピュータ サイエンス ボリューム １６３６ （W. Aiello, R. Rajagopalan and V. Venkatesan, High-Speed Pseudorandom Number Generation With Small Memory, Fast Software Encryption, 6th International Workshop, FSE'99, Lecture Notes in Computer Science; Vol. 1636, Mar. 1999）
【非特許文献２】イバン  ダンガード、アンド  ジェスパー  ブース  ニールセン、2002年8月、「エクスパンディング  スードランダム  ファンクションズ；  オワ：  フロム  ノウンープレインテキスト  セキュリティ  トゥ  チョーズンープレインテキスト  セキュリティ」、2002年、アドバンシズ  イン  クリプトロジー、クリプト'０２、レクチャー ノーツ イン コンピュータ サイエンス   ボリューム２４４２（Ivan Damgard and Jusper Buus Nielsen, Expanding Pseudorandom Functions; or: From Known-Plaintext Security to Chosen-Plaintext Security, Advances in Cryptology- CRYPTO'02, LNCS 2442, 2002.）
【非特許文献３】アンリ  ギルバート、ザ  セキュリティー  オブ  "ワン−ブロック−トゥ−メニー"モーズ  オブ  オペレーション、2003年2月、ファスト ソフトウェア エンクリプション、テンス インターナショナル ワークショップ、エフエスイー０３、レクチャー ノーツ イン コンピュータ サイエンス ボリューム ２８８７（H. Gilbert, The Security of ``One-Block-to-Many" Modes of Operation, Fast Software Encryption, 10th International Workshop, FSE '03, Lecture Notes in Computer Science; Vol. 2887, Feb. 2003）
【非特許文献４】シャイ  ハレビ  アンド  ユーゴ  クラウジック、エムエムエイチ：ソフトウェア  メッセージ  オウセンティケイション  イン  ザ  ギガビット  パー  セコンド  レーツ、1997年2月、ファスト ソフトウェア エンクリプション、フォース インターナショナル ワークショップ、エフエスイー９７、レクチャー ノーツ イン コンピュータ サイエンス ボリューム １２６７（S. Halevi and H. Krawczyk, MMH:Software Message Authentication in the Gbit/second rates, Fast Software Encryption, 4th International Workshop, FSE '97, Lecture Notes in Computer Science; Vol. 1267, Feb. 1997）
【非特許文献５】デーモン  アンド  ライマン、エーイーエス  プロポーザル：ラインデール、エーイーエス  サブミッション、1998．（J. Daemen, V. Rijmen, "AES Proposal: Rijndael", AES submission, 1998.）
【非特許文献６】フィル  ロガウェイ  アンド  ダン  カッパースミス、ア  ソフトウェア−オプティマイズド  エンクリプション  アルゴリズム、1993年2月、ファスト ソフトウェア エンクリプション、ファースト インターナショナル ワークショップ、エフエスイー９７、レクチャー ノーツ イン コンピュータ サイエンス ボリューム ８０９（P. Rogaway and D. Coppersmith, A Software-Optimized Encryption Algorithm, Fast Software Encryption, 1st Internatioanl Workshop, FSE '93, Lecture Notes in Computer Science; Vol. 809, Feb. 1993.）
【発明の開示】
【発明が解決しようとする課題】
【００２８】
なお、上記特許文献１には、ブロック暗号の出力を、ハッシュ関数やストリーム暗号で拡大することによりストリーム暗号を構成することについては開示されているが、選択平文攻撃に安全な暗号部品と、既知平文攻撃に安全な暗号部品と、を組み合せた安全なブロック暗号の構築方法については何ら考慮されたものではない。【００２９】
また、上記特許文献１に記載されている方式では、拡大率を大きく設定したときの実装面の負担が大きくなる虞がある。その理由は、上記特許文献１に記載されている方式は、拡大率に応じて線形に鍵が長くなるからである。このような場合、適当な鍵スケジューリングを採用し、短い秘密鍵を拡大してから使うことになるが、これは鍵スケジューリングによる事前処理の計算量増加を意味することになる。また、暗号化の際に必要とするメモリ量も増加することになる。【００３０】
本発明は上記事情に鑑みてなされたものであり、選択平文攻撃に安全な暗号部品と、既知平文攻撃に安全な暗号部品と、を組み合わせるか、もしくは、選択平文／暗号文攻撃に安全な暗号部品と、既知平文攻撃に安全な暗号部品と、を組み合わせ、安全なブロック暗号を提供する共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【００３１】
かかる目的を達成するために、本発明は以下の特徴を有することとする。【００３２】
本発明にかかる共通鍵ブロック暗号化装置は、暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、第１のブロックと、を出力する第１のフェイステル型ハッシュ手段と、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化手段と、単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成手段と、中間乱数と、第１のブロックと、を加算し、加算結果を出力する加算手段と、加算結果をハッシュ関数により圧縮し、該圧縮した加算結果と、単位ブロック中間暗号文と、を加算し、第２の加算結果を生成し、該生成した第２の加算結果と、加算結果と、を合わせた出力結果を出力する第２のフェイステル型ハッシュ手段と、出力結果を暗号文として出力する暗号文出力手段と、を有することを特徴とするものである。【００３３】
また、本発明にかかる共通鍵ブロック暗号化装置は、暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、第１のブロックと、を出力する第１のフェイステル型ハッシュ手段と、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化手段と、単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成手段と、中間乱数と、第１のブロックと、を加算し、加算結果を出力する加算手段と、加算結果と、単位ブロック中間暗号文と、を連結し暗号文として出力する暗号文出力手段と、を有することを特徴とするものである。【００３４】
また、本発明にかかる共通鍵ブロック暗号化装置において、単位ブロック暗号化手段は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成手段は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードに対し、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００３５】
また、本発明にかかる共通鍵ブロック暗号化装置において、単位ブロック暗号化手段は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成手段は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードに対し、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００３６】
また、本発明にかかる共通鍵ブロック暗号化装置において、単位ブロック暗号化手段は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成手段は、ブロック暗号による修正カウンターモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００３７】
また、本発明にかかる共通鍵ブロック暗号化装置において、単位ブロック暗号化手段は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成手段は、ブロック暗号による修正ＯＦＢモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００３８】
また、本発明にかかる共通鍵ブロック暗号化装置において、単位ブロック暗号化手段は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成手段は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードの最初の暗号化処理を省略したモードに、単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して中間乱数を生成することを特徴とするものである。【００３９】
また、本発明にかかる共通鍵ブロック暗号化装置において、単位ブロック暗号化手段は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成手段は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードの最初の暗号化処理を省略したモードに、単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して中間乱数を生成することを特徴とするものである。【００４０】
また、本発明にかかる共通鍵ブロック暗号化装置において、単位ブロック暗号化手段は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成手段は、ブロック暗号による修正カウンターモードの最初の暗号化処理を省いたモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００４１】
また、本発明にかかる共通鍵ブロック暗号化装置において、単位ブロック暗号化手段は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成手段は、ブロック暗号による修正ＯＦＢモードの最初の暗号化処理を省いたモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００４２】
また、本発明にかかる共通鍵ブロック暗号化装置において、単位ブロック暗号化手段は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成手段は、初期ベクトルを付加的な入力として受け付けるストリーム暗号へ、単位ブロック中間暗号文を初期ベクトルとして入力し、中間乱数を生成することを特徴とするものである。【００４３】
また、本発明にかかる共通鍵ブロック暗号化方法は、情報処理装置において行う共通鍵ブロック暗号化方法であって、暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、第１のブロックと、を出力する第１のフェイステル型ハッシュ工程と、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化工程と、単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成工程と、中間乱数と、第１のブロックと、を加算し、加算結果を出力する加算工程と、加算結果をハッシュ関数により圧縮し、該圧縮した加算結果と、単位ブロック中間暗号文と、を加算し、第２の加算結果を生成し、該生成した第２の加算結果と、加算結果と、を出力する第２のフェイステル型ハッシュ工程と、第２の加算結果と、加算結果と、を基に暗号文として出力する暗号文出力工程と、を、情報処理装置が行うことを特徴とするものである。【００４４】
また、本発明にかかる共通鍵ブロック暗号化方法は、情報処理装置において行う共通鍵ブロック暗号化方法であって、暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、第１のブロックと、を出力する第１のフェイステル型ハッシュ工程と、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化工程と、単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成工程と、中間乱数と、第１のブロックと、を加算し、加算結果を出力する加算工程と、加算結果と、単位ブロック中間暗号文と、を連結し暗号文として出力する暗号文出力工程と、を、情報処理装置が行うことを特徴とするものである。【００４５】
また、本発明にかかる共通鍵ブロック暗号化方法において、単位ブロック暗号化工程は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成工程は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードに対し、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００４６】
また、本発明にかかる共通鍵ブロック暗号化方法において、単位ブロック暗号化工程は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成工程は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードに対し、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００４７】
また、本発明にかかる共通鍵ブロック暗号化方法において、単位ブロック暗号化工程は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成工程は、ブロック暗号による修正カウンターモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００４８】
また、本発明にかかる共通鍵ブロック暗号化方法において、単位ブロック暗号化工程は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成工程は、ブロック暗号による修正ＯＦＢモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００４９】
また、本発明にかかる共通鍵ブロック暗号化方法において、単位ブロック暗号化工程は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成工程は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードの最初の暗号化処理を省略したモードに、単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して中間乱数を生成することを特徴とするものである。【００５０】
また、本発明にかかる共通鍵ブロック暗号化方法において、単位ブロック暗号化工程は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成工程は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードの最初の暗号化処理を省略したモードに、単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して中間乱数を生成することを特徴とするものである。【００５１】
また、本発明にかかる共通鍵ブロック暗号化方法において、単位ブロック暗号化工程は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成工程は、ブロック暗号による修正カウンターモードの最初の暗号化処理を省いたモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００５２】
また、本発明にかかる共通鍵ブロック暗号化方法において、単位ブロック暗号化工程は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成工程は、ブロック暗号による修正ＯＦＢモードの最初の暗号化処理を省いたモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００５３】
また、本発明にかかる共通鍵ブロック暗号化方法において、単位ブロック暗号化工程は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成工程は、初期ベクトルを付加的な入力として受け付けるストリーム暗号へ、単位ブロック中間暗号文を初期ベクトルとして入力し、中間乱数を生成することを特徴とするものである。【００５４】
また、本発明にかかる共通鍵ブロック暗号化プログラムは、情報処理装置において実行させる共通鍵ブロック暗号化プログラムであって、暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、第１のブロックと、を出力する第１のフェイステル型ハッシュ処理と、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化処理と、単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成処理と、中間乱数と、第１のブロックと、を加算し、加算結果を出力する加算処理と、加算結果をハッシュ関数により圧縮し、該圧縮した加算結果と、単位ブロック中間暗号文と、を加算し、第２の加算結果を生成し、該生成した第２の加算結果と、加算結果と、を出力する第２のフェイステル型ハッシュ処理と、第２の加算結果と、加算結果と、を基に暗号文として出力する暗号文出力処理と、を、情報処理装置において実行させることを特徴とするものである。【００５５】
また、本発明にかかる共通鍵ブロック暗号化プログラムは、情報処理装置において実行させる共通鍵ブロック暗号化プログラムであって、暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、第１のブロックと、を出力する第１のフェイステル型ハッシュ処理と、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化処理と、単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成処理と、中間乱数と、第１のブロックと、を加算し、加算結果を出力する加算処理と、加算結果と、単位ブロック中間暗号文と、を連結し暗号文として出力する暗号文出力処理と、を、情報処理装置において実行させることを特徴とするものである。【００５６】
また、本発明にかかる共通鍵ブロック暗号化プログラムにおいて、単位ブロック暗号化処理は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成処理は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードに対し、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００５７】
また、本発明にかかる共通鍵ブロック暗号化プログラムにおいて、単位ブロック暗号化処理は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成処理は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードに対し、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００５８】
また、本発明にかかる共通鍵ブロック暗号化プログラムにおいて、単位ブロック暗号化処理は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成処理は、ブロック暗号による修正カウンターモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００５９】
また、本発明にかかる共通鍵ブロック暗号化プログラムにおいて、単位ブロック暗号化処理は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成処理は、ブロック暗号による修正ＯＦＢモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００６０】
また、本発明にかかる共通鍵ブロック暗号化プログラムにおいて、単位ブロック暗号化処理は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成処理は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードの最初の暗号化処理を省略したモードに、単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して中間乱数を生成することを特徴とするものである。【００６１】
また、本発明にかかる共通鍵ブロック暗号化プログラムにおいて、単位ブロック暗号化処理は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成処理は、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、によるＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードの最初の暗号化処理を省略したモードに、単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して中間乱数を生成することを特徴とするものである。【００６２】
また、本発明にかかる共通鍵ブロック暗号化プログラムにおいて、単位ブロック暗号化処理は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成処理は、ブロック暗号による修正カウンターモードの最初の暗号化処理を省いたモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００６３】
また、本発明にかかる共通鍵ブロック暗号化プログラムにおいて、単位ブロック暗号化処理は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成処理は、ブロック暗号による修正ＯＦＢモードの最初の暗号化処理を省いたモードに、単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数を生成することを特徴とするものである。【００６４】
また、本発明にかかる共通鍵ブロック暗号化プログラムにおいて、単位ブロック暗号化処理は、ブロック暗号を用いて単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、疑似乱数生成処理は、初期ベクトルを付加的な入力として受け付けるストリーム暗号へ、単位ブロック中間暗号文を初期ベクトルとして入力し、中間乱数を生成することを特徴とするものである。
【発明の効果】
【００６５】
本発明にかかる共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラムは、暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、第１のブロックと、を出力する。そして、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する。そして、単位ブロック中間暗号文を基に中間乱数を生成し、該生成した中間乱数と、第１のブロックと、を加算し、加算結果を出力する。そして、その加算結果をハッシュ関数により圧縮し、該圧縮した加算結果と、単位ブロック中間暗号文と、を加算し、第２の加算結果を生成し、該生成した第２の加算結果と、加算結果と、を出力する。そして、第２の加算結果と、加算結果と、を基に暗号文として出力することになる。これにより、選択平文／暗号文攻撃に安全にすることが可能となる。【００６６】
また、暗号化される平文を、第１のブロックと、第２のブロックと、に分割し、該分割した第１のブロックをハッシュ関数により圧縮し、該圧縮した第１のブロックと、第２のブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、第１のブロックと、を出力する。そして、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する。そして、単位ブロック中間暗号文を基に中間乱数を生成し、該生成した中間乱数と、第１のブロックと、を加算し、加算結果を出力する。そして、その加算結果と、単位ブロック中間暗号文と、を連結し暗号文として出力することになる。これにより、選択平文攻撃に安全にすることが可能となる。
【図面の簡単な説明】
【００６７】
【図１】第１の実施形態における共通鍵ブロック暗号化装置の構成を示すブロック図である。
【図２】第１の実施形態における共通鍵ブロック暗号化装置の処理動作を示すフロチャートである。
【図３】第２の実施形態における共通鍵ブロック暗号化装置の構成を示すブロック図である。
【図４】第２の実施形態における共通鍵ブロック暗号化装置の処理動作を示すフロチャートである。
【図５】第３の実施形態における共通鍵ブロック暗号化装置の具備する疑似乱数生成手段（１０４）における順序つきツリーモードの処理動作を示すフロチャートである。
【図６】ｔ＝３、ｒ＝３とした場合の疑似乱数生成手段（１０４）の構成を示すブロック図である。
【図７】Ｐ２の鍵を４つ使う場合のＥＲＴモードの構成を示すブロック図である。
【図８】Ｐ２の鍵を４つ使う場合のＰＲＴモードの構成を示すブロック図である。
【符号の説明】
【００６８】
１０１、２０１    平文入力手段
１０２、２０２    第１のフェイステル型ハッシュ手段
１０３、２０３    単位ブロック暗号化手段
１０４、２０４    擬似乱数生成手段
１０５、２０５    加算手段
１０６    第２のフェイステル型ハッシュ手段
１０７、２０６    暗号文出力手段
【発明を実施するための最良の形態】
【００６９】
まず、図１、図３を参照しながら、本実施形態における共通鍵ブロック暗号化装置について説明する。【００７０】
本実施形態における第１の共通鍵ブロック暗号化装置は、図１に示すように、暗号化される平文を入力する平文入力手段（１０１）と、平文を、ＰＡブロックと、ＰＢブロックと、に分割し、該分割したＰＢブロックをハッシュ関数により圧縮し、該圧縮したＰＢブロックと、ＰＡブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、ＰＢブロックと、を出力する第１のフェイステル(Feistel)型ハッシュ手段（１０２）と、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化手段（１０３）と、単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成手段（１０４）と、中間乱数と、ＰＢブロックと、を加算し、加算結果を出力する加算手段（１０５）と、加算結果をハッシュ関数により圧縮し、該圧縮した加算結果と、単位ブロック中間暗号文と、を加算し、第２の加算結果を生成し、該生成した第２の加算結果と、加算結果と、を合わせた出力結果を出力する第２のフェイステル型ハッシュ手段（１０６）と、出力結果を暗号文として出力する暗号文出力手段（１０７）と、を有することを特徴とするものである。これにより、選択平文／暗号文攻撃に安全な暗号部品と、既知平文攻撃に安全な暗号部品と、を組み合わせ、安全なブロック暗号を提供することが可能となる。また、第２の共通鍵ブロック暗号化装置は、図３に示すように、暗号化される平文を入力する平文入力手段（２０１）と、平文を、ＰＡブロックと、ＰＢブロックと、に分割し、該分割したＰＢブロックをハッシュ関数により圧縮し、該圧縮したＰＢブロックと、ＰＡブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、ＰＢブロックと、を出力する第１のフェイステル型ハッシュ手段（２０２）と、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化手段（２０３）と、単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成手段（２０４）と、中間乱数と、第１のブロックと、を加算し、加算結果を出力する加算手段（２０５）と、加算結果と、単位ブロック中間暗号文と、を連結し暗号文として出力する暗号文出力手段（２０６）と、を有することを特徴とするものである。これにより、選択平文攻撃に安全な暗号部品と、既知平文攻撃に安全な暗号部品と、を組み合わせ、安全なブロック暗号を提供することが可能となる。なお、ブロック暗号に求められる安全性とは、選択平文攻撃への安全性か、選択平文攻撃と選択暗号文攻撃とを組み合わせた選択平文／暗号文攻撃への安全性であり、どちらが必要かは利用目的により異なるが、第１の共通鍵ブロック暗号化装置は、単位ブロック暗号化手段（１０３）が選択平文／暗号文攻撃に安全で、疑似乱数生成手段（１０４）が選択平文攻撃に安全であれば、選択平文／暗号文攻撃に安全にすることが可能となる。また、第２の共通鍵ブロック暗号化装置は、選択平文攻撃に安全にすることが可能となる。以下、添付図面を参照しながら、本実施形態における共通鍵ブロック暗号化装置について詳細に説明する。【００７１】
（第１の実施形態）
まず、図１を参照しながら、第１の実施形態における共通鍵ブロック暗号化装置の構成について説明する。なお、図１は、第１の実施形態における共通鍵ブロック暗号化装置の構成を示すブロック図である。【００７２】
第１の実施形態における共通鍵ブロック暗号化装置は、平文入力手段（１０１）と、第１のフェイステル型ハッシュ手段（１０２）と、単位ブロック暗号化手段（１０３）と、擬似乱数生成手段（１０４）と、加算手段（１０５）と、第２のフェイステル型ハッシュ手段（１０６）と、暗号文出力手段（１０７）と、を有して構成される。【００７３】
なお、本実施形態における共通鍵ブロック暗号化装置は、ＣＰＵとメモリとディスクとにより実現することは可能である。共通鍵ブロック暗号化装置の各手段は、上記各手段を実行するためのプログラムをディスクに格納し、該格納したプログラムをＣＰＵが実行することで実現することになる。【００７４】
次に、共通鍵ブロック暗号化装置を構成する各手段について説明する。【００７５】
＜平文入力手段１０１＞
平文入力手段（１０１）は、暗号化される対象となる平文を入力するものである。例えば、キーボードなどの文字入力装置により実現されることになる。【００７６】
＜第１のフェイステル型ハッシュ手段１０２＞
第１のフェイステル型ハッシュ手段（１０２）は、平文入力手段（１０１）から入力された平文をＰＡブロックと、ＰＢブロックと、に分割し、該分割したＰＢブロックをハッシュ関数により圧縮し、該圧縮したＰＢブロックと、ＰＡブロックと、を加算することになる。そして、第１のフェイステル型ハッシュ手段（１０２）は、ハッシュ関数により圧縮したＰＢブロックと、ハッシュ関数により圧縮していないＰＡブロックとの和と、ハッシュ関数により圧縮する前のＰＢブロックと、を連結して出力することになる。【００７７】
例えば、平文入力手段（１０１）から入力された平文を、二つのブロック（ＰＡ，ＰＢ）で表し、ハッシュ関数をＨ（ｘ）と表した場合、第１のフェイステル型ハッシュ手段（１０２）は、平文入力手段（１０１）から入力された平文の一部（ＰＢ）をハッシュ関数Ｈ（ｘ）により圧縮し、該圧縮した一部の平文Ｈ（ＰＢ）と、平文入力手段（１０１）から入力された他の部分の平文（ＰＡ）と、の和（ＰＡ＋Ｈ（ＰＢ））と、ハッシュ関数Ｈ（ｘ）により圧縮する前の平文（ＰＢ）と、を連結して外部に出力することになる。これにより、第１のフェイステル型ハッシュ手段（１０２）は、（ＰＡ＋Ｈ（ＰＢ），ＰＢ）の出力文を外部に出力することになる。なお、第１のフェイステル型ハッシュ手段（１０２）から出力するＰＡ＋Ｈ（ＰＢ）を単位ブロック中間文と称す。また、＋記号は加算を表し、ＰＡ、ＰＢとも２のべき乗の空間の要素ならば、＋は、排他的論理和処理と一致することになる。但し、ハッシュ関数Ｈは、ａｌｍｏｓｔ  ｕｎｉｖｅｒｓａｌ  ＸＯＲであることが必要となる。これは、ハッシュ関数Ｈへの異なる２つの入力について、それぞれに対するハッシュ関数Ｈの出力の和がほぼ一様に分布することを意味する。このようなハッシュ関数Ｈは、一般にユニバーサルハッシュ関数と呼ばれ、例えば、非特許文献４に開示されているＭｕｌｔｉｍｏｄｕｌａｒ  Ｈａｓｈ  Ｆｕｎｃｔｉｏｎを用いることで実現することが可能となる。【００７８】
＜単位ブロック暗号化手段１０３＞
単位ブロック暗号化手段（１０３）は、第１のフェイステル型ハッシュ手段（１０２）から入力された単位ブロック中間文の暗号文である単位ブロック中間暗号文を生成することになる。なお、単位ブロック中間暗号文は、非特許文献５に開示されているＡＥＳ（Advanced Encryption Standard）などの選択平文／暗号文攻撃に安全なブロック暗号により生成することが可能である。【００７９】
＜疑似乱数生成手段１０４＞
擬似乱数生成手段（１０４）は、単位ブロック暗号化手段（１０３）から出力される単位ブロック中間暗号文を基に、中間乱数を生成することになる。【００８０】
第１の実施形態における擬似乱数生成手段（１０４）は、選択平文攻撃に安全であることが求められる。すなわち、攻撃者が任意に単位ブロック中間暗号文を選択し、該選択した単位ブロック中間暗号文を基に、中間乱数を生成した際に、該生成した中間乱数と、真の乱数と、の判別が困難となればよい。なお、第１の実施形態における疑似乱数生成手段（１０４）は、上記特許文献１に開示された手法を使用し、選択平文攻撃に安全な暗号処理と、既知平文攻撃に安全な暗号処理と、を組み合わせることで中間乱数を生成することが可能となる。選択平文／暗号文攻撃に安全ならば、選択平文攻撃に安全なので、単位ブロック暗号化手段（１０３）で用いるブロック暗号を選択平文攻撃に安全な暗号部品として上記特許文献１に開示された手法において適用することが可能となる。【００８１】
＜加算手段１０５＞
加算手段（１０５）は、疑似乱数生成手段（１０４）において生成された中間乱数と、第１のフェイステル型ハッシュ手段（１０２）から出力される平文の一部（ＰＢブロック）と、の加算処理を行い、該加算処理を行った加算値を出力することになる。【００８２】
＜第２のフェイステル型ハッシュ手段１０６＞
第２のフェイステル型ハッシュ手段（１０６）は、加算手段（１０５）から出力された加算値をハッシュ関数に入力し、ハッシュ値を求め、該求めたハッシュ値と、単位ブロック暗号化手段（１０３）から出力される単位ブロック中間暗号文と、を加算し、その加算結果と、加算手段（１０５）から出力された加算値と、を連結して出力結果を出力することになる。なお、第２のフェイステル型ハッシュ手段（１０６）は、第１のフェイステル型ハッシュ手段（１０２）と同様に実現することは可能である。【００８３】
＜暗号文出力手段１０７＞
暗号文出力手段（１０７）は、第２のフェイステル型ハッシュ手段（１０２）から入力された出力結果を暗号文として出力するものである。この暗号文出力手段（１０７）は、コンピュータディスプレイやプリンタなどで実現することが可能である。【００８４】
（共通鍵ブロック暗号化装置における動作の説明）
次に、図２を参照しながら、図１に示す第１の実施形態における共通鍵ブロック暗号化装置の処理動作について説明する。【００８５】
まず、平文入力手段（１０１）は、暗号化される平文（ＰＡブロック、ＰＢブロック）を第１のフェイステル型ハッシュ手段（１０２）に入力することになる（ステップＡ１）。【００８６】
第１のフェイステル型ハッシュ手段（１０２）は、平文入力手段（１０１）から入力された平文（ＰＡブロック、ＰＢブロック）をＰＡブロックと、ＰＢブロックと、に分割し、該分割したＰＢブロックをハッシュ関数により圧縮し、該圧縮したＰＢブロック（Ｈ（ＰＢ））と、ＰＡブロック（ＰＡ）と、を加算し（ＰＡ＋Ｈ（ＰＢ））、単位ブロック中間文を作成することになる（ステップＡ２）。そして、第１のフェイステル型ハッシュ手段（１０２）は、単位ブロック中間文と、ハッシュ関数により圧縮する前のＰＢブロックと、を連結して出力することになる。なお、第１のフェイステル型ハッシュ手段（１０２）は、単位ブロック中間文を、単位ブロック暗号化手段（１０３）に出力し、ハッシュ関数により圧縮する前のＰＢブロックを、加算手段（１０５）に出力することになる。【００８７】
次に、単位ブロック暗号化手段（１０３）は、第１のフェイステル型ハッシュ手段（１０２）から入力された単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成し、該生成した単位ブロック中間暗号文を、疑似乱数生成手段（１０４）と、第２のフェイステル型ハッシュ手段（１０６）と、に出力することになる（ステップＡ３）。【００８８】
疑似乱数生成手段（１０４）は、単位ブロック暗号化手段（１０３）から入力された単位ブロック中間暗号文を基に中間乱数を生成し、該生成した中間乱数を加算手段（１０５）に出力する（ステップＡ４）。【００８９】
加算手段（１０５）は、疑似乱数生成手段（１０４）から入力された中間乱数と、第１のフェイステル型ハッシュ手段（１０２）から入力されたＰＢブロックと、の加算処理を行い、該加算処理を行った加算値を第２のフェイステル型ハッシュ手段（１０２）に出力することになる（ステップＡ５）。【００９０】
第２のフェイステル型ハッシュ手段（１０６）は、加算手段（１０５）から入力された中間乱数と、ＰＢブロックと、の加算値を、ハッシュ関数に代入し、加算値のハッシュ値Ｈ２の計算を行う（ステップＡ６）。【００９１】
次に、第２のフェイステル型ハッシュ手段（１０６）は、上記計算したハッシュ値Ｈ２と、単位ブロック暗号化手段（１０３）から入力された単位ブロック中間暗号文と、の加算処理を行い、暗号文を生成し（ステップＡ７）、該生成した暗号文を暗号文出力手段（１０７）に出力することになる。暗号文出力手段（１０７）は、第２のフェイステル型ハッシュ手段（１０６）から入力された暗号文を出力することになる（ステップＡ８）。【００９２】
このように、第１の実施形態における共通鍵ブロック暗号化装置は、暗号化される平文を入力し、該入力された平文をＰＡブロックと、ＰＢブロックと、に分割し、該分割したＰＢブロックをハッシュ関数により圧縮し、該圧縮したＰＢブロック（Ｈ（ＰＢ））と、ＰＡブロック（ＰＡ）と、を加算し、単位ブロック中間文を生成することになる（ＰＡ＋Ｈ（ＰＢ））。そして、上記処理により生成した単位ブロック中間文（ＰＡ＋Ｈ（ＰＢ）に暗号化を施し、単位ブロック中間暗号文を生成し、該生成した単位ブロック中間暗号文を基に中間乱数を生成することになる。次に、上記生成した中間乱数と、ＰＢブロックと、を加算し、加算結果を算出することになる。そして、その算出した加算結果をハッシュ関数により圧縮し、該圧縮した加算結果と、単位ブロック中間暗号文と、を加算した第２の加算結果を算出し、その算出した第２の加算結果と、加算結果と、を基に暗号文を出力することになる。【００９３】
これにより、本実施形態における共通鍵ブロック暗号化装置は、選択平文／暗号文攻撃に安全な暗号部品と、既知平文攻撃に安全な暗号部品と、を組み合わせ、高速で安全なブロック暗号を大きいブロックサイズに対して実現することが可能となる。本実施形態における共通鍵ブロック暗号化装置は、１ブロックの暗号化につき選択平文／暗号文攻撃に安全な暗号部品の呼び出し回数は、ブロックサイズに関わらず２回で済むことになるため、大きいブロックサイズでは暗号化のスループットは、既知平文攻撃に安全な暗号部品のスループットにほぼ一致することになる。既知平文攻撃は、選択平文／暗号文攻撃よりも弱いクラスの攻撃であるため、既知平文攻撃に安全な暗号部品は一般に選択平文／暗号文攻撃に安全な暗号部品よりも高速に動作することになる。従って、選択平文／暗号文攻撃に安全な暗号部品のみを用いた暗号運用モードよりも高速なブロック暗号を構築できることが可能となる。【００９４】
なお、上記実施形態は、第１のフェイステル型ハッシュ手段（１０２）が、平文入力手段（１０１）から入力された平文を、ＰＡブロックと、ＰＢブロックと、に分割することとしたが、平文入力手段（１０１）において平文を、ＰＡブロックと、ＰＢブロックと、に分割し、該分割したＰＡブロックと、ＰＢブロックと、を第１のフェイステル型ハッシュ手段（１０２）に出力することも可能である。【００９５】
（第２の実施形態）
次に、第２の実施形態について説明する。
第２の実施形態における共通鍵ブロック暗号化装置は、暗号化される平文を入力する平文入力手段（２０１）と、平文を、ＰＡブロックと、ＰＢブロックと、に分割し、該分割したＰＢブロックをハッシュ関数により圧縮し、該圧縮したＰＢブロックとＰＡブロックと、を加算し単位ブロック中間文を生成し、該生成した単位ブロック中間文と、ＰＢブロックと、を出力する第１のフェイステル型ハッシュ手段（２０２）と、単位ブロック中間文を暗号化し、単位ブロック中間暗号文を生成する単位ブロック暗号化手段（２０３）と、単位ブロック中間暗号文を基に中間乱数を生成する擬似乱数生成手段（２０４）と、中間乱数と、ＰＢブロックと、を加算し、加算結果を出力する加算手段（２０５）と、加算結果と、単位ブロック中間暗号文と、を連結し暗号文として出力する暗号文出力手段（２０６）と、を有することを特徴とするものである。以下、図３、図４を参照しながら、第２の実施形態における共通鍵ブロック暗号化装置について説明する。【００９６】
まず、図３を参照しながら、第２の実施形態における共通鍵ブロック暗号化装置の構成について説明する。なお、図３は、第２の実施形態における共通鍵ブロック暗号化装置の構成を示すブロック図である。【００９７】
第２の実施形態における共通鍵ブロック暗号化装置は、平文入力手段（２０１）と、第１のフェイステル型ハッシュ手段（２０２）と、単位ブロック暗号化手段（２０３）と、擬似乱数生成手段（２０４）と、加算手段（２０５）と、暗号文出力手段（２０６）と、を有して構成される。【００９８】
なお、第２の実施形態における共通鍵ブロック暗号化装置は、第１の実施形態と同様に、ＣＰＵとメモリとディスクとにより実現することは可能である。共通鍵ブロック暗号化装置の各手段は、上記各手段を実行するためのプログラムをディスクに格納し、該格納したプログラムをＣＰＵが実行することで実現することになる。【００９９】
次に、第２の実施形態における共通鍵ブロック暗号化装置を構成する各手段について説明する。なお、第２の実施形態における共通鍵ブロック暗号化装置を構成する平文入力手段（２０１）と、第１のフェイステル型ハッシュ手段（２０２）と、単位ブロック暗号化手段（２０３）と、加算手段（２０５）と、は、第１の実施形態における共通鍵ブロック暗号化装置を構成する各手段（１０１、１０２、１０３、１０５、）と同様の機能にて構成される。ただし、単位ブロック暗号化手段（２０３）は、選択平文攻撃に安全であれば十分である。【０１００】
＜疑似乱数生成手段２０４＞
第２の実施形態における擬似乱数生成手段（２０４）は、単位ブロック中間暗号文を基に、中間乱数を生成するものであり、第２の実施形態における擬似乱数生成手段（２０４）は、既知平文攻撃に安全であることが求められる。【０１０１】
即ち、第２の実施形態における疑似乱数生成手段（２０４）は、ランダムな単位ブロック中間暗号文を基に、中間乱数を生成した際に、該生成した中間乱数と、真の乱数と、の判別が困難となれば十分であり、単位ブロック中間暗号文を攻撃者が任意に選択できるもとでの安全性（選択平文攻撃への安全性）は必要としない。【０１０２】
＜暗号文出力手段２０６＞
暗号文出力手段（２０６）は、加算手段（１０５）から出力された値と、単位ブロック暗号化手段（１０３）から出力される単位ブロック中間暗号文と、を連結し、暗号文として出力することになる。【０１０３】
（共通鍵ブロック暗号化装置における動作の説明）
次に、図４を参照しながら、第２の実施形態における共通鍵ブロック暗号化装置の処理動作について説明する。【０１０４】
まず、平文入力手段（２０１）は、暗号化される平文（ＰＡブロック、ＰＢブロック）を第１のフェイステル型ハッシュ手段（２０２）に入力することになる（ステップＢ１）。【０１０５】
次に、第１のフェイステル型ハッシュ手段（２０２）は、平文入力手段（２０１）から入力された平文（ＰＡブロック、ＰＢブロック）をＰＡブロックと、ＰＢブロックと、に分割し、該分割したＰＢブロックをハッシュ関数により圧縮し、該圧縮したＰＢブロック（Ｈ（ＰＢ））と、ＰＡブロック（ＰＡ）と、を加算し（ＰＡ＋Ｈ（ＰＢ））、単位ブロック中間文を作成し、該作成した単位ブロック中間文を単位ブロック暗号化手段（２０３）に出力することになる（ステップＢ２）。また、第１のフェイステル型ハッシュ手段（２０２）は、平文入力手段（２０１）から入力された平文（ＰＢブロック）を加算手段（２０５）に出力することになる。【０１０６】
次に、単位ブロック暗号化手段（２０３）は、第１のフェイステル型ハッシュ手段（２０２）から入力された単位ブロック中間文を暗号化し、単位ブロック中間暗号文を作成し、該作成した単位ブロック中間暗号文を出力することになる（ステップＢ３）。【０１０７】
次に、擬似乱数生成手段（２０４）は、単位ブロック暗号化手段（２０３）から入力された単位ブロック中間暗号文を基に中間乱数を作成し、該作成した中間乱数を加算手段（２０５）に出力することになる（ステップＢ４）。【０１０８】
次に、加算手段（２０５）は、疑似乱数生成手段（２０４）から入力された中間乱数と、第１のフェイステル型ハッシュ手段（２０２）から入力された平文のＰＢブロックと、の加算処理を行い、加算結果を暗号文出力手段（２０６）に出力することになる（ステップＢ５）。【０１０９】
暗号文出力手段（２０６）は、単位ブロック暗号化手段（２０３）から入力された単位ブロック中間暗号文と、加算手段（２０５）から入力された加算結果と、を連結し暗号文として出力することになる（ステップＢ６）。【０１１０】
このように、第２の実施形態におけるブロック暗号化装置は、暗号化される平文を入力し、該入力された平文をＰＡブロックと、ＰＢブロックと、に分割し、該分割したＰＢブロックをハッシュ関数により圧縮し、該圧縮したＰＢブロック（Ｈ（ＰＢ））と、ＰＡブロック（ＰＡ）と、を加算し、単位ブロック中間文を生成することになる（ＰＡ＋Ｈ（ＰＢ））。そして、上記処理により生成した単位ブロック中間文（ＰＡ＋Ｈ（ＰＢ）に暗号化を施し、単位ブロック中間暗号文を生成し、該生成した単位ブロック中間暗号文を基に中間乱数を生成することになる。次に、上記生成した中間乱数と、ＰＢブロックと、を加算し、加算結果を算出することになる。そして、その算出した加算結果と、単位ブロック中間暗号文と、を連結し暗号文として出力することになる。【０１１１】
これにより、本実施形態における共通鍵ブロック暗号化装置は、選択平文攻撃に安全な暗号部品と、既知平文攻撃に安全な暗号部品と、を組み合せ、高速で安全なブロック暗号を大きいブロックサイズに対して実現することが可能となる。本実施形態における共通鍵ブロック暗号化装置は、１ブロックの暗号化につき選択平文攻撃に安全な暗号部品の呼び出し回数は、ブロックサイズに関わらず１回で済むことになるため、大きいブロックサイズでは暗号化のスループットは、既知平文攻撃に安全な暗号部品のスループットにほぼ一致することになる。既知平文攻撃は、選択平文攻撃よりも弱いクラスの攻撃であるため、既知平文攻撃に安全な暗号部品は一般に選択平文攻撃に安全な暗号部品よりも高速に動作することになる。従って、選択平文攻撃に安全な暗号部品のみを用いた暗号運用モードよりも高速なブロック暗号を構築できることが可能となる。【０１１２】
なお、上記実施形態は、第１のフェイステル型ハッシュ手段（２０２）が、平文入力手段（２０１）から入力された平文を、ＰＡブロックと、ＰＢブロックと、に分割することとしたが、平文入力手段（２０１）において平文を、ＰＡブロックと、ＰＢブロックと、に分割し、該分割したＰＡブロックと、ＰＢブロックと、を第１のフェイステル型ハッシュ手段（２０２）に出力することも可能である。【０１１３】
（第３の実施形態）
次に、第３の実施形態について説明する。【０１１４】
第３の実施形態における共通鍵ブロック暗号化装置は、第１の実施形態における共通鍵ブロック暗号化装置において、単位ブロック暗号化手段（１０３）が、ブロック暗号を用いて単位ブロック中間平文を単位ブロック中間暗号文に変換し、擬似乱数生成手段（１０４）が、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードに単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数とすることを特徴とするものである。以下、第３の実施形態における共通鍵ブロック暗号化装置について説明する。なお、第３の実施形態における共通鍵ブロック暗号化装置は、図１に示す第１の実施形態における共通鍵ブロック暗号化装置と同様の手段にて構成されることになる。【０１１５】
次に、図５を参照しながら、第３の実施形態における共通鍵ブロック暗号化装置の疑似乱数生成手段（１０４）における処理動作について説明する。なお、図５は、本実施形態における擬似乱数生成手段（１０４）の処理動作を示すフロチャートを示す。【０１１６】
なお、ブロック暗号をＰ１とし、このブロック暗号Ｐ１の段数を削減したり、内部関数の一部を簡素化したりすることで得られる簡略化バージョンの簡易ブロック暗号をＰ２とする。例えば、ブロック暗号Ｐ１を非特許文献５に開示されているＡＥＳとし、簡易ブロック暗号Ｐ２をＡＥＳの７段バージョンとすることで本実施形態における共通鍵ブロック暗号化装置を実現することが可能となる。【０１１７】
第３の実施形態における擬似乱数生成手段（１０４）は、まず、ブロック暗号Ｐ１の鍵と、ｔ（ｔは、任意の正の整数）個の簡易ブロック暗号Ｐ２の鍵と、を生成する（ステップＣ１）。次に、疑似乱数生成手段（１０４）は、単位ブロック暗号化手段（１０３）から入力された単位ブロック中間暗号文をブロック暗号Ｐ１により暗号化する（ステップＣ２）。【０１１８】
次に、疑似乱数生成手段（１０４）は、上記ステップＣ２において暗号化した単位ブロック中間暗号文を更に異なるｔ個の鍵による簡易ブロック暗号Ｐ２の、高々ｒ（ｒは、ｔ以下の正の整数）回のあらゆるカスケードの集合Ｄを作成し（ステップＣ３）、該作成した集合Ｄの各要素に対し、上記ステップＣ２において暗号化した単位ブロック中間暗号文を入力し、出力結果を算出することになる（ステップＣ４）。【０１１９】
このとき、集合Ｄの要素のうち、語頭が等しい２つのカスケードについては、一方の出力結果を利用して他方の出力結果を算出することになる。そして、最後に、それらの要素の出力結果を連結することになる（ステップＣ５）。なお、上述したブロック暗号Ｐ１と、簡易ブロック暗号Ｐ２と、のモードを、順序付きツリーモードと呼ぶ。【０１２０】
なお、図６は、ｔ＝３、ｒ＝３とした場合の擬似乱数生成手段（１０４）のブロック図である。ｒを１とした場合、上述した（式１）の方式と一致することになる。順序付きツリーモードの出力ブロック数をｎとすると、（式１）の方式（即ち、ｒ＝１の時）では、鍵の長さはｎの線形オーダになるのに対して、ｒ＝ｔとすれば、鍵の長さはｎのログオーダになる。なお、ｒを増加させることで、鍵の数あたりの生成できる出力結果の長さが増えることになるが、暗号の安全性がその分低下することになる。【０１２１】
このように、第３の実施形態における共通鍵ブロック暗号化装置は、単位ブロック暗号化手段（１０３）が、ブロック暗号を用いて単位ブロック中間平文を単位ブロック中間暗号文に変換し、擬似乱数生成手段（１０４）が、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードに単位ブロック中間暗号文を入力して得られる複数ブロックの暗号文を連結して中間乱数とすることで、鍵の長さは順序付きツリーモードの出力ブロック数のログオーダまで短くできるため、鍵スケジューリングの時間を削減し、暗号文を出力するまでのオーバーヘッドの時間を短縮することが可能となる。【０１２２】
即ち、ブロック暗号の鍵は、通常マスター鍵を用いた鍵スケジューリングにより生成されることになるが、この鍵が短いということは、それを生成するためのマスター鍵を用いた鍵スケジューリングの時間も短縮することが可能となるためである。【０１２３】
（第４の実施形態）
次に、第４の実施形態について説明する。
第４の実施形態における共通鍵ブロック暗号化装置は、第３の実施形態における共通鍵ブロック暗号化装置の具備する擬似乱数生成手段（１０４）が、上述した（式１’）に記載のＰＲＴモード、もしくはＥＲＴモード、もしくは順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードを基に、中間乱数の生成を行うことを特徴とするものである。【０１２４】
ここで、ＥＲＴモードとは、上述した（式１'）に記載のＰＲＴモードを以下の（式１''）のように拡張して得られるモードである。【０１２５】
(...(G_[1,1]△G_[2,3])△G_[3,9]…G_[d,3^(d-1)])(Y)・・・（式１''）
ただし、Ｙは単位ブロック中間暗号文であり、△は２つの関数ＦとＧとについて、F△G(x) = (F(x), G(x, F(x)))という合成を行う演算子である。【０１２６】
ここで、Ｇの入力幅はＦの出力幅と全体の入力ｘの幅との和である。上記（式１''）においてＹがＰ１による暗号文である場合を拡張ＰＲＴ（Extended PRT, ERT）モードと呼ぶ。ＥＲＴモードは、ＰＲＴモードよりも鍵長が少なくて済むという特徴がある。具体的には、拡大率が大きい場合、ＥＲＴモードはＰＲＴモードの鍵長の約６０％の鍵長を必要とする。なお、図７に、Ｐ２の鍵を４つ使用した場合のＥＲＴモードの例を示す。【０１２７】
また、疑似乱数生成手段（１０４）は、ＰＲＴとＥＲＴと順序付きツリーモードとのいずれかを組み合わせて使用することも可能である。例えば、i=1,2,...についてG_[i]を２つの鍵による順序付きツリーモードとすると、これは１ブロック入力４ブロック出力となり、これをＥＲＴモードと組み合わせると以下の（式２''）のようになる。【０１２８】
(...(G_[1,1]△G_[2,5])△G_[3,25]…G_[d,5^(d-1)])(Y)・・・（式２''）【０１２９】
この組み合わせによるモードは、拡大率が大きい場合、ＰＲＴモードの鍵長の約３０％の鍵長を必要とする。順序付きツリーモードは鍵長の点ではＰＲＴモードやＥＲＴモードを上回る最良のモードであるが、大きい拡大率のときにプログラムサイズが大きくなるなど、実装上の不利が生じる。しかしこのような組み合わせにより、上記（式１''）に記載の基本的なＥＲＴモードよりもさらに鍵長の点で効率の良いモードを、プログラムの極端な複雑化を避けつつ実現することが可能である。この他にも様々な組み合わせのパターンが考えられ、それぞれのパターンにより、必要とする鍵長や実装の容易性は変化することになる。【０１３０】
（第５の実施形態）
次に、第５の実施形態について説明する。
第５の実施形態における共通鍵ブロック暗号化装置は、第１の実施形態における共通鍵ブロック暗号化装置の具備する擬似乱数生成手段（１０４）が、単一のブロック暗号による上記（式２）の修正カウンターモードを基に、中間乱数の生成を行うことを特徴とするものである。【０１３１】
このように、疑似乱数生成手段（１０４）が、単一のブロック暗号による上記（式２）の修正カウンターモードを基に、中間乱数の生成を行うことで、鍵の簡素化を図ることが可能となる。【０１３２】
（第６の実施形態）
次に、第６の実施形態について説明する。
第６の実施形態における共通鍵ブロック暗号化装置は、第１の実施形態における共通鍵ブロック暗号化装置の具備する擬似乱数生成手段（１０４）が、単一のブロック暗号による上記（式３）の修正ＯＦＢモードを基に、中間乱数の生成を行うことを特徴とするものである。【０１３３】
このように、擬似乱数生成手段（１０４）が、単一のブロック暗号による上記（式３）の修正ＯＦＢモードを基に、中間乱数の生成を行うことで、鍵の簡素化を図ることが可能となる。【０１３４】
（第７の実施形態）
次に、第７の実施形態について説明する。
第７の実施形態における共通鍵ブロック暗号化装置は、第２の実施形態における共通鍵ブロック暗号化装置の具備する単位ブロック暗号化手段（２０３）が、ブロック暗号を用いて単位ブロック中間平文を単位ブロック中間暗号文に変換し、擬似乱数生成手段（２０４）が、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードの最初の暗号化処理を省略したモードに、単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して中間乱数とすることを特徴とするものである。以下、第７の実施形態における共通鍵ブロック暗号化装置について説明する。【０１３５】
第７の実施形態における共通鍵ブロック暗号化装置は、第２の実施形態における共通鍵ブロック暗号化装置の具備する擬似乱数生成手段（２０４）が、単位ブロック中間暗号文を、図５に示す順序付きツリーモードからブロック暗号Ｐ１による暗号化（図５ステップＣ２）を省略したモードに入力し、中間乱数の生成を行うことを特徴とするものである。【０１３６】
このように、第７の実施形態における共通鍵ブロック暗号化装置は、単位ブロック暗号化手段（２０３）が、ブロック暗号を用いて単位ブロック中間平文を単位ブロック中間暗号文に変換し、擬似乱数生成手段（２０４）が、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による順序つきツリーモードの最初の暗号化処理を省略したモードに、単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して中間乱数を生成することで、鍵の長さは順序付きツリーモードの出力ブロック数のログオーダまで短くできるため、鍵スケジューリングの時間を削減し、暗号文を出力するまでのオーバーヘッドの時間を短縮することが可能となる。【０１３７】
即ち、ブロック暗号の鍵は、通常マスター鍵を用いた鍵スケジューリングにより生成されることになるが、この鍵が短いということは、それを生成するためのマスター鍵を用いた鍵スケジューリングの時間も短縮することが可能となるためである。【０１３８】
（第８の実施形態）
次に、第８の実施形態について説明する。
第８の実施形態における共通鍵ブロック暗号化装置は、第７の実施形態における共通鍵ブロック暗号化装置の具備する擬似乱数生成手段（２０４）が、ブロック暗号と、ブロック暗号を簡略化して得られる簡易ブロック暗号と、による上述した（式１’）に記載のＰＲＴモード、もしくは上述した（式１''）に記載のＥＲＴモード、もしくは、上述した（式２''）に記載されたモードのように、順序つきツリーモードとＰＲＴモードとＥＲＴモードとの組み合わせによるモードから、最初のブロック暗号Ｐ１による暗号化処理を省略したモードに、単位ブロック中間暗号文を入力することで得られる複数の暗号文を連結して中間乱数とすることを特徴とするものである。【０１３９】
（第９の実施形態）
次に、第９の実施形態について説明する。
第９の実施形態における共通鍵ブロック暗号化装置は、第２の実施形態における共通鍵ブロック暗号化装置の具備する擬似乱数生成手段（２０４）が、単一のブロック暗号による上記（式２）の修正カウンターモードの、入力に対して最初に行われる暗号化のみを省略したモードを用いて、中間乱数の生成を行うことを特徴とするものである。【０１４０】
このように、擬似乱数生成手段（２０４）が、単一のブロック暗号による上記（式２）の修正カウンターモードの、入力に対して最初に行われる暗号化のみを省略したモードを用いて、中間乱数の生成を行うことで、鍵の簡素化を図ることが可能となる。【０１４１】
（第１０の実施形態）
次に、第１０の実施形態について説明する。
第１０の実施形態における共通鍵ブロック暗号化装置は、第２の実施形態における共通鍵ブロック暗号化装置の具備する擬似乱数生成手段（２０４）が、単一のブロック暗号による上記（式３）の修正ＯＦＢモードの、入力に対して最初に行われる暗号化のみを省略したモードを用いて、中間乱数の生成を行うことを特徴とするものである。【０１４２】
このように、擬似乱数生成手段（２０４）が、単一のブロック暗号による上記（式３）の修正ＯＦＢモードの、入力に対して最初に行われる暗号化のみを省略したモードを用いて、中間乱数の生成を行うことで、鍵の簡素化を図ることが可能となる。【０１４３】
（第１１の実施形態）
次に、第１１の実施形態について説明する。
第１１の実施形態における共通鍵ブロック暗号化装置は、第１、第２の実施形態における共通鍵ブロック暗号化装置の具備する擬似乱数生成手段（１０４、２０４）が、初期ベクトルと呼ばれる付加的な値を鍵ストリーム生成のための入力として受け入れるストリーム暗号を用いて、単位ブロック中間暗号文を入力として生成した鍵ストリームを中間乱数として出力することを特徴とするものである。【０１４４】
このようなストリーム暗号は、例えば、非特許文献６に開示されているストリーム暗号ＳＥＡＬにより実現することが可能となる。また、ブロック暗号で単位ブロック中間暗号文を暗号化し、該暗号化した結果を、初期ベクトルを入力として受け付けるストリーム暗号に入力することでも実現することは可能となる。【０１４５】
このように、第１と第２の実施形態の共通鍵ブロック暗号化装置において、単位ブロック暗号化手段（１０３、２０３）が、ブロック暗号を用いて単位ブロック中間平文を単位ブロック中間暗号文に変換し、擬似乱数生成手段（１０４、２０４）が、初期ベクトルを付加的な入力として受け付けるストリーム暗号に、該単位ブロック中間暗号文を初期ベクトルとして入力して得られる鍵ストリームを中間乱数として生成することで、鍵の簡素化を図ることが可能となる。【０１４６】
なお、上述する実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。例えば、上記各実施形態の共通鍵ブロック暗号化装置における処理動作は、コンピュータプログラムにより実行することも可能であり、また、上記のプログラムは、光記録媒体、磁気記録媒体、光磁気記録媒体、または半導体等の記録媒体に記録し、その記録媒体からプログラムを情報処理装置に読み込ませることで、上述した処理動作を情報処理装置において実行させることも可能である。また、所定のネットワークを介して接続されている外部機器からプログラムを情報処理装置に読み込ませることで、上述した処理動作を情報処理装置において実行させることも可能である。
【産業上の利用可能性】
【０１４７】
本発明にかかる共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラムは、２者間で暗号化通信を行うシステムや、映画や音楽などのコンテンツを安全に配信するシステム、また、コンピュータサーバ上のデータを安全に運用するためのファイル暗号化の用途に適用可能である。
【図１】
0004793268.tif 000002
【図２】
0004793268.tif 000003
【図３】
0004793268.tif 000004
【図４】
0004793268.tif 000005
【図５】
0004793268.tif 000006
【図６】
0004793268.tif 000007
【図７】
0004793268.tif 000008
【図８】
0004793268.tif 000009