(57)【特許請求の範囲】
【請求項１】
コンピュータを、
データが複数回暗号化された暗号化データに対して複数回復号処理を実行するデータ復号手段と、
前記復号処理のたびに復号された復号データのハッシュ値を生成するハッシュ値生成手段と、
前記ハッシュ値と前記暗号化データに関連付けられている前記データのハッシュ値との比較に応じて前記復号処理の完了を判定する判定手段として機能させるための復号プログラム。
【請求項２】
前記暗号化データに関連付けられている暗号化された共通鍵を秘密鍵によって復号する鍵復号手段として前記コンピュータを機能させ、
前記データ復号手段は、復号された前記共通鍵によって前記暗号化データに対して前記復号処理を実行する請求項２記載の復号プログラム。
【請求項３】
データが複数回暗号化された暗号化データに対して複数回復号処理を実行するデータ復号手段と、
前記復号処理のたびに復号された復号データのハッシュ値を生成するハッシュ値生成手段と、
前記ハッシュ値と前記暗号化データに関連付けられている前記データのハッシュ値との比較に応じて前記復号処理の完了を判定する判定手段とを有する復号装置。
【請求項４】
データが複数回暗号化された暗号化データに対して複数回復号処理を実行するデータ復号手順と、
前記復号処理のたびに復号された復号データのハッシュ値を生成するハッシュ値生成手順と、
前記ハッシュ値と前記暗号化データに関連付けられている前記データのハッシュ値との比較に応じて前記復号処理の完了を判定する判定手順とをコンピュータが実行する復号方法。
【請求項５】
暗号化装置と、前記暗号化装置によって暗号化されたデータを復号する復号装置とを含む暗号システムであって、
前記暗号化装置は、
データを複数回暗号化することにより暗号化データを生成するデータ暗号化手段と、
前記データのハッシュ値を生成する第一のハッシュ値生成手段と、
前記暗号化データと前記ハッシュ値とを関連付けて記憶装置に記録する記録手段とを有し、
前記復号装置は、
前記暗号化データに対して複数回復号処理を実行するデータ復号手段と、
前記復号処理のたびに復号された復号データのハッシュ値を生成する第二のハッシュ値生成手段と、
前記第二のハッシュ値生成手段によって生成されたハッシュ値と前記暗号化データに関連付けられている前記データのハッシュ値との比較に応じて前記復号処理の完了を判定する判定手段とを有する暗号システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号プログラム、復号装置、復号方法、及び暗号システムに関する。
【背景技術】
【０００２】
従来、ネットワークを介したデータ転送におけるセキュリティの向上を目的として、暗号化技術が用いられている。この場合、データに対して複数回の暗号化処理を施すことにより、より強固な安全性を確保することができる。暗号化処理の回数は、固定であるよりも送信側において任意に定められる方が好ましい。データ転送のたびに暗号化処理の回数を変化させることができるからである。
【特許文献１】特開平１０−３３３５６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、暗号化処理の回数を任意とした場合、データの受信側に対して暗号化の回数を通知する必要がある。但し、暗号化処理の回数をデータと共に送信したのでは、複数回暗号化を行った意味が低減してしまうという問題がある。データが盗聴された場合、暗号化処理の回数も盗聴されてしまう可能性があるからである。
【０００４】
本発明は、上記の点に鑑みてなされたものであって、暗号化の回数を適切に判定可能とすることのできる復号プログラム、復号装置、復号方法、及び暗号システムの提供を目的とする。
【課題を解決するための手段】
【０００５】
そこで上記課題を解決するため、復号プログラムは、コンピュータを、データが複数回暗号化された暗号化データに対して複数回復号処理を実行するデータ復号手段と、前記復号処理のたびに復号された復号データのハッシュ値を生成するハッシュ値生成手段と、前記ハッシュ値と前記暗号化データに関連付けられている前記データのハッシュ値との比較に応じて前記復号処理の完了を判定する判定手段として機能させる。
【０００６】
このような復号プログラムでは、暗号化の回数を適切に判定可能とすることができる。
【発明の効果】
【０００７】
本発明によれば、暗号化の回数を適切に判定可能とすることのできる復号プログラム、復号装置、復号方法、及び暗号システムを提供することができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるシステム構成例を示す図である。同図において、暗号化装置１０及び復号装置２０は、ＬＡＮ（Local  Area  Network）又はインターネット等のネットワーク３０（有線又は無線の別は問わない。）を介して接続されている。
【０００９】
暗号化装置１０は、データ（電子データ）を暗号化し、暗号化されたデータ（暗号化データ）を復号装置２０に送信するコンピュータである。復号装置２０は、暗号化データ受信し、復号するコンピュータである。
【００１０】
図２は、本発明の実施の形態における暗号化装置のハードウェア構成例を示す図である。図２の暗号化装置１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、ＣＰＵ１０４と、インタフェース装置１０５と、表示装置１０６と、入力装置１０７とを有する。
【００１１】
暗号化装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１２】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って暗号化装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical  User  Interface）等を表示する。入力装置１０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００１３】
なお、復号装置２０も図２に示されるようなハードウェア構成を有する。
【００１４】
以下、暗号化装置１０及び復号装置２０が実行する処理手順について説明する。図３は、暗号化装置による処理手順を説明するためのフローチャートである。同図の処理は、暗号化装置１０にインストールされたプログラムがＣＰＵ１０４に実行させるものである。
【００１５】
例えば、入力装置１０７を介してユーザによって転送対象のデータＤ（ファイル）が選択され、データＤの暗号化指示が入力されると、暗号化装置１０は、共通鍵Ｃ（共通鍵暗号方式の暗号鍵）をランダムに生成する（Ｓ１０１）。ランダムな生成方法は所定のものに限定されないが、例えば乱数を用いて共通鍵Ｃを生成すればよい。続いて、暗号化装置１０は、所定のハッシュ関数に基づいてデータＤのハッシュ値Ｈを生成（算出）する（Ｓ１０２）。続いて、暗号化装置１０は、データＤを共通鍵Ｃによって暗号化する（Ｓ１０３）。暗号化されたデータＤを、以下「暗号化データ」という。データの暗号化は同一の共通鍵Ｃを用いて所望の回数実行される（Ｓ１０４）。すなわち、暗号化データに対して更なる暗号化繰り返される。なお、所望の回数は、ユーザに指定させてもよいし、暗号化装置１０がランダムに決定してもよい。
【００１６】
所望の回数分の暗号化が完了すると、暗号化装置１０は、を公開鍵Ｐ（公開鍵暗号方式の公開鍵）によって共通鍵Ｃを暗号化する（Ｓ１０５）。公開鍵Ｐによって暗号化された共通鍵Ｃを、以下「暗号化共通鍵」という。なお、公開鍵Ｐは、予め補助記憶装置１０２に保存されている。続いて、暗号化装置１０は、暗号化共通鍵、ハッシュ値Ｈ、暗号化前のデータＤのデータ長Ｌ、及び暗号化データを含む転送用データを生成し、メモリ装置１０３に記録する（Ｓ１０６）。
【００１７】
図４は、転送用データの構成例を示す図である。同図において転送用データ５０は、管理部５１及び実データ部５２を含む。管理部５１にはハッシュ値Ｈ、暗号化共通鍵、及びデータ長Ｌ等が格納される。実データ部５２には暗号化データが格納される。このように、本実施の形態では、同一のデータ（転送用データ５０）内に格納されることにより、各情報（ハッシュ値Ｈ、暗号化共通鍵、データ長Ｌ、及び暗号化データ）の関連付けが実現される。但し、各情報の関連付けは他の形態によって実現されてもよい。例えば、共通の識別子を各情報に付加することにより関連付けを実現してもよい。続いて、暗号化装置１０は、生成された転送用データ５０を復号装置２０に送信する（Ｓ１０７）。
【００１８】
続いて、復号装置２０による処理手順について説明する。図５は、復号装置による処理手順を説明するためのフローチャートである。同図の処理は、復号装置２０にインストールされたプログラムが復号装置２０のＣＰＵに実行させるものである。
【００１９】
復号装置２０は、暗号化装置１０より送信された転送用データ５０を受信すると（Ｓ２１０）、転送用データ５０の管理部５１に格納されている情報（ハッシュ値Ｈ、暗号化共通鍵、及びデータ長Ｌ）を取得する（Ｓ２０２）。続いて、復号装置２０は、暗号化共通鍵を秘密鍵Ｒ（公開鍵暗号方式の秘密鍵）によって復号することにより共通鍵Ｐを取得する（Ｓ２０３）。なお、秘密鍵Ｒは、暗号化装置１０における公開鍵Ｐと対をなす秘密鍵であり、復号装置２０の補助記憶装置に予め保存されている。
【００２０】
続いて、復号装置２０は、共通鍵Ｐによって暗号化データを一回復号し（Ｓ２０４）、復号された暗号化データのハッシュ値Ｈαを暗号化装置１０と同じ所定のハッシュ関数によって生成する（Ｓ２０５）。続いて、復号装置２０は、復号された暗号化データのデータ長Ｌαとデータ長Ｌとを比較する（Ｓ２０６）。データ長Ｌαとデータ長Ｌとが同じ場合（Ｓ２０６でＹｅｓ）、復号装置２０は、ハッシュ値Ｈαとハッシュ値Ｈとを比較する（Ｓ２０７）。ハッシュ値Ｈαとハッシュ値Ｈとが一致する場合（Ｓ２０７でＹｅｓ）、復号装置２０はデータＤの復号は完了したと判定し、例えば、データＤを復号装置２０の補助記憶装置に保存する。
【００２１】
一方、データ長Ｌαとデータ長Ｌとが一致しない場合（Ｓ２０６でＮｏ）、又はハッシュ値Ｈαとハッシュ値Ｈとが一致しない場合（Ｓ２０７でＮｏ）、復号装置２０は、データ長及びハッシュ値が一致するまで共通鍵Ｐによる暗号化データの復号（Ｓ２０４）と、復号されたデータのハッシュ値Ｈαとの生成（Ｓ２０５）とを繰り返し行う。
【００２２】
上述したように、本実施の形態によれば、暗号化の回数を復号先に通知されなくても、復号先において複数回暗号化された暗号化データの復号の完了を適切に検知することができる。
【００２３】
なお、データ長Ｌは、必ずしも転送用データ５０に含めなくてもよい。この場合、復号装置２０において、データ長Ｌαとデータ長Ｌとの比較は行わず、ハッシュ値Ｈαとハッシュ値Ｈとの比較に基づいて復号の完了の判定を行えばよい。
【００２４】
また、データＤの暗号化は、共通鍵暗号方式でなく、公開鍵暗号方式に基づいて行ってもよい。この場合、暗号化装置１０は、共通鍵Ｃの生成は行わず、公開鍵ＰによってデータＤを所望の回数暗号化すればよい。したがって、転送用データ５０には、共通鍵Ｃを含める必要はない。復号装置２０は、秘密鍵Ｒによって暗号化データを繰り返し（複数回）復号すればよい。
【００２５】
また、本実施の形態の暗号化及び復号の方法は、ネットワークを用いて転送されるデータに対してだけでなく、一台のコンピュータ内で記憶装置内に保存されるデータに対しても有効である。すなわち、記憶装置への保存時にデータＤに対して複数回の暗号化を行う場合、データＤのハッシュ値Ｈと関連付けて暗号化データを保存しておく。記憶装置からの読み出し（ロード）時には、ハッシュ値Ｈに基づいて暗号化データの復号の完了を判定すればよい。
【００２６】
続いて、上記において説明したデータＤのセキュアな転送方法を実際のビジネス環境に適用した例を説明する。図６は、本実施の形態をビジネス環境に適用した例を説明するための図である。
【００２７】
同図には、顧客環境Ｅ１とサポート環境Ｅ２とが示されている。顧客環境Ｅ１は、或るコンピュータシステムを利用する顧客における環境であり、サポート情報送信装置１１を含む。サポート情報１１は、サポート情報をサポート環境Ｅ２に送信するコンピュータであり、図１における暗号装置１０に相当する。サポート情報とは、例えば、コンピュータシステムにおけるログ情報等、障害等の原因を解析する際の手がかりとなる情報をいう。サポート情報には、顧客環境Ｅ１における機密情報等も含まれうる。したがって、サポート情報のネットワーク転送に関しては適切にセキュリティが確保されている必要がある。なお、顧客環境Ｅ１は、複数存在しうる。
【００２８】
一方、サポート環境Ｅ２は、顧客環境Ｅ１において利用されているコンピュータシステムのサポート（障害対応等）を行う組織における環境であり、サポート情報受信装置２１及びサポート装置２２を含む。サポート情報受信装置２１は、サポート情報送信装置１１より送信されるサポート情報を一括して受信するコンピュータである。サポート装置１０は、サポート情報の解析を行うコンピュータであり、サポート環境Ｅ２における担当者ごとに設置されている。なお、サポート情報受信装置２１及びサポート装置２２は、図１における復号装置２０に相当する。
【００２９】
以下、図６における処理手順について説明する。まず、サポート情報送信装置１１は、共通鍵Ｃをランダムに生成する（Ｓ３０１）。続いて、サポート情報送信装置１１は、サポート情報Ｉのハッシュ値Ｈを生成する（Ｓ３０３）。続いて、サポート情報送信装置１１は、共通鍵Ｃによってサポート情報Ｉを所望の回数繰り返し暗号化する（Ｓ３０３）。続いて、サポート情報送信装置１１は、予め保存されている公開鍵Ｐによって共通鍵Ｃを暗号化し、暗号化共通鍵を生成する（Ｓ３０４）。続いて、サポート情報送信装置１１は、サポート情報Ｉの転送用データ５０を生成する（Ｓ３０５）。ここで、転送用データ５０の管理部５１にはハッシュ値Ｈ、暗号化共通鍵、及び暗号化前のサポート情報Ｉのデータ長Ｌ等が格納される。また、転送用データ５０の実データ部５１には、暗号化データが格納される。なお、運用上の必要に応じて転送用データの生成日等を管理部５１に含めるようにしてもよい。続いて、サポート情報送信装置１１は、転送用データ５１をサポート情報受信装置２１に送信する（Ｓ３０６）。転送用データ５１の送信は、電子メールを用いて行われてもよいし、ＦＴＰ（File  Transfer  Protocol）やＨＴＴＰ（HyperText  Transfer  Protocol）等に基づいて行われてよい。
【００３０】
サポート情報受信装置２１は転送用データ５０を受信すると、転送用データ５０をサポート情報受信装置２１の補助記憶装置に保存しておく。サポート情報受信装置２１、或る担当者のサポート装置２０より転送用データ５０の取得要求（ダウンロード要求）を受信すると処理を開始する。まず、サポート情報送信装置１１は、転送用データ５０から暗号化共通鍵を取得し、予めサポート情報受信装置２１に保存されている秘密鍵Ｒによって暗号化共通鍵を復号することにより共通鍵Ｃを取得する（Ｓ４０１）。続いて、サポート情報送信装置１１は、転送用データ５０の取得要求に係るサポート装置２０（担当者）に対応する公開鍵Ｐａによって共通鍵Ｃを暗号化する（Ｓ４０２）。暗号化に伴い、サポート情報送信装置１１は、転送用データ５０内の暗号化共通鍵を、暗号化された共通鍵（以下、「担当者毎暗号化共通鍵」という。）によって置き換える。これによって、共通鍵Ｃは、正当な担当者でないと復号することはできない状態となる。なお、サポート装置２０（担当者）と公開鍵Ｐａとの対応付けは、例えば、サポート装置２０の識別子（ＩＰアドレス等）に関連付けて公開鍵Ｐａを保存しておくことにより実現すればよい。続いて、サポート情報送信装置１１は、取得要求に係るサポート装置２２に転送用データ５０を送信する（Ｓ４０３）。
【００３１】
続いて、サポート装置２０は、転送用データ５０を受信すると、転送用データ５０よりハッシュ値Ｈ、担当者毎暗号化共通鍵、及びデータ長Ｌ等を取り出し、担当者毎暗号化共通鍵を秘密鍵Ｒａによって復号することにより共通鍵Ｃを取得する（Ｓ４０４）。なお、秘密鍵Ｒａは、それぞれのサポート装置２０に予め保存されている。続いて、サポート装置２０は、共通鍵Ｃによる暗号化データの復号（Ｓ４０５）と復号の完了のチェック（Ｓ４０６）とを繰り返し行う。ここで、復号の完了のチェックとは図５のステップＳ２０５〜Ｓ２０７において説明した処理である。したがって、サポート装置２０は、復号後のデータ長Ｌαがデータ長Ｌに一致し、かつ、復号後のデータのハッシュ値Ｈαがハッシュ値Ｈに一致した場合は復号は完了したと判定し、復号されたサポート情報Ｉを保存する（Ｓ４０７）。
【００３２】
なお、図３及び図５を用いて説明したように、図６の処理において、転送用データ５０に対してデータ長Ｌを含めなくてもよい。また、サポート情報Ｉの暗号は公開鍵暗号方式によって行ってもよい。
【００３３】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００３４】
以上の説明に関し、更に以下の項を開示する。
（付記１）
コンピュータを、
データを複数回暗号化することにより暗号化データを生成するデータ暗号化手段と、
前記データのハッシュ値を生成するハッシュ値生成手段と、
前記暗号化データと前記ハッシュ値とを関連付けて記憶装置に記録する記録手段として機能させるための暗号化プログラム。
（付記２）
前記暗号化手段は、前記データを共通鍵によって暗号化し、
前記共通鍵を公開鍵によって暗号化することにより暗号化共通鍵を生成する鍵暗号化手段として前記コンピュータを機能させ、
前記記録手段は、前記暗号化データと前記ハッシュ値と前記暗号化共通鍵とを関連付けて前記記憶装置に記録する付記１記載の暗号化プログラム。
（付記３）
前記共通鍵をランダムに生成する共通鍵生成手段として前記コンピュータを機能させる付記２記載の暗号化プログラム。
（付記４）
コンピュータを、
データが複数回暗号化された暗号化データに対して複数回復号処理を実行するデータ復号手段と、
前記復号処理のたびに復号された復号データのハッシュ値を生成するハッシュ値生成手段と、
前記ハッシュ値と前記暗号化データに関連付けられている前記データのハッシュ値との比較に応じて前記復号処理の完了を判定する判定手段として機能させるための復号プログラム。
（付記５）
前記暗号化データに関連付けられている暗号化された共通鍵を秘密鍵によって復号する鍵復号手段として前記コンピュータを機能させ、
前記データ復号手段は、復号された前記共通鍵によって前記暗号化データに対して前記復号処理を実行する付記４記載の復号プログラム。
（付記６）
データを複数回暗号化することにより暗号化データを生成するデータ暗号化手段と、
前記データのハッシュ値を生成するハッシュ値生成手段と、
前記暗号化データと前記ハッシュ値とを関連付けて記憶装置に記録する記録手段とを有する暗号化装置。
（付記７）
データが複数回暗号化された暗号化データに対して複数回復号処理を実行するデータ復号手段と、
前記復号処理のたびに復号された復号データのハッシュ値を生成するハッシュ値生成手段と、
前記ハッシュ値と前記暗号化データに関連付けられている前記データのハッシュ値との比較に応じて前記復号処理の完了を判定する判定手段とを有する復号装置。
（付記８）
コンピュータが実行する暗号化方法であって、
データを複数回暗号化することにより暗号化データを生成するデータ暗号化手順と、
前記データのハッシュ値を生成するハッシュ値生成手順と、
前記暗号化データと前記ハッシュ値とを関連付けて記憶装置に記録する記録手順とを有する暗号化方法。
（付記９）
コンピュータが実行する復号方法であって、
データが複数回暗号化された暗号化データに対して複数回復号処理を実行するデータ復号手順と、
前記復号処理のたびに復号された復号データのハッシュ値を生成するハッシュ値生成手順と、
前記ハッシュ値と前記暗号化データに関連付けられている前記データのハッシュ値との比較に応じて前記復号処理の完了を判定する判定手順とを有する復号方法。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態におけるシステム構成例を示す図である。
【図２】本発明の実施の形態における暗号化装置のハードウェア構成例を示す図である。
【図３】暗号化装置による処理手順を説明するためのフローチャートである。
【図４】転送用データの構成例を示す図である。
【図５】復号装置による処理手順を説明するためのフローチャートである。
【図６】本実施の形態をビジネス環境に適用した例を説明するための図である。
【符号の説明】
【００３６】
１０          暗号化装置
１１          サポート情報送信装置
２０          復号装置
２１          サポート情報受信装置
２２          サポート装置
３０          クライアント装置
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
Ｂ            バス
【図１】
0005136234.tif 000002
【図２】
0005136234.tif 000003
【図３】
0005136234.tif 000004
【図４】
0005136234.tif 000005
【図５】
0005136234.tif 000006
【図６】
0005136234.tif 000007