JP7117964B2 - 復号装置、暗号システム、復号方法及び復号プログラム - Google Patents

復号装置、暗号システム、復号方法及び復号プログラム Download PDF

Info

Publication number
JP7117964B2
JP7117964B2 JP2018188781A JP2018188781A JP7117964B2 JP 7117964 B2 JP7117964 B2 JP 7117964B2 JP 2018188781 A JP2018188781 A JP 2018188781A JP 2018188781 A JP2018188781 A JP 2018188781A JP 7117964 B2 JP7117964 B2 JP 7117964B2
Authority
JP
Japan
Prior art keywords
ciphertext
decryption
vector
decryption key
unit
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.)
Active
Application number
JP2018188781A
Other languages
English (en)
Other versions
JP2020056960A5 (ja
JP2020056960A (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.)
Mitsubishi Electric Corp
Nippon Telegraph and Telephone Corp
Original Assignee
Mitsubishi Electric Corp
Nippon Telegraph and Telephone Corp
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 Mitsubishi Electric Corp, Nippon Telegraph and Telephone Corp filed Critical Mitsubishi Electric Corp
Priority to JP2018188781A priority Critical patent/JP7117964B2/ja
Priority to PCT/JP2019/031129 priority patent/WO2020070973A1/ja
Publication of JP2020056960A publication Critical patent/JP2020056960A/ja
Priority to US17/207,087 priority patent/US11909873B2/en
Publication of JP2020056960A5 publication Critical patent/JP2020056960A5/ja
Application granted granted Critical
Publication of JP7117964B2 publication Critical patent/JP7117964B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0847Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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/3073Public 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Description

この発明は、述語暗号に関する。
非特許文献1には、ABP(Arithmetic Branching Programs)の述語を用いた述語暗号方式が記載されている。この述語暗号方式は、幅広い述語を許容する方式である。
Wee, H.: Attribute-hiding predicate encryption in bilinear groups, revisited. In:Theory of Cryptography Conference-TCC 2017. pp. 206-233. Springer (2017) Ishai, Y., Kushilevitz, E.: Perfect constant-round secure computation via perfect randomizing polynomials. In: International Colloquium on Automata, Languages,and Programming-ICALP 2002. pp. 244-256. Springer (2002)
非特許文献1に記載された述語暗号方式の安全性は、現実的な適応的安全性でなかった。そのため、この述語暗号方式は、実際に使用された場合に安全性が保たれるかどうかが懸念されていた。
この発明は、非特許文献1に記載された述語暗号方式と同様に幅広い述語を許容しつつ、安全性を高くすることが可能な述語暗号方式を実現可能にすることを目的とする。
この発明に係る復号装置は、
双対ベクトル空間における双対基底である基底B及び基底Bのうちの基底Bに、属性ベクトルと、ABP(Arithmetic Branching Programs)の述語ベクトルとの一方が設定された暗号文を取得する暗号文取得部と、
前記基底Bに、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得する復号鍵取得部と、
前記暗号文取得部によって取得された前記暗号文と、前記復号鍵取得部によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号部と
を備える。
この発明では、双対ベクトル空間における双対基底である基底Bに属性ベクトルとABPの述語ベクトルとの一方が設定された暗号文と、基底Bに他方が設定された復号鍵とについてペアリング演算が行われ、暗号文が復号される。これにより、幅広い述語を許容しつつ、安全性を高くすることが可能な述語暗号方式を実現することが可能になる。
実施の形態1に係る暗号システム1の構成図。 実施の形態1に係るセットアップ装置0の構成図。 実施の形態1に係る暗号化装置20の構成図。 実施の形態1に係る鍵生成装置30の構成図。 実施の形態1に係る復号装置40の構成図。 実施の形態1に係るセットアップ装置10の動作を示すフローチャート。 実施の形態1に係る暗号化装置20の動作を示すフローチャート。 実施の形態1に係る鍵生成装置30の動作を示すフローチャート。 実施の形態1に係るPGB計算処理を示すフローチャート。 実施の形態1に係る復号装置40の動作を示すフローチャート。 実施の形態1に係る復号処理を示すフローチャート。 変形例3に係るセットアップ装置10の構成図。 変形例3に係る暗号化装置20の構成図。 変形例3に係る鍵生成装置30の構成図。 変形例3に係る復号装置40の構成図。
実施の形態1.
***表記***
以下の説明で用いる表記を説明する。
数101は、セキュリティパラメータを示し、1λは、単進符号のエンコーディングを表す。
Figure 0007117964000001
数102は、qを法とする有限体を示す。数102は、体F又は単にFと記載される。
Figure 0007117964000002
数103に対して、数104とする。
Figure 0007117964000003
Figure 0007117964000004
数105は、集合Zから要素zを一様にサンプリングする処理を示す。
Figure 0007117964000005
#Zは、集合Zのサイズ又は濃度を示す。
確率的アルゴリズムUに対して、Π=U(Θ;Φ)は、ランダムテープの内容Φを伴う入力ΘにおけるアルゴリズムUの出力を示す。ここで、数106は、一様なランダムテープを伴う入力ΘにおけるアルゴリズムUの出力分布からΠをサンプリング処理を示す。
Figure 0007117964000006
確定的アルゴリズムVに対して、Π=V(Θ)は、入力ΘにおけるアルゴリズムVの出力を示す。
アルゴリズムは、内容から明らかな場合には、入力として明示されていない場合であっても、セキュリティパラメータλの単進符号表現1λが入力として与えられるものとする。
数107に対して、数108は、数109に示すベクトルを示す。また、数108は、vと記載される。
Figure 0007117964000007
Figure 0007117964000008
Figure 0007117964000009
体F における全てが0のベクトルは、数110のように記載される。
Figure 0007117964000010
数111に示す2つのベクトル対して、数112は、ベクトルvとベクトルwとの内積を示す。つまり、数112は、数113を示す。
Figure 0007117964000011
Figure 0007117964000012
Figure 0007117964000013
数114は、乗法巡回群を示す。数114は、群G又は単にGと記載される。
Figure 0007117964000014
群Gと、群Gの生成元gとに対して、vは群要素のd次元ベクトルを示す。つまり、数115である。
Figure 0007117964000015
数116は、数117に示す群要素のd次元ベクトルを示す。ここで、数118は、群Gの単位元を示す。
Figure 0007117964000016
Figure 0007117964000017
Figure 0007117964000018
M=(mi,k)は、成分mi,k∈Fを有する行列を示す。Mは、行列Mの転置行列を示す。det(M)は、行列Mの行列式を示す。行列の記載において、Iは、単位行列を示し、0は、ゼロ行列を示す。GL(d,F)は、F d×dにおける全てのd×dの可逆行列の集合を示す。
***準備***
以下の説明で用いられる用語の定義等を説明する。
実施の形態1では、ABPの述語と、内積述語とを包含する(ABP〇IP)述語を用いたPHPE(Partially-Hiding Predicate Encryption)方式を説明する。
<PHPE>
PHPEは、属性の一部が秘密にされるPE(Predicate Encryption)である。以下の説明では、属性ベクトルxと属性ベクトルzとが与えられ、属性ベクトルxは公開される公開属性ベクトルであり、属性ベクトルzは秘密にされる秘密属性ベクトルである。
<ABP>
BP(Branching Program)Γは、数119に示す5つの要素によって定義される。
Figure 0007117964000019
数120は頂点の集合を示し、数121は辺の集合を示す。数120は、単にVと記載され、数121は、単にEと記載される。
Figure 0007117964000020
Figure 0007117964000021
(V,E)は、有効非巡回グラフである。V,V∈Vは、それぞれソースとシンクと呼ばれる特別な頂点である。φは、Eにおける辺に対するラベリング関数である。
有限体FにおけるABPΓは、数122に示す関数fを計算する。
Figure 0007117964000022
ここで、Eにおける各辺に割り当てられるラベリング関数φは、Fにおける係数を伴う1つの変数の1次式、又は、Fにおける定数である。pを、ABPΓにおけるソースVからシンクVへの全てのパスの集合とする。ある入力v=(v,...,v)∈F におけるABPΓによって計算される関数fの出力は、数123に示すように定義される。
Figure 0007117964000023
数124は、vに対する関数φ(E)の評価値を示す。
Figure 0007117964000024
非特許文献2には、次の内容が示されている。
関数fを計算するABPΓ=(V,E,V,V,φ)が与えられた場合、入力v∈F をFにおける(#V-1)×(#V-1)の行列L(v)にマッピングする関数Lを効率的かつ決定的に計算することが可能である。また、以下の(1)から(3)が成立する。
(1)det(L(v))=f(v)である。
(2)(L(v))の各成分は、Fにおける係数を伴う1つの変数v(i∈[d])の1次式、又は、Fにおける定数である。
(3)(L(v))は、第2対角、つまり主対角のすぐ下の対角には、-1だけを含み、第2対角の下には0だけを含む。
具体的には、行列Lは、行列AΓ-Iから、Vに対応する列と、Vに対応する行とを取り除くことによって得られる。ここで、行列AΓは、Γに対する隣接行列である。Iは単位行列である。
ここで、ブーリアン方式と、ブーリアンブランチングプログラムと、算術方式とをABPに変換する線形時間アルゴリズムが存在する。
<関数族F(q,n’,n) ABP〇IP
関数族F(q,n’,n) ABP〇IPは、実施の形態1に係るPHPE方式でサポートされる関数族である。
関数族F(q,n’,n) ABP〇IPは、素数qと、自然数n’,nとによってパラメータ化され、数125に示す関数fを含む。
Figure 0007117964000025
関数fは、ζ∈Fと、(x,z)∈F n’×F とに対して、f(x,ζz)=ζf(x,z)である。
ABPΓによって実現される関数fは、以下のように構築される。
まず、ABP{Γj∈[n]の全てのソース頂点は、1つに併合される。そして、併合された1つの頂点が、ABPΓのソース頂点になる。次に、ABPΓに対する新たなシンク頂点が生成される。j∈[n]の各整数jについて、ABPΓのシンク頂点から新たなシンク頂点に向かって、zでラベル付けされた有向辺によって接続される。ここで、関数fを計算するABPΓのサイズは、m+n+1である。1は、ABPΓのシンク頂点に対応する。nは、シンク頂点へ向けられた辺の数に対応する。mは、ABPΓの他の頂点に対応する。
ABPΓは、各頂点が1次のラベルを有する1つの出力辺のみを有するABPΓ’に修正される。具体的には、ABPΓにおける各辺Eが1とφ(E)とでラベル付けされた辺のペアに置き換えられることによって、ABPΓがABPΓ’に修正される。φは、ABPΓのラベリング関数である。ABPΓ’のサイズも、m+n+1である。
<ABP〇IP述語>
ABP〇IP述語族RABP〇IPは、数126に示す通りである。
Figure 0007117964000026
つまり、関数fにベクトルx及びベクトルzを入力すると0になる場合に、関数fと、ベクトルx及びベクトルzとを入力するとABP〇IP述語族RABP〇IPは1を出力する。一方、関数fにベクトルx及びベクトルzを入力すると0にならない場合に、関数fと、ベクトルx及びベクトルzとを入力するとABP〇IP述語族RABP〇IPは0を出力する。
<PGB(Partial GarBlig)アルゴリズム>
PGBアルゴリズム(PGB(f;r))は、関数f∈F(q,n’,n) ABP〇IPを入力として、ランダム性r∈F m+n-1を用いて、関数ρ:[m]→[n’]を伴う定数の集合({σj∈[n],{αj’,γj’j’∈[m])∈F ×(F を出力する確率的多項式時間アルゴリズムである。x∈F n’とz∈F とともに、この定数は、n+m個の割当値({z+σj∈[n],{αj’ρ(j’)+γj’j’∈[m])を特定する。
ここで、m+n+1は、関数fを計算するABPの頂点の数であり、ρは、関数fから確定的に導出される。
PGBアルゴリズムは、以下の(1)から(3)の性質を有する。
(1)線形性:固定された関数f∈F(q,n’,n) ABP〇IPに対して、PGB(f;・)は、Fにおけるランダム性を有する線形な関数を計算する。
(2)再構築:関数f∈F(q,n’,n) ABP〇IPと、x∈F n’とを入力として、係数の集合({Ωj∈[n],{Ω’j’j’∈[m])∈F ×F n’を出力する確定的多項式時間アルゴリズムRECが存在する。この係数の集合は、f(x,z)を復元するために、PGB(f)の出力と、x及びz∈F との結合によって計算された割当値の集合と合わせて用いられる。
(3)秘匿性:全ての関数f∈F(q,n’,n) ABP〇IPと、x∈F n’と、z∈F とに対して、関数fと、xと、f(x,z)とを入力とし、出力が割当値に対して一様に分布する確率的多項式時間アルゴリズムSIMが存在する。割当値は、一様にランダムなrに対するPGB(f;r)の出力とx及びzとの結合によって計算される。
<双線形群>
数127に示す双線形群であるparamは、素数qと、位数qの乗法巡回群G,G,Gと、群Gの生成元gと、群Gの生成元gと、数128に示す双線形写像eとを備える。
Figure 0007117964000027
Figure 0007117964000028
双線形写像eは、以下の双線形性と非退化性との2つの性質を有する。
(双線形性)
数129が成立する。
Figure 0007117964000029
(非退化性)
数130が成立する。ここで、数131は、群Gの単位元である。
Figure 0007117964000030
Figure 0007117964000031
以下の説明では、GBPG()を双線形群の生成アルゴリズムとする。つまり、GBPGは、paramを生成するアルゴリズムである。
<双対ペアリングベクトル空間(以下、DPVS)>
数132に示すDPVSであるparamは、双線形群であるparamの直積によって構成される。paramは、素数qと、要素毎に定義されたベクトル加算及びスカラー乗法の下でのt∈[2]についてのF上のd次元ベクトル空間V=G と、t∈[2]についてのベクトル空間Vの数133に示す標準基底Aと、数134に示すペアリング演算eとを備える。
Figure 0007117964000032
Figure 0007117964000033
Figure 0007117964000034
paramにおける写像eは、以下の双線形性と非退化性との2つの性質を有する。
(双線形性)
数135が成立する。
Figure 0007117964000035
(非退化性)
数136が成立する。
Figure 0007117964000036
数137に示すベクトル空間Vの基底Wと、ベクトルv∈F とに対して、数138は、基底Wの要素とベクトルvの要素との線形結合によって構成されるベクトル空間Vのベクトルを示す。つまり、数138は、数139を示す。
Figure 0007117964000037
Figure 0007117964000038
Figure 0007117964000039
ベクトルv∈Vと、行列M=(mi,k)∈F d×dとに対して、vMは、数140に示すd次元ベクトルを示す。
Figure 0007117964000040
以下の説明では、GDPVS(1λ,d)をDPVSの生成アルゴリズムとする。つまり、GDPVSは、単進符号のエンコーディングがされたセキュリティパラメータ1λと、次元を示す自然数dとを入力として、paramを生成するアルゴリズムである。
***構成の説明***
<PHPEの構成>
実施の形態1では、KP(Key-Policy)-PHPE方式を説明する。KPは、復号鍵にアクセスコントロールのための情報が設定されるという意味である。
特に、実施の形態1では、属性のみモードのKP-PHPE方式を説明する。属性のみモードとは、暗号文にペイロードが含まれないという意味である。つまり、属性のみモードとは、暗号文には、暗号化対象のメッセージが含まれていないという意味である。なお、属性のみモードのKP-PHPE方式を、暗号文にペイロードを含む形態のKP-PHPE方式に変形する方法は当業者にとって明らかであり、容易に実現可能である。
KP-PHPE方式は、PHPE.Setupアルゴリズムと、PHPE.Encryptアルゴリズムと、PHPE.KeyGenアルゴリズムと、PHPE.Decryptアルゴリズムとを含む。
PHPE.Setupアルゴリズムは、セキュリティパラメータλと、公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとを入力として、公開パラメータMPKとマスター秘密鍵MSKとを出力する。
PHPE.Encryptアルゴリズムは、公開パラメータMPKと、公開属性ベクトルx∈F n’と、秘密属性ベクトルz∈F とを入力として、暗号文CTを出力する。
PHPE.KeyGenアルゴリズムは、公開パラメータMPKと、マスター秘密鍵MSKと、関数f∈F(q,n’,n) ABP〇IPとを入力として、復号鍵SK(f)を出力する。
PHPE.Decryptアルゴリズムは、公開パラメータMPKと、関数f∈F(q,n’,n) ABP〇IPに対する復号鍵SK(f)と、暗号文CTとを入力として、1又は0を出力する。
<暗号システム1の構成>
図1を参照して、実施の形態1に係る暗号システム1の構成を説明する。
暗号システム1は、セットアップ装置10と、暗号化装置20と、鍵生成装置30と、復号装置40とを備える。セットアップ装置10と、暗号化装置20と、鍵生成装置30と、復号装置40とは、コンピュータである。セットアップ装置10と、暗号化装置20と、鍵生成装置30と、復号装置40とは、ネットワークを介して接続されている。
図2を参照して、実施の形態1に係るセットアップ装置0の構成を説明する。
セットアップ装置10は、PHPE.Setupアルゴリズムを実行するコンピュータである。
セットアップ装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
セットアップ装置10は、機能構成要素として、受付部111と、マスター鍵生成部112と、送信部113とを備える。セットアップ装置10の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、セットアップ装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、セットアップ装置10の各機能構成要素の機能が実現される。
図3を参照して、実施の形態1に係る暗号化装置20の構成を説明する。
暗号化装置20は、PHPE.Encryptアルゴリズムを実行するコンピュータである。
暗号化装置20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
暗号化装置20は、機能構成要素として、マスター鍵取得部211と、ベクトル取得部212と、暗号化部213と、送信部214とを備える。暗号化装置20の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ23には、暗号化装置20の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、暗号化装置20の各機能構成要素の機能が実現される。
図4を参照して、実施の形態1に係る鍵生成装置30の構成を説明する。
鍵生成装置30は、PHPE.KeyGenアルゴリズムを実行するコンピュータである。
鍵生成装置30は、プロセッサ31と、メモリ32と、ストレージ33と、通信インタフェース34とのハードウェアを備える。プロセッサ31は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
鍵生成装置30は、機能構成要素として、マスター鍵取得部311と、関数取得部312と、PGB計算部313と、鍵生成部314と、送信部315とを備える。鍵生成装置30の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ33には、鍵生成装置30の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ31によりメモリ32に読み込まれ、プロセッサ31によって実行される。これにより、鍵生成装置30の各機能構成要素の機能が実現される。
図5を参照して、実施の形態1に係る復号装置40の構成を説明する。
復号装置40は、PHPE.Decryptアルゴリズムを実行するコンピュータである。
復号装置40は、プロセッサ41と、メモリ42と、ストレージ43と、通信インタフェース44とのハードウェアを備える。プロセッサ41は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
復号装置40は、機能構成要素として、マスター鍵取得部411と、暗号文取得部412と、復号鍵取得部413と、復号部414とを備える。復号部414は、余因子計算部415と、ペアリング演算部416と、出力値計算部417とを備える。復号装置40の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ43には、復号装置40の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ41によりメモリ42に読み込まれ、プロセッサ41によって実行される。これにより、復号装置40の各機能構成要素の機能が実現される。
プロセッサ11,21,31,41は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11,21,31,41は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
メモリ12,22,32,42は、データを一時的に記憶する記憶装置である。メモリ12,22,32,42は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
ストレージ13,23,33,43は、データを保管する記憶装置である。ストレージ13,23,33,43は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13,23,33,43は、SD(登録商標,Secure Digital)メモリカード、CF(CompactFlash,登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記録媒体であってもよい。
通信インタフェース14,24,34,44は、外部の装置と通信するためのインタフェースである。通信インタフェース14,24,34,44は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High-Definition Multimedia Interface)のポートである。
図2では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。同様に、プロセッサ21,31,41は、複数であってもよく、複数のプロセッサ21,31,41が、各機能を実現するプログラムを連携して実行してもよい。
図6から図11を参照して、実施の形態1に係る暗号システム1の動作を説明する。
実施の形態1に係る暗号システム1の動作は、実施の形態1に係る暗号方法に相当する。また、実施の形態1に係る暗号システム1の動作は、実施の形態1に係る暗号プログラムの処理に相当する。
図6を参照して、実施の形態1に係るセットアップ装置10の動作を説明する。
実施の形態1に係るセットアップ装置10の動作は、実施の形態1に係るセットアップ方法に相当する。また、実施の形態1に係るセットアップ装置10の動作は、実施の形態1に係るセットアッププログラムの処理に相当する。
(ステップS11:受付処理)
受付部111は、セキュリティパラメータλと、公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとの入力を受け付ける。公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとは、いずれも1以上の整数である。
具体的には、受付部111は、通信インタフェース14を介して、セットアップ装置10のユーザによって入力されたセキュリティパラメータ1λを受け付ける。受付部111は、セキュリティパラメータ1λをメモリ12に書き込む。
(ステップS12:基底生成処理)
マスター鍵生成部112は、ステップS11で受付されたセキュリティパラメータλと、公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとを入力として、params及び正規直交な双対基底{Bι,B ιι∈[n’+n]を生成する。
具体的には、マスター鍵生成部112は、セキュリティパラメータλと、公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとメモリ12から読み出す。マスター鍵生成部112は、N=n’+n、d=0、d,...,d=9として、数141に示すアルゴリズムGOBを実行して、params及び双対基底{Bι,B ιι∈[n’+n]を生成する。マスター鍵生成部112は、params及び双対基底{Bι,B ιι∈[n’+n]をメモリ12に書き込む。
Figure 0007117964000041
(ステップS13:マスター鍵生成処理)
マスター鍵生成部112は、ステップS12で生成されたparams及び双対基底{Bι,B ιι∈[n’+n]から、公開パラメータMPK及びマスター秘密鍵MSKを生成する。
具体的には、マスター鍵生成部112は、params及び双対基底{Bι,B ιι∈[n’+n]をメモリ12から読み出す。マスター鍵生成部112は、数142に示すように、ι∈[n’+n]の各整数ιについて、部分基底B^ι及び部分基底B^ ιを生成する。
Figure 0007117964000042
マスター鍵生成部112は、params及びι∈[n’+n]の各整数ιについての部分基底B^ιを公開パラメータMPKとして設定する。また、マスター鍵生成部112は、ι∈[n’+n]の各整数ιについての部分基底B^ ιをマスター秘密鍵MSKとして設定する。マスター鍵生成部112は、公開パラメータMPK及びマスター秘密鍵MSKをメモリ12に書き込む。
(ステップS14:送信処理)
送信部113は、ステップS13で生成された公開パラメータMPKを公開する。具体的には、送信部113は、公開パラメータMPKをメモリ12から読み出す。送信部113は、公開パラメータMPKを公開用のサーバに送信するといった方法により、公開する。これにより、暗号化装置20と鍵生成装置30と復号装置40とは、公開パラメータMPKを取得可能になる。
送信部113は、ステップS13で生成されたマスター秘密鍵MSKを鍵生成装置30に秘密裡に送信する。具体的には、送信部113は、メモリ12からマスター秘密鍵MSKを読み出す。送信部113は、マスター秘密鍵MSKを、既存の暗号化方式で暗号化した上で鍵生成装置30に送信する。
つまり、セットアップ装置10は、数143に示すPHPE.Setupアルゴリズムを実行する。
Figure 0007117964000043
図7を参照して、実施の形態1に係る暗号化装置20の動作を説明する。
実施の形態1に係る暗号化装置20の動作は、実施の形態1に係る暗号化方法に相当する。また、実施の形態1に係る暗号化装置20の動作は、実施の形態1に係る暗号化プログラムの処理に相当する。
(ステップS21:マスター鍵取得処理)
マスター鍵取得部211は、セットアップ装置10によって生成された公開パラメータMPKを取得する。
具体的には、マスター鍵取得部211は、通信インタフェース24を介して、公開された公開パラメータMPKを取得する。マスター鍵取得部211は、公開パラメータMPKをメモリ22に書き込む。
(ステップS22:ベクトル取得処理)
ベクトル取得部212は、公開属性ベクトルx∈F n’及び秘密属性ベクトルz∈F を取得する。
具体的には、ベクトル取得部212は、通信インタフェース24を介して、暗号化装置20のユーザによって入力された公開属性ベクトルx及び秘密属性ベクトルzを取得する。ベクトル取得部212は、公開属性ベクトルx及び秘密属性ベクトルzをメモリ22に書き込む。
(ステップS23:暗号化処理)
暗号化部213は、ステップS21で取得された公開パラメータMPKと、ステップS22で取得された公開属性ベクトルx及び秘密属性ベクトルzとを用いて、暗号文CTを生成する。
具体的には、暗号化部213は、以下のように暗号文CTを生成する。
まず、暗号化部213は、数144に示すように、値ωをサンプリングする。
Figure 0007117964000044
次に、暗号化部213は、数145に示すように、ι’∈[n’]の各整数ι’について、値φ’ι’をサンプリングし、要素c’(ι’)を生成する。
Figure 0007117964000045
また、暗号化部213は、数146に示すように、ι∈[n]の各整数ιについて、値φιをサンプリングし、要素c(ι)を生成する。
Figure 0007117964000046
そして、暗号化部213は、公開属性ベクトルxと、ι’∈[n’]の各整数ι’についての要素c’(ι’)と、ι∈[n]の各整数ιについての要素c(ι)とを暗号文CTとして設定する。暗号化部213は、暗号文CTをメモリ22に書き込む。
実施の形態1では、暗号文CTは、双対ベクトル空間における双対基底である基底B及び基底Bのうちの基底Bに、公開属性ベクトルxが設定された要素c’(ι’)と、秘密属性ベクトルzが設定された要素c(ι)とを含む。
(ステップS24:送信処理)
送信部214は、ステップS23で生成された暗号文CTを復号装置40に送信する。
具体的には、送信部214は、暗号文CTをメモリ22から読み出す。送信部214は、通信インタフェース24を介して、暗号文CTを復号装置40に送信する。
つまり、暗号化装置20は、数147に示すPHPE.Encryptアルゴリズムを実行する。
Figure 0007117964000047
図8を参照して、実施の形態1に係る鍵生成装置30の動作を説明する。
実施の形態1に係る鍵生成装置30の動作は、実施の形態1に係る鍵生成方法に相当する。また、実施の形態1に係る鍵生成装置30の動作は、実施の形態1に係る鍵生成プログラムの処理に相当する。
(ステップS31:マスター鍵取得処理)
マスター鍵取得部311は、セットアップ装置10によって生成された公開パラメータMPK及びマスター秘密鍵MSKを取得する。
具体的には、マスター鍵取得部311は、通信インタフェース34を介して、公開された公開パラメータMPKを取得するとともに、セットアップ装置10によって送信されたマスター秘密鍵MSKを取得する。マスター鍵取得部311は、公開パラメータMPK及びマスター秘密鍵MSKをメモリ32に書き込む。
(ステップS32:関数取得処理)
関数取得部312は、関数f∈F(q,n’,n) ABP〇IPを取得する。
具体的には、関数取得部312は、通信インタフェース34を介して、鍵生成装置30のユーザによって入力された関数fを取得する。関数取得部312は、関数fをメモリ32に書き込む。
(ステップS33:PGB計算処理)
PGB計算部313は、数148に示すように、ステップS32で取得された関数fを入力として、PGBアルゴリズムを実行することにより、割当値を特定するための定数の集合({σj∈[n],{αj’,γj’j’∈[m])∈F ×(F と、関数ρ:[m]→[n’]とを計算する。
Figure 0007117964000048
図9を参照して、実施の形態1に係るPGB計算処理を説明する。
(ステップS331:行列表現L生成処理)
Γ’は、関数fを計算するABPを示すとする。ABPΓ’は、m+n+1個の頂点を有しており、変数zは、シンク頂点への入力辺にのみ設定される。そして、どの頂点も1つの出力辺のみを有している。
そこで、PGB計算部313は、ABPΓ’を示す行列表現L∈F (m+n)×(m+n)を計算する。上述した通り、行列Lは、行列AΓ’-Iから、Vに対応する列と、Vに対応する行とを取り除くことによって得られる。ここで、行列AΓは、Γに対する隣接行列である。Iは単位行列である。
すると、以下の(1)から(4)が成立する。
(1)全ての(x,z)∈F n’×F に対して、det(L(x,z))=f(x,z)である。
(2)j’∈[m]の各整数j’に対して、行列表現Lのj’行の成分は、Fにおける係数を伴う1つの変数xι’(ι’∈[n’])の1次式、又は、Fにおける定数である。
(3)行列表現Lは、第2対角には-1だけを含み、第2対角の下には0だけを含む。
(4)行列表現Lの最後の列は、(0,...,0,z,...,z)である。
(ステップS332:関数ρ生成処理)
PGB計算部313は、j’∈[m]の各整数j’について、行列表現Lのj’行に変数xι’が含まれるなら、ρ(j’)=ι’と設定することにより、関数ρ:[m]→[n’]を生成する。PGB計算部313は、関数ρをメモリ32に書き込む。
(ステップS333:定数計算処理)
PGB計算部313は、数149に示すように、ベクトルrを選択する。
Figure 0007117964000049
PGB計算部313は、ステップS331で生成された行列表現Lと、ベクトルrとを用いて、数150に示すように、定数の集合({σj∈[n],{αj’,γj’j’∈[m])∈F ×(F を計算する。
Figure 0007117964000050
これにより、定数の集合({σj∈[n],{αj’,γj’j’∈[m])が生成される。PGB計算部313は、定数の集合({σj∈[n],{αj’,γj’j’∈[m])をメモリ32に書き込む。この定数の集合({σj∈[n],{α
j’,γj’j’∈[m])をABPの述語ベクトルと呼ぶ。
(ステップS34:鍵生成処理)
鍵生成部314は、ステップS31で取得された公開パラメータMPK及びマスター秘密鍵MSKと、ステップS32で取得された関数fと、ステップS33で生成された定数の集合({σj∈[n],{αj’,γj’j’∈[m])とを用いて、復号鍵SK(f)を生成する。
具体的には、鍵生成部314は、以下のように復号鍵SK(f)を生成する。
まず、鍵生成部314は、数151に示すように、値ζをサンプリングする。
Figure 0007117964000051
次に、鍵生成部314は、数152に示すように、j’∈[m]の各整数j’について、κ(j’)をサンプリングし、要素k’(j’)を生成する。
Figure 0007117964000052
また、鍵生成部314は、数153に示すように、j∈[n]の各整数jについて、κ→(j)をサンプリングし、要素k(j)を生成する。
Figure 0007117964000053
そして、鍵生成部314は、関数fと、j’∈[m]の各整数j’についての要素k’(j’)と、j∈[n]の各整数jについての要素k(j)とを復号鍵SK(f)として設定する。鍵生成部314は、復号鍵SK(f)をメモリ32に書き込む。
実施の形態1では、復号鍵SK(f)は、双対ベクトル空間における双対基底である基底B及び基底Bのうちの基底Bに、ABPの述語ベクトルが設定された要素k’(j’)及び要素k(j)を含む。
(ステップS35:送信処理)
送信部315は、ステップS34で生成された復号鍵SK(f)を秘密裡に復号装置40に送信する。
具体的には、送信部315は、復号鍵SK(f)をメモリ32から読み出す。送信部315は、復号鍵SK(f)を既存の暗号化方式で暗号化した上で、通信インタフェース34を介して復号装置40に送信する。
つまり、鍵生成装置30は、数154に示すPHPE.KeyGenアルゴリズムを実行する。
Figure 0007117964000054
図10を参照して、実施の形態1に係る復号装置40の動作を説明する。
実施の形態1に係る復号装置40の動作は、実施の形態1に係る復号方法に相当する。また、実施の形態1に係る復号装置40の動作は、実施の形態1に係る復号プログラムの処理に相当する。
(ステップS41:公開鍵取得処理)
マスター鍵取得部411は、セットアップ装置10によって生成された公開パラメータMPKを取得する。
具体的には、マスター鍵取得部411は、通信インタフェース44を介して、公開された公開パラメータMPKを取得する。マスター鍵取得部411は、公開パラメータMPKをメモリ42に書き込む。
(ステップS42:暗号文取得処理)
暗号文取得部412は、暗号化装置20によって生成された暗号文CTを取得する。
具体的には、暗号文取得部412は、通信インタフェース44を介して、暗号化装置20によって送信された暗号文CTを取得する。暗号文取得部412は、暗号文CTをメモリ42に書き込む。
(ステップS43:復号鍵取得処理)
復号鍵取得部413は、鍵生成装置30によって生成された復号鍵SK(f)を取得する。
具体的には、復号鍵取得部413は、通信インタフェース44を介して、鍵生成装置30によって送信された復号鍵SK(f)を取得する。復号鍵取得部413は、復号鍵SK(f)をメモリ42に書き込む。
(ステップS44:復号処理)
復号部414は、ステップS42で取得された暗号文CTと、ステップS43で取得された復号鍵SK(f)とについてペアリング演算を行うことにより、暗号文CTを復号する。
図11を参照して、実施の形態1に係る復号処理を説明する。
(ステップS441:余因子計算処理)
余因子計算部415は、数155に示すように、復号鍵SK(f)に含まれる関数fと、暗号文CTに含まれる公開属性ベクトルxとを入力として、RECアルゴリズムを実行することにより、係数の集合(({Ωj∈[n],{Ω’j’j’∈[m])∈F ×F n’を計算する。
Figure 0007117964000055
具体的には、余因子計算部415は、図9のステップS331からステップS332の処理と同様に、関数fの行列表現L及び関数ρを生成する。そして、余因子計算部415は、行列表現Lの最後の列の要素の余因子を計算する。余因子計算部415は、計算された余因子を成分の順に係数の集合(({Ωj∈[n],{Ω’j’j’∈[m])として設定する。ここで、行列表現Lの初めのm+n-1列は、変数{xι’ι’∈[n’]しか含まない。そのため、余因子は、公開属性ベクトルxを用いて計算可能である。
余因子計算部415は、係数の集合(({Ωj∈[n],{Ω’j’j’∈[m])をメモリ42に書き込む。
(ステップS442:ペアリング演算処理)
ペアリング演算部416は、数156に示すように、j’∈[m]の各整数j’について、要素c’(ρ(j’))と、要素k’(j’)とについてペアリング演算を行い、演算値Λ’j’を計算する。ここで、関数ρは、ステップS441で生成された関数である。
Figure 0007117964000056
また、ペアリング演算部416は、数157に示すように、j∈[n]の各整数jについて、要素c(j)と、要素k(j)とについてペアリング演算を行い、演算値Λを計算する。
Figure 0007117964000057
ペアリング演算部416は、演算値Λ’j’及び演算値Λをメモリ42に書き込む。
(ステップS443:出力値計算処理)
出力値計算部417は、ステップS441で計算された係数の集合(({Ωj∈[n],{Ω’j’j’∈[m])と、ステップS442で計算された演算値Λ’j’及び演算値Λとをメモリ42から読み出す。出力値計算部417は、数158に示すように、演算値Λを計算する。
Figure 0007117964000058
出力値計算部417は、Λが群Gの単位元である場合には出力値として1を出力し、そうでない場合には出力値として0を出力する。
つまり、復号装置40は、数159に示すPHPE.Decryptアルゴリズムを実行する。
Figure 0007117964000059
ここで、演算値Λ’j’及び演算値Λは、数160に示す通りである。
Figure 0007117964000060
そして、演算値Λは、数161に示す通りである。
Figure 0007117964000061
そのため、ω=0又はζ=0の場合を除いて、RABP〇IP(f,(x,z))=1、つまりf(x,z)=0なら、数162になり、RABP〇IP(f,(x,z))≠1、つまりf(x,z)≠0なら、数163になる。
Figure 0007117964000062
Figure 0007117964000063
数161のようになる理由を説明する。
数164に示すように、どのようなzに対しても、係数の集合(({Ωj∈[n],{Ω’j’j’∈[m])と、({z+σj∈[n],{αj’ρ(j’)+γj’j’∈[m])を連接して、f(x,z)を計算することができる。
Figure 0007117964000064
ここで、数164は、det(L’(x,z))を計算することに対応している。行列表現L’は、行列表現Lの最後の列を数165に置き換えて得られた行列表現である。
Figure 0007117964000065
そのため、数166が成立し、数164が成立することが分かる。
Figure 0007117964000066
ここで、r=(r,...,rm+n-1)∈F m+n-1は、定数の集合({σj∈[n],{αj’,γj’j’∈[m])を生成する際にPBGによって用いられたランダム性である。
そして、数167が成立する。
Figure 0007117964000067
なぜなら、最後の列の初めのm個の成分は0であるため、数168である。
Figure 0007117964000068
したがって、数169である。
Figure 0007117964000069
***実施の形態1の効果***
以上のように、実施の形態1に係る暗号システム1は、双対ベクトル空間における双対基底である基底Bに属性ベクトルが設定された暗号文と、基底BにABPの述語ベクトルが設定された復号鍵とについてペアリング演算が行われ、暗号文が復号される。これにより、幅広い述語を許容しつつ、安全性を高くすることが可能な述語暗号方式を実現することが可能になる。
***他の構成***
<変形例1>
実施の形態1では、KP-PHPE方式を説明した。実施の形態1で説明したKP-PHPE方式をCP(Cipher-Policy)-PHPE方式に変換することができる。CPは、暗号文にアクセスコントロールのための情報が設定されるという意味である。実施の形態1でのアクセスコントロールのための情報は、関数f及び定数の集合({σj∈[n],{αj’,γj’j’∈[m])である。
そこで、CP-PHPE方式の場合には、PHPE.Encryptアルゴリズムにおいて、関数fを入力として、PGBアルゴリズムが実行され、定数の集合({σj∈[n],{αj’,γj’j’∈[m])が生成される。PHPE.Encryptアルゴリズムにおいて、実施の形態1における要素k’(j’)及び要素k(j)に相当する定数の集合({σj∈[n],{αj’,γj’j’∈[m])を設定した要素c’(j’)及び要素c(j)が生成される。そして、関数fと、要素c’(j’)及び要素c(j)とが暗号文CTとして設定される。
また、CP-PHPE方式の場合には、PHPE.KeyGenアルゴリズムにおいて、実施の形態1における要素c’(ι’)に相当する公開属性ベクトルxが設定された要素k’(ι’)と、実施の形態1における要素c(ι)に相当する秘密属性ベクトルzが設定された要素k(ι)とが生成される。そして、公開属性ベクトルxと、要素k’(ι’)及び要素k(ι)が復号鍵SK(f)として設定される。
<変形例2>
実施の形態1では、ι∈[n’+n]の各整数ιについて、基底Bι及び基底B ιを生成した。そして、公開属性ベクトルx及び秘密属性ベクトルzの要素毎に異なる基底を用いた。しかし、インデックス付けの技法を用いることにより、基底B及び基底Bの1つの双対基底だけを用いて、PHPE方式を実現することが可能である。これにより、Unbounded化することが可能である。
具体的には、例えば、基底B及び基底Bの次元が2次元追加される。そして、追加された2次元を用いて、暗号文CTの要素c’(ι’)及び要素c(ι)と、復号鍵SK(f)の要素k’(j’)及び要素k(j)とに、公開属性ベクトルx及び秘密属性ベクトルzの要素に応じたインデックスが設定される。この際、暗号文CTの要素c’(ι’)及び要素c(ι)と、復号鍵SK(f)の要素k’(j’)及び要素k(j)とには、ペアリング演算が行われた場合に追加した2次元の値が0になるように、インデックスが設定される。
<変形例3>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例3として、各機能構成要素はハードウェアで実現されてもよい。この変形例3について、実施の形態1と異なる点を説明する。
図12を参照して、変形例3に係るセットアップ装置10の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、セットアップ装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
図13を参照して、変形例3に係る暗号化装置20の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、暗号化装置20は、プロセッサ21とメモリ22とストレージ23とに代えて、電子回路25を備える。電子回路25は、各機能構成要素と、メモリ22と、ストレージ23との機能とを実現する専用の回路である。
図14を参照して、変形例3に係る鍵生成装置30の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、鍵生成装置30は、プロセッサ31とメモリ32とストレージ33とに代えて、電子回路35を備える。電子回路35は、各機能構成要素と、メモリ32と、ストレージ33との機能とを実現する専用の回路である。
図15を参照して、変形例3に係る復号装置40の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、復号装置40は、プロセッサ41とメモリ42とストレージ43とに代えて、電子回路45を備える。電子回路45は、各機能構成要素と、メモリ42と、ストレージ43との機能とを実現する専用の回路である。
電子回路15,25,35,45としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)が想定される。
各機能構成要素を1つの電子回路15,25,35,45で実現してもよいし、各機能構成要素を複数の電子回路15,25,35,45に分散させて実現してもよい。
<変形例4>
変形例4として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
プロセッサ11,21,31,41とメモリ12,22,32,42とストレージ13,23,33,43と電子回路15,25,35,45とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
実施の形態2.
実施の形態2では、実施の形態1で説明したPHPE方式を変換したKEM(Key-Encapsulation Mechanism)方式を説明する。実施の形態2では、実施の形態1と異なる点を説明し、同一の点については説明を省略する。
***構成の説明***
<KEM version PHPEの構成>
実施の形態2では、KEM version KP-PHPE方式を説明する。
KEM version KP-PHPE方式は、PHPE.Setupアルゴリズムと、PHPE.Encryptアルゴリズムと、PHPE.KeyGenアルゴリズムと、PHPE.Decryptアルゴリズムとを含む。
PHPE.Setupアルゴリズムは、セキュリティパラメータλと、公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとを入力として、公開パラメータMPKとマスター秘密鍵MSKとを出力する。
PHPE.Encryptアルゴリズムは、公開パラメータMPKと、公開属性ベクトルx∈F n’と、秘密属性ベクトルz∈F とを入力として、暗号文CTと、セッション鍵KEMとを出力する。
PHPE.KeyGenアルゴリズムは、公開パラメータMPKと、マスター秘密鍵MSKと、関数f∈F(q,n’,n) ABP〇IPとを入力として、復号鍵SK(f)を出力する。
PHPE.Decryptアルゴリズムは、公開パラメータMPKと、関数f∈F(q,n’,n) ABP〇IP及び関数fに対する復号鍵SK(f)のペアと、公開属性ベクトルx及び公開属性ベクトルxに関する暗号文CTのペアとを入力として、セッション鍵KEYを出力する。
***動作の説明***
図6から図11を参照して、実施の形態2に係る暗号システム1の動作を説明する。
実施の形態2に係る暗号システム1の動作は、実施の形態2に係る暗号方法に相当する。また、実施の形態2に係る暗号システム1の動作は、実施の形態2に係る暗号プログラムの処理に相当する。
図6を参照して、実施の形態2に係るセットアップ装置10の動作を説明する。
実施の形態2に係るセットアップ装置10の動作は、実施の形態2に係るセットアップ方法に相当する。また、実施の形態2に係るセットアップ装置10の動作は、実施の形態2に係るセットアッププログラムの処理に相当する。
ステップS11とステップS14との処理は、実施の形態1と同じである。
(ステップS12:基底生成処理)
マスター鍵生成部112は、ステップS11で受付されたセキュリティパラメータλと、公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとを入力として、params及び正規直交な双対基底{Bι,B ιι∈[0,n’+n]を生成する。
具体的には、マスター鍵生成部112は、N=n’+n+1、d=6、d,...,d=9として、実施の形態1と同じアルゴリズムGOBを実行して、params及び双対基底{Bι,B ιι∈[n’+n]を生成する。N=n’+n+1、d=6としている点が実施の形態1と異なる。
(ステップS13:マスター鍵生成処理)
マスター鍵生成部112は、ステップS12で生成されたparams及び双対基底{Bι,B ιι∈[0,n’+n]から、公開パラメータMPK及びマスター秘密鍵MSKを生成する。
具体的には、マスター鍵生成部112は、数170に示すように、部分基底B^及び部分基底B^ を生成するとともに、数171に示すように、ι∈[n’+n]の各整数ιについて、部分基底B^ι及び部分基底B^ ιを生成する。
Figure 0007117964000070
Figure 0007117964000071
マスター鍵生成部112は、params及びι∈[0,n’+n]の各整数ιについての部分基底B^ιを公開パラメータMPKとして設定する。また、マスター鍵生成部112は、ι∈[0,n’+n]の各整数ιについての部分基底B^ ιをマスター秘密鍵MSKとして設定する。
つまり、セットアップ装置10は、数172に示すPHPE.Setupアルゴリズムを実行する。
Figure 0007117964000072
図7を参照して、実施の形態2に係る暗号化装置20の動作を説明する。
実施の形態2に係る暗号化装置20の動作は、実施の形態2に係る暗号化方法に相当する。また、実施の形態2に係る暗号化装置20の動作は、実施の形態2に係る暗号化プログラムの処理に相当する。
ステップS23以外の処理は、実施の形態1と同じである。
(ステップS23:暗号化処理)
暗号化部213は、ステップS21で取得された公開パラメータMPKと、ステップS22で取得された公開属性ベクトルx及び秘密属性ベクトルzとを用いて、暗号文CTを生成する。
具体的には、暗号化部213は、以下のように暗号文CTを生成する。
まず、暗号化部213は、数173に示すように、値ω,ξ,φ’をサンプリングする。
Figure 0007117964000073
次に、暗号化部213は、数174に示すように、要素c’(0)を生成する。
Figure 0007117964000074
また、暗号化部213は、g ξをセッション鍵KEMとして設定する。さらに、暗号化部213は、実施の形態1と同様に、ι’∈[n’]の各整数ι’について要素c’(ι’)を生成し、ι∈[n]の各整数ιについて要素c(ι)を生成する。
そして、暗号化部213は、公開属性ベクトルxと、要素c’(0)と、ι’∈[n’]の各整数ι’についての要素c’(ι’)と、ι∈[n]の各整数ιについての要素c(ι)とを暗号文CTとして設定する。
つまり、暗号化装置20は、数175に示すPHPE.Encryptアルゴリズムを実行する。
Figure 0007117964000075
図8を参照して、実施の形態2に係る鍵生成装置30の動作を説明する。
実施の形態2に係る鍵生成装置30の動作は、実施の形態2に係る鍵生成方法に相当する。また、実施の形態2に係る鍵生成装置30の動作は、実施の形態2に係る鍵生成プログラムの処理に相当する。
ステップS34以外の処理は、実施の形態1と同じである。
(ステップS34:鍵生成処理)
鍵生成部314は、ステップS31で取得された公開パラメータMPK及びマスター秘密鍵MSKと、ステップS32で取得された関数fと、ステップS33で生成された定数の集合({σj∈[n],{αj’,γj’j’∈[m])とを用いて、復号鍵SK(f)を生成する。
具体的には、鍵生成部314は、以下のように復号鍵SK(f)を生成する。
まず、鍵生成部314は、数176に示すように、値r,κ’,ζをサンプリングする。
Figure 0007117964000076
次に、鍵生成部314は、数177に示すように、要素k’(0)を生成する。
Figure 0007117964000077
また、鍵生成部314は、j’∈[m]の各整数j’について数178に示すように要素k’(j’)を生成し、j∈[n]の各整数jについて数179に示すように要素k(j)を生成する。
Figure 0007117964000078
Figure 0007117964000079
そして、鍵生成部314は、関数fと、j’∈[m]の各整数j’についての要素β’j’と、j∈[n]の各整数jについての要素βと、要素k’(0)と、j’∈[m]の各整数j’についての要素k’(j’)と、j∈[n]の各整数jについての要素k(j)とを復号鍵SK(f)として設定する。
つまり、鍵生成装置30は、数180に示すPHPE.KeyGenアルゴリズムを実行する。
Figure 0007117964000080
図10を参照して、実施の形態2に係る復号装置40の動作を説明する。
実施の形態2に係る復号装置40の動作は、実施の形態2に係る復号方法に相当する。また、実施の形態2に係る復号装置40の動作は、実施の形態2に係る復号プログラムの処理に相当する。
ステップS44以外の処理は、実施の形態1と同じである。
(ステップS44:復号処理)
復号部414は、ステップS42で取得された暗号文CTと、ステップS43で取得された復号鍵SK(f)とについてペアリング演算を行うことにより、暗号文CTを復号する。
図11を参照して、実施の形態1に係る復号処理を説明する。
ステップS441の処理は、実施の形態1と同じである。
(ステップS442:ペアリング演算処理)
ペアリング演算部416は、数181に示すように、要素c’(0)と、要素k’(0)とについてペアリング演算を行い、演算値Λ’を計算する。
Figure 0007117964000081
また、ペアリング演算部416は、実施の形態1と同様に、j’∈[m]の各整数j’について演算値Λ’j’を計算し、j∈[n]の各整数jについて演算値Λを計算する。
ペアリング演算部416は、演算値Λ’と演算値Λ’j’と演算値Λとをメモリ42に書き込む。
(ステップS443:出力値計算処理)
出力値計算部417は、ステップS441で計算された係数の集合(({Ωj∈[n],{Ω’j’j’∈[m])と、ステップS442で計算された演算値Λ’と演算値Λ’j’と演算値Λとをメモリ42から読み出す。出力値計算部417は、数182に示すように、演算値Λを計算する。
Figure 0007117964000082
出力値計算部417は、数183に示すように、セッション鍵KEMを計算する。
Figure 0007117964000083
つまり、復号装置40は、数184に示すPHPE.Decryptアルゴリズムを実行する。
Figure 0007117964000084
ここで、演算値Λ’と演算値Λ’j’と演算値Λとは、数185に示す通りである。
Figure 0007117964000085
そして、演算値Λは、数186に示す通りである。
Figure 0007117964000086
そのため、RABP〇IP(f,(x,z))=1、つまりf(x,z)=0なら、数187になる。
Figure 0007117964000087
したがって、KEM=g ξ=KEMになる。なお、RABP〇IP(f,(x,z))≠1、つまりf(x,z)≠0なら、数187にならないので、KEM≠g ξ=KEMになる。
***実施の形態2の効果***
以上のように、実施の形態2に係る暗号システム1は、実施の形態1で説明したPHPE方式を変換してKEM方式を実現する。これにより、幅広い述語を許容しつつ、安全性を高くすることが可能なKEM方式を実現することが可能になる。
***他の構成***
<変形例5>
実施の形態2では、KP-PHPE方式を変換してKEM方式を構成した。同様の変形を加えることにより、変形例1で説明したCP-PHPE方式を変換してKEM方式を構成することも可能である。
<変形例6>
実施の形態2で説明したKEM方式についても、変形例2で説明したように、インデックス付けの技法を用いることにより、基底B及び基底Bの1つの双対基底だけを用いて実現することが可能である。
1 暗号システム、10 セットアップ装置、11 プロセッサ、12 メモリ、13
ストレージ、14 通信インタフェース、15 電子回路、111 受付部、112 マスター鍵生成部、113 送信部、20 暗号化装置、21 プロセッサ、22 メモ
リ、23 ストレージ、24 通信インタフェース、25 電子回路、211 マスター鍵取得部、212 ベクトル取得部、213 暗号化部、214 送信部、30 鍵生成装置、31 プロセッサ、32 メモリ、33 ストレージ、34 通信インタフェース、35 電子回路、311 マスター鍵取得部、312 関数取得部、313 PGB計算部、314 鍵生成部、315 送信部、40 復号装置、41 プロセッサ、42 メモリ、43 ストレージ、44 通信インタフェース、45 電子回路、411 マスター鍵取得部、412 暗号文取得部、413 復号鍵取得部、414 復号部、415 余因子計算部、416 ペアリング演算部、417 出力値計算部。

Claims (9)

  1. 双対ベクトル空間における双対基底である基底B及び基底Bのうちの基底Bに、属性ベクトルと、ABP(Arithmetic Branching Programs)の述語ベクトルとの一方が設定された暗号文を取得する暗号文取得部と、
    前記基底Bに、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得する復号鍵取得部と、
    前記暗号文取得部によって取得された前記暗号文と、前記復号鍵取得部によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号部と
    を備える復号装置。
  2. 前記述語ベクトルの要素は、関数fを計算するABPを表す行列表現Lと、最後の行の要素が1である行列との積によって得られた要素である
    請求項1に記載の復号装置。
  3. 前記復号部は、
    前記行列表現Lの最後の列の要素の余因子を計算する余因子計算部と、
    前記暗号文と前記復号鍵とについてペアリング演算を行うことにより演算値を計算するペアリング演算部と、
    前記余因子計算部によって計算された前記余因子と、前記ペアリング演算部によって計算された前記演算値とから、前記暗号文を復号して得られる出力値を計算する出力値計算部と
    を備える請求項2に記載の復号装置。
  4. 前記出力値計算部は、内積と前記余因子とから、前記関数fに前記属性ベクトルを入力した値を計算して、計算された値により前記出力値を計算する
    請求項3に記載の復号装置。
  5. 前記暗号文取得部は、数1に示す暗号文CTを取得し、
    前記復号鍵取得部は、数2に示す復号鍵SK(f)を取得し、
    前記ペアリング演算部は、数3に示すようにペアリング演算を行うことにより、前記演算値Λ’,Λを計算し、
    前記出力値計算部は、数4に示すように値Λを計算して、前記値Λの値に応じて出力値を計算する
    請求項4に記載の復号装置。
    Figure 0007117964000088
    Figure 0007117964000089
    Figure 0007117964000090
    Figure 0007117964000091
  6. 前記暗号文取得部は、数5に示す暗号文CTを取得し、
    前記復号鍵取得部は、数6に示す復号鍵SK(f)を取得し、
    前記ペアリング演算部は、数7に示すようにペアリング演算を行うことにより、前記演算値Λ’,Λ’,Λを計算し、
    前記出力値計算部は、数8に示すように値Λを計算して、前記値ΛΛ’を前記出力値として計算する
    請求項4に記載の復号装置。
    Figure 0007117964000092
    Figure 0007117964000093
    Figure 0007117964000094
    Figure 0007117964000095
  7. 双対ベクトル空間における双対基底である基底B及び基底Bのうちの基底Bに、属性ベクトルと、ABP(Arithmetic Branching Programs)の述語ベクトルとの一方を設定して暗号文を生成する暗号化装置と、
    前記基底Bに、前記属性ベクトルと前記述語ベクトルとの他方を設定して復号鍵を生成する鍵生成装置と、
    前記暗号化装置によって生成された前記暗号文と、前記鍵生成装置によって生成された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号装置と
    を備える暗号システム。
  8. 暗号文取得部が、双対ベクトル空間における双対基底である基底B及び基底Bのうちの基底Bに、属性ベクトルと、ABP(Arithmetic Branching Programs)の述語ベクトルとの一方が設定された暗号文を取得し、
    復号鍵取得部が、前記基底Bに、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得し、
    復号部が、前記暗号文取得部によって取得された前記暗号文と、前記復号鍵取得部によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号方法。
  9. 暗号文取得部が、双対ベクトル空間における双対基底である基底B及び基底Bのうちの基底Bに、属性ベクトルと、ABP(Arithmetic Branching Programs)の述語ベクトルとの一方が設定された暗号文を取得する暗号文取得処理と、
    復号鍵取得部が、前記基底Bに、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得する復号鍵取得処理と、
    復号部が、前記暗号文取得処理によって取得された前記暗号文と、前記復号鍵取得処理によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号処理と
    を行う復号装置としてコンピュータを機能させる復号プログラム。
JP2018188781A 2018-10-04 2018-10-04 復号装置、暗号システム、復号方法及び復号プログラム Active JP7117964B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018188781A JP7117964B2 (ja) 2018-10-04 2018-10-04 復号装置、暗号システム、復号方法及び復号プログラム
PCT/JP2019/031129 WO2020070973A1 (ja) 2018-10-04 2019-08-07 復号装置、暗号システム、復号方法及び復号プログラム
US17/207,087 US11909873B2 (en) 2018-10-04 2021-03-19 Decryption device, cryptographic system, and decryption method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018188781A JP7117964B2 (ja) 2018-10-04 2018-10-04 復号装置、暗号システム、復号方法及び復号プログラム

Publications (3)

Publication Number Publication Date
JP2020056960A JP2020056960A (ja) 2020-04-09
JP2020056960A5 JP2020056960A5 (ja) 2021-09-09
JP7117964B2 true JP7117964B2 (ja) 2022-08-15

Family

ID=70054732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018188781A Active JP7117964B2 (ja) 2018-10-04 2018-10-04 復号装置、暗号システム、復号方法及び復号プログラム

Country Status (3)

Country Link
US (1) US11909873B2 (ja)
JP (1) JP7117964B2 (ja)
WO (1) WO2020070973A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6971917B2 (ja) * 2018-06-11 2021-11-24 三菱電機株式会社 復号装置、暗号化装置及び暗号システム
JP7233265B2 (ja) * 2019-03-15 2023-03-06 三菱電機株式会社 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232475A (ja) 2010-04-27 2011-11-17 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP2012133214A (ja) 2010-12-22 2012-07-12 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5814880B2 (ja) * 2012-07-31 2015-11-17 三菱電機株式会社 暗号システム、暗号方法、暗号プログラム及び復号装置
JP6227187B2 (ja) * 2015-02-20 2017-11-08 三菱電機株式会社 データ保管装置及びデータ更新システム及びデータ処理方法及びデータ処理プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232475A (ja) 2010-04-27 2011-11-17 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP2012133214A (ja) 2010-12-22 2012-07-12 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BEIMEL, A. and GAL, A.,On Arithmetic Branching Programs,Journal of Computer and System Sciences,Vol.59, No.2,1999年10月,pp.195-220
WEE, H.,Attribute-Hiding Predicate Encryption in Bilinear Groups, Revisited,Lecture Notes in Computer Science,Vol.10677,2017年,pp.206-233

Also Published As

Publication number Publication date
WO2020070973A1 (ja) 2020-04-09
JP2020056960A (ja) 2020-04-09
US11909873B2 (en) 2024-02-20
US20210234676A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
JP6934963B2 (ja) データを暗号化する方法およびシステム
JP6083234B2 (ja) 暗号処理装置
JP6391900B1 (ja) 準同型推論装置、準同型推論方法、準同型推論プログラム及び秘匿情報処理システム
JP5337238B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム及び記録媒体
JP6413743B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP5814880B2 (ja) 暗号システム、暗号方法、暗号プログラム及び復号装置
WO2019130528A1 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
JP6522263B2 (ja) 準同型演算装置、暗号システム及び準同型演算プログラム
US11431489B2 (en) Encryption processing system and encryption processing method
JP2019168590A (ja) 情報処理方法及び情報処理システム
KR20230141845A (ko) 임계값 키 교환
JP5732429B2 (ja) 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム
US11909873B2 (en) Decryption device, cryptographic system, and decryption method
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
JP6059347B2 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
JP7233265B2 (ja) 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム
WO2019239776A1 (ja) 復号装置、暗号化装置及び暗号システム
JP7325689B2 (ja) 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム
WO2019016916A1 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
JP6093719B2 (ja) 暗号化装置、復号装置、およびプログラム
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
WO2017203743A1 (ja) 暗号化装置、復号装置及び暗号システム
JP6189788B2 (ja) 鍵生成装置、再暗号化装置、およびプログラム
JP7158635B2 (ja) 暗号システム、暗号化装置、復号装置及び鍵生成装置
KR101932032B1 (ko) 선형 길이의 암호문을 가지는 다항식 함수 암호화 방법

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20181009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20181009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210802

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210802

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: 20220705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220802

R150 Certificate of patent or registration of utility model

Ref document number: 7117964

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150