(57)【要約】【課題】ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にすること。【解決手段】情報処理装置１００では、情報処理装置１００の通常処理に利用される情報の中から乱数要素を含む乱数性情報を取得して平文データ１０１の一部に組み込むことによって暗号化強度を保持する。従来の情報処理装置には、乱数発生器などの乱数性情報を生成する機能や、外部から乱数性情報を入手する機能が不可欠であった。ところが、本実施の形態にかかる情報処理装置１００の場合、情報処理装置１００自身が使用している情報の中から取得した乱数性情報を平文データ１０１に組み込むため、共通鍵暗号化に用いる共通鍵は固定値であってもよい。すなわち、各情報処理装置１００間に事前に共通鍵を配布しておくことができる。【選択図】図１
2011151689.tif 000002
【特許請求の範囲】
【請求項１】
他の情報処理装置と共通の固定の共通鍵を用いて平文を暗号化する情報処理装置であって、
前記情報処理装置内で使用されている乱数性情報を取得する取得手段と、
暗号化対象データおよび鍵情報が設定されると、前記鍵情報を用いて前記暗号化対象データを暗号化することにより暗号化データを出力する暗号化手段と、
前記暗号化手段によって暗号化された暗号化データを前記他の情報処理装置に送信する送信手段と、
前記取得手段によって前記乱数性情報が取得された場合は、前記固定の共通鍵を前記鍵情報に設定し前記乱数性情報を前記暗号化対象データに設定する第１の暗号化設定処理と、前記暗号化手段によって前記暗号化データが得られた場合は、当該暗号化データを前記鍵情報に設定し前記平文の少なくとも一部を前記対象データに設定する第２の暗号化設定処理を実行する設定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記取得手段は、
前記情報処理装置内で使用されている乱数性情報として、当該情報処理装置内で使用されている時刻情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記暗号化手段は、前記暗号化対象データを所定のテータ単位ごとのブロック群に分割した後、前記鍵情報を用いて前記ブロック群の先頭のブロックから順に暗号化することにより前記ブロック群の暗号化データを出力することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
他の情報処理装置と共通の固定の共通鍵を用いて前記他の情報処理装置からの暗号化データを復号する情報処理装置であって、
復号対象データおよび復号鍵情報が設定されると、前記復号鍵情報を用いて前記復号対象データを復号することにより復号データを出力する復号手段と、
前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断する判断手段と、
前記判断手段による判断前において前記復号手段に前記暗号化データが与えられた場合は、前記固定の共通鍵を前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定することにより、前記復号手段に前記復号データとして前記他の情報処理装置内で使用されている乱数性情報を出力させる第１の復号設定処理と、前記判断手段によって前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であると判断された場合は、前記復号対象データを前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定する第２の復号設定処理を実行する設定手段と、
を備えることを特徴とする情報処理装置。
【請求項５】
前記設定手段は、
前記判断手段によって前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式でないと判断された場合は、前記第２の復号設定処理に代わり、前記復号手段に前記暗号化データを廃棄させる廃棄設定処理を実行することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記乱数性情報は、前記他の情報処理装置内で使用されている時刻情報であることを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
前記設定手段は、
前記他の情報処理装置内で使用されている時刻情報が前記情報処理装置内で使用されている時刻情報と比較して所定範囲内に収まる場合、前記第２の復号設定処理を実行することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記復号手段は、前記復号対象データとして所定のデータ単位のブロック群が設定されると、前記復号鍵情報を用いて前記ブロック群の先頭のブロックから順に前記復号対象データを復号することにより復号データを出力し、
前記判断手段は、前記先頭のブロックの復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断することを特徴する請求項４〜７のいずれか一つに記載の情報処理装置。
【請求項９】
取得手段と設定手段と暗号化手段と送信手段とを備え、他の情報処理装置と共通の固定の共通鍵を用いて平文を暗号化するコンピュータが、
前記取得手段により、前記情報処理装置内で使用されている乱数性情報を取得する取得工程と、
前記暗号化手段により、暗号化対象データおよび鍵情報が設定されると、前記鍵情報を用いて前記暗号化対象データを暗号化することにより暗号化データを出力する暗号化工程と、
前記送信手段により、前記暗号化工程によって暗号化された暗号化データを前記他の情報処理装置に送信する送信工程と、
前記設定手段により、前記取得工程によって前記乱数性情報が取得された場合は、前記固定の共通鍵を前記鍵情報に設定し前記乱数性情報を前記暗号化対象データに設定する第１の暗号化設定処理と、前記暗号化工程によって前記暗号化データが得られた場合は、当該暗号化データを前記鍵情報に設定し前記平文の少なくとも一部を前記対象データに設定する第２の暗号化設定処理を実行する設定工程と、
を実行することを特徴とする情報処理方法。
【請求項１０】
前記暗号化工程では、前記暗号化対象データを所定のテータ単位ごとのブロック群に分割した後、前記鍵情報を用いて前記ブロック群の先頭のブロックから順に暗号化することにより前記ブロック群の暗号化データを出力することを特徴とする請求項９に記載の情報処理方法。
【請求項１１】
復号手段と判断手段と設定手段とを備え、他の情報処理装置と共通の固定の共通鍵を用いて前記他の情報処理装置からの暗号化データを復号するコンピュータが、
前記復号手段により、復号対象データおよび復号鍵情報が設定されると、前記復号鍵情報を用いて前記復号対象データを復号することにより復号データを出力する復号工程と、
前記判断手段により、前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断する判断工程と、
前記設定手段により、前記判断工程による判断前において前記復号手段に前記暗号化データが与えられた場合は、前記固定の共通鍵を前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定することにより、前記復号手段に前記復号データとして前記他の情報処理装置内で使用されている乱数性情報を出力させる第１の復号設定処理と、前記判断工程によって前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であると判断された場合は、前記復号対象データを前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定する第２の復号設定処理を実行する設定工程と、
を実行することを特徴とする情報処理方法。
【請求項１２】
前記復号工程では、前記復号対象データとして所定のデータ単位のブロック群が設定されると、前記復号鍵情報を用いて前記ブロック群の先頭のブロックから順に前記復号対象データを復号することにより復号データを出力し、
前記判断工程では、前記先頭のブロックの復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断することを特徴する請求項１１に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示技術は、暗号化データの送受信を行う情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
従来より、情報処理装置間のデータ送受の際には、セキュリティを確保するために、共通鍵ブロック暗号化方式などの暗号化方式を採用した暗号化通信が行われている。通常、暗号化の対象となるデータ（平文）は、共通鍵ブロック暗号化による暗号化通信の際のデータ送信単位であるブロック長よりも長いため、平文は一旦ブロック長ごとに分割される。そして、分割されたブロック長のデータごとに暗号化・復号が行われる。
【０００３】
図１９は、ＥＣＢモードによる暗号化処理を示す説明図であり、図２０は、ＥＣＢモードによる復号処理を示す説明図である。図１９および図２０では、共通鍵を利用した共通暗号化処理の一例として、ＥＣＢ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｄｅ  Ｂｏｏｋ：電子符号表モード）モードにおける共通鍵ブロック暗号化の処理手順の一例を説明する。
【０００４】
たとえば、図１９に示した平文において、平文長を５１２ビット、共通鍵ブロック暗号のブロック長を１２８ビットとすると、暗号化処理によって、平文は平文ブロック１、平文ブロック２、平文ブロック３、平文ブロック４の４つのブロックに分割される。さらに、暗号化処理では、平文ブロック１を暗号化して暗号文ブロック１が作成される。同様に、平文ブロック２〜４から暗号文ブロック２〜４が作成される。そして送信側の情報処理装置からは、４つの暗号文ブロックが、１まとまりの暗号文として送信される。
【０００５】
一方、受信側の情報処理装置では、図２０のように、１まとまりの暗号文から４つの暗号文ブロックが復号される。そして、各暗号文ブロックを復号することで各平文ブロックを入手し、これら４つの平文ブロックから平文が復号される。以上説明した、ＥＣＢモードには、平文ブロックや暗号文ブロックの順序交換が可能であり、平文の改ざんが可能であるという問題が知られている。
【０００６】
図２１は、ＣＢＣモードによる暗号化処理を示す説明図であり、図２２は、ＣＢＣモードによる復号処理を示す説明図である。上述したようなＥＣＢモードの問題を解決するために、ブロックの順序を考慮した暗号化・復号方式として、ＣＢＣモード（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ：暗号化ブロック連鎖モード）が提供されている。ここで図２２，２３を用いて、ＣＢＣモードによる暗号化・復号処理の手順を説明する。
【０００７】
図２１に示した平文において、平文長を５１２ビット、共通鍵ブロック暗号のブロック長を１２８ビットすると、ＥＣＢモードと同様に、平文は４つの平文ブロックに分割される。さらに、暗号化処理では、平文ブロック１と、平文とは別に用意した、初期化ベクトル２１００というランダムな（たとえば、任意の１２８ビット長）データを用いて、暗号文ブロック１を生成する。
【０００８】
暗号化処理では、具体的には、平文ブロック１と初期化ベクトルのビットごとの排他的論理和を算出し、そのデータを暗号化することで、暗号文ブロック１を得る。つぎに、平文ブロック２と暗号文ブロック１のビットごとの排他的論理和を算出し、そのデータを暗号化することで、暗号文ブロック２を得る。同様にして、暗号文ブロック３、暗号文ブロック４を生成し、これら４つの暗号文ブロックを暗号文として送信する。また、暗号文の送信と共に初期化ベクトルも送信先となる情報処理装置へ送信される。
【０００９】
図２２に示すように、受信側では、暗号文から４つの暗号文ブロックを復元する。つぎに、復号処理として、暗号文ブロック１を復号し、復号データと初期化ベクトルのビットごとの排他的論理和を算出して平文ブロック１を得る。さらに受信の情報処理装置では、暗号文ブロック２を復号し、暗号文ブロック１とのビットごとの排他的論理和を算出して平文ブロック２を得る。同様にして、平文ブロック３、平文ブロック４を生成し、平文を復元する。図２２の説明では復号処理の際に、平文を得るために暗号文のブロック１から順に復号したが、任意のブロックから復号することもできる。以上説明したようにＣＢＣモードでは、暗号文ブロックの間にデータの依存関係があるため、順序を交換することができず、改ざんを見破ることができる（たとえば、下記特許文献１参照。）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００５−１２４６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した従来技術では、暗号化の際に平文とは別に初期化ベクトルが必要となるため、初期化ベクトルを入手もしくは生成する機能を用意しなければならない。また、暗号文を復号する際に初期化ベクトルが復号鍵として機能するため、送信先の情報処理装置に初期化ベクトルを送信しなければならない。
【００１２】
すなわち、送信側の情報処理装置は、初期化ベクトルを用意するための機能が要求され、送信時には、暗号文に加えて初期化ベクトルも併せて送信しなければならない。結果として、ＥＣＢモードに比べて同じ平文を送付するにも取り扱うデータ量が増加し通信処理全般にかかる処理負荷が増すという問題があった。
【００１３】
したがって、セキュリティ強度の高い共通鍵ブロック暗号化を利用したＣＢＣモードを採用したい場合であっても、センサーネットワークなど、情報処理装置の処理性能・処理時間・メモリ量などのリソースが限定されるような環境での実装は困難であった。
【００１４】
本開示技術は、上述した従来技術による問題点を解消するため、ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にする情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し本開示技術は、他の情報処理装置と共通の固定の共通鍵を用いて平文を暗号化する情報処理装置であって、前記情報処理装置内で使用されている乱数性情報を取得する処理と、対象データおよび鍵情報が設定されると、前記鍵情報を用いて前記対象データを暗号化することにより暗号化データを出力する処理と、暗号化された暗号化データを前記他の情報処理装置に送信する処理と、前記乱数性情報が取得された場合は、前記固定の共通鍵を前記鍵情報に設定し前記乱数性情報を前記対象データに設定する第１の暗号化設定処理と、当該暗号化データを前記鍵情報に設定し前記平文の少なくとも一部を前記対象データに設定する第２の暗号化設定処理を実行する処理と、前記暗号化データを任意の情報処理装置へ送信する処理と、を含むことを要件とする。
【発明の効果】
【００１６】
本情報処理装置および情報処理方法によれば、暗号化処理に必要なリソースや共通鍵のデータ量を削減できるため、ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にすることができるという効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態にかかる通信処理の一例を示す説明図である。
【図２】共通鍵暗号化の一例を示す説明図である。
【図３】情報処理装置のネットワーク構成を示す説明図である。
【図４】情報処理装置のハードウェア構成を示すブロック図である。
【図５】情報処理装置の機能的構成を示すブロック図である。
【図６】情報処理装置における送信処理の手順を示すフローチャートである。
【図７】情報処理装置における受信処理の手順を示すフローチャートである。
【図８】本実施の形態にかかるＣＢＣモードの暗号化処理を示す説明図である。
【図９】パディングの一例を示す説明図である。
【図１０】暗号化処理の手順を示すフローチャートである。
【図１１】暗号文ブロック作成処理の手順を示すフローチャートである。
【図１２】本実施の形態にかかるＣＢＣモードの復号処理を示す説明図である。
【図１３】復号処理の手順を示すフローチャートである。
【図１４】平文ブロック生成処理の手順を示すフローチャートである。
【図１５】データチェック処理の手順を示すフローチャートである。
【図１６】早期チェック処理の手順を示すフローチャートである。
【図１７】本実施の形態にかかるＣＴＲモードの暗号化処理を示す説明図である。
【図１８】本実施の形態にかかるＣＴＲモードの復号処理を示す説明図である。
【図１９】ＥＣＢモードによる暗号化処理を示す説明図である。
【図２０】ＥＣＢモードによる復号処理を示す説明図である。
【図２１】ＣＢＣモードによる暗号化処理を示す説明図である。
【図２２】ＣＢＣモードによる復号処理を示す説明図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照して、この発明にかかる情報処理装置および情報処理方法の好適な実施の形態を詳細に説明する。
【００１９】
（実施の形態）
図１は、本実施の形態にかかる通信処理の一例を示す説明図である。図１のように、本実施の形態にかかる情報処理装置１００では、情報処理装置１００の通常処理に利用される情報の中から乱数要素を含む乱数性情報を取得して平文データ１０１の一部に組み込むことによって暗号化強度を保持する。
【００２０】
図２は、共通鍵暗号化の一例を示す説明図である。図２を用いて、一般的な共通鍵暗号化について説明する。共通鍵暗号化処理では、送信者２１０と受信者２２０とは同じ鍵（共通鍵）２００を利用して暗号化・復号を行う。通常、通信の度に送信者２１０は、乱数性情報を含んだ複雑な鍵２００を用意して平文２０１に対して共通鍵暗号化を施す。したがって、送信者２１０側で作成された暗号文２０２を復号するには、受信者２２０側に今回用意された鍵２００を送信しなければならない。
【００２１】
上述のように通常の共通鍵暗号化では、共通鍵暗号の他に、暗号化強度を保持するために乱数性情報を用意する必要がある。したがって、従来の情報処理装置には、乱数発生器などの乱数性情報を生成する機能や、外部から乱数性情報を入手する機能が不可欠であった。ところが、本実施の形態にかかる情報処理装置１００の場合、図１にて説明したように平文データ１０１に乱数性情報を組み込むため、共通鍵暗号化に用いる共通鍵１１０は固定値であってもよい。すなわち、各情報処理装置１００間に事前に共通鍵を配布しておくことができる。
【００２２】
したがって、情報処理装置１００は、元々装置内で利用されている乱数性情報を活用するため、従来必要とされていた乱数性情報の生成機能や、外部からの入手機能の構成に相当するリソースを削減することができる。また、情報処理装置１００は、共通鍵を受信者２２０側の情報処理装置へ送信する必要もない。したがって、従来共通鍵送信にかかる通信負荷を解消し、ネットワークにおけるデータの通信効率を向上することができる。
【００２３】
さらに、本実施の形態にかかる情報処理装置１００は、他の情報処理装置１００から受信した暗号化データ１０２（後述の図５参照）を復号する際には、平文データ１０１に組み込まれた乱数性情報を利用して暗号化データ１０２の正当・不当を早期にチェックすることができる。情報処理装置１００が他の情報処理装置１００から送信された暗号化データ１０２を受信した場合、まず、乱数性情報が組み込まれた箇所（たとえば平文データ１０１の先頭部分）から復号を行う。
【００２４】
その後、いち早く復号された情報が、送信元の情報処理装置１００の乱数性情報として適切であるかに応じて、受信した暗号化データ１０２が正当なデータか否かを判断することができる。そして、情報処理装置１００は、受信した暗号化データ１０２が不当なデータであった場合には、残りのデータを復号する前に受信した暗号化データ１０２を廃棄することができる。
【００２５】
上述のように、情報処理装置１００は、早期に乱数性情報を組み込んだ平文データ１０１部分を復号して、暗号化データ１０２の正当性をチェックする。したがって、情報処理装置１００は、不正に生成された暗号化データ１０２をブロックすると共に、攻撃者による改ざん攻撃を検出し、ネットワークから不正に生成された暗号文ブロックを排除することが可能となり、ネットワークの安全性を向上させることができる。
【００２６】
以上説明したように、本実施の形態にかかる通信処理を適用することによってデータの送受信にかかる暗号化処理に必要なリソースや共通鍵のデータ量を削減できるため、ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にすることができる。以下には、上述した通信処理を実現する情報処理装置１００の具体的な構成例について説明する。
【００２７】
（情報処理装置のネットワーク構成）
図３は、情報処理装置のネットワーク構成を示す説明図である。本実施の形態にかかる情報処理装置１００は、たとえば、図３に示すようなネットワーク構成のもとで利用される。図３に示すように、情報処理装置１００は、同様の構成を持つ複数の情報処理装置１００ｘと相互通信を行う。また、これら情報処理装置１００，１００ｘは、ゲートウェイ３００を介してサーバ３１０にも接続されている。サーバ３１０は、情報処理装置１００，１００ｘを統括して管理を行うゲートウェイ３００と、を備える。
【００２８】
情報処理装置１００，１００ｘは、相互に定常的な通信対象であり、固定の共通鍵を定期的に配布し合う。また情報処理装置１００，１１０ｘの相互間通信は、いわゆるアドホックな通信を実現している。また、情報処理装置１００ｘの中にいずれかの情報処理装置１００ｘと定常的な通信が行われていないものがある場合であっても、定常的な通信を行っている情報処理装置１００ｘを経由してアドホックネットワークを自律的に構築することもできる。
【００２９】
（情報処理装置のハードウェア構成）
図４は、情報処理装置のハードウェア構成を示すブロック図である。図４において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０３と、磁気ディスクドライブ４０４と、磁気ディスク４０５と、光ディスクドライブ４０６と、光ディスク４０７と、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）４０８と、入力デバイス４０９と、出力デバイス４１０と、を備えている。また、各構成部はバス４００によってそれぞれ接続されている。
【００３０】
ここで、ＣＰＵ４０１は、情報処理装置１００の全体の制御を司る。ＲＯＭ４０２は、ブートプログラムや通信プログラムなどの各種プログラムを記憶している。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される。磁気ディスクドライブ４０４は、ＣＰＵ４０１の制御にしたがって磁気ディスク４０５に対するデータのリード／ライトを制御する。磁気ディスク４０５は、磁気ディスクドライブ４０４の制御で書き込まれたデータを記憶する。
【００３１】
光ディスクドライブ４０６は、ＣＰＵ４０１の制御にしたがって光ディスク４０７に対するデータのリード／ライトを制御する。光ディスク４０７は、光ディスクドライブ４０６の制御で書き込まれたデータを記憶したり、光ディスク４０７に記憶されたデータをコンピュータに読み取らせたりする。
【００３２】
通信インターフェース（以下、「通信Ｉ／Ｆ」と略する）４０８は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、ローカルネットワークなどの各種ネットワーク４１１に接続され、ネットワーク４１１を介して他の情報処理装置１００ｘに接続される。そして、通信Ｉ／Ｆ４０８は、ネットワーク４１１と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信Ｉ／Ｆ４０８には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３３】
入力デバイス４０９は、情報処理装置１００に対しての外部からの入力を受け付ける。入力デバイス４０９としては、具体的には、キーボード、マウスなどが挙げられる。キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３４】
出力デバイス４１０は、情報処理装置１００の受信データや情報処理装置１００のログデータなど指定されたデータを出力する。出力デバイス４１０としては、具体的には、ディスプレイ、プリンタなどが挙げられる。ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイとしてさらに、ＣＴＲ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。
【００３５】
（情報処理装置の機能的構成）
図５は、情報処理装置の機能的構成を示すブロック図である。情報処理装置１００は、取得部５０１と、暗号化部５０２と、設定部５０３と送信部５０４と、受信部５０５と、復号部５０６と、判断部５０７とを含む構成である。これら制御部となる機能（取得部５０１〜判断部５０７）は、具体的には、たとえば、図４に示したＲＯＭ４０２、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、通信Ｉ／Ｆ４０８により、その機能を実現する。
【００３６】
なお、情報処理装置１００は、他の情報処理装置１００ｘと共通の固定値があらかじめ共通鍵として配布されている。したがって、情報処理装置１００における暗号化・復号には、配布された固定値を共通鍵として利用する。
【００３７】
取得部５０１は、情報処理装置内で使用されている乱数性情報を取得する機能を有する。乱数性情報とは、乱数要素を含む情報を意味する。情報処理装置１００内で使用される乱数性情報としては、たとえば、内蔵時計の時刻情報や、ＣＰＵ４０１に搭載されているプログラムカウンタ（ＰＣ）値などが挙げられる。なお、取得された乱数性情報は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００３８】
暗号化部５０２は、対象データおよび鍵情報が設定されると、鍵情報を用いて対象データを暗号化する機能を有する。対象データおよび鍵情報の設定は、設定部５０３によって行われる。なお、暗号化が施された暗号化データ１０２はＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００３９】
設定部５０３は、暗号化部５０２による暗号化の際の対象データおよび鍵情報の設定を行う機能を有する。また、設定部５０３は、復号部５０６による暗号化における復号対象データおよび復号鍵情報の設定を行う機能も有している。まずは、送信処理の際に利用する機能部を説明するため、設定部５０３による暗号化の際の対象データおよび鍵情報の設定を行う設定処理（暗号化設定処理）について説明する。
【００４０】
設定部５０３では、平文データ１０１の中の先頭部分に組み込まれた乱数性情報を含んだデータを対象データとして設定する第１の暗号化設定処理と、平文データ１０１のうち、乱数性情報以外の残りのデータを対象データとして設定する第２の暗号化設定処理とが実行される。第１の暗号化設定処理の場合、設定部５０３は、乱数性情報に暗号化を施す鍵情報として、事前に各情報処理装置１００に配布された固定値を設定する。暗号化部５０２は、設定部５０３の第１の暗号化設定処理が行われると、設定された鍵情報を用いて対象データを暗号化する。したがって、暗号化部５０２では、固定値によって乱数性情報に暗号化が施され、暗号化データ１０２として出力される。
【００４１】
そして、第２の暗号化設定処理の場合、設定部５０３は、平文データ１０１のうち、乱数性情報以外の残りのデータに暗号化を施すための鍵情報として、第１の暗号化設定処理によって暗号化部５０２から出力された乱数性情報の暗号化データ１０２を設定する。なお、第２の暗号化設定処理を繰り返し実行することによって、平文データ１０１の中未設定のデータが無くなるまで暗号化が行われる。
【００４２】
すなわち、設定部５０３は、第１の暗号化設定処理を実行することによって、暗号化部５０２から乱数性情報の暗号化データ１０２が得られる。そして設定部５０３は、得られた暗号化データ１０２を鍵情報に設定し、平文データ１０１を構成するデータのうち所定量のデータを対象データに設定する。すると、第２の暗号化設定処理が実行されたことにより、暗号化部５０２からは更なる暗号化データ１０２が得られる。ここで得られた暗号化データ１０２は、先ほど第２の暗号化設定処理によって対象データとして設定されたデータ（平文データ１０１を構成するデータのうち所定量のデータ）である。
【００４３】
そして、設定部５０３は、平文データ１０１を構成するデータのうち、未設定のデータが無くなるまで上述した第２の暗号化設定を継続することによって、平文データ１０２は、所定量の暗号化データ１０２からなる暗号化データ群に作り替えられる。これら暗号化データ群は、第１の暗号化設定処理のように、乱数性情報を直接暗号化したデータではないが、鍵情報として前段の暗号化処理によって得られた暗号化データ１０２が利用されているため、すべてのデータに乱数要素が含まれている。
【００４４】
具体的には、最初の第２の暗号化設定処理では、第１の暗号化設定処理によって対象データに設定された乱数性情報を暗号化した暗号化データ１０２を鍵情報に設定し、２回目以降の第２の暗号化設定処理では、１回前の第２の暗号化設定処理によって得られた暗号化データ１０２を鍵情報に設定している。したがって、暗号化データ群を構成するすべての暗号化データ１０２には乱数性情報による乱数要素が受け継がれている。
【００４５】
送信部５０４は、暗号化部５０２よって暗号化された暗号化データ１０２を送信先となる他の情報処理装置１００ｘに送信する。なお、送信部５０４は、図３に例示したように情報処理装置１００ｘ同士が直接通信を行う構成であれば、暗号化データ１０２を直接他の情報処理装置１００ｘへの接続回線（有線・無線を問わず）に出力する。また、送信部５０４は、情報処理装置１００が、いずれかのネットワークを介して他の情報処理装置１００ｘとの通信を行う構成であれば、暗号化データ１０２をネットワークに出力する。
【００４６】
受信部５０５は、固定の共通鍵を持つ他の情報処理装置１００ｘから送信された暗号化データ１０２を受信する機能を有する。送信部５０４にて説明したように、情報処理装置１００と他の情報処理装置１００ｘとの接続状況に応じて、情報処理装置１００ｘとの接続回線もしくはいずれかのネットワークに接続して暗号化データを受信する。なお、受信された暗号化データは、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００４７】
復号部５０６は、復号対象データと復号鍵情報が設定されると、復号鍵情報を用いて復号対象データを復号して復号データを生成する機能を有する。上述したように、復号対象データと復号鍵情報の設定は設定部５０３によって行われる。なお、復号された平文データ１０２はＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される他に、利用者の指示に応じて出力デバイス４１０から任意の形式の情報として出力される。
【００４８】
判断部５０７は、指定された情報が所定の形式であるか否かを判断する機能を有する。判断部５０７は、復号化部５０６によって復号された復号化データに所定の形式の情報として、たとえば、乱数性情報が設定される。そして、復号化データの中に所定の形式の乱数性情報が含まれているか否かを判断する際に利用される。なお、判断結果は、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。
【００４９】
つぎに、暗号化データ１０２を受信した場合の設定部５０３の設定処理について説明する。設定部５０３は、第１の復号設定処理と、第２の復号設定処理とを実行する。具体的には、設定部５０３は、第１の復号設定処理として固定の共通鍵を復号鍵情報に設定し暗号化データを構成する先頭データを復号対象データに設定する。
【００５０】
さらに、設定部５０３は、第２の復号設定処理として、復号部５０６によって他の情報処理装置１００ｘ内で使用されている乱数性情報が得られた場合に、復号対象データを復号鍵情報に設定して、暗号化データ１０２を復号対象データに設定する。すなわち、第１の復号設定処理による復号結果に応じて第２の復号設定処理が実行される。
【００５１】
また、設定部５０３は、判断部５０７の判断結果から復号部５０６によって他の情報処理装置１００ｘ内で使用されている乱数性情報が得られなかった場合は、暗号化データ１０２は不正であるため、第２の復号処理に代わり、復号部５０６による復号前の暗号化データ１０２の廃棄を設定することもできる。さらに、第２の復号設定処理において、平文データが得られた場合は、第２の復号設定を暗号化データのうち、未設定のデータが無くなるまで継続するように設定することもできる。すなわち、設定部５０３は、暗号化データ１０２が正当なデータであると判断されると、自動的に残りの暗号化データ１０２を復号するように第２の復号設定処理を行う。
【００５２】
（情報処理装置における送受信処理の手順）
つぎに、上述した構成の情報処理装置１００を利用したデータの送受信処理の手順について説明する。情報処理装置１００では、利用者から送信用データとして平文データ１０１を受け付けると、自動的に平文データ１０１に暗号化処理が施され、暗号化データ１０２が作成される。したがって、情報処理装置１００から任意の情報処理装置１００ｘへ送信される際に、平文データ１０１は、暗号化データ１０２の状態である。同様に情報処理装置１００が、他の情報処理装置１００ｘから何らかのデータを受信する場合も、暗号化データ１０２の状態で受信する。
【００５３】
＜送信処理の手順＞
図６は、情報処理装置における送信処理の手順を示すフローチャートである。図６のフローチャートは、情報処理装置１００から任意の情報処理装置１００ｘへ平文データ１０１を送信する送信装置として機能する際の送信処理の手順を示している。図６の各処理を実行することによって、平文データ１０１に暗号化が施されるため安全に平文データ１０１を送信することができる。
【００５４】
図６において、情報処理装置１００は、まず、送信用の平文データ１０１を取得したか否かを判断する（ステップＳ６０１）。ステップＳ６０１では、平文データ１０１を取得するまで、待機状態となる（ステップＳ６０１：Ｎｏのループ）。その後、情報処理装置１００は、平文データ１０１を取得すると（ステップＳ６０１：Ｙｅｓ）、取得した平文データ１０１を送信するための処理に移行する。
【００５５】
まず、情報処理装置１００は、取得部５０１によって、乱数性情報を取得する（ステップＳ６０２）。その後、情報処理装置１００は、暗号化部５０２によって、設定部５０３の設定処理に応じた暗号化を行う。まず、設定部５０３によって乱数性情報が対象データ、固定値が鍵情報として設定されると、情報処理装置１００は、暗号化部５０３によって設定情報を利用した暗号化を行う（ステップＳ６０３）。
【００５６】
さらに、設定部５０３によって、残りの平文データ１０１が対象データ、ステップＳ６０３による暗号化にて得られた暗号化データ１０２が鍵情報としてそれぞれ設定されると、情報処理装置１００は、暗号化部５０２によって設定情報を利用した暗号化を行う（ステップＳ６０４）。
【００５７】
その後、情報処理装置１００は、未処理の平文データ１０１があるか否かを判断する（ステップＳ６０５）。ステップＳ６０５において、未処理の平文データ１０１があると判断された場合（ステップＳ６０５：Ｙｅｓ）、情報処理装置１００は、ステップＳ６０４の処理に戻り、未処理の平文データ１０１を順次暗号化する。その後、ステップＳ６０５において、未処理の平文データ１０１がないと判断されると（ステップＳ６０５：Ｎｏ）、情報処理装置１００は、送信部５０４によって暗号化データ１０２を送信先として指定されている任意の情報処理装置１００ｘへ送信する（ステップＳ６０６）。以上説明した手順によって送信時の一連の処理が終了する。
【００５８】
＜受信処理の手順＞
図７は、情報処理装置における受信処理の手順を示すフローチャートである。図７のフローチャートは、情報処理装置１００が任意の情報処理装置１００ｘから送信された暗号化データ１０２を受信する受信装置として機能する際の受信処理の手順を示している。図７の各処理を実行することによって、不正な暗号化データ１０２を受信した場合であっても、早期に不正判断を下すため、不必要な復号処理を抑制することができる。
【００５９】
図７において、情報処理装置１００は、まず、受信部５０６によって、暗号化データ１０２を受信したか否かを判断する（ステップＳ７０１）。ステップＳ７０１では、暗号化データ１０２を受信するまで情報処理装置１００は待機状態となる（ステップＳ７０１：Ｎｏのループ）。ステップＳ７０１において、暗号化データ１０２が受信されると（ステップＳ７０１：Ｙｅｓ）、情報処理装置１００は、復号部５０６によって先頭の暗号化データ１０２を共通鍵によって復号する（ステップＳ７０２）。
【００６０】
情報処理装置１００は、判断部５０７を利用して、復号された平文データ１０１に所定の乱数性情報が含まれているか否かを判断する（ステップＳ７０３）。ステップＳ７０３において、平文データ１０１に所定の乱数性情報が含まれていると判断された場合（ステップＳ７０３：Ｙｅｓ）、情報処理装置１００は、受信した暗号化データ１０２が正当な情報であると判断する。したがってし、情報処理装置１００は、復号部５０６によって残りの暗号化データ１０２を共通鍵によって復号し（ステップＳ７０４）、一連の受信処理を終了する。
【００６１】
一方、ステップＳ７０３において、平文データ１０１に所定の乱数性情報が含まれていないと判断された場合（ステップＳ７０３：Ｎｏ）、情報処理装置１００は、受信した暗号化データ１０２が不当な情報であると判断する。したがって、情報処理装置１００は、残りの暗号化データ１０２を廃棄し（ステップＳ７０５）、一連の受信処理を終了する。
【００６２】
以上本実施の形態にかかる情報処理装置１００による送受信処理の手順を説明したが、暗号化部５０２および復号部５０６における具体的な演算内容は、採用する共通鍵暗号化モードの種類によって異なる。また、いずれの共通鍵暗号化モードを採用するかによって、情報処理装置１００の適用に伴うメリットにも差異が生じる。したがって、以下には共通鍵暗号化モードとしてＣＢＣモード・ＣＴＲモードの２種類を挙げて具体的な暗号化・復号を説明する。
【００６３】
（ＣＢＣモードによる暗号化通信）
まず、情報処理装置１００を用いたＣＢＣモードによる暗号化通信について説明する。ＣＢＣモードは、平文をブロック化し、各平文ブロックを暗号化した暗号文ブロックを後段の平文ブロックの鍵情報に利用する暗号化通信である。ＣＢＣモードを採用するメリットとしては、１）平文ブロックが同じでも、異なる暗号文ブロックが得られる、２）復号の並列処理が可能（暗号化では不可能）、３）暗号文ブロックの復号順序を変更できる、４）安全性が高い点が挙げられる。反対にデメリットとして、１）初期化ベクトルが必要、２）パディング（詳しくは後述する）が必要、３）暗号化では並列処理できない点が挙げられる。
【００６４】
図８は、本実施の形態にかかるＣＢＣモードの暗号化処理を示す説明図である。ＣＢＣモードのデメリットとして初期化ベクトルが必要という点を挙げたが、情報処理装置１００の場合、平文の先頭に乱数性情報が配置されているため、初期化ベクトル８００は、任意の固定値を用意すればよい。
【００６５】
図８の例では、平文の先頭には、乱数性情報として情報処理装置１００内で使用されている時刻情報８０１が組み込まれている。また、ＣＢＣモードの場合、平文は所定のデータ量ごとに分割され平文ブロック１（時刻情報８０１）〜４が作成される。暗号化の際、情報処理装置１００は、まず初期化ベクトル８００（鍵情報）と時刻情報８０１（対象データ）との排他的論理和演算を行い、演算結果に任意の暗号化処理を施すことによって、暗号文ブロック１を作成する。
【００６６】
続いて、情報処理装置１００は、暗号文ブロック１（鍵情報）と平文ブロック２（対象データ）との排他的論理和演算を行い、演算結果に任意の暗号化処理を施すことによって、暗号文ブロック２を作成する。同様に、情報処理装置１００は、すべての平文ブロックに対して、直前に作成された暗号文ブロックｎを鍵情報として後段の平文ブロックｎ＋１から暗号文ブロックｎ＋１を作成する。なお、各平文ブロックは所定のデータ量に分割されるが、平文のデータ長によっては、末尾の平文ブロックのデータ量が所定値に満たないことがある。ところが、平文ブロックのデータ量が異なると、正しく復号できない。したがって、末尾の平文ブロックのデータ量を他の平文ブロックと同じデータ量に調整するパディングが必要となる。
【００６７】
図９は、パディングの一例を示す説明図である。パディングとは、暗号化の対象データを所定のブロック長（たとえば、１２８  ビット）の倍数に補正する技術である。図９に例示したデータ列９００は、パディングの一例であるＰＫＣＳ＃７パディングの設定内容を表している。ＰＫＣＳ＃７パディングでは、対象データＭのデータ長に応じて、対象データＭの後ろにデータ列９００に定めたようなパディングデータＰを追加する。パディングデータＰを追加することによって、対象データＭのデータ長は必ず１２８ビットの倍数になり、分割した各ブロックのデータ量が等しくなる。
【００６８】
例１として対象データＭ＝「ａ４  ６７  ８３  ２６  ５１  ２４  ｆ０  ４５  １０  ９ｂ  １２」であれば、パディングデータＰ＝「０５  ０５  ０５  ０５  ０５」が追加された「ａ４  ６７  ８３  ２６  ５１  ２４  ｆ０  ４５  １０  ９ｂ  １２  ０５  ０５  ０５  ０５  ０５」が作成される。なお、情報処理装置１００は、パディング済み暗号文を復号した場合には、パディングされたデータの最後のバイトを参照し、そこに記載された個数のバイトを後ろから自動的に削除するため、平文が変更されることはない。
【００６９】
つぎに、ＣＢＣモードによる暗号化の手順について説明する。図１０は、暗号化処理の手順を示すフローチャートである。図１０において、情報処理装置１００は、まず送信用の平文を入手したか否かを判断する（ステップＳ１００１）。情報処理装置１００は、ステップＳ１００１において、平文が入手されるまで待機状態となる（ステップＳ１００１：Ｎｏのループ）。
【００７０】
ステップＳ１００１において平文を入手したと判断されると（ステップＳ１００１：Ｙｅｓ）、情報処理装置１００は、平文を平文ブロックに分割する（ステップＳ１００２）。その後、情報処理装置１００は、平文ブロックから暗号文ブロックを作成し（ステップＳ１００３）、さらに、作成された暗号文ブロックから暗号文を作成する（ステップＳ１００４）。最後に、作成された暗号文を出力して（ステップＳ１００５）、一連の暗号化処理を終了する。
【００７１】
図１１は、暗号文ブロック作成処理の手順を示すフローチャートである。図１１は、図１０のステップＳ１００３の詳細な処理内容を示している。図１１において、情報処理装置１００は、ステップＳ１００２の完了をトリガに、変数ｉを初期値１に設定する（ステップＳ１１０１）。つぎに、情報処理装置１００は、平文ブロックｉと暗号文ブロックｉ−１とから、暗号文ブロックｉを作成する（ステップＳ１１０２）。
【００７２】
ステップＳ１１０２を詳しく説明すると、情報処理装置１００は、平文ブロックｉと共通鍵ブロック暗号によって暗号化して得られた暗号文ブロックｉ−１とのビットごとの排他的論理和を算出する。ただしｉ＝１の場合に限り、平文ブロック１と初期化ベクトル８００とから暗号文ブロック１を作成する。すなわち情報処理装置１００は、ステップＳ１１０２では、平文ブロック１を共通鍵ブロック暗号化によって暗号化して得られたデータと、初期化ベクトルとのビットごとの排他的論理和を算出している。
【００７３】
続いて、情報処理装置１００は、変数ｉを＋１インクリメントし（ステップＳ１１０３）、すべての平文ブロックの暗号化が終了したか否かを判断する（ステップＳ１１０４）。ステップＳ１１０４において、暗号化が終了していない平文ブロックがあると判断された場合は（ステップＳ１１０４：Ｎｏ）、ステップＳ１１０２の処理に戻り、つぎの暗号文ブロックｉを作成する。その後、ステップＳ１１０４において、暗号化が終了したと判断されると（ステップＳ１１０４：Ｙｅｓ）、ステップＳ１００４の処理に移行する。
【００７４】
図１２は、本実施の形態にかかるＣＢＣモードの復号処理を示す説明図である。続いて、ＣＢＣモードによる復号について説明する。図１２のように、情報処理装置１００は、暗号文の先頭の暗号文ブロック１を復号した後、初期化ベクトル８００との排他的論理和演算を行うことによって、平文ブロック１を作成する。情報処理装置１００は、作成された平文ブロック１が時刻情報１２００であれば、暗号文を問題なしと判断し、残りの暗号文ブロックの復号を行う。
【００７５】
なお、平文ブロック１が時刻情報１２００でなければ、暗号文は問題ありと判断し、残りの暗号文ブロックを廃棄する。すわち、情報処理装置１００は、平文ブロック１のチェックを行うことによって、図１２の網掛け部分の処理（不正データであれば無断な処理）を削減することができる。
【００７６】
つぎに、ＣＢＣモードによる復号の手順について説明する。図１３は、復号処理の手順を示すフローチャートである。図１３において、情報処理装置１００は、まず他の情報処理装置１００ｘから送信された暗号文を入手したか否かを判断する（ステップＳ１３０１）。情報処理装置１００は、ステップＳ１３０１において、暗号文が入手されるまで待機状態となる（ステップＳ１３０１：Ｎｏのループ）。
【００７７】
ステップＳ１３０１において暗号文を入手したと判断されると（ステップＳ１３０１：Ｙｅｓ）、情報処理装置１００は、暗号文を暗号文ブロックに分割する（ステップＳ１３０２）。その後、情報処理装置１００は、暗号文ブロックから平文ブロックを作成し（ステップＳ１３０３）、さらに、作成された平文ブロックから平文を作成する（ステップＳ１３０４）。最後に、作成された平文を出力して（ステップＳ１３０５）、一連の復号処理を終了する。
【００７８】
図１４は、平文ブロック生成処理の手順を示すフローチャートである。図１４のフローチャートは、図１３のステップＳ１３０３の詳細な処理内容を示している。図１４において、情報処理装置１００は、ステップＳ１３０２の処理が完了すると、まず、変数ｉ＝１に設定する（ステップＳ１４０１）。
【００７９】
その後、情報処理装置１００は、復号されていない暗号文ブロックの中の先頭から１つ暗号文ブロックに復号を施して平文ブロックｉ（先頭の暗号文ブロック１であれば平文ブロック１となる）を作成する（ステップＳ１４０２）。平文ブロックｉが作成されると、情報処理装置１００は、変数ｉを＋１インクリメントし（ステップＳ１４０３）、復号されていない暗号文ブロックが終了したか否かを判断する（ステップＳ１４０４）。
【００８０】
ステップＳ１４０４において復号されていない暗号文ブロックが終了していないと判断された場合（ステップＳ１４０４：Ｎｏ）、情報処理装置１００は、ステップＳ１４０２の処理に戻り、インクリメント後の平文ブロックｉを作成する。情報処理装置１００は、復号されていない暗号文ブロックが終了するまで、ステップＳ１４０２，Ｓ１４０３の処理を繰り返して実行する。その後、情報処理装置１００は、ステップＳ１４０４において、暗号文ブロックが終了したと判断されると（ステップＳ１４０４：Ｙｅｓ）、平文ブロック生成処理を終了し、ステップＳ１３０４の処理に移行する。
【００８１】
図１５は、データチェック処理の手順を示すフローチャートである。図１５は、情報処理装置１００に取得されたデータが所定の構成であるか否かに応じて、データの正当・不当を判断する手順を示している。図１５の処理は、平文ブロック１の早期チェックに利用される。
【００８２】
図１５において、情報処理装置１００は、まず、判断対象となるデータを入手したか否かを判断する（ステップＳ１５０１）。情報処理装置１００は、ステップＳ１５０１において、データが入手されるまで待機状態となる（ステップＳ１５０１：Ｎｏのループ）。その後、ステップＳ１５０１においてデータを入手したと判断されると（ステップＳ１５０１：Ｙｅｓ）、情報処理装置１００は、入手したデータが正当であるかのチェックを行う（ステップＳ１５０２）。
【００８３】
情報処理装置１００は、入手したデータが正当であると判断した場合（ステップＳ１５０２：Ｙｅｓ）、「正当」であることを出力して（ステップＳ１５０３）、一連のデータチェック処理を終了する。一方、情報処理装置１００は、入手したデータが正当でないと判断した場合（ステップＳ１５０２：Ｎｏ）、「正当でない」ことを出力して（ステップＳ１５０４）、一連のデータチェック処理を終了する。
【００８４】
なお、ステップＳ１５０２におけるデータの正当判断は、たとえば、下記のような基準に基づいて行うが、利用者が任意に設定することができる。
・入力されたデータが想定されたデータ長になっているか
・データ内の小データが想定された順序になっているか
・小データ値は想定された範囲に収まっているか
・小データは想定されたフォーマットで記載されているか
【００８５】
図１６は、早期チェック処理の手順を示すフローチャートである。図１６のフローチャートは、受信した暗号文の最初の暗号文ブロックを取り出して初期化ベクトルとから平文ブロックに変換してそのデータチェックを行う手順を示している。図１６の各処理を実行することによって、早期に暗号分の正当／不当を判断し、不当な暗号文に対する不要な復号処理を防ぐことができる。
【００８６】
図１６において、情報処理装置１００は、まず、暗号文を入手したか否かを判断する（ステップＳ１６０１）。情報処理装置１００は、ステップＳ１６０１において、暗号文が入手されるまで待機状態となる（ステップＳ１６０１：Ｎｏのループ）。
【００８７】
ステップＳ１６０１において暗号文を入手したと判断されると（ステップＳ１６０１：Ｙｅｓ）、情報処理装置１００は、暗号文ブロック１を生成し（ステップＳ１６０２）、暗号文ブロック１と初期化ベクトルとを利用して平文ブロック１を算出する（ステップＳ１６０３）。すなわち、ステップＳ１６０３では、情報処理装置１００は、暗号文ブロック１を共通鍵ブロック暗号によって復号して得られたデータと、初期化ベクトルとのビットごとの排他的論理和を算出している。
【００８８】
続いて、情報処理装置１００は、ステップＳ１６０３によって算出された平文ブロック１から時刻情報を抽出し、時刻情報の正当性が妥当か否かを判断する（ステップＳ１６０４）。ステップＳ１６０４では、たとえば、時刻情報に西暦、月、日、曜日、時、分、秒、マイクロ秒の情報が含まれる場合、それぞれの情報に対応するデータが、それぞれの情報を表すデータとして正当になっているかを判定する。
【００８９】
情報処理装置１００は、ステップＳ１６０４において、時刻情報が正当でないと判断された場合（ステップＳ１６０４：Ｎｏ）、入力された暗号文を廃棄して（ステップＳ１６０５）、一連のチェック処理を終了する。
【００９０】
一方、ステップＳ１６０４において、時刻情報が正当と判断された場合（ステップＳ１６０４：Ｙｅｓ）、情報処理装置１００は、さらに、時刻情報の範囲が正当であるかを判断する（ステップＳ１６０６）。時刻情報の範囲は、情報処理装置１００が属しているネットワークポリシーに準じて設定される。たとえば、情報処理装置１００は、想定されたアドホックネットワークが通信されてから１日前までのパケットは受理するが、それよりも過去のパケットは受理しないというポリシー下で運用されているものとする。
【００９１】
上述のようなポリシーの場合、ステップＳ１６０６では、時刻情報が現在の時刻の１日間での時刻であるかを判定する。そして、ステップＳ１６０６において、時刻情報が正当な範囲に含まれないと判断された場合（ステップＳ１６０６：Ｎｏ）、情報処理装置１００は、入力された暗号文は正当でないと判定して、入力された暗号文を廃棄して（ステップＳ１６０５）、一連のチェック処理を終了する。
【００９２】
一方、ステップＳ１６０６において、時刻情報が正当な範囲に含まると判断された場合（ステップＳ１６０６：Ｙｅｓ）、情報処理装置１００は、平文ブロック１は正当であると判定して、「正当」であることを出力して（ステップＳ１６０７）、一連のチェック処理を終了する。
【００９３】
以上説明したように、情報処理装置１００は、入力された暗号文の暗号文ブロック１に関する復号処理と復号データのチェックを行うため、暗号文が正当でない場合には、早期のデータ廃棄が可能となる。特に、ネットワークに対するサービス停止攻撃を行う攻撃者は、大量のパケットをネットワークに送信するが、正当な暗号化・復号用の鍵を保持していない。したがって、情報処理装置１００では、攻撃者が送信したパケットを復号した場合、早期チェックの段階で廃棄されることになる。また、情報処理装置１００は、先頭の暗号文ブロックだけを復号・チェックすることで、暗号文全体のチェックが可能であり、サービス停止攻撃の検出・対抗策として機能させることもできる。
【００９４】
また、ネットワークに対する再送信攻撃を行う攻撃者は、ネットワーク内を流れる正当なパケットを受信・保持し、攻撃時にそれらパケットをネットワークに送信するが、時刻情報が正当な範囲から外れることから、ステップＳ１６０６の処理によって時刻情報の範囲を検証することによって、攻撃者が送信したパケットを廃棄することができる。
【００９５】
（ＣＴＲモードによる暗号化通信）
つぎに、情報処理装置１００を用いたＣＴＲ（ＣｏｕｎＴＲ）モードによる暗号化通信について説明する。ＣＴＲモードは、カウンタの役割を果たす変数カウンタＣＴＲを利用して共通鍵暗号化を行う暗号化通信である。ＣＴＲモードを採用するメリットとしては、１）パディングが不要、２）暗号化・復号の処理内容が同じ、３）暗号化・復号の事前計算が可能、４）暗号化・復号で並列処理が可能という点が上げられる。反対にデメリットとして、乱数性要素を含む初期化ベクトルが必須となる点が挙げられる。
【００９６】
図１７は、本実施の形態にかかるＣＴＲモードの暗号化処理を示す説明図である。図１７のように、ＣＴＲモードの場合、初期化ベクトル１７００から変数カウンタＣＴＲが決定すると、以降のカウンタＣＴＲ＋１，ＣＴＲ＋２，…，ＣＴＲ＋ｎも一意的に決定する。そして、各平文ブロックは、決定した変数カウンタＣＴＲを鍵とした暗号化が施される。
【００９７】
上述のようにＣＴＲモードの場合、暗号化の鍵として利用されるカウンタＣＴＲの値が初期化ベクトル１７００によって決定する。ＣＢＣモードと異なり、ＣＴＲモードでは、各平文ブロックの暗号化の鍵として前段の平文ブロックの暗号文のブロックを利用することなく、初期化ベクトル１７００から決定した変数カウンタＣＴＲが暗号化の鍵として利用される。したがって、変数カウンタＣＴＲ自体に乱数性要素がなければ、暗号化の鍵に乱数性情報が含まれず、暗号化強度が著しく低下してしまう。
【００９８】
したがって、ＣＴＲモードを採用する場合、ＣＢＣモードのように固定値を初期化ベクトル１７００として代用できない。したがって、情報処理装置１００には、初期化ベクトルを生成もしくは取得する機構を備える必要がある。また、受信側の情報処理装置１００ｘにも初期化ベクトル１７００を送信する必要がある。
【００９９】
図１８は、本実施の形態にかかるＣＴＲモードの復号処理を示す説明図である。図１８のように、ＣＴＲモードの場合、初期化ベクトル１７００を取得すれば暗号化と同じ処理によって復号を行うことができる。なお、ＣＴＲモードにおける復号も、先頭の暗号文ブロック１を先に復号し、フォーマットチェックを行うことによって、早期に暗号文の正当／不当を判断することができる。したがって、ＣＴＲモードによる通信処理は、復号処理の効率化を第１の目的とするような情報処理装置１００への適用が望ましい。
【０１００】
以上説明したように、本実施の形態にかかる情報処理装置および情報処理方法によれば、情報処理装置内で使用されている情報の中から乱数性情報を取得して、平文に組み込むことで、共通の固定値を鍵情報としても、暗号化強度の高い共通鍵暗号化が可能になる。本技術のように、情報処理装置内で使用されている乱数性情報を活用することによって、乱数値を発生もしくは入手する機構を削減することができる。さらに、共通鍵の送信処理が不要になるため、情報処理装置や通信回線への処理負荷を低減させることが可能となり、ネットワーク環境に左右されない暗号化通信が可能になる。
【０１０１】
また、上記技術では、平文を所定のデータ量ごとに暗号化する機能を備えることによって、通信回線の容量に対応して、暗号化データの容量を分散させることができる。したがって、大容量の平文データであっても、情報処理装置１００が接続している通信回線の容量を問わず、安全な送受信を実現することができる。
【０１０２】
また、上記技術では、さらに、暗号化データを受信した場合に、共通鍵として配布済みの固定値を復号鍵として利用して暗号化データの先頭部分から復号する構成にしてもよい。上述のような構成の場合、暗号化データを先頭部分にチェック用の情報（たとえば時刻情報）を組み込むことによって、復号の早期段階で暗号化データの正当性を判断し、不要な処理を排除することができる。
【０１０３】
また、上記技術のように、早期段階で暗号化データの正当性を判断した場合に、復号前の暗号化データを自動的に廃棄する機能を備えることによって、攻撃者などからの大量な不正パケットによって通信機能が麻痺するような事態を回避できる。
【０１０４】
また、上記技術では、さらに、暗号化強度を保持するための乱数性情報として、時刻情報を採用することによって、どのような構成の通信機器であっても本実施の形態にかかる通信処理を適用することができる。
【０１０５】
さらに乱数性情報として時刻情報を使用することで、データ内に乱数性を付与することができる。したがって、初期化ベクトルとして固定値を使用したとしても、安全性を低下させることなく共通鍵ブロック暗号化のＣＢＣモードによる暗号化・復号処理を実現することができる。また、時刻情報が平文内にもともと必要な情報である場合、平文情報を増加させることなく共通鍵ブロック暗号化のＣＢＣモードによる暗号化・復号処理が可能となるため、ネットワークにおけるデータの通信効率を向上することができる。
【０１０６】
さらに、本実施の形態にかかる情報処理装置および情報処理方法は、暗号文を構成する暗号文ブロックの先頭ブロックだけを復号して得られた情報から、暗号文が不正なパケットか否かを判断することができる。もし、不正なパケットを受信した場合であっても、残りの暗号文ブロックに対する不要な復号処理を行わずに、廃棄することが可能となる。また正当なパケットであっても、本手段を用いた場合の遅延や回路増加はほとんど発生しない。
【０１０７】
特に、本実施の形態にかかる情報処理装置および情報処理方法の適用が望まれる、ネットワーク環境では、サービス停止攻撃（ＤοＳ攻撃）と呼ばれる攻撃が行われることがある。サービス停止攻撃では、攻撃者はネットワークに対して大量なパケットを送信し、ネットワークの機能を停止させることを目的とする。したがって、サービス停止攻撃に対抗する対策として、上述のような早期段階での不正パケット廃棄は、非常に効果的である。
【０１０８】
さらにネットワークに対する別の攻撃として、再送信攻撃（リプレイ攻撃）と呼ばれる攻撃が知られている。再送信攻撃では、攻撃者はあらかじめ正規のパケットを入手・保管しておき、これらのパケットをネットワークに再度送信することで、サービスの機能低下や誤操作を目的としている。再送信攻撃に対抗する対策としてさまざまな手段が知られているが、本実施の形態にかかる情報処理装置および情報処理方法のように、時刻情報が所定の範囲に収まらない場合にパケットを廃棄する構成は、再送信攻撃への対策が可能になるという副次的な効果を有する。
【０１０９】
なお、本実施の形態で説明した情報処理方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信プログラムは、インターネットなどのネットワークを介して配布してもよい。
【０１１０】
また、本実施の形態で説明した情報処理装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した情報処理装置１００の機能（取得部５０１〜判断部５０７）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、情報処理装置１００を製造することができる。
【符号の説明】
【０１１１】
１００，１００ｘ  情報処理装置
１０１  平文データ
１０２  暗号化データ
１１０  共通鍵
５０１  取得部
５０２  暗号化部
５０３  設定部
５０４  送信部
５０５  受信部
５０６  復号部
５０７  判断部
【図１】
2011151689.tif 000003
【図２】
2011151689.tif 000004
【図３】
2011151689.tif 000005
【図４】
2011151689.tif 000006
【図５】
2011151689.tif 000007
【図６】
2011151689.tif 000008
【図７】
2011151689.tif 000009
【図８】
2011151689.tif 000010
【図９】
2011151689.tif 000011
【図１０】
2011151689.tif 000012
【図１１】
2011151689.tif 000013
【図１２】
2011151689.tif 000014
【図１３】
2011151689.tif 000015
【図１４】
2011151689.tif 000016
【図１５】
2011151689.tif 000017
【図１６】
2011151689.tif 000018
【図１７】
2011151689.tif 000019
【図１８】
2011151689.tif 000020
【図１９】
2011151689.tif 000021
【図２０】
2011151689.tif 000022
【図２１】
2011151689.tif 000023
【図２２】
2011151689.tif 000024