(57)【要約】【課題】アプリケーションプログラムを書き換えることなく暗号装置により暗号化や復号を行う。【解決手段】ＣＰＵ２はＯＳ６とアプリケーションプログラム７を有する。ＨＤＤ３と耐タンパ性を持つ暗号装置４とが内部バス５を介してＣＰＵ２に接続されている。ＯＳ６は、ＨＤＤ３に対して読み書きを行うＨＤＤアクセスルーチン１０と、暗号装置４を準備完了状態にする準備処理部１２と、準備完了状態の暗号装置４に暗号化又は復号を行わせる暗号化・復号処理部１３とを有する。アプリケーションプログラム７から書き込み指示が出されると、ＨＤＤアクセスルーチン１０が暗号化・復号処理部１３に平文データを送り、暗号化・復号処理部１３が暗号装置４にその平文データを暗号化させて暗号化データを得て、ＨＤＤアクセスルーチン１０がその暗号化データをＨＤＤ３に書き込む。【選択図】図１
2013092960.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムとアプリケーションプログラムを有する中央処理装置と、
内部バスを介して前記中央処理装置に接続された記憶装置と、
前記内部バスを介して前記中央処理装置に接続され、耐タンパ性を持つ暗号装置とを備え、
前記オペレーティングシステムは、
前記暗号装置を準備完了状態にする準備処理を行う準備処理部と、
前記記憶装置に対して読み書きを行うアクセスルーチンと、
準備完了状態の前記暗号装置に暗号化又は復号を行わせる暗号化・復号処理部とを有し、
前記アプリケーションプログラムから書き込み指示が出されると、前記アクセスルーチンが前記暗号化・復号処理部に平文データを送り、前記暗号化・復号処理部が前記暗号装置にその平文データを暗号化させて暗号化データを得て、前記アクセスルーチンがその暗号化データを前記記憶装置に書き込み、
前記アプリケーションプログラムから読み出し指示が出されると、前記アクセスルーチンが暗号化データを前記記憶装置から読み出して前記暗号化・復号処理部に送り、前記暗号化・復号処理部が前記暗号装置にその暗号化データを復号させることを特徴とする情報処理装置。
【請求項２】
前記準備処理部は、前記オペレーティングシステムのブート時に１回だけ前記準備処理を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記準備処理部は、
前記内部バスに接続された前記暗号装置を使用するためのアクセスルーチンを初期化する初期化部と、
前記暗号装置を検出する暗号装置検出部と、
検出した前記暗号装置との通信路を確立する通信路確立部と、
前記通信路を確立した後に前記暗号装置へログインするログイン部と、
ログインした前記暗号装置の秘密鍵を検出する鍵検出部と、
検出した秘密鍵のうち１つを指定する鍵指定部とを有することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
耐タンパ性を持ち、指定した前記秘密鍵を記憶する外部デバイスを更に備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
オペレーティングシステムとアプリケーションプログラムを有する中央処理装置と、内部バスを介して前記中央処理装置に接続された記憶装置と、前記内部バスを介して前記中央処理装置に接続され、耐タンパ性を持つ暗号装置とを備えた情報処理装置を用いた情報処理方法であって、
前記オペレーティングシステムの準備処理部により、前記暗号装置を準備完了状態にするステップと、
前記アプリケーションプログラムから書き込み指示が出されると、前記オペレーティングシステムのアクセスルーチンが前記オペレーティングシステムの暗号化・復号処理部に平文データを送るステップと、
前記暗号化・復号処理部が準備完了状態の前記暗号装置にその平文データを暗号化させて暗号化データを得るステップと、
前記アクセスルーチンがその暗号化データを前記記憶装置に書き込むステップとを有することを特徴とする情報処理方法。
【請求項６】
オペレーティングシステムとアプリケーションプログラムを有する中央処理装置と、内部バスを介して前記中央処理装置に接続された記憶装置と、前記内部バスを介して前記中央処理装置に接続され、耐タンパ性を持つ暗号装置とを備えた情報処理装置を用いた情報処理方法であって、
前記オペレーティングシステムの準備処理部により、前記暗号装置を準備完了状態にするステップと、
前記アプリケーションプログラムから読み出し指示が出されると、前記オペレーティングシステムのアクセスルーチンが暗号化データを前記記憶装置から読み出して前記オペレーティングシステムの暗号化・復号処理部に送るステップと、
前記暗号化・復号処理部が準備完了状態の前記暗号装置にその暗号化データを復号させるステップとを有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムを書き換えることなく暗号装置により暗号化や復号を行うことができる情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
従来、コンピュータ上のデータの盗難防止として、共通鍵暗号方式を用いた暗号化が広く使われている。この方式では、秘密鍵を盗まれると暗号化が無効になるため、秘密鍵を安全に保管することが重要である。
【０００３】
秘密鍵を保管する方法として、秘密鍵を別の鍵で暗号化して保管する（例えば、特許文献１参照）、秘密鍵を分割して保管する（例えば、特許文献２参照）、ＩＣカードなどの耐タンパ性を持つ外部デバイスに保管するなどがある。
【０００４】
従来の方法では、秘密鍵を使用して演算する際に、その秘密鍵を元のままの状態でコンピュータ上に一時的に置く必要がある。この際に不正なプログラムにより秘密鍵が盗まれるリスクが存在する。これを防ぐために、耐タンパ性を持つ外部の暗号装置により暗号化や復号を行う方法がある。この方法では、暗号化や復号を行うための準備処理として、暗号装置を検出し通信路を確立してログインを行い、暗号装置の鍵を検出しその１つを指定して初期化を行う必要がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１０９９１９号公報
【特許文献２】特開２０１１−９０５５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これまで耐タンパ機能を備えた暗号装置はコンピュータ、特にＰＣ（Personal computer）に比べてコストが高く、処理速度が遅かった。従って、暗号装置による暗号化や復号は、セキュリティを特に重視する一部のアプリケーションプログラムのみが適用していた。
【０００７】
アプリケーションプログラムにおいて、ハードディスクにアクセスする読み書き部分は複数個所に分散されている。この分散された読み書き部分にそれぞれ準備処理を埋め込む必要があるため、アプリケーションプログラムを大幅に書き変える必要があった。従って、書き変える時間がかかり暗号装置をすぐには使えなかった。また、プログラムサイズが増えてしまっていた。そして、暗号装置を持ったコンピュータでは書き直したアプリケーションプログラムを使い、持たないものでは書き変えていないアプリケーションプログラムを使うという管理が必要であった。また、暗号化や復号を行うたびに準備処理を実行していたため、オーバーヘッドが大きかった。暗号化装置のコストパフォーマンスは改善してきているが、これらの問題があるために暗号化装置の利用は限定されていた。
【０００８】
本発明は、上述のような課題を解決するためになされたもので、その目的はアプリケーションプログラムを書き換えることなく暗号装置により暗号化や復号を行うことができる情報処理装置及び情報処理方法を得るものである。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、オペレーティングシステムとアプリケーションプログラムを有する中央処理装置と、内部バスを介して前記中央処理装置に接続された記憶装置と、前記内部バスを介して前記中央処理装置に接続され、耐タンパ性を持つ暗号装置とを備え、前記オペレーティングシステムは、前記暗号装置を準備完了状態にする準備処理を行う準備処理部と、前記記憶装置に対して読み書きを行うアクセスルーチンと、準備完了状態の前記暗号装置に暗号化又は復号を行わせる暗号化・復号処理部とを有し、前記アプリケーションプログラムから書き込み指示が出されると、前記アクセスルーチンが前記暗号化・復号処理部に平文データを送り、前記暗号化・復号処理部が前記暗号装置にその平文データを暗号化させて暗号化データを得て、前記アクセスルーチンがその暗号化データを前記記憶装置に書き込み、前記アプリケーションプログラムから読み出し指示が出されると、前記アクセスルーチンが暗号化データを前記記憶装置から読み出して前記暗号化・復号処理部に送り、前記暗号化・復号処理部が前記暗号装置にその暗号化データを復号させる。
【発明の効果】
【００１０】
本発明により、アプリケーションプログラムを書き換えることなく暗号装置により暗号化や復号を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係る情報処理装置を示す図である。
【図２】本発明の実施の形態に係る情報処理方法のフローチャートである。
【発明を実施するための形態】
【００１２】
図１は、本発明の実施の形態に係る情報処理装置を示す図である。コンピュータ１内において、ＣＰＵ２（Central Processing Unit）にＨＤＤ３（Hard Disk Drive）と暗号装置４が内部バス５を介して接続されている。なお、ＨＤＤ３や暗号装置４をコンピュータ１外部に設けてもよい。
【００１３】
ＣＰＵ２は、ＯＳ６（Operating System）と、アプリケーションプログラム７と、キャッシュメモリ８とを有する。ここで、ＯＳ６は、キーボード入力や画面出力といった入出力機能やディスクやメモリの管理など、多くのアプリケーションプログラムから共通して利用される基本的な機能を提供し、コンピュータ１全体を管理するソフトウェアである。アプリケーションプログラム７は、ＨＤＤ３やキャッシュメモリ８からデータを読み出して演算を実施し、その結果をＨＤＤ３やキャッシュメモリ８に書き込む。
【００１４】
暗号装置４は、暗号化する時と復号する時に同じ秘密鍵を利用する共通鍵暗号方式を採用している。また、暗号装置４は、物理的又は論理的に内部の情報を読み取られることに対する耐性である耐タンパ性を持つ。これにより、ＣＰＵ２とは別に暗号装置４上のみで鍵管理及び暗号処理が可能であるため、秘密鍵が盗まれるのを防ぐことができる。また、バックアップ用として、耐タンパ性を持つＩＣカード９に秘密鍵を記憶させてもよい。
【００１５】
ＯＳ６は、ＨＤＤ３に対して読み書きを行うＨＤＤアクセスルーチン１０と、暗号装置４を使用する暗号装置アクセスルーチン１１とを有する。暗号装置アクセスルーチン１１は、暗号装置４を準備完了状態（Ｒｅａｄｙ）にする準備処理を準備処理部１２と、準備完了状態の暗号装置４に暗号化又は復号を行わせる暗号化・復号処理部１３とを有する。ここで、準備完了状態とは、暗号化・復号処理部１３からの指示を受けて暗号装置４が暗号化又は復号を行うことができる状態のことである。準備処理部１２は、初期化部１４と、暗号装置検出部１５と、通信路確立部１６と、ログイン部１７と、鍵検出部１８と、鍵指定部１９とを有する。
【００１６】
続いて、暗号装置アクセスルーチンの動作を説明する。図２は、暗号装置アクセスルーチンの動作を示すフローチャートである。
【００１７】
まず、初期化部１４は、内部バス５に接続された暗号装置４を使用するための暗号装置アクセスルーチン１１を初期化する（ステップＳ１）。次に、暗号装置検出部１５は、内部バス５に接続された暗号装置４を検出する（ステップＳ２）。
【００１８】
次に、通信路確立部１６は、検出した暗号装置４との通信路（セッション）を確立する（ステップＳ３）。その後に、ログイン部１７は暗号装置４へログインする（ステップＳ４）。暗号装置４は、セキュリティ上の問題から、ＰＩＮ（Personal Identification Number）を入れてログインしないと使えないようになっている。
【００１９】
次に、ログインした暗号装置４の秘密鍵を鍵検出部１８が検出する（ステップＳ５）。この検出した秘密鍵のうち暗号化に使用する１つを鍵指定部１９が指定し、初期化する（ステップＳ６）。即ち、暗号化にしようする秘密鍵をＯＳ６が参照するパラメータの１つとして予め指定する。
【００２０】
ここまでの準備処理部１２による準備処理（ステップＳ１〜Ｓ６）は、コンピュータ１の電源を入れた時にＯＳ６を起動するまでのブート時に１回だけ行われる。それ以降の暗号装置４による暗号化や復号の際には行われない。
【００２１】
次に、暗号化・復号処理部１３が、準備完了状態の暗号装置４に暗号化又は復号を行わせる（ステップＳ７）。暗号化又は復号が終わった後に、暗号装置４との通信路をクローズする。（ステップＳ８）。
【００２２】
続いて、上記の情報処理装置を用いた情報処理方法を説明する。まず、ＯＳ６のブート時に、準備処理部１２が準備処理を行って暗号装置４を準備完了状態にする。
【００２３】
次に、アプリケーションプログラム７から書き込み指示が出されると、ＨＤＤアクセスルーチン１０が、ＨＤＤ３のヘッドを対象セクタに移動するコマンドをＨＤＤ３に送る。なお、ファイルとＨＤＤ３上の物理的な位置はPile Allocation Table (FAT)のようなテーブルで結びつけられている。次に、ＨＤＤアクセスルーチン１０が、暗号化のコマンドを暗号装置４に送ると共に、平文データをキャッシュメモリ８から読み出して暗号化・復号処理部１３に送る。次に、暗号化・復号処理部１３が、秘密鍵を用いて準備完了状態の暗号装置４にその平文データを暗号化させて暗号化データを得る。次に、ＨＤＤアクセスルーチン１０は、ファイルの書き込み開始位置となるセクタを探し、そのセクタから暗号化データをＨＤＤ３に書き込む。
【００２４】
一方、アプリケーションプログラム７から読み出し指示が出されると、ＨＤＤアクセスルーチン１０が、ＨＤＤ３のヘッドを対象セクタに移動するコマンドと読み出し実施命令をＨＤＤ３に送り、暗号化データをＨＤＤ３から読み出す。次に、ＨＤＤアクセスルーチン１０は、復号のコマンドを暗号装置４に送ると共に、読み出した暗号化データを暗号化・復号処理部１３に送る。次に、暗号化・復号処理部１３が、秘密鍵を用いて準備完了状態の暗号装置４にその暗号化データを復号させる。次に、ＨＤＤアクセスルーチン１０が、復号された平文データをキャッシュメモリ８に書き込む。
【００２５】
以上説明したように、本実施の形態では、ＯＳ６が、アプリケーションプログラム７からの読み書き指示に応じて、暗号装置４に暗号化や復号を行わせる。これにより、アプリケーションプログラム７を書き換えることなく暗号装置４により暗号化や復号を行うことができる。
【００２６】
また、暗号装置４を準備完了状態にする準備処理は、ＯＳ６のブート時に１回だけ行われ、暗号装置４による暗号化や復号の際には行われない。これにより、暗号化や復号のたびに準備処理が行われていた従来技術に比べて、オーバーヘッドを小さくすることができる。
【００２７】
また、秘密鍵をＩＣカード９に記憶させることにより、秘密鍵を安全にバックアップすることができる。ただし、ＩＣカード９に限らず、耐タンパ性を持つ外部デバイスに秘密鍵を記憶させてもよい。
【００２８】
また、ＣＰＵ２は他のアプリケーションプログラムも有するが、特定のアプリケーションプログラム７がＨＤＤ３に書き込むデータのみ暗号化することができる。即ち、幾つかの特定のアプリケーションプログラムが書き込むデータは暗号化可能であるが、他のアプリケーションプログラムが書き込むデータは暗号化できないようにすることができる。この場合は、暗号化するアプリケーションプログラム７の名称を書いたテーブルを予め作成し、書き込み指示を受けたＨＤＤアクセスルーチン１０が、テーブルを検索し、暗号化するアプリケーションプログラム７からの指示であれば暗号化を行う。
【００２９】
なお、本実施の形態では、ＨＤＤ３に暗号化データを記憶させているが、これ限らずＳＳＤ（Solid State Drive）などの他の記憶装置を用いてもよい。また、ＣＰＵ２のキャッシュメモリ８から平文データを読み出しているが、コンピュータ１内に別途設けた記憶部ＲＡＭから読み出してもよい。
【符号の説明】
【００３０】
２  ＣＰＵ（中央処理装置）
３  ＨＤＤ（記憶装置）
４  暗号装置
５  内部バス
６  ＯＳ（オペレーティングシステム）
７  アプリケーションプログラム
９  ＩＣカード（外部デバイス）
１０  ＨＤＤアクセスルーチン（アクセスルーチン）
１２  準備処理部
１３  暗号化・復号処理部
１５  暗号装置検出部
１６  通信路確立部
１７  ログイン部
１８  鍵検出部
１９  鍵指定部
【図１】
2013092960.tif 000003
【図２】
2013092960.tif 000004