説明

情報処理装置及び情報処理方法

【課題】アプリケーションプログラムを書き換えることなく暗号装置により暗号化や復号を行う。
【解決手段】CPU2はOS6とアプリケーションプログラム7を有する。HDD3と耐タンパ性を持つ暗号装置4とが内部バス5を介してCPU2に接続されている。OS6は、HDD3に対して読み書きを行うHDDアクセスルーチン10と、暗号装置4を準備完了状態にする準備処理部12と、準備完了状態の暗号装置4に暗号化又は復号を行わせる暗号化・復号処理部13とを有する。アプリケーションプログラム7から書き込み指示が出されると、HDDアクセスルーチン10が暗号化・復号処理部13に平文データを送り、暗号化・復号処理部13が暗号装置4にその平文データを暗号化させて暗号化データを得て、HDDアクセスルーチン10がその暗号化データをHDD3に書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションプログラムを書き換えることなく暗号装置により暗号化や復号を行うことができる情報処理装置及び情報処理方法に関する。
【背景技術】
【0002】
従来、コンピュータ上のデータの盗難防止として、共通鍵暗号方式を用いた暗号化が広く使われている。この方式では、秘密鍵を盗まれると暗号化が無効になるため、秘密鍵を安全に保管することが重要である。
【0003】
秘密鍵を保管する方法として、秘密鍵を別の鍵で暗号化して保管する(例えば、特許文献1参照)、秘密鍵を分割して保管する(例えば、特許文献2参照)、ICカードなどの耐タンパ性を持つ外部デバイスに保管するなどがある。
【0004】
従来の方法では、秘密鍵を使用して演算する際に、その秘密鍵を元のままの状態でコンピュータ上に一時的に置く必要がある。この際に不正なプログラムにより秘密鍵が盗まれるリスクが存在する。これを防ぐために、耐タンパ性を持つ外部の暗号装置により暗号化や復号を行う方法がある。この方法では、暗号化や復号を行うための準備処理として、暗号装置を検出し通信路を確立してログインを行い、暗号装置の鍵を検出しその1つを指定して初期化を行う必要がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−109919号公報
【特許文献2】特開2011−90551号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
これまで耐タンパ機能を備えた暗号装置はコンピュータ、特にPC(Personal computer)に比べてコストが高く、処理速度が遅かった。従って、暗号装置による暗号化や復号は、セキュリティを特に重視する一部のアプリケーションプログラムのみが適用していた。
【0007】
アプリケーションプログラムにおいて、ハードディスクにアクセスする読み書き部分は複数個所に分散されている。この分散された読み書き部分にそれぞれ準備処理を埋め込む必要があるため、アプリケーションプログラムを大幅に書き変える必要があった。従って、書き変える時間がかかり暗号装置をすぐには使えなかった。また、プログラムサイズが増えてしまっていた。そして、暗号装置を持ったコンピュータでは書き直したアプリケーションプログラムを使い、持たないものでは書き変えていないアプリケーションプログラムを使うという管理が必要であった。また、暗号化や復号を行うたびに準備処理を実行していたため、オーバーヘッドが大きかった。暗号化装置のコストパフォーマンスは改善してきているが、これらの問題があるために暗号化装置の利用は限定されていた。
【0008】
本発明は、上述のような課題を解決するためになされたもので、その目的はアプリケーションプログラムを書き換えることなく暗号装置により暗号化や復号を行うことができる情報処理装置及び情報処理方法を得るものである。
【課題を解決するための手段】
【0009】
本発明に係る情報処理装置は、オペレーティングシステムとアプリケーションプログラムを有する中央処理装置と、内部バスを介して前記中央処理装置に接続された記憶装置と、前記内部バスを介して前記中央処理装置に接続され、耐タンパ性を持つ暗号装置とを備え、前記オペレーティングシステムは、前記暗号装置を準備完了状態にする準備処理を行う準備処理部と、前記記憶装置に対して読み書きを行うアクセスルーチンと、準備完了状態の前記暗号装置に暗号化又は復号を行わせる暗号化・復号処理部とを有し、前記アプリケーションプログラムから書き込み指示が出されると、前記アクセスルーチンが前記暗号化・復号処理部に平文データを送り、前記暗号化・復号処理部が前記暗号装置にその平文データを暗号化させて暗号化データを得て、前記アクセスルーチンがその暗号化データを前記記憶装置に書き込み、前記アプリケーションプログラムから読み出し指示が出されると、前記アクセスルーチンが暗号化データを前記記憶装置から読み出して前記暗号化・復号処理部に送り、前記暗号化・復号処理部が前記暗号装置にその暗号化データを復号させる。
【発明の効果】
【0010】
本発明により、アプリケーションプログラムを書き換えることなく暗号装置により暗号化や復号を行うことができる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施の形態に係る情報処理装置を示す図である。
【図2】本発明の実施の形態に係る情報処理方法のフローチャートである。
【発明を実施するための形態】
【0012】
図1は、本発明の実施の形態に係る情報処理装置を示す図である。コンピュータ1内において、CPU2(Central Processing Unit)にHDD3(Hard Disk Drive)と暗号装置4が内部バス5を介して接続されている。なお、HDD3や暗号装置4をコンピュータ1外部に設けてもよい。
【0013】
CPU2は、OS6(Operating System)と、アプリケーションプログラム7と、キャッシュメモリ8とを有する。ここで、OS6は、キーボード入力や画面出力といった入出力機能やディスクやメモリの管理など、多くのアプリケーションプログラムから共通して利用される基本的な機能を提供し、コンピュータ1全体を管理するソフトウェアである。アプリケーションプログラム7は、HDD3やキャッシュメモリ8からデータを読み出して演算を実施し、その結果をHDD3やキャッシュメモリ8に書き込む。
【0014】
暗号装置4は、暗号化する時と復号する時に同じ秘密鍵を利用する共通鍵暗号方式を採用している。また、暗号装置4は、物理的又は論理的に内部の情報を読み取られることに対する耐性である耐タンパ性を持つ。これにより、CPU2とは別に暗号装置4上のみで鍵管理及び暗号処理が可能であるため、秘密鍵が盗まれるのを防ぐことができる。また、バックアップ用として、耐タンパ性を持つICカード9に秘密鍵を記憶させてもよい。
【0015】
OS6は、HDD3に対して読み書きを行うHDDアクセスルーチン10と、暗号装置4を使用する暗号装置アクセスルーチン11とを有する。暗号装置アクセスルーチン11は、暗号装置4を準備完了状態(Ready)にする準備処理を準備処理部12と、準備完了状態の暗号装置4に暗号化又は復号を行わせる暗号化・復号処理部13とを有する。ここで、準備完了状態とは、暗号化・復号処理部13からの指示を受けて暗号装置4が暗号化又は復号を行うことができる状態のことである。準備処理部12は、初期化部14と、暗号装置検出部15と、通信路確立部16と、ログイン部17と、鍵検出部18と、鍵指定部19とを有する。
【0016】
続いて、暗号装置アクセスルーチンの動作を説明する。図2は、暗号装置アクセスルーチンの動作を示すフローチャートである。
【0017】
まず、初期化部14は、内部バス5に接続された暗号装置4を使用するための暗号装置アクセスルーチン11を初期化する(ステップS1)。次に、暗号装置検出部15は、内部バス5に接続された暗号装置4を検出する(ステップS2)。
【0018】
次に、通信路確立部16は、検出した暗号装置4との通信路(セッション)を確立する(ステップS3)。その後に、ログイン部17は暗号装置4へログインする(ステップS4)。暗号装置4は、セキュリティ上の問題から、PIN(Personal Identification Number)を入れてログインしないと使えないようになっている。
【0019】
次に、ログインした暗号装置4の秘密鍵を鍵検出部18が検出する(ステップS5)。この検出した秘密鍵のうち暗号化に使用する1つを鍵指定部19が指定し、初期化する(ステップS6)。即ち、暗号化にしようする秘密鍵をOS6が参照するパラメータの1つとして予め指定する。
【0020】
ここまでの準備処理部12による準備処理(ステップS1〜S6)は、コンピュータ1の電源を入れた時にOS6を起動するまでのブート時に1回だけ行われる。それ以降の暗号装置4による暗号化や復号の際には行われない。
【0021】
次に、暗号化・復号処理部13が、準備完了状態の暗号装置4に暗号化又は復号を行わせる(ステップS7)。暗号化又は復号が終わった後に、暗号装置4との通信路をクローズする。(ステップS8)。
【0022】
続いて、上記の情報処理装置を用いた情報処理方法を説明する。まず、OS6のブート時に、準備処理部12が準備処理を行って暗号装置4を準備完了状態にする。
【0023】
次に、アプリケーションプログラム7から書き込み指示が出されると、HDDアクセスルーチン10が、HDD3のヘッドを対象セクタに移動するコマンドをHDD3に送る。なお、ファイルとHDD3上の物理的な位置はPile Allocation Table (FAT)のようなテーブルで結びつけられている。次に、HDDアクセスルーチン10が、暗号化のコマンドを暗号装置4に送ると共に、平文データをキャッシュメモリ8から読み出して暗号化・復号処理部13に送る。次に、暗号化・復号処理部13が、秘密鍵を用いて準備完了状態の暗号装置4にその平文データを暗号化させて暗号化データを得る。次に、HDDアクセスルーチン10は、ファイルの書き込み開始位置となるセクタを探し、そのセクタから暗号化データをHDD3に書き込む。
【0024】
一方、アプリケーションプログラム7から読み出し指示が出されると、HDDアクセスルーチン10が、HDD3のヘッドを対象セクタに移動するコマンドと読み出し実施命令をHDD3に送り、暗号化データをHDD3から読み出す。次に、HDDアクセスルーチン10は、復号のコマンドを暗号装置4に送ると共に、読み出した暗号化データを暗号化・復号処理部13に送る。次に、暗号化・復号処理部13が、秘密鍵を用いて準備完了状態の暗号装置4にその暗号化データを復号させる。次に、HDDアクセスルーチン10が、復号された平文データをキャッシュメモリ8に書き込む。
【0025】
以上説明したように、本実施の形態では、OS6が、アプリケーションプログラム7からの読み書き指示に応じて、暗号装置4に暗号化や復号を行わせる。これにより、アプリケーションプログラム7を書き換えることなく暗号装置4により暗号化や復号を行うことができる。
【0026】
また、暗号装置4を準備完了状態にする準備処理は、OS6のブート時に1回だけ行われ、暗号装置4による暗号化や復号の際には行われない。これにより、暗号化や復号のたびに準備処理が行われていた従来技術に比べて、オーバーヘッドを小さくすることができる。
【0027】
また、秘密鍵をICカード9に記憶させることにより、秘密鍵を安全にバックアップすることができる。ただし、ICカード9に限らず、耐タンパ性を持つ外部デバイスに秘密鍵を記憶させてもよい。
【0028】
また、CPU2は他のアプリケーションプログラムも有するが、特定のアプリケーションプログラム7がHDD3に書き込むデータのみ暗号化することができる。即ち、幾つかの特定のアプリケーションプログラムが書き込むデータは暗号化可能であるが、他のアプリケーションプログラムが書き込むデータは暗号化できないようにすることができる。この場合は、暗号化するアプリケーションプログラム7の名称を書いたテーブルを予め作成し、書き込み指示を受けたHDDアクセスルーチン10が、テーブルを検索し、暗号化するアプリケーションプログラム7からの指示であれば暗号化を行う。
【0029】
なお、本実施の形態では、HDD3に暗号化データを記憶させているが、これ限らずSSD(Solid State Drive)などの他の記憶装置を用いてもよい。また、CPU2のキャッシュメモリ8から平文データを読み出しているが、コンピュータ1内に別途設けた記憶部RAMから読み出してもよい。
【符号の説明】
【0030】
2 CPU(中央処理装置)
3 HDD(記憶装置)
4 暗号装置
5 内部バス
6 OS(オペレーティングシステム)
7 アプリケーションプログラム
9 ICカード(外部デバイス)
10 HDDアクセスルーチン(アクセスルーチン)
12 準備処理部
13 暗号化・復号処理部
15 暗号装置検出部
16 通信路確立部
17 ログイン部
18 鍵検出部
19 鍵指定部

【特許請求の範囲】
【請求項1】
オペレーティングシステムとアプリケーションプログラムを有する中央処理装置と、
内部バスを介して前記中央処理装置に接続された記憶装置と、
前記内部バスを介して前記中央処理装置に接続され、耐タンパ性を持つ暗号装置とを備え、
前記オペレーティングシステムは、
前記暗号装置を準備完了状態にする準備処理を行う準備処理部と、
前記記憶装置に対して読み書きを行うアクセスルーチンと、
準備完了状態の前記暗号装置に暗号化又は復号を行わせる暗号化・復号処理部とを有し、
前記アプリケーションプログラムから書き込み指示が出されると、前記アクセスルーチンが前記暗号化・復号処理部に平文データを送り、前記暗号化・復号処理部が前記暗号装置にその平文データを暗号化させて暗号化データを得て、前記アクセスルーチンがその暗号化データを前記記憶装置に書き込み、
前記アプリケーションプログラムから読み出し指示が出されると、前記アクセスルーチンが暗号化データを前記記憶装置から読み出して前記暗号化・復号処理部に送り、前記暗号化・復号処理部が前記暗号装置にその暗号化データを復号させることを特徴とする情報処理装置。
【請求項2】
前記準備処理部は、前記オペレーティングシステムのブート時に1回だけ前記準備処理を行うことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記準備処理部は、
前記内部バスに接続された前記暗号装置を使用するためのアクセスルーチンを初期化する初期化部と、
前記暗号装置を検出する暗号装置検出部と、
検出した前記暗号装置との通信路を確立する通信路確立部と、
前記通信路を確立した後に前記暗号装置へログインするログイン部と、
ログインした前記暗号装置の秘密鍵を検出する鍵検出部と、
検出した秘密鍵のうち1つを指定する鍵指定部とを有することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
耐タンパ性を持ち、指定した前記秘密鍵を記憶する外部デバイスを更に備えることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
オペレーティングシステムとアプリケーションプログラムを有する中央処理装置と、内部バスを介して前記中央処理装置に接続された記憶装置と、前記内部バスを介して前記中央処理装置に接続され、耐タンパ性を持つ暗号装置とを備えた情報処理装置を用いた情報処理方法であって、
前記オペレーティングシステムの準備処理部により、前記暗号装置を準備完了状態にするステップと、
前記アプリケーションプログラムから書き込み指示が出されると、前記オペレーティングシステムのアクセスルーチンが前記オペレーティングシステムの暗号化・復号処理部に平文データを送るステップと、
前記暗号化・復号処理部が準備完了状態の前記暗号装置にその平文データを暗号化させて暗号化データを得るステップと、
前記アクセスルーチンがその暗号化データを前記記憶装置に書き込むステップとを有することを特徴とする情報処理方法。
【請求項6】
オペレーティングシステムとアプリケーションプログラムを有する中央処理装置と、内部バスを介して前記中央処理装置に接続された記憶装置と、前記内部バスを介して前記中央処理装置に接続され、耐タンパ性を持つ暗号装置とを備えた情報処理装置を用いた情報処理方法であって、
前記オペレーティングシステムの準備処理部により、前記暗号装置を準備完了状態にするステップと、
前記アプリケーションプログラムから読み出し指示が出されると、前記オペレーティングシステムのアクセスルーチンが暗号化データを前記記憶装置から読み出して前記オペレーティングシステムの暗号化・復号処理部に送るステップと、
前記暗号化・復号処理部が準備完了状態の前記暗号装置にその暗号化データを復号させるステップとを有することを特徴とする情報処理方法。

【図1】
image rotate

【図2】
image rotate