JP5841955B2 - 関数型暗号システム及び方法 - Google Patents

関数型暗号システム及び方法 Download PDF

Info

Publication number
JP5841955B2
JP5841955B2 JP2013008400A JP2013008400A JP5841955B2 JP 5841955 B2 JP5841955 B2 JP 5841955B2 JP 2013008400 A JP2013008400 A JP 2013008400A JP 2013008400 A JP2013008400 A JP 2013008400A JP 5841955 B2 JP5841955 B2 JP 5841955B2
Authority
JP
Japan
Prior art keywords
predicate
tree
key generation
leaves
key
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
JP2013008400A
Other languages
English (en)
Other versions
JP2014139623A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013008400A priority Critical patent/JP5841955B2/ja
Publication of JP2014139623A publication Critical patent/JP2014139623A/ja
Application granted granted Critical
Publication of JP5841955B2 publication Critical patent/JP5841955B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、ネットワーク上の認証において、複数のサーバが同時にユーザをセキュアに認証する技術に関する。
以下、関数型暗号について説明する。そのために、まずIDベース暗号について説明する。
(狭義の)IDベース暗号とは、公開鍵の照会といった予備通信を必要とせず、受信者識別子(ID)を公開鍵として暗号化が可能な公開鍵暗号系のことである。IDベース暗号は、一般に以下の4つのアルゴリズムから構成される。
Setup(1k)→(pk,sk):セットアップ―セキュリティパラメータ1kを入力とし公開パラメタpkとマスター鍵skを出力する確率的多項式時間アルゴリズム。
KeyGen(sk,i)→ski:鍵生成―マスター鍵skと鍵識別子iを入力とし、その鍵識別子iに対応する秘密鍵skiを出力する確率的多項式時間アルゴリズム。
Enc(pk,j,m)→cj:暗号化―公開パラメータpkと受信者識別子jと平文mを入力とし、暗号文cjを出力する確率的多項式時間アルゴリズム。
Dec(ski,cj)→m’:復号―秘密鍵skiと暗号文cjとを入力とし、平文m’を出力する確率的多項式時間アルゴリズム。
関数型暗号(functional encryption)はIDベース暗号の拡張であり、両者に構文的な違いは無い。すなわち、関数型暗号も上記の4つのアルゴリズムから構成される。
m’=Dec(pk,KeyGen(sk,i),Enc(pk,j,m))
とすると、IDベース暗号では鍵識別子iと受信者識別子jが一致した時、すなわちi=jの時、圧倒的確率でm’=mとなり復号できる。IDベース暗号では公開鍵(受信者識別子) と秘密鍵(鍵識別子)は必ず1:1に対応している。
一般化された暗号系ではこの1:1の関係は無く、鍵識別子iと受信者識別子jが何らかの特別な関係を満たす場合に復号できるよう拡張される。例えば一般的な識別子の代わりに、顔写真のような曖昧なデータを使用したいとする。このような時はi=jという等式の代わりにi≒j(何らかの意味で識別子が近い)という関係が満たされる場合に復号できる事が望まれる。このとき、鍵識別子iに対応する受信者識別子jは必ずしも一意ではない。
拡張された暗号では1つの秘密鍵がいろいろな公開鍵(受信者識別子)に対応したり、1つの公開鍵(受信者識別子)がいろいろな秘密鍵に対応して、暗号系が構成される。このような一般化を進めていくと、鍵識別子iと受信者識別子jとの間に、ある特別な関係Rが満たされる場合、すなわちR(i,j)=Trueなる場合にのみ復号できる暗号の概念が生まれる。関係とは2つの文字列を入力とし、真理値を出力する関数の事である。関係Rはアプリケーション毎に異なる関数であり、アプリケーションを設計する度に暗号を設計し直す事は現実的ではないので、さまざまな目的に応用可能な万能のRを実現する暗号、すなわち関数型暗号の概念に到達する。関数型暗号では、上記i,jの一方をプログラム(述語)、もう一方をそのプログラム用の入力データ(述語変数の値)と見なし、入力データがプログラムによって受理されるか否かを判定するR を実現する。鍵識別子iを述語変数、受信者識別子jを述語とするような関数型暗号を暗号文ポリシー関数型暗号(CP-FE:Ciphertext Policy Functional Encryption)と呼ぶ。
以下、分権複数局関数型暗号について説明する。
上記の関数型暗号(IDベース暗号)の模型では、単一の鍵生成局があらゆるユーザに共通の変数を定義し、全ての受信者がその鍵生成局を照会して、変数の値を決定してもらう。もし仮に世界中のユーザが利用可能な暗号システムを構築しようと考えると、世界で唯一の鍵生成局が存在し、世の中の全ての鍵を握りしめ、政治、経済、軍事といった国家の重要機密から、だれか個人の銀行口座や逢瀬の履歴といったありとあらゆる秘密に自由にアクセス可能な超権力を握ってしまう事になる。このような世界観に基づき設計された暗号アプリケーションは現実世界を無理なく抽象しているとは言い難く、超権力の成立を避けるために暗号プロトコルの適用領域が自ずと狭まってしまう。
現実世界では、政府当局、外国政府、軍当局、通貨当局、法務当局、外務当局、自治体、公安、郵便局、電話局、銀行、大学、信販会社、ネットワーク事業者、SNS事業者、といった具合に複数の権力機関が勝手バラバラに成立し、それぞれが独立に秘密を管理している。こうした世界観に基づき暗号プロトコルを設計できれば超権力の成立を心配せずに適用領域を拡大できる。
すなわち分権複数局関数型暗号を考える必要がある。分権複数局関数型暗号は暗号文ポリシー関数型暗号の拡張概念である。分権複数局関数型暗号ではユーザに対し鍵生成局はその鍵生成局が管理する述語変数の値に基づいて秘密鍵を発行する。鍵生成局は独立に複数存在し、暗号化時は複数の鍵生成局がそれぞれ独立に定義した述語変数を組み合わせて使用して述語を定義し、それを受信者識別子として暗号化する。
例えば武蔵野市役所、三鷹市役所、東京都公安委員会がそれぞれ鍵生成局を運営していると仮定する。武蔵野市在住のアリスは武蔵野市役所から武蔵野市在住属性を持つ秘密鍵を与えられているとする。三鷹市在住のボブは三鷹市役所から三鷹市在住属性を持つ秘密鍵を与えられているとする。また、アリスは東京都公安委員会から運転免許証所有属性を持つ秘密鍵を与えられているとする。
仮に、三鷹市在住かつ運転免許所有者にのみ復号可能な暗号文を作成したい場合、暗号文作成者は三鷹市役所の公開パラメータ及び東京都公安委員会の公開パラメータを用いて、該当する述語の暗号文を作成する。アリスやボブはこの述語を満足する秘密鍵を持たないので、暗号文を復号する事はできない。
一般に各鍵生成局が、全く予備連絡を行なわない独立な組織であるとき、アリスとボブが結託して、それぞれの鍵を持ち寄ると、実際にはそのような属性は持たないにも関わらず三鷹市在住でかつ運転免許証所を持っているような秘密鍵の組を構成する事ができてしまう。
安全な分権複数局関数型暗号では、このような結託攻撃を防御するため、鍵生成局は大域検証可能識別子(GID:Globally veriable IDentier)と呼ばれる、ユーザ固有の識別子を用いて秘密鍵を発行する。そして秘密鍵が異なるGID を持つとき、組み合わせて利用する事ができないよう方式が設計される(例えば、非特許文献1参照。)。
分権複数局関数型暗号は次の5 つのアルゴリズム(GSetup; ASetup; AttrGen; Enc; Dec)から構成される。
GSetup(1λ)→$gparam:大域セットアップ―セキュリティパラメータ1kを入力とし共通参照文字列gparamを出力する確率的多項式時間アルゴリズム。「→$」「←$」は、ランダムに選択することを表す。
ASetup(gparam,aparam)→$(ask,apk):局セットアップ―共通参照文字列gparam及び局パラメータaparamを入力とし局公開パラメータapkと局マスター鍵askを出力する確率的多項式時間アルゴリズム。
AttrGen(ask,gid,i)→$ski:属性生成―共通参照文字列gparam及び局マスター鍵ask及びGID gid及び鍵識別子(述語変数の値)iを入力とし、gid,iに対応する秘密鍵skiを出力する確率的多項式時間アルゴリズム。
Enc({apk1,…,apkn},j,m)→$cj:暗号化―局公開パラメータapk1,…,apkn及び受信者識別子j及び平文mを入力とし、暗号文cjを出力する確率的多項式時間アルゴリズム。
Dec({ski1,…,skin’},cj)→$m’:復号―秘密鍵ski1,…,skin’及び暗号文cjを入力とし、平文m’を出力する確率的多項式時間アルゴリズム。分権複数局関数型暗号では暗号文の受信者は鍵識別子(述語変数の値)i1,…,in’を持つ秘密鍵の集合{ski1,…,skin’}を所有しており、述語変数の値i1,…,in’が述語jを満足するなら圧倒的確率でm=m’となる。
Tatsuaki Okamoto and Katsuyuki Takashima, "Decentralized Attribute-Based Signatures", 2011,
ところで、一般に、ある鍵生成局が2つ以上の属性を管理する事がある。例えば東京都公安委員会が運転免許証所有属性の他に無事故属性も管理しているとする。
さらに、ある鍵生成局が単一のユーザに2回以上秘密鍵を発行する事がある。例えば東京都公安委員会が運営する鍵生成局は免許が更新される際には秘密鍵も更新するであろう。このとき、アリスに対して元のGIDと同じGIDで秘密鍵を発行すると仮定すると、アリスは自分1人で2つの秘密鍵を持っているので結託攻撃のように2つの秘密鍵を組み合わせて実際には正しくない属性の鍵を構成できてしまうという問題がある。
もし、このような鍵再発行攻撃を防御する為にアリスに対して元のGIDと異なるGIDを用いて鍵発行を行なうと、新たな秘密鍵はアリスが既に持っている武蔵野市在住属性の秘密鍵と組み合わせて使用する事ができなくなってしまう。
この発明は、ある鍵生成局が異なるタイミングで発行した2つの秘密鍵を組み合わせることによりユーザが正統性を有しない鍵を構成する攻撃である鍵再発行攻撃を防ぐ関数型暗号システム及び方法を提供することを目的とする。
この発明の一態様による関数型暗号システムは、単調回路構成法による線形秘密分散を用いた関数型暗号システムにおいて、上記線形秘密分散において用いられる述語Sを表現する木を構成する複数の葉のそれぞれには、そのそれぞれの葉に対応するリテラル述語に対応する鍵生成局装置が対応付けされており、ある鍵生成局装置に対応する縮退木を、上記複数の葉の中のその鍵生成局装置に対応する葉で構成される少なくとも1つの木とし、各鍵生成局装置に対応する各縮退木の葉に対応する乱数を用いて上記述語Sの中の上記各縮退木の部分の述語により計算される上記各縮退木の根の値が0となるように、上記複数の葉に対応する乱数を生成し、これらの生成された乱数を用いて平文を暗号化する暗号化装置と、を備える。
鍵生成局毎に局所的に決定される識別子、すなわち局所識別子(LID:Local IDentier)を導入することにより、異なるLID同士を組み合わせる事ができないように暗号が構成でき、鍵再発行攻撃を防御することができる。
関数型暗号システム装置の例を説明するためのブロック図。 関数型暗号システム方法の例を説明するためのフローチャート。 GIDの実現の例を説明するための図。 LIDの実現の例を説明するための図。 LIDの実現の例を説明するための図。 LIDの実現の例を説明するための図。 データ構造の例を説明するための図。
以下、図面を参照して、関数型暗号システムの実施形態を説明する。
まず、関数型暗号の述語記述機構について説明する。
背景技術の欄では、関数型暗号が、プログラム(述語)とデータ(述語変数の値)を入力とし、1bitの出力を持つある種のプログラム評価機械として機能し、出力がTrue の場合に暗号が復号できる事を説明した。ここでは、関数型暗号の実装において、プログラム(述語)やデータ(述語変数の値) がどのようなデータ構造を持つかについて説明する。
関数型暗号の述語記述機構は、
(1) 内積ベクトル空間に基づく原始述語(リテラル述語)記述機構
(2) 線形秘密分散に基づく論理式記述機構
の二種類の機構によって構成されている。(1)は(2)より低位のレイヤーに位置し、(1)で記述された複数の述語を(2)で合成して1つの大きな述語を構成する。図7にデータ構造を例示する。
以下、(1)内積ベクトル空間に基づく原始述語記述機構について説明する。
X1,X2をそれぞれ変数の集合とする。述語Q(X1),R(X2)及び多項式g(X1),h(X2)がそれぞれ
{Q(X1)=True}⇔{g(X1)=0},{R(X2)=True}⇔{h(X2)=0}
なる関係を持つとき、rを十分大きい乱数として、多項式の値域や定義域に関する妥当な仮定の下で、
{Q(X1)∨R(X2)=True}⇔{g(X1)h(X2)=0},{Q(X1)∧R(X2)=True}⇔{g(X1)+rh(X2)=0}
が成り立つ。したがって、述語Q(X1),R(X2)の単調合成(∨と∧だけからなる合成)は妥当な仮定の下でg(X1),h(X2)の積と線形和による合成多項式と同一視できる。さらに、述語変数xに対してx∈{I0,I1}と仮定して良い場合は、より強い事が言える。
P(x)=(x=I1),N(x)=(x=I0)
なる述語P(x)及びN(x)を考える。任意のb∈{0,1}についてP(Ib)=bであるから、変数xと述語P(x)を同一視すればxを1bitの論理変数と見なす事ができる。この時、任意のb∈{0,1}についてN(Ib)=¬P(Ib)であるから、論理式¬xと述語N(x)を同一視できる。ところで、
p(x)=(x-I1),n(x)=(x-I0)
なる多項式p(x)及びn(x)を考えると、
{P(x)=True}⇔{p(x)=0},{N(x)=True}⇔{n(x)=0}
であるから論理式{xi,¬xi}i=1,…,nの単調合成は妥当な仮定の下で{p(xi),n(xi)}i=1,…,nの積と線形和による合成多項式と同一視できる。{xi}i=1,…,nの任意の樹状論理回路はド・モルガンの法則を再帰的に用いて{xi,¬xi}i=1,…,nの単調合成で表現できる。したがって、{xi}i=1,…,nの任意の論理式は妥当な仮定の下で{p(xi),n(xi)}i=1,…,nの積と線形和による合成多項式と同一視できる。
ところでKを体とすれば、多項式環K[x1,…,xn]は一般にx1,…,xnの単項式を基底とす
るK上ベクトル空間であるから、述語変数の集合{x1,…,xn}と、このベクトル空間を同一視すれば、x1,…,xnの多項式で表現される述語はベクトル空間の元と見なすこと事ができる。単項式を基底とするベクトル空間は、一般には無限次元なので計算機向きではないが、記述可能な述語の範囲に制限を設ければ述語を有限次元部分空間上の元とする事ができる。例えば1変数述語F(x)がn次多項式f(x)と同一視できるとする。f(x)は単項式基底x=(x0,x1,…,xn)と係数ベクトルf=(f0,f1,…,fn)を使って、f(x)=f・xと記述できる。この時、n+1次以上の多項式と同一視できる述語は記述できない。(x1=I1)∨…∨(xn=In)型の述語をこの形式で表現する場合、ベクトルの次元が変数の数に対して指数的に大きくなってしまうので、そのような場合は(2)線形秘密分散に基づく述語記述機構を用いる。非特許文献1の関数型暗号でも、この方法を用いて大きな述語を構成している。
内積ベクトル空間に基づく述語記述機構においては、ベクトル空間(単項式基底)を指定することによって、述語変数(x1,…,xn)を指定する。述語変数の具体的な値(x1,…,xn)=(I1,…,In)は、上記で指定された単項式基底に変数の値を代入したベクトルで指定する。例えば、上記の1変数の例の場合x=2なるインスタンスは(x0,x1,…,xn)=(20,21,…,2n)となる。述語は係数のベクトルで指定する。多項式表現が指定した部分空間に収まらないような述語は記述不可能とする。
以下、(2) 線形秘密分散に基づく論理式記述機構について説明する。
ここでは、内積ベクトル空間に基づく述語記述機構で記述された述語(ベクトル)を、「原始述語(primitive predicate)」と呼ぶことにし、原始述語及びその否定を「リテラル述語(literal predicate)」と呼ぶことにする。関数型暗号では、複数のリテラル述語を線形秘密分散に基づく述語記述機構で単調合成して一つの述語を構成する。原始述語の任意の論理式はド・モルガンの法則を再帰的に用いてリテラル述語の樹状単調合成で表現できる。
線形秘密分散に基づく述語記述機構では、述語の合成は線形秘密分散の考え方に基づいて行われる。例えば、秘密f1がf2,f3という分散値に2-out-of-2秘密分散されているとき、即ちs1+f2+f3=0の時はf2とf3の両方の変数の値が揃わないとf1の値を復元できない。f2,f3がそれぞれ何らかの意味で暗号化されているとき。秘密f1を復元する為にはその両方の暗号を復号する必要がある。これは述語の∧を実現しているのに等しい。あるいは、秘密f1がf2,f3という分散値に1-out-of-2秘密分散されているとき、すなわちf1=f2=f3の時は、どちらか一方の変数が揃えばf1を復元できる。f2,f3がそれぞれ暗号化されているとき、秘密f1を復元する為にはそのどちらか一方の暗号を復号すれば良い。これは述語の∨を実現しているのに等しい。このような方法は、単純な∧や∨だけでなく任意の単調述語について構成する事ができる。例えば、図4から6に示すように、ANDやOR等のゲートを節とする樹表現で述語を記述したとき、根から葉に向かって下り、ゲートに当たる度に線形秘密分散で必要な独立変数を各枝に導入して行けば、葉を独立変数の線形和で記述できる。葉変数の幾つかが利用可能で、残りが利用不可能な場合に、利用可能な葉変数の線形和で根変数を記述できるならその単調回路は受理を出力し、記述できないなら拒絶を出力すると解釈すると、この葉変数を独立変数で記述する行列はANDやORの木構造と同一視できる。この方法を用いると任意の述語は幾つかのリテラル述語と線形秘密分散を表現する行列によって記述できる。関数型暗号の述語とはこの線形秘密分散行列とリテラル述語の組である。
以下、線形秘密分散を用いたLIDの実現について説明する。
参考文献1では関数型暗号でGIDを実現する為に、上記の単調回路構成法で求めた行列を用い、もし、述語で使用している全ての鍵のGIDが一致しているなら、回路を評価すると最終的に上手く消去されるような乱数を用いて暗号文を構成している。これについては、例えば図3を参照のこと。
〔参考文献2〕David Freeman, Michael Scott and Edlyn Teske, ”taxonomy of pairing-friendly elliptic curves”, 2006,
図3において、s’1,…,s’7はGIDに対応する乱数である。これらの乱数s’1,…,s’7に基づいて述語Sに対応する木の根の値を求めたときに0となるように、乱数s’1,…,s’7を定める。例えば、f’1=0とし、f’2,f’3,f’4,f’5,f’6をランダムに定める。そして、(f’1,f’2,f’3,f’4,f’5,f’6)Tに、述語Sを表す行列Mを乗算することにより、(s’1,…,s’7)Tを求める。言い換えれば、(f’1,f’2,f’3,f’4,f’5,f’6)Tから(s’1,…,s’7)Tを求めることができるように、行列Mは定義される。
単純回路構成による線形秘密分散を用いた関数型暗号システムにおいては、復号時に復号装置が有する秘密鍵(述語変数の値)に基づいてf’1に対応する値が計算され、この計算されたf’1が平文m’のノイズとなるように構成されている。GIDが一致している場合には、換言すればf’1=0となるように設定されたs’1,…,s’7に基づいて平文m’を復号することができる場合には、f’1=0となりノイズが0となるため、正しく平文m’を復号することができる。GIDが一致しない場合は、換言すればf’1=0となるように設定されたs’1,…,s’7に基づいて平文m’を復号することができない場合には、f’1≠0となりノイズが0とならないため、正しく平文m’を復号することができない。
このGIDの仕組みと似た仕組みを用いてLIDを実現する。LIDを実現する為に、図4から図6に例示するように、回路を評価している途中で上手く消去されるような乱数を使用して暗号を構成する。図4から図6では同じ鍵生成局装置によって作成された述語変数で定義されたリテラル述語が接合される葉をグループ化している。
線形秘密分散において用いられる述語Sを表現する木を構成する複数の葉のそれぞれには、そのそれぞれの葉に対応するリテラル述語に対応する鍵生成局装置が対応付けされている。図4から図6では、(s”1,s”2,s”4,s”7)がそれぞれ対応付けされている葉に対応するリテラル述語には鍵生成局装置2−1が対応付けされており、(s”3,s”5,s”6)がそれぞれ対応付けされている葉に対応するリテラル述語には鍵生成局装置2−2が対応付けされている。
ここで、述語Sを表現する木は、鍵生成局装置2−1に対応する葉で構成される少なくとも1つの縮退木と、鍵生成局装置2−2に対応する葉で構成される少なくとも1つの縮退木とに分けることができる。図5に記載されているように、(1)注目している鍵生成局装置の変数を使用する葉は有効、(2)それ以外の鍵生成局装置の変数を使用する葉は無効
(3)1個でも有効な子ノードがあるANDノードは有効、(4)1個でも無効な子ノードがあるORノードは無効、(5)子ノードが全部無効なANDノードは無効、(6)子ノードが全部有効なORノードは有効という(1)から(6)のステップにより、縮退木を決めることができる。
図5に鍵生成局装置2−1に対応する縮退木を示す。鍵生成局装置2−1に対応する縮退木は、乱数s”1,s”2,s”4がそれぞれ対応付けられている葉から構成される縮退木、及び、乱数s”7が対応付けられている構成される縮退木である。同様に、図6に鍵生成局装置2−2に対応する縮退木を示す。図6に鍵生成局装置2−2に対応する縮退木は、乱数s”3,s”5がそれぞれ対応付けられている葉から構成される縮退木、及び、乱数s”6が対応付けられている構成される縮退木である。
このように、ある鍵生成局装置に対応する縮退木を、述語Sを表す木を構成する複数の葉の中のその鍵生成局装置に対応する葉で構成される少なくとも1つの木とする。
そして、それらの縮退木の根に注目する。縮退木の根に相当する部分の値が0となるよう葉の乱数を決定する為、図G5、図G6に示すように、上記の単調回路構成法を縮退木毎に実行する。求めた行列を用い乱数s”1,…,s”7を決定する。
すなわち、各鍵生成局に対応する各縮退木の葉に対応する乱数を用いて述語Sの中の上記各縮退木の部分の述語により計算される上記各縮退木の根の値が0となるように、上記複数の葉に対応する乱数を生成する。
図5の例では、鍵生成局装置2−1に対応する、乱数s”1,s”2,s”4がそれぞれ対応付けられている葉から構成される縮退木は、f”1,f”2を乱数として、s”1=f”2, s”2=f”1-f”2, s”1=-f”2とすれば、その縮退木の根の値を0とすることができる。また、鍵生成局装置2−1に対応する、乱数s”7が対応付けられている構成される縮退木はs”7=0とすることにより、その縮退木の根の値を0とすることができる。
図6の例では、鍵生成局装置2−2に対応する、乱数s”3,s”5がそれぞれ対応付けられている葉から構成される縮退木は、f”3を乱数として、s”3=f”3,s”5=-f”3とすることにより、その縮退木の根の値を0とすることができる。また、鍵生成局装置2−2に対応する、乱数s”6が対応付けられている構成される縮退木は、s”6=0とすることにより、その縮退木の根の値を0とすることができる。
GIDのときと同様に、単純回路構成による線形秘密分散を用いた関数型暗号システムにおいては、復号時に復号装置が有する秘密鍵(述語変数の値)に基づいて各縮退木に対応する根の値が計算され、この計算された根の値が平文m’のノイズとなるように構成されている。LIDが一致している場合には、換言すれば各縮退木の根の値=0となるように設定された乱数(例えばs”1,…,s”7)に基づいて平文m’を復号することができる場合には、各縮退木の根の値=0となりノイズが0となるため、正しく平文m’を復号することができる。LIDが一致しない場合は、換言すれば各縮退木の根の値=0となるように設定された乱数(例えばs”1,…,s”)に基づいて平文m’を復号することができない場合には、各縮退木の根の値≠0となりノイズが0とならないため、正しく平文m’を復号することができない。
このよういに、縮退木の中でLID が一致しない場合は回路を最後まで評価しても乱数が消去されずに暗号が復号できない。一方、違うグループでは異なるLIDでも、乱数が消去され暗号が復号できる。
関数型暗号システムは、図1に示すように、標準化機関装置1、鍵生成局装置2、暗号化装置3、復号装置4を例えば含む。鍵生成局装置2及び復号装置4は複数存在してもよい。
標準化機関装置1は、セキリュティパラメータ1λから共通参照文字列gparamを生成する(ステップS1)。標準化機関装置1は、例えば以下に例示するGSetupアルゴリズムにより、共通参照文字列gparamを生成する。生成された共通参照文字列gparamは、誰でも参照可能な形で公開される。共通参照文字列gparamに何らかの落し戸が仕掛けられることを避けるため、共通参照文字列gparamはその生成過程が公開検証可能であることが望ましい。
GSetupは、セキュリティパラメータ1λを入力とし、共通参照文字列gparam1を出力する確率的多項式時間アルゴリズムである。GSetupアルゴリズムにおいて、λは所定の正の整数であり、1λはセキュリティパラメータであり、qは所定の素数であり、G1,GTは位数qの巡回群であり、eはペアリング関数であり、Gは、gbpg(1λ)はセキュリティパラメータ1λからq,G1,GT,G,eを生成するための関数である。
GSetup(1λ){
paramG:=(q,G1,GT,G,e)←$gbpg(1λ);
H←${RandomOracle:{0,1}*→G1};
g0←H(0λ);
g1←H(0λ-11);
gT←e(g0,g1);
gparam←(paramG,H,g0,g1,gt);
return gparam;
}
鍵生成局装置2は、共通参照文字列gparamを用いて、局公開パラメータapkとマスター鍵askを生成する(ステップS2)。生成されたマスター鍵askはその鍵生成局装置2に秘密に保持され、生成された局公開パラメータapkは誰でも参照可能な形で公開される。鍵生成局装置2が複数ある場合には、複数の鍵生成局装置2のそれぞれが、局公開パラメータapkとマスター鍵askを生成する処理を行う。
鍵生成局装置2は、例えば以下に例示するASetupアルゴリズムにより、局公開パラメータapkとマスター鍵askを生成する。ASetupは、共通参照文字列gparamを入力とし、局公開パラメータapkとマスター鍵askを出力する確率的多項式時間アルゴリズムである。ASetupアルゴリズムにおいて、dはその鍵生成局装置2が管理する述語変数の数であり、niはi番目の述語変数の次元である。
ASetup(gparam){
for i∈{1,…,d} do {
(vski,vari)←GenerateVar(gparam,ni);
}
ask←(vsk1,…,vskd);
apk←(var1,…,vard);
return (ask,apk)
}
ASetupアルゴリズムのサブルーチンであるGenerateVarは例えば以下のように示される。nは、上記のASetupアルゴリズムにおけるniを意味する。このように、サブルーチンの中では、i,j等のインデックスを省略することがある点に留意する。他のアルゴリズムのサブルーチンにおいても同様である。
nは所定の正の整数である。GLは各要素がFqであり逆行列を有するN×Nの正則行列である。i=1,…,Nとして、Biは、行列Bを構成するi番目の列ベクトルのことである。
GenerateVar(gparam,n){
(paramG,H,g0,g1,gt)←gparam;
N←7n+1;
X←$GL(N,Fq);
B←X・g0;
B^←(B1,…,B3n,BN);
Y←(X-1)T;
var←(B^,n,gparam);
vsk←(Y,var);
}
鍵生成局装置2は、マスター鍵ask、GID gid及び鍵識別子(述語変数への値の割り当て)xに基づいて、対応する秘密鍵skxを生成する(ステップS3)。生成された秘密鍵skxは、gidに対応するユーザが有するコンピュータである復号装置4に送信される。鍵生成局装置2及びユーザが複数ある場合には、各鍵生成局装置2が各ユーザに対して、秘密鍵skxを生成する処理を行う。
鍵生成局装置2は、例えば以下に例示するAttrGenアルゴリズムにより、秘密鍵skxを生成する。AttrGenは、マスター鍵ask、GID gid及び鍵識別子(述語変数への値の割り当て)xに基づいて、対応する秘密鍵skxを生成する確率的多項式時間アルゴリズムである。x:=((t1,x 1),…,(ta,x a))は、述語変数への値の割り当てリストである。i=1,…,aとして、tiはリストのインデックス(代入されるべき述語変数の添え字)であり、xiはそのインデックスで表される述語変数に割り当てられる値又はベクトルである。このように、鍵生成局装置2は、秘密鍵生成の度に異なる局所識別子Glidを発行し、その発行された局所識別子Glidについての情報を含む秘密鍵を生成する。また、鍵生成局装置2は、生成する秘密鍵を送信するユーザの大域検証可能識別子Ggidを更に発行し、その発行された大域検証可能識別子Ggidについての情報を更に含む秘密鍵を生成する。
AttrGen(ask,gid,x){
(vsk1,…,vskd)←ask;
((t1,x 1),…,(ta,x a))←x;
Ggid←H(gid);
Glid$G1;
for i∈{1,…,a} do {
j←ti;
ki$AssignVar(vskj,Ggid,Glid,x i);
}
skx←(k1,…,ka)
return skx
}
AttrGenアルゴリズムのサブルーチンであるAssignVarは例えば以下のように示される。0は無限遠点である。
AssignVar(vsk,Ggid,Glid,x){
(Y,var)←vsk;
(B^,n,gparam)←var;
(paramG,H,g0,g1,gt)←gparam;
φ$Fq n;
k*←Y・(x・g1,x・Ggid,x・Glid,O3n・g1,0);
k←(k*,x,var);
return k;
}
暗号化装置3は、各鍵生成局装置2の局公開パラメータapkを用いて記述した受信者識別子(述語ともいう。)S及び平文mに基づいて、暗号文cSを生成する(ステップS4)。生成された暗号文cSは、その受信者識別子Sのユーザが保有する復号装置4に送信される。暗号化装置3は、例えば以下に例示するEncアルゴリズムにより暗号文cSを生成する。
Encアルゴリズムは、述語S及び平文mを入力として、暗号文cSを生成する確率的多項式時間アルゴリズムである。述語Sは、M,M”,ρから構成される。Mは述語Sを表す秘密分散生成行列であり、M”は述語Sの縮退木の述語を表す同調秘密分散生成行列である。ρは、リテラル述語のリストである。ρiは、i番目のリテラル述語であり、Neg,var,vから構成される。Negはそのリテラル述語が肯定(Neg=0)か否定(Neg=1)かを表す情報であり、varは述語変数であり、vは述語変数の値を示す条件式であり、varとvは合わせて原始述語である。e1 は、(1,0,…,0)である。
Enc(S,m){
(M,M”,ρ)←S;
f←$Fq r; f’←${0}×Fq r-1; f”←$Fq r”;
s←M・f; s’←M・f’; s”←M”・f”;
s0←f1;
for i∈{1,…,l} do{
(Neg, var, v)=ρi;
(B^,n,gparam)←var;
N←7n+1;
η←$Fq;
if Neg=0 then{
(θ,θ’,θ”)←$Fq 3;
ci←(sie1 +θv,si’e1 +θ’v,si”e1 +θ”v,η)B^;
} else {
ci←(siv,si’v,si”v,η)B^;
}
};
cl+1←mgT s0;
cs←(S,c1,…,cl,cl+1);
return cs;
}
復号装置4は、秘密鍵skx1,…,skxn’及び暗号文cSを用いて、平文m’を生成する。n’は用いられる秘密鍵の数である(ステップS5)。復号装置4は、例えば以下に例示されるDecアルゴリズムにより平文m’を生成する。復号装置4は、例えばこのようにして、平文を復号するための秘密鍵に含まれる局所識別子が同じ場合のみ正しい平文が生成されるように、上記平文を復号する。
Decアルゴリズムは、秘密鍵skx1,…,skxn’及び暗号文cSを入力とし、平文m’を出力する確率的多項式時間アルゴリズムである。accは、正しく平文m’を復号することができるかどうかを表す変数であり、acc=Trueの場合には正しく平文m’を復号することができることを表し、acc≠Trueの場合には正しく平文m’を復号することができないことを表す。acc≠Trueの場合には正しく平文m’を復号することができないことを表す情報であるNGが出力される。βは修正因子であり、Jはリテラルインデックスから鍵のインデックスへの写像である。
Decアルゴリズム
Dec({skx1,…,skxn’},cs){
{k1,…,ka}←Uiskxi;
(S,c1,…,cl,cl+1)←cs;
(acc,β,J)←Accept(S,{k1,…,ka});
if acc=True then {
K=1;
for i∈{1,…,l} do{
if βi≠0 then {
j←Ji;
(k*,x,var)←kj;
K←×e(ci,k*)βi;
}
}
m’←cl+1/K;
return m’;
} else {
return NG;
}
}
DecアルゴリズムのサブルーチンであるAcceptアルゴリズムは例えば以下のように表される。
Accept(S,k){
(M,M”,ρ)←S;
for i∈{1,…,l} do {
(Neg,var,v)←ρi;
if (∃j s.t. kj=(k*,var,x) s.t.(
((Neg=0)∧(x・v=0))∨
((Neg≠0)∧(x・v≠0))) then {
Ji←j;
γi←x・v;
} else {
Ji←NG;
Mi←0;
}
}
(M’,V,w,l’)←GaussianElimination(M);
σ←(1,0,…,0)
α←0; //(α1,…,αl)←(0,…,0)初期化
for i∈{1,…,l’} do {
t←wi;
α←+σt・Vi; σ←+σt・Mi’;
}
acc←(σ=?0);
//Miの線形結合でσをゼロにできるならTrue
β←α;
for i∈{1,…,l} do {
(Neg,var,v)→ρi;
if (βi≠0)∧(Neg≠0)∧(γi≠0) then βi÷γi;
}
return (acc,β,J);
}
AcceptアルゴリズムのサブルーチンであるGaussianElimination(M)は例えば以下のように表される。Ilはl×lの単位行列である。GaussianElimination(M)は、MをMの階段行列であるM’に変換するアルゴリズムである。VはMを階段行列化するためのl×l行列である。すなわち、M’=V・Mである。wは、wiがMi’の先頭非ゼロ成分要素のインデックスである。l’はM’の非ゼロ行の個数である。
GaussianElimination(M){
V←Il;
t←0;
l’←0;
for i∈{1,…,l} do {
//部分ピボット選択開始
t++;if t>r then goto last;
j←i;
while Mj,t=0 do {
j++;
if j>l then {
t++; if t>r then goto last;
j←i;
}
}
swap(Mi,Mj);swap(Vi,Vj); //行の入れ替え
//部分ピボット選択終了
l’←I;
w’←t;
Vi÷Mi,t;Mi÷Mi,t;
for j∈{i+1,…,l} do {
if Mj,t≠0 then {
Vj-Mj,t・Vi;Mj←Mj,t・Mi;
}
}
}
last:return (M,V,w,l’);
}
以下、Acceptアルゴリズムについての説明をする。
暗号が正しい手順によって復号できるとき、すなわちDecアルゴリズム中の
(acc,β,J)←Accept(S,{k1,…,ka});
にてaccにTrueが返る場合、鍵(変数の具体的な割り当て){k1,…,ka}は述語Sを満足する。
このことは、述語Sの中に含まれるリテラル述語(treeの葉の部分)のリストρのうち{k1,…,ka}によって満足される部分のみを使って、treeの根の部分に相当する情報を復元できることを意味する。
鍵(変数の具体的な割り当て){k1,…,ka}が述語Sを満足するか否かを判定するためには、使用可能なtreeの葉の部分のみを利用して、treeの根の部分の情報が復元できるか否かを判定できればよい。
今、線形秘密分散によってtreeの葉の部分の情報s1,…,slは独立変数f1,…,frによって以下のように記述されているとする。
Figure 0005841955
一般には鍵{k1,…,ka}が満足するリテラル述語は{ρ1,…,ρl}の中の一部のみであるから、実際に復号に利用できる葉の情報はs1,…,slの中の一部の情報のみである。l×l行列Zを、鍵{k1,…,ka}がi番目のリテラル述語ρiを満足するときZi,i=1それ以外はZi,j=1なる対角行列と定義すると、実際に復号に利用できる葉変数siと独立変数fiの関係式は以下のように記述できる。
Figure 0005841955
Acceptアルゴリズムの前半で行列Mの一部の行を0で上書きしているのはM←Z・Mを計算している。そして、s1,…,slの部分情報Z・(s1,…,sl)Tから、treeの根の情報s0=f1=(1,0,…,0)・(f1,…,fr)Tが計算可能であることと、行列Z・Mの行の線形結合により(1,0,…,0)なる行ベクトルが生成可能であることは同値である。
したがって、鍵(変数の具体的な割り当て){k1,…,ka}が述語Sを満足するか否かを判定するためには、行列Z・Mの行の線形結合にょり(1,0,…,0)なる行ベクトルが生成可能であるか否かを判定すればよい。
そのために、まずGaussの消去法を用いZ・Mの行基本変形により階段型行列M’を作成する。この階段型行列M’の作成を行うのが、AcceptアルゴリズムのサブルーチンであるGaussianEliminationアルゴリズムである。このとき、正則行列VによりM’=V・Z・Mと記述できる。
Vは正則行列であるから、行列Z・Mの行の線形結合により(1,0,…,0)なる行ベクトルが生成可能であることと、M’=V・Z・Mの行の線形結合により(1,0,…,0)なる行ベクトルが生成可能であることとは同値である。
M’は階段行列であるので、M’の行の線形結合により(1,0,…,0)なる行ベクトルが生成できるか否かはAcceptアルゴリズムの真ん中のforループのようにM’の階段行列の要素に着目しながらM’の各行を(1,0,…,0)より次々引いてゆき、(0,…,0)に変形できるか否かを判定すればよい。もし、M’の行の線形結合(ζ1,…,ζl)・M’が
1,…,ζl)・M’=(1,0,…,0)
を満たすなら、
1,…,ζl)・V・Z・M=(1,0,…,0)
であるから、
1,…,αl)=(ζ1,…,ζl)・V・Z
と定義すると、(α1,…,αl)・M=(1,0,…,0)であるから、
Figure 0005841955
となる。すなわち鍵{k1,…,ka}が述語Sを満足するなら、
Figure 0005841955
となる。Acceptアルゴリズムの真ん中のforループでこのαiが計算されている。同様に、
Figure 0005841955
となる。また、縮退木がn個ありji∈{1,…,n}としてi番目の葉とi’番目の葉が同じ縮退木に含まれるときはji=ji’と定義する。χjを不定元とし、Σi=1 lαisi”χjiなる和を考え不定元毎に係数をまとめると、
Figure 0005841955
となる。縮退木内での元の秘密分散と同じ復元過程を経ると根の根が0となる同調秘密分散の定義により、
Figure 0005841955
が成立するので、不定元χjに関して恒等的に、
Figure 0005841955
となる。
Acceptアルゴリズムの最後のforループは否定のリテラル述語からsiに関する情報を計算する際、計算が単純になるようαiを補正した値であるβiを求めている。詳細は、下記を参照のこと。
Decアルゴリズムにおいて最初のfor文で計算しているKはδgid及びδj lid
Figure 0005841955
と定義すると、
Figure 0005841955
となるので、Correctnessが満たされる。上記の説明のχjiにδji lidが代入された形になっている。B*はいわゆるBの双対基底であり、B*=Y・g0=(X-1)T・g0である。
最後に攻撃者の攻撃によってノイズが消えない理由について説明する。今、攻撃者の立場に立って、ある縮退木に対して異なるlidを持ついくつかの鍵を組み合わせて適用し、本来復号できないはずの暗号文を、何とか復号することを考える。
このとき、i番目の葉とi’番目の葉が同じ縮退木に含まれていても、ji≠ji’となるようなi,i’が存在することとなり、恒等式(1)を使用することができない。したがって、攻撃者は
Figure 0005841955
を成立させる都合の良いχjiの組み合わせを暗号文毎に見つける必要がある。しかし、χjiの具体的な値はAttrGenアルゴリズムの中のGlidの離散対数によって決定され、対象となる鍵生成局装置が正しくAttrGenを行う限りχjiはランダムに選ばれてしまい、攻撃者は圧倒的に低い確率でしか都合が良いχjiを引き出すことはできない。
[変形例]
上記装置及び方法において説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、関数型暗号システム方法における各処理をコンピュータによって実現する場合、関数型暗号システム方法が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、関数型暗号システム方法における処理手段がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、各処理手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
1 標準化機関装置
2 鍵生成局装置
3 暗号化装置
4 復号装置

Claims (3)

  1. 単調回路構成法による線形秘密分散を用いた関数型暗号システムにおいて、
    上記線形秘密分散において用いられる述語Sを表現する木を構成する複数の葉のそれぞれには、そのそれぞれの葉に対応するリテラル述語に対応する鍵生成局装置が対応付けされており、
    ある鍵生成局装置に対応する縮退木を、上記複数の葉の中のその鍵生成局装置に対応する葉で構成される少なくとも1つの木とし、
    各鍵生成局装置に対応する各縮退木の葉に対応する乱数を用いて上記述語Sの中の上記各縮退木の部分の述語により計算される上記各縮退木の根の値が0となるように、上記複数の葉に対応する乱数を生成し、これらの生成された乱数を用いて平文を暗号化する暗号化装置と、
    を含む関数型暗号システム。
  2. 請求項1の関数型暗号システムにおいて、
    上記暗号化装置は、上記複数の葉に対応する乱数を用いて上記述語Sにより計算される上記木の根の値が0となるように、上記複数の葉に対応する乱数を更に生成し、これらの生成された乱数を更に用いて平文を暗号化する、
    関数型暗号システム。
  3. 単調回路構成法による線形秘密分散を用いた関数型暗号方法において、
    上記線形秘密分散において用いられる述語Sを表現する木を構成する複数の葉のそれぞれには、そのそれぞれの葉に対応するリテラル述語に対応する鍵生成局装置が対応付けされており、
    ある鍵生成局装置に対応する縮退木を、上記複数の葉の中のその鍵生成局装置に対応する葉で構成される少なくとも1つの木とし、
    暗号化装置が、各鍵生成局装置に対応する各縮退木の葉に対応する乱数を用いて上記述語Sの中の上記各縮退木の部分の述語により計算される上記各縮退木の根の値が0となるように、上記複数の葉に対応する乱数を生成し、これらの生成された乱数を用いて平文を暗号化する暗号化ステップと、
    を含む関数型暗号方法。
JP2013008400A 2013-01-21 2013-01-21 関数型暗号システム及び方法 Active JP5841955B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013008400A JP5841955B2 (ja) 2013-01-21 2013-01-21 関数型暗号システム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013008400A JP5841955B2 (ja) 2013-01-21 2013-01-21 関数型暗号システム及び方法

Publications (2)

Publication Number Publication Date
JP2014139623A JP2014139623A (ja) 2014-07-31
JP5841955B2 true JP5841955B2 (ja) 2016-01-13

Family

ID=51416360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013008400A Active JP5841955B2 (ja) 2013-01-21 2013-01-21 関数型暗号システム及び方法

Country Status (1)

Country Link
JP (1) JP5841955B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6936482B2 (ja) * 2017-11-10 2021-09-15 地方独立行政法人東京都立産業技術研究センター 暗号システム、ユーザシステム、暗号方法、及び暗号プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101351789B1 (ko) * 2009-04-24 2014-01-15 니뽄 덴신 덴와 가부시키가이샤 암호 시스템, 암호 통신 방법, 암호화 장치, 키 생성 장치, 복호 장치, 콘텐츠 서버 장치, 프로그램, 기억매체
JP5334873B2 (ja) * 2010-01-08 2013-11-06 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5618881B2 (ja) * 2011-03-25 2014-11-05 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Also Published As

Publication number Publication date
JP2014139623A (ja) 2014-07-31

Similar Documents

Publication Publication Date Title
JP6016948B2 (ja) 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
Sun et al. Outsourced decentralized multi-authority attribute based signature and its application in IoT
JP7449423B2 (ja) ブラインド化された帰結選択のためのブロックチェーンで実装されるセキュリティー・システムおよび方法
US10880100B2 (en) Apparatus and method for certificate enrollment
CN110113156B (zh) 一种可追踪的分层多授权密文策略属性基认证方法
Naidu et al. Design and implementation of cryptcloud system for securing files in cloud
Sharma et al. Blockchain-based cloud storage system with CP-ABE-based access control and revocation process
Hur et al. Removing escrow from ciphertext policy attribute-based encryption
Ouaddah A blockchain based access control framework for the security and privacy of IoT with strong anonymity unlinkability and intractability guarantees
Zhu et al. Cryptographic attribute-based access control (ABAC) for secure decision making of dynamic policy with multiauthority attribute tokens
Watanabe et al. Identity-based hierarchical key-insulated encryption without random oracles
Ramesh et al. PCS-ABE (t, n): a secure threshold multi authority CP-ABE scheme based efficient access control systems for cloud environment
Thangavel et al. An analysis of privacy preservation schemes in cloud computing
Singamaneni et al. [Retracted] An Enhanced Dynamic Nonlinear Polynomial Integrity‐Based QHCP‐ABE Framework for Big Data Privacy and Security
US11856095B2 (en) Apparatus and methods for validating user data by using cryptography
Li A Blockchain‐Based Verifiable User Data Access Control Policy for Secured Cloud Data Storage
JP5841955B2 (ja) 関数型暗号システム及び方法
Rehman et al. Securing cloud storage by remote data integrity check with secured key generation
Lin et al. F2P‐ABS: A Fast and Secure Attribute‐Based Signature for Mobile Platforms
Sethi et al. A scalable attribute based encryption for secure data storage and access in cloud
Wang et al. Secure decision tree classification with decentralized authorization and access control
CN116318647B (zh) 一种具有同态特性的cp-abe外包解密方法和装置
Zhang et al. Building PUF as a Service: Distributed Authentication and Recoverable Data Sharing With Multidimensional CRPs Security Protection
Perera et al. Group Oriented Attribute-Based Encryption Scheme from Lattices with the Employment of Shamir’s Secret Sharing Scheme
Wahab Coconut e-petition implementation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151016

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151116

R150 Certificate of patent or registration of utility model

Ref document number: 5841955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150