JP6302851B2 - 再暗号化方法、再暗号化システム、および再暗号化装置 - Google Patents

再暗号化方法、再暗号化システム、および再暗号化装置 Download PDF

Info

Publication number
JP6302851B2
JP6302851B2 JP2015013107A JP2015013107A JP6302851B2 JP 6302851 B2 JP6302851 B2 JP 6302851B2 JP 2015013107 A JP2015013107 A JP 2015013107A JP 2015013107 A JP2015013107 A JP 2015013107A JP 6302851 B2 JP6302851 B2 JP 6302851B2
Authority
JP
Japan
Prior art keywords
encryption
encrypted
key
encrypted data
user terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015013107A
Other languages
English (en)
Other versions
JP2016139894A (ja
Inventor
尚生 坂崎
尚生 坂崎
なおこ 郷
なおこ 郷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015013107A priority Critical patent/JP6302851B2/ja
Priority to CN201510850048.6A priority patent/CN105827585B/zh
Publication of JP2016139894A publication Critical patent/JP2016139894A/ja
Application granted granted Critical
Publication of JP6302851B2 publication Critical patent/JP6302851B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、再暗号化方法、再暗号化システム、および再暗号化装置に関するものであり、具体的には、複数ユーザ間で共有の暗号化データを所定装置にて保持しユーザ毎の閲覧権限管理を行う環境下において、装置管理者を含む無権限者による暗号化データの閲覧を確実に回避する技術に関する。
複数ユーザ間でサーバ等に格納した暗号化データを共有している状況において、或るユーザのアクセス権を失効させても、暗号化データ復号用の復号鍵が該当ユーザにて保持されたままであれば、そのユーザからの暗号化データ閲覧を許してしまう恐れがある。こうした、アクセス権失効がなされたユーザからの閲覧を防止するためには、暗号化データを別の暗号鍵で暗号化し直す必要がある。
この場合の暗号化に関しては、例えば、暗号化データを上述のサーバ等で一度復号化し、この復号化で得た平文データを再度別の暗号鍵で暗号化するといった手法を採用することができる。しかしながらそうした手法を採用した場合、上述の復号化で得られた平文データがサーバから漏洩するリスクが高くなってしまう。
そこで、暗号化データを復号せずに新しい暗号鍵で再暗号化させる技術が知られている。特に近年、この再暗号化技術は、クラウドサービス上でより安全にデータを共有できる技術として注目されている。このような再暗号化技術としては、例えば、平文データを第1の暗号鍵を用いて暗号化して暗号化データを作成する暗号化部と、前記暗号化データを読み出し可能に記憶するデータ保存部とを備えたストレージノードに設けられて、前記暗号化データを第2の暗号鍵で復号できる再暗号化データに変換するストレージノード用再暗号化システム(特許文献1参照)などが提案されている。
この技術では、ストレージサーバにて複数の暗号鍵を生成、保持する一方、データ作成者は対象データを平文データのままストレージサーバに登録する。また、ストレージサーバは、その平文データに第一の暗号鍵を適用してストリーム暗号方式にて暗号化を行う。そしてストレージサーバは、アクセス権を有するユーザごとに、その公開鍵を用いて上述の第一の暗号鍵に対する暗号化を各々行う。ストレージサーバは、当該暗号化後の第一の暗号鍵および上述のストリーム暗号化のデータと、平文データとを共に管理する。
こうした状況下において、或るユーザが暗号化データ(上述の平文データをストリーム暗号化したデータ)に対するアクセス権を失効した際、ストレージサーバは、自身で生成した第二の暗号鍵を用いて、上述の暗号化データを暗号化(二重暗号化)し、この二重暗号化したデータを第一の暗号鍵を用いて復号化する。なお、ストリーム暗号技術において、暗号化に用いる鍵と復号に用いる鍵は同一である。
ストレージサーバは、上述の第二の暗号鍵を、残りのユーザ(アクセス権が有効なユーザ)の公開鍵で各々暗号化し、上述の二重暗号化したデータを第一の暗号鍵にて復号したデータと、第二の暗号鍵を各公開鍵で暗号化したデータと共に管理する。ここで、ストリーム暗号技術では暗号化の順番を問わない為、第一の暗号鍵でストリーム暗号化したデータを第二の暗号鍵で二重暗号化し、更に第一の暗号鍵で復号したデータは、単に第二の暗号鍵で暗号化したデータと等しくなる。
従来技術ではこの性質を応用し、対象となる暗号化データを復号せずに新しい暗号鍵で
再暗号化させる方法を実現している。
特許第5133850号公報
しかしながら従来技術においては、暗号化対象のデータがデータ作成者により平文データのままストレージサーバに登録される。そのため、ストレージサーバの管理者は暗号化前の平文データをそのまま閲覧することが可能である。また、この平文データは、ストレージサーバにて暗号化されるといえども、当該ストレージサーバ自身が上述の各暗号鍵を生成、管理している関係上、ストレージサーバの管理者によれば、ストレージサーバで保持する暗号鍵を用いた暗号化データの復号化は自在である。
つまり、データの閲覧権限が無いストレージサーバの管理者であっても、該当サーバで保持する暗号鍵を用いて暗号化データを復号化し、その平文データを閲覧可能となる、といった状況を排除出来ない課題があった。
本発明は、このような事情に鑑みてなされたものであり、複数ユーザ間で共有の暗号化データを所定装置にて保持しユーザ毎の閲覧権限管理を行う環境下において、装置管理者を含む無権限者による暗号化データの閲覧を確実に回避する技術を提供することにある。
上記課題を解決する本発明の再暗号化方法は、複数の利用者端末とネットワークを介して接続された再暗号化装置が、データ作成者の第1暗号鍵にて平文を暗号化した第1の暗号化データと、前記第1暗号鍵および当該第1暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第2および第3の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第2および第3の各暗号化データを再暗号化する処理を実行し、前記閲覧権限を有する利用者の利用者端末が、前記第1の暗号化データと前記再暗号化された第2および第3の各暗号化データとを前記再暗号化装置から取得し、前記再暗号化された第2の暗号化データから、当該利用者端末が保持する自身の復号鍵によって前記第1暗号鍵を復号し、当該復号で得た第1暗号鍵により前記第1の暗号化データを復号して前記平文を出力する処理を実行することを特徴とする。
また、本発明の再暗号化システムは、複数の利用者端末と通信する通信装置と、データ作成者の第1暗号鍵にて平文を暗号化した第1の暗号化データと、前記第1暗号鍵および当該第1暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第2および第3の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第2および第3の各暗号化データを再暗号化する処理を実行する演算装置とを備えた再暗号化装置と、前記再暗号化装置と通信する通信装置と、前記第1の暗号化データと前記再暗号化された第2および第3の各暗号化データとを前記再暗号化装置から取得し、前記再暗号化された第2の暗号化データから、当該利用者端末が保持する自身の復号鍵によって前記第1暗号鍵を復号し、当該復号で得た第1暗号鍵により前記第1の暗号化データを復号して前記平文を出力する処理を実行する演算装置とを備えた利用者端末と、を含むことを特徴とする。
また、本発明の再暗号化装置は、複数の利用者端末と通信する通信装置と、データ作成
者の第1暗号鍵にて平文を暗号化した第1の暗号化データと、前記第1暗号鍵および当該第1暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第2および第3の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第2および第3の各暗号化データを再暗号化する処理を実行し、前記第1の暗号化データと前記再暗号化された第2および第3の各暗号化データとを前記利用者端末に送信する演算装置とを備えることを特徴とする。
本発明によれば、複数ユーザ間で共有の暗号化データを所定装置にて保持しユーザ毎の閲覧権限管理を行う環境下において、装置管理者を含む無権限者による暗号化データの閲覧を確実に回避可能となる。
本実施形態の再暗号化装置を含むシステム構成例を示す図である。 本実施形態における利用者端末のハードウェア構成例を示す図である。 本実施形態における再暗号化装置のハードウェア構成例を示す図である。 本実施形態における再暗号化方法の手順例1を示すシーケンス図である。 本実施形態における再暗号化方法の手順例2を示すシーケンス図である。 本実施形態における再暗号化方法の手順例3を示すシーケンス図である。 本実施形態における再暗号化方法の手順例4を示すシーケンス図である。 本実施形態における再暗号化方法の手順例5を示すシーケンス図である。 本実施形態における再暗号化方法の手順例6を示すシーケンス図である。 本実施形態における再暗号化方法の手順例7を示すシーケンス図である。 本実施形態における再暗号化方法の手順例8を示すシーケンス図である。 本実施形態における再暗号化方法の手順例9を示すシーケンス図である。 本実施形態における再暗号化方法の手順例10を示すシーケンス図である。 本実施形態における再暗号化方法の手順例11を示すシーケンス図である。 本実施形態における再暗号化方法の手順例12を示すシーケンス図である。 本実施形態における再暗号化方法の手順例13を示すシーケンス図である。 本実施形態における再暗号化方法の手順例14を示すシーケンス図である。 本実施形態の変換鍵の登録テーブルの構成例1を示す図である。 本実施形態のアクセス鍵の登録テーブルの構成例1を示す図である。 本実施形態のアクセス鍵の登録テーブルの構成例2を示す図である。 本実施形態のアクセス鍵の登録テーブルの構成例3を示す図である。 本実施形態の二重暗号鍵の登録テーブルの構成例1を示す図である。 本実施形態の暗号化データの登録テーブルの構成例1を示す図である。 本実施形態の暗号化データの登録テーブルの構成例2を示す図である。 本実施形態の暗号化データの登録テーブルの構成例3を示す図である。 本実施形態の変換鍵の登録テーブルの構成例2を示す図である。 本実施形態のアクセス鍵の登録テーブルの構成例4を示す図である。 本実施形態の暗号化データの登録テーブルの構成例4を示す図である。 本実施形態の二重暗号鍵の登録テーブルの構成例2を示す図である。
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態における再暗号化装置20を含む再暗号化システム1の全体構成例を示す図である。この図では、全体構成と共に、再暗号化システム1を構成する各コンピュータの機能構成例についても示している。図1に示す再暗号化システム1は、複数ユーザ間で共有の暗号化データを再暗号化装置20(所定装置)にて保持しユーザ毎の閲覧権限管理を行う環境下において、再暗号化装置20の管理者を含む無権限者による暗号化データの閲覧を確実に回避するシステムである。
本実施形態に係る再暗号化システム1は、複数の利用者端末10(本実施形態では、複数の利用者端末10を区別するため、便宜的に“10−1”、“10−2”、“10−3”、“10−4”、と表記するが、特に利用者端末間で区別が必要無い記載の場合、利用者端末10とする)と、再暗号化装置20とがインターネットなどの適宜なネットワーク30を介して通信可能に接続されて構成されたコンピュータネットワークシステムである。
図1に示すように、各利用者端末10−1〜10−4は、秘密鍵生成部101、鍵演算部102、公開ID記憶部103、鍵記憶部104、情報生成部105、暗号処理部106、暗号化データ送受信部107、一次記憶部108、および情報表示部109から構成することができる。
このうち秘密鍵生成部101は、各利用者端末10−1〜10−4で管理する秘密鍵を生成するものである。また、鍵演算部102は、動的に暗号鍵、復号鍵等を生成するものである。また、公開ID記憶部103は、通信相手端末を識別するID(identification)を記憶するものである。また、鍵記憶部104は、秘密鍵成部101で生成された秘密鍵を安全に管理するものである。また、情報生成部105は、通信相手端末へのメッセージを生成するものである。また、暗号処理部106は、暗号鍵を用いてメッセージを暗号化したり、復号鍵を用いて暗号化データを復号したりするものである。また、暗号化データ送受信部107は、暗号化データを送受信する。また、一次記憶部108は、半導体を用いた一次記憶領域である。また、情報表示部109は、メッセージを表示するものである。なお、上述した通信相手を識別するIDは、メールアドレスや身分証明書番号等、公に個人を特定できるものであればよく、利用するシステム毎に予め利用者に通知されているものとする。
このような機能を有する各利用者端末10−1〜10−4は、図2に例示するように一般的なコンピュータにより実現できる。例えば、秘密鍵生成部101、鍵演算部102、情報生成部105、暗号処理部106、暗号化データ送受信部107は、CPU(Central Processing Unit)等の演算装置14により実行されるコンピュータプログラム12と
して実現できる。こうしたコンピュータプログラム12は、例えば、ハードディスクやフラッシュメモリデバイス等の記憶装置11に予め格納、保持するか、或いはネットワーク30から配布を受けて利用することとできる。また、公開ID記憶部103、鍵記憶部104も上述の記憶装置11として実現できる。また、一次記憶部108はメモリ13にて実現出来る。また、情報表示部109は、例えば液晶表示装置や有機EL(Electro Luminescence)ディスプレイなど出力装置16として実現できる。この他、利用者端末10−1〜10−4は、利用者からの指示、入力を受け付けるためのキーボードやマウス等の入力装置15、およびネットワーク30を介して他装置と通信する通信装置17を備える。
また再暗号化装置20の機能構成は以下の通りとなる。図1にて示すように、再暗号化装置20は、暗号化データ送受信部201、送受信者制御部202、変換鍵記憶部203、暗号化データ記憶部204、鍵演算部205、再暗号化処理部206、一次記憶部20
7、アクセス鍵記憶部208、および二重暗号鍵記憶部209から構成することができる。
このうち暗号化データ送受信部201は、暗号化データを送受信するものである。また、送受信者制御部202は、再暗号化装置20にアップロードされた暗号化データがどの利用者端末からどの利用者端末へのメッセージであるかを制御するものである。また、変換鍵記憶部203は、再暗号化に用いる変換鍵を管理するものである。また、暗号化データ記憶部204は、再暗号化データを記憶するものである。また、鍵演算部205は、変換鍵を登録するための情報を計算したり、乱数を生成したりするものである。また、再暗号化処理部206は、再暗号化処理を行うものである。また、アクセス鍵記憶部208は、暗号化データを復号する為の情報を暗号化した情報(以下、アクセス鍵と称する)を記憶するものである。また、二重暗号鍵記憶部209は、暗号化データを更に二重に暗号化する際に用いた暗号鍵(以下、二重暗号鍵と称する)を記憶するものである。
こうした再暗号化装置20は、図3に例示するように一般的なコンピュータにより実現できる。例えば、暗号化データ送受信部201、送受信者制御部202、鍵演算部205、および再暗号化処理部206は、CPU(Central Processing Unit)等の演算装置2
4により実行されるコンピュータプログラム22として実現できる。こうしたコンピュータプログラム22は、例えば、ハードディスクやフラッシュメモリデバイス等の記憶装置21に予め格納、保持するか、或いはネットワーク30から配布を受けて利用することとできる。また、変換鍵記憶部203、暗号化データ記憶部204、アクセス鍵記憶部208、および二重暗号鍵記憶部209は、記憶装置21として実現できる。また、一次記憶部207はメモリ23にて実現出来る。この他、再暗号化装置20は、ネットワーク30を介して利用者端末10−1〜10−4ら他装置と通信する通信装置25を備える。
−−−本実施形態における用語等の定義−−−
ここで、本実施形態で用いる関数および演算子の意味を予め説明する。本実施形態で記載する“h()”は、入力データをハッシュ化するハッシュ関数である。また、“EK()”は、ストリーム暗号による暗号化関数であり、入力データに対し鍵Kを用いて暗号化処理する関数を意味する。また、“DK()”は、ストリーム暗号による復号関数であり、入力データに対し鍵Kを用いて復号処理する関数を意味する。
また、“A|B”はデータAとデータBとの連結を意味し、必要に応じて連結したデータからデータAとデータBとを分離することできる。また、図中における“○の中に+”の記号は排他的論理和演算(xor)を意味する。
なお本実施形態では、暗号化関数および復号関数としてストリーム暗号を用いているが、多重に暗号処理または復号処理を行う際、その処理結果が処理の順番に依存しない可換性の性質を持つ暗号化関数、復号関数であればいずれの関数を採用しても良い。よって、必ずしも本実施形態にて挙げたストリーム暗号を用いなくてもよい。また、本実施形態では、上述のハッシュ関数によるハッシュ値、暗号化に用いる暗号化鍵、復号に用いる復号鍵は同じ長さの固定長とする。
ここであらためて、「再暗号」の定義を記載しておく。広義の意味における「再暗号」は、「暗号文を、再度暗号化すること」となるが、本実施形態における意味すなわち狭義の意味での「再暗号」は、「Aさん宛の暗号文を復号することなくBさんのみが保持する復号鍵で復号できる形に変換すること」を意味している。
広義の意味では「暗号文を一旦復号し再度暗号化すること」や「暗号文を二重に暗号化」することも含まれるが、本実施形態で想定するように、暗号学の研究分野においては上
述した狭義の意味での「再暗号」を定義として用いるケースが一般に多い。
−−−処理手順例−−−
以下、本実施形態における再暗号化方法の実際手順について図に基づき説明する。以下で説明する再暗号化方法に対応する各種動作は、再暗号化システム1を構成する各装置、すなわち再暗号化装置20および利用者端末10がそれぞれメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
図4〜9は、本実施形態における再暗号化方法の手順例1〜6を示すシーケンス図である。ここでは、再暗号を行う為の変換鍵の登録、利用者端末間で授受されるメッセージの暗号化、その暗号化データの再暗号化処理、再暗号化データの復号およびメッセージ取得、といった利用者端末間でのメッセージ授受に伴う一連のシーケンスについて説明する。
図4のシーケンス図は、再暗号化装置20にて暗号化データを再暗号化する際に用いる、利用者端末10−4と利用者端末10−1との間に関する変換鍵の登録方法を示すシーケンス図である。
この場合まず、利用者Sの利用者端末10−4(利用者端末10−1に宛てたメッセージ作成、送信を行う利用者端末)は、利用者Aの利用者端末10−1へメッセージの内容を通知するため、再暗号化装置20に対して変換鍵の登録申請を実行する(ステップS001)。この変換鍵は、メッセージの暗号化データを再暗号化装置20にて再暗号化する際に用いる鍵となる。
一方、再暗号化装置20は、利用者端末10−4から上述の変換鍵登録申請を受信すると、予め定めたハッシュ値と同じ長さの乱数pを適宜な乱数生成アルゴリズムにて生成し(ステップS002)、その乱数pを変換鍵登録申請元である上述の利用者端末10−4に送信する(ステップS003)。
他方、利用者端末10−4は、鍵記憶部104にて管理している自身の秘密鍵Kと、公開ID記憶部103にて利用者端末10−1に関して管理している公開ID“ID”を、ハッシュ関数に入力してハッシュ値Ks(a)=h(K,ID)を計算することで、鍵を暗号化する鍵暗号鍵を生成する(ステップS004)。
続いて利用者端末10−4は、上述のステップS004で生成した鍵暗号鍵を用いて、予め定めたハッシュ値と同じ長さで値が全て0のメッセージ“all 0”をストリーム暗号にて暗号化し、予め定めたハッシュ値と同じ長さの乱数rs(a)=EKs(a)(all 0)を生成する(ステップS005)。
また利用者端末10−4は、上述のステップS003で受信した乱数pと、ステップS005で生成した乱数rs(a)とをxorした値“p xor rs(a)”を、利用者端末10−1へ送信する(ステップS006)。
この場合、利用者端末10−1は、上述の利用者端末10−4から送信されてきた値“p xor rs(a)”を受信すると、鍵記憶部104にて管理している自身の秘密鍵Kと、公開ID記憶部103にて管理している利用者端末10−4を識別する公開IDであるIDをハッシュ関数に入力してハッシュ値Ka(s)=h(K,ID)を計算し、鍵暗号鍵を生成する(ステップS007)。
続いて利用者端末10−1は、上述のステップS007で生成した鍵暗号鍵を用いて、
予め定めたハッシュ値と同じ長さで値が全て0のメッセージ“all 0”をストリーム暗号にて暗号化し、予め定めたハッシュ値と同じ長さの乱数ra(s)=EKa(s)(all 0)を生成する(ステップS008)。
また利用者端末10−4は、上述のステップS006で受信した値“p xor rs(a)”と、ステップS008で生成した乱数ra(s)とをxorした値“ra(s) xor p xor rs(a)”を再暗号化装置20へ送信する(ステップS009)。
なお、ストリーム暗号の性質上、ステップS009で再暗号化装置20に送信した値“ra(s) xor p xor rs(a)”は、鍵暗号鍵Ka(s)を用いてステッ
プS006で受信した値“p xor rs(a)”をストリーム暗号にて暗号化した値と等しくなる。
一方、再暗号化装置20は、利用者端末10−1から“ra(s) xor p xo
r rs(a)”を受信すると、この値に上述のステップS002で用いた乱数pをxorし、利用者端末10−4と利用者端末10−1との変換鍵“ra(s) xor r
(a)”を計算し(ステップS010)、上述の変換鍵“ra(s) xor rs(a
”を変換鍵記憶部203のテーブルT203(図18、図26)に利用者端末10−4と利用者端末10−1との変換鍵として登録する(ステップS011)。
図5は、再暗号化装置20にて暗号化データを再暗号化する際に用いる利用者端末10−1と利用者端末10−2との変換鍵の登録方法を示すシーケンス図である。この場合まず、利用者Aの利用者端末10−1は、利用者Bの利用者端末10−2へメッセージの内容を通知するため、再暗号化装置20に対して、変換鍵の登録申請を行う(ステップS101)。この変換鍵は、上述のメッセージを再暗号化する際に再暗号化装置20が用いる鍵となる。
一方、再暗号化装置20は、上述の変換鍵登録申請を受信すると、予め定めたハッシュ値と同じ長さの乱数p'を生成し(ステップS102)、その乱数p'を変換鍵登録申請元である上述の利用者端末10−1に送信する(ステップS103)。
他方、利用者端末10−1は、鍵記憶部104にて管理している自身の秘密鍵Kと、公開ID記憶部103にて利用者端末10−4(メッセージの送信元)に関して管理している公開ID“ID”をハッシュ関数に入力して、ハッシュ値Ka(s)=h(K,ID)を計算することで、鍵を暗号化する鍵暗号鍵を生成する(ステップS104)。
次に利用者端末10−1は、上述のステップS104で生成した鍵暗号鍵を用いて、予め定めたハッシュ値と同じ長さで値が全て0のメッセージ“all 0”をストリーム暗号にて暗号化し、予め定めたハッシュ値と同じ長さの乱数ra(s)=EKa(s)(all 0)を生成する(ステップS105)。
また利用者端末10−1は、上述のステップS103で受信した乱数p'とステップS
105で生成した乱数ra(s)とをxorした値“p'xor ra(s)”を利用者
端末10−2へ送信する(ステップS106)。
一方、利用者端末10−2は、利用者端末10−4から送信された値“p'xor r
a(s)”を受信すると、鍵記憶部104にて管理している自身の秘密鍵Kと、公開ID記憶部103にて利用者端末10−1に関して管理している公開ID“ID”をハッシュ関数に入力してハッシュ値Kb(a)=h(K,ID)を計算し、鍵暗号鍵を生
成する(ステップS107)。
続いて利用者端末10−2は、上述のステップS107で生成した鍵暗号鍵を用いて、予め定めたハッシュ値と同じ長さで値が全て0のメッセージ“all 0”をストリーム暗号にて暗号化し、予め定めたハッシュ値と同じ長さの乱数rb(a)=EKb(a)(all 0)を生成する(ステップS108)。
また利用者端末10−2は、上述のステップS106で受信した値“p'xor r
(s)”とステップS108で生成した乱数rb(a)とをxorした値“rb(a) xor p' xor ra(s)”を再暗号化装置20へ送信する(ステップS109)。
なお、ストリーム暗号の性質上、上述のステップS109で再暗号化装置20に送信した値“rb(a) xor p' xor ra(s)”は、鍵暗号鍵Kb(a)を用いてステップS106で受信した値“p'xor ra(s)”をストリーム暗号にて暗号化
した値と等しくなる。
一方、再暗号化装置20は、上述の利用者端末10−2から“rb(a) xor p' xor ra(s)”を受信すると、この値に上述のステップS102で用いた乱数p'をxorし、利用者端末10−4が生成したメッセージに対する、利用者端末10−1
と利用者端末10−2との変換鍵“rb(a) xor ra(s)”を計算する(ステ
ップS110)。
また、再暗号化装置20は、上述の変換鍵“rb(a) xor ra(s)”を、利
用者端末10−4が生成したメッセージに対する利用者端末10−1と利用者端末10−2との変換鍵として変換鍵記憶部203に登録する(ステップS111)。このようにして登録された変換鍵は、メッセージ送信者の利用者端末10−4からメッセージ受信者の利用者端末10−1宛ての暗号化メッセージを、該当暗号化メッセージへのアクセス権がある別の利用者端末10−2宛ての暗号化メッセージに変換するための鍵となる。
なお、メッセージを生成する利用者端末が利用者端末10−4のみであり、その旨が本システム1で明らかである場合、利用者端末10−4が生成したメッセージに対する利用者端末10−1と利用者端末10−2との変換鍵を、単に利用者端末10−1と利用者端末10−2との変換鍵として変換鍵記憶部203のテーブルT203(図18、図26)に登録する。また、上述のステップS101からステップS111までの処理を、利用者Aの利用者端末10−1と利用者Cの利用者端末10−3とでも行い、上述したメッセージ送信者の利用者端末10−4からメッセージ受信者の利用者端末10−1宛ての暗号化メッセージへのアクセス権のある別の利用者端末全てに対して変換鍵の登録を行う。なお、ここでの利用者端末10−4が生成したメッセージに対する利用者端末10−1と利用者端末10−3との変換鍵を“rc(a) xor ra(s)”とする。
図18、図26で例示するテーブルT203は、上述のステップS011、ステップS111で再暗号化装置20の変換鍵記憶部203に登録した変換鍵に関するテーブルの内容を示している。このテーブルT203は、メッセージの受信先である利用者端末の情報とメッセージの送信/変換元である利用者端末の情報と、変換鍵とのカラムから成ってい
る。
以上説明した変換鍵の登録方法により、利用者端末10−1、10−2、10−3、10−4にてそれぞれ管理する秘密鍵K、K、K、Kを自分以外の利用者端末および再暗号化装置20に漏洩することなく再暗号化する際に必要な変換鍵を、再暗号化装置
20に登録することができる。
続いて図6は、上述の利用者端末10−4により利用者端末10−1宛ての、メッセージM、メッセージMの暗号化データ、およびその暗号化に用いた暗号鍵を暗号化したデータを生成し、生成した暗号化データおよび暗号鍵を暗号化したデータを、再暗号化装置20に送信するまでの処理の流れを示すシーケンス図である。
この場合まず、利用者端末10−4は,利用者端末10−1宛てのメッセージMを生成し(ステップS201)、このメッセージMに対して、鍵演算部102にて動的にランダムなメッセージ暗号鍵Kを生成する(ステップS202)。
また、利用者端末10−4は、上述のステップS202で生成したメッセージ暗号鍵Kを用いてメッセージMをストリーム暗号にて暗号化し、暗号化データEK1(M)を生成する(ステップS203)。
次に利用者端末10−4は、鍵記憶部104にて管理している自身の秘密鍵Kと、公開ID記憶部103にて利用者端末10−1に関し管理している公開ID“ID”を、ハッシュ関数に入力してハッシュ値Ks(a)=h(K,ID)を計算し、鍵暗号鍵を生成する(ステップS204)。
次に利用者端末10−4は、上述で生成した鍵暗号鍵Ks(a)を用いてメッセージ暗号鍵Kをストリーム暗号にて暗号化する(ステップS205)。なお、この時の暗号データはEKs(a)(K)=rs(a)xor Kとなる。さらに利用者端末10−4は、メッセージ暗号鍵Kのハッシュ値h(K)を計算し(ステップS206)、上述の鍵暗号鍵Ks(a)を用いて上述のハッシュ値h(K)をストリーム暗号にて暗号化する(ステップS207)。なお、この時の暗号データはEKs(a)(h(K))=rs(a)xor h(K)となる。
次に利用者端末10−4は、上述のステップS203、ステップS205、ステップS207で生成した値を結合して、利用者端末10−1宛ての暗号化データおよび暗号鍵を暗号化したデータとし、再暗号化装置20に送信する(ステップS208)。
図7は、利用者端末10−4から送信された、利用者端末10−1宛ての暗号化データおよび暗号鍵を暗号化したデータのうち暗号鍵を暗号化したデータを、再暗号化装置20が、利用者端末10−1向けのアクセス鍵として変換させる処理を示すシーケンス図である。
この場合、再暗号化装置20は、上述のステップS208で利用者端末10−4から送られてきた、利用者端末10−1宛ての暗号化データおよび暗号鍵を暗号化したデータを受信すると、変換鍵記憶部203のテーブルT203(図18)から、利用者端末10−4から利用者端末10−1への変換鍵“ra(s)xor rs(a)”を取得する(ステップS209)。
次に再暗号化装置20は、上述のステップS208で送られてきたデータの内、ステップS203で生成された暗号化データEK1(M)を暗号化データ記憶部204のテーブルT204−1(図18)に保管する(ステップS210)。
次に再暗号化装置20は、ステップS208で送られてきたデータの内、ステップS205で生成された暗号化データEKs(a)(K)をステップS209で取得した変換鍵“ra(s)xor rs(a)”を用いて再暗号化処理を施す。本実施形態における
再暗号化処理は、単に排他的論理和演算処理(xor)とする。この再暗号化処理により再暗号化装置20は、以下の値を得る。
(ra(s)xor rs(a)) xor EKs(a)(K
=(ra(s)xor rs(a)) xor (rs(a) xor K
=(ra(s) xor K)=EKa(s)(K
そして再暗号化装置20は、得られた値EKa(s)(K)を、利用者端末10−4と利用者端末10−1とのアクセス鍵の一部とし、アクセス鍵記憶部208のテーブルT208−1(図19)に登録する(ステップS211)。
次に再暗号化装置20は、上述のステップS208で送られてきたデータの内、ステップS207で生成された暗号化データEKs(a)(h(K))を、ステップS209で取得した変換鍵“ra(s)xor rs(a)”を用いて再暗号化処理を施す。この再暗号化処理により再暗号化装置20は、以下の値を得る。
(ra(s)xor rs(a)) xor EKs(a)(h(K))
=(ra(s)xor rs(a)) xor (rs(a) xor h(K))
=(ra(s) xor h(K))=EKa(s)(h(K))
そして再暗号化装置20は、得られた値EKa(s)(h(K))を、利用者端末10−4と利用者端末10−1とのアクセス鍵のもう一つの一部とし、アクセス鍵記憶部208のテーブルT208−1(図19)に登録する(ステップS212)。
図8は、利用者端末10−4から再暗号化装置20に送信された、利用者端末10−1宛ての暗号化データを、再暗号化装置20にて利用者端末10−2が復号できるように、利用者端末10−1向けのアクセス鍵を利用者端末10−2向けのアクセス鍵として変換する処理の流れを示すシーケンス図である。
この場合、再暗号化装置20は、変換鍵記憶部203のテーブルT203(図18)から、利用者端末10−4が生成したメッセージに対する、利用者端末10−1から利用者端末10−2への変換鍵"rb(a)xor ra(s)"を取得する(ステップS213)。
次に再暗号化装置20は、JステップS211で得ている値EKa(s)(K)をステップS213で取得した変換鍵“rb(a)xor ra(s)”を用いて再暗号化処理を施す。この再暗号化処理により再暗号化装置20は、以下の値を得る。
(rb(a)xor ra(s)) xor EKa(s)(K
=(rb(a)xor ra(s)) xor (ra(s) xor K
=(rb(a) xor K)=EKb(a)(K
そして再暗号化装置20は、得られた値EKb(a)(K)を、利用者端末10−4が生成したメッセージに対する、利用者端末10−1と利用者端末10−2とのアクセス鍵の一部としてアクセス鍵記憶部208のテーブルT208−1(図19)に登録する(ステップS214)。
次に再暗号化装置20は、上述のステップS212で得られた値EKa(s)(h(K))をステップS213で取得した変換鍵“rb(a)xor ra(s)”を用いて再暗号化処理を施す。この再暗号化処理により再暗号化装置20は、以下の値を得る。
(rb(a)xor ra(s)) xor EKa(s)(h(K))
=(rb(a)xor ra(s)) xor (ra(s) xor h(K))
=(rb(a) xor h(K))=EKb(a)(h(K))
そして再暗号化装置20は、得られた値EKb(a)(h(K))を、利用者端末10−4が生成したメッセージに対する、利用者端末10−1と利用者端末10−2とのアクセス鍵のもう一つの一部としてアクセス鍵記憶部208のテーブルT208−1(図19)に登録する(ステップS215)。
図9は、利用者端末10−1または利用者端末10−2が、それぞれ、再暗号化装置20に登録されている暗号化データおよびアクセス鍵を取得し、前述の暗号化データを復号してメッセージMを取得するまでの流れを示すシーケンス図である。
この場合、利用者端末10−1は、再暗号化装置20の暗号化データ記憶部204のテーブルT204−1(図23)から暗号化データEK1(M)を、再暗号化装置20のアクセス鍵記憶部208のテーブルT208−1(図19)からアクセス鍵EKa(s)(K)とEKa(s)(h(K))を取得する(ステップS216)。
次に利用者端末10−1は、暗号化データを復号するための鍵暗号鍵を生成する(ステップS217)。具体的には、利用者端末10−1は、鍵記憶部104にて管理している自身の秘密鍵Kと、公開ID記憶部103にて利用者端末10−4について管理している公開ID“ID”をハッシュ関数に入力したハッシュ値Ka(s)=h(K,ID)を計算することで、鍵暗号鍵を生成する。
次に利用者端末10−1は、生成した鍵暗号鍵Ka(s)を用いて、ステップS216で取得したアクセス鍵の内、EKa(s)(K)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の様にメッセージ暗号鍵Kを復号することができる(ステップS218)。
Ka(s)(EKa(s)(K))=ra(s) xor (ra(s) xor
)=K
次に利用者端末10−1は、ステップS218で復号したメッセージ暗号鍵Kを用いて、ステップS216で取得した暗号化データEK1(M)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の様にメッセージMを復号することができる(ステップS219)。
K1(EK1(M))=M
また同様に、利用者端末10−2は、再暗号化装置20の暗号化データ記憶部204のテーブルT204−1(図23)から暗号化データEK1(M)を、再暗号化装置20のアクセス鍵記憶部208のテーブルT208−1(図19)からアクセス鍵EKb(a)(K)とEKb(a)(a)(h(K))を取得する(ステップS220)。
次に利用者端末10−2は、暗号化データを復号するための鍵暗号鍵を生成する(ステップS221)。具体的には、利用者端末10−2は、鍵記憶部104にて管理している自身の秘密鍵Kと、公開ID記憶部103にて利用者端末10−1に関して管理している公開ID“ID”をハッシュ関数に入力したハッシュ値Kb(a)=h(K,ID)を計算することで、鍵暗号鍵を生成する。
次に利用者端末10−2は、生成した鍵暗号鍵Kb(a)を用いて、ステップS220で取得したアクセス鍵の内、EKb(a)(K)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−2は、以下の様にメッセージ暗号鍵Kを復号することができる(ステップS222)。
Kb(a)(EKb(a)(K))=rb(a) xor (rb(a) xor
)=K
次に利用者端末10−2は、ステップS222で復号したメッセージ暗号鍵Kを用いて、ステップS220で取得した暗号化データEK1(M)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−2は、以下の様にメッセージMを復号することができる(ステップS223)。
K1(EK1(M))=M
以上、図4から図9を用いて、再暗号を行う為の変換鍵を再暗号化装置20に登録する仕組みと、利用者端末10−4が利用者端末10−1宛てのメッセージを暗号化し、その暗号化データを利用者端末10−1が復号できる形に、再暗号化装置20にて再暗号化処理を施し、その再暗号化データを利用者端末10−1にて復号して上記メッセージを取得するための仕組みと、前記再暗号化データを利用者端末10−2が復号できる形に更に再暗号化装置20にて再暗号化処理を施し、その再暗号化データを利用者端末10−2にて復号して上記メッセージを取得するための仕組みを説明した。
次に、図10と図11を用いて、本発明の課題であった利用者Bの利用者端末10−2の再暗号化装置20にて管理されている暗号化データEK1(M)へのアクセス権を失効させた際、利用者端末10−2からの閲覧を防止する為に再暗号化装置20にて管理されている暗号化データEK1(M)を復号せずに新しい暗号鍵で再暗号化させる仕組みを説明する。また、図12と図13を用いて、利用者Bに続いて更に利用者Cの利用者端末10−3の上述の新しい暗号鍵で再暗号化されたデータへのアクセス権を失効させた際の、再暗号化データを復号せずに更に新しい暗号鍵で再暗号化させる仕組みを説明する。
図10は、再暗号化装置20において管理されている暗号化データEK1(M)への、利用者端末10−2によるアクセス権を抹消した際に、この利用者端末10−2が上述の暗号化データEK1(M)を復号できないよう、暗号化データEK1(M)を、再暗号化装置20が生成した暗号鍵Kで再度暗号化して二重暗号化データを生成し、この二重暗号化データを利用者端末10−1が復号できるように、利用者端末10−1向けのアクセス鍵EKa(s)(K)とEKa(s)(h(K))を変換するまでの流れを示すシーケンス図である。
再暗号化装置20は、利用者端末10−1、利用者端末10−3、および利用者端末10−4のいずれかからの依頼により、暗号化データEK1(M)への利用者端末10−2のアクセス権について、アクセス鍵記憶部208のテーブルT208−2(図20参照)に登録されている利用者端末10−2のアクセス鍵を削除する(ステップS301)。
次に再暗号化装置20は、上述の暗号化データEK1(M)に対して、鍵演算部205にて動的にランダムな二重暗号鍵Kを生成し、二重暗号鍵記憶部209のテーブルT209(図22)に保管する(ステップS302)。
次に再暗号化装置20は、暗号化データ記憶部204のテーブルT204−1(図23)にて保管されている暗号化データEK1(M)を、ステップS302で生成した二重暗号鍵Kを用いてストリーム暗号にて二重に暗号化し、二重暗号データEK2(EK1(M))を計算する。そして、暗号化データ記憶部204にて保管されている暗号化データEK1(M)を、この二重暗号データEK2(EK1(M))に置き換える(ステップS303)。このとき、上述の二重暗号データEK2(EK1(M))が、二重暗号鍵Kにて二重暗号化されていることを再暗号化装置20が識別できるように、テーブルT209(図22)およびテーブルT204−2(図24)に識別子を用いて記録する。ここでは、テーブルT204−2にて、二重暗号化データE2(EK1(M))には、識別子
"2"が割り振られている。また、テーブルT209にて、二重暗号鍵Kにも識別子"2"が割り振られている。そのため、再暗号化装置20は、二重暗号化データEK2(EK1(M))が、二重暗号鍵Kにて二重暗号化されていることを識別することが可能となる。
次に再暗号化装置20は、アクセス鍵記憶部208のテーブルT208−1(図19)にて保管されている、利用者端末10−4と利用者端末10−1とのアクセス鍵の片側であるEKa(s)(h(K))に、ステップS302で生成した二重暗号鍵Kを用いて再暗号処理を施す。なお、ここでの再暗号処理も単に排他的論理和演算処理(xor)とする。この再暗号化処理により再暗号化装置20は、以下の値を得る。
Ka(s)(h(K)) xor K
=(ra(s) xor h(K)) xor K
=ra(s) xor (h(K) xor K
= EKa(s)(h(K)xor K
そして、再暗号化装置20は、アクセス鍵記憶部208のテーブルT208−1(図19)に保管されている、利用者端末10−4と利用者端末10−1とのアクセス鍵の片側であるEKa(s)(h(K))を、この再暗号処理によって得た値EKa(s)(h(K)xor K)に置き換える(ステップS304、図20のテーブルT208−2参照)。また、同様にして利用者端末10−1と利用者端末10−3とのアクセス鍵の片側であるEKC(a)(h(K))も二重暗号鍵Kを用いた再暗号処理値EKC(a)(h(K)xor K)に置き換える(図20のテーブルT208−2参照)。
図11は、利用者端末10−1が、再暗号化装置20に登録されている上述の二重暗号化データEK2(EK1(M))およびアクセス鍵EKa(s)(K)とEKa(s)(h(K)xor K)を取得し、二重暗号化データを復号してメッセージMを取得するまでの流れを示すシーケンス図である。
この場合、利用者端末10−1は、再暗号化装置20の暗号化データ記憶部204のテーブルT204−2(図24)から二重暗号化データEK2(EK1(M))を、再暗号化装置20のアクセス鍵記憶部208のテーブルT208−2(図20)からアクセス鍵EKあ(s)(K)とEKa(s)(h(K)xor K)を取得する(ステップS305)。
次に利用者端末10−1は、二重暗号化データを復号するための鍵暗号鍵を生成する(ステップS306)。具体的には、利用者端末10−1は、鍵記憶部104にて管理している自身の秘密鍵Kと、公開ID記憶部103にて利用者端末10−4に関して管理している公開ID“ID”をハッシュ関数に入力したハッシュ値Ka(s)=h(K,ID)を計算することで、鍵暗号鍵を生成する。
次に利用者端末10−1は、生成した鍵暗号鍵Ka(s)を用いて、ステップS305で取得したアクセス鍵の内、EKa(s)(K)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の様にメッセージ暗号鍵Kを復号することができる(ステップS307)。
Ka(s)(EKa(s)(K))
=ra(s) xor (ra(s) xor K
=K
次に利用者端末10−1は、ステップS306で生成した鍵暗号鍵Ka(s)を用いて、ステップS305で取得したアクセス鍵の内、EKa(s)(h(K)xor K
)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の値を復号することができる(ステップS308)。
Ka(s)(EKa(s)(h(K)xor K))
=ra(s) xor (ra(s) xor (h(K)xor K))
=h(K)xor K
次に利用者端末10−1は、ステップS307で復号したメッセージ暗号鍵Kをハッシュ関数h()に入力したハッシュ値h(K)を計算し、そのハッシュ値h(K)とステップS308で得た値h(K)xor Kとの排他的論理和(xor)を計算して以下の様に二重暗号鍵Kを取得する(ステップS309)。
h(K)xor (h(K)xor K)= K
そして利用者端末10−1は、ステップS309で復号した二重暗号鍵Kを用いて、ステップS305で取得した二重暗号化データEK2(EK1(M))をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の値を得ることできる(ステップS310)。
K2(EK2(EK1(M)))=EK1(M)
そして利用者端末10−1は、ステップS307で復号したメッセージ暗号鍵Kを用いて、ステップS310で取得した値EK1(M)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の様にメッセージMを復号することができる(ステップS311)。
K1(EK1(M))=M
図12は、利用者端末10−2に引き続き、更に利用者端末10−3に関して、二重暗号化データEK2(EK1(M))へのアクセス権を抹消した際に、利用者端末10−3が二重暗号化データEK2(EK1(M))を復号できないよう、二重暗号化データEK2(EK1(M))を再暗号化装置20が再度生成した暗号鍵Kで暗号化処理を施し、アクセス権を有する利用者端末10−1ならば復号できるように利用者端末10−1向けのアクセス鍵EKa(s)(K)とEKa(s)(h(K) xor K)を再度変換するまでの流れを示すシーケンス図である。
この場合、再暗号化装置20は、利用者端末10−1または利用者端末10−4からの、二重暗号化データEK2(EK1(M))への利用者端末10−3のアクセス権の抹消依頼により、アクセス鍵記憶部208に登録されている利用者端末10−3のアクセス鍵を削除する(ステップS401、図21のテーブルT208−3参照)。
次に再暗号化装置20は、上述の二重暗号化データEK2(EK1(M))に対して、鍵演算部205にて動的にランダムな二重暗号鍵Kを生成し、二重暗号鍵記憶部209のテーブルT209(図22)に保管する(ステップS402)。
次に再暗号化装置20は、暗号化データ記憶部204のテーブルT204−2(図24)にて保管されている二重暗号化データEK2(EK1(M))を、ステップS402で生成した二重暗号鍵Kを用いてストリーム暗号にて二重に暗号化し、二重暗号データEK3(EK2(EK1(M)))を計算する(ステップS403)。
次に再暗号化装置20は、暗号化データ記憶部204のテーブルT204−2(図24)にて保管されている二重暗号化データEK2(EK1(M))の識別子を基に、二重暗号鍵記憶部209のテーブルT209(図22)より、上述のEK2(EK1(M))の識別子と同じ識別子を持つ二重暗号鍵Kを取り出し、この二重暗号鍵Kを用いてステ
ップS403にて得た二重暗号データEK3(EK2(EK1(M)))を復号化する。この復号処理により再暗号化装置20は以下の値を得る。
K2(EK3(EK2(EK1(M))))= EK3(EK1(M))。
そして、暗号化データ記憶部204のテーブルT204−2(図24)にて保管されている二重暗号化データEK2(EK1(M))を、ここで得た値EK3(EK1(M))に置き換える(ステップS404)。このとき、上述の二重暗号データEK3(EK1(M))が、二重暗号鍵Kにて二重暗号化されていることを再暗号化装置20が識別できるように、図22のテーブルT209および図25のテーブルT204−3に識別子を用いて記録する。ここでは、テーブルT204−3にて二重暗号化データEK3(EK1(M))には識別子"3"が割り振られており、テーブルT209にて二重暗号鍵Kにも識別子"3"が割り振られているため、再暗号化装置20は、二重暗号化データEK3(EK1(M))が、二重暗号鍵Kにて二重暗号化されていることを識別することが可能となる。
次に再暗号化装置20は、アクセス鍵記憶部208のテーブルT208−2(図20)にて保管されている、利用者端末10−4と利用者端末10−1とのアクセス鍵の片側であるEKa(s)(h(K) xor K)に、ステップS404で二重暗号鍵記憶部209のテーブルT209(図22)から取り出した二重暗号鍵KとステップS402で生成した二重暗号鍵Kとをxorした値を暗号鍵として用いて再暗号処理を施す。なお、ここでの再暗号処理も、単に排他的論理和演算処理(xor)とする。この再暗号化処理により再暗号化装置20は、以下の値を得る。
Ka(s)(h(K) xor K xor (K xor K
=(ra(s) xor (h(K) xor K)) xor (K xor
) = ra(s) xor (h(K)xor K
= EKa(s)(h(K)xor K
そして、再暗号化装置20は、アクセス鍵記憶部208のテーブルT208−2(図20)に保管されている、利用者端末10−4と利用者端末10−1とのアクセス鍵の片側であるEKa(s)(h(K)xor K)を、この再暗号処理によって得た値EKa(s)(h(K)xor K)に置き換える(ステップS405、図21のテーブルT208−3参照)。
図13は、利用者端末10−1が、利用者端末10−2および利用者端末10−3が復号できない形で再暗号化装置20に登録されている上述の二重暗号化データEK3(EK1(M))およびアクセス鍵EKa(s)(K)とEKa(s)(h(K)xor K)を取得し、上述の二重暗号化データを復号してメッセージMを取得するまでの流れを示すシーケンス図である。
この場合、利用者端末10−1は、再暗号化装置20の暗号化データ記憶部204のテーブルT204−3(図25)から二重暗号化データEK3(EK1(M))を、再暗号化装置20のアクセス鍵記憶部208のテーブルT208−3(図21)からアクセス鍵EKa(s)(K)とEKa(s)(h(K)xor K)を取得する(ステップS406)。
次に利用者端末10−1は、二重暗号化データを復号するための鍵暗号鍵を生成する(ステップS407)。具体的には、利用者端末10−1は、鍵記憶部104にて管理している自身の秘密鍵Kと、公開ID記憶部103にて利用者端末10−4に関し管理している公開ID“ID”をハッシュ関数に入力したハッシュ値Ka(s)=h(K,I
)を計算することで、鍵暗号鍵を生成する。
次に利用者端末10−1は、生成した鍵暗号鍵Ka(s)を用いて、ステップS406で取得したアクセス鍵の内、EKa(s)(K)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の様にメッセージ暗号鍵Kを復号することができる(ステップS408)。
Ka(s)(EKa(s)(K))
=ra(s) xor (ra(s) xor K
=K
次に利用者端末10−1は、ステップS407で生成した鍵暗号鍵Ka(s)を用いて、ステップS406で取得したアクセス鍵の内、Ea(s)(h(K)xor K)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の値を復号することができる(ステップS409)。
Ka(s)(EKa(s)(h(K)xor K))
=ra(s) xor (ra(s) xor (h(K)xor K))
=h(K)xor K
次に利用者端末10−1は、ステップS408で復号したメッセージ暗号鍵Kをハッシュ関数h()に入力したハッシュ値h(K)を計算し、そのハッシュ値h(K)とステップS409で得た値h(K)xor Kとの排他的論理和(xor)を計算して以下の様に二重暗号鍵Kを取得する(ステップS410)。
h(K)xor (h(K)xor K)= K
そして利用者端末10−1は、ステップS410で復号した二重暗号鍵Kを用いて、ステップS406で取得した二重暗号化データEK3(EK1(M))をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の値を得ることできる(ステップS411)。
K3(EK3(EK1(M)))=EK1(M)
そして利用者端末10−1は、ステップS408で復号したメッセージ暗号鍵Kを用いて、ステップS411で取得した値EK1(M)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の様にメッセージMを復号することができる(ステップS412)。
K1(EK1(M))=M
以上、図10、図11より、本発明の課題であった利用者Bの利用者端末10−2の再暗号化装置20にて管理されている暗号化データEK1(M)へのアクセス権を失効させた際、利用者端末10−2からの閲覧を防止する為に再暗号化装置20にて管理されている暗号化データEK1(M)を復号せずに新しい暗号鍵で再暗号化させる仕組みと、図12と図13より、利用者Bに引き続き更に利用者Cの利用者端末10−3の前記新しい暗号鍵で再暗号化されたデータへのアクセス権を失効させた際の、再暗号化データを復号せずに更に新しい暗号鍵で再暗号化させる仕組みを説明した。
以上、本発明の実施形態を具体的に説明したが、本発明はこれに限定されるものでなく、その趣旨を逸脱しない範囲において種々変更可能である。例えば、上記実施形態では、ステップS208にて再暗号化装置20が利用者端末10−4より暗号化データEK1(M)等を受け取った際、再暗号化装置20では、前記暗号化データEK1(M)をそのまま暗号化データ記憶部204に保管したが、再暗号化装置20は、この受け取った暗号化データEK1(M)をアクセス権のある利用者端末毎に再暗号化して暗号化データ記憶部
204に保管してもよい。より具体的にこの実施形態を図14から図17を用いて説明する。
図14は、図7から図13までの処理とは別実施形態において、利用者端末10−4から再暗号化装置20に送信された利用者端末10−1宛ての暗号化データEK1(M)および暗号鍵を暗号化したデータ"EKs(a)(K)、EKs(a)(h(K))"に対し、暗号化データEK1(M)を再暗号化装置20にて利用者端末10−1向けに二重暗号化処理を施して二重暗号化データを生成し、前記二重暗号化データを利用者端末10−1が復号できるように、暗号鍵を暗号化したデータ"EKs(a)(K)、EKs(
a)(h(K))"を利用者端末10−1向けのアクセス鍵として変換させるまでの処
理の流れを示すシーケンス図である。
再暗号化装置20は、ステップS208で利用者端末10−4から送られてきた利用者端末10−1宛ての暗号化データEK1(M)および暗号鍵を暗号化したデータ"EKs
(a)(K)、EKs(a)(h(K))"を受信すると、再暗号化装置20は、上
述の暗号化データEK1(M)に対して、鍵演算部205にて動的にランダムな二重暗号鍵Kを生成し、二重暗号鍵記憶部209のテーブルT209(図22)に保管する(ステップS501)。
次に再暗号化装置20は前記暗号化データEK1(M)をステップS501で生成した二重暗号鍵Kを用いてストリーム暗号にて二重に暗号化し、二重暗号データEK2(EK1(M))を計算する。そして、暗号化データ記憶部204のテーブルT204−4(図28)に利用者端末10−1宛として、この二重暗号データEK2(EK1(M))を保管する。(ステップS502)。
このとき、二重暗号データEK2(EK1(M))が二重暗号鍵Kにて二重暗号化されていることを再暗号化装置20が識別できるよう、図22のテーブルT209および図28のテーブルT204−4に識別子を用いて記録する。ここでは、テーブルT204−4にて二重暗号化データEK2(EK1(M))には識別子"2"が割り振られており、テーブルT209にて二重暗号鍵Kにも識別子"2"が割り振られているため、再暗号化装置20は、二重暗号化データEK2(EK1(M))が、二重暗号鍵Kにて二重暗号化されていることを識別することが可能となる。
次に再暗号化装置20は、変換鍵記憶部203のテーブルT203(図26)から、利用者端末10−4から利用者端末10−1への変換鍵"ra(s)xor rs(a)"を取得する(ステップS503)。
次に再暗号化装置20は、ステップS208で送られてきたデータの内、EKs(a)(K)をステップS503で取得した変換鍵"ra(s) xor rs(a)"を用いて再暗号化処理を施す。なお、ここでの再暗号化処理は単に排他的論理和演算処理(xor)とする。この再暗号化処理により再暗号化装置20は、以下の値を得る。
(ra(s)xor rs(a)) xor EKs(a)(K
=(ra(s)xor rs(a)) xor (rs(a) xor K
=(ra(s) xor K)=EKa(s)(K
そして再暗号化装置20は、得られた値EKa(s)(K)を利用者端末10−4と利用者端末10−1とのアクセス鍵の一部としてアクセス鍵記憶部208のテーブルT208−4(図27)に登録する(ステップS504)。
次に再暗号化装置20は、ステップS208で送られてきたデータの内、EKs(a)
(h(K))をステップS503で取得した変換鍵"ra(s) xor rs(a)"を用いて再暗号化処理を施す。この再暗号化処理により再暗号化装置20は、以下の値を得る。
(ra(s)xor rs(a)) xor EKs(a)(h(K))
=(ra(s)xor rs(a)) xor (rs(a) xor h(K))
=(ra(s) xor h(K))=EKa(s)(h(K))
そして再暗号化装置20は、得られた値EKa(s)(h(K))に、ステップS501で生成した二重暗号鍵K用いて再暗号処理を施す。なお、ここでの再暗号処理も単に排他的論理和演算処理(xor)とする。この再暗号化処理により再暗号化装置20は、以下の値を得る。
Ka(s)(h(K)) xor K
=(ra(s) xor h(K))xor K
=ra(s) xor (h(K) xor K
=EKa(s)(h(K)xor K)。
そして再暗号化装置20は、得られた値EKa(s)(h(K)xor K)を利用者端末10−4と利用者端末10−1とのアクセス鍵のもう一つの一部としてアクセス鍵記憶部208のテーブルT208−4(図27)に登録する(ステップS505)。
図15は、図14のシーケンス図において再暗号化装置20に登録されている利用者端末10−1宛ての二重暗号化データEK2(EK1(M))およびアクセス鍵"EKa(
s)(K)、EKa(s)(h(K)xor K)"に対し、前記二重暗号化デー
タEK2(EK1(M))を再暗号化装置20にて利用者端末10−2向けに更に暗号化処理を施し、上述の暗号化処理したデータを利用者端末10−2が復号できるように、利用者端末10−1向けのアクセス鍵"EKa(s)(K)、EKa(s)(h(K
xor K)"を利用者端末10−2向けのアクセス鍵として変換させるまでの処理の
流れを示すシーケンス図である。
この場合、再暗号化装置20は、二重暗号化データEK2(EK1(M))に対して、鍵演算部205にて動的にランダムな二重暗号鍵Kを生成し、二重暗号鍵記憶部209のテーブルT209(図29)に保管する(ステップS506)。
次に再暗号化装置20は、暗号化データ記憶部204のテーブルT204−4(図289にて保管されている利用者端末10−1宛の二重暗号化データEK2(EK1(M))をステップS506で生成した二重暗号鍵Kを用いてストリーム暗号にて二重に暗号化し、二重暗号データEK3(EK2(EK1(M)))を計算する。
そして再暗号化装置20は、暗号化データ記憶部204のテーブルT204−4にて保管されている利用者端末10−1宛の二重暗号化データEK2(EK1(M))の識別子を基に、二重暗号鍵記憶部209のテーブルT209より、前記EK2(EK1(M))の識別子と同じ識別子を持つ二重暗号鍵Kを取り出し、この二重暗号鍵Kを用いて二重暗号データEK3(EK2(EK1(M)))を復号化する。この復号処理により再暗号化装置20は以下の値を得る。
K2(EK3(EK2(EK1(M))))= EK3(EK1(M))
そして、再暗号化装置20は、暗号化データ記憶部204のテーブルT204−4(図28)に、利用者端末10−1宛として、この二重暗号データEK3(EK1(M))を保管する(ステップS507)。このとき、前記二重暗号データEK3(EK1(M))
が二重暗号鍵Kにて二重暗号化されていることを再暗号化装置20が識別できるように、図29のテーブルT209および図28のテーブルT204−4に識別子を用いて記録する。ここでは、テーブルT204−4にて二重暗号化データEK3(EK1(M))には識別子"3"が割り振られており、テーブルT209にて二重暗号鍵Kにも識別子"3"が割り振られているため、再暗号化装置20は、二重暗号化データEK3(EK1(M))が、二重暗号鍵Kにて二重暗号化されていることを識別することが可能となる。
次に再暗号化装置20は、変換鍵記憶部203のテーブルT203(図26)から、利用者端末10−4からのメッセージに対する利用者端末10−1から利用者端末10−2への変換鍵"rb(a) xor ra(s)"を取得する(ステップS508)。
次に再暗号化装置20は、アクセス鍵記憶部208のテーブルT208−4から利用者端末10−1のアクセス鍵の一部であるEKa(s)(K)をステップS508で取得した変換鍵"rb(a) xor ra(s)"を用いて再暗号化処理を施す。なお、本実施形態では、この再暗号化処理は単に排他的論理和演算処理(xor)とする。この再暗号化処理により再暗号化装置20は、以下の値を得る。
(rb(a) xor ra(s)) xor EKa(s)(K
=(rb(a) xor ra(s)) xor (ra(s) xor K
=(rb(a) xor K
=EKb(a)(K
そして再暗号化装置20は、得られた値EKb(a)(K)を利用者端末10−1と利用者端末10−2とのアクセス鍵の一部としてアクセス鍵記憶部208のテーブルT208−4(図27)に登録する(ステップS509)。
次に再暗号化装置20は、アクセス鍵記憶部208のテーブルT208−4から利用者端末10−1のアクセス鍵の一部であるEKa(s)(h(K)xor K)をステップS508で取得した変換鍵"rb(a) xor ra(s)"を用いて再暗号化処理を施す。なお、本実施形態では、この再暗号化処理は単に排他的論理和演算処理(xor)とする。この再暗号化処理により再暗号化装置20は、以下の値を得る。
(rb(a) xor ra(s)) xor EKa(s)(h(K)xor K
=(rb(a) xor ra(s)) xor (ra(s) xor (h(K)xor K)) =(rb(a) xor (h(K)xor K))
=EKb(a)(h(K)xor K
そして再暗号化装置20は、得られた値EKb(a)(h(K)xor K)をステップS507で二重暗号鍵記憶部209のテーブルT209から取り出した二重暗号鍵KとステップS506で生成した二重暗号鍵Kとをxorした値を暗号鍵として用いて再暗号処理を施す。なお、ここでの再暗号処理も単に排他的論理和演算処理(xor)とする。この再暗号化処理により再暗号化装置20は、以下の値を得る。
Kb(a)(h(K)xor K) xor (K xor K
=(rb(a) xor (h(K) xor K)) xor (K xor
) =rb(a) xor (h(K)xor K
=EKb(a)(h(K)xor K
そして、再暗号化装置20は、得られた値EKb(a)(h(K)xor K)を利用者端末10−1と利用者端末10−2とのアクセス鍵の一部としてアクセス鍵記憶部208のテーブルT208−4(図27)に登録する(ステップS510)。
図16は、利用者端末10−1が、図14のシーケンス図において再暗号化装置20に登録されている利用者端末10−1向けの二重暗号化データおよびアクセス鍵を取得し、上述の二重暗号化データを復号してメッセージMを取得するまでの流れを示すシーケンス図である。
この場合、利用者端末10−1は、再暗号化装置20の暗号化データ記憶部204のテーブルT204−4(図28)から二重暗号化データEK2(EK1(M))を、再暗号化装置20のアクセス鍵記憶部208のテーブルT208−4(図27)からアクセス鍵EKa(s)(K)とEKa(s)(h(K)xor K)を取得する(ステップS511)。
次に利用者端末10−1は、二重暗号化データを復号するための鍵暗号鍵を生成する(ステップS512)。具体的には、利用者端末10−1は、鍵記憶部104にて管理している自身の秘密鍵Kaと、公開ID記憶部103にて利用者端末10−4に関し管理している公開ID“ID”をハッシュ関数に入力したハッシュ値Ka(s)=h(K,ID)を計算することで、鍵暗号鍵を生成する。
次に利用者端末10−1は、生成した鍵暗号鍵Ka(s)を用いて、ステップS511で取得したアクセス鍵の内、EKa(s)(K)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の様にメッセージ暗号鍵Kを復号することができる(ステップ513)。
Ka(s)(EKa(s)(K))
=ra(s) xor (ra(s) xor K
=K
次に利用者端末10−1は、ステップS512で生成した鍵暗号鍵Ka(s)を用いて、ステップS511で取得したアクセス鍵の内、EKa(s)(h(K)xor K)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の値を復号することができる(ステップS514)。
Ka(s)(EKa(s)(h(K)xor K))
=ra(s) xor(ra(s) xor (h(K)xor K))
=h(K)xor K
次に利用者端末10−1は、ステップS513で復号したメッセージ暗号鍵Kをハッシュ関数h()に入力したハッシュ値h(K)を計算し、そのハッシュ値h(K)とステップS514で得た値h(K)xor Kとの排他的論理和(xor)を計算して以下の様に二重暗号鍵K2を取得する(ステップS515)。
h(K)xor (h(K)xor K)= K
そして利用者端末10−1は、ステップS515で復号した二重暗号鍵Kを用いて、ステップS511で取得した二重暗号化データEK2(EK1(M))をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の値を得ることできる(ステップS516)。
K2(EK2(EK1(M)))=EK1(M)
そして利用者端末10−1は、ステップS513で復号したメッセージ暗号鍵Kを用いて、ステップS516で取得した値EK1(M)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−1は、以下の様にメッセージMを復号することができる(ステップS517)。
K1(EK1(M))=M
図17は、利用者端末10−2が、図15のシーケンス図において再暗号化装置20に登録されている利用者端末10−2向けの二重暗号化データおよびアクセス鍵を取得し、上述の二重暗号化データを復号してメッセージMを取得するまでの流れを示すシーケンス図である。
この場合、利用者端末10−2は、再暗号化装置20の暗号化データ記憶部204のテーブルT204−4(図28)から二重暗号化データEK3(EK1(M))を、再暗号化装置20のアクセス鍵記憶部208のテーブルT208−4(図27)からアクセス鍵EKb(a)(K)とEKb(a)(h(K)xor K)を取得する(ステップS518)。
次に利用者端末10−2は、二重暗号化データを復号するための鍵暗号鍵を生成する(ステップS519)。具体的には、利用者端末10−1は、鍵記憶部104にて管理している自身の秘密鍵Kbと、公開ID記憶部103にて利用者端末10−1について管理している公開ID“ID”をハッシュ関数に入力したハッシュ値Kb(a)=h(K,ID)を計算することで、鍵暗号鍵を生成する。
次に利用者端末10−2は、生成した鍵暗号鍵Kb(a)を用いて、ステップS518で取得したアクセス鍵の内、EKb(a)(K)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−2は、以下の様にメッセージ暗号鍵Kを復号することができる(ステップS520)。
Kb(a)(EKb(a)(K))
=rb(a) xor (rb(a) xor K
=K
次に利用者端末10−2は、ステップS519で生成した鍵暗号鍵Kb(a)を用いて、ステップS518で取得したアクセス鍵の内、EKb(a)(h(K)xor K)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−2は、以下の値を復号することができる(ステップS521)。
Kb(a)(EKb(a)(h(K)xor K))
=rb(a) xor (rb(a) xor (h(K)xor K))
=h(K)xor K
次に利用者端末10−2は、ステップS520で復号したメッセージ暗号鍵Kをハッシュ関数h()に入力したハッシュ値h(K)を計算し、そのハッシュ値h(K)とステップS521で得た値h(K)xor Kとの排他的論理和(xor)を計算して以下の様に二重暗号鍵K3を取得する(ステップS522)。
h(K)xor (h(K)xor K)= K
そして利用者端末10−2は、ステップS522で復号した二重暗号鍵Kを用いて、ステップS518で取得した二重暗号化データEK3(EK1(M))をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−2は、以下の値を得ることできる(ステップS523)。
K3(EK3(EK1(M)))=EK1(M)
そして利用者端末10−2は、ステップS520で復号したメッセージ暗号鍵Kを用いて、ステップS523で取得した値EK1(M)をストリーム暗号により復号処理を行う。この復号処理により利用者端末10−2は、以下の様にメッセージMを復号することができる(ステップS524)。
K1(EK1(M))=M
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、複数ユーザ間で共有の暗号化データを所定装置にて保持しユーザ毎の閲覧権限管理を行う環境下において、装置管理者を含む無権限者による暗号化データの閲覧を確実に回避可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の再暗号化方法において、前記再暗号化装置が、特定利用者に関する閲覧権限の失効イベントに伴い、当該再暗号化装置にて生成した第2暗号鍵を用いて、前記第1の暗号化データを二重に暗号化する処理と、現時点で閲覧権限を有する利用者の復号鍵で復号可能に、前記第2の暗号化データを再暗号化する処理および、前記第3の暗号化データを再暗号化した値で前記第2暗号鍵の再暗号化を行う処理とを更に実行し、前記現時点で閲覧権限を有する利用者の利用者端末が、前記二重に暗号化された第1の暗号化データと、前記再暗号化された第2の暗号化データと、前記再暗号化された第2の暗号化データにより再暗号化された第2暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第2の暗号化データからの前記第1暗号鍵の復号、および、前記再暗号化された第2暗号鍵からの前記第2暗号鍵の復号を行い、得られた第1暗号鍵および第2暗号鍵を用いて、前記二重に暗号化された第1の暗号化データを復号して前記平文を出力する処理を更に実行する、としてもよい。
これによれば、当初は閲覧権限を有していた或る利用者が、その閲覧権限を失う状況が生じたケースに対して、従来のように、暗号化データ復号用の復号鍵が該当利用者にて保持されたままであれば、その利用者からの暗号化データ閲覧を許してしまうといった事態を確実に回避することができる。
また、本実施形態の再暗号化方法において、前記再暗号化装置が、前記第1、第2および第3の各暗号化データを前記データ作成者の利用者端末から受信し、当該再暗号化装置にて生成した第2暗号鍵を用いて、前記第1の暗号化データを二重に暗号化する処理と、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第2の暗号化データを再暗号化する処理および、前記第3の暗号化データを再暗号化した値で前記第2暗号鍵の再暗号化を行う処理とを実行し、前記閲覧権限を有する利用者の利用者端末が、前記二重に暗号化された第1の暗号化データと、前記再暗号化された第2の暗号化データと、前記再暗号化された第2暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第2の暗号化データからの前記第1暗号鍵の復号、および、前記再暗号化された第2暗号鍵からの前記第2暗号鍵の復号を行い、得られた第1暗号鍵および第2暗号鍵を用いて、前記二重に暗号化された第1の暗号化データを復号して前記平文を出力する処理を実行する、としてもよい。
これによれば、例えば電子メールをセキュアに管理する状況などに対応し、各利用者ごとに電子メールを暗号化して管理する一方、本願の請求項1に記載の発明の場合よりも再暗号の手間を低減したシステム運用が可能となる。
また、本実施形態の再暗号化方法において、前記利用者端末が、データ作成者の第1暗号鍵にて平文を暗号化して第1の暗号化データを生成し、前記第1暗号鍵および当該第1暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化して第2および第3の暗号化データを生成し、前記生成した第1、第2、および第3の各暗号化データを再暗号化装置に送信する処理を実行する、としてもよい。
これによれば、利用者端末において各暗号化データを生成し、これを再暗号化装置に格納することが可能となる。
また、本実施形態の再暗号化システムの前記再暗号化装置において、前記演算装置が、特定利用者に関する閲覧権限の失効イベントに伴い、当該再暗号化装置にて生成した第2暗号鍵を用いて、前記第1の暗号化データを二重に暗号化する処理と、現時点で閲覧権限を有する利用者の復号鍵で復号可能に、前記第2の暗号化データを再暗号化する処理および、前記第3の暗号化データを再暗号化した値で前記第2暗号鍵の再暗号化を行う処理とを更に実行するものであり、前記現時点で閲覧権限を有する利用者の利用者端末において、前記演算装置が、前記二重に暗号化された第1の暗号化データと、前記再暗号化された第2の暗号化データと、前記再暗号化された第2の暗号化データにより再暗号化された第2暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第2の暗号化データからの前記第1暗号鍵の復号、および、前記再暗号化された第2暗号鍵からの前記第2暗号鍵の復号を行い、得られた第1暗号鍵および第2暗号鍵を用いて、前記二重に暗号化された第1の暗号化データを復号して前記平文を出力する処理を更に実行するものである、としてもよい。
また、本実施形態の再暗号化システムの前記再暗号化装置において、前記演算装置が、前記第1、第2および第3の各暗号化データを前記データ作成者の利用者端末から受信し、当該再暗号化装置にて生成した第2暗号鍵を用いて、前記第1の暗号化データを二重に暗号化する処理と、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第2の暗号化データを再暗号化する処理および、前記第3の暗号化データを再暗号化した値で前記第2暗号鍵の再暗号化を行う処理とを実行するものであり、前記閲覧権限を有する利用者の利用者端末において、前記演算装置が、前記二重に暗号化された第1の暗号化データと、前記再暗号化された第2の暗号化データと、前記再暗号化された第2暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第2の暗号化データからの前記第1暗号鍵の復号、および、前記再暗号化された第2暗号鍵からの前記第2暗号鍵の復号を行い、得られた第1暗号鍵および第2暗号鍵を用いて、前記二重に暗号化された第1の暗号化データを復号して前記平文を出力する処理を実行するものである、としてもよい。
また、本実施形態の再暗号化システムの前記利用者端末において、前記演算装置が、データ作成者の第1暗号鍵にて平文を暗号化して第1の暗号化データを生成し、前記第1暗号鍵および当該第1暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化して第2および第3の暗号化データを生成し、前記生成した第1、第2、および第3の各暗号化データを再暗号化装置に送信する処理を実行するものである、としてもよい。
1 再暗号化システム
10 利用者端末
11 記憶装置
12 プログラム
13 メモリ
14 演算装置
15 入力装置
16 出力装置
17 通信装置
20 再暗号化装置
21 記憶装置
22 プログラム
23 メモリ
24 演算装置
25 通信装置
30 ネットワーク
101 秘密鍵生成部
102 鍵演算部
103 公開ID記憶部
104 鍵記憶部(秘密鍵)
105 情報生成部
106 暗号処理部
107 暗号化データ送受信部
108 一次記憶部
109 情報表示部
201 暗号化データ送受信部
202 送受信者制御部
203 変換鍵記憶部
204 暗号化データ記憶部
205 鍵演算部
206 再暗号化処理部
207 一次記憶部
208 アクセス鍵記憶部
209 二重暗号鍵記憶部

Claims (9)

  1. 複数の利用者端末とネットワークを介して接続された再暗号化装置が、
    データ作成者の第1暗号鍵にて平文を暗号化した第1の暗号化データと、前記第1暗号鍵および当該第1暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第2および第3の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第2および第3の各暗号化データを再暗号化する処理を実行し、
    前記閲覧権限を有する利用者の利用者端末が、
    前記第1の暗号化データと前記再暗号化された第2および第3の各暗号化データとを前記再暗号化装置から取得し、前記再暗号化された第2の暗号化データから、当該利用者端末が保持する自身の復号鍵によって前記第1暗号鍵を復号し、当該復号で得た第1暗号鍵により前記第1の暗号化データを復号して前記平文を出力する処理を実行する、
    ことを特徴とする再暗号化方法。
  2. 前記再暗号化装置が、
    特定利用者に関する閲覧権限の失効イベントに伴い、当該再暗号化装置にて生成した第2暗号鍵を用いて、前記第1の暗号化データを二重に暗号化する処理と、現時点で閲覧権限を有する利用者の復号鍵で復号可能に、前記第2の暗号化データを再暗号化する処理および、前記第3の暗号化データを再暗号化した値で前記第2暗号鍵の再暗号化を行う処理とを更に実行し、
    前記現時点で閲覧権限を有する利用者の利用者端末が、
    前記二重に暗号化された第1の暗号化データと、前記再暗号化された第2の暗号化データと、前記再暗号化された第2の暗号化データにより再暗号化された第2暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第2の暗号化データからの前記第1暗号鍵の復号、および、前記再暗号化された第2暗号鍵からの前記第2暗号鍵の復号を行い、得られた第1暗号鍵および第2暗号鍵を用いて、前記二重に暗号化された第1の暗号化データを復号して前記平文を出力する処理を更に実行する、
    ことを特徴とする請求項1に記載の再暗号化方法。
  3. 前記再暗号化装置が、
    前記第1、第2および第3の各暗号化データを前記データ作成者の利用者端末から受信し、当該再暗号化装置にて生成した第2暗号鍵を用いて、前記第1の暗号化データを二重に暗号化する処理と、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第2の暗号化データを再暗号化する処理および、前記第3の暗号化データを再暗号化した値で前記第2暗号鍵の再暗号化を行う処理とを実行し、
    前記閲覧権限を有する利用者の利用者端末が、
    前記二重に暗号化された第1の暗号化データと、前記再暗号化された第2の暗号化データと、前記再暗号化された第2暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第2の暗号化データからの前記第1暗号鍵の復号、および、前記再暗号化された第2暗号鍵からの前記第2暗号鍵の復号を行い、得られた第1暗号鍵および第2暗号鍵を用いて、前記二重に暗号化された第1の暗号化データを復号して前記平文を出力する処理を実行する、
    ことを特徴とする請求項1に記載の再暗号化方法。
  4. 前記利用者端末が、
    データ作成者の第1暗号鍵にて平文を暗号化して第1の暗号化データを生成し、
    前記第1暗号鍵および当該第1暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化して第2および第3の暗号化データを生成
    し、
    前記生成した第1、第2、および第3の各暗号化データを再暗号化装置に送信する処理を実行する、
    ことを特徴とする請求項1に記載の再暗号化方法。
  5. 複数の利用者端末と通信する通信装置と、
    データ作成者の第1暗号鍵にて平文を暗号化した第1の暗号化データと、前記第1暗号鍵および当該第1暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第2および第3の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第2および第3の各暗号化データを再暗号化する処理を実行する演算装置と、
    を備えた再暗号化装置と、
    前記再暗号化装置と通信する通信装置と、
    前記第1の暗号化データと前記再暗号化された第2および第3の各暗号化データとを前記再暗号化装置から取得し、前記再暗号化された第2の暗号化データから、当該利用者端末が保持する自身の復号鍵によって前記第1暗号鍵を復号し、当該復号で得た第1暗号鍵により前記第1の暗号化データを復号して前記平文を出力する処理を実行する演算装置と、
    を備えた利用者端末と、
    を含むことを特徴とする再暗号化システム。
  6. 前記再暗号化装置において、
    前記演算装置が、
    特定利用者に関する閲覧権限の失効イベントに伴い、当該再暗号化装置にて生成した第2暗号鍵を用いて、前記第1の暗号化データを二重に暗号化する処理と、現時点で閲覧権限を有する利用者の復号鍵で復号可能に、前記第2の暗号化データを再暗号化する処理および、前記第3の暗号化データを再暗号化した値で前記第2暗号鍵の再暗号化を行う処理とを更に実行するものであり、
    前記現時点で閲覧権限を有する利用者の利用者端末において、
    前記演算装置が、
    前記二重に暗号化された第1の暗号化データと、前記再暗号化された第2の暗号化データと、前記再暗号化された第2の暗号化データにより再暗号化された第2暗号鍵とを、前記再暗号化装置から取得し、当該利用者端末が保持する復号鍵によって、前記再暗号化された第2の暗号化データからの前記第1暗号鍵の復号、および、前記再暗号化された第2暗号鍵からの前記第2暗号鍵の復号を行い、得られた第1暗号鍵および第2暗号鍵を用いて、前記二重に暗号化された第1の暗号化データを復号して前記平文を出力する処理を更に実行するものである、
    ことを特徴とする請求項5に記載の再暗号化システム。
  7. 前記再暗号化装置において、
    前記演算装置が、
    前記第1、第2および第3の各暗号化データを前記データ作成者の利用者端末から受信し、当該再暗号化装置にて生成した第2暗号鍵を用いて、前記第1の暗号化データを二重に暗号化する処理と、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第2の暗号化データを再暗号化する処理および、前記第3の暗号化データを再暗号化した値で前記第2暗号鍵の再暗号化を行う処理とを実行するものであり、
    前記閲覧権限を有する利用者の利用者端末において、
    前記演算装置が、
    前記二重に暗号化された第1の暗号化データと、前記再暗号化された第2の暗号化データと、前記再暗号化された第2暗号鍵とを、前記再暗号化装置から取得し、当該利用者端
    末が保持する復号鍵によって、前記再暗号化された第2の暗号化データからの前記第1暗号鍵の復号、および、前記再暗号化された第2暗号鍵からの前記第2暗号鍵の復号を行い、得られた第1暗号鍵および第2暗号鍵を用いて、前記二重に暗号化された第1の暗号化データを復号して前記平文を出力する処理を実行するものである、
    ことを特徴とする請求項5に記載の再暗号化システム。
  8. 前記利用者端末において、
    前記演算装置が、
    データ作成者の第1暗号鍵にて平文を暗号化して第1の暗号化データを生成し、
    前記第1暗号鍵および当該第1暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化して第2および第3の暗号化データを生成し、
    前記生成した第1、第2、および第3の各暗号化データを再暗号化装置に送信する処理を実行するものである、
    ことを特徴とする請求項5に記載の再暗号化システム。
  9. 複数の利用者端末と通信する通信装置と、
    データ作成者の第1暗号鍵にて平文を暗号化した第1の暗号化データと、前記第1暗号鍵および当該第1暗号鍵から所定アルゴリズムで生成される所定データを可換性の暗号化アルゴリズムでそれぞれ暗号化した第2および第3の暗号化データとを、前記データ作成者の利用者端末から受信し、前記平文の閲覧権限を有する利用者の復号鍵で復号可能に、前記第2および第3の各暗号化データを再暗号化する処理を実行し、前記第1の暗号化データと前記再暗号化された第2および第3の各暗号化データとを前記利用者端末に送信する演算装置と、
    を備えることを特徴とする再暗号化装置。
JP2015013107A 2015-01-27 2015-01-27 再暗号化方法、再暗号化システム、および再暗号化装置 Expired - Fee Related JP6302851B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015013107A JP6302851B2 (ja) 2015-01-27 2015-01-27 再暗号化方法、再暗号化システム、および再暗号化装置
CN201510850048.6A CN105827585B (zh) 2015-01-27 2015-11-27 再加密方法、再加密系统以及再加密装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015013107A JP6302851B2 (ja) 2015-01-27 2015-01-27 再暗号化方法、再暗号化システム、および再暗号化装置

Publications (2)

Publication Number Publication Date
JP2016139894A JP2016139894A (ja) 2016-08-04
JP6302851B2 true JP6302851B2 (ja) 2018-03-28

Family

ID=56513489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015013107A Expired - Fee Related JP6302851B2 (ja) 2015-01-27 2015-01-27 再暗号化方法、再暗号化システム、および再暗号化装置

Country Status (2)

Country Link
JP (1) JP6302851B2 (ja)
CN (1) CN105827585B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018057479A1 (en) * 2016-09-21 2018-03-29 Mastercard International Incorporated Method and system for double anonymization of data
KR102018960B1 (ko) * 2017-12-19 2019-09-05 유재욱 이중 패킹을 이용한 코드 난독화
CN110909316B (zh) * 2019-11-14 2023-05-09 武汉正维电子技术有限公司 一种单片机软件的加密保护方法及存储介质
CN112907268A (zh) * 2019-12-04 2021-06-04 北京京东尚科信息技术有限公司 归因方法、装置、设备及介质
CN113645183B (zh) * 2021-06-21 2023-08-15 苏州工业园区服务外包职业学院 数据加密传输方法、系统、计算机设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9704159B2 (en) * 2009-05-15 2017-07-11 Entit Software Llc Purchase transaction system with encrypted transaction information
CN102739604B (zh) * 2011-03-31 2016-09-28 中兴通讯股份有限公司 媒体消息安全传输的方法和系统
US8769705B2 (en) * 2011-06-10 2014-07-01 Futurewei Technologies, Inc. Method for flexible data protection with dynamically authorized data receivers in a content network or in cloud storage and content delivery services
JP5454960B2 (ja) * 2011-11-09 2014-03-26 株式会社東芝 再暗号化システム、再暗号化装置及びプログラム
CN102629940A (zh) * 2012-03-19 2012-08-08 天津书生投资有限公司 一种存储方法、系统和装置

Also Published As

Publication number Publication date
CN105827585A (zh) 2016-08-03
JP2016139894A (ja) 2016-08-04
CN105827585B (zh) 2019-01-11

Similar Documents

Publication Publication Date Title
JP7073268B2 (ja) 量子鍵配送に基づく暗号化及び復号のためのシステム及び方法
US9197410B2 (en) Key management system
JP6302851B2 (ja) 再暗号化方法、再暗号化システム、および再暗号化装置
WO2016136024A1 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
JP5047638B2 (ja) 暗号文復号権委譲システム
JP6049914B2 (ja) 暗号システム、鍵生成装置及び再暗号化装置
JP2006345261A (ja) データ処理装置
JP6058514B2 (ja) 暗号処理方法、暗号システム、およびサーバ
JPWO2018016330A1 (ja) 通信端末、サーバ装置、プログラム
JP6026017B2 (ja) データ処理システム及び暗号装置及び復号装置及びプログラム
WO2017033843A1 (ja) 検索可能暗号処理システム
JP2019102970A (ja) データ共有サーバ装置、鍵生成サーバ装置、通信端末、プログラム
JP6270683B2 (ja) 暗号システム、暗号方法、普遍再暗号化鍵生成装置及び再暗号化鍵生成装置
JP2006279269A (ja) 情報管理装置、情報管理システム、ネットワークシステム、ユーザ端末、及びこれらのプログラム
WO2015156145A1 (ja) 再暗号化方法,再暗号化システム及び再暗号化装置
KR101812311B1 (ko) 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법
JP5491713B2 (ja) 暗号化装置、暗号化プログラム及び方法
JP5945525B2 (ja) 鍵交換システム、鍵交換装置、その方法、及びプログラム
JP2018032908A (ja) 情報送信方法、情報処理方法、プログラム、復号方法、プログラム
WO2019088279A1 (ja) データ共有方法、データ共有システム、データ共有サーバ、通信端末、プログラム
KR101599996B1 (ko) 폐기가능한 id 기반 암호 서버 및 시스템
JP2014017763A (ja) 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム
JP6385721B2 (ja) 再暗号化鍵生成方法、再暗号化方法、再暗号化鍵生成システム及び再暗号化システム
Ghoubach et al. Efficient and secure data sharing with outsourced decryption and efficient revocation for cloud storage systems
JP2016225804A (ja) 情報処理装置、通信システム、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180305

R150 Certificate of patent or registration of utility model

Ref document number: 6302851

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees