(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-08
(45)【発行日】2022-03-16
(54)【発明の名称】機密データ管理装置、プログラム及び記録媒体
(51)【国際特許分類】
H04L 9/08 20060101AFI20220309BHJP
G06F 21/62 20130101ALI20220309BHJP
【FI】
H04L9/08 A
G06F21/62 309
(21)【出願番号】P 2021539570
(86)(22)【出願日】2020-09-30
(86)【国際出願番号】 JP2020037347
(87)【国際公開番号】W WO2021181736
(87)【国際公開日】2021-09-16
【審査請求日】2021-07-06
(32)【優先日】2020-03-13
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】591071230
【氏名又は名称】株式会社ソリトンシステムズ
(74)【代理人】
【識別番号】100115716
【氏名又は名称】山本 隆雄
(72)【発明者】
【氏名】ハンセン ボー スティグ
(72)【発明者】
【氏名】モーリア エミル
(72)【発明者】
【氏名】ジョージェフ キリル
(72)【発明者】
【氏名】ワン トーマス
(72)【発明者】
【氏名】ワン ユシャオ
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2007-013484(JP,A)
【文献】特開2015-022460(JP,A)
【文献】特開2005-318229(JP,A)
【文献】特開2019-149767(JP,A)
【文献】特開2019-079092(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
複数の機密データアクセス支援端末と通信す
る機密データ管理装置であって、
所定のデータ長の機密データ保護コードを生成する機密データ保護コード生成部と、
前記機密データ保護コード
生成部により生成された前記機密データ保護コードを入力とする鍵導出関数を用いて、第1の共通鍵を生成する共通鍵生成部と、
前記
共通鍵生成部により生成された前記第1の共通鍵を用いて
、機密データを暗号化
して暗号化機密データを生成する機密データ暗号化部と、
前記
複数の機密データアクセス支援端末
のそれぞれから提供された公開鍵を用いて、前記機密データ保護コードを
前記公開鍵毎に暗号化
して、複数の暗号化機密データ保護コードを生成する機密データ保護コード暗号化部と、
前記
暗号化機密データの
生成後に前記第1の共通鍵及び前記機密データを削除し、前記
複数の暗号化機密データ保護コードの
生成後に前記機密データ保護コードを削除する削除部と、
前記
暗号化機密データの復号開始の操作が行われた
場合に、前記
複数の公開鍵の1つである第1の公開鍵を提供した機密データアクセス支援端末へ、
当該第1の公開鍵によって暗号化
して生成された
第1の暗号化機密データ保護コードを送信する送信部と、
前記
第1の公開鍵を提供した機密データアクセス支援端末から、前記
第1の暗号
化機密データ保護コード
を復号
することによって生成された機密データ保護コードを受信する受信部と、
第2の共通鍵を用いて、前記暗号
化機密データを復号する機密データ復号部と、
前記暗号化
機密データの復号開始の操作が行われ、前記第1の暗号化機密データ保護コード
が前記送信部によって送信
されない場合に、前記
第1の公開鍵とは異なる第2の公開鍵によって暗号化
して生成された
第2の暗号化機密データ保護コードを表示する表示部と、
前記
第2の公開鍵を提供した機密データアクセス支援端末が、前記表示部に表示された前記
第2の暗号
化機密データ保護コード
を復号することによって
生成された機密データ保護コードを入力する入力部と、を備え、
前記共通鍵生成部は、前記受信部により前記機密データ保護コードが受信された場合は、前記受信部により受信された前記機密データ保護コードを入力とする前記鍵導出関数を用いて、前記機密データ復号部で使用される前記第2の共通鍵を生成し、前記入力部により前記機密データ保護コードが入力された場合は、前記入力部により入力された前記機密データ保護コードを入力とする前記鍵導出関数を用いて、前記機密データ復号部で使用される前記第2の共通鍵を生成する
機密データ管理装置。
【請求項2】
前記送信部は、前記
複数の暗号化機密データ保護コードの
生成後に、前記公開鍵を提供した前記機密データアクセス支援端末の各々へ、対応する公開鍵で暗号化して生成された暗号化機密データ保護コードの内、
所定のデータ長の第1の部分データを除外した第2の部分データを送信し、前記
暗号化機密データの復号開始の操作が行われた
場合に、前記第1
の公開鍵を提供した前記機密データアクセス支援端末へ、前記第1の暗号化機密データ保護コードの前記第1の部分データを送信し、
前記受信部は、前記
第1の公開鍵を提供した前記機密データアクセス支援端末から、
前記第1の暗号化機密データ保護コードの前
記第2の部分データ
及び前記第1の部分データを復号
することによって生成された機密データ保護コードを受信し、
前記表示部は、
前記暗号化機密データの復号開始の操作が
行われ、前記
第1の暗号化機密データ保護コードの前記第1の部分データ
が前記送信部によって送信
されない場合に、前記第2の暗号化機密データ保護コードの前記第1の部分データを表示し、
前記入力部は、前記第2の
公開鍵を提供した前記機密データアクセス支援端末が、前記第2の暗号化機密データ保護コードの前記第2の部分データ及び前記表示部に表示された前記第1の部分データ
を復号することによって生成された機密データ保護コードを入力する
請求項1に記載の機密データ管理装置。
【請求項3】
前記送信部は、前記
複数の暗号化機密データ保護コードの
生成後に、前記
公開鍵を提供した前記機密データアクセス支援端末の各々へ、対応する公開鍵で暗号化
して生成された
暗号化機密データ保護コードの全部を送信し、
前記受信部は、前記
暗号化機密データの復号開始の操作が行われた
場合に、
前記第1の公開鍵を提供した前記機密データアクセス支援端末から、前記
第1の暗号化機密データ保護コードの前記全部
を復号
することによって生成された機密データ保護コードを受信し、
前記入力部は、
前記暗号化機密データの復号開始の
操作が行われ、前記第1の暗号化機密データ保護コード
の前記全部を復号することによって
生成された前記機密データ保護コードが前記受信部によって受信されない場合に、前記第2の公開鍵を提供した前記機密データアクセス支援端末が、前記第2の暗号化機密データ保護コードを復号することによって生成された機密データ保護コードを入力する
請求項1に記載の機密データ管理装置。
【請求項4】
前記機密データ保護コード生成部は、前記機密データ復号部により復号された
前記機密データがユーザにアクセスされた後に、
新たな機密データ保護コードを生成し、
前記共通鍵生成部は、
前記新たな機密データ保護コー
ドを入力とする前記鍵導出関数を用いて、第3の共通鍵を生成し、
前記機密データ暗号化部は、前記
共通鍵生成部により生成された前記第3の共通鍵を用いて、前記
機密データ復号部により復号された機密データを再び暗号化
して新たな暗号化機密データを生成し、
前記機密データ保護コード暗号化部は、前記
複数の機密データアクセス支援端末のそれぞれから提供された前記公開鍵を用いて、前記
新たな機密データ保護コードを
前記公開鍵毎に暗号化
して、複数の新たな暗号化機密データ保護コードを生成し、
前記削除部は、前記
新たな暗号化機密データの
生成後に前記第3の共通鍵及び
復号された前記機密データを削除し、前記
複数の
新たな暗号化機密データ保護コードの
生成後に前記
新たな機密データ保護コードを削除する
請求項1から
請求項3のいずれか1項に記載の機密データ管理装置。
【請求項5】
前記共通鍵生成部は、前記機密データ保護コードと自身が保有する固有情報とを組み合わせた情報を入力とする前記鍵導出関数を用いて、前記第1の共通鍵
、前記第2の共通鍵
及び前記第3の共通鍵を生成する
請求項4に記載の機密データ管理装置。
【請求項6】
複数の機密データアクセス支援端末と通信す
る機密データ管理装置であって、
所定のデータ長の機密データ保護コードを生成する機密データ保護コード生成部と、
前記機密データ保護コード
生成部により生成された前記機密データ保護コードを入力とする鍵導出関数を用いて、第1の共通鍵を生成する第1の共通鍵生成部と、
前記第1の共通鍵生成部により生成された前記第1の共通鍵を用いて
、機密データを暗号化
して暗号化機密データを生成する機密データ暗号化部と、
前記
複数の機密データアクセス支援端末
のそれぞれと事前に交換された所定の情報を用いて、
前記複数の機密データアクセス支援端末の各々に対応した第2の共通鍵を生成する第2の共通鍵生成部と、
前記複数の機密データアクセス支援端末の各々に対応した前記第2の共通鍵を用いて、前記機密データ保護コードを
前記第2の共通鍵毎に暗号化
して、複数の暗号化機密データ保護コードを生成する機密データ保護コード暗号化部と、
前記
暗号化機密データの
生成後に前記第1の共通鍵及び前記機密データを削除し、前記
複数の暗号化機密データ保護コードの
生成後に前記機密データ保護コードを削除する削除部と、
前記
暗号化機密データの復号開始の操作が行われた
場合に、前記
複数の所定の情報の1つである第1の所定の情報を事前に交換した機密データアクセス支援端末へ、
当該第1の所定の情報を用いて生成された第3の共通鍵によって暗号化して生成された第1の暗号化機密データ保護コードを送信する送信部と、
前記第1の所定の情報を事前に交換した前記機密データアクセス支援端末から、前記
第1の暗号化機密データ保護コード
を復号
することによって生成された機密データ保護コードを受信する受信部と、
第4の共通鍵を用いて、前記暗号
化機密データを復号する機密データ復号部と、
前記
暗号化機密データの
復号開始の操作が行われ、前記
第1の暗号化機密データ保護コード
が前記送信部によって送信されない場合に、前記第1の所定の情報とは異なる第2の所定の情報を用いて生成された第5の共通鍵に
よって暗号化
して生成された
第2の暗号化機密データ保護コードを表示する表示部と、
前記第2の所定の情報を事前に交換した機密データアクセス支援端末が、前記表示部に表示された前記
第2の暗号化機密データ保護コード
復号することによって
生成された機密データ保護コードを入力する入力部と、を備え、
前記第1の共通鍵生成部は、前記受信部により前記機密データ保護コードが受信された場合は、前記受信部により受信された前記機密データ保護コードを入力とする前記鍵導出関数を用いて、前記機密データ復号部で使用される前記
第4の共通鍵を生成し、前記入力部により前記機密データ保護コードが入力された場合は、前記入力部により入力された前記機密データ保護コードを入力とする前記鍵導出関数を用いて、前記機密データ復号部で使用される前記
第4の共通鍵を生成する
機密データ管理装置。
【請求項7】
前記機密データ復号部による前記暗号
化機密データの復号の成功あるいは失敗を判定する判定部を更に備え、
前記機密データ保護コード生成部は、前記判定部による判定が成功の場合、前記機密データ復号部により復号された
前記機密データがユーザにアクセスされた後に、
新たな機密データ保護コードを生成し、
前記第1の共通鍵生成部は、
前記新たな機密データ保護コー
ドを入力とする前記鍵導出関数を用いて、
第6の共通鍵を生成し、
前記機密データ暗号化部は、前記
第1の共通鍵生成部により生成された前記第6の共通鍵を用いて、前記
機密データ復号部により復号された機密データを再び暗号化
して新たな暗号化機密データを生成し、
前記機密データ保護コード暗号化部は、前記
複数の
機密データアクセス支援端末の各々に対応した前記第2の共通鍵を用いて、前記
新たな機密データ保護コードを前記第2の
共通鍵毎に暗号化して、複数の新たな暗号化機密データ保護コードを
生成し、
前記削除部は、前記
新たな暗号化機密データの
生成後に前記
第6の共通鍵及び前記機密データを削除し、前記
複数の
新たな暗号化機密データ保護コードの
生成後に前記
新たな機密データ保護コードを削除する
請求項6に記載の機密データ管理装置。
【請求項8】
前記
第1の共通鍵生成部は、前記機密データ保護コードと自身が保有する固有情報とを組み合わせた情報を入力とする前記鍵導出関数を用いて、前記第1
の共通鍵、前記第4の共通鍵及び前記第6の共通鍵を生成する
請求項7に記載の機密データ管理装置。
【請求項9】
コンピュータを請求項1から請求項8のいずれか1項に記載の機密データ管理装置の各部として機能させるためのプログラム。
【請求項10】
請求項9に記載のプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機密データ管理装置、プログラム及び記録媒体に関する。
【背景技術】
【0002】
従来、共通鍵暗号及び公開鍵暗号の両方の暗号技術を用いてファイルを暗号化するシステムに関する技術が開示されている(特許文献1参照)。当該システムは、共通鍵を用いてファイルを暗号化し、当該共通鍵を、ユーザや管理人の公開鍵によって暗号化する。暗号化された共通鍵は、暗号化されたファイルと共に保存される。
【0003】
システムは、ユーザからファイルの読出し要求を受信し、適切な秘密鍵が使用された場合に当該暗号化された共通鍵を復号し、得られた共通鍵を用いて暗号化されたファイルを復号して、ユーザに返信する。
【0004】
また、記憶媒体に暗号化データを保存するユーザ側データ処理装置と、その暗号化データが復号不能となる非常時に復旧作業を行う復旧処理装置とが、分担・協業してデータを復旧する技術が開示されている(特許文献2)。
【0005】
復旧処理装置は、公開鍵と個人鍵のペアを作成して公開鍵のみをユーザ側装置に渡す。ユーザ側装置は、データを暗号化するための暗号鍵を作成し、公開鍵でその暗号鍵を暗号化して記憶媒体の所定箇所に書き込む。非常時になると、ユーザ側装置は、暗号化された暗号鍵を記憶媒体から取り出して復旧処理装置に渡す。復旧処理装置は、個人鍵によって復号化した暗号鍵をユーザ側装置に送り返す。その結果、ユーザ側装置は、データの復旧が可能になる。
【0006】
また、第1のデバイスに格納されたコンテンツを保護するためのコンテンツ保護鍵を、第2のデバイスで管理された秘密鍵/公開鍵対の公開鍵で暗号化することで、当該第2のデバイスで認証可能なユーザだけがその秘密鍵を用いて暗号化コンテンツ保護鍵を復号し、得られたコンテンツ保護鍵で第1のデバイスに格納されたコンテンツを復号、利用できるようにする技術が開示されている(特許文献3)。
【0007】
また、第1及び第2のシステムとの間で、マスター鍵を用いて暗号化したメッセージを双方向通信する技術が開示されている(特許文献4参照)。
【0008】
第1のシステムは、一対の第1の公開鍵及び第1の秘密鍵と、一対の第2の公開鍵及び第2の秘密鍵とを生成する。第2のシステムは、一対の第3の公開鍵及び第3の秘密鍵と、一対の第4の公開鍵及び第4の秘密鍵とを生成する。但し、第2及び第4の公開鍵は、第1及び第2のシステムの間で共有される機密情報に基づいて生成される。
【0009】
第1及び第2のシステムは、互いに自身の2つの公開鍵を交換する。第1のシステムは、第1及び第2の秘密鍵と、第3及び第4の公開鍵と、に基づいてマスター鍵を生成する。第2のシステムは、第1及び第2の公開鍵と、第3及び第4の秘密鍵と、に基づいてマスター鍵を生成する。第1及び第2でそれぞれ生成されるマスター鍵は、同じものである。このため、第1及び第2のシステムは、公開鍵を交換することでマスター鍵を共有して、この共有鍵を用いてメッセージを交換する。
【先行技術文献】
【特許文献】
【0010】
【文献】米国特許第6249866号公報
【文献】特開2007-13484号公報
【文献】米国特許出願公開2007/0300080号明細書
【文献】特許第4701238号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、従来技術の問題を解決するために提案されたものである。
【課題を解決するための手段】
【0012】
本発明の第1態様である機密データ管理装置は、複数の機密データアクセス支援端末と通信する機密データ管理装置であって、所定のデータ長の機密データ保護コードを生成する機密データ保護コード生成部と、前記機密データ保護コード生成部により生成された前記機密データ保護コードを入力とする鍵導出関数を用いて、第1の共通鍵を生成する共通鍵生成部と、前記共通鍵生成部により生成された前記第1の共通鍵を用いて、機密データを暗号化して暗号化機密データを生成する機密データ暗号化部と、前記複数の機密データアクセス支援端末のそれぞれから提供された公開鍵を用いて、前記機密データ保護コードを前記公開鍵毎に暗号化して、複数の暗号化機密データ保護コードを生成する機密データ保護コード暗号化部と、前記暗号化機密データの生成後に前記第1の共通鍵及び前記機密データを削除し、前記複数の暗号化機密データ保護コードの生成後に前記機密データ保護コードを削除する削除部と、前記暗号化機密データの復号開始の操作が行われた場合に、前記複数の公開鍵の1つである第1の公開鍵を提供した機密データアクセス支援端末へ、当該第1の公開鍵によって暗号化して生成された第1の暗号化機密データ保護コードを送信する送信部と、前記第1の公開鍵を提供した機密データアクセス支援端末から、前記第1の暗号化機密データ保護コードを復号することによって生成された機密データ保護コードを受信する受信部と、第2の共通鍵を用いて、前記暗号化機密データを復号する機密データ復号部と、前記暗号化機密データの復号開始の操作が行われ、前記第1の暗号化機密データ保護コードが前記送信部によって送信されない場合に、前記第1の公開鍵とは異なる第2の公開鍵によって暗号化して生成された第2の暗号化機密データ保護コードを表示する表示部と、前記第2の公開鍵を提供した機密データアクセス支援端末が、前記表示部に表示された前記第2の暗号化機密データ保護コードを復号することによって生成された機密データ保護コードを入力する入力部と、を備える。
前記共通鍵生成部は、前記受信部により前記機密データ保護コードが受信された場合は、前記受信部により受信された前記機密データ保護コードを入力とする前記鍵導出関数を用いて、前記機密データ復号部で使用される前記第2の共通鍵を生成し、前記入力部により前記機密データ保護コードが入力された場合は、前記入力部により入力された前記機密データ保護コードを入力とする前記鍵導出関数を用いて、前記機密データ復号部で使用される前記第2の共通鍵を生成する。
【0013】
本発明の第2態様である機密データ管理装置は、複数の機密データアクセス支援端末と通信する機密データ管理装置であって、所定のデータ長の機密データ保護コードを生成する機密データ保護コード生成部と、前記機密データ保護コード生成部により生成された前記機密データ保護コードを入力とする鍵導出関数を用いて、第1の共通鍵を生成する第1の共通鍵生成部と、前記第1の共通鍵生成部により生成された前記第1の共通鍵を用いて、機密データを暗号化して暗号化機密データを生成する機密データ暗号化部と、前記複数の機密データアクセス支援端末のそれぞれと事前に交換された所定の情報を用いて、前記複数の機密データアクセス支援端末の各々に対応した第2の共通鍵を生成する第2の共通鍵生成部と、前記複数の機密データアクセス支援端末の各々に対応した前記第2の共通鍵を用いて、前記機密データ保護コードを前記第2の共通鍵毎に暗号化して、複数の暗号化機密データ保護コードを生成する機密データ保護コード暗号化部と、前記暗号化機密データの生成後に前記第1の共通鍵及び前記機密データを削除し、前記複数の暗号化機密データ保護コードの生成後に前記機密データ保護コードを削除する削除部と、前記暗号化機密データの復号開始の操作が行われた場合に、前記複数の所定の情報の1つである第1の所定の情報を事前に交換した機密データアクセス支援端末へ、当該第1の所定の情報を用いて生成された第3の共通鍵によって暗号化して生成された第1の暗号化機密データ保護コードを送信する送信部と、前記第1の所定の情報を事前に交換した前記機密データアクセス支援端末から、前記第1の暗号化機密データ保護コードを復号することによって生成された機密データ保護コードを受信する受信部と、第4の共通鍵を用いて、前記暗号化機密データを復号する機密データ復号部と、前記暗号化機密データの復号開始の操作が行われ、前記第1の暗号化機密データ保護コードが前記送信部によって送信されない場合に、前記第1の所定の情報とは異なる第2の所定の情報を用いて生成された第5の共通鍵によって暗号化して生成された第2の暗号化機密データ保護コードを表示する表示部と、前記第2の所定の情報を事前に交換した機密データアクセス支援端末が、前記表示部に表示された前記第2の暗号化機密データ保護コード復号することによって生成された機密データ保護コードを入力する入力部と、を備える。
前記第1の共通鍵生成部は、前記受信部により前記機密データ保護コードが受信された場合は、前記受信部により受信された前記機密データ保護コードを入力とする前記鍵導出関数を用いて、前記機密データ復号部で使用される前記第4の共通鍵を生成し、前記入力部により前記機密データ保護コードが入力された場合は、前記入力部により入力された前記機密データ保護コードを入力とする前記鍵導出関数を用いて、前記機密データ復号部で使用される前記第4の共通鍵を生成する。
【0014】
本発明の第3態様であるプログラムは、コンピュータを前記機密データ管理装置の各部として機能させるためのプログラムである。
【0015】
本発明の第4態様である記録媒体は、前記プログラムが記録された記録媒体である。
【発明の効果】
【0016】
本発明は、機密データの安全性を向上させることができる。
【図面の簡単な説明】
【0017】
【
図1】
図1は、第1実施形態の一例である機密データ管理システムを示す概要図である。
【
図2】
図2は、機密データアクセス支援端末及び機密データ管理装置として使用されるコンピュータの一例を示すブロック図である。
【
図3】
図3は、第1実施形態における機密データの初期暗号化ルーチンを示すフローチャートである。
【
図4】
図4は、第1実施形態におけるステップS13の詳細な処理である機密データの暗号化サブルーチンを示すフローチャートである。
【
図5】
図5は、第1実施形態における機密データの暗号化後に、機密データアクセス支援端末及び機密データ管理装置のそれぞれにおいて保存されたデータを示す概念図である。
【
図6】
図6は、第1実施形態における機密データの復号ルーチンを示すフローチャートである。
【
図7】
図7は、複数の機密データアクセス支援端末及び機密データ管理装置のそれぞれにおいて保存されたデータを示す概念図である。
【
図8】
図8は、第2実施形態における機密データの暗号化サブルーチンを示すフローチャートである。
【
図9】
図9は、第2実施形態における機密データの暗号化後に、機密データアクセス支援端末及び機密データ管理装置のそれぞれにおいて保存されたデータを示す概念図である。
【
図10】
図10は、第2実施形態における機密データの復号ルーチンを示すフローチャートである。
【
図11】
図11は、第3実施形態における機密データの初期暗号化ルーチンを示すフローチャートである。
【
図12】
図12は、第3実施形態における機密データの暗号化サブルーチンを示すフローチャートである。
【
図13】
図13は、第3実施形態における機密データの暗号化後に、機密データアクセス支援端末及び機密データ管理装置のそれぞれにおいて保存されたデータを示す概念図である。
【
図14】
図14は、第3実施形態における機密データの復号ルーチンを示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態について、添付図面を参照しながら、詳細に説明する。 ここでは、すべてではないが、複数の実施形態が示されている。本発明の実施形態は、他にも多くの様々な形態で具現化される。すなわち本発明の実施形態は本明細書に記載された実施形態に限定されると解釈すべきではない。これらの実施形態は、明細書の記載要件を満たすように提供される。なお、図面全体において、同じ数字は、同じ要素・ステップを指す。本発明の各実施形態は、例えば、次のようなケースに適用可能であるが、その他のケースにも適用可能である。
【0019】
第1のケースは、PC(すなわち、コンピューティングデバイス)のログイン時に、機密データ(例えばPCのパスワードまたはPCのパスワードが暗号化された変形データなど)を一時的に利用可能にするケースである。これにより、例えばスマートフォンを利用したパスワード不要のログイン処理が実現される。
【0020】
第2のケースは、複数のパスワードを保存するパスワードデータベースを管理するためのマスターパスワードを一時的に利用可能にするケースである。なお、マスターパスワードは、暗号化されたパスワードデータベース全体を復号する場合、またはパスワードデータベースから読み出された個々の暗号化されたパスワードを復号する場合などに、利用される。
【0021】
第3のケースは、スマートフォンを用いて、秘密の小部屋への出入りを一時的に許可する入退室管理システムのケースである。第4のケースは、スマートフォンを用いて、自動車の操作を一時的(乗車中)に可能にするエンジンキーのケースである。
【0022】
[第1実施形態]
図1は、第1実施形態の一例である機密データ管理システム1を示す概要図である。機密データ管理システム1は、機密データアクセス支援端末Bと、機密データ管理装置Aと、を備えている。機密データアクセス支援端末B及び機密データ管理装置Aとしては、例えばコンピュータが使用される。
【0023】
図2は、本実施形態において機密データアクセス支援端末B及び機密データ管理装置Aとして使用されるコンピュータ100の一例を示すブロック図である。
【0024】
コンピュータ100は、例えば、ユーザの操作情報やその他の情報が入力される入力部101、暗号化処理などを行うCPU102、データの記憶/読出しを行う記憶部103、データのワークエリアであるRAM104、CPU102の制御プログラムなどが記憶されたROM105、ユーザインターフェースやCPU102の処理結果などを表示する表示部106、ネットワークを介して外部機器とデータ通信を行う通信部107を有する。
【0025】
通信部107は、有線、無線、P2P、その他の既存のネットワーク通信技術を用いてデータ通信が可能である。なお、通信部107が提供する機能は、後述するように、2次元バーコード画像(イメージデータ)を表示するディスプレイと、当該2次元バーコード画像を撮影するカメラによっても体現可能である。さらに、通信部107は、テキストを表示するディスプレイと、ユーザが当該テキストを認識して直接入力するためのキーボードによっても体現可能である。
【0026】
コンピュータ100は、
図2に示した形態に限定されるものではなく、ハードウェア、ソフトウェア、又はそれらの両方を備えた形態でもよい。入力部101は、先述したテキストデータを入力するためのキーボードやイメージデータを入力するためのカメラ、操作パネルなどであってもよい。また、コンピュータ100は、
図2では互いに独立した入力部101及び表示部106を備えているが、それらの代わりに、入力部101と表示部106の機能が一体になったタッチパネルを備えてもよい。
【0027】
また、コンピュータ100は、デスクトップ型、ラップトップ(ノートブック)型、タブレット型のいずれであってもよいし、いわゆるスマートフォンであってもよい。すなわち、コンピュータ100は、後述する
図3及び
図4などのそれぞれのフローチャートの各ステップを実行可能であれば、どのような形態であっても適用可能である。
【0028】
機密データアクセス支援端末Bは、例えば、携帯可能であり、持ち運びの容易な大きさのコンピュータ100であって、例えばいわゆるスマートフォンが好ましい。機密データ管理装置Aは、機密データその他の様々なデータを取り扱うコンピュータ100である。
【0029】
[暗号化処理(機密データSDの暗号化)]
つぎに、機密データ管理装置Aに保存されている機密データSDの最初の暗号化処理について説明する。暗号化処理の際には、機密データアクセス支援端末Bと機密データ管理装置Aとの間でデータの送受信が行われる。
【0030】
データの送受信の形態は、一方のコンピュータ100からデータが出力され、他方のコンピュータ100へ当該データが入力されるのであれば、特に限定されるものではない。データの送受信の形態は、例えば次のような(1)~(3)のケースが該当する。
【0031】
(1)一方のコンピュータ100の表示部106に2次元バーコード画像又はテキスト画像が表示され、他方のコンピュータ100の入力部101(例えばカメラ)がその画像を撮影し、CPU102がその画像を復号又はテキスト認識するケース
(2)ネットワーク通信(有線又は無線)を経由して、一方のコンピュータ100の通信部107がデータを送信し、他方のコンピュータ100の通信部107が当該データを受信するケース
(3)一方のコンピュータ100の表示部106にテキスト画像が表示され、当該画像として描画されたテキストデータをユーザが認識し他方のコンピュータ100の入力部101(例えばキーボード)を操作することによって、他方のコンピュータ100の入力部101に当該テキストデータが入力されるケース
【0032】
図3は、第1実施形態における機密データSDの初期暗号化ルーチンを示すフローチャートである。機密データ管理装置A又は機密データアクセス支援端末Bに初期暗号化開始の操作が行われた後に、初期暗号化ルーチンが実行される。
なお、以下、「暗号鍵」又は単なる「鍵」という用語は、暗号化アルゴリズムの機能出力を決定するデジタル情報の一片を示す。つまり、暗号鍵又は鍵は、平文から暗号文への変換、又はその逆の変換方法を決定する。
【0033】
ステップS1では、機密データアクセス支援端末Bは、秘密鍵PriKB及びそれに対応する公開鍵PubKBを生成する。
ステップS2では、機密データアクセス支援端末Bは、公開鍵PubKBを機密データ管理装置Aへ送信する。
【0034】
ステップS11では、機密データ管理装置Aは、機密データアクセス支援端末Bから送信された公開鍵PubKBを受信して保存する。
ステップS12では、機密データ管理装置Aは、例えばパスワードなどの機密データSDを準備する。なお、機密データSDは、外部装置から送信されたものでもよいし、予め機密データ管理装置A内に保存されていたものでもよい。
【0035】
ステップS13では、機密データ管理装置Aは、機密データSDを暗号化する。なお、ステップS13の詳細は後述する。
【0036】
ステップS14では、機密データ管理装置Aは、機密データSDを削除する。これにより、機密データ管理装置Aには、機密データSDは存在しておらず、暗号化された機密データSDのみが記憶される。
【0037】
図4は、
図3におけるステップS13の詳細な処理である機密データSDの暗号化サブルーチンを示すフローチャートである。
ステップS21では、機密データ管理装置Aは、機密データ保護コードSDPCを生成する。なお、機密データ保護コードSDPCは、ランダムに生成され、ユーザによるタイプ入力が可能な程度の短い文字列として構成される秘密データである。機密データ保護コードSDPCは、例えば、256バイト又はそれ以下の文字列であればよい。なお、機密データ保護コードSDPCは、16バイトの文字列が最も好ましいが、それ以下の例えばキャッシュカードの暗証番号の慣習に従い、4バイトの文字列の場合もある。
【0038】
ステップS22では、機密データ管理装置Aは、予め定義された鍵導出関数を用いて、機密データ保護コードSDPCを入力とした共通鍵SymKを生成する。ここで鍵導出関数とは、短いデータ長の秘密の値を入力として、暗号化ハッシュ関数などの疑似乱数関数を用いて、長いデータ長の暗号化鍵を導出する関数をいう。共通鍵SymKの長さは、暗号化された機密データSDの安全性が十分に担保される程度の長さ、例えば、256ビットである。
【0039】
ステップS23では、機密データ管理装置Aは、共通鍵SymKを用いて機密データSDを暗号化して、暗号化機密データSymK[SD]を生成する。暗号化機密データSymK[SD]は、機密データ管理装置Aの内部に保存される。
ステップS24では、機密データ管理装置Aは、共通鍵SymKを削除する。
【0040】
ステップS25では、機密データ管理装置Aは、機密データアクセス支援端末Bから受信した公開鍵PubKBを用いて、ステップS21で生成された機密データ保護コードSDPCを暗号化して、暗号化機密データ保護コードPubKB[SDPC]を生成する。なお、公開鍵PubKBは、機密データアクセス支援端末Bから直接受信したものに限らず、機密データ管理装置Aが、機密データアクセス支援端末Bが登録した公開鍵データベースを検索した結果として入手したものでもよい。
【0041】
なお、公開鍵暗号方式の1つである楕円曲線暗号(Elliptic Curve Integrated Encryption Scheme:ECIES)は、よく知られているRSA暗号よりも、短い鍵の長さで同程度の暗号化強度を得ることができる。一般に楕円曲線暗号では、224ビット以上の鍵長が推奨される。そこで本実施形態では、224ビットの鍵を持つ楕円曲線暗号(以下、ECIES224という)を使用する。
【0042】
いま、機密データ保護コードSDPCが16バイトであると仮定すると、機密データ保護コード楕円曲線暗号を用いた場合、暗号化機密データ保護コードPubKB[SDPC]の長さは、1008ビット(126バイト)となり、これはBase64変換の168文字に相当する。これに対し、同程度の暗号化強度を有するRSA暗号であるRSA2048を使用した場合、暗号化機密データ保護コードPubKB[SDPC]の長さは、2048ビット、すなわち楕円曲線暗号を用いた場合と比較して約2倍の長さになってしまう。
【0043】
ステップS26では、機密データ管理装置Aは、ステップS21で生成された機密データ保護コードSDPCを削除する。
【0044】
図5は、
図3及び
図4で示した機密データSDの暗号化後に、機密データアクセス支援端末B及び機密データ管理装置Aのそれぞれにおいて保存されたデータを示す概念図である。
【0045】
機密データSDの暗号化後、機密データアクセス支援端末Bには、秘密鍵PriKBが保存される。一方、機密データ管理装置Aには、公開鍵PubKB、暗号化機密データ保護コードPubKB[SDPC]、及び暗号化機密データSymK[SD]が保存される。
【0046】
すなわち、機密データ管理装置Aでは、機密データ保護コードSDPCは、そのままの状態では保存されていない。このため、第三者は、正当な復号処理を行わずに機密データSDにアクセスすることができない。
【0047】
[復号処理(機密データSDの復号と利用)]
つぎに、暗号化された機密データSDの復号処理について説明する。復号処理の際にも、機密データアクセス支援端末Bと機密データ管理装置Aとの間でデータの送受信が行われる。
【0048】
機密データ管理装置Aは、最初に、暗号化機密データ保護コードPubKB[SDPC]を機密データアクセス支援端末Bへ送信し、その後、機密データアクセス支援端末Bから返信される機密データ保護コードSDPCを用いて共通鍵SymKを再生成する。機密データ管理装置Aは、当該共通鍵SymKと用いて暗号化機密データSymK[SD]を復号して、機密データSDを得る。具体的には、機密データアクセス支援端末B及び機密データ管理装置Aでは、次の処理が行われる。
【0049】
図6は、第1実施形態における機密データSDの復号ルーチンを示すフローチャートである。機密データ管理装置A又は機密データアクセス支援端末Bに復号開始の操作が行われた後に、復号ルーチンが実行される。
ステップS31では、機密データアクセス支援端末Bは、機密データ管理装置Aから送信された暗号化機密データ保護コードPubK
B[SDPC]を受信する。暗号化機密データ保護コードPubK
B[SDPC]は、後述するステップS41において、機密データ管理装置Aから送信される。
【0050】
ステップS32では、機密データアクセス支援端末Bは、ユーザの認証を行う。認証が成功した後は、ユーザは、第1実施形態だけでなく他の実施形態においても、機密データアクセス支援端末Bを自由に操作することができる。
【0051】
ステップS33では、機密データアクセス支援端末Bは、保存されている秘密鍵PriKBを用いて、機密データ管理装置Aから送信された暗号化機密データ保護コードPubKB[SDPC]を復号して、機密データ保護コードSDPCを得る。
【0052】
ステップS34では、機密データアクセス支援端末Bは、ステップS33で得られた機密データ保護コードSDPCを機密データ管理装置Aへ送信する。
【0053】
一方、ステップS41では、機密データ管理装置Aは、内部に保存されている暗号化機密データ保護コードPubKB[SDPC]を読み出して、それを機密データアクセス支援端末Bへ送信する。その後、機密データアクセス支援端末Bは、上述したステップS31~S34の処理を実行して、機密データ保護コードSDPCを機密データ管理装置Aへ送信する。
【0054】
ステップS42では、機密データ管理装置Aは、機密データアクセス支援端末Bから機密データ保護コードSDPCを受信する。
ステップS43では、機密データ管理装置Aは、ステップS42で受信された機密データ保護コードSDPCを入力とし、
図4のステップS22で用いた鍵導出関数を用いて共通鍵SymKを再生成する。
【0055】
ステップS44では、機密データ管理装置Aは、内部に保存されている暗号化機密データSymK[SD]を読み出して、ステップS43で再生成された共通鍵SymKを用いて復号処理を行い、機密データSDを得る。これにより、
図3のステップS12で用意された機密データSDが完全に復元される。
【0056】
ステップS45及びステップS46では、機密データ管理装置Aは、機密データSDを利用し、そして、後述するステップS47及びステップS48の処理の終了を確認後、当該機密データSDを削除する。
【0057】
ステップS47では、機密データ管理装置Aは、暗号化機密データ保護コードPubK
B[SDPC]及び暗号化機密データSymK[SD]を削除する。
ステップS48では、機密データ管理装置Aは、
図4のサブルーチンを実行して、再び機密データSDを暗号化する。
【0058】
以上のように、本実施形態では、暗号化された機密データSDを復元するために、以下に示すプロセス(1)~(3)が必要になる。
プロセス1:機密データ保護コードSDPCの復元
プロセス2:機密データ保護コードSDPCを用いた共通鍵SymKの再生成
プロセス3:再生成された共通鍵SymKを用いた復号処理(機密データSDの復元)
【0059】
機密データ管理装置Aは、機密データアクセス支援端末Bから提供される公開鍵PubK
Bを用いて機密データ保護コードSDPCを暗号化できるが、それを復元することができない。つまり、機密データ管理装置Aは、自身が保存するデータ(
図5)だけでは、プロセス1を実行することができず、その結果、機密データSDを復元できない。また、機密データ管理装置A内のすべてのデータが外部に漏洩しても、漏洩したデータだけでは機密データSDを復元することができないので、機密データSDの安全性が担保される。
【0060】
そこで、機密データ管理装置Aは、機密データアクセス支援端末Bにプロセス1を実行させて、機密データアクセス支援端末Bから機密データ保護コードSDPCを受信することで初めて、プロセス2及び3を実行して、機密データSDを復元することができる。この結果、単一のコンピュータ100がプロセス1~3をすべて行う場合に比べて、機密データSDが外部に漏洩するリスクを抑制することができる。
【0061】
ここまでは、機密データ管理装置Aは、1つの機密データアクセス支援端末Bを使用して機密データSDを暗号化したが、この実施形態に限定されるものではない。例えば、機密データ管理装置Aは、複数の機密データアクセス支援端末Bを使用して機密データSDを暗号化してもよい。
【0062】
この場合、機密データ管理装置Aは、最初に機密データSDの複製を生成して、機密データアクセス支援端末Bの個数と同じ数の機密データSDを用意する。つぎに、機密データ管理装置Aは、機密データアクセス支援端末B毎に、
図3から
図4の各ルーチンを実施して、各々の機密データSDを暗号化する。この結果、次のデータが得られる。
【0063】
図7は、複数の機密データアクセス支援端末B1、B2、・・・によって各々の機密データSDが暗号化された場合に、複数の機密データアクセス支援端末B1、B2、・・・及び機密データ管理装置Aのそれぞれにおいて保存されたデータを示す概念図である。
【0064】
複数の機密データアクセス支援端末B1、B2、・・・は、それぞれが固有の秘密鍵PriKB1、PriKB2、・・・と、それらの各々に対応する公開鍵PubKB1、PubKB2、・・・を生成する。そして公開鍵PubKB1、PubKB2、・・・は、機密データ管理装置Aに送信される。
【0065】
機密データ管理装置Aは、受信した公開鍵PubKB1、PubKB2、・・・を用いて、それぞれに対応した暗号化機密データ保護コードPubKB1[SDPC]、PubKB2[SDPC]、・・・及び、暗号化機密データSymK1[SD]、SymK2[SD]、・・・を生成する。
【0066】
この結果、
図7に示すように、機密データ管理装置Aには、機密データアクセス支援端末B毎に、データ群(公開鍵PubK
B、暗号化機密データ保護コードPubK
B[SDPC]、暗号化機密データSymK[SD])が保存される。複数の機密データアクセス支援端末Bは、万一いずれかを紛失した場合に予備の機密データアクセス支援端末Bとして用いられる他、そのうちの少なくとも1つを、機密データ管理システム1(
図1)を管理する管理者に預けてもよい。この場合、管理者に預けられた機密データアクセス支援端末Bは、緊急時に使用される「管理端末」となる。
【0067】
ユーザは、例えば自身が保有し日常的に使用する機密データアクセス支援端末Bを紛失した場合、通常は、上述したプロセス1を実行できないため、機密データSDを復元できない。しかし、予め複数の機密データアクセス支援端末Bを準備しておくことで、自身が保有する他の機密データアクセス支援端末Bが残っていれば、それを用いてプロセス1を実行することができ、機密データSDを復元して利用することができる。
【0068】
さらにユーザは、そのうちの1つを管理端末として管理者に預けることで、手元に予備の機密データアクセス支援端末Bがなかったとしても、当該管理者を通じてプロセス1を実行することができる。その具体的な方法については後述する。
【0069】
なお、後述する第2及び第3実施形態においても同様に、機密データ管理装置Aは、複数の機密データアクセス支援端末Bを使用することができる。この場合も、機密データ管理装置Aには、機密データアクセス支援端末B毎に、データ群(暗号化された機密データ保護コードSDPC、暗号化機密データSymK[SD]など)が保存される。
【0070】
ところで本実施形態では、機密データ管理装置Aにおける共通鍵SymKの生成時(例えば
図4のステップS22)において、機密データ保護コードSDPCは、以下に示すように、鍵導出関数(KeyDefFunc())の入力値として使用される。
KeyDefFunc(SDPC)→SymK
【0071】
当該入力値は、オリジナルの機密データ保護コードSDPCそのものではなく、オリジナルの機密データ保護コードSDPCと、機密データ管理装置Aにおいて別途生成、保存された固有データ(例えばPIN(Personal Identification Number))と、を連結したものであってもよい。その場合、以下のような変形例が考えられる。
KeyDefFunc(SDPC+PIN)→ SymK
【0072】
この時、PINは、機密データアクセス支援端末Bには認識されない。このため、機密データアクセス支援端末Bが管理端末として管理者に預けられ、仮に管理者が鍵導出関数の具体的な内容を知っていたとしても、管理者は、機密データ保護コードSDPC単体だけでは共通鍵SymKを生成できない。よって、この変形例は、緊急時に管理端末を使用する場合に、対管理者も含めた機密データの安全性を向上させるのに、特に有効である。この変形例は、すべての実施形態に適用可能である。
【0073】
[第2実施形態]
つぎに、第2の実施形態について説明する。なお、上述した実施形態と同一の部位については同一の符号を付し、重複する説明は省略する。
【0074】
第1実施形態の復号処理において、機密データ保護コードSDPCのデータ長は、その定義上短い。これに対し、通常のECIES224またはRSA2048を用いた場合、公開鍵PubKBを使用して生成された暗号化機密データ保護コードPubKB[SDPC]のデータ長は、それぞれ1008ビットまたは2048ビット(Base64変換の168文字または344文字に相当)となるが、これは暗号化された機密データSDの復号処理の際に手動で入力するには長すぎる。
【0075】
そこで、第2実施形態では、当該復号処理の際の機密データアクセス支援端末Bへの入力データが手動で入力するのに十分な程度に短いものになるよう、機密データSDの暗号化処理の段階で、暗号化機密データ保護コードPubKB[SDPC]の大部分である部分データを予め機密データアクセス支援端末Bへ送信しておくことにする。これにより、当該復号処理において、機密データアクセス支援端末Bへ入力すべきデータ長が短くなることから、データ通信だけでなく手動操作でも容易に当該復号処理を実施することができる。
【0076】
図8は、第2実施形態における機密データSDの暗号化サブルーチンを示すフローチャートである。すなわち、第2実施形態では、機密データ管理装置Aは、
図4に示すサブルーチンの代わりに、
図8に示すサブルーチンを実行する。なお、
図8のサブルーチンは、
図4のサブルーチンとほぼ同様に構成されているが、
図4のステップS25とステップS26との間にステップS25-1を追加し、さらにステップS50を追加したものである。
【0077】
ステップS25-1では、機密データ管理装置Aは、暗号化機密データ保護コードPubKB[SDPC]の大部分である部分データを機密データアクセス支援端末Bへ送信し、その後、送信済みの部分データを暗号化機密データ保護コードPubKB[SDPC]から削除する。これにより、機密データ管理装置Aには、暗号化機密データ保護コードPubKB[SDPC]のうち、当該部分データが削除された後のデータ(以下、残りデータという)が保存される。当該残りデータは、例えば256バイト以下であればよい。なお、残りデータは、16バイトが最も好ましい。
【0078】
ステップS50では、機密データアクセス支援端末Bは、機密データ管理装置Aから送信された暗号化機密データ保護コードPubKB[SDPC]の部分データを受信して保存する。
【0079】
図9は、
図3及び
図8で示した機密データSDの暗号化後に、機密データアクセス支援端末B及び機密データ管理装置Aのそれぞれにおいて保存されたデータを示す概念図である。
機密データSDの暗号化後、機密データアクセス支援端末Bには、秘密鍵PriK
Bに加えて、暗号化機密データ保護コードPubK
B[SDPC]の部分データが保存される。一方、機密データ管理装置Aには、公開鍵PubK
B、暗号化機密データ保護コードPubK
B[SDPC]の残りデータ、及び暗号化機密データSymK[SD]が保存される。
【0080】
図10は、第2実施形態における機密データSDの復号ルーチンを示すフローチャートである。第2実施形態では、機密データアクセス支援端末Bは、
図6のステップS31~S34の代わりに、
図10のステップS31-1~S34を実行する。ここで、
図10のステップS31-1~S34は、
図6のステップS31~S34とほぼ同様に構成されているが、
図6のステップS31の代わりに、
図10のステップS31-1,S31-2を追加したものである。
【0081】
機密データ管理装置Aは、
図6のステップS41~S48ルーチンの代わりに、
図10のステップS41-1~S48-1を実行する。
図10のステップS41-1~S48-1は、
図6のステップS41~S48とほぼ同様に構成されているが、
図6のステップS41,S48の代わりに、
図10のステップS41-1,S48-1をそれぞれ追加したものである。
【0082】
ステップS31-1では、機密データアクセス支援端末Bは、機密データ管理装置Aから送信された暗号化機密データ保護コードPubKB[SDPC]の残りデータを受信 する。当該残りデータは、詳しくは後述するステップS41-1において、機密データ管理装置Aから送信されたものである。
【0083】
ステップS31-2では、機密データアクセス支援端末Bは、自身が保存する暗号化機密データ保護コードPubKB[SDPC]の部分データと、機密データ管理装置Aから送信された残りデータと、を結合することで、暗号化機密データ保護コードPubKB[SDPC]を再構築する。
【0084】
その後、機密データアクセス支援端末Bは、第1実施形態と同様に、ユーザ認証(ステップS32)の後、秘密鍵PriKBを用いて暗号化機密データ保護コードPubKB[SDPC]を復号する(ステップS33)。その結果、機密データ保護コードSDPCが生成される。そして、機密データアクセス支援端末Bは、機密データ保護コードSDPCを機密データ管理装置Aへ送信する(ステップS34)。
【0085】
一方、機密データ管理装置Aは、暗号化機密データ保護コードPubKB[SDPC]のうち、送信済みの部分データが欠落した残りデータを用いて次の処理を実行する。
【0086】
ステップS41-1では、機密データ管理装置Aは、暗号化機密データ保護コードPubK
B[SDPC]の残りデータを機密データアクセス支援端末Bへ送信する。その後、機密データアクセス支援端末Bは、上述した
図10のステップS31-1~S34を実行して、機密データ保護コードSDPCを機密データ管理装置Aへ送信する。
【0087】
そして、機密データ管理装置Aは、機密データアクセス支援端末Bから送信された機密データ保護コードSDPCを受信すると(ステップS42)、第1実施形態と同様の処理(ステップS44~ステップS47)を実行した後、再び機密データSDを暗号化する(ステップS48-1)。
ステップS48-1では、機密データ管理装置Aは、上述した
図8のサブルーチンを実行する。
【0088】
以上のように、第2実施形態の機密データ管理装置Aは、機密データSDの暗号化処理の段階で、暗号化機密データ保護コードPubKB[SDPC]の大部分である部分データを予め機密データアクセス支援端末Bに送信する。
【0089】
そして、機密データ管理装置Aは、機密データSDの復号処理の段階では、暗号化機密データ保護コードPubKB[SDPC]の残りデータを機密データアクセス支援端末Bへ送信する。このデータの送信は、暗号化機密データ保護コードPubKBの大部分である部分データを送信した後の残りデータが対象となるため、手動操作でも容易に実現することができる。
【0090】
このように、ユーザは、例えば機密データSDにアクセスしたいもののネットワークが利用できない緊急の場合であっても、機密データ管理装置Aの表示部106に暗号化機密データ保護コードPubKB[SDPC]の残りデータが表示されたならば、その残りデータを機密データアクセス支援端末Bの入力部101を通じて手動操作で直接入力し、機密データ保護コードSDPCを取得することで、機密データSDを利用することができる。
【0091】
また、第2実施形態は、もう1つの機密データアクセス支援端末Bを管理端末として追加した場合でも適用可能である。暗号化機密データ保護コードPubKB[SDPC]の残りデータと機密データ保護コードSDPCのいずれのデータ長も、上述したように、手動操作で入力できるほど短い。よって、機密データSDの復号処理において、管理端末(機密データアクセス支援端末B)と機密データ管理装置Aとの双方向のデータの送受信は、例えば、次のように行われる。
【0092】
最初に、ユーザは、機密データ管理装置Aの表示部106に表示された暗号化機密データ保護コードPubKB[SDPC]の残りデータを、管理者に口頭で通知する。そして、管理者は、手動操作によって、ユーザから聞いた暗号化機密データ保護コードPubKB[SDPC]の残りデータを管理端末に入力し、機密データ保護コードSDPCを取得する。
【0093】
つぎに、管理者は、取得した機密データ保護コードSDPCを、ユーザに口頭で通知する。最後に、ユーザは、手動操作によって、管理者から聞いた機密データ保護コードSDPCを機密データ管理装置Aに入力する。
【0094】
さらに、機密データ管理装置Aは、例えば管理端末に対しては、
図8のステップS25-1において、暗号化機密データ保護コードPubK
B[SDPC]の部分データではなく、その全部を送信してもよい。この場合、機密データ管理装置Aは、機密データSDの復号処理の段階において、管理端末に対して、暗号化機密データ保護コードPubK
B[SDPC]の残りデータを送信する必要がない(
図10のステップS41-1が不要)。
一方、管理端末は、
図10のステップS31-1,S31-2を省略して、ユーザ認証後に、直ちに、機密データ保護コードSDPCを得ることが可能になる。
【0095】
このような場合、ユーザが、自身が保有し日常的に使用する機密データアクセス支援端末Bを紛失したとしても、管理端末を預けた管理者に対して電話などで連絡することができれば、当該管理者から機密データ保護コードSDPCを直接聞き出すことで、機密データSDへのアクセスが可能になる。具体的には、次の通りである。
【0096】
管理者は、機密データアクセス支援端末Bを紛失したユーザからの連絡を受けた場合、最初に、ユーザの正当性(ユーザが機密データアクセス支援端末Bの正当な所有者であるか)を確認する。正当性の確認方法は特に限定されず、例えば口頭による本人確認でもよい。管理者は、ユーザの正当性を確認した後、つぎに、自身に預けられた管理端末を用いて機密データ保護コードSDPCを得て、最後に、当該機密データ保護コードSDPCをユーザに口頭で伝える。この結果、ユーザは、管理者から伝えられた機密データ保護コードSDPCを機密データ管理装置Aに手動操作で入力すれば、機密データSDを復元して利用することができる。
【0097】
[第3実施形態]
つぎに、第3の実施形態について説明する。なお、上述した実施形態と同一の部位については同一の符号を付し、重複する説明は省略する。第3実施形態では、楕円曲線ディフィー・ヘルマン(Elliptic curve Diffie-Hellman:ECDH)鍵共有が使用される。ECDH鍵共有は、楕円曲線を使ったディフィー・ヘルマン(Diffie-Hellman:DH)鍵共有である。
【0098】
以下、簡単のため、楕円曲線を使わない一般的なDH鍵共有について説明する。
DH鍵共有では、お互いに予備知識のない2人の当事者(例えば、アリスとボブ)が、安全でないチャネルを介して、共通鍵を共有することができる。この共通鍵は、後続の通信を暗号化するために使用される。DH鍵共有の具体例を以下に示す。
【0099】
1.アリスが、2つの素数gとpを選び、それらが何であるかをボブに伝える。
2.ボブは、秘密の数aを選ぶが、誰にも公開しない。
ボブは、A(=ga mod p)を計算し、その計算結果Aをアリスに送信する。
3.アリスは、秘密の数bを選ぶが、誰にも公開しない。
アリスは B(=gb mod p)を計算し,その計算結果Bをボブに送信する。
4.ボブは、計算結果Bを用いて、Ba mod pを計算する。
5.アリスは、計算結果Aを用いて、Ab mod pを計算する。
【0100】
ステップ4の計算結果とステップ5の計算結果は、同じ値になり、当該当事者で共有される共通鍵となる。その理由は、次の2つの式が成立するからである。
(ga mod p)b mod p = gab mod p
(gb mod p)a mod p = gba mod p
【0101】
さて、本実施形態では、機密データアクセス支援端末B及び機密データ管理装置Aは、ECDH鍵交換における所定の楕円曲線(例えば、楕円曲線を定義する式、基点G、その位数nなどのパラメータ)を予め共有する。機密データアクセス支援端末B及び機密データ管理装置Aは、共有された楕円曲線に基づいて、それぞれが秘密鍵PriK及びそれに対応する公開鍵PubKを生成する。
【0102】
図11は、第3実施形態における機密データSDの初期暗号化ルーチンを示すフローチャートである。第3実施形態では、機密データアクセス支援端末Bは、
図3のステップS1~S2の代わりに
図11のステップS61~S63を実行する。また、機密データ管理装置Aは、
図3のステップS11~S14の代わりに
図11のステップS71~S76を実行する。
【0103】
ステップS61では、機密データアクセス支援端末Bは、機密データ管理装置Aと共有された楕円曲線に基づいて、秘密鍵PriKB及びそれに対応する公開鍵PubKBを生成する。ここで、秘密鍵PriKBは、[1,n-1]の中からランダムに選択された整数である。公開鍵PubKBは、次の式に基づいて生成される。
PubKB=PriKB・G
【0104】
ステップS62では、機密データアクセス支援端末Bは、機密データ管理装置Aと公開鍵PubKを交換する。なお、ステップS62は、詳しくは後述するステップS72と同時に行われる。具体的には、機密データアクセス支援端末Bは、ステップS61で生成された公開鍵PubKBを機密データ管理装置Aへ送信し、機密データ管理装置Aから公開鍵PubKAを受信する。ここで公開鍵PubKAは、詳しくは後述するステップS71で生成されたものである。
【0105】
すなわち、上述したステップS61及びS62においては、機密データアクセス支援端末Bは、選択した秘密鍵PriKB(上述の例でアリスが選んだ秘密の数 a に相当)と、予め機密データ管理装置Aと共有した基点G(上述の例でアリスが選んだ素数 g に相当)から公開鍵PubKBを計算し、機密データ管理装置Aとの間で、互いの公開鍵PubKを交換(送受信)する。
【0106】
ステップS63では、機密データアクセス支援端末Bは、機密データ保護コードSDPCを暗号化するための共通鍵SymKcを、次の式に基づいて生成する。
SymKc=PriKB・PubKA
但し、共通鍵SymKcは、機密データアクセス支援端末Bの秘密鍵PriKBと、後述する機密データ管理装置Aの公開鍵PubKAとの関係から、以下の条件を満たす。
SymKc=PriKB・PubKA
=PriKA・PriKB・G
【0107】
ステップS71では、機密データ管理装置Aは、機密データアクセス支援端末Bと共有された楕円曲線に基づいて、秘密鍵PriKA及びそれに対応する公開鍵PubKAを生成する。ここで、秘密鍵PriKAは、[1,n-1]の中からランダムに選択された整数である。公開鍵PubKAは、次の式に基づいて生成される。
PubKA=PriKA・G
【0108】
ステップS72では、機密データ管理装置Aは、機密データアクセス支援端末Bと公開鍵PubKを交換する。具体的には、機密データ管理装置Aは、ステップS71で生成された公開鍵PubKAを機密データアクセス支援端末Bへ送信し、機密データアクセス支援端末Bから公開鍵PubKBを受信する。
【0109】
ステップS73では、機密データ管理装置Aは、機密データ保護コードSDPCを暗号化するための共通鍵SymKcを、次の式に基づいて生成する。
SymKc=PriKA・PubKB
但し、共通鍵SymKcは、機密データ管理装置Aの秘密鍵PriKAと、先述した機密データアクセス支援端末Bの公開鍵PubKBとの関係から、以下の条件を満たす。
SymKc=PriKA・PubKB
=PriKA・PriKB・G
ステップS63及びステップS73の結果、機密データアクセス支援端末B及び機密データ管理装置Aは、それぞれが同一の共通鍵SymKcを得る。
【0110】
ステップS74では、機密データ管理装置Aは、例えばパスワードなどの機密データSDを準備する。なお、機密データSDは、外部装置から送信されたものでもよいし、予め機密データ管理装置A内に保存されていたものでもよい。
【0111】
ステップS75では、機密データ管理装置Aは、機密データSDを暗号化する。なお、ステップS75の詳細は後述する。
【0112】
ステップS76では、機密データ管理装置Aは、機密データSDを削除する。これにより、機密データ管理装置Aには、機密データSDは存在しておらず、暗号化された機密データSDのみが記憶されている。
【0113】
図12は、第3実施形態における機密データSDの暗号化サブルーチンを示すフローチャートである。
ステップS75において、機密データ管理装置Aは、
図4のサブルーチンの代わりに、
図12のサブルーチンを実行する。なお、
図12のサブルーチンは、
図4のサブルーチンとほぼ同様に構成されているが、
図4のステップS25の代わりに、
図12のステップS25-2を追加したものである。
【0114】
ステップS25-2では、機密データ管理装置Aは、
図11のステップS73で生成された共通鍵SymK
cを用いて、ステップS21で生成された機密データ保護コードSDPCを暗号化して、暗号化機密データ保護コードSymK
c[SDPC]を生成する。そして、機密データ管理装置Aは、ステップS21で生成された機密データ保護コードSDPCを削除する(ステップS26)。
【0115】
図13は、
図11及び
図12で示した機密データSDの暗号化後に、機密データアクセス支援端末B及び機密データ管理装置Aのそれぞれにおいて保存されたデータを示す概念図である。
【0116】
機密データSDの暗号化後、機密データアクセス支援端末Bには、機密データ管理装置Aの公開鍵PubKA、自身の秘密鍵PriKB、及び共通鍵SymKcが保存される。一方、機密データ管理装置Aには、機密データアクセス支援端末Bの公開鍵PubKB、自身の秘密鍵PriKA、共通鍵SymKc、暗号化機密データ保護コードSymKc[SDPC]、及び暗号化機密データSymK[SD]が保存される。
【0117】
図14は、第3実施形態における機密データSDの復号ルーチンを示すフローチャートである。
図14のステップS31-3~S34は、
図6のステップS31~S34とほぼ同様に構成されているが、
図6のステップS31,S33の代わりに、
図14のステップS31-3,S33-1をそれぞれ追加したものである。
【0118】
図14のステップS41-2~S48-2は、
図6のステップS41~S48とほぼ同様に構成されているが、
図6のステップS41,S47,S48の代わりに、
図14のステップS41-2,S47-1,S48-2をそれぞれ追加し、さらに、
図6のステップS44の後に
図14のステップS44-1を追加したものである。
【0119】
ステップS31-3では、機密データアクセス支援端末Bは、機密データ管理装置Aから送信された暗号化機密データ保護コードSymKc[SDPC]を受信する。暗号化機密データ保護コードSymKc[SDPC]は、後述するステップS41-2において、機密データ管理装置Aから送信されるものである。
ステップS32では、機密データアクセス支援端末Bは、ユーザの認証を行う。
【0120】
ステップS33-1では、機密データアクセス支援端末Bは、
図11のステップS63で生成された共通鍵SymK
cを用いて、機密データ管理装置Aから送信された暗号化機密データ保護コードSymK
c[SDPC]を復号して、機密データ保護コードSDPCを得る。
【0121】
ステップS34では、機密データアクセス支援端末Bは、ステップS33で得られた機密データ保護コードSDPCを機密データ管理装置Aへ送信する。
【0122】
一方、ステップS41-2では、機密データ管理装置Aは、内部に保存されている暗号化機密データ保護コードSymKc[SDPC]を読み出して、それを機密データアクセス支援端末Bへ送信する。その後、機密データアクセス支援端末Bは、上述したステップS31-3~S34の処理を実行して、機密データ保護コードSDPCを機密データ管理装置Aへ送信する。
【0123】
そして、機密データ管理装置Aは、機密データアクセス支援端末Bから送信された機密データ保護コードSDPCを受信すると(
図14のステップS42)、第1実施形態と同様にステップS43~S44を実行する。
【0124】
ステップS44-1では、機密データ管理装置Aは、暗号化機密データSymK[SD]の復号が成功したか(機密データSDが復元されたか)否かを判定する。復号が成功した場合は、機密データ管理装置Aは、機密データSDが利用し、そして、後述するステップS47-1及びステップS48-2の処理の終了を確認後、当該機密データSDを削除する(ステップS45~S46)。復号が成功しなかった場合は、本ルーチンが終了する。
【0125】
ステップS47-1では、機密データ管理装置Aは、暗号化機密データ保護コードSymK
C[SDPC]及び暗号化機密データSymK[SD]を削除する。
ステップS48-2では、機密データ管理装置Aは、
図12のサブルーチンを実行して、再び機密データSDを暗号化する。
【0126】
以上のように、第3実施形態では、機密データアクセス支援端末B及び機密データ管理装置Aは、互いに共有された楕円曲線に基づく公開鍵PubKを交換して、それぞれが機密データ保護コードSDPCの暗号化・復号のための共通鍵SymKCを生成する。このため、次の効果が得られる。
【0127】
機密データアクセス支援端末B及び機密データ管理装置Aは、それぞれが生成した共通鍵SymKCを用いて、それぞれの内部において、機密データ保護コードSDPCの暗号化及び復号を行うことが可能になる。
【0128】
すなわち、本実施形態では、機密データ保護コードSDPCを暗号化及び復号するための共通鍵SymKCが機密データ管理装置A内に保存されていることから、暗号化機密データ保護コードSymKC[SDPC]は、理論上は、機密データアクセス支援端末Bが存在しなくとも、機密データ管理装置Aだけで復号可能である。
【0129】
しかし、本実施形態では、いわゆる「チャレンジ&レスポンス」認証を実現するために、機密データ管理装置Aと機密データアクセス支援端末Bの間で、次の(a)~(c)の処理が実施される。
【0130】
(a)機密データ管理装置Aは、機密データアクセス支援端末Bへ、暗号化機密データ保護コードSymKC[SDPC]を送信する。
(b)機密データアクセス支援端末Bは、暗号化機密データ保護コードSymKC[SDPC]を復号して得られた機密データ保護コードSDPCを、機密データ管理装置Aに返信する。
(c)機密データ管理装置Aは、機密データアクセス支援端末Bから返信された機密データ保護コードSDPCを用いて共通鍵SymKを再生成の上、暗号化機密データSymK[SD]を復号して、機密データSDを得る。
【0131】
この結果、正規の機密データアクセス支援端末Bを所有するユーザのみが、正しい機密データ保護コードSDPCを機密データ管理装置Aへ返信し、機密データ管理装置Aに暗号化機密データSymK[SD]を復号させ、機密データSDを得ることに成功する。したがって、最終的には、第3実施形態では、上述した他の実施形態と同じ効果が得られる。
【0132】
ところで、暗号化機密データ保護コードSymKC[SDPC]のデータ長は、機密データ保護コードSDPCのデータ長と同様、手動で入力するのに十分な程度に短い。このため、機密データアクセス支援端末Bが管理端末の場合、機密データSDの復号において、緊急時には、上述した実施形態と同様、機密データ管理装置Aと管理端末との間の送受信を手動操作で行うことが可能である。
【0133】
さらに、本実施形態では、機密データSDの暗号化の段階(
図12)において、機密データ管理装置Aから機密データアクセス支援端末Bへのデータ送信は不要である。
【0134】
これに対して、第2実施形態の場合、その機密データSDの復号において、緊急時に暗号化機密データ保護コードPubK
B[SDPC]の残りデータを手動で入力できるようにするためには、機密データSDの暗号化の段階(
図8)において送信される、暗号化機密データ保護コードPubK
B[SDPC]の部分データのデータ長を十分に長くする必要がある。しかし、その場合、当該部分データを手動で入力するのは甚だ困難になる。この点において、本実施形態は、上述した第2実施形態よりも優れている。
【符号の説明】
【0135】
A 機密データ管理装置
B 機密データアクセス支援端末
100 コンピュータ
101 入力部
102 CPU
106 表示部
107 通信部