JPWO2013094018A1 - 暗号化データ管理装置、暗号化データ管理方法及び暗号化データ管理プログラム - Google Patents
暗号化データ管理装置、暗号化データ管理方法及び暗号化データ管理プログラム Download PDFInfo
- Publication number
- JPWO2013094018A1 JPWO2013094018A1 JP2013549994A JP2013549994A JPWO2013094018A1 JP WO2013094018 A1 JPWO2013094018 A1 JP WO2013094018A1 JP 2013549994 A JP2013549994 A JP 2013549994A JP 2013549994 A JP2013549994 A JP 2013549994A JP WO2013094018 A1 JPWO2013094018 A1 JP WO2013094018A1
- Authority
- JP
- Japan
- Prior art keywords
- encrypted data
- key
- vector
- key information
- user
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 133
- 238000013523 data management Methods 0.000 title claims abstract description 103
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 238000012545 processing Methods 0.000 claims abstract description 96
- 239000013598 vector Substances 0.000 claims description 94
- 230000005540 biological transmission Effects 0.000 claims description 55
- 238000004891 communication Methods 0.000 claims description 37
- 238000007726 management method Methods 0.000 claims description 32
- 238000013500 data storage Methods 0.000 abstract description 63
- 238000004364 calculation method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001172 regenerating effect Effects 0.000 description 2
- OVSKIKFHRZPJSS-UHFFFAOYSA-N 2,4-D Chemical compound OC(=O)COC1=CC=C(Cl)C=C1Cl OVSKIKFHRZPJSS-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
Description
ペアリングを用いた高機能な公開鍵暗号方式として、非特許文献1,2に記載された高い安全性を持つ暗号方式(以下、関数型暗号方式と呼ぶ)がある。関数型暗号方式は、従来の暗号とは異なり、復号が可能なユーザ(秘密鍵)を複数指定した暗号化を1つの公開鍵で行うことができる。
秘密鍵を失効させる失効方式としては、特許文献1,2に記載された方式がある。
特許文献2に記載された失効方式を関数型暗号方式に適用した場合も同様に、失効した秘密鍵で復号できるように暗号化したデータを再暗号化しなければならない。
暗号化データに設定された属性情報及び鍵情報と、秘密鍵に設定された属性情報及び鍵情報とが対応していない場合、前記暗号化データを前記秘密鍵で復号できない暗号化方式において、前記暗号化データを管理する暗号化データ管理装置であり、
属性情報が設定された暗号化データを記憶装置から取得するデータ取得部と、
前記データ取得部が取得した前記暗号化データに設定された前記属性情報を有するユーザに、秘密鍵が失効しているユーザが含まれるか否か判定する失効判定部と、
秘密鍵が失効しているユーザが含まれると前記失効判定部に判定されたか否かによって、異なる値を前記鍵情報として前記暗号化データに設定する鍵情報設定部と、
前記鍵情報設定部が鍵情報を設定した暗号化データをユーザ端末へ送信するデータ送信部と
を備えることを特徴とする。
実施の形態1では、非特許文献1に記載された関数型暗号方式において、秘密鍵の失効方式を実現する方法を説明する。
非特許文献1に記載された関数型暗号方式には、Setupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズム、Decアルゴリズムがある。
Setupアルゴリズムでは、双対ペアリングベクトル空間のパラメータparamと、ペアリング演算で関連付けられた双対正規直交基底である基底B及び基底B*とが生成される。そして、パラメータparamと基底Bとが公開パラメータpkとされ、基底B*がマスター秘密鍵skとされる。
なお、基底Bは、基底ベクトルb1,b2,...,bn+2を有し、基底B*は、基底ベクトルb* 1,b* 2,...,b* n+2を有する。つまり、基底B,B*は、それぞれのn+2個(nは1以上の整数)の基底ベクトルを有する。
KeyGenアルゴリズムでは、式1に示すように、マスター秘密鍵skに含まれる基底B*を用いて、ユーザ秘密鍵k*が生成される。
<式1>
k*:=σ(v1b* 1+...+vnb* n)+b* n+1
ここで、σは、乱数値である。v1,...,vnは、ユーザ秘密鍵k*が与えられるユーザの属性情報等である。
Encアルゴリズムでは、式2に示すように、公開パラメータpkに含まれる基底Bを用いて、暗号化データcの要素c1が生成される。
<式2>
c1:=ω(x1b1+...+xnbn)+ζbn+1+φbn+2
ここで、ω,ζ,φは、乱数値である。x1,...,xnは、暗号化データcを復号可能なユーザの属性情報等である。
また、Encアルゴリズムでは、式3に示すように、公開パラメータpkに含まれるパラメータparamを用いて、暗号化データcの要素c2が生成される。
<式3>
c2:=e(g,g)ζ・m
ここで、gは、パラメータparamに含まれる情報であり、双対ペアリングベクトル空間を構成する群Gの要素である。mは、メッセージである。e(g,g)は、要素gと要素gとについてのペアリング演算である。
Decアルゴリズムでは、式4に示す計算が実行され、暗号化データcがユーザ秘密鍵k*で復号されて、m’が抽出される。
<式4>
m’:=c2/e(c1,k*)
ここで、e(c1,k*)は、要素c1とユーザ秘密鍵k*とについてのペアリング演算である。
属性情報等(v1,...,vn)と属性情報等(x1,...,xn)とが対応するとは、Σi=1 nvi・xi=0となることである。
式3に示すように、c2:=e(g,g)ζ・mであるから、式4の計算を実行すれば、Σi=1 nvi・xi=0の場合には、m’=mとなる。
暗号処理システム10は、非特許文献1,2等に記載された関数型暗号方式に基づく暗号処理を実現する。暗号処理システム10は、複数のユーザ端末100、暗号化データ管理装置200、暗号化データ記憶装置300、鍵生成装置400を備える。各ユーザ端末100、暗号化データ管理装置200、暗号化データ記憶装置300、鍵生成装置400は、それぞれ、インターネット等のネットワーク500を介して接続されている。
ユーザ端末100は、ユーザが使用する端末であり、データの暗号化、復号を行う。ユーザ端末100は、暗号化データ生成部110、データ送信部120、データ受信部130、復号部140、鍵管理部150を備える。
暗号化データ管理装置200は、ユーザ端末100と暗号化データ記憶装置300との間で、暗号化データの管理をする。暗号化データ管理装置200は、データ受信部210(データ取得部)、失効判定部220、鍵情報設定部230、データ送信部240、失効情報管理部250、鍵管理部260を備える。
暗号化データ記憶装置300は、暗号化データを記憶する。暗号化データ記憶装置300は、データ受信部310、データ操作部320、データ送信部330、暗号化データ管理部340を備える。
鍵生成装置400は、ユーザ秘密鍵k*、マスター秘密鍵sk、公開パラメータpkを生成する。鍵生成装置400は、指示受信部410、鍵生成部420、鍵送信部430、マスター鍵記憶部440を備える。
また、暗号化データ登録処理と暗号化データ取得処理とには、3つの前提条件がある。
そこで、3つの前提条件を説明した上で、暗号化データ登録処理と、暗号化データ取得処理とを説明する。
ユーザ端末100が、関数型暗号方式におけるユーザ秘密鍵k*を取得している必要がある。
鍵生成装置400の指示受信部410は、ユーザ端末100等から鍵の生成指示を受信する。すると、鍵生成装置400の鍵生成部420は、処理装置により、Setupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成し、マスター鍵記憶部440に記憶する。また、鍵生成部420は、処理装置により、KeyGenアルゴリズムを実行して、マスター秘密鍵skに含まれる基底B*を用いて、ユーザ秘密鍵k*を生成する。
そして、鍵送信部430は、公開パラメータpkとユーザ秘密鍵k*とをユーザ端末100へ送信する。ユーザ端末100のデータ受信部130は、公開パラメータpkとユーザ秘密鍵k*とを受信して、鍵管理部150に記憶する。また、鍵送信部430は、公開パラメータpkを暗号化データ管理装置200へ送信する。暗号化データ管理装置200のデータ受信部210は、公開パラメータpkを受信して、鍵管理部260に記憶する。
なお、Setupアルゴリズムは一度だけ実行されればよく、ユーザ秘密鍵k*を生成する度に実行する必要はない。
また、鍵送信部430がユーザ秘密鍵k*をユーザ端末100へ送信する場合、ユーザ認証を行い、正当なユーザの端末であることを確認する。また、鍵送信部430がユーザ秘密鍵k*をユーザ端末100へ送信する場合、盗聴と改ざんを防ぐため、SSL(Secure Socket Layer)等を用いた安全な通信路を使用する。つまり、ユーザ秘密鍵k*が悪意ある第三者に不正に利用されないようにする。
<式5>
k*=σ1(v1b* 1+v2b* 2)+σ2(v3b* 3+v4b* 4)+b* 5
ここで、σ1,σ2は、乱数値である。v1,v2は、鍵情報である。ここでは、鍵情報として、新たな鍵の発行毎に値がインクリメントされる世代番号を用いる。v3,v4は、ユーザ秘密鍵k*が与えられるユーザの属性情報である。
世代番号の値をρとし、属性情報の値をαとした場合、ここでは、式6に示すようにユーザ秘密鍵k*は生成される。
<式6>
k*=σ1(ρb* 1+b* 2)+σ2(αb* 3+b* 4)+b* 5
つまり、v1:=ρ,v2:=1,v3:=α,v4:=1である。
ユーザ端末100が、ドメイン公開鍵dpkを取得している必要がある。
ドメイン公開鍵dpkとは、暗号化データ管理装置200の秘密鍵(ドメイン秘密鍵dsk)に対応する公開鍵である。なお、ドメイン秘密鍵dskとドメイン公開鍵dpkとの鍵ペアは、関数型暗号方式における鍵ペアでなく、他の公開鍵暗号方式における鍵ペアであってもよい。
鍵生成部420は、ドメイン秘密鍵dskとドメイン公開鍵dpkとの鍵ペアを生成し、鍵送信部430は、ドメイン公開鍵dpkをユーザ端末100へ送信し、ドメイン秘密鍵dskを暗号化データ管理装置200へ送信する。ユーザ端末100のデータ受信部130は、ドメイン公開鍵dpkを受信し、鍵管理部150に記憶する。また、暗号化データ管理装置200のデータ受信部210は、ドメイン公開鍵dpkを受信し、鍵管理部260に記憶する。
鍵送信部430がドメイン秘密鍵dskを暗号化データ管理装置200へ送信する場合、盗聴と改ざんを防ぐため、SSL等を用いた安全な通信路を使用する。
暗号化データ管理装置200が、失効情報を取得している必要がある。
失効情報とは、ユーザ秘密鍵k*を紛失したユーザの識別情報と、紛失したユーザ秘密鍵k*の世代番号とを示す情報である。
ユーザがユーザ秘密鍵k*を紛失した場合、ユーザ端末100のデータ送信部120は、ユーザ秘密鍵k*を紛失したユーザの識別情報と、紛失したユーザ秘密鍵k*の世代番号とを失効情報として暗号化データ管理装置200へ送信する。暗号化データ管理装置200のデータ受信部210は、失効情報を受信し、失効情報管理部250に記憶する。
なお、データ受信部210は、失効情報を受信する場合、ユーザ認証を行い、失効を届け出たユーザが本人であることを確認する。
図6は、実施の形態1に係る暗号化データ登録処理の流れを示すフローチャートである。
(S11:暗号化処理)
ユーザ端末100の暗号化データ生成部110は、Encアルゴリズムを実行して暗号化データcを生成する。
<式7>
c1:=ω1(r1b1+r2b2)+ω2(x3b3+x4b4)+ζb5+φb6
ここで、ω1,ω2,r1,r2,ζ,φは、乱数値である。x3,x4は、暗号化データcを復号可能なユーザの属性情報が設定される。
属性情報の値をαとした場合、ここでは、式8に示すように暗号化データcは生成される。
<式8>
c1:=ω1(r1b1+r2b2)+ω2(b3−αb4)+ζb5+φb6
つまり、x3:=1,x4:=−αである。
<式9>
c2:=e(g,g)ζ・m
また、暗号化データ生成部110は、要素c1に設定した属性情報が示すユーザの識別情報をユーザリストulとして生成する。
ユーザ端末100のデータ送信部120は、通信装置により、暗号化データ生成部110が生成した要素c1,c2,E(ω1r1),E(ω1r2),ulを含む暗号化データcを、暗号化データ管理装置200へ送信する。
暗号化データ管理装置200のデータ受信部210は、通信装置により、暗号化データcをユーザ端末100から受信する。暗号化データ管理装置200のデータ送信部240は、暗号化データcに関連情報rを添付して、暗号化データ記憶装置300へ送信する。なお、関連情報rとは、暗号化データcの作成者や、暗号化データcの受信日時等であり、後に暗号化データcを検索する際に利用される情報である。
暗号化データ記憶装置300のデータ受信部310は、通信装置により、暗号化データcと関連情報rとを暗号化データ管理装置200から受信する。暗号化データ記憶装置300のデータ操作部320は、暗号化データcと関連情報rとを関連付けて、暗号化データ管理部340に記憶する。
暗号化データ記憶装置300のデータ送信部330は、通信装置により、暗号化データcの記憶が成功したか否かを示す結果情報を、暗号化データ管理装置200へ送信する。
暗号化データ管理装置200のデータ受信部210は、通信装置により、結果情報を暗号化データ記憶装置300から受信する。暗号化データ管理装置200のデータ送信部240は、通信装置により、結果情報をユーザ端末100へ送信する。
ユーザ端末100のデータ受信部130は、通信装置により、結果情報を暗号化データ管理装置200から受信する。
図7は、実施の形態1に係る暗号化データ取得処理の流れを示すフローチャートである。
(S21:キーワード送信処理)
ユーザ端末100のデータ送信部120は、通信装置により、暗号化データcを特定可能なキーワードを、暗号化データ管理装置200へ送信する。
暗号化データ管理装置200のデータ受信部210は、通信装置により、キーワードをユーザ端末100から受信する。暗号化データ管理装置200のデータ送信部240は、通信装置により、キーワードを暗号化データ記憶装置300へ送信する。
暗号化データ記憶装置300のデータ受信部310は、通信装置により、キーワードを暗号化データ管理装置200から受信する。暗号化データ記憶装置300のデータ操作部320は、処理装置により、キーワードと一致する関連情報rを有する暗号化データcを暗号化データ管理部340から抽出する。
暗号化データ記憶装置300のデータ送信部330は、通信装置により、抽出した暗号化データcを暗号化データ管理装置200へ送信する。
暗号化データ管理装置200のデータ受信部210は、通信装置により、暗号化データcを暗号化データ記憶装置300から受信する。
暗号化データ管理装置200の失効判定部220は、処理装置により、暗号化データcのユーザリストulに含まれるユーザの識別情報が、失効情報管理部250が記憶する失効情報に含まれているか否か判定する。鍵情報設定部230は、処理装置により、暗号化データcの要素c1における乱数値r1,r2を、失効判定部220の判定結果に応じて異なる値に設定し直し、要素c1’を生成する。
具体的には、鍵情報設定部230は、以下のように乱数値r1,r2を設定し直す。なお、ここでは、式8に示す要素c1における乱数値r1,r2を設定し直した要素c1’を示す。
<式10>
c1’:=ω1(b1−b2)+ω2(b3−αb4)+ζb5+φb6
つまり、r1を1に設定し直し、r2を−1に設定し直す。r2を設定し直した−1は、−1×世代番号の初期値である。
なお、式11に示す計算をすることにより、式8に示す要素c1から式10に示す要素c1’を得ることができる。
<式11>
c1’:=c1−(ω1r1b1+ω1r2b2)+(ω1b1−ω1b2)
ここで、ω1r1,ω1r2は、暗号化データcの要素E(ω1r1),E(ω1r2)を、鍵管理部260に記憶したドメイン秘密鍵dskで復号することにより得られる。また、b1,b2は、公開パラメータpkに含まれる基底Bから得られる。
<式12>
c1’:=ω1(b1−ρ1b2)+ω2(b3−αb4)+ζb5+φb6
つまり、r1を1に設定し直し、r2を−ρ1に設定し直す。r2を設定し直した−ρ1は、−1×(失効したユーザ秘密鍵k*の世代番号の値+1)である。つまり、ユーザリストulにユーザAが含まれており、失効したユーザAのユーザ秘密鍵k*の世代番号として1が失効リストに含まれている場合、−ρ1は、−1×(1+1)=−2となる。
なお、式13に示す計算をすることにより、式8に示す要素c1から式12に示す要素c1’を得ることができる。
<式13>
c1’:=c1−(ω1r1b1+ω1r2b2)+(ω1b1−ω1ρ1b2)
暗号化データ管理装置200のデータ送信部240は、通信装置により、暗号化データcの要素c1を要素c1’に置き換えた暗号化データc’を、ユーザ端末100へ送信する。
ユーザ端末100の暗号化データ生成部110は、通信装置により、暗号化データc’を暗号化データ管理装置200から受信する。ユーザ端末100の復号部140は、Decアルゴリズムを実行することにより、暗号化データc’をユーザ秘密鍵k*で復号する。
ここでは、復号部140は、処理装置により、式14に示す計算を実行することにより、暗号化データc’をユーザ秘密鍵k*で復号して、メッセージm’を抽出する。
<式14>
m’:=c2/e(c1,k*)
<式15>
k*=σ1(b* 1+b* 2)+σ2(αb* 3+b* 4)+b* 5
また、S11において、暗号化データcの要素c1は、式16(=式8)に示すように生成されているとする。
<式16>
c1:=ω1(r1b1+r2b2)+ω2(b3−αb4)+ζb5+φb6
<式17>
c1’:=ω1(b1−b2)+ω2(b3−αb4)+ζb5+φb6
この場合、v1=1,v2=1,v3=α,v4=1であり、x1=1,x2=−1,x3=1,x4=−αであるから、Σi=1 4vi・xi=1−1+α−α=0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素c2に設定されたメッセージmと等しい。
つまり、ユーザ秘密鍵k*で、暗号化データcを復号することができる。
<式18>
c1’:=ω1(b1−2b2)+ω2(b3−αb4)+ζb5+φb6
この場合、ユーザ秘密鍵k*において、基底ベクトルb* 1,...,b* 4の係数に設定されたv1,...,v4は、v1=1,v2=1,v3=α,v4=1である。また、要素c1’において、基底ベクトルb1,...,b4の係数に設定されたx1,...,x4は、x1=1,x2=−2,x3=1,x4=−αであるから、Σi=1 4vi・xi=1−2+α−α≠0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素c2に設定されたメッセージmと等しくない。
つまり、失効しているユーザ秘密鍵k*では、暗号化データcを復号することはできない。
<式19>
k*=σ1(2b* 1+b* 2)+σ2(αb* 3+b* 4)+b* 5
この場合、v1=2,v2=1,v3=α,v4=1であり、x1=1,x2=−2,x3=1,x4=−αであるから、Σi=1 4vi・xi=2−2+α−α=0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素c2に設定されたメッセージmと等しい。
つまり、ユーザ秘密鍵k*を紛失した場合、ユーザ秘密鍵k*を再生成してもらうことで、暗号化データcの復号が可能となる。
<式20>
c1:=ω1(r1b1+r2b2)+ω2(b3−αb4)+ζb5+φb6
この場合、乱数値r1,r2が用いられているため、ユーザ秘密鍵k*に設定された世代番号の値がいくつであっても、Σi=1 4vi・xi≠0となり、復号できない。
したがって、実施の形態1に係る暗号処理システム10では、暗号化データ記憶装置300を第三者に委託し、暗号化データ記憶装置300から暗号化データcが漏洩する可能性がある場合であっても、安全性を保つことができる。
また、実施の形態1に係る暗号処理システム10では、ユーザ端末100と暗号化データ記憶装置300との間の処理を中継する暗号化データ管理装置200を設置する。そして、ユーザ端末100が暗号化データcを取得する場合、暗号化データ管理装置200が暗号化データ記憶装置300から暗号化データcを取得して、ユーザ端末100へ送信する。この際、暗号化データ管理装置200は、暗号化データcを復号可能なユーザにユーザ秘密鍵k*を失効したユーザが含まれるか否かに応じて、暗号化データcの世代番号を異なる値に設定し直す。具体的には、失効したユーザが含まれない場合には、世代番号の値に初期値を設定し、失効したユーザが含まれる場合には、世代番号の値に失効していない世代番号の値を設定する。
これにより、実施の形態1に係る暗号処理システム10は、暗号化データcの再暗号化をすることなく、紛失したユーザ秘密鍵k*では暗号化データcを復号できず、再生成されたユーザ秘密鍵k*では暗号化データcを復号できる状態とする。
<式21>
k*=σ(v1b* 1+v2b* 2+v3b* 3+v4b* 4)+b* 5
<式22>
c1:=ω(r1b1+r2b2+x3b3+x4b4)+ζb5+φb6
<式23>
c1:=r1b1+r2b2+ω2(x3b3+x4b4)+ζb5+φb6
<式24>
c1:=r2b2+ω2(x3b3+x4b4)+ζb5+φb6
<式25>
c1:=E(ω2(x3b3+x4b4)+ζb5+φb6)
しかし、実際には、ユーザUの所属するA会社を示す値α1、B部を示す値α2、C課を示す値α3、ユーザUを示すα4が属性情報の値として設定されたユーザ秘密鍵k*を用いることがある。例えば、式26に示すユーザ秘密鍵k*を用いることがある。なお、ここでは、世代番号の値として1を設定している。また、この場合、n=10である。
<式26>
k*=σ1(b* 1+b* 2)+σ2(α1b* 3+b* 4+α2b* 5+b* 6+α3b* 7+b* 8+α4b* 9+b* 10)+b* 11
また、A会社のB部に所属するユーザであれば誰でも復号可能であるように、A会社を示す値α1、B部を示す値α2が属性情報の値として設定された暗号化データcを用いることがある。例えば、式27に示す暗号化データcを用いることがある。
<式27>
c1:=ω1(r1b1+r2b2)+ω2(b3−α1b4+b5−α2b6)+ζb11+φb12
<式28>
c1:=ω1(b1−b2)+ω2(b3−α1b4+b5−α2b6)+ζb11+φb12
この場合、v1=1,v2=1,v3=α1,v4=1,v5=α2,v6=1,v7=α3,v8=1,v9=α4,v10=1であり、x1=1,x2=−1,x3=1,x4=−α1,x5=1,x6=−α2,x7=0,x8=0,x9=0,x10=0であるから、Σi=1 10vi・xi=σ1ω1(1−1)+σ2ω2(α1−α1+α2−α2+0+0+0+0)=0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素c2に設定されたメッセージmと等しい。
<式29>
c1:=ω1(b1−2b2)+ω2(b3−α1b4+b5−α2b6)+ζb11+φb12
なお、B部に所属する1人のユーザU1がユーザ秘密鍵k*を紛失すると、B部に所属する他のユーザU2が暗号化データcを取得する場合にも、要素c1は式28に示す要素c1’ではなく、式29に示す要素c1’に変換される。したがって、ユーザU1だけでなく、ユーザU2等のB部に所属する他のユーザもユーザ秘密鍵k*を再作成してもらわなければ、暗号化データcを復号することはできなくなる。
実施の形態2では、非特許文献2に記載された関数型暗号方式において、秘密鍵の失効方式を実現する方法を説明する。
非特許文献2に記載された関数型暗号方式には、非特許文献1に記載された関数型暗号方式と同様に、Setupアルゴリズム、KeyGenアルゴリズム、Encアルゴリズム、Decアルゴリズムがある。
Setupアルゴリズムでは、双対ペアリングベクトル空間のパラメータparamと、t=0,...,d(dは1以上の整数)の各tについての正規直交基底である基底Bt及び基底B* tとが生成される。そして、パラメータparamと基底Btとが公開パラメータpkとされ、基底B* tがマスター秘密鍵skとされる。
なお、基底B0は、基底ベクトルb0,1,b0,2,...,b0,5を有し、基底B* 0は、基底ベクトルb* 0,1,b* 0,2,...,b* 0,5を有する。つまり、基底B0,B* 0は、それぞれ5個の基底ベクトルを有する。また、t=1,...,dの各tについての基底Btは、基底ベクトルbt,1,bt,2,...,bt,3nt+1を有し、基底B* tは、基底ベクトルb* t,1,b* t,2,...,b* t,3nt+1を有する。つまり、基底Bt,B* tは、それぞれ3nt+1個(ntは1以上の整数)の基底ベクトルを有する。
但し、厳密には、係数として必ず0が割り当てられる基底ベクトルは公開パラメータpkやマスター秘密鍵skに含める必要がない。そのため、公開パラメータpkに含める基底B0は、基底ベクトルb0,1,b0,3,b0,5のみを有し、マスター秘密鍵skに含める基底B* 0は、基底ベクトルb* 0,1,b* 0,3,b* 0,4のみを有するとしてもよい。また、t=1,...,dの各tについて、公開パラメータpkに含める基底Btは、基底ベクトルbt,1,,...,bt,nt,bt,3nt+1のみを有し、マスター秘密鍵skに含める基底B* tは、基底ベクトルb* t,1,...,b* t,nt+1,b* t,2nt+1,...,b* t,3ntのみを有するとしてもよい。
KeyGenアルゴリズムでは、式30に示すように、マスター秘密鍵skに含まれる基底B* tを用いて、要素k* 0と、t=1,...,dの各tについての要素k* tとを有するユーザ秘密鍵k*が生成される。
<式30>
k* 0:=(δ,0,1,φ0,0)B* 0
k* t:=(δv→ t,0nt,φ→ t,0)B* t
ここで、δ,φ0,φ→ t:=φt,1,...,φt,ntは、乱数値である。v→ t:=vt,1,...,vt,ntは、ユーザ秘密鍵k*が与えられるユーザの属性情報等である。
また、(z1,...,zN)B* t:=Σi=1 Nzib* t,iである。つまり、k* 0:=(δ,0,1,φ0,0)B* 0:=δb* 0,1+b* 0,3+φ0b* 0,4である。また、k* t:=(δv→ t,0nt,φ→ t,0)B* t:=Σi=1 ntδvt,ib* t,i+Σi=1 ntφt,ib* t,2nt+iである。
Encアルゴリズムでは、式31に示すように、公開パラメータpkに含まれる基底Bを用いて、暗号化データcの要素c0と、t=1,...,L(Lは、d以下の整数)の各tについての要素ctとが生成される。
<式31>
c0:=(−s0,0,ζ,0,η0)B0
ct:=(ste→ t,1+θtx→ t,0nt,0nt,ηt)Bt
ここで、e→ t,1は、nt個の要素を持ち、先頭要素が1で残りの要素が0であるベクトルである。また、s0=Σi=1 Lsiである。ζ,θt,η0,ηtは、乱数値である。xt,1,...,xt,ntは、暗号化データcを復号可能なユーザの属性情報等である。
また、(z1,...,zN)Bt:=Σi=1 Nzibt,iである。つまり、c0:=(−s0,0,ζ,0,η0)B0:=−s0b0,1+ζb0,3+η0b0,5である。また、ct:=(ste→ t,1+θtx→ t,0nt,0nt,ηt)Bt:=Σi=1 nt(ste→ t,1+θtxt,i)bt,i+ηtb3nt+1である。
<式32>
cd+1:=e(g,g)ζ・m
ここで、gは、パラメータparamに含まれる情報であり、双対ペアリングベクトル空間を構成する群Gの要素である。mは、メッセージである。e(g,g)は、要素gと要素gとについてのペアリング演算である。
Decアルゴリズムでは、式33に示す計算が実行され、暗号化データcがユーザ秘密鍵k*で復号されて、m’が抽出される。
<式33>
m’:=cd+1/(e(c0,k* 0)・Πt=1 Le(ct,k* t))
ここで、e(c0,k* 0)は、要素c0とユーザ秘密鍵k* 0とについてのペアリング演算であり、e(ct,k* t)は、要素ctとユーザ秘密鍵k* tとについてのペアリング演算である。
属性情報等(v→ t)と属性情報等(x→ t)とが対応するとは、v→ t・x→ t=Σi=1 ntvt,i・xt,i=0となることである。
そして、e(c0,k* 0)・Πt=1 Le(ct,k* t)=e(g,g)Y3となり、Σi=1 Lv→ i・x→ i=0であれば、Y3=−s0+ζ+Σi=1 L(si)である。そして、上述した通り、s0=Σi=1 Lsiであるから、Y3=ζである。つまり、e(c0,k* 0)・Πt=1 Le(ct,k* t)=e(g,g)ζである。
式32に示すように、cd+1:=e(g,g)ζ・mであるから、式33の計算を実行すれば、Σi=1 Lv→ i・x→ i=0の場合には、m’=mとなる。
<式34>
k* 0:=(δ,0,1,φ0,0)B* 0
k* 1:=(δv→ 1,0n1,φ→ 1,0)B* 1
k* 2:=(δv→ 2,0n2,φ→ 2,0)B* 2
ここで、δ,φ0,φ→ 1,φ→ 2は、乱数値である。v→ 1:=v1,1,v1,2は、鍵情報である。ここでは実施の形態1と同様に、鍵情報として、新たな鍵の発行毎に値がインクリメントされる世代番号を用いる。v→ 2:=v2,1,v2,2は、ユーザ秘密鍵k*が与えられるユーザの属性情報等である。
世代番号の値をρとし、属性情報の値をαとした場合、ここでは、式35に示すようにユーザ秘密鍵k*は生成される。
<式35>
k* 0:=(δ,0,1,φ0,0)B* 0
k* 1:=(δ(ρ,1),0n1,φ→ 1,0)B* 1
k* 2:=(δ(α,1),0n2,φ→ 2,0)B* 2
つまり、v1,1:=ρ,v1,2:=1,v2,1:=α,v2,2:=1である。
図6を用いて、実施の形態2に係る暗号化データ登録処理について、実施の形態1に係る暗号化データ登録処理と異なる部分を中心に説明する。
(S11:暗号化処理)
ユーザ端末100の暗号化データ生成部110は、Encアルゴリズムを実行して暗号化データcを生成する。
<式36>
c0:=(−s0,0,ζ,0,η0)B0
c1:=(s1e→ 1,1+θ1(1,r),0n1,0n1,η1)B1
c2:=(s2e→ 2,1+θ2x→ 2,0n2,0n2,η2)B2
ここで、s0=s1+s2である。ζ,θ1,θ2,η0,η1,η2,rは、乱数値である。x2,1,x2,2は、暗号化データcを復号可能なユーザの属性情報等である。
属性情報の値をαとした場合、ここでは、式37に示すように暗号化データcは生成される。
<式37>
c0:=(−s0,0,ζ,0,η0)B0
c1:=(s1e→ 1,1+θ1(1,r),0n1,0n1,η1)B1
c2:=(s2e→ 2,1+θ2(1,−α),0n2,0n2,η2)B2
つまり、x2,1:=1,x2,2:=−αである。
<式38>
cd+1:=e(g,g)ζ・m
また、暗号化データ生成部110は、要素c1に設定した属性情報が示すユーザの識別情報をユーザリストulとして生成する。
データ送信部120は、通信装置により、暗号化データ生成部110が生成した要素c0,c1,c2,cd+1,E(r),E(r),ulを含む暗号化データcを、暗号化データ管理装置200へ送信する。
図7を用いて、実施の形態2に係る暗号化データ取得処理について、実施の形態1に係る暗号化データ取得処理と異なる部分を中心に説明する。
S21からS24までの処理は、実施の形態1と同じである。
S25も、原則として実施の形態1と同様である。しかし、暗号化データcの要素c1における乱数値rを設定し直す方法が異なる。
具体的には、鍵情報設定部230は、以下のように乱数値rを設定し直す。なお、ここでは、式37に示す要素c1における乱数値rを設定し直した要素c1’を示す。
<式39>
c1’:=(s1e→ 1,1+θ1(1,−1),0n1,0n1,η1)B1
つまり、rを−1に設定し直す。rを設定し直した−1は、−1×世代番号の初期値である。
なお、式40に示す計算をすることにより、式37に示す要素c1から式39に示す要素c1’を得ることができる。
<式40>
c1’:=c1−θ1rb1,2−θ1b1,2
ここで、r,θ1は、暗号化データcの要素E(r),E(θ1)を、鍵管理部260に記憶したドメイン秘密鍵dskで復号することにより得られる。また、b1,1,b1,2は、公開パラメータpkに含まれる基底Bから得られる。
<式41>
c1’:=(s1e→ 1,1+θ1(1,−ρ1),0n1,0n1,η1)B1
つまり、rを−ρ1に設定し直す。rを設定し直した−ρ1は、−1×(失効したユーザ秘密鍵k*の世代番号の値+1)である。つまり、ユーザリストulにユーザAが含まれており、失効したユーザAのユーザ秘密鍵k*の世代番号として1が失効リストに含まれている場合、−ρ1は、−1×(1+1)=−2となる。
なお、式42に示す計算をすることにより、式37に示す要素c1から式41に示す要素c1’を得ることができる。
<式42>
c1’:=c1−θ1rb1,2−θ1ρ1b1,2
ここでは、復号部140は、処理装置により、式43に示す計算を実行することにより、暗号化データc’をユーザ秘密鍵k*で復号して、メッセージm’を抽出する。
<式43>
m’:=cd+1/(e(c0,k* 0)・Πt=1 Le(ct,k* t))
<式44>
k* 0:=(δ,0,1,φ0,0)B* 0
k* 1:=(δ(1,1),0n1,φ→ 1,0)B* 1
k* 2:=(δ(α,1),0n2,φ→ 2,0)B* 2
また、S11において、暗号化データcの要素c1は、式45(=式37)に示すように生成されているとする。
<式45>
c0:=(−s0,0,ζ,0,η0)B0
c1:=(s1e→ 1,1+θ1(1,r),0n1,0n1,η1)B1
c2:=(s2e→ 2,1+θ2(1,−α),0n2,0n2,η2)B2
<式46>
c1’:=(s1e→ 1,1+θ1(1,−1),0n1,0n1,η1)B1
この場合、ユーザ秘密鍵k*において、基底B* 1の基底ベクトルb* 1,1,b* 1,2の係数に設定されたv1,1,v1,2は、v1,1=1,v1,2=1である。また、要素c1’において、基底B1の基底ベクトルb1,1,b1,2の係数に設定されたx1,1,x1,2は、x1,1=1,x1,2=−1である。そのため、v→ 1・x→ 1=Σi=1 2v1,i・x1,i=1−1=0となる。また、ユーザ秘密鍵k*において、基底B* 2の基底ベクトルb* 2,1,b* 2,2の係数に設定されたv2,1,v2,2は、v2,1=α,v2,2=1である。また、要素c1’において、基底B2の基底ベクトルb2,1,b2,2の係数に設定されたx2,1,x2,2は、x2,1=1,x2,2=−αである。そのため、v→ 2・x→ 2=Σi=1 2v2,i・x2,i=α−α=0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素cd+1に設定されたメッセージmと等しい。
つまり、ユーザ秘密鍵k*で、暗号化データcを復号することができる。
<式47>
c1’:=(s1e→ 1,1+θ1(1,−2),0n1,0n1,η1)B1
この場合、v1,1=1,v1,2=1であり、x1,1=1,x1,2=−2であるから、v→ 1・x→ 1=Σi=1 2v1,i・x1,i=1−2≠0となる。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素cd+1に設定されたメッセージmと等しくない。
つまり、失効しているユーザ秘密鍵k*では、暗号化データcを復号することはできない。
<式48>
k* 0:=(δ,0,1,φ0,0)B* 0
k* 1:=(δ(2,1),0n1,φ→ 1,0)B* 1
k* 2:=(δ(α,1),0n2,φ→ 2,0)B* 2
この場合、v1,1=2,v1,2=1であり、x1,1=1,x1,2=−2であるから、v→ 1・x→ 1=Σi=1 2v1,i・x1,i=2−2=0となる。また、v→ 2・x→ 2=Σi=1 2v2,i・x2,i=α−α=0である。したがって、S26で抽出されたメッセージm’は、S11で暗号化データcの要素cd+1に設定されたメッセージmと等しい。
つまり、ユーザ秘密鍵k*を紛失した場合、ユーザ秘密鍵k*を再生成してもらうことで、暗号化データcの復号が可能となる。
<式49>
c1:=(s1e→ 1,1+θ1(1,r),0n1,0n1,η1)B1
この場合、乱数値rが用いられているため、ユーザ秘密鍵k*に設定された世代番号の値がいくつであっても、Σi=1 2v1,i・x1,i≠0となり、復号できない。
<式50>
c1:=(s1e→ 1,1+(1,r),0n1,0n1,η1)B1
<式51>
c1:=E(s1e→ 1,1,0n1,0n1,η1)B1
実施の形態1では、暗号化データcの要素c1における鍵情報が設定される基底ベクトルに乱数値r1,r2を設定すること等により、ユーザ端末100が直接暗号化データ記憶装置300から暗号化データcを取得した場合の安全性を保っていた。同様に、実施の形態2では、暗号化データcの要素c1における鍵情報が設定される基底に乱数値rを設定すること等により、ユーザ端末100が直接暗号化データ記憶装置300から暗号化データcを取得した場合の安全性を保っていた。
実施の形態3では、暗号化データcの設定を簡略化しつつ、暗号化データ記憶装置300へのアクセス制御を行うことにより、ユーザ端末100が直接暗号化データ記憶装置300から暗号化データcを取得しようとした場合の安全性を保つ方法について説明する。
実施の形態3では、実施の形態1に係る処理を応用した場合について説明するが、実施の形態2に係る処理を応用した場合についても同様に実現可能である。
実施の形態3に係る暗号化データ管理装置200は、図3に示す実施の形態1に係る暗号化データ管理装置200の機能に加え、認証処理部270を備える。
実施の形態3に係る暗号化データ記憶装置300は、図4に示す実施の形態1に係る暗号化データ記憶装置300の機能に加え、認証処理部350を備える。
但し、実施の形態1では公開パラメータpkに含まれていた基底Bの基底ベクトルb1,b2は、公開パラメータpkから除かれ、鍵生成装置400から暗号化データ管理装置200へのみ送信される。なお、この際、盗聴と改ざんを防ぐため、SSL等を用いた安全な通信路が使用される。
図10は、実施の形態3に係る暗号化データ登録処理の流れを示すフローチャートである。
(S31:暗号化処理)
ユーザ端末100の暗号化データ生成部110は、図6のS11と同様に、Encアルゴリズムを実行して暗号化データcを生成する。
<式52>
c1:=ω(x3b3+x4b4)+ζb5+φb6
ここで、ω,ζ,φは、乱数値である。x3,x4は、暗号化データcを復号可能なユーザの属性情報が設定される。
属性情報の値をαとした場合、ここでは、式53に示すように暗号化データcは生成される。
<式53>
c1:=ω(b3−αb4)+ζb5+φb6
つまり、x3:=1,x4:=−αである。
ユーザ端末100のデータ送信部120は、通信装置により、認証情報として、ユーザの識別情報とパスワードとを暗号化データ管理装置200へ送信する。
暗号化データ管理装置200のデータ受信部210は、通信装置により、ユーザの識別情報とパスワードとをユーザ端末100から受信する。
すると、暗号化データ管理装置200の認証処理部270は、ユーザの識別情報とパスワードとに基づき、ユーザの認証を行う。例えば、認証処理部270は、ユーザ毎に識別情報とパスワードとを予め記憶しておき、受信した識別情報及びパスワードと、記憶された識別情報及びパスワードとが一致するか否かにより認証する。認証処理部270は、認証に成功した場合、処理をS34へ進め、認証に失敗した場合、処理を終了する。
(S34:第1データ送信処理)
ユーザ端末100のデータ送信部120は、図6のS12と同様に、暗号化データcを暗号化データ管理装置200へ送信する。
暗号化データ管理装置200のデータ受信部210は、通信装置により、暗号化データcをユーザ端末100から受信する。すると、データ送信部240は、認証情報として、暗号化データ管理装置200の識別情報とパスワードとを暗号化データ記憶装置300へ送信する。
暗号化データ記憶装置300のデータ受信部310は、通信装置により、暗号化データ管理装置200の識別情報とパスワードとをユーザ端末100から受信する。
すると、暗号化データ記憶装置300の認証処理部350は、暗号化データ管理装置200の識別情報とパスワードとに基づき認証処理を行う。例えば、認証処理部350は、暗号化データ管理装置200の識別情報とパスワードとを予め記憶しておき、受信した識別情報及びパスワードと、記憶された識別情報及びパスワードとが一致するか否かにより認証する。認証処理部350は、認証に成功した場合、処理をS37へ進め、認証に失敗した場合、処理を終了する。
暗号化データ管理装置200のデータ送信部240は、暗号化データcに関連情報rを添付して、暗号化データ記憶装置300へ送信する。
図11は、実施の形態3に係る暗号化データ取得処理の流れを示すフローチャートである。
(S51:第1認証情報送信処理)
ユーザ端末100のデータ送信部120は、通信装置により、認証情報として、ユーザの識別情報とパスワードとを暗号化データ管理装置200へ送信する。
暗号化データ管理装置200のデータ受信部210は、通信装置により、ユーザの識別情報とパスワードとをユーザ端末100から受信する。
すると、暗号化データ管理装置200の認証処理部270は、ユーザの識別情報とパスワードとに基づき、ユーザの認証を行う。例えば、認証処理部270は、S33と同じ方法により認証を行う。認証処理部270は、認証に成功した場合、処理をS53へ進め、認証に失敗した場合、処理を終了する。
ユーザ端末100のデータ送信部120は、通信装置により、暗号化データcを特定可能なキーワードを、暗号化データ管理装置200へ送信する。
暗号化データ管理装置200のデータ受信部210は、通信装置により、キーワードをユーザ端末100から受信する。すると、データ送信部240は、認証情報として、暗号化データ管理装置200の識別情報とパスワードとを暗号化データ記憶装置300へ送信する。
暗号化データ記憶装置300のデータ受信部310は、通信装置により、暗号化データ管理装置200の識別情報とパスワードとをユーザ端末100から受信する。
すると、暗号化データ記憶装置300の認証処理部350は、暗号化データ管理装置200の識別情報とパスワードとに基づき認証処理を行う。例えば、認証処理部350は、S36と同じ方法より認証する。認証処理部350は、認証に成功した場合、処理をS56へ進め、認証に失敗した場合、処理を終了する。
暗号化データ管理装置200のデータ送信部240は、通信装置により、キーワードを暗号化データ記憶装置300へ送信する。
暗号化データ管理装置200のデータ受信部210は、通信装置により、暗号化データcを暗号化データ記憶装置300から受信する。
すると、暗号化データ管理装置200の認証処理部270は、処理装置により、S52で受信したユーザの識別情報が、暗号化データcのユーザリストulに含まれているか否かを判定する。認証処理部270は、含まれている場合、処理をS60へ進め、含まれていない場合、処理を終了する。
暗号化データ管理装置200の失効判定部220は、処理装置により、暗号化データcのユーザリストulに含まれるユーザの識別情報が、失効情報管理部250が記憶する失効情報に含まれているか否か判定する。鍵情報設定部230は、処理装置により、暗号化データcの要素c1に、失効判定部220の判定結果に応じて異なる値に設定し、要素c1’を生成する。
具体的には、鍵情報設定部230は、以下のように要素c1に値を設定する。なお、ここでは、式53に示す要素c1に値を設定した要素c1’を示す。
<式54>
c1’:=ω1(b1−b2)+ω2(b3−αb4)+ζb5+φb6
つまり、基底ベクトルb1の係数に1を設定し、基底ベクトルb2の係数に−1を設定する。基底ベクトルb2の係数に設定し直した−1は、−1×世代番号の初期値である。
<式55>
c1’:=c1+(ω1b1−ω1b2)
<式56>
c1’:=ω1(b1−ρ1b2)+ω2(b3−αb4)+ζb5+φb6
つまり、基底ベクトルb1の係数に1を設定し、基底ベクトルb2の係数に−ρ1を設定する。基底ベクトルb2の係数に設定した−ρ1は、−1×(失効したユーザ秘密鍵k*の世代番号の値+1)である。
なお、式57に示す計算をすることにより、式53に示す要素c1から式56に示す要素c1’を得ることができる。
<式57>
c1’:=c1+(ω1b1−ω1ρ1b2)
実施の形態2に係る処理を応用した場合、S31で生成される要素c1は式58のようになる。
<式58>
c1:=(s1e→ 1,1,0n1,0n1,η1)B1
また、実施の形態2に係る処理を応用した場合、S60で生成される要素c1’は式39や式41のようになる。
また、実施の形態2では公開パラメータpkに含まれていた基底B1は、公開パラメータpkから除かれ、鍵生成装置400から暗号化データ管理装置200へのみ送信される。なお、この際、盗聴と改ざんを防ぐため、SSL等を用いた安全な通信路が使用される。
例えば、実施の形態1では、属性情報がαであれば、ユーザ秘密鍵k*については、基底ベクトルb* 3の係数としてα、基底ベクトルb* 4の係数として1が設定された。また、暗号化データcの要素c1については、基底ベクトルb3の係数として1、基底ベクトルb4の係数として−αが設定された。しかし、例えば、ユーザ秘密鍵k*については、基底ベクトルb* 3の係数として1、基底ベクトルb* 4の係数としてαが設定され、暗号化データcの要素c1については、基底ベクトルb3の係数として−α、基底ベクトルb4の係数として1が設定されてもよい。
また、このように単純に値を設定する基底ベクトルを変更するのではなく、全く別の方法により鍵情報や属性情報を割り当てるようにしてもよい。どのような割り当て方法であっても、上記実施の形態に係る失効方式を適用することは可能である。
しかし、上記実施の形態に係る鍵の失効方式は、非特許文献1,2に記載された関数型暗号方式に限らず、非特許文献1,2に記載された関数型暗号方式を応用した関数型暗号方式に適用することも可能である。
また、上記実施の形態に係る鍵の失効方式は、関数型暗号方式に限らず、他の暗号方式にも適用可能である。
公開鍵暗号方式を用いた暗号化では、通常、データを共通鍵で暗号化した後、その共通鍵をユーザの公開鍵で暗号化するいわゆるハイブリッド暗号方式を用いることが多い。ハイブリッド暗号方式では、暗号化したデータにユーザの公開鍵で暗号化された共通鍵が添付される。
ハイブリッド暗号方式では、暗号化された共通鍵を暗号化データから削除することで、共通鍵で暗号化されたデータを復号することができなくなる。しかし、関数型暗号方式は複数の秘密鍵で復号可能なデータを1つの公開鍵で暗号化する。そのため、仮に同じ仕組みで共通鍵を添付する場合、複数の秘密鍵に対して1つしか暗号化された共通鍵を付与しない。つまり、1人のユーザが失効すれば、従来通りの方式で対応すると再暗号化するしか方法がない。
しかし、上記実施の形態に係る鍵の失効方式を用いれば、関数型暗号方式を用いたハイブリッド暗号方式の場合であっても鍵の失効を実現することができる。なお、ハイブリッド暗号方式の場合、メッセージmとして、コンテンツを暗号化するための共通鍵(又は共通鍵の生成元データ)が設定される。
図12に示すように、ユーザ端末100、暗号化データ管理装置200、暗号化データ記憶装置300、鍵生成装置400は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
ファイル群924には、上記の説明において「鍵管理部150」、「失効情報管理部250」、「鍵管理部260」、「暗号化データ管理部340」、「マスター鍵記憶部440」等に記憶される情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
Claims (11)
- 暗号化データに設定された属性情報及び鍵情報と、秘密鍵に設定された属性情報及び鍵情報とが対応していない場合、前記暗号化データを前記秘密鍵で復号できない暗号化方式において、前記暗号化データを管理する暗号化データ管理装置であり、
属性情報が設定された暗号化データを記憶装置から取得するデータ取得部と、
前記データ取得部が取得した前記暗号化データに設定された前記属性情報を有するユーザに、秘密鍵が失効しているユーザが含まれるか否か判定する失効判定部と、
秘密鍵が失効しているユーザが含まれると前記失効判定部に判定されたか否かによって、異なる値を前記鍵情報として前記暗号化データに設定する鍵情報設定部と、
前記鍵情報設定部が鍵情報を設定した暗号化データをユーザ端末へ送信するデータ送信部と
を備えることを特徴とする暗号化データ管理装置。 - 前記データ取得部は、前記鍵情報として乱数値が設定された暗号化データを取得し、
前記鍵情報設定部は、前記データ取得部が取得した暗号化データに設定された鍵情報を前記異なる値に設定し直す
ことを特徴とする請求項1に記載の暗号化データ管理装置。 - 前記暗号化データ管理装置は、さらに、
失効した秘密鍵の世代番号を管理する失効情報管理部
を備え、
前記鍵情報設定部は、秘密鍵が失効しているユーザが含まれないと判定された場合、前記世代番号の初期値を前記鍵情報として設定し、秘密鍵が失効しているユーザが含まれると判定された場合、前記失効情報管理部が管理する世代番号とは異なる値を前記鍵情報として設定する
ことを特徴とする請求項1に記載の暗号化データ管理装置。 - 前記データ取得部は、所定の基底Bにおける一部の基底ベクトルである基底ベクトルAの係数に前記属性情報が設定された暗号化ベクトルを前記暗号化データとして取得し、
前記鍵情報設定部は、前記基底Bにおける前記基底ベクトルAとは異なる基底ベクトルである基底ベクトルKの係数に前記異なる値を設定する
ことを特徴とする請求項1に記載の暗号化データ管理装置。 - 前記データ取得部は、前記基底ベクトルKの係数に乱数値が設定された前記暗号化ベクトルと、前記乱数値が暗号化された暗号化乱数値とを含む暗号化データを取得し、
前記鍵情報設定部は、前記暗号化乱数値を復号して前記乱数値を得て、前記基底ベクトルKの係数に前記乱数値を設定したベクトルを前記暗号化ベクトルから減算し、前記基底ベクトルKの係数に前記異なる値を設定したベクトルを前記暗号化ベクトルに加算する
ことを特徴とする請求項4に記載の暗号化データ管理装置。 - 前記データ取得部は、前記基底ベクトルKの係数に0が設定された前記暗号化ベクトルを前記暗号化データとして取得し、
前記鍵情報設定部は、前記基底ベクトルKの係数に前記異なる値を設定したベクトルを前記暗号化ベクトルに加算する
ことを特徴とする請求項4に記載の暗号化データ管理装置。 - 前記データ取得部は、t=1,...,n(nは2以上の整数)の各tについての基底B[t]の一部の基底である属性基底の基底ベクトルの係数に前記属性情報が設定された属性ベクトルと、前記基底B[t]における前記属性基底とは異なる基底である鍵情報基底の鍵情報ベクトルとを含む暗号化ベクトルを前記暗号化データとして取得し、
前記鍵情報設定部は、前記鍵情報基底の基底ベクトルの係数に前記異なる値を設定したベクトルに前記鍵情報ベクトルをする
ことを特徴とする請求項1に記載の暗号化データ管理装置。 - 前記データ取得部は、前記鍵情報基底の基底ベクトルのうちの所定の基底ベクトルKの係数に乱数値が設定されたベクトルを、前記鍵情報ベクトルとして含む前記暗号化ベクトルと、前記乱数値が暗号化された暗号化乱数値とを含む暗号化データを取得し、
前記鍵情報設定部は、前記暗号化乱数値を復号して前記乱数値を得て、前記基底ベクトルKの係数に前記乱数値を設定したベクトルを前記鍵情報ベクトルから減算し、前記基底ベクトルKの係数に前記異なる値を設定したベクトルを前記鍵情報ベクトルに加算する
ことを特徴とする請求項7に記載の暗号化データ管理装置。 - 前記データ取得部は、前記鍵情報基底の基底ベクトルのうちの所定の前記基底ベクトルKの係数に0が設定された前記暗号化ベクトルを前記暗号化データとして取得し、
前記鍵情報設定部は、前記基底ベクトルKの係数に前記異なる値を設定したベクトルを前記鍵情報ベクトルに加算する
ことを特徴とする請求項7に記載の暗号化データ管理装置。 - 暗号化データに設定された属性情報及び鍵情報と、秘密鍵に設定された属性情報及び鍵情報とが対応していない場合、前記暗号化データを前記秘密鍵で復号できない暗号化方式において、前記暗号化データを管理する暗号化データ管理方法であり、
通信装置が、属性情報が設定された暗号化データを記憶装置から取得するデータ取得ステップと、
処理装置が、前記データ取得ステップで取得した前記暗号化データに設定された前記属性情報を有するユーザに、秘密鍵が失効しているユーザが含まれるか否か判定する失効判定ステップと、
処理装置が、秘密鍵が失効しているユーザが含まれると前記失効判定ステップで判定されたか否かによって、異なる値を前記鍵情報として前記暗号化データに設定する鍵情報設定ステップと、
通信装置が、前記鍵情報設定ステップで鍵情報を設定した暗号化データをユーザ端末へ送信するデータ送信ステップと
を備えることを特徴とする暗号化データ管理方法。 - 暗号化データに設定された属性情報及び鍵情報と、秘密鍵に設定された属性情報及び鍵情報とが対応していない場合、前記暗号化データを前記秘密鍵で復号できない暗号化方式において、前記暗号化データを管理する暗号化データ管理プログラムであり、
属性情報が設定された暗号化データを記憶装置から取得するデータ取得処理と、
前記データ取得処理で取得した前記暗号化データに設定された前記属性情報を有するユーザに、秘密鍵が失効しているユーザが含まれるか否か判定する失効判定処理と、
秘密鍵が失効しているユーザが含まれると前記失効判定処理で判定されたか否かによって、異なる値を前記鍵情報として前記暗号化データに設定する鍵情報設定処理と、
前記鍵情報設定処理で鍵情報を設定した暗号化データをユーザ端末へ送信するデータ送信処理と
をコンピュータに実行させることを特徴とする暗号化データ管理プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/079519 WO2013094018A1 (ja) | 2011-12-20 | 2011-12-20 | 暗号化データ管理装置、暗号化データ管理方法及び暗号化データ管理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5668191B2 JP5668191B2 (ja) | 2015-02-12 |
JPWO2013094018A1 true JPWO2013094018A1 (ja) | 2015-04-27 |
Family
ID=48667946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013549994A Active JP5668191B2 (ja) | 2011-12-20 | 2011-12-20 | 暗号化データ管理装置、暗号化データ管理方法及び暗号化データ管理プログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US9237013B2 (ja) |
EP (1) | EP2797254A4 (ja) |
JP (1) | JP5668191B2 (ja) |
CN (1) | CN104012028B (ja) |
IN (1) | IN2014CN04197A (ja) |
WO (1) | WO2013094018A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023944B (zh) * | 2011-09-27 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 一种sns网络中推送关联用户的方法及*** |
CN105264539B (zh) * | 2013-07-18 | 2018-02-27 | 日本电信电话株式会社 | 密钥云***、解密方法、以及计算机可读取记录介质 |
CN105637799B (zh) | 2013-10-09 | 2019-06-25 | 三菱电机株式会社 | 加密***、加密装置、重加密密钥生成装置以及重加密装置 |
EP3082123B1 (en) * | 2013-12-11 | 2019-07-03 | Mitsubishi Electric Corporation | File storage system, file storage apparatus, and user terminal |
US20160330022A1 (en) * | 2014-01-16 | 2016-11-10 | Mitsubishi Electric Corporation | Cryptographic system, key generation apparatus, re-encryption apparatus and user terminal |
US11496893B2 (en) | 2014-10-07 | 2022-11-08 | Nippon Telegraph And Telephone Corporation | Secure computation system and relay device, and method, program, and recording medium thereof |
US10116442B2 (en) | 2015-02-20 | 2018-10-30 | Mitsubishi Electric Corporation | Data storage apparatus, data updating system, data processing method, and computer readable medium |
CN107251479B (zh) * | 2015-02-20 | 2020-08-11 | 三菱电机株式会社 | 数据保管装置和数据处理方法 |
US9811680B2 (en) | 2015-06-04 | 2017-11-07 | Microsoft Technology Licensing, Llc | Secure storage and sharing of data by hybrid encryption using predefined schema |
CN109328377B (zh) * | 2016-07-06 | 2021-12-21 | 日本电信电话株式会社 | 秘密计算***、秘密计算装置、秘密计算方法、以及程序 |
JP6575547B2 (ja) | 2017-03-17 | 2019-09-18 | 富士ゼロックス株式会社 | ドキュメント管理システム |
US10666422B2 (en) * | 2017-12-29 | 2020-05-26 | Shenzhen China Star Optoelectronics Technology Co., Ltd. | Data processing method |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60024768T2 (de) | 1999-08-09 | 2006-09-21 | Koninklijke Philips Electronics N.V. | Aktualisierung einer sperrliste um einem widersacher entgegenzuarbeiten |
JP3833635B2 (ja) | 2003-07-30 | 2006-10-18 | 三井住友海上火災保険株式会社 | 情報管理システム、キー配信サーバ、情報管理方法、及びプログラム |
JP5291795B2 (ja) * | 2009-04-24 | 2013-09-18 | 日本電信電話株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体 |
WO2011016401A1 (ja) * | 2009-08-03 | 2011-02-10 | 日本電信電話株式会社 | 関数暗号応用システム及び方法 |
EP2503533B1 (en) * | 2009-11-20 | 2016-10-05 | Mitsubishi Electric Corporation | Cipher processing system, key generating device, key delegating device, encrypting device, decrypting device, cipher processing method and cipher processing program |
US20120324240A1 (en) | 2010-01-13 | 2012-12-20 | Mitsubishi Electric Corporation | Secure search system, public parameter generation device, encryption device, user secret key generation device, query issuing device, search device, computer program, secure search method, public parameter generation method, encryption method, user secret key generation method, query issuing method, and search method |
US8634563B2 (en) * | 2010-12-17 | 2014-01-21 | Microsoft Corporation | Attribute based encryption using lattices |
US8516244B2 (en) * | 2011-06-10 | 2013-08-20 | Zeutro Llc | System, apparatus and method for decentralizing attribute-based encryption information |
-
2011
- 2011-12-20 WO PCT/JP2011/079519 patent/WO2013094018A1/ja active Application Filing
- 2011-12-20 CN CN201180075670.4A patent/CN104012028B/zh active Active
- 2011-12-20 EP EP11878276.2A patent/EP2797254A4/en not_active Withdrawn
- 2011-12-20 IN IN4197CHN2014 patent/IN2014CN04197A/en unknown
- 2011-12-20 JP JP2013549994A patent/JP5668191B2/ja active Active
- 2011-12-20 US US14/355,043 patent/US9237013B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2797254A1 (en) | 2014-10-29 |
WO2013094018A1 (ja) | 2013-06-27 |
EP2797254A4 (en) | 2015-10-28 |
US20140310521A1 (en) | 2014-10-16 |
JP5668191B2 (ja) | 2015-02-12 |
IN2014CN04197A (ja) | 2015-07-17 |
CN104012028B (zh) | 2016-10-26 |
US9237013B2 (en) | 2016-01-12 |
CN104012028A (zh) | 2014-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5668191B2 (ja) | 暗号化データ管理装置、暗号化データ管理方法及び暗号化データ管理プログラム | |
US9912485B2 (en) | Method and apparatus for embedding secret information in digital certificates | |
EP2677682B1 (en) | Key management system | |
US8509449B2 (en) | Key protector for a storage volume using multiple keys | |
JP5670272B2 (ja) | 情報処理装置、サーバ装置およびプログラム | |
KR20070029864A (ko) | 일 대 일로 데이터를 안전하게 송수신하는 방법 및 장치 | |
CN106797316B (zh) | 路由器、数据设备、分发数据的方法和*** | |
JP6049914B2 (ja) | 暗号システム、鍵生成装置及び再暗号化装置 | |
JP2013207376A (ja) | 情報処理装置およびプログラム | |
KR20090084545A (ko) | Ce 장치 관리 서버, ce 장치 관리 서버를 이용한drm 키 발급 방법, 및 그 방법을 실행하기 위한프로그램 기록매체 | |
JP2014022920A (ja) | 電子署名システム、電子署名方法および電子署名プログラム | |
JP6501701B2 (ja) | システム、端末装置、制御方法、およびプログラム | |
KR20170047853A (ko) | Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법 | |
JP2010028689A (ja) | 公開パラメータ提供サーバ、公開パラメータ提供方法、公開パラメータ提供プログラム、暗号化処理実行装置、暗号化処理実行方法、暗号化処理実行プログラム、署名処理実行装置、署名処理実行方法及び署名処理実行プログラム | |
KR20090024482A (ko) | 컨텐츠를 이용하기 위한 키 관리 시스템 및 그 방법 | |
CN112425117B (zh) | 化名信任状的配置方法和装置 | |
JP2010272899A (ja) | 鍵生成システム及び鍵生成方法及びブラインドサーバ装置及びプログラム | |
US20230376574A1 (en) | Information processing device and method, and information processing system | |
JP5739078B1 (ja) | サーバ装置、通信方法、およびプログラム | |
JP5705366B1 (ja) | サーバ装置およびプログラム | |
JP5369003B2 (ja) | 認証方法、認証システム、鍵生成装置、サーバ装置、プログラム | |
KR20100053123A (ko) | 레거시 시스템에 대한 통합 인증 방법 및 통합 인증 시스템 | |
Lapon et al. | Building advanced applications with the Belgian eID | |
KR20190067316A (ko) | 가드온솔루션의 정보보호를 위한 비밀번호 일방향 암호화 저장방법 | |
JP2005311648A (ja) | 暗号化属性証明書発行方法、属性検証方法、属性検証支援方法、属性認証装置、属性検証装置、属性検証支援装置、暗号化属性証明書発行プログラム、属性検証プログラムおよび属性検証支援プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140819 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5668191 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |