(57)【要約】【課題】暗号化及び復号化の処理速度を低下させることなく、グループで共有するデータを強い暗号強度の暗号文データに暗号化できるデータ共有装置を提供する。【解決手段】データ共有装置１は、複数の電子キー２と情報処理装置３とを有し、電子キー２は、各電子キー２共通の暗号化ユーザ鍵が記憶された記憶手段１２を備え、情報処理装置３は、ソルトデータと電子キー２から読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて暗号文データを作成し、ソルトデータを暗号文データに付加する。そして、暗号文データに付加されているソルトデータを抽出し、そのソルトデータと電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて暗号文データから平文データを作成する。【選択図】図２
2007181011.tif 000002
【特許請求の範囲】
【請求項１】
複数の電子キーと、該複数の電子キーのうちのいずれか一つを使用して平文データを暗号文データに暗号化し、前記複数の電子キーのうちのいずれか一つを使用して前記暗号文データを前記平文データに復号化する情報処理装置とを有するデータ共有装置において、
前記電子キーは、各電子キー共通の暗号化ユーザ鍵が記憶された記憶手段を備え、
前記情報処理装置は、平文データを特定した暗号化の指示により、ユニークな情報であるソルトデータを作成し、該ソルトデータと前記電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、該暗号鍵を用いて所定の暗号アルゴリズムにより平文データから暗号文データを作成し、該暗号文データに前記ソルトデータを付加する暗号化手段と、暗号文データを特定した復号化の指示により、該暗号文データに付加されているソルトデータと前記電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、該暗号鍵を用いて所定の暗号アルゴリズムにより暗号文データから平文データを作成する復号化手段と、を備えることを特徴とするデータ共有装置。
【請求項２】
前記電子キーの記憶手段には、該電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーが予め記憶されており、
前記情報処理装置は、
前記電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーを記憶する記憶手段と、
該記憶手段に予め記憶された共有コード及びシリアルナンバーと、前記電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致することによってデータの暗号化及び復号化を許可する認証手段を有し、
前記暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、
前記復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする請求項１に記載のデータ共有装置。
【請求項３】
前記電子キーの記憶手段には、該電子キーの所有者である本人認証を行うための確認コードが予め記憶されており、
前記情報処理装置は、該情報処理装置に入力された確認コードと前記電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化を許可する認証手段を有し、
前記暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、
前記復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする請求項１に記載のデータ共有装置。
【請求項４】
前記電子キーの記憶手段には、該電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバー、並びに該電子キーの所有者である本人認証を行うための確認コードが予め記憶されており、
前記情報処理装置は、
前記電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーを記憶する記憶手段と、
該記憶手段に予め記憶された共有コード及びシリアルナンバーと、前記電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致し、かつ前記情報処理装置に入力された確認コードと前記電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化を許可する認証手段を有し、
前記暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、
前記復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする請求項１に記載のデータ共有装置。
【請求項５】
前記電子キーの記憶手段には、前記確認コードをハッシュ関数により変換したハッシュ値が予め記憶されており、
前記情報処理装置の認証手段は、該情報処理装置に入力された確認コードをハッシュ関数によりハッシュ値に変換し、該ハッシュ値を更にハッシュ関数により変換すると共に、電子キーから読み出した確認コードのハッシュ値をハッシュ関数により変換するハッシュ変換手段を有し、
前記情報処理装置に入力された確認コードを前記ハッシュ変換手段により変換したハッシュ値と、前記電子キーから読み出されて前記ハッシュ変換手段により変換した確認コードのハッシュ値とが一致することによってデータの暗号化及び復号化を許可することを特徴とする請求項３または４に記載のデータ共有装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の利用者からなるグループでデータを共有するデータ共有装置に関し、特に各利用者に配布された電子キーのうちの一つを使用して暗号化したデータをグループで共有し、各利用者は、自己の電子キーが暗号化に使用した電子キーとは別の電子キーであってもその自己の電子キーを使用してデータを復号化して利用することができるデータ共有装置に関する。
【背景技術】
【０００２】
従来より、データを暗号化又は復号化する情報処理装置及び情報処理装置に着脱自在な暗号キーを備えた暗号化装置又は復号化装置であって、同一グループの暗号キーであれば、いずれかの暗号キーを用いて暗号化装置により暗号化した暗号文データを、暗号化に使用した暗号キー以外の暗号キーを用いて復号化装置により復号化できる技術が提案されている（例えば、特許文献１を参照）。
【０００３】
上記従来技術によれば、暗号キーは、暗号キーを操作するためのアプリケーションプログラム、暗号キーの使用可否を規定するグループＩＤを記憶したメモリと、メモリに記憶されたグループＩＤを暗号化関数の初期値とし暗号化関数に従って擬似乱数を発生する擬似乱数発生器とを備えている。
【０００４】
そして、暗号化装置の情報処理装置は、暗号キーの装着により暗号キーのメモリからアプリケーションプログラムを読み出して起動し、アプリケーションプログラムの処理によって、平文データのデータサイズを暗号キーに送信し、暗号キーは、情報処理装置から受信したデータサイズに応じた疑似乱数を発生させて情報処理装置に送信する。
【０００５】
暗号化装置の情報処理装置は、暗号キーから送られてくる擬似乱数と平文データとを排他的論理和演算することにより暗号文データを作成し、暗号文ファイルのデータ領域に暗号文データを書き込むとともに、暗号文ファイルのヘッダ領域に暗号キーのメモリから読み出したグループＩＤを付加するように構成されている。
【０００６】
そして、復号化装置の情報処理装置は、暗号キーが装着されたときに暗号キーのメモリからアプリケーションプログラムを読み出して起動し、そのアプリケーションプログラムの処理によって、暗号文ファイルに含まれる暗号文データのデータサイズを暗号キーに送信し、暗号キーは、そのデータサイズに応じた疑似乱数を発生させ、メモリから読み出したグループＩＤと共に情報処理装置に送信する。
【０００７】
情報処理装置は、暗号キーから送られてくるグループＩＤが暗号文ファイルに含まれているグループＩＤと一致する場合に、暗号キーから送られてくる疑似乱数と暗号文データとを排他的論理和演算して平文データを作成する処理を行う。
【０００８】
【特許文献１】特開２００５−１３００２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記従来技術の場合、暗号キーのメモリに記憶されたグループＩＤを疑似乱数発生器が有する暗号化関数の初期値に採用していることから、グループが同一であれば、各暗号キーが有するグループＩＤも同一になる。したがって、同一のグループで共有する暗号文ファイルの暗号文データは、いずれも同一のグループＩＤで暗号化されたものである。したがって、同一のグループで共有する複数の暗号文データをサンプルとして暗号解析をすることにより容易に解読されるおそれがある。
【００１０】
また、上記従来技術では、暗号キーの内部で平文データと同一のデータ量を有する疑似乱数列を生成し、その疑似乱数列を暗号キーから情報処理装置に送信し、情報処理装置で平文データと疑似乱数列を排他的論理和演算することによって暗号文データを作成している。したがって、例えば画像や動画のようにデータ量が膨大な場合に、暗号キーから情報処理装置に送信する疑似乱数列も膨大な量になり、暗号化および復号化の処理速度が低下するおそれがある。
【００１１】
本発明は、これらの問題に鑑みなされたものであり、その目的は、暗号化及び復号化の処理速度を低下させることなく、グループで共有するデータを強い暗号強度の暗号文データに暗号化できるデータ共有装置を提供することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決する請求項１に記載の発明によるデータ共有装置は、複数の電子キーと、該複数の電子キーのうちのいずれか一つを使用して平文データを暗号文データに暗号化し、前記複数の電子キーのうちのいずれか一つを使用して前記暗号文データを前記平文データに復号化する情報処理装置とを有するデータ共有装置において、前記電子キーは、各電子キー共通の暗号化ユーザ鍵が記憶された記憶手段を備え、前記情報処理装置は、平文データを特定した暗号化の指示により、ユニークな情報であるソルトデータを作成し、該ソルトデータと前記電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、該暗号鍵を用いて所定の暗号アルゴリズムにより平文データから暗号文データを作成し、該暗号文データに前記ソルトデータを付加する暗号化手段と、暗号文データを特定した復号化の指示により、該暗号文データに付加されているソルトデータと前記電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、該暗号鍵を用いて所定の暗号アルゴリズムにより暗号文データから平文データを作成する復号化手段と、を備えることを特徴とする。
【００１３】
請求項２に記載の発明は、請求項１に記載のデータ共有装置において、  前記電子キーの記憶手段には、該電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーが予め記憶されており、情報処理装置は、
前記電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーを記憶する記憶手段と、記憶手段に予め記憶された共有コード及びシリアルナンバーと、前記電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致することによってデータの暗号化及び復号化を許可する認証手段を有し、暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする。
【００１４】
請求項３に記載の発明は、請求項１に記載のデータ共有装置において、電子キーの記憶手段には、該電子キーの所有者である本人認証を行うための確認コードが予め記憶されており、情報処理装置は、該情報処理装置に入力された確認コードと前記電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化を許可する認証手段を有し、暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする。
【００１５】
請求項４に記載の発明は、請求項１に記載のデータ共有装置において、電子キーの記憶手段には、該電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバー、並びに該電子キーの所有者である本人認証を行うための確認コードが予め記憶されており、情報処理装置は、電子キーが属するグループを示す共有コード及び前記電子キーを特定するシリアルナンバーを記憶する記憶手段と、記憶手段に予め記憶された共有コード及びシリアルナンバーと、前記電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致し、かつ前記情報処理装置に入力された確認コードと前記電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化を許可する認証手段を有し、暗号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記平文データの暗号化を行い、復号化手段は、該認証手段によってデータの暗号化及び復号化が許可された状態で、前記暗号文データの復号化を行うことを特徴とする。
【００１６】
請求項５に記載の発明は、請求項３または４に記載のデータ共有装置において、電子キーの記憶手段には、前記確認コードをハッシュ関数により変換したハッシュ値が予め記憶されており、情報処理装置の認証手段は、該情報処理装置に入力された確認コードをハッシュ関数によりハッシュ値に変換し、該ハッシュ値を更にハッシュ関数により変換すると共に、電子キーから読み出した確認コードのハッシュ値をハッシュ関数により変換するハッシュ変換手段を有し、情報処理装置に入力された確認コードを前記ハッシュ変換手段により変換したハッシュ値と、前記電子キーから読み出されて前記ハッシュ変換手段により変換した確認コードのハッシュ値とが一致することによってデータの暗号化及び復号化を許可することを特徴とする。
【発明の効果】
【００１７】
請求項１に記載したデータ共有装置の発明によれば、暗号化手段は、ユニークなソルトデータを作成し、そのソルトデータと電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて平文データの暗号化を行い、暗号文データを作成する。そして、暗号鍵の作成に使用したソルトデータを暗号文データに付加する処理を行う。
【００１８】
したがって、平文データの暗号化に使用する暗号鍵を暗号文データごとに相違させることができ、同一の暗号鍵を使用して暗号化した暗号文データよりも暗号強度の強い暗号文データを作成することができ、暗号文データの解読困難性を高めることができる。
【００１９】
そして、復号化手段は、暗号鍵の作成に使用され暗号文データに付加されているソルトデータと、電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて暗号文データの復号化を行い、平文データを作成する。
【００２０】
したがって、共通の暗号化ユーザ鍵を有する電子キーであれば、暗号化に使用した電子キーとは異なる電子キーであっても、暗号文データの作成に用いた暗号鍵と同一の暗号鍵を作成することができ、暗号文データを復号化して平文データを作成することができる。
【００２１】
また、暗号鍵や、暗号鍵の作成に必要な暗号化ユーザ鍵は、情報処理装置には記憶されないので、情報処理装置の解析等による鍵情報の漏洩を防ぎ、データの解読等を防止でき、高い安全性を有する。
【００２２】
請求項２に記載の発明によると、情報処理装置の記憶手段に予め記憶された共有コード及びシリアルナンバーと、電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致することによってデータの暗号化及び復号化が許可され、かかる暗号化及び復号化が許可された状態で、暗号化手段による暗号化と、復号化手段による復号化が可能となる。
【００２３】
したがって、情報処理装置に予め記憶された共有コードと電子キーに予め記憶された共有コードとが不一致の場合、或いは情報処理装置に予め記憶されたシリアルナンバーと電子キーに予め記憶されたシリアルナンバーとが不一致の場合には、暗号化手段による平文データの暗号化と、復号化手段による暗号文データの復号化を行うことはできない。
【００２４】
したがって、暗号化ユーザ鍵が同一の電子キーであっても、情報処理装置に登録されていないグループに属する電子キーや情報処理装置に登録されていないシリアルナンバーを有する電子キーによる暗号化処理や復号化処理の実行を防ぐことができる。
【００２５】
請求項３に記載の発明によると、情報処理装置に入力された確認コードと電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化が許可され、かかる暗号化及び復号化が許可された状態で、暗号化手段による暗号化と、復号化手段による復号化が可能となる。
【００２６】
したがって、情報処理装置に入力された確認コードと電子キーに記憶されている確認コードとが不一致の場合には、暗号化手段による平文データの暗号化と、復号化手段による暗号文データの復号化を行うことはできない。
【００２７】
したがって、暗号化ユーザ鍵が同一の電子キーであっても、電子キーに記憶されている確認コードと異なる確認コードが情報処理装置に入力された場合に暗号化処理や復号化処理が実行されるのを防ぐことができる。
【００２８】
請求項４に記載の発明によると、情報処理装置に予め記憶された共有コード及びシリアルナンバーと、電子キーから読み出した共有コード及びシリアルナンバーとが相互に一致し、かつ情報処理装置に入力された確認コードと電子キーから読み出した確認コードとが一致することによってデータの暗号化及び復号化が許可され、かかる暗号化及び復号化が許可された状態で、暗号化手段により暗号化が行われ、復号化手段により復号化が行われる。
【００２９】
したがって、情報処理装置に予め記憶された共有コードと、電子キーに予め記憶された共有コードとが不一致の場合や、情報処理装置に予め記憶されたシリアルナンバーと、電子キーに予め記憶されたシリアルナンバーとが不一致の場合、あるいは情報処理装置に入力された確認コードと電子キーに記憶されている確認コードとが不一致の場合等、上記の少なくとも一つが不一致の場合には、データの暗号化及び復号化を行うことはできない。
【００３０】
したがって、暗号化ユーザ鍵が同一の電子キーであっても、情報処理装置に予め記憶された共有コード及びシリアルナンバーと異なる共有コード及びシリアルナンバーを有する電子キーによって暗号化処理や復号化処理が実行されたり、電子キーに記憶されている確認コードと異なる確認コードが情報処理装置に入力された場合に暗号化処理や復号化処理が実行されるのを防ぐことができる。
【００３１】
請求項５に記載の発明によると、電子キーの記憶手段には、確認コードがハッシュ関数により変換されたハッシュ値が予め記憶されており、情報処理装置の認証手段は、情報処理装置に入力されてハッシュ変換手段により２回変換された確認コードのハッシュ値と、電子キーから読み出されてハッシュ変換手段により１回変換された確認コードのハッシュ値とが一致する場合には、データの暗号化及び復号化を許可する。
【００３２】
したがって、電子キーの記憶手段に、確認コードをそのまま記憶させるのではなく、符号化して記憶させておくことができ、暗号文データの解読困難性を高めることができる。
【発明を実施するための最良の形態】
【００３３】
次に、本発明の実施の形態に係わるデータ共有装置１について説明する。
【００３４】
図１は、本実施の形態に係わるデータ共有装置１の構成を説明する図であり、図１（ａ）は全体図、図１（ｂ）は、要部拡大図である。データ共有装置１は、図１（ａ）に示すように、電子キーであるＵＳＢトークン２と、情報処理装置であるパーソナルコンピュータ３とから構成されている。
【００３５】
ＵＳＢトークン２は、ＩＣチップ１１やメモリ１２等を収容した筐体１３と、筐体１３から突出してパーソナルコンピュータ３のＵＳＢスロット３ａに差し込み可能なコネクタ１４とを有している。ＵＳＢトークン２のコネクタ１４は、パーソナルコンピュータ３のＵＳＢスロット３ａに差し込むことによってパーソナルコンピュータ３と電気的に接続されて、ＩＣチップ１１及びメモリ１２との間でデータを送受信できるようになっている。
【００３６】
ＵＳＢトークン２のメモリ１２には、暗号化ユーザ鍵、シリアルナンバー、確認コード、共有コード、規格コード等が記憶される。
【００３７】
暗号化ユーザ鍵は、パーソナルコンピュータ３内で暗号鍵を作成するために必要な鍵情報の一つであり、同一のグループを構成する各利用者に配布されるＵＳＢトークン２には全て同一の鍵情報が設定され、各グループごとに暗号化ユーザ鍵の鍵情報が異なるように設定されている。
【００３８】
シリアルナンバーは、ＵＳＢトークン２を識別するために各ＵＳＢトークン２別に各々割り当てられるユニークな番号であって、アルファベットと数字の組み合わせによって構成されており、外部から容易に視認できるようにＵＳＢトークン２の筐体１３にも印刷等により表示されている。
【００３９】
確認コードは、ＵＳＢトークン２の正当な所有者であることを確認するために使用されるものであり、ＵＳＢトークン２の所有者自らが決定しその所有者のみが知っている情報である。確認コードは、ＵＳＢトークン２をパーソナルコンピュータ３に接続した状態でパーソナルコンピュータ３から書き込むことができ、任意に書き換えることができるようになっている。
【００４０】
確認コードは、パーソナルコンピュータ３に入力されると、パーソナルコンピュータ３内でハッシュ関数によりハッシュ値に変換されてＵＳＢトークン２に送信され、ＵＳＢトークン２のメモリ１２に書き込まれ、パーソナルコンピュータ３には記憶されない。なお、パーソナルコンピュータ３によって確認コードが書き込まれる前は、各ＵＳＢトークン２で共通の仮確認コードがデフォルトとして書き込まれている。
【００４１】
共有コードは、ＵＳＢトークン２が属するグループを規定する情報であり、ＵＳＢトークン２が同一のグループに属するか否かをパーソナルコンピュータ３側で判断する際に使用されるものである。共有コードが異なる、いわゆる異グループのＵＳＢトークン２を使用してデータの復号化はできない。
【００４２】
規格コードは、パーソナルコンピュータ３に接続されたＵＳＢトークン２が、データ共有装置１のＵＳＢトークン２であるか否かをパーソナルコンピュータ３側で識別する際に使用される情報である。
【００４３】
パーソナルコンピュータ３は、演算処理等を行うＣＰＵ、ＲＯＭやＲＡＭなどの内部メモリ、ハードディスクなどの外部記憶装置等を有するコンピュータ本体３Ａと、キーボードやマウス等からなる入力装置３Ｂと、ＣＲＴや液晶ディスプレイなどの表示装置３Ｃとを有しており、アプリケーションプログラムが実行可能にインストールされている。
【００４４】
図２は、アプリケーションプログラムによってパーソナルコンピュータ３内に実現される機能を説明するブロック図である。アプリケーションプログラムの実行によって、パーソナルコンピュータ３内には、管理者情報登録手段２１、ユーザ情報登録手段２２、ＵＳＢトークン接続監視手段２３、認証手段２４、暗号鍵作成手段２５、暗号化手段２６、復号化手段２７、ユーザデータベース２８がその内部機能として実現される。
【００４５】
管理者情報登録手段２１は、管理者情報の登録処理を行うものであり、ＵＳＢトークン２がパーソナルコンピュータ３に初めて接続されてＵＳＢトークン２の規格コードと共有コードが認証されると、パーソナルコンピュータ３の表示装置３Ｃに管理者情報登録画面を表示させる。そして、その管理者情報登録画面にしたがって入力装置２２から入力された氏名と、認証手段２４によりＵＳＢトークンから取得したシリアルナンバーとを、管理者氏名及び管理者ＵＳＢトークンのシリアルナンバーとして互いに関連付けした形でユーザデータベース２８に記憶させる。それから、管理者情報登録画面にしたがって入力された確認コードを、ハッシュ関数によりハッシュ値に変換してＵＳＢトークン２に送信し、ＵＳＢトークン２のメモリ１２に記憶させる処理を行う。図３は、管理者情報登録手段２１によってユーザデータベース２８に作成されるユーザデータの構成を説明する図である。ユーザデータベース２８には、図３に示すように、登録日、シリアルナンバー、氏名、共有コードからなるユーザデータが記憶される。
【００４６】
ユーザ情報登録手段２２は、管理者からの入力と、ＵＳＢトークン２の使用者であって管理者以外の者であるユーザからの入力とに基づいてユーザ情報の登録処理を行う。ユーザ情報の登録処理では、最初に管理者からの入力によりユーザの氏名とシリアルナンバーが登録され、次いで、ユーザからの入力により確認コードが登録される。
【００４７】
ユーザ情報登録手段２２は、ユーザの氏名とシリアル番号の登録では、管理者ＵＳＢトークン２を用いた管理者からの入力に応じて表示装置３Ｃにユーザ情報登録画面を表示させ、ユーザ情報登録画面に従って入力手段３Ｂから入力されたユーザ氏名とユーザＵＳＢトークン２のシリアルナンバーとを互いに関連付けた形でユーザデータベース２８に記憶させる。図４は、表示装置３Ｃに表示されるユーザ情報登録画面の一例を示すものである。ユーザ情報登録画面には、管理者及びユーザの氏名、シリアル番号、登録日、後述する許可フラグのセット禁止か否かがデータテーブルとして表示される。このユーザ情報の登録及び削除は管理者によって適宜行うことができる。
【００４８】
次に、確認コードの登録は、ユーザＵＳＢトークン２がパーソナルコンピュータ３に初めて接続されたときに行われる。ユーザＵＳＢトークン２がパーソナルコンピュータ３に初めて接続されたか否かは、ユーザ情報がパーソナルコンピュータ３内に登録されているか否かによって判断し、未登録の場合には初めての接続と判断して表示装置３Ｃに確認コード登録画面を表示させる。そして、確認コード登録画面にしたがってユーザから入力された確認コードを、ハッシュ関数によりハッシュ値に変換してＵＳＢトークン２に送信し、ＵＳＢトークン２のメモリ１２に記憶させる処理を行う。
【００４９】
ＵＳＢトークン接続監視手段２３は、ＵＳＢトークン２がパーソナルコンピュータ３に接続されているか否かを監視し、後述する許可フラグがセットされた状態でパーソナルコンピュータ３からＵＳＢトークン２が切断された場合には、許可フラグをクリアする処理を行う。
【００５０】
認証手段２４は、ＵＳＢトークン２自体の有効性を認証するＵＳＢトークン認証処理と、ＵＳＢトークン２が所有者本人のＵＳＢトークン２であることを認証する本人認証処理とを行う。
【００５１】
暗号化手段２６は、ＵＳＢトークン２のメモリ１２に記憶されている暗号化ユーザ鍵とユニークな情報であるソルトデータとを用いて暗号鍵を作成する処理、その暗号鍵を使用して所定の暗号アルゴリズムにより平文データを暗号化して暗号文データを作成する処理、その暗号文データにソルトデータを付加する処理を行う。
【００５２】
暗号化手段２６は、ＵＳＢトークン２から取得した暗号化ユーザ鍵とソルトデータとを排他的論理和演算（ＥＯＲ）して暗号鍵を作成し、平文データの暗号化処理を開始する時の日付時刻情報をハッシュ関数により変換してソルトデータを作成する。尚、ソルトデータを作成する方法は、上記日付時刻情報に基づくものに限定されるものではなく、例えば、暗号化手段２６が有する疑似乱数生成器により生成した疑似乱数に基づいて作成してもよい。
【００５３】
ソルトデータの暗号文データへの付加は、暗号化手段２６が暗号文データをデータ領域に有すると共に暗号鍵の作成に使用したソルトデータをヘッダ領域に有する暗号文ファイルを作成することによって行われる。
【００５４】
復号化手段２７は、暗号文データの作成に使用して暗号文ファイルのヘッダ領域に書き込まれているソルトデータと、ＵＳＢトークン２のメモリ１２に記憶されている暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を使用して所定の暗号アルゴリズムにより暗号文ファイルの暗号文データを復号化して平文データを作成し、その平文データをデータ領域に有する平文ファイルを作成する処理を行う。
【００５５】
次に、上記構成を有するデータ共有装置１の一連の動作について以下に説明する。
（ＵＳＢトークン認証）
まず、ＵＳＢトークン２のコネクタ１４がパーソナルコンピュータ３のＵＳＢスロット３ａに差し込まれて、ＵＳＢトークン接続監視手段２３によりＵＳＢトークン２の接続が検出されると、認証手段２４によりＵＳＢトークン認証処理が実行される。図５は、ＵＳＢトークン認証処理を説明するフローチャートである。
【００５６】
ＵＳＢトークン認証処理では、まず最初にＵＳＢトークン２が有する規格コードの認証が行われる。規格コードの認証では、認証手段２４からＵＳＢトークン２に規格コード取得要求がなされる。ＵＳＢトークン２は、認証手段２４からの規格コード取得要求に対して、ＵＳＢトークン２のメモリ１２に記憶されている規格コードを読み出して認証手段２４に送信する。認証手段２４は、ＵＳＢトークン２から受信した規格コードと、パーソナルコンピュータ３のユーザデータベースに予め設定されている基準規格コードとが一致するか否かを判断する（ステップＳ１０１）。
【００５７】
そして、規格コードが不一致であると判断した場合には（ステップＳ１０１でＮＯ）、そのＵＳＢトークンがデータ共有装置１では使用できないＵＳＢトークンであるとして認証処理を中止し、パーソナルコンピュータ３に差し込まれたＵＳＢトークンは使用できない旨のエラーメッセージを表示装置３Ｃに表示する（ステップＳ１０７）。
【００５８】
一方、規格コードが一致すると判断した場合には（ステップＳ１０１でＹＥＳ）、次に共有コードの認証が行われる。共有コードの認証では、認証手段２４からＵＳＢトークン２に対して共有コード取得要求がなされる。ＵＳＢトークン２は、認証手段２４からの共有コード取得要求に対して、ＵＳＢトークン２のメモリ１２に記憶されている共有コードを読み出して認証手段２４に送信する。
【００５９】
認証手段２４は、ＵＳＢトークン２から受信した共有コードと、パーソナルコンピュータ３のユーザデータベースに予め登録されている共有コードとが一致するか否かを判断する（ステップＳ１０２）。
【００６０】
そして、共有コードが不一致であると判断した場合には（ステップＳ１０２でＮＯ）、そのＵＳＢトークン２が別グループに属するＵＳＢトークン２であるとして認証処理を中止し、パーソナルコンピュータ３に差し込まれたＵＳＢトークン２は使用できない旨のエラーメッセージを表示装置３Ｃに表示する（ステップＳ１０７）。
【００６１】
一方、共有コードが一致すると判断した場合には（ステップＳ１０２でＹＥＳ）、次にシリアルナンバーの認証が行われる。シリアルナンバーの認証では、認証手段２４からＵＳＢトークン２に対してシリアルナンバー取得要求がなされる。ＵＳＢトークン２は、認証手段２４からのシリアルナンバー取得要求に対して、ＵＳＢトークン２のメモリ１２に記憶されているシリアルナンバーを読み出し、認証手段２４に送信する。
【００６２】
認証手段２４は、ＵＳＢトークン２から取得したシリアルナンバーがユーザデータベースに登録されているか否かを判断する（ステップＳ１０３）。そして、ＵＳＢトークン２から受信したシリアルナンバーがユーザデータベース２８に未登録である場合には（ステップＳ１０３でＮＯ）、管理者情報が登録されているか否かを判断する（ステップＳ１０５）。管理者情報が登録されているか否かは、ユーザデータベース２８に管理者の氏名と管理者が所有するＵＳＢトークン２のシリアルナンバーが登録されているか否かに基づいて判断される。
【００６３】
そして、管理者情報が既に登録されている場合には（ステップＳ１０５でＹＥＳ）、そのＵＳＢトークン２のシリアルナンバーが管理者ＵＳＢトークン２のシリアルナンバーと異なることから管理者ＵＳＢトークン２ではなく、且つユーザデータベース２８に未登録のシリアルナンバーであるので、未登録のＵＳＢトークン２であるとして、認証処理を中止し、パーソナルコンピュータ３に差し込まれたＵＳＢトークン２は使用できない旨のエラーメッセージを表示装置３Ｃに表示する（ステップＳ１０７）。
【００６４】
また、管理者情報が登録されていない場合には（ステップＳ１０５でＮＯ）、そのＵＳＢトークン２は管理者ＵＳＢトークン２であるとみなして、上述の管理者情報登録手段２１による管理者登録処理が実行される（ステップＳ１０８）。
【００６５】
一方、ＵＳＢトークン２から受信したシリアルナンバーがユーザデータベースに登録されている場合には（ステップＳ１０３でＹＥＳ）、本人認証処理に移行する（ステップＳ１０４）。
【００６６】
（本人認証）
図６は、本人認証処理を説明するフローチャートである。認証手段２４は、ＵＳＢトークン２に確認コード取得要求を行い（ステップＳ２０１）、ＵＳＢトークン２は、認証手段２４からの確認コード取得要求に対して、ＵＳＢトークン２のメモリ１２に記憶されている確認コード（ハッシュ値）を読み出して認証手段２４に送信する。認証手段２４では、ＵＳＢトークン２から取得した確認コード（ハッシュ値）を、ハッシュ関数により変換する（ステップＳ２０２）。したがって、かかるハッシュ関数により変換された後の確認コード（ハッシュ値）は、元の確認コードをハッシュ関数によって２回変換したハッシュ値となる。
【００６７】
また、認証手段２４は、パーソナルコンピュータ３の表示装置３Ｃに確認コード入力要求画面を表示させる（ステップＳ２０３）。そして、入力装置２２から入力された確認コードをハッシュ関数により変換し、その変換後の確認コード（ハッシュ値）を更にもう一度ハッシュ関数により変換する（ステップＳ２０４）。
【００６８】
そして、認証手段２４は、ＵＳＢトークン２から取得してハッシュ関数により変換した後の確認コード（ハッシュ値）と、入力装置２２から入力されてハッシュ関数により２回変換された後の確認コード（ハッシュ値）とが同一であるか否かを判断する（ステップＳ２０５）。
【００６９】
そして、両確認コードが同一である場合には（ステップＳ２０５でＹＥＳ）、ＵＳＢトークン２の所有者本人であると認証し、パーソナルコンピュータ３内の記憶手段に記憶されているデータの暗号化及び復号化を許可する許可フラグをセットする（ステップＳ２０６）。
【００７０】
一方、両確認コード（ハッシュ値）が同一ではない場合には（ステップＳ２０５でＮＯ）、確認コードを不一致と判断したエラー回数が予め設定された上限回数ｎ（例えば３回）以上であるか否かを判断する（ステップＳ２０７）。ここで、エラー回数が上限回数ｎ以上の場合には（ステップＳ２０７でＹＥＳ）、入力装置２３から確認コードを入力した者はＵＳＢトークン２の所有者本人ではないとみなして、当該ＵＳＢトークンによる許可フラグのセットを禁止する処理を行う（ステップＳ２１０）。
【００７１】
また、エラー回数が上限回数ｎよりも少ない場合には（ステップＳ２０７でＮＯ）、エラー回数に１を加算し（ステップＳ２０８）、確認コードの入力間違いである旨と加算後のエラー回数を表示するエラーメッセージを表示装置３Ｃに表示させ（ステップＳ２０９）、再度確認コードの入力を要求する。
【００７２】
（暗号化処理）
図７は、暗号化手段２６による暗号化処理の方法を説明するフローチャートである。暗号化手段２６は、暗号化を希望する平文データを特定した暗号化指示の入力を受けると（ステップＳ３０１）、認証手段２４によって許可フラグがセットされているか否かを判断する（ステップＳ３０２）。尚、暗号化の指示は、表示装置３Ｃの画面上で平文ファイルの上にカーソルを移動させて、マウスを右クリックして表示されるメニューの中から暗号化を選択したり、表示装置３Ｃのディスクトップ画面上に表示されている暗号化アイコンの上に平文ファイルをドラッグアンドドロップすることによって行うことができる。
【００７３】
ここで許可フラグがセットされていない場合には（ステップＳ３０２でＮＯ）、暗号化処理を終了し（ステップＳ３０８）、ＵＳＢトークン２が未認証であるとのエラーメッセージを表示装置３Ｃに表示させる（ステップＳ３０９）。
【００７４】
一方、許可フラグがセットされている場合には（ステップＳ３０２でＹＥＳ）、ＵＳＢトークン２から暗号化ユーザ鍵を取得する。暗号化手段２６は、ＵＳＢトークン２に暗号化ユーザ鍵取得要求を行い、ＵＳＢトークン２は、暗号化手段２６からの暗号化ユーザ鍵取得要求に対して、ＵＳＢトークン２のメモリ１２に記憶されている暗号化ユーザ鍵を読み出し、暗号化手段２６に送信する。
【００７５】
暗号化手段２６は、ＵＳＢトークン２から暗号化ユーザ鍵を受信して取得すると、ソルトデータを作成し（ステップＳ３０４）、ソルトデータと暗号化ユーザ鍵とに基づいて暗号鍵を作成し（ステップＳ３０５）、その暗号鍵を使用して所定の暗号アルゴリズムにより、平文ファイルの平文データを暗号化して暗号文データを作成する（ステップＳ３０６）。
【００７６】
暗号化手段２６は、疑似乱数生成器を備えており、暗号鍵に基づいて疑似乱数生成器により疑似乱数を生成し、その疑似乱数と平文データとを排他的論理和演算することによって暗号文データを作成する。この擬似乱数の生成と排他的論理和演算は、パーソナルコンピュータ３で行われるので、パーソナルコンピュータ３とＵＳＢトークン２との間の通信時間に影響を受けることなく、迅速に暗号文データを作成することができる。
【００７７】
そして、作成した暗号文データを暗号ファイルのデータ領域に書き込むと共に、暗号鍵の作成に使用したソルトデータを暗号ファイルのヘッダ領域に書き込み、暗号ファイルを作成する（ステップＳ３０７）。
【００７８】
（復号化処理）
図８は、復号化手段２７による復号化処理の方法を説明するフローチャートである。復号化手段２７は、復号化を希望する暗号文データを特定した復号化指示の入力を受けると（ステップＳ４０１）、認証手段２４によって許可フラグがセットされているか否かを判断する（ステップＳ４０２）。復号化指示の方法は、暗号化指示の方法と同様であるので、その説明を省略する。
【００７９】
ここで、許可フラグがセットされていない場合には（ステップＳ４０２でＮＯ）、復号化処理を終了し（ステップＳ４０８）、ＵＳＢトークン２が未認証であるとのエラーメッセージを表示装置３Ｃに表示させる（ステップＳ４０９）。
【００８０】
一方、許可フラグがセットされている場合には（ステップＳ４０２でＹＥＳ）、ＵＳＢトークン２から暗号化ユーザ鍵を取得する。復号化手段２７は、ＵＳＢトークン２に暗号化ユーザ鍵取得要求を行い、ＵＳＢトークン２は、復号化手段２７からの暗号化ユーザ鍵取得要求に対して、ＵＳＢトークン２のメモリ１２に記憶されている暗号化ユーザ鍵を読み出し、復号化手段２７に送信する。
【００８１】
復号化手段２７は、ＵＳＢトークン２から暗号化ユーザ鍵を受信して取得すると、暗号文ファイルのヘッダ領域からソルトデータを抽出し（ステップＳ４０４）、暗号文データを復号化するための暗号鍵を作成する（ステップＳ４０５）。
【００８２】
暗号鍵は、ＵＳＢトークン２から取得した暗号化ユーザ鍵と暗号文ファイルのヘッダ領域から抽出したソルトデータとを排他的論理和演算（ＥＯＲ）することにより作成される。
【００８３】
したがって、ＵＳＢトークン２のシリアルナンバーと確認コードが異なっていても、換言すると、暗号化に使用したＵＳＢトークン２と異なるＵＳＢトークン２であっても、暗号化ユーザ鍵が同一であれば、暗号化に使用した暗号鍵と同一の暗号鍵を作成することができる。
【００８４】
また、暗号化に使用したＵＳＢトークン２の共有コードと復号化に使用したＵＳＢトークン２の共有コードとが同一でない場合には、許可フラグがセットされないので、異なる暗号化ユーザ鍵によって暗号鍵が作成されてかかる暗号鍵により復号化処理が行われるのを防ぐことができる。
【００８５】
復号化手段２７は、暗号鍵を作成すると、その暗号鍵を使用して所定の暗号アルゴリズムにより、暗号文ファイルの暗号文データを復号化して平文データを作成する（ステップＳ４０６）。
【００８６】
復号化手段２７は、疑似乱数生成器を備えており、暗号鍵に基づいて疑似乱数生成器により疑似乱数を生成し、その疑似乱数と暗号文データとを排他的論理和演算することによって平文データを作成する。そして、平文データを平文ファイルのデータ領域に書き込み、平文ファイルを作成する（ステップＳ４０７）。
【００８７】
上記構成を有するデータ共有装置１によれば、暗号化手段２６は、ユニークなソルトデータを作成し、そのソルトデータとＵＳＢトークン２から読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて平文データの暗号化を行い、暗号文データを作成する。そして、暗号鍵の作成に使用したソルトデータを暗号ファイルのヘッダ領域に書き込み、暗号文データに付加する処理を行う。
【００８８】
これにより、平文データの暗号化に使用する暗号鍵を暗号文データごとに相違させることができ、同一の暗号鍵を使用して暗号化した暗号文データよりも暗号強度の強い暗号文データを作成することができ、暗号文データの解読困難性を高めることができる。
【００８９】
そして、復号化手段２７は、ソルトデータを暗号文ファイルのヘッダ領域から抽出し、その抽出したソルトデータと電子キーから読み出した暗号化ユーザ鍵とを用いて暗号鍵を作成し、その暗号鍵を用いて暗号文データの復号化を行い、平文データを作成する。
【００９０】
したがって、暗号化ユーザ鍵が共通する同一のグループに属するＵＳＢトークン２であれば、暗号化に使用したＵＳＢトークン２とは異なるＵＳＢトークン２であっても、ＵＳＢトークン認証及び本人認証を条件として、暗号文データの作成に用いた暗号鍵と同一の暗号鍵を作成することができ、暗号文データ復号化して平文データを作成することができる。
【００９１】
また、暗号化手段２６及び復号化手段２７によって作成される暗号鍵や、その暗号鍵の作成に必要な暗号化ユーザ鍵は、パーソナルコンピュータ３には記憶されないので、パーソナルコンピュータ３の解析等による鍵情報の漏洩を防ぎ、暗号文データの解読を防止でき、高い安全性を有する。
【００９２】
そして、暗号化処理と復号化処理は、パーソナルコンピュータ３側で行われるので、パーソナルコンピュータ３とＵＳＢトークン２との間の通信速度がボトルネックにならず、データ共有装置１全体のスループットを向上させることができる。
【００９３】
また、上記のデータ共有装置１によれば、ユーザデータベース２７に予め記憶された共有コード及びシリアルナンバーがＵＳＢトークン２から読み出した共有コード及びシリアルナンバーと相互に一致し、かつパーソナルコンピュータ３に入力された確認コードがＵＳＢトークン２から読み出した確認コードと一致することによって、暗号化手段２６及び復号化手段２７によるデータの暗号化及び復号化が許可される。
【００９４】
したがって、パーソナルコンピュータ３に予め記憶された共有コードと、ＵＳＢトークン２に予め記憶された共有コードとが不一致の場合や、パーソナルコンピュータ３に予め記憶されたシリアルナンバーと、ＵＳＢトークン２に予め記憶されたシリアルナンバーとが不一致の場合、あるいはパーソナルコンピュータ３に入力された確認コードとＵＳＢトークン２に記憶されている確認コードとが不一致の場合等、上記３つの条件のうち少なくとも一つが不一致の場合には、データの暗号化及び復号化を行うことはできない。
【００９５】
したがって、パーソナルコンピュータ３に予め記憶された共有コード及びシリアルナンバーと異なる共有コード及びシリアルナンバーを有するＵＳＢトークン２によって復号化処理が実行されたり、ＵＳＢトークン２に記憶されている確認コードと異なる確認コードがパーソナルコンピュータ３に入力された場合に復号化処理が実行されるのを防ぐことができる。
【００９６】
また、上記データ共有装置１によれば、ＵＳＢトークン２のメモリ１２には、確認コードがハッシュ関数により変換されたハッシュ値が記憶されており、パーソナルコンピュータ３の認証手段２４は、パーソナルコンピュータ３に入力されてハッシュ関数により２回変換された確認コードのハッシュ値と、ＵＳＢトークン２から読み出されてハッシュ関数により１回変換された確認コードのハッシュ値とが一致する場合には、データの暗号化及び復号化を許可するので、ＵＳＢトークン２のメモリ１２に、確認コードをそのまま記憶させるのではなく、符号化して記憶させておくことができ、暗号文データの解読困難性を高めることができる。
【００９７】
なお、本発明は、上述の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変更が可能である。例えば、上述の実施の形態では、認証手段２４は、共有コード及びシリアルナンバーによるＵＳＢトークン認証と、確認コードによる本人認証の両方を行っているが、いずれか一方だけを行ってもよい。
【図面の簡単な説明】
【００９８】
【図１】本実施の形態に係わるデータ共有装置の構成を説明する図である。
【図２】アプリケーションプログラムによってパーソナルコンピュータ内に実現される機能を説明するブロック図である。
【図３】ユーザデータベースに作成されるユーザデータの構成を説明する図である。
【図４】表示装置に表示されるユーザ情報登録画面の一例を示すものである。
【図５】ＵＳＢトークン認証処理を説明するフローチャートである。
【図６】本人認証処理を説明するフローチャートである。
【図７】暗号化手段による暗号化処理の方法を説明するフローチャートである。
【図８】復号化手段による復号化処理の方法を説明するフローチャートである。
【符号の説明】
【００９９】
１  データ共有装置
２  ＵＳＢトークン
３  パーソナルコンピュータ
１２  メモリ（記憶手段）
２４  認証手段
２６  暗号化手段
２７  復号化手段
２８  ユーザデータベース（記憶手段）
【図１】
2007181011.tif 000003
【図２】
2007181011.tif 000004
【図３】
2007181011.tif 000005
【図４】
2007181011.tif 000006
【図５】
2007181011.tif 000007
【図６】
2007181011.tif 000008
【図７】
2007181011.tif 000009
【図８】
2007181011.tif 000010