(57)【特許請求の範囲】
【請求項１】
複数の利用者端末とネットワークを介して接続された再暗号化装置が、
データ作成者の第１暗号鍵にて平文を暗号化した第１の暗号化データと、前記第１暗号鍵および当該第１暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第２および第３の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第２および第３の各暗号化データを再暗号化する処理を実行し、
前記閲覧権限を有する利用者の利用者端末が、
前記第１の暗号化データと前記再暗号化された第２および第３の各暗号化データとを前記再暗号化装置から取得し、前記再暗号化された第２の暗号化データから、当該利用者端末が保持する自身の復号鍵によって前記第１暗号鍵を復号し、当該復号で得た第１暗号鍵により前記第１の暗号化データを復号して前記平文を出力する処理を実行する、
ことを特徴とする再暗号化方法。
【請求項２】
前記再暗号化装置が、
特定利用者に関する閲覧権限の失効イベントに伴い、当該再暗号化装置にて生成した第２暗号鍵を用いて、前記第１の暗号化データを二重に暗号化する処理と、現時点で閲覧権限を有する利用者の復号鍵で復号可能に、前記第２の暗号化データを再暗号化する処理および、前記第３の暗号化データを再暗号化した値で前記第２暗号鍵の再暗号化を行う処理とを更に実行し、
前記現時点で閲覧権限を有する利用者の利用者端末が、
前記二重に暗号化された第１の暗号化データと、前記再暗号化された第２の暗号化データと、前記再暗号化された第２の暗号化データにより再暗号化された第２暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第２の暗号化データからの前記第１暗号鍵の復号、および、前記再暗号化された第２暗号鍵からの前記第２暗号鍵の復号を行い、得られた第１暗号鍵および第２暗号鍵を用いて、前記二重に暗号化された第１の暗号化データを復号して前記平文を出力する処理を更に実行する、
ことを特徴とする請求項１に記載の再暗号化方法。
【請求項３】
前記再暗号化装置が、
前記第１、第２および第３の各暗号化データを前記データ作成者の利用者端末から受信し、当該再暗号化装置にて生成した第２暗号鍵を用いて、前記第１の暗号化データを二重に暗号化する処理と、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第２の暗号化データを再暗号化する処理および、前記第３の暗号化データを再暗号化した値で前記第２暗号鍵の再暗号化を行う処理とを実行し、
前記閲覧権限を有する利用者の利用者端末が、
前記二重に暗号化された第１の暗号化データと、前記再暗号化された第２の暗号化データと、前記再暗号化された第２暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第２の暗号化データからの前記第１暗号鍵の復号、および、前記再暗号化された第２暗号鍵からの前記第２暗号鍵の復号を行い、得られた第１暗号鍵および第２暗号鍵を用いて、前記二重に暗号化された第１の暗号化データを復号して前記平文を出力する処理を実行する、
ことを特徴とする請求項１に記載の再暗号化方法。
【請求項４】
前記利用者端末が、
データ作成者の第１暗号鍵にて平文を暗号化して第１の暗号化データを生成し、
前記第１暗号鍵および当該第１暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化して第２および第３の暗号化データを生成
し、
前記生成した第１、第２、および第３の各暗号化データを再暗号化装置に送信する処理を実行する、
ことを特徴とする請求項１に記載の再暗号化方法。
【請求項５】
複数の利用者端末と通信する通信装置と、
データ作成者の第１暗号鍵にて平文を暗号化した第１の暗号化データと、前記第１暗号鍵および当該第１暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第２および第３の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第２および第３の各暗号化データを再暗号化する処理を実行する演算装置と、
を備えた再暗号化装置と、
前記再暗号化装置と通信する通信装置と、
前記第１の暗号化データと前記再暗号化された第２および第３の各暗号化データとを前記再暗号化装置から取得し、前記再暗号化された第２の暗号化データから、当該利用者端末が保持する自身の復号鍵によって前記第１暗号鍵を復号し、当該復号で得た第１暗号鍵により前記第１の暗号化データを復号して前記平文を出力する処理を実行する演算装置と、
を備えた利用者端末と、
を含むことを特徴とする再暗号化システム。
【請求項６】
前記再暗号化装置において、
前記演算装置が、
特定利用者に関する閲覧権限の失効イベントに伴い、当該再暗号化装置にて生成した第２暗号鍵を用いて、前記第１の暗号化データを二重に暗号化する処理と、現時点で閲覧権限を有する利用者の復号鍵で復号可能に、前記第２の暗号化データを再暗号化する処理および、前記第３の暗号化データを再暗号化した値で前記第２暗号鍵の再暗号化を行う処理とを更に実行するものであり、
前記現時点で閲覧権限を有する利用者の利用者端末において、
前記演算装置が、
前記二重に暗号化された第１の暗号化データと、前記再暗号化された第２の暗号化データと、前記再暗号化された第２の暗号化データにより再暗号化された第２暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第２の暗号化データからの前記第１暗号鍵の復号、および、前記再暗号化された第２暗号鍵からの前記第２暗号鍵の復号を行い、得られた第１暗号鍵および第２暗号鍵を用いて、前記二重に暗号化された第１の暗号化データを復号して前記平文を出力する処理を更に実行するものである、
ことを特徴とする請求項５に記載の再暗号化システム。
【請求項７】
前記再暗号化装置において、
前記演算装置が、
前記第１、第２および第３の各暗号化データを前記データ作成者の利用者端末から受信し、当該再暗号化装置にて生成した第２暗号鍵を用いて、前記第１の暗号化データを二重に暗号化する処理と、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第２の暗号化データを再暗号化する処理および、前記第３の暗号化データを再暗号化した値で前記第２暗号鍵の再暗号化を行う処理とを実行するものであり、
前記閲覧権限を有する利用者の利用者端末において、
前記演算装置が、
前記二重に暗号化された第１の暗号化データと、前記再暗号化された第２の暗号化データと、前記再暗号化された第２暗号鍵とを、前記再暗号化装置から取得し、当該利用者端
末が保持する復号鍵によって、前記再暗号化された第２の暗号化データからの前記第１暗号鍵の復号、および、前記再暗号化された第２暗号鍵からの前記第２暗号鍵の復号を行い、得られた第１暗号鍵および第２暗号鍵を用いて、前記二重に暗号化された第１の暗号化データを復号して前記平文を出力する処理を実行するものである、
ことを特徴とする請求項５に記載の再暗号化システム。
【請求項８】
前記利用者端末において、
前記演算装置が、
データ作成者の第１暗号鍵にて平文を暗号化して第１の暗号化データを生成し、
前記第１暗号鍵および当該第１暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化して第２および第３の暗号化データを生成し、
前記生成した第１、第２、および第３の各暗号化データを再暗号化装置に送信する処理を実行するものである、
ことを特徴とする請求項５に記載の再暗号化システム。
【請求項９】
複数の利用者端末と通信する通信装置と、
データ作成者の第１暗号鍵にて平文を暗号化した第１の暗号化データと、前記第１暗号鍵および当該第１暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第２および第３の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第２および第３の各暗号化データを再暗号化する処理を実行し、前記第１の暗号化データと前記再暗号化された第２および第３の各暗号化データとを前記利用者端末に送信する演算装置と、
を備えることを特徴とする再暗号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再暗号化方法、再暗号化システム、および再暗号化装置に関するものであり、具体的には、複数ユーザ間で共有の暗号化データを所定装置にて保持しユーザ毎の閲覧権限管理を行う環境下において、装置管理者を含む無権限者による暗号化データの閲覧を確実に回避する技術に関する。
【背景技術】
【０００２】
複数ユーザ間でサーバ等に格納した暗号化データを共有している状況において、或るユーザのアクセス権を失効させても、暗号化データ復号用の復号鍵が該当ユーザにて保持されたままであれば、そのユーザからの暗号化データ閲覧を許してしまう恐れがある。こうした、アクセス権失効がなされたユーザからの閲覧を防止するためには、暗号化データを別の暗号鍵で暗号化し直す必要がある。
【０００３】
この場合の暗号化に関しては、例えば、暗号化データを上述のサーバ等で一度復号化し、この復号化で得た平文データを再度別の暗号鍵で暗号化するといった手法を採用することができる。しかしながらそうした手法を採用した場合、上述の復号化で得られた平文データがサーバから漏洩するリスクが高くなってしまう。
【０００４】
そこで、暗号化データを復号せずに新しい暗号鍵で再暗号化させる技術が知られている。特に近年、この再暗号化技術は、クラウドサービス上でより安全にデータを共有できる技術として注目されている。このような再暗号化技術としては、例えば、平文データを第１の暗号鍵を用いて暗号化して暗号化データを作成する暗号化部と、前記暗号化データを読み出し可能に記憶するデータ保存部とを備えたストレージノードに設けられて、前記暗号化データを第２の暗号鍵で復号できる再暗号化データに変換するストレージノード用再暗号化システム（特許文献１参照）などが提案されている。
【０００５】
この技術では、ストレージサーバにて複数の暗号鍵を生成、保持する一方、データ作成者は対象データを平文データのままストレージサーバに登録する。また、ストレージサーバは、その平文データに第一の暗号鍵を適用してストリーム暗号方式にて暗号化を行う。そしてストレージサーバは、アクセス権を有するユーザごとに、その公開鍵を用いて上述の第一の暗号鍵に対する暗号化を各々行う。ストレージサーバは、当該暗号化後の第一の暗号鍵および上述のストリーム暗号化のデータと、平文データとを共に管理する。
【０００６】
こうした状況下において、或るユーザが暗号化データ（上述の平文データをストリーム暗号化したデータ）に対するアクセス権を失効した際、ストレージサーバは、自身で生成した第二の暗号鍵を用いて、上述の暗号化データを暗号化（二重暗号化）し、この二重暗号化したデータを第一の暗号鍵を用いて復号化する。なお、ストリーム暗号技術において、暗号化に用いる鍵と復号に用いる鍵は同一である。
【０００７】
ストレージサーバは、上述の第二の暗号鍵を、残りのユーザ（アクセス権が有効なユーザ）の公開鍵で各々暗号化し、上述の二重暗号化したデータを第一の暗号鍵にて復号したデータと、第二の暗号鍵を各公開鍵で暗号化したデータと共に管理する。ここで、ストリーム暗号技術では暗号化の順番を問わない為、第一の暗号鍵でストリーム暗号化したデータを第二の暗号鍵で二重暗号化し、更に第一の暗号鍵で復号したデータは、単に第二の暗号鍵で暗号化したデータと等しくなる。
【０００８】
従来技術ではこの性質を応用し、対象となる暗号化データを復号せずに新しい暗号鍵で
再暗号化させる方法を実現している。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第５１３３８５０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら従来技術においては、暗号化対象のデータがデータ作成者により平文データのままストレージサーバに登録される。そのため、ストレージサーバの管理者は暗号化前の平文データをそのまま閲覧することが可能である。また、この平文データは、ストレージサーバにて暗号化されるといえども、当該ストレージサーバ自身が上述の各暗号鍵を生成、管理している関係上、ストレージサーバの管理者によれば、ストレージサーバで保持する暗号鍵を用いた暗号化データの復号化は自在である。
【００１１】
つまり、データの閲覧権限が無いストレージサーバの管理者であっても、該当サーバで保持する暗号鍵を用いて暗号化データを復号化し、その平文データを閲覧可能となる、といった状況を排除出来ない課題があった。
【００１２】
本発明は、このような事情に鑑みてなされたものであり、複数ユーザ間で共有の暗号化データを所定装置にて保持しユーザ毎の閲覧権限管理を行う環境下において、装置管理者を含む無権限者による暗号化データの閲覧を確実に回避する技術を提供することにある。
【課題を解決するための手段】
【００１３】
上記課題を解決する本発明の再暗号化方法は、複数の利用者端末とネットワークを介して接続された再暗号化装置が、データ作成者の第１暗号鍵にて平文を暗号化した第１の暗号化データと、前記第１暗号鍵および当該第１暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第２および第３の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第２および第３の各暗号化データを再暗号化する処理を実行し、前記閲覧権限を有する利用者の利用者端末が、前記第１の暗号化データと前記再暗号化された第２および第３の各暗号化データとを前記再暗号化装置から取得し、前記再暗号化された第２の暗号化データから、当該利用者端末が保持する自身の復号鍵によって前記第１暗号鍵を復号し、当該復号で得た第１暗号鍵により前記第１の暗号化データを復号して前記平文を出力する処理を実行することを特徴とする。
【００１４】
また、本発明の再暗号化システムは、複数の利用者端末と通信する通信装置と、データ作成者の第１暗号鍵にて平文を暗号化した第１の暗号化データと、前記第１暗号鍵および当該第１暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第２および第３の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第２および第３の各暗号化データを再暗号化する処理を実行する演算装置とを備えた再暗号化装置と、前記再暗号化装置と通信する通信装置と、前記第１の暗号化データと前記再暗号化された第２および第３の各暗号化データとを前記再暗号化装置から取得し、前記再暗号化された第２の暗号化データから、当該利用者端末が保持する自身の復号鍵によって前記第１暗号鍵を復号し、当該復号で得た第１暗号鍵により前記第１の暗号化データを復号して前記平文を出力する処理を実行する演算装置とを備えた利用者端末と、を含むことを特徴とする。
【００１５】
また、本発明の再暗号化装置は、複数の利用者端末と通信する通信装置と、データ作成
者の第１暗号鍵にて平文を暗号化した第１の暗号化データと、前記第１暗号鍵および当該第１暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第２および第３の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第２および第３の各暗号化データを再暗号化する処理を実行し、前記第１の暗号化データと前記再暗号化された第２および第３の各暗号化データとを前記利用者端末に送信する演算装置とを備えることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、複数ユーザ間で共有の暗号化データを所定装置にて保持しユーザ毎の閲覧権限管理を行う環境下において、装置管理者を含む無権限者による暗号化データの閲覧を確実に回避可能となる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態の再暗号化装置を含むシステム構成例を示す図である。
【図２】本実施形態における利用者端末のハードウェア構成例を示す図である。
【図３】本実施形態における再暗号化装置のハードウェア構成例を示す図である。
【図４】本実施形態における再暗号化方法の手順例１を示すシーケンス図である。
【図５】本実施形態における再暗号化方法の手順例２を示すシーケンス図である。
【図６】本実施形態における再暗号化方法の手順例３を示すシーケンス図である。
【図７】本実施形態における再暗号化方法の手順例４を示すシーケンス図である。
【図８】本実施形態における再暗号化方法の手順例５を示すシーケンス図である。
【図９】本実施形態における再暗号化方法の手順例６を示すシーケンス図である。
【図１０】本実施形態における再暗号化方法の手順例７を示すシーケンス図である。
【図１１】本実施形態における再暗号化方法の手順例８を示すシーケンス図である。
【図１２】本実施形態における再暗号化方法の手順例９を示すシーケンス図である。
【図１３】本実施形態における再暗号化方法の手順例１０を示すシーケンス図である。
【図１４】本実施形態における再暗号化方法の手順例１１を示すシーケンス図である。
【図１５】本実施形態における再暗号化方法の手順例１２を示すシーケンス図である。
【図１６】本実施形態における再暗号化方法の手順例１３を示すシーケンス図である。
【図１７】本実施形態における再暗号化方法の手順例１４を示すシーケンス図である。
【図１８】本実施形態の変換鍵の登録テーブルの構成例１を示す図である。
【図１９】本実施形態のアクセス鍵の登録テーブルの構成例１を示す図である。
【図２０】本実施形態のアクセス鍵の登録テーブルの構成例２を示す図である。
【図２１】本実施形態のアクセス鍵の登録テーブルの構成例３を示す図である。
【図２２】本実施形態の二重暗号鍵の登録テーブルの構成例１を示す図である。
【図２３】本実施形態の暗号化データの登録テーブルの構成例１を示す図である。
【図２４】本実施形態の暗号化データの登録テーブルの構成例２を示す図である。
【図２５】本実施形態の暗号化データの登録テーブルの構成例３を示す図である。
【図２６】本実施形態の変換鍵の登録テーブルの構成例２を示す図である。
【図２７】本実施形態のアクセス鍵の登録テーブルの構成例４を示す図である。
【図２８】本実施形態の暗号化データの登録テーブルの構成例４を示す図である。
【図２９】本実施形態の二重暗号鍵の登録テーブルの構成例２を示す図である。
【発明を実施するための形態】
【００１８】
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は、本実施形態における再暗号化装置２０を含む再暗号化システム１の全体構成例を示す図である。この図では、全体構成と共に、再暗号化システム１を構成する各コンピュータの機能構成例についても示している。図１に示す再暗号化システム１は、複数ユーザ間で共有の暗号化データを再暗号化装置２０（所定装置）にて保持しユーザ毎の閲覧権限管理を行う環境下において、再暗号化装置２０の管理者を含む無権限者による暗号化データの閲覧を確実に回避するシステムである。
【００１９】
本実施形態に係る再暗号化システム１は、複数の利用者端末１０（本実施形態では、複数の利用者端末１０を区別するため、便宜的に“１０−１”、“１０−２”、“１０−３”、“１０−４”、と表記するが、特に利用者端末間で区別が必要無い記載の場合、利用者端末１０とする）と、再暗号化装置２０とがインターネットなどの適宜なネットワーク３０を介して通信可能に接続されて構成されたコンピュータネットワークシステムである。
【００２０】
図１に示すように、各利用者端末１０−１〜１０−４は、秘密鍵生成部１０１、鍵演算部１０２、公開ＩＤ記憶部１０３、鍵記憶部１０４、情報生成部１０５、暗号処理部１０６、暗号化データ送受信部１０７、一次記憶部１０８、および情報表示部１０９から構成することができる。
【００２１】
このうち秘密鍵生成部１０１は、各利用者端末１０−１〜１０−４で管理する秘密鍵を生成するものである。また、鍵演算部１０２は、動的に暗号鍵、復号鍵等を生成するものである。また、公開ＩＤ記憶部１０３は、通信相手端末を識別するＩＤ（identification）を記憶するものである。また、鍵記憶部１０４は、秘密鍵成部１０１で生成された秘密鍵を安全に管理するものである。また、情報生成部１０５は、通信相手端末へのメッセージを生成するものである。また、暗号処理部１０６は、暗号鍵を用いてメッセージを暗号化したり、復号鍵を用いて暗号化データを復号したりするものである。また、暗号化データ送受信部１０７は、暗号化データを送受信する。また、一次記憶部１０８は、半導体を用いた一次記憶領域である。また、情報表示部１０９は、メッセージを表示するものである。なお、上述した通信相手を識別するＩＤは、メールアドレスや身分証明書番号等、公に個人を特定できるものであればよく、利用するシステム毎に予め利用者に通知されているものとする。
【００２２】
このような機能を有する各利用者端末１０−１〜１０−４は、図２に例示するように一般的なコンピュータにより実現できる。例えば、秘密鍵生成部１０１、鍵演算部１０２、情報生成部１０５、暗号処理部１０６、暗号化データ送受信部１０７は、ＣＰＵ（Central Processing Unit）等の演算装置１４により実行されるコンピュータプログラム１２と
して実現できる。こうしたコンピュータプログラム１２は、例えば、ハードディスクやフラッシュメモリデバイス等の記憶装置１１に予め格納、保持するか、或いはネットワーク３０から配布を受けて利用することとできる。また、公開ＩＤ記憶部１０３、鍵記憶部１０４も上述の記憶装置１１として実現できる。また、一次記憶部１０８はメモリ１３にて実現出来る。また、情報表示部１０９は、例えば液晶表示装置や有機ＥＬ（Electro Luminescence）ディスプレイなど出力装置１６として実現できる。この他、利用者端末１０−１〜１０−４は、利用者からの指示、入力を受け付けるためのキーボードやマウス等の入力装置１５、およびネットワーク３０を介して他装置と通信する通信装置１７を備える。
【００２３】
また再暗号化装置２０の機能構成は以下の通りとなる。図１にて示すように、再暗号化装置２０は、暗号化データ送受信部２０１、送受信者制御部２０２、変換鍵記憶部２０３、暗号化データ記憶部２０４、鍵演算部２０５、再暗号化処理部２０６、一次記憶部２０
７、アクセス鍵記憶部２０８、および二重暗号鍵記憶部２０９から構成することができる。
【００２４】
このうち暗号化データ送受信部２０１は、暗号化データを送受信するものである。また、送受信者制御部２０２は、再暗号化装置２０にアップロードされた暗号化データがどの利用者端末からどの利用者端末へのメッセージであるかを制御するものである。また、変換鍵記憶部２０３は、再暗号化に用いる変換鍵を管理するものである。また、暗号化データ記憶部２０４は、再暗号化データを記憶するものである。また、鍵演算部２０５は、変換鍵を登録するための情報を計算したり、乱数を生成したりするものである。また、再暗号化処理部２０６は、再暗号化処理を行うものである。また、アクセス鍵記憶部２０８は、暗号化データを復号する為の情報を暗号化した情報（以下、アクセス鍵と称する）を記憶するものである。また、二重暗号鍵記憶部２０９は、暗号化データを更に二重に暗号化する際に用いた暗号鍵(以下、二重暗号鍵と称する)を記憶するものである。
【００２５】
こうした再暗号化装置２０は、図３に例示するように一般的なコンピュータにより実現できる。例えば、暗号化データ送受信部２０１、送受信者制御部２０２、鍵演算部２０５、および再暗号化処理部２０６は、ＣＰＵ（Central Processing Unit）等の演算装置２
４により実行されるコンピュータプログラム２２として実現できる。こうしたコンピュータプログラム２２は、例えば、ハードディスクやフラッシュメモリデバイス等の記憶装置２１に予め格納、保持するか、或いはネットワーク３０から配布を受けて利用することとできる。また、変換鍵記憶部２０３、暗号化データ記憶部２０４、アクセス鍵記憶部２０８、および二重暗号鍵記憶部２０９は、記憶装置２１として実現できる。また、一次記憶部２０７はメモリ２３にて実現出来る。この他、再暗号化装置２０は、ネットワーク３０を介して利用者端末１０−１〜１０−４ら他装置と通信する通信装置２５を備える。
【００２６】
−−−本実施形態における用語等の定義−−−
ここで、本実施形態で用いる関数および演算子の意味を予め説明する。本実施形態で記載する“ｈ（）”は、入力データをハッシュ化するハッシュ関数である。また、“ＥＫ（）”は、ストリーム暗号による暗号化関数であり、入力データに対し鍵Ｋを用いて暗号化処理する関数を意味する。また、“ＤＫ（）”は、ストリーム暗号による復号関数であり、入力データに対し鍵Ｋを用いて復号処理する関数を意味する。
【００２７】
また、“Ａ｜Ｂ”はデータＡとデータＢとの連結を意味し、必要に応じて連結したデータからデータＡとデータＢとを分離することできる。また、図中における“○の中に＋”の記号は排他的論理和演算（ｘｏｒ）を意味する。
【００２８】
なお本実施形態では、暗号化関数および復号関数としてストリーム暗号を用いているが、多重に暗号処理または復号処理を行う際、その処理結果が処理の順番に依存しない可換性の性質を持つ暗号化関数、復号関数であればいずれの関数を採用しても良い。よって、必ずしも本実施形態にて挙げたストリーム暗号を用いなくてもよい。また、本実施形態では、上述のハッシュ関数によるハッシュ値、暗号化に用いる暗号化鍵、復号に用いる復号鍵は同じ長さの固定長とする。
【００２９】
ここであらためて、「再暗号」の定義を記載しておく。広義の意味における「再暗号」は、「暗号文を、再度暗号化すること」となるが、本実施形態における意味すなわち狭義の意味での「再暗号」は、「Ａさん宛の暗号文を復号することなくＢさんのみが保持する復号鍵で復号できる形に変換すること」を意味している。
【００３０】
広義の意味では「暗号文を一旦復号し再度暗号化すること」や「暗号文を二重に暗号化」することも含まれるが、本実施形態で想定するように、暗号学の研究分野においては上
述した狭義の意味での「再暗号」を定義として用いるケースが一般に多い。
【００３１】
−−−処理手順例−−−
以下、本実施形態における再暗号化方法の実際手順について図に基づき説明する。以下で説明する再暗号化方法に対応する各種動作は、再暗号化システム１を構成する各装置、すなわち再暗号化装置２０および利用者端末１０がそれぞれメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【００３２】
図４〜９は、本実施形態における再暗号化方法の手順例１〜６を示すシーケンス図である。ここでは、再暗号を行う為の変換鍵の登録、利用者端末間で授受されるメッセージの暗号化、その暗号化データの再暗号化処理、再暗号化データの復号およびメッセージ取得、といった利用者端末間でのメッセージ授受に伴う一連のシーケンスについて説明する。
【００３３】
図４のシーケンス図は、再暗号化装置２０にて暗号化データを再暗号化する際に用いる、利用者端末１０−４と利用者端末１０−１との間に関する変換鍵の登録方法を示すシーケンス図である。
【００３４】
この場合まず、利用者Ｓの利用者端末１０−４（利用者端末１０−１に宛てたメッセージ作成、送信を行う利用者端末）は、利用者Ａの利用者端末１０−１へメッセージの内容を通知するため、再暗号化装置２０に対して変換鍵の登録申請を実行する（ステップＳ００１）。この変換鍵は、メッセージの暗号化データを再暗号化装置２０にて再暗号化する際に用いる鍵となる。
【００３５】
一方、再暗号化装置２０は、利用者端末１０−４から上述の変換鍵登録申請を受信すると、予め定めたハッシュ値と同じ長さの乱数ｐを適宜な乱数生成アルゴリズムにて生成し（ステップＳ００２）、その乱数ｐを変換鍵登録申請元である上述の利用者端末１０−４に送信する（ステップＳ００３）。
【００３６】
他方、利用者端末１０−４は、鍵記憶部１０４にて管理している自身の秘密鍵Ｋｓと、公開ＩＤ記憶部１０３にて利用者端末１０−１に関して管理している公開ＩＤ“ＩＤａ”を、ハッシュ関数に入力してハッシュ値Ｋｓ（ａ）＝ｈ（Ｋｓ，ＩＤａ）を計算することで、鍵を暗号化する鍵暗号鍵を生成する（ステップＳ００４）。
【００３７】
続いて利用者端末１０−４は、上述のステップＳ００４で生成した鍵暗号鍵を用いて、予め定めたハッシュ値と同じ長さで値が全て０のメッセージ“ａｌｌ  ０”をストリーム暗号にて暗号化し、予め定めたハッシュ値と同じ長さの乱数ｒｓ（ａ）＝ＥＫｓ（ａ）（ａｌｌ  ０）を生成する（ステップＳ００５）。
【００３８】
また利用者端末１０−４は、上述のステップＳ００３で受信した乱数ｐと、ステップＳ００５で生成した乱数ｒｓ（ａ）とをｘｏｒした値“ｐ  ｘｏｒ  ｒｓ（ａ）”を、利用者端末１０−１へ送信する（ステップＳ００６）。
【００３９】
この場合、利用者端末１０−１は、上述の利用者端末１０−４から送信されてきた値“ｐ  ｘｏｒ  ｒｓ（ａ）”を受信すると、鍵記憶部１０４にて管理している自身の秘密鍵Ｋａと、公開ＩＤ記憶部１０３にて管理している利用者端末１０−４を識別する公開ＩＤであるＩＤｓをハッシュ関数に入力してハッシュ値Ｋａ（ｓ）＝ｈ（Ｋａ，ＩＤｓ）を計算し、鍵暗号鍵を生成する（ステップＳ００７）。
【００４０】
続いて利用者端末１０−１は、上述のステップＳ００７で生成した鍵暗号鍵を用いて、
予め定めたハッシュ値と同じ長さで値が全て０のメッセージ“ａｌｌ  ０”をストリーム暗号にて暗号化し、予め定めたハッシュ値と同じ長さの乱数ｒａ（ｓ）＝ＥＫａ（ｓ）（ａｌｌ  ０）を生成する（ステップＳ００８）。
【００４１】
また利用者端末１０−４は、上述のステップＳ００６で受信した値“ｐ  ｘｏｒ  ｒｓ（ａ）”と、ステップＳ００８で生成した乱数ｒａ（s）とをｘｏｒした値“ｒａ（s）  ｘｏｒ  ｐ  ｘｏｒ  ｒｓ（ａ）”を再暗号化装置２０へ送信する（ステップＳ００９）。
【００４２】
なお、ストリーム暗号の性質上、ステップＳ００９で再暗号化装置２０に送信した値“ｒａ（s）  ｘｏｒ  ｐ  ｘｏｒ  ｒｓ（ａ）”は、鍵暗号鍵Ｋａ（ｓ）を用いてステッ
プＳ００６で受信した値“ｐ  ｘｏｒ  ｒｓ（ａ）”をストリーム暗号にて暗号化した値と等しくなる。
【００４３】
一方、再暗号化装置２０は、利用者端末１０−１から“ｒａ（s）  ｘｏｒ  ｐ  ｘｏ
ｒ  ｒｓ（ａ）”を受信すると、この値に上述のステップＳ００２で用いた乱数ｐをｘｏｒし、利用者端末１０−４と利用者端末１０−１との変換鍵“ｒａ（s）  ｘｏｒ  ｒｓ
（ａ）”を計算し（ステップＳ０１０）、上述の変換鍵“ｒａ（s）  ｘｏｒ  ｒｓ（ａ
）”を変換鍵記憶部２０３のテーブルＴ２０３（図１８、図２６）に利用者端末１０−４と利用者端末１０−１との変換鍵として登録する（ステップＳ０１１）。
【００４４】
図５は、再暗号化装置２０にて暗号化データを再暗号化する際に用いる利用者端末１０−１と利用者端末１０−２との変換鍵の登録方法を示すシーケンス図である。この場合まず、利用者Ａの利用者端末１０−１は、利用者Ｂの利用者端末１０−２へメッセージの内容を通知するため、再暗号化装置２０に対して、変換鍵の登録申請を行う（ステップＳ１０１）。この変換鍵は、上述のメッセージを再暗号化する際に再暗号化装置２０が用いる鍵となる。
【００４５】
一方、再暗号化装置２０は、上述の変換鍵登録申請を受信すると、予め定めたハッシュ値と同じ長さの乱数ｐ'を生成し（ステップＳ１０２）、その乱数ｐ'を変換鍵登録申請元である上述の利用者端末１０−１に送信する（ステップＳ１０３）。
【００４６】
他方、利用者端末１０−１は、鍵記憶部１０４にて管理している自身の秘密鍵Ｋａと、公開ＩＤ記憶部１０３にて利用者端末１０−４（メッセージの送信元）に関して管理している公開ＩＤ“ＩＤｓ”をハッシュ関数に入力して、ハッシュ値Ｋａ（ｓ）＝ｈ（Ｋａ，ＩＤｓ）を計算することで、鍵を暗号化する鍵暗号鍵を生成する（ステップＳ１０４）。
【００４７】
次に利用者端末１０−１は、上述のステップＳ１０４で生成した鍵暗号鍵を用いて、予め定めたハッシュ値と同じ長さで値が全て０のメッセージ“ａｌｌ  ０”をストリーム暗号にて暗号化し、予め定めたハッシュ値と同じ長さの乱数ｒａ（ｓ）＝ＥＫａ（ｓ）（ａｌｌ  ０）を生成する（ステップＳ１０５）。
【００４８】
また利用者端末１０−１は、上述のステップＳ１０３で受信した乱数ｐ'とステップＳ
１０５で生成した乱数ｒａ（ｓ）とをｘｏｒした値“ｐ'ｘｏｒ  ｒａ（ｓ）”を利用者
端末１０−２へ送信する（ステップＳ１０６）。
【００４９】
一方、利用者端末１０−２は、利用者端末１０−４から送信された値“ｐ'ｘｏｒ  ｒ
ａ（ｓ）”を受信すると、鍵記憶部１０４にて管理している自身の秘密鍵Ｋｂと、公開ＩＤ記憶部１０３にて利用者端末１０−１に関して管理している公開ＩＤ“ＩＤａ”をハッシュ関数に入力してハッシュ値Ｋｂ（ａ）＝ｈ（Ｋｂ，ＩＤａ）を計算し、鍵暗号鍵を生
成する（ステップＳ１０７）。
【００５０】
続いて利用者端末１０−２は、上述のステップＳ１０７で生成した鍵暗号鍵を用いて、予め定めたハッシュ値と同じ長さで値が全て０のメッセージ“ａｌｌ  ０”をストリーム暗号にて暗号化し、予め定めたハッシュ値と同じ長さの乱数ｒｂ（ａ）＝ＥＫｂ（ａ）（ａｌｌ  ０）を生成する（ステップＳ１０８）。
【００５１】
また利用者端末１０−２は、上述のステップＳ１０６で受信した値“ｐ'ｘｏｒ  ｒａ
（ｓ）”とステップＳ１０８で生成した乱数ｒｂ（ａ）とをｘｏｒした値“ｒｂ（ａ）  ｘｏｒ  ｐ'  ｘｏｒ  ｒａ（s）”を再暗号化装置２０へ送信する（ステップＳ１０９）。
【００５２】
なお、ストリーム暗号の性質上、上述のステップＳ１０９で再暗号化装置２０に送信した値“ｒｂ（ａ）  ｘｏｒ  ｐ'  ｘｏｒ  ｒａ（s）”は、鍵暗号鍵Ｋｂ（ａ）を用いてステップＳ１０６で受信した値“ｐ'ｘｏｒ  ｒａ（ｓ）”をストリーム暗号にて暗号化
した値と等しくなる。
【００５３】
一方、再暗号化装置２０は、上述の利用者端末１０−２から“ｒｂ（ａ）  ｘｏｒ  ｐ'  ｘｏｒ  ｒａ（s）”を受信すると、この値に上述のステップＳ１０２で用いた乱数ｐ'をｘｏｒし、利用者端末１０−４が生成したメッセージに対する、利用者端末１０−１
と利用者端末１０−２との変換鍵“ｒｂ（ａ）  ｘｏｒ  ｒａ（s）”を計算する（ステ
ップＳ１１０）。
【００５４】
また、再暗号化装置２０は、上述の変換鍵“ｒｂ（ａ）  ｘｏｒ  ｒａ（s）”を、利
用者端末１０−４が生成したメッセージに対する利用者端末１０−１と利用者端末１０−２との変換鍵として変換鍵記憶部２０３に登録する（ステップＳ１１１）。このようにして登録された変換鍵は、メッセージ送信者の利用者端末１０−４からメッセージ受信者の利用者端末１０−１宛ての暗号化メッセージを、該当暗号化メッセージへのアクセス権がある別の利用者端末１０−２宛ての暗号化メッセージに変換するための鍵となる。
【００５５】
なお、メッセージを生成する利用者端末が利用者端末１０−４のみであり、その旨が本システム１で明らかである場合、利用者端末１０−４が生成したメッセージに対する利用者端末１０−１と利用者端末１０−２との変換鍵を、単に利用者端末１０−１と利用者端末１０−２との変換鍵として変換鍵記憶部２０３のテーブルＴ２０３（図１８、図２６）に登録する。また、上述のステップＳ１０１からステップＳ１１１までの処理を、利用者Ａの利用者端末１０−１と利用者Ｃの利用者端末１０−３とでも行い、上述したメッセージ送信者の利用者端末１０−４からメッセージ受信者の利用者端末１０−１宛ての暗号化メッセージへのアクセス権のある別の利用者端末全てに対して変換鍵の登録を行う。なお、ここでの利用者端末１０−４が生成したメッセージに対する利用者端末１０−１と利用者端末１０−３との変換鍵を“ｒｃ（ａ）  ｘｏｒ  ｒａ（s）”とする。
【００５６】
図１８、図２６で例示するテーブルＴ２０３は、上述のステップＳ０１１、ステップＳ１１１で再暗号化装置２０の変換鍵記憶部２０３に登録した変換鍵に関するテーブルの内容を示している。このテーブルＴ２０３は、メッセージの受信先である利用者端末の情報とメッセージの送信/変換元である利用者端末の情報と、変換鍵とのカラムから成ってい
る。
【００５７】
以上説明した変換鍵の登録方法により、利用者端末１０−１、１０−２、１０−３、１０−４にてそれぞれ管理する秘密鍵Ｋａ、Ｋｂ、Ｋｃ、Ｋｓを自分以外の利用者端末および再暗号化装置２０に漏洩することなく再暗号化する際に必要な変換鍵を、再暗号化装置
２０に登録することができる。
【００５８】
続いて図６は、上述の利用者端末１０−４により利用者端末１０−１宛ての、メッセージＭ、メッセージＭの暗号化データ、およびその暗号化に用いた暗号鍵を暗号化したデータを生成し、生成した暗号化データおよび暗号鍵を暗号化したデータを、再暗号化装置２０に送信するまでの処理の流れを示すシーケンス図である。
【００５９】
この場合まず、利用者端末１０−４は，利用者端末１０−１宛てのメッセージＭを生成し（ステップＳ２０１）、このメッセージＭに対して、鍵演算部１０２にて動的にランダムなメッセージ暗号鍵Ｋ１を生成する（ステップＳ２０２）。
【００６０】
また、利用者端末１０−４は、上述のステップＳ２０２で生成したメッセージ暗号鍵Ｋ１を用いてメッセージＭをストリーム暗号にて暗号化し、暗号化データＥＫ１（Ｍ）を生成する（ステップＳ２０３）。
【００６１】
次に利用者端末１０−４は、鍵記憶部１０４にて管理している自身の秘密鍵Ｋｓと、公開ＩＤ記憶部１０３にて利用者端末１０−１に関し管理している公開ＩＤ“ＩＤａ”を、ハッシュ関数に入力してハッシュ値Ｋｓ（ａ）＝ｈ（Ｋｓ，ＩＤａ）を計算し、鍵暗号鍵を生成する（ステップＳ２０４）。
【００６２】
次に利用者端末１０−４は、上述で生成した鍵暗号鍵Ｋｓ（ａ）を用いてメッセージ暗号鍵Ｋ１をストリーム暗号にて暗号化する（ステップＳ２０５）。なお、この時の暗号データはＥＫｓ（ａ）（Ｋ１）＝ｒｓ（ａ）ｘｏｒ  Ｋ１となる。さらに利用者端末１０−４は、メッセージ暗号鍵Ｋ１のハッシュ値ｈ（Ｋ１）を計算し（ステップＳ２０６）、上述の鍵暗号鍵Ｋｓ（ａ）を用いて上述のハッシュ値ｈ（Ｋ１）をストリーム暗号にて暗号化する（ステップＳ２０７）。なお、この時の暗号データはＥＫｓ（ａ）（ｈ（Ｋ１））＝ｒｓ（ａ）ｘｏｒ  ｈ（Ｋ１）となる。
【００６３】
次に利用者端末１０−４は、上述のステップＳ２０３、ステップＳ２０５、ステップＳ２０７で生成した値を結合して、利用者端末１０−１宛ての暗号化データおよび暗号鍵を暗号化したデータとし、再暗号化装置２０に送信する（ステップＳ２０８）。
【００６４】
図７は、利用者端末１０−４から送信された、利用者端末１０−１宛ての暗号化データおよび暗号鍵を暗号化したデータのうち暗号鍵を暗号化したデータを、再暗号化装置２０が、利用者端末１０−１向けのアクセス鍵として変換させる処理を示すシーケンス図である。
【００６５】
この場合、再暗号化装置２０は、上述のステップＳ２０８で利用者端末１０−４から送られてきた、利用者端末１０−１宛ての暗号化データおよび暗号鍵を暗号化したデータを受信すると、変換鍵記憶部２０３のテーブルＴ２０３（図１８）から、利用者端末１０−４から利用者端末１０−１への変換鍵“ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ）”を取得する（ステップＳ２０９）。
【００６６】
次に再暗号化装置２０は、上述のステップＳ２０８で送られてきたデータの内、ステップＳ２０３で生成された暗号化データＥＫ１（Ｍ）を暗号化データ記憶部２０４のテーブルＴ２０４−１（図１８）に保管する（ステップＳ２１０）。
【００６７】
次に再暗号化装置２０は、ステップＳ２０８で送られてきたデータの内、ステップＳ２０５で生成された暗号化データＥＫｓ（ａ）（Ｋ１）をステップＳ２０９で取得した変換鍵“ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ）”を用いて再暗号化処理を施す。本実施形態における
再暗号化処理は、単に排他的論理和演算処理（ｘｏｒ）とする。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【００６８】
（ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ））  ｘｏｒ  ＥＫｓ（ａ）（Ｋ１）
＝（ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ））  ｘｏｒ  （ｒｓ（ａ）  ｘｏｒ  Ｋ１）
＝（ｒａ（ｓ）  ｘｏｒ  Ｋ１）＝ＥＫａ（ｓ）（Ｋ１）
そして再暗号化装置２０は、得られた値ＥＫａ（ｓ）（Ｋ１）を、利用者端末１０−４と利用者端末１０−１とのアクセス鍵の一部とし、アクセス鍵記憶部２０８のテーブルＴ２０８−１（図１９）に登録する（ステップＳ２１１）。
【００６９】
次に再暗号化装置２０は、上述のステップＳ２０８で送られてきたデータの内、ステップＳ２０７で生成された暗号化データＥＫｓ（ａ）（ｈ（Ｋ１））を、ステップＳ２０９で取得した変換鍵“ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ）”を用いて再暗号化処理を施す。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【００７０】
（ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ））  ｘｏｒ  ＥＫｓ（ａ）（ｈ（Ｋ１））
＝（ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ））  ｘｏｒ  （ｒｓ（ａ）  ｘｏｒ  ｈ（Ｋ１））
＝（ｒａ（ｓ）  ｘｏｒ  ｈ（Ｋ１））＝ＥＫａ（ｓ）（ｈ（Ｋ１））
そして再暗号化装置２０は、得られた値ＥＫａ（ｓ）（ｈ（Ｋ１））を、利用者端末１０−４と利用者端末１０−１とのアクセス鍵のもう一つの一部とし、アクセス鍵記憶部２０８のテーブルＴ２０８−１（図１９）に登録する（ステップＳ２１２）。
【００７１】
図８は、利用者端末１０−４から再暗号化装置２０に送信された、利用者端末１０−１宛ての暗号化データを、再暗号化装置２０にて利用者端末１０−２が復号できるように、利用者端末１０−１向けのアクセス鍵を利用者端末１０−２向けのアクセス鍵として変換する処理の流れを示すシーケンス図である。
【００７２】
この場合、再暗号化装置２０は、変換鍵記憶部２０３のテーブルＴ２０３（図１８）から、利用者端末１０−４が生成したメッセージに対する、利用者端末１０−１から利用者端末１０−２への変換鍵"ｒｂ（ａ）ｘｏｒ  ｒａ（ｓ）"を取得する（ステップＳ２１３）。
【００７３】
次に再暗号化装置２０は、ＪステップＳ２１１で得ている値ＥＫａ（ｓ）（Ｋ１）をステップＳ２１３で取得した変換鍵“ｒｂ（ａ）ｘｏｒ  ｒａ（ｓ）”を用いて再暗号化処理を施す。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【００７４】
（ｒｂ（ａ）ｘｏｒ  ｒａ（ｓ））  ｘｏｒ  ＥＫａ（ｓ）（Ｋ１）
＝（ｒｂ（ａ）ｘｏｒ  ｒａ（ｓ））  ｘｏｒ  （ｒａ（ｓ）  ｘｏｒ  Ｋ１）
＝（ｒｂ（ａ）  ｘｏｒ  Ｋ１）＝ＥＫｂ（ａ）（Ｋ１）
そして再暗号化装置２０は、得られた値ＥＫｂ（ａ）（Ｋ１）を、利用者端末１０−４が生成したメッセージに対する、利用者端末１０−１と利用者端末１０−２とのアクセス鍵の一部としてアクセス鍵記憶部２０８のテーブルＴ２０８−１（図１９）に登録する（ステップＳ２１４）。
【００７５】
次に再暗号化装置２０は、上述のステップＳ２１２で得られた値ＥＫａ（ｓ）（ｈ（Ｋ１））をステップＳ２１３で取得した変換鍵“ｒｂ（ａ）ｘｏｒ  ｒａ（ｓ）”を用いて再暗号化処理を施す。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【００７６】
（ｒｂ（ａ）ｘｏｒ  ｒａ（ｓ））  ｘｏｒ  ＥＫａ（ｓ）（ｈ（Ｋ１））
＝（ｒｂ（ａ）ｘｏｒ  ｒａ（ｓ））  ｘｏｒ  （ｒａ（ｓ）  ｘｏｒ  ｈ（Ｋ１））
＝（ｒｂ（ａ）  ｘｏｒ  ｈ（Ｋ１））＝ＥＫｂ（ａ）（ｈ（Ｋ１））
そして再暗号化装置２０は、得られた値ＥＫｂ（ａ）（ｈ（Ｋ１））を、利用者端末１０−４が生成したメッセージに対する、利用者端末１０−１と利用者端末１０−２とのアクセス鍵のもう一つの一部としてアクセス鍵記憶部２０８のテーブルＴ２０８−１（図１９）に登録する（ステップＳ２１５）。
【００７７】
図９は、利用者端末１０−１または利用者端末１０−２が、それぞれ、再暗号化装置２０に登録されている暗号化データおよびアクセス鍵を取得し、前述の暗号化データを復号してメッセージＭを取得するまでの流れを示すシーケンス図である。
【００７８】
この場合、利用者端末１０−１は、再暗号化装置２０の暗号化データ記憶部２０４のテーブルＴ２０４−１（図２３）から暗号化データＥＫ１（Ｍ）を、再暗号化装置２０のアクセス鍵記憶部２０８のテーブルＴ２０８−１（図１９）からアクセス鍵ＥＫａ（ｓ）（Ｋ１）とＥＫａ（ｓ）（ｈ（Ｋ１））を取得する（ステップＳ２１６）。
【００７９】
次に利用者端末１０−１は、暗号化データを復号するための鍵暗号鍵を生成する（ステップＳ２１７）。具体的には、利用者端末１０−１は、鍵記憶部１０４にて管理している自身の秘密鍵Ｋａと、公開ＩＤ記憶部１０３にて利用者端末１０−４について管理している公開ＩＤ“ＩＤｓ”をハッシュ関数に入力したハッシュ値Ｋａ（ｓ）＝ｈ（Ｋａ，ＩＤｓ）を計算することで、鍵暗号鍵を生成する。
【００８０】
次に利用者端末１０−１は、生成した鍵暗号鍵Ｋａ（ｓ）を用いて、ステップＳ２１６で取得したアクセス鍵の内、ＥＫａ（ｓ）（Ｋ１）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の様にメッセージ暗号鍵Ｋ１を復号することができる（ステップＳ２１８）。
【００８１】
ＤＫａ（ｓ）（ＥＫａ（ｓ）（Ｋ１））＝ｒａ（ｓ）  ｘｏｒ  （ｒａ（ｓ）  ｘｏｒ
Ｋ１）＝Ｋ１
次に利用者端末１０−１は、ステップＳ２１８で復号したメッセージ暗号鍵Ｋ１を用いて、ステップＳ２１６で取得した暗号化データＥＫ１（Ｍ）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の様にメッセージＭを復号することができる（ステップＳ２１９）。
【００８２】
ＤＫ１（ＥＫ１（Ｍ））＝Ｍ
また同様に、利用者端末１０−２は、再暗号化装置２０の暗号化データ記憶部２０４のテーブルＴ２０４−１（図２３）から暗号化データＥＫ１（Ｍ）を、再暗号化装置２０のアクセス鍵記憶部２０８のテーブルＴ２０８−１（図１９）からアクセス鍵ＥＫｂ（ａ）（Ｋ１）とＥＫｂ（ａ）（ａ）（ｈ（Ｋ１））を取得する（ステップＳ２２０）。
【００８３】
次に利用者端末１０−２は、暗号化データを復号するための鍵暗号鍵を生成する（ステップＳ２２１）。具体的には、利用者端末１０−２は、鍵記憶部１０４にて管理している自身の秘密鍵Ｋｂと、公開ＩＤ記憶部１０３にて利用者端末１０−１に関して管理している公開ＩＤ“ＩＤａ”をハッシュ関数に入力したハッシュ値Ｋｂ（ａ）＝ｈ（Ｋｂ，ＩＤａ）を計算することで、鍵暗号鍵を生成する。
【００８４】
次に利用者端末１０−２は、生成した鍵暗号鍵Ｋｂ（ａ）を用いて、ステップＳ２２０で取得したアクセス鍵の内、ＥＫｂ（ａ）（Ｋ１）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−２は、以下の様にメッセージ暗号鍵Ｋ１を復号することができる（ステップＳ２２２）。
【００８５】
ＤＫｂ（ａ）（ＥＫｂ（ａ）（Ｋ１））＝ｒｂ（ａ）  ｘｏｒ  （ｒｂ（ａ）  ｘｏｒ
Ｋ１）＝Ｋ１
次に利用者端末１０−２は、ステップＳ２２２で復号したメッセージ暗号鍵Ｋ１を用いて、ステップＳ２２０で取得した暗号化データＥＫ１（Ｍ）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−２は、以下の様にメッセージＭを復号することができる（ステップＳ２２３）。
【００８６】
ＤＫ１（ＥＫ１（Ｍ））＝Ｍ
以上、図４から図９を用いて、再暗号を行う為の変換鍵を再暗号化装置２０に登録する仕組みと、利用者端末１０−４が利用者端末１０−１宛てのメッセージを暗号化し、その暗号化データを利用者端末１０−１が復号できる形に、再暗号化装置２０にて再暗号化処理を施し、その再暗号化データを利用者端末１０−１にて復号して上記メッセージを取得するための仕組みと、前記再暗号化データを利用者端末１０−２が復号できる形に更に再暗号化装置２０にて再暗号化処理を施し、その再暗号化データを利用者端末１０−２にて復号して上記メッセージを取得するための仕組みを説明した。
【００８７】
次に、図１０と図１１を用いて、本発明の課題であった利用者Ｂの利用者端末１０−２の再暗号化装置２０にて管理されている暗号化データＥＫ１（Ｍ）へのアクセス権を失効させた際、利用者端末１０−２からの閲覧を防止する為に再暗号化装置２０にて管理されている暗号化データＥＫ１（Ｍ）を復号せずに新しい暗号鍵で再暗号化させる仕組みを説明する。また、図１２と図１３を用いて、利用者Ｂに続いて更に利用者Ｃの利用者端末１０−３の上述の新しい暗号鍵で再暗号化されたデータへのアクセス権を失効させた際の、再暗号化データを復号せずに更に新しい暗号鍵で再暗号化させる仕組みを説明する。
【００８８】
図１０は、再暗号化装置２０において管理されている暗号化データＥＫ１（Ｍ）への、利用者端末１０−２によるアクセス権を抹消した際に、この利用者端末１０−２が上述の暗号化データＥＫ１（Ｍ）を復号できないよう、暗号化データＥＫ１（Ｍ）を、再暗号化装置２０が生成した暗号鍵Ｋ２で再度暗号化して二重暗号化データを生成し、この二重暗号化データを利用者端末１０−１が復号できるように、利用者端末１０−１向けのアクセス鍵ＥＫａ（ｓ）（Ｋ１）とＥＫａ（ｓ）（ｈ（Ｋ１））を変換するまでの流れを示すシーケンス図である。
【００８９】
再暗号化装置２０は、利用者端末１０−１、利用者端末１０−３、および利用者端末１０−４のいずれかからの依頼により、暗号化データＥＫ１（Ｍ）への利用者端末１０−２のアクセス権について、アクセス鍵記憶部２０８のテーブルＴ２０８−２（図２０参照）に登録されている利用者端末１０−２のアクセス鍵を削除する（ステップＳ３０１）。
【００９０】
次に再暗号化装置２０は、上述の暗号化データＥＫ１（Ｍ）に対して、鍵演算部２０５にて動的にランダムな二重暗号鍵Ｋ２を生成し、二重暗号鍵記憶部２０９のテーブルＴ２０９（図２２）に保管する（ステップＳ３０２）。
【００９１】
次に再暗号化装置２０は、暗号化データ記憶部２０４のテーブルＴ２０４−１（図２３）にて保管されている暗号化データＥＫ１（Ｍ）を、ステップＳ３０２で生成した二重暗号鍵Ｋ２を用いてストリーム暗号にて二重に暗号化し、二重暗号データＥＫ２（ＥＫ１（Ｍ））を計算する。そして、暗号化データ記憶部２０４にて保管されている暗号化データＥＫ１（Ｍ）を、この二重暗号データＥＫ２（ＥＫ１（Ｍ））に置き換える（ステップＳ３０３）。このとき、上述の二重暗号データＥＫ２（ＥＫ１（Ｍ））が、二重暗号鍵Ｋ２にて二重暗号化されていることを再暗号化装置２０が識別できるように、テーブルＴ２０９（図２２）およびテーブルＴ２０４−２（図２４）に識別子を用いて記録する。ここでは、テーブルＴ２０４−２にて、二重暗号化データＥＫ２（ＥＫ１（Ｍ））には、識別子
"２"が割り振られている。また、テーブルＴ２０９にて、二重暗号鍵Ｋ２にも識別子"２"が割り振られている。そのため、再暗号化装置２０は、二重暗号化データＥＫ２（ＥＫ１（Ｍ））が、二重暗号鍵Ｋ２にて二重暗号化されていることを識別することが可能となる。
【００９２】
次に再暗号化装置２０は、アクセス鍵記憶部２０８のテーブルＴ２０８−１（図１９）にて保管されている、利用者端末１０−４と利用者端末１０−１とのアクセス鍵の片側であるＥＫａ（ｓ）（ｈ（Ｋ１））に、ステップＳ３０２で生成した二重暗号鍵Ｋ２を用いて再暗号処理を施す。なお、ここでの再暗号処理も単に排他的論理和演算処理（ｘｏｒ）とする。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【００９３】
ＥＫａ（ｓ）（ｈ（Ｋ１））  ｘｏｒ  Ｋ２ 
＝（ｒａ（ｓ）  ｘｏｒ  ｈ（Ｋ１））  ｘｏｒ  Ｋ２
＝ｒａ（ｓ）  ｘｏｒ  （ｈ（Ｋ１）  ｘｏｒ  Ｋ２）
＝  ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）
そして、再暗号化装置２０は、アクセス鍵記憶部２０８のテーブルＴ２０８−１（図１９）に保管されている、利用者端末１０−４と利用者端末１０−１とのアクセス鍵の片側であるＥＫａ（ｓ）（ｈ（Ｋ１））を、この再暗号処理によって得た値ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）に置き換える（ステップＳ３０４、図２０のテーブルＴ２０８−２参照）。また、同様にして利用者端末１０−１と利用者端末１０−３とのアクセス鍵の片側であるＥＫＣ（ａ）（ｈ（Ｋ１））も二重暗号鍵Ｋ２を用いた再暗号処理値ＥＫＣ（ａ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）に置き換える（図２０のテーブルＴ２０８−２参照）。
【００９４】
図１１は、利用者端末１０−１が、再暗号化装置２０に登録されている上述の二重暗号化データＥＫ２（ＥＫ１（Ｍ））およびアクセス鍵ＥＫａ（ｓ）（Ｋ１）とＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）を取得し、二重暗号化データを復号してメッセージＭを取得するまでの流れを示すシーケンス図である。
【００９５】
この場合、利用者端末１０−１は、再暗号化装置２０の暗号化データ記憶部２０４のテーブルＴ２０４−２（図２４）から二重暗号化データＥＫ２（ＥＫ１（Ｍ））を、再暗号化装置２０のアクセス鍵記憶部２０８のテーブルＴ２０８−２（図２０）からアクセス鍵ＥＫあ（ｓ）（Ｋ１）とＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）を取得する（ステップＳ３０５）。
【００９６】
次に利用者端末１０−１は、二重暗号化データを復号するための鍵暗号鍵を生成する（ステップＳ３０６）。具体的には、利用者端末１０−１は、鍵記憶部１０４にて管理している自身の秘密鍵Ｋａと、公開ＩＤ記憶部１０３にて利用者端末１０−４に関して管理している公開ＩＤ“ＩＤｓ”をハッシュ関数に入力したハッシュ値Ｋａ（ｓ）＝ｈ（Ｋａ，ＩＤｓ）を計算することで、鍵暗号鍵を生成する。
【００９７】
次に利用者端末１０−１は、生成した鍵暗号鍵Ｋａ（ｓ）を用いて、ステップＳ３０５で取得したアクセス鍵の内、ＥＫａ（ｓ）（Ｋ１）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の様にメッセージ暗号鍵Ｋ１を復号することができる（ステップＳ３０７）。
【００９８】
ＤＫａ（ｓ）（ＥＫａ（ｓ）（Ｋ１））
＝ｒａ（ｓ）  ｘｏｒ  （ｒａ（ｓ）  ｘｏｒ  Ｋ１）
＝Ｋ１
次に利用者端末１０−１は、ステップＳ３０６で生成した鍵暗号鍵Ｋａ（ｓ）を用いて、ステップＳ３０５で取得したアクセス鍵の内、ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２
）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の値を復号することができる（ステップＳ３０８）。
【００９９】
ＤＫａ（ｓ）（ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２））
＝ｒａ（ｓ）  ｘｏｒ  （ｒａ（ｓ）  ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ２））
＝ｈ（Ｋ１）ｘｏｒ  Ｋ２
次に利用者端末１０−１は、ステップＳ３０７で復号したメッセージ暗号鍵Ｋ１をハッシュ関数ｈ（）に入力したハッシュ値ｈ（Ｋ１）を計算し、そのハッシュ値ｈ（Ｋ１）とステップＳ３０８で得た値ｈ（Ｋ１）ｘｏｒ  Ｋ２との排他的論理和（ｘｏｒ）を計算して以下の様に二重暗号鍵Ｋ２を取得する（ステップＳ３０９）。
【０１００】
ｈ（Ｋ１）ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ２）＝  Ｋ２
そして利用者端末１０−１は、ステップＳ３０９で復号した二重暗号鍵Ｋ２を用いて、ステップＳ３０５で取得した二重暗号化データＥＫ２（ＥＫ１（Ｍ））をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の値を得ることできる（ステップＳ３１０）。
【０１０１】
ＤＫ２（ＥＫ２（ＥＫ１（Ｍ）））＝ＥＫ１（Ｍ）
そして利用者端末１０−１は、ステップＳ３０７で復号したメッセージ暗号鍵Ｋ１を用いて、ステップＳ３１０で取得した値ＥＫ１（Ｍ）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の様にメッセージＭを復号することができる（ステップＳ３１１）。
【０１０２】
ＤＫ１（ＥＫ１（Ｍ））＝Ｍ
図１２は、利用者端末１０−２に引き続き、更に利用者端末１０−３に関して、二重暗号化データＥＫ２（ＥＫ１（Ｍ））へのアクセス権を抹消した際に、利用者端末１０−３が二重暗号化データＥＫ２（ＥＫ１（Ｍ））を復号できないよう、二重暗号化データＥＫ２（ＥＫ１（Ｍ））を再暗号化装置２０が再度生成した暗号鍵Ｋ３で暗号化処理を施し、アクセス権を有する利用者端末１０−１ならば復号できるように利用者端末１０−１向けのアクセス鍵ＥＫａ（ｓ）（Ｋ１）とＥＫａ（ｓ）（ｈ（Ｋ１）  ｘｏｒ  Ｋ２）を再度変換するまでの流れを示すシーケンス図である。
【０１０３】
この場合、再暗号化装置２０は、利用者端末１０−１または利用者端末１０−４からの、二重暗号化データＥＫ２（ＥＫ１（Ｍ））への利用者端末１０−３のアクセス権の抹消依頼により、アクセス鍵記憶部２０８に登録されている利用者端末１０−３のアクセス鍵を削除する（ステップＳ４０１、図２１のテーブルＴ２０８−３参照）。
【０１０４】
次に再暗号化装置２０は、上述の二重暗号化データＥＫ２（ＥＫ１（Ｍ））に対して、鍵演算部２０５にて動的にランダムな二重暗号鍵Ｋ３を生成し、二重暗号鍵記憶部２０９のテーブルＴ２０９（図２２）に保管する（ステップＳ４０２）。
【０１０５】
次に再暗号化装置２０は、暗号化データ記憶部２０４のテーブルＴ２０４−２（図２４）にて保管されている二重暗号化データＥＫ２（ＥＫ１（Ｍ））を、ステップＳ４０２で生成した二重暗号鍵Ｋ３を用いてストリーム暗号にて二重に暗号化し、二重暗号データＥＫ３（ＥＫ２（ＥＫ１（Ｍ）））を計算する（ステップＳ４０３）。
【０１０６】
次に再暗号化装置２０は、暗号化データ記憶部２０４のテーブルＴ２０４−２（図２４）にて保管されている二重暗号化データＥＫ２（ＥＫ１（Ｍ））の識別子を基に、二重暗号鍵記憶部２０９のテーブルＴ２０９（図２２）より、上述のＥＫ２（ＥＫ１（Ｍ））の識別子と同じ識別子を持つ二重暗号鍵Ｋ２を取り出し、この二重暗号鍵Ｋ２を用いてステ
ップＳ４０３にて得た二重暗号データＥＫ３（ＥＫ２（ＥＫ１（Ｍ）））を復号化する。この復号処理により再暗号化装置２０は以下の値を得る。
【０１０７】
ＤＫ２（ＥＫ３（ＥＫ２（ＥＫ１（Ｍ））））＝  ＥＫ３（ＥＫ１（Ｍ））。
【０１０８】
そして、暗号化データ記憶部２０４のテーブルＴ２０４−２（図２４）にて保管されている二重暗号化データＥＫ２（ＥＫ１（Ｍ））を、ここで得た値ＥＫ３（ＥＫ１（Ｍ））に置き換える（ステップＳ４０４）。このとき、上述の二重暗号データＥＫ３（ＥＫ１（Ｍ））が、二重暗号鍵Ｋ３にて二重暗号化されていることを再暗号化装置２０が識別できるように、図２２のテーブルＴ２０９および図２５のテーブルＴ２０４−３に識別子を用いて記録する。ここでは、テーブルＴ２０４−３にて二重暗号化データＥＫ３（ＥＫ１（Ｍ））には識別子"３"が割り振られており、テーブルＴ２０９にて二重暗号鍵Ｋ３にも識別子"３"が割り振られているため、再暗号化装置２０は、二重暗号化データＥＫ３（ＥＫ１（Ｍ））が、二重暗号鍵Ｋ３にて二重暗号化されていることを識別することが可能となる。
【０１０９】
次に再暗号化装置２０は、アクセス鍵記憶部２０８のテーブルＴ２０８−２（図２０）にて保管されている、利用者端末１０−４と利用者端末１０−１とのアクセス鍵の片側であるＥＫａ（ｓ）（ｈ（Ｋ１）  ｘｏｒ  Ｋ２）に、ステップＳ４０４で二重暗号鍵記憶部２０９のテーブルＴ２０９（図２２）から取り出した二重暗号鍵Ｋ２とステップＳ４０２で生成した二重暗号鍵Ｋ３とをｘｏｒした値を暗号鍵として用いて再暗号処理を施す。なお、ここでの再暗号処理も、単に排他的論理和演算処理（ｘｏｒ）とする。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【０１１０】
ＥＫａ（ｓ）（ｈ（Ｋ１）  ｘｏｒ  Ｋ２  ｘｏｒ  （Ｋ２  ｘｏｒ  Ｋ３）  
＝（ｒａ（ｓ）  ｘｏｒ  （ｈ（Ｋ１）  ｘｏｒ  Ｋ２））  ｘｏｒ  （Ｋ２  ｘｏｒ
Ｋ３）  ＝  ｒａ（ｓ）  ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ３）
＝  ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３）
そして、再暗号化装置２０は、アクセス鍵記憶部２０８のテーブルＴ２０８−２（図２０）に保管されている、利用者端末１０−４と利用者端末１０−１とのアクセス鍵の片側であるＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）を、この再暗号処理によって得た値ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３）に置き換える（ステップＳ４０５、図２１のテーブルＴ２０８−３参照）。
【０１１１】
図１３は、利用者端末１０−１が、利用者端末１０−２および利用者端末１０−３が復号できない形で再暗号化装置２０に登録されている上述の二重暗号化データＥＫ３（ＥＫ１（Ｍ））およびアクセス鍵ＥＫａ（ｓ）（Ｋ１）とＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３）を取得し、上述の二重暗号化データを復号してメッセージＭを取得するまでの流れを示すシーケンス図である。
【０１１２】
この場合、利用者端末１０−１は、再暗号化装置２０の暗号化データ記憶部２０４のテーブルＴ２０４−３（図２５）から二重暗号化データＥＫ３（ＥＫ１（Ｍ））を、再暗号化装置２０のアクセス鍵記憶部２０８のテーブルＴ２０８−３（図２１）からアクセス鍵ＥＫａ（ｓ）（Ｋ１）とＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３）を取得する（ステップＳ４０６）。
【０１１３】
次に利用者端末１０−１は、二重暗号化データを復号するための鍵暗号鍵を生成する（ステップＳ４０７）。具体的には、利用者端末１０−１は、鍵記憶部１０４にて管理している自身の秘密鍵Ｋａと、公開ＩＤ記憶部１０３にて利用者端末１０−４に関し管理している公開ＩＤ“ＩＤｓ”をハッシュ関数に入力したハッシュ値Ｋａ（ｓ）＝ｈ（Ｋａ，Ｉ
Ｄｓ）を計算することで、鍵暗号鍵を生成する。
【０１１４】
次に利用者端末１０−１は、生成した鍵暗号鍵Ｋａ（ｓ）を用いて、ステップＳ４０６で取得したアクセス鍵の内、ＥＫａ（ｓ）（Ｋ１）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の様にメッセージ暗号鍵Ｋ１を復号することができる（ステップＳ４０８）。
【０１１５】
ＤＫａ（ｓ）（ＥＫａ（ｓ）（Ｋ１））
＝ｒａ（ｓ）  ｘｏｒ  （ｒａ（ｓ）  ｘｏｒ  Ｋ１）
＝Ｋ１
次に利用者端末１０−１は、ステップＳ４０７で生成した鍵暗号鍵Ｋａ（ｓ）を用いて、ステップＳ４０６で取得したアクセス鍵の内、ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の値を復号することができる（ステップＳ４０９）。
【０１１６】
ＤＫａ（ｓ）（ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３））
＝ｒａ（ｓ）  ｘｏｒ  （ｒａ（ｓ）  ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ３））
＝ｈ（Ｋ１）ｘｏｒ  Ｋ３
次に利用者端末１０−１は、ステップＳ４０８で復号したメッセージ暗号鍵Ｋ１をハッシュ関数ｈ（）に入力したハッシュ値ｈ（Ｋ１）を計算し、そのハッシュ値ｈ（Ｋ１）とステップＳ４０９で得た値ｈ（Ｋ１）ｘｏｒ  Ｋ３との排他的論理和（ｘｏｒ）を計算して以下の様に二重暗号鍵Ｋ３を取得する（ステップＳ４１０）。
【０１１７】
ｈ（Ｋ１）ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ３）＝  Ｋ３
そして利用者端末１０−１は、ステップＳ４１０で復号した二重暗号鍵Ｋ３を用いて、ステップＳ４０６で取得した二重暗号化データＥＫ３（ＥＫ１（Ｍ））をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の値を得ることできる（ステップＳ４１１）。
【０１１８】
ＤＫ３（ＥＫ３（ＥＫ１（Ｍ）））＝ＥＫ１（Ｍ）
そして利用者端末１０−１は、ステップＳ４０８で復号したメッセージ暗号鍵Ｋ１を用いて、ステップＳ４１１で取得した値ＥＫ１（Ｍ）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の様にメッセージＭを復号することができる（ステップＳ４１２）。
【０１１９】
ＤＫ１（ＥＫ１（Ｍ））＝Ｍ
以上、図１０、図１１より、本発明の課題であった利用者Ｂの利用者端末１０−２の再暗号化装置２０にて管理されている暗号化データＥＫ１（Ｍ）へのアクセス権を失効させた際、利用者端末１０−２からの閲覧を防止する為に再暗号化装置２０にて管理されている暗号化データＥＫ１（Ｍ）を復号せずに新しい暗号鍵で再暗号化させる仕組みと、図１２と図１３より、利用者Ｂに引き続き更に利用者Ｃの利用者端末１０−３の前記新しい暗号鍵で再暗号化されたデータへのアクセス権を失効させた際の、再暗号化データを復号せずに更に新しい暗号鍵で再暗号化させる仕組みを説明した。
【０１２０】
以上、本発明の実施形態を具体的に説明したが、本発明はこれに限定されるものでなく、その趣旨を逸脱しない範囲において種々変更可能である。例えば、上記実施形態では、ステップＳ２０８にて再暗号化装置２０が利用者端末１０−４より暗号化データＥＫ１（Ｍ）等を受け取った際、再暗号化装置２０では、前記暗号化データＥＫ１（Ｍ）をそのまま暗号化データ記憶部２０４に保管したが、再暗号化装置２０は、この受け取った暗号化データＥＫ１（Ｍ）をアクセス権のある利用者端末毎に再暗号化して暗号化データ記憶部
２０４に保管してもよい。より具体的にこの実施形態を図１４から図１７を用いて説明する。
【０１２１】
図１４は、図７から図１３までの処理とは別実施形態において、利用者端末１０−４から再暗号化装置２０に送信された利用者端末１０−１宛ての暗号化データＥＫ１（Ｍ）および暗号鍵を暗号化したデータ"ＥＫｓ（ａ）（Ｋ１）、ＥＫｓ（ａ）（ｈ（Ｋ１））"に対し、暗号化データＥＫ１（Ｍ）を再暗号化装置２０にて利用者端末１０−１向けに二重暗号化処理を施して二重暗号化データを生成し、前記二重暗号化データを利用者端末１０−１が復号できるように、暗号鍵を暗号化したデータ"ＥＫｓ（ａ）（Ｋ１）、ＥＫｓ（
ａ）（ｈ（Ｋ１））"を利用者端末１０−１向けのアクセス鍵として変換させるまでの処
理の流れを示すシーケンス図である。
【０１２２】
再暗号化装置２０は、ステップＳ２０８で利用者端末１０−４から送られてきた利用者端末１０−１宛ての暗号化データＥＫ１（Ｍ）および暗号鍵を暗号化したデータ"ＥＫｓ
（ａ）（Ｋ１）、ＥＫｓ（ａ）（ｈ（Ｋ１））"を受信すると、再暗号化装置２０は、上
述の暗号化データＥＫ１（Ｍ）に対して、鍵演算部２０５にて動的にランダムな二重暗号鍵Ｋ２を生成し、二重暗号鍵記憶部２０９のテーブルＴ２０９（図２２）に保管する（ステップＳ５０１）。
【０１２３】
次に再暗号化装置２０は前記暗号化データＥＫ１（Ｍ）をステップＳ５０１で生成した二重暗号鍵Ｋ２を用いてストリーム暗号にて二重に暗号化し、二重暗号データＥＫ２（ＥＫ１（Ｍ））を計算する。そして、暗号化データ記憶部２０４のテーブルＴ２０４−４（図２８）に利用者端末１０−１宛として、この二重暗号データＥＫ２（ＥＫ１（Ｍ））を保管する。（ステップＳ５０２）。
【０１２４】
このとき、二重暗号データＥＫ２（ＥＫ１（Ｍ））が二重暗号鍵Ｋ２にて二重暗号化されていることを再暗号化装置２０が識別できるよう、図２２のテーブルＴ２０９および図２８のテーブルＴ２０４−４に識別子を用いて記録する。ここでは、テーブルＴ２０４−４にて二重暗号化データＥＫ２（ＥＫ１（Ｍ））には識別子"２"が割り振られており、テーブルＴ２０９にて二重暗号鍵Ｋ２にも識別子"２"が割り振られているため、再暗号化装置２０は、二重暗号化データＥＫ２（ＥＫ１（Ｍ））が、二重暗号鍵Ｋ２にて二重暗号化されていることを識別することが可能となる。
【０１２５】
次に再暗号化装置２０は、変換鍵記憶部２０３のテーブルＴ２０３（図２６）から、利用者端末１０−４から利用者端末１０−１への変換鍵"ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ）"を取得する（ステップＳ５０３）。
【０１２６】
次に再暗号化装置２０は、ステップＳ２０８で送られてきたデータの内、ＥＫｓ（ａ）（Ｋ１）をステップＳ５０３で取得した変換鍵"ｒａ（ｓ）  ｘｏｒ  ｒｓ（ａ）"を用いて再暗号化処理を施す。なお、ここでの再暗号化処理は単に排他的論理和演算処理（ｘｏｒ）とする。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【０１２７】
（ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ））  ｘｏｒ  ＥＫｓ（ａ）（Ｋ１）
＝（ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ））  ｘｏｒ  （ｒｓ（ａ）  ｘｏｒ  Ｋ１）
＝（ｒａ（ｓ）  ｘｏｒ  Ｋ１）＝ＥＫａ（ｓ）（Ｋ１）
そして再暗号化装置２０は、得られた値ＥＫａ（ｓ）（Ｋ１）を利用者端末１０−４と利用者端末１０−１とのアクセス鍵の一部としてアクセス鍵記憶部２０８のテーブルＴ２０８−４（図２７）に登録する（ステップＳ５０４）。
【０１２８】
次に再暗号化装置２０は、ステップＳ２０８で送られてきたデータの内、ＥＫｓ（ａ）
（ｈ（Ｋ１））をステップＳ５０３で取得した変換鍵"ｒａ（ｓ）  ｘｏｒ  ｒｓ（ａ）"を用いて再暗号化処理を施す。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【０１２９】
（ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ））  ｘｏｒ  ＥＫｓ（ａ）（ｈ（Ｋ１））
＝（ｒａ（ｓ）ｘｏｒ  ｒｓ（ａ））  ｘｏｒ  （ｒｓ（ａ）  ｘｏｒ  ｈ（Ｋ１））
＝（ｒａ（ｓ）  ｘｏｒ  ｈ（Ｋ１））＝ＥＫａ（ｓ）（ｈ（Ｋ１））
そして再暗号化装置２０は、得られた値ＥＫａ（ｓ）（ｈ（Ｋ１））に、ステップＳ５０１で生成した二重暗号鍵Ｋ２用いて再暗号処理を施す。なお、ここでの再暗号処理も単に排他的論理和演算処理（ｘｏｒ）とする。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【０１３０】
ＥＫａ（ｓ）（ｈ（Ｋ１））  ｘｏｒ  Ｋ２ 
＝（ｒａ（ｓ）  ｘｏｒ  ｈ（Ｋ１））ｘｏｒ  Ｋ２
＝ｒａ（ｓ）  ｘｏｒ  （ｈ（Ｋ１）  ｘｏｒ  Ｋ２）
＝ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）。
【０１３１】
そして再暗号化装置２０は、得られた値ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）を利用者端末１０−４と利用者端末１０−１とのアクセス鍵のもう一つの一部としてアクセス鍵記憶部２０８のテーブルＴ２０８−４（図２７）に登録する（ステップＳ５０５）。
【０１３２】
図１５は、図１４のシーケンス図において再暗号化装置２０に登録されている利用者端末１０−１宛ての二重暗号化データＥＫ２（ＥＫ１（Ｍ））およびアクセス鍵"ＥＫａ（
ｓ）（Ｋ１）、ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）"に対し、前記二重暗号化デー
タＥＫ２（ＥＫ１（Ｍ））を再暗号化装置２０にて利用者端末１０−２向けに更に暗号化処理を施し、上述の暗号化処理したデータを利用者端末１０−２が復号できるように、利用者端末１０−１向けのアクセス鍵"ＥＫａ（ｓ）（Ｋ１）、ＥＫａ（ｓ）（ｈ（Ｋ１）
ｘｏｒ  Ｋ２）"を利用者端末１０−２向けのアクセス鍵として変換させるまでの処理の
流れを示すシーケンス図である。
【０１３３】
この場合、再暗号化装置２０は、二重暗号化データＥＫ２（ＥＫ１（Ｍ））に対して、鍵演算部２０５にて動的にランダムな二重暗号鍵Ｋ３を生成し、二重暗号鍵記憶部２０９のテーブルＴ２０９（図２９）に保管する（ステップＳ５０６）。
【０１３４】
次に再暗号化装置２０は、暗号化データ記憶部２０４のテーブルＴ２０４−４（図２８９にて保管されている利用者端末１０−１宛の二重暗号化データＥＫ２（ＥＫ１（Ｍ））をステップＳ５０６で生成した二重暗号鍵Ｋ３を用いてストリーム暗号にて二重に暗号化し、二重暗号データＥＫ３（ＥＫ２（ＥＫ１（Ｍ）））を計算する。
【０１３５】
そして再暗号化装置２０は、暗号化データ記憶部２０４のテーブルＴ２０４−４にて保管されている利用者端末１０−１宛の二重暗号化データＥＫ２（ＥＫ１（Ｍ））の識別子を基に、二重暗号鍵記憶部２０９のテーブルＴ２０９より、前記ＥＫ２（ＥＫ１（Ｍ））の識別子と同じ識別子を持つ二重暗号鍵Ｋ２を取り出し、この二重暗号鍵Ｋ２を用いて二重暗号データＥＫ３（ＥＫ２（ＥＫ１（Ｍ）））を復号化する。この復号処理により再暗号化装置２０は以下の値を得る。
【０１３６】
ＤＫ２（ＥＫ３（ＥＫ２（ＥＫ１（Ｍ））））＝  ＥＫ３（ＥＫ１（Ｍ））
そして、再暗号化装置２０は、暗号化データ記憶部２０４のテーブルＴ２０４−４（図２８）に、利用者端末１０−１宛として、この二重暗号データＥＫ３（ＥＫ１（Ｍ））を保管する（ステップＳ５０７）。このとき、前記二重暗号データＥＫ３（ＥＫ１（Ｍ））
が二重暗号鍵Ｋ３にて二重暗号化されていることを再暗号化装置２０が識別できるように、図２９のテーブルＴ２０９および図２８のテーブルＴ２０４−４に識別子を用いて記録する。ここでは、テーブルＴ２０４−４にて二重暗号化データＥＫ３（ＥＫ１（Ｍ））には識別子"３"が割り振られており、テーブルＴ２０９にて二重暗号鍵Ｋ３にも識別子"３"が割り振られているため、再暗号化装置２０は、二重暗号化データＥＫ３（ＥＫ１（Ｍ））が、二重暗号鍵Ｋ３にて二重暗号化されていることを識別することが可能となる。
【０１３７】
次に再暗号化装置２０は、変換鍵記憶部２０３のテーブルＴ２０３（図２６）から、利用者端末１０−４からのメッセージに対する利用者端末１０−１から利用者端末１０−２への変換鍵"ｒｂ（ａ）  ｘｏｒ  ｒａ（ｓ）"を取得する（ステップＳ５０８）。
【０１３８】
次に再暗号化装置２０は、アクセス鍵記憶部２０８のテーブルＴ２０８−４から利用者端末１０−１のアクセス鍵の一部であるＥＫａ（ｓ）（Ｋ１）をステップＳ５０８で取得した変換鍵"ｒｂ（ａ）  ｘｏｒ  ｒａ（ｓ）"を用いて再暗号化処理を施す。なお、本実施形態では、この再暗号化処理は単に排他的論理和演算処理（ｘｏｒ）とする。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【０１３９】
（ｒｂ（ａ）  ｘｏｒ  ｒａ（ｓ））  ｘｏｒ  ＥＫａ（ｓ）（Ｋ１）
＝（ｒｂ（ａ）  ｘｏｒ  ｒａ（ｓ））  ｘｏｒ  （ｒａ（ｓ）  ｘｏｒ  Ｋ１）
＝（ｒｂ（ａ）  ｘｏｒ  Ｋ１）
＝ＥＫｂ（ａ）（Ｋ１）
そして再暗号化装置２０は、得られた値ＥＫｂ（ａ）（Ｋ１）を利用者端末１０−１と利用者端末１０−２とのアクセス鍵の一部としてアクセス鍵記憶部２０８のテーブルＴ２０８−４（図２７）に登録する（ステップＳ５０９）。
【０１４０】
次に再暗号化装置２０は、アクセス鍵記憶部２０８のテーブルＴ２０８−４から利用者端末１０−１のアクセス鍵の一部であるＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）をステップＳ５０８で取得した変換鍵"ｒｂ（ａ）  ｘｏｒ  ｒａ（ｓ）"を用いて再暗号化処理を施す。なお、本実施形態では、この再暗号化処理は単に排他的論理和演算処理（ｘｏｒ）とする。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【０１４１】
（ｒｂ（ａ）  ｘｏｒ  ｒａ（ｓ））  ｘｏｒ  ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）
＝（ｒｂ（ａ）  ｘｏｒ  ｒａ（ｓ））  ｘｏｒ  （ｒａ（ｓ）  ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ２））  ＝（ｒｂ（ａ）  ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ２））
＝ＥＫｂ（ａ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）
そして再暗号化装置２０は、得られた値ＥＫｂ（ａ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）をステップＳ５０７で二重暗号鍵記憶部２０９のテーブルＴ２０９から取り出した二重暗号鍵Ｋ２とステップＳ５０６で生成した二重暗号鍵Ｋ３とをｘｏｒした値を暗号鍵として用いて再暗号処理を施す。なお、ここでの再暗号処理も単に排他的論理和演算処理（ｘｏｒ）とする。この再暗号化処理により再暗号化装置２０は、以下の値を得る。
【０１４２】
ＥＫｂ（ａ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）  ｘｏｒ  （Ｋ２  ｘｏｒ  Ｋ３）  
＝（ｒｂ（ａ）  ｘｏｒ  （ｈ（Ｋ１）  ｘｏｒ  Ｋ２））  ｘｏｒ  （Ｋ２  ｘｏｒ
Ｋ３）  ＝ｒｂ（ａ）  ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ３）
＝ＥＫｂ（ａ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３）
そして、再暗号化装置２０は、得られた値ＥＫｂ（ａ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３）を利用者端末１０−１と利用者端末１０−２とのアクセス鍵の一部としてアクセス鍵記憶部２０８のテーブルＴ２０８−４（図２７）に登録する（ステップＳ５１０）。
【０１４３】
図１６は、利用者端末１０−１が、図１４のシーケンス図において再暗号化装置２０に登録されている利用者端末１０−１向けの二重暗号化データおよびアクセス鍵を取得し、上述の二重暗号化データを復号してメッセージＭを取得するまでの流れを示すシーケンス図である。
【０１４４】
この場合、利用者端末１０−１は、再暗号化装置２０の暗号化データ記憶部２０４のテーブルＴ２０４−４（図２８）から二重暗号化データＥＫ２（ＥＫ１（Ｍ））を、再暗号化装置２０のアクセス鍵記憶部２０８のテーブルＴ２０８−４（図２７）からアクセス鍵ＥＫａ（ｓ）（Ｋ１）とＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）を取得する（ステップＳ５１１）。
【０１４５】
次に利用者端末１０−１は、二重暗号化データを復号するための鍵暗号鍵を生成する（ステップＳ５１２）。具体的には、利用者端末１０−１は、鍵記憶部１０４にて管理している自身の秘密鍵Ｋａａと、公開ＩＤ記憶部１０３にて利用者端末１０−４に関し管理している公開ＩＤ“ＩＤｓ”をハッシュ関数に入力したハッシュ値Ｋａ（ｓ）＝ｈ（Ｋａ，ＩＤｓ）を計算することで、鍵暗号鍵を生成する。
【０１４６】
次に利用者端末１０−１は、生成した鍵暗号鍵Ｋａ（ｓ）を用いて、ステップＳ５１１で取得したアクセス鍵の内、ＥＫａ（ｓ）（Ｋ１）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の様にメッセージ暗号鍵Ｋ１を復号することができる（ステップ５１３）。
【０１４７】
ＤＫａ（ｓ）（ＥＫａ（ｓ）（Ｋ１））
＝ｒａ（ｓ）  ｘｏｒ  （ｒａ（ｓ）  ｘｏｒ  Ｋ１）
＝Ｋ１
次に利用者端末１０−１は、ステップＳ５１２で生成した鍵暗号鍵Ｋａ（ｓ）を用いて、ステップＳ５１１で取得したアクセス鍵の内、ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の値を復号することができる（ステップＳ５１４）。
【０１４８】
ＤＫａ（ｓ）（ＥＫａ（ｓ）（ｈ（Ｋ１）ｘｏｒ  Ｋ２））
＝ｒａ（ｓ）  ｘｏｒ（ｒａ（ｓ）  ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ２））
＝ｈ（Ｋ１）ｘｏｒ  Ｋ２
次に利用者端末１０−１は、ステップＳ５１３で復号したメッセージ暗号鍵Ｋ１をハッシュ関数ｈ（）に入力したハッシュ値ｈ（Ｋ１）を計算し、そのハッシュ値ｈ（Ｋ１）とステップＳ５１４で得た値ｈ（Ｋ１）ｘｏｒ  Ｋ２との排他的論理和（ｘｏｒ）を計算して以下の様に二重暗号鍵Ｋ２を取得する（ステップＳ５１５）。
【０１４９】
ｈ（Ｋ１）ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ２）＝  Ｋ２
そして利用者端末１０−１は、ステップＳ５１５で復号した二重暗号鍵Ｋ２を用いて、ステップＳ５１１で取得した二重暗号化データＥＫ２（ＥＫ１（Ｍ））をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の値を得ることできる（ステップＳ５１６）。
【０１５０】
ＤＫ２（ＥＫ２（ＥＫ１（Ｍ）））＝ＥＫ１（Ｍ）
そして利用者端末１０−１は、ステップＳ５１３で復号したメッセージ暗号鍵Ｋ１を用いて、ステップＳ５１６で取得した値ＥＫ１（Ｍ）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−１は、以下の様にメッセージＭを復号することができる（ステップＳ５１７）。
【０１５１】
ＤＫ１（ＥＫ１（Ｍ））＝Ｍ
図１７は、利用者端末１０−２が、図１５のシーケンス図において再暗号化装置２０に登録されている利用者端末１０−２向けの二重暗号化データおよびアクセス鍵を取得し、上述の二重暗号化データを復号してメッセージＭを取得するまでの流れを示すシーケンス図である。
【０１５２】
この場合、利用者端末１０−２は、再暗号化装置２０の暗号化データ記憶部２０４のテーブルＴ２０４−４（図２８）から二重暗号化データＥＫ３（ＥＫ１（Ｍ））を、再暗号化装置２０のアクセス鍵記憶部２０８のテーブルＴ２０８−４（図２７）からアクセス鍵ＥＫｂ（ａ）（Ｋ１）とＥＫｂ（ａ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３）を取得する（ステップＳ５１８）。
【０１５３】
次に利用者端末１０−２は、二重暗号化データを復号するための鍵暗号鍵を生成する（ステップＳ５１９）。具体的には、利用者端末１０−１は、鍵記憶部１０４にて管理している自身の秘密鍵Ｋｂｂと、公開ＩＤ記憶部１０３にて利用者端末１０−１について管理している公開ＩＤ“ＩＤａ”をハッシュ関数に入力したハッシュ値Ｋｂ（ａ）＝ｈ（Ｋｂ，ＩＤａ）を計算することで、鍵暗号鍵を生成する。
【０１５４】
次に利用者端末１０−２は、生成した鍵暗号鍵Ｋｂ（ａ）を用いて、ステップＳ５１８で取得したアクセス鍵の内、ＥＫｂ（ａ）（Ｋ１）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−２は、以下の様にメッセージ暗号鍵Ｋ１を復号することができる（ステップＳ５２０）。
【０１５５】
ＤＫｂ（ａ）（ＥＫｂ（ａ）（Ｋ１））
＝ｒｂ（ａ）  ｘｏｒ  （ｒｂ（ａ）  ｘｏｒ  Ｋ１）
＝Ｋ１
次に利用者端末１０−２は、ステップＳ５１９で生成した鍵暗号鍵Ｋｂ（ａ）を用いて、ステップＳ５１８で取得したアクセス鍵の内、ＥＫｂ（ａ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−２は、以下の値を復号することができる（ステップＳ５２１）。
【０１５６】
ＤＫｂ（ａ）（ＥＫｂ（ａ）（ｈ（Ｋ１）ｘｏｒ  Ｋ３））
＝ｒｂ（ａ）  ｘｏｒ  （ｒｂ（ａ）  ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ３））
＝ｈ（Ｋ１）ｘｏｒ  Ｋ３
次に利用者端末１０−２は、ステップＳ５２０で復号したメッセージ暗号鍵Ｋ１をハッシュ関数ｈ（）に入力したハッシュ値ｈ（Ｋ１）を計算し、そのハッシュ値ｈ（Ｋ１）とステップＳ５２１で得た値ｈ（Ｋ１）ｘｏｒ  Ｋ３との排他的論理和（ｘｏｒ）を計算して以下の様に二重暗号鍵Ｋ３を取得する（ステップＳ５２２）。
【０１５７】
ｈ（Ｋ１）ｘｏｒ  （ｈ（Ｋ１）ｘｏｒ  Ｋ３）＝  Ｋ３
そして利用者端末１０−２は、ステップＳ５２２で復号した二重暗号鍵Ｋ３を用いて、ステップＳ５１８で取得した二重暗号化データＥＫ３（ＥＫ１（Ｍ））をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−２は、以下の値を得ることできる（ステップＳ５２３）。
【０１５８】
ＤＫ３（ＥＫ３（ＥＫ１（Ｍ）））＝ＥＫ１（Ｍ）
そして利用者端末１０−２は、ステップＳ５２０で復号したメッセージ暗号鍵Ｋ１を用いて、ステップＳ５２３で取得した値ＥＫ１（Ｍ）をストリーム暗号により復号処理を行う。この復号処理により利用者端末１０−２は、以下の様にメッセージＭを復号することができる（ステップＳ５２４）。
【０１５９】
ＤＫ１（ＥＫ１（Ｍ））＝Ｍ
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【０１６０】
こうした本実施形態によれば、複数ユーザ間で共有の暗号化データを所定装置にて保持しユーザ毎の閲覧権限管理を行う環境下において、装置管理者を含む無権限者による暗号化データの閲覧を確実に回避可能となる。
【０１６１】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の再暗号化方法において、前記再暗号化装置が、特定利用者に関する閲覧権限の失効イベントに伴い、当該再暗号化装置にて生成した第２暗号鍵を用いて、前記第１の暗号化データを二重に暗号化する処理と、現時点で閲覧権限を有する利用者の復号鍵で復号可能に、前記第２の暗号化データを再暗号化する処理および、前記第３の暗号化データを再暗号化した値で前記第２暗号鍵の再暗号化を行う処理とを更に実行し、前記現時点で閲覧権限を有する利用者の利用者端末が、前記二重に暗号化された第１の暗号化データと、前記再暗号化された第２の暗号化データと、前記再暗号化された第２の暗号化データにより再暗号化された第２暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第２の暗号化データからの前記第１暗号鍵の復号、および、前記再暗号化された第２暗号鍵からの前記第２暗号鍵の復号を行い、得られた第１暗号鍵および第２暗号鍵を用いて、前記二重に暗号化された第１の暗号化データを復号して前記平文を出力する処理を更に実行する、としてもよい。
【０１６２】
これによれば、当初は閲覧権限を有していた或る利用者が、その閲覧権限を失う状況が生じたケースに対して、従来のように、暗号化データ復号用の復号鍵が該当利用者にて保持されたままであれば、その利用者からの暗号化データ閲覧を許してしまうといった事態を確実に回避することができる。
【０１６３】
また、本実施形態の再暗号化方法において、前記再暗号化装置が、前記第１、第２および第３の各暗号化データを前記データ作成者の利用者端末から受信し、当該再暗号化装置にて生成した第２暗号鍵を用いて、前記第１の暗号化データを二重に暗号化する処理と、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第２の暗号化データを再暗号化する処理および、前記第３の暗号化データを再暗号化した値で前記第２暗号鍵の再暗号化を行う処理とを実行し、前記閲覧権限を有する利用者の利用者端末が、前記二重に暗号化された第１の暗号化データと、前記再暗号化された第２の暗号化データと、前記再暗号化された第２暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第２の暗号化データからの前記第１暗号鍵の復号、および、前記再暗号化された第２暗号鍵からの前記第２暗号鍵の復号を行い、得られた第１暗号鍵および第２暗号鍵を用いて、前記二重に暗号化された第１の暗号化データを復号して前記平文を出力する処理を実行する、としてもよい。
【０１６４】
これによれば、例えば電子メールをセキュアに管理する状況などに対応し、各利用者ごとに電子メールを暗号化して管理する一方、本願の請求項１に記載の発明の場合よりも再暗号の手間を低減したシステム運用が可能となる。
【０１６５】
また、本実施形態の再暗号化方法において、前記利用者端末が、データ作成者の第１暗号鍵にて平文を暗号化して第１の暗号化データを生成し、前記第１暗号鍵および当該第１暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化して第２および第３の暗号化データを生成し、前記生成した第１、第２、および第３の各暗号化データを再暗号化装置に送信する処理を実行する、としてもよい。
【０１６６】
これによれば、利用者端末において各暗号化データを生成し、これを再暗号化装置に格納することが可能となる。
【０１６７】
また、本実施形態の再暗号化システムの前記再暗号化装置において、前記演算装置が、特定利用者に関する閲覧権限の失効イベントに伴い、当該再暗号化装置にて生成した第２暗号鍵を用いて、前記第１の暗号化データを二重に暗号化する処理と、現時点で閲覧権限を有する利用者の復号鍵で復号可能に、前記第２の暗号化データを再暗号化する処理および、前記第３の暗号化データを再暗号化した値で前記第２暗号鍵の再暗号化を行う処理とを更に実行するものであり、前記現時点で閲覧権限を有する利用者の利用者端末において、前記演算装置が、前記二重に暗号化された第１の暗号化データと、前記再暗号化された第２の暗号化データと、前記再暗号化された第２の暗号化データにより再暗号化された第２暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第２の暗号化データからの前記第１暗号鍵の復号、および、前記再暗号化された第２暗号鍵からの前記第２暗号鍵の復号を行い、得られた第１暗号鍵および第２暗号鍵を用いて、前記二重に暗号化された第１の暗号化データを復号して前記平文を出力する処理を更に実行するものである、としてもよい。
【０１６８】
また、本実施形態の再暗号化システムの前記再暗号化装置において、前記演算装置が、前記第１、第２および第３の各暗号化データを前記データ作成者の利用者端末から受信し、当該再暗号化装置にて生成した第２暗号鍵を用いて、前記第１の暗号化データを二重に暗号化する処理と、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第２の暗号化データを再暗号化する処理および、前記第３の暗号化データを再暗号化した値で前記第２暗号鍵の再暗号化を行う処理とを実行するものであり、前記閲覧権限を有する利用者の利用者端末において、前記演算装置が、前記二重に暗号化された第１の暗号化データと、前記再暗号化された第２の暗号化データと、前記再暗号化された第２暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第２の暗号化データからの前記第１暗号鍵の復号、および、前記再暗号化された第２暗号鍵からの前記第２暗号鍵の復号を行い、得られた第１暗号鍵および第２暗号鍵を用いて、前記二重に暗号化された第１の暗号化データを復号して前記平文を出力する処理を実行するものである、としてもよい。
【０１６９】
また、本実施形態の再暗号化システムの前記利用者端末において、前記演算装置が、データ作成者の第１暗号鍵にて平文を暗号化して第１の暗号化データを生成し、前記第１暗号鍵および当該第１暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化して第２および第３の暗号化データを生成し、前記生成した第１、第２、および第３の各暗号化データを再暗号化装置に送信する処理を実行するものである、としてもよい。
【符号の説明】
【０１７０】
１  再暗号化システム
１０  利用者端末
１１  記憶装置
１２  プログラム
１３  メモリ
１４  演算装置
１５  入力装置
１６  出力装置
１７  通信装置
２０  再暗号化装置
２１  記憶装置
２２  プログラム
２３  メモリ
２４  演算装置
２５  通信装置
３０  ネットワーク
１０１  秘密鍵生成部
１０２  鍵演算部
１０３  公開ＩＤ記憶部
１０４  鍵記憶部（秘密鍵）
１０５  情報生成部
１０６  暗号処理部
１０７  暗号化データ送受信部
１０８  一次記憶部
１０９  情報表示部
２０１  暗号化データ送受信部
２０２  送受信者制御部
２０３  変換鍵記憶部
２０４  暗号化データ記憶部
２０５  鍵演算部
２０６  再暗号化処理部
２０７  一次記憶部
２０８  アクセス鍵記憶部
２０９  二重暗号鍵記憶部
【図１】
0006302851.tif 000002
【図２】
0006302851.tif 000003
【図３】
0006302851.tif 000004
【図４】
0006302851.tif 000005
【図５】
0006302851.tif 000006
【図６】
0006302851.tif 000007
【図７】
0006302851.tif 000008
【図８】
0006302851.tif 000009
【図９】
0006302851.tif 000010
【図１０】
0006302851.tif 000011
【図１１】
0006302851.tif 000012
【図１２】
0006302851.tif 000013
【図１３】
0006302851.tif 000014
【図１４】
0006302851.tif 000015
【図１５】
0006302851.tif 000016
【図１６】
0006302851.tif 000017
【図１７】
0006302851.tif 000018
【図１８】
0006302851.tif 000019
【図１９】
0006302851.tif 000020
【図２０】
0006302851.tif 000021
【図２１】
0006302851.tif 000022
【図２２】
0006302851.tif 000023
【図２３】
0006302851.tif 000024
【図２４】
0006302851.tif 000025
【図２５】
0006302851.tif 000026
【図２６】
0006302851.tif 000027
【図２７】
0006302851.tif 000028
【図２８】
0006302851.tif 000029
【図２９】
0006302851.tif 000030