JP5841955B2 - Functional cryptographic system and method - Google Patents

Functional cryptographic system and method 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
Japanese (ja)
Other versions
JP2014139623A (en
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/en
Publication of JP2014139623A publication Critical patent/JP2014139623A/en
Application granted granted Critical
Publication of JP5841955B2 publication Critical patent/JP5841955B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、ネットワーク上の認証において、複数のサーバが同時にユーザをセキュアに認証する技術に関する。   The present invention relates to a technique in which a plurality of servers simultaneously and securely authenticate users in authentication on a network.

以下、関数型暗号について説明する。そのために、まずIDベース暗号について説明する。   Hereinafter, functional encryption will be described. For this purpose, ID-based encryption will be described first.

(狭義の)IDベース暗号とは、公開鍵の照会といった予備通信を必要とせず、受信者識別子(ID)を公開鍵として暗号化が可能な公開鍵暗号系のことである。IDベース暗号は、一般に以下の4つのアルゴリズムから構成される。   ID-based cryptography (in a narrow sense) is a public key cryptosystem that can be encrypted using a receiver identifier (ID) as a public key without requiring preliminary communication such as public key inquiry. The ID-based encryption is generally composed of the following four algorithms.

Setup(1k)→(pk,sk):セットアップ―セキュリティパラメータ1kを入力とし公開パラメタpkとマスター鍵skを出力する確率的多項式時間アルゴリズム。 Setup (1 k ) → (pk, sk): Setup—A stochastic polynomial time algorithm that takes the security parameter 1 k as input and outputs the public parameter pk and master key sk.

KeyGen(sk,i)→ski:鍵生成―マスター鍵skと鍵識別子iを入力とし、その鍵識別子iに対応する秘密鍵skiを出力する確率的多項式時間アルゴリズム。 KeyGen (sk, i) → sk i : Key generation—A probabilistic polynomial time algorithm that receives a master key sk and a key identifier i and outputs a secret key sk i corresponding to the key identifier i.

Enc(pk,j,m)→cj:暗号化―公開パラメータpkと受信者識別子jと平文mを入力とし、暗号文cjを出力する確率的多項式時間アルゴリズム。 Enc (pk, j, m) → c j : Encryption—A stochastic polynomial time algorithm that takes the public parameter pk, the recipient identifier j, and plaintext m as input and outputs ciphertext c j .

Dec(ski,cj)→m’:復号―秘密鍵skiと暗号文cjとを入力とし、平文m’を出力する確率的多項式時間アルゴリズム。 Dec (sk i , c j ) → m ′: Decryption—A stochastic polynomial time algorithm that receives the secret key sk i and the ciphertext c j and outputs plaintext m ′.

関数型暗号(functional encryption)はIDベース暗号の拡張であり、両者に構文的な違いは無い。すなわち、関数型暗号も上記の4つのアルゴリズムから構成される。   Functional encryption is an extension of ID-based encryption, and there is no syntactic difference between the two. That is, functional encryption is also composed of the above four algorithms.

m’=Dec(pk,KeyGen(sk,i),Enc(pk,j,m))
とすると、IDベース暗号では鍵識別子iと受信者識別子jが一致した時、すなわちi=jの時、圧倒的確率でm’=mとなり復号できる。IDベース暗号では公開鍵(受信者識別子) と秘密鍵(鍵識別子)は必ず1:1に対応している。
m '= Dec (pk, KeyGen (sk, i), Enc (pk, j, m))
Then, in the ID-based encryption, when the key identifier i and the recipient identifier j match, that is, when i = j, it can be decrypted with an overwhelming probability of m ′ = m. In ID-based encryption, the public key (recipient identifier) and secret key (key identifier) always correspond to 1: 1.

一般化された暗号系ではこの1:1の関係は無く、鍵識別子iと受信者識別子jが何らかの特別な関係を満たす場合に復号できるよう拡張される。例えば一般的な識別子の代わりに、顔写真のような曖昧なデータを使用したいとする。このような時はi=jという等式の代わりにi≒j(何らかの意味で識別子が近い)という関係が満たされる場合に復号できる事が望まれる。このとき、鍵識別子iに対応する受信者識別子jは必ずしも一意ではない。   The generalized cryptosystem does not have this 1: 1 relationship, and is extended so that it can be decrypted when the key identifier i and the recipient identifier j satisfy some special relationship. For example, suppose that it is desired to use ambiguous data such as a face photograph instead of a general identifier. In such a case, it is desirable that decoding is possible when the relation i≈j (identifier is close in some sense) is satisfied instead of the equation i = j. At this time, the recipient identifier j corresponding to the key identifier i is not necessarily unique.

拡張された暗号では1つの秘密鍵がいろいろな公開鍵(受信者識別子)に対応したり、1つの公開鍵(受信者識別子)がいろいろな秘密鍵に対応して、暗号系が構成される。このような一般化を進めていくと、鍵識別子iと受信者識別子jとの間に、ある特別な関係Rが満たされる場合、すなわちR(i,j)=Trueなる場合にのみ復号できる暗号の概念が生まれる。関係とは2つの文字列を入力とし、真理値を出力する関数の事である。関係Rはアプリケーション毎に異なる関数であり、アプリケーションを設計する度に暗号を設計し直す事は現実的ではないので、さまざまな目的に応用可能な万能のRを実現する暗号、すなわち関数型暗号の概念に到達する。関数型暗号では、上記i,jの一方をプログラム(述語)、もう一方をそのプログラム用の入力データ(述語変数の値)と見なし、入力データがプログラムによって受理されるか否かを判定するR を実現する。鍵識別子iを述語変数、受信者識別子jを述語とするような関数型暗号を暗号文ポリシー関数型暗号(CP-FE:Ciphertext Policy Functional Encryption)と呼ぶ。   In the extended encryption, one private key corresponds to various public keys (recipient identifiers), and one public key (recipient identifier) corresponds to various private keys to configure an encryption system. If such generalization proceeds, an encryption that can be decrypted only when a special relationship R is satisfied between the key identifier i and the receiver identifier j, that is, when R (i, j) = True. Concept is born. A relationship is a function that takes two strings as input and outputs a truth value. The relation R is a function that differs for each application, and it is not realistic to redesign the cipher every time the application is designed, so the cipher that realizes the universal R applicable to various purposes, that is, the functional cipher Reach the concept. In functional cryptography, one of the above i and j is regarded as a program (predicate) and the other is regarded as input data for the program (value of a predicate variable), and R is determined whether the input data is accepted by the program. Is realized. A functional cipher that uses the key identifier i as a predicate variable and the recipient identifier j as a predicate is called a ciphertext policy functional encryption (CP-FE).

以下、分権複数局関数型暗号について説明する。   Hereinafter, the decentralized multi-station function type encryption will be described.

上記の関数型暗号(IDベース暗号)の模型では、単一の鍵生成局があらゆるユーザに共通の変数を定義し、全ての受信者がその鍵生成局を照会して、変数の値を決定してもらう。もし仮に世界中のユーザが利用可能な暗号システムを構築しようと考えると、世界で唯一の鍵生成局が存在し、世の中の全ての鍵を握りしめ、政治、経済、軍事といった国家の重要機密から、だれか個人の銀行口座や逢瀬の履歴といったありとあらゆる秘密に自由にアクセス可能な超権力を握ってしまう事になる。このような世界観に基づき設計された暗号アプリケーションは現実世界を無理なく抽象しているとは言い難く、超権力の成立を避けるために暗号プロトコルの適用領域が自ずと狭まってしまう。   In the above functional cipher (ID-based cipher) model, a single key generator defines a variable that is common to all users, and all recipients query the key generator to determine the value of the variable. do that for me. If we try to build an encryption system that can be used by users all over the world, there is the only key generation authority in the world that holds all the keys of the world. Someone will have super powers that can freely access all sorts of secrets such as personal bank accounts and history of Hirose. Cryptographic applications designed based on such a view of the world cannot easily be said to be an abstraction of the real world, and the application area of cryptographic protocols is naturally narrowed to avoid the establishment of super power.

現実世界では、政府当局、外国政府、軍当局、通貨当局、法務当局、外務当局、自治体、公安、郵便局、電話局、銀行、大学、信販会社、ネットワーク事業者、SNS事業者、といった具合に複数の権力機関が勝手バラバラに成立し、それぞれが独立に秘密を管理している。こうした世界観に基づき暗号プロトコルを設計できれば超権力の成立を心配せずに適用領域を拡大できる。   In the real world, government authorities, foreign governments, military authorities, currency authorities, legal authorities, foreign authorities, local governments, public security, post offices, telephone offices, banks, universities, credit sales companies, network operators, SNS operators, etc. A number of power organizations have been established, each managing their secrets independently. If a cryptographic protocol can be designed based on this view of the world, the application area can be expanded without worrying about the establishment of super power.

すなわち分権複数局関数型暗号を考える必要がある。分権複数局関数型暗号は暗号文ポリシー関数型暗号の拡張概念である。分権複数局関数型暗号ではユーザに対し鍵生成局はその鍵生成局が管理する述語変数の値に基づいて秘密鍵を発行する。鍵生成局は独立に複数存在し、暗号化時は複数の鍵生成局がそれぞれ独立に定義した述語変数を組み合わせて使用して述語を定義し、それを受信者識別子として暗号化する。   In other words, it is necessary to consider decentralized multi-station functional encryption. The decentralized multi-station function type encryption is an extended concept of the ciphertext policy function type encryption. In the decentralized multi-station function type encryption, the key generation station issues a secret key to the user based on the value of the predicate variable managed by the key generation station. A plurality of key generation stations exist independently, and at the time of encryption, a predicate is defined using a combination of predicate variables independently defined by a plurality of key generation stations, and is encrypted as a receiver identifier.

例えば武蔵野市役所、三鷹市役所、東京都公安委員会がそれぞれ鍵生成局を運営していると仮定する。武蔵野市在住のアリスは武蔵野市役所から武蔵野市在住属性を持つ秘密鍵を与えられているとする。三鷹市在住のボブは三鷹市役所から三鷹市在住属性を持つ秘密鍵を与えられているとする。また、アリスは東京都公安委員会から運転免許証所有属性を持つ秘密鍵を与えられているとする。   For example, suppose that the Musashino City Hall, Mitaka City Hall, and the Tokyo Metropolitan Public Safety Commission operate key generation stations. Assume that Alice, who lives in Musashino City, is given a secret key with the Musashino City residence attribute by Musashino City Hall. Bob living in Mitaka City is given a secret key with the Mitaka City residence attribute from Mitaka City Office. In addition, Alice is given a secret key with a driver's license ownership attribute from the Tokyo Public Safety Commission.

仮に、三鷹市在住かつ運転免許所有者にのみ復号可能な暗号文を作成したい場合、暗号文作成者は三鷹市役所の公開パラメータ及び東京都公安委員会の公開パラメータを用いて、該当する述語の暗号文を作成する。アリスやボブはこの述語を満足する秘密鍵を持たないので、暗号文を復号する事はできない。   If you want to create a ciphertext that can only be decrypted by a driver who is resident in Mitaka City and a driver's license, the ciphertext creator uses the public parameters of the Mitaka City Office and the public parameters of the Tokyo Public Safety Commission to encrypt Create a statement. Since Alice and Bob do not have a private key that satisfies this predicate, they cannot decrypt the ciphertext.

一般に各鍵生成局が、全く予備連絡を行なわない独立な組織であるとき、アリスとボブが結託して、それぞれの鍵を持ち寄ると、実際にはそのような属性は持たないにも関わらず三鷹市在住でかつ運転免許証所を持っているような秘密鍵の組を構成する事ができてしまう。   In general, when each key generation station is an independent organization that does not make any preliminary contact, when Alice and Bob collaborate and bring each key together, it actually does not have such attributes but Mitaka You can make a private key pair that lives in the city and has a driver's license office.

安全な分権複数局関数型暗号では、このような結託攻撃を防御するため、鍵生成局は大域検証可能識別子(GID:Globally veriable IDentier)と呼ばれる、ユーザ固有の識別子を用いて秘密鍵を発行する。そして秘密鍵が異なるGID を持つとき、組み合わせて利用する事ができないよう方式が設計される(例えば、非特許文献1参照。)。   In a secure decentralized multi-station function type cipher, in order to prevent such collusion attacks, the key generation station issues a secret key using a user-specific identifier called a globally veriable identifier (GID). . Then, when the secret key has a different GID, a method is designed so that it cannot be used in combination (for example, see Non-Patent Document 1).

分権複数局関数型暗号は次の5 つのアルゴリズム(GSetup; ASetup; AttrGen; Enc; Dec)から構成される。   The decentralized multi-station function type cipher consists of the following five algorithms (GSetup; ASetup; AttrGen; Enc; Dec).

GSetup(1λ)→$gparam:大域セットアップ―セキュリティパラメータ1kを入力とし共通参照文字列gparamを出力する確率的多項式時間アルゴリズム。「→$」「←$」は、ランダムに選択することを表す。 GSetup (1 λ ) → $ gparam: Global setup-Stochastic polynomial time algorithm that takes security parameter 1 k as input and outputs common reference string gparam. “→ $ ” and “← $ ” represent selection at random.

ASetup(gparam,aparam)→$(ask,apk):局セットアップ―共通参照文字列gparam及び局パラメータaparamを入力とし局公開パラメータapkと局マスター鍵askを出力する確率的多項式時間アルゴリズム。 ASetup (gparam, aparam) → $ (ask, apk): Station setup—A stochastic polynomial time algorithm that receives the common reference character string gparam and the station parameter aparam and outputs the station public parameter apk and the station master key ask.

AttrGen(ask,gid,i)→$ski:属性生成―共通参照文字列gparam及び局マスター鍵ask及びGID gid及び鍵識別子(述語変数の値)iを入力とし、gid,iに対応する秘密鍵skiを出力する確率的多項式時間アルゴリズム。 AttrGen (ask, gid, i) → $ sk i : Attribute generation-Common reference character string gparam, station master key ask and GID gid, and key identifier (value of predicate variable) i are input, and secret corresponding to gid, i A stochastic polynomial time algorithm that outputs the key sk i .

Enc({apk1,…,apkn},j,m)→$cj:暗号化―局公開パラメータapk1,…,apkn及び受信者識別子j及び平文mを入力とし、暗号文cjを出力する確率的多項式時間アルゴリズム。 Enc ({apk 1 , ..., apk n }, j, m) → $ c j : Encryption-Public parameter apk 1 , ..., apk n, receiver identifier j and plaintext m are input, and ciphertext c j A stochastic polynomial time algorithm that outputs

Dec({ski1,…,skin’},cj)→$m’:復号―秘密鍵ski1,…,skin’及び暗号文cjを入力とし、平文m’を出力する確率的多項式時間アルゴリズム。分権複数局関数型暗号では暗号文の受信者は鍵識別子(述語変数の値)i1,…,in’を持つ秘密鍵の集合{ski1,…,skin’}を所有しており、述語変数の値i1,…,in’が述語jを満足するなら圧倒的確率でm=m’となる。 Dec ({sk i1 , ..., sk in ' }, c j ) → $ m': Decryption-Probabilistic output of plaintext m 'with secret key sk i1 , ..., sk in' and ciphertext c j as input Polynomial time algorithm. In the decentralized multi-station function type cipher, the recipient of the ciphertext has a set of secret keys {sk i1 ,…, sk in ' } with key identifiers (values of predicate variables) i 1 ,…, i n ′ If the predicate variable values i 1 ,..., I n ′ satisfy the predicate j, then m = m ′ with an overwhelming probability.

Tatsuaki Okamoto and Katsuyuki Takashima, ”Decentralized Attribute-Based Signatures”, 2011,Tatsuaki Okamoto and Katsuyuki Takashima, “Decentralized Attribute-Based Signatures”, 2011,

ところで、一般に、ある鍵生成局が2つ以上の属性を管理する事がある。例えば東京都公安委員会が運転免許証所有属性の他に無事故属性も管理しているとする。   By the way, in general, a certain key generation station may manage two or more attributes. For example, let us assume that the Tokyo Metropolitan Public Safety Committee manages the accident-free attribute in addition to the driver's license ownership attribute.

さらに、ある鍵生成局が単一のユーザに2回以上秘密鍵を発行する事がある。例えば東京都公安委員会が運営する鍵生成局は免許が更新される際には秘密鍵も更新するであろう。このとき、アリスに対して元のGIDと同じGIDで秘密鍵を発行すると仮定すると、アリスは自分1人で2つの秘密鍵を持っているので結託攻撃のように2つの秘密鍵を組み合わせて実際には正しくない属性の鍵を構成できてしまうという問題がある。   Furthermore, a certain key generation station may issue a secret key to a single user more than once. For example, a key generator operated by the Tokyo Metropolitan Public Safety Commission will update the private key when the license is updated. At this time, assuming that Alice issues a secret key with the same GID as the original GID, Alice has two secret keys by himself, so it actually combines two secret keys like a collusion attack. Has the problem that it can construct keys with incorrect attributes.

もし、このような鍵再発行攻撃を防御する為にアリスに対して元のGIDと異なるGIDを用いて鍵発行を行なうと、新たな秘密鍵はアリスが既に持っている武蔵野市在住属性の秘密鍵と組み合わせて使用する事ができなくなってしまう。   If a key is issued to Alice using a GID that is different from the original GID in order to prevent such a key reissue attack, the new secret key is the secret of the Musashino city residence attribute that Alice already has It can no longer be used in combination with a key.

この発明は、ある鍵生成局が異なるタイミングで発行した2つの秘密鍵を組み合わせることによりユーザが正統性を有しない鍵を構成する攻撃である鍵再発行攻撃を防ぐ関数型暗号システム及び方法を提供することを目的とする。   The present invention provides a functional encryption system and method for preventing a key reissue attack, which is an attack in which a user constructs a key having no legitimacy, by combining two secret keys issued by a certain key generation station at different timings The purpose is to do.

この発明の一態様による関数型暗号システムは、単調回路構成法による線形秘密分散を用いた関数型暗号システムにおいて、上記線形秘密分散において用いられる述語Sを表現する木を構成する複数の葉のそれぞれには、そのそれぞれの葉に対応するリテラル述語に対応する鍵生成局装置が対応付けされており、ある鍵生成局装置に対応する縮退木を、上記複数の葉の中のその鍵生成局装置に対応する葉で構成される少なくとも1つの木とし、各鍵生成局装置に対応する各縮退木の葉に対応する乱数を用いて上記述語Sの中の上記各縮退木の部分の述語により計算される上記各縮退木の根の値が0となるように、上記複数の葉に対応する乱数を生成し、これらの生成された乱数を用いて平文を暗号化する暗号化装置と、を備える。   A functional cryptographic system according to an aspect of the present invention is a functional cryptographic system using linear secret sharing by a monotone circuit configuration method, wherein each of a plurality of leaves constituting a tree expressing a predicate S used in the linear secret sharing is described. Is associated with a key generation station apparatus corresponding to a literal predicate corresponding to each leaf, and a degenerate tree corresponding to a certain key generation station apparatus is converted to the key generation station apparatus among the plurality of leaves. Is calculated by the predicate of each degenerate tree in the upper descriptive word S using a random number corresponding to the leaf of each degenerate tree corresponding to each key generation station device. An encryption device that generates random numbers corresponding to the plurality of leaves so that the root value of each of the degenerate trees is 0, and encrypts the plaintext using the generated random numbers.

鍵生成局毎に局所的に決定される識別子、すなわち局所識別子(LID:Local IDentier)を導入することにより、異なるLID同士を組み合わせる事ができないように暗号が構成でき、鍵再発行攻撃を防御することができる。   By introducing an identifier that is locally determined for each key generation station, that is, a local identifier (LID: Local IDentier), encryption can be configured so that different LIDs cannot be combined, and key reissue attacks are prevented. be able to.

関数型暗号システム装置の例を説明するためのブロック図。The block diagram for demonstrating the example of a functional encryption system apparatus. 関数型暗号システム方法の例を説明するためのフローチャート。The flowchart for demonstrating the example of a functional cryptographic system method. GIDの実現の例を説明するための図。The figure for demonstrating the example of realization of GID. LIDの実現の例を説明するための図。The figure for demonstrating the example of realization of LID. LIDの実現の例を説明するための図。The figure for demonstrating the example of realization of LID. LIDの実現の例を説明するための図。The figure for demonstrating the example of realization of LID. データ構造の例を説明するための図。The figure for demonstrating the example of a data structure.

以下、図面を参照して、関数型暗号システムの実施形態を説明する。   Hereinafter, an embodiment of a functional encryption system will be described with reference to the drawings.

まず、関数型暗号の述語記述機構について説明する。   First, the predicate description mechanism of functional encryption will be described.

背景技術の欄では、関数型暗号が、プログラム(述語)とデータ(述語変数の値)を入力とし、1bitの出力を持つある種のプログラム評価機械として機能し、出力がTrue の場合に暗号が復号できる事を説明した。ここでは、関数型暗号の実装において、プログラム(述語)やデータ(述語変数の値) がどのようなデータ構造を持つかについて説明する。
関数型暗号の述語記述機構は、
(1) 内積ベクトル空間に基づく原始述語(リテラル述語)記述機構
(2) 線形秘密分散に基づく論理式記述機構
の二種類の機構によって構成されている。(1)は(2)より低位のレイヤーに位置し、(1)で記述された複数の述語を(2)で合成して1つの大きな述語を構成する。図7にデータ構造を例示する。
In the background section, functional cryptography functions as a kind of program evaluation machine that takes a program (predicate) and data (value of a predicate variable) as input, and has a 1-bit output. Explained that decryption is possible. This section describes the data structure of programs (predicates) and data (values of predicate variables) in the implementation of functional encryption.
The predicate description mechanism of functional encryption is
(1) Primitive predicate (literal predicate) description mechanism based on inner product vector space
(2) It is composed of two types of mechanisms, a formula description mechanism based on linear secret sharing. (1) is located in a lower layer than (2), and a plurality of predicates described in (1) are synthesized in (2) to form one large predicate. FIG. 7 illustrates a data structure.

以下、(1)内積ベクトル空間に基づく原始述語記述機構について説明する。   Hereinafter, (1) a primitive predicate description mechanism based on the inner product vector space will be described.

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}と仮定して良い場合は、より強い事が言える。
Let X 1 and X 2 each be a set of variables. Predicates Q (X 1 ), R (X 2 ) and polynomials g (X 1 ), h (X 2 ) are respectively
{Q (X 1 ) = True} ⇔ {g (X 1 ) = 0}, {R (X 2 ) = True} ⇔ {h (X 2 ) = 0}
When r is a sufficiently large random number, under reasonable assumptions regarding the range and domain of the polynomial,
{Q (X 1 ) ∨R (X 2 ) = True} ⇔ {g (X 1 ) h (X 2 ) = 0}, {Q (X 1 ) ∧R (X 2 ) = True} ⇔ {g ( X 1) + rh (X 2 ) = 0}
Holds. Therefore, monotonic synthesis of predicates Q (X 1 ) and R (X 2 ) (composition consisting only of ∨ and ∧) is based on the product and linear sum of g (X 1 ) and h (X 2 ) under reasonable assumptions. It can be equated with a composite polynomial. Furthermore, if we can assume x∈ {I 0 , I 1 } for the predicate variable x, we can say that it is stronger.

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の積と線形和による合成多項式と同一視できる。
P (x) = (x = I 1 ), N (x) = (x = I 0 )
Consider the predicates P (x) and N (x). Since P (I b ) = b for any b∈ {0,1}, x can be regarded as a 1-bit logical variable if the variable x and the predicate P (x) are identified. At this time, since it is N (I b) = ¬P ( I b) for any B∈ {0, 1}, can be equated formulas ¬x and predicate N (x). by the way,
p (x) = (xI 1 ), n (x) = (xI 0 )
Given the polynomials p (x) and n (x)
{P (x) = True} ⇔ {p (x) = 0}, {N (x) = True} ⇔ {n (x) = 0}
Therefore , the monotonic synthesis of the logical expression {x i , ¬x i } i = 1, ..., n is under the assumption that {p (x i ), n (x i )} i = 1, ..., n It can be equated with the composite polynomial by the product and linear sum. {x i } i = 1, ..., n arbitrary dendritic logic circuit is expressed by monotonic synthesis of {x i , ¬x i } i = 1, ..., n using de Morgan's law recursively it can. Therefore, {x i} i = 1 , ..., under any logical expression reasonable assumptions of n {p (x i), n (x i)} i = 1, ..., the product of n and linear sum Can be equated with the composite polynomial by.

ところで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の関数型暗号でも、この方法を用いて大きな述語を構成している。
However if the K and body, polynomial ring K [x 1, ..., x n] is generally x 1, ..., because a K a vector space to base the monomials x n, the set of predicates variables {x 1 ,..., X n } and the vector space, the predicate expressed by the polynomial of x 1 ,..., X n can be regarded as an element of the vector space. A vector space based on a monomial is generally infinite dimension and is not suitable for computers. However, if a range of predicates that can be described is limited, a predicate can be an element on a finite-dimensional subspace. For example, it is assumed that the one-variable predicate F (x) can be identified with the n-th order polynomial f (x). f (x) is a monomial basis x = (x 0 , x 1 ,…, x n ) and coefficient vector f = (f 0 , f 1 ,…, f n ), and f (x) = f ・ x can be described. At this time, a predicate that can be identified as a polynomial of order n + 1 or higher cannot be described. When (x 1 = I 1 ) ∨ ... ∨ (x n = I n ) type predicates are expressed in this form, the vector dimension grows exponentially with the number of variables. In this case, (2) a predicate description mechanism based on linear secret sharing is used. Even in the functional encryption of Non-Patent Document 1, a large predicate is constructed using this method.

内積ベクトル空間に基づく述語記述機構においては、ベクトル空間(単項式基底)を指定することによって、述語変数(x1,…,xn)を指定する。述語変数の具体的な値(x1,…,xn)=(I1,…,In)は、上記で指定された単項式基底に変数の値を代入したベクトルで指定する。例えば、上記の1変数の例の場合x=2なるインスタンスは(x0,x1,…,xn)=(20,21,…,2n)となる。述語は係数のベクトルで指定する。多項式表現が指定した部分空間に収まらないような述語は記述不可能とする。 In the predicate description mechanism based on the inner product vector space, a predicate variable (x 1 ,..., X n ) is designated by designating a vector space (a monomial basis). The specific value (x 1 ,..., X n ) = (I 1 ,..., I n ) of the predicate variable is specified by a vector in which the value of the variable is substituted into the monomial base specified above. For example, in the above example of one variable, an instance where x = 2 is (x 0 , x 1 ,..., X n ) = (2 0 , 2 1 ,..., 2 n ). The predicate is specified by a vector of coefficients. A predicate whose polynomial expression does not fit in the specified subspace cannot be described.

以下、(2) 線形秘密分散に基づく論理式記述機構について説明する。   The following describes (2) the formula description mechanism based on linear secret sharing.

ここでは、内積ベクトル空間に基づく述語記述機構で記述された述語(ベクトル)を、「原始述語(primitive predicate)」と呼ぶことにし、原始述語及びその否定を「リテラル述語(literal predicate)」と呼ぶことにする。関数型暗号では、複数のリテラル述語を線形秘密分散に基づく述語記述機構で単調合成して一つの述語を構成する。原始述語の任意の論理式はド・モルガンの法則を再帰的に用いてリテラル述語の樹状単調合成で表現できる。   Here, the predicate (vector) described by the predicate description mechanism based on the inner product vector space is called “primitive predicate”, and the primitive predicate and its negation are called “literal predicate”. I will decide. In functional encryption, a single predicate is constructed by monotonically synthesizing a plurality of literal predicates using a predicate description mechanism based on linear secret sharing. Arbitrary logical expressions of primitive predicates can be expressed in a tree-like monotonic composition of literal predicates using recursive de Morgan's law.

線形秘密分散に基づく述語記述機構では、述語の合成は線形秘密分散の考え方に基づいて行われる。例えば、秘密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の木構造と同一視できる。この方法を用いると任意の述語は幾つかのリテラル述語と線形秘密分散を表現する行列によって記述できる。関数型暗号の述語とはこの線形秘密分散行列とリテラル述語の組である。 In the predicate description mechanism based on linear secret sharing, predicate synthesis is performed based on the concept of linear secret sharing. For example, when the secret f 1 is 2-out-of-2 secret distributed to the distributed values f 2 and f 3, that is, when s 1 + f 2 + f 3 = 0, both f 2 and f 3 the value of the variable is not aligned Failure to restore the values of f 1. When f 2 and f 3 are encrypted in some way. To restore the secret f 1 is required to decode both of the cipher. This is equivalent to realizing the predicate trap. Or, when the secret f 1 is 1-out-of-2 secret distributed to the distributed values f 2 and f 3 , that is, when f 1 = f 2 = f 3 , if either one of the variables is aligned f 1 can be restored. When f 2 and f 3 are respectively encrypted, in order to restore the secret f 1 , either one of the ciphers may be decrypted. This is equivalent to realizing the predicate trap. Such a method can be constructed for any monotonic predicate as well as simple ∧ and ∨. For example, as shown in FIGS. 4 to 6, when a predicate is described in a tree expression having a node such as AND or OR as a node, the independent variable necessary for linear secret sharing every time it falls from the root toward the leaf and hits the gate. Can be described as a linear sum of independent variables. If some of the leaf variables are available and the rest are unavailable, the monotonic circuit will output accept if the root variable can be described as a linear sum of the available leaf variables, and reject if it cannot. In other words, a matrix that describes this leaf variable as an independent variable can be equated with an AND or OR tree structure. Using this method, an arbitrary predicate can be described by a matrix representing several literal predicates and linear secret sharing. A functional encryption predicate is a set of this linear secret sharing matrix and a literal predicate.

以下、線形秘密分散を用いたLIDの実現について説明する。   Hereinafter, implementation of LID using linear secret sharing will be described.

参考文献1では関数型暗号でGIDを実現する為に、上記の単調回路構成法で求めた行列を用い、もし、述語で使用している全ての鍵のGIDが一致しているなら、回路を評価すると最終的に上手く消去されるような乱数を用いて暗号文を構成している。これについては、例えば図3を参照のこと。   Reference 1 uses the matrix obtained by the above monotonic circuit configuration method to implement GID with functional encryption, and if the GIDs of all keys used in the predicate match, the circuit is The ciphertext is composed of random numbers that can be erased successfully when evaluated. See, for example, FIG. 3 for this.

〔参考文献2〕David Freeman, Michael Scott and Edlyn Teske, ”taxonomy of pairing-friendly elliptic curves”, 2006,   [Reference 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は定義される。 In FIG. 3, s ′ 1 ,..., S ′ 7 are random numbers corresponding to GID. Based on these random numbers s ′ 1 ,..., S ′ 7 , random numbers s ′ 1 ,..., S ′ 7 are determined so as to be 0 when the root value of the tree corresponding to the predicate S is obtained. For example, f ′ 1 = 0 and f ′ 2 , f ′ 3 , f ′ 4 , f ′ 5 , and f ′ 6 are determined at random. Then, by multiplying (f ' 1 , f' 2 , f ' 3 , f' 4 , f ' 5 , f' 6 ) T by a matrix M representing the predicate S, (s' 1 , ..., s ' 7 ) Find T. In other words, (f '1, f' 2, f '3, f' 4, f '5, f' 6) from T (s '1, ..., s' 7) T to be able to seek, The matrix M is defined.

単純回路構成による線形秘密分散を用いた関数型暗号システムにおいては、復号時に復号装置が有する秘密鍵(述語変数の値)に基づいて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’を復号することができない。 In a functional encryption system using linear secret sharing with a simple circuit configuration, a value corresponding to f ′ 1 is calculated based on a secret key (value of a predicate variable) possessed by a decryption apparatus at the time of decryption, and this calculated f ' 1 is a plaintext m' noise. If the GIDs match, in other words, if the plaintext m ′ can be decrypted based on s ′ 1 ,..., S ′ 7 set so that f ′ 1 = 0, Since f ′ 1 = 0 and noise becomes 0, plaintext m ′ can be correctly decrypted. If the GIDs do not match, in other words, if the plaintext m ′ cannot be decrypted based on s ′ 1 ,..., S ′ 7 set so that f ′ 1 = 0, f ′ 1 Since ≠ 0 and noise does not become 0, plaintext m ′ cannot be correctly decrypted.

このGIDの仕組みと似た仕組みを用いてLIDを実現する。LIDを実現する為に、図4から図6に例示するように、回路を評価している途中で上手く消去されるような乱数を使用して暗号を構成する。図4から図6では同じ鍵生成局装置によって作成された述語変数で定義されたリテラル述語が接合される葉をグループ化している。   LID is realized using a mechanism similar to that of GID. In order to realize LID, as illustrated in FIGS. 4 to 6, a cipher is constructed using random numbers that can be erased well during circuit evaluation. 4 to 6, the leaves to which the literal predicates defined by the predicate variables created by the same key generation station apparatus are joined are grouped.

線形秘密分散において用いられる述語Sを表現する木を構成する複数の葉のそれぞれには、そのそれぞれの葉に対応するリテラル述語に対応する鍵生成局装置が対応付けされている。図4から図6では、(s”1,s”2,s”4,s”7)がそれぞれ対応付けされている葉に対応するリテラル述語には鍵生成局装置2−1が対応付けされており、(s”3,s”5,s”6)がそれぞれ対応付けされている葉に対応するリテラル述語には鍵生成局装置2−2が対応付けされている。 Each of a plurality of leaves constituting the tree expressing the predicate S used in the linear secret sharing is associated with a key generation station apparatus corresponding to the literal predicate corresponding to each leaf. 4 to 6, the key generation station apparatus 2-1 is associated with the literal predicate corresponding to the leaf associated with (s " 1 , s" 2 , s " 4 , s" 7 ). The key generation station apparatus 2-2 is associated with the literal predicates corresponding to the leaves associated with (s " 3 , s" 5 , s " 6 ).

ここで、述語Sを表現する木は、鍵生成局装置2−1に対応する葉で構成される少なくとも1つの縮退木と、鍵生成局装置2−2に対応する葉で構成される少なくとも1つの縮退木とに分けることができる。図5に記載されているように、(1)注目している鍵生成局装置の変数を使用する葉は有効、(2)それ以外の鍵生成局装置の変数を使用する葉は無効
(3)1個でも有効な子ノードがあるANDノードは有効、(4)1個でも無効な子ノードがあるORノードは無効、(5)子ノードが全部無効なANDノードは無効、(6)子ノードが全部有効なORノードは有効という(1)から(6)のステップにより、縮退木を決めることができる。
Here, the tree representing the predicate S is at least one degenerated tree composed of leaves corresponding to the key generation station apparatus 2-1, and at least one composed of leaves corresponding to the key generation station apparatus 2-2. Can be divided into two degenerate trees. As shown in Fig. 5, (1) leaves that use variables of the key generation station device of interest are valid, and (2) leaves that use variables of other key generation station devices are invalid.
(3) An AND node with one valid child node is valid, (4) An OR node with one invalid child node is invalid, (5) An AND node with all invalid child nodes is invalid, (6 The degenerate tree can be determined by the steps (1) to (6) in which OR nodes whose child nodes are all valid are valid.

図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が対応付けられている構成される縮退木である。 FIG. 5 shows a degenerate tree corresponding to the key generation station apparatus 2-1. The degenerate tree corresponding to the key generation station apparatus 2-1 is associated with a degenerate tree composed of leaves associated with the random numbers s " 1 , s" 2 , and s " 4 , and with a random number s" 7. It is a degenerate tree that is constructed. Similarly, FIG. 6 shows a degenerate tree corresponding to the key generation station apparatus 2-2. In FIG. 6, the degenerate tree corresponding to the key generation station apparatus 2-2 is associated with a degenerate tree composed of leaves associated with the random numbers s ″ 3 and s ″ 5 , respectively, and a random number s ″ 6. It is a degenerate tree that is composed.

このように、ある鍵生成局装置に対応する縮退木を、述語Sを表す木を構成する複数の葉の中のその鍵生成局装置に対応する葉で構成される少なくとも1つの木とする。   In this way, a degenerate tree corresponding to a certain key generation station apparatus is set to at least one tree composed of leaves corresponding to the key generation station apparatus among a plurality of leaves constituting the tree representing the predicate S.

そして、それらの縮退木の根に注目する。縮退木の根に相当する部分の値が0となるよう葉の乱数を決定する為、図G5、図G6に示すように、上記の単調回路構成法を縮退木毎に実行する。求めた行列を用い乱数s”1,…,s”7を決定する。 And pay attention to the roots of those degenerate trees. In order to determine the leaf random number so that the value of the portion corresponding to the root of the degenerate tree is 0, the above-described monotone circuit configuration method is executed for each degenerate tree, as shown in FIGS. A random number s ” 1 ,..., S” 7 is determined using the obtained matrix.

すなわち、各鍵生成局に対応する各縮退木の葉に対応する乱数を用いて述語Sの中の上記各縮退木の部分の述語により計算される上記各縮退木の根の値が0となるように、上記複数の葉に対応する乱数を生成する。   That is, the root value of each degenerate tree calculated by the predicate of each degenerate tree in the predicate S using a random number corresponding to the leaf of each degenerate tree corresponding to each key generation station is 0. Generate random numbers corresponding to multiple leaves.

図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とすることができる。 In the example of FIG. 5, the degenerate tree composed of leaves associated with the random numbers s ″ 1 , s ″ 2 , and s ″ 4 corresponding to the key generation station device 2-1 is f ″ 1 , f If “ 2 ” is a random number and s ” 1 = f” 2 , s ” 2 = f” 1 -f ” 2 , s” 1 = -f ” 2 , the root value of the degenerate tree can be set to zero. . In addition, the degenerate tree that is associated with the random number s ″ 7 and corresponds to the key generation station apparatus 2-1 may have the degenerate tree root value set to 0 by setting s ″ 7 = 0. it can.

図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とすることができる。 In the example of FIG. 6, the degenerate tree composed of leaves corresponding to the key generation station apparatus 2-2 and associated with the random numbers s ″ 3 , s ″ 5 is s ″ with f ″ 3 as a random number. By setting 3 = f ″ 3 , s ″ 5 = −f ″ 3 , the root value of the degenerate tree can be set to 0. Also, the random number s ″ 6 corresponding to the key generation station apparatus 2-2 is The root value of the degenerated tree can be set to 0 by setting s ” 6 = 0 for the configured degenerated tree that is associated.

GIDのときと同様に、単純回路構成による線形秘密分散を用いた関数型暗号システムにおいては、復号時に復号装置が有する秘密鍵(述語変数の値)に基づいて各縮退木に対応する根の値が計算され、この計算された根の値が平文m’のノイズとなるように構成されている。LIDが一致している場合には、換言すれば各縮退木の根の値=0となるように設定された乱数(例えばs”1,…,s”7)に基づいて平文m’を復号することができる場合には、各縮退木の根の値=0となりノイズが0となるため、正しく平文m’を復号することができる。LIDが一致しない場合は、換言すれば各縮退木の根の値=0となるように設定された乱数(例えばs”1,…,s”)に基づいて平文m’を復号することができない場合には、各縮退木の根の値≠0となりノイズが0とならないため、正しく平文m’を復号することができない。 As in the case of GID, in a functional cryptographic system using linear secret sharing with a simple circuit configuration, the root value corresponding to each degenerate tree based on the secret key (predicate variable value) that the decryption device has at the time of decryption Is calculated, and the calculated root value becomes the noise of plaintext m ′. If the LIDs match, in other words, the plaintext m ′ is decrypted based on a random number (for example, s ” 1 ,..., S” 7 ) set so that the root value of each degenerate tree = 0. Is possible, the root value of each degenerate tree is 0 and the noise is 0, so that plaintext m ′ can be correctly decrypted. If the LIDs do not match, in other words, if the plaintext m ′ cannot be decrypted based on a random number (for example, s ” 1 ,..., S”) set so that the root value of each degenerate tree is 0 Since the root value of each degenerate tree ≠ 0 and the noise does not become 0, the plaintext m ′ cannot be correctly decrypted.

このよういに、縮退木の中でLID が一致しない場合は回路を最後まで評価しても乱数が消去されずに暗号が復号できない。一方、違うグループでは異なるLIDでも、乱数が消去され暗号が復号できる。   In this way, if the LID does not match in the degenerate tree, even if the circuit is evaluated to the end, the random number is not erased and the cipher cannot be decrypted. On the other hand, even with different LIDs in different groups, the random numbers are erased and the encryption can be decrypted.

関数型暗号システムは、図1に示すように、標準化機関装置1、鍵生成局装置2、暗号化装置3、復号装置4を例えば含む。鍵生成局装置2及び復号装置4は複数存在してもよい。   As shown in FIG. 1, the functional cryptographic system includes, for example, a standardization institution apparatus 1, a key generation station apparatus 2, an encryption apparatus 3, and a decryption apparatus 4. There may be a plurality of key generation station apparatuses 2 and decryption apparatuses 4.

標準化機関装置1は、セキリュティパラメータ1λから共通参照文字列gparamを生成する(ステップS1)。標準化機関装置1は、例えば以下に例示するGSetupアルゴリズムにより、共通参照文字列gparamを生成する。生成された共通参照文字列gparamは、誰でも参照可能な形で公開される。共通参照文字列gparamに何らかの落し戸が仕掛けられることを避けるため、共通参照文字列gparamはその生成過程が公開検証可能であることが望ましい。 The standardization engine apparatus 1 generates a common reference character string gparam from the security parameter 1 λ (step S1). The standardization engine apparatus 1 generates the common reference character string gparam by, for example, the GSetup algorithm exemplified below. The generated common reference character string gparam is disclosed in a form that anyone can refer to. In order to avoid any traps being placed on the common reference character string gparam, it is desirable that the generation process of the common reference character string gparam can be publicly verified.

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;
}
GSetup is a stochastic polynomial time algorithm that receives the security parameter 1 λ and outputs the common reference character string gparam1. In the GSetup algorithm, λ is a predetermined positive integer, 1 λ is a security parameter, q is a predetermined prime number, G 1 and G T are cyclic groups of order q, and e is a pairing function G is a function for generating q, G 1 , G T , G, e from the security parameter 1 λ , g bpg (1 λ ).
GSetup (1 λ ) {
param G : = (q, G 1 , G T , G, e) ← $ g bpg (1 λ );
H ← $ {RandomOracle: {0,1} * → G 1 };
g 0 ← H (0 λ );
g 1 ← H (0 λ-1 1);
g T ← e (g 0 , g 1 );
gparam ← (param G , H, g 0 , g 1 , g t );
return gparam;
}

鍵生成局装置2は、共通参照文字列gparamを用いて、局公開パラメータapkとマスター鍵askを生成する(ステップS2)。生成されたマスター鍵askはその鍵生成局装置2に秘密に保持され、生成された局公開パラメータapkは誰でも参照可能な形で公開される。鍵生成局装置2が複数ある場合には、複数の鍵生成局装置2のそれぞれが、局公開パラメータapkとマスター鍵askを生成する処理を行う。   The key generation station apparatus 2 generates a station public parameter apk and a master key ask using the common reference character string gparam (step S2). The generated master key ask is secretly held in the key generation station apparatus 2, and the generated station public parameter apk is disclosed in a form that anyone can refer to. When there are a plurality of key generation station apparatuses 2, each of the plurality of key generation station apparatuses 2 performs a process of generating a station public parameter apk and a master key 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)
}
The key generation station device 2 generates a station public parameter apk and a master key ask by, for example, the ASetup algorithm exemplified below. ASetup is a probabilistic polynomial time algorithm that receives a common reference character string gparam and outputs a publicly disclosed parameter apk and a master key ask. In the ASetup algorithm, d is the number of predicate variables managed by the key generation station apparatus 2, and n i is the dimension of the i-th predicate variable.
ASetup (gparam) {
for i∈ {1,…, d} do {
(vsk i , var i ) ← GenerateVar (gparam, n i );
}
ask ← (vsk 1 ,…, vsk d );
apk ← (var 1 ,…, var d );
return (ask, apk)
}

ASetupアルゴリズムのサブルーチンであるGenerateVarは例えば以下のように示される。nは、上記のASetupアルゴリズムにおけるniを意味する。このように、サブルーチンの中では、i,j等のインデックスを省略することがある点に留意する。他のアルゴリズムのサブルーチンにおいても同様である。 For example, GenerateVar, which is a subroutine of the ASetup algorithm, is shown as follows. n means n i in the above ASetup algorithm. Thus, it should be noted that indexes such as i and j may be omitted in the subroutine. The same applies to subroutines of other algorithms.

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);
}
n is a predetermined positive integer. GL is an N × N regular matrix in which each element is F q and has an inverse matrix. As i = 1,..., N, B i is the i-th column vector constituting the matrix B.
GenerateVar (gparam, n) {
(param G , H, g 0 , g 1 , g t ) ← gparam;
N ← 7n + 1;
X ← $ GL (N, F q );
B ← X ・ g 0 ;
B ^ ← (B 1 ,…, B 3n , B N );
Y ← (X -1 ) T ;
var ← (B ^, n, gparam);
vsk ← (Y, var);
}

鍵生成局装置2は、マスター鍵ask、GID gid及び鍵識別子(述語変数への値の割り当て)xに基づいて、対応する秘密鍵skxを生成する(ステップS3)。生成された秘密鍵skxは、gidに対応するユーザが有するコンピュータである復号装置4に送信される。鍵生成局装置2及びユーザが複数ある場合には、各鍵生成局装置2が各ユーザに対して、秘密鍵skxを生成する処理を行う。 The key generation station apparatus 2 generates a corresponding secret key sk x based on the master key ask, GID gid, and key identifier (assignment of values to predicate variables) x (step S3). The generated secret key sk x is transmitted to the decryption device 4 which is a computer possessed by the user corresponding to gid. When there are a plurality of key generation station apparatuses 2 and users, each key generation station apparatus 2 performs a process of generating a secret key sk x for each user.

鍵生成局装置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
}
The key generation station apparatus 2 generates the secret key sk x by, for example, the AttrGen algorithm exemplified below. AttrGen is a stochastic polynomial time algorithm that generates a corresponding secret key sk x based on a master key ask, GID gid, and key identifier (assignment of value to predicate variable) x. x: = ((t 1 , x 1 ),..., (t a , x a )) is a list of values assigned to predicate variables. As i = 1,..., a, t i is an index of the list (subscript of the predicate variable to be assigned), and x i is a value or vector assigned to the predicate variable represented by the index. In this way, the key generation station device 2 issues a different local identifier G lid each time a secret key is generated, and generates a secret key including information on the issued local identifier G lid . The key generation station apparatus 2 further issues a global verifiable identifier G gid of the user who transmits the generated secret key, and generates a secret key further including information on the issued global verifiable identifier G gid. .
AttrGen (ask, gid, x) {
(vsk 1 ,…, vsk d ) ← ask;
((t 1 , x 1 ),…, (t a , x a )) ← x;
G gid ← H (gid);
G lid$ G 1 ;
for i∈ {1,…, a} do {
j ← t i ;
k i$ AssignVar (vsk j , G gid , G lid , x i );
}
sk x ← (k 1 ,…, k a )
return sk x
}

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;
}
AssignVar, which is a subroutine of the AttrGen algorithm, is shown as follows, for example. 0 is the point at infinity.
AssignVar (vsk, G gid , G lid , x ) {
(Y, var) ← vsk;
(B ^, n, gparam) ← var;
(param G , H, g 0 , g 1 , g t ) ← gparam;
φ $ F q n ;
k * ← Y ・ (x ・ g 1 , x ・ G gid , x ・ G lid , O 3n , φ ・ g 1 , 0);
k ← (k * , x , var);
return k;
}

暗号化装置3は、各鍵生成局装置2の局公開パラメータapkを用いて記述した受信者識別子(述語ともいう。)S及び平文mに基づいて、暗号文cSを生成する(ステップS4)。生成された暗号文cSは、その受信者識別子Sのユーザが保有する復号装置4に送信される。暗号化装置3は、例えば以下に例示するEncアルゴリズムにより暗号文cSを生成する。 The encryption device 3 generates a ciphertext c S based on the receiver identifier (also referred to as a predicate) S and the plaintext m described using the station public parameter apk of each key generation station device 2 (step S4). . The generated ciphertext c S is transmitted to the decryption device 4 held by the user having the recipient identifier S. The encryption device 3 generates the ciphertext c S using, for example, the Enc algorithm exemplified below.

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;
}
The Enc algorithm is a probabilistic polynomial time algorithm that generates a ciphertext c S with a predicate S and a plaintext m as inputs. The predicate S is composed of M, M ″, ρ. M is a secret sharing generator matrix representing the predicate S, and M ″ is a tuned secret sharing generator matrix representing the predicate of the degenerate tree of the predicate S. ρ is a list of literal predicates. ρ i is the i-th literal predicate and is composed of Neg, var, v . Neg is information indicating whether the literal predicate is positive (Neg = 0) or negative (Neg = 1), var is a predicate variable, v is a conditional expression indicating the value of the predicate variable, var and v is a primitive predicate. e 1 is (1,0, ..., 0).
Enc (S, m) {
(M, M ”, ρ) ← S;
f ← $ F q r ; f '← $ {0} × F q r-1 ; f ”← $ F q r” ;
s ← M ・ f; s '← M ・ f'; s ”← M” ・ f ”;
s 0 ← f 1 ;
for i∈ {1,…, l} do {
(Neg, var, v ) = ρ i ;
(B ^, n, gparam) ← var;
N ← 7n + 1;
η ← $ F q ;
if Neg = 0 then {
(θ, θ ', θ'') ← $ F q 3 ;
c i ← (s i e 1 → + θv →, s i 'e 1 → + θ'v →, s i "e 1 → + θ" v →, η) B ^;
} else {
c i ← (s i v , s i 'v , s i ″ v , η) B ^ ;
}
};
c l + 1 ← mg T s0 ;
c s ← (S, c 1 ,…, c l , c l + 1 );
return c s ;
}

復号装置4は、秘密鍵skx1,…,skxn’及び暗号文cSを用いて、平文m’を生成する。n’は用いられる秘密鍵の数である(ステップS5)。復号装置4は、例えば以下に例示されるDecアルゴリズムにより平文m’を生成する。復号装置4は、例えばこのようにして、平文を復号するための秘密鍵に含まれる局所識別子が同じ場合のみ正しい平文が生成されるように、上記平文を復号する。 The decryption device 4 generates plaintext m ′ using the secret keys sk x1 ,..., Sk xn ′ and the ciphertext c S. n ′ is the number of secret keys used (step S5). The decryption device 4 generates plaintext m ′ using, for example, the Dec algorithm exemplified below. For example, the decryption device 4 decrypts the plaintext so that a correct plaintext is generated only when the local identifiers included in the secret key for decrypting the plaintext are the same.

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;
}
}
The Dec algorithm is a probabilistic polynomial time algorithm that receives the secret keys sk x1 ,..., Sk xn ′ and the ciphertext c S and outputs the plaintext m ′. acc is a variable that indicates whether plaintext m 'can be correctly decrypted. When acc = True, plaintext m' can be decrypted correctly, and when acc ≠ True, plaintext is correctly represented. This represents that m ′ cannot be decrypted. When acc ≠ True, NG that is information indicating that plaintext m ′ cannot be correctly decrypted is output. β is a correction factor, and J is a mapping from a literal index to a key index.
Dec algorithm
Dec ({sk x1 ,…, sk xn ' }, c s ) {
{k 1 ,…, k a } ← U i sk xi ;
(S, c 1 ,…, c l , c l + 1 ) ← c s ;
(acc, β, J) ← Accept (S, {k 1 ,…, k a });
if acc = True then {
K = 1;
for i∈ {1,…, l} do {
if β i ≠ 0 then {
j ← J i ;
(k * , x , var) ← k j ;
K ← × e (c i , k * ) βi ;
}
}
m '← c l + 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);
}
The Accept algorithm, which is a subroutine of the Dec algorithm, is expressed as follows, for example.
Accept (S, k) {
(M, M ”, ρ) ← S;
for i∈ {1,…, l} do {
(Neg, var, v ) ← ρ i ;
if (∃j st k j = (k * , var, x ) st (
((Neg = 0) ∧ (x ・ v = 0)) ∨
((Neg ≠ 0) ∧ (x ・ v ≠ 0))) then {
J i ← j;
γ i ← x ・ v ;
} else {
J i ← NG;
M i ← 0 ;
}
}
(M ', V, w, l') ← GaussianElimination (M);
σ ← (1,0,…, 0)
α ← 0 ; // (α 1 ,…, α l ) ← (0,…, 0) Initialization
for i∈ {1,…, l '} do {
t ← w i ;
α ← + σ t・ V i ; σ ← + σ t・ M i ';
}
acc ← (σ = ? 0 );
// True if the σ a linear combination of M i can be zero
β ← α;
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’);
}
For example, GaussianElimination (M), which is a subroutine of the Accept algorithm, is expressed as follows. I l is an l × l identity matrix. GaussianElimination (M) is an algorithm that converts M into M ′, which is a step matrix of M. V is an l × l matrix for making M a step matrix. That is, M ′ = V · M. w is the index of the first non-zero component element whose w i is M i ′. l 'is the number of non-zero rows of M'.
GaussianElimination (M) {
V ← I l ;
t ← 0;
l '← 0;
for i∈ {1,…, l} do {
// Start partial pivot selection
t ++; if t> r then goto last;
j ← i;
while M j, t = 0 do {
j ++;
if j> l then {
t ++; if t> r then goto last;
j ← i;
}
}
swap (M i , M j ); swap (V i , V j ); // swap rows
// end partial pivot selection
l '← I;
w '← t;
V i÷ M i, t ; M i÷ M i, t ;
for j∈ {i + 1,…, l} do {
if M j, t ≠ 0 then {
V j ← - M j, t · V i; M j ← M j, t · M i;
}
}
}
last: return (M, V, w, l ');
}

以下、Acceptアルゴリズムについての説明をする。   Hereinafter, the Accept algorithm will be described.

暗号が正しい手順によって復号できるとき、すなわちDecアルゴリズム中の
(acc,β,J)←Accept(S,{k1,…,ka});
にてaccにTrueが返る場合、鍵(変数の具体的な割り当て){k1,…,ka}は述語Sを満足する。
When the cipher can be decrypted with the correct procedure, ie in the Dec algorithm
(acc, β, J) ← Accept (S, {k 1 ,…, k a });
If acc returns True at, the key (specific variable assignment) {k 1 ,..., K a } satisfies the predicate S.

このことは、述語Sの中に含まれるリテラル述語(treeの葉の部分)のリストρのうち{k1,…,ka}によって満足される部分のみを使って、treeの根の部分に相当する情報を復元できることを意味する。 This means that only the part satisfied by {k 1 ,…, k a } in the list ρ of literal predicates (the leaf part of the tree) contained in the predicate S is used for the root part of the tree. It means that the corresponding information can be restored.

鍵(変数の具体的な割り当て){k1,…,ka}が述語Sを満足するか否かを判定するためには、使用可能なtreeの葉の部分のみを利用して、treeの根の部分の情報が復元できるか否かを判定できればよい。 To determine whether the key (specific variable assignment) {k 1 ,…, k a } satisfies the predicate S, only the leaf portion of the tree that can be used is used. It is only necessary to determine whether or not the root information can be restored.

今、線形秘密分散によってtreeの葉の部分の情報s1,…,slは独立変数f1,…,frによって以下のように記述されているとする。 Now, information s 1 of the leaves of the tree by a linear secret sharing, ..., s l is the independent variable f 1, ..., and is described as follows by f r.

Figure 0005841955
Figure 0005841955

一般には鍵{k1,…,ka}が満足するリテラル述語は{ρ1,…,ρl}の中の一部のみであるから、実際に復号に利用できる葉の情報はs1,…,slの中の一部の情報のみである。l×l行列Zを、鍵{k1,…,ka}がi番目のリテラル述語ρiを満足するときZi,i=1それ以外はZi,j=1なる対角行列と定義すると、実際に復号に利用できる葉変数siと独立変数fiの関係式は以下のように記述できる。 In general, since only a part of {ρ 1 , ..., ρ l } is a literal predicate that satisfies the key {k 1 , ..., k a }, the leaf information that can actually be used for decryption is s 1 , …, Sl only some information in l . define l × l matrix Z, keys {k 1, ..., k a } Z i when satisfies the i-th literal predicate [rho i, i = 1 otherwise Z i, and j = 1 Naru diagonal matrix Then, the relational expression between the leaf variable s i and the independent variable f i that can actually be used for decoding can be described as follows.

Figure 0005841955
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)なる行ベクトルが生成可能であることは同値である。 In the first half of the Accept algorithm, overwriting some rows of the matrix M with 0 is calculating M ← Z · M. Then, s 1, ..., partial information Z · of s l (s 1, ..., s l) from T, information of the root of the tree s 0 = f 1 = ( 1,0, ..., 0) · (f 1 ,..., F r ) T can be calculated, and the fact that a row vector of (1,0,..., 0) can be generated by linear combination of the rows of the matrices Z and M is equivalent.

したがって、鍵(変数の具体的な割り当て){k1,…,ka}が述語Sを満足するか否かを判定するためには、行列Z・Mの行の線形結合にょり(1,0,…,0)なる行ベクトルが生成可能であるか否かを判定すればよい。 Therefore, in order to determine whether the key (specific variable assignment) {k 1 ,..., K a } satisfies the predicate S, the linear combination of the rows of the matrix Z · M (1, It may be determined whether or not a row vector (0,..., 0) can be generated.

そのために、まずGaussの消去法を用いZ・Mの行基本変形により階段型行列M’を作成する。この階段型行列M’の作成を行うのが、AcceptアルゴリズムのサブルーチンであるGaussianEliminationアルゴリズムである。このとき、正則行列VによりM’=V・Z・Mと記述できる。   For this purpose, first, a staircase type matrix M ′ is generated by Z · M row basic deformation using Gaussian elimination. The Gaussian Elimination algorithm, which is a subroutine of the Accept algorithm, creates the staircase type matrix M ′. At this time, M ′ = V · Z · M can be described by the regular matrix V.

Vは正則行列であるから、行列Z・Mの行の線形結合により(1,0,…,0)なる行ベクトルが生成可能であることと、M’=V・Z・Mの行の線形結合により(1,0,…,0)なる行ベクトルが生成可能であることとは同値である。   Since V is a regular matrix, a row vector of (1,0, ..., 0) can be generated by linear combination of the rows of the matrix Z and M, and the linearity of the rows of M '= V, Z and M It is equivalent to the fact that a row vector (1,0,..., 0) can be generated by combining.

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)であるから、
Since M 'is a step matrix, whether or not a row vector of (1,0, ..., 0) can be generated by linear combination of the rows of M' depends on the step of M 'as in the for loop in the middle of the Accept algorithm. While paying attention to the elements of the matrix, each row of M ′ is successively subtracted from (1,0,..., 0) to determine whether or not it can be transformed into (0,..., 0). If M ′'s linear combination (ζ 1 ,…, ζ l ) · M ′ is
1 ,…, ζ l ) ・ M '= (1,0,…, 0)
If you meet
1 ,…, ζ l ) ・ V ・ Z ・ M = (1,0,…, 0)
Because
1 ,…, α l ) = (ζ 1 ,…, ζ l ) ・ V ・ Z
1 ,…, α l ) · M = (1,0,…, 0)

Figure 0005841955
Figure 0005841955

となる。すなわち鍵{k1,…,ka}が述語Sを満足するなら、 It becomes. That is, if the key {k 1 ,…, k a } satisfies the predicate S,

Figure 0005841955
Figure 0005841955

となる。Acceptアルゴリズムの真ん中のforループでこのαiが計算されている。同様に、 It becomes. This α i is calculated in the for loop in the middle of the Accept algorithm. Similarly,

Figure 0005841955
Figure 0005841955

となる。また、縮退木がn個ありji∈{1,…,n}としてi番目の葉とi’番目の葉が同じ縮退木に含まれるときはji=ji’と定義する。χjを不定元とし、Σi=1 lαisi”χjiなる和を考え不定元毎に係数をまとめると、 It becomes. Further, when there are n degenerate trees and j i ∈ {1,..., N} and the i-th leaf and the i′-th leaf are included in the same degenerated tree, j i = j i ′ is defined. Let χ j be an indefinite element, and consider the sum of Σ i = 1 l α i s i ”χ ji ,

Figure 0005841955
Figure 0005841955

となる。縮退木内での元の秘密分散と同じ復元過程を経ると根の根が0となる同調秘密分散の定義により、 It becomes. Through the same restoration process as the original secret sharing within the degenerate tree, the definition of the tuned secret sharing is 0.

Figure 0005841955
Figure 0005841955

が成立するので、不定元χjに関して恒等的に、 So that the identity of the indefinite element χ j

Figure 0005841955
Figure 0005841955

となる。 It becomes.

Acceptアルゴリズムの最後のforループは否定のリテラル述語からsiに関する情報を計算する際、計算が単純になるようαiを補正した値であるβiを求めている。詳細は、下記を参照のこと。 Last for loop Accept algorithm when computing the information about the s i from negative literal predicate calculations are seeking beta i is a value obtained by correcting the alpha i so as to be simple. See below for details.

Decアルゴリズムにおいて最初のfor文で計算しているKはδgid及びδj lidK calculated in the first for statement in the Dec algorithm is δ gid and δ j lid

Figure 0005841955
Figure 0005841955

と定義すると、 Defined as

Figure 0005841955
Figure 0005841955

となるので、Correctnessが満たされる。上記の説明のχjiにδji lidが代入された形になっている。B*はいわゆるBの双対基底であり、B*=Y・g0=(X-1)T・g0である。 Therefore, Correctness is satisfied. In the above explanation, δ ji lid is substituted for χ ji . B * is a dual basis of the so-called B, B * = Y · g 0 = (X -1) is T · g 0.

最後に攻撃者の攻撃によってノイズが消えない理由について説明する。今、攻撃者の立場に立って、ある縮退木に対して異なるlidを持ついくつかの鍵を組み合わせて適用し、本来復号できないはずの暗号文を、何とか復号することを考える。   Finally, the reason why the noise does not disappear due to the attacker's attack will be explained. Now, from an attacker's standpoint, let's consider applying a combination of several keys with different lids to a certain degenerate tree, and somehow decrypting the ciphertext that should not be decrypted.

このとき、i番目の葉とi’番目の葉が同じ縮退木に含まれていても、ji≠ji’となるようなi,i’が存在することとなり、恒等式(1)を使用することができない。したがって、攻撃者は At this time, even if the i-th leaf and the i'-th leaf are included in the same degenerate tree, i, i 'exists such that j i ≠ j i', and the identity (1) is used. Can not do it. Therefore, the attacker

Figure 0005841955
Figure 0005841955

を成立させる都合の良いχjiの組み合わせを暗号文毎に見つける必要がある。しかし、χjiの具体的な値はAttrGenアルゴリズムの中のGlidの離散対数によって決定され、対象となる鍵生成局装置が正しくAttrGenを行う限りχjiはランダムに選ばれてしまい、攻撃者は圧倒的に低い確率でしか都合が良いχjiを引き出すことはできない。 For each ciphertext, it is necessary to find a convenient combination of χ ji to establish However, the specific value of χ ji is determined by the discrete logarithm of G lid in the AttrGen algorithm, and as long as the target key generation station device correctly performs AttrGen, χ ji is randomly selected, and the attacker Chi- ji , which is convenient, can be derived only with an overwhelmingly low probability.

[変形例]
上記装置及び方法において説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[Modification]
The processes described in the above apparatus and method are not only executed in time series according to the description order, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the process.

また、関数型暗号システム方法における各処理をコンピュータによって実現する場合、関数型暗号システム方法が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、関数型暗号システム方法における処理手段がコンピュータ上で実現される。   Further, when each process in the functional cryptographic system method is realized by a computer, processing contents of functions that the functional cryptographic system method should have are described by a program. Then, by executing this program on the computer, the processing means in the functional cryptographic system method is realized on the computer.

この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。   The program describing the processing contents can be recorded on a computer-readable recording medium. As the computer-readable recording medium, for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.

また、各処理手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   Each processing means may be configured by executing a predetermined program on a computer, or at least a part of these processing contents may be realized by hardware.

その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。   Needless to say, other modifications are possible without departing from the spirit of the present invention.

1 標準化機関装置
2 鍵生成局装置
3 暗号化装置
4 復号装置
DESCRIPTION OF SYMBOLS 1 Standardization organization apparatus 2 Key generation station apparatus 3 Encryption apparatus 4 Decryption apparatus

Claims (3)

単調回路構成法による線形秘密分散を用いた関数型暗号システムにおいて、
上記線形秘密分散において用いられる述語Sを表現する木を構成する複数の葉のそれぞれには、そのそれぞれの葉に対応するリテラル述語に対応する鍵生成局装置が対応付けされており、
ある鍵生成局装置に対応する縮退木を、上記複数の葉の中のその鍵生成局装置に対応する葉で構成される少なくとも1つの木とし、
各鍵生成局装置に対応する各縮退木の葉に対応する乱数を用いて上記述語Sの中の上記各縮退木の部分の述語により計算される上記各縮退木の根の値が0となるように、上記複数の葉に対応する乱数を生成し、これらの生成された乱数を用いて平文を暗号化する暗号化装置と、
を含む関数型暗号システム。
In a functional cryptosystem using linear secret sharing by a monotone circuit construction method,
Each of a plurality of leaves constituting the tree expressing the predicate S used in the linear secret sharing is associated with a key generation station device corresponding to a literal predicate corresponding to each leaf,
A degenerate tree corresponding to a certain key generation station device is at least one tree composed of leaves corresponding to the key generation station device among the plurality of leaves,
The root value of each degenerate tree calculated by a predicate of each degenerate tree in the above descriptive word S using a random number corresponding to the leaf of each degenerate tree corresponding to each key generation station apparatus is 0. An encryption device that generates random numbers corresponding to a plurality of leaves and encrypts plaintext using the generated random numbers;
Functional cryptographic system including
請求項1の関数型暗号システムにおいて、
上記暗号化装置は、上記複数の葉に対応する乱数を用いて上記述語Sにより計算される上記木の根の値が0となるように、上記複数の葉に対応する乱数を更に生成し、これらの生成された乱数を更に用いて平文を暗号化する、
関数型暗号システム。
The functional cryptographic system according to claim 1,
The encryption device further generates random numbers corresponding to the plurality of leaves such that the root value of the tree calculated by the upper descriptive word S is 0 using the random numbers corresponding to the plurality of leaves, Encrypt the plaintext by further using the generated random number,
Functional cryptographic system.
単調回路構成法による線形秘密分散を用いた関数型暗号方法において、
上記線形秘密分散において用いられる述語Sを表現する木を構成する複数の葉のそれぞれには、そのそれぞれの葉に対応するリテラル述語に対応する鍵生成局装置が対応付けされており、
ある鍵生成局装置に対応する縮退木を、上記複数の葉の中のその鍵生成局装置に対応する葉で構成される少なくとも1つの木とし、
暗号化装置が、各鍵生成局装置に対応する各縮退木の葉に対応する乱数を用いて上記述語Sの中の上記各縮退木の部分の述語により計算される上記各縮退木の根の値が0となるように、上記複数の葉に対応する乱数を生成し、これらの生成された乱数を用いて平文を暗号化する暗号化ステップと、
を含む関数型暗号方法。
In a functional encryption method using linear secret sharing by a monotone circuit construction method,
Each of a plurality of leaves constituting the tree expressing the predicate S used in the linear secret sharing is associated with a key generation station device corresponding to a literal predicate corresponding to each leaf,
A degenerate tree corresponding to a certain key generation station device is at least one tree composed of leaves corresponding to the key generation station device among the plurality of leaves,
The value of the root of each degenerate tree calculated by the predicate of the portion of each degenerate tree in the upper descriptive word S using the random number corresponding to the leaf of each degenerate tree corresponding to each key generation station apparatus is 0. An encryption step for generating random numbers corresponding to the plurality of leaves and encrypting the plaintext using these generated random numbers,
Functional encryption method including
JP2013008400A 2013-01-21 2013-01-21 Functional cryptographic system and method Active JP5841955B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013008400A JP5841955B2 (en) 2013-01-21 2013-01-21 Functional cryptographic system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013008400A JP5841955B2 (en) 2013-01-21 2013-01-21 Functional cryptographic system and method

Publications (2)

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

Family

ID=51416360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013008400A Active JP5841955B2 (en) 2013-01-21 2013-01-21 Functional cryptographic system and method

Country Status (1)

Country Link
JP (1) JP5841955B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6936482B2 (en) * 2017-11-10 2021-09-15 地方独立行政法人東京都立産業技術研究センター Cryptographic systems, user systems, cryptographic methods, and cryptographic programs

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010123122A1 (en) * 2009-04-24 2010-10-28 日本電信電話株式会社 Cryptogram system, cryptogram communication method, encrypting device, key generating device, decrypting device, content server device, programs, and storage medium
JP5334873B2 (en) * 2010-01-08 2013-11-06 三菱電機株式会社 Cryptographic processing system, key generation device, key delegation device, encryption device, decryption device, cryptographic processing method, and cryptographic processing program
JP5618881B2 (en) * 2011-03-25 2014-11-05 三菱電機株式会社 Cryptographic processing system, key generation device, encryption device, decryption device, cryptographic processing method, and cryptographic processing program

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6016948B2 (en) Secret calculation system, arithmetic device, secret calculation method, and program
Sun et al. Outsourced decentralized multi-authority attribute based signature and its application in IoT
US10880100B2 (en) Apparatus and method for certificate enrollment
CN110113156B (en) Traceable hierarchical multi-authorization ciphertext policy attribute-based authentication method
JP7449423B2 (en) Security system and method implemented in blockchain for blinded outcome selection
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
Barta et al. On succinct arguments and witness encryption from groups
Watanabe et al. Identity-based hierarchical key-insulated encryption without random oracles
Sandhia et al. Secure sharing of data in cloud using MA-CPABE with elliptic curve cryptography
Ramesh et al. PCS-ABE (t, n): a secure threshold multi authority CP-ABE scheme based efficient access control systems for cloud environment
Singamaneni et al. An Enhanced Dynamic Nonlinear Polynomial Integrity-Based QHCP-ABE Framework for Big Data Privacy and Security
Borse et al. Anonymity: A secure identity management using smart contracts
Thangavel et al. An analysis of privacy preservation schemes in cloud computing
JP5841955B2 (en) Functional cryptographic system and method
Rehman et al. Securing cloud storage by remote data integrity check with secured key generation
Sethi et al. A scalable attribute based encryption for secure data storage and access in cloud
CN116318647B (en) CP-ABE outsourcing decryption method and device with homomorphic characteristic
Perera et al. Group Oriented Attribute-Based Encryption Scheme from Lattices with the Employment of Shamir’s Secret Sharing Scheme
US11856095B2 (en) Apparatus and methods for validating user data by using cryptography
Wahab Coconut e-petition implementation
Xia et al. Attribute-based Encryption (ABE): Foundations and Applications Within Blockchain and Cloud Environments

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