説明

データ共有装置

【課題】暗号化及び復号化の処理速度を低下させることなく、グループで共有するデータを強い暗号強度の暗号文データに暗号化できるデータ共有装置を提供する。
【解決手段】データ共有装置1は、複数の電子キー2と情報処理装置3とを有し、電子キー2は、各電子キー2共通の暗号化ユーザ鍵が記憶された記憶手段12を備え、情報処理装置3は、ソルトデータと電子キー2から読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて暗号文データを作成し、ソルトデータを暗号文データに付加する。そして、暗号文データに付加されているソルトデータを抽出し、そのソルトデータと電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて暗号文データから平文データを作成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の利用者からなるグループでデータを共有するデータ共有装置に関し、特に各利用者に配布された電子キーのうちの一つを使用して暗号化したデータをグループで共有し、各利用者は、自己の電子キーが暗号化に使用した電子キーとは別の電子キーであってもその自己の電子キーを使用してデータを復号化して利用することができるデータ共有装置に関する。
【背景技術】
【0002】
従来より、データを暗号化又は復号化する情報処理装置及び情報処理装置に着脱自在な暗号キーを備えた暗号化装置又は復号化装置であって、同一グループの暗号キーであれば、いずれかの暗号キーを用いて暗号化装置により暗号化した暗号文データを、暗号化に使用した暗号キー以外の暗号キーを用いて復号化装置により復号化できる技術が提案されている(例えば、特許文献1を参照)。
【0003】
上記従来技術によれば、暗号キーは、暗号キーを操作するためのアプリケーションプログラム、暗号キーの使用可否を規定するグループIDを記憶したメモリと、メモリに記憶されたグループIDを暗号化関数の初期値とし暗号化関数に従って擬似乱数を発生する擬似乱数発生器とを備えている。
【0004】
そして、暗号化装置の情報処理装置は、暗号キーの装着により暗号キーのメモリからアプリケーションプログラムを読み出して起動し、アプリケーションプログラムの処理によって、平文データのデータサイズを暗号キーに送信し、暗号キーは、情報処理装置から受信したデータサイズに応じた疑似乱数を発生させて情報処理装置に送信する。
【0005】
暗号化装置の情報処理装置は、暗号キーから送られてくる擬似乱数と平文データとを排他的論理和演算することにより暗号文データを作成し、暗号文ファイルのデータ領域に暗号文データを書き込むとともに、暗号文ファイルのヘッダ領域に暗号キーのメモリから読み出したグループIDを付加するように構成されている。
【0006】
そして、復号化装置の情報処理装置は、暗号キーが装着されたときに暗号キーのメモリからアプリケーションプログラムを読み出して起動し、そのアプリケーションプログラムの処理によって、暗号文ファイルに含まれる暗号文データのデータサイズを暗号キーに送信し、暗号キーは、そのデータサイズに応じた疑似乱数を発生させ、メモリから読み出したグループIDと共に情報処理装置に送信する。
【0007】
情報処理装置は、暗号キーから送られてくるグループIDが暗号文ファイルに含まれているグループIDと一致する場合に、暗号キーから送られてくる疑似乱数と暗号文データとを排他的論理和演算して平文データを作成する処理を行う。
【0008】
【特許文献1】特開2005−130028号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
上記従来技術の場合、暗号キーのメモリに記憶されたグループIDを疑似乱数発生器が有する暗号化関数の初期値に採用していることから、グループが同一であれば、各暗号キーが有するグループIDも同一になる。したがって、同一のグループで共有する暗号文ファイルの暗号文データは、いずれも同一のグループIDで暗号化されたものである。したがって、同一のグループで共有する複数の暗号文データをサンプルとして暗号解析をすることにより容易に解読されるおそれがある。
【0010】
また、上記従来技術では、暗号キーの内部で平文データと同一のデータ量を有する疑似乱数列を生成し、その疑似乱数列を暗号キーから情報処理装置に送信し、情報処理装置で平文データと疑似乱数列を排他的論理和演算することによって暗号文データを作成している。したがって、例えば画像や動画のようにデータ量が膨大な場合に、暗号キーから情報処理装置に送信する疑似乱数列も膨大な量になり、暗号化および復号化の処理速度が低下するおそれがある。
【0011】
本発明は、これらの問題に鑑みなされたものであり、その目的は、暗号化及び復号化の処理速度を低下させることなく、グループで共有するデータを強い暗号強度の暗号文データに暗号化できるデータ共有装置を提供することにある。
【課題を解決するための手段】
【0012】
上記課題を解決する請求項1に記載の発明によるデータ共有装置は、複数の電子キーと、該複数の電子キーのうちのいずれか一つを使用して平文データを暗号文データに暗号化し、前記複数の電子キーのうちのいずれか一つを使用して前記暗号文データを前記平文データに復号化する情報処理装置とを有するデータ共有装置において、前記電子キーは、各電子キー共通の暗号化ユーザ鍵が記憶された記憶手段を備え、前記情報処理装置は、平文データを特定した暗号化の指示により、ユニークな情報であるソルトデータを作成し、該ソルトデータと前記電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、該暗号鍵を用いて所定の暗号アルゴリズムにより平文データから暗号文データを作成し、該暗号文データに前記ソルトデータを付加する暗号化手段と、暗号文データを特定した復号化の指示により、該暗号文データに付加されているソルトデータと前記電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、該暗号鍵を用いて所定の暗号アルゴリズムにより暗号文データから平文データを作成する復号化手段と、を備えることを特徴とする。
【0013】
請求項2に記載の発明は、請求項1に記載のデータ共有装置において、 前記電子キーの記憶手段には、該電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーが予め記憶されており、情報処理装置は、
前記電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーを記憶する記憶手段と、記憶手段に予め記憶された共有コード及びシリアルナンバーと、前記電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致することによってデータの暗号化及び復号化を許可する認証手段を有し、暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする。
【0014】
請求項3に記載の発明は、請求項1に記載のデータ共有装置において、電子キーの記憶手段には、該電子キーの所有者である本人認証を行うための確認コードが予め記憶されており、情報処理装置は、該情報処理装置に入力された確認コードと前記電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化を許可する認証手段を有し、暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする。
【0015】
請求項4に記載の発明は、請求項1に記載のデータ共有装置において、電子キーの記憶手段には、該電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバー、並びに該電子キーの所有者である本人認証を行うための確認コードが予め記憶されており、情報処理装置は、電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーを記憶する記憶手段と、記憶手段に予め記憶された共有コード及びシリアルナンバーと、前記電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致し、かつ前記情報処理装置に入力された確認コードと前記電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化を許可する認証手段を有し、暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする。
【0016】
請求項5に記載の発明は、請求項3または4に記載のデータ共有装置において、電子キーの記憶手段には、前記確認コードをハッシュ関数により変換したハッシュ値が予め記憶されており、情報処理装置の認証手段は、該情報処理装置に入力された確認コードをハッシュ関数によりハッシュ値に変換し、該ハッシュ値を更にハッシュ関数により変換すると共に、電子キーから読み出した確認コードのハッシュ値をハッシュ関数により変換するハッシュ変換手段を有し、情報処理装置に入力された確認コードを前記ハッシュ変換手段により変換したハッシュ値と、前記電子キーから読み出されて前記ハッシュ変換手段により変換した確認コードのハッシュ値とが一致することによってデータの暗号化及び復号化を許可することを特徴とする。
【発明の効果】
【0017】
請求項1に記載したデータ共有装置の発明によれば、暗号化手段は、ユニークなソルトデータを作成し、そのソルトデータと電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて平文データの暗号化を行い、暗号文データを作成する。そして、暗号鍵の作成に使用したソルトデータを暗号文データに付加する処理を行う。
【0018】
したがって、平文データの暗号化に使用する暗号鍵を暗号文データごとに相違させることができ、同一の暗号鍵を使用して暗号化した暗号文データよりも暗号強度の強い暗号文データを作成することができ、暗号文データの解読困難性を高めることができる。
【0019】
そして、復号化手段は、暗号鍵の作成に使用され暗号文データに付加されているソルトデータと、電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて暗号文データの復号化を行い、平文データを作成する。
【0020】
したがって、共通の暗号化ユーザ鍵を有する電子キーであれば、暗号化に使用した電子キーとは異なる電子キーであっても、暗号文データの作成に用いた暗号鍵と同一の暗号鍵を作成することができ、暗号文データを復号化して平文データを作成することができる。
【0021】
また、暗号鍵や、暗号鍵の作成に必要な暗号化ユーザ鍵は、情報処理装置には記憶されないので、情報処理装置の解析等による鍵情報の漏洩を防ぎ、データの解読等を防止でき、高い安全性を有する。
【0022】
請求項2に記載の発明によると、情報処理装置の記憶手段に予め記憶された共有コード及びシリアルナンバーと、電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致することによってデータの暗号化及び復号化が許可され、かかる暗号化及び復号化が許可された状態で、暗号化手段による暗号化と、復号化手段による復号化が可能となる。
【0023】
したがって、情報処理装置に予め記憶された共有コードと電子キーに予め記憶された共有コードとが不一致の場合、或いは情報処理装置に予め記憶されたシリアルナンバーと電子キーに予め記憶されたシリアルナンバーとが不一致の場合には、暗号化手段による平文データの暗号化と、復号化手段による暗号文データの復号化を行うことはできない。
【0024】
したがって、暗号化ユーザ鍵が同一の電子キーであっても、情報処理装置に登録されていないグループに属する電子キーや情報処理装置に登録されていないシリアルナンバーを有する電子キーによる暗号化処理や復号化処理の実行を防ぐことができる。
【0025】
請求項3に記載の発明によると、情報処理装置に入力された確認コードと電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化が許可され、かかる暗号化及び復号化が許可された状態で、暗号化手段による暗号化と、復号化手段による復号化が可能となる。
【0026】
したがって、情報処理装置に入力された確認コードと電子キーに記憶されている確認コードとが不一致の場合には、暗号化手段による平文データの暗号化と、復号化手段による暗号文データの復号化を行うことはできない。
【0027】
したがって、暗号化ユーザ鍵が同一の電子キーであっても、電子キーに記憶されている確認コードと異なる確認コードが情報処理装置に入力された場合に暗号化処理や復号化処理が実行されるのを防ぐことができる。
【0028】
請求項4に記載の発明によると、情報処理装置に予め記憶された共有コード及びシリアルナンバーと、電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致し、かつ情報処理装置に入力された確認コードと電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化が許可され、かかる暗号化及び復号化が許可された状態で、暗号化手段により暗号化が行われ、復号化手段により復号化が行われる。
【0029】
したがって、情報処理装置に予め記憶された共有コードと、電子キーに予め記憶された共有コードとが不一致の場合や、情報処理装置に予め記憶されたシリアルナンバーと、電子キーに予め記憶されたシリアルナンバーとが不一致の場合、あるいは情報処理装置に入力された確認コードと電子キーに記憶されている確認コードとが不一致の場合等、上記の少なくとも一つが不一致の場合には、データの暗号化及び復号化を行うことはできない。
【0030】
したがって、暗号化ユーザ鍵が同一の電子キーであっても、情報処理装置に予め記憶された共有コード及びシリアルナンバーと異なる共有コード及びシリアルナンバーを有する電子キーによって暗号化処理や復号化処理が実行されたり、電子キーに記憶されている確認コードと異なる確認コードが情報処理装置に入力された場合に暗号化処理や復号化処理が実行されるのを防ぐことができる。
【0031】
請求項5に記載の発明によると、電子キーの記憶手段には、確認コードがハッシュ関数により変換されたハッシュ値が予め記憶されており、情報処理装置の認証手段は、情報処理装置に入力されてハッシュ変換手段により2回変換された確認コードのハッシュ値と、電子キーから読み出されてハッシュ変換手段により1回変換された確認コードのハッシュ値とが一致する場合には、データの暗号化及び復号化を許可する。
【0032】
したがって、電子キーの記憶手段に、確認コードをそのまま記憶させるのではなく、符号化して記憶させておくことができ、暗号文データの解読困難性を高めることができる。
【発明を実施するための最良の形態】
【0033】
次に、本発明の実施の形態に係わるデータ共有装置1について説明する。
【0034】
図1は、本実施の形態に係わるデータ共有装置1の構成を説明する図であり、図1(a)は全体図、図1(b)は、要部拡大図である。データ共有装置1は、図1(a)に示すように、電子キーであるUSBトークン2と、情報処理装置であるパーソナルコンピュータ3とから構成されている。
【0035】
USBトークン2は、ICチップ11やメモリ12等を収容した筐体13と、筐体13から突出してパーソナルコンピュータ3のUSBスロット3aに差し込み可能なコネクタ14とを有している。USBトークン2のコネクタ14は、パーソナルコンピュータ3のUSBスロット3aに差し込むことによってパーソナルコンピュータ3と電気的に接続されて、ICチップ11及びメモリ12との間でデータを送受信できるようになっている。
【0036】
USBトークン2のメモリ12には、暗号化ユーザ鍵、シリアルナンバー、確認コード、共有コード、規格コード等が記憶される。
【0037】
暗号化ユーザ鍵は、パーソナルコンピュータ3内で暗号鍵を作成するために必要な鍵情報の一つであり、同一のグループを構成する各利用者に配布されるUSBトークン2には全て同一の鍵情報が設定され、各グループごとに暗号化ユーザ鍵の鍵情報が異なるように設定されている。
【0038】
シリアルナンバーは、USBトークン2を識別するために各USBトークン2別に各々割り当てられるユニークな番号であって、アルファベットと数字の組み合わせによって構成されており、外部から容易に視認できるようにUSBトークン2の筐体13にも印刷等により表示されている。
【0039】
確認コードは、USBトークン2の正当な所有者であることを確認するために使用されるものであり、USBトークン2の所有者自らが決定しその所有者のみが知っている情報である。確認コードは、USBトークン2をパーソナルコンピュータ3に接続した状態でパーソナルコンピュータ3から書き込むことができ、任意に書き換えることができるようになっている。
【0040】
確認コードは、パーソナルコンピュータ3に入力されると、パーソナルコンピュータ3内でハッシュ関数によりハッシュ値に変換されてUSBトークン2に送信され、USBトークン2のメモリ12に書き込まれ、パーソナルコンピュータ3には記憶されない。なお、パーソナルコンピュータ3によって確認コードが書き込まれる前は、各USBトークン2で共通の仮確認コードがデフォルトとして書き込まれている。
【0041】
共有コードは、USBトークン2が属するグループを規定する情報であり、USBトークン2が同一のグループに属するか否かをパーソナルコンピュータ3側で判断する際に使用されるものである。共有コードが異なる、いわゆる異グループのUSBトークン2を使用してデータの復号化はできない。
【0042】
規格コードは、パーソナルコンピュータ3に接続されたUSBトークン2が、データ共有装置1のUSBトークン2であるか否かをパーソナルコンピュータ3側で識別する際に使用される情報である。
【0043】
パーソナルコンピュータ3は、演算処理等を行うCPU、ROMやRAMなどの内部メモリ、ハードディスクなどの外部記憶装置等を有するコンピュータ本体3Aと、キーボードやマウス等からなる入力装置3Bと、CRTや液晶ディスプレイなどの表示装置3Cとを有しており、アプリケーションプログラムが実行可能にインストールされている。
【0044】
図2は、アプリケーションプログラムによってパーソナルコンピュータ3内に実現される機能を説明するブロック図である。アプリケーションプログラムの実行によって、パーソナルコンピュータ3内には、管理者情報登録手段21、ユーザ情報登録手段22、USBトークン接続監視手段23、認証手段24、暗号鍵作成手段25、暗号化手段26、復号化手段27、ユーザデータベース28がその内部機能として実現される。
【0045】
管理者情報登録手段21は、管理者情報の登録処理を行うものであり、USBトークン2がパーソナルコンピュータ3に初めて接続されてUSBトークン2の規格コードと共有コードが認証されると、パーソナルコンピュータ3の表示装置3Cに管理者情報登録画面を表示させる。そして、その管理者情報登録画面にしたがって入力装置22から入力された氏名と、認証手段24によりUSBトークンから取得したシリアルナンバーとを、管理者氏名及び管理者USBトークンのシリアルナンバーとして互いに関連付けした形でユーザデータベース28に記憶させる。それから、管理者情報登録画面にしたがって入力された確認コードを、ハッシュ関数によりハッシュ値に変換してUSBトークン2に送信し、USBトークン2のメモリ12に記憶させる処理を行う。図3は、管理者情報登録手段21によってユーザデータベース28に作成されるユーザデータの構成を説明する図である。ユーザデータベース28には、図3に示すように、登録日、シリアルナンバー、氏名、共有コードからなるユーザデータが記憶される。
【0046】
ユーザ情報登録手段22は、管理者からの入力と、USBトークン2の使用者であって管理者以外の者であるユーザからの入力とに基づいてユーザ情報の登録処理を行う。ユーザ情報の登録処理では、最初に管理者からの入力によりユーザの氏名とシリアルナンバーが登録され、次いで、ユーザからの入力により確認コードが登録される。
【0047】
ユーザ情報登録手段22は、ユーザの氏名とシリアル番号の登録では、管理者USBトークン2を用いた管理者からの入力に応じて表示装置3Cにユーザ情報登録画面を表示させ、ユーザ情報登録画面に従って入力手段3Bから入力されたユーザ氏名とユーザUSBトークン2のシリアルナンバーとを互いに関連付けた形でユーザデータベース28に記憶させる。図4は、表示装置3Cに表示されるユーザ情報登録画面の一例を示すものである。ユーザ情報登録画面には、管理者及びユーザの氏名、シリアル番号、登録日、後述する許可フラグのセット禁止か否かがデータテーブルとして表示される。このユーザ情報の登録及び削除は管理者によって適宜行うことができる。
【0048】
次に、確認コードの登録は、ユーザUSBトークン2がパーソナルコンピュータ3に初めて接続されたときに行われる。ユーザUSBトークン2がパーソナルコンピュータ3に初めて接続されたか否かは、ユーザ情報がパーソナルコンピュータ3内に登録されているか否かによって判断し、未登録の場合には初めての接続と判断して表示装置3Cに確認コード登録画面を表示させる。そして、確認コード登録画面にしたがってユーザから入力された確認コードを、ハッシュ関数によりハッシュ値に変換してUSBトークン2に送信し、USBトークン2のメモリ12に記憶させる処理を行う。
【0049】
USBトークン接続監視手段23は、USBトークン2がパーソナルコンピュータ3に接続されているか否かを監視し、後述する許可フラグがセットされた状態でパーソナルコンピュータ3からUSBトークン2が切断された場合には、許可フラグをクリアする処理を行う。
【0050】
認証手段24は、USBトークン2自体の有効性を認証するUSBトークン認証処理と、USBトークン2が所有者本人のUSBトークン2であることを認証する本人認証処理とを行う。
【0051】
暗号化手段26は、USBトークン2のメモリ12に記憶されている暗号化ユーザ鍵とユニークな情報であるソルトデータとを用いて暗号鍵を作成する処理、その暗号鍵を使用して所定の暗号アルゴリズムにより平文データを暗号化して暗号文データを作成する処理、その暗号文データにソルトデータを付加する処理を行う。
【0052】
暗号化手段26は、USBトークン2から取得した暗号化ユーザ鍵とソルトデータとを排他的論理和演算(EOR)して暗号鍵を作成し、平文データの暗号化処理を開始する時の日付時刻情報をハッシュ関数により変換してソルトデータを作成する。尚、ソルトデータを作成する方法は、上記日付時刻情報に基づくものに限定されるものではなく、例えば、暗号化手段26が有する疑似乱数生成器により生成した疑似乱数に基づいて作成してもよい。
【0053】
ソルトデータの暗号文データへの付加は、暗号化手段26が暗号文データをデータ領域に有すると共に暗号鍵の作成に使用したソルトデータをヘッダ領域に有する暗号文ファイルを作成することによって行われる。
【0054】
復号化手段27は、暗号文データの作成に使用して暗号文ファイルのヘッダ領域に書き込まれているソルトデータと、USBトークン2のメモリ12に記憶されている暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を使用して所定の暗号アルゴリズムにより暗号文ファイルの暗号文データを復号化して平文データを作成し、その平文データをデータ領域に有する平文ファイルを作成する処理を行う。
【0055】
次に、上記構成を有するデータ共有装置1の一連の動作について以下に説明する。
(USBトークン認証)
まず、USBトークン2のコネクタ14がパーソナルコンピュータ3のUSBスロット3aに差し込まれて、USBトークン接続監視手段23によりUSBトークン2の接続が検出されると、認証手段24によりUSBトークン認証処理が実行される。図5は、USBトークン認証処理を説明するフローチャートである。
【0056】
USBトークン認証処理では、まず最初にUSBトークン2が有する規格コードの認証が行われる。規格コードの認証では、認証手段24からUSBトークン2に規格コード取得要求がなされる。USBトークン2は、認証手段24からの規格コード取得要求に対して、USBトークン2のメモリ12に記憶されている規格コードを読み出して認証手段24に送信する。認証手段24は、USBトークン2から受信した規格コードと、パーソナルコンピュータ3のユーザデータベースに予め設定されている基準規格コードとが一致するか否かを判断する(ステップS101)。
【0057】
そして、規格コードが不一致であると判断した場合には(ステップS101でNO)、そのUSBトークンがデータ共有装置1では使用できないUSBトークンであるとして認証処理を中止し、パーソナルコンピュータ3に差し込まれたUSBトークンは使用できない旨のエラーメッセージを表示装置3Cに表示する(ステップS107)。
【0058】
一方、規格コードが一致すると判断した場合には(ステップS101でYES)、次に共有コードの認証が行われる。共有コードの認証では、認証手段24からUSBトークン2に対して共有コード取得要求がなされる。USBトークン2は、認証手段24からの共有コード取得要求に対して、USBトークン2のメモリ12に記憶されている共有コードを読み出して認証手段24に送信する。
【0059】
認証手段24は、USBトークン2から受信した共有コードと、パーソナルコンピュータ3のユーザデータベースに予め登録されている共有コードとが一致するか否かを判断する(ステップS102)。
【0060】
そして、共有コードが不一致であると判断した場合には(ステップS102でNO)、そのUSBトークン2が別グループに属するUSBトークン2であるとして認証処理を中止し、パーソナルコンピュータ3に差し込まれたUSBトークン2は使用できない旨のエラーメッセージを表示装置3Cに表示する(ステップS107)。
【0061】
一方、共有コードが一致すると判断した場合には(ステップS102でYES)、次にシリアルナンバーの認証が行われる。シリアルナンバーの認証では、認証手段24からUSBトークン2に対してシリアルナンバー取得要求がなされる。USBトークン2は、認証手段24からのシリアルナンバー取得要求に対して、USBトークン2のメモリ12に記憶されているシリアルナンバーを読み出し、認証手段24に送信する。
【0062】
認証手段24は、USBトークン2から取得したシリアルナンバーがユーザデータベースに登録されているか否かを判断する(ステップS103)。そして、USBトークン2から受信したシリアルナンバーがユーザデータベース28に未登録である場合には(ステップS103でNO)、管理者情報が登録されているか否かを判断する(ステップS105)。管理者情報が登録されているか否かは、ユーザデータベース28に管理者の氏名と管理者が所有するUSBトークン2のシリアルナンバーが登録されているか否かに基づいて判断される。
【0063】
そして、管理者情報が既に登録されている場合には(ステップS105でYES)、そのUSBトークン2のシリアルナンバーが管理者USBトークン2のシリアルナンバーと異なることから管理者USBトークン2ではなく、且つユーザデータベース28に未登録のシリアルナンバーであるので、未登録のUSBトークン2であるとして、認証処理を中止し、パーソナルコンピュータ3に差し込まれたUSBトークン2は使用できない旨のエラーメッセージを表示装置3Cに表示する(ステップS107)。
【0064】
また、管理者情報が登録されていない場合には(ステップS105でNO)、そのUSBトークン2は管理者USBトークン2であるとみなして、上述の管理者情報登録手段21による管理者登録処理が実行される(ステップS108)。
【0065】
一方、USBトークン2から受信したシリアルナンバーがユーザデータベースに登録されている場合には(ステップS103でYES)、本人認証処理に移行する(ステップS104)。
【0066】
(本人認証)
図6は、本人認証処理を説明するフローチャートである。認証手段24は、USBトークン2に確認コード取得要求を行い(ステップS201)、USBトークン2は、認証手段24からの確認コード取得要求に対して、USBトークン2のメモリ12に記憶されている確認コード(ハッシュ値)を読み出して認証手段24に送信する。認証手段24では、USBトークン2から取得した確認コード(ハッシュ値)を、ハッシュ関数により変換する(ステップS202)。したがって、かかるハッシュ関数により変換された後の確認コード(ハッシュ値)は、元の確認コードをハッシュ関数によって2回変換したハッシュ値となる。
【0067】
また、認証手段24は、パーソナルコンピュータ3の表示装置3Cに確認コード入力要求画面を表示させる(ステップS203)。そして、入力装置22から入力された確認コードをハッシュ関数により変換し、その変換後の確認コード(ハッシュ値)を更にもう一度ハッシュ関数により変換する(ステップS204)。
【0068】
そして、認証手段24は、USBトークン2から取得してハッシュ関数により変換した後の確認コード(ハッシュ値)と、入力装置22から入力されてハッシュ関数により2回変換された後の確認コード(ハッシュ値)とが同一であるか否かを判断する(ステップS205)。
【0069】
そして、両確認コードが同一である場合には(ステップS205でYES)、USBトークン2の所有者本人であると認証し、パーソナルコンピュータ3内の記憶手段に記憶されているデータの暗号化及び復号化を許可する許可フラグをセットする(ステップS206)。
【0070】
一方、両確認コード(ハッシュ値)が同一ではない場合には(ステップS205でNO)、確認コードを不一致と判断したエラー回数が予め設定された上限回数n(例えば3回)以上であるか否かを判断する(ステップS207)。ここで、エラー回数が上限回数n以上の場合には(ステップS207でYES)、入力装置23から確認コードを入力した者はUSBトークン2の所有者本人ではないとみなして、当該USBトークンによる許可フラグのセットを禁止する処理を行う(ステップS210)。
【0071】
また、エラー回数が上限回数nよりも少ない場合には(ステップS207でNO)、エラー回数に1を加算し(ステップS208)、確認コードの入力間違いである旨と加算後のエラー回数を表示するエラーメッセージを表示装置3Cに表示させ(ステップS209)、再度確認コードの入力を要求する。
【0072】
(暗号化処理)
図7は、暗号化手段26による暗号化処理の方法を説明するフローチャートである。暗号化手段26は、暗号化を希望する平文データを特定した暗号化指示の入力を受けると(ステップS301)、認証手段24によって許可フラグがセットされているか否かを判断する(ステップS302)。尚、暗号化の指示は、表示装置3Cの画面上で平文ファイルの上にカーソルを移動させて、マウスを右クリックして表示されるメニューの中から暗号化を選択したり、表示装置3Cのディスクトップ画面上に表示されている暗号化アイコンの上に平文ファイルをドラッグアンドドロップすることによって行うことができる。
【0073】
ここで許可フラグがセットされていない場合には(ステップS302でNO)、暗号化処理を終了し(ステップS308)、USBトークン2が未認証であるとのエラーメッセージを表示装置3Cに表示させる(ステップS309)。
【0074】
一方、許可フラグがセットされている場合には(ステップS302でYES)、USBトークン2から暗号化ユーザ鍵を取得する。暗号化手段26は、USBトークン2に暗号化ユーザ鍵取得要求を行い、USBトークン2は、暗号化手段26からの暗号化ユーザ鍵取得要求に対して、USBトークン2のメモリ12に記憶されている暗号化ユーザ鍵を読み出し、暗号化手段26に送信する。
【0075】
暗号化手段26は、USBトークン2から暗号化ユーザ鍵を受信して取得すると、ソルトデータを作成し(ステップS304)、ソルトデータと暗号化ユーザ鍵とに基づいて暗号鍵を作成し(ステップS305)、その暗号鍵を使用して所定の暗号アルゴリズムにより、平文ファイルの平文データを暗号化して暗号文データを作成する(ステップS306)。
【0076】
暗号化手段26は、疑似乱数生成器を備えており、暗号鍵に基づいて疑似乱数生成器により疑似乱数を生成し、その疑似乱数と平文データとを排他的論理和演算することによって暗号文データを作成する。この擬似乱数の生成と排他的論理和演算は、パーソナルコンピュータ3で行われるので、パーソナルコンピュータ3とUSBトークン2との間の通信時間に影響を受けることなく、迅速に暗号文データを作成することができる。
【0077】
そして、作成した暗号文データを暗号ファイルのデータ領域に書き込むと共に、暗号鍵の作成に使用したソルトデータを暗号ファイルのヘッダ領域に書き込み、暗号ファイルを作成する(ステップS307)。
【0078】
(復号化処理)
図8は、復号化手段27による復号化処理の方法を説明するフローチャートである。復号化手段27は、復号化を希望する暗号文データを特定した復号化指示の入力を受けると(ステップS401)、認証手段24によって許可フラグがセットされているか否かを判断する(ステップS402)。復号化指示の方法は、暗号化指示の方法と同様であるので、その説明を省略する。
【0079】
ここで、許可フラグがセットされていない場合には(ステップS402でNO)、復号化処理を終了し(ステップS408)、USBトークン2が未認証であるとのエラーメッセージを表示装置3Cに表示させる(ステップS409)。
【0080】
一方、許可フラグがセットされている場合には(ステップS402でYES)、USBトークン2から暗号化ユーザ鍵を取得する。復号化手段27は、USBトークン2に暗号化ユーザ鍵取得要求を行い、USBトークン2は、復号化手段27からの暗号化ユーザ鍵取得要求に対して、USBトークン2のメモリ12に記憶されている暗号化ユーザ鍵を読み出し、復号化手段27に送信する。
【0081】
復号化手段27は、USBトークン2から暗号化ユーザ鍵を受信して取得すると、暗号文ファイルのヘッダ領域からソルトデータを抽出し(ステップS404)、暗号文データを復号化するための暗号鍵を作成する(ステップS405)。
【0082】
暗号鍵は、USBトークン2から取得した暗号化ユーザ鍵と暗号文ファイルのヘッダ領域から抽出したソルトデータとを排他的論理和演算(EOR)することにより作成される。
【0083】
したがって、USBトークン2のシリアルナンバーと確認コードが異なっていても、換言すると、暗号化に使用したUSBトークン2と異なるUSBトークン2であっても、暗号化ユーザ鍵が同一であれば、暗号化に使用した暗号鍵と同一の暗号鍵を作成することができる。
【0084】
また、暗号化に使用したUSBトークン2の共有コードと復号化に使用したUSBトークン2の共有コードとが同一でない場合には、許可フラグがセットされないので、異なる暗号化ユーザ鍵によって暗号鍵が作成されてかかる暗号鍵により復号化処理が行われるのを防ぐことができる。
【0085】
復号化手段27は、暗号鍵を作成すると、その暗号鍵を使用して所定の暗号アルゴリズムにより、暗号文ファイルの暗号文データを復号化して平文データを作成する(ステップS406)。
【0086】
復号化手段27は、疑似乱数生成器を備えており、暗号鍵に基づいて疑似乱数生成器により疑似乱数を生成し、その疑似乱数と暗号文データとを排他的論理和演算することによって平文データを作成する。そして、平文データを平文ファイルのデータ領域に書き込み、平文ファイルを作成する(ステップS407)。
【0087】
上記構成を有するデータ共有装置1によれば、暗号化手段26は、ユニークなソルトデータを作成し、そのソルトデータとUSBトークン2から読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて平文データの暗号化を行い、暗号文データを作成する。そして、暗号鍵の作成に使用したソルトデータを暗号ファイルのヘッダ領域に書き込み、暗号文データに付加する処理を行う。
【0088】
これにより、平文データの暗号化に使用する暗号鍵を暗号文データごとに相違させることができ、同一の暗号鍵を使用して暗号化した暗号文データよりも暗号強度の強い暗号文データを作成することができ、暗号文データの解読困難性を高めることができる。
【0089】
そして、復号化手段27は、ソルトデータを暗号文ファイルのヘッダ領域から抽出し、その抽出したソルトデータと電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて暗号文データの復号化を行い、平文データを作成する。
【0090】
したがって、暗号化ユーザ鍵が共通する同一のグループに属するUSBトークン2であれば、暗号化に使用したUSBトークン2とは異なるUSBトークン2であっても、USBトークン認証及び本人認証を条件として、暗号文データの作成に用いた暗号鍵と同一の暗号鍵を作成することができ、暗号文データ復号化して平文データを作成することができる。
【0091】
また、暗号化手段26及び復号化手段27によって作成される暗号鍵や、その暗号鍵の作成に必要な暗号化ユーザ鍵は、パーソナルコンピュータ3には記憶されないので、パーソナルコンピュータ3の解析等による鍵情報の漏洩を防ぎ、暗号文データの解読を防止でき、高い安全性を有する。
【0092】
そして、暗号化処理と復号化処理は、パーソナルコンピュータ3側で行われるので、パーソナルコンピュータ3とUSBトークン2との間の通信速度がボトルネックにならず、データ共有装置1全体のスループットを向上させることができる。
【0093】
また、上記のデータ共有装置1によれば、ユーザデータベース27に予め記憶された共有コード及びシリアルナンバーがUSBトークン2から読み出した共有コード及びシリアルナンバーと相互に一致し、かつパーソナルコンピュータ3に入力された確認コードがUSBトークン2から読み出した確認コードと一致することによって、暗号化手段26及び復号化手段27によるデータの暗号化及び復号化が許可される。
【0094】
したがって、パーソナルコンピュータ3に予め記憶された共有コードと、USBトークン2に予め記憶された共有コードとが不一致の場合や、パーソナルコンピュータ3に予め記憶されたシリアルナンバーと、USBトークン2に予め記憶されたシリアルナンバーとが不一致の場合、あるいはパーソナルコンピュータ3に入力された確認コードとUSBトークン2に記憶されている確認コードとが不一致の場合等、上記3つの条件のうち少なくとも一つが不一致の場合には、データの暗号化及び復号化を行うことはできない。
【0095】
したがって、パーソナルコンピュータ3に予め記憶された共有コード及びシリアルナンバーと異なる共有コード及びシリアルナンバーを有するUSBトークン2によって復号化処理が実行されたり、USBトークン2に記憶されている確認コードと異なる確認コードがパーソナルコンピュータ3に入力された場合に復号化処理が実行されるのを防ぐことができる。
【0096】
また、上記データ共有装置1によれば、USBトークン2のメモリ12には、確認コードがハッシュ関数により変換されたハッシュ値が記憶されており、パーソナルコンピュータ3の認証手段24は、パーソナルコンピュータ3に入力されてハッシュ関数により2回変換された確認コードのハッシュ値と、USBトークン2から読み出されてハッシュ関数により1回変換された確認コードのハッシュ値とが一致する場合には、データの暗号化及び復号化を許可するので、USBトークン2のメモリ12に、確認コードをそのまま記憶させるのではなく、符号化して記憶させておくことができ、暗号文データの解読困難性を高めることができる。
【0097】
なお、本発明は、上述の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変更が可能である。例えば、上述の実施の形態では、認証手段24は、共有コード及びシリアルナンバーによるUSBトークン認証と、確認コードによる本人認証の両方を行っているが、いずれか一方だけを行ってもよい。
【図面の簡単な説明】
【0098】
【図1】本実施の形態に係わるデータ共有装置の構成を説明する図である。
【図2】アプリケーションプログラムによってパーソナルコンピュータ内に実現される機能を説明するブロック図である。
【図3】ユーザデータベースに作成されるユーザデータの構成を説明する図である。
【図4】表示装置に表示されるユーザ情報登録画面の一例を示すものである。
【図5】USBトークン認証処理を説明するフローチャートである。
【図6】本人認証処理を説明するフローチャートである。
【図7】暗号化手段による暗号化処理の方法を説明するフローチャートである。
【図8】復号化手段による復号化処理の方法を説明するフローチャートである。
【符号の説明】
【0099】
1 データ共有装置
2 USBトークン
3 パーソナルコンピュータ
12 メモリ(記憶手段)
24 認証手段
26 暗号化手段
27 復号化手段
28 ユーザデータベース(記憶手段)

【特許請求の範囲】
【請求項1】
複数の電子キーと、該複数の電子キーのうちのいずれか一つを使用して平文データを暗号文データに暗号化し、前記複数の電子キーのうちのいずれか一つを使用して前記暗号文データを前記平文データに復号化する情報処理装置とを有するデータ共有装置において、
前記電子キーは、各電子キー共通の暗号化ユーザ鍵が記憶された記憶手段を備え、
前記情報処理装置は、平文データを特定した暗号化の指示により、ユニークな情報であるソルトデータを作成し、該ソルトデータと前記電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、該暗号鍵を用いて所定の暗号アルゴリズムにより平文データから暗号文データを作成し、該暗号文データに前記ソルトデータを付加する暗号化手段と、暗号文データを特定した復号化の指示により、該暗号文データに付加されているソルトデータと前記電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、該暗号鍵を用いて所定の暗号アルゴリズムにより暗号文データから平文データを作成する復号化手段と、を備えることを特徴とするデータ共有装置。
【請求項2】
前記電子キーの記憶手段には、該電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーが予め記憶されており、
前記情報処理装置は、
前記電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーを記憶する記憶手段と、
該記憶手段に予め記憶された共有コード及びシリアルナンバーと、前記電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致することによってデータの暗号化及び復号化を許可する認証手段を有し、
前記暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、
前記復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする請求項1に記載のデータ共有装置。
【請求項3】
前記電子キーの記憶手段には、該電子キーの所有者である本人認証を行うための確認コードが予め記憶されており、
前記情報処理装置は、該情報処理装置に入力された確認コードと前記電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化を許可する認証手段を有し、
前記暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、
前記復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする請求項1に記載のデータ共有装置。
【請求項4】
前記電子キーの記憶手段には、該電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバー、並びに該電子キーの所有者である本人認証を行うための確認コードが予め記憶されており、
前記情報処理装置は、
前記電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーを記憶する記憶手段と、
該記憶手段に予め記憶された共有コード及びシリアルナンバーと、前記電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致し、かつ前記情報処理装置に入力された確認コードと前記電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化を許可する認証手段を有し、
前記暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、
前記復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする請求項1に記載のデータ共有装置。
【請求項5】
前記電子キーの記憶手段には、前記確認コードをハッシュ関数により変換したハッシュ値が予め記憶されており、
前記情報処理装置の認証手段は、該情報処理装置に入力された確認コードをハッシュ関数によりハッシュ値に変換し、該ハッシュ値を更にハッシュ関数により変換すると共に、電子キーから読み出した確認コードのハッシュ値をハッシュ関数により変換するハッシュ変換手段を有し、
前記情報処理装置に入力された確認コードを前記ハッシュ変換手段により変換したハッシュ値と、前記電子キーから読み出されて前記ハッシュ変換手段により変換した確認コードのハッシュ値とが一致することによってデータの暗号化及び復号化を許可することを特徴とする請求項3または4に記載のデータ共有装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2007−181011(P2007−181011A)
【公開日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2005−378377(P2005−378377)
【出願日】平成17年12月28日(2005.12.28)
【出願人】(505071125)株式会社プロ・セキュア (2)
【Fターム(参考)】