暗号化装置、暗号化復号化システム、暗号化方法及びコンピュータプログラム
【課題】暗号化装置のデータの秘匿性を向上させること。
【解決手段】暗号化装置であって、公開鍵暗号方式によって生成された暗号鍵の登録主体を認証する認証部と、前記認証部によって認証された前記登録主体が登録する前記暗号鍵を記憶する、暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、前記データを消去する暗号化部と、前記暗号化部による暗号化によって生成された暗号化データを記憶する暗号化データ記憶部と、を備える。
【解決手段】暗号化装置であって、公開鍵暗号方式によって生成された暗号鍵の登録主体を認証する認証部と、前記認証部によって認証された前記登録主体が登録する前記暗号鍵を記憶する、暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、前記データを消去する暗号化部と、前記暗号化部による暗号化によって生成された暗号化データを記憶する暗号化データ記憶部と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを暗号化する技術に関する。
【背景技術】
【0002】
データの秘匿性を維持するために、データに暗号化処理を施す技術が提案されている。例えば、特許文献1に開示された暗号装置では、個別鍵入力部から入力された個別鍵と、公開鍵入力部から入力された公開鍵とを用いて、ファイル読み込み部によって読み込まれたファイルに対して暗号化処理が行われる。具体的には、暗号装置は、個別鍵を用いてファイルに対して暗号化処理を行い、暗号文を生成する。また、暗号装置は、公開鍵を用いて個別鍵を暗号化し鍵情報を生成し、暗号文に鍵情報に付加する。このような暗号装置によれば、個別鍵を鍵情報として暗号文と一緒に保管しておくため、個別鍵を喪失した場合にも鍵情報より個別鍵を再生成できる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平7−56507号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、例えば公共の場所に設置する必要があるなどのように、暗号化装置の物理的なセキュリティを十分に維持することができないような環境では、従来の暗号化装置では十分にデータの秘匿性を維持することができないおそれがあった。
上記事情に鑑み、本発明は、暗号化装置のデータの秘匿性を向上させる技術を提供することを目的としている。
【課題を解決するための手段】
【0005】
本発明の一態様は、暗号化装置であって、公開鍵暗号方式によって生成された暗号鍵の登録主体を認証する認証部と、前記認証部によって認証された前記登録主体が登録する前記暗号鍵を記憶する、暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、前記データを消去する暗号化部と、前記暗号化部による暗号化によって生成された暗号化データ(暗号化データ、暗号化挿入済データ)を記憶する暗号化データ記憶部と、を備える。
【0006】
本発明の一態様は、上記の暗号化装置であって、前記暗号化部は、共通鍵暗号方式によって生成された一時共通鍵で前記データを暗号化し、前記一時共通鍵及び前記データを消去するデータ暗号化部と、前記共通鍵で前記一時共通鍵を暗号化することによって生成される暗号化一時共通鍵を記憶する暗号化一時共通鍵記憶部と、を備え、前記データ暗号化部は、前記所定のタイミング毎に異なる前記一時共通鍵で前記データを暗号化する。
【0007】
本発明の一態様は、上記の暗号化装置であって、前記暗号化部は、前記所定のタイミング毎に異なる前記一時共通鍵を生成する一時共通鍵生成部をさらに備え、前記データ暗号化部は、前記一時共通鍵生成部によって生成された前記一時共通鍵で前記データを暗号化する。
【0008】
本発明の一態様は、上記の暗号化装置であって、前記暗号化部は、共通鍵暗号方式によって生成された一時共通鍵を複数記憶する一時共通鍵記憶部と、前記一時共通鍵記憶部に記憶される複数の一時共通鍵を、前記共通鍵で暗号化して記憶する暗号化一時共通鍵記憶部と、前記所定のタイミング毎に異なる前記一時共通鍵で前記データを暗号化し、前記データを消去するデータ暗号化部と、を備え、前記一時共通鍵記憶部は、所定の事態の発生により前記一時共通鍵のデータを消失する。
【0009】
本発明の一態様は、上記の暗号化装置であって、前記暗号化部は、前記所定のタイミング毎に異なる挿入データを挿入することによって挿入済データを生成する挿入部と、前記共通鍵で前記挿入済データを暗号化することによって前記暗号化データを生成し、前記データ及び前記挿入済データを消去するデータ暗号化部と、を備える。
【0010】
本発明の一態様は、上記の暗号化装置であって、前記共通鍵記憶部は、所定の事態の発生により前記共通鍵のデータを消失する。
【0011】
本発明の一態様は、暗号化装置と復号化装置とを備える暗号化復号化システムであって、前記暗号化装置は、公開鍵暗号方式によって生成された暗号鍵の登録主体を認証する認証部と、前記認証部によって認証された前記登録主体が登録する前記暗号鍵を記憶する、暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、前記データを消去する暗号化部と、前記暗号化部による暗号化によって生成された暗号化データを記憶する暗号化データ記憶部と、を備え、前記復号化装置は、前記暗号化装置の前記暗号鍵記憶部に記憶される前記暗号鍵に対応する復号鍵を記憶する復号鍵記憶部と、前記復号鍵記憶部に記憶される前記復号鍵で、前記暗号化装置の前記暗号化共通鍵記憶部に記憶される前記暗号化共通鍵を復号化して前記共通鍵を復元する共通鍵復号化部と、復元された前記共通鍵を使用して、前記暗号化データ記憶部に記憶される前記暗号化データを復号化し、前記繰り返し生成されるデータを復元するデータ復元部と、を備える。
【0012】
本発明の一態様は、公開鍵暗号方式によって生成された暗号鍵を記憶する暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、暗号化データを記憶する暗号化データ記憶部と、を備える暗号化装置が行う暗号化方法であって、前記暗号鍵の登録主体を認証し、認証された前記登録主体によって登録される前記暗号鍵を前記暗号鍵記憶部に登録する認証ステップと、繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化することによって前記暗号化データを生成し、前記データを消去する暗号化ステップと、を有する。
【0013】
本発明の一態様は、公開鍵暗号方式によって生成された暗号鍵を記憶する暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、暗号化データを記憶する暗号化データ記憶部と、を備えるコンピュータに対し、前記暗号鍵の登録主体を認証し、認証された前記登録主体によって登録される前記暗号鍵を前記暗号鍵記憶部に登録する認証ステップと、繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化することによって前記暗号化データを生成し、前記データを消去する暗号化ステップと、を実行させるためのコンピュータプログラムである。
【発明の効果】
【0014】
本発明により、暗号化装置のデータの秘匿性を向上させることが可能となる。
【図面の簡単な説明】
【0015】
【図1】暗号化復号化システムのシステム構成を表すシステム構成図である。
【図2】暗号化装置の第一実施形態の機能構成を表すブロック図である。
【図3】暗号化装置の前処理の動作の流れを表すフローチャートである。
【図4】暗号化装置の暗号化処理の動作の流れを表すフローチャートである。
【図5】復号化装置の第一実施形態の機能構成を表すブロック図である。
【図6】復号化装置の復号化処理の動作の流れを表すフローチャートである。
【図7】暗号化装置の第二実施形態の機能構成を表すブロック図である。
【図8】暗号化装置の暗号化処理の動作の流れを表すフローチャートである。
【図9】暗号化装置の第三実施形態の機能構成を表すブロック図である。
【図10】暗号化装置の暗号化処理の動作の流れを表すフローチャートである。
【図11】復号化装置の第三実施形態の機能構成を表すブロック図である。
【図12】復号化装置の復号化処理の動作の流れを表すフローチャートである。
【発明を実施するための形態】
【0016】
図1は、暗号化復号化システム1のシステム構成を表すシステム構成図である。暗号化復号化システム1は、データ生成装置10、暗号化装置20、復号化装置30を備える。
データ生成装置10は、記録されるべきデータを繰り返し生成し、生成したデータを暗号化装置20へ出力する。データ生成装置10は、例えばログ記録装置である。ログとは、なんらかの履歴を表す情報であり、例えばコンピュータの利用者の履歴を表す情報や、データ通信の通信内容の履歴を表す情報である。
【0017】
以下、データ生成装置10の具体例として、自動料金収受システム(ETCシステム:Electronic Toll Collection system)に用いられるログ記録装置について説明する。自動料金収受システムでは、自動車に搭載された車載器がクレジットカードの番号を読み出し、読み出した情報を暗号化して路側機へ無線で送信する。路側機にはログ記録装置が接続されており、ログ記録装置は、路側機と車載器との間で行われた無線通信の履歴を記録する。記録される履歴には、例えば、無線通信が行われた日時、車載器の識別情報、車載器から送信されたデータ等が含まれる。データ生成装置10がこのようなログ記録装置である場合、データ生成装置10は、記録される履歴のデータ(以下、「履歴データ」という。)を生成し、暗号化装置10へ出力する。
【0018】
データ生成装置10が履歴データを暗号化装置10へ出力するタイミングは適宜設定される。データ生成装置10は、1回の支払いのために行われる無線通信毎に、一つの履歴データを生成して暗号化装置20へ出力しても良い。また、データ生成装置10は、複数回分の支払いの無線通信に関する履歴を表す一つの履歴データを生成して、暗号化装置20へ出力しても良い。
【0019】
暗号化装置20は、認証された主体によって登録された暗号鍵を記憶する。暗号化装置20が記憶する暗号鍵は、公開鍵暗号方式によって生成されたデータである。また、暗号化装置20は、共通鍵暗号方式によって生成された共通鍵を記憶し、暗号鍵によって暗号化された共通鍵(以下、「暗号化共通鍵」という。)も記憶する。そして、暗号化装置20は、データ生成装置10から出力されたデータを、共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、暗号化されたデータ(以下、「暗号化データ」という。)を記憶する。暗号化装置20は、暗号化が済んだ平文のデータを消去する。したがって、暗号化データは記憶されるが、暗号化されていないデータは記憶されない。
【0020】
異なる態様で暗号化する処理とは、すなわち、平文のときには同一のデータであっても暗号化された後には異なるデータとなるように暗号化する処理を示す。例えば、異なる共通鍵で暗号化することによって、異なる態様での暗号化処理を実現しても良い。例えば、暗号化の対象となっているデータに対して異なる挿入データを挿入して暗号化することによって、異なる態様での暗号化処理を実現しても良い。
【0021】
復号化装置30は、暗号化装置20に記憶される暗号鍵に対応する復号鍵を記憶する。復号化装置30は、この復号鍵で暗号化装置20に記憶される暗号化共通鍵を復号化し、共通鍵を復元する。そして、復号化装置30は、復元された共通鍵を使用して、暗号化データを復号化し、データ生成装置10から出力されたデータを復元する。復号化装置30に対し、暗号化装置20に記憶されるデータが入力される方法は、どのような方法であっても良い。例えば、暗号化装置20と復号化装置30とをケーブルで接続することによって、暗号化装置20に記憶されるデータが復号化装置30へ入力されても良い。
上述したように、異なる態様で暗号化する処理には複数の実現方法がある。以下、3つの異なる構成の暗号化装置20(20a〜20c)及び2つの異なる構成の復号化装置30(30a、30c)について説明する。暗号化装置20bに対応する復号化装置30の構成は、復号化装置30aと同じであるため説明を省略する。
【0022】
[第一実施形態]
図2は、暗号化装置20の第一実施形態(暗号化装置20a)の機能構成を表すブロック図である。暗号化装置20aは、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、暗号化プログラムを実行する。暗号化装置20aは、認証部201、暗号鍵記憶部202、共通鍵記憶部203、共通鍵生成部204、消去部205、共通鍵暗号化部206、暗号化共通鍵記憶部207、暗号化部208a、暗号化データ記憶部209を備える装置として機能する。暗号化装置20aの各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されても良い。暗号化プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。
【0023】
認証部201は、暗号化装置20aに対して暗号鍵を登録しようとする主体(以下、「登録主体」という。)を認証する。登録主体は、人間であっても良いし、暗号化装置20aに対して通信可能に接続された情報処理装置であっても良い。認証部201は、登録主体によって入力される認証情報に基づいて認証を行う。認証部201が行う認証処理には、既存のどのような認証技術が適用されても良い。例えば、認証部201に適用される認証技術は、ハッシュ関数を利用したパスワード認証技術であっても良いし、公開鍵暗号アルゴリズムを利用した電子署名認証技術であっても良いし、指紋認証技術であっても良いし、虹彩認証技術であっても良い。認証部201は、登録主体が正当な登録主体であると認証した場合には、登録主体によって入力される暗号鍵を暗号鍵記憶部202に書き込む。一方、認証部201は、登録主体が正当な登録主体ではない場合には、登録主体によって入力される暗号鍵を暗号鍵記憶部202に書き込まない。
【0024】
暗号鍵記憶部202は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。暗号鍵記憶部202は、認証部201によって書き込まれる暗号鍵を記憶する。
共通鍵記憶部203は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。共通鍵記憶部203は、共通鍵生成部204によって生成された共通鍵を記憶する。
共通鍵記憶部204は、乱数を生成し、生成された乱数を用いて既存の共通鍵暗号方式のアルゴリズムにしたがって共通鍵を生成する。
【0025】
消去部205は、所定の条件が満たされた場合に、共通鍵記憶部203に記憶されている共通鍵のデータを、復元できないように消去する。したがって、消去部205によって消去がされた場合には、共通鍵記憶部203は共通鍵のデータを消失する。所定の条件とは、暗号化装置20aの物理的なセキュリティを維持できないと推定される状態を表す条件である。消去部205は、設定される所定の条件に応じて、その条件を満たすか否か判定するのに必要となる検出装置(センサ)を備える。例えば、暗号化装置20aが、所定の閾値以上に揺れたことが検出されたことを条件としても良い。また、暗号化装置20aの周囲に人が進入したことが検出されたことを条件としても良い。また、暗号化装置20aに接続されているケーブル(電源ケーブルや通信ケーブル等)が引き抜かれたことが検出されたことを条件としても良い。また、上記のケーブルが切断されたことが検出されたことを条件としても良い。また、暗号化装置20aに対して主電源から電力が供給されなくなったことが検出されたことを条件としても良い。このような条件を消去部205に設定する場合には、主電源からの電力が途絶えた後にも少なくとも消去部205が動作できる程度の電力を供給する無停電電源装置を備える必要がある。
【0026】
共通鍵暗号化部206は、暗号鍵記憶部202に記憶されている暗号鍵で、共通鍵記憶部203に記憶されている共通鍵を暗号化する。そして、共通鍵暗号化部206は、暗号化した共通鍵を暗号化共通鍵記憶部207に書き込む。
暗号化共通鍵記憶部207は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。暗号化共通鍵記憶部207は、共通鍵暗号化部206によって暗号化された共通鍵を記憶する。
暗号化部208aは、データ生成装置10から出力されたデータを、共通鍵記憶部203に記憶される共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化する。暗号化部208aは、タイミング毎に異なる一時共通鍵で暗号化することによって、異なる態様での暗号化処理を実現する。以下、暗号化部208aについてさらに詳細に説明する。
【0027】
暗号化部208aは、一時共通鍵生成部211、一時共通鍵暗号化部212、データ暗号化部213を備える。
一時共通鍵生成部211は、所定のタイミング毎に一時共通鍵を生成する。所定のタイミングとは、例えばデータ生成装置10から新たなデータが一つ出力されるタイミングであっても良いし、所定の時刻になったタイミングであっても良いし、前回の一時共通鍵の生成から所定の時間が経過したタイミングであっても良いし、その他のタイミングであっても良い。他にも、例えばデータ生成装置10から出力されるデータが上記の履歴データである場合には、履歴データに含まれる車載器の識別情報が変化したタイミングであっても良い。一時共通鍵生成部211は、乱数を生成し、生成された乱数を用いて既存の共通鍵暗号方式のアルゴリズムにしたがって一時共通鍵を生成する。そして、一時共通鍵生成部211は、新たな一時共通鍵を生成すると、古くなった一時共通鍵を、復元できないように消去する。
【0028】
一時共通鍵暗号化部212は、共通鍵記憶部203に記憶される共通鍵で、一時共通鍵生成部211によって生成された一時共通鍵を暗号化する。以下の説明では、暗号化された一時共通鍵を「暗号化一時共通鍵」という。そして、一時共通鍵暗号化部212は、暗号化が済んだ一時共通鍵の平文データを、復元できないように消去する。
データ暗号化部213は、一時共通鍵生成部211によって生成された一時共通鍵で、データ生成装置10から出力されたデータを暗号化する。データ暗号化部213は、暗号化データと、データの暗号化に用いられた一時共通鍵の暗号化一時共通鍵とを対応付けて暗号化データ記憶部209に書き込む。そして、データ暗号化部213は、処理に用いた一時共通鍵と、暗号化が済んだ平文のデータとを、復元できないように消去する。
【0029】
暗号化データ記憶部209は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。暗号化データ記憶部209は、データ暗号化部213によって書き込まれる暗号化データ及び暗号化一時共通鍵を対応付けて記憶する。
図3は、暗号化装置20aの前処理の動作の流れを表すフローチャートである。暗号化装置20aは、データ生成装置10から出力されるデータを暗号化する前に、図3に示される前処理を実行する。まず、暗号化装置20aの認証部201は、登録主体の認証を行う(ステップS101)。認証部201は、登録主体が正当な登録主体ではない場合には(ステップS102−NO)、登録主体によって入力される暗号鍵を暗号鍵記憶部202に書き込まず、図3に示される前処理を終了する。一方、認証部201は、登録主体が正当な登録主体であると認証した場合には(ステップS102−YES)、登録主体によって入力される暗号鍵を暗号鍵記憶部202に書き込む(ステップS104)。次に、共通鍵暗号化部206は、暗号鍵記憶部202に記憶されている暗号鍵で、共通鍵記憶部203に記憶されている共通鍵を暗号化する(ステップS105)。次に、共通鍵暗号化部206は、暗号化された共通鍵(暗号化共通鍵)を、暗号化共通鍵記憶部207に書き込む(ステップS106)。以上の処理で、図3に示される前処理が終了する。
【0030】
図4は、暗号化装置20aの暗号化処理の動作の流れを表すフローチャートである。暗号化装置20aは、図3に示される前処理が完了した後、データ生成装置10から出力されるデータに対して図4に示される暗号化処理を実行する。まず、暗号化装置20aの一時共通鍵生成部211は、所定のタイミングが到来しているか否か判定する(ステップS201)。所定のタイミングが到来している場合には(ステップS201−YES)、一時共通鍵生成部211は、一時共通鍵を生成する(ステップS202)。そして、一時共通鍵暗号化部212は、一時共通鍵生成部211によって生成された最新の一時共通鍵を共通鍵で暗号化する(ステップS203)。所定のタイミングが到来していない場合(ステップS201−NO)又はステップS203の処理の後、データ暗号化部213は、一時共通鍵生成部211によって生成された最新の一時共通鍵で、データ生成装置10から入力したデータを暗号化する(ステップS204)。ステップS204の処理の後、データ暗号化部213は、暗号化データと、データの暗号化に用いられた一時共通鍵の暗号化一時共通鍵とを対応付けて暗号化データ記憶部209に書き込む(ステップS205)。以上の処理で、図4に示される暗号化処理が終了する。暗号化装置20aは、データ生成装置10からデータが出力される度に、図4に示される暗号化処理を実行する。
【0031】
図5は、復号化装置30の第一実施形態(復号化装置30a)の機能構成を表すブロック図である。復号化装置30aは、バスで接続されたCPUやメモリや補助記憶装置などを備え、復号化プログラムを実行する。復号化装置30aは、入力部301、復号鍵記憶部302、共通鍵復号化部303、データ復元部304aを備える装置として機能する。復号化装置30aの各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されても良い。復号化プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。なお、復号化装置30aは、物理的なセキュリティが維持されている環境にて使用される。
【0032】
入力部301は、暗号化装置20aの暗号鍵記憶部202に記憶されている暗号鍵に対応する復号鍵の入力を受け付ける。入力部301は、復号鍵の入力を受けると、その復号鍵を復号鍵記憶部302に書き込む。
復号鍵記憶部302は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。復号鍵記憶部302は、入力部301によって書き込まれる復号鍵を記憶する。
【0033】
共通鍵復号化部303は、復号鍵記憶部302に記憶されている復号鍵で、暗号化装置20aの暗号化共通鍵記憶部207に記憶されている暗号化共通鍵を復号化し、共通鍵を復元する。
データ復元部304aは、共通鍵復号化部303によって復号化された共通鍵を使用して、暗号化データ記憶部209に記憶される暗号化データを復号化し、データ生成装置10から出力されたデータを復元する。以下、データ復元部304aについてさらに詳細に説明する。
【0034】
データ復元部304aは、一時共通鍵復号化部305、データ復号化部306を備える。一時共通鍵復号化部305は、共通鍵復号化部303によって復号化された共通鍵で、暗号化装置20aの暗号化データ記憶部209に記憶されている暗号化一時共通鍵を復号化し、一時共通鍵を復元する。データ復号化部306は、復元された一時共通鍵で、復元される前の暗号化一時共通鍵と対応付けて暗号化データ記憶部209に記憶されていた暗号化データを復号化する。データ復号化部306は、この復号化処理によって、データ生成装置10から出力されたデータを復元する。そして、データ復号化部306は復元したデータを出力する。データの出力先は、他の情報処理装置であっても良いし、記憶装置であっても良いし、画像表示装置であっても良いし、印刷装置であっても良い。
【0035】
図6は、復号化装置30aの復号化処理の動作の流れを表すフローチャートである。図6の復号化処理を開始する前に、復号化装置30aの復号鍵記憶部302には復号鍵が書き込まれている。復号化装置30aは、暗号化装置20aに記憶されている情報及び復号鍵を用いて、データ生成装置10から出力されたデータを復元する。まず、復号化装置30aの共通鍵復号化部303が、復号鍵記憶部302に記憶されている復号鍵で暗号化共通鍵を復号化し、共通鍵を復元する(ステップS301)。次に、一時共通鍵復号化部305が、復元された共通鍵で暗号化一時共通鍵を復号化し、一時共通鍵を復元する(ステップS302)。次に、データ復号化部306が、復元された一時共通鍵で、復号化される前の暗号化一時共通鍵に対応していた暗号化データを復号化する(ステップS303)。この処理によって、データ生成装置10から出力されたデータが復元される。そして、データ復号化部306は、復元したデータを出力する(ステップS304)。
【0036】
第一実施形態の暗号化装置20aでは、認証部201による認証を受けた登録主体のみが、暗号化装置20aにおいて使用される暗号鍵を暗号化装置20aに入力し登録することができる。そのため、たとえ暗号化装置20aが公共の場所に設置されて不特定多数の者に触れられる可能性が生じたとしても、正当な権限を有していない者(認証を受けられない者)によって勝手に暗号鍵が登録されてしまうことを防止できる。したがって、暗号化装置20aのデータの秘匿性を向上させることができる。
【0037】
また、暗号化装置20aでは、データ生成装置10から出力されるデータを、公開鍵暗号方式によって生成された暗号鍵ではなく、共通鍵暗号方式によって生成された一時共通鍵で暗号化する。そのため、公開鍵暗号方式によって生成された暗号鍵で暗号化する場合に比べて、計算コストを低減させ、暗号化処理に要する時間を短縮することができる。特に、データ生成装置10は繰り返しデータを出力するため、暗号化装置20aは繰り返し暗号化処理を実行する必要がある。このような状況においては、暗号化処理に時間を要してしまうと実時間での暗号化ができなくなってしまうおそれがある。そのため、上記のように計算コストを低減させ、暗号化処理に要する時間を短縮することは非常に大きな効果を奏する。
【0038】
また、一時共通鍵は共通鍵で暗号化されて、この一時共通鍵で暗号化された暗号化データと対応付けて暗号化データ記憶部209に書き込まれる。また、一時共通鍵は、一時共通鍵生成部211、一時共通鍵暗号化部212、データ暗号化部213のそれぞれによって、処理が終わると復元できないように消去される。そのため、復号鍵を有していなければ暗号化データを復号化することはできなくなる。したがって、暗号化データの秘匿性が向上する。
【0039】
また、上述したように一時共通鍵は、共通鍵で暗号化される。そのため、一時共通鍵が暗号鍵で暗号化される場合に比べて、計算コストを低減させ、暗号化処理に要する時間を短縮することができる。すなわち、暗号化装置20aは、公開鍵暗号方式によって生成された暗号鍵による暗号化処理は、前処理において共通鍵を暗号化する時にのみ実行される。そして、図4に示されるように、データ生成装置10から繰り返し出力されるデータを暗号化する際には、公開鍵暗号方式によって生成された暗号鍵による暗号化処理は行われない。そのため、計算コストを低減させ、暗号化処理に要する時間を短縮することができる。
【0040】
また、暗号化装置20aは、データ生成装置10から出力されたデータを、所定のタイミング毎に異なる態様で暗号化する。具体的には、暗号化装置20aでは、所定のタイミング毎に異なる一時共通鍵でデータを暗号化する。そのため、たとえデータ生成装置10から同じデータが出力されたとしても、所定のタイミング毎に異なる暗号化データが生成される。そのため、万が一暗号化データが漏洩した場合にも、第三者による暗号化データの解析が困難であり、平文のデータを推測することや、暗号化のアルゴリズムを特定すること等を困難にすることができる。
【0041】
また、暗号化装置20aの消去部205は、暗号化装置20aの物理的なセキュリティを維持できないと推定される状態を検出した場合に、共通鍵記憶部203に記憶されている共通鍵のデータを復元できないように消去する。そのため、暗号化装置20aの物理的なセキュリティを維持できなくなった際に、共通鍵が漏洩してしまうことを防止できる。したがって、第三者が共通鍵を用いて暗号化一時共通鍵及び暗号化データを復号化してしまうことを防止できる。
【0042】
<変形例>
共通鍵記憶部203は、揮発性記憶装置であっても良い。この場合、共通鍵記憶部203は、自身に電力が供給されなくなった場合に、共通鍵のデータが消失し復元できなくなる。そのため、共通鍵記憶部203が揮発性記憶装置である場合には、暗号化装置20aは消去部205を備えなくとも良い。また、共通鍵記憶部203が揮発性記憶装置である場合には、消去部205は、所定の条件が満たされた場合に共通鍵記憶部203への電力の供給を遮断するように構成されても良い。
【0043】
共通鍵記憶部203が記憶する共通鍵は、暗号化装置20aの製造時に既に共通鍵記憶部203に書き込まれていても良い。この場合、暗号化装置20aは、共通鍵生成部204を備えなくとも良い。
データ暗号化部213は、暗号化データと暗号化一時共通鍵とを、異なる記憶装置にそれぞれ書き込んでも良い。例えば、データ暗号化部213は、暗号化データを暗号化データ記憶部209に書き込み、暗号化一時共通鍵を不図示の暗号化一時共通鍵記憶部に書き込んでも良い。この場合、データ暗号化部213は、暗号化データに対し、対応する暗号化一時共通鍵の識別情報を対応付けて書き込んでも良い。また、データ暗号化部213は、暗号化一時共通鍵に対し、対応する暗号化データの識別情報を対応付けて書き込んでも良い。
【0044】
[第二実施形態]
図7は、暗号化装置20の第二実施形態(暗号化装置20b)の機能構成を表すブロック図である。暗号化装置20bは、暗号化部208aに代えて暗号化部208bを備える点と、消去部205に代えて消去部225を備える点と、で暗号化装置20aと異なり、その他の構成は暗号化装置20aと同じである。消去部225は、所定の条件が満たされた場合に、共通鍵記憶部203に記憶されている共通鍵だけではなく、一時共通鍵記憶部221に記憶されている一時共通鍵も消去する。暗号化部208bは、タイミング毎に一時共通鍵を生成するのではなく、予め複数の一時共通鍵を記憶しておきその中から一つの一時共通鍵を選択して使用する。暗号化装置20bによって暗号化された暗号化データを復号化する復号化装置は、復号化装置30の第一実施形態(復号化装置30a)と同じ構成であるため、説明を省略する。以下、暗号化部208bについて詳細に説明する。
【0045】
暗号化部208bは、一時共通鍵記憶部221、選択部222、一時共通鍵暗号化部223、データ暗号化部224を備える。
一時共通鍵記憶部221は、磁気記憶装置や半導体記憶装置などの記憶装置である。一時共通鍵記憶部221は、予め生成された複数の一時共通鍵を記憶する。
【0046】
選択部222は、所定のタイミング毎に一時共通鍵記憶部221から一時共通鍵を選択する。所定のタイミングとは、一時共通鍵生成部211における所定のタイミングと同じである。選択部222は、例えば一時共通鍵記憶部221に記憶される複数の一時共通鍵の中から、ランダムに一つを選択しても良い。選択部222は、少なくとも前回選択された一時共通鍵とは異なる一時共通鍵を選択することが望ましい。
【0047】
一時共通鍵暗号化部223は、一時共通鍵生成部211によって生成された一時共通鍵ではなく、選択部222によって選択された一時共通鍵を暗号化する。この点を除けば、一時共通鍵暗号化部223の構成は一時共通鍵暗号化部212と同じである。
データ暗号化部224は、一時共通鍵生成部211によって生成された一時共通鍵ではなく、選択部222によって選択された一時共通鍵でデータを暗号化する。この点を除けば、データ暗号化部224の構成はデータ暗号化部213と同じである。
【0048】
図8は、暗号化装置20bの暗号化処理の動作の流れを表すフローチャートである。暗号化装置20bは、図3に示される前処理が完了した後、データ生成装置10から出力されるデータに対して図8に示される暗号化処理を実行する。以下、暗号化装置20aの暗号化処理(図4)と異なる点についてのみ説明する。所定のタイミングが到来している場合には(ステップS201−YES)、選択部222は、一時共通鍵記憶部221に記憶されている複数の一時共通鍵の中から一時共通鍵を選択する(ステップS212)。この処理を除けば、暗号化装置20bの処理の流れは暗号化装置20aの処理の流れと同じである。
第二実施形態の暗号化装置20bでは、第一実施形態の暗号化装置20aと同様の作用及び効果を奏する。さらに、第二実施形態の暗号化装置20bでは、一時共通鍵を生成する必要が無くなる。そのため、データの暗号化に要する時間を短縮することが可能となる。また、第二実施形態の暗号化装置20bは、第一実施形態の暗号化装置20aと同様の変形がなされても良い。
【0049】
[第三実施形態]
図9は、暗号化装置20の第三実施形態(暗号化装置20c)の機能構成を表すブロック図である。暗号化装置20cは、暗号化部208aに代えて暗号化部208cを備える点と、暗号化データ記憶部209に代えて暗号化データ記憶部239を備える点と、で暗号化装置20aと異なり、その他の構成は暗号化装置20aと同じである。暗号化部208cは、タイミング毎に異なる一時共通鍵でデータを暗号化するのではなく、データに対してタイミング毎に異なる挿入データを挿入して暗号化する。以下、暗号化部208c及び暗号化データ記憶部239について詳細に説明する。
【0050】
暗号化部208cは、挿入データ生成部231及びデータ暗号化部232を備える。
挿入データ生成部231は、所定のタイミング毎に挿入データを生成する。所定のタイミングとは、一時共通鍵生成部211における所定のタイミングと同じである。挿入データ生成部231は、乱数を生成し、生成された乱数を挿入データとして出力する。挿入データのデータ長は、固定であっても良いし変動しても良い。挿入データ生成部231は、新たな挿入データを生成すると、古くなった挿入データを、復元できないように消去しても良い。
【0051】
データ暗号化部232は、データ生成装置10から出力されたデータに対し、挿入データ生成部231によって出力された挿入データを挿入する。挿入データの挿入場所は、予め決められた場所であっても良いし、その都度異なる場所(例えばランダムに選択された場所)であっても良い。データ暗号化部232は、挿入データが挿入されたデータ(以下、「挿入済データ」という。)を、共通鍵記憶部203に記憶されている共通鍵で暗号化する。データ暗号化部232は、挿入済データが暗号化されたデータ(以下、「暗号化挿入済データ」という。)と挿入データとを対応付けて暗号化データ記憶部239に書き込む。そして、データ暗号化部232は、暗号化が済んだ平文のデータを復元できないように消去する。
【0052】
暗号化データ記憶部239は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。暗号化データ記憶部239は、データ暗号化部232によって書き込まれる暗号化挿入済データ及び挿入データを対応付けて記憶する。
【0053】
図10は、暗号化装置20cの暗号化処理の動作の流れを表すフローチャートである。暗号化装置20cは、図3に示される前処理が完了した後、データ生成装置10から出力されるデータに対して図10に示される暗号化処理を実行する。まず、暗号化装置20cの挿入データ生成部231は、所定のタイミングが到来しているか否か判定する(ステップS401)。所定のタイミングが到来している場合には(ステップS401−YES)、挿入データ生成部231は、挿入データを生成する(ステップS402)。所定のタイミングが到来していない場合(ステップS401−NO)又はステップS402の処理の後、データ暗号化部232は、挿入データ生成部231によって生成された最新の挿入データを、データ生成装置10から出力されたデータに挿入する(ステップS403)。次に、データ暗号化部232は、挿入済データを、共通鍵で暗号化する(ステップS404)。そして、データ暗号化部232は、暗号化挿入済データと、データに挿入された挿入データとを対応付けて暗号化データ記憶部239に書き込む(ステップS405)。以上の処理で、図10に示される暗号化処理が終了する。暗号化装置20cは、データ生成装置10からデータが出力される度に、図10に示される暗号化処理を実行する。
【0054】
図11は、復号化装置30の第三実施形態(復号化装置30c)の機能構成を表すブロック図である。復号化装置30cは、データ復元部304aに代えてデータ復元部304cを備える点で復号化装置30aと異なり、その他の構成は復号化装置30aと同じである。以下、データ復元部304cについて詳細に説明する。
データ復元部304cは、データ復号化部321及び挿入データ除去部322を備える。
【0055】
データ復号化部321は、共通鍵復号化部303によって復元された共通鍵で、暗号化装置20cに記憶されていた暗号化挿入済データを復号化する。この処理によって、データ復号化部321は挿入済データを復元する。
挿入データ除去部322は、データ復号化部321によって復元された挿入済データから、復元される前の暗号化挿入済データと対応付けて暗号化データ記憶部239に記憶されていた挿入データを除去する。挿入データ除去部322は、この処理によって、データ生成装置10から出力されたデータを復元する。そして、挿入データ除去部322は復元したデータを出力する。データの出力先は、他の情報処理装置であっても良いし、記憶装置であっても良いし、画像表示装置であっても良いし、印刷装置であっても良い。
【0056】
図12は、復号化装置30cの復号化処理の動作の流れを表すフローチャートである。図12の復号化処理を開始する前に、復号化装置30cの復号鍵記憶部302には復号鍵が書き込まれている。復号化装置30cは、暗号化装置20cに記憶されている情報及び復号鍵を用いて、データ生成装置10から出力されたデータを復元する。まず、復号化装置30cの共通鍵復号化部303が、復号鍵記憶部302に記憶されている復号鍵で暗号化共通鍵を復号化し、共通鍵を復元する(ステップS501)。次に、データ復号化部321が、復元された共通鍵で暗号化挿入済データを復号化し、挿入済データを復元する(ステップS502)。次に、挿入データ除去部322が、復元された挿入済データから、復号化される前の暗号化挿入済データに対応していた挿入データを除去する(ステップS503)。この処理によって、データ生成装置10から出力されたデータが復元される。そして、挿入済データ除去部322は、復元したデータを出力する(ステップS504)。
【0057】
第三実施形態の暗号化装置20cでは、認証部201による認証を受けた登録主体のみが、暗号化装置20cにおいて使用される暗号鍵を暗号化装置20cに入力し登録することができる。そのため、第一実施形態の暗号化装置20aと同様に、データの秘匿性を向上させることができる。
また、暗号化装置20cでは、データ生成装置10から出力されるデータを、公開鍵暗号方式によって生成された暗号鍵ではなく、共通鍵暗号方式によって生成された共通鍵で暗号化する。そのため、第一実施形態の暗号化装置20aと同様に、計算コストを低減させ、暗号化処理に要する時間を短縮することができる。
【0058】
また、暗号化装置20cは、データ生成装置10から出力されたデータを、所定のタイミング毎に異なる態様で暗号化する。具体的には、暗号化装置20cでは、所定のタイミング毎に異なる挿入データをデータに挿入し、挿入済データを暗号化する。そのため、たとえデータ生成装置10から同じデータが出力されたとしても、所定のタイミング毎に異なる暗号化データが生成される。そのため、万が一暗号化データが漏洩した場合にも、暗号化データの解析が困難であり、平文のデータを推測することや、暗号化のアルゴリズムを特定すること等を困難にすることができる。
【0059】
また、暗号化装置20cの消去部205は、暗号化装置20cの物理的なセキュリティを維持できないと推定される状態を検出した場合に、共通鍵記憶部203に記憶されている共通鍵のデータを復元できないように消去する。そのため、暗号化装置20cの物理的なセキュリティを維持できなくなった際に、共通鍵が漏洩してしまうことを防止できる。したがって、第三者が共通鍵を用いて暗号化データを復号化してしまうことを防止できる。
【0060】
<変形例>
共通鍵記憶部203は、揮発性記憶装置であっても良い。この場合、共通鍵記憶部203は、自身に電力が供給されなくなった場合に、共通鍵のデータが消失し復元できなくなる。そのため、共通鍵記憶部203が揮発性記憶装置である場合には、暗号化装置20cは消去部205を備えなくとも良い。また、共通鍵記憶部203が揮発性記憶装置である場合には、消去部205は、所定の条件が満たされた場合に共通鍵記憶部203への電力の供給を遮断するように構成されても良い。
【0061】
共通鍵記憶部203が記憶する共通鍵は、暗号化装置20cの製造時に既に共通鍵記憶部203に書き込まれていても良い。この場合、暗号化装置20cは、共通鍵生成部204を備えなくとも良い。
データ暗号化部232は、暗号化挿入済データと挿入データとを、異なる記憶装置にそれぞれ書き込んでも良い。例えば、データ暗号化部232は、暗号化挿入済データを暗号化データ記憶部239に書き込み、挿入データを不図示の挿入データ記憶部に書き込んでも良い。この場合、データ暗号化部232は、暗号化挿入済データに対し、対応する挿入データの識別情報を対応付けて書き込んでも良い。また、データ暗号化部232は、挿入データに対し、対応する暗号化挿入済データの識別情報を対応付けて書き込んでも良い。
【0062】
また、挿入データ生成部231は、予め定められた所定のデータ長の挿入データを生成しても良い。さらに、データ暗号化部232は、予め定められた所定の位置に挿入データを挿入しても良い。このように構成された場合、挿入データ除去部322は、挿入データを取得することなく、挿入済データから挿入データを除去できる。そのため、データ暗号化部232は、挿入データを書き込まずに、暗号化挿入済データのみを暗号化データ記憶部239に書き込んでも良い。
【0063】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0064】
1…暗号化復号化システム, 10…データ生成装置, 20a,20b,20c…暗号化装置, 30a,30c…復号化装置, 201…認証部, 202…暗号鍵記憶部, 203…共通鍵記憶部, 204…共通鍵生成部, 205…消去部, 206…共通鍵暗号化部, 207…暗号化共通鍵記憶部, 208a,208b,208c…暗号化部, 209…暗号化データ記憶部, 211…一時共通鍵生成部, 212…一時共通鍵暗号化部, 213…データ暗号化部, 221…一時共通鍵記憶部, 222…選択部, 223…一時共通鍵暗号化部, 224…データ暗号化部, 231…挿入データ生成部, 232…データ暗号化部, 301…入力部, 302…復号鍵記憶部, 303…共通鍵復号化部, 304a,304c…データ復元部, 305…一時共通鍵復号化部, 306…データ復号化部, 321…データ復号化部, 322…挿入データ除去部
【技術分野】
【0001】
本発明は、データを暗号化する技術に関する。
【背景技術】
【0002】
データの秘匿性を維持するために、データに暗号化処理を施す技術が提案されている。例えば、特許文献1に開示された暗号装置では、個別鍵入力部から入力された個別鍵と、公開鍵入力部から入力された公開鍵とを用いて、ファイル読み込み部によって読み込まれたファイルに対して暗号化処理が行われる。具体的には、暗号装置は、個別鍵を用いてファイルに対して暗号化処理を行い、暗号文を生成する。また、暗号装置は、公開鍵を用いて個別鍵を暗号化し鍵情報を生成し、暗号文に鍵情報に付加する。このような暗号装置によれば、個別鍵を鍵情報として暗号文と一緒に保管しておくため、個別鍵を喪失した場合にも鍵情報より個別鍵を再生成できる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平7−56507号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、例えば公共の場所に設置する必要があるなどのように、暗号化装置の物理的なセキュリティを十分に維持することができないような環境では、従来の暗号化装置では十分にデータの秘匿性を維持することができないおそれがあった。
上記事情に鑑み、本発明は、暗号化装置のデータの秘匿性を向上させる技術を提供することを目的としている。
【課題を解決するための手段】
【0005】
本発明の一態様は、暗号化装置であって、公開鍵暗号方式によって生成された暗号鍵の登録主体を認証する認証部と、前記認証部によって認証された前記登録主体が登録する前記暗号鍵を記憶する、暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、前記データを消去する暗号化部と、前記暗号化部による暗号化によって生成された暗号化データ(暗号化データ、暗号化挿入済データ)を記憶する暗号化データ記憶部と、を備える。
【0006】
本発明の一態様は、上記の暗号化装置であって、前記暗号化部は、共通鍵暗号方式によって生成された一時共通鍵で前記データを暗号化し、前記一時共通鍵及び前記データを消去するデータ暗号化部と、前記共通鍵で前記一時共通鍵を暗号化することによって生成される暗号化一時共通鍵を記憶する暗号化一時共通鍵記憶部と、を備え、前記データ暗号化部は、前記所定のタイミング毎に異なる前記一時共通鍵で前記データを暗号化する。
【0007】
本発明の一態様は、上記の暗号化装置であって、前記暗号化部は、前記所定のタイミング毎に異なる前記一時共通鍵を生成する一時共通鍵生成部をさらに備え、前記データ暗号化部は、前記一時共通鍵生成部によって生成された前記一時共通鍵で前記データを暗号化する。
【0008】
本発明の一態様は、上記の暗号化装置であって、前記暗号化部は、共通鍵暗号方式によって生成された一時共通鍵を複数記憶する一時共通鍵記憶部と、前記一時共通鍵記憶部に記憶される複数の一時共通鍵を、前記共通鍵で暗号化して記憶する暗号化一時共通鍵記憶部と、前記所定のタイミング毎に異なる前記一時共通鍵で前記データを暗号化し、前記データを消去するデータ暗号化部と、を備え、前記一時共通鍵記憶部は、所定の事態の発生により前記一時共通鍵のデータを消失する。
【0009】
本発明の一態様は、上記の暗号化装置であって、前記暗号化部は、前記所定のタイミング毎に異なる挿入データを挿入することによって挿入済データを生成する挿入部と、前記共通鍵で前記挿入済データを暗号化することによって前記暗号化データを生成し、前記データ及び前記挿入済データを消去するデータ暗号化部と、を備える。
【0010】
本発明の一態様は、上記の暗号化装置であって、前記共通鍵記憶部は、所定の事態の発生により前記共通鍵のデータを消失する。
【0011】
本発明の一態様は、暗号化装置と復号化装置とを備える暗号化復号化システムであって、前記暗号化装置は、公開鍵暗号方式によって生成された暗号鍵の登録主体を認証する認証部と、前記認証部によって認証された前記登録主体が登録する前記暗号鍵を記憶する、暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、前記データを消去する暗号化部と、前記暗号化部による暗号化によって生成された暗号化データを記憶する暗号化データ記憶部と、を備え、前記復号化装置は、前記暗号化装置の前記暗号鍵記憶部に記憶される前記暗号鍵に対応する復号鍵を記憶する復号鍵記憶部と、前記復号鍵記憶部に記憶される前記復号鍵で、前記暗号化装置の前記暗号化共通鍵記憶部に記憶される前記暗号化共通鍵を復号化して前記共通鍵を復元する共通鍵復号化部と、復元された前記共通鍵を使用して、前記暗号化データ記憶部に記憶される前記暗号化データを復号化し、前記繰り返し生成されるデータを復元するデータ復元部と、を備える。
【0012】
本発明の一態様は、公開鍵暗号方式によって生成された暗号鍵を記憶する暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、暗号化データを記憶する暗号化データ記憶部と、を備える暗号化装置が行う暗号化方法であって、前記暗号鍵の登録主体を認証し、認証された前記登録主体によって登録される前記暗号鍵を前記暗号鍵記憶部に登録する認証ステップと、繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化することによって前記暗号化データを生成し、前記データを消去する暗号化ステップと、を有する。
【0013】
本発明の一態様は、公開鍵暗号方式によって生成された暗号鍵を記憶する暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、暗号化データを記憶する暗号化データ記憶部と、を備えるコンピュータに対し、前記暗号鍵の登録主体を認証し、認証された前記登録主体によって登録される前記暗号鍵を前記暗号鍵記憶部に登録する認証ステップと、繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化することによって前記暗号化データを生成し、前記データを消去する暗号化ステップと、を実行させるためのコンピュータプログラムである。
【発明の効果】
【0014】
本発明により、暗号化装置のデータの秘匿性を向上させることが可能となる。
【図面の簡単な説明】
【0015】
【図1】暗号化復号化システムのシステム構成を表すシステム構成図である。
【図2】暗号化装置の第一実施形態の機能構成を表すブロック図である。
【図3】暗号化装置の前処理の動作の流れを表すフローチャートである。
【図4】暗号化装置の暗号化処理の動作の流れを表すフローチャートである。
【図5】復号化装置の第一実施形態の機能構成を表すブロック図である。
【図6】復号化装置の復号化処理の動作の流れを表すフローチャートである。
【図7】暗号化装置の第二実施形態の機能構成を表すブロック図である。
【図8】暗号化装置の暗号化処理の動作の流れを表すフローチャートである。
【図9】暗号化装置の第三実施形態の機能構成を表すブロック図である。
【図10】暗号化装置の暗号化処理の動作の流れを表すフローチャートである。
【図11】復号化装置の第三実施形態の機能構成を表すブロック図である。
【図12】復号化装置の復号化処理の動作の流れを表すフローチャートである。
【発明を実施するための形態】
【0016】
図1は、暗号化復号化システム1のシステム構成を表すシステム構成図である。暗号化復号化システム1は、データ生成装置10、暗号化装置20、復号化装置30を備える。
データ生成装置10は、記録されるべきデータを繰り返し生成し、生成したデータを暗号化装置20へ出力する。データ生成装置10は、例えばログ記録装置である。ログとは、なんらかの履歴を表す情報であり、例えばコンピュータの利用者の履歴を表す情報や、データ通信の通信内容の履歴を表す情報である。
【0017】
以下、データ生成装置10の具体例として、自動料金収受システム(ETCシステム:Electronic Toll Collection system)に用いられるログ記録装置について説明する。自動料金収受システムでは、自動車に搭載された車載器がクレジットカードの番号を読み出し、読み出した情報を暗号化して路側機へ無線で送信する。路側機にはログ記録装置が接続されており、ログ記録装置は、路側機と車載器との間で行われた無線通信の履歴を記録する。記録される履歴には、例えば、無線通信が行われた日時、車載器の識別情報、車載器から送信されたデータ等が含まれる。データ生成装置10がこのようなログ記録装置である場合、データ生成装置10は、記録される履歴のデータ(以下、「履歴データ」という。)を生成し、暗号化装置10へ出力する。
【0018】
データ生成装置10が履歴データを暗号化装置10へ出力するタイミングは適宜設定される。データ生成装置10は、1回の支払いのために行われる無線通信毎に、一つの履歴データを生成して暗号化装置20へ出力しても良い。また、データ生成装置10は、複数回分の支払いの無線通信に関する履歴を表す一つの履歴データを生成して、暗号化装置20へ出力しても良い。
【0019】
暗号化装置20は、認証された主体によって登録された暗号鍵を記憶する。暗号化装置20が記憶する暗号鍵は、公開鍵暗号方式によって生成されたデータである。また、暗号化装置20は、共通鍵暗号方式によって生成された共通鍵を記憶し、暗号鍵によって暗号化された共通鍵(以下、「暗号化共通鍵」という。)も記憶する。そして、暗号化装置20は、データ生成装置10から出力されたデータを、共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、暗号化されたデータ(以下、「暗号化データ」という。)を記憶する。暗号化装置20は、暗号化が済んだ平文のデータを消去する。したがって、暗号化データは記憶されるが、暗号化されていないデータは記憶されない。
【0020】
異なる態様で暗号化する処理とは、すなわち、平文のときには同一のデータであっても暗号化された後には異なるデータとなるように暗号化する処理を示す。例えば、異なる共通鍵で暗号化することによって、異なる態様での暗号化処理を実現しても良い。例えば、暗号化の対象となっているデータに対して異なる挿入データを挿入して暗号化することによって、異なる態様での暗号化処理を実現しても良い。
【0021】
復号化装置30は、暗号化装置20に記憶される暗号鍵に対応する復号鍵を記憶する。復号化装置30は、この復号鍵で暗号化装置20に記憶される暗号化共通鍵を復号化し、共通鍵を復元する。そして、復号化装置30は、復元された共通鍵を使用して、暗号化データを復号化し、データ生成装置10から出力されたデータを復元する。復号化装置30に対し、暗号化装置20に記憶されるデータが入力される方法は、どのような方法であっても良い。例えば、暗号化装置20と復号化装置30とをケーブルで接続することによって、暗号化装置20に記憶されるデータが復号化装置30へ入力されても良い。
上述したように、異なる態様で暗号化する処理には複数の実現方法がある。以下、3つの異なる構成の暗号化装置20(20a〜20c)及び2つの異なる構成の復号化装置30(30a、30c)について説明する。暗号化装置20bに対応する復号化装置30の構成は、復号化装置30aと同じであるため説明を省略する。
【0022】
[第一実施形態]
図2は、暗号化装置20の第一実施形態(暗号化装置20a)の機能構成を表すブロック図である。暗号化装置20aは、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、暗号化プログラムを実行する。暗号化装置20aは、認証部201、暗号鍵記憶部202、共通鍵記憶部203、共通鍵生成部204、消去部205、共通鍵暗号化部206、暗号化共通鍵記憶部207、暗号化部208a、暗号化データ記憶部209を備える装置として機能する。暗号化装置20aの各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されても良い。暗号化プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。
【0023】
認証部201は、暗号化装置20aに対して暗号鍵を登録しようとする主体(以下、「登録主体」という。)を認証する。登録主体は、人間であっても良いし、暗号化装置20aに対して通信可能に接続された情報処理装置であっても良い。認証部201は、登録主体によって入力される認証情報に基づいて認証を行う。認証部201が行う認証処理には、既存のどのような認証技術が適用されても良い。例えば、認証部201に適用される認証技術は、ハッシュ関数を利用したパスワード認証技術であっても良いし、公開鍵暗号アルゴリズムを利用した電子署名認証技術であっても良いし、指紋認証技術であっても良いし、虹彩認証技術であっても良い。認証部201は、登録主体が正当な登録主体であると認証した場合には、登録主体によって入力される暗号鍵を暗号鍵記憶部202に書き込む。一方、認証部201は、登録主体が正当な登録主体ではない場合には、登録主体によって入力される暗号鍵を暗号鍵記憶部202に書き込まない。
【0024】
暗号鍵記憶部202は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。暗号鍵記憶部202は、認証部201によって書き込まれる暗号鍵を記憶する。
共通鍵記憶部203は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。共通鍵記憶部203は、共通鍵生成部204によって生成された共通鍵を記憶する。
共通鍵記憶部204は、乱数を生成し、生成された乱数を用いて既存の共通鍵暗号方式のアルゴリズムにしたがって共通鍵を生成する。
【0025】
消去部205は、所定の条件が満たされた場合に、共通鍵記憶部203に記憶されている共通鍵のデータを、復元できないように消去する。したがって、消去部205によって消去がされた場合には、共通鍵記憶部203は共通鍵のデータを消失する。所定の条件とは、暗号化装置20aの物理的なセキュリティを維持できないと推定される状態を表す条件である。消去部205は、設定される所定の条件に応じて、その条件を満たすか否か判定するのに必要となる検出装置(センサ)を備える。例えば、暗号化装置20aが、所定の閾値以上に揺れたことが検出されたことを条件としても良い。また、暗号化装置20aの周囲に人が進入したことが検出されたことを条件としても良い。また、暗号化装置20aに接続されているケーブル(電源ケーブルや通信ケーブル等)が引き抜かれたことが検出されたことを条件としても良い。また、上記のケーブルが切断されたことが検出されたことを条件としても良い。また、暗号化装置20aに対して主電源から電力が供給されなくなったことが検出されたことを条件としても良い。このような条件を消去部205に設定する場合には、主電源からの電力が途絶えた後にも少なくとも消去部205が動作できる程度の電力を供給する無停電電源装置を備える必要がある。
【0026】
共通鍵暗号化部206は、暗号鍵記憶部202に記憶されている暗号鍵で、共通鍵記憶部203に記憶されている共通鍵を暗号化する。そして、共通鍵暗号化部206は、暗号化した共通鍵を暗号化共通鍵記憶部207に書き込む。
暗号化共通鍵記憶部207は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。暗号化共通鍵記憶部207は、共通鍵暗号化部206によって暗号化された共通鍵を記憶する。
暗号化部208aは、データ生成装置10から出力されたデータを、共通鍵記憶部203に記憶される共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化する。暗号化部208aは、タイミング毎に異なる一時共通鍵で暗号化することによって、異なる態様での暗号化処理を実現する。以下、暗号化部208aについてさらに詳細に説明する。
【0027】
暗号化部208aは、一時共通鍵生成部211、一時共通鍵暗号化部212、データ暗号化部213を備える。
一時共通鍵生成部211は、所定のタイミング毎に一時共通鍵を生成する。所定のタイミングとは、例えばデータ生成装置10から新たなデータが一つ出力されるタイミングであっても良いし、所定の時刻になったタイミングであっても良いし、前回の一時共通鍵の生成から所定の時間が経過したタイミングであっても良いし、その他のタイミングであっても良い。他にも、例えばデータ生成装置10から出力されるデータが上記の履歴データである場合には、履歴データに含まれる車載器の識別情報が変化したタイミングであっても良い。一時共通鍵生成部211は、乱数を生成し、生成された乱数を用いて既存の共通鍵暗号方式のアルゴリズムにしたがって一時共通鍵を生成する。そして、一時共通鍵生成部211は、新たな一時共通鍵を生成すると、古くなった一時共通鍵を、復元できないように消去する。
【0028】
一時共通鍵暗号化部212は、共通鍵記憶部203に記憶される共通鍵で、一時共通鍵生成部211によって生成された一時共通鍵を暗号化する。以下の説明では、暗号化された一時共通鍵を「暗号化一時共通鍵」という。そして、一時共通鍵暗号化部212は、暗号化が済んだ一時共通鍵の平文データを、復元できないように消去する。
データ暗号化部213は、一時共通鍵生成部211によって生成された一時共通鍵で、データ生成装置10から出力されたデータを暗号化する。データ暗号化部213は、暗号化データと、データの暗号化に用いられた一時共通鍵の暗号化一時共通鍵とを対応付けて暗号化データ記憶部209に書き込む。そして、データ暗号化部213は、処理に用いた一時共通鍵と、暗号化が済んだ平文のデータとを、復元できないように消去する。
【0029】
暗号化データ記憶部209は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。暗号化データ記憶部209は、データ暗号化部213によって書き込まれる暗号化データ及び暗号化一時共通鍵を対応付けて記憶する。
図3は、暗号化装置20aの前処理の動作の流れを表すフローチャートである。暗号化装置20aは、データ生成装置10から出力されるデータを暗号化する前に、図3に示される前処理を実行する。まず、暗号化装置20aの認証部201は、登録主体の認証を行う(ステップS101)。認証部201は、登録主体が正当な登録主体ではない場合には(ステップS102−NO)、登録主体によって入力される暗号鍵を暗号鍵記憶部202に書き込まず、図3に示される前処理を終了する。一方、認証部201は、登録主体が正当な登録主体であると認証した場合には(ステップS102−YES)、登録主体によって入力される暗号鍵を暗号鍵記憶部202に書き込む(ステップS104)。次に、共通鍵暗号化部206は、暗号鍵記憶部202に記憶されている暗号鍵で、共通鍵記憶部203に記憶されている共通鍵を暗号化する(ステップS105)。次に、共通鍵暗号化部206は、暗号化された共通鍵(暗号化共通鍵)を、暗号化共通鍵記憶部207に書き込む(ステップS106)。以上の処理で、図3に示される前処理が終了する。
【0030】
図4は、暗号化装置20aの暗号化処理の動作の流れを表すフローチャートである。暗号化装置20aは、図3に示される前処理が完了した後、データ生成装置10から出力されるデータに対して図4に示される暗号化処理を実行する。まず、暗号化装置20aの一時共通鍵生成部211は、所定のタイミングが到来しているか否か判定する(ステップS201)。所定のタイミングが到来している場合には(ステップS201−YES)、一時共通鍵生成部211は、一時共通鍵を生成する(ステップS202)。そして、一時共通鍵暗号化部212は、一時共通鍵生成部211によって生成された最新の一時共通鍵を共通鍵で暗号化する(ステップS203)。所定のタイミングが到来していない場合(ステップS201−NO)又はステップS203の処理の後、データ暗号化部213は、一時共通鍵生成部211によって生成された最新の一時共通鍵で、データ生成装置10から入力したデータを暗号化する(ステップS204)。ステップS204の処理の後、データ暗号化部213は、暗号化データと、データの暗号化に用いられた一時共通鍵の暗号化一時共通鍵とを対応付けて暗号化データ記憶部209に書き込む(ステップS205)。以上の処理で、図4に示される暗号化処理が終了する。暗号化装置20aは、データ生成装置10からデータが出力される度に、図4に示される暗号化処理を実行する。
【0031】
図5は、復号化装置30の第一実施形態(復号化装置30a)の機能構成を表すブロック図である。復号化装置30aは、バスで接続されたCPUやメモリや補助記憶装置などを備え、復号化プログラムを実行する。復号化装置30aは、入力部301、復号鍵記憶部302、共通鍵復号化部303、データ復元部304aを備える装置として機能する。復号化装置30aの各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されても良い。復号化プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。なお、復号化装置30aは、物理的なセキュリティが維持されている環境にて使用される。
【0032】
入力部301は、暗号化装置20aの暗号鍵記憶部202に記憶されている暗号鍵に対応する復号鍵の入力を受け付ける。入力部301は、復号鍵の入力を受けると、その復号鍵を復号鍵記憶部302に書き込む。
復号鍵記憶部302は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。復号鍵記憶部302は、入力部301によって書き込まれる復号鍵を記憶する。
【0033】
共通鍵復号化部303は、復号鍵記憶部302に記憶されている復号鍵で、暗号化装置20aの暗号化共通鍵記憶部207に記憶されている暗号化共通鍵を復号化し、共通鍵を復元する。
データ復元部304aは、共通鍵復号化部303によって復号化された共通鍵を使用して、暗号化データ記憶部209に記憶される暗号化データを復号化し、データ生成装置10から出力されたデータを復元する。以下、データ復元部304aについてさらに詳細に説明する。
【0034】
データ復元部304aは、一時共通鍵復号化部305、データ復号化部306を備える。一時共通鍵復号化部305は、共通鍵復号化部303によって復号化された共通鍵で、暗号化装置20aの暗号化データ記憶部209に記憶されている暗号化一時共通鍵を復号化し、一時共通鍵を復元する。データ復号化部306は、復元された一時共通鍵で、復元される前の暗号化一時共通鍵と対応付けて暗号化データ記憶部209に記憶されていた暗号化データを復号化する。データ復号化部306は、この復号化処理によって、データ生成装置10から出力されたデータを復元する。そして、データ復号化部306は復元したデータを出力する。データの出力先は、他の情報処理装置であっても良いし、記憶装置であっても良いし、画像表示装置であっても良いし、印刷装置であっても良い。
【0035】
図6は、復号化装置30aの復号化処理の動作の流れを表すフローチャートである。図6の復号化処理を開始する前に、復号化装置30aの復号鍵記憶部302には復号鍵が書き込まれている。復号化装置30aは、暗号化装置20aに記憶されている情報及び復号鍵を用いて、データ生成装置10から出力されたデータを復元する。まず、復号化装置30aの共通鍵復号化部303が、復号鍵記憶部302に記憶されている復号鍵で暗号化共通鍵を復号化し、共通鍵を復元する(ステップS301)。次に、一時共通鍵復号化部305が、復元された共通鍵で暗号化一時共通鍵を復号化し、一時共通鍵を復元する(ステップS302)。次に、データ復号化部306が、復元された一時共通鍵で、復号化される前の暗号化一時共通鍵に対応していた暗号化データを復号化する(ステップS303)。この処理によって、データ生成装置10から出力されたデータが復元される。そして、データ復号化部306は、復元したデータを出力する(ステップS304)。
【0036】
第一実施形態の暗号化装置20aでは、認証部201による認証を受けた登録主体のみが、暗号化装置20aにおいて使用される暗号鍵を暗号化装置20aに入力し登録することができる。そのため、たとえ暗号化装置20aが公共の場所に設置されて不特定多数の者に触れられる可能性が生じたとしても、正当な権限を有していない者(認証を受けられない者)によって勝手に暗号鍵が登録されてしまうことを防止できる。したがって、暗号化装置20aのデータの秘匿性を向上させることができる。
【0037】
また、暗号化装置20aでは、データ生成装置10から出力されるデータを、公開鍵暗号方式によって生成された暗号鍵ではなく、共通鍵暗号方式によって生成された一時共通鍵で暗号化する。そのため、公開鍵暗号方式によって生成された暗号鍵で暗号化する場合に比べて、計算コストを低減させ、暗号化処理に要する時間を短縮することができる。特に、データ生成装置10は繰り返しデータを出力するため、暗号化装置20aは繰り返し暗号化処理を実行する必要がある。このような状況においては、暗号化処理に時間を要してしまうと実時間での暗号化ができなくなってしまうおそれがある。そのため、上記のように計算コストを低減させ、暗号化処理に要する時間を短縮することは非常に大きな効果を奏する。
【0038】
また、一時共通鍵は共通鍵で暗号化されて、この一時共通鍵で暗号化された暗号化データと対応付けて暗号化データ記憶部209に書き込まれる。また、一時共通鍵は、一時共通鍵生成部211、一時共通鍵暗号化部212、データ暗号化部213のそれぞれによって、処理が終わると復元できないように消去される。そのため、復号鍵を有していなければ暗号化データを復号化することはできなくなる。したがって、暗号化データの秘匿性が向上する。
【0039】
また、上述したように一時共通鍵は、共通鍵で暗号化される。そのため、一時共通鍵が暗号鍵で暗号化される場合に比べて、計算コストを低減させ、暗号化処理に要する時間を短縮することができる。すなわち、暗号化装置20aは、公開鍵暗号方式によって生成された暗号鍵による暗号化処理は、前処理において共通鍵を暗号化する時にのみ実行される。そして、図4に示されるように、データ生成装置10から繰り返し出力されるデータを暗号化する際には、公開鍵暗号方式によって生成された暗号鍵による暗号化処理は行われない。そのため、計算コストを低減させ、暗号化処理に要する時間を短縮することができる。
【0040】
また、暗号化装置20aは、データ生成装置10から出力されたデータを、所定のタイミング毎に異なる態様で暗号化する。具体的には、暗号化装置20aでは、所定のタイミング毎に異なる一時共通鍵でデータを暗号化する。そのため、たとえデータ生成装置10から同じデータが出力されたとしても、所定のタイミング毎に異なる暗号化データが生成される。そのため、万が一暗号化データが漏洩した場合にも、第三者による暗号化データの解析が困難であり、平文のデータを推測することや、暗号化のアルゴリズムを特定すること等を困難にすることができる。
【0041】
また、暗号化装置20aの消去部205は、暗号化装置20aの物理的なセキュリティを維持できないと推定される状態を検出した場合に、共通鍵記憶部203に記憶されている共通鍵のデータを復元できないように消去する。そのため、暗号化装置20aの物理的なセキュリティを維持できなくなった際に、共通鍵が漏洩してしまうことを防止できる。したがって、第三者が共通鍵を用いて暗号化一時共通鍵及び暗号化データを復号化してしまうことを防止できる。
【0042】
<変形例>
共通鍵記憶部203は、揮発性記憶装置であっても良い。この場合、共通鍵記憶部203は、自身に電力が供給されなくなった場合に、共通鍵のデータが消失し復元できなくなる。そのため、共通鍵記憶部203が揮発性記憶装置である場合には、暗号化装置20aは消去部205を備えなくとも良い。また、共通鍵記憶部203が揮発性記憶装置である場合には、消去部205は、所定の条件が満たされた場合に共通鍵記憶部203への電力の供給を遮断するように構成されても良い。
【0043】
共通鍵記憶部203が記憶する共通鍵は、暗号化装置20aの製造時に既に共通鍵記憶部203に書き込まれていても良い。この場合、暗号化装置20aは、共通鍵生成部204を備えなくとも良い。
データ暗号化部213は、暗号化データと暗号化一時共通鍵とを、異なる記憶装置にそれぞれ書き込んでも良い。例えば、データ暗号化部213は、暗号化データを暗号化データ記憶部209に書き込み、暗号化一時共通鍵を不図示の暗号化一時共通鍵記憶部に書き込んでも良い。この場合、データ暗号化部213は、暗号化データに対し、対応する暗号化一時共通鍵の識別情報を対応付けて書き込んでも良い。また、データ暗号化部213は、暗号化一時共通鍵に対し、対応する暗号化データの識別情報を対応付けて書き込んでも良い。
【0044】
[第二実施形態]
図7は、暗号化装置20の第二実施形態(暗号化装置20b)の機能構成を表すブロック図である。暗号化装置20bは、暗号化部208aに代えて暗号化部208bを備える点と、消去部205に代えて消去部225を備える点と、で暗号化装置20aと異なり、その他の構成は暗号化装置20aと同じである。消去部225は、所定の条件が満たされた場合に、共通鍵記憶部203に記憶されている共通鍵だけではなく、一時共通鍵記憶部221に記憶されている一時共通鍵も消去する。暗号化部208bは、タイミング毎に一時共通鍵を生成するのではなく、予め複数の一時共通鍵を記憶しておきその中から一つの一時共通鍵を選択して使用する。暗号化装置20bによって暗号化された暗号化データを復号化する復号化装置は、復号化装置30の第一実施形態(復号化装置30a)と同じ構成であるため、説明を省略する。以下、暗号化部208bについて詳細に説明する。
【0045】
暗号化部208bは、一時共通鍵記憶部221、選択部222、一時共通鍵暗号化部223、データ暗号化部224を備える。
一時共通鍵記憶部221は、磁気記憶装置や半導体記憶装置などの記憶装置である。一時共通鍵記憶部221は、予め生成された複数の一時共通鍵を記憶する。
【0046】
選択部222は、所定のタイミング毎に一時共通鍵記憶部221から一時共通鍵を選択する。所定のタイミングとは、一時共通鍵生成部211における所定のタイミングと同じである。選択部222は、例えば一時共通鍵記憶部221に記憶される複数の一時共通鍵の中から、ランダムに一つを選択しても良い。選択部222は、少なくとも前回選択された一時共通鍵とは異なる一時共通鍵を選択することが望ましい。
【0047】
一時共通鍵暗号化部223は、一時共通鍵生成部211によって生成された一時共通鍵ではなく、選択部222によって選択された一時共通鍵を暗号化する。この点を除けば、一時共通鍵暗号化部223の構成は一時共通鍵暗号化部212と同じである。
データ暗号化部224は、一時共通鍵生成部211によって生成された一時共通鍵ではなく、選択部222によって選択された一時共通鍵でデータを暗号化する。この点を除けば、データ暗号化部224の構成はデータ暗号化部213と同じである。
【0048】
図8は、暗号化装置20bの暗号化処理の動作の流れを表すフローチャートである。暗号化装置20bは、図3に示される前処理が完了した後、データ生成装置10から出力されるデータに対して図8に示される暗号化処理を実行する。以下、暗号化装置20aの暗号化処理(図4)と異なる点についてのみ説明する。所定のタイミングが到来している場合には(ステップS201−YES)、選択部222は、一時共通鍵記憶部221に記憶されている複数の一時共通鍵の中から一時共通鍵を選択する(ステップS212)。この処理を除けば、暗号化装置20bの処理の流れは暗号化装置20aの処理の流れと同じである。
第二実施形態の暗号化装置20bでは、第一実施形態の暗号化装置20aと同様の作用及び効果を奏する。さらに、第二実施形態の暗号化装置20bでは、一時共通鍵を生成する必要が無くなる。そのため、データの暗号化に要する時間を短縮することが可能となる。また、第二実施形態の暗号化装置20bは、第一実施形態の暗号化装置20aと同様の変形がなされても良い。
【0049】
[第三実施形態]
図9は、暗号化装置20の第三実施形態(暗号化装置20c)の機能構成を表すブロック図である。暗号化装置20cは、暗号化部208aに代えて暗号化部208cを備える点と、暗号化データ記憶部209に代えて暗号化データ記憶部239を備える点と、で暗号化装置20aと異なり、その他の構成は暗号化装置20aと同じである。暗号化部208cは、タイミング毎に異なる一時共通鍵でデータを暗号化するのではなく、データに対してタイミング毎に異なる挿入データを挿入して暗号化する。以下、暗号化部208c及び暗号化データ記憶部239について詳細に説明する。
【0050】
暗号化部208cは、挿入データ生成部231及びデータ暗号化部232を備える。
挿入データ生成部231は、所定のタイミング毎に挿入データを生成する。所定のタイミングとは、一時共通鍵生成部211における所定のタイミングと同じである。挿入データ生成部231は、乱数を生成し、生成された乱数を挿入データとして出力する。挿入データのデータ長は、固定であっても良いし変動しても良い。挿入データ生成部231は、新たな挿入データを生成すると、古くなった挿入データを、復元できないように消去しても良い。
【0051】
データ暗号化部232は、データ生成装置10から出力されたデータに対し、挿入データ生成部231によって出力された挿入データを挿入する。挿入データの挿入場所は、予め決められた場所であっても良いし、その都度異なる場所(例えばランダムに選択された場所)であっても良い。データ暗号化部232は、挿入データが挿入されたデータ(以下、「挿入済データ」という。)を、共通鍵記憶部203に記憶されている共通鍵で暗号化する。データ暗号化部232は、挿入済データが暗号化されたデータ(以下、「暗号化挿入済データ」という。)と挿入データとを対応付けて暗号化データ記憶部239に書き込む。そして、データ暗号化部232は、暗号化が済んだ平文のデータを復元できないように消去する。
【0052】
暗号化データ記憶部239は、磁気ハードディスク装置や半導体記憶装置などの記憶装置である。暗号化データ記憶部239は、データ暗号化部232によって書き込まれる暗号化挿入済データ及び挿入データを対応付けて記憶する。
【0053】
図10は、暗号化装置20cの暗号化処理の動作の流れを表すフローチャートである。暗号化装置20cは、図3に示される前処理が完了した後、データ生成装置10から出力されるデータに対して図10に示される暗号化処理を実行する。まず、暗号化装置20cの挿入データ生成部231は、所定のタイミングが到来しているか否か判定する(ステップS401)。所定のタイミングが到来している場合には(ステップS401−YES)、挿入データ生成部231は、挿入データを生成する(ステップS402)。所定のタイミングが到来していない場合(ステップS401−NO)又はステップS402の処理の後、データ暗号化部232は、挿入データ生成部231によって生成された最新の挿入データを、データ生成装置10から出力されたデータに挿入する(ステップS403)。次に、データ暗号化部232は、挿入済データを、共通鍵で暗号化する(ステップS404)。そして、データ暗号化部232は、暗号化挿入済データと、データに挿入された挿入データとを対応付けて暗号化データ記憶部239に書き込む(ステップS405)。以上の処理で、図10に示される暗号化処理が終了する。暗号化装置20cは、データ生成装置10からデータが出力される度に、図10に示される暗号化処理を実行する。
【0054】
図11は、復号化装置30の第三実施形態(復号化装置30c)の機能構成を表すブロック図である。復号化装置30cは、データ復元部304aに代えてデータ復元部304cを備える点で復号化装置30aと異なり、その他の構成は復号化装置30aと同じである。以下、データ復元部304cについて詳細に説明する。
データ復元部304cは、データ復号化部321及び挿入データ除去部322を備える。
【0055】
データ復号化部321は、共通鍵復号化部303によって復元された共通鍵で、暗号化装置20cに記憶されていた暗号化挿入済データを復号化する。この処理によって、データ復号化部321は挿入済データを復元する。
挿入データ除去部322は、データ復号化部321によって復元された挿入済データから、復元される前の暗号化挿入済データと対応付けて暗号化データ記憶部239に記憶されていた挿入データを除去する。挿入データ除去部322は、この処理によって、データ生成装置10から出力されたデータを復元する。そして、挿入データ除去部322は復元したデータを出力する。データの出力先は、他の情報処理装置であっても良いし、記憶装置であっても良いし、画像表示装置であっても良いし、印刷装置であっても良い。
【0056】
図12は、復号化装置30cの復号化処理の動作の流れを表すフローチャートである。図12の復号化処理を開始する前に、復号化装置30cの復号鍵記憶部302には復号鍵が書き込まれている。復号化装置30cは、暗号化装置20cに記憶されている情報及び復号鍵を用いて、データ生成装置10から出力されたデータを復元する。まず、復号化装置30cの共通鍵復号化部303が、復号鍵記憶部302に記憶されている復号鍵で暗号化共通鍵を復号化し、共通鍵を復元する(ステップS501)。次に、データ復号化部321が、復元された共通鍵で暗号化挿入済データを復号化し、挿入済データを復元する(ステップS502)。次に、挿入データ除去部322が、復元された挿入済データから、復号化される前の暗号化挿入済データに対応していた挿入データを除去する(ステップS503)。この処理によって、データ生成装置10から出力されたデータが復元される。そして、挿入済データ除去部322は、復元したデータを出力する(ステップS504)。
【0057】
第三実施形態の暗号化装置20cでは、認証部201による認証を受けた登録主体のみが、暗号化装置20cにおいて使用される暗号鍵を暗号化装置20cに入力し登録することができる。そのため、第一実施形態の暗号化装置20aと同様に、データの秘匿性を向上させることができる。
また、暗号化装置20cでは、データ生成装置10から出力されるデータを、公開鍵暗号方式によって生成された暗号鍵ではなく、共通鍵暗号方式によって生成された共通鍵で暗号化する。そのため、第一実施形態の暗号化装置20aと同様に、計算コストを低減させ、暗号化処理に要する時間を短縮することができる。
【0058】
また、暗号化装置20cは、データ生成装置10から出力されたデータを、所定のタイミング毎に異なる態様で暗号化する。具体的には、暗号化装置20cでは、所定のタイミング毎に異なる挿入データをデータに挿入し、挿入済データを暗号化する。そのため、たとえデータ生成装置10から同じデータが出力されたとしても、所定のタイミング毎に異なる暗号化データが生成される。そのため、万が一暗号化データが漏洩した場合にも、暗号化データの解析が困難であり、平文のデータを推測することや、暗号化のアルゴリズムを特定すること等を困難にすることができる。
【0059】
また、暗号化装置20cの消去部205は、暗号化装置20cの物理的なセキュリティを維持できないと推定される状態を検出した場合に、共通鍵記憶部203に記憶されている共通鍵のデータを復元できないように消去する。そのため、暗号化装置20cの物理的なセキュリティを維持できなくなった際に、共通鍵が漏洩してしまうことを防止できる。したがって、第三者が共通鍵を用いて暗号化データを復号化してしまうことを防止できる。
【0060】
<変形例>
共通鍵記憶部203は、揮発性記憶装置であっても良い。この場合、共通鍵記憶部203は、自身に電力が供給されなくなった場合に、共通鍵のデータが消失し復元できなくなる。そのため、共通鍵記憶部203が揮発性記憶装置である場合には、暗号化装置20cは消去部205を備えなくとも良い。また、共通鍵記憶部203が揮発性記憶装置である場合には、消去部205は、所定の条件が満たされた場合に共通鍵記憶部203への電力の供給を遮断するように構成されても良い。
【0061】
共通鍵記憶部203が記憶する共通鍵は、暗号化装置20cの製造時に既に共通鍵記憶部203に書き込まれていても良い。この場合、暗号化装置20cは、共通鍵生成部204を備えなくとも良い。
データ暗号化部232は、暗号化挿入済データと挿入データとを、異なる記憶装置にそれぞれ書き込んでも良い。例えば、データ暗号化部232は、暗号化挿入済データを暗号化データ記憶部239に書き込み、挿入データを不図示の挿入データ記憶部に書き込んでも良い。この場合、データ暗号化部232は、暗号化挿入済データに対し、対応する挿入データの識別情報を対応付けて書き込んでも良い。また、データ暗号化部232は、挿入データに対し、対応する暗号化挿入済データの識別情報を対応付けて書き込んでも良い。
【0062】
また、挿入データ生成部231は、予め定められた所定のデータ長の挿入データを生成しても良い。さらに、データ暗号化部232は、予め定められた所定の位置に挿入データを挿入しても良い。このように構成された場合、挿入データ除去部322は、挿入データを取得することなく、挿入済データから挿入データを除去できる。そのため、データ暗号化部232は、挿入データを書き込まずに、暗号化挿入済データのみを暗号化データ記憶部239に書き込んでも良い。
【0063】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0064】
1…暗号化復号化システム, 10…データ生成装置, 20a,20b,20c…暗号化装置, 30a,30c…復号化装置, 201…認証部, 202…暗号鍵記憶部, 203…共通鍵記憶部, 204…共通鍵生成部, 205…消去部, 206…共通鍵暗号化部, 207…暗号化共通鍵記憶部, 208a,208b,208c…暗号化部, 209…暗号化データ記憶部, 211…一時共通鍵生成部, 212…一時共通鍵暗号化部, 213…データ暗号化部, 221…一時共通鍵記憶部, 222…選択部, 223…一時共通鍵暗号化部, 224…データ暗号化部, 231…挿入データ生成部, 232…データ暗号化部, 301…入力部, 302…復号鍵記憶部, 303…共通鍵復号化部, 304a,304c…データ復元部, 305…一時共通鍵復号化部, 306…データ復号化部, 321…データ復号化部, 322…挿入データ除去部
【特許請求の範囲】
【請求項1】
公開鍵暗号方式によって生成された暗号鍵の登録主体を認証する認証部と、
前記認証部によって認証された前記登録主体が登録する前記暗号鍵を記憶する、暗号鍵記憶部と、
共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、
前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、
繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、前記データを消去する暗号化部と、
前記暗号化部による暗号化によって生成された暗号化データを記憶する暗号化データ記憶部と、
を備える暗号化装置。
【請求項2】
前記暗号化部は、
共通鍵暗号方式によって生成された一時共通鍵で前記データを暗号化し、前記一時共通鍵及び前記データを消去するデータ暗号化部と、
前記共通鍵で前記一時共通鍵を暗号化することによって生成される暗号化一時共通鍵を記憶する暗号化一時共通鍵記憶部と、
を備え、
前記データ暗号化部は、前記所定のタイミング毎に異なる前記一時共通鍵で前記データを暗号化する請求項1に記載の暗号化装置。
【請求項3】
前記暗号化部は、
前記所定のタイミング毎に異なる前記一時共通鍵を生成する一時共通鍵生成部をさらに備え、
前記データ暗号化部は、前記一時共通鍵生成部によって生成された前記一時共通鍵で前記データを暗号化する請求項2に記載の暗号化装置。
【請求項4】
前記暗号化部は、
共通鍵暗号方式によって生成された一時共通鍵を複数記憶する一時共通鍵記憶部と、
前記一時共通鍵記憶部に記憶される複数の一時共通鍵を、前記共通鍵で暗号化して記憶する暗号化一時共通鍵記憶部と、
前記所定のタイミング毎に異なる前記一時共通鍵で前記データを暗号化し、前記データを消去するデータ暗号化部と、
を備え、
前記一時共通鍵記憶部は、所定の事態の発生により前記一時共通鍵のデータを消失する請求項1に記載の暗号化装置。
【請求項5】
前記暗号化部は、
前記所定のタイミング毎に異なる挿入データを挿入することによって挿入済データを生成する挿入部と、
前記共通鍵で前記挿入済データを暗号化することによって前記暗号化データを生成し、前記データ及び前記挿入済データを消去するデータ暗号化部と、
を備える請求項1に記載の暗号化装置。
【請求項6】
前記共通鍵記憶部は、所定の事態の発生により前記共通鍵のデータを消失する、請求項1〜5のいずれか一つに記載の暗号化装置。
【請求項7】
暗号化装置と復号化装置とを備える暗号化復号化システムであって、
前記暗号化装置は、
公開鍵暗号方式によって生成された暗号鍵の登録主体を認証する認証部と、
前記認証部によって認証された前記登録主体が登録する前記暗号鍵を記憶する、暗号鍵記憶部と、
共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、
前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、
繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、前記データを消去する暗号化部と、
前記暗号化部による暗号化によって生成された暗号化データを記憶する暗号化データ記憶部と、を備え、
前記復号化装置は、
前記暗号化装置の前記暗号鍵記憶部に記憶される前記暗号鍵に対応する復号鍵を記憶する復号鍵記憶部と、
前記復号鍵記憶部に記憶される前記復号鍵で、前記暗号化装置の前記暗号化共通鍵記憶部に記憶される前記暗号化共通鍵を復号化して前記共通鍵を復元する共通鍵復号化部と、
復元された前記共通鍵を使用して、前記暗号化データ記憶部に記憶される前記暗号化データを復号化し、前記繰り返し生成されるデータを復元するデータ復元部と、
を備えることを特徴とする暗号化復号化システム。
【請求項8】
公開鍵暗号方式によって生成された暗号鍵を記憶する暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、暗号化データを記憶する暗号化データ記憶部と、を備える暗号化装置が行う暗号化方法であって、
前記暗号鍵の登録主体を認証し、認証された前記登録主体によって登録される前記暗号鍵を前記暗号鍵記憶部に登録する認証ステップと、
繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化することによって前記暗号化データを生成し、前記データを消去する暗号化ステップと、
を有する暗号化方法。
【請求項9】
公開鍵暗号方式によって生成された暗号鍵を記憶する暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、暗号化データを記憶する暗号化データ記憶部と、を備えるコンピュータに対し、
前記暗号鍵の登録主体を認証し、認証された前記登録主体によって登録される前記暗号鍵を前記暗号鍵記憶部に登録する認証ステップと、
繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化することによって前記暗号化データを生成し、前記データを消去する暗号化ステップと、
を実行させるためのコンピュータプログラム。
【請求項1】
公開鍵暗号方式によって生成された暗号鍵の登録主体を認証する認証部と、
前記認証部によって認証された前記登録主体が登録する前記暗号鍵を記憶する、暗号鍵記憶部と、
共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、
前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、
繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、前記データを消去する暗号化部と、
前記暗号化部による暗号化によって生成された暗号化データを記憶する暗号化データ記憶部と、
を備える暗号化装置。
【請求項2】
前記暗号化部は、
共通鍵暗号方式によって生成された一時共通鍵で前記データを暗号化し、前記一時共通鍵及び前記データを消去するデータ暗号化部と、
前記共通鍵で前記一時共通鍵を暗号化することによって生成される暗号化一時共通鍵を記憶する暗号化一時共通鍵記憶部と、
を備え、
前記データ暗号化部は、前記所定のタイミング毎に異なる前記一時共通鍵で前記データを暗号化する請求項1に記載の暗号化装置。
【請求項3】
前記暗号化部は、
前記所定のタイミング毎に異なる前記一時共通鍵を生成する一時共通鍵生成部をさらに備え、
前記データ暗号化部は、前記一時共通鍵生成部によって生成された前記一時共通鍵で前記データを暗号化する請求項2に記載の暗号化装置。
【請求項4】
前記暗号化部は、
共通鍵暗号方式によって生成された一時共通鍵を複数記憶する一時共通鍵記憶部と、
前記一時共通鍵記憶部に記憶される複数の一時共通鍵を、前記共通鍵で暗号化して記憶する暗号化一時共通鍵記憶部と、
前記所定のタイミング毎に異なる前記一時共通鍵で前記データを暗号化し、前記データを消去するデータ暗号化部と、
を備え、
前記一時共通鍵記憶部は、所定の事態の発生により前記一時共通鍵のデータを消失する請求項1に記載の暗号化装置。
【請求項5】
前記暗号化部は、
前記所定のタイミング毎に異なる挿入データを挿入することによって挿入済データを生成する挿入部と、
前記共通鍵で前記挿入済データを暗号化することによって前記暗号化データを生成し、前記データ及び前記挿入済データを消去するデータ暗号化部と、
を備える請求項1に記載の暗号化装置。
【請求項6】
前記共通鍵記憶部は、所定の事態の発生により前記共通鍵のデータを消失する、請求項1〜5のいずれか一つに記載の暗号化装置。
【請求項7】
暗号化装置と復号化装置とを備える暗号化復号化システムであって、
前記暗号化装置は、
公開鍵暗号方式によって生成された暗号鍵の登録主体を認証する認証部と、
前記認証部によって認証された前記登録主体が登録する前記暗号鍵を記憶する、暗号鍵記憶部と、
共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、
前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、
繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化し、前記データを消去する暗号化部と、
前記暗号化部による暗号化によって生成された暗号化データを記憶する暗号化データ記憶部と、を備え、
前記復号化装置は、
前記暗号化装置の前記暗号鍵記憶部に記憶される前記暗号鍵に対応する復号鍵を記憶する復号鍵記憶部と、
前記復号鍵記憶部に記憶される前記復号鍵で、前記暗号化装置の前記暗号化共通鍵記憶部に記憶される前記暗号化共通鍵を復号化して前記共通鍵を復元する共通鍵復号化部と、
復元された前記共通鍵を使用して、前記暗号化データ記憶部に記憶される前記暗号化データを復号化し、前記繰り返し生成されるデータを復元するデータ復元部と、
を備えることを特徴とする暗号化復号化システム。
【請求項8】
公開鍵暗号方式によって生成された暗号鍵を記憶する暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、暗号化データを記憶する暗号化データ記憶部と、を備える暗号化装置が行う暗号化方法であって、
前記暗号鍵の登録主体を認証し、認証された前記登録主体によって登録される前記暗号鍵を前記暗号鍵記憶部に登録する認証ステップと、
繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化することによって前記暗号化データを生成し、前記データを消去する暗号化ステップと、
を有する暗号化方法。
【請求項9】
公開鍵暗号方式によって生成された暗号鍵を記憶する暗号鍵記憶部と、共通鍵暗号方式によって生成された共通鍵を記憶する共通鍵記憶部と、前記暗号鍵記憶部に記憶された前記暗号鍵によって暗号化された前記共通鍵を記憶する暗号化共通鍵記憶部と、暗号化データを記憶する暗号化データ記憶部と、を備えるコンピュータに対し、
前記暗号鍵の登録主体を認証し、認証された前記登録主体によって登録される前記暗号鍵を前記暗号鍵記憶部に登録する認証ステップと、
繰り返し生成されるデータを、前記共通鍵を使用して、所定のタイミング毎に異なる態様で暗号化することによって前記暗号化データを生成し、前記データを消去する暗号化ステップと、
を実行させるためのコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−105068(P2012−105068A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−251893(P2010−251893)
【出願日】平成22年11月10日(2010.11.10)
【出願人】(000006208)三菱重工業株式会社 (10,378)
【Fターム(参考)】
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願日】平成22年11月10日(2010.11.10)
【出願人】(000006208)三菱重工業株式会社 (10,378)
【Fターム(参考)】
[ Back to top ]