(57)【特許請求の範囲】
【請求項１】
所定の共通鍵で平文データを暗号化した暗号化データを所定の記憶領域に記憶させるとともに、所定の公開鍵で前記共通鍵を暗号化して前記記憶領域に記憶させ、前記公開鍵と対をなす秘密鍵を利用して前記記憶領域に記憶された暗号化データを復号化するデータ管理装置であって、
第一公開鍵と、当該第一公開鍵と対をなす第一秘密鍵と、を生成する対鍵生成手段と、
所定の文字列で構成される第一パスワードの設定を受け付けるパスワード設定受付手段と、
前記第一パスワードを利用して前記第一秘密鍵を暗号化した第一暗号化秘密鍵を生成する秘密鍵暗号化手段と、
前記第一公開鍵と異なる第二公開鍵と、前記第一パスワードと異なる第二パスワードを利用して当該第二公開鍵と対をなす第二秘密鍵を暗号化することにより生成された第二暗号化秘密鍵と、を通信可能に接続された他のデータ管理装置から取得する第二鍵群取得手段と、
前記共通鍵を前記第一公開鍵で暗号化した第一暗号化共通鍵と、前記共通鍵を前記第二公開鍵で暗号化した第二暗号化共通鍵と、を生成する共通鍵暗号化手段と、
前記第一暗号化共通鍵と、前記第一暗号化秘密鍵と、前記第二暗号化共通鍵と、前記第二暗号化秘密鍵と、を前記暗号化データに関連付けて前記記憶領域に記憶させる記憶手段と、
を備えることを特徴とするデータ管理装置。
【請求項２】
前記第一パスワード又は前記第二パスワードの入力を受け付けるパスワード入力受付手段と、
前記第一パスワードが入力された場合には、前記第一パスワードを利用して前記第一暗号化秘密鍵から前記第一秘密鍵を復号化し、該復号化された第一秘密鍵で前記第一暗号化共通鍵から前記共通鍵を復号化し、前記第二パスワードが入力された場合には、前記第二パスワードを利用して前記第二暗号化秘密鍵から前記第二秘密鍵を復号化し、該復号化された第二秘密鍵で前記第二暗号化共通鍵から前記共通鍵を復号化し、該復号化された共通鍵で前記平文データを暗号化する、データ暗号化手段と、を更に備える請求項１に記載のデータ管理装置。
【請求項３】
前記第一パスワード又は前記第二パスワードの入力を受け付けるパスワード入力受付手段と、
前記第一パスワードが入力された場合には、前記第一パスワードを利用して前記第一暗号化秘密鍵から前記第一秘密鍵を復号化し、該復号化された第一秘密鍵で前記第一暗号化共通鍵から前記共通鍵を復号化し、前記第二パスワードが入力された場合には、前記第二パスワードを利用して前記第二暗号化秘密鍵から前記第二秘密鍵を復号化し、該復号化された第二秘密鍵で前記第二暗号化共通鍵から前記共通鍵を復号化し、該復号化された共通鍵で前記暗号化データから前記平文データを復号化する、データ復号化手段と、を更に備える請求項１または請求項２に記載のデータ管理装置。
【請求項４】
前記秘密鍵暗号化手段は、所定のハッシュ関数にて前記第一パスワードからハッシュ値を生成し、該ハッシュ値で前記第一秘密鍵を暗号化する請求項１〜請求項３の何れか一項に記載のデータ管理装置。
【請求項５】
所定の乱数からソルトと繰り返し数とを生成するハッシュ条件生成手段を備え、
前記秘密鍵暗号化手段が、前記ソルトと前記繰り返し数とを使用して所定のハッシュ関数にて前記第一パスワードからハッシュ値を生成し、
前記記憶手段が、前記ソルトと前記繰り返し数とを前記暗号化データに関連付けて前記記憶領域に記憶させる請求項１〜請求項４の何れか一項に記載のデータ管理装置。
【請求項６】
前記第一公開鍵と前記第一暗号化秘密鍵と、を含んで構成される第三鍵群を作成し、該第三鍵群を前記他のデータ管理装置とは別のデータ管理装置に配送する配送手段を備える請求項１〜請求項５の何れか一項に記載のデータ管理装置。
【請求項７】
前記第二公開鍵から所定のハッシュ関数にて第一ハッシュ値を生成する第一ハッシュ生成手段と、
前記第一ハッシュ値を所定の画面に表示する表示手段と、
前記第一ハッシュ値と、前記他のデータ管理装置が前記第二公開鍵から所定のハッシュ関数にて生成した第二ハッシュ値と、が一致するか否かの入力を受け付ける受付手段と、を備えており、
前記受付手段が前記一致した旨を受け付けた場合のみ、前記第一公開鍵および第一秘密鍵の生成、前記第一パスワードの設定受け付け、前記第一暗号化秘密鍵の生成、前記第一暗号化共通鍵および第二暗号化共通鍵の生成、および、前記各鍵の前記記憶領域への記憶、が実行される請求項１〜請求項６の何れか一項に記載のデータ管理装置。
【請求項８】
所定の共通鍵で平文データを暗号化した暗号化データを所定の記憶領域に記憶させるとともに、所定の公開鍵で前記共通鍵を暗号化して前記記憶領域に記憶させ、前記公開鍵と対をなす秘密鍵を利用して前記記憶領域に記憶された暗号化データを復号化するデータ管理方法であって、
第一公開鍵と、当該第一公開鍵と対をなす第一秘密鍵と、を生成する対鍵生成工程と、
所定の文字列で構成される第一パスワードの設定を受け付けるパスワード設定受付工程と、
前記第一パスワードを利用して前記第一秘密鍵を暗号化した第一暗号化秘密鍵を生成する秘密鍵暗号化工程と、
前記第一公開鍵と異なる第二公開鍵と、前記第一パスワードと異なる第二パスワードを利用して当該第二公開鍵と対をなす第二秘密鍵を暗号化することにより生成された第二暗号化秘密鍵と、を通信可能に接続された他のデータ管理装置から取得する第二鍵群取得工程と、
前記共通鍵を前記第一公開鍵で暗号化した第一暗号化共通鍵と、前記共通鍵を前記第二公開鍵で暗号化した第二暗号化共通鍵と、を生成する共通鍵暗号化工程と、
前記第一暗号化共通鍵と、前記第一暗号化秘密鍵と、前記第二暗号化共通鍵と、前記第二暗号化秘密鍵と、を前記暗号化データに関連付けて前記記憶領域に記憶させる記憶工程と、
を備えることを特徴とするデータ管理方法。
【請求項９】
所定の共通鍵で平文データを暗号化した暗号化データを所定の記憶領域に記憶させるとともに、所定の公開鍵で前記共通鍵を暗号化して前記記憶領域に記憶させ、前記公開鍵と対をなす秘密鍵を利用して前記記憶領域に記憶された暗号化データを復号化する機能をコンピュータに実現させるためのデータ管理プログラムであって、
第一公開鍵と、当該第一公開鍵と対をなす第一秘密鍵と、を生成する対鍵生成機能と、
所定の文字列で構成される第一パスワードの設定を受け付けるパスワード設定受付機能と、
前記第一パスワードを利用して前記第一秘密鍵を暗号化した第一暗号化秘密鍵を生成する秘密鍵暗号化機能と、
前記第一公開鍵と異なる第二公開鍵と、前記第一パスワードと異なる第二パスワードを利用して当該第二公開鍵と対をなす第二秘密鍵を暗号化することにより生成された第二暗号化秘密鍵と、を通信可能に接続された他のデータ管理装置から取得する第二鍵群取得機能と、
前記共通鍵を前記第一公開鍵で暗号化した第一暗号化共通鍵と、前記共通鍵を前記第二公開鍵で暗号化した第二暗号化共通鍵と、を生成する共通鍵暗号化機能と、
前記第一暗号化共通鍵と、前記第一暗号化秘密鍵と、前記第二暗号化共通鍵と、前記第二暗号化秘密鍵と、を前記暗号化データに関連付けて前記記憶領域に記憶させる記憶機能と、
をコンピュータに実現させるためのデータ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理装置、データ管理方法およびデータ管理プログラムに関し、特に、所定の共通鍵（共通鍵暗号化方式の暗号鍵）でデータを暗号化して所定の記憶領域に記憶させるとともに、所定の公開鍵で前記共通鍵を暗号化して前記記憶領域に記憶させ、前記公開鍵と対をなす秘密鍵を利用して前記暗号化されたデータを復号化するデータ管理装置、データ管理方法およびデータ管理プログラムに関する。
【背景技術】
【０００２】
所定の記憶領域を暗号化して、特定者以外からのデータアクセスを防止する技術として、ＮＴＦＳ（NT File System）のＥＦＳ（Encrypting File System）が知られている。図９は、ＥＦＳの方式を説明する図である。ＥＦＳでは、ファイル暗号化用の共通鍵を各ユーザの公開鍵で暗号化し、暗号化された共通鍵と該共通鍵で暗号化されたデータとを関連付けて記憶領域に記憶させる。暗号化データを復号化するには、公開鍵の対となる秘密鍵で共通鍵を復号化して得られた共通鍵で復号化することになる。この秘密鍵は規則性の無いデータ列であるため、各ユーザで記憶することは難しく、各ユーザが暗号化データを復号するためには、紛失や漏洩を防止しつつ秘密鍵を記憶媒体上に保管する必要があった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前述したＥＦＳにおいては、暗号化データ作成時点のアクセス権限が暗号化データを作成したユーザに限定されており、仮にユーザが自身の秘密鍵を紛失してしまうと、暗号化データの復号が事実上不可能になるという課題があった。そこで、暗号化データが解読不可能にならないように複数のユーザ（例えば、データを作成したユーザと管理者、ドメイン内で所定権限を有するユーザ、等）に対するアクセス権限付与が行われていた。但し、秘密鍵の管理は依然として各ユーザ（や管理者）の管理に任されていたため秘密鍵の紛失や流出の危険性は残っていた。
【０００４】
本発明は、上記課題に鑑みてなされたもので、暗号化データの復号に必要な情報の流出に伴うセキュリティ低下の回避及び、暗号化データが損傷無く存在しているにも関わらず復号化が不可能になる状況の防止が可能なデータ管理装置、データ管理方法およびデータ管理プログラムの提供を目的とする。
【課題を解決するための手段】
【０００５】
前記課題を解決するために、データ管理装置は、所定の共通鍵でデータを暗号化して所定の記憶領域に記憶させるとともに、所定の公開鍵で前記共通鍵を暗号化して前記記憶領域に記憶させ、前記公開鍵と対をなす秘密鍵を利用して前記記憶領域に記憶された暗号化データを復号化するデータ管理装置であって、前記共通鍵を前記公開鍵で暗号化した暗号化共通鍵を生成する共通鍵暗号化手段と、所定の文字列で構成されるパスワードの設定を受け付けるパスワード設定受付手段と、設定された前記パスワードを利用して前記秘密鍵を暗号化した暗号化秘密鍵を生成する秘密鍵暗号化手段と、前記暗号化共通鍵と前記暗号化秘密鍵とを前記暗号化データに関連付けて前記記憶領域に記憶させる記憶手段と、を備える構成としてある。
【０００６】
前記共通鍵は、共通鍵暗号方式の暗号鍵である。一方、公開鍵と秘密鍵は秘密鍵暗号方式で作成された対を成す暗号鍵であり、一方の暗号鍵で暗号化された暗号化データは他方の暗号鍵でしか復号化できない。本実施形態では、暗号化対象となる共通鍵を暗号化する暗号鍵を公開鍵と称しており、該暗号化された共通鍵を復号化する暗号鍵を秘密鍵と称している。
【０００７】
前記構成において、平文データの暗号化及び暗号化データの復号化に用いる共通鍵と、該共通鍵を暗号化する公開鍵の対になる秘密鍵と、が所定の記憶領域に記憶された暗号化データと関連付けられた状態で、記憶手段によって所定の記憶領域に記憶される。記憶されるにあたり、秘匿性を確保するために、共通鍵は公開鍵で暗号化され、秘密鍵はパスワードベースで暗号化される。パスワードは、データの暗号化や復号化を行うユーザに対して予め設定されているものを用いてもよいし、所定の操作入力機器を介してユーザから入力されたものを用いてもよい。秘密鍵がパスワードベースで暗号化されることにより、ユーザはパスワードを用いての秘密鍵の復号が可能であり、復号された秘密鍵によって共通鍵が復号できるため、暗号化データから平文データを復号可能になる。
【０００８】
本発明は、所定の共通鍵で平文データを暗号化した暗号化データを所定の記憶領域に記憶させるとともに、所定の公開鍵で前記共通鍵を暗号化して前記記憶領域に記憶させ、前記公開鍵と対をなす秘密鍵を利用して前記記憶領域に記憶された暗号化データを復号化するデータ管理装置であって、第一公開鍵と、当該第一公開鍵と対をなす第一秘密鍵と、を生成する対鍵生成手段と、所定の文字列で構成される第一パスワードの設定を受け付けるパスワード設定受付手段と、前記第一パスワードを利用して前記第一秘密鍵を暗号化した第一暗号化秘密鍵を生成する秘密鍵暗号化手段と、前記第一公開鍵と異なる第二公開鍵と、前記第一パスワードと異なる第二パスワードを利用して当該第二公開鍵と対をなす第二秘密鍵を暗号化することにより生成された第二暗号化秘密鍵と、を通信可能に接続された他のデータ管理装置から取得する第二鍵群取得手段と、前記共通鍵を前記第一公開鍵で暗号化した第一暗号化共通鍵と、前記共通鍵を前記第二公開鍵で暗号化した第二暗号化共通鍵と、を生成する共通鍵暗号化手段と、前記第一暗号化共通鍵と、前記第一暗号化秘密鍵と、前記第二暗号化共通鍵と、前記第二暗号化秘密鍵と、を前記暗号化データに関連付けて前記記憶領域に記憶させる記憶手段と、を備える。
このように、共通鍵と秘密鍵を暗号化データが記憶されている所定の領域に一緒に記憶させることにより、パスワードに関連する情報を安全な形態で保存可能になる。ユーザにとっては、秘密鍵を管理する必要が無くなり、暗号化データ管理の手間が減少することになる。よって、暗号化データの復号に必要な情報がユーザ側から流出することがなくなり、セキュリティ低下しにくい。また、共通鍵は公開鍵で暗号化されており、秘密鍵はパスワードベースで暗号化されているため、セキュリティが低下することも無い。また、秘密鍵と暗号化データとを、共に所定の領域に記憶させるため、暗号化データが損傷無く存在しているにも関わらず復号化が不可能になる状況が発生しなくなる。
【０００９】
また、前記構成において、平文データを暗号化して前記所定の記憶領域に記憶させるための具体的な一態様として、前記暗号化データと前記暗号化共通鍵と前記暗号化秘密鍵とを取得する取得手段と、所定の文字列で構成されるパスワードの入力を受け付けるパスワード入力受付手段と、入力された前記パスワードを利用して前記暗号化秘密鍵から前記秘密鍵を復号化し、該復号化された秘密鍵で前記暗号化共通鍵から前記共通鍵を復号化し、該復号化された共通鍵で前記データを暗号化する、データ暗号化手段と、を更に備える構成が考えられる。
【００１０】
該構成において、取得手段が前記暗号化データと前記暗号化共通鍵と前記暗号化秘密鍵とを取得し、パスワード入力受付手段が所定の文字列で構成されるパスワードの入力を受け付ける。そして、データ暗号化手段は、入力された前記パスワードを利用して前記暗号化秘密鍵から前記秘密鍵を復号化し、該復号化された秘密鍵で前記暗号化共通鍵から前記共通鍵を復号化し、該復号化された共通鍵で前記平文データを暗号化する。無論、パスワード入力受付手段が受け付けたパスワードと、前述したパスワード設定受付手段により設定されたパスワードとが異なっている場合は、前記暗号化秘密鍵から秘密鍵は復号されないため、暗号化データが復号化されることはない。すなわち、第三者による暗号化データの復号化を阻止できる。
より具体的には、前記第一パスワード又は前記第二パスワードの入力を受け付けるパスワード入力受付手段と、前記第一パスワードが入力された場合には、前記第一パスワードを利用して前記第一暗号化秘密鍵から前記第一秘密鍵を復号化し、該復号化された第一秘密鍵で前記第一暗号化共通鍵から前記共通鍵を復号化し、前記第二パスワードが入力された場合には、前記第二パスワードを利用して前記第二暗号化秘密鍵から前記第二秘密鍵を復号化し、該復号化された第二秘密鍵で前記第二暗号化共通鍵から前記共通鍵を復号化し、該復号化された共通鍵で前記平文データを暗号化する、データ暗号化手段と、備える構成としてもよい。
【００１１】
また、前記構成において、前記所定の記憶領域に記憶された暗号化データを復号化して平文データを得るための具体的な一態様として、前記暗号化データと前記暗号化共通鍵と前記暗号化秘密鍵とを取得する取得手段と、所定の文字列で構成されるパスワードの入力を受け付けるパスワード入力受付手段と、入力された前記パスワードを利用して前記暗号化秘密鍵から前記秘密鍵を復号化し、該復号化された秘密鍵で前記暗号化共通鍵から前記共通鍵を復号化し、該復号化された共通鍵で前記暗号化データから前記データを復号化する、データ復号化手段と、を更に備える構成が考えられる。
【００１２】
該構成において、取得手段が前記暗号化データと前記暗号化共通鍵と前記暗号化秘密鍵とを取得し、パスワード入力受付手段が所定の文字列で構成されるパスワードの入力を受け付ける。そして、データ復号化手段は、入力された前記パスワードを利用して前記暗号化秘密鍵から前記秘密鍵を復号化し、該復号化された秘密鍵で前記暗号化共通鍵から前記共通鍵を復号化し、該復号化された共通鍵で前記暗号化データを復号化する。無論、パスワード入力受付手段が受け付けたパスワードと、前述したパスワード設定受付手段により設定されたパスワードとが異なっている場合は、前記暗号化秘密鍵から秘密鍵は復号されない。そのため、平文データを暗号化して前記所定の記憶領域に記憶することはできるが、その暗号化データは正当なパスワードでは復号できない。すなわち、ユーザを詐称した第三者が所定の記憶領域へデータ記録した場合は、ユーザが正当なパスワードを利用して復号するとでたらめなデータが出現するため、改竄を検出できる。
より具体的には、前記第一パスワード又は前記第二パスワードの入力を受け付けるパスワード入力受付手段と、前記第一パスワードが入力された場合には、前記第一パスワードを利用して前記第一暗号化秘密鍵から前記第一秘密鍵を復号化し、該復号化された第一秘密鍵で前記第一暗号化共通鍵から前記共通鍵を復号化し、前記第二パスワードが入力された場合には、前記第二パスワードを利用して前記第二暗号化秘密鍵から前記第二秘密鍵を復号化し、該復号化された第二秘密鍵で前記第二暗号化共通鍵から前記共通鍵を復号化し、該復号化された共通鍵で前記暗号化データから前記平文データを復号化する、データ復号化手段と、備える構成としてもよい。
【００１３】
また、本発明の選択的な一態様として、前記秘密鍵暗号化手段は、所定のハッシュ関数にて前記パスワードからハッシュ値を生成し、該ハッシュ値で前記秘密鍵を暗号化する構成としても良い。すなわち、通常文字列で入力されるパスワードそのもので秘密鍵を暗号化するのではなく、パスワードをハッシュ化してランダムなデータ列に変換することで、辞書攻撃等の総当り攻撃による秘密鍵が復号化される危険を回避し、所定の記憶領域に記憶された暗号化データの秘匿性を向上させることができる。
【００１４】
また、本発明の選択的な一態様として、所定の乱数からソルトと繰り返し数とを生成するハッシュ条件生成手段を備え、前記秘密鍵暗号化手段が、前記ソルトと前記繰り返し数とを使用して所定のハッシュ関数にて前記パスワードからハッシュ値を生成し、前記記憶手段が、前記ソルトと前記繰り返し数とを前記暗号化データに関連付けて前記記憶領域に記憶させる構成としてもよい。
すなわち、パスワードをハッシュ化して暗号化データの秘匿性を向上させるにあたり、パスワードに対してソルトを付加することでハッシュ値生成の基になるパスワードを単純な文字列でなくし、さらにハッシュ計算の繰り返し数を設定することで生成されたハッシュ値のランダム性を上げる。そのため、仮に辞書攻撃等の総当り攻撃でパスワードを解読しようとしても、辞書内の文字列にソルト付加とハッシュ計算の繰り返し数を行う分、解読に要する処理時間が増加し、事実上、秘密鍵の復号化が出来なくなる。
【００１５】
また、前記データ管理装置では、少なくとも前記共通鍵を暗号化する公開鍵と前記共通鍵を復号化する秘密鍵と該秘密鍵を暗号化する基になるパスワードとから構成される第一鍵群がユーザ毎に生成されるとともに、少なくとも前記共通鍵を暗号化する公開鍵と前記共通鍵を復号化する秘密鍵と該秘密鍵を暗号化する基になるパスワードとから構成され且つ前記第一鍵群とはユニークな第二鍵群が生成され、前記暗号化共通鍵と前記暗号化秘密鍵とが、前記第一鍵群と前記第二鍵群に対して各々生成されて前記暗号化データに関連付けて前記記憶領域に記憶される構成としてもよい。このとき、前述したソルトや繰り返し数を使用するのであれば、それらも各鍵群に含めることになる。
すなわち、暗号化データを作成する各ユーザは、自身の第一鍵群を保持するとともに、第二鍵群の公開鍵と第二鍵群の秘密鍵を暗号化した暗号化秘密鍵を持つ。そして、第一鍵群の公開鍵で暗号化された暗号化共通鍵と、第二鍵群の公開鍵で暗号化された暗号化共通鍵と、第一鍵群の秘密鍵を暗号化した暗号化秘密鍵と、第二鍵群の秘密鍵を暗号化した暗号化秘密鍵とを、暗号化データと共に前記所定の領域に記憶させる。
よって、各ユーザは自己のパスワードと第一鍵群とを利用して作成した暗号化データを所定の記憶領域に記憶させること及び、所定の記憶領域に記憶された暗号化データの復号化が可能であり、さらに、第二鍵群に対応したパスワードを知る他のユーザや管理者も該他のユーザのパスワードと第二鍵群とを利用して、第一鍵群を利用して作成された暗号化データの復号化が可能になる。すなわち各ユーザが作成した暗号化データは、作成者のみならず他のユーザのパスワードを利用して復号化可能になる。このような第一鍵群と第二鍵群を利用して好適な一例として管理者を設定する場合がある。すなわち、各ユーザそれぞれのパスワード及び第一鍵群で作成された暗号化データに、管理用の共通パスワードと第二鍵群とを対応させておくのである。この管理用の共通のパスワードは、個々のユーザが自己のパスワードを失念した際の救済用ともなる。
【００１６】
また、本発明の選択的な一態様として、前記データ管理装置において、前記第一公開鍵と前記第一暗号化秘密鍵と、を含んで構成される第三鍵群を作成し、該第三鍵群を前記他のデータ管理装置とは別のデータ管理装置に配送する配送手段を備える構成としてもよい。
該構成においては、ユーザや管理者が、（ａ）第一公開鍵、（ｂ）第一秘密鍵を暗号化したもの、を前記共通鍵を暗号化するための第三鍵群として作成する。このとき、秘密鍵を暗号化するための共通鍵をパスワードに基づいて生成するときに使用するソルト・繰り返し数、を使用している場合は、これらも第三鍵群に含める。このように作成された第三鍵群が流出したとしても、パスワードが取得されたり第三鍵群を適用した暗号化データの復号用の共通鍵が取得されたりすることはない。従って、第三鍵群をパスワード関連情報としてネットワークを配送しても、ユーザの作成した暗号化データを第三者が復号化したり、ユーザの取得するデータが改竄されてしまうといった危険性が無くなる。但し、第三鍵群を安全に配布できない環境（多数の社員が利用する社内ＬＡＮなど）にて第三鍵群をすりかえられた場合、それを利用した暗号化データは正当なユーザが意図していないパスワードに対応してしまうというセキュリティ上の脆弱性は残る。これを解決する一態様が以下段落００１７の構成である。
【００１７】
また、本発明の他の一態様として、前記第二公開鍵から所定のハッシュ関数にて第一ハッシュ値を生成する第一ハッシュ生成手段と、前記第一ハッシュ値を所定の画面に表示する表示手段と、前記第一ハッシュ値と、前記他のデータ管理装置が前記第二公開鍵から所定のハッシュ関数にて生成した第二ハッシュ値と、が一致するか否かの入力を受け付ける受付手段と、を備えており、前記受付手段が前記一致した旨を受け付けた場合のみ、前記第一公開鍵および第一秘密鍵の生成、前記第一パスワードの設定受け付け、前記第一暗号化秘密鍵の生成、前記第一暗号化共通鍵および第二暗号化共通鍵の生成、および、前記各鍵の前記記憶領域への記憶、が実行される構成としてもよい。
すなわち、第二鍵群が作成された時点で平文データ暗号化のための公開鍵からハッシュ値を作成しておき、該公開鍵の伝達経路とは別の経路を利用してユーザに通知する。ハッシュ値を通知されたユーザは、データ暗号化のための公開鍵からハッシュ値を作成して通知されたハッシュ値と比較する。よって、改竄された公開鍵でデータ暗号化用の共通鍵を暗号化し、保存される危険性を回避できる。
【００１８】
前述したデータ管理装置は、他の機器に組み込まれた状態で実施されたり他の方法とともに実施されたりする等の各種の態様を含む。また、本発明は前記データ管理装置を備えるデータ管理システム、前述した装置の構成に対応した工程を有する方法、上述した装置の構成に対応した機能をコンピュータに実現させるプログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体、等としても実現可能である。これらデータ管理システム、データ管理方法、データ管理プログラム、該プログラムを記録した媒体、の発明も、前述した作用、効果を奏する。むろん、各従属請求項に記載した構成も、前記システムや前記方法や前記プログラムや前記記録媒体に適用可能である。
【発明の効果】
【００１９】
以上説明したように本発明によれば、暗号化データ管理の手間を減少し、セキュリティの低下を防止し、暗号化データが損傷無く存在しているにも関わらず復号化が不可能になる状況が発生を回避可能なデータ管理装置を提供できる。
また本発明によれば、第三者による暗号化データの復号化を阻止できる。
そして本発明によれば、ユーザを詐称した第三者によってデータ改竄された場合に、ユーザがそれを検出できる。
さらに本発明によれば、辞書攻撃等の総当り攻撃による秘密鍵が復号化される危険を回避し、所定の記憶領域に記憶された暗号化データの秘匿性を向上させることができる。
また本発明によれば、辞書攻撃等の総当り攻撃に対するセキュリティを更に向上させることができる。
そして本発明によれば、個々のユーザが自己のパスワードを失念した場合にも暗号化データを救済可能になる。
さらに本発明によれば、他のデータ管理装置で作成される暗号化データに自己のパスワードを対応させるための情報を、漏洩しても問題のない形態（第三鍵群）として配送可能となる。
さらに本発明によれば、改竄された公開鍵でデータ暗号化用の共通鍵を暗号化し、それを保存してしまう危険性を回避できる。
さらに、本発明によれば、前述したデータ管理装置と同様の効果を奏するデータ管理方法を提供でき、かつ、前述したデータ管理装置と同様の効果を奏するデータ管理プログラムを提供可能になる。
【発明を実施するための最良の形態】
【００２０】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）本実施形態の構成：
（２）管理処理：
（３）暗号化初期設定処理：
（４）データ暗号化／復号化処理：
（５）各種変形例：
【００２１】
（１）本実施形態の構成：
以下、本発明の一実施形態にかかる認証システムについて、図面を参照しながら説明する。なお、図面では、暗号化処理をＥＫＥＹ（Ｍ）→（Ｍ）’、復号化処理をＤＫＥＹ（（Ｍ）’）→Ｍ、で表現してある。Ｅは暗号化関数、Ｄは復号化関数、ＫＥＹは各関数における暗号鍵や復号鍵、Ｍは暗号化前のデータ、（Ｍ）’は暗号化済みのデータ、である。また、関数は全てＥ，Ｄを使用して記載してあるが、各暗号化処理において使用される暗号化関数や復号化関数は、各々異なるものを採用可能である。
【００２２】
図１は、本実施形態の概略構成を示したブロック図である。同図において、認証システム１００は、管理コンピュータ１０とユーザコンピュータ２０とストレージデバイス３０とで構成されている。管理コンピュータ１０で実行されるプログラムは、認証システム１００の管理特権を持つ管理者（WindowsNT（登録商標）のAdministrator、UNIX(登録商標)のroot等）権限で実行されている。一方、ユーザコンピュータ２０は、システム管理特権を持たない一般ユーザ権限で実行されている。以下、管理者と一般ユーザとをまとめてユーザと総称する。
【００２３】
なお、図１には、管理コンピュータ１０とユーザコンピュータ２０とを別体として記載してあるが、管理者権限を持つユーザと管理者権限を持たないユーザとを区別するためのユーザ管理が可能なＯＳ（Operating System）が搭載されていれば管理コンピュータ１０とユーザコンピュータ２０は同一のコンピュータで実現されてもよい。また、ストレージデバイス３０はユーザコンピュータ２０に対して内蔵（但し、ユーザコンピュータ２０のシステム領域とは、物理的もしくは論理的に分離されている）されてもよいし外付けされてもよい。
【００２４】
図１の管理コンピュータ１０は、ＣＰＵ１１（Central processing Unit）とＲＯＭ１２（Read Only Memory）とＲＡＭ１３（Random Access Memory）からなるプログラム実行環境や、大容量記憶媒体としてＨＤＤ１４（Hard Disc Drive）、通信インターフェースとしてのＬＡＮＩ／Ｆ１６（Local Area Network Interace）を備えている。また、管理コンピュータ１０には管理者からの操作入力を受け付ける操作入力機器１５（例えば、マウスやキーボード等）が接続されている。ＨＤＤ１４にはアプリケーションとして提供される管理ツールＡＰＬ１のプログラムデータＤＡＴＡ１が記憶されている。管理ツールＡＰＬ１は、管理コンピュータ１０の起動中、常時実行されていてもよいし、ユーザコンピュータからの要求に応じて適宜ＲＡＭ１３にロードされて実行されてもよい。
【００２５】
管理ツールＡＰＬ１は、対鍵生成モジュールＭ１１とＰＷ設定モジュールＭ１２と秘密鍵暗号化モジュールＭ１３、を備えている。対鍵生成モジュールＭ１１は、ユニークな公開鍵ＰＫ０と秘密鍵ＳＫ０の対を生成する機能を持つ。ＰＷ設定モジュールＭ１２は、管理者からのパスワード入力を受け付けて、秘密鍵暗号化モジュールＭ１３に渡す。秘密鍵暗号化モジュールＭ１３は、ＰＷ設定モジュールＭ１２が受け付けた認証パスワードＰＷ０を利用して秘密鍵ＳＫ０を暗号化する。
【００２６】
より詳しくは、秘密鍵暗号化モジュールＭ１３は、ＰＷ設定モジュールＭ１２によって設定された認証パスワードＰＷ０から所定の要約関数ｆ（ＰＷ）でハッシュ値Ｈ０を作成し、該ハッシュ値Ｈ０を暗号鍵として秘密鍵ＳＫ０を暗号化して暗号化秘密鍵（ＳＫ０）’を作成する。ハッシュ値作成にあたっては、ソルト付加とハッシュ計算の繰り返しとを行う。なお、ハッシュ値Ｈを生成する要約関数ｆ（ＰＷ）は一方向性に限るものではなく、ＣＲＣ（Cyclic Redundancy Checking）等の巡回冗長符号（誤り検出のための符号）を作成するものであっても構わない。
【００２７】
図１のユーザコンピュータ２０は、ＣＰＵ２１とＲＯＭ２２とＲＡＭ２３からなるプログラム実行環境や、大容量記憶媒体としてＨＤＤ２４、通信インターフェースとしてのＬＡＮＩ／Ｆ２６、ストレージデバイスとの通信を行う所定のインターフェース２７（例えば、ＵＳＢ（Universal Serial Bus）Ｉ／Ｆ等）、を備えている。ＬＡＮＩ／Ｆ２６は、管理コンピュータ１０のＬＡＮＩ／Ｆ１６と通信可能に接続されている。また、ユーザコンピュータ２０にはユーザからの操作入力を受け付ける操作入力機器２５（例えば、マウスやキーボード等）が接続されている。ＨＤＤ２４にはアプリケーションとして提供されるユーザ用暗号化初期設定ツールＡＰＬ２（以下、初期設定ツールと略す。）やユーザ管理者共通認証ツールＡＰＬ３（以下、認証ツールと略す。）のデータＤＡＴＡ２が記憶されている。初期設定ツールＡＰＬ２と認証ツールＡＰＬ３は、ユーザコンピュータの起動中、常時実行されていてもよいし、ユーザの操作入力に応じて適宜ＲＡＭ２３にロードされて実行されてもよい。
【００２８】
初期設定ツールＡＰＬ２は、対鍵生成モジュールＭ２１とＰＷ設定モジュールＭ２２と秘密鍵暗号化モジュールＭ２３と共通鍵生成モジュールＭ２４と共通鍵暗号化モジュールＭ２５とを備える。
【００２９】
対鍵生成モジュールＭ２１は、ユニークな公開鍵ＰＫ１と秘密鍵ＳＫ１の対を生成する機能を持つ。ＰＷ設定モジュールＭ２２は、一般ユーザからのパスワード入力を受け付けて、該一般ユーザの認証パスワードＰＷ１として秘密鍵暗号化モジュールＭ２３に出力する。秘密鍵暗号化モジュールＭ２３は、ＰＷ設定モジュールＭ２２が受け付けた認証パスワードＰＷ１を利用して秘密鍵ＳＫ１を暗号化する。
【００３０】
共通鍵生成モジュールＭ２４は、平文データを暗号化し且つ、暗号化された平文データを再び復号化するための共通鍵ＦＥＫを生成する。この共通鍵ＦＥＫは、所定の単位領域（例えば、パーティション、フォルダ、ファイル等）の暗号化が選択される度に単位領域間でユニークなものが生成され、同一の単位領域においては各ユーザで同じ共通鍵ＦＥＫが使用される。
【００３１】
共通鍵暗号化モジュールＭ２５は、共通鍵ＦＥＫをユーザの公開鍵で暗号化した暗号化共通鍵を作成し、該暗号化共通鍵と共通鍵の暗号化に使用した秘密鍵の暗号化秘密鍵とを、単位領域に関連付けてストレージデバイス３０に記憶させる。関連付けは、例えば、単位領域に設けられるヘッダ等に記憶されることで実現できる。
【００３２】
認証ツールＡＰＬ３は、データ暗号化モジュールＭ３１とデータ復号化モジュールＭ３２とを備える。データ暗号化モジュールＭ３１とデータ復号化モジュールＭ３２は、共に、暗号化共通鍵を復号化して共通鍵ＦＥＫを取得する機能を有する。データ暗号化モジュールＭ３１は、得られた共通鍵ＦＥＫによって指定された平文データを暗号化し、暗号化データを単位領域に記憶させる。一方、データ復号化モジュールＭ３２は得られた共通鍵ＦＥＫによって指定された暗号データを復号化し、平文データをユーザコンピュータ２０に記憶させる。
【００３３】
図１のストレージデバイス３０は、不揮発性半導体メモリやＨＤ（Hard Disk）等の記憶媒体３１を備えており、所定のインターフェース３２を介してユーザコンピュータ２０と接続されている。ユーザコンピュータ２０からは、該インターフェースのプロトコルに準拠した通信が可能であり、ユーザコンピュータ２０の制御により所望のデータを記憶媒体上に記録可能になっている。無論、ストレージデバイス３０は、一定量の記憶領域を有する記憶媒体が内蔵されているタイプだけでなく、リムーバブルメディア（フレキシブルディスク、ＭＯ（Magneto Optical）、メモリカード等）を換装して利用するリーダライタであってもよい。
【００３４】
（２）管理処理：
以上の構成によって、ユーザはユーザコンピュータ２０を利用して、所望のデータを暗号化してストレージデバイス３０上に記録させると共に、データ暗号化に使用した共通鍵ＦＥＫを暗号化したものや、該共通鍵ＦＥＫの暗号化に使用した秘密鍵ＳＫをもストレージデバイス３０上に記録する。無論、秘密鍵ＳＫをそのまま記録したのでは、データの秘匿性が確保されないため、ストレージデバイス３０上に記録される秘密鍵は、記録するデータへのアクセス権限を有するユーザのパスワードを利用して暗号化される。
【００３５】
一般に、ストレージデバイス３０に対し、暗号化データを記憶するのはユーザコンピュータ２０の使用者である一般ユーザＡである。しかし、データ作成者である一般ユーザＡが暗号化データを復号化できなくなった場合等に備えて、一般ユーザＡの作成した暗号化データを管理者も復号化可能にしておく。また、ユーザＡの作成した暗号化データをユーザＢも利用する場合もある。そのためには、自らの復号情報に加えて管理者用の復号情報やユーザＢ用の復号情報を一般ユーザＡが作成して、暗号化データと共にストレージデバイス３０に記憶しなければならない。但し、管理者用の秘密鍵は一般ユーザに通知出来ないので、以下のように管理コンピュータ１０で管理処理を行って、管理者用の秘密鍵を暗号化し、暗号化された秘密鍵を一般ユーザに配布（通知）することになる。なお、一般ユーザ同士であるユーザＢについても同様の処理と配布とによりユーザＡ作成の暗号化データを復号化可能となる。
【００３６】
図２は、管理処理の流れを示すフローチャート、図３は管理処理を説明する図である。該処理は、ユーザコンピュータ２０からストレージデバイス３０に対するデータ記録が実行される前に行われており、例えば、管理ツールＡＰＬ１の管理コンピュータ１０へのインストール後、管理ツールＡＰＬ１の初期設定時等に実行される。
【００３７】
処理が開始されると、ステップＳ１００で対鍵生成モジュールＭ１１が管理者用に一対の公開鍵ＰＫ０と秘密鍵ＳＫ０を生成する。これらの鍵は、後述のストレージデバイス３０に記憶されるデータ暗号化用の共通鍵ＦＥＫの暗号化と復号化に用いられるものである。公開鍵ＰＫ０で暗号化された共通鍵ＦＥＫは秘密鍵ＳＫ０で復号化され、復号化された共通鍵ＦＥＫで暗号化データの作成と復号化ができるようになる。
【００３８】
続くステップＳ１１０では、ＰＷ設定モジュールＭ１２が、認証パスワードＰＷ０の入力を受け付ける。すなわち、ＰＷ設定モジュールＭ１２は、ステップＳ１１０が開始されてから、パスワード入力完了を示す操作入力が行われるまでに操作入力機器１５から入力された文字列を、管理者用の認証パスワードＰＷ０として設定する。但し、このパスワード入力に管理コンピュータ１０のログインパスワードなどを流用する場合は、ステップＳ１１０では管理コンピュータ１０の所定の場所に記載されたログインパスワードを取得すればよい。ステップＳ１１０のパスワード入力が完了すると、ステップＳ１２０に進む。
【００３９】
ステップＳ１２０では、秘密鍵暗号化モジュールＭ１３が、秘密鍵ＳＫ０を暗号化するためのハッシュ値Ｈ０を作成する。ハッシュ値Ｈ０は認証パスワードＰＷ０から作成される。ハッシュ値Ｈ０の作成においては、まず乱数を発生させ、ハッシュ計算の基になる認証パスワードＰＷ０に付加するデータ（ソルト）と、ハッシュ計算を繰り返す回数（繰り返し数）と、を乱数に基づいて決定する。そしてハッシュ計算を繰り返すたびにソルトＳ０を付加しつつ、繰り返し数Ｎ０で指定された回数だけハッシュ計算を行い、ハッシュ値Ｈ０を生成する。秘密鍵ＳＫ０はハッシュ値Ｈ０により共通鍵暗号方式で暗号化される。このように秘密鍵ＳＫ０を暗号化するにあたって、ソルトＳ０や繰り返し数Ｎ０を指定するため辞書攻撃に強いハッシュ値Ｈ０（共通鍵）が作成される。また、乱数でソルトＳ０や繰り返し数Ｎ０を決定することにより、ハッシュ値Ｈ０の作成の度に作成されるソルトと繰り返し数が予め想定されず、暗号化秘密鍵のセキュリティが向上する。
【００４０】
続くステップＳ１３０では、秘密鍵暗号化モジュールＭ１３が、ハッシュ値Ｈ０で秘密鍵ＳＫ０を暗号化して暗号化秘密鍵（ＳＫ０）’を作成する。すなわち、ハッシュ値Ｈ０で暗号化することにより、従来、秘匿と管理とを必要としていた秘密鍵ＳＫ０を不特定多数の人間がアクセス可能な場所に記憶可能になる。従って、秘密鍵ＳＫ０を管理コンピュータ１０内部に保管する必要が無くなり、任意の場所に秘密鍵ＳＫ０を保存可能になる。
【００４１】
続くステップＳ１４０では、秘密鍵暗号化モジュールＭ１３が、管理者の公開鍵ＰＫ０と暗号化秘密鍵（ＳＫ０）’とソルトＳ０と繰り返し数Ｎ０とをパスワード関連情報Ｉｎｆ０として保存する。このパスワード関連情報Ｉｎｆ０は、一般ユーザ（もしくは一般ユーザの使用するユーザコンピュータ２０）からの要求に応じて一般ユーザ（もしくは一般ユーザの使用するユーザコンピュータ２０）に出力される。このパスワード関連情報Ｉｎｆ０が、本発明の第二鍵群に相当する。パスワード関連情報Ｉｎｆは人による記憶や再入力が大変であるため、電子的にユーザコンピュータ２０に出力されると好適であるが、無論、紙媒体で一般ユーザに直接配布されても良いし、電子メールなどで一般ユーザに通知されても構わない。
【００４２】
なお、パスワード関連情報の配布と共に、管理者から一般ユーザに対してパスワード関連情報の改竄防止のためのシリアル番号Ｓｅｒが配布されてもよい。このシリアル番号Ｓｅｒは公開鍵ＰＫ０に基づいて作成されており、例えば、所定のハッシュ関数ｇに公開鍵ＰＫ０を代入して作成されたハッシュ値等が使用可能である。このシリアル番号Ｓｅｒは、パスワード関連情報Ｉｎｆ０とは異なる配布経路（例えば紙媒体）で一般ユーザに配布される。一般ユーザは、ユーザコンピュータ２０が所定のハッシュ計算により公開鍵ＰＫ０から作成したハッシュ値と、配布されたシリアル番号Ｓｅｒと、を比較することにより、パスワード関連情報Ｉｎｆ０の改竄の有無を確認できる。
【００４３】
すなわち、管理処理においては、ステップＳ１４０の終了後、ステップＳ１５０を行い、公開鍵ＰＫ０から所定のハッシュ計算によりハッシュ値を算出し、シリアル番号Ｓｅｒとする。そして、このシリアル番号Ｓｅｒを一般ユーザ各人に配布することで、例えば、管理コンピュータ１０に接続された印刷装置で印刷したり、管理者が紙に複写したりし、各ユーザの手元にシリアル番号Ｓｅｒの記載された紙媒体を送達する。無論、シリアル番号Ｓｅｒの配布は紙媒体に限るものではなく、パスワード関連情報Ｉｎｆ０の配布と異なる配布経路であれば様々な配布方法が採用可能である。
【００４４】
以上で管理処理が終了し、ユーザコンピュータ２０での暗号化初期設定が可能な状態になる。
【００４５】
（３）暗号化初期設定処理：
図４は、ユーザコンピュータ２０で実行される暗号化初期設定処理の流れを示すフローチャート、図５は管理処理を説明する図である。本処理の実行されるタイミングは、暗号化する単位領域をどのように選択可能であるかによるが、例えばストレージデバイス３０の全体を単位領域とする場合は、初期設定ツールＡＰＬ２がユーザコンピュータ２０にインストールされたときに実行される。以下、ストレージデバイス３０全体を単位領域として暗号化する例について説明を行う。
【００４６】
処理が開始されると、ステップＳ２００で管理コンピュータ１０からパスワード関連情報Ｉｎｆ０を取得する。すなわち、ＬＡＮを介して接続された管理コンピュータ１０と、例えばＴＣＰＩ／Ｐ等の公知の通信プロトコルに準拠した通信を行い、管理コンピュータ１０で実行されている管理ツールＡＰＬ１にパスワード関連情報Ｉｎｆ０の送信を要求する。管理コンピュータ１０から送信されたパスワード関連情報Ｉｎｆ０は、ＲＡＭ２３等に記憶される。
【００４７】
続くステップＳ２１０〜Ｓ２３０では、パスワード関連情報Ｉｎｆ０の改竄の有無を判断する。まずステップＳ２１０では、パスワード関連情報Ｉｎｆ０の公開鍵ＰＫ０から所定のハッシュ関数にてハッシュ値を作成し、該ハッシュ値をＲＡＭ２３等に一時的に記憶する。このとき使用されるハッシュ関数は、前述した管理処理のステップＳ１５０でシリアル番号Ｓｅｒ作成に使用されたものと同一のハッシュ関数が同一条件（ソルトや繰り返し数等）で使用される。
【００４８】
続くステップＳ２２０では、ステップＳ２１０で表示したハッシュ値と、別途配布されたシリアル番号Ｓｅｒとが一致するか否かを判定する。この判定を行うのは一般ユーザ自身なので、例えば、表示したハッシュ値と共に『一致』『不一致』等のアイコンを表示させ、操作入力機器２５による何れかのアイコンの選択入力を待機する。いずれかのアイコンの選択入力が行われるとステップＳ２３０に進む。
【００４９】
続くステップ２３０では、ステップＳ２２０における選択入力の結果を判断する。すなわち『一致』が選択された場合には、改竄が行われていないと判断してステップＳ２４０に進む一方、『不一致』が選択された場合には改竄が行われている可能性がある旨をユーザに警告すると共に、暗号化初期設定処理を終了する。無論、再度、パスワード関連情報Ｉｎｆ０を管理コンピュータ１０から取得して、ステップＳ２１０〜Ｓ２３０の判断を行っても良い。
【００５０】
続くステップＳ２４０では、対鍵生成モジュールＭ２１が一対の公開鍵ＰＫ１と秘密鍵ＳＫ１を生成する。これらの鍵は、後述のストレージデバイス３０に記憶されるデータ暗号化用の共通鍵ＦＥＫの暗号化と復号化に用いられるものであり、公開鍵ＰＫ１で暗号化された共通鍵ＦＥＫが秘密鍵ＳＫ１で復号化され、復号化された共通鍵ＦＥＫで暗号化データが復号化できるようになる。
【００５１】
続くステップＳ２５０では、ＰＷ設定モジュールＭ２２が、認証パスワードＰＷ１の入力を受け付ける。すなわち、ＰＷ設定モジュールＭ２２は、ステップＳ２５０が開始されてから、パスワード入力完了を示す操作入力が行われるまでに操作入力機器２５から入力された文字列を、一般ユーザ用の認証パスワードＰＷ１として設定する。但し、このパスワード入力にユーザコンピュータ２０のログインパスワードなどを流用する場合は、ステップＳ２５０ではユーザコンピュータ２０の所定の場所に記載されたログインパスワードを取得すればよい。以上、公開鍵ＰＫ１と秘密鍵ＳＫ１と認証パスワードＰＷ１とが第一鍵群を構成する。ステップＳ２５０のパスワード入力が完了すると、ステップＳ２６０に進む。
【００５２】
続くステップＳ２６０では、秘密鍵暗号化モジュールＭ２３が、認証パスワードＰＷ１からハッシュ値Ｈ１を作成する。ハッシュ値Ｈ１は認証パスワードＰＷ１から作成される。ハッシュ値Ｈ１は、ハッシュ値Ｈ０の作成方法と同様に、ソルトＳ１や繰り返し数Ｎ１を乱数から生成して、これらを利用して生成される。
【００５３】
続くステップＳ２７０では、秘密鍵暗号化モジュールＭ２３が、ハッシュ値Ｈ１で秘密鍵ＳＫ１を暗号化して暗号化秘密鍵（ＳＫ１）’を作成する。
【００５４】
続くステップＳ２８０では、共通鍵生成モジュールＭ２４が、データ暗号化用の共通鍵ＦＥＫ（共通鍵暗号方式の暗号鍵）を作成する。共通鍵ＦＥＫには、所定の乱数発生アルゴリズムにて作成された乱数が使用される。すなわち、共通鍵ＦＥＫは、辞書攻撃や総当り攻撃では容易に解読不可能な暗号化が可能である。
【００５５】
続くステップＳ２９０では、共通鍵ＦＥＫを公開鍵ＰＫ１で暗号化して暗号化共通鍵（ＦＥＫ）’を生成すると共に、共通鍵ＦＥＫを公開鍵ＰＫ０で暗号化して暗号化共通鍵（ＦＥＫ）”を生成する。すなわち、共通鍵ＦＥＫは、暗号化データ作成者である一般ユーザＡの秘密鍵ＳＫ１のみならず管理者の秘密鍵ＳＫ０でも復号可能となる。
【００５６】
続くステップＳ３００では、ユーザの復号情報Ｄｅｃ１と管理者の復号情報Ｄｅｃ０をストレージデバイス３０に記憶させる。復号情報とは、ステップＳ１１０やステップＳ２５０で設定されたパスワードと組み合わせることで、共通鍵ＦＥＫを復号するために必要な情報の組合せであり、ユーザの復号情報Ｄｅｃ１は、暗号化共通鍵（ＦＥＫ）’と暗号化秘密鍵（ＳＫ１）’とソルトＳ１と繰り返し数Ｎ１を含んで構成され、管理者の復号情報Ｄｅｃ０は、暗号化共通鍵（ＦＥＫ）”と暗号化秘密鍵（ＳＫ０）’とソルトＳ０と繰り返し数Ｎ０を含んで構成される。
【００５７】
すなわち、ユーザにしても管理者にしても、管理コンピュータ１０やユーザコンピュータ２０内に復号情報を保存する必要が無く、データ消失に備えて秘密鍵をバックアップする管理から解放される。また、たとえ復号情報が第三者の手に渡ったとしても、事実上、復号情報のみから共通鍵ＦＥＫを復号することは不可能であるため、セキュリティは低下しない。また、管理コンピュータ１０やユーザコンピュータのトラブルで秘密鍵を失う状況自体がなくなる。
【００５８】
以上の処理で、ストレージデバイス３０に対する暗号化データの記録及び、ストレージデバイス３０に記録された暗号化データの復号、を行う準備が完了する。
【００５９】
（４）データ暗号化／復号化処理：
以下、暗号化初期設定が完了したストレージデバイス３０における、データの記憶と、データの取得について説明する。使用する復号情報が異なる点を除くと、一般ユーザと管理者とで暗号化／復号化の流れは共通である。そこで、以下の説明では、一般ユーザを例にとって説明を行う。
【００６０】
図６は、データ暗号化処理の流れを示したフローチャート、図７は、データ復号化処理の流れを示したフローチャート、図８は、データ復号化と暗号化を説明する図である。暗号化処理と復号化処理とでは、共通鍵ＦＥＫを得るまでは同一の処理であるため、共通の処理には、同じステップ番号を付してある。
【００６１】
復号化処理／暗号化処理が開始されると、ステップＳ４００で、復号情報Ｄｅｃ１を取得する。すなわち、データ復号化モジュールＭ３２もしくはデータ暗号化モジュールＭ３１は、ストレージデバイス３０から、暗号化共通鍵（ＦＥＫ）’と暗号化秘密鍵（ＳＫ１）’とソルトＳ１と繰り返し数Ｎ１とを取得する。
【００６２】
続くステップＳ４１０では、認証パスワードＰＷ１の入力を受け付ける。すなわち、データ暗号化モジュールＭ３１もしくはデータ復号化モジュールＭ３２は、ステップＳ４１０が開始されてからパスワード入力完了を示す操作入力が行われるまでに、操作入力機器２５から入力された文字列を、受け付ける。ステップＳ４１０のパスワード入力が完了すると、ステップＳ４２０に進む。
【００６３】
続くステップＳ４２０では、ＰＷ１で暗号化秘密鍵（ＳＫ１）’を復号化する。すなわち、一般ユーザに認証パスワードＰＷ１の入力を促し、ユーザの操作入力により操作入力機器２５から入力された認証パスワードＰＷ１に対し、所定のハッシュ関数を使用して、ソルトＳ０と繰り返し数Ｎ０とを指定したハッシュ計算を行う。この計算により、暗号化秘密鍵（ＳＫ１）’を暗号化したハッシュ値Ｈ１が生成され、ハッシュ値Ｈ１により秘密鍵ＳＫ１が復号化される。
【００６４】
続くステップＳ４３０では、暗号化共通鍵（ＦＥＫ）’を復号化する。すなわちステップＳ４１０で復号化された秘密鍵ＳＫ１により、共通鍵ＦＥＫが復号化される。
【００６５】
ステップＳ４３０が終了すると、復号化処理においてはステップＳ４４０を実行し、暗号化処理ではステップＳ４５０，Ｓ４６０を実行する。
すなわち、復号化処理のステップＳ４４０では、共通鍵ＦＥＫで暗号データを復号化して平文データを取得する。仮に、第三者がストレージデバイス３０にデータ記録を行った場合、ユーザが自身のパスワードを利用して該復号化処理を行った結果得られるデータは出鱈目なデータであるため、第三者によるデータ記録を検出できる。
一方、暗号化処理のステップＳ４５０では、共通鍵ＦＥＫで平文データを暗号化する。そしてステップＳ４６０で、暗号化データをストレージデバイス３０に記憶させる。
【００６６】
以上、ストレージデバイス３０から取得された復号情報と、各ユーザが入力したパスワードＰＷ１と、を利用して、平文データを暗号化してストレージデバイス３０に記憶させること及び、暗号化したユーザ本人と管理者とがストレージデバイス３０に記憶された情報のみを利用して暗号化データを復号することが可能になる。暗号化と復号化は、認証ツールがインストールされているコンピュータであればいずれのコンピュータからであっても、各ユーザのパスワードを利用して平文データを復号可能である。
【００６７】
（５）各種変形例：
前述した実施形態は、以下の変形も可能である。
１．前述した実施形態では管理特権を有する管理者と、管理特権を有さないユーザとが存在する認証システムを例にとって説明を行ったが、本発明においては、必ずしも管理者が必須ではなく、例えば、ユーザコンピュータとストレージデバイスだけで構成される認証システムも考えられる。該構成であれば、ストレージデバイス３０には、管理者用の暗号化共通鍵や暗号化秘密鍵は記憶されないが、ユーザ用の暗号化共通鍵や暗号化秘密鍵はストレージデバイス側に記憶される。従って、暗号化データ管理の手間増大やセキュリティ低下を回避しつつ、暗号化データが損傷無く存在しているにも関わらず復号化が不可能になる状況を防止可能するという本願の目的を達することに相違ない。
【００６８】
２．前述した実施形態では、管理コンピュータ１０とユーザコンピュータ２０により構成されるシステムを例にとって説明を行ったが、複数のユーザのみで構成されるシステムにも本発明を適用可能である。すなわち、ユーザ間で暗号化データを共有するシステムである。この場合、各ユーザは第三鍵群（公開鍵ＰＫ１，暗号化秘密鍵（ＳＫ１）’）を他のユーザに配送する。第三鍵群を受け取った他のユーザは、自己の平文データを自己のデータ暗号化用共通鍵ＦＥＫ’暗号化してストレージデバイス３０に記憶させる際に、第三鍵群に含まれる公開鍵ＰＫ１でデータ暗号化用共通鍵ＦＥＫ２を暗号化して（ＦＥＫ２）’を作成し、暗号化データに（ＦＥＫ２）’を関連付けて保存することになる。
第三鍵群は第三者に流出してもセキュリティが低下することは無く、安全な配送が可能である。各ユーザは暗号化データを作成する際に、配送された第三鍵群を利用して他のユーザによる復号も可能にしておく。無論、ユーザ間にランクを設けて、上位のユーザは下位のユーザが作成した暗号化データを復号化できるが下位のユーザは上位のユーザが作成した暗号化データを復号化できないようにしたり、グループを設けてグループ内のユーザが作成した暗号化データはグループ内のユーザのみが復号化できるようにしたりすることも可能である。
【００６９】
３．前述した実施形態では、管理ツールＡＰＬ１や初期設定ツールＡＰＬ２や認証ツールＡＰＬ３のプログラムデータが、管理コンピュータ１０やユーザコンピュータ２０に記憶される構成で記載したが、これらのプログラムデータは、ストレージデバイス３０内に記憶されていても構わない。アプリケーション実行時は、プログラムデータを管理コンピュータ１０やユーザコンピュータ２０にロードして実行することになる。
さらに、ストレージデバイス３０側にプログラム実行環境を備えさせれば、ストレージデバイス３０側でこれらのアプリケーションが実行されても構わない。すなわちＡＳＰ等のように、プログラム自体がユーザコンピュータや管理コンピュータにはロードされず、処理結果の表示のみがユーザコンピュータや管理コンピュータ送信されるようにしても構わない。
【００７０】
４．前述した実施形態では、単一の一般ユーザと管理者とで利用可能な暗号化データを作成する例について記載したが、無論、複数の一般ユーザにも対応可能である。また、一旦、作成された暗号化データに、他の一般ユーザもアクセス可能に変更することも可能である。暗号データに対するアクセス権を、他の一般ユーザにも付与するには、ユーザ追加モジュールを管理ツールＡＰＬ１や認証ツールＡＰＬ３に組み込むことで対応可能である。ユーザ追加モジュールは、例えば、データ暗号化モジュールやデータ復号化モジュールのステップＳ４００〜Ｓ４３０の処理を実行し、一旦、共通鍵ＦＥＫを復号化した後、該共通鍵ＦＥＫを一般ユーザＢの公開鍵ＰＫ２で暗号化して暗号化共通鍵（ＦＥＫ）'''を作成する。また、秘密鍵ＳＫ２を一般ユーザＢのパスワードＰＷ２に基づくハッシュ値Ｈ２（ソルトＳ２，繰り返し数Ｎ２）で暗号化する。そして、暗号化共通鍵（ＦＥＫ）'''と暗号化秘密鍵（ＳＫ２）’とソルトＳ２と繰り返し数Ｎ２とを一般ユーザＢの復号情報Ｄｅｃ２としてストレージデバイス３０に記憶させる。
【００７１】
５．前述した実施形態では、パスワード関連情報Ｉｎｆ０，Ｉｎｆ１が作成されるタイミングとして、管理ツールの初期設定時や、初期設定ツールのインストール時としたが、暗号化される単位領域が指定される都度異なるパスワード関連情報が作成されるようにしても構わない。但し、単位領域が指定される回数増加に伴って、管理者のパスワード関連情報Ｉｎｆ０に対する改竄防止のためのシリアル番号Ｓｅｒ配布が非現実的になる。このような場合は、暗号化される単位領域をパーティション毎やフォルダ毎でのみ指定可能にして、単位領域が指定される回数増加を抑えることで対応可能である。
【００７２】
６．前述した実施形態では、ストレージデバイス３０全体を単位領域として指定する例について説明を行ったが、ストレージデバイス３０中のフォルダやファイルを単位領域とするならば、各単位領域の暗号化が選択されたときに実行されることになる。このとき、前述したステップＳ２００〜Ｓ２３０のパスワード関連情報Ｉｎｆ０の取得および改竄チェックは、初回のみ行われてもよいし、単位領域の暗号化選択の都度、取得して改竄の有無を確認してもよい。また、このようにフォルダやファイルを単位領域とするならば、各々に異なる復号情報が指定されるため、復号情報はストレージデバイス３０に対して記憶されるのではなく、各単位領域に対して指定されなければならない。従って、各単位領域は復号情報を記憶するための領域（例えばヘッダ等）を備えたファイル構造が採用されることになる。
【００７３】
なお、本発明は上述した実施形態や変形例に限られず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組合せを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組合せを変更したりした構成、等も含まれる。
【図面の簡単な説明】
【００７４】
【図１】本実施形態の概略構成を示したブロック図である。
【図２】管理処理の流れを示すフローチャートである。
【図３】管理処理を説明する図である。
【図４】暗号化初期設定処理の流れを示すフローチャートである。
【図５】暗号化初期設定処理を説明する図である。
【図６】データ暗号化処理の流れを示したフローチャートである。
【図７】データ復号化処理の流れを示したフローチャートである。
【図８】データ復号化と暗号化を説明する図である。
【図９】従来のデータ管理を説明する図である。
【符号の説明】
【００７５】
１０…管理コンピュータ、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ＨＤＤ、１５…操作入力機器、１６…ＬＡＮＩ／Ｆ、２０…ユーザコンピュータ、２１…ＣＰＵ、２２…ＲＯＭ、２３…ＲＡＭ、２４…ＨＤＤ、２５…操作入力機器、２６…ＬＡＮＩ／Ｆ、２７…Ｉ／Ｆ、３０…ストレージデバイス、３１…記憶媒体、３２…Ｉ／Ｆ、１００…認証システム
【図１】
0005053032.tif 000002
【図２】
0005053032.tif 000003
【図３】
0005053032.tif 000004
【図４】
0005053032.tif 000005
【図５】
0005053032.tif 000006
【図６】
0005053032.tif 000007
【図７】
0005053032.tif 000008
【図８】
0005053032.tif 000009
【図９】
0005053032.tif 000010