情報処理装置および情報処理方法
【課題】ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にすること。
【解決手段】情報処理装置100では、情報処理装置100の通常処理に利用される情報の中から乱数要素を含む乱数性情報を取得して平文データ101の一部に組み込むことによって暗号化強度を保持する。従来の情報処理装置には、乱数発生器などの乱数性情報を生成する機能や、外部から乱数性情報を入手する機能が不可欠であった。ところが、本実施の形態にかかる情報処理装置100の場合、情報処理装置100自身が使用している情報の中から取得した乱数性情報を平文データ101に組み込むため、共通鍵暗号化に用いる共通鍵は固定値であってもよい。すなわち、各情報処理装置100間に事前に共通鍵を配布しておくことができる。
【解決手段】情報処理装置100では、情報処理装置100の通常処理に利用される情報の中から乱数要素を含む乱数性情報を取得して平文データ101の一部に組み込むことによって暗号化強度を保持する。従来の情報処理装置には、乱数発生器などの乱数性情報を生成する機能や、外部から乱数性情報を入手する機能が不可欠であった。ところが、本実施の形態にかかる情報処理装置100の場合、情報処理装置100自身が使用している情報の中から取得した乱数性情報を平文データ101に組み込むため、共通鍵暗号化に用いる共通鍵は固定値であってもよい。すなわち、各情報処理装置100間に事前に共通鍵を配布しておくことができる。
【発明の詳細な説明】
【技術分野】
【0001】
本開示技術は、暗号化データの送受信を行う情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
従来より、情報処理装置間のデータ送受の際には、セキュリティを確保するために、共通鍵ブロック暗号化方式などの暗号化方式を採用した暗号化通信が行われている。通常、暗号化の対象となるデータ(平文)は、共通鍵ブロック暗号化による暗号化通信の際のデータ送信単位であるブロック長よりも長いため、平文は一旦ブロック長ごとに分割される。そして、分割されたブロック長のデータごとに暗号化・復号が行われる。
【0003】
図19は、ECBモードによる暗号化処理を示す説明図であり、図20は、ECBモードによる復号処理を示す説明図である。図19および図20では、共通鍵を利用した共通暗号化処理の一例として、ECB(Electronic Code Book:電子符号表モード)モードにおける共通鍵ブロック暗号化の処理手順の一例を説明する。
【0004】
たとえば、図19に示した平文において、平文長を512ビット、共通鍵ブロック暗号のブロック長を128ビットとすると、暗号化処理によって、平文は平文ブロック1、平文ブロック2、平文ブロック3、平文ブロック4の4つのブロックに分割される。さらに、暗号化処理では、平文ブロック1を暗号化して暗号文ブロック1が作成される。同様に、平文ブロック2〜4から暗号文ブロック2〜4が作成される。そして送信側の情報処理装置からは、4つの暗号文ブロックが、1まとまりの暗号文として送信される。
【0005】
一方、受信側の情報処理装置では、図20のように、1まとまりの暗号文から4つの暗号文ブロックが復号される。そして、各暗号文ブロックを復号することで各平文ブロックを入手し、これら4つの平文ブロックから平文が復号される。以上説明した、ECBモードには、平文ブロックや暗号文ブロックの順序交換が可能であり、平文の改ざんが可能であるという問題が知られている。
【0006】
図21は、CBCモードによる暗号化処理を示す説明図であり、図22は、CBCモードによる復号処理を示す説明図である。上述したようなECBモードの問題を解決するために、ブロックの順序を考慮した暗号化・復号方式として、CBCモード(Cipher Block Chaining:暗号化ブロック連鎖モード)が提供されている。ここで図22,23を用いて、CBCモードによる暗号化・復号処理の手順を説明する。
【0007】
図21に示した平文において、平文長を512ビット、共通鍵ブロック暗号のブロック長を128ビットすると、ECBモードと同様に、平文は4つの平文ブロックに分割される。さらに、暗号化処理では、平文ブロック1と、平文とは別に用意した、初期化ベクトル2100というランダムな(たとえば、任意の128ビット長)データを用いて、暗号文ブロック1を生成する。
【0008】
暗号化処理では、具体的には、平文ブロック1と初期化ベクトルのビットごとの排他的論理和を算出し、そのデータを暗号化することで、暗号文ブロック1を得る。つぎに、平文ブロック2と暗号文ブロック1のビットごとの排他的論理和を算出し、そのデータを暗号化することで、暗号文ブロック2を得る。同様にして、暗号文ブロック3、暗号文ブロック4を生成し、これら4つの暗号文ブロックを暗号文として送信する。また、暗号文の送信と共に初期化ベクトルも送信先となる情報処理装置へ送信される。
【0009】
図22に示すように、受信側では、暗号文から4つの暗号文ブロックを復元する。つぎに、復号処理として、暗号文ブロック1を復号し、復号データと初期化ベクトルのビットごとの排他的論理和を算出して平文ブロック1を得る。さらに受信の情報処理装置では、暗号文ブロック2を復号し、暗号文ブロック1とのビットごとの排他的論理和を算出して平文ブロック2を得る。同様にして、平文ブロック3、平文ブロック4を生成し、平文を復元する。図22の説明では復号処理の際に、平文を得るために暗号文のブロック1から順に復号したが、任意のブロックから復号することもできる。以上説明したようにCBCモードでは、暗号文ブロックの間にデータの依存関係があるため、順序を交換することができず、改ざんを見破ることができる(たとえば、下記特許文献1参照。)。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2005−12466号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上述した従来技術では、暗号化の際に平文とは別に初期化ベクトルが必要となるため、初期化ベクトルを入手もしくは生成する機能を用意しなければならない。また、暗号文を復号する際に初期化ベクトルが復号鍵として機能するため、送信先の情報処理装置に初期化ベクトルを送信しなければならない。
【0012】
すなわち、送信側の情報処理装置は、初期化ベクトルを用意するための機能が要求され、送信時には、暗号文に加えて初期化ベクトルも併せて送信しなければならない。結果として、ECBモードに比べて同じ平文を送付するにも取り扱うデータ量が増加し通信処理全般にかかる処理負荷が増すという問題があった。
【0013】
したがって、セキュリティ強度の高い共通鍵ブロック暗号化を利用したCBCモードを採用したい場合であっても、センサーネットワークなど、情報処理装置の処理性能・処理時間・メモリ量などのリソースが限定されるような環境での実装は困難であった。
【0014】
本開示技術は、上述した従来技術による問題点を解消するため、ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にする情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
上述した課題を解決し本開示技術は、他の情報処理装置と共通の固定の共通鍵を用いて平文を暗号化する情報処理装置であって、前記情報処理装置内で使用されている乱数性情報を取得する処理と、対象データおよび鍵情報が設定されると、前記鍵情報を用いて前記対象データを暗号化することにより暗号化データを出力する処理と、暗号化された暗号化データを前記他の情報処理装置に送信する処理と、前記乱数性情報が取得された場合は、前記固定の共通鍵を前記鍵情報に設定し前記乱数性情報を前記対象データに設定する第1の暗号化設定処理と、当該暗号化データを前記鍵情報に設定し前記平文の少なくとも一部を前記対象データに設定する第2の暗号化設定処理を実行する処理と、前記暗号化データを任意の情報処理装置へ送信する処理と、を含むことを要件とする。
【発明の効果】
【0016】
本情報処理装置および情報処理方法によれば、暗号化処理に必要なリソースや共通鍵のデータ量を削減できるため、ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にすることができるという効果を奏する。
【図面の簡単な説明】
【0017】
【図1】本実施の形態にかかる通信処理の一例を示す説明図である。
【図2】共通鍵暗号化の一例を示す説明図である。
【図3】情報処理装置のネットワーク構成を示す説明図である。
【図4】情報処理装置のハードウェア構成を示すブロック図である。
【図5】情報処理装置の機能的構成を示すブロック図である。
【図6】情報処理装置における送信処理の手順を示すフローチャートである。
【図7】情報処理装置における受信処理の手順を示すフローチャートである。
【図8】本実施の形態にかかるCBCモードの暗号化処理を示す説明図である。
【図9】パディングの一例を示す説明図である。
【図10】暗号化処理の手順を示すフローチャートである。
【図11】暗号文ブロック作成処理の手順を示すフローチャートである。
【図12】本実施の形態にかかるCBCモードの復号処理を示す説明図である。
【図13】復号処理の手順を示すフローチャートである。
【図14】平文ブロック生成処理の手順を示すフローチャートである。
【図15】データチェック処理の手順を示すフローチャートである。
【図16】早期チェック処理の手順を示すフローチャートである。
【図17】本実施の形態にかかるCTRモードの暗号化処理を示す説明図である。
【図18】本実施の形態にかかるCTRモードの復号処理を示す説明図である。
【図19】ECBモードによる暗号化処理を示す説明図である。
【図20】ECBモードによる復号処理を示す説明図である。
【図21】CBCモードによる暗号化処理を示す説明図である。
【図22】CBCモードによる復号処理を示す説明図である。
【発明を実施するための形態】
【0018】
以下に添付図面を参照して、この発明にかかる情報処理装置および情報処理方法の好適な実施の形態を詳細に説明する。
【0019】
(実施の形態)
図1は、本実施の形態にかかる通信処理の一例を示す説明図である。図1のように、本実施の形態にかかる情報処理装置100では、情報処理装置100の通常処理に利用される情報の中から乱数要素を含む乱数性情報を取得して平文データ101の一部に組み込むことによって暗号化強度を保持する。
【0020】
図2は、共通鍵暗号化の一例を示す説明図である。図2を用いて、一般的な共通鍵暗号化について説明する。共通鍵暗号化処理では、送信者210と受信者220とは同じ鍵(共通鍵)200を利用して暗号化・復号を行う。通常、通信の度に送信者210は、乱数性情報を含んだ複雑な鍵200を用意して平文201に対して共通鍵暗号化を施す。したがって、送信者210側で作成された暗号文202を復号するには、受信者220側に今回用意された鍵200を送信しなければならない。
【0021】
上述のように通常の共通鍵暗号化では、共通鍵暗号の他に、暗号化強度を保持するために乱数性情報を用意する必要がある。したがって、従来の情報処理装置には、乱数発生器などの乱数性情報を生成する機能や、外部から乱数性情報を入手する機能が不可欠であった。ところが、本実施の形態にかかる情報処理装置100の場合、図1にて説明したように平文データ101に乱数性情報を組み込むため、共通鍵暗号化に用いる共通鍵110は固定値であってもよい。すなわち、各情報処理装置100間に事前に共通鍵を配布しておくことができる。
【0022】
したがって、情報処理装置100は、元々装置内で利用されている乱数性情報を活用するため、従来必要とされていた乱数性情報の生成機能や、外部からの入手機能の構成に相当するリソースを削減することができる。また、情報処理装置100は、共通鍵を受信者220側の情報処理装置へ送信する必要もない。したがって、従来共通鍵送信にかかる通信負荷を解消し、ネットワークにおけるデータの通信効率を向上することができる。
【0023】
さらに、本実施の形態にかかる情報処理装置100は、他の情報処理装置100から受信した暗号化データ102(後述の図5参照)を復号する際には、平文データ101に組み込まれた乱数性情報を利用して暗号化データ102の正当・不当を早期にチェックすることができる。情報処理装置100が他の情報処理装置100から送信された暗号化データ102を受信した場合、まず、乱数性情報が組み込まれた箇所(たとえば平文データ101の先頭部分)から復号を行う。
【0024】
その後、いち早く復号された情報が、送信元の情報処理装置100の乱数性情報として適切であるかに応じて、受信した暗号化データ102が正当なデータか否かを判断することができる。そして、情報処理装置100は、受信した暗号化データ102が不当なデータであった場合には、残りのデータを復号する前に受信した暗号化データ102を廃棄することができる。
【0025】
上述のように、情報処理装置100は、早期に乱数性情報を組み込んだ平文データ101部分を復号して、暗号化データ102の正当性をチェックする。したがって、情報処理装置100は、不正に生成された暗号化データ102をブロックすると共に、攻撃者による改ざん攻撃を検出し、ネットワークから不正に生成された暗号文ブロックを排除することが可能となり、ネットワークの安全性を向上させることができる。
【0026】
以上説明したように、本実施の形態にかかる通信処理を適用することによってデータの送受信にかかる暗号化処理に必要なリソースや共通鍵のデータ量を削減できるため、ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にすることができる。以下には、上述した通信処理を実現する情報処理装置100の具体的な構成例について説明する。
【0027】
(情報処理装置のネットワーク構成)
図3は、情報処理装置のネットワーク構成を示す説明図である。本実施の形態にかかる情報処理装置100は、たとえば、図3に示すようなネットワーク構成のもとで利用される。図3に示すように、情報処理装置100は、同様の構成を持つ複数の情報処理装置100xと相互通信を行う。また、これら情報処理装置100,100xは、ゲートウェイ300を介してサーバ310にも接続されている。サーバ310は、情報処理装置100,100xを統括して管理を行うゲートウェイ300と、を備える。
【0028】
情報処理装置100,100xは、相互に定常的な通信対象であり、固定の共通鍵を定期的に配布し合う。また情報処理装置100,110xの相互間通信は、いわゆるアドホックな通信を実現している。また、情報処理装置100xの中にいずれかの情報処理装置100xと定常的な通信が行われていないものがある場合であっても、定常的な通信を行っている情報処理装置100xを経由してアドホックネットワークを自律的に構築することもできる。
【0029】
(情報処理装置のハードウェア構成)
図4は、情報処理装置のハードウェア構成を示すブロック図である。図4において、情報処理装置100は、CPU(Central Processing Unit)401と、ROM(Read‐Only Memory)402と、RAM(Random Access Memory)403と、磁気ディスクドライブ404と、磁気ディスク405と、光ディスクドライブ406と、光ディスク407と、通信I/F(Interface)408と、入力デバイス409と、出力デバイス410と、を備えている。また、各構成部はバス400によってそれぞれ接続されている。
【0030】
ここで、CPU401は、情報処理装置100の全体の制御を司る。ROM402は、ブートプログラムや通信プログラムなどの各種プログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。
【0031】
光ディスクドライブ406は、CPU401の制御にしたがって光ディスク407に対するデータのリード/ライトを制御する。光ディスク407は、光ディスクドライブ406の制御で書き込まれたデータを記憶したり、光ディスク407に記憶されたデータをコンピュータに読み取らせたりする。
【0032】
通信インターフェース(以下、「通信I/F」と略する)408は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネット、ローカルネットワークなどの各種ネットワーク411に接続され、ネットワーク411を介して他の情報処理装置100xに接続される。そして、通信I/F408は、ネットワーク411と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F408には、たとえばモデムやLANアダプタなどを採用することができる。
【0033】
入力デバイス409は、情報処理装置100に対しての外部からの入力を受け付ける。入力デバイス409としては、具体的には、キーボード、マウスなどが挙げられる。キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0034】
出力デバイス410は、情報処理装置100の受信データや情報処理装置100のログデータなど指定されたデータを出力する。出力デバイス410としては、具体的には、ディスプレイ、プリンタなどが挙げられる。ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイとしてさらに、CTR、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。
【0035】
(情報処理装置の機能的構成)
図5は、情報処理装置の機能的構成を示すブロック図である。情報処理装置100は、取得部501と、暗号化部502と、設定部503と送信部504と、受信部505と、復号部506と、判断部507とを含む構成である。これら制御部となる機能(取得部501〜判断部507)は、具体的には、たとえば、図4に示したROM402、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、通信I/F408により、その機能を実現する。
【0036】
なお、情報処理装置100は、他の情報処理装置100xと共通の固定値があらかじめ共通鍵として配布されている。したがって、情報処理装置100における暗号化・復号には、配布された固定値を共通鍵として利用する。
【0037】
取得部501は、情報処理装置内で使用されている乱数性情報を取得する機能を有する。乱数性情報とは、乱数要素を含む情報を意味する。情報処理装置100内で使用される乱数性情報としては、たとえば、内蔵時計の時刻情報や、CPU401に搭載されているプログラムカウンタ(PC)値などが挙げられる。なお、取得された乱数性情報は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0038】
暗号化部502は、対象データおよび鍵情報が設定されると、鍵情報を用いて対象データを暗号化する機能を有する。対象データおよび鍵情報の設定は、設定部503によって行われる。なお、暗号化が施された暗号化データ102はRAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0039】
設定部503は、暗号化部502による暗号化の際の対象データおよび鍵情報の設定を行う機能を有する。また、設定部503は、復号部506による暗号化における復号対象データおよび復号鍵情報の設定を行う機能も有している。まずは、送信処理の際に利用する機能部を説明するため、設定部503による暗号化の際の対象データおよび鍵情報の設定を行う設定処理(暗号化設定処理)について説明する。
【0040】
設定部503では、平文データ101の中の先頭部分に組み込まれた乱数性情報を含んだデータを対象データとして設定する第1の暗号化設定処理と、平文データ101のうち、乱数性情報以外の残りのデータを対象データとして設定する第2の暗号化設定処理とが実行される。第1の暗号化設定処理の場合、設定部503は、乱数性情報に暗号化を施す鍵情報として、事前に各情報処理装置100に配布された固定値を設定する。暗号化部502は、設定部503の第1の暗号化設定処理が行われると、設定された鍵情報を用いて対象データを暗号化する。したがって、暗号化部502では、固定値によって乱数性情報に暗号化が施され、暗号化データ102として出力される。
【0041】
そして、第2の暗号化設定処理の場合、設定部503は、平文データ101のうち、乱数性情報以外の残りのデータに暗号化を施すための鍵情報として、第1の暗号化設定処理によって暗号化部502から出力された乱数性情報の暗号化データ102を設定する。なお、第2の暗号化設定処理を繰り返し実行することによって、平文データ101の中未設定のデータが無くなるまで暗号化が行われる。
【0042】
すなわち、設定部503は、第1の暗号化設定処理を実行することによって、暗号化部502から乱数性情報の暗号化データ102が得られる。そして設定部503は、得られた暗号化データ102を鍵情報に設定し、平文データ101を構成するデータのうち所定量のデータを対象データに設定する。すると、第2の暗号化設定処理が実行されたことにより、暗号化部502からは更なる暗号化データ102が得られる。ここで得られた暗号化データ102は、先ほど第2の暗号化設定処理によって対象データとして設定されたデータ(平文データ101を構成するデータのうち所定量のデータ)である。
【0043】
そして、設定部503は、平文データ101を構成するデータのうち、未設定のデータが無くなるまで上述した第2の暗号化設定を継続することによって、平文データ102は、所定量の暗号化データ102からなる暗号化データ群に作り替えられる。これら暗号化データ群は、第1の暗号化設定処理のように、乱数性情報を直接暗号化したデータではないが、鍵情報として前段の暗号化処理によって得られた暗号化データ102が利用されているため、すべてのデータに乱数要素が含まれている。
【0044】
具体的には、最初の第2の暗号化設定処理では、第1の暗号化設定処理によって対象データに設定された乱数性情報を暗号化した暗号化データ102を鍵情報に設定し、2回目以降の第2の暗号化設定処理では、1回前の第2の暗号化設定処理によって得られた暗号化データ102を鍵情報に設定している。したがって、暗号化データ群を構成するすべての暗号化データ102には乱数性情報による乱数要素が受け継がれている。
【0045】
送信部504は、暗号化部502よって暗号化された暗号化データ102を送信先となる他の情報処理装置100xに送信する。なお、送信部504は、図3に例示したように情報処理装置100x同士が直接通信を行う構成であれば、暗号化データ102を直接他の情報処理装置100xへの接続回線(有線・無線を問わず)に出力する。また、送信部504は、情報処理装置100が、いずれかのネットワークを介して他の情報処理装置100xとの通信を行う構成であれば、暗号化データ102をネットワークに出力する。
【0046】
受信部505は、固定の共通鍵を持つ他の情報処理装置100xから送信された暗号化データ102を受信する機能を有する。送信部504にて説明したように、情報処理装置100と他の情報処理装置100xとの接続状況に応じて、情報処理装置100xとの接続回線もしくはいずれかのネットワークに接続して暗号化データを受信する。なお、受信された暗号化データは、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0047】
復号部506は、復号対象データと復号鍵情報が設定されると、復号鍵情報を用いて復号対象データを復号して復号データを生成する機能を有する。上述したように、復号対象データと復号鍵情報の設定は設定部503によって行われる。なお、復号された平文データ102はRAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される他に、利用者の指示に応じて出力デバイス410から任意の形式の情報として出力される。
【0048】
判断部507は、指定された情報が所定の形式であるか否かを判断する機能を有する。判断部507は、復号化部506によって復号された復号化データに所定の形式の情報として、たとえば、乱数性情報が設定される。そして、復号化データの中に所定の形式の乱数性情報が含まれているか否かを判断する際に利用される。なお、判断結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0049】
つぎに、暗号化データ102を受信した場合の設定部503の設定処理について説明する。設定部503は、第1の復号設定処理と、第2の復号設定処理とを実行する。具体的には、設定部503は、第1の復号設定処理として固定の共通鍵を復号鍵情報に設定し暗号化データを構成する先頭データを復号対象データに設定する。
【0050】
さらに、設定部503は、第2の復号設定処理として、復号部506によって他の情報処理装置100x内で使用されている乱数性情報が得られた場合に、復号対象データを復号鍵情報に設定して、暗号化データ102を復号対象データに設定する。すなわち、第1の復号設定処理による復号結果に応じて第2の復号設定処理が実行される。
【0051】
また、設定部503は、判断部507の判断結果から復号部506によって他の情報処理装置100x内で使用されている乱数性情報が得られなかった場合は、暗号化データ102は不正であるため、第2の復号処理に代わり、復号部506による復号前の暗号化データ102の廃棄を設定することもできる。さらに、第2の復号設定処理において、平文データが得られた場合は、第2の復号設定を暗号化データのうち、未設定のデータが無くなるまで継続するように設定することもできる。すなわち、設定部503は、暗号化データ102が正当なデータであると判断されると、自動的に残りの暗号化データ102を復号するように第2の復号設定処理を行う。
【0052】
(情報処理装置における送受信処理の手順)
つぎに、上述した構成の情報処理装置100を利用したデータの送受信処理の手順について説明する。情報処理装置100では、利用者から送信用データとして平文データ101を受け付けると、自動的に平文データ101に暗号化処理が施され、暗号化データ102が作成される。したがって、情報処理装置100から任意の情報処理装置100xへ送信される際に、平文データ101は、暗号化データ102の状態である。同様に情報処理装置100が、他の情報処理装置100xから何らかのデータを受信する場合も、暗号化データ102の状態で受信する。
【0053】
<送信処理の手順>
図6は、情報処理装置における送信処理の手順を示すフローチャートである。図6のフローチャートは、情報処理装置100から任意の情報処理装置100xへ平文データ101を送信する送信装置として機能する際の送信処理の手順を示している。図6の各処理を実行することによって、平文データ101に暗号化が施されるため安全に平文データ101を送信することができる。
【0054】
図6において、情報処理装置100は、まず、送信用の平文データ101を取得したか否かを判断する(ステップS601)。ステップS601では、平文データ101を取得するまで、待機状態となる(ステップS601:Noのループ)。その後、情報処理装置100は、平文データ101を取得すると(ステップS601:Yes)、取得した平文データ101を送信するための処理に移行する。
【0055】
まず、情報処理装置100は、取得部501によって、乱数性情報を取得する(ステップS602)。その後、情報処理装置100は、暗号化部502によって、設定部503の設定処理に応じた暗号化を行う。まず、設定部503によって乱数性情報が対象データ、固定値が鍵情報として設定されると、情報処理装置100は、暗号化部503によって設定情報を利用した暗号化を行う(ステップS603)。
【0056】
さらに、設定部503によって、残りの平文データ101が対象データ、ステップS603による暗号化にて得られた暗号化データ102が鍵情報としてそれぞれ設定されると、情報処理装置100は、暗号化部502によって設定情報を利用した暗号化を行う(ステップS604)。
【0057】
その後、情報処理装置100は、未処理の平文データ101があるか否かを判断する(ステップS605)。ステップS605において、未処理の平文データ101があると判断された場合(ステップS605:Yes)、情報処理装置100は、ステップS604の処理に戻り、未処理の平文データ101を順次暗号化する。その後、ステップS605において、未処理の平文データ101がないと判断されると(ステップS605:No)、情報処理装置100は、送信部504によって暗号化データ102を送信先として指定されている任意の情報処理装置100xへ送信する(ステップS606)。以上説明した手順によって送信時の一連の処理が終了する。
【0058】
<受信処理の手順>
図7は、情報処理装置における受信処理の手順を示すフローチャートである。図7のフローチャートは、情報処理装置100が任意の情報処理装置100xから送信された暗号化データ102を受信する受信装置として機能する際の受信処理の手順を示している。図7の各処理を実行することによって、不正な暗号化データ102を受信した場合であっても、早期に不正判断を下すため、不必要な復号処理を抑制することができる。
【0059】
図7において、情報処理装置100は、まず、受信部506によって、暗号化データ102を受信したか否かを判断する(ステップS701)。ステップS701では、暗号化データ102を受信するまで情報処理装置100は待機状態となる(ステップS701:Noのループ)。ステップS701において、暗号化データ102が受信されると(ステップS701:Yes)、情報処理装置100は、復号部506によって先頭の暗号化データ102を共通鍵によって復号する(ステップS702)。
【0060】
情報処理装置100は、判断部507を利用して、復号された平文データ101に所定の乱数性情報が含まれているか否かを判断する(ステップS703)。ステップS703において、平文データ101に所定の乱数性情報が含まれていると判断された場合(ステップS703:Yes)、情報処理装置100は、受信した暗号化データ102が正当な情報であると判断する。したがってし、情報処理装置100は、復号部506によって残りの暗号化データ102を共通鍵によって復号し(ステップS704)、一連の受信処理を終了する。
【0061】
一方、ステップS703において、平文データ101に所定の乱数性情報が含まれていないと判断された場合(ステップS703:No)、情報処理装置100は、受信した暗号化データ102が不当な情報であると判断する。したがって、情報処理装置100は、残りの暗号化データ102を廃棄し(ステップS705)、一連の受信処理を終了する。
【0062】
以上本実施の形態にかかる情報処理装置100による送受信処理の手順を説明したが、暗号化部502および復号部506における具体的な演算内容は、採用する共通鍵暗号化モードの種類によって異なる。また、いずれの共通鍵暗号化モードを採用するかによって、情報処理装置100の適用に伴うメリットにも差異が生じる。したがって、以下には共通鍵暗号化モードとしてCBCモード・CTRモードの2種類を挙げて具体的な暗号化・復号を説明する。
【0063】
(CBCモードによる暗号化通信)
まず、情報処理装置100を用いたCBCモードによる暗号化通信について説明する。CBCモードは、平文をブロック化し、各平文ブロックを暗号化した暗号文ブロックを後段の平文ブロックの鍵情報に利用する暗号化通信である。CBCモードを採用するメリットとしては、1)平文ブロックが同じでも、異なる暗号文ブロックが得られる、2)復号の並列処理が可能(暗号化では不可能)、3)暗号文ブロックの復号順序を変更できる、4)安全性が高い点が挙げられる。反対にデメリットとして、1)初期化ベクトルが必要、2)パディング(詳しくは後述する)が必要、3)暗号化では並列処理できない点が挙げられる。
【0064】
図8は、本実施の形態にかかるCBCモードの暗号化処理を示す説明図である。CBCモードのデメリットとして初期化ベクトルが必要という点を挙げたが、情報処理装置100の場合、平文の先頭に乱数性情報が配置されているため、初期化ベクトル800は、任意の固定値を用意すればよい。
【0065】
図8の例では、平文の先頭には、乱数性情報として情報処理装置100内で使用されている時刻情報801が組み込まれている。また、CBCモードの場合、平文は所定のデータ量ごとに分割され平文ブロック1(時刻情報801)〜4が作成される。暗号化の際、情報処理装置100は、まず初期化ベクトル800(鍵情報)と時刻情報801(対象データ)との排他的論理和演算を行い、演算結果に任意の暗号化処理を施すことによって、暗号文ブロック1を作成する。
【0066】
続いて、情報処理装置100は、暗号文ブロック1(鍵情報)と平文ブロック2(対象データ)との排他的論理和演算を行い、演算結果に任意の暗号化処理を施すことによって、暗号文ブロック2を作成する。同様に、情報処理装置100は、すべての平文ブロックに対して、直前に作成された暗号文ブロックnを鍵情報として後段の平文ブロックn+1から暗号文ブロックn+1を作成する。なお、各平文ブロックは所定のデータ量に分割されるが、平文のデータ長によっては、末尾の平文ブロックのデータ量が所定値に満たないことがある。ところが、平文ブロックのデータ量が異なると、正しく復号できない。したがって、末尾の平文ブロックのデータ量を他の平文ブロックと同じデータ量に調整するパディングが必要となる。
【0067】
図9は、パディングの一例を示す説明図である。パディングとは、暗号化の対象データを所定のブロック長(たとえば、128 ビット)の倍数に補正する技術である。図9に例示したデータ列900は、パディングの一例であるPKCS#7パディングの設定内容を表している。PKCS#7パディングでは、対象データMのデータ長に応じて、対象データMの後ろにデータ列900に定めたようなパディングデータPを追加する。パディングデータPを追加することによって、対象データMのデータ長は必ず128ビットの倍数になり、分割した各ブロックのデータ量が等しくなる。
【0068】
例1として対象データM=「a4 67 83 26 51 24 f0 45 10 9b 12」であれば、パディングデータP=「05 05 05 05 05」が追加された「a4 67 83 26 51 24 f0 45 10 9b 12 05 05 05 05 05」が作成される。なお、情報処理装置100は、パディング済み暗号文を復号した場合には、パディングされたデータの最後のバイトを参照し、そこに記載された個数のバイトを後ろから自動的に削除するため、平文が変更されることはない。
【0069】
つぎに、CBCモードによる暗号化の手順について説明する。図10は、暗号化処理の手順を示すフローチャートである。図10において、情報処理装置100は、まず送信用の平文を入手したか否かを判断する(ステップS1001)。情報処理装置100は、ステップS1001において、平文が入手されるまで待機状態となる(ステップS1001:Noのループ)。
【0070】
ステップS1001において平文を入手したと判断されると(ステップS1001:Yes)、情報処理装置100は、平文を平文ブロックに分割する(ステップS1002)。その後、情報処理装置100は、平文ブロックから暗号文ブロックを作成し(ステップS1003)、さらに、作成された暗号文ブロックから暗号文を作成する(ステップS1004)。最後に、作成された暗号文を出力して(ステップS1005)、一連の暗号化処理を終了する。
【0071】
図11は、暗号文ブロック作成処理の手順を示すフローチャートである。図11は、図10のステップS1003の詳細な処理内容を示している。図11において、情報処理装置100は、ステップS1002の完了をトリガに、変数iを初期値1に設定する(ステップS1101)。つぎに、情報処理装置100は、平文ブロックiと暗号文ブロックi−1とから、暗号文ブロックiを作成する(ステップS1102)。
【0072】
ステップS1102を詳しく説明すると、情報処理装置100は、平文ブロックiと共通鍵ブロック暗号によって暗号化して得られた暗号文ブロックi−1とのビットごとの排他的論理和を算出する。ただしi=1の場合に限り、平文ブロック1と初期化ベクトル800とから暗号文ブロック1を作成する。すなわち情報処理装置100は、ステップS1102では、平文ブロック1を共通鍵ブロック暗号化によって暗号化して得られたデータと、初期化ベクトルとのビットごとの排他的論理和を算出している。
【0073】
続いて、情報処理装置100は、変数iを+1インクリメントし(ステップS1103)、すべての平文ブロックの暗号化が終了したか否かを判断する(ステップS1104)。ステップS1104において、暗号化が終了していない平文ブロックがあると判断された場合は(ステップS1104:No)、ステップS1102の処理に戻り、つぎの暗号文ブロックiを作成する。その後、ステップS1104において、暗号化が終了したと判断されると(ステップS1104:Yes)、ステップS1004の処理に移行する。
【0074】
図12は、本実施の形態にかかるCBCモードの復号処理を示す説明図である。続いて、CBCモードによる復号について説明する。図12のように、情報処理装置100は、暗号文の先頭の暗号文ブロック1を復号した後、初期化ベクトル800との排他的論理和演算を行うことによって、平文ブロック1を作成する。情報処理装置100は、作成された平文ブロック1が時刻情報1200であれば、暗号文を問題なしと判断し、残りの暗号文ブロックの復号を行う。
【0075】
なお、平文ブロック1が時刻情報1200でなければ、暗号文は問題ありと判断し、残りの暗号文ブロックを廃棄する。すわち、情報処理装置100は、平文ブロック1のチェックを行うことによって、図12の網掛け部分の処理(不正データであれば無断な処理)を削減することができる。
【0076】
つぎに、CBCモードによる復号の手順について説明する。図13は、復号処理の手順を示すフローチャートである。図13において、情報処理装置100は、まず他の情報処理装置100xから送信された暗号文を入手したか否かを判断する(ステップS1301)。情報処理装置100は、ステップS1301において、暗号文が入手されるまで待機状態となる(ステップS1301:Noのループ)。
【0077】
ステップS1301において暗号文を入手したと判断されると(ステップS1301:Yes)、情報処理装置100は、暗号文を暗号文ブロックに分割する(ステップS1302)。その後、情報処理装置100は、暗号文ブロックから平文ブロックを作成し(ステップS1303)、さらに、作成された平文ブロックから平文を作成する(ステップS1304)。最後に、作成された平文を出力して(ステップS1305)、一連の復号処理を終了する。
【0078】
図14は、平文ブロック生成処理の手順を示すフローチャートである。図14のフローチャートは、図13のステップS1303の詳細な処理内容を示している。図14において、情報処理装置100は、ステップS1302の処理が完了すると、まず、変数i=1に設定する(ステップS1401)。
【0079】
その後、情報処理装置100は、復号されていない暗号文ブロックの中の先頭から1つ暗号文ブロックに復号を施して平文ブロックi(先頭の暗号文ブロック1であれば平文ブロック1となる)を作成する(ステップS1402)。平文ブロックiが作成されると、情報処理装置100は、変数iを+1インクリメントし(ステップS1403)、復号されていない暗号文ブロックが終了したか否かを判断する(ステップS1404)。
【0080】
ステップS1404において復号されていない暗号文ブロックが終了していないと判断された場合(ステップS1404:No)、情報処理装置100は、ステップS1402の処理に戻り、インクリメント後の平文ブロックiを作成する。情報処理装置100は、復号されていない暗号文ブロックが終了するまで、ステップS1402,S1403の処理を繰り返して実行する。その後、情報処理装置100は、ステップS1404において、暗号文ブロックが終了したと判断されると(ステップS1404:Yes)、平文ブロック生成処理を終了し、ステップS1304の処理に移行する。
【0081】
図15は、データチェック処理の手順を示すフローチャートである。図15は、情報処理装置100に取得されたデータが所定の構成であるか否かに応じて、データの正当・不当を判断する手順を示している。図15の処理は、平文ブロック1の早期チェックに利用される。
【0082】
図15において、情報処理装置100は、まず、判断対象となるデータを入手したか否かを判断する(ステップS1501)。情報処理装置100は、ステップS1501において、データが入手されるまで待機状態となる(ステップS1501:Noのループ)。その後、ステップS1501においてデータを入手したと判断されると(ステップS1501:Yes)、情報処理装置100は、入手したデータが正当であるかのチェックを行う(ステップS1502)。
【0083】
情報処理装置100は、入手したデータが正当であると判断した場合(ステップS1502:Yes)、「正当」であることを出力して(ステップS1503)、一連のデータチェック処理を終了する。一方、情報処理装置100は、入手したデータが正当でないと判断した場合(ステップS1502:No)、「正当でない」ことを出力して(ステップS1504)、一連のデータチェック処理を終了する。
【0084】
なお、ステップS1502におけるデータの正当判断は、たとえば、下記のような基準に基づいて行うが、利用者が任意に設定することができる。
・入力されたデータが想定されたデータ長になっているか
・データ内の小データが想定された順序になっているか
・小データ値は想定された範囲に収まっているか
・小データは想定されたフォーマットで記載されているか
【0085】
図16は、早期チェック処理の手順を示すフローチャートである。図16のフローチャートは、受信した暗号文の最初の暗号文ブロックを取り出して初期化ベクトルとから平文ブロックに変換してそのデータチェックを行う手順を示している。図16の各処理を実行することによって、早期に暗号分の正当/不当を判断し、不当な暗号文に対する不要な復号処理を防ぐことができる。
【0086】
図16において、情報処理装置100は、まず、暗号文を入手したか否かを判断する(ステップS1601)。情報処理装置100は、ステップS1601において、暗号文が入手されるまで待機状態となる(ステップS1601:Noのループ)。
【0087】
ステップS1601において暗号文を入手したと判断されると(ステップS1601:Yes)、情報処理装置100は、暗号文ブロック1を生成し(ステップS1602)、暗号文ブロック1と初期化ベクトルとを利用して平文ブロック1を算出する(ステップS1603)。すなわち、ステップS1603では、情報処理装置100は、暗号文ブロック1を共通鍵ブロック暗号によって復号して得られたデータと、初期化ベクトルとのビットごとの排他的論理和を算出している。
【0088】
続いて、情報処理装置100は、ステップS1603によって算出された平文ブロック1から時刻情報を抽出し、時刻情報の正当性が妥当か否かを判断する(ステップS1604)。ステップS1604では、たとえば、時刻情報に西暦、月、日、曜日、時、分、秒、マイクロ秒の情報が含まれる場合、それぞれの情報に対応するデータが、それぞれの情報を表すデータとして正当になっているかを判定する。
【0089】
情報処理装置100は、ステップS1604において、時刻情報が正当でないと判断された場合(ステップS1604:No)、入力された暗号文を廃棄して(ステップS1605)、一連のチェック処理を終了する。
【0090】
一方、ステップS1604において、時刻情報が正当と判断された場合(ステップS1604:Yes)、情報処理装置100は、さらに、時刻情報の範囲が正当であるかを判断する(ステップS1606)。時刻情報の範囲は、情報処理装置100が属しているネットワークポリシーに準じて設定される。たとえば、情報処理装置100は、想定されたアドホックネットワークが通信されてから1日前までのパケットは受理するが、それよりも過去のパケットは受理しないというポリシー下で運用されているものとする。
【0091】
上述のようなポリシーの場合、ステップS1606では、時刻情報が現在の時刻の1日間での時刻であるかを判定する。そして、ステップS1606において、時刻情報が正当な範囲に含まれないと判断された場合(ステップS1606:No)、情報処理装置100は、入力された暗号文は正当でないと判定して、入力された暗号文を廃棄して(ステップS1605)、一連のチェック処理を終了する。
【0092】
一方、ステップS1606において、時刻情報が正当な範囲に含まると判断された場合(ステップS1606:Yes)、情報処理装置100は、平文ブロック1は正当であると判定して、「正当」であることを出力して(ステップS1607)、一連のチェック処理を終了する。
【0093】
以上説明したように、情報処理装置100は、入力された暗号文の暗号文ブロック1に関する復号処理と復号データのチェックを行うため、暗号文が正当でない場合には、早期のデータ廃棄が可能となる。特に、ネットワークに対するサービス停止攻撃を行う攻撃者は、大量のパケットをネットワークに送信するが、正当な暗号化・復号用の鍵を保持していない。したがって、情報処理装置100では、攻撃者が送信したパケットを復号した場合、早期チェックの段階で廃棄されることになる。また、情報処理装置100は、先頭の暗号文ブロックだけを復号・チェックすることで、暗号文全体のチェックが可能であり、サービス停止攻撃の検出・対抗策として機能させることもできる。
【0094】
また、ネットワークに対する再送信攻撃を行う攻撃者は、ネットワーク内を流れる正当なパケットを受信・保持し、攻撃時にそれらパケットをネットワークに送信するが、時刻情報が正当な範囲から外れることから、ステップS1606の処理によって時刻情報の範囲を検証することによって、攻撃者が送信したパケットを廃棄することができる。
【0095】
(CTRモードによる暗号化通信)
つぎに、情報処理装置100を用いたCTR(CounTR)モードによる暗号化通信について説明する。CTRモードは、カウンタの役割を果たす変数カウンタCTRを利用して共通鍵暗号化を行う暗号化通信である。CTRモードを採用するメリットとしては、1)パディングが不要、2)暗号化・復号の処理内容が同じ、3)暗号化・復号の事前計算が可能、4)暗号化・復号で並列処理が可能という点が上げられる。反対にデメリットとして、乱数性要素を含む初期化ベクトルが必須となる点が挙げられる。
【0096】
図17は、本実施の形態にかかるCTRモードの暗号化処理を示す説明図である。図17のように、CTRモードの場合、初期化ベクトル1700から変数カウンタCTRが決定すると、以降のカウンタCTR+1,CTR+2,…,CTR+nも一意的に決定する。そして、各平文ブロックは、決定した変数カウンタCTRを鍵とした暗号化が施される。
【0097】
上述のようにCTRモードの場合、暗号化の鍵として利用されるカウンタCTRの値が初期化ベクトル1700によって決定する。CBCモードと異なり、CTRモードでは、各平文ブロックの暗号化の鍵として前段の平文ブロックの暗号文のブロックを利用することなく、初期化ベクトル1700から決定した変数カウンタCTRが暗号化の鍵として利用される。したがって、変数カウンタCTR自体に乱数性要素がなければ、暗号化の鍵に乱数性情報が含まれず、暗号化強度が著しく低下してしまう。
【0098】
したがって、CTRモードを採用する場合、CBCモードのように固定値を初期化ベクトル1700として代用できない。したがって、情報処理装置100には、初期化ベクトルを生成もしくは取得する機構を備える必要がある。また、受信側の情報処理装置100xにも初期化ベクトル1700を送信する必要がある。
【0099】
図18は、本実施の形態にかかるCTRモードの復号処理を示す説明図である。図18のように、CTRモードの場合、初期化ベクトル1700を取得すれば暗号化と同じ処理によって復号を行うことができる。なお、CTRモードにおける復号も、先頭の暗号文ブロック1を先に復号し、フォーマットチェックを行うことによって、早期に暗号文の正当/不当を判断することができる。したがって、CTRモードによる通信処理は、復号処理の効率化を第1の目的とするような情報処理装置100への適用が望ましい。
【0100】
以上説明したように、本実施の形態にかかる情報処理装置および情報処理方法によれば、情報処理装置内で使用されている情報の中から乱数性情報を取得して、平文に組み込むことで、共通の固定値を鍵情報としても、暗号化強度の高い共通鍵暗号化が可能になる。本技術のように、情報処理装置内で使用されている乱数性情報を活用することによって、乱数値を発生もしくは入手する機構を削減することができる。さらに、共通鍵の送信処理が不要になるため、情報処理装置や通信回線への処理負荷を低減させることが可能となり、ネットワーク環境に左右されない暗号化通信が可能になる。
【0101】
また、上記技術では、平文を所定のデータ量ごとに暗号化する機能を備えることによって、通信回線の容量に対応して、暗号化データの容量を分散させることができる。したがって、大容量の平文データであっても、情報処理装置100が接続している通信回線の容量を問わず、安全な送受信を実現することができる。
【0102】
また、上記技術では、さらに、暗号化データを受信した場合に、共通鍵として配布済みの固定値を復号鍵として利用して暗号化データの先頭部分から復号する構成にしてもよい。上述のような構成の場合、暗号化データを先頭部分にチェック用の情報(たとえば時刻情報)を組み込むことによって、復号の早期段階で暗号化データの正当性を判断し、不要な処理を排除することができる。
【0103】
また、上記技術のように、早期段階で暗号化データの正当性を判断した場合に、復号前の暗号化データを自動的に廃棄する機能を備えることによって、攻撃者などからの大量な不正パケットによって通信機能が麻痺するような事態を回避できる。
【0104】
また、上記技術では、さらに、暗号化強度を保持するための乱数性情報として、時刻情報を採用することによって、どのような構成の通信機器であっても本実施の形態にかかる通信処理を適用することができる。
【0105】
さらに乱数性情報として時刻情報を使用することで、データ内に乱数性を付与することができる。したがって、初期化ベクトルとして固定値を使用したとしても、安全性を低下させることなく共通鍵ブロック暗号化のCBCモードによる暗号化・復号処理を実現することができる。また、時刻情報が平文内にもともと必要な情報である場合、平文情報を増加させることなく共通鍵ブロック暗号化のCBCモードによる暗号化・復号処理が可能となるため、ネットワークにおけるデータの通信効率を向上することができる。
【0106】
さらに、本実施の形態にかかる情報処理装置および情報処理方法は、暗号文を構成する暗号文ブロックの先頭ブロックだけを復号して得られた情報から、暗号文が不正なパケットか否かを判断することができる。もし、不正なパケットを受信した場合であっても、残りの暗号文ブロックに対する不要な復号処理を行わずに、廃棄することが可能となる。また正当なパケットであっても、本手段を用いた場合の遅延や回路増加はほとんど発生しない。
【0107】
特に、本実施の形態にかかる情報処理装置および情報処理方法の適用が望まれる、ネットワーク環境では、サービス停止攻撃(DοS攻撃)と呼ばれる攻撃が行われることがある。サービス停止攻撃では、攻撃者はネットワークに対して大量なパケットを送信し、ネットワークの機能を停止させることを目的とする。したがって、サービス停止攻撃に対抗する対策として、上述のような早期段階での不正パケット廃棄は、非常に効果的である。
【0108】
さらにネットワークに対する別の攻撃として、再送信攻撃(リプレイ攻撃)と呼ばれる攻撃が知られている。再送信攻撃では、攻撃者はあらかじめ正規のパケットを入手・保管しておき、これらのパケットをネットワークに再度送信することで、サービスの機能低下や誤操作を目的としている。再送信攻撃に対抗する対策としてさまざまな手段が知られているが、本実施の形態にかかる情報処理装置および情報処理方法のように、時刻情報が所定の範囲に収まらない場合にパケットを廃棄する構成は、再送信攻撃への対策が可能になるという副次的な効果を有する。
【0109】
なお、本実施の形態で説明した情報処理方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0110】
また、本実施の形態で説明した情報処理装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した情報処理装置100の機能(取得部501〜判断部507)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、情報処理装置100を製造することができる。
【符号の説明】
【0111】
100,100x 情報処理装置
101 平文データ
102 暗号化データ
110 共通鍵
501 取得部
502 暗号化部
503 設定部
504 送信部
505 受信部
506 復号部
507 判断部
【技術分野】
【0001】
本開示技術は、暗号化データの送受信を行う情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
従来より、情報処理装置間のデータ送受の際には、セキュリティを確保するために、共通鍵ブロック暗号化方式などの暗号化方式を採用した暗号化通信が行われている。通常、暗号化の対象となるデータ(平文)は、共通鍵ブロック暗号化による暗号化通信の際のデータ送信単位であるブロック長よりも長いため、平文は一旦ブロック長ごとに分割される。そして、分割されたブロック長のデータごとに暗号化・復号が行われる。
【0003】
図19は、ECBモードによる暗号化処理を示す説明図であり、図20は、ECBモードによる復号処理を示す説明図である。図19および図20では、共通鍵を利用した共通暗号化処理の一例として、ECB(Electronic Code Book:電子符号表モード)モードにおける共通鍵ブロック暗号化の処理手順の一例を説明する。
【0004】
たとえば、図19に示した平文において、平文長を512ビット、共通鍵ブロック暗号のブロック長を128ビットとすると、暗号化処理によって、平文は平文ブロック1、平文ブロック2、平文ブロック3、平文ブロック4の4つのブロックに分割される。さらに、暗号化処理では、平文ブロック1を暗号化して暗号文ブロック1が作成される。同様に、平文ブロック2〜4から暗号文ブロック2〜4が作成される。そして送信側の情報処理装置からは、4つの暗号文ブロックが、1まとまりの暗号文として送信される。
【0005】
一方、受信側の情報処理装置では、図20のように、1まとまりの暗号文から4つの暗号文ブロックが復号される。そして、各暗号文ブロックを復号することで各平文ブロックを入手し、これら4つの平文ブロックから平文が復号される。以上説明した、ECBモードには、平文ブロックや暗号文ブロックの順序交換が可能であり、平文の改ざんが可能であるという問題が知られている。
【0006】
図21は、CBCモードによる暗号化処理を示す説明図であり、図22は、CBCモードによる復号処理を示す説明図である。上述したようなECBモードの問題を解決するために、ブロックの順序を考慮した暗号化・復号方式として、CBCモード(Cipher Block Chaining:暗号化ブロック連鎖モード)が提供されている。ここで図22,23を用いて、CBCモードによる暗号化・復号処理の手順を説明する。
【0007】
図21に示した平文において、平文長を512ビット、共通鍵ブロック暗号のブロック長を128ビットすると、ECBモードと同様に、平文は4つの平文ブロックに分割される。さらに、暗号化処理では、平文ブロック1と、平文とは別に用意した、初期化ベクトル2100というランダムな(たとえば、任意の128ビット長)データを用いて、暗号文ブロック1を生成する。
【0008】
暗号化処理では、具体的には、平文ブロック1と初期化ベクトルのビットごとの排他的論理和を算出し、そのデータを暗号化することで、暗号文ブロック1を得る。つぎに、平文ブロック2と暗号文ブロック1のビットごとの排他的論理和を算出し、そのデータを暗号化することで、暗号文ブロック2を得る。同様にして、暗号文ブロック3、暗号文ブロック4を生成し、これら4つの暗号文ブロックを暗号文として送信する。また、暗号文の送信と共に初期化ベクトルも送信先となる情報処理装置へ送信される。
【0009】
図22に示すように、受信側では、暗号文から4つの暗号文ブロックを復元する。つぎに、復号処理として、暗号文ブロック1を復号し、復号データと初期化ベクトルのビットごとの排他的論理和を算出して平文ブロック1を得る。さらに受信の情報処理装置では、暗号文ブロック2を復号し、暗号文ブロック1とのビットごとの排他的論理和を算出して平文ブロック2を得る。同様にして、平文ブロック3、平文ブロック4を生成し、平文を復元する。図22の説明では復号処理の際に、平文を得るために暗号文のブロック1から順に復号したが、任意のブロックから復号することもできる。以上説明したようにCBCモードでは、暗号文ブロックの間にデータの依存関係があるため、順序を交換することができず、改ざんを見破ることができる(たとえば、下記特許文献1参照。)。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2005−12466号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上述した従来技術では、暗号化の際に平文とは別に初期化ベクトルが必要となるため、初期化ベクトルを入手もしくは生成する機能を用意しなければならない。また、暗号文を復号する際に初期化ベクトルが復号鍵として機能するため、送信先の情報処理装置に初期化ベクトルを送信しなければならない。
【0012】
すなわち、送信側の情報処理装置は、初期化ベクトルを用意するための機能が要求され、送信時には、暗号文に加えて初期化ベクトルも併せて送信しなければならない。結果として、ECBモードに比べて同じ平文を送付するにも取り扱うデータ量が増加し通信処理全般にかかる処理負荷が増すという問題があった。
【0013】
したがって、セキュリティ強度の高い共通鍵ブロック暗号化を利用したCBCモードを採用したい場合であっても、センサーネットワークなど、情報処理装置の処理性能・処理時間・メモリ量などのリソースが限定されるような環境での実装は困難であった。
【0014】
本開示技術は、上述した従来技術による問題点を解消するため、ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にする情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0015】
上述した課題を解決し本開示技術は、他の情報処理装置と共通の固定の共通鍵を用いて平文を暗号化する情報処理装置であって、前記情報処理装置内で使用されている乱数性情報を取得する処理と、対象データおよび鍵情報が設定されると、前記鍵情報を用いて前記対象データを暗号化することにより暗号化データを出力する処理と、暗号化された暗号化データを前記他の情報処理装置に送信する処理と、前記乱数性情報が取得された場合は、前記固定の共通鍵を前記鍵情報に設定し前記乱数性情報を前記対象データに設定する第1の暗号化設定処理と、当該暗号化データを前記鍵情報に設定し前記平文の少なくとも一部を前記対象データに設定する第2の暗号化設定処理を実行する処理と、前記暗号化データを任意の情報処理装置へ送信する処理と、を含むことを要件とする。
【発明の効果】
【0016】
本情報処理装置および情報処理方法によれば、暗号化処理に必要なリソースや共通鍵のデータ量を削減できるため、ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にすることができるという効果を奏する。
【図面の簡単な説明】
【0017】
【図1】本実施の形態にかかる通信処理の一例を示す説明図である。
【図2】共通鍵暗号化の一例を示す説明図である。
【図3】情報処理装置のネットワーク構成を示す説明図である。
【図4】情報処理装置のハードウェア構成を示すブロック図である。
【図5】情報処理装置の機能的構成を示すブロック図である。
【図6】情報処理装置における送信処理の手順を示すフローチャートである。
【図7】情報処理装置における受信処理の手順を示すフローチャートである。
【図8】本実施の形態にかかるCBCモードの暗号化処理を示す説明図である。
【図9】パディングの一例を示す説明図である。
【図10】暗号化処理の手順を示すフローチャートである。
【図11】暗号文ブロック作成処理の手順を示すフローチャートである。
【図12】本実施の形態にかかるCBCモードの復号処理を示す説明図である。
【図13】復号処理の手順を示すフローチャートである。
【図14】平文ブロック生成処理の手順を示すフローチャートである。
【図15】データチェック処理の手順を示すフローチャートである。
【図16】早期チェック処理の手順を示すフローチャートである。
【図17】本実施の形態にかかるCTRモードの暗号化処理を示す説明図である。
【図18】本実施の形態にかかるCTRモードの復号処理を示す説明図である。
【図19】ECBモードによる暗号化処理を示す説明図である。
【図20】ECBモードによる復号処理を示す説明図である。
【図21】CBCモードによる暗号化処理を示す説明図である。
【図22】CBCモードによる復号処理を示す説明図である。
【発明を実施するための形態】
【0018】
以下に添付図面を参照して、この発明にかかる情報処理装置および情報処理方法の好適な実施の形態を詳細に説明する。
【0019】
(実施の形態)
図1は、本実施の形態にかかる通信処理の一例を示す説明図である。図1のように、本実施の形態にかかる情報処理装置100では、情報処理装置100の通常処理に利用される情報の中から乱数要素を含む乱数性情報を取得して平文データ101の一部に組み込むことによって暗号化強度を保持する。
【0020】
図2は、共通鍵暗号化の一例を示す説明図である。図2を用いて、一般的な共通鍵暗号化について説明する。共通鍵暗号化処理では、送信者210と受信者220とは同じ鍵(共通鍵)200を利用して暗号化・復号を行う。通常、通信の度に送信者210は、乱数性情報を含んだ複雑な鍵200を用意して平文201に対して共通鍵暗号化を施す。したがって、送信者210側で作成された暗号文202を復号するには、受信者220側に今回用意された鍵200を送信しなければならない。
【0021】
上述のように通常の共通鍵暗号化では、共通鍵暗号の他に、暗号化強度を保持するために乱数性情報を用意する必要がある。したがって、従来の情報処理装置には、乱数発生器などの乱数性情報を生成する機能や、外部から乱数性情報を入手する機能が不可欠であった。ところが、本実施の形態にかかる情報処理装置100の場合、図1にて説明したように平文データ101に乱数性情報を組み込むため、共通鍵暗号化に用いる共通鍵110は固定値であってもよい。すなわち、各情報処理装置100間に事前に共通鍵を配布しておくことができる。
【0022】
したがって、情報処理装置100は、元々装置内で利用されている乱数性情報を活用するため、従来必要とされていた乱数性情報の生成機能や、外部からの入手機能の構成に相当するリソースを削減することができる。また、情報処理装置100は、共通鍵を受信者220側の情報処理装置へ送信する必要もない。したがって、従来共通鍵送信にかかる通信負荷を解消し、ネットワークにおけるデータの通信効率を向上することができる。
【0023】
さらに、本実施の形態にかかる情報処理装置100は、他の情報処理装置100から受信した暗号化データ102(後述の図5参照)を復号する際には、平文データ101に組み込まれた乱数性情報を利用して暗号化データ102の正当・不当を早期にチェックすることができる。情報処理装置100が他の情報処理装置100から送信された暗号化データ102を受信した場合、まず、乱数性情報が組み込まれた箇所(たとえば平文データ101の先頭部分)から復号を行う。
【0024】
その後、いち早く復号された情報が、送信元の情報処理装置100の乱数性情報として適切であるかに応じて、受信した暗号化データ102が正当なデータか否かを判断することができる。そして、情報処理装置100は、受信した暗号化データ102が不当なデータであった場合には、残りのデータを復号する前に受信した暗号化データ102を廃棄することができる。
【0025】
上述のように、情報処理装置100は、早期に乱数性情報を組み込んだ平文データ101部分を復号して、暗号化データ102の正当性をチェックする。したがって、情報処理装置100は、不正に生成された暗号化データ102をブロックすると共に、攻撃者による改ざん攻撃を検出し、ネットワークから不正に生成された暗号文ブロックを排除することが可能となり、ネットワークの安全性を向上させることができる。
【0026】
以上説明したように、本実施の形態にかかる通信処理を適用することによってデータの送受信にかかる暗号化処理に必要なリソースや共通鍵のデータ量を削減できるため、ネットワーク環境にかかわらず、セキュリティ強度の高い通信を可能にすることができる。以下には、上述した通信処理を実現する情報処理装置100の具体的な構成例について説明する。
【0027】
(情報処理装置のネットワーク構成)
図3は、情報処理装置のネットワーク構成を示す説明図である。本実施の形態にかかる情報処理装置100は、たとえば、図3に示すようなネットワーク構成のもとで利用される。図3に示すように、情報処理装置100は、同様の構成を持つ複数の情報処理装置100xと相互通信を行う。また、これら情報処理装置100,100xは、ゲートウェイ300を介してサーバ310にも接続されている。サーバ310は、情報処理装置100,100xを統括して管理を行うゲートウェイ300と、を備える。
【0028】
情報処理装置100,100xは、相互に定常的な通信対象であり、固定の共通鍵を定期的に配布し合う。また情報処理装置100,110xの相互間通信は、いわゆるアドホックな通信を実現している。また、情報処理装置100xの中にいずれかの情報処理装置100xと定常的な通信が行われていないものがある場合であっても、定常的な通信を行っている情報処理装置100xを経由してアドホックネットワークを自律的に構築することもできる。
【0029】
(情報処理装置のハードウェア構成)
図4は、情報処理装置のハードウェア構成を示すブロック図である。図4において、情報処理装置100は、CPU(Central Processing Unit)401と、ROM(Read‐Only Memory)402と、RAM(Random Access Memory)403と、磁気ディスクドライブ404と、磁気ディスク405と、光ディスクドライブ406と、光ディスク407と、通信I/F(Interface)408と、入力デバイス409と、出力デバイス410と、を備えている。また、各構成部はバス400によってそれぞれ接続されている。
【0030】
ここで、CPU401は、情報処理装置100の全体の制御を司る。ROM402は、ブートプログラムや通信プログラムなどの各種プログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。
【0031】
光ディスクドライブ406は、CPU401の制御にしたがって光ディスク407に対するデータのリード/ライトを制御する。光ディスク407は、光ディスクドライブ406の制御で書き込まれたデータを記憶したり、光ディスク407に記憶されたデータをコンピュータに読み取らせたりする。
【0032】
通信インターフェース(以下、「通信I/F」と略する)408は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネット、ローカルネットワークなどの各種ネットワーク411に接続され、ネットワーク411を介して他の情報処理装置100xに接続される。そして、通信I/F408は、ネットワーク411と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F408には、たとえばモデムやLANアダプタなどを採用することができる。
【0033】
入力デバイス409は、情報処理装置100に対しての外部からの入力を受け付ける。入力デバイス409としては、具体的には、キーボード、マウスなどが挙げられる。キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0034】
出力デバイス410は、情報処理装置100の受信データや情報処理装置100のログデータなど指定されたデータを出力する。出力デバイス410としては、具体的には、ディスプレイ、プリンタなどが挙げられる。ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイとしてさらに、CTR、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。
【0035】
(情報処理装置の機能的構成)
図5は、情報処理装置の機能的構成を示すブロック図である。情報処理装置100は、取得部501と、暗号化部502と、設定部503と送信部504と、受信部505と、復号部506と、判断部507とを含む構成である。これら制御部となる機能(取得部501〜判断部507)は、具体的には、たとえば、図4に示したROM402、RAM403、磁気ディスク405、光ディスク407などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、通信I/F408により、その機能を実現する。
【0036】
なお、情報処理装置100は、他の情報処理装置100xと共通の固定値があらかじめ共通鍵として配布されている。したがって、情報処理装置100における暗号化・復号には、配布された固定値を共通鍵として利用する。
【0037】
取得部501は、情報処理装置内で使用されている乱数性情報を取得する機能を有する。乱数性情報とは、乱数要素を含む情報を意味する。情報処理装置100内で使用される乱数性情報としては、たとえば、内蔵時計の時刻情報や、CPU401に搭載されているプログラムカウンタ(PC)値などが挙げられる。なお、取得された乱数性情報は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0038】
暗号化部502は、対象データおよび鍵情報が設定されると、鍵情報を用いて対象データを暗号化する機能を有する。対象データおよび鍵情報の設定は、設定部503によって行われる。なお、暗号化が施された暗号化データ102はRAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0039】
設定部503は、暗号化部502による暗号化の際の対象データおよび鍵情報の設定を行う機能を有する。また、設定部503は、復号部506による暗号化における復号対象データおよび復号鍵情報の設定を行う機能も有している。まずは、送信処理の際に利用する機能部を説明するため、設定部503による暗号化の際の対象データおよび鍵情報の設定を行う設定処理(暗号化設定処理)について説明する。
【0040】
設定部503では、平文データ101の中の先頭部分に組み込まれた乱数性情報を含んだデータを対象データとして設定する第1の暗号化設定処理と、平文データ101のうち、乱数性情報以外の残りのデータを対象データとして設定する第2の暗号化設定処理とが実行される。第1の暗号化設定処理の場合、設定部503は、乱数性情報に暗号化を施す鍵情報として、事前に各情報処理装置100に配布された固定値を設定する。暗号化部502は、設定部503の第1の暗号化設定処理が行われると、設定された鍵情報を用いて対象データを暗号化する。したがって、暗号化部502では、固定値によって乱数性情報に暗号化が施され、暗号化データ102として出力される。
【0041】
そして、第2の暗号化設定処理の場合、設定部503は、平文データ101のうち、乱数性情報以外の残りのデータに暗号化を施すための鍵情報として、第1の暗号化設定処理によって暗号化部502から出力された乱数性情報の暗号化データ102を設定する。なお、第2の暗号化設定処理を繰り返し実行することによって、平文データ101の中未設定のデータが無くなるまで暗号化が行われる。
【0042】
すなわち、設定部503は、第1の暗号化設定処理を実行することによって、暗号化部502から乱数性情報の暗号化データ102が得られる。そして設定部503は、得られた暗号化データ102を鍵情報に設定し、平文データ101を構成するデータのうち所定量のデータを対象データに設定する。すると、第2の暗号化設定処理が実行されたことにより、暗号化部502からは更なる暗号化データ102が得られる。ここで得られた暗号化データ102は、先ほど第2の暗号化設定処理によって対象データとして設定されたデータ(平文データ101を構成するデータのうち所定量のデータ)である。
【0043】
そして、設定部503は、平文データ101を構成するデータのうち、未設定のデータが無くなるまで上述した第2の暗号化設定を継続することによって、平文データ102は、所定量の暗号化データ102からなる暗号化データ群に作り替えられる。これら暗号化データ群は、第1の暗号化設定処理のように、乱数性情報を直接暗号化したデータではないが、鍵情報として前段の暗号化処理によって得られた暗号化データ102が利用されているため、すべてのデータに乱数要素が含まれている。
【0044】
具体的には、最初の第2の暗号化設定処理では、第1の暗号化設定処理によって対象データに設定された乱数性情報を暗号化した暗号化データ102を鍵情報に設定し、2回目以降の第2の暗号化設定処理では、1回前の第2の暗号化設定処理によって得られた暗号化データ102を鍵情報に設定している。したがって、暗号化データ群を構成するすべての暗号化データ102には乱数性情報による乱数要素が受け継がれている。
【0045】
送信部504は、暗号化部502よって暗号化された暗号化データ102を送信先となる他の情報処理装置100xに送信する。なお、送信部504は、図3に例示したように情報処理装置100x同士が直接通信を行う構成であれば、暗号化データ102を直接他の情報処理装置100xへの接続回線(有線・無線を問わず)に出力する。また、送信部504は、情報処理装置100が、いずれかのネットワークを介して他の情報処理装置100xとの通信を行う構成であれば、暗号化データ102をネットワークに出力する。
【0046】
受信部505は、固定の共通鍵を持つ他の情報処理装置100xから送信された暗号化データ102を受信する機能を有する。送信部504にて説明したように、情報処理装置100と他の情報処理装置100xとの接続状況に応じて、情報処理装置100xとの接続回線もしくはいずれかのネットワークに接続して暗号化データを受信する。なお、受信された暗号化データは、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0047】
復号部506は、復号対象データと復号鍵情報が設定されると、復号鍵情報を用いて復号対象データを復号して復号データを生成する機能を有する。上述したように、復号対象データと復号鍵情報の設定は設定部503によって行われる。なお、復号された平文データ102はRAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される他に、利用者の指示に応じて出力デバイス410から任意の形式の情報として出力される。
【0048】
判断部507は、指定された情報が所定の形式であるか否かを判断する機能を有する。判断部507は、復号化部506によって復号された復号化データに所定の形式の情報として、たとえば、乱数性情報が設定される。そして、復号化データの中に所定の形式の乱数性情報が含まれているか否かを判断する際に利用される。なお、判断結果は、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶される。
【0049】
つぎに、暗号化データ102を受信した場合の設定部503の設定処理について説明する。設定部503は、第1の復号設定処理と、第2の復号設定処理とを実行する。具体的には、設定部503は、第1の復号設定処理として固定の共通鍵を復号鍵情報に設定し暗号化データを構成する先頭データを復号対象データに設定する。
【0050】
さらに、設定部503は、第2の復号設定処理として、復号部506によって他の情報処理装置100x内で使用されている乱数性情報が得られた場合に、復号対象データを復号鍵情報に設定して、暗号化データ102を復号対象データに設定する。すなわち、第1の復号設定処理による復号結果に応じて第2の復号設定処理が実行される。
【0051】
また、設定部503は、判断部507の判断結果から復号部506によって他の情報処理装置100x内で使用されている乱数性情報が得られなかった場合は、暗号化データ102は不正であるため、第2の復号処理に代わり、復号部506による復号前の暗号化データ102の廃棄を設定することもできる。さらに、第2の復号設定処理において、平文データが得られた場合は、第2の復号設定を暗号化データのうち、未設定のデータが無くなるまで継続するように設定することもできる。すなわち、設定部503は、暗号化データ102が正当なデータであると判断されると、自動的に残りの暗号化データ102を復号するように第2の復号設定処理を行う。
【0052】
(情報処理装置における送受信処理の手順)
つぎに、上述した構成の情報処理装置100を利用したデータの送受信処理の手順について説明する。情報処理装置100では、利用者から送信用データとして平文データ101を受け付けると、自動的に平文データ101に暗号化処理が施され、暗号化データ102が作成される。したがって、情報処理装置100から任意の情報処理装置100xへ送信される際に、平文データ101は、暗号化データ102の状態である。同様に情報処理装置100が、他の情報処理装置100xから何らかのデータを受信する場合も、暗号化データ102の状態で受信する。
【0053】
<送信処理の手順>
図6は、情報処理装置における送信処理の手順を示すフローチャートである。図6のフローチャートは、情報処理装置100から任意の情報処理装置100xへ平文データ101を送信する送信装置として機能する際の送信処理の手順を示している。図6の各処理を実行することによって、平文データ101に暗号化が施されるため安全に平文データ101を送信することができる。
【0054】
図6において、情報処理装置100は、まず、送信用の平文データ101を取得したか否かを判断する(ステップS601)。ステップS601では、平文データ101を取得するまで、待機状態となる(ステップS601:Noのループ)。その後、情報処理装置100は、平文データ101を取得すると(ステップS601:Yes)、取得した平文データ101を送信するための処理に移行する。
【0055】
まず、情報処理装置100は、取得部501によって、乱数性情報を取得する(ステップS602)。その後、情報処理装置100は、暗号化部502によって、設定部503の設定処理に応じた暗号化を行う。まず、設定部503によって乱数性情報が対象データ、固定値が鍵情報として設定されると、情報処理装置100は、暗号化部503によって設定情報を利用した暗号化を行う(ステップS603)。
【0056】
さらに、設定部503によって、残りの平文データ101が対象データ、ステップS603による暗号化にて得られた暗号化データ102が鍵情報としてそれぞれ設定されると、情報処理装置100は、暗号化部502によって設定情報を利用した暗号化を行う(ステップS604)。
【0057】
その後、情報処理装置100は、未処理の平文データ101があるか否かを判断する(ステップS605)。ステップS605において、未処理の平文データ101があると判断された場合(ステップS605:Yes)、情報処理装置100は、ステップS604の処理に戻り、未処理の平文データ101を順次暗号化する。その後、ステップS605において、未処理の平文データ101がないと判断されると(ステップS605:No)、情報処理装置100は、送信部504によって暗号化データ102を送信先として指定されている任意の情報処理装置100xへ送信する(ステップS606)。以上説明した手順によって送信時の一連の処理が終了する。
【0058】
<受信処理の手順>
図7は、情報処理装置における受信処理の手順を示すフローチャートである。図7のフローチャートは、情報処理装置100が任意の情報処理装置100xから送信された暗号化データ102を受信する受信装置として機能する際の受信処理の手順を示している。図7の各処理を実行することによって、不正な暗号化データ102を受信した場合であっても、早期に不正判断を下すため、不必要な復号処理を抑制することができる。
【0059】
図7において、情報処理装置100は、まず、受信部506によって、暗号化データ102を受信したか否かを判断する(ステップS701)。ステップS701では、暗号化データ102を受信するまで情報処理装置100は待機状態となる(ステップS701:Noのループ)。ステップS701において、暗号化データ102が受信されると(ステップS701:Yes)、情報処理装置100は、復号部506によって先頭の暗号化データ102を共通鍵によって復号する(ステップS702)。
【0060】
情報処理装置100は、判断部507を利用して、復号された平文データ101に所定の乱数性情報が含まれているか否かを判断する(ステップS703)。ステップS703において、平文データ101に所定の乱数性情報が含まれていると判断された場合(ステップS703:Yes)、情報処理装置100は、受信した暗号化データ102が正当な情報であると判断する。したがってし、情報処理装置100は、復号部506によって残りの暗号化データ102を共通鍵によって復号し(ステップS704)、一連の受信処理を終了する。
【0061】
一方、ステップS703において、平文データ101に所定の乱数性情報が含まれていないと判断された場合(ステップS703:No)、情報処理装置100は、受信した暗号化データ102が不当な情報であると判断する。したがって、情報処理装置100は、残りの暗号化データ102を廃棄し(ステップS705)、一連の受信処理を終了する。
【0062】
以上本実施の形態にかかる情報処理装置100による送受信処理の手順を説明したが、暗号化部502および復号部506における具体的な演算内容は、採用する共通鍵暗号化モードの種類によって異なる。また、いずれの共通鍵暗号化モードを採用するかによって、情報処理装置100の適用に伴うメリットにも差異が生じる。したがって、以下には共通鍵暗号化モードとしてCBCモード・CTRモードの2種類を挙げて具体的な暗号化・復号を説明する。
【0063】
(CBCモードによる暗号化通信)
まず、情報処理装置100を用いたCBCモードによる暗号化通信について説明する。CBCモードは、平文をブロック化し、各平文ブロックを暗号化した暗号文ブロックを後段の平文ブロックの鍵情報に利用する暗号化通信である。CBCモードを採用するメリットとしては、1)平文ブロックが同じでも、異なる暗号文ブロックが得られる、2)復号の並列処理が可能(暗号化では不可能)、3)暗号文ブロックの復号順序を変更できる、4)安全性が高い点が挙げられる。反対にデメリットとして、1)初期化ベクトルが必要、2)パディング(詳しくは後述する)が必要、3)暗号化では並列処理できない点が挙げられる。
【0064】
図8は、本実施の形態にかかるCBCモードの暗号化処理を示す説明図である。CBCモードのデメリットとして初期化ベクトルが必要という点を挙げたが、情報処理装置100の場合、平文の先頭に乱数性情報が配置されているため、初期化ベクトル800は、任意の固定値を用意すればよい。
【0065】
図8の例では、平文の先頭には、乱数性情報として情報処理装置100内で使用されている時刻情報801が組み込まれている。また、CBCモードの場合、平文は所定のデータ量ごとに分割され平文ブロック1(時刻情報801)〜4が作成される。暗号化の際、情報処理装置100は、まず初期化ベクトル800(鍵情報)と時刻情報801(対象データ)との排他的論理和演算を行い、演算結果に任意の暗号化処理を施すことによって、暗号文ブロック1を作成する。
【0066】
続いて、情報処理装置100は、暗号文ブロック1(鍵情報)と平文ブロック2(対象データ)との排他的論理和演算を行い、演算結果に任意の暗号化処理を施すことによって、暗号文ブロック2を作成する。同様に、情報処理装置100は、すべての平文ブロックに対して、直前に作成された暗号文ブロックnを鍵情報として後段の平文ブロックn+1から暗号文ブロックn+1を作成する。なお、各平文ブロックは所定のデータ量に分割されるが、平文のデータ長によっては、末尾の平文ブロックのデータ量が所定値に満たないことがある。ところが、平文ブロックのデータ量が異なると、正しく復号できない。したがって、末尾の平文ブロックのデータ量を他の平文ブロックと同じデータ量に調整するパディングが必要となる。
【0067】
図9は、パディングの一例を示す説明図である。パディングとは、暗号化の対象データを所定のブロック長(たとえば、128 ビット)の倍数に補正する技術である。図9に例示したデータ列900は、パディングの一例であるPKCS#7パディングの設定内容を表している。PKCS#7パディングでは、対象データMのデータ長に応じて、対象データMの後ろにデータ列900に定めたようなパディングデータPを追加する。パディングデータPを追加することによって、対象データMのデータ長は必ず128ビットの倍数になり、分割した各ブロックのデータ量が等しくなる。
【0068】
例1として対象データM=「a4 67 83 26 51 24 f0 45 10 9b 12」であれば、パディングデータP=「05 05 05 05 05」が追加された「a4 67 83 26 51 24 f0 45 10 9b 12 05 05 05 05 05」が作成される。なお、情報処理装置100は、パディング済み暗号文を復号した場合には、パディングされたデータの最後のバイトを参照し、そこに記載された個数のバイトを後ろから自動的に削除するため、平文が変更されることはない。
【0069】
つぎに、CBCモードによる暗号化の手順について説明する。図10は、暗号化処理の手順を示すフローチャートである。図10において、情報処理装置100は、まず送信用の平文を入手したか否かを判断する(ステップS1001)。情報処理装置100は、ステップS1001において、平文が入手されるまで待機状態となる(ステップS1001:Noのループ)。
【0070】
ステップS1001において平文を入手したと判断されると(ステップS1001:Yes)、情報処理装置100は、平文を平文ブロックに分割する(ステップS1002)。その後、情報処理装置100は、平文ブロックから暗号文ブロックを作成し(ステップS1003)、さらに、作成された暗号文ブロックから暗号文を作成する(ステップS1004)。最後に、作成された暗号文を出力して(ステップS1005)、一連の暗号化処理を終了する。
【0071】
図11は、暗号文ブロック作成処理の手順を示すフローチャートである。図11は、図10のステップS1003の詳細な処理内容を示している。図11において、情報処理装置100は、ステップS1002の完了をトリガに、変数iを初期値1に設定する(ステップS1101)。つぎに、情報処理装置100は、平文ブロックiと暗号文ブロックi−1とから、暗号文ブロックiを作成する(ステップS1102)。
【0072】
ステップS1102を詳しく説明すると、情報処理装置100は、平文ブロックiと共通鍵ブロック暗号によって暗号化して得られた暗号文ブロックi−1とのビットごとの排他的論理和を算出する。ただしi=1の場合に限り、平文ブロック1と初期化ベクトル800とから暗号文ブロック1を作成する。すなわち情報処理装置100は、ステップS1102では、平文ブロック1を共通鍵ブロック暗号化によって暗号化して得られたデータと、初期化ベクトルとのビットごとの排他的論理和を算出している。
【0073】
続いて、情報処理装置100は、変数iを+1インクリメントし(ステップS1103)、すべての平文ブロックの暗号化が終了したか否かを判断する(ステップS1104)。ステップS1104において、暗号化が終了していない平文ブロックがあると判断された場合は(ステップS1104:No)、ステップS1102の処理に戻り、つぎの暗号文ブロックiを作成する。その後、ステップS1104において、暗号化が終了したと判断されると(ステップS1104:Yes)、ステップS1004の処理に移行する。
【0074】
図12は、本実施の形態にかかるCBCモードの復号処理を示す説明図である。続いて、CBCモードによる復号について説明する。図12のように、情報処理装置100は、暗号文の先頭の暗号文ブロック1を復号した後、初期化ベクトル800との排他的論理和演算を行うことによって、平文ブロック1を作成する。情報処理装置100は、作成された平文ブロック1が時刻情報1200であれば、暗号文を問題なしと判断し、残りの暗号文ブロックの復号を行う。
【0075】
なお、平文ブロック1が時刻情報1200でなければ、暗号文は問題ありと判断し、残りの暗号文ブロックを廃棄する。すわち、情報処理装置100は、平文ブロック1のチェックを行うことによって、図12の網掛け部分の処理(不正データであれば無断な処理)を削減することができる。
【0076】
つぎに、CBCモードによる復号の手順について説明する。図13は、復号処理の手順を示すフローチャートである。図13において、情報処理装置100は、まず他の情報処理装置100xから送信された暗号文を入手したか否かを判断する(ステップS1301)。情報処理装置100は、ステップS1301において、暗号文が入手されるまで待機状態となる(ステップS1301:Noのループ)。
【0077】
ステップS1301において暗号文を入手したと判断されると(ステップS1301:Yes)、情報処理装置100は、暗号文を暗号文ブロックに分割する(ステップS1302)。その後、情報処理装置100は、暗号文ブロックから平文ブロックを作成し(ステップS1303)、さらに、作成された平文ブロックから平文を作成する(ステップS1304)。最後に、作成された平文を出力して(ステップS1305)、一連の復号処理を終了する。
【0078】
図14は、平文ブロック生成処理の手順を示すフローチャートである。図14のフローチャートは、図13のステップS1303の詳細な処理内容を示している。図14において、情報処理装置100は、ステップS1302の処理が完了すると、まず、変数i=1に設定する(ステップS1401)。
【0079】
その後、情報処理装置100は、復号されていない暗号文ブロックの中の先頭から1つ暗号文ブロックに復号を施して平文ブロックi(先頭の暗号文ブロック1であれば平文ブロック1となる)を作成する(ステップS1402)。平文ブロックiが作成されると、情報処理装置100は、変数iを+1インクリメントし(ステップS1403)、復号されていない暗号文ブロックが終了したか否かを判断する(ステップS1404)。
【0080】
ステップS1404において復号されていない暗号文ブロックが終了していないと判断された場合(ステップS1404:No)、情報処理装置100は、ステップS1402の処理に戻り、インクリメント後の平文ブロックiを作成する。情報処理装置100は、復号されていない暗号文ブロックが終了するまで、ステップS1402,S1403の処理を繰り返して実行する。その後、情報処理装置100は、ステップS1404において、暗号文ブロックが終了したと判断されると(ステップS1404:Yes)、平文ブロック生成処理を終了し、ステップS1304の処理に移行する。
【0081】
図15は、データチェック処理の手順を示すフローチャートである。図15は、情報処理装置100に取得されたデータが所定の構成であるか否かに応じて、データの正当・不当を判断する手順を示している。図15の処理は、平文ブロック1の早期チェックに利用される。
【0082】
図15において、情報処理装置100は、まず、判断対象となるデータを入手したか否かを判断する(ステップS1501)。情報処理装置100は、ステップS1501において、データが入手されるまで待機状態となる(ステップS1501:Noのループ)。その後、ステップS1501においてデータを入手したと判断されると(ステップS1501:Yes)、情報処理装置100は、入手したデータが正当であるかのチェックを行う(ステップS1502)。
【0083】
情報処理装置100は、入手したデータが正当であると判断した場合(ステップS1502:Yes)、「正当」であることを出力して(ステップS1503)、一連のデータチェック処理を終了する。一方、情報処理装置100は、入手したデータが正当でないと判断した場合(ステップS1502:No)、「正当でない」ことを出力して(ステップS1504)、一連のデータチェック処理を終了する。
【0084】
なお、ステップS1502におけるデータの正当判断は、たとえば、下記のような基準に基づいて行うが、利用者が任意に設定することができる。
・入力されたデータが想定されたデータ長になっているか
・データ内の小データが想定された順序になっているか
・小データ値は想定された範囲に収まっているか
・小データは想定されたフォーマットで記載されているか
【0085】
図16は、早期チェック処理の手順を示すフローチャートである。図16のフローチャートは、受信した暗号文の最初の暗号文ブロックを取り出して初期化ベクトルとから平文ブロックに変換してそのデータチェックを行う手順を示している。図16の各処理を実行することによって、早期に暗号分の正当/不当を判断し、不当な暗号文に対する不要な復号処理を防ぐことができる。
【0086】
図16において、情報処理装置100は、まず、暗号文を入手したか否かを判断する(ステップS1601)。情報処理装置100は、ステップS1601において、暗号文が入手されるまで待機状態となる(ステップS1601:Noのループ)。
【0087】
ステップS1601において暗号文を入手したと判断されると(ステップS1601:Yes)、情報処理装置100は、暗号文ブロック1を生成し(ステップS1602)、暗号文ブロック1と初期化ベクトルとを利用して平文ブロック1を算出する(ステップS1603)。すなわち、ステップS1603では、情報処理装置100は、暗号文ブロック1を共通鍵ブロック暗号によって復号して得られたデータと、初期化ベクトルとのビットごとの排他的論理和を算出している。
【0088】
続いて、情報処理装置100は、ステップS1603によって算出された平文ブロック1から時刻情報を抽出し、時刻情報の正当性が妥当か否かを判断する(ステップS1604)。ステップS1604では、たとえば、時刻情報に西暦、月、日、曜日、時、分、秒、マイクロ秒の情報が含まれる場合、それぞれの情報に対応するデータが、それぞれの情報を表すデータとして正当になっているかを判定する。
【0089】
情報処理装置100は、ステップS1604において、時刻情報が正当でないと判断された場合(ステップS1604:No)、入力された暗号文を廃棄して(ステップS1605)、一連のチェック処理を終了する。
【0090】
一方、ステップS1604において、時刻情報が正当と判断された場合(ステップS1604:Yes)、情報処理装置100は、さらに、時刻情報の範囲が正当であるかを判断する(ステップS1606)。時刻情報の範囲は、情報処理装置100が属しているネットワークポリシーに準じて設定される。たとえば、情報処理装置100は、想定されたアドホックネットワークが通信されてから1日前までのパケットは受理するが、それよりも過去のパケットは受理しないというポリシー下で運用されているものとする。
【0091】
上述のようなポリシーの場合、ステップS1606では、時刻情報が現在の時刻の1日間での時刻であるかを判定する。そして、ステップS1606において、時刻情報が正当な範囲に含まれないと判断された場合(ステップS1606:No)、情報処理装置100は、入力された暗号文は正当でないと判定して、入力された暗号文を廃棄して(ステップS1605)、一連のチェック処理を終了する。
【0092】
一方、ステップS1606において、時刻情報が正当な範囲に含まると判断された場合(ステップS1606:Yes)、情報処理装置100は、平文ブロック1は正当であると判定して、「正当」であることを出力して(ステップS1607)、一連のチェック処理を終了する。
【0093】
以上説明したように、情報処理装置100は、入力された暗号文の暗号文ブロック1に関する復号処理と復号データのチェックを行うため、暗号文が正当でない場合には、早期のデータ廃棄が可能となる。特に、ネットワークに対するサービス停止攻撃を行う攻撃者は、大量のパケットをネットワークに送信するが、正当な暗号化・復号用の鍵を保持していない。したがって、情報処理装置100では、攻撃者が送信したパケットを復号した場合、早期チェックの段階で廃棄されることになる。また、情報処理装置100は、先頭の暗号文ブロックだけを復号・チェックすることで、暗号文全体のチェックが可能であり、サービス停止攻撃の検出・対抗策として機能させることもできる。
【0094】
また、ネットワークに対する再送信攻撃を行う攻撃者は、ネットワーク内を流れる正当なパケットを受信・保持し、攻撃時にそれらパケットをネットワークに送信するが、時刻情報が正当な範囲から外れることから、ステップS1606の処理によって時刻情報の範囲を検証することによって、攻撃者が送信したパケットを廃棄することができる。
【0095】
(CTRモードによる暗号化通信)
つぎに、情報処理装置100を用いたCTR(CounTR)モードによる暗号化通信について説明する。CTRモードは、カウンタの役割を果たす変数カウンタCTRを利用して共通鍵暗号化を行う暗号化通信である。CTRモードを採用するメリットとしては、1)パディングが不要、2)暗号化・復号の処理内容が同じ、3)暗号化・復号の事前計算が可能、4)暗号化・復号で並列処理が可能という点が上げられる。反対にデメリットとして、乱数性要素を含む初期化ベクトルが必須となる点が挙げられる。
【0096】
図17は、本実施の形態にかかるCTRモードの暗号化処理を示す説明図である。図17のように、CTRモードの場合、初期化ベクトル1700から変数カウンタCTRが決定すると、以降のカウンタCTR+1,CTR+2,…,CTR+nも一意的に決定する。そして、各平文ブロックは、決定した変数カウンタCTRを鍵とした暗号化が施される。
【0097】
上述のようにCTRモードの場合、暗号化の鍵として利用されるカウンタCTRの値が初期化ベクトル1700によって決定する。CBCモードと異なり、CTRモードでは、各平文ブロックの暗号化の鍵として前段の平文ブロックの暗号文のブロックを利用することなく、初期化ベクトル1700から決定した変数カウンタCTRが暗号化の鍵として利用される。したがって、変数カウンタCTR自体に乱数性要素がなければ、暗号化の鍵に乱数性情報が含まれず、暗号化強度が著しく低下してしまう。
【0098】
したがって、CTRモードを採用する場合、CBCモードのように固定値を初期化ベクトル1700として代用できない。したがって、情報処理装置100には、初期化ベクトルを生成もしくは取得する機構を備える必要がある。また、受信側の情報処理装置100xにも初期化ベクトル1700を送信する必要がある。
【0099】
図18は、本実施の形態にかかるCTRモードの復号処理を示す説明図である。図18のように、CTRモードの場合、初期化ベクトル1700を取得すれば暗号化と同じ処理によって復号を行うことができる。なお、CTRモードにおける復号も、先頭の暗号文ブロック1を先に復号し、フォーマットチェックを行うことによって、早期に暗号文の正当/不当を判断することができる。したがって、CTRモードによる通信処理は、復号処理の効率化を第1の目的とするような情報処理装置100への適用が望ましい。
【0100】
以上説明したように、本実施の形態にかかる情報処理装置および情報処理方法によれば、情報処理装置内で使用されている情報の中から乱数性情報を取得して、平文に組み込むことで、共通の固定値を鍵情報としても、暗号化強度の高い共通鍵暗号化が可能になる。本技術のように、情報処理装置内で使用されている乱数性情報を活用することによって、乱数値を発生もしくは入手する機構を削減することができる。さらに、共通鍵の送信処理が不要になるため、情報処理装置や通信回線への処理負荷を低減させることが可能となり、ネットワーク環境に左右されない暗号化通信が可能になる。
【0101】
また、上記技術では、平文を所定のデータ量ごとに暗号化する機能を備えることによって、通信回線の容量に対応して、暗号化データの容量を分散させることができる。したがって、大容量の平文データであっても、情報処理装置100が接続している通信回線の容量を問わず、安全な送受信を実現することができる。
【0102】
また、上記技術では、さらに、暗号化データを受信した場合に、共通鍵として配布済みの固定値を復号鍵として利用して暗号化データの先頭部分から復号する構成にしてもよい。上述のような構成の場合、暗号化データを先頭部分にチェック用の情報(たとえば時刻情報)を組み込むことによって、復号の早期段階で暗号化データの正当性を判断し、不要な処理を排除することができる。
【0103】
また、上記技術のように、早期段階で暗号化データの正当性を判断した場合に、復号前の暗号化データを自動的に廃棄する機能を備えることによって、攻撃者などからの大量な不正パケットによって通信機能が麻痺するような事態を回避できる。
【0104】
また、上記技術では、さらに、暗号化強度を保持するための乱数性情報として、時刻情報を採用することによって、どのような構成の通信機器であっても本実施の形態にかかる通信処理を適用することができる。
【0105】
さらに乱数性情報として時刻情報を使用することで、データ内に乱数性を付与することができる。したがって、初期化ベクトルとして固定値を使用したとしても、安全性を低下させることなく共通鍵ブロック暗号化のCBCモードによる暗号化・復号処理を実現することができる。また、時刻情報が平文内にもともと必要な情報である場合、平文情報を増加させることなく共通鍵ブロック暗号化のCBCモードによる暗号化・復号処理が可能となるため、ネットワークにおけるデータの通信効率を向上することができる。
【0106】
さらに、本実施の形態にかかる情報処理装置および情報処理方法は、暗号文を構成する暗号文ブロックの先頭ブロックだけを復号して得られた情報から、暗号文が不正なパケットか否かを判断することができる。もし、不正なパケットを受信した場合であっても、残りの暗号文ブロックに対する不要な復号処理を行わずに、廃棄することが可能となる。また正当なパケットであっても、本手段を用いた場合の遅延や回路増加はほとんど発生しない。
【0107】
特に、本実施の形態にかかる情報処理装置および情報処理方法の適用が望まれる、ネットワーク環境では、サービス停止攻撃(DοS攻撃)と呼ばれる攻撃が行われることがある。サービス停止攻撃では、攻撃者はネットワークに対して大量なパケットを送信し、ネットワークの機能を停止させることを目的とする。したがって、サービス停止攻撃に対抗する対策として、上述のような早期段階での不正パケット廃棄は、非常に効果的である。
【0108】
さらにネットワークに対する別の攻撃として、再送信攻撃(リプレイ攻撃)と呼ばれる攻撃が知られている。再送信攻撃では、攻撃者はあらかじめ正規のパケットを入手・保管しておき、これらのパケットをネットワークに再度送信することで、サービスの機能低下や誤操作を目的としている。再送信攻撃に対抗する対策としてさまざまな手段が知られているが、本実施の形態にかかる情報処理装置および情報処理方法のように、時刻情報が所定の範囲に収まらない場合にパケットを廃棄する構成は、再送信攻撃への対策が可能になるという副次的な効果を有する。
【0109】
なお、本実施の形態で説明した情報処理方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0110】
また、本実施の形態で説明した情報処理装置100は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した情報処理装置100の機能(取得部501〜判断部507)をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、情報処理装置100を製造することができる。
【符号の説明】
【0111】
100,100x 情報処理装置
101 平文データ
102 暗号化データ
110 共通鍵
501 取得部
502 暗号化部
503 設定部
504 送信部
505 受信部
506 復号部
507 判断部
【特許請求の範囲】
【請求項1】
他の情報処理装置と共通の固定の共通鍵を用いて平文を暗号化する情報処理装置であって、
前記情報処理装置内で使用されている乱数性情報を取得する取得手段と、
暗号化対象データおよび鍵情報が設定されると、前記鍵情報を用いて前記暗号化対象データを暗号化することにより暗号化データを出力する暗号化手段と、
前記暗号化手段によって暗号化された暗号化データを前記他の情報処理装置に送信する送信手段と、
前記取得手段によって前記乱数性情報が取得された場合は、前記固定の共通鍵を前記鍵情報に設定し前記乱数性情報を前記暗号化対象データに設定する第1の暗号化設定処理と、前記暗号化手段によって前記暗号化データが得られた場合は、当該暗号化データを前記鍵情報に設定し前記平文の少なくとも一部を前記対象データに設定する第2の暗号化設定処理を実行する設定手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記取得手段は、
前記情報処理装置内で使用されている乱数性情報として、当該情報処理装置内で使用されている時刻情報を取得することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記暗号化手段は、前記暗号化対象データを所定のテータ単位ごとのブロック群に分割した後、前記鍵情報を用いて前記ブロック群の先頭のブロックから順に暗号化することにより前記ブロック群の暗号化データを出力することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
他の情報処理装置と共通の固定の共通鍵を用いて前記他の情報処理装置からの暗号化データを復号する情報処理装置であって、
復号対象データおよび復号鍵情報が設定されると、前記復号鍵情報を用いて前記復号対象データを復号することにより復号データを出力する復号手段と、
前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断する判断手段と、
前記判断手段による判断前において前記復号手段に前記暗号化データが与えられた場合は、前記固定の共通鍵を前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定することにより、前記復号手段に前記復号データとして前記他の情報処理装置内で使用されている乱数性情報を出力させる第1の復号設定処理と、前記判断手段によって前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であると判断された場合は、前記復号対象データを前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定する第2の復号設定処理を実行する設定手段と、
を備えることを特徴とする情報処理装置。
【請求項5】
前記設定手段は、
前記判断手段によって前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式でないと判断された場合は、前記第2の復号設定処理に代わり、前記復号手段に前記暗号化データを廃棄させる廃棄設定処理を実行することを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記乱数性情報は、前記他の情報処理装置内で使用されている時刻情報であることを特徴とする請求項4または5に記載の情報処理装置。
【請求項7】
前記設定手段は、
前記他の情報処理装置内で使用されている時刻情報が前記情報処理装置内で使用されている時刻情報と比較して所定範囲内に収まる場合、前記第2の復号設定処理を実行することを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記復号手段は、前記復号対象データとして所定のデータ単位のブロック群が設定されると、前記復号鍵情報を用いて前記ブロック群の先頭のブロックから順に前記復号対象データを復号することにより復号データを出力し、
前記判断手段は、前記先頭のブロックの復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断することを特徴する請求項4〜7のいずれか一つに記載の情報処理装置。
【請求項9】
取得手段と設定手段と暗号化手段と送信手段とを備え、他の情報処理装置と共通の固定の共通鍵を用いて平文を暗号化するコンピュータが、
前記取得手段により、前記情報処理装置内で使用されている乱数性情報を取得する取得工程と、
前記暗号化手段により、暗号化対象データおよび鍵情報が設定されると、前記鍵情報を用いて前記暗号化対象データを暗号化することにより暗号化データを出力する暗号化工程と、
前記送信手段により、前記暗号化工程によって暗号化された暗号化データを前記他の情報処理装置に送信する送信工程と、
前記設定手段により、前記取得工程によって前記乱数性情報が取得された場合は、前記固定の共通鍵を前記鍵情報に設定し前記乱数性情報を前記暗号化対象データに設定する第1の暗号化設定処理と、前記暗号化工程によって前記暗号化データが得られた場合は、当該暗号化データを前記鍵情報に設定し前記平文の少なくとも一部を前記対象データに設定する第2の暗号化設定処理を実行する設定工程と、
を実行することを特徴とする情報処理方法。
【請求項10】
前記暗号化工程では、前記暗号化対象データを所定のテータ単位ごとのブロック群に分割した後、前記鍵情報を用いて前記ブロック群の先頭のブロックから順に暗号化することにより前記ブロック群の暗号化データを出力することを特徴とする請求項9に記載の情報処理方法。
【請求項11】
復号手段と判断手段と設定手段とを備え、他の情報処理装置と共通の固定の共通鍵を用いて前記他の情報処理装置からの暗号化データを復号するコンピュータが、
前記復号手段により、復号対象データおよび復号鍵情報が設定されると、前記復号鍵情報を用いて前記復号対象データを復号することにより復号データを出力する復号工程と、
前記判断手段により、前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断する判断工程と、
前記設定手段により、前記判断工程による判断前において前記復号手段に前記暗号化データが与えられた場合は、前記固定の共通鍵を前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定することにより、前記復号手段に前記復号データとして前記他の情報処理装置内で使用されている乱数性情報を出力させる第1の復号設定処理と、前記判断工程によって前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であると判断された場合は、前記復号対象データを前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定する第2の復号設定処理を実行する設定工程と、
を実行することを特徴とする情報処理方法。
【請求項12】
前記復号工程では、前記復号対象データとして所定のデータ単位のブロック群が設定されると、前記復号鍵情報を用いて前記ブロック群の先頭のブロックから順に前記復号対象データを復号することにより復号データを出力し、
前記判断工程では、前記先頭のブロックの復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断することを特徴する請求項11に記載の情報処理方法。
【請求項1】
他の情報処理装置と共通の固定の共通鍵を用いて平文を暗号化する情報処理装置であって、
前記情報処理装置内で使用されている乱数性情報を取得する取得手段と、
暗号化対象データおよび鍵情報が設定されると、前記鍵情報を用いて前記暗号化対象データを暗号化することにより暗号化データを出力する暗号化手段と、
前記暗号化手段によって暗号化された暗号化データを前記他の情報処理装置に送信する送信手段と、
前記取得手段によって前記乱数性情報が取得された場合は、前記固定の共通鍵を前記鍵情報に設定し前記乱数性情報を前記暗号化対象データに設定する第1の暗号化設定処理と、前記暗号化手段によって前記暗号化データが得られた場合は、当該暗号化データを前記鍵情報に設定し前記平文の少なくとも一部を前記対象データに設定する第2の暗号化設定処理を実行する設定手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記取得手段は、
前記情報処理装置内で使用されている乱数性情報として、当該情報処理装置内で使用されている時刻情報を取得することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記暗号化手段は、前記暗号化対象データを所定のテータ単位ごとのブロック群に分割した後、前記鍵情報を用いて前記ブロック群の先頭のブロックから順に暗号化することにより前記ブロック群の暗号化データを出力することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
他の情報処理装置と共通の固定の共通鍵を用いて前記他の情報処理装置からの暗号化データを復号する情報処理装置であって、
復号対象データおよび復号鍵情報が設定されると、前記復号鍵情報を用いて前記復号対象データを復号することにより復号データを出力する復号手段と、
前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断する判断手段と、
前記判断手段による判断前において前記復号手段に前記暗号化データが与えられた場合は、前記固定の共通鍵を前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定することにより、前記復号手段に前記復号データとして前記他の情報処理装置内で使用されている乱数性情報を出力させる第1の復号設定処理と、前記判断手段によって前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であると判断された場合は、前記復号対象データを前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定する第2の復号設定処理を実行する設定手段と、
を備えることを特徴とする情報処理装置。
【請求項5】
前記設定手段は、
前記判断手段によって前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式でないと判断された場合は、前記第2の復号設定処理に代わり、前記復号手段に前記暗号化データを廃棄させる廃棄設定処理を実行することを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記乱数性情報は、前記他の情報処理装置内で使用されている時刻情報であることを特徴とする請求項4または5に記載の情報処理装置。
【請求項7】
前記設定手段は、
前記他の情報処理装置内で使用されている時刻情報が前記情報処理装置内で使用されている時刻情報と比較して所定範囲内に収まる場合、前記第2の復号設定処理を実行することを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記復号手段は、前記復号対象データとして所定のデータ単位のブロック群が設定されると、前記復号鍵情報を用いて前記ブロック群の先頭のブロックから順に前記復号対象データを復号することにより復号データを出力し、
前記判断手段は、前記先頭のブロックの復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断することを特徴する請求項4〜7のいずれか一つに記載の情報処理装置。
【請求項9】
取得手段と設定手段と暗号化手段と送信手段とを備え、他の情報処理装置と共通の固定の共通鍵を用いて平文を暗号化するコンピュータが、
前記取得手段により、前記情報処理装置内で使用されている乱数性情報を取得する取得工程と、
前記暗号化手段により、暗号化対象データおよび鍵情報が設定されると、前記鍵情報を用いて前記暗号化対象データを暗号化することにより暗号化データを出力する暗号化工程と、
前記送信手段により、前記暗号化工程によって暗号化された暗号化データを前記他の情報処理装置に送信する送信工程と、
前記設定手段により、前記取得工程によって前記乱数性情報が取得された場合は、前記固定の共通鍵を前記鍵情報に設定し前記乱数性情報を前記暗号化対象データに設定する第1の暗号化設定処理と、前記暗号化工程によって前記暗号化データが得られた場合は、当該暗号化データを前記鍵情報に設定し前記平文の少なくとも一部を前記対象データに設定する第2の暗号化設定処理を実行する設定工程と、
を実行することを特徴とする情報処理方法。
【請求項10】
前記暗号化工程では、前記暗号化対象データを所定のテータ単位ごとのブロック群に分割した後、前記鍵情報を用いて前記ブロック群の先頭のブロックから順に暗号化することにより前記ブロック群の暗号化データを出力することを特徴とする請求項9に記載の情報処理方法。
【請求項11】
復号手段と判断手段と設定手段とを備え、他の情報処理装置と共通の固定の共通鍵を用いて前記他の情報処理装置からの暗号化データを復号するコンピュータが、
前記復号手段により、復号対象データおよび復号鍵情報が設定されると、前記復号鍵情報を用いて前記復号対象データを復号することにより復号データを出力する復号工程と、
前記判断手段により、前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断する判断工程と、
前記設定手段により、前記判断工程による判断前において前記復号手段に前記暗号化データが与えられた場合は、前記固定の共通鍵を前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定することにより、前記復号手段に前記復号データとして前記他の情報処理装置内で使用されている乱数性情報を出力させる第1の復号設定処理と、前記判断工程によって前記復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であると判断された場合は、前記復号対象データを前記復号鍵情報に設定し前記暗号化データを前記復号対象データに設定する第2の復号設定処理を実行する設定工程と、
を実行することを特徴とする情報処理方法。
【請求項12】
前記復号工程では、前記復号対象データとして所定のデータ単位のブロック群が設定されると、前記復号鍵情報を用いて前記ブロック群の先頭のブロックから順に前記復号対象データを復号することにより復号データを出力し、
前記判断工程では、前記先頭のブロックの復号データの形式が前記情報処理装置および前記他の情報処理装置内で使用されている乱数性情報の形式であるか否かを判断することを特徴する請求項11に記載の情報処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2011−151689(P2011−151689A)
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願番号】特願2010−12624(P2010−12624)
【出願日】平成22年1月22日(2010.1.22)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願日】平成22年1月22日(2010.1.22)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]