JP5355263B2 - Key sharing apparatus, key sharing method and program - Google Patents

Key sharing apparatus, key sharing method and program Download PDF

Info

Publication number
JP5355263B2
JP5355263B2 JP2009161663A JP2009161663A JP5355263B2 JP 5355263 B2 JP5355263 B2 JP 5355263B2 JP 2009161663 A JP2009161663 A JP 2009161663A JP 2009161663 A JP2009161663 A JP 2009161663A JP 5355263 B2 JP5355263 B2 JP 5355263B2
Authority
JP
Japan
Prior art keywords
key
arbitrary
sharing
value
cyclic group
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
JP2009161663A
Other languages
Japanese (ja)
Other versions
JP2011019042A (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 JP2009161663A priority Critical patent/JP5355263B2/en
Publication of JP2011019042A publication Critical patent/JP2011019042A/en
Application granted granted Critical
Publication of JP5355263B2 publication Critical patent/JP5355263B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報セキュリティ技術の応用に関し、特に、装置間で鍵を共有する鍵交換技術に関する。   The present invention relates to an application of information security technology, and more particularly to a key exchange technology for sharing a key between devices.

装置間で鍵を共有する鍵交換方式の従来技術の一つに以下の方式がある(例えば、非特許文献1参照)。   One of the conventional techniques for exchanging keys between devices is the following system (see, for example, Non-Patent Document 1).

[公開パラメータ]
GをLビット(L≧1)の位数q(qは素数)の巡回群、gをGの生成元とする。H:{0,1}→{0,1}を任意長のビット列をLビットのビット列に写すハッシュ関数とする。また、ID(algo)を、共有した鍵Kの使いかた(認証鍵、暗号化鍵など)を記述するアルゴリズム識別子とする。
[Public parameters]
Let G be a cyclic group of order q (q is a prime number) of L bits (L ≧ 1), and g be a generator of G. H: {0, 1} * → {0, 1} Let L be a hash function that copies a bit string of arbitrary length to a bit string of L bits. Also, ID (algo) is an algorithm identifier that describes how to use the shared key K (authentication key, encryption key, etc.).

[鍵交換]
識別子ID(1)と秘密鍵a(1)∈Zと公開鍵A(1)=ga(1)∈Gをもつ装置PA(1)と、識別子ID(2)と秘密鍵a(2)∈Zと公開鍵A(2)=ga(2)∈Gをもつ装置PA(2)とは、以下のようにして鍵Kを共有する。
[Key exchange]
A device PA (1) having an identifier ID (1), a secret key a (1) εZ q and a public key A (1) = ga (1) εG, an identifier ID (2) and a secret key a (2 ) ΕZ q and public key A (2) = ga (2) The device PA (2) having εG shares the key K as follows.

1.装置PA(1)は、乱数r(1)∈Zを生成し、識別子ID(1)とX(1)=gr(1)∈Gを装置PA(2)に送る。 1. The device PA (1) generates a random number r (1) εZ q and sends the identifier ID (1) and X (1) = gr (1) εG to the device PA (2).

2.装置PA(2)は、乱数r(2)∈Zを生成し、識別子ID(2)とX(2)=gr(2)∈GをPA(1)に送る。 2. The device PA (2) generates a random number r (2) εZ q and sends the identifier ID (2) and X (2) = gr (2) εG to PA (1).

3.装置PA(1)は、φ(1)=X(2)r(1)∈Gとφ(2)=A(2)a(1)∈Gを計算し、鍵K=H(φ(1),φ(2),ID(1),ID(2),ID(algo))を計算する。 3. The device PA (1) calculates φ (1) = X (2) r (1) εG and φ (2) = A (2) a (1) εG, and calculates the key K = H (φ (1 ), Φ (2), ID (1), ID (2), ID (algo)).

4.装置PA(2)は、φ(1)=X(1)r(2)∈Gとφ(2)=A(1)a(2)∈Gを計算し、鍵K=H(φ(1),φ(2),ID(1),ID(2),ID(algo))を計算する。 4). The device PA (2) calculates φ (1) = X (1) r (2) εG and φ (2) = A (1) a (2) εG, and calculates the key K = H (φ (1 ), Φ (2), ID (1), ID (2), ID (algo)).

ここで、巡回群Gでの演算は可換であるため、装置PA(1),PA(2)で生成されるφ(1),φ(2)は、いずれも、
φ(1)=gr(1)・r(2)∈G …(1)
φ(2)=ga(1)・a(2)∈G …(2)
となり、装置PA(1),PA(2)で同一の鍵Kが共有される。
Here, since operations in the cyclic group G are commutative, both φ (1) and φ (2) generated by the devices PA (1) and PA (2)
φ (1) = g r (1) ・ r (2) ∈G… (1)
φ (2) = g a (1) ・ a (2) ∈G… (2)
Thus, the same key K is shared by the devices PA (1) and PA (2).

Elaine Barker, Don Johnson, and Miles Smid, "NIST Special Publication 800-56A: Recommendation for Pair-WiseKey Establishment Schemes Using Discrete Logarithm Cryptography", Section 6.1.1.2Elaine Barker, Don Johnson, and Miles Smid, "NIST Special Publication 800-56A: Recommendation for Pair-WiseKey Establishment Schemes Using Discrete Logarithm Cryptography", Section 6.1.1.2

しかし、非特許文献1の方式は、KCI攻撃(Key-Compromise Impersonation attack) に弱いという問題がある。   However, the method of Non-Patent Document 1 has a problem that it is vulnerable to a KCI attack (Key-Compromise Impersonation attack).

攻撃者Mは以下のようにKCI攻撃を行うことができる。   The attacker M can perform a KCI attack as follows.

0.攻撃者Mは、装置PA(1)の秘密鍵a(1)∈Zを得る。 0. The attacker M obtains the secret key a (1) εZ q of the device PA (1).

1.装置PA(1)は、乱数r(1)∈Zを生成し、識別子ID(1)とX(1)=gr(1)∈Gを装置PA(2)に送る。 1. The device PA (1) generates a random number r (1) εZ q and sends the identifier ID (1) and X (1) = gr (1) εG to the device PA (2).

2.攻撃者Mは、乱数r(2)∈Zを生成し、識別子ID(2)とX(2)=gr(2)∈GをPA(1)に送る。 2. The attacker M generates a random number r (2) εZ q and sends the identifier ID (2) and X (2) = gr (2) εG to PA (1).

3.装置PA(1)は、φ(1)=X(2)r(1)∈Gとφ(2)=A(2)a(1)∈Gを計算し、鍵K=H(φ(1),φ(2),ID(1),ID(2),ID(algo))を計算する。 3. The device PA (1) calculates φ (1) = X (2) r (1) εG and φ (2) = A (2) a (1) εG, and calculates the key K = H (φ (1 ), Φ (2), ID (1), ID (2), ID (algo)).

4.攻撃者Mは、φ(1)=X(1)r(2)∈Gとφ(2)=A(2)a(1)∈Gを計算し、鍵K=H(φ(1),φ(2),ID(1),ID(2),ID(algo))を計算する。 4). The attacker M calculates φ (1) = X (1) r (2) εG and φ (2) = A (2) a (1) εG, and calculates the key K = H (φ (1), φ (2), ID (1), ID (2), ID (algo)) is calculated.

以上のように、装置PA(1)の秘密鍵a(1)∈Zを得た攻撃者Mは、装置PA(2)の秘密鍵a(2)∈Zを知らないにもかかわらず、装置PA(2)に成り済まして装置PA(1)と鍵Kを共有できる。 As described above, the attacker M who obtained the secret key a (1) εZ q of the device PA (1) does not know the secret key a (2) εZ q of the device PA (2). The device PA (2) can be impersonated and the device PA (1) can share the key K.

本発明はこのような点に鑑みてなされたものであり、KCI攻撃に強い鍵共有技術を提供することを目的とする。   The present invention has been made in view of such a point, and an object thereof is to provide a key sharing technique that is resistant to KCI attacks.

本発明では、他の装置と鍵を共有する鍵共有装置は、少なくとも、整数の秘密値a(i)又は巡回群Gの元Z(i)=ga(i)・MSK∈Gと、他の装置に対応する巡回群Gの元である公開値A(j)=ga(j)∈Gとを記憶する。なお、i,j∈{1,...,P}、j≠iであり、Pは2以上の整数定数、gはgによって巡回群Gのすべての元を表現できる生成元であり、MSK,m及びa(j)は整数である。この鍵共有装置は、以下の処理を実行する。 In the present invention, a key sharing device that shares a key with another device includes at least an integer secret value a (i) or an element Z (i) = ga (i) · MSK εG of a cyclic group G, and the like. The public value A (j) = ga (j) εG, which is an element of the cyclic group G corresponding to the device in FIG. Note that i, jε {1,. . . , P}, j ≠ i, P is an integer constant of 2 or more, g is a generator that can represent all elements of the cyclic group G by g m , and MSK, m, and a (j) are integers . This key sharing apparatus executes the following processing.

まず、鍵共有装置は、整数の任意値r(i)を生成し、第1任意元X(i)=gr(i)∈Gを生成し、第1任意元X(i)を出力する。この第1任意元X(i)は他の装置に入力される。 First, the key sharing device generates an integer arbitrary value r (i), generates a first arbitrary element X (i) = g r (i) εG, and outputs the first arbitrary element X (i). . This first arbitrary element X (i) is input to another device.

また、鍵共有装置には、他の装置から出力された第2任意元X(j)=gr(j)∈Gが入力される。なお、r(j)は整数である。 Further, the second arbitrary element X (j) = gr (j) εG output from another device is input to the key sharing device. R (j) is an integer.

鍵共有装置は、少なくとも、秘密値a(i)又は元Z(i)=ga(i)・MSK∈Gと、公開値A(j)=ga(j)∈Gと、任意値r(i)と、第2任意元X(j)=gr(j)∈Gとを用い、巡回群Gの元gW(u)∈Gを共有元σ(u)として生成するか、又は、さらに巡回群Gの元を巡回群Gの元に写像する関数eを用い、巡回群Gの元g W(u)∈Gを共有元σ(u)として生成する。なお、W(u)は、整数w(u,1),...,w(u,P)を含むP個以上の整数の積であり、整数w(u,p)は、a(p)とr(p)とを含む複数の整数の線形和であり、p∈{1,...,P}、u∈{1,...,U}、Uは1以上の整数定数であり、gはg によって巡回群Gのすべての元を表現できる生成元である。 The key sharing device has at least a secret value a (i) or an element Z (i) = ga (i) · MSK εG, a public value A (j) = ga (j) εG, and an arbitrary value r Using (i) and the second arbitrary element X (j) = g r (j) ∈ G and generating the element g W (u) ∈ G of the cyclic group G as a shared element σ (u), or further using the function e that maps original cyclic group G to the original cyclic group G T, it generates the original g T W (u) ∈G T of the cyclic group G T as the Pool sigma (u). Note that W (u) is an integer w (u, 1),. . . , W (u, P) is a product of P or more integers, and the integer w (u, p) is a linear sum of a plurality of integers including a (p) and r (p), p ∈ {1,. . . , P}, u∈ {1,. . . , U}, U is an integer of 1 or more constants, g T is a generator that can represent all of the original cyclic group G T by g T m.

そして、鍵共有装置は、少なくとも共有元σ(u)に基づいて値が定まる鍵Kを生成し、当該鍵Kを出力する。   Then, the key sharing device generates a key K whose value is determined based on at least the sharing source σ (u), and outputs the key K.

ここで、W(u)は、整数w(u,1),...,w(u,P)を含むP個以上の整数の積であり、整数w(u,p)は、a(p)とr(p)(p∈{1,...,P})とを含む複数の整数の線形和である。この場合、鍵共有装置は、自ら生成した任意値r(i)と、それに対応する秘密値a(i)又は元Z(i)=ga(i)・MSK∈Gと、の両方を知らなければ共有元σ(u)を生成できない。そのため、他の装置の整数a(j)を知った攻撃者が、任意値r(i)を生成して鍵共有装置に成り済まそうとしても、攻撃者は任意値r(i)に対応する秘密値a(i)を知らないため、正しいσ(u)を生成できない。よって、KCI攻撃は成功しない。 Here, W (u) is an integer w (u, 1),. . . , W (u, P) and a product of P or more integers, and the integer w (u, p) is a (p) and r (p) (pε {1,..., P}). Is a linear sum of multiple integers. In this case, the key sharing apparatus knows both the arbitrary value r (i) generated by itself and the corresponding secret value a (i) or element Z (i) = ga (i) · MSK εG. Otherwise, the sharing source σ (u) cannot be generated. Therefore, even if an attacker who knows the integer a (j) of another device generates an arbitrary value r (i) and impersonates a key sharing device, the attacker corresponds to the arbitrary value r (i). Since the secret value a (i) is not known, correct σ (u) cannot be generated. Therefore, the KCI attack is not successful.

以上のように、本発明の鍵共有技術はKCI攻撃に強い。   As described above, the key sharing technique of the present invention is strong against KCI attacks.

図1(A)は、本形態の鍵共有システムの全体構成を例示するための図である。図1(B)は、本形態の鍵共有装置の基本構成を説明するための図である。FIG. 1A is a diagram for illustrating the overall configuration of the key sharing system of this embodiment. FIG. 1B is a diagram for explaining the basic configuration of the key sharing apparatus of the present embodiment. 図2は、第1実施形態の鍵共有システムの構成を説明するためのブロック図である。FIG. 2 is a block diagram for explaining the configuration of the key sharing system according to the first embodiment. 図3(A)は、共有元生成部の構成を説明するためのブロック図である。図3(B)は、共有元生成部の構成を説明するためのブロック図である。FIG. 3A is a block diagram for explaining the configuration of the sharing source generation unit. FIG. 3B is a block diagram for explaining the configuration of the sharing source generation unit. 図4(A)は、鍵共有装置の鍵共有処理を説明するためのフローチャートである。図4(B)は、鍵共有装置の鍵共有処理を説明するためのフローチャートである。FIG. 4A is a flowchart for explaining the key sharing process of the key sharing apparatus. FIG. 4B is a flowchart for explaining the key sharing process of the key sharing apparatus. 図5は、第2実施形態の鍵共有システムの構成を説明するためのブロック図である。FIG. 5 is a block diagram for explaining the configuration of the key sharing system of the second embodiment. 図6は、第2実施形態の鍵共有システムの構成を説明するためのブロック図である。FIG. 6 is a block diagram for explaining the configuration of the key sharing system according to the second embodiment. 図7は、第2実施形態の鍵共有システムの構成を説明するためのブロック図である。FIG. 7 is a block diagram for explaining the configuration of the key sharing system according to the second embodiment. 図8(A)は、共有元生成部の構成を説明するためのブロック図である。図8(B)は、共有元生成部の構成を説明するためのブロック図である。FIG. 8A is a block diagram for explaining the configuration of the sharing source generation unit. FIG. 8B is a block diagram for explaining the configuration of the sharing source generation unit. 図9は、共有元生成部の構成を説明するためのブロック図である。FIG. 9 is a block diagram for explaining the configuration of the sharing source generation unit. 図10(A)は、鍵共有装置の鍵共有処理を説明するためのフローチャートである。図10(B)は、鍵共有装置の鍵共有処理を説明するためのフローチャートである。FIG. 10A is a flowchart for explaining the key sharing process of the key sharing apparatus. FIG. 10B is a flowchart for explaining the key sharing process of the key sharing apparatus. 図11は、鍵共有装置の鍵共有処理を説明するためのフローチャートである。FIG. 11 is a flowchart for explaining the key sharing process of the key sharing apparatus. 図12は、第3実施形態の鍵共有システムの構成を説明するためのブロック図である。FIG. 12 is a block diagram for explaining the configuration of the key sharing system according to the third embodiment. 図13は、第3実施形態の鍵共有システムの構成を説明するためのブロック図である。FIG. 13 is a block diagram for explaining the configuration of the key sharing system according to the third embodiment. 図14(A)は、共有元生成部の構成を説明するためのブロック図である。図14(B)は、共有元生成部の構成を説明するためのブロック図である。FIG. 14A is a block diagram for explaining the configuration of the sharing source generation unit. FIG. 14B is a block diagram for explaining the configuration of the sharing source generation unit. 図15(A)は、鍵共有装置の鍵共有処理を説明するためのフローチャートである。図15(B)は、鍵共有装置の鍵共有処理を説明するためのフローチャートである。FIG. 15A is a flowchart for explaining the key sharing process of the key sharing apparatus. FIG. 15B is a flowchart for explaining the key sharing process of the key sharing apparatus.

以下、図面を参照して本発明の実施形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

〔概要〕
まず、本形態の概要を説明する。
〔Overview〕
First, the outline of this embodiment will be described.

図1(A)は、本形態の鍵共有システム1の全体構成を例示するための図であり、図1(B)は、本形態の鍵共有装置の基本構成を説明するための図である。   FIG. 1A is a diagram for illustrating the overall configuration of the key sharing system 1 of the present embodiment, and FIG. 1B is a diagram for explaining the basic configuration of the key sharing device of the present embodiment. .

図1(A)に例示するように、本形態の鍵共有システム1は、複数の鍵共有装置10−p(p∈{1,...,P}、Pは2以上の整数定数)を有し、例えば、ネットワーク20を通じて情報のやり取りが可能に構成されている。なお、複数の鍵共有装置10−p間での情報のやり取りはネットワーク経由で行われるものに限定されず、例えば、USBメモリなどの可搬型の記録媒体への情報の読み書きによって行われてもよい。   As illustrated in FIG. 1A, the key sharing system 1 according to the present embodiment includes a plurality of key sharing apparatuses 10-p (pε {1,..., P}, P is an integer constant equal to or greater than 2). For example, it is configured to be able to exchange information through the network 20. Note that the exchange of information between the plurality of key sharing apparatuses 10-p is not limited to that performed via a network, and may be performed by, for example, reading / writing information from / to a portable recording medium such as a USB memory. .

鍵共有装置10−iの記憶部11−i(図1(B))には、少なくとも、整数の秘密値a(i)又は巡回群Gの元Z(i)=ga(i)・MSK∈Gと、他の鍵共有装置10−jに対応する巡回群Gの元である公開値A(j)=ga(j)∈Gと、が格納される。なお、i,j∈{1,...,P}、j≠i、gはgによって巡回群Gのすべての元を表現できる生成元、MSK,m及びa(j)は整数である。 The storage unit 11-i (FIG. 1B) of the key sharing device 10-i stores at least an integer secret value a (i) or an element Z (i) of the cyclic group G = ga (i) · MSK. ΕG and the public value A (j) = ga (j) εG, which is an element of the cyclic group G corresponding to the other key sharing apparatus 10-j, are stored. Note that i, jε {1,. . . , P}, j ≠ i, g is a generator capable of expressing all elements of the cyclic group G by g m , and MSK, m and a (j) are integers.

鍵共有装置10−iが他の鍵共有装置10−jと鍵を共有する場合、まず、鍵共有装置10−iの任意値生成部12−i(図1(B))が整数の任意値r(i)を生成し、任意値r(i)を出力する。次に、任意元生成部13−iが任意値r(i)を入力として、第1任意元X(i)=gr(i)∈Gを生成し、第1任意元X(i)=gr(i)∈Gを出力する。出力部14−iは、第1任意元X(i)=gr(i)∈Gを入力として、当該第1任意元X(i)=gr(i)∈Gを出力する。第1任意元X(i)=gr(i)∈Gは、他の鍵共有装置10−jに入力される。 When the key sharing device 10-i shares a key with another key sharing device 10-j, first, the arbitrary value generation unit 12-i (FIG. 1B) of the key sharing device 10-i is an integer arbitrary value. r (i) is generated and an arbitrary value r (i) is output. Next, the arbitrary element generation unit 13-i receives the arbitrary value r (i) as an input, generates the first arbitrary element X (i) = gr (i) ∈ G, and the first arbitrary element X (i) = g r (i) ∈G is output. The output unit 14-i receives the first arbitrary element X (i) = g r (i) εG and outputs the first arbitrary element X (i) = g r (i) εG. The first arbitrary element X (i) = gr (i) εG is input to another key sharing apparatus 10-j.

また、鍵共有装置10−iの入力部15−iには、他の鍵共有装置10−jから出力された第2任意元X(j)=gr(j)∈Gが入力される。なお、r(j)は整数である。共有元生成部16−iは、少なくとも、秘密値a(i)又は元Z(i)=ga(i)・MSK∈Gと、公開値A(j)=ga(j)∈Gと、任意値r(i)と、第2任意元X(j)=gr(j)∈Gと入力とし、巡回群Gの元gW(u)∈Gを共有元σ(u)として生成するか、又は、さらに巡回群Gの元を巡回群Gの元に写像する関数eを用い、巡回群Gの元g W(u)∈Gを共有元σ(u)として生成する。なお、W(u)は、整数w(u,1),...,w(u,P)を含むP個以上の整数の積であり、整数w(u,p)は、a(p)とr(p)とを含む複数の整数の線形和であり、p∈{1,...,P}、u∈{1,...,U}、Uは1以上の整数定数であり、gはg によって巡回群Gのすべての元を表現できる生成元である。共有元生成部16−iは、生成した共有元σ(u)を出力する。 Further, the second arbitrary element X (j) = gr (j) εG output from the other key sharing apparatus 10-j is input to the input unit 15-i of the key sharing apparatus 10-i. R (j) is an integer. The shared element generation unit 16-i has at least the secret value a (i) or the element Z (i) = ga (i) · MSK εG and the public value A (j) = ga (j) εG. , An arbitrary value r (i) and a second arbitrary element X (j) = g r (j) ∈ G, and an element g W (u) ∈ G of the cyclic group G is generated as a shared element σ (u) either, or, using function e for further mapping the original cyclic group G to the original cyclic group G T, generates the original g T W (u) ∈G T of the cyclic group G T as the Pool sigma (u) To do. Note that W (u) is an integer w (u, 1),. . . , W (u, P) is a product of P or more integers, and the integer w (u, p) is a linear sum of a plurality of integers including a (p) and r (p), p ∈ {1,. . . , P}, u∈ {1,. . . , U}, U is an integer of 1 or more constants, g T is a generator that can represent all of the original cyclic group G T by g T m. The sharing source generation unit 16-i outputs the generated sharing source σ (u).

鍵生成部17−iは、共有元σ(u)を入力として、少なくとも共有元σ(u)に基づいて値が定まる鍵K(少なくとも共有元σ(u)に値が依存する鍵K)を生成し、当該鍵Kを出力する。   The key generation unit 17-i receives the sharing element σ (u) as an input and receives a key K whose value is determined based on at least the sharing element σ (u) (at least a key K whose value depends on the sharing element σ (u)). Generate and output the key K.

鍵共有装置10−iは、自ら生成した任意値r(i)と、それに対応する秘密値a(i)又は元Z(i)=ga(i)・MSK∈Gと、の両方を知らなければ共有元σ(u)を生成できない。そのため、鍵共有装置10−jの整数a(j)を知った攻撃者が、任意値r(i)を生成して鍵共有装置10−iに成り済まそうとしても、攻撃者は任意値r(i)に対応する秘密値a(i)を知らないため、正しいσ(u)を生成できない。よって、KCI攻撃は成功しない。 The key sharing device 10-i knows both the arbitrary value r (i) generated by itself and the corresponding secret value a (i) or element Z (i) = ga (i) · MSK εG. Otherwise, the sharing source σ (u) cannot be generated. Therefore, even if an attacker who knows the integer a (j) of the key sharing device 10-j generates an arbitrary value r (i) and tries to impersonate the key sharing device 10-i, the attacker has the arbitrary value r. Since the secret value a (i) corresponding to (i) is not known, correct σ (u) cannot be generated. Therefore, the KCI attack is not successful.

また、少なくとも一部の整数w(u,p)が、少なくとも一方が整数d(p)によって重み付けされたa(p)とr(p)とを含む複数の整数の線形和であり、整数d(p)が、第1任意元X(i)及び/又は第2任意元X(j)に応じて値が定まる整数であってもよい。例えば、整数d(p)が、第1任意元X(i)に応じて値が定まる整数であった場合、整数d(p)の値は、第1任意元X(i)が定まるまで特定できないため、鍵共有装置10−i又はそれに成り済ました攻撃者は、鍵共有相手である鍵共有装置10−jによる共有元σ(u)の生成時にキャンセルされてしまうような第1任意元X(i)を、意図的に生成できない。また、例えば、整数d(p)が、第2任意元X(j)に応じて値が定まる整数であった場合、整数d(p)の値は、第2任意元X(j)が定まるまで特定できないため、鍵共有装置10−j又はそれに成り済ました攻撃者は、鍵共有相手である鍵共有装置10−iによる共有元σ(u)の生成時にキャンセルされてしまうような第2任意元X(j)を意図的に生成できない。以上により、安全性がより向上する。   In addition, at least a part of the integers w (u, p) is a linear sum of a plurality of integers including a (p) and r (p) at least one of which is weighted by the integer d (p), and the integer d (P) may be an integer whose value is determined according to the first arbitrary element X (i) and / or the second arbitrary element X (j). For example, when the integer d (p) is an integer whose value is determined according to the first arbitrary element X (i), the value of the integer d (p) is specified until the first arbitrary element X (i) is determined. Therefore, the key sharing device 10-i or an attacker who has impersonated the first arbitrary element X (() that is canceled when the key sharing device 10-j that is the key sharing partner generates the sharing source σ (u). i) cannot be generated intentionally. For example, when the integer d (p) is an integer whose value is determined according to the second arbitrary element X (j), the value of the integer d (p) is determined as the second arbitrary element X (j). Since the key sharing device 10-j or an attacker who has impersonated the key sharing device 10-i is the second arbitrary element that is canceled when the sharing source σ (u) is generated by the key sharing device 10-i X (j) cannot be generated intentionally. As a result, safety is further improved.

また、共有元生成部16−iが、複数種類の共有元σ(1),...σ(U)(U≧2)を生成し、鍵生成部17−iが、複数種類の共有元σ(1),...σ(U)に基づいて値が定まる鍵Kを生成してもよい。この場合、より安全性が向上する。   Further, the sharing source generation unit 16-i has a plurality of types of sharing sources σ (1),. . . .sigma. (U) (U.gtoreq.2) is generated, and the key generation unit 17-i generates a plurality of types of sharing sources .sigma. . . A key K whose value is determined based on σ (U) may be generated. In this case, safety is further improved.

〔第1実施形態〕
次に、本発明の第1実施形態を説明する。第1実施形態では、P=2であり、W(u)=w(u,1)・w(u,2)であり、w(u,p)がa(p)とr(p)との線形和である。また、第1鍵共有装置の記憶部が、少なくとも、秘密値a(i)と公開値A(j)=ga(j)∈Gとを格納し、第1鍵共有装置の共有元生成部が、少なくとも、秘密値a(i)と、公開値A(j)=ga(j)∈Gと、任意値r(i)と、第2任意元X(j)=gr(j)∈Gとを用い、巡回群Gの元gW(u)∈Gを共有元σ(u)として生成する。また、第2鍵共有装置の記憶部が、少なくとも、秘密値a(j)と公開値A(i)=ga(i)∈Gとを格納し、第2鍵共有装置の共有元生成部が、少なくとも、秘密値a(j)と、公開値A(i)=ga(i)∈Gと、任意値r(j)と、第1任意元X(i)=gr(i)∈Gとを用い、巡回群Gの元gW(u)∈Gを共有元σ(u)として生成する。
[First Embodiment]
Next, a first embodiment of the present invention will be described. In the first embodiment, P = 2, W (u) = w (u, 1) · w (u, 2), and w (u, p) is a (p), r (p) and Is the linear sum of Further, the storage unit of the first key sharing device stores at least the secret value a (i) and the public value A (j) = ga (j) εG, and the sharing source generation unit of the first key sharing device Are at least a secret value a (i), a public value A (j) = g a (j) εG, an arbitrary value r (i), and a second arbitrary element X (j) = g r (j) Using ∈G, the element g W (u) ∈G of the cyclic group G is generated as the sharing element σ (u). The storage unit of the second key sharing device stores at least the secret value a (j) and the public value A (i) = ga (i) εG, and the sharing source generation unit of the second key sharing device Are at least a secret value a (j), a public value A (i) = g a (i) εG, an arbitrary value r (j), and a first arbitrary element X (i) = g r (i) Using ∈G, the element g W (u) ∈G of the cyclic group G is generated as the sharing element σ (u).

<構成>
図2は、第1実施形態の鍵共有システム100の構成を説明するためのブロック図である。なお、図2では、鍵共有装置間で情報をやり取りするための手段であるネットワークや可搬型の記録媒体の記載は省略してある(他の図でも同様)。
<Configuration>
FIG. 2 is a block diagram for explaining the configuration of the key sharing system 100 of the first embodiment. In FIG. 2, description of a network and a portable recording medium which are means for exchanging information between key sharing apparatuses is omitted (the same applies to other drawings).

図2に例示するように、第1実施形態の鍵共有システム100は、鍵共有装置110−1(第1鍵共有装置)と鍵共有装置110−2(第2鍵共有装置)とを有する。   As illustrated in FIG. 2, the key sharing system 100 according to the first embodiment includes a key sharing device 110-1 (first key sharing device) and a key sharing device 110-2 (second key sharing device).

鍵共有装置110−1は、記憶部111−1と、任意値生成部112−1と、任意元生成部113−1と、出力部114−1と、入力部115−1と、共有元生成部116−1と、鍵生成部117−1と、一時メモリ118−1と、制御部119−1とを有する。図3(A)は、共有元生成部116−1の構成を説明するためのブロック図である。図3(A)に例示するように、共有元生成部116−1は、ハッシュ演算部116b−1,116c−1と、共有元演算部116a−u−1(u∈{1,...,U}、Uは1以上の整数定数)とを有する。   The key sharing device 110-1 includes a storage unit 111-1, an arbitrary value generation unit 112-1, an arbitrary element generation unit 113-1, an output unit 114-1, an input unit 115-1, and a shared source generation. Unit 116-1, key generation unit 117-1, temporary memory 118-1, and control unit 119-1. FIG. 3A is a block diagram for explaining the configuration of the sharing source generation unit 116-1. 3A, the sharing source generation unit 116-1 includes hash calculation units 116b-1 and 116c-1, and sharing source calculation units 116a-u-1 (uε {1,. , U}, U is an integer constant equal to or greater than 1.

図2に例示するように、鍵共有装置110−2は、記憶部111−2と、任意値生成部112−2と、任意元生成部113−2と、出力部114−2と、入力部115−2と、共有元生成部116−2と、鍵生成部117−2と、一時メモリ118−2と、制御部119−2とを有する。図3(B)は、共有元生成部116−2の構成を説明するためのブロック図である。図3(B)に例示するように、共有元生成部116−2は、ハッシュ演算部116b−2,116c−2と、共有元演算部116a−u−2(u∈{1,...,U})とを有する。   As illustrated in FIG. 2, the key sharing device 110-2 includes a storage unit 111-2, an arbitrary value generation unit 112-2, an arbitrary element generation unit 113-2, an output unit 114-2, and an input unit. 11-2, a sharing source generation unit 116-2, a key generation unit 117-2, a temporary memory 118-2, and a control unit 119-2. FIG. 3B is a block diagram for explaining the configuration of the sharing source generation unit 116-2. 3B, the sharing source generation unit 116-2 includes the hash calculation units 116b-2 and 116c-2, and the sharing source calculation units 116a-u-2 (uε {1,. , U}).

なお、鍵共有装置110−1,2は、例えば、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read-Only Memoryなどを備える公知のコンピュータに所定のプログラムが読み込まれて実行されることで構成される。すなわち、任意値生成部112−1,2、任意元生成部113−1,2、共有元生成部116−1,2、鍵生成部117−1,2及び制御部119−1,2は、例えば、CPUが所定のプログラムを実行することで構成される処理部である。また、任意値生成部112−1,2を公知の乱数生成用IC(integrated Circuit)で構成するなど、処理部の少なくとも一部を集積回路で構成してもよい。また、記憶部111−1,2及び一時メモリ118−1,2は、例えば、RAM、レジスタ、キャッシュメモリ、集積回路内の素子若しくはハードディスク等の補助記憶装置、又は、これらの少なくとも一部の結合からなる記憶領域である。また、出力部114−1,2及び入力部115−1,2は、例えば、モデム、LAN(Local Area Network)カード等の通信装置や、記録媒体に情報を読み書きするリーダライタなどである。   The key sharing devices 110-1 and 110-2 are executed by reading a predetermined program into a known computer including, for example, a CPU (Central Processing Unit), a RAM (Random Access Memory), a ROM (Read-Only Memory), and the like. That is, the arbitrary value generators 112-1 and 112, the arbitrary element generators 113-1 and 113, the share source generators 116-1 and 116, the key generators 117-1 and 112, and the control unit. Reference numerals 119-1 and 119-2 are processing units configured by, for example, the CPU executing a predetermined program, and the arbitrary value generation units 112-1 and 112-2 are known random number generation ICs (integrated circuits). For example, the storage units 111-1 and 111-2 and the temporary memories 118-1 and 118-may include, for example, a RAM, a register, a cache memory, and an integrated circuit. Inside This is an auxiliary storage device such as an element or a hard disk, or a storage area composed of a combination of at least a part of them. A communication device such as a local area network) card or a reader / writer that reads and writes information from and on a recording medium.

また、鍵共有装置110−1,2は、それぞれ、制御部119−1,2の制御のもと各処理を実行する。また、以下では説明を簡略化するが、各処理部から出力されたデータは、逐一、一時メモリ118−1,2又は記憶部111−1,2に格納される。一時メモリ118−1,2又は記憶部111−1,2に格納されたデータは、必要に応じて読み出され、各処理部に入力されてその処理に利用される。   In addition, the key sharing apparatuses 110-1 and 110-2 execute the respective processes under the control of the control units 119-1 and 119-2. Although the description is simplified below, the data output from each processing unit is stored in the temporary memories 118-1 and 118-1 or the storage units 111-1 and 111-1 one by one. Data stored in the temporary memories 118-1 and 118-2 or the storage units 111-1 and 111-2 are read out as necessary, input to each processing unit, and used for the processing.

<公開パラメータ>
第1実施形態では、以下を公開パラメータとする。
<Public parameters>
In the first embodiment, the following are the public parameters.

G:Lビット(L≧1)の位数q(qは素数)の巡回群。巡回群Gでの演算は可換である。巡回群Gの具体例は、qを法とした剰余類の乗法群や、楕円曲線上の点からなる部分群などである。   G: Cyclic group of order q (q is a prime number) of L bits (L ≧ 1). Operations in the cyclic group G are commutative. Specific examples of the cyclic group G include a multiplicative group of remainder classes modulo q, a subgroup composed of points on an elliptic curve, and the like.

g:巡回群Gの生成元。g(mは整数)によって巡回群Gのすべての元を表現できる。なお、gα∈Gは、生成元gに対し、巡回群G上で定義された演算をα回(αは整数)実行することを意味する。例えば、巡回群Gがpを法とした剰余類の乗法群の場合、巡回群G上で定義された演算はpを法とした剰余乗算であり、gα∈Gはgα mod pとなる。また、巡回群Gが楕円曲線上の部分群である場合、巡回群G上で定義された演算は楕円曲線上の楕円加算であり、gα∈Gは楕円曲線上の点である生成元gに対する楕円曲線上でのα倍演算となる。 g: A generator of the cyclic group G. All elements of the cyclic group G can be expressed by g m (m is an integer). Note that g α ∈G means that the operation defined on the cyclic group G is executed α times (α is an integer) for the generation source g. For example, when the cyclic group G is a multiplicative group of residue classes modulo p, the operation defined on the cyclic group G is a residue multiplication modulo p, and g α ∈G is g α mod p. . When the cyclic group G is a subgroup on the elliptic curve, the operation defined on the cyclic group G is an elliptic addition on the elliptic curve, and g α ∈G is a generator g that is a point on the elliptic curve. Α multiplication on the elliptic curve for.

F:G→[0,q1/2]。巡回群Gの元を0以上q1/2以下の整数に写すハッシュ関数。 F: G → [0, q 1/2 ]. A hash function that maps an element of the cyclic group G to an integer between 0 and q 1/2 .

H:{0,1}→{0,1}。任意長のビット列をLビットのビット列に写すハッシュ関数。 H: {0, 1} * → {0, 1} L. A hash function that copies an arbitrary-length bit string into an L-bit bit string.

ID(prot):鍵交換方式の名称の識別子。   ID (prot): identifier of the name of the key exchange method.

<事前処理>
鍵共有処理の事前処理として以下の処理が実行される。
<Pre-processing>
The following process is executed as a pre-process of the key sharing process.

鍵共有装置110−1の記憶部111−1に、鍵共有装置110−1の秘密値(秘密鍵)a(1)∈Zと、鍵共有装置110−1に対応する巡回群Gの元である公開値(公開鍵)A(1)=ga(1)∈Gと、鍵共有装置110−2に対応する巡回群Gの元である公開値(公開鍵)A(2)=ga(2)∈Gと、鍵共有装置110−1の識別子ID(1)と、識別子ID(prot)とが格納される。また、鍵共有装置110−2の記憶部111−2に、鍵共有装置110−2の秘密値(秘密鍵)a(2)∈Zと、鍵共有装置110−1に対応する巡回群Gの元である公開値(公開鍵)A(1)=ga(1)∈Gと、鍵共有装置110−2に対応する巡回群Gの元である公開値(公開鍵)A(2)=ga(2)∈Gと、鍵共有装置110−2の識別子ID(2)と、識別子ID(prot)とが格納される。なお、Zは、法qについての整数の剰余環を意味し、その一例は0以上q−1以下の整数から構成される有限集合である。また、識別子ID(1),ID(2)は、例えば、メールアドレス、電話番号などである。 In the storage unit 111-1 of the key sharing device 110-1, the secret value (secret key) a (1) εZ q of the key sharing device 110-1 and the element of the cyclic group G corresponding to the key sharing device 110-1 are stored. The public value (public key) A (1) = g a (1) ∈ G and the public value (public key) A (2) = g that is the element of the cyclic group G corresponding to the key sharing device 110-2 a (2) εG, the identifier ID (1) of the key sharing device 110-1, and the identifier ID (prot) are stored. In addition, in the storage unit 111-2 of the key sharing device 110-2, the secret value (secret key) a (2) εZ q of the key sharing device 110-2 and the cyclic group G corresponding to the key sharing device 110-1 are stored. Public value (public key) A (1) = ga (1) εG and the public value (public key) A (2) that is the element of the cyclic group G corresponding to the key sharing device 110-2 = Ga (2) εG, the identifier ID (2) of the key sharing device 110-2, and the identifier ID (prot) are stored. Z q means an integer remainder ring with respect to the modulus q, and an example thereof is a finite set composed of integers of 0 or more and q−1 or less. The identifiers ID (1) and ID (2) are e-mail addresses, telephone numbers, etc., for example.

<鍵共有処理>
図4(A)は、鍵共有装置110−1の鍵共有処理を説明するためのフローチャートであり、図4(B)は、鍵共有装置110−2の鍵共有処理を説明するためのフローチャートである。
<Key sharing process>
FIG. 4A is a flowchart for explaining the key sharing process of the key sharing apparatus 110-1, and FIG. 4B is a flowchart for explaining the key sharing process of the key sharing apparatus 110-2. is there.

鍵共有装置110−1(図2)の任意値生成部112−1は、任意値r(1)∈Zを生成して出力する(図4(A)/ステップS112−1)。なお、任意値r(1)∈Zは、例えば、公知の擬似乱数生成アルゴリズムを用いて生成された擬似乱数や、予め定められた順序でZから選択された値である。任意元生成部113−1には、任意値r(1)∈Zが入力され、任意元生成部113−1は、任意値r(1)を用い、任意元X(1)=gr(1)∈Gを生成して出力する(ステップS113−1)。任意元X(1)=gr(1)∈Gと記憶部111−1から読み出された識別子ID(1)とが出力部114−1に入力され、出力部114−1は、任意元X(1)=gr(1)∈Gと識別子ID(1)とを出力(ネットワークへの送信や可搬型記録媒体への格納など)する(ステップS114−1)。任意元X(1)=gr(1)∈Gと識別子ID(1)とは、鍵共有装置110−2に送られる。 The arbitrary value generator 112-1 of the key sharing device 110-1 (FIG. 2) generates and outputs an arbitrary value r (1) εZ q (FIG. 4A / step S112-1). The arbitrary value r (1) εZ q is, for example, a pseudo random number generated using a known pseudo random number generation algorithm, or a value selected from Z q in a predetermined order. Arbitrary element generation unit 113-1 receives arbitrary value r (1) εZ q , and arbitrary element generation unit 113-1 uses arbitrary value r (1) and arbitrary element X (1) = g r (1) Generate and output εG (step S113-1). Arbitrary element X (1) = gr (1) ∈ G and identifier ID (1) read from the storage unit 111-1 are input to the output unit 114-1, and the output unit 114-1 X (1) = g r (1) εG and identifier ID (1) are output (such as transmission to a network or storage on a portable recording medium) (step S114-1). Arbitrary element X (1) = gr (1) εG and identifier ID (1) are sent to key sharing apparatus 110-2.

一方、鍵共有装置110−2(図2)の任意値生成部112−2は、任意値r(2)∈Zを生成して出力する(図4(B)/ステップS112−2)。なお、任意値r(2)∈Zは、例えば、公知の擬似乱数生成アルゴリズムを用いて生成された擬似乱数や、予め定められた順序でZから選択された値である。任意元生成部113−2には、任意値r(2)∈Zが入力され、任意元生成部113−2は、任意値r(2)を用い、任意元X(2)=gr(2)∈Gを生成して出力する(ステップS113−2)。任意元X(2)=gr(2)∈Gと記憶部111−2から読み出された識別子ID(2)とが出力部114−2に入力され、出力部114−2は、任意元X(2)=gr(2)∈Gと識別子ID(2)とを出力(ネットワークへの送信や可搬型記録媒体への格納など)する(ステップS114−2)。任意元X(2)=gr(2)∈Gと識別子ID(2)とは、鍵共有装置110−1に送られる。 On the other hand, the arbitrary value generation unit 112-2 of the key sharing device 110-2 (FIG. 2) generates and outputs an arbitrary value r (2) εZ q (FIG. 4B / step S112-2). The arbitrary value r (2) εZ q is, for example, a pseudo random number generated using a known pseudo random number generation algorithm, or a value selected from Z q in a predetermined order. The arbitrary element generation unit 113-2 receives an arbitrary value r (2) εZ q , and the arbitrary element generation unit 113-2 uses the arbitrary value r (2), and the arbitrary element X (2) = g r (2) Generate and output εG (step S113-2). Arbitrary element X (2) = gr (2) ∈ G and identifier ID (2) read from the storage unit 111-2 are input to the output unit 114-2, and the output unit 114-2 X (2) = g r (2) εG and identifier ID (2) are output (such as transmission to a network or storage on a portable recording medium) (step S114-2). Arbitrary element X (2) = gr (2) εG and identifier ID (2) are sent to key sharing apparatus 110-1.

鍵共有装置110−1の入力部115−1には、任意元X(2)=gr(2)∈Gと識別子ID(2)とが入力される(図4(A)/ステップS115−1)。任意元X(2)=gr(2)∈Gは共有元生成部116−1に送られ、識別子ID(2)は記憶部111−1に格納される。 Arbitrary element X (2) = gr (2) εG and identifier ID (2) are input to input section 115-1 of key sharing apparatus 110-1 (FIG. 4A / step S115-). 1). Arbitrary element X (2) = gr (2) εG is sent to sharing element generation section 116-1, and identifier ID (2) is stored in storage section 111-1.

共有元生成部116−1には、入力部115−1から送られた任意元X(2)=gr(2)∈Gと、記憶部111−1から読み出された秘密値a(1)及び公開値A(2)=ga(2)∈Gと、任意値生成部112−1で生成(ステップS112−1)された任意値r(1)∈Zと、任意元生成部113−1で生成(ステップS113−1)された任意元X(1)=gr(1)∈Gとが入力される。共有元生成部116−1は、これらを用い、巡回群Gの元gW(u)∈G(u∈{1,...,U}、Uは1以上の整数定数)を共有元σ(u)として生成して出力する(ステップS116−1)。本形態では、
W(u)=w(u,1)・w(u,2)∈Zq …(3)
w(u,1)=(r(1)・s(u,1)+a(1)・t(u,1))∈Zq …(4)
w(u,2)=(r(2)・s(u,2)+a(2)・t(u,2))∈Zq …(5)
を満たすgW(u)∈Gが、共有元σ(u)として生成される。s(u,1),s(u,2),t(u,1),t(u,2)∈Zはuごとに定まる定数又は変数である。s(u,1),s(u,2),t(u,1),t(u,2)∈Z及びUの設定は任意でよいが、すべてのuについてs(u,1)とt(u,1)とや、s(u,2)とt(u,2)とが、必ず0となる設定は好ましくない。以下に、s(u,1),s(u,2),t(u,1),t(u,2)∈Z及びUの設定例と、そのときのステップS116−1の処理とを例示する。
In the sharing source generation unit 116-1, the arbitrary element X (2) = gr (2) εG sent from the input unit 115-1, and the secret value a (1 ) read from the storage unit 111-1. ) And public value A (2) = ga (2) εG, the arbitrary value r (1) εZ q generated by the arbitrary value generation unit 112-1 (step S112-1), and the arbitrary element generation unit The arbitrary element X (1) = gr (1) εG generated in step 113-1 (step S113-1) is input. The shared element generation unit 116-1 uses these to convert the element g W (u) ∈ G (u ∈ {1,..., U}, U is an integer constant of 1 or more ) of the cyclic group G into the shared element σ. (U) is generated and output (step S116-1). In this form,
W (u) = w (u, 1) ・ w (u, 2) ∈Z q … (3)
w (u, 1) = (r (1) ・ s (u, 1) + a (1) ・ t (u, 1)) ∈Z q … (4)
w (u, 2) = (r (2) ・ s (u, 2) + a (2) ・ t (u, 2)) ∈Z q … (5)
G W (u) εG that satisfies the above is generated as a sharing element σ (u). s (u, 1), s (u, 2), t (u, 1), t (u, 2) εZ q is a constant or variable determined for each u. s (u, 1), s (u, 2), t (u, 1), t (u, 2) εZ q and U can be set arbitrarily, but s (u, 1) for all u And t (u, 1) and s (u, 2) and t (u, 2) are not necessarily set to 0. Hereinafter, setting examples of s (u, 1), s (u, 2), t (u, 1), t (u, 2) εZ q and U, and the process of step S116-1 at that time will be described. Is illustrated.

[ステップS116−1の例]
本形態では、
U=2 …(6)
s(1,1)=1, t(1,1)=1, s(1,2)=1, t(1,2)=d(2) …(7)
s(2,1)=1, t(2,1)=d(1), s(2,2)=1, t(2,2)=1 …(8)
としたステップS116−1の処理を例示する。すなわち、
σ(1)=g(r(1)+a(1))(r(2)+a(2)・d(2)) …(9)
σ(2)=g(r(1)+a(1)・d(1))(r(2)+a(2)) …(10)
とした場合の例を示す。
[Example of Step S116-1]
In this form,
U = 2 (6)
s (1,1) = 1, t (1,1) = 1, s (1,2) = 1, t (1,2) = d (2)… (7)
s (2,1) = 1, t (2,1) = d (1), s (2,2) = 1, t (2,2) = 1… (8)
The process of step S116-1 is exemplified. That is,
σ (1) = g (r (1) + a (1)) (r (2) + a (2) · d (2)) (9)
σ (2) = g (r (1) + a (1) ・ d (1)) (r (2) + a (2)) … (10)
An example is shown.

この場合のステップS116−1では、ハッシュ演算部116b−1(図3(A))が、任意元X(1)を入力として、ハッシュ値(第1任意元X(i)に応じて値が定まる整数)
d(1)=F(X(1)) …(11)
を生成して出力する。また、ハッシュ演算部116c−1が、任意元X(2)を入力として、ハッシュ値(第2任意元X(j)に応じて値が定まる整数)
d(2)=F(X(2)) …(12)
を生成して出力する。
In step S116-1 in this case, the hash calculator 116b-1 (FIG. 3A) receives the arbitrary element X (1) as an input, and the value is set according to the hash value (first arbitrary element X (i)). Fixed integer)
d (1) = F (X (1))… (11)
Is generated and output. Further, the hash calculation unit 116c-1 receives the arbitrary element X (2) as an input and takes a hash value (an integer whose value is determined according to the second arbitrary element X (j)).
d (2) = F (X (2))… (12)
Is generated and output.

共有元演算部116a−1−1(図3(A))は、ハッシュ値d(2)と、任意元X(2)=gr(2)∈Gと、秘密値a(1)と、公開値A(2)=ga(2)∈Gと、任意値r(1)∈Zとを入力とし、共有元
σ(1)=(X(2)・A(2)d(2))r(1)+a(1)∈G …(13)
=(gr(2)・ga(2)・d(2))r(1)+a(1)
=g(r(1)+a(1))(r(2)+a(2)・d(2))
を生成して出力する。共有元演算部116a−2−1は、ハッシュ値d(1)と、任意元X(2)=gr(2)∈Gと、秘密値a(1)と、公開値A(2)=ga(2)∈Gと、任意値r(1)∈Zとを入力とし、共有元
σ(2)=(X(2)・A(2))r(1)+a(1)・d(1)∈G …(14)
=(gr(2)・ga(2))r(1)+a(1)・d(1)
=g(r(1)+a(1)・d(1))(r(2)+a(2))
を生成して出力する([ステップS116−1の例]の説明終わり)。
The sharing element calculation unit 116a-1-1 (FIG. 3A) includes a hash value d (2), an arbitrary element X (2) = gr (2) εG, a secret value a (1), The public value A (2) = ga (2) ∈ G and the arbitrary value r (1) ∈ Z q are input, and the sharing element σ (1) = (X (2) · A (2) d (2 ) ) r (1) + a (1) ∈G… (13)
= (g r (2)・ g a (2) ・ d (2) ) r (1) + a (1)
= g (r (1) + a (1)) (r (2) + a (2) ・ d (2))
Is generated and output. The sharing element calculation unit 116a-2-1 has the hash value d (1), the arbitrary element X (2) = gr (2) εG, the secret value a (1), and the public value A (2) = g a (2) ∈ G and arbitrary value r (1) ∈ Z q are input, and sharing element σ (2) = (X (2) · A (2)) r (1) + a (1)・ D (1) ∈ G… (14)
= (g r (2)・ g a (2) ) r (1) + a (1) ・ d (1)
= g (r (1) + a (1) ・ d (1)) (r (2) + a (2))
Is generated and output (end of description of [example of step S116-1]).

鍵生成部117−1(図2)は、少なくとも、共有元生成部116−1から出力された共有元σ(u)に基づいて値が定まる鍵Kを生成して出力する(図4(A)/ステップS117−1)。本形態の例では、鍵生成部117−1に、共有元生成部116−1で生成された共有元σ(u)と、任意元生成部113−1で生成された任意元X(1)(ステップS113−1)と、入力部115−1に入力された任意元X(2)(ステップS115−1)と、記憶部111−1から読み出した公開値A(1),A(2)、識別子ID(1),ID(2),ID(prot)とが入力される。鍵生成部117−1は、これらのビット結合のハッシュ値を鍵
K=H(σ(1), σ(2), X(1), X(2), A(1), A(2), ID(1), ID(2), ID(prot)) …(14')
として生成し、生成した鍵Kを出力する。
The key generation unit 117-1 (FIG. 2) generates and outputs a key K whose value is determined based on at least the sharing source σ (u) output from the sharing source generation unit 116-1 (FIG. 4A). ) / Step S117-1). In the example of this embodiment, the key generation unit 117-1 includes the sharing source σ (u) generated by the sharing source generation unit 116-1, and the arbitrary element X (1) generated by the arbitrary element generation unit 113-1. (Step S113-1), the arbitrary element X (2) (Step S115-1) input to the input unit 115-1, and the public values A (1) and A (2) read from the storage unit 111-1. , Identifiers ID (1), ID (2), and ID (prot) are input. The key generation unit 117-1 uses the hash value of these bit combinations as a key.
K = H (σ (1), σ (2), X (1), X (2), A (1), A (2), ID (1), ID (2), ID (prot))… (14')
And the generated key K is output.

一方、鍵共有装置110−2の入力部115−2には、任意元X(1)=gr(1)∈Gと識別子ID(1)とが入力される(図4(B)/ステップS115−2)。任意元X(1)=gr(1)∈Gは共有元生成部116−2に送られ、識別子ID(1)は記憶部111−2に格納される。 On the other hand, the arbitrary element X (1) = gr (1) ∈ G and the identifier ID (1) are input to the input unit 115-2 of the key sharing apparatus 110-2 (FIG. 4B / step). S115-2). Arbitrary element X (1) = gr (1) εG is sent to sharing element generation section 116-2, and identifier ID (1) is stored in storage section 111-2.

共有元生成部116−2には、入力部115−2から送られた任意元X(1)=gr(1)∈Gと、記憶部111−2から読み出された秘密値a(2)及び公開値A(1)=ga(1)∈Gと、任意値生成部112−2で生成(図4(B)/ステップS112−2)された任意値r(2)∈Zと、任意元生成部113−2で生成(ステップS113−2)された任意元X(2)=gr(2)∈Gが入力される。共有元生成部116−2は、これらを用い、巡回群Gの元gW(u)∈G(u∈{1,...,U}、Uは1以上の整数定数)を共有元σ(u)として生成して出力する(ステップS116−2)。本形態では、鍵共有装置110−1と同じ、前述の式(3)〜(5)を満たすgW(u)∈Gが、共有元σ(u)として生成される。以下に、s(u,1),s(u,2),t(u,1),t(u,2)∈Z及びUの設定例と、そのときのステップS116−2の処理とを例示する。 The sharing element generation unit 116-2 includes an arbitrary element X (1) = gr (1) εG sent from the input unit 115-2 and a secret value a (2 ) read from the storage unit 111-2. ) And public value A (1) = ga (1) εG and the arbitrary value r (2) εZ q generated by the arbitrary value generation unit 112-2 (FIG. 4B / step S112-2) Then, the arbitrary element X (2) = gr (2) εG generated by the arbitrary element generation unit 113-2 (step S113-2) is input. The shared element generation unit 116-2 uses these elements to generate the element g W (u) ∈ G (u ∈ {1,..., U}, U is an integer constant equal to or greater than 1 ) of the cyclic group G. (U) is generated and output (step S116-2). In this embodiment, g W (u) ∈G that satisfies the above-described equations (3) to (5), which is the same as the key sharing apparatus 110-1, is generated as the sharing element σ (u). In the following, an example of setting s (u, 1), s (u, 2), t (u, 1), t (u, 2) εZ q and U, and the process of step S116-2 at that time, Is illustrated.

[ステップS116−2の例]
本形態では、鍵共有装置110−1と同じ、前述の式(6)〜(10)を満たす共有元σ(u)を生成する。
[Example of Step S116-2]
In this embodiment, the same sharing element σ (u) that satisfies the above-described equations (6) to (10) is generated, which is the same as the key sharing device 110-1.

この場合のステップS116−2では、ハッシュ演算部116b−2(図3(B))が、任意元X(1)を入力として、ハッシュ値(第1任意元X(i)に応じて値が定まる整数)
d(1)=F(X(1)) …(15)
を生成して出力する。また、ハッシュ演算部116c−2が、任意元X(2)を入力として、ハッシュ値(第2任意元X(j)に応じて値が定まる整数)
d(2)=F(X(2)) …(16)
を生成して出力する。
In step S116-2 in this case, the hash calculation unit 116b-2 (FIG. 3B) receives the arbitrary element X (1) as an input, and the value is determined according to the hash value (first arbitrary element X (i)). Fixed integer)
d (1) = F (X (1))… (15)
Is generated and output. Further, the hash calculation unit 116c-2 receives the arbitrary element X (2) as an input and takes a hash value (an integer whose value is determined according to the second arbitrary element X (j)).
d (2) = F (X (2))… (16)
Is generated and output.

共有元演算部116a−1−2(図3(B))は、ハッシュ値d(2)と、任意元X(1)=gr(1)∈Gと、秘密値a(2)と、公開値A(1)=ga(1)∈Gと、任意値r(2)∈Zとを入力とし、共有元
σ(1)=(X(1)・A(1))r(2)+a(2)・d(2)∈G …(17)
=(gr(1)・ga(1))r(2)+a(2)・d(2)
=g(r(1)+a(1))(r(2)+a(2)・d(2))
を生成して出力する。また、共有元演算部116a−2−2は、ハッシュ値d(1)と、任意元X(1)=gr(1)∈Gと、秘密値a(2)と、公開値A(1)=ga(1)∈Gと、任意値r(2)∈Zとを入力とし、共有元
σ(2)=(X(1)・A(1)d(1))r(2)+a(2)∈G …(18)
=(gr(1)・ga(1)・d(1))r(2)+a(2)
=g(r(1)+a(1)・d(1))(r(2)+a(2))
を生成して出力する([ステップS116−2の例]の説明終わり)。
The sharing element calculation unit 116a-1-2 (FIG. 3B) includes a hash value d (2), an arbitrary element X (1) = gr (1) εG, a secret value a (2), The public value A (1) = ga (1) ∈ G and the arbitrary value r (2) ∈ Z q are input, and the sharing element σ (1) = (X (1) · A (1)) r ( 2) + a (2) ・ d (2) ∈G (17)
= (gr (1) · ga (1) ) r (2) + a (2) · d (2)
= g (r (1) + a (1)) (r (2) + a (2) ・ d (2))
Is generated and output. Further, the sharing element calculation unit 116a-2-2 has the hash value d (1), the arbitrary element X (1) = gr (1) ∈ G, the secret value a (2), and the public value A (1 ) = Ga (1) ∈ G and an arbitrary value r (2) ∈ Z q are input, and the sharing element σ (2) = (X (1) · A (1) d (1) ) r (2 ) + a (2) ∈G… (18)
= (g r (1)・ g a (1) ・ d (1) ) r (2) + a (2)
= g (r (1) + a (1) ・ d (1)) (r (2) + a (2))
Is generated and output (end of description of [example of step S116-2]).

鍵生成部117−2(図2)は、少なくとも、共有元生成部116−2から出力された共有元σ(u)に基づいて値が定まる鍵Kを生成して出力する(ステップ図4(B)/S117−2)。本形態の例では、鍵生成部117−2に、共有元生成部116−2で生成された共有元σ(u)と、任意元生成部113−2で生成された任意元X(2)(ステップS113−2)と、入力部115−2に入力された任意元X(1)(ステップS115−2)と、記憶部211−2から読み出した公開値A(1),A(2)、識別子ID(1),ID(2),ID(prot)とが入力される。鍵生成部117−2は、これらのビット結合のハッシュ値を鍵
K=H(σ(1), σ(2), X(1), X(2), A(1), A(2), ID(1), ID(2), ID(prot)) …(19)
として生成し、生成した鍵Kを出力する。
The key generation unit 117-2 (FIG. 2) generates and outputs a key K whose value is determined based on at least the sharing source σ (u) output from the sharing source generation unit 116-2 (Step FIG. 4 (FIG. 4). B) / S117-2). In the example of this embodiment, the key generation unit 117-2 includes the sharing source σ (u) generated by the sharing source generation unit 116-2 and the arbitrary element X (2) generated by the arbitrary element generation unit 113-2. (Step S113-2), the arbitrary element X (1) (Step S115-2) input to the input unit 115-2, and the public values A (1) and A (2) read from the storage unit 211-2. , Identifiers ID (1), ID (2), and ID (prot) are input. The key generation unit 117-2 uses the hash value of these bit combinations as the key.
K = H (σ (1), σ (2), X (1), X (2), A (1), A (2), ID (1), ID (2), ID (prot))… (19)
And the generated key K is output.

<本形態の特徴>
式(13)(14)(17)(18)の変形結果を見ればわかるように、鍵共有装置116−1,2でそれぞれ生成される共有元σ(1)は同一となり、かつ、鍵共有装置116−1,2でそれぞれ生成される共有元σ(2)は同一となる。そして、式(14')(19)を比べれば分かるように、鍵共有装置116−1,2でそれぞれ生成される鍵Kは同一となる。
<Features of this embodiment>
As can be seen from the transformation results of the equations (13), (14), (17), and (18), the sharing sources σ (1) generated by the key sharing apparatuses 116-1 and 116-2 are the same, and the key sharing is performed. The sharing source σ (2) generated by each of the devices 116-1 and 116-2 is the same. As can be seen from the comparison between the equations (14 ′) and (19), the keys K generated by the key sharing apparatuses 116-1 and 116-2 are the same.

ここで、鍵共有装置116−1が式(13)(14)の共有元σ(1),σ(2)を計算できるのは、鍵共有装置116−1が自らの秘密値a(1)と任意値r(1)とを知っているからである。鍵共有装置116−2の秘密値a(2)を知っている攻撃者は、鍵共有装置116−1に成り済まして任意値r(1)や任意元X(1)を生成することはできても、秘密値a(1)を知らないため、式(13)(14)の共有元σ(1),σ(2)を計算できない。   Here, the key sharing device 116-1 can calculate the sharing sources σ (1) and σ (2) of the equations (13) and (14) because the key sharing device 116-1 has its own secret value a (1). And the arbitrary value r (1). An attacker who knows the secret value a (2) of the key sharing device 116-2 can impersonate the key sharing device 116-1 and generate the arbitrary value r (1) and the arbitrary element X (1). However, since the secret value a (1) is not known, the sharing elements σ (1) and σ (2) of the equations (13) and (14) cannot be calculated.

また、鍵共有装置116−2が式(17)(18)の共有元σ(1),σ(2)を計算できるのは、鍵共有装置116−2が自らの秘密値a(2)と任意値r(2)とを知っているからである。鍵共有装置116−1の秘密値a(1)を知っている攻撃者は、鍵共有装置116−2に成り済まして任意値r(2)や任意元X(2)を生成することはできても、秘密値a(2)を知らないため、式(17)(18)の共有元σ(1),σ(2)を計算できない。よって、本形態の方式に対して攻撃者がKCI攻撃を行うことは困難である。   Also, the key sharing device 116-2 can calculate the sharing sources σ (1) and σ (2) of the equations (17) and (18) because the key sharing device 116-2 and its secret value a (2) This is because the arbitrary value r (2) is known. An attacker who knows the secret value a (1) of the key sharing device 116-1 can impersonate the key sharing device 116-2 and generate the arbitrary value r (2) and the arbitrary element X (2). However, since the secret value a (2) is not known, the sharing elements σ (1) and σ (2) of the equations (17) and (18) cannot be calculated. Therefore, it is difficult for an attacker to perform a KCI attack on the system of this embodiment.

また、本形態では、式(11)(12)(15)(16)によって、任意元X(1)又は任意元X(2)に応じて値が定まる整数d(1),d(2)を生成し、これらを用いて式(13)(14)(17)(18)のように共有元σ(1),σ(2)を生成した。そのため、本形態では、高い安全性を確保できる。   In this embodiment, integers d (1) and d (2) whose values are determined according to the arbitrary element X (1) or the arbitrary element X (2) by the equations (11), (12), (15), and (16). Using these, the sharing elements σ (1) and σ (2) are generated as in the equations (13), (14), (17), and (18). Therefore, in this embodiment, high safety can be ensured.

すなわち、整数d(1)は任意元X(1)に応じて値が定まる整数であるため、整数d(1)の値は、任意元X(1)が定まるまで特定できない。そのため、鍵共有装置110−1又はそれに成り済ました攻撃者は、鍵共有装置110−2による共有元σ(u)の生成時にキャンセルされてしまうような任意元X(1)を、意図的に生成できない。例えば、整数d(1)=1に固定されている場合に、鍵共有装置110−1又はそれに成り済ました攻撃者が任意元としてX(1)=1/A(1)を鍵共有装置110−2に送った場合、鍵共有装置110−2によって生成される共有元σ(1),σ(2)はいずれも1∈Gとなってしまう。これに対し、任意元X(1)に応じて値が定まる整数d(1)を用いた場合には、このような攻撃はできない。なお、任意元X(1)が得られるまで整数d(1)の値を推測することが困難である場合には、より高い安全性を確保できる。同様に、整数d(2)は任意元X(2)に応じて値が定まる整数であるため、整数d(2)の値は、任意元X(2)が定まるまで特定できない。そのため、鍵共有装置110−2又はそれに成り済ました攻撃者は、鍵共有装置110−1による共有元σ(u)の生成時にキャンセルされてしまうような任意元X(2)を、意図的に生成できない。任意元X(2)が得られるまで整数d(2)の値を推測することが困難である場合には、より高い安全性を確保できる。   That is, since the integer d (1) is an integer whose value is determined according to the arbitrary element X (1), the value of the integer d (1) cannot be specified until the arbitrary element X (1) is determined. Therefore, the key sharing device 110-1 or an attacker impersonating it intentionally generates an arbitrary element X (1) that is canceled when the key sharing device 110-2 generates the sharing source σ (u). Can not. For example, when the integer d (1) = 1 is fixed, X (1) = 1 / A (1) is set as an arbitrary element by the key sharing device 110-1 or an attacker who has become the key sharing device 110-. 2, the sharing sources σ (1) and σ (2) generated by the key sharing device 110-2 are both 1εG. In contrast, when an integer d (1) whose value is determined according to the arbitrary element X (1) is used, such an attack cannot be performed. If it is difficult to estimate the value of the integer d (1) until the arbitrary element X (1) is obtained, higher safety can be ensured. Similarly, since the integer d (2) is an integer whose value is determined according to the arbitrary element X (2), the value of the integer d (2) cannot be specified until the arbitrary element X (2) is determined. Therefore, the key sharing device 110-2 or an attacker impersonating it intentionally generates an arbitrary element X (2) that is canceled when the key sharing device 110-1 generates the sharing source σ (u). Can not. If it is difficult to estimate the value of the integer d (2) until the arbitrary element X (2) is obtained, higher safety can be ensured.

また、本形態では、複数の共有元σ(1),σ(2)を生成することとしたため、高い安全性を確保できる。   In the present embodiment, since a plurality of sharing sources σ (1) and σ (2) are generated, high security can be ensured.

〔第1実施形態の変形例1〕
第1実施形態の変形例1は、ステップS116−1,2の共有元σ(u)の生成処理の変形例である。第1実施形態の変形例1では、式(7)〜(10)の代わりに、
s(1,1)=1, t(1,1)=1, s(1,2)=1, t(1,2)=1 …(19')
s(2,1)=1, t(2,1)=d(1), s(2,2)=1, t(2,2)=d(2) …(20)
とする。すなわち、
σ(1)=g(r(1)+a(1))(r(2)+a(2)) …(21)
σ(2)=g(r(1)+a(1)・d(1))(r(2)+a(2)・d(2)) …(22)
を満たす共有元σ(u)を生成する。
[Variation 1 of the first embodiment]
The first modification of the first embodiment is a modification of the generation process of the sharing source σ (u) in steps S116-1 and S116-2. In the first modification of the first embodiment, instead of the equations (7) to (10),
s (1,1) = 1, t (1,1) = 1, s (1,2) = 1, t (1,2) = 1… (19 ')
s (2,1) = 1, t (2,1) = d (1), s (2,2) = 1, t (2,2) = d (2)… (20)
And That is,
σ (1) = g (r (1) + a (1)) (r (2) + a (2)) … (21)
σ (2) = g (r (1) + a (1) · d (1)) (r (2) + a (2) · d (2)) (22)
A sharing element σ (u) that satisfies is generated.

この場合、共有元演算部116a−1−1,116a−2−1(図3(A))が、式(13)(14)の代わりに、共有元
σ(1)=(X(2)・A(2))r(1)+a(1)∈G …(23)
=g(r(1)+a(1))(r(2)+a(2))
σ(2)=(X(2)・A(2)d(2))r(1)+a(1)・d(1)∈G …(24)
=g(r(1)+a(1)・d(1))(r(2)+a(2)・d(2))
を生成して出力する。
In this case, the sharing element calculation units 116a-1-1 and 116a-2-1 (FIG. 3A) replace the expressions (13) and (14) with the sharing element σ (1) = (X (2)・ A (2)) r (1) + a (1) ∈G… (23)
= g (r (1) + a (1)) (r (2) + a (2))
σ (2) = (X (2) ・ A (2) d (2) ) r (1) + a (1) ・ d (1) ∈G… (24)
= g (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2))
Is generated and output.

また、共有元演算部116a−1−2,116a−2−2(図3(B))が、式(17)(18)の代わりに、共有元
σ(1)=(X(1)・A(1))r(2)+a(2)∈G …(25)
=g(r(1)+a(1))(r(2)+a(2))
σ(2)=(X(1)・A(1)d(1))r(2)+a(2)・d(2)∈G …(26)
=g(r(1)+a(1)・d(1))(r(2)+a(2)・d(2))
を生成して出力する。その他は第1実施形態と同様である。
Further, the sharing element calculation units 116a-1-2 and 116a-2-2 (FIG. 3B) replace the expressions (17) and (18) with the sharing element σ (1) = (X (1) · A (1)) r (2) + a (2) ∈G… (25)
= g (r (1) + a (1)) (r (2) + a (2))
σ (2) = (X (1) · A (1) d (1) ) r (2) + a (2) · d (2) ∈ G (26)
= g (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2))
Is generated and output. Others are the same as in the first embodiment.

その他、U=1として、式(7)〜(10)の代わりに、
s(1,1)=1, t(1,1)=d(1), s(1,2)=1, t(1,2)=d(2)
、すなわち、
σ(1)=g(r(1)+a(1)・d(1))(r(2)+a(2)・d(2))
を満たす共有元σ(u)を生成する構成でもよい。その他、U≧3の構成、ハッシュ値d(1)又はd(2)の一方のみを用いて共有元σ(u)を生成する構成、任意元X(1)と任意元X(2)の両方に依存するハッシュ値d(3)を用いて共有元σ(u)を生成する構成、ハッシュ値d(1),d(2)を用いずに共有元σ(u)を生成する構成なども可能である。また、d(p)は、ハッシュ値に限定されず、任意元X(1)及び/又は任意元X(2)に応じて値が定まる整数であればよい。例えば、任意元X(1)や任意元X(2)の一部のビットをd(p)としてもよいし、任意元X(1)と任意元X(2)とのビット結合値の一部をd(p)としてもよい。また、
r(i)=F’(r’(i),a(i))
としてもよい。なお、F’は、ハッシュ関数F’:{0,1}*→Zであり、r’(i)は乱数である。r(j)についても同様な変形を行ってもよい。これによってU=1の場合でも高い安全性を確保できる。その他、本発明の趣旨を遺脱しない範囲で共有元σ(u)の生成方法を変形可能である。
In addition, assuming that U = 1, instead of formulas (7) to (10),
s (1,1) = 1, t (1,1) = d (1), s (1,2) = 1, t (1,2) = d (2)
That is,
σ (1) = g (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2))
It may be configured to generate a sharing element σ (u) that satisfies the above. In addition, the configuration of U ≧ 3, the configuration of generating the sharing element σ (u) using only one of the hash values d (1) or d (2), the arbitrary element X (1) and the arbitrary element X (2) A configuration for generating the sharing source σ (u) using the hash value d (3) depending on both, a configuration for generating the sharing source σ (u) without using the hash values d (1) and d (2), etc. Is also possible. Further, d (p) is not limited to a hash value, and may be an integer whose value is determined according to the arbitrary element X (1) and / or the arbitrary element X (2). For example, some bits of the arbitrary element X (1) or the arbitrary element X (2) may be d (p), or a bit combination value of the arbitrary element X (1) and the arbitrary element X (2). The part may be d (p). Also,
r (i) = F ′ (r ′ (i), a (i))
It is good. Note that F ′ is a hash function F ′: {0, 1} * → Z q , and r ′ (i) is a random number. A similar modification may be performed for r (j). Accordingly, high safety can be ensured even when U = 1. In addition, the method for generating the sharing source σ (u) can be modified without departing from the spirit of the present invention.

〔第1実施形態の変形例2〕
第1実施形態の変形例2は、ステップS117−1,2の鍵生成処理の変形例である。すなわち、第1実施形態では、式(14')(19)によって鍵Kを生成したが、鍵Kは共有元σ(u)に基づいて値が定まればよい。例えば、式(14')(19)のハッシュ関数Hへの入力値となるσ(u),X(1),X(2),A(1),A(2),ID(1),ID(2),ID(prot)のビット結合の順序には制限はない。また、X(1),X(2),A(1),A(2),ID(1),ID(2),ID(prot)の少なくとも一部が省略されてもよく、アルゴリズム識別子ID(algo)、セッション識別子ID(sess)などの他の情報がビット結合対象に加えられてもよい。例えば、
K=H(σ(1), σ(2), X(1), X(2), A(1), A(2), ID(1), ID(2))
K=H(σ(1), σ(2))
K=H(σ(1), σ(2), X(1), X(2), A(1), A(2), ID(1), ID(2), ID(prot), ID(algo))
K=H(σ(1), σ(2) , X(1), X(2), ID(sess))
などを共有する鍵としてもよい。また、例えば、鍵Kの生成に識別子ID(1),ID(2)を用いない場合、ステップS114−1,2で鍵共有装置110−1,2が識別子ID(1),ID(2)を出力せず、ステップS115−1,2で鍵共有装置110−1,2に識別子ID(1),ID(2)が入力されなくてもよい。また、ハッシュ関数Hの代わりに他の関数が用いられてもよいし、ハッシュ関数を用いずに、共有元σ(u)を含む値のビット結合値をそのまま鍵Kとしてもよい。ただし、ステップS117−1,2の鍵生成のための演算は同一でなければならない。
[Modification 2 of the first embodiment]
The second modification of the first embodiment is a modification of the key generation process in steps S117-1, 2. That is, in the first embodiment, the key K is generated by the equations (14 ′) and (19), but the value of the key K may be determined based on the sharing element σ (u). For example, σ (u), X (1), X (2), A (1), A (2), ID (1), which are input values to the hash function H of the equations (14 ′) (19), There is no restriction on the order of bit combination of ID (2) and ID (prot). In addition, at least part of X (1), X (2), A (1), A (2), ID (1), ID (2), ID (prot) may be omitted, and an algorithm identifier ID Other information such as (algo) and session identifier ID (sess) may be added to the bit combination target. For example,
K = H (σ (1), σ (2), X (1), X (2), A (1), A (2), ID (1), ID (2))
K = H (σ (1), σ (2))
K = H (σ (1), σ (2), X (1), X (2), A (1), A (2), ID (1), ID (2), ID (prot), ID (algo))
K = H (σ (1), σ (2), X (1), X (2), ID (sess))
It is good also as a key which shares etc. For example, when the identifiers ID (1) and ID (2) are not used for generating the key K, the key sharing apparatuses 110-1 and 110-2 are identified by the identifiers ID (1) and ID (2) in steps S114-1 and S114-2. Is not output, and the identifiers ID (1) and ID (2) may not be input to the key sharing apparatuses 110-1 and 110-2 in steps S115-1 and S115-2. Further, another function may be used instead of the hash function H, or the bit combination value of the value including the sharing element σ (u) may be used as the key K without using the hash function. However, the operations for key generation in steps S117-1, 2 must be the same.

〔第2実施形態〕
次に、本発明の第2実施形態を説明する。第2実施形態では、P=3、i=1、j∈{2,3}であり、W(u)=w(u,1)・w(u,2)・w(u,3)であり、w(u,p)はa(p)とr(p)との線形和である。第2実施形態では、3つの鍵共有装置で鍵の共有を行う。鍵共有装置の記憶部が、少なくとも、秘密値a(i)とA(j)=ga(j)∈Gとを格納し、鍵共有装置の共有元生成部が、少なくとも、秘密値a(i)と、2つの公開値A(j)=ga(j)∈Gと、任意値r(i)と、2つの第2任意元X(j)=gr(j)∈Gと、巡回群Gの2つの元を巡回群Gの1つの元に写像する双線形関数である関数eとを用い、巡回群Gの元g W(u)=e(g,g)W(u)∈Gを共有元σ(u)として生成する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. In the second embodiment, P = 3, i = 1, jε {2,3}, and W (u) = w (u, 1) · w (u, 2) · w (u, 3) Yes, w (u, p) is the linear sum of a (p) and r (p). In the second embodiment, a key is shared by three key sharing devices. The storage unit of the key sharing device stores at least the secret value a (i) and A (j) = ga (j) εG, and the sharing source generation unit of the key sharing device at least stores the secret value a ( i), two public values A (j) = g a (j) εG, an arbitrary value r (i), and two second arbitrary elements X (j) = g r (j) εG, using the function e is bilinear function that maps two original cyclic group G with one of the original cyclic group G T, based on g T W (u) = e (g, g) of the cyclic group G T W (u) generating a ∈G T as Pool sigma (u).

<構成>
図5〜7は、第2実施形態の鍵共有システム200の構成を説明するためのブロック図である。なお、第1実施形態と共通する部分については、第1実施形態と同じ符号を用いて説明を簡略化する。
<Configuration>
5 to 7 are block diagrams for explaining the configuration of the key sharing system 200 according to the second embodiment. In addition, about the part which is common in 1st Embodiment, description is simplified using the same code | symbol as 1st Embodiment.

図5に例示するように、第2実施形態の鍵共有システム200は、鍵共有装置210−1(第1鍵共有装置)と鍵共有装置210−2(第2鍵共有装置)と鍵共有装置210−3(第3鍵共有装置)とを有する。   As illustrated in FIG. 5, the key sharing system 200 according to the second embodiment includes a key sharing device 210-1 (first key sharing device), a key sharing device 210-2 (second key sharing device), and a key sharing device. 210-3 (third key sharing apparatus).

図6に例示するように、鍵共有装置210−1は、記憶部211−1と、任意値生成部112−1と、任意元生成部113−1と、出力部214−1と、入力部215−1と、共有元生成部216−1と、鍵生成部217−1と、一時メモリ118−1と、制御部119−1とを有する。図8(A)は、共有元生成部216−1の構成を説明するためのブロック図である。図8(A)に例示するように、共有元生成部216−1は、ハッシュ演算部116b−1,116c−1,216d−1と、共有元演算部216a−u−1(u∈{1,...,U}、Uは1以上の整数定数)とを有する。   As illustrated in FIG. 6, the key sharing apparatus 210-1 includes a storage unit 211-1, an arbitrary value generation unit 112-1, an arbitrary element generation unit 113-1, an output unit 214-1, and an input unit. 215-1, a sharing source generation unit 216-1, a key generation unit 217-1, a temporary memory 118-1, and a control unit 119-1. FIG. 8A is a block diagram for explaining the configuration of the sharing source generation unit 216-1. As illustrated in FIG. 8A, the sharing source generation unit 216-1 includes the hash calculation units 116b-1, 116c-1, and 216d-1, and the sharing source calculation units 216a-u-1 (uε {1 ,..., U}, U is an integer constant equal to or greater than 1.

鍵共有装置210−2は、記憶部211−2と、任意値生成部112−2と、任意元生成部113−2と、出力部214−2と、入力部215−2と、共有元生成部216−2と、鍵生成部217−2と、一時メモリ118−2と、制御部119−2とを有する。図8(B)は、共有元生成部216−2の構成を説明するためのブロック図である。図8(B)に例示するように、共有元生成部216−2は、ハッシュ演算部116b−2,116c−2,216d−2と、共有元演算部216a−u−2(u∈{1,...,U})とを有する。   The key sharing device 210-2 includes a storage unit 211-2, an arbitrary value generation unit 112-2, an arbitrary element generation unit 113-2, an output unit 214-2, an input unit 215-2, and a shared source generation. Unit 216-2, key generation unit 217-2, temporary memory 118-2, and control unit 119-2. FIG. 8B is a block diagram for explaining the configuration of the sharing source generation unit 216-2. As illustrated in FIG. 8B, the sharing source generation unit 216-2 includes the hash calculation units 116b-2, 116c-2, and 216d-2, and the sharing source calculation units 216a-u-2 (uε {1 ,..., U}).

図7に例示するように、鍵共有装置210−3は、記憶部211−3と、任意値生成部212−3と、任意元生成部213−3と、出力部214−3と、入力部215−3と、共有元生成部216−3と、鍵生成部217−3と、一時メモリ218−3と、制御部219−3とを有する。図9は、共有元生成部216−3の構成を説明するためのブロック図である。図9に例示するように、共有元生成部216−3は、ハッシュ演算部216b−3,216c−3,216d−3と、共有元演算部216a−u−3(u∈{1,...,U})とを有する。   As illustrated in FIG. 7, the key sharing apparatus 210-3 includes a storage unit 211-3, an arbitrary value generation unit 212-3, an arbitrary element generation unit 213-3, an output unit 214-3, and an input unit. 215-3, a sharing source generation unit 216-3, a key generation unit 217-3, a temporary memory 218-3, and a control unit 219-3. FIG. 9 is a block diagram for explaining the configuration of the sharing source generation unit 216-3. As illustrated in FIG. 9, the sharing source generation unit 216-3 includes the hash calculation units 216b-3, 216c-3, and 216d-3, and the sharing source calculation units 216a-u-3 (uε {1,. , U}).

なお、第1実施形態と同様、鍵共有装置210−1,2,3は、例えば、公知のコンピュータに所定のプログラムが読み込まれて実行されることで構成される。また、鍵共有装置210−1,2,3は、それぞれ、制御部119−1,2、制御部219−3の制御のもと各処理を実行する。また、以下では説明を簡略化するが、各処理部から出力されたデータは、逐一、一時メモリ118−1,2、一時メモリ218−3又は記憶部111−1,2、記憶部211−3に格納される。一時メモリ118−1,2、一時メモリ218−3又は記憶部111−1,2、記憶部211−3に格納されたデータは、必要に応じて読み出され、各処理部に入力されてその処理に利用される。   As in the first embodiment, the key sharing apparatuses 210-1, 2, 3 are configured by, for example, reading a predetermined program into a known computer and executing it. Further, the key sharing apparatuses 210-1, 2, 3 execute the respective processes under the control of the control units 119-1, 29-1 and 219-3, respectively. In addition, although the explanation will be simplified below, the data output from each processing unit is the temporary memory 118-1, 2, the temporary memory 218-3 or the storage unit 111-1, 2, the storage unit 211-3. Stored in The data stored in the temporary memory 118-1, 2 and the temporary memory 218-3 or the storage unit 111-1, 2 and the storage unit 211-3 are read out as necessary and input to each processing unit. Used for processing.

<公開パラメータ>
第2実施形態では、以下を公開パラメータとする。
<Public parameters>
In the second embodiment, the following are public parameters.

G:Lビットの位数q(qは素数)の巡回群。   G: Cyclic group of L-bit order q (q is a prime number).

:Lビットの位数qの巡回群。 G T : Cyclic group of L-bit order q.

g:巡回群Gの生成元。   g: A generator of the cyclic group G.

:巡回群Gの生成元。g (mは整数)によって巡回群Gのすべての元を表現できる。g=e(g,g)。 g T: generator of the cyclic group G T. g T m (m is an integer) can represent all of the original cyclic group G T by. g T = e (g, g).

e:e(α,β)→γ(α,β∈G,γ∈G)。巡回群Gの2つの元を巡回群Gの1つの元に写像する双線形関数。双線形関数eは、以下の性質を満たす。 e: e (α, β) → γ (α, βεG, γεG T ). Bilinear function that maps two original cyclic group G with one of the original cyclic group G T. The bilinear function e satisfies the following properties.

[双線形性]すべてのα,β∈G及びν,κ∈Zqについて以下の関係を満たす。 [Bilinearity] The following relationship is satisfied for all α, β∈G and ν, κ∈Z q .

e(ανκ)=e(α,β)ν・κ …(27)
[非退化性]すべてのα,β∈Gを巡回群Gの単位元に写す関数ではない。
e (α ν , β κ ) = e (α, β) ν ・ κ (27)
Non degenerative] All alpha, not a function View daylight β∈G the unity of the cyclic group G T.

[計算可能性]あらゆるα,β∈Gについてe(α,β)を効率的に計算するアルゴリズムが存在する。   [Computability] There is an algorithm for efficiently calculating e (α, β) for every α, β∈G.

なお、双線形関数eの具体例は、WeilペアリングやTateペアリングなどのペアリング演算を行うための関数である(例えば、「Alfred. J. Menezes,ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6,pp. 61-81」等参照)。   A specific example of the bilinear function e is a function for performing pairing operations such as Weil pairing and Tate pairing (for example, “Alfred. J. Menezes, ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6, pp. 61-81 ").

F:G→[0,q1/2]。巡回群Gの元を0以上q1/2以下の整数に写すハッシュ関数。 F: G → [0, q 1/2 ]. A hash function that maps an element of the cyclic group G to an integer between 0 and q 1/2 .

H:{0,1}→{0,1}。任意長のビット列をLビットのビット列に写すハッシュ関数。 H: {0, 1} * → {0, 1} L. A hash function that copies an arbitrary-length bit string into an L-bit bit string.

ID(prot):鍵交換方式の名称の識別子。   ID (prot): identifier of the name of the key exchange method.

<事前処理>
鍵共有処理の事前処理として以下の処理が実行される。
<Pre-processing>
The following process is executed as a pre-process of the key sharing process.

鍵共有装置210−1の記憶部211−1に、鍵共有装置210−1の秘密値(秘密鍵)a(1)∈Zと、鍵共有装置210−1に対応する巡回群Gの元である公開値(公開鍵)A(1)=ga(1)∈Gと、鍵共有装置210−2に対応する巡回群Gの元である公開値(公開鍵)A(2)=ga(2)∈Gと、鍵共有装置210−3に対応する巡回群Gの元である公開値(公開鍵)A(3)=ga(3)∈Gと、鍵共有装置210−1の識別子ID(1)と、識別子ID(prot)とが格納される。鍵共有装置210−2の記憶部211−2に、鍵共有装置210−2の秘密値(秘密鍵)a(2)∈Zと、鍵共有装置210−1に対応する巡回群Gの元である公開値(公開鍵)A(1)=ga(1)∈Gと、鍵共有装置210−2に対応する巡回群Gの元である公開値(公開鍵)A(2)=ga(2)∈Gと、鍵共有装置210−3に対応する巡回群Gの元である公開値(公開鍵)A(3)=ga(3)∈Gと、鍵共有装置210−2の識別子ID(2)と、識別子ID(prot)とが格納される。鍵共有装置210−3の記憶部211−3に、鍵共有装置210−3の秘密値(秘密鍵)a(3)∈Zと、鍵共有装置210−1に対応する巡回群Gの元である公開値(公開鍵)A(1)=ga(1)∈Gと、鍵共有装置210−2に対応する巡回群Gの元である公開値(公開鍵)A(2)=ga(2)∈Gと、鍵共有装置210−3に対応する巡回群Gの元である公開値(公開鍵)A(3)=ga(3)∈Gと、鍵共有装置210−2の識別子ID(2)と、識別子ID(prot)とが格納される。 In the storage unit 211-1 of the key sharing apparatus 210-1, the secret value (secret key) a (1) ∈Z q of the key sharing apparatus 210-1 and the element of the cyclic group G corresponding to the key sharing apparatus 210-1 are stored. Public value (public key) A (1) = g a (1) ∈ G and the public value (public key) A (2) = g that is an element of the cyclic group G corresponding to the key sharing apparatus 210-2 a (2) and ∈G, based in a public value of the cyclic group G corresponding to the key sharing device 210-3 (public key) a (3) = g a (3) and ∈G, key sharing device 210-1 Identifier ID (1) and identifier ID (prot) are stored. In the storage unit 211-2 of the key sharing apparatus 210-2, the secret value (secret key) a (2) εZ q of the key sharing apparatus 210-2 and the element of the cyclic group G corresponding to the key sharing apparatus 210-1 are stored. Public value (public key) A (1) = g a (1) ∈ G and the public value (public key) A (2) = g that is an element of the cyclic group G corresponding to the key sharing apparatus 210-2 a (2) ∈G and, based on the a public value of the cyclic group G corresponding to the key sharing device 210-3 (public key) a (3) = g a (3) and ∈G, key sharing device 210-2 Identifier ID (2) and identifier ID (prot) are stored. The storage unit 211-3 of the key sharing apparatus 210-3 stores the secret value (secret key) a (3) εZ q of the key sharing apparatus 210-3 and the element of the cyclic group G corresponding to the key sharing apparatus 210-1. Public value (public key) A (1) = g a (1) ∈ G and the public value (public key) A (2) = g that is an element of the cyclic group G corresponding to the key sharing apparatus 210-2 a (2) ∈G and, based on the a public value of the cyclic group G corresponding to the key sharing device 210-3 (public key) a (3) = g a (3) and ∈G, key sharing device 210-2 Identifier ID (2) and identifier ID (prot) are stored.

<鍵共有処理>
図10(A)は、鍵共有装置210−1の鍵共有処理を説明するためのフローチャートであり、図10(B)は、鍵共有装置210−2の鍵共有処理を説明するためのフローチャートである。また、図11は、鍵共有装置210−3の鍵共有処理を説明するためのフローチャートである。
<Key sharing process>
10A is a flowchart for explaining the key sharing process of the key sharing apparatus 210-1, and FIG. 10B is a flowchart for explaining the key sharing process of the key sharing apparatus 210-2. is there. FIG. 11 is a flowchart for explaining the key sharing process of the key sharing apparatus 210-3.

まず、鍵共有装置210−1(図6)は、第1実施形態のステップS112−1,S113−1の処理を実行する。これによって得られた任意元X(1)=gr(1)∈Gと、記憶部111−1から読み出された識別子ID(1)とが出力部214−1に入力され、出力部214−1は、任意元X(1)=gr(1)∈Gと識別子ID(1)とを出力(ネットワークへの送信や可搬型記録媒体への格納など)する(図10(A)/ステップS214−1)。任意元X(1)=gr(1)∈Gと識別子ID(1)とは、鍵共有装置210−2,210−3に送られる。 First, the key sharing apparatus 210-1 (FIG. 6) performs the processing of steps S112-1 and S113-1 of the first embodiment. The arbitrary element X (1) = g r (1) εG obtained by this and the identifier ID (1) read from the storage unit 111-1 are input to the output unit 214-1, and the output unit 214 −1 outputs an arbitrary element X (1) = g r (1) εG and an identifier ID (1) (transmission to a network, storage in a portable recording medium, etc.) (FIG. 10A / Step S214-1). Arbitrary element X (1) = gr (1) εG and identifier ID (1) are sent to key sharing apparatuses 210-2 and 210-3.

また、鍵共有装置210−2(図6)は、第1実施形態のステップS112−2,S113−2の処理を実行する。これによって得られた任意元X(2)=gr(2)∈Gと、記憶部111−2から読み出された識別子ID(2)とが出力部214−2に入力され、出力部214−2は、任意元X(2)=gr(2)∈Gと識別子ID(2)とを出力(ネットワークへの送信や可搬型記録媒体への格納など)する(図10(B)/ステップS214−2)。任意元X(2)=gr(2)∈Gと識別子ID(2)とは、鍵共有装置210−1,210−3に送られる。 Further, the key sharing apparatus 210-2 (FIG. 6) executes the processes of steps S112-2 and S113-2 of the first embodiment. The arbitrary element X (2) = g r (2) εG obtained in this way and the identifier ID (2) read from the storage unit 111-2 are input to the output unit 214-2, and the output unit 214 -2 outputs an arbitrary element X (2) = g r (2) εG and an identifier ID (2) (transmission to a network, storage in a portable recording medium, etc.) (FIG. 10B / Step S214-2). Arbitrary element X (2) = gr (2) εG and identifier ID (2) are sent to key sharing apparatuses 210-1 and 210-3.

鍵共有装置210−3(図7)の任意値生成部212−2は、任意値r(3)∈Zを生成して出力する(図11/ステップS212−3)。なお、任意値r(3)∈Zは、例えば、公知の擬似乱数生成アルゴリズムを用いて生成された擬似乱数や、予め定められた順序でZから選択された値である。任意元生成部213−3には、任意値r(3)∈Zが入力され、任意元生成部213−3は、任意値r(3)を用い、任意元X(3)=gr(3)∈Gを生成して出力する(ステップS213−3)。任意元X(3)=gr(3)∈Gと記憶部211−3から読み出された識別子ID(3)とが出力部214−3に入力され、出力部214−3は、任意元X(3)=gr(3)∈Gと識別子ID(3)とを出力(ネットワークへの送信や可搬型記録媒体への格納など)する(ステップS214−3)。任意元X(3)=gr(3)∈Gと識別子ID(3)とは、鍵共有装置210−1,210−2に送られる。 The arbitrary value generator 212-2 of the key sharing device 210-3 (FIG. 7) generates and outputs an arbitrary value r (3) εZ q (FIG. 11 / step S212-3). The arbitrary value r (3) εZ q is, for example, a pseudo random number generated using a known pseudo random number generation algorithm or a value selected from Z q in a predetermined order. The arbitrary element generation unit 213-3 is input with the arbitrary value r (3) εZ q , and the arbitrary element generation unit 213-3 uses the arbitrary value r (3), and the arbitrary element X (3) = g r (3) Generate εG and output it (step S213-3). Arbitrary element X (3) = gr (3) εG and identifier ID (3) read from the storage unit 211-3 are input to the output unit 214-3, and the output unit 214-3 X (3) = g r (3) εG and identifier ID (3) are output (transmitted to a network, stored in a portable recording medium, etc.) (step S214-3). Arbitrary element X (3) = gr (3) εG and identifier ID (3) are sent to key sharing apparatuses 210-1 and 210-2.

鍵共有装置210−1(図6)の入力部215−1には、任意元X(2)=gr(2)∈Gと識別子ID(2)とが入力され(図10(A)/ステップS115−1)、任意元X(3)=gr(3)∈Gと識別子ID(3)とが入力される(ステップS215−1)。任意元X(2)=gr(2)∈Gと任意元X(3)=gr(3)∈Gは共有元生成部216−1に送られ、識別子ID(2),ID(3)は記憶部211−1に格納される。 Arbitrary element X (2) = gr (2) εG and identifier ID (2) are input to input unit 215-1 of key sharing apparatus 210-1 (FIG. 6) (FIG. 10 (A) / In step S115-1, the arbitrary element X (3) = gr (3) εG and the identifier ID (3) are input (step S215-1). Arbitrary element X (2) = g r (2) ∈ G and arbitrary element X (3) = gr (3) ∈ G are sent to sharing element generation unit 216-1, and identifiers ID (2), ID (3 ) Is stored in the storage unit 211-1.

共有元生成部216−1には、入力部215−1から送られた任意元X(2)=gr(2)∈G,X(3)=gr(3)∈Gと、記憶部211−1から読み出された秘密値a(1)及び公開値A(2)=ga(2)∈G,A(3)=ga(3)∈Gと、任意値生成部112−1で生成(ステップS112−1)された任意値r(1)∈Zと、任意元生成部113−1で生成(ステップS113−1)された任意元X(1)=gr(1)∈Gが入力される。共有元生成部216−1は、これらと巡回群Gの元を巡回群Gの元に写像する前述の関数eを用い、巡回群Gの元g W(u)∈G(u∈{1,...,U}、Uは1以上の整数定数)を共有元σ(u)として生成して出力する(ステップS216−1)。本形態では、
W(u)=w(u,1)・w(u,2)・w(u,3)∈Zq …(28)
w(u,1)=(r(1)・s(u,1)+a(1)・t(u,1))∈Zq …(29)
w(u,2)=(r(2)・s(u,2)+a(2)・t(u,2))∈Zq …(30)
w(u,3)=(r(3)・s(u,3)+a(3)・t(u,3))∈Zq …(31)
を満たすg W(u)∈Gが、共有元σ(u)として生成される。s(u,1),s(u,2),s(u,3),t(u,1),t(u,2),t(u,3)∈Zはuごとに定まる定数又は変数である。s(u,1),s(u,2),s(u,3),t(u,1),t(u,2),t(u,3)∈Z及びUの設定は任意でよいが、すべてのuについて、s(u,1)とt(u,1)とや、s(u,2)とt(u,2)とや、s(u,3)とt(u,3)とが、必ず0となる設定は好ましくない。以下に、s(u,1),s(u,2),s(u,3),t(u,1),t(u,2),t(u,3)∈Z及びUの設定例と、そのときのステップS216−1の処理とを例示する。
The sharing element generation unit 216-1 includes an arbitrary element X (2) = gr (2) εG, X (3) = gr (3) εG sent from the input unit 215-1, and a storage unit The secret value a (1) and the public value A (2) = ga (2) εG, A (3) = ga (3) εG read out from 211-1 and the arbitrary value generator 112- generating at 1 (step S112-1) have been any value r (1) ∈ Z q and, generated in any element generation unit 113-1 (step S113-1) have been arbitrarily based X (1) = g r (1 ) ΕG is input. Shared source generation unit 216-1 using the aforementioned function e mapping the original of the cyclic group G to the original cyclic group G T, based on g T W (u) ∈G T (u of the cyclic group G T .Epsilon. {1,..., U}, U is an integer constant equal to or greater than 1) is generated and output as a sharing element σ (u) (step S216-1). In this form,
W (u) = w (u, 1) ・ w (u, 2) ・ w (u, 3) ∈Z q … (28)
w (u, 1) = (r (1) ・ s (u, 1) + a (1) ・ t (u, 1)) ∈Z q (29)
w (u, 2) = (r (2) ・ s (u, 2) + a (2) ・ t (u, 2)) ∈Z q … (30)
w (u, 3) = (r (3) ・ s (u, 3) + a (3) ・ t (u, 3)) ∈Z q … (31)
G T W (u) ∈G T satisfying is generated as a Pool sigma (u). s (u, 1), s (u, 2), s (u, 3), t (u, 1), t (u, 2), t (u, 3) εZ q is a constant determined for each u. Or it is a variable. s (u, 1), s (u, 2), s (u, 3), t (u, 1), t (u, 2), t (u, 3) εZ q and U are arbitrarily set However, for all u, s (u, 1) and t (u, 1), s (u, 2) and t (u, 2), s (u, 3) and t ( A setting in which u, 3) is always 0 is not preferable. Below, s (u, 1), s (u, 2), s (u, 3), t (u, 1), t (u, 2), t (u, 3) ∈Z q and U A setting example and the process of step S216-1 at that time will be exemplified.

[ステップS216−1の例]
本形態では、
U=4 …(32)
s(1,1)=1, t(1,1)=d(1), s(1,2)=1, t(1,2)=1, s(1,3)=1, t(1,3)=1 …(33)
s(2,1)=1, t(2,1)=1, s(2,2)=1, t(2,2)=d(2), s(2,3)=1, t(2,3)=1 …(34)
s(3,1)=1, t(3,1)=1, s(3,2)=1, t(3,2)=1, s(3,3)=1, t(3,3)=d(3) …(35)
s(4,1)=1, t(4,1)=d(1), s(4,2)=1, t(4,2)=d(2), s(4,3)=1, t(4,3)=d(3) …(36)
としたステップS216−1の処理を例示する。すなわち、
σ(1)=g(r(1)+a(1)・d(1))(r(2)+a(2))(r(3)+a(3)) …(37)
σ(2)=g(r(1)+a(1))(r(2)+a(2)・d(2))(r(3)+a(3)) …(38)
σ(3)=g(r(1)+a(1))(r(2)+a(2))(r(3)+a(3)・d(3)) …(39)
σ(4)=g(r(1)+a(1)・d(1))(r(2)+a(2)・d(2))(r(3)+a(3)・d(3)) …(40)
とした場合の例を示す。
[Example of Step S216-1]
In this form,
U = 4 ... (32)
s (1,1) = 1, t (1,1) = d (1), s (1,2) = 1, t (1,2) = 1, s (1,3) = 1, t ( 1,3) = 1… (33)
s (2,1) = 1, t (2,1) = 1, s (2,2) = 1, t (2,2) = d (2), s (2,3) = 1, t ( 2,3) = 1… (34)
s (3,1) = 1, t (3,1) = 1, s (3,2) = 1, t (3,2) = 1, s (3,3) = 1, t (3,3 ) = d (3)… (35)
s (4,1) = 1, t (4,1) = d (1), s (4,2) = 1, t (4,2) = d (2), s (4,3) = 1 , t (4,3) = d (3)… (36)
The process of step S216-1 is exemplified. That is,
σ (1) = g (r (1) + a (1) · d (1)) (r (2) + a (2)) (r (3) + a (3)) … (37)
σ (2) = g (r (1) + a (1)) (r (2) + a (2) · d (2)) (r (3) + a (3)) … (38)
σ (3) = g (r (1) + a (1)) (r (2) + a (2)) (r (3) + a (3) · d (3)) (39)
σ (4) = g (r (1) + a (1) · d (1)) (r (2) + a (2) · d (2)) (r (3) + a (3) · d (3)) … (40)
An example is shown.

この場合のステップS216−1では、ハッシュ演算部116b−1,116c−1(図8(A))が、第1実施形態と同様に、ハッシュ値
d(1)=F(X(1)) …(41)
d(2)=F(X(2)) …(42)
を生成して出力する。また、ハッシュ演算部216d−1が、任意元X(3)を入力として、ハッシュ値(第2任意元X(j)に応じて値が定まる整数)
d(3)=F(X(3)) …(43)
を生成して出力する。
In step S216-1 in this case, the hash calculators 116b-1 and 116c-1 (FIG. 8A) perform the hash value as in the first embodiment.
d (1) = F (X (1))… (41)
d (2) = F (X (2))… (42)
Is generated and output. Further, the hash calculation unit 216d-1 receives the arbitrary element X (3) as an input, and a hash value (an integer whose value is determined according to the second arbitrary element X (j))
d (3) = F (X (3))… (43)
Is generated and output.

共有元演算部216a−1−1(図8(A))は、ハッシュ値d(1)と、任意元X(2)=gr(2)∈G,X(3)=gr(3)∈Gと、秘密値a(1)と、公開値A(2)=ga(2)∈G,A(3)=ga(3)∈Gと、任意値r(1)∈Zとを入力とし、共有元
σ(1)=e(X(2)・A(2),X(3)・A(3))r(1)+a(1)・d(1)∈G …(44)
=e(gr(2)・ga(2),gr(3)・ga(3))r(1)+a(1)・d(1)
=e(g,g)(r(1)+a(1)・d(1))(r(2)+a(2))(r(3)+a(3)) (式(27)より)
=gT (r(1)+a(1)・d(1))(r(2)+a(2))(r(3)+a(3)) (gT=e(g,g)より)
を生成して出力する。
Shared element operation unit 216a-1-1 (to FIG. 8 (A)) is a hash value d (1), any source X (2) = g r ( 2) ∈G, X (3) = g r (3 ) ∈ G, secret value a (1), public value A (2) = ga (2) ∈ G, A (3) = ga (3) ∈ G, and arbitrary value r (1) ∈ Z q as an input and share element σ (1) = e (X (2) ・ A (2), X (3) ・ A (3)) r (1) + a (1) ・ d (1) ∈ G… (44)
= e (g r (2)・ g a (2) , g r (3)・ g a (3) ) r (1) + a (1) ・ d (1)
= e (g, g) (r (1) + a (1) ・ d (1)) (r (2) + a (2)) (r (3) + a (3)) (Formula (27) Than)
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2)) (r (3) + a (3)) (g T = e (g, g )Than)
Is generated and output.

共有元演算部216a−2−1は、ハッシュ値d(2)と、任意元X(2)=gr(2)∈G,X(3)=gr(3)∈Gと、秘密値a(1)と、公開値A(2)=ga(2)∈G,A(3)=ga(3)∈Gと、任意値r(1)∈Zとを入力とし、共有元
σ(2)=e(X(2)・A(2)d(2),X(3)・A(3))r(1)+a(1)∈G …(45)
=e(gr(2)・ga(2)・d(2),gr(3)・ga(3))r(1)+a(1)
=e(g,g)(r(1)+a(1))(r(2)+a(2)・d(2))(r(3)+a(3)) (式(27)より)
=gT (r(1)+a(1))(r(2)+a(2)・d(2))(r(3)+a(3)) (gT=e(g,g)より)
を生成して出力する。
The sharing element calculation unit 216a-2-1 uses the hash value d (2), the arbitrary element X (2) = gr (2) ∈ G, X (3) = gr (3) ∈ G, and the secret value a (1), public value A (2) = ga (2) ∈ G, A (3) = ga (3) ∈ G, and arbitrary value r (1) ∈ Z q Element σ (2) = e (X (2) ・ A (2) d (2) , X (3) ・ A (3)) r (1) + a (1) ∈G… (45)
= e (g r (2)・ g a (2) ・ d (2) , g r (3)・ g a (3) ) r (1) + a (1)
= e (g, g) (r (1) + a (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3)) (Formula (27) Than)
= g T (r (1) + a (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3)) (g T = e (g, g )Than)
Is generated and output.

共有元演算部216a−3−1は、ハッシュ値d(3)と、任意元X(2)=gr(2)∈G,X(3)=gr(3)∈Gと、秘密値a(1)と、公開値A(2)=ga(2)∈G,A(3)=ga(3)∈Gと、任意値r(1)∈Zとを入力とし、共有元
σ(3)=e(X(2)・A(2),X(3)・A(3)d(3))r(1)+a(1)∈G …(46)
=e(gr(2)・ga(2),gr(3)・ga(3)・d(3))r(1)+a(1)
=e(g,g)(r(1)+a(1))(r(2)+a(2))(r(3)+a(3)・d(3)) (式(27)より)
=gT (r(1)+a(1))(r(2)+a(2))(r(3)+a(3)・d(3)) (gT=e(g,g)より)
を生成して出力する。
The sharing element calculation unit 216a-3-1 includes a hash value d (3), an arbitrary element X (2) = gr (2) ∈ G, X (3) = gr (3) ∈ G, and a secret value a (1), public value A (2) = ga (2) ∈ G, A (3) = ga (3) ∈ G, and arbitrary value r (1) ∈ Z q Element σ (3) = e (X (2) ・ A (2), X (3) ・ A (3) d (3) ) r (1) + a (1) ∈G… (46)
= e (g r (2)・ g a (2) , g r (3)・ ga (3) ・ d (3) ) r (1) + a (1)
= e (g, g) (r (1) + a (1)) (r (2) + a (2)) (r (3) + a (3) ・ d (3)) (Formula (27) Than)
= g T (r (1) + a (1)) (r (2) + a (2)) (r (3) + a (3) ・ d (3)) (g T = e (g, g )Than)
Is generated and output.

共有元演算部216a−4−1は、ハッシュ値d(1),d(2),d(3)と、任意元X(2)=gr(2)∈G,X(3)=gr(3)∈Gと、秘密値a(1)と、公開値A(2)=ga(2)∈G,A(3)=ga(3)∈Gと、任意値r(1)∈Zとを入力とし、共有元
σ(4)=e(X(2)・A(2)d(2),X(3)・A(3)d(3))r(1)+a(1)・d(1)∈G …(47)
=e(gr(2)・ga(2)・d(2),gr(3)・ga(3)・d(3))r(1)+a(1)・d(1)
=e(g,g)(r(1)+a(1)・d(1))(r(2)+a(2)・d(2))(r(3)+a(3)・d(3)) (式(27)より)
=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))(r(3)+a(3)・d(3)) (gT=e(g,g)より)
を生成して出力する([ステップS216−1の例]の説明終わり)。
The sharing element calculation unit 216a-4-1 has the hash values d (1), d (2), d (3) and the arbitrary element X (2) = g r (2) εG, X (3) = g r (3) εG, secret value a (1), public value A (2) = ga (2) εG, A (3) = ga (3) εG, and arbitrary value r (1 ) ∈Z q as input, and share element σ (4) = e (X (2) ・ A (2) d (2) , X (3) ・ A (3) d (3) ) r (1) + a (1) ・ d (1) ∈G… (47)
= e (g r (2)・ g a (2) ・ d (2) , g r (3)・ g a (3) ・ d (3) ) r (1) + a (1) ・ d (1 )
= e (g, g) (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3) ・d (3)) (From equation (27))
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3) ・ d (3) ) (From g T = e (g, g))
Is generated and output (end of description of [Example of step S216-1]).

鍵生成部217−1(図6)は、少なくとも、共有元生成部216−1から出力された共有元σ(u)に基づいて値が定まる鍵Kを生成して出力する(ステップ図10(A)/S217−1)。本形態の例では、鍵生成部217−1に、共有元生成部216−1で生成された共有元σ(u)と、任意元生成部113−1で生成された任意元X(1)(ステップS113−1)と、入力部215−1に入力された任意元X(2),X(3)(ステップS115−1,S215−1)と、記憶部211−1から読み出した公開値A(1),A(2),A(3)、識別子ID(1),ID(2),ID(3),ID(prot)とが入力される。鍵生成部217−1は、これらのビット結合のハッシュ値を鍵
K=H(σ(1), σ(2), σ(3), σ(4), X(1), X(2), X(3), A(1), A(2), A(3), ID(1), ID(2), ID(3), ID(prot)) …(48)
として生成し、生成した鍵Kを出力する。
The key generation unit 217-1 (FIG. 6) generates and outputs a key K whose value is determined based on at least the sharing source σ (u) output from the sharing source generation unit 216-1 (Step FIG. 10 (FIG. 10). A) / S217-1). In the example of this embodiment, the key generation unit 217-1 includes the sharing source σ (u) generated by the sharing source generation unit 216-1 and the arbitrary element X (1) generated by the arbitrary element generation unit 113-1. (Step S113-1), arbitrary elements X (2) and X (3) (Steps S115-1 and S215-1) input to the input unit 215-1, and the public value read from the storage unit 211-1 A (1), A (2), A (3), identifier ID (1), ID (2), ID (3), and ID (prot) are input. The key generation unit 217-1 uses these bit combined hash values as keys.
K = H (σ (1), σ (2), σ (3), σ (4), X (1), X (2), X (3), A (1), A (2), A (3), ID (1), ID (2), ID (3), ID (prot))… (48)
And the generated key K is output.

鍵共有装置210−2(図6)の入力部215−2には、任意元X(1)=gr(1)∈Gと識別子ID(1)とが入力され(図10(B)/ステップS115−2)、任意元X(3)=gr(3)∈Gと識別子ID(3)とが入力される(ステップS215−2)。任意元X(1)=gr(2)∈Gと任意元X(3)=gr(3)∈Gは共有元生成部216−2に送られ、識別子ID(1),ID(3)は記憶部211−2に格納される。 Arbitrary element X (1) = gr (1) εG and identifier ID (1) are input to the input unit 215-2 of the key sharing apparatus 210-2 (FIG. 6) (FIG. 10B / In step S115-2, the arbitrary element X (3) = gr (3) εG and the identifier ID (3) are input (step S215-2). Arbitrary element X (1) = g r (2) ∈ G and arbitrary element X (3) = gr (3) ∈ G are sent to sharing element generation unit 216-2, and identifiers ID (1), ID (3 ) Is stored in the storage unit 211-2.

共有元生成部216−2には、入力部215−2から送られた任意元X(1)=gr(1)∈G,X(3)=gr(3)∈Gと、記憶部211−2から読み出された秘密値a(2)及び公開値A(1)=ga(2)∈G,A(3)=ga(3)∈Gと、任意値生成部112−2で生成(ステップS112−2)された任意値r(2)∈Zと任意元生成部113−1で生成(ステップS113−2)された任意元X(1)=gr(1)∈Gが入力される。共有元生成部216−2は、これらと巡回群Gの元を巡回群Gの元に写像する前述の関数eを用い、巡回群Gの元g W(u)∈G(u∈{1,...,U})を共有元σ(u)として生成して出力する(ステップS216−2)。本形態では、式(28)〜(31)を満たすg W(u)∈Gが、共有元σ(u)として生成される。以下に、s(u,1),s(u,2),s(u,3),t(u,1),t(u,2),t(u,3)∈Z及びUの設定例と、そのときのステップS216−2の処理とを例示する。 The sharing element generation unit 216-2 includes an arbitrary element X (1) = gr (1) εG, X (3) = gr (3) εG sent from the input unit 215-2, and a storage unit The secret value a (2) and the public value A (1) = ga (2) ∈ G, A (3) = ga (3) ∈ G read out from 211-2, and the arbitrary value generator 112- The arbitrary value r (2) εZ q generated in step 2 (step S112-2) and the arbitrary element X (1) generated in the arbitrary element generation unit 113-1 (step S113-2) = g r (1) ΕG is input. Shared source generation unit 216-2 uses the aforementioned function e mapping the original of the cyclic group G to the original cyclic group G T, based on g T W (u) ∈G T (u of the cyclic group G T .Epsilon. {1,..., U}) is generated and output as a sharing element σ (u) (step S216-2). In this embodiment, g T W (u) ∈G T satisfying the formula (28) - (31) is generated as a Pool sigma (u). Below, s (u, 1), s (u, 2), s (u, 3), t (u, 1), t (u, 2), t (u, 3) ∈Z q and U A setting example and the process of step S216-2 at that time will be exemplified.

[ステップS216−2の例]
本形態では、前述の式(32)〜(40)を満たす共有元σ(u)を生成する。
[Example of Step S216-2]
In this embodiment, a sharing element σ (u) that satisfies the above-described equations (32) to (40) is generated.

この場合のステップS216−2では、ハッシュ演算部116b−2,116c−2,216d−2(図8(B))が、ハッシュ演算部116b−1,116c−1,216d−1と同様に、ハッシュ値
d(1)=F(X(1)) …(49)
d(2)=F(X(2)) …(50)
d(3)=F(X(3)) …(51)
を生成して出力する。
In step S216-2 in this case, the hash calculation units 116b-2, 116c-2, 216d-2 (FIG. 8B) are similar to the hash calculation units 116b-1, 116c-1, and 216d-1, respectively. Hash value
d (1) = F (X (1))… (49)
d (2) = F (X (2))… (50)
d (3) = F (X (3))… (51)
Is generated and output.

共有元演算部216a−1−1(図8(B))は、ハッシュ値d(1)と、任意元X(1)=gr(2)∈G,X(3)=gr(3)∈Gと、秘密値a(2)と、公開値A(1)=ga(1)∈G,A(3)=ga(3)∈Gと、任意値r(2)∈Zとを入力とし、共有元
σ(1)=e(X(3)・A(3),X(1)・A(1)d(1))r(2)+a(2)∈G …(52)
=e(gr(3)・ga(3),gr(1)・ga(1)・d(1))r(2)+a(2)
=gT (r(1)+a(1)・d(1))(r(2)+a(2))(r(3)+a(3))
を生成して出力する。
Shared element operation unit 216a-1-1 (FIG. 8 (B)) is a hash value d (1), any source X (1) = g r ( 2) ∈G, X (3) = g r (3 ) ΕG, secret value a (2), public value A (1) = ga (1) εG, A (3) = ga (3) εG, and arbitrary value r (2) εZ q as input and share source σ (1) = e (X (3) ・ A (3), X (1) ・ A (1) d (1) ) r (2) + a (2) ∈G … (52)
= e (g r (3)・ g a (3) , g r (1)・ g a (1) ・ d (1) ) r (2) + a (2)
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2)) (r (3) + a (3))
Is generated and output.

共有元演算部216a−2−2は、ハッシュ値d(2)と、任意元X(1)=gr(2)∈G,X(3)=gr(3)∈Gと、秘密値a(2)と、公開値A(1)=ga(1)∈G,A(3)=ga(3)∈Gと、任意値r(2)∈Zとを入力とし、共有元
σ(2)=e(X(3)・A(3),X(1)・A(1))r(2)+a(2)・d(2)∈G …(53)
=e(gr(3)・ga(3),gr(1)・ga(1))r(2)+a(2)・d(2)
=gT (r(1)+a(1))(r(2)+a(2)・d(2))(r(3)+a(3))
を生成して出力する。
The sharing element calculation unit 216a-2-2 uses the hash value d (2), the arbitrary element X (1) = gr (2) ∈ G, X (3) = gr (3) ∈ G, and the secret value a (2), public value A (1) = ga (1) ∈ G, A (3) = ga (3) ∈ G, and arbitrary value r (2) ∈ Z q Element σ (2) = e (X (3) ・ A (3), X (1) ・ A (1)) r (2) + a (2) ・ d (2) ∈G… (53)
= e (g r (3)・ g a (3) , g r (1)・ g a (1) ) r (2) + a (2) ・ d (2)
= g T (r (1) + a (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3))
Is generated and output.

共有元演算部216a−3−2は、ハッシュ値d(3)と、任意元X(1)=gr(2)∈G,X(3)=gr(3)∈Gと、秘密値a(2)と、公開値A(1)=ga(1)∈G,A(3)=ga(3)∈Gと、任意値r(2)∈Zとを入力とし、共有元
σ(3)=e(X(3)・A(3)d(3),X(1)・A(1))r(2)+a(2)∈G …(54)
=e(gr(3)・ga(3)・d(3),gr(1)・ga(1))r(2)+a(2)
=gT (r(1)+a(1))(r(2)+a(2))(r(3)+a(3)・d(3))
を生成して出力する。
The sharing element calculation unit 216a-3-2 includes a hash value d (3), an arbitrary element X (1) = gr (2) ∈ G, X (3) = gr (3) ∈ G, and a secret value a (2), public value A (1) = ga (1) ∈ G, A (3) = ga (3) ∈ G, and arbitrary value r (2) ∈ Z q Element σ (3) = e (X (3) ・ A (3) d (3) , X (1) ・ A (1)) r (2) + a (2) ∈G… (54)
= e (g r (3)・ g a (3) ・ d (3) , g r (1)・ g a (1) ) r (2) + a (2)
= g T (r (1) + a (1)) (r (2) + a (2)) (r (3) + a (3) ・ d (3))
Is generated and output.

共有元演算部216a−4−2は、ハッシュ値d(1),d(2),d(3)と、任意元X(1)=gr(2)∈G,X(3)=gr(3)∈Gと、秘密値a(2)と、公開値A(1)=ga(1)∈G,A(3)=ga(3)∈Gと、任意値r(2)∈Zとを入力とし、共有元
σ(4)=e(X(3)・A(3)d(3),X(1)・A(1)d(1))r(2)+a(2)・d(2)∈G …(55)
=e(gr(3)・ga(3)・d(3),gr(1)・ga(1)・d(1))r(2)+a(2)・d(2)
=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))(r(3)+a(3)・d(3))
を生成して出力する([ステップS216−2の例]の説明終わり)。
The sharing element calculation unit 216a-4-2 has the hash values d (1), d (2), d (3) and the arbitrary element X (1) = g r (2) εG, X (3) = g r (3) εG, secret value a (2), public value A (1) = ga (1) εG, A (3) = ga (3) εG, and arbitrary value r (2 ) ∈Z q as input, and share element σ (4) = e (X (3) ・ A (3) d (3) , X (1) ・ A (1) d (1) ) r (2) + a (2) ・ d (2) ∈G… (55)
= e (g r (3)・ g a (3) ・ d (3) , g r (1)・ g a (1) ・ d (1) ) r (2) + a (2) ・ d (2 )
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3) ・ d (3) )
Is generated and output (end of description of [Example of step S216-2]).

鍵生成部217−2(図6)は、少なくとも、共有元生成部216−2から出力された共有元σ(u)に基づいて値が定まる鍵Kを生成して出力する(ステップ図10(B)/S217−2)。本形態の例では、鍵生成部217−2に、共有元生成部216−2で生成された共有元σ(u)と、任意元生成部113−2で生成された任意元X(2)(ステップS113−2)と、入力部215−2に入力された任意元X(1),X(3)(ステップS115−2,S215−2)と、記憶部211−2から読み出した公開値A(1),A(2),A(3)、識別子ID(1),ID(2),ID(3),ID(prot)とが入力される。鍵生成部217−2は、これらのビット結合のハッシュ値を鍵
K=H(σ(1), σ(2), σ(3), σ(4), X(1), X(2), X(3), A(1), A(2), A(3), ID(1), ID(2), ID(3), ID(prot)) …(56)
として生成し、生成した鍵Kを出力する。
The key generation unit 217-2 (FIG. 6) generates and outputs a key K whose value is determined based on at least the sharing source σ (u) output from the sharing source generation unit 216-2 (Step FIG. 10 (FIG. 10). B) / S217-2). In the example of this embodiment, the key generation unit 217-2 includes the sharing source σ (u) generated by the sharing source generation unit 216-2 and the arbitrary element X (2) generated by the arbitrary element generation unit 113-2. (Step S113-2), arbitrary elements X (1) and X (3) (Steps S115-2 and S215-2) input to the input unit 215-2, and the public value read from the storage unit 211-2 A (1), A (2), A (3), identifier ID (1), ID (2), ID (3), and ID (prot) are input. The key generation unit 217-2 uses the hash value of these bit combinations as the key.
K = H (σ (1), σ (2), σ (3), σ (4), X (1), X (2), X (3), A (1), A (2), A (3), ID (1), ID (2), ID (3), ID (prot))… (56)
And the generated key K is output.

鍵共有装置210−2(図7)の入力部215−3には、任意元X(1)=gr(1)∈Gと識別子ID(1)とが入力され(図11/ステップS215a−3)、任意元X(2)=gr(2)∈Gと識別子ID(2)とが入力される(ステップS215b−3)。任意元X(1)=gr(2)∈Gと任意元X(2)=gr(2)∈Gは共有元生成部216−3に送られ、識別子ID(1),ID(2)は記憶部211−3に格納される。 Arbitrary element X (1) = gr (1) εG and identifier ID (1) are input to the input unit 215-3 of the key sharing apparatus 210-2 (FIG. 7) (FIG. 11 / step S215a−). 3) Arbitrary element X (2) = gr (2) εG and identifier ID (2) are input (step S215b-3). Arbitrary element X (1) = gr (2) ∈ G and arbitrary element X (2) = gr (2) ∈ G are sent to sharing element generation unit 216-3, and identifiers ID (1), ID (2 ) Is stored in the storage unit 211-3.

共有元生成部216−3には、入力部215−3から送られた任意元X(1)=gr(1)∈G,X(2)=gr(2)∈Gと、記憶部211−3から読み出された秘密値a(3)及び公開値A(1)=ga(2)∈G,A(2)=ga(2)∈Gと、任意値生成部212−3で生成(ステップS212−3)された任意値r(3)∈Zと、任意元生成部213−3で生成(ステップS213−3)された任意元X(3)=gr(3)∈Gが入力される。共有元生成部216−3は、これらと巡回群Gの元を巡回群Gの元に写像する前述の関数eを用い、巡回群Gの元g W(u)∈G(u∈{1,...,U})を共有元σ(u)として生成して出力する(ステップS216−3)。本形態では、式(28)〜(31)を満たすg W(u)∈Gが、共有元σ(u)として生成される。以下に、s(u,1),s(u,2),s(u,3),t(u,1),t(u,2),t(u,3)∈Z及びUの設定例と、そのときのステップS216−3の処理とを例示する。 The sharing element generation unit 216-3 includes an arbitrary element X (1) = gr (1) εG, X (2) = gr (2) εG sent from the input unit 215-3, and a storage unit The secret value a (3) read from 211-3 and the public value A (1) = ga (2) εG, A (2) = ga (2) εG, and the arbitrary value generator 212− The arbitrary value r (3) εZ q generated in step 3 (step S212-3) and the arbitrary element X (3) generated in step S213-3 (step S213-3) = g r (3 ) ΕG is input. Shared source generation unit 216-3 uses the aforementioned function e mapping the original of the cyclic group G to the original cyclic group G T, based on g T W (u) ∈G T (u of the cyclic group G T Ε {1,..., U}) is generated and output as a sharing element σ (u) (step S216-3). In this embodiment, g T W (u) ∈G T satisfying the formula (28) - (31) is generated as a Pool sigma (u). Below, s (u, 1), s (u, 2), s (u, 3), t (u, 1), t (u, 2), t (u, 3) ∈Z q and U A setting example and the process of step S216-3 at that time will be exemplified.

[ステップS216−3の例]
本形態では、前述の式(32)〜(40)を満たす共有元σ(u)を生成する。
[Example of Step S216-3]
In this embodiment, a sharing element σ (u) that satisfies the above-described equations (32) to (40) is generated.

この場合のステップS216−3では、ハッシュ演算部216b−3,216c−3,216d−3(図9)が、ハッシュ演算部116b−1,116c−1,216d−1と同様に、ハッシュ値
d(1)=F(X(1)) …(57)
d(2)=F(X(2)) …(58)
d(3)=F(X(3)) …(59)
を生成して出力する。
In step S216-3 in this case, the hash calculation units 216b-3, 216c-3, and 216d-3 (FIG. 9) perform the hash value similarly to the hash calculation units 116b-1, 116c-1, and 216d-1.
d (1) = F (X (1))… (57)
d (2) = F (X (2))… (58)
d (3) = F (X (3))… (59)
Is generated and output.

共有元演算部216a−1−3(図9)は、ハッシュ値d(1)と、任意元X(1)=gr(2)∈G,X(2)=gr(2)∈Gと、秘密値a(3)と、公開値A(1)=ga(1)∈G,A(2)=ga(2)∈Gと、任意値r(3)∈Zとを入力とし、共有元
σ(1)=e(X(1)・A(1)d(1),X(2)・A(2))r(3)+a(3)∈G …(60)
=e(gr(1)・ga(1)・d(1),gr(2)・ga(2))r(3)+a(3)
=gT (r(1)+a(1)・d(1))(r(2)+a(2))(r(3)+a(3))
を生成して出力する。
The sharing element calculation unit 216a-1-3 (FIG. 9) uses the hash value d (1) and the arbitrary element X (1) = gr (2) εG, X (2) = gr (2) εG. And a secret value a (3), a public value A (1) = ga (1) εG, A (2) = ga (2) εG, and an arbitrary value r (3) εZ q Input σ (1) = e (X (1) ・ A (1) d (1) , X (2) ・ A (2)) r (3) + a (3) ∈G… (60 )
= e (g r (1)・ g a (1) ・ d (1) , g r (2)・ g a (2) ) r (3) + a (3)
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2)) (r (3) + a (3))
Is generated and output.

共有元演算部216a−2−3は、ハッシュ値d(2)と、任意元X(1)=gr(2)∈G,X(2)=gr(2)∈Gと、秘密値a(3)と、公開値A(1)=ga(1)∈G,A(2)=ga(2)∈Gと、任意値r(3)∈Zとを入力とし、共有元
σ(2)=e(X(1)・A(1),X(2)・A(2)d(2))r(3)+a(3)∈G …(61)
=e(gr(1)・ga(1),gr(2)・ga(2)・d(2))r(3)+a(3)
=gT (r(1)+a(1))(r(2)+a(2)・d(2))(r(3)+a(3))
を生成して出力する。
The sharing element calculation unit 216a-2-3 uses the hash value d (2), the arbitrary element X (1) = gr (2) ∈ G, X (2) = gr (2) ∈ G, and the secret value a (3), public value A (1) = ga (1) ∈ G, A (2) = ga (2) ∈ G, and arbitrary value r (3) ∈ Z q Element σ (2) = e (X (1) ・ A (1), X (2) ・ A (2) d (2) ) r (3) + a (3) ∈G… (61)
= e (g r (1)・ g a (1) , g r (2)・ g a (2) ・ d (2) ) r (3) + a (3)
= g T (r (1) + a (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3))
Is generated and output.

共有元演算部216a−3−3は、ハッシュ値d(3)と、任意元X(1)=gr(2)∈G,X(2)=gr(2)∈Gと、秘密値a(3)と、公開値A(1)=ga(1)∈G,A(2)=ga(2)∈Gと、任意値r(3)∈Zとを入力とし、共有元
σ(3)=e(X(1)・A(1),X(2)・A(2))r(3)+a(3)・d(3)∈G …(62)
=e(gr(1)・ga(1),gr(2)・ga(2))r(3)+a(3)・d(3)
=gT (r(1)+a(1))(r(2)+a(2))(r(3)+a(3)・d(3))
を生成して出力する。
The sharing element calculation unit 216a-3-3 includes the hash value d (3), the arbitrary element X (1) = gr (2) ∈ G, X (2) = gr (2) ∈ G, and the secret value a (3), public value A (1) = ga (1) ∈ G, A (2) = ga (2) ∈ G, and arbitrary value r (3) ∈ Z q Element σ (3) = e (X (1) ・ A (1), X (2) ・ A (2)) r (3) + a (3) ・ d (3) ∈G… (62)
= e (g r (1)・ g a (1) , g r (2)・ g a (2) ) r (3) + a (3) ・ d (3)
= g T (r (1) + a (1)) (r (2) + a (2)) (r (3) + a (3) ・ d (3))
Is generated and output.

共有元演算部216a−4−3は、ハッシュ値d(1),d(2),d(3)と、任意元X(1)=gr(2)∈G,X(2)=gr(2)∈Gと、秘密値a(3)と、公開値A(1)=ga(1)∈G,A(2)=ga(2)∈Gと、任意値r(3)∈Zとを入力とし、共有元
σ(4)=e(X(1)・A(1)d(1),X(2)・A(2)d(2))r(3)+a(3)・d(3)∈G …(63)
=e(gr(1)・ga(1)・d(1),gr(2)・ga(2)・d(2))r(3)+a(3)・d(3)
=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))(r(3)+a(3)・d(3))
を生成して出力する([ステップS216−3の例]の説明終わり)。
The sharing element calculation unit 216a-4-3 has the hash values d (1), d (2), d (3) and the arbitrary element X (1) = g r (2) εG, X (2) = g r (2) ∈ G, secret value a (3), public value A (1) = ga (1) ∈ G, A (2) = ga (2) ∈ G, and arbitrary value r (3 ) ∈Z q as input and share element σ (4) = e (X (1) ・ A (1) d (1) , X (2) ・ A (2) d (2) ) r (3) + a (3) ・ d (3) ∈G… (63)
= e (g r (1)・ g a (1) ・ d (1) , g r (2)・ g a (2) ・ d (2) ) r (3) + a (3) ・ d (3 )
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3) ・ d (3) )
Is generated and output (end of description of [Example of step S216-3]).

鍵生成部217−3(図7)は、少なくとも、共有元生成部216−3から出力された共有元σ(u)に基づいて値が定まる鍵Kを生成して出力する(ステップ図11/S217−3)。   The key generation unit 217-3 (FIG. 7) generates and outputs a key K whose value is determined based on at least the sharing source σ (u) output from the sharing source generation unit 216-3 (Step FIG. 11 / S217-3).

本形態の例では、鍵生成部217−3に、共有元生成部216−3で生成された共有元σ(u)と、任意元生成部213−3で生成された任意元X(3)(ステップS213−3)と、入力部215−3に入力された任意元X(1),X(2)(ステップS215a−3,S215b−3)と、記憶部211−3から読み出した公開値A(1),A(2),A(3)、識別子ID(1),ID(2),ID(3),ID(prot)とが入力される。鍵生成部217−3は、これらのビット結合のハッシュ値を鍵
K=H(σ(1), σ(2), σ(3), σ(4), X(1), X(2), X(3), A(1), A(2), A(3), ID(1), ID(2), ID(3), ID(prot)) …(64)
として生成し、生成した鍵Kを出力する。
In the example of this embodiment, the key generation unit 217-3 includes the sharing element σ (u) generated by the sharing element generation unit 216-3 and the arbitrary element X (3) generated by the arbitrary element generation unit 213-3. (Step S213-3), arbitrary elements X (1) and X (2) (steps S215a-3 and S215b-3) input to the input unit 215-3, and the public value read from the storage unit 211-3 A (1), A (2), A (3), identifier ID (1), ID (2), ID (3), and ID (prot) are input. The key generation unit 217-3 uses the hash value of these bit combinations as the key.
K = H (σ (1), σ (2), σ (3), σ (4), X (1), X (2), X (3), A (1), A (2), A (3), ID (1), ID (2), ID (3), ID (prot))… (64)
And the generated key K is output.

<本形態の特徴>
式(44)〜(47)(52)〜(55)(60)〜(63)の変形結果を見ればわかるように、鍵共有装置216−1,2,3でそれぞれ生成される共有元σ(1)は同一となり、鍵共有装置216−1,2,3でそれぞれ生成される共有元σ(2)は同一となり、鍵共有装置216−1,2,3でそれぞれ生成される共有元σ(3)は同一となり、鍵共有装置216−1,2,3でそれぞれ生成される共有元σ(4)は同一となる。そして、式(48)(56)(64)を比べれば分かるように、鍵共有装置216−1,2,3でそれぞれ生成される鍵Kは同一となる。
<Features of this embodiment>
As can be seen from the transformation results of the equations (44) to (47) (52) to (55) (60) to (63), the sharing elements σ generated by the key sharing devices 216-1, 2, and 3, respectively. (1) is the same, and the sharing source σ (2) generated by the key sharing devices 216-1, 2, 3 is the same, and the sharing source σ generated by the key sharing devices 216-1, 2, 3, respectively. (3) is the same, and the sharing source σ (4) generated by each of the key sharing apparatuses 216-1, 2, 3 is the same. As can be seen by comparing the equations (48), (56), and (64), the keys K generated by the key sharing devices 216-1, 2, and 3 are the same.

ここで、鍵共有装置216−1が、それぞれ式(44)〜(47)の共有元σ(1),σ(2),σ(3),σ(4)を計算できるのは、鍵共有装置216−1が自らの秘密値a(1)と任意値r(1)とを知っているからである。鍵共有装置216−2の秘密値a(2)を知っている攻撃者は、鍵共有装置216−1に成り済まして任意値r(1)や任意元X(1)を生成することはできても、秘密値a(1)を知らないため、式(44)〜(47)の共有元σ(1),σ(2),σ(3),σ(4)を計算できない。同様なことは、鍵共有装置216−2,3についてもいえる。よって、本形態の方式に対して攻撃者がKCI攻撃を行うことは困難である。   Here, the key sharing apparatus 216-1 can calculate the sharing elements σ (1), σ (2), σ (3), and σ (4) of the equations (44) to (47), respectively. This is because the device 216-1 knows its own secret value a (1) and arbitrary value r (1). An attacker who knows the secret value a (2) of the key sharing device 216-2 can impersonate the key sharing device 216-1 and generate the arbitrary value r (1) and the arbitrary element X (1). However, since the secret value a (1) is not known, the sharing elements σ (1), σ (2), σ (3), and σ (4) in the equations (44) to (47) cannot be calculated. The same is true for the key sharing devices 216-2 and 216. Therefore, it is difficult for an attacker to perform a KCI attack on the system of this embodiment.

また、本形態では、任意元X(1),X(2),X(3)に応じて値が定まる整数d(1),d(2),d(3)を生成し、これらを用いて共有元σ(1),σ(2),σ(3),σ(4)を生成した。そのため、本形態では、高い安全性を確保できる。   In this embodiment, integers d (1), d (2), and d (3) whose values are determined according to arbitrary elements X (1), X (2), and X (3) are generated and used. The sharing elements σ (1), σ (2), σ (3), and σ (4) are generated. Therefore, in this embodiment, high safety can be ensured.

また、本形態では、複数の共有元σ(1),σ(2),σ(3),σ(4)を生成することとしたため、高い安全性を確保できる。   In this embodiment, since a plurality of sharing sources σ (1), σ (2), σ (3), and σ (4) are generated, high safety can be ensured.

〔第2実施形態の変形例1〕
第2実施形態の変形例1は、ステップS216−1,2,3の共有元σ(u)の生成処理の変形例である。第2実施形態の変形例1では、式(33)〜(40)の代わりに、
s(1,1)=1, t(1,1)=1, s(1,2)=1, t(1,2)=d(2), s(1,3)=1, t(1,3)=d(3) …(64')
s(2,1)=1, t(2,1)=d(1), s(2,2)=1, t(2,2)=1, s(2,3)=1, t(2,3)=d(3) …(65)
s(3,1)=1, t(3,1)=d(1), s(3,2)=1, t(3,2)=d(2), s(3,3)=1, t(3,3)=1 …(66)
s(4,1)=1, t(4,1)=1, s(4,2)=1, t(4,2)=1, s(4,3)=1, t(4,3)=1 …(67)
、すなわち、
σ(1)=gT (r(1)+a(1))(r(2)+a(2)・d(2))(r(3)+a(3)・d(3)) …(68)
σ(2)=gT (r(1)+a(1)・d(1))(r(2)+a(2))(r(3)+a(3)・d(3)) …(69)
σ(3)=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))(r(3)+a(3)) …(70)
σ(4)=gT (r(1)+a(1))(r(2)+a(2))(r(3)+a(3)) …(71)
を満たす共有元σ(u)を生成する。
[Modification 1 of Second Embodiment]
Modification 1 of the second embodiment is a modification of the generation process of the sharing source σ (u) in Steps S216-1, 2, and 3. In the modification 1 of 2nd Embodiment, instead of Formula (33)-(40),
s (1,1) = 1, t (1,1) = 1, s (1,2) = 1, t (1,2) = d (2), s (1,3) = 1, t ( 1,3) = d (3)… (64 ')
s (2,1) = 1, t (2,1) = d (1), s (2,2) = 1, t (2,2) = 1, s (2,3) = 1, t ( 2,3) = d (3)… (65)
s (3,1) = 1, t (3,1) = d (1), s (3,2) = 1, t (3,2) = d (2), s (3,3) = 1 , t (3,3) = 1… (66)
s (4,1) = 1, t (4,1) = 1, s (4,2) = 1, t (4,2) = 1, s (4,3) = 1, t (4,3 ) = 1… (67)
That is,
σ (1) = g T (r (1) + a (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3) ・ d (3)) … (68)
σ (2) = g T (r (1) + a (1) · d (1)) (r (2) + a (2)) (r (3) + a (3) · d (3)) … (69)
σ (3) = g T (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3)) … (70)
σ (4) = g T (r (1) + a (1)) (r (2) + a (2)) (r (3) + a (3)) … (71)
A sharing element σ (u) that satisfies is generated.

この場合、共有元演算部216a−1−1〜216a−4−1(図8(A))は、式(44)〜(47)の代わりに、共有元
σ(1)=e(X(2)・A(2)d(2),X(3)・A(3)d(3))r(1)+a(1)∈G …(72)
=gT (r(1)+a(1))(r(2)+a(2)・d(2))(r(3)+a(3)・d(3))
σ(2)=e(X(2)・A(2),X(3)・A(3)d(3))r(1)+a(1)・d(1)∈G …(73)
=gT (r(1)+a(1)・d(1))(r(2)+a(2))(r(3)+a(3)・d(3))
σ(3)=e(X(2)・A(2)d(2),X(3)・A(3))r(1)+a(1)・d(1)∈G …(74)
=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))(r(3)+a(3))
σ(4)=e(X(2)・A(2),X(3)・A(3))r(1)+a(1)∈G …(75)
=gT (r(1)+a(1))(r(2)+a(2))(r(3)+a(3))
を生成して出力する。
In this case, the sharing element computing units 216a-1-1 to 216a-4-1 (FIG. 8A) replace the expressions (44) to (47) with the sharing element σ (1) = e (X ( 2) ・ A (2) d (2) , X (3) ・ A (3) d (3) ) r (1) + a (1) ∈G… (72)
= g T (r (1) + a (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3) ・ d (3))
σ (2) = e (X (2) ・ A (2), X (3) ・ A (3) d (3) ) r (1) + a (1) ・ d (1) ∈G… (73 )
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2)) (r (3) + a (3) ・ d (3))
σ (3) = e (X (2) ・ A (2) d (2) , X (3) ・ A (3)) r (1) + a (1) ・ d (1) ∈G… (74 )
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3))
σ (4) = e (X (2) ・ A (2), X (3) ・ A (3)) r (1) + a (1) ∈G… (75)
= g T (r (1) + a (1)) (r (2) + a (2)) (r (3) + a (3))
Is generated and output.

また、共有元演算部216a−1−2〜216a−4−2(図8(B))が、式(52)〜(55)の代わりに、共有元
σ(1)=e(X(3)・A(3)d(3),X(1)・A(1))r(2)+a(2)・d(2)∈G …(76)
=gT (r(1)+a(1))(r(2)+a(2)・d(2))(r(3)+a(3)・d(3))
σ(2)=eT(X(3)・A(3)d(3),X(1)・A(1)d(1))r(2)+a(2)∈G …(77)
=gT (r(1)+a(1)・d(1))(r(2)+a(2))(r(3)+a(3)・d(3))
σ(3)=e(X(3)・A(3),X(1)・A(1)・d(1))r(2)+a(2)・d(2)∈G …(78)
=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))(r(3)+a(3))
σ(4)=e(X(3)・A(3),X(1)・A(1))r(2)+a(2)∈G …(79)
=gT (r(1)+a(1))(r(2)+a(2))(r(3)+a(3))
を生成して出力する。
Further, the sharing element calculation units 216a-1-2 to 216a-4-2 (FIG. 8B) replace the expressions (52) to (55) with the sharing element σ (1) = e (X (3 ) ・ A (3) d (3) , X (1) ・ A (1)) r (2) + a (2) ・ d (2) ∈G… (76)
= g T (r (1) + a (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3) ・ d (3))
σ (2) = e T (X (3) ・ A (3) d (3) , X (1) ・ A (1) d (1) ) r (2) + a (2) ∈G… (77 )
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2)) (r (3) + a (3) ・ d (3))
σ (3) = e (X (3) ・ A (3), X (1) ・ A (1) ・ d (1) ) r (2) + a (2) ・ d (2) ∈G… ( 78)
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3))
σ (4) = e (X (3) ・ A (3), X (1) ・ A (1)) r (2) + a (2) ∈G… (79)
= g T (r (1) + a (1)) (r (2) + a (2)) (r (3) + a (3))
Is generated and output.

また、共有元演算部216a−1−3〜216a−4−3(図9)が、式(60)〜(63)の代わりに、共有元
σ(1)=e(X(1)・A(1),X(2)・A(2)d(2))r(3)+a(3)・d(3)∈G …(80)
=gT (r(1)+a(1))(r(2)+a(2)・d(2))(r(3)+a(3)・d(3))
σ(2)=e(X(1)・A(1)d(1),X(2)・A(2))r(3)+a(3)・d(3)∈G …(81)
=gT (r(1)+a(1)・d(1))(r(2)+a(2))(r(3)+a(3)・d(3))
σ(3)=e(X(1)・A(1)・d(1),X(2)・A(2)d(2))r(3)+a(3)∈G …(82)
=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))(r(3)+a(3))
σ(4)=e(X(1)・A(1),X(2)・A(2))r(3)+a(3)∈G …(83)
=gT (r(1)+a(1))(r(2)+a(2))(r(3)+a(3))
を生成して出力する。
In addition, the sharing element calculation units 216a-1-3 to 216a-4-3 (FIG. 9) replace the expressions (60) to (63) with the sharing element σ (1) = e (X (1) · A (1), X (2) ・ A (2) d (2) ) r (3) + a (3) ・ d (3) ∈G… (80)
= g T (r (1) + a (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3) ・ d (3))
σ (2) = e (X (1) ・ A (1) d (1) , X (2) ・ A (2)) r (3) + a (3) ・ d (3) ∈G… (81 )
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2)) (r (3) + a (3) ・ d (3))
σ (3) = e (X (1) ・ A (1) ・ d (1) , X (2) ・ A (2) d (2) ) r (3) + a (3) ∈G… (82 )
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3))
σ (4) = e (X (1) ・ A (1), X (2) ・ A (2)) r (3) + a (3) ∈G… (83)
= g T (r (1) + a (1)) (r (2) + a (2)) (r (3) + a (3))
Is generated and output.

また、例えば、U=1として、式(33)〜(40)の代わりに、
σ(1)=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))(r(3)+a(3)・d(3))
としてもよい。その他、U=2,3やU≧5の構成、ハッシュ値d(1)〜d(3)の一部のみを用いて共有元σ(u)を生成する構成、複数の任意元X(1),X(2),X(3)に依存するハッシュ値を用いて共有元σ(u)を生成する構成、ハッシュ値d(1)〜d(3)を用いずに共有元σ(u)を生成する構成なども可能である。また、d(p)は、ハッシュ値に限定されず、任意元X(1)及び/又は任意元X(2)及び/又は任意元X(3)に応じて値が定まる整数であればよい。例えば、任意元X(1)や任意元X(2)や任意元X(3)の一部のビットをd(p)としてもよいし、これらの任意元の一部をビット結合したビット列の一部をd(p)としてもよい。また、
r(i)=F’(r’(i),a(i))
としてもよい。なお、F’は、ハッシュ関数F’:{0,1}*→Zであり、r’(i)は乱数である。r(j)についても同様な変形を行ってもよい。これによってU=1の場合でも高い安全性を確保できる。その他、本発明の趣旨を遺脱しない範囲で共有元σ(u)の生成方法を変形可能である。
Also, for example, assuming U = 1, instead of formulas (33) to (40),
σ (1) = g T (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) (r (3) + a (3) ・d (3))
It is good. In addition, a configuration in which U = 2, 3 and U ≧ 5, a configuration in which the sharing element σ (u) is generated using only a part of the hash values d (1) to d (3), and a plurality of arbitrary elements X (1 ), X (2), X (3) is used to generate the sharing element σ (u) using a hash value that depends on the sharing value σ (u) without using the hash values d (1) to d (3). ) Is also possible. Further, d (p) is not limited to the hash value, and may be an integer whose value is determined according to the arbitrary element X (1) and / or the arbitrary element X (2) and / or the arbitrary element X (3). . For example, some bits of the arbitrary element X (1), arbitrary element X (2), or arbitrary element X (3) may be d (p), or a bit string obtained by bit-combining a part of these arbitrary elements. A part may be d (p). Also,
r (i) = F ′ (r ′ (i), a (i))
It is good. Note that F ′ is a hash function F ′: {0, 1} * → Z q , and r ′ (i) is a random number. A similar modification may be performed for r (j). Accordingly, high safety can be ensured even when U = 1. In addition, the method for generating the sharing source σ (u) can be modified without departing from the spirit of the present invention.

〔第2実施形態の変形例2〕
第1実施形態の変形例2と同様、第2実施形態でも、鍵Kは共有元σ(u)に基づいて値が定まればよく、第1実施形態の変形例2で述べたように鍵Kの生成方法を変形してもよい。
[Modification 2 of the second embodiment]
Similar to the second modification of the first embodiment, in the second embodiment, the key K only needs to be determined based on the sharing element σ (u). As described in the second modification of the first embodiment, the key K The method for generating K may be modified.

〔第3実施形態〕
次に、本発明の第3実施形態を説明する。第3実施形態では、IDベース暗号方式を応用した形態であり、P=2であり、W(u)=w(u,1)・w(u,2)・MSKであり、w(u,p)はa(p)とr(p)との線形和である。第1鍵共有装置の記憶部が、少なくとも、元Z(i)=ga(i)・MSK∈Gと、公開値A(j)=ga(j)∈Gと、巡回群Gの元MPK=gMSK∈Gとを格納し、第1鍵共有装置の共有元生成部が、少なくとも、元Z(i)=ga(i)・MSK∈Gと、公開値A(j)=ga(j)∈Gと、任意値r(i)と、任意元X(j)=gr(j)∈Gと、MPK=gMSK∈Gと、巡回群Gの2つの元を巡回群Gの1つの元に写像する双線形関数である関数eとを用い、巡回群Gの元g W(u)=e(g,g)W(u)∈Gを共有元σ(u)として生成する。また、第2鍵共有装置の記憶部が、少なくとも、元Z(j)=ga(j)・MSK∈Gと、公開値A(i)=ga(i)∈Gと、巡回群Gの元MPK=gMSK∈Gとを格納し、第2鍵共有装置の共有元生成部が、少なくとも、元Z(j)=ga(j)・MSK∈Gと、公開値A(i)=ga(i)∈Gと、任意値r(j)と、任意元X(i)=gr(i)∈Gと、MPK=gMSK∈Gと、巡回群Gの2つの元を巡回群Gの1つの元に写像する双線形関数である関数eとを用い、巡回群Gの元g W(u)=e(g,g)W(u)∈Gを共有元σ(u)として生成する。
[Third Embodiment]
Next, a third embodiment of the present invention will be described. In the third embodiment, an ID-based encryption scheme is applied, P = 2, W (u) = w (u, 1) · w (u, 2) · MSK, and w (u, p) is a linear sum of a (p) and r (p). The storage unit of the first key sharing apparatus includes at least an element Z (i) = ga (i) · MSK ∈G, a public value A (j) = ga (j) ∈G, and an element of the cyclic group G MPK = g MSK εG is stored, and the sharing source generation unit of the first key sharing device at least generates the element Z (i) = ga (i) · MSK εG and the public value A (j) = g. a (j) ∈ G, arbitrary value r (i), arbitrary element X (j) = g r (j) ∈ G, MPK = g MSK ∈ G, and two elements of cyclic group G are cyclic groups using the function e is bilinear function that maps one original G T, based on g T W of the cyclic group G T (u) = e ( g, g) W (u) ∈G T shared source σ It is generated as (u). In addition, the storage unit of the second key sharing apparatus includes at least an element Z (j) = ga (j) · MSK εG, a public value A (i) = ga (i) εG, and a cyclic group G. Element MPK = g MSK εG, and the shared key generation unit of the second key sharing device at least provides the element Z (j) = ga (j) · MSK εG and the public value A (i). = G a (i) ∈ G, arbitrary value r (j), arbitrary element X (i) = g r (i) ∈ G, MPK = g MSK ∈ G, and two elements of cyclic group G using the function e is bilinear function that maps one original cyclic group G T, sharing the original g T W (u) = e (g, g) W (u) ∈G T of the cyclic group G T Generated as element σ (u).

<構成>
図12,13は、第3実施形態の鍵共有システム300の構成を説明するためのブロック図である。なお、第1実施形態と共通する部分については、第1実施形態と同じ符号を用いて説明を簡略化する。
<Configuration>
12 and 13 are block diagrams for explaining the configuration of the key sharing system 300 according to the third embodiment. In addition, about the part which is common in 1st Embodiment, description is simplified using the same code | symbol as 1st Embodiment.

図12に例示するように、第3実施形態の鍵共有システム300は、鍵共有装置310−1(第1鍵共有装置)と鍵共有装置310−2(第2鍵共有装置)とを有する。鍵共有装置310−1及び鍵共有装置310−2は、鍵生成装置330との情報のやり取りが可能に構成される。なお、この情報のやり取りは、ネットワーク経由で行われるものに限定されず、例えば、USBメモリなどの可搬型の記録媒体への情報の読み書きによって行われてもよい。   As illustrated in FIG. 12, the key sharing system 300 according to the third embodiment includes a key sharing device 310-1 (first key sharing device) and a key sharing device 310-2 (second key sharing device). The key sharing device 310-1 and the key sharing device 310-2 are configured to be able to exchange information with the key generation device 330. Note that this exchange of information is not limited to being performed via a network, and may be performed by, for example, reading / writing information from / to a portable recording medium such as a USB memory.

図13に例示するように、鍵共有装置310−1は、記憶部111−1と、任意値生成部112−1と、任意元生成部113−1と、出力部114−1と、入力部115−1と、共有元生成部316−1と、鍵生成部317−1と、一時メモリ118−1と、制御部119−1とを有する。図14(A)は、共有元生成部316−1の構成を説明するためのブロック図である。図14(A)に例示するように、共有元生成部316−1は、ハッシュ演算部116b−1,116c−1と、共有元演算部316a−u−1(u∈{1,...,U}),316b−1とを有する。   As illustrated in FIG. 13, the key sharing apparatus 310-1 includes a storage unit 111-1, an arbitrary value generation unit 112-1, an arbitrary element generation unit 113-1, an output unit 114-1, and an input unit. 115-1, a sharing source generation unit 316-1, a key generation unit 317-1, a temporary memory 118-1, and a control unit 119-1. FIG. 14A is a block diagram for explaining the configuration of the sharing source generation unit 316-1. 14A, the sharing source generation unit 316-1 includes the hash calculation units 116b-1 and 116c-1, and the sharing source calculation units 316a-u-1 (uε {1,. , U}), 316b-1.

図13に例示するように、鍵共有装置310−2は、記憶部111−2と、任意値生成部112−2と、任意元生成部113−2と、出力部114−2と、入力部115−2と、共有元生成部316−2と、鍵生成部317−2と、一時メモリ118−2と、制御部119−2とを有する。図14(B)は、共有元生成部316−2の構成を説明するためのブロック図である。図14(B)に例示するように、共有元生成部316−2は、ハッシュ演算部116b−2,116c−2と、共有元演算部316a−u−2(u∈{1,...,U}),316b−2とを有する。   As illustrated in FIG. 13, the key sharing apparatus 310-2 includes a storage unit 111-2, an arbitrary value generation unit 112-2, an arbitrary element generation unit 113-2, an output unit 114-2, and an input unit. 11-2, a sharing source generation unit 316-2, a key generation unit 317-2, a temporary memory 118-2, and a control unit 119-2. FIG. 14B is a block diagram for explaining the configuration of the sharing source generation unit 316-2. As illustrated in FIG. 14B, the sharing source generation unit 316-2 includes hash calculation units 116b-2 and 116c-2, and sharing source calculation units 316a-u-2 (uε {1,. , U}), 316b-2.

なお、第1実施形態と同様、鍵共有装置310−1,2は、例えば、公知のコンピュータに所定のプログラムが読み込まれて実行されることで構成される。また、鍵共有装置310−1,2は、それぞれ、制御部119−1,2の制御のもと各処理を実行する。また、以下では説明を簡略化するが、各処理部から出力されたデータは、逐一、一時メモリ118−1,2又は記憶部111−1,2に格納される。一時メモリ118−1,2又は記憶部111−1,2に格納されたデータは、必要に応じて読み出され、各処理部に入力されてその処理に利用される。   As in the first embodiment, the key sharing apparatuses 310-1 and 310-2 are configured, for example, by reading a predetermined program into a known computer and executing it. Further, the key sharing apparatuses 310-1 and 310-2 execute each process under the control of the control units 119-1 and 119-2, respectively. Although the description is simplified below, the data output from each processing unit is stored in the temporary memories 118-1 and 118-1 or the storage units 111-1 and 111-1 one by one. Data stored in the temporary memories 118-1 and 118-2 or the storage units 111-1 and 111-2 are read out as necessary, input to each processing unit, and used for the processing.

<公開パラメータ>
第3実施形態では、以下を公開パラメータとする。
<Public parameters>
In the third embodiment, the following are public parameters.

G:Lビットの位数q(qは素数)の巡回群。   G: Cyclic group of L-bit order q (q is a prime number).

:Lビットの位数qの巡回群。 G T : Cyclic group of L-bit order q.

g:巡回群Gの生成元。   g: A generator of the cyclic group G.

:巡回群Gの生成元。 g T: generator of the cyclic group G T.

e:e(α,β)→γ(α,β∈G,γ∈G)。巡回群Gの2つの元を巡回群Gの1つの元に写像する双線形関数。 e: e (α, β) → γ (α, βεG, γεG T ). Bilinear function that maps two original cyclic group G with one of the original cyclic group G T.

F:G→[0,q1/2]。巡回群Gの元を0以上q1/2以下の整数に写すハッシュ関数。 F: G → [0, q 1/2 ]. A hash function that maps an element of the cyclic group G to an integer between 0 and q 1/2 .

H:{0,1}→{0,1}。任意長のビット列をLビットのビット列に写すハッシュ関数。 H: {0, 1} * → {0, 1} L. A hash function that copies an arbitrary-length bit string into an L-bit bit string.

Y:{0,1}→G。任意長のビット列を巡回群Gに写すハッシュ関数。 Y: {0, 1} * → G. A hash function that copies a bit string of arbitrary length to a cyclic group G.

ID(prot):鍵交換方式の名称の識別子。   ID (prot): identifier of the name of the key exchange method.

MPK:IDベース暗号方式のマスタ公開鍵。なお、MPK=gMSK∈G(MSK∈ZはIDベース暗号方式のマスタ秘密鍵)を満たす。 MPK: Master public key of ID-based encryption method. Note that MPK = g MSK ∈ G ( MSK ∈ Z q is a master secret key of the ID-based encryption method) is satisfied.

<事前処理>
鍵生成装置330の記憶部にはマスタ秘密鍵MSK∈Zが安全に格納されている。鍵生成装置330は、鍵共有装置310−1の識別子ID(1)を用い、鍵共有装置310−1の秘密鍵
Z(1)=Y(ID(1))MSK∈G …(84)
を生成する。ここで、
A(1)=Y(ID(1))=ga(1)∈G …(85)
とおくと、式(84)は、
Z(1)=ga(1)・MSK∈G …(86)
となる。秘密鍵Z(1)は、鍵共有装置310−1に送られ、その記憶部311−1に安全に格納される。
<Pre-processing>
A master secret key MSKεZ q is securely stored in the storage unit of the key generation device 330. The key generation device 330 uses the identifier ID (1) of the key sharing device 310-1, and uses the secret key of the key sharing device 310-1.
Z (1) = Y (ID (1)) MSK ∈G… (84)
Is generated. here,
A (1) = Y (ID (1)) = g a (1) ∈G… (85)
Then, equation (84) becomes
Z (1) = ga (1) ・ MSK ∈G… (86)
It becomes. The secret key Z (1) is sent to the key sharing device 310-1, and is securely stored in the storage unit 311-1.

また、鍵生成装置330は、鍵共有装置310−2の識別子ID(2)を用い、鍵共有装置310−2の秘密鍵
Z(2)=Y(ID(2))MSK∈G …(87)
を生成する。ここで、
A(2)=Y(ID(2))=ga(2)∈G …(88)
とおくと、式(87)は、
Z(2)=ga(2)・MSK∈G …(89)
となる。秘密鍵Z(2)は、鍵共有装置310−2に送られ、その記憶部311−2に安全に格納される。
Further, the key generation device 330 uses the identifier ID (2) of the key sharing device 310-2 and uses the secret key of the key sharing device 310-2.
Z (2) = Y (ID (2)) MSK ∈G… (87)
Is generated. here,
A (2) = Y (ID (2)) = g a (2) ∈G… (88)
Then, equation (87) becomes
Z (2) = ga (2) ・ MSK ∈G… (89)
It becomes. The secret key Z (2) is sent to the key sharing device 310-2 and securely stored in the storage unit 311-2.

また、鍵共有装置210−1の記憶部211−1に、マスタ公開鍵MPK=gMSK∈Gと、鍵共有装置210−1に対応する巡回群Gの元である公開値A(1)=Y(ID(1))=ga(1)∈Gと、鍵共有装置210−2に対応する巡回群Gの元である公開値A(2)=Y(ID(2))=ga(2)∈Gと、鍵共有装置210−1の識別子ID(1)と、識別子ID(prot)とが格納される。鍵共有装置210−2の記憶部211−2に、マスタ公開鍵MPK=gMSK∈Gと、鍵共有装置210−1に対応する巡回群Gの元である公開値A(1)=Y(ID(1))=ga(1)∈Gと、鍵共有装置210−2に対応する巡回群Gの元である公開値A(2)=Y(ID(2))=ga(2)∈Gと、鍵共有装置210−2の識別子ID(2)と、識別子ID(prot)とが格納される。 Further, in the storage unit 211-1 of the key sharing apparatus 210-1, the master public key MPK = g MSK εG and the public value A (1) = the source of the cyclic group G corresponding to the key sharing apparatus 210-1 Y (ID (1)) = g a (1) ∈G and public value a (2) which is the original cyclic group G corresponding to the key sharing device 210-2 = Y (ID (2) ) = g a (2) εG, the identifier ID (1) of the key sharing device 210-1, and the identifier ID (prot) are stored. In the storage unit 211-2 of the key sharing device 210-2, the master public key MPK = g MSK εG and the public value A (1) = Y () that is the source of the cyclic group G corresponding to the key sharing device 210-1. ID (1)) = g a (1) ∈G and public value a (2 which is the original cyclic group G corresponding to the key sharing device 210-2) = Y (ID (2 )) = g a (2 ) ΕG, the identifier ID (2) of the key sharing device 210-2, and the identifier ID (prot) are stored.

<鍵共有処理>
図15(A)は、鍵共有装置310−1の鍵共有処理を説明するためのフローチャートであり、図15(B)は、鍵共有装置310−2の鍵共有処理を説明するためのフローチャートである。
<Key sharing process>
FIG. 15A is a flowchart for explaining the key sharing process of the key sharing apparatus 310-1, and FIG. 15B is a flowchart for explaining the key sharing process of the key sharing apparatus 310-2. is there.

図15(A)に示すように、鍵共有装置310−1(図13)は、第1実施形態のステップS112−1〜S115−1の処理を実行する。   As shown in FIG. 15A, the key sharing apparatus 310-1 (FIG. 13) executes the processing of steps S112-1 to S115-1 of the first embodiment.

共有装置310−1の共有元生成部316−1には、入力部115−1に入力された任意元X(2)=gr(2)∈Gと、記憶部211−1から読み出された秘密鍵Z(1)=ga(1)・MSK∈G、マスタ公開鍵MPK=gMSK∈G及び公開値A(2)=ga(2)∈Gと、任意値生成部112−1で生成(ステップS112−1)された任意値r(1)∈Zとが入力される。共有元生成部316−1は、これらと巡回群Gの元を巡回群Gの元に写像する前述の関数eを用い、巡回群Gの元g W(u)∈G(u∈{1,...,U}、Uは1以上の整数定数)を共有元σ(u)として生成して出力する(ステップS316a−1)。本形態では
W(u)=w(u,1)・w(u,2)・MSK∈Zq …(90)
w(u,1)=(r(1)・s(u,1)+a(1)・t(u,1))∈Zq …(91)
w(u,2)=(r(2)・s(u,2)+a(2)・t(u,2))∈Zq …(92)
を満たすg W(u)∈Gが、共有元σ(u)として生成される。s(u,1),s(u,2),t(u,1),t(u,2)∈Zはuごとに定まる定数又は変数であり、第1実施形態と同様に設定すればよい。
The sharing element generation unit 316-1 of the sharing apparatus 310-1 reads the arbitrary element X (2) = gr (2) εG input to the input unit 115-1 from the storage unit 211-1. Private key Z (1) = ga (1) · MSK ∈ G, master public key MPK = g MSK ∈ G, public value A (2) = ga (2) ∈ G, and arbitrary value generator 112- The arbitrary value r (1) εZ q generated at 1 (step S112-1) is input. Shared source generation unit 316-1 uses the aforementioned function e mapping the original of the cyclic group G to the original cyclic group G T, based on g T W (u) ∈G T (u of the cyclic group G T .Epsilon. {1,..., U}, U is an integer constant equal to or greater than 1) is generated and output as a sharing element σ (u) (step S316a-1). In this form
W (u) = w (u, 1) ・ w (u, 2) ・ MSK∈Z q … (90)
w (u, 1) = (r (1) ・ s (u, 1) + a (1) ・ t (u, 1)) ∈Z q … (91)
w (u, 2) = (r (2) ・ s (u, 2) + a (2) ・ t (u, 2)) ∈Z q … (92)
G T W (u) ∈G T satisfying is generated as a Pool sigma (u). s (u, 1), s (u, 2), t (u, 1), t (u, 2) εZ q is a constant or variable determined for each u, and is set in the same manner as in the first embodiment. That's fine.

以下に、s(u,1),s(u,2),t(u,1),t(u,2)∈Z及びUの設定例と、そのときのステップS316a−1の処理とを例示する。 Hereinafter, setting examples of s (u, 1), s (u, 2), t (u, 1), t (u, 2) εZ q and U, and the process of step S316a-1 at that time will be described. Is illustrated.

[ステップS316a−1の例]
本形態では、まず、第1実施形態の式(6)〜(10)を満たす共有元σ(u)を生成する。この場合、まず、第1実施形態と同様に、ハッシュ演算部116b−1,116c−1(図14(A))が、式(11)(12)のハッシュ値d(1),d(2)を生成して出力する。
[Example of Step S316a-1]
In this embodiment, first, a sharing element σ (u) that satisfies the expressions (6) to (10) of the first embodiment is generated. In this case, first, as in the first embodiment, the hash calculators 116b-1 and 116c-1 (FIG. 14A) perform the hash values d (1) and d (2) of the expressions (11) and (12). ) Is generated and output.

共有元演算部316a−1−1(図14(A))は、ハッシュ値d(2)と、任意元X(2)=gr(2)∈Gと、秘密鍵Z(1)=ga(1)・MSK∈G、マスタ公開鍵MPK=gMSK∈Gと、公開値A(2)=ga(2)∈Gと、任意値r(1)∈Zとを入力とし、共有元
σ(1)=e(MPKr(1)・Z(1),X(2)・A(2)d(2))∈GT …(93)
=e(gMSK・r(1)・ga(1)・MSK, gr(2)・ga(2)・d(2))(MPK=gMSK∈Gより)
=e(g,g)(r(1)+a(1))(r(2)+a(2)・d(2))MSK(式(27)より)
=gT (r(1)+a(1))(r(2)+a(2)・d(2))MSK (gT=e(g,g)より)
を生成して出力する。共有元演算部316a−2−1は、ハッシュ値d(1)と、任意元X(2)=gr(2)∈Gと、秘密鍵Z(1)=ga(1)・MSK∈G、マスタ公開鍵MPK=gMSK∈Gと、公開値A(2)=ga(2)∈Gと、任意値r(1)∈Zとを入力とし、共有元
σ(2)=e(MPKr(1)・Z(1)d(1), X(2)・A(2))∈GT …(94)
=e(gMSK・r(1)・ga(1)・MSK・d(1), gr(2)・ga(2))(MPK=gMSK∈Gより)
=e(g,g)(r(1)+a(1)・d(1))(r(2)+a(2))MSK(式(27)より)
=gT (r(1)+a(1)・d(1))(r(2)+a(2))MSK(gT=e(g,g)より)
を生成して出力する([ステップS316a−1の例]の説明終わり)。
The sharing element calculation unit 316a-1-1 (FIG. 14A) has a hash value d (2), an arbitrary element X (2) = g r (2) εG, and a secret key Z (1) = g. a (1) · MSK ∈ G, master public key MPK = g MSK ∈ G, public value A (2) = g a (2) ∈ G, and arbitrary value r (1) ∈ Z q Shared element σ (1) = e (MPK r (1)・ Z (1), X (2) ・ A (2) d (2) ) ∈G T … (93)
= e (g MSK ・ r (1)・ g a (1) ・ MSK , g r (2)・ ga (2) ・ d (2) ) (from MPK = g MSK ∈G)
= e (g, g) (r (1) + a (1)) (r (2) + a (2) ・ d (2)) MSK (from equation (27))
= g T (r (1) + a (1)) (r (2) + a (2) ・ d (2)) MSK (From g T = e (g, g))
Is generated and output. The shared element calculation unit 316a-2-1 has the hash value d (1), the arbitrary element X (2) = g r (2) ∈ G, and the secret key Z (1) = ga (1) · MSK ∈ G, master public key MPK = g MSK εG, public value A (2) = ga (2) εG, and arbitrary value r (1) εZ q are input and shared element σ (2) = e (MPK r (1)・ Z (1) d (1) , X (2) ・ A (2)) ∈G T … (94)
= e (g MSK ・ r (1)・ g a (1) ・ MSK ・ d (1) , g r (2)・ ga (2) ) (from MPK = g MSK ∈G)
= e (g, g) (r (1) + a (1) ・ d (1)) (r (2) + a (2)) MSK (From Equation (27))
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2)) MSK (From g T = e (g, g))
Is generated and output (end of description of [Example of step S316a-1]).

また、共有元生成部316−1の共有元演算部316b−1が、任意元X(2)=gr(2)∈Gと、任意値r(1)∈Zとを入力とし、共有元
σ(3)=X(2)r(1)∈G …(95)
=gr(2)・r(1)
を生成する(ステップS316b−1)。なお、本形態はU=2の例である。
Further, the sharing source calculation unit 316b-1 of the sharing source generation unit 316-1 receives the arbitrary element X (2) = g r (2) εG and the arbitrary value r (1) εZ q as inputs. Element σ (3) = X (2) r (1) ∈G… (95)
= g r (2) ・ r (1)
Is generated (step S316b-1). This embodiment is an example of U = 2.

鍵生成部317−1(図13)は、少なくとも、共有元生成部316−1から出力された共有元σ(u)に基づいて値が定まる鍵Kを生成して出力する(ステップ図15(A)/S217−1)。本形態の例では、鍵生成部317−1に、共有元生成部316−1で生成された共有元σ(1), σ(2), σ(3)と、任意元生成部113−1で生成された任意元X(1)(ステップS113−1)と、入力部115−1に入力された任意元X(2)(ステップS115−1)と、記憶部311−1から読み出した公開値A(1),A(2)、識別子ID(1),ID(2),ID(prot)とが入力される。鍵生成部317−1は、これらのビット結合のハッシュ値を鍵
K=H(σ(1), σ(2), σ(3), X(1), X(2), A(1), A(2), ID(1), ID(2), ID(prot))…(96)
として生成し、生成した鍵Kを出力する。
The key generation unit 317-1 (FIG. 13) generates and outputs a key K whose value is determined based on at least the sharing source σ (u) output from the sharing source generation unit 316-1 (Step FIG. 15 (FIG. 15). A) / S217-1). In the example of this embodiment, the key generation unit 317-1 includes the sharing sources σ (1), σ (2), σ (3) generated by the sharing source generation unit 316-1 and the arbitrary element generation unit 113-1. Arbitrary element X (1) generated in step (S113-1), arbitrary element X (2) (step S115-1) input to the input unit 115-1, and disclosure read from the storage unit 311-1. Values A (1), A (2), identifier ID (1), ID (2), and ID (prot) are input. The key generation unit 317-1 uses the hash value of these bit combinations as a key.
K = H (σ (1), σ (2), σ (3), X (1), X (2), A (1), A (2), ID (1), ID (2), ID (prot)) ... (96)
And the generated key K is output.

一方、図15(B)に示すように、鍵共有装置310−2は、第1実施形態のステップS112−2〜S115−2の処理を実行する。   On the other hand, as shown in FIG. 15B, the key sharing apparatus 310-2 executes the processes of steps S112-2 to S115-2 of the first embodiment.

共有装置310−2の共有元生成部316−2には、入力部115−2に入力された任意元X(1)=gr(1)∈Gと、記憶部211−2から読み出された秘密鍵Z(2)=ga(2)・MSK∈G、マスタ公開鍵MPK=gMSK∈G及び公開値A(1)=ga(1)∈Gと、任意値生成部112−2で生成(ステップS112−2)された任意値r(2)∈Zとが入力される。共有元生成部316−2は、これらと巡回群Gの元を巡回群Gの元に写像する前述の関数eを用い、巡回群Gの元g W(u)∈G(u∈{1,...,U})を共有元σ(u)として生成して出力する(ステップS316a−2)。本形態では、式(90)〜(92)を満たすg W(u)∈Gが、共有元σ(u)として生成される。 The sharing source generation unit 316-2 of the sharing apparatus 310-2 reads the arbitrary element X (1) = gr (1) εG input to the input unit 115-2 from the storage unit 211-2. Private key Z (2) = ga (2) .MSK ∈ G, master public key MPK = g MSK ∈ G, public value A (1) = ga (1) ∈ G, and arbitrary value generator 112- The arbitrary value r (2) εZ q generated in step 2 (step S112-2) is input. Shared source generation unit 316-2 uses the aforementioned function e mapping the original of the cyclic group G to the original cyclic group G T, based on g T W (u) ∈G T (u of the cyclic group G T .Epsilon. {1,..., U}) is generated and output as a sharing element σ (u) (step S316a-2). In this embodiment, g T W (u) ∈G T satisfying the formula (90) - (92) is generated as a Pool sigma (u).

以下に、s(u,1),s(u,2),t(u,1),t(u,2)∈Z及びUの設定例と、そのときのステップS316−2の処理とを例示する。 Hereinafter, setting examples of s (u, 1), s (u, 2), t (u, 1), t (u, 2) εZ q and U, and the processing of step S316-2 at that time will be described. Is illustrated.

[ステップS316a−2の例]
本形態では、まず、第1実施形態の式(6)〜(10)を満たす共有元σ(u)を生成する。この場合、まず、第1実施形態と同様に、ハッシュ演算部116b−2,116c−2(図14(B))が、式(15)(16)のハッシュ値d(1),d(2)を生成して出力する。
[Example of Step S316a-2]
In this embodiment, first, a sharing element σ (u) that satisfies the expressions (6) to (10) of the first embodiment is generated. In this case, first, as in the first embodiment, the hash calculation units 116b-2 and 116c-2 (FIG. 14B) perform the hash values d (1) and d (2) of the equations (15) and (16). ) Is generated and output.

共有元演算部316a−1−2(図14(B))は、ハッシュ値d(2)と、任意元X(1)=gr(1)∈Gと、秘密鍵Z(2)=ga(2)・MSK∈G、マスタ公開鍵MPK=gMSK∈Gと、公開値A(1)=ga(1)∈Gと、任意値r(2)∈Zとを入力とし、共有元
σ(1)=e(X(1)・A(1),MPKr(2)・Z(2)d(2))∈GT …(97)
=e(gr(1)・ga(1),g MSK・r(2)・ga(2)・MSK・d(2))(MPK=gMSK∈Gより)
=e(g,g)(r(1)+a(1))(r(2)+a(2)・d(2))MSK(式(27)より)
=gT (r(1)+a(1))(r(2)+a(2)・d(2))MSK (gT=e(g,g)より)
を生成して出力する。共有元演算部316a−2−2は、ハッシュ値d(1)と、任意元X(1)=gr(1)∈Gと、秘密鍵Z(2)=ga(2)・MSK∈G、マスタ公開鍵MPK=gMSK∈Gと、公開値A(1)=ga(1)∈Gと、任意値r(2)∈Zとを入力とし、共有元
σ(2)=e(X(1)・A(1)d(1),MPKr(2)・Z(2))∈GT …(98)
=e(gr(1)・ga(1)・d(1),gMSK・r(2)・ga(2)・MSK)(MPK=gMSK∈Gより)
=e(g,g)(r(1)+a(1)・d(1))(r(2)+a(2))MSK(式(27)より)
=gT (r(1)+a(1)・d(1))(r(2)+a(2))MSK(gT=e(g,g)より)
を生成して出力する([ステップS316a−2の例]の説明終わり)。
The sharing element calculation unit 316a-1-2 (FIG. 14B) uses the hash value d (2), the arbitrary element X (1) = g r (1) εG, and the secret key Z (2) = g. a (2) · MSK ∈ G, master public key MPK = g MSK ∈ G, public value A (1) = g a (1) ∈ G, and arbitrary value r (2) ∈ Z q Shared element σ (1) = e (X (1) ・ A (1), MPK r (2)・ Z (2) d (2) ) ∈G T … (97)
= e (g r (1)・ g a (1) , g MSK ・ r (2)・ ga (2) ・ MSK ・ d (2) ) (from MPK = g MSK ∈G)
= e (g, g) (r (1) + a (1)) (r (2) + a (2) ・ d (2)) MSK (from equation (27))
= g T (r (1) + a (1)) (r (2) + a (2) ・ d (2)) MSK (From g T = e (g, g))
Is generated and output. The shared element calculation unit 316a-2-2 has the hash value d (1), the arbitrary element X (1) = g r (1) ∈ G, and the secret key Z (2) = ga (2) · MSK ∈ G, master public key MPK = g MSK εG, public value A (1) = ga (1) εG, and arbitrary value r (2) εZ q are input, and shared element σ (2) = e (X (1) ・ A (1) d (1) , MPK r (2)・ Z (2)) ∈G T … (98)
= e (g r (1)・ g a (1) ・ d (1) , g MSK ・ r (2)・ ga (2) ・ MSK ) (from MPK = g MSK ∈G)
= e (g, g) (r (1) + a (1) ・ d (1)) (r (2) + a (2)) MSK (From Equation (27))
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2)) MSK (From g T = e (g, g))
Is generated and output (end of description of [Example of step S316a-2]).

また、共有元生成部316−2の共有元演算部316b−2が、任意元X(1)=gr(1)∈Gと、任意値r(2)∈Zとを入力とし、共有元
σ(3)=X(1)r(2)∈G …(99)
=gr(1)・r(2)
を生成する(ステップS316b−2)。なお、本形態はU=2の例である。
Further, the sharing source calculation unit 316b-2 of the sharing source generation unit 316-2 receives the arbitrary element X (1) = g r (1) εG and the arbitrary value r (2) εZ q as inputs, and shares Element σ (3) = X (1) r (2) ∈G… (99)
= g r (1) ・ r (2)
Is generated (step S316b-2). This embodiment is an example of U = 2.

鍵生成部317−2(図13)は、少なくとも、共有元生成部316−2から出力された共有元σ(u)に基づいて値が定まる鍵Kを生成して出力する(ステップ図15(B)/S217−2)。本形態の例では、鍵生成部317−2に、共有元生成部316−2で生成された共有元σ(1), σ(2), σ(3)と、任意元生成部113−2で生成された任意元X(2)(ステップS113−2)と、入力部115−2に入力された任意元X(1)(ステップS115−2)と、記憶部311−2から読み出した公開値A(1),A(2)、識別子ID(1),ID(2),ID(prot)とが入力される。鍵生成部317−2は、これらのビット結合のハッシュ値を鍵
K=H(σ(1), σ(2), σ(3), X(1), X(2), A(1), A(2), ID(1), ID(2), ID(prot))…(100)
として生成し、生成した鍵Kを出力する。
The key generation unit 317-2 (FIG. 13) generates and outputs a key K whose value is determined based on at least the sharing source σ (u) output from the sharing source generation unit 316-2 (Step FIG. 15 (FIG. 15). B) / S217-2). In the example of this embodiment, the key generation unit 317-2 includes the sharing sources σ (1), σ (2), σ (3) generated by the sharing source generation unit 316-2, and the arbitrary element generation unit 113-2. Arbitrary element X (2) generated in step (Step S113-2), Arbitrary element X (1) (step S115-2) input to the input unit 115-2, and disclosure read from the storage unit 311-2 Values A (1), A (2), identifier ID (1), ID (2), and ID (prot) are input. The key generation unit 317-2 uses the hash value of these bit combinations as the key.
K = H (σ (1), σ (2), σ (3), X (1), X (2), A (1), A (2), ID (1), ID (2), ID (prot)) ... (100)
And the generated key K is output.

<本形態の特徴>
式(93)〜(95)(97)〜(99)の変形結果を見ればわかるように、鍵共有装置316−1,2でそれぞれ生成される共有元σ(1)は同一となり、鍵共有装置316−1,2でそれぞれ生成される共有元σ(2)は同一となり、鍵共有装置316−1,2でそれぞれ生成される共有元σ(3)は同一となる。そして、式(96)(100)を比べれば分かるように、鍵共有装置316−1,2でそれぞれ生成される鍵Kは同一となる。
<Features of this embodiment>
As can be seen from the transformation results of the equations (93) to (95) (97) to (99), the sharing sources σ (1) generated by the key sharing devices 316-1 and 316-2 are the same, and key sharing The sharing source σ (2) generated by each of the devices 316-1 and 316-2 is the same, and the sharing source σ (3) generated by each of the key sharing devices 316-1 and 316-2 is the same. As can be seen from the comparison of equations (96) and (100), the keys K generated by the key sharing apparatuses 316-1 and 316-2 are the same.

ここで、鍵共有装置316−1が、それぞれ式(93)(94)の共有元σ(1),σ(2)を計算できるのは、鍵共有装置316−1が自らの秘密鍵Z(1)と任意値r(1)とを知っているからである。鍵共有装置316−2の秘密鍵Z(2)を知っている攻撃者は、鍵共有装置316−1に成り済まして任意値r(1)や任意元X(1)を生成することはできても、秘密鍵Z(1)を知らないため、式(93)(94)の共有元σ(1),σ(2)を計算できない。同様なことは、鍵共有装置216−2についてもいえる。よって、本形態の方式に対して攻撃者がKCI攻撃を行うことは困難である。   Here, the key sharing device 316-1 can calculate the sharing sources σ (1) and σ (2) of the equations (93) and (94), respectively, because the key sharing device 316-1 has its own private key Z ( This is because 1) and the arbitrary value r (1) are known. An attacker who knows the secret key Z (2) of the key sharing device 316-2 can impersonate the key sharing device 316-1 and generate the arbitrary value r (1) and the arbitrary element X (1). However, since the secret key Z (1) is not known, the sharing sources σ (1) and σ (2) in the equations (93) and (94) cannot be calculated. The same applies to the key sharing device 216-2. Therefore, it is difficult for an attacker to perform a KCI attack on the system of this embodiment.

また、本形態では、任意元X(1),X(2)に応じて値が定まる整数d(1),d(2)を生成し、これらを用いて共有元σ(1),σ(2)を生成した。そのため、本形態では、高い安全性を確保できる。   In this embodiment, integers d (1) and d (2) whose values are determined according to the arbitrary elements X (1) and X (2) are generated, and the shared elements σ (1) and σ ( 2) was produced. Therefore, in this embodiment, high safety can be ensured.

また、本形態では、複数の共有元σ(1),σ(2)を生成することとしたため、高い安全性を確保できる。   In the present embodiment, since a plurality of sharing sources σ (1) and σ (2) are generated, high security can be ensured.

〔第3実施形態の変形例1〕
第3実施形態の変形例1は、ステップS316a−1,2、S316b−1,2の共有元σ(u)の生成処理の変形例である。第3実施形態の変形例1では、式(7)〜(10)の代わりに、式(19')〜(22)を満たす共有元σ(u)を生成し、共有元σ(3)は生成しない。
[Modification 1 of Third Embodiment]
Modification 1 of the third embodiment is a modification of the generation process of the sharing source σ (u) in steps S316a-1, 2 and S316b-1, 2. In Modification 1 of the third embodiment, a sharing element σ (u) that satisfies Expressions (19 ′) to (22) is generated instead of Expressions (7) to (10), and the sharing element σ (3) is Do not generate.

この場合、共有元演算部316a−1−1,316a−2−1(図14(A))が、式(93)(94)の代わりに、共有元
σ(1)=e(MPKr(1)・Z(1),X(2)・A(2))∈GT …(101)
=gT (r(1)+a(1))(r(2)+a(2))MSK
σ(2)=e(MPKr(1)・Z(1)d(1), X(2)・A(2)d(1))∈GT …(102)
=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))MSK
を生成して出力する。
In this case, the sharing element calculation units 316a-1-1 and 316a-2-1 (FIG. 14A) replace the expressions (93) and (94) with the sharing element σ (1) = e (MPK r ( 1)・ Z (1), X (2) ・ A (2)) ∈G T … (101)
= g T (r (1) + a (1)) (r (2) + a (2)) MSK
σ (2) = e (MPK r (1)・ Z (1) d (1) , X (2) ・ A (2) d (1) ) ∈G T … (102)
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) MSK
Is generated and output.

また、共有元演算部316a−1−2,316a−2−2(図14(B))が、式(98)(98)の代わりに、共有元
σ(1)=e(X(1)・A(1),MPKr(2)・Z(2))∈GT …(103)
=gT (r(1)+a(1))(r(2)+a(2))MSK
σ(2)=e(X(1)・A(1)d(1),MPKr(2)・Z(2)d(2))∈GT …(104)
=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))MSK
を生成して出力する。また、この変形例では、共有元σ(3)は生成されない。その他は第3実施形態と同様である。
Also, the sharing element calculation units 316a-1-2 and 316a-2-2 (FIG. 14B) replace the expressions (98) and (98) with the sharing element σ (1) = e (X (1)・ A (1), MPK r (2)・ Z (2)) ∈G T (103)
= g T (r (1) + a (1)) (r (2) + a (2)) MSK
σ (2) = e (X (1) ・ A (1) d (1) , MPK r (2)・ Z (2) d (2) ) ∈G T … (104)
= g T (r (1) + a (1) ・ d (1)) (r (2) + a (2) ・ d (2)) MSK
Is generated and output. In this modification, the sharing source σ (3) is not generated. Others are the same as in the third embodiment.

その他、例えば、U=1として共有元
σ(1)=gT (r(1)+a(1)・d(1))(r(2)+a(2)・d(2))MSK
を生成してもよい。また、例えば、第1実施形態の変形例1で説明したようなs(1,1),t(1,1),s(1,2),t(1,2),s(2,1),t(2,1),s(2,2),t(2,2)やUやd(p)に関する変形を行ってもよい。また、
r(i)=F’(r’(i),a(i))
としてもよい。なお、F’は、ハッシュ関数F’:{0,1}*→Zであり、r’(i)は乱数である。r(j)についても同様な変形を行ってもよい。これによってU=1の場合でも高い安全性を確保できる。その他、本発明の趣旨を遺脱しない範囲で共有元σ(u)の生成方法を変形可能である。
In addition, for example, when U = 1, the sharing source σ (1) = g T (r (1) + a (1) · d (1)) (r (2) + a (2) · d (2)) MSK
May be generated. Further, for example, s (1,1), t (1,1), s (1,2), t (1,2), s (2,1) as described in the first modification of the first embodiment. ), T (2,1), s (2,2), t (2,2), and U and d (p) may be modified. Also,
r (i) = F ′ (r ′ (i), a (i))
It is good. Note that F ′ is a hash function F ′: {0, 1} * → Z q , and r ′ (i) is a random number. A similar modification may be performed for r (j). Accordingly, high safety can be ensured even when U = 1. In addition, the method for generating the sharing source σ (u) can be modified without departing from the spirit of the present invention.

〔第3実施形態の変形例2〕
第1実施形態の変形例2と同様、第3実施形態でも、鍵Kは共有元σ(u)に基づいて値が定まればよく、第1実施形態の変形例2で述べたように鍵Kの生成方法を変形してもよい。
[Modification 2 of the third embodiment]
Similar to the second modification of the first embodiment, in the third embodiment, the key K only needs to be determined based on the sharing element σ (u). As described in the second modification of the first embodiment, the key K The method for generating K may be modified.

〔その他の変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の各実施形態では、位数qを素数としたが、位数qが素数でなく合成数であってもよい。また、上述の各実施形態では、任意値r(i),r(j)等を法qについての整数の剰余環Zの元としたが、各実施形態で法qについての整数の剰余環Zの元として扱った各値が整数集合の元であってもよい。
[Other variations, etc.]
The present invention is not limited to the embodiment described above. For example, in each of the above-described embodiments, the order q is a prime number, but the order q may be a composite number instead of a prime number. In each of the above-described embodiments, the arbitrary values r (i), r (j), etc. are used as the elements of the integer remainder ring Z q for the modulus q . However, in each embodiment, the integer remainder ring for the modulus q is used. Each value treated as an element of Z q may be an element of an integer set.

また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。   In addition, the various processes described above are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Needless to say, other modifications are possible without departing from the spirit of the present invention.

また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。   Further, when the above-described configuration is realized by a computer, processing contents of functions that each device should have are described by a program. The processing functions are realized on the computer by executing the program 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.

また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。   The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.

このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。   A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good.

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

本発明の利用分野としては、例えば、共通鍵暗号における共通鍵の共有、共通鍵暗号を用いた認証処理における共通鍵の共有などがある。   Fields of application of the present invention include, for example, common key sharing in common key cryptography and common key sharing in authentication processing using common key cryptography.

1,100〜300 鍵共有システム
10−10〜P,110−110〜P,210−210〜P,310−310〜P 鍵共有装置
DESCRIPTION OF SYMBOLS 1,100-300 Key sharing system 10-10-P, 110-110-P, 210-210-P, 310-310-P Key sharing apparatus

Claims (9)

他の装置と鍵を共有する鍵共有装置であって、
前記他の装置の公開値が巡回群Gの元であるA()=ga(∈Gであり、巡回群G生成元であり、MSKびa()は整数又は位数qのZ の元であり、
整数又はZ の元である任意値r()を生成する任意値生成部と、
前記任意値r()を用い、第1任意元X()=gr(∈Gを生成する任意元生成部と、
前記第1任意元X()を出力する出力部と、
第2任意元X()=gr(∈G〔r()は整数又はZ の元〕が入力される入力部と、
少なくとも、巡回群Gの元Z()=ga()・MSK∈Gと、前記公開値A(、前記任意値r()と、前記第2任意元X(と、巡回群Gの元MPK=g MSK ∈Gと、前記巡回群Gの2つの元を巡回群G の元に写像する双線形関数eとを用い、巡回群Gの元 W(u) =e(g,g) W(u) ∈G a(1)は整数又はZ の元であり、W(u)=w(u,1)・w(u,2)・MSKであり、w(u,p)はa(p)とr(p)との線形和、p∈{1,}、u∈{1,...,U}、Uは1以上の整数定数 巡回群G 生成元〕を共有元σ(u)として生成する共有元生成部と、
少なくとも前記共有元σ(u)に基づいて値が定まる鍵Kを生成し、当該鍵Kを出力する鍵生成部と、
を有する鍵共有装置。
A key sharing device that shares a key with another device,
The public value of the other device is an element of the cyclic group G A (2) = g a (2) is ∈G, g is a generator of the cyclic group G, MSK Beauty a (2) is an integer Or an element of Z q of order q ,
An arbitrary value generation unit that generates an arbitrary value r ( 1 ) that is an integer or an element of Z q ;
An arbitrary element generation unit that generates the first arbitrary element X ( 1 ) = g r ( 1 ) εG using the arbitrary value r ( 1 );
An output unit for outputting the first arbitrary element X ( 1 );
The second optional original X (2) = g r ( 2) ∈G [r (2) the original integer or Z q] an input unit is input,
At least an element Z ( 1 ) = ga ( 1 ) · MSK εG of the cyclic group G, the public value A ( 2 ) , the arbitrary value r ( 1 ), and the second arbitrary element X ( 2 ) When the original MPK = g MSK ∈G of the cyclic group G, using the bilinear function e for mapping two original the cyclic group G based on the cyclic group G T, based on g T W of a cyclic group G ( u) = e (g, g ) W (u) ∈G T [a (1) is the original integer or Z q, W (u) = w (u, 1) · w (u, 2) · a MSK, w (u, p) is the linear sum of a (p) and r (p), p∈ {1 , 2}, u∈ {1 ,. . . , U}, U is an integer constant equal to or greater than 1 , g T is a generator of the cyclic group G T ] as a share element σ (u),
A key generation unit that generates a key K whose value is determined based on at least the sharing source σ (u), and outputs the key K;
A key sharing device.
請求項1鍵共有装置であって、
U≧2であり、
前記共有元生成部は、複数種類の前記共有元σ(1),...σ(U)を生成する、
ことを特徴とする鍵共有装置。
The key sharing device according to claim 1,
U ≧ 2,
The sharing source generation unit includes a plurality of types of the sharing sources σ (1),. . . generate σ (U),
A key sharing device.
他の装置と鍵を共有する鍵共有装置であって、  A key sharing device that shares a key with another device,
前記他の装置の公開値が巡回群Gの元であるA(j)=g  The public value of the other device is an element of the cyclic group G A (j) = g a(j)a (j) ∈Gであり、i,j∈{1,...,P}、j≠i、Pは2以上の整数定数、gは巡回群Gの生成元であり、MSK及びa(j)は整数又は位数qのZ.Epsilon.G and i, j.epsilon. {1,. . . , P}, j ≠ i, P is an integer constant of 2 or more, g is a generator of the cyclic group G, MSK and a (j) are integers or Z of order q q の元であり、The origin of
整数又はZ  Integer or Z q の元である任意値r(i)を生成する任意値生成部と、An arbitrary value generation unit that generates an arbitrary value r (i) that is an element of
前記任意値r(i)を用い、第1任意元X(i)=g  Using the arbitrary value r (i), the first arbitrary element X (i) = g r(i)r (i) ∈Gを生成する任意元生成部と、An arbitrary element generator for generating ∈G;
前記第1任意元X(i)を出力する出力部と、  An output unit for outputting the first arbitrary element X (i);
第2任意元X(j)=g  Second arbitrary element X (j) = g r(j)r (j) ∈G〔r(j)は整数又はZ∈ G [r (j) is an integer or Z q の元〕が入力される入力部と、The input section to which is input,
少なくとも、整数若しくはZ  At least an integer or Z q の元である秘密値a(i)又は巡回群Gの元Z(i)=gSecret value a (i) that is an element of Z or element Z (i) of cyclic group G = g a(i)・MSKa (i) ・ MSK ∈Gと、前記公開値A(j)と、前記任意値r(i)と、前記第2任意元X(j)とを用い、巡回群Gの元gAn element g of a cyclic group G using εG, the public value A (j), the arbitrary value r (i), and the second arbitrary element X (j) W(u)W (u) ∈G〔W(u)はw(u,1),...,w(u,P)を含むP個以上の整数の積、前記w(u,p)はa(p)とr(p)とを含む複数の整数又はZ∈ G [W (u) is w (u, 1),. . . , W (u, P), a product of P or more integers, where w (u, p) is a plurality of integers including a (p) and r (p) or Z q の元の線形和、p∈{1,...,P}、u∈{1,...,U}、Uは1以上の整数定数〕を共有元σ(u)として生成するか、又は、さらに巡回群Gの元を巡回群GOriginal linear sum of p∈ {1,. . . , P}, u∈ {1,. . . , U}, U is an integer constant greater than or equal to 1] as a shared element σ (u), or further, an element of the cyclic group G is a cyclic group G T の元に写像する関数eを用い、巡回群GA function e that maps to the cyclic group G T の元gOriginal g T W(u)W (u) ∈G∈G T 〔g[G T は巡回群GIs the traveling group G T の生成元〕を共有元σ(u)として生成する共有元生成部と、Generating source] as a sharing source σ (u),
少なくとも前記共有元σ(u)に基づいて値が定まる鍵Kを生成し、当該鍵Kを出力する鍵生成部と、を有し、  A key generation unit that generates a key K whose value is determined based on at least the sharing source σ (u), and outputs the key K;
r(i)=F’(r’(i),a(i))、r(j)=F”(r’(j),a(j))であり、F’およびF”がハッシュ関数であり、r’(i)およびr’(j)が乱数である、鍵共有装置。  r (i) = F ′ (r ′ (i), a (i)), r (j) = F ″ (r ′ (j), a (j)), and F ′ and F ″ are hash functions. And r ′ (i) and r ′ (j) are random numbers.
他の装置と鍵を共有する鍵共有装置であって、  A key sharing device that shares a key with another device,
前記他の装置の公開値が巡回群Gの元であるA(j)=g  The public value of the other device is an element of the cyclic group G A (j) = g a(j)a (j) ∈Gであり、i,j∈{1,...,P}、j≠i、Pは2以上の整数定数、gは巡回群Gの生成元であり、MSK及びa(j)は整数又は位数qのZ.Epsilon.G and i, j.epsilon. {1,. . . , P}, j ≠ i, P is an integer constant of 2 or more, g is a generator of the cyclic group G, MSK and a (j) are integers or Z of order q q の元であり、The origin of
整数又はZ  Integer or Z q の元である任意値r(i)を生成する任意値生成部と、An arbitrary value generation unit that generates an arbitrary value r (i) that is an element of
前記任意値r(i)を用い、第1任意元X(i)=g  Using the arbitrary value r (i), the first arbitrary element X (i) = g r(i)r (i) ∈Gを生成する任意元生成部と、An arbitrary element generator for generating ∈G;
前記第1任意元X(i)を出力する出力部と、  An output unit for outputting the first arbitrary element X (i);
第2任意元X(j)=g  Second arbitrary element X (j) = g r(j)r (j) ∈G〔r(j)は整数又はZ∈ G [r (j) is an integer or Z q の元〕が入力される入力部と、The input section to which is input,
少なくとも、整数若しくはZ  At least an integer or Z q の元である秘密値a(i)又は巡回群Gの元Z(i)=gSecret value a (i) that is an element of Z or element Z (i) of cyclic group G = g a(i)・MSKa (i) ・ MSK ∈Gと、前記公開値A(j)と、前記任意値r(i)と、前記第2任意元X(j)とを用い、巡回群Gの元gAn element g of a cyclic group G using εG, the public value A (j), the arbitrary value r (i), and the second arbitrary element X (j) W(u)W (u) ∈G〔W(u)はw(u,1),...,w(u,P)を含むP個以上の整数の積、前記w(u,p)はa(p)とr(p)とを含む複数の整数又はZ∈ G [W (u) is w (u, 1),. . . , W (u, P), a product of P or more integers, where w (u, p) is a plurality of integers including a (p) and r (p) or Z q の元の線形和、p∈{1,...,P}、u∈{1,...,U}、Uは3以上の整数定数〕を共有元σ(u)として生成するか、又は、さらに巡回群Gの元を巡回群GOriginal linear sum of p∈ {1,. . . , P}, u∈ {1,. . . , U}, U is an integer constant greater than or equal to 3] as a shared element σ (u), or further, an element of the cyclic group G is a cyclic group G T の元に写像する関数eを用い、巡回群GA function e that maps to the cyclic group G T の元gOriginal g T W(u)W (u) ∈G∈G T 〔g[G T は巡回群GIs the traveling group G T の生成元〕を共有元σ(u)として生成する共有元生成部と、Generating source] as a sharing source σ (u),
少なくとも複数種類の前記共有元σ(1),...σ(U)に基づいて値が定まる鍵Kを生成し、当該鍵Kを出力する鍵生成部と、  At least a plurality of types of the sharing sources σ (1),. . . a key generation unit that generates a key K whose value is determined based on σ (U) and outputs the key K;
を有する鍵共有装置。  A key sharing device.
他の装置と鍵を共有する鍵共有装置の鍵共有方法であって、  A key sharing method for a key sharing apparatus that shares a key with another apparatus,
前記他の装置の公開値が巡回群Gの元であるA(2)=g  The public value of the other device is an element of the cyclic group G A (2) = g a(2)a (2) ∈Gであり、gは巡回群Gの生成元であり、MSK及びa(2)は整数又は位数qのZΕG, g is the generator of the cyclic group G, MSK and a (2) are integers or Z of order q q の元であり、The origin of
任意値生成部で、整数又はZ  Arbitrary value generator, integer or Z q の元である任意値r(1)を生成する任意値生成ステップと、An arbitrary value generation step for generating an arbitrary value r (1) that is an element of
任意元生成部で、前記任意値r(1)を用い、第1任意元X(1)=g  The arbitrary element generation unit uses the arbitrary value r (1) and the first arbitrary element X (1) = g r(1)r (1) ∈Gを生成する任意元生成ステップと、An arbitrary element generation step for generating ∈G;
出力部から前記第1任意元X(1)を出力する出力ステップと、  An output step of outputting the first arbitrary element X (1) from an output unit;
第2任意元X(2)=g  Second arbitrary element X (2) = g r(2)r (2) ∈G〔r(2)は整数又はZ∈ G [r (2) is an integer or Z q の元〕が入力部に入力される入力ステップと、An input step in which the source of
共有元生成部で、少なくとも、巡回群Gの元Z(1)=g  In the sharing source generation unit, at least element Z (1) = g of cyclic group G a(1)・MSKa (1) ・ MSK ∈Gと、前記公開値A(2)と、前記任意値r(1)と、前記第2任意元X(2)と、巡回群Gの元MPK=gΕG, the public value A (2), the arbitrary value r (1), the second arbitrary element X (2), and the element MPK of the cyclic group G = g MSKMSK ∈Gと、前記巡回群Gの2つの元を巡回群G∈ G and the two elements of the cyclic group G are the cyclic group G T の元に写像する双線形関数eとを用い、巡回群Gの元gAnd a bilinear function e that maps to the element of T W(u)W (u) =e(g,g)= E (g, g) W(u)W (u) ∈G∈G T 〔a(1)は整数又はZ[A (1) is an integer or Z q の元であり、W(u)=w(u,1)・w(u,2)・MSKであり、w(u,p)はa(p)とr(p)との線形和、p∈{1,2}、u∈{1,...,U}、Uは1以上の整数定数、gW (u) = w (u, 1) · w (u, 2) · MSK, w (u, p) is a linear sum of a (p) and r (p), p ∈ {1,2}, u∈ {1,. . . , U}, U is an integer constant greater than or equal to 1, g T は巡回群GIs the traveling group G T の生成元〕を共有元σ(u)として生成する共有元生成ステップと、Generating source] as a sharing source σ (u),
鍵生成部で、少なくとも前記共有元σ(u)に基づいて値が定まる鍵Kを生成し、当該鍵Kを出力する鍵生成ステップと、  A key generation step of generating a key K whose value is determined based on at least the sharing source σ (u) in the key generation unit, and outputting the key K;
を有する鍵共有方法。  A key sharing method.
請求項5の鍵共有方法であって、  The key sharing method according to claim 5, comprising:
U≧2であり、  U ≧ 2,
前記共有元生成ステップは、複数種類の前記共有元σ(1),...σ(U)を生成するステップである、  The sharing source generation step includes a plurality of types of the sharing sources σ (1),. . . generating σ (U),
ことを特徴とする鍵共有方法。  A key sharing method characterized by the above.
他の装置と鍵を共有する鍵共有装置の鍵共有方法であって、  A key sharing method for a key sharing apparatus that shares a key with another apparatus,
前記他の装置の公開値が巡回群Gの元であるA(j)=g  The public value of the other device is an element of the cyclic group G A (j) = g a(j)a (j) ∈Gであり、i,j∈{1,...,P}、j≠i、Pは2以上の整数定数、gは巡回群Gの生成元であり、MSK及びa(j)は整数又は位数qのZ.Epsilon.G and i, j.epsilon. {1,. . . , P}, j ≠ i, P is an integer constant of 2 or more, g is a generator of the cyclic group G, MSK and a (j) are integers or Z of order q q の元であり、The origin of
任意値生成部で、整数又はZ  Arbitrary value generator, integer or Z q の元である任意値r(i)を生成する任意値生成ステップと、An arbitrary value generation step for generating an arbitrary value r (i) that is an element of
任意元生成部で、前記任意値r(i)を用い、第1任意元X(i)=g  The arbitrary element generation unit uses the arbitrary value r (i) and the first arbitrary element X (i) = g r(i)r (i) ∈Gを生成する任意元生成ステップと、An arbitrary element generation step for generating ∈G;
出力部から前記第1任意元X(i)を出力する出力ステップと、  An output step of outputting the first arbitrary element X (i) from an output unit;
第2任意元X(j)=g  Second arbitrary element X (j) = g r(j)r (j) ∈G〔r(j)は整数又はZ∈ G [r (j) is an integer or Z q の元〕が入力部に入力される入力ステップと、An input step in which the source of
共有元生成部で、少なくとも、整数若しくはZ  At least an integer or Z in the sharing source generation unit q の元である秘密値a(i)又は巡回群Gの元Z(i)=gSecret value a (i) that is an element of Z or element Z (i) of cyclic group G = g a(i)・MSKa (i) ・ MSK ∈Gと、前記公開値A(j)と、前記任意値r(i)と、前記第2任意元X(j)とを用い、巡回群Gの元gAn element g of a cyclic group G using εG, the public value A (j), the arbitrary value r (i), and the second arbitrary element X (j) W(u)W (u) ∈G〔W(u)はw(u,1),...,w(u,P)を含むP個以上の整数の積、前記w(u,p)はa(p)とr(p)とを含む複数の整数又はZ∈ G [W (u) is w (u, 1),. . . , W (u, P), a product of P or more integers, where w (u, p) is a plurality of integers including a (p) and r (p) or Z q の元の線形和、p∈{1,...,P}、u∈{1,...,U}、Uは1以上の整数定数〕を共有元σ(u)として生成するか、又は、さらに巡回群Gの元を巡回群GOriginal linear sum of p∈ {1,. . . , P}, u∈ {1,. . . , U}, U is an integer constant greater than or equal to 1] as a shared element σ (u), or further, an element of the cyclic group G is a cyclic group G T の元に写像する関数eを用い、巡回群GA function e that maps to the cyclic group G T の元gOriginal g T W(u)W (u) ∈G∈G T 〔g[G T は巡回群GIs the traveling group G T の生成元〕を共有元σ(u)として生成する共有元生成ステップと、Generating source] as a sharing source σ (u),
鍵生成部で、少なくとも前記共有元σ(u)に基づいて値が定まる鍵Kを生成し、当該鍵Kを出力する鍵生成ステップと、を有し、  A key generation unit for generating a key K whose value is determined based on at least the sharing source σ (u) and outputting the key K;
r(i)=F’(r’(i),a(i))、r(j)=F”(r’(j),a(j))であり、F’およびF”がハッシュ関数であり、r’(i)およびr’(j)が乱数である、鍵共有方法。  r (i) = F ′ (r ′ (i), a (i)), r (j) = F ″ (r ′ (j), a (j)), and F ′ and F ″ are hash functions. And r ′ (i) and r ′ (j) are random numbers.
他の装置と鍵を共有する鍵共有装置の鍵共有方法であって、  A key sharing method for a key sharing apparatus that shares a key with another apparatus,
前記他の装置の公開値が巡回群Gの元であるA(j)=g  The public value of the other device is an element of the cyclic group G A (j) = g a(j)a (j) ∈Gであり、i,j∈{1,...,P}、j≠i、Pは2以上の整数定数、gは巡回群Gの生成元であり、MSK及びa(j)は整数又は位数qのZ.Epsilon.G and i, j.epsilon. {1,. . . , P}, j ≠ i, P is an integer constant of 2 or more, g is a generator of the cyclic group G, MSK and a (j) are integers or Z of order q q の元であり、The origin of
任意値生成部で、整数又はZ  Arbitrary value generator, integer or Z q の元である任意値r(i)を生成する任意値生成ステップと、An arbitrary value generation step for generating an arbitrary value r (i) that is an element of
任意元生成部で、前記任意値r(i)を用い、第1任意元X(i)=g  The arbitrary element generation unit uses the arbitrary value r (i) and the first arbitrary element X (i) = g r(i)r (i) ∈Gを生成する任意元生成ステップと、An arbitrary element generation step for generating ∈G;
出力部から前記第1任意元X(i)を出力する出力ステップと、  An output step of outputting the first arbitrary element X (i) from an output unit;
第2任意元X(j)=g  Second arbitrary element X (j) = g r(j)r (j) ∈G〔r(j)は整数又はZ∈ G [r (j) is an integer or Z q の元〕が入力部に入力される入力ステップと、An input step in which the source of
共有元生成部で、少なくとも、整数若しくはZ  At least an integer or Z in the sharing source generation unit q の元である秘密値a(i)又は巡回群Gの元Z(i)=gSecret value a (i) that is an element of Z or element Z (i) of cyclic group G = g a(i)・MSKa (i) ・ MSK ∈Gと、前記公開値A(j)と、前記任意値r(i)と、前記第2任意元X(j)とを用い、巡回群Gの元gAn element g of a cyclic group G using εG, the public value A (j), the arbitrary value r (i), and the second arbitrary element X (j) W(u)W (u) ∈G〔W(u)はw(u,1),...,w(u,P)を含むP個以上の整数の積、前記w(u,p)はa(p)とr(p)とを含む複数の整数又はZ∈ G [W (u) is w (u, 1),. . . , W (u, P), a product of P or more integers, where w (u, p) is a plurality of integers including a (p) and r (p) or Z q の元の線形和、p∈{1,...,P}、u∈{1,...,U}、Uは3以上の整数定数〕を共有元σ(u)として生成するか、又は、さらに巡回群Gの元を巡回群GOriginal linear sum of p∈ {1,. . . , P}, u∈ {1,. . . , U}, U is an integer constant greater than or equal to 3] as a shared element σ (u), or further, an element of the cyclic group G is a cyclic group G T の元に写像する関数eを用い、巡回群GA function e that maps to the cyclic group G T の元gOriginal g T W(u)W (u) ∈G∈G T 〔g[G T は巡回群GIs the traveling group G T の生成元〕を共有元σ(u)として生成する共有元生成ステップと、Generating source] as a sharing source σ (u),
鍵生成部で、少なくとも複数種類の前記共有元σ(1),...σ(U)に基づいて値が定まる鍵Kを生成し、当該鍵Kを出力する鍵生成ステップと、  In the key generation unit, at least a plurality of types of the sharing sources σ (1),. . . a key generation step of generating a key K whose value is determined based on σ (U) and outputting the key K;
を有する鍵共有方法。  A key sharing method.
請求項1からの何れかの鍵共有装置としてコンピュータを機能させるためのプログラム。 Program for causing a computer to function claims 1 as one of the key sharing device 4.
JP2009161663A 2009-07-08 2009-07-08 Key sharing apparatus, key sharing method and program Active JP5355263B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009161663A JP5355263B2 (en) 2009-07-08 2009-07-08 Key sharing apparatus, key sharing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009161663A JP5355263B2 (en) 2009-07-08 2009-07-08 Key sharing apparatus, key sharing method and program

Publications (2)

Publication Number Publication Date
JP2011019042A JP2011019042A (en) 2011-01-27
JP5355263B2 true JP5355263B2 (en) 2013-11-27

Family

ID=43596509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009161663A Active JP5355263B2 (en) 2009-07-08 2009-07-08 Key sharing apparatus, key sharing method and program

Country Status (1)

Country Link
JP (1) JP5355263B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5651611B2 (en) * 2012-01-27 2015-01-14 日本電信電話株式会社 Key exchange device, key exchange system, key exchange method, program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101048970B (en) * 2004-10-29 2012-05-23 汤姆森许可贸易公司 Secure authenticated channel

Also Published As

Publication number Publication date
JP2011019042A (en) 2011-01-27

Similar Documents

Publication Publication Date Title
US8280039B2 (en) Signature generating device, signature generating method and signature generating program
JP6095792B2 (en) Secret bit decomposition apparatus, secret modulus conversion apparatus, secret bit decomposition method, secret modulus conversion method, program
US20210036849A1 (en) Methods and systems for encryption and homomorphic encryption systems using geometric algebra and hensel codes
JP2011164607A (en) Method and system for privacy-preserving computation of edit distance of symbol sequence
TW202029693A (en) Computer implemented system and method for distributing shares of digitally signed data
Sokouti et al. Medical image encryption: an application for improved padding based GGH encryption algorithm
KR20110136787A (en) Encoding of points of an elliptic curve
Gupta et al. Session key based novel lightweight image encryption algorithm using a hybrid of Chebyshev chaotic map and crossover
JP7238977B2 (en) Anonymous Signature System and Anonymous Signature Method
JP5355263B2 (en) Key sharing apparatus, key sharing method and program
Barman et al. An Efficient Hybrid Elliptic Curve Cryptography System with DNA Encoding
JP6971917B2 (en) Decoding device, encryption device and encryption system
JP2007187908A (en) Modular exponentiation calculation device and method having tolerance to side-channel attack
JP6532843B2 (en) Secret calculation system, first secret calculation device, second secret calculation device, secret circuit generation method, secret circuit evaluation method, program
Nayak et al. A Study of Securing Healthcare Big Data using DNA Encoding based ECC
JP4836208B2 (en) Encryption / decryption program, encryption / decryption device, and multiplication device for expansion field
JP4922139B2 (en) Key sharing method, first device, second device, and program thereof
Moosavi et al. End-to-end security scheme for e-Health systems using DNA-based ECC
JP5038866B2 (en) Encryption communication method, encryption device, decryption device, and program thereof
JP4685621B2 (en) Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program
Sasikaladevi et al. SNAP-compressive lossless sensitive image authentication and protection scheme based on Genus-2 hyper elliptic curve
JP5038868B2 (en) Key sharing method, first device, second device, and program thereof
JP5506633B2 (en) Proxy calculation system, terminal device, proxy calculation device, proxy calculation method, and program
WO2023228408A1 (en) Parameter generation system, parameter generation method, and parameter generation program
JP2010002662A (en) Recovery signature system, signature creating device, signature verification device, method for them and program

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110720

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130509

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130730

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130827

R150 Certificate of patent or registration of utility model

Ref document number: 5355263

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350