JP6348082B2 - Structure conversion apparatus and program - Google Patents
Structure conversion apparatus and program Download PDFInfo
- Publication number
- JP6348082B2 JP6348082B2 JP2015088396A JP2015088396A JP6348082B2 JP 6348082 B2 JP6348082 B2 JP 6348082B2 JP 2015088396 A JP2015088396 A JP 2015088396A JP 2015088396 A JP2015088396 A JP 2015088396A JP 6348082 B2 JP6348082 B2 JP 6348082B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- matrix
- algebraic
- group
- algebraic structure
- 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
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
本発明は、アルゴリズムの代数的構造を変換する技術に関する。 The present invention relates to a technique for converting an algebraic structure of an algorithm.
アルゴリズムの代数的構造を変換する技術が知られている。例えば、非特許文献1,2には、群G,GT上のペアリングe:G×G→GTを用いたアルゴリズムを、群G1,G2,GT上のペアリングe:G1×G2→GT(ただしG1≠G2)を用いたアルゴリズムに変換する技術が開示されている。この技術では、群G上の群演算の依存関係グラフのノードに群G1またはG2を割り当て、その割り当て状況を評価関数で評価し、最も評価の良い割り当てを選択する。
A technique for converting the algebraic structure of an algorithm is known. For example,
従来技術では、割り当てのための探索空間が広く、演算量が大きいという問題点がある。本発明の課題は、アルゴリズムの代数的構造を変換するための演算量を削減することである。 In the prior art, there is a problem that a search space for allocation is wide and a calculation amount is large. An object of the present invention is to reduce the amount of calculation for converting an algebraic structure of an algorithm.
まず、線形制約q(s(i,φ(0)))+・・・+q(s(i,φ(S(i)−1)))=y(i,n)∈F2に対し、{0,・・・,n−1}における{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}の補集合の要素rについてy(i,r)=0とし、{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}の要素kについてy(i,k)=1としたy(i,0),・・・,y(i,n−1),y(i,n)をi行目の要素とする行列を表す情報を得る。ただし、nは2以上の整数であり、j=0,・・・,n−1である。F2は位数2の有限体であり、代数的構造Gでの演算の依存関係を表す依存関係グラフのノードN(j)に代数的構造G1を割り当てる場合にq(j)=0∈F2とし、ノードN(j)に代数的構造G2を割り当てる場合にq(j)=1∈F2とする(G1≠G2)。mは1以上の整数であり、i=0,・・・,m−1である。S(i)は1以上の整数であり、{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}⊆{0,・・・,n−1}である。次に、y(i,0),・・・,y(i,n−1),y(i,n)をi行目の要素とする行列から、z(i,0),・・・,z(i,n−1),z(i,n)をi行目の要素とする階段行列を表す情報を得る。その後、階段行列を表す情報に基づいてノードN(j)が独立ノードであるか否かを判定して、ノードN(j)に代数的構造G1または代数的構造G2を割り当てる。 First, for the linear constraint q (s (i, φ (0))) +... + Q (s (i, φ (S (i) −1))) = y (i, n) ∈F 2 Y for the element r of the complement of {s (i, φ (0)),..., S (i, φ (S (i) −1))} in {0,. (I, r) = 0, and y (i, k) = for element k of {s (i, φ (0)),..., S (i, φ (S (i) -1))} Information indicating a matrix having y (i, 0),..., Y (i, n−1), y (i, n) as elements in the i-th row is obtained. However, n is an integer greater than or equal to 2, and j = 0, ..., n-1. F 2 is a finite field of order 2, and q (j) = 0∈ when assigning the algebraic structure G 1 to the node N (j) of the dependency graph representing the dependency of the operation in the algebraic structure G When F 2 is assigned and the algebraic structure G 2 is assigned to the node N (j), q (j) = 1∈F 2 (G 1 ≠ G 2 ). m is an integer of 1 or more, and i = 0,..., m−1. S (i) is an integer of 1 or more, and {s (i, φ (0)),..., S (i, φ (S (i) -1))} ⊆ {0,. n-1}. Next, from a matrix having y (i, 0),..., Y (i, n-1), y (i, n) as elements of the i-th row, z (i, 0),. , Z (i, n-1), z (i, n) is obtained as information representing a step matrix having elements in the i-th row. Thereafter, it is determined whether the node N (j) is an independent node based on the information representative of the stairs matrix, assigning the algebraic structure G 1 or algebraic structure G 2 to the node N (j).
これにより、アルゴリズムの代数的構造を変換するための演算量を削減できる。 Thereby, the amount of calculation for converting the algebraic structure of the algorithm can be reduced.
以下、本発明の実施形態を説明する。
[概要]
本形態では、まず線形制約q(s(i,φ(0)))+・・・+q(s(i,φ(S(i)−1)))=y(i,n)∈F2に対し、{0,・・・,n−1}における{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}の補集合の要素rについてy(i,r)=0とし、{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}の要素kについてy(i,k)=1としたy(i,0),・・・,y(i,n−1),y(i,n)をi行目の要素とする行列を表す情報を得る。ただし、nは2以上の整数であり、j=0,・・・,n−1である。F2は位数2の有限体であり、代数的構造Gでの演算の依存関係を表す依存関係グラフのノード(変数)N(j)に代数的構造G1を割り当てる場合にq(j)=0∈F2とし、ノードN(j)に代数的構造G2を割り当てる場合にq(j)=1∈F2とする(G1≠G2)。代数的構造の例は、アーベル群などの群、半群、モノイド、体、環などである。mは1以上の整数であり、i=0,・・・,m−1である。S(i)は1以上の整数であり、{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}⊆{0,・・・,n−1}である。ただし、ノード間の関係の制約を行う場合にはS(i)は2以上の整数となる。次に、y(i,0),・・・,y(i,n−1),y(i,n)をi行目の要素とする行列から、z(i,0),・・・,z(i,n−1),z(i,n)をi行目の要素とする階段行列を表す情報を得る。その後、階段行列を表す情報に基づいてノードN(j)が独立ノード(独立変数)であるか否かを判定して、ノードN(j)に代数的構造G1または代数的構造G2を割り当てる。ここで、ノードN(j)が独立ノードでない場合(すなわち、従属ノード(従属変数)である場合)、当該ノードN(j)への代数的構造の割り当ては他のノードへの割り当てに依存する。すなわち、独立ノードへの割り当てを決めれば、それに応じて従属ノードへの割り当ても決まる。これにより、探索空間を縮小でき、演算量を削減できる。
Embodiments of the present invention will be described below.
[Overview]
In this embodiment, first, the linear constraint q (s (i, φ (0))) +... + Q (s (i, φ (S (i) −1))) = y (i, n) ∈F 2 , S (i, φ (S (i) -1))} elements of {s (i, φ (0)),. y (i, r) = 0 for r and y (i, r (0,0)),..., s (i, φ (S (i) -1))} k) = 1 to obtain information representing a matrix having y (i, 0),..., y (i, n-1), y (i, n) as elements of the i-th row. However, n is an integer greater than or equal to 2, and j = 0, ..., n-1. F 2 is a finite field of order 2, and q (j) when assigning the algebraic structure G 1 to the node (variable) N (j) of the dependency graph representing the dependency of the operation in the algebraic structure G When = 0∈F 2 and the algebraic structure G 2 is assigned to the node N (j), q (j) = 1∈F 2 (G 1 ≠ G 2 ). Examples of algebraic structures are groups such as Abelian groups, semigroups, monoids, fields, rings and the like. m is an integer of 1 or more, and i = 0,..., m−1. S (i) is an integer of 1 or more, and {s (i, φ (0)),..., S (i, φ (S (i) -1))} ⊆ {0,. n-1}. However, S (i) is an integer of 2 or more when the relationship between nodes is restricted. Next, from a matrix having y (i, 0),..., Y (i, n-1), y (i, n) as elements of the i-th row, z (i, 0),. , Z (i, n-1), z (i, n) is obtained as information representing a step matrix having elements in the i-th row. Thereafter, it is determined whether or not the node N (j) is an independent node (independent variable) based on the information representing the staircase matrix, and the algebraic structure G 1 or the algebraic structure G 2 is assigned to the node N (j). assign. Here, if the node N (j) is not an independent node (that is, if it is a dependent node (dependent variable)), the assignment of the algebraic structure to the node N (j) depends on the assignment to other nodes. . That is, if the allocation to the independent node is determined, the allocation to the subordinate node is also determined accordingly. As a result, the search space can be reduced and the amount of calculation can be reduced.
独立ノードであるか従属ノードであるかの判定は以下のように行われる。
(1)階段行列がz(0,0)=1である行およびz(1,1)=0である行を含む場合にノードN(1)が独立ノードであると判定する。
(2)階段行列が1以上n−2以下の整数t(ω)についてz(ω,0)=・・・=z(ω,t(ω)−1)=0かつz(ω,t(ω))=1である行およびz(ω+1,t(ω)+1)=0である行を含む場合にノードN(t(ω)+1)が独立ノードであると判定する。ただし、ω∈{0,・・・,m−2}であり、t(ω)∈{1,・・・,n−2}である。
(3)階段行列がz(m−1,0)=・・・=z(m−1,t(m−1)−1)=0かつz(m−1,t(m−1))=1である行を含む場合にノードN(t(m−1)+1),・・・,N(n−1)が独立ノードであると判定する。
(4)それ以外のノードN(j)を従属ノードであると判定する。
これにより、独立ノードであるか従属ノードであるかを少ない演算量で判定できる。
The determination as to whether it is an independent node or a dependent node is performed as follows.
(1) When the staircase matrix includes a row with z (0,0) = 1 and a row with z (1,1) = 0, it is determined that the node N (1) is an independent node.
(2) z (ω, 0) = ... = z (ω, t (ω) −1) = 0 and z (ω, t () for an integer t (ω) having a step matrix of 1 to n−2. The node N (t (ω) +1) is determined to be an independent node when it includes a row where ω)) = 1 and a row where z (ω + 1, t (ω) +1) = 0. However, ωε {0,..., M−2} and t (ω) ε {1,.
(3) The step matrix is z (m−1,0) =... = Z (m−1, t (m−1) −1) = 0 and z (m−1, t (m−1)) , N (n−1) is determined to be an independent node when a row including = 1 is included.
(4) The other nodes N (j) are determined to be subordinate nodes.
This makes it possible to determine whether the node is an independent node or a dependent node with a small amount of calculation.
独立ノードおよび従属ノードへの代数的構造の割り当ては以下のように行われる。
(1)まず、独立ノードであると判定されたノードN(ν)(ただし、ν∈{0,・・・,n−1})に代数的構造G1および代数的構造G2の何れを割り当てるかを決定する。この割り当ては、例えば、所定の評価関数を用いた探索処理によって行われる。
(2)その後、従属ノードである他のノード(η)(ただし、η∈{0,・・・,n−1}かつη≠ν)に代数的構造G1または代数的構造G2を割り当てる。この割り当ては、独立ノードへの割り当てに応じて決まる。
これにより、探索空間を縮小できる。
Algebraic structure assignment to independent nodes and subordinate nodes is performed as follows.
(1) First, a node N (ν) (where νε {0,..., N−1}) determined to be an independent node is assigned an algebraic structure G 1 or an algebraic structure G 2 . Decide whether to allocate. This assignment is performed, for example, by a search process using a predetermined evaluation function.
(2) Thereafter, the algebraic structure G 1 or the algebraic structure G 2 is assigned to another node (η) that is a subordinate node (where η∈ {0,..., N−1} and η ≠ ν). . This assignment is determined according to the assignment to the independent node.
Thereby, the search space can be reduced.
上述の方式は、例えばペアリング等の双線形写像の型変換に適用できる。この場合の構成は以下のようになる。
(1)依存関係グラフは、対称型双線形写像の入力値を得るアルゴリズムに含まれる群演算の依存関係を表す。
(2)代数的構造Gは群であり、対称型双線形写像の定義域G×Gをなす。
(3)代数的構造G1および代数的構造G2は互いに異なる群であり、非対称型双線形写像の定義域G1×G2をなす。
(4)S(i)=2である。同一の対称型双線形写像の入力値の対に対応するノードN(j1)およびN(j2)に対応する線形制約がq(j1)+q(j2)=1∈F2である。ノードN(j3)とノードN(j3)の祖先ノードであるノードN(j4)とに対応する線形制約がq(j3)+q(j4)=0∈F2である。ただし、j1,j2,j3,j4∈{0,・・・,n−1}である。
これにより、対称型双線形写像を用いたアルゴリズムを、非対称型双線形写像を用いたアルゴリズムに高速に変換できる。この具体例については後述する。
The above-described method can be applied to bilinear mapping type conversion such as pairing. The configuration in this case is as follows.
(1) The dependency relationship graph represents a dependency relationship of group operations included in an algorithm for obtaining an input value of a symmetric bilinear map.
(2) The algebraic structure G is a group and forms a domain G × G of a symmetric bilinear map.
(3) The algebraic structure G 1 and the algebraic structure G 2 are groups different from each other, and form the domain G 1 × G 2 of the asymmetric bilinear map.
(4) S (i) = 2. The linear constraint corresponding to the nodes N (j 1 ) and N (j 2 ) corresponding to the same symmetric bilinear mapping input value pair is q (j 1 ) + q (j 2 ) = 1∈F 2 . . Node N (j 3) the node N (j 3) linear constraints q (j 3) corresponding to that the ancestor node node N (j 4) of the + q (j 4) = a 0∈F 2. However, j 1 , j 2 , j 3 , j 4 ε {0,..., N−1}.
As a result, an algorithm using a symmetric bilinear map can be converted to an algorithm using an asymmetric bilinear map at high speed. A specific example will be described later.
以下のように探索空間および評価関数を0−1整数計画法の問題インスタンスに変換し、探索を高速化してもよい。
(1)代数的構造Gでの演算の依存関係を表す依存関係グラフに基づいて、q1,j+Σρ(χ)∈D(j)d(ρ(χ))≦#D(j)であり、∀ρ(χ)∈D(j)についてq1,j+d(ρ(χ))≧1であり、q2,j−Σρ(χ)∈D(j)d(ρ(χ))≦0であり、∀ρ(χ)∈D(j)についてq2,j−d(ρ(χ))≧0である旨を含む線形制約を設定する。ただし、nが2以上の整数であり、j=0,・・・,n−1である。依存関係グラフのノードN(j)に代数的構造G1を割り当てる場合にq1,j=1かつq2,j=0とし、ノードN(j)に代数的構造G2を割り当てる場合にq1,j=0かつq2,j=1とする。G1≠G2であり、ノードN(j)に代数的構造G1を割り当てる場合にd(j)=0とし、ノードN(j)に代数的構造G2を割り当てる場合にd(j)=1とする。ノードN(j)の子孫ノードがDN(ρ(j,0)),・・・,DN(ρ(j,#D(j)−1))であり、D(j)が集合{ρ(j,0),・・・,ρ(j,#D(j)−1)}であり、#D(j)が集合D(j)の要素数である。
(2)上述の線形制約のもと、線形の評価関数f(q1,0,・・・,q1,n−1,q2,0,・・・,q2,n−1)の出力値が所定の条件を満たすq1,0,・・・,q1,n−1,q2,0,・・・,q2,n−1を決定する。
q1,0,・・・,q1,n−1,q2,0,・・・,q2,n−1を決定することにより、各ノードN(j)への代数的構造の割り当てを行うことができる。
The search space and evaluation function may be converted to a problem instance of 0-1 integer programming as follows to speed up the search.
(1) Based on the dependency graph representing the dependency of operations in the algebraic structure G, q 1, j + Σρ (χ) ∈D (j) d (ρ (χ)) ≦ # D (j) Yes, for ∀ρ (χ) ∈D (j), q 1, j + d (ρ (χ)) ≧ 1, and q 2, j −Σρ (χ) ∈D (j) d (ρ (χ) ) ≦ 0, and a linear constraint including that q 2, j −d (ρ (χ)) ≧ 0 is set for ∀ρ (χ) ∈D (j). However, n is an integer greater than or equal to 2, and j = 0, ..., n-1. When assigning the algebraic structure G 1 to the node N (j) of the dependency graph, q 1, j = 1 and q 2, j = 0, and assigning the algebraic structure G 2 to the node N (j) 1, j = 0 and q2 , j = 1. G 1 ≠ G 2 , d (j) = 0 when assigning the algebraic structure G 1 to the node N (j), and d (j) when assigning the algebraic structure G 2 to the node N (j) = 1. The descendant nodes of the node N (j) are DN (ρ (j, 0)),..., DN (ρ (j, # D (j) −1)), and D (j) is a set {ρ ( j, 0), ..., ρ (j, # D (j) -1)}, and #D (j) is the number of elements in the set D (j).
(2) Under the linear constraints described above, the linear evaluation function f (q 1,0 ,..., Q 1, n−1 , q 2,0 ,..., Q 2, n−1 ) Q 1,0 ,..., Q 1, n−1 , q 2,0 ,..., Q 2, n−1 whose output values satisfy a predetermined condition are determined.
q 1,0, ···, q 1, n-1,
評価関数としては、例えば、f(q1,0,・・・,q1,n−1,q2,0,・・・,q2,n−1)=Σj∈{0,・・・,n−1}(wj,1・q1,j+wj,2・q2,j)を用いることができる。ただし、|Gσ|がσ∈{1,2}について代数的構造Gσの元を表現するために必要な情報量(例えば、ビット長)であり、wjはノードN(j)について予め定められた重み係数であり、wj,σ=wj・|Gσ|である。wjは0以上の実数であってもよいし、負の実数であってもよい。この評価関数は、各ノードに割り当てられた代数的構造によって実装されるアルゴリズムでの演算量に対応する。この評価関数の出力値が小さいほど演算量が小さい。そのため、この評価関数の出力値が最小となるような割り当てを行うことが望ましい。 As the evaluation function, for example, f (q 1,0 ,..., Q 1, n−1 , q 2,0 ,..., Q 2, n−1 ) = Σ j∈ {0,. , N−1} (w j , 1 · q 1, j + w j , 2 · q 2, j ) can be used. However, | G σ | is an information amount (for example, bit length) necessary for expressing an element of the algebraic structure G σ with respect to σ∈ {1, 2}, and w j is preliminarily set for the node N (j). It is a determined weighting factor, and w j , σ = w j · | G σ |. w j may be a real number greater than or equal to 0, or may be a negative real number. This evaluation function corresponds to the amount of computation in an algorithm implemented by an algebraic structure assigned to each node. The smaller the output value of this evaluation function, the smaller the calculation amount. For this reason, it is desirable to perform allocation so that the output value of the evaluation function is minimized.
双線形写像の型変換に適用する場合の構成は以下のようになる。
(1)依存関係グラフは、対称型双線形写像の入力値を得るアルゴリズムに含まれる群演算の依存関係を表す。
(2)代数的構造Gは群であり、対称型双線形写像の定義域G×Gをなす。
(3)代数的構造G1および代数的構造G2は互いに異なる群であり、非対称型双線形写像の定義域G1×G2をなす。
(4)線形制約は、同一の対称型双線形写像の入力値の対に対応するノードN(j1)およびN(j2)についてd(j1)+d(j2)=1であり、ノードN(j3)とノードN(j3)の祖先ノードであるノードN(j4)とについてd(j3)+d(j4)=0である旨をさらに含む。
これにより、対称型双線形写像を用いたアルゴリズムを、非対称型双線形写像を用いたアルゴリズムに高速に変換できる。この具体例については後述する。
The configuration when applied to the type conversion of the bilinear map is as follows.
(1) The dependency relationship graph represents a dependency relationship of group operations included in an algorithm for obtaining an input value of a symmetric bilinear map.
(2) The algebraic structure G is a group and forms a domain G × G of a symmetric bilinear map.
(3) The algebraic structure G 1 and the algebraic structure G 2 are groups different from each other, and form the domain G 1 × G 2 of the asymmetric bilinear map.
(4) The linear constraint is d (j 1 ) + d (j 2 ) = 1 for nodes N (j 1 ) and N (j 2 ) corresponding to the same symmetric bilinear mapping input value pair, further comprising the fact the node N (j 3) the node N (j 3) the node N (j 4) and the d (j 3) is an ancestor node of + d (j 4) = 0.
As a result, an algorithm using a symmetric bilinear map can be converted to an algorithm using an asymmetric bilinear map at high speed. A specific example will be described later.
[第1実施形態]
以下では、代数的構造G,G1,G2を群とし、上述の方式をペアリング型変換に適用する例を説明する。
[First Embodiment]
Hereinafter, an example in which the algebraic structures G, G 1 and G 2 are grouped and the above-described method is applied to the pairing type conversion will be described.
<定義>
まず、本形態で用いる用語を定義する。
暗号学において「ペアリング」とは概ね次のような確率的多項式時間アルゴリズムのことである。
1.λは安全変数。
2.qは十分大きい正整数。
3.G1,G2,GTはそれぞれ同型の位数qの群(例えば有限アーベル群)で、それぞれ多項式時間の標本演算および群演算を持つ。
4.e:G1×G2→GTは多項式時間双準同型写像。
5.G1,G2,GT上のCDH問題は難しい。
<Definition>
First, terms used in this embodiment are defined.
In cryptography, “pairing” generally means the following stochastic polynomial time algorithm.
1. λ is a safety variable.
2. q is a sufficiently large positive integer.
3. G 1, in G 2, G T each order q group of the same type (e.g., finite Abelian group), each with a sample operation and group operation of polynomial time.
4). e: G 1 × G 2 → G T is polynomial-time bi-homomorphism.
5. G 1, G 2, CDH problem on the G T is difficult.
暗号プロトコルに用いられるペアリングは以下の3つの型に分類される(例えば、参考文献1「S. D. Galbraith, K. G. Paterson, and N. P. Smart, “Pairings for cryptographers,” Discrete Applied Mathematics, 156(16):3113-3121, 2008.」参照)。
Type1:G1=G2
Type2:G1≠G2,Φ:G2→G1なる多項式時間同型写像が存在する。
Type3:G1≠G2,G1,G2の間に多項式時間同型写像が存在しない。
Type1は構造的に簡単な為、多くの暗号プロトコルがType1を前提に設計されている。しかし計算量や空間計算量(公開鍵や暗号文等のサイズなど)などの効率の観点から現在ではType3のペアリングを使用することが望ましいと考えられるようになった。
Pairing used in cryptographic protocols is classified into the following three types (for example,
Type1: G 1 = G 2
There exists a polynomial time isomorphism map of Type 2 : G 1 ≠ G 2 and Φ: G 2 → G 1 .
Type 3: There is no polynomial time isomorphism between G 1 ≠ G 2 , G 1 , and G 2 .
Since
本形態では、Type1のペアリング(対称型双線形写像)が定義されたペアリング群上で動作する方式A1のアルゴリズムを、Type3のペアリング(非対称型双線形写像)が定義されたペアリング群で動作する方式A3のアルゴリズムに変換する。以下ではType1の群をGと表記する。G=G1であってもよいし、G≠G1であってもよい。G=G2であってもよいし、G≠G2であってもよい。方式A1のアルゴリズムは、方式A1を実行するプロトコルの構成要素の各アルゴリズムからなり、特にType1のペアリングの入力値を得るためアルゴリズムを含む。さらに方式A1の安全性は「帰着」と呼ばれるアルゴリズム(帰着アルゴリズム)の集合が存在することによって示される。方式A1のアルゴリズムは、さらにこの帰着アルゴリズムも含む。
In this embodiment, the method A 1 algorithm that operates on a pairing group in which
方式A1のアルゴリズムは、それに含まれる群演算の依存関係を表す依存関係グラフ(有向グラフ)によって表現できる(例えば、非特許文献2参照)。方式A1のアルゴリズムの記述において、入力、出力、途中結果として現れる各群要素には固有のラベルが与えられる。依存関係グラフでは、アルゴリズムが扱うすべての各群要素のラベルに「ノード(変数)」が割り当てられる。依存関係グラフは、ノードからその群要素を用いて得られる次の群要素のノードに向かう「エッジ」を持つ。図3に方式A1のアルゴリズムに含まれる群演算の依存関係を表す依存関係グラフを例示する。図3の依存関係グラフはノードX1−X10およびp1[0],p1[1],p2[0],p2[1]を含む。各ノードは群Gの群要素に対応し、ノードから他のノードに向かうエッジを持つ。例えば、ノードX1は群Gの生成元gに対応し、ノードX2は生成元gを用いた群演算で得られる群要素gυ2∈Gを表す。例えば、ノードX4,X7はそれぞれ群要素gυ4,gυ7∈Gに対応し、ノードX9は群要素gυ4,gυ7を用いた群演算(例えば、gυ4・gυ7∈G)で得られる群要素gυ9∈Gを表す。 The algorithm of the method A 1 can be expressed by a dependency graph (directed graph) indicating the dependency of group operations included in the algorithm (see, for example, Non-Patent Document 2). In the description of the algorithm type A 1, input, output, and each group element appearing as intermediate results is given a unique label. In the dependency graph, “node (variable)” is assigned to the labels of all group elements handled by the algorithm. The dependency graph has an “edge” from the node toward the node of the next group element obtained by using the group element. It illustrates a dependency graph representing a group operation dependencies included in the algorithm of type A 1 in FIG. The dependency graph of FIG. 3 includes nodes X 1 -X 10 and p 1 [0], p 1 [1], p 2 [0], p 2 [1]. Each node corresponds to a group element of group G, and has an edge from the node toward another node. For example, the node X 1 corresponds to the generator g of the group G, and the node X 2 represents the group element g υ2 εG obtained by the group operation using the generator g. For example, the nodes X 4 and X 7 correspond to the group elements g υ4 and g υ7 εG, respectively, and the node X 9 has a group operation using the group elements g υ4 and g υ7 (for example, g υ4 · g υ7 εG). Represents the group element g υ9 ∈G obtained by
ノードXからエッジ方向にたどってたどり着くことのできるノードをXの「子孫ノード」と呼ぶ。逆に、ノードXからエッジの逆方向にたどってたどり着くことのできるノードをXの「祖先ノード」と呼ぶ。図3の例の場合、ノードX9はノードX2の子孫ノードであり、逆にノードX2はノードX9の祖先ノードである。 A node that can be reached from the node X in the edge direction is called a “descendant node” of X. Conversely, a node that can be reached from the node X in the opposite direction of the edge is called an “ancestor node” of X. In the example of FIG. 3, the node X 9 is a descendant node of the node X 2, node X 2 in the reverse is the ancestor node of the node X 9.
ペアリングの入力値に対応するノードを「ペアリングノード」と呼ぶ。ペアリングの入力値は2個の群要素の対であり、それらに対応するペアリングノードも対となる。図3の例の場合、p1[0],p1[1],p2[0],p2[1]がペアリングノードである。対(p1[0],p1[1])に対応する群要素の対がペアリングe1への入力となり、対(p2[0],p2[1])に対応する群要素の対がペアリングe2への入力となる。 A node corresponding to the input value of pairing is called a “pairing node”. The pairing input value is a pair of two group elements, and a pairing node corresponding to them is also a pair. In the example of FIG. 3, p 1 [0], p 1 [1], p 2 [0], and p 2 [1] are pairing nodes. A pair of group elements corresponding to the pair (p 1 [0], p 1 [1]) becomes an input to the pairing e 1 and a group element corresponding to the pair (p 2 [0], p 2 [1]) pair becomes the input to the pairing e 2 of.
他のノードへのエッジが存在しないノード、および、他のノードへのエッジは存在するがそのエッジをたどった先が再び元のノードに戻るループを構成するノードを「ボトムノード」と呼ぶ。図3の例では、ノードX8がボトムノードである。 A node that does not have an edge to another node and a node that forms a loop in which an edge to another node exists but the destination following the edge returns to the original node is referred to as a “bottom node”. In the example of FIG. 3, the node X 8 is a bottom node.
群Gの元xに対する群演算H(x)=gα1∈Gを仮定する。ただし、α1は任意の正の整数である。このとき、群G1の生成元κ1∈G1および群G2の生成元κ2∈G2、ならびに元xに対応する群要素x1∈G1およびx2∈G2について、α1を知ることなく、H1(x1)=κ1 α1およびH2(x2)=κ2 α1を満たす演算H1およびH2を設定することが困難な群演算Hが存在する。群演算Hの例はハッシュ関数である。このような群演算Hの演算値に対応するノードに群G1およびG2の両方を割り当てることはできない。このようなノードを「2重化禁止ノード」と呼ぶ。図3の例では、ノードX6が2重化禁止ノードである。 Assume a group operation H (x) = g α1 ∈G for an element x of the group G. Here, α1 is an arbitrary positive integer. At this time, the group elements x 1 ∈G 1 and x 2 ∈G 2 corresponding to the generated source kappa 1 ∈G 1 and origin kappa 2 ∈G 2 groups G 2 groups G 1, and based on the x, α1 Without knowing, there is a group operation H in which it is difficult to set operations H 1 and H 2 that satisfy H 1 (x 1 ) = κ 1 α1 and H 2 (x 2 ) = κ 2 α1 . An example of the group operation H is a hash function. It is impossible to assign both the groups G 1 and G 2 to the node corresponding to the operation value of the group operation H. Such a node is called a “duplication prohibited node”. In the example of FIG. 3, the node X 6 is duplicated prohibition node.
ペアリングノード、ボトムノード、および2重化禁止ノードをまとめて「クリティカルノード」と呼ぶ。クリティカルノードではないノードを「ノーマルノード」と呼ぶ。クリティカルノードには、群G1またはG2の何れか一方しか割り当てることができない。一方、ノーマルノードには、群G1またはG2の何れか一方のみを割り当ててもよいし、群G1およびG2の両方を割り当ててもよい。図3の例では、ノードX6,X8,p1[0],p1[1],p2[0],p2[1]がクリティカルノードであり、ノードX1−X5,X7,X9,X10がノーマルノードである。 The pairing node, the bottom node, and the duplication prohibition node are collectively referred to as a “critical node”. A node that is not a critical node is called a “normal node”. Critical node can not allocate any of the group G 1 or G 2 mutually exclusive. On the other hand, the normal node may be assigned only one of the groups G 1 or G 2, may be assigned to both groups G 1 and G 2. In the example of FIG. 3, nodes X 6 , X 8 , p 1 [0], p 1 [1], p 2 [0], p 2 [1] are critical nodes, and nodes X 1 -X 5 , X 7 , X 9 and X 10 are normal nodes.
図4は、図3の依存関係グラフのノードのうち、群G1が割り当てられたノードによって再構築された依存関係グラフを例示する。図5は、図3の依存関係グラフのノードのうち、群G2が割り当てられたノードから再構築された依存関係グラフを例示する。これらの依存関係グラフが方式A3のアルゴリズムを表す。これらの例に示すように、クリティカルノードには群G1またはG2の何れか一方のみしか割り当てることはできないが、ノーマルノードには群G1およびG2の両方を二重に割り当ててもよいし、それらの一方のみを割り当ててもよい。 4, of the nodes of the dependency graph of FIG. 3 illustrates a dependency graph reconstructed by the node group G 1 is assigned. 5, among the nodes of the dependency graph of FIG. 3 illustrates a dependency graph that is reconstructed from the node group G 2 is assigned. These dependency graph representing an algorithm scheme A 3. As shown in these examples, it is not possible to allocate only a either one of the group G 1 or G 2 is the critical node may be assigned to both groups G 1 and G 2 double the normal node However, only one of them may be assigned.
<構成>
図1に例示するように、本形態の構造変換装置1は、入力部11、記憶部12、制御部13、グラフ構築部141、線形制約設定部142、行列生成部143、行列変形部144、判定部145、および構造割当部147を有する。構造割当部147は、探索部147a、割当部147b、および判定部147cを有する。構造変換装置1は、制御部13の制御のもとで各処理を実行する。入力されたデータおよび各部で得られたデータは記憶部12に格納され、必要に応じて読み出されて各処理に用いられる。構造変換装置1は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
<Configuration>
As illustrated in FIG. 1, the
<処理>
図2を用い、方式A1のアルゴリズムを方式A3のアルゴリズムに変換する処理を説明する。まず、方式A1のアルゴリズムが入力部11に入力され、記憶部12に格納される。グラフ構築部141は、記憶部12から方式A1のアルゴリズムを読み込み、それに含まれる群演算の依存関係を表す依存関係グラフgraph(A1)を構築して記憶部12に格納する(ステップS141)。
<Processing>
A process of converting the algorithm of the method A 1 into the algorithm of the method A 3 will be described with reference to FIG. First, the algorithm of the method A 1 is input to the input unit 11 and stored in the
線形制約設定部142は記憶部12から依存関係グラフgraph(A1)を抽出し、それに含まれるクリティカルノードに対する線形制約を設定して出力する。クリティカルノードには、群G1およびG2の両方を二重に割り当てることができないという制約の他、以下の制約がある。
(制約1)対をなすペアリングノードの一方に群G1を割り当てた場合、その他方には群G2が割り当てられなければならない。
(制約2)あるクリティカルノードの祖先ノードのクリティカルノードが存在する場合、それらのクリティカルノードに割り当てられる群は等しい。
ここで、依存関係グラフgraph(A1)のクリティカルノードをN(j)と表記し、N(j)に群G1を割り当てる場合にq(j)=0∈F2とし、N(j)に群G2を割り当てる場合にq(j)=1∈F2とする。ただし、nが2以上の整数であり、j=0,・・・,n−1である。すると、対をなすペアリングノード(同一の対称型双線形写像の入力値の対に対応するノード)N(j1)およびN(j2)に対応する制約1は、関係式q(j1)+q(j2)=1∈F2で表現できる。また、N(j3)とその祖先ノードであるN(j4)とに対応する制約2は、関係式q(j3)+q(j4)=0∈F2で表現できる。このような関係式を一般化すると、q(s(i,φ(0)))+・・・+q(s(i,φ(S(i)−1)))=y(i,n)∈F2となる。ただし、mが1以上の整数であり、i=0,・・・,m−1である。S(i)は2以上の整数(例えば、S(i)=2)であり、{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}⊆{0,・・・,n−1}である。線形制約設定部142は、このような関係式を線形制約として出力する(ステップS142)。
The linear
(Constraint 1) When the group G 1 is assigned to one of the pairing pairing nodes, the group G 2 must be assigned to the other side.
(Constraint 2) When there are critical nodes of ancestor nodes of a certain critical node, the groups assigned to those critical nodes are equal.
Here, the critical node of the dependency graph graph (A 1 ) is expressed as N (j), and when assigning the group G 1 to N (j), q (j) = 0∈F 2 and N (j) Q (j) = 1εF 2 when assigning group G 2 to. However, n is an integer greater than or equal to 2, and j = 0, ..., n-1. Then, a pairing node (a node corresponding to a pair of input values of the same symmetric bilinear map) N (j 1 ) and N (j 2 ) corresponding to the
線形制約q(s(i,φ(0)))+・・・+q(s(i,φ(S(i)−1)))=y(i,n)は、行列生成部143に入力される。行列生成部143は、{0,・・・,n−1}における{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}の補集合の要素rについてy(i,r)=0とし、{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}の要素kについてy(i,k)=1としたy(i,0),・・・,y(i,n−1),y(i,n)をi行目の要素とする行列matrix(A1)を表す情報を得て出力する。すなわち、q(s(i,φ(0)))+・・・+q(s(i,φ(S(i)−1)))=y(i,n)を、y(i,j)∈F2を用いてy(i,0)・q(0)+・・・+y(i,n−1)・q(n−1)=y(i,n)と表記した際のy(i,0),・・・,y(i,n−1),y(i,n)をi行目の要素とするm×n行列をmatrix(A1)とする。y(i,0),・・・,y(i,n−1)およびy(i,n)は、多項式y(i,0)・q(0)+・・・+y(i,n−1)・q(n−1)=y(i,n)の係数および定数項に相当する。図3の例において、X6,X8,p1[0],p1[1],p2[0],p2[1]をそれぞれN(0),N(1),N(2),N(3),N(4),N(5)とすると、matrix(A1)は、以下のようになる(ステップS143)。
0011001
0000111 式(1)
1001000
1100000
The linear constraint q (s (i, φ (0))) +... + Q (s (i, φ (S (i) −1))) = y (i, n) is input to the
0011001
0000111 Formula (1)
1001000
1100000
行列matrix(A1)を表す情報は行列変形部144に入力される。行列変形部144は、この情報を用い、行列matrix(A1)を階段行列e-matrix(A1)に変形する。階段行列e-matrix(A1)は、z(i,0),・・・,z(i,n−1),z(i,n)∈F2をi行目の要素とするm×n行列である。行列matrix(A1)から階段行列e-matrix(A1)への変形は、ガウスの消去法(掃き出し法)等の周知の方法を用いて行うことができる。例えば、式(1)に例示した行列matrix(A1)の階段行列e-matrix(A1)は以下のようになる(ステップS144)。
1001000
0101000 式(2)
0011001
0000111
Information representing the matrix matrix (A 1 ) is input to the
1001000
0101000 Formula (2)
0011001
0000111
階段行列e-matrix(A1)は判定部145に入力される。判定部145は、e-matrix(A1)がz(ι,0)=・・・=z(ι,n−1)=0かつz(ι,n)=1となる要素を含む場合(ただし、ι∈{0,・・・,m−1})、ステップS142で設定された線形制約での割り当てが不可能であると判定し(ステップS145)、処理を終了する。そうでない場合、判定部145は割り当てが可能であると判定し(ステップS145)、処理をステップS147に進める。式(2)の例の場合、非零の最後の行は0000111であり、z(ι,0)=・・・=z(ι,n−1)=0かつz(ι,n)=1となる要素は存在しない。そのため、判定部145は割り当てが可能であると判定し、処理をステップS147に進める。
The staircase matrix e-matrix (A 1 ) is input to the
ステップS147では、まず階段行列e-matrix(A1)が判定部147cに入力される。判定部147cは以下の判定を行う。
(1)階段行列e-matrix(A1)がz(0,0)=1である行およびz(1,1)=0である行を含む場合にN(1)が独立ノードであると判定する。
(2)階段行列e-matrix(A1)が1以上n−2以下の整数t(ω)についてz(ω,0)=・・・=z(ω,t(ω)−1)=0かつz(ω,t(ω))=1である行およびz(ω+1,t(ω)+1)=0である行を含む場合にN(t(ω)+1)が独立ノードであると判定する。
(3)階段行列e-matrix(A1)がz(m−1,0)=・・・=z(m−1,t(m−1)−1)=0かつz(m−1,t(m−1))=1である行を含む場合にノードN(t(m−1)+1),・・・,N(n−1)が独立ノードであると判定する。
(4)それ以外のN(j)を従属ノードであると判定する。
In step S147, first, the staircase matrix e-matrix (A 1 ) is input to the
(1) If the step matrix e-matrix (A 1 ) includes a row where z (0,0) = 1 and a row where z (1,1) = 0, N (1) is an independent node judge.
(2) z (ω, 0) =... = Z (ω, t (ω) −1) = 0 for an integer t (ω) where the step matrix e-matrix (A 1 ) is 1 or more and n−2 or less. N (t (ω) +1) is determined to be an independent node when it includes a row where z (ω, t (ω)) = 1 and a row where z (ω + 1, t (ω) +1) = 0. To do.
(3) The step matrix e-matrix (A 1 ) is z (m−1,0) =... = Z (m−1, t (m−1) −1) = 0 and z (m−1, If the row includes t (m−1)) = 1, it is determined that the nodes N (t (m−1) +1),..., N (n−1) are independent nodes.
(4) It is determined that other N (j) are subordinate nodes.
N(j)が独立ノードである場合、他のクリティカルノードへの群の割り当てと独立にN(j)に群G1またはG2を割り当てることができる。N(j)が従属ノードである場合、他のクリティカルノードへの群の割り当てに応じて群G1またはG2の割り当てが決まる。例えば、式(2)の例では階段行列e-matrix(A1)の3行目が0011001であり、4行目が0000111である。そのため、ω=2,t(2)=2について、z(2,0)=z(2,1)=0かつz(2,2)=1であり、かつ、z(3,3)=0である。そのため、判定部147cはN(3)が独立ノードであると判定する。また、m=4,t(3)=4,n=6について、z(3,0)=・・・=z(3,3)=0かつz(3,4)=1である。そのため、判定部147cは、N(5)が独立ノードであると判定する。この例のN(3)はp1[1]、N(5)はp2[1]であり、これらは確かに独立ノードである(図3)。一方、X6はp1[1]の祖先ノードであり、X8の祖先ノードでもある。また、p1[0]にはp1[1]とは異なる群が割り当てられる。そのため、X6,X8,p1[0]はp1[1]の従属ノードである。また、p2[0]にはp2[1]とは異なる群が割り当てられる。そのため、p2[0]はp2[1]の従属ノードである(ステップS147c)。
If N (j) is an independent node, the group G 1 or G 2 can be assigned to N (j) independently of the assignment of the group to other critical nodes. When N (j) is a subordinate node, the assignment of the group G 1 or G 2 is determined according to the assignment of the group to other critical nodes. For example, in the example of Expression (2), the third row of the staircase matrix e-matrix (A 1 ) is 0011001, and the fourth row is 0000111. Therefore, for ω = 2, t (2) = 2, z (2,0) = z (2,1) = 0 and z (2,2) = 1, and z (3,3) = 0. Therefore, the
N(j)およびN(j)が独立ノードであるか否かの情報は探索部147aに入力される。探索部147aは、所定の評価関数を用い、独立ノードであると判定されたクリティカルノードN(ν)(ただし、ν∈{0,・・・,n−1})に群G1および群G2の何れを割り当てる。評価関数としては、独立ノードであるクリティカルノードN(ν)に対応する群要素のビット長の合計値を表す関数、すべてのクリティカルノードN(j)に対応する群要素のビット長の合計値を表す関数、すべてのノードの群要素のビット長の合計値を表す関数などを例示できる。探索にはモンテカルロ法等の周知の手段を用いればよい。ただし、探索空間は独立ノードであると判定されたクリティカルノードN(ν)だけであるため、その探索に必要な演算量を抑えることができる。探索部147aは、N(ν)への群の割り当て結果を出力する(ステップS147a)。
Information on whether N (j) and N (j) are independent nodes is input to the
割当部147bは、N(ν)への群の割り当て結果およびN(j)を入力とし、従属ノードであると判定されたクリティカルノードへ群G1および群G2の何れを割り当てる。この割り当ては、N(ν)への群の割り当て結果から一義的に定まる。例えば、割当部147bは、階段行列e-matrix(A1)のiが大きい行から順番に、z(i,j)=1となる従属ノードN(j)に割り当てる群を決定していく。例えば、式(2)の例の場合、独立ノードN(3),N(5)には既に群G1またはG2が割り当てられている。まず、割当部147bは、N(5)に割り当てられている群と異なる群をN(4)に割り当てる。次に割当部147bは、N(3)に割り当てられている群と異なる群をN(2)に割り当てる。次に割当部147bは、N(3)に割り当てられている群と同じ群をN(1)に割り当てる。最後に割当部147bは、N(3)に割り当てられている群と同じ群をN(0)に割り当てる。これにより、すべてのクリティカルノードN(0),・・・,N(n−1)に群G1またはG2がそれぞれ割り当てられた。その後、割当部147bは、依存関係グラフgraph(A1)のノーマルノードに群G1およびG2の少なくとも一方を割り当てる。ノーマルノードへの群の割り当ては任意の方法を用いればよい。ただし、クリティカルノードの祖先ノードには、少なくともそのクリティカルノードに割り当てられた群が割り当てられるか、群G1およびG2の両方が二重に割り当てられる。割当部147bは、このように得た群G1が割り当てられたノードからなる依存関係グラフ、および群G2が割り当てられたノードからなる依存関係グラフからなる集合を、依存関係グラフgraph(A3)(例えば、図4,図5)として出力する(ステップS147b)。
<具体例1>
図6に、Bonehらの検証者ローカル失効付きグループ署名の依存関係グラフgraph(A1)を示す(例えば、参考文献2「D. Boneh and H. Shacham, “Group signatures with verifier-local revocation,” In V. Atluri,B. Pfitzmann, and P. D. McDaniel, editors, Proceedings of the 11th ACM Conference on Computer and Communications Security, CCS 2004, Washington, DC, USA, October 25-29, 2004, pages 168-177. ACM, 2004.」等参照)。図6の例では、(p1[0],p1[1]),・・・,(p8[0],p8[1])がそれぞれペアリングノードの対である。また、他のノードへのエッジが存在しないR1,R2,(g1 *)1/γ+xがボトムノードである。また、u,vが2重化禁止ノードにあたる。したがって、このグラフにはu,v,R1,R2,(g1 *)1/γ+x,p1[0],p1[1],・・・,p8[0],p8[1]の21個のクリティカルノードN(0),・・・,N(20)が存在する。
<Specific example 1>
FIG. 6 shows a dependency graph graph (A 1 ) of a verifier local revocation group signature of Boneh et al. (For example, reference document “D. Boneh and H. Shacham,“ Group signatures with verifier-local revocation, ” In V. Atluri, B. Pfitzmann, and PD McDaniel, editors, Proceedings of the 11th ACM Conference on Computer and Communications Security, CCS 2004, Washington, DC, USA, October 25-29, 2004, pages 168-177. ACM, 2004. "). In the example of FIG. 6, (p 1 [0], p 1 [1]),..., (P 8 [0], p 8 [1]) are each a pair of pairing nodes. Also, R 1 , R 2 , (g 1 * ) 1 / γ + x where no edge to another node exists is a bottom node. U and v correspond to nodes that are prohibited from being duplicated. Therefore, this graph shows u, v, R 1 , R 2 , (g 1 * ) 1 / γ + x , p 1 [0], p 1 [1],..., P 8 [0], p 8 [ 1] 21 critical nodes N (0),..., N (20).
この場合、ステップS143では以下の21×22の行列matrix(A1)が生成される。
0000011000000000000001
0000000110000000000001
0000000001100000000001
0000000000011000000001
0000000000000110000001
0000000000000001100001
0000000000000000011001
0000000000000000000111
1010000000000000000000
1001000000000000000000
0100100000000000000000
0100000100000000000000
0100000001000000000000
0100000000010000000000
0100000000000100000000
0100000000000001000000
1000000000000000100000
0100000000000000010000
1000000000000000001000
1000000000000000000100
0100000000000000000010
In this case, the following 21 × 22 matrix matrix (A 1 ) is generated in step S143.
0000011000000000000001
0000000110000000000001
0000000001100000000001
0000000000011000000001
0000000000000110000001
0000000000000001100001
0000000000000000011001
0000000000000000000111
1010000000000000000000
1001000000000000000000
0100100000000000000000
0100000100000000000000
0100000001000000000000
0100000000010000000000
0100000000000100000000
0100000000000001000000
1000000000000000100000
0100000000000000010000
1000000000000000001000
1000000000000000000100
0100000000000000000010
この場合、ステップS144で生成される階段行列e-matrix(A1)は以下のようになる。
1010000000000000000000
0100100000000000000000
0011000000000000000000
0001000000000000100000
0000100100000000000000
0000011000000000000001
0000000110000000000001
0000000011000000000001
0000000001100000000001
0000000000110000000001
0000000000010100000000
0000000000001100000001
0000000000000101000000
0000000000000011000001
0000000000000001100001
0000000000000000110001
0000000000000000011001
0000000000000000001100
0000000000000000000111
0000000000000000000000
0000000000000000000000
In this case, the staircase matrix e-matrix (A 1 ) generated in step S144 is as follows.
1010000000000000000000
0100100000000000000000
0011000000000000000000
0001000000000000100000
0000100100000000000000
0000011000000000000001
0000000110000000000001
0000000011000000000001
0000000001100000000001
0000000000110000000001
0000000000010100000000
0000000000001100000001
0000000000000101000000
0000000000000011000001
0000000000000001100001
0000000000000000110001
0000000000000000011001
0000000000000000001100
0000000000000000000111
0000000000000000000000
0000000000000000000000
この階段行列e-matrix(A1)の非零の最後の行は0000000000000000000111である。そのため、ステップS145では割り当てが可能であると判定される。ステップS147のステップS147cでは、N(6)=p1[1]およびN(20)=p8[1]が独立ノードであると判定され、その他のクリティカルノードが従属ノードであると判定される。ステップS147aでは、p1[1]およびp8[1]を探索空間としてこれらに群G1またはG2を割り当て、ステップS147bでは、p1[1]およびp8[1]への割り当てに応じてその他のノードへの割り当てを行い、依存関係グラフgraph(A3)を得て出力する。 The last non-zero row of this step matrix e-matrix (A 1 ) is 0000000000000000000111. Therefore, it is determined in step S145 that assignment is possible. In step S147c of step S147, N (6) = p 1 [1] and N (20) = p 8 [1] are determined to be independent nodes, and the other critical nodes are determined to be subordinate nodes. . In step S147a, p 1 [1] and p 8 [1] are used as search spaces, and groups G 1 or G 2 are assigned to them. In step S 147b, according to the assignment to p 1 [1] and p 8 [1]. Assign to other nodes, and obtain and output a dependency graph graph (A 3 ).
<具体例2>
図7に、WatersのIDベース暗号の依存関係グラフgraph(A1)を示す(例えば、参考文献3「B. Waters, “Efficient identity-based encryption without random oracles,” In R. Cramer, editor, Advances in Cryptology - EUROCRYPT 2005, 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Aarhus, Denmark, May 22-26, 2005, Proceedings, volume 3494 of Lecture Notes in Computer Science, pages 114-127. Springer, 2005.」等参照)。図7の怜では、(p1[0],p1[1]),・・・,(p4[0],p4[1])がそれぞれペアリングノードの対である。ボトムノードおよび2重化禁止ノードは特に設定していない。したがって、このグラフにはp1[0],p1[1],・・・,p4[0],p4[1]の8個のクリティカルノードN(0),・・・,N(7)が存在する。
<Specific example 2>
FIG. 7 shows a dependency graph graph (A 1 ) of Waters ID-based encryption (for example, Reference 3 “B. Waters,“ Efficient identity-based encryption without random oracles, ”In R. Cramer, editor, Advances. in Cryptology-EUROCRYPT 2005, 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Aarhus, Denmark, May 22-26, 2005, Proceedings, volume 3494 of Lecture Notes in Computer Science, pages 114-127.Springer, 2005. Etc.)). In FIG. 7, (p 1 [0], p 1 [1]),..., (P 4 [0], p 4 [1]) are a pair of pairing nodes. The bottom node and the duplication prohibition node are not particularly set. Therefore, the graph shows eight critical nodes N (0),..., N (p 1 [0], p 1 [1],..., P 4 [0], p 4 [1]. 7) exists.
この場合、ステップS143では4×9の行列matrix(A1)が生成される。
110000001
001100001
000011001
000000111
In this case, a 4 × 9 matrix matrix (A 1 ) is generated in step S143.
110000001
001100001
000011001
000000111
この場合、ステップS144で生成される階段行列e-matrix(A1)はmatrix(A1)と同一となる。 In this case, the step matrix e-matrix (A 1 ) generated in step S144 is the same as the matrix (A 1 ).
この階段行列e-matrix(A1)の非零の最後の行は000000111である。そのため、ステップS145では割り当てが可能であると判定される。ステップS147のステップS147cでは、N(1)=p1[1],N(3)=p2[1],N(5)=p3[1],N(7)=p4[1]が独立ノードであると判定され、その他のクリティカルノードが従属ノードであると判定される。ステップS147aでは、p1[1],p2[1],p3[1],p4[1]を探索空間としてこれらに群G1またはG2を割り当て、ステップS147bでは、それらの割り当てに応じてその他のノードへの割り当てを行い、依存関係グラフgraph(A3)を得て出力する。 The last non-zero row of this step matrix e-matrix (A 1 ) is 000000111. Therefore, it is determined in step S145 that assignment is possible. In step S147c of step S147, N (1) = p 1 [1], N (3) = p 2 [1], N (5) = p 3 [1], N (7) = p 4 [1] Are determined to be independent nodes, and other critical nodes are determined to be subordinate nodes. In step S147a, p 1 [1], p 2 [1], p 3 [1], and p 4 [1] are assigned as search spaces, and groups G 1 or G 2 are assigned to them. In step S 147b, these assignments are made. Accordingly, assignment to other nodes is performed, and a dependency graph graph (A 3 ) is obtained and output.
[第2実施形態]
上述した具体例1(図6)では2個の独立ノードp1[1]およびp8[1]が存在し、それ以外のクリティカルノードが従属ノードであった。そのため、22通りの割り当てが可能であった。また、具体例1(図6)では4個の独立ノードp1[1],p2[1],p3[1],p4[1]が存在し、それ以外のクリティカルノードが従属ノードであった。そのため、24通りの割り当てが可能であった。一般に独立変数がΘ個あるとすると、値の割り当て方法は2Θ通り存在する。本形態では、こうした割り当て(分割)のうち、何らかの評価基準を満たした最適な割り当てを効率的に見つける方法を説明する。
[Second Embodiment]
In the specific example 1 (FIG. 6) described above, there are two independent nodes p 1 [1] and p 8 [1], and the other critical nodes are subordinate nodes. Therefore, it was possible to allocate 2 2 ways. In Specific Example 1 (FIG. 6), there are four independent nodes p 1 [1], p 2 [1], p 3 [1], p 4 [1], and other critical nodes are subordinate nodes. Met. Therefore, it was possible to allocate two ways 4. In general, if there are Θ independent variables, there are 2 Θ assignment methods. In this embodiment, a method for efficiently finding an optimal assignment satisfying some evaluation criteria among such assignments (divisions) will be described.
例えば、図7の依存関係グラフgraph(A1)を持つIDベース暗号の場合、g,g1,g2,u’,uεを公開鍵に持つ。ただし、uεは複数個(L個)の元を表現している。したがって、公開鍵のサイズが最も小さい割り当てを見つけたいなら、g,g1,g2,u’およびL個の元からなるuεの合計サイズが最も小さい依存関係グラフgraph(A3)を見つければよい。 For example, in the case of ID-based encryption having the dependency graph graph (A 1 ) in FIG. 7, g, g 1 , g 2 , u ′, u ε are held as public keys. However, u ε represents a plurality (L) of elements. Therefore, if you want to find the assignment with the smallest public key size, find the dependency graph graph (A 3 ) with the smallest total size of g, g 1 , g 2 , u ′ and L elements u ε. That's fine.
ここで、依存関係グラフgraph(A1)の各ノードN(j)に重み係数wjを定める。例えば、図7の依存関係グラフgraph(A1)の例の場合、g,g1,g2,u’に対応するノードの重み係数を1とし、L個の元からなるuεに対応するノードの重み係数をLとし、その他のノード(ノーマルノード)の重み係数を0と設定する。あるノードN(j)に群Gσ(ただし、σ∈{1,2})が割り当てられ、ノードN(j)が依存関係グラフgraph(A3)の群Gσ側のグラフに含まれているという述語をN(j)∈Gσと記述し、その否定の述語¬(N(j)∈Gσ)を
と記述する。それらの述語が真であるときの値を1と表現し、述語が偽であるときその値を0とする。すなわち、(N(j)∈Gσ)∈{0,1}である。
Here, a weight coefficient w j is determined for each node N (j) of the dependency graph graph (A 1 ). For example, in the case of the dependency graph graph (A 1 ) in FIG. 7, the node weight coefficient corresponding to g, g 1 , g 2 , u ′ is set to 1, and it corresponds to u ε consisting of L elements . The node weighting factor is set to L, and the weighting factors of other nodes (normal nodes) are set to zero. A group G σ (where σ∈ {1, 2}) is assigned to a certain node N (j), and the node N (j) is included in the graph on the group G σ side of the dependency graph graph (A 3 ). the predicates are described with N (j) ∈G σ, the negation of the predicate ¬ the (N (j) ∈G σ)
Is described. The value when those predicates are true is expressed as 1, and the value is 0 when the predicate is false. That is, (N (j) ∈G σ) ∈ {0,1}.
あるノードN(j)がクリティカルノードであるなら、述語N(j)∈G1と述語N(j)∈G2とは排他的である。すなわち、
であり、(N(j)∈G1)∧(N(j)∈G2)=0が成立する。
If a node N (j) is a critical node, it is exclusive with predicate N (j) ∈G 1 and predicate N (j) ∈G 2. That is,
And (N (j) εG 1 ) ∧ (N (j) εG 2 ) = 0 holds.
一方、ノードN(j)がノーマルノードであるなら、(N(j)∈G1)∧(N(j)∈G2)=0は必ずしも成立しない。また、|Gσ|(ただし、σ∈{1,2})をGσの元を表現するために必要なビット数と定義し、wj,σ=wj・|Gσ|と定義する。依存関係グラフgraph(A1)に含まれるノードN(j)の集合をVgとする。これらの記法を用いて、各述語の値をそのまま整数と見なすと、上記の公開鍵のサイズを最小化したい問題等は、以下の評価関数の値を最小化する問題であるととらえることができる。
ノードN(j)の子孫ノードであるクリティカルノードDN(ρ(j,0)),・・・,DN(ρ(j,#D(j)−1))の集合をset(j)={DN(ρ(j,0)),・・・,DN(ρ(j,#D(j)−1))}と定義し、集合D(j)={ρ(j,0),・・・,ρ(j,#D(j)−1)}と定義する。ただし、#D(j)は集合D(j)の要素数を表す正の整数である。ノードN(j)に割り当てられる群Gσとその子孫ノードであるクリティカルノードDN(ρ(j,0)),・・・,DN(ρ(j,#D(j)−1))に割り当てられる群Gσとは一致する。そのため、以下の関係が成り立つ。
クリティカルノードであるノードN(j)に群G1を割り当てる場合にd(j)=0とし、クリティカルノードであるノードN(j)に群G2を割り当てる場合にd(j)=1とする。すなわち、クリティカルノードであるノードN(j)について以下のように定義する。
すると、式(4)は以下のように書くことができる。
ただし、¬d(ρ(χ))はd(ρ(χ))の否定を表す。
When assigning group G 1 to node N (j), which is a critical node, d (j) = 0, and when assigning group G 2 to node N (j), which is a critical node, d (j) = 1. . That is, the node N (j) that is a critical node is defined as follows.
Then equation (4) can be written as:
However, ¬d (ρ (χ)) represents negation of d (ρ (χ)).
ところで、{0,1}上の変数x’,y’について、述語x’∧y’や¬x’を通常の四則演算を用いて以下のように記述できる。
x’∧y’=x’×y’
¬x’=1−x’
連言と否定が四則演算で定義出来るのでどのような命題変数の論理式も命題変数の多項式で定義出来る。また、{0,1}上の変数x’および1以上の自然数ξについてx’ξ=x’であるから、上記の多項式はどの変数に関しても注目している変数以外の変数を定数と見なすと高々1次の多項式とすることができる。ここで、{0,1}上の変数x1’,・・・,xΓ’(ただし、Γは正の整数)について、それらの積をy’=x1’・・・xΓ’とすると以下が成り立つ。
そのため、どのような命題変数の論理式も命題変数の線型不等式の組で記述できる。
By the way, for variables x ′ and y ′ on {0, 1}, predicates x′∧y ′ and ¬x ′ can be described as follows using ordinary four arithmetic operations.
x′∧y ′ = x ′ × y ′
¬x '= 1-x'
Since conjunction and negation can be defined by four arithmetic operations, any logical expression of a propositional variable can be defined by a polynomial of the propositional variable. Also, since the variable x ′ on {0, 1} and the natural number ξ of 1 or more are x ′ ξ = x ′, the above polynomials regards any variable other than the variable of interest as a constant as a constant. It can be at most a first order polynomial. Here, for variables x 1 ′,..., X Γ ′ (where Γ is a positive integer) on {0, 1}, their product is expressed as y ′ = x 1 ′ x Γ ′. Then the following holds.
Therefore, any logical expression of a propositional variable can be described by a set of linear inequalities of the propositional variable.
ここで、q1,j∈{0,1}をq1,j=(N(j)∈G1)と定義する。すなわち、ノードN(j)に群G1を割り当てる場合にq1,j=1とし、ノードN(j)に群G1を割り当てない場合にq1,j=0とする。すると、式(5)(6)より、q1,jは以下の線形不当式の組で記述できる。
式(7)よりy”=1−q1,jであるから、以下が成り立つ。
同様に、q2,j∈{0,1}をq2,j=(N(j)∈G2)と定義する。すなわち、ノードN(j)に群G2を割り当てる場合にq2,j=1とし、ノードN(j)に群G2を割り当てない場合にq2,j=0とする。すると、式(5)(6)より、q2,jは以下の線形不当式の組で記述できる。
式(9)よりz”=1−q2,jであり、Σρ(χ)∈d(j)1=#D(j)であるため、以下が成り立つ。
式(8)(10)より、式(3)の値を最小化する問題は∀N(j)∈Vgに関して
(線形制約1)q1,j+Σρ(χ)∈D(j)d(ρ(χ))≦#D(j),
(線形制約2)∀ρ(χ)∈D(j)についてq1,j+d(ρ(χ))≧1,
(線形制約3)q2,j−Σρ(χ)∈D(j)d(ρ(χ))≦0,
(線形制約4)∀ρ(χ)∈D(j)についてq2,j−d(ρ(χ))≧0
なる線形制約の下、
なる評価関数(すなわち、Σj∈{0,・・・,n−1}(wj,1・q1,j+wj,2・q2,j))を最小化する問題に帰着できる。
From Eqs. (8) and (10), the problem of minimizing the value of Eq. (3) is related to ∀N (j) ∈Vg. (Linear constraint 1) q 1, j + Σρ (χ) ∈D (j) ρ (χ)) ≦ # D (j),
(Linear constraint 2) q 1, j + d (ρ (χ)) ≧ 1, for ∀ρ (χ) ∈D (j)
(Linear constraint 3) q 2, j −Σρ (χ) ∈D (j) d (ρ (χ)) ≦ 0,
(Linear constraint 4) For ∀ρ (χ) ∈D (j), q 2, j −d (ρ (χ)) ≧ 0
Under the linear constraint
Can be reduced to the problem of minimizing the evaluation function (ie, Σ jε {0,..., N−1} (w j , 1 · q 1, j + w j , 2 · q 2, j )).
また、ペアリングの入力値の対に対応するクリティカルノードN(j1)およびN(j2)についてd(j1)+d(j2)=1∈F2を満たし、クリティカルノードN(j3)とその祖先ノードであるクリティカルノードN(j4)とについてd(j3)+d(j4)=0∈F2を満たす。線形制約が、ペアリングの入力値の対に対応するクリティカルノードN(j1)およびN(j2)についてd(j1)+d(j2)=1∈F2であり(線形制約5)、クリティカルノードN(j3)とその祖先ノードであるクリティカルノードN(j4)とについてd(j3)+d(j4)=0∈F2である(線形制約6)旨をさらに含んでもよい。 Further, critical node N (j 1 ) and N (j 2 ) corresponding to the pair of input values of pairing satisfy d (j 1 ) + d (j 2 ) = 1∈F 2 , and critical node N (j 3 ) And its ancestor node critical node N (j 4 ) satisfy d (j 3 ) + d (j 4 ) = 0∈F 2 . The linear constraint is d (j 1 ) + d (j 2 ) = 1∈F 2 for critical nodes N (j 1 ) and N (j 2 ) corresponding to the paired input value pair (linear constraint 5) , Further includes that d (j 3 ) + d (j 4 ) = 0∈F 2 for the critical node N (j 3 ) and the critical node N (j 4 ) that is an ancestor node (linear constraint 6) Good.
以上の評価関数(式11)および線形制約を任意の0−1整数計画法アルゴリズムに入力することにより、q1,0,・・・,q1,n−1,q2,0,・・・,q2,n−1の厳密解または近似解を得る。 By inputting the above evaluation function (Equation 11) and linear constraints into an arbitrary 0-1 integer programming algorithm, q 1,0 ,..., Q 1, n−1 , q 2,0 ,. • Obtain an exact or approximate solution of q2 , n-1 .
次に第1実施形態の方式に上述の探索方式を適用した例を説明する。なお、以下ではこれまでに説明した事項との相違点を中心に説明し、既に説明した事項については同じ参照番号を用いて説明を簡略化する。 Next, an example in which the above search method is applied to the method of the first embodiment will be described. In the following, differences from the items described so far will be mainly described, and the items already described will be simplified by using the same reference numerals.
<構成>
図1に例示するように、本形態の構造変換装置2は、入力部11、記憶部12、制御部13、グラフ構築部141、線形制約設定部142、行列生成部143、行列変形部144、判定部145、および構造割当部247を有する。構造割当部247は、線形制約設定部247a、評価関数設定部247b、探索部247c、および割当部247dを有する。構造変換装置2は、例えば、前述のコンピュータに所定のプログラムが読み込まれることで構成される。
<Configuration>
As illustrated in FIG. 1, the structure conversion device 2 according to the present embodiment includes an input unit 11, a
<処理>
図9を用いて、本形態の処理を説明する。まず、構造変換装置1に代えて構造変換装置2が前述のステップS141−S145の処理を実行する。ステップS145で割り当て可能であると判定された場合、以下のステップS247の処理が実行される。
<Processing>
The processing of this embodiment will be described with reference to FIG. First, instead of the
ステップS247では、まず、線形制約設定部247aに依存関係グラフgraph(A1)が入力される。線形制約設定部247aは、依存関係グラフgraph(A1)を用い、前述の(線形制約1)−(線形制約6)を含む線形制約を設定して出力する(ステップS247a)。
In step S247, first, the dependency graph graph (A 1 ) is input to the linear
評価関数設定部247bには、依存関係グラフgraph(A1)が入力される。評価関数設定部247bは、依存関係グラフgraph(A1)を用い、式(11)の評価関数を設定して出力する(ステップS247b)。
The dependency function graph graph (A 1 ) is input to the evaluation
探索演算部247acには、ステップS247aで得られた線形制約、およびステップS247bで得られた評価関数が入力される。探索演算部247acは、これらの線形制約および評価関数を任意の0−1整数計画法アルゴリズムに入力することにより、q1,0,・・・,q1,n−1,q2,0,・・・,q2,n−1の厳密解または近似解を得て出力する(ステップS247c)。 The search operation unit 247ac receives the linear constraint obtained in step S247a and the evaluation function obtained in step S247b. The search operation unit 247ac inputs these linear constraints and evaluation functions to an arbitrary 0-1 integer programming algorithm, whereby q 1,0 ,..., Q 1, n−1 , q 2,0 , .., Q 2, n-1 are obtained and output as exact or approximate solutions (step S247c).
割当部247dには、q1,0,・・・,q1,n−1,q2,0,・・・,q2,n−1の解が入力される。割当部247dは、これらに従って、依存関係グラフgraph(A1)のすべてのノードN(j)(ただし、j=0,・・・,n−1)に群G1およびG2の少なくとも一方を割り当てる。割当部247dは、例えば、q1,j=1またはq2,j=0の場合にノードN(j)に群G1を割り当て、q1,j=0またはq2,j=1の場合にノードN(j)に群G2を割り当てる。割当部247dは、このように得た群G1が割り当てられたノードからなる依存関係グラフ、および群G2が割り当てられたノードからなる依存関係グラフからなる集合を、依存関係グラフgraph(A3)として出力する(ステップS247d)。
The
[その他の変形例]
本発明は上述の実施の形態に限定されるものではない。例えば、ステップS141の処理を実行した後、ステップS142−S145を実行することなく、ステップS247a−S247dの処理が実行されてもよい。また、本発明は、ペアリング型変換だけではなく、代数構造Gの演算からなる処理を代数的構造G1の演算からなる処理と代数的構造G2の演算からなる処理とに分解する方法一般に適用できる。例えば、第1実施形態で例示した線形制約q(s(i,φ(0)))+・・・+q(s(i,φ(S(i)−1)))=y(i,n)に限定はなく、目的に応じ、どのようなS(i)(例えば、S(i)≧3)、{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}、y(i,n)が設定されてもよい。また、第2実施形態で例示した評価関数はΣj∈{0,・・・,n−1}(wj,1・q1,j+wj,2・q2,j)に限定されず、目的に応じ、q1,jおよびq2,jを含むその他の多項式を評価関数としてもよい。
[Other variations]
The present invention is not limited to the above-described embodiment. For example, after executing the process of step S141, the processes of steps S247a to S247d may be executed without executing steps S142 to S145. Further, the present invention is not only the pairing type conversion, the decomposing generally a process comprising the process comprising a calculation of the algebraic structure G from the calculation of the algebraic processing an operational structures G 1 and algebraic structure G 2 Applicable. For example, the linear constraint q (s (i, φ (0))) +... + Q (s (i, φ (S (i) −1))) exemplified in the first embodiment = y (i, n ) Is not limited, and any S (i) (for example, S (i) ≧ 3), {s (i, φ (0)),..., S (i, φ (S (I) -1))}, y (i, n) may be set. Further, the evaluation function exemplified in the second embodiment is not limited to Σ j∈ {0,..., N−1} (w j , 1 · q 1, j + w j , 2 · q 2, j ). Depending on the purpose, other polynomials including q 1, j and q 2, j may be used as the evaluation function.
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。 The various processes described above are not only executed in time series according to the description, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes. Needless to say, other modifications are possible without departing from the spirit of the present invention.
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。 When the above configuration is realized by a computer, the processing contents of the functions that each device should have are described by a program. By executing this program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium. An example of a computer-readable recording medium is a non-transitory recording medium. Examples of such a recording medium are a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, and the like.
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 This program is distributed, for example, 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, this computer reads a program stored in its own recording device and executes a process according to the read program. As another execution form of the program, the computer may read the program directly from the portable recording medium and execute processing according to the program, and each time the program is transferred from the server computer to the computer. The processing according to the received program may be executed sequentially. The above-described processing may be executed by a so-called ASP (Application Service Provider) type service that realizes a processing function only by an execution instruction and result acquisition without transferring a program from the server computer to the computer. Good.
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。 In the above embodiment, the processing functions of the apparatus are realized by executing a predetermined program on a computer. However, at least a part of these processing functions may be realized by hardware.
1,2 構造変換装置 1, 2 structure converter
Claims (9)
線形制約q(s(i,φ(0)))+・・・+q(s(i,φ(S(i)−1)))=y(i,n)∈F2に対し、{0,・・・,n−1}における{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}の補集合の要素rについてy(i,r)=0とし、{s(i,φ(0)),・・・,s(i,φ(S(i)−1))}の要素kについてy(i,k)=1としたy(i,0),・・・,y(i,n−1),y(i,n)をi行目の要素とする行列を表す情報を得る行列生成部と、
y(i,0),・・・,y(i,n−1),y(i,n)をi行目の要素とする前記行列から、z(i,0),・・・,z(i,n−1),z(i,n)をi行目の要素とする階段行列を表す情報を得る行列変形部と、
前記階段行列を表す情報に基づいて前記ノードN(j)が独立ノードであるか否かを判定して、前記ノードN(j)に前記代数的構造G1または前記代数的構造G2を割り当てる構造割当部と、
を有する構造変換装置。 n is an integer of 2 or more, j = 0,..., n−1, F 2 is a finite field of order 2, and a dependency graph representing the dependency of operations in the algebraic structure G Q (j) = 0εF 2 when assigning the algebraic structure G 1 to the node N (j) of the node, and q (j) = 1ε when assigning the algebraic structure G 2 to the node N (j). F 2 , G 1 ≠ G 2 , m is an integer of 1 or more, i = 0,..., M−1, S (i) is an integer of 1 or more, {s ( i, φ (0)),..., s (i, φ (S (i) -1))} ⊆ {0,.
For a linear constraint q (s (i, φ (0))) +... + Q (s (i, φ (S (i) −1))) = y (i, n) ∈F 2 , {0 ,..., N−1}, y (i) about the element r of the complement of {s (i, φ (0)),..., S (i, φ (S (i) −1))} , R) = 0, and y (i, k) = 1 for the element k of {s (i, φ (0)),..., S (i, φ (S (i) −1))}. A matrix generation unit for obtaining information representing a matrix having y (i, 0),..., Y (i, n-1), y (i, n) as elements of the i-th row;
From the matrix having y (i, 0),..., y (i, n-1) and y (i, n) as elements in the i-th row, z (i, 0),. A matrix transformation unit for obtaining information representing a staircase matrix having (i, n-1) and z (i, n) as elements of the i-th row;
It is determined whether or not the node N (j) is an independent node based on the information representing the step matrix, and the algebraic structure G 1 or the algebraic structure G 2 is assigned to the node N (j). A structure assignment unit;
A structure conversion device.
(1)前記階段行列がz(0,0)=1である行およびz(1,1)=0である行を含む場合に前記ノードN(1)が独立ノードであると判定し、(2)前記階段行列が1以上n−2以下の整数t(ω)についてz(ω,0)=・・・=z(ω,t(ω)−1)=0かつz(ω,t(ω))=1である行およびz(ω+1,t(ω)+1)=0である行を含む場合に前記ノードN(t(ω)+1)が独立ノードであると判定し、(3)前記階段行列がz(m−1,0)=・・・=z(m−1,t(m−1)−1)=0かつz(m−1,t(m−1))=1である行を含む場合に前記ノードN(t(m−1)+1),・・・,N(n−1)が独立ノードであると判定する第1判定部を有する構造変換装置。 The structure conversion device according to claim 1,
(1) When the step matrix includes a row where z (0,0) = 1 and a row where z (1,1) = 0, the node N (1) is determined to be an independent node; 2) z (ω, 0) = ... = z (ω, t (ω) −1) = 0 and z (ω, t () for an integer t (ω) where the step matrix is 1 or more and n−2 or less. ω)) = 1 and a node where z (ω + 1, t (ω) +1) = 0 are included, it is determined that the node N (t (ω) +1) is an independent node, (3) The step matrix is z (m−1,0) =... = Z (m−1, t (m−1) −1) = 0 and z (m−1, t (m−1)) = 1. , N (n−1) is a separate determination node that determines that the node N (t (m−1) +1),..., N (n−1) is an independent node.
前記構造割当部は、独立ノードであると判定された前記ノードN(ν)(ただし、ν∈{0,・・・,n−1})に前記代数的構造G1および前記代数的構造G2の何れを割り当てるかを決定した後、他の前記ノード(η)(ただし、η∈{0,・・・,n−1}かつη≠ν)に前記代数的構造G1または前記代数的構造G2を割り当てる、構造変換装置。 The structure conversion device according to claim 2,
The structure allocating unit adds the algebraic structure G 1 and the algebraic structure G to the node N (ν) (where νε {0,..., N−1}) determined to be an independent node. 2 is assigned, the algebraic structure G 1 or the algebraic structure is assigned to the other node (η) (where η∈ {0,..., N−1} and η ≠ ν). assign structures G 2, structure conversion device.
前記階段行列がz(ι,0)=・・・=z(ι,n−1)=0かつz(ι,n)=1となる要素を含む場合、前記線形制約での割り当てが不可能であると判定する第2判定部を有する構造変換装置。 The structure conversion device according to any one of claims 1 to 3,
When the staircase matrix includes elements such that z (ι, 0) =... = Z (ι, n−1) = 0 and z (ι, n) = 1, assignment with the linear constraint is impossible. The structure conversion apparatus which has the 2nd determination part which determines with being.
前記依存関係グラフは、対称型双線形写像の入力値を得るアルゴリズムに含まれる群演算の依存関係を表し、
前記代数的構造Gは群であり、前記対称型双線形写像の定義域G×Gをなし、
前記代数的構造G1および前記代数的構造G2は互いに異なる群であり、非対称型双線形写像の定義域G1×G2をなし、
S(i)=2であり、
同一の前記対称型双線形写像の入力値の対に対応する前記ノードN(j1)およびN(j2)に対応する前記線形制約がq(j1)+q(j2)=1∈F2であり、
前記ノードN(j3)と前記ノードN(j3)の祖先ノードである前記ノードN(j4)とに対応する前記線形制約がq(j3)+q(j4)=0∈F2である、構造変換装置。 The structure conversion device according to any one of claims 1 to 4,
The dependency graph represents a group operation dependency included in an algorithm for obtaining an input value of a symmetric bilinear map,
The algebraic structure G is a group and forms a domain G × G of the symmetric bilinear map,
The algebraic structure G 1 and the algebraic structure G 2 are groups different from each other, and form a domain G 1 × G 2 of an asymmetric bilinear map,
S (i) = 2,
The linear constraint corresponding to the nodes N (j 1 ) and N (j 2 ) corresponding to the same symmetric bilinear mapping input value pair is q (j 1 ) + q (j 2 ) = 1∈F 2
The node N (j 3) and the node N (j 3) the node N (j 4) corresponding to said linear constraints q (j 3) is an ancestor node of + q (j 4) = 0∈F 2 The structure conversion device.
前記依存関係グラフに基づいて、q1,j+Σρ(χ)∈D(j)d(ρ(χ))≦#D(j)であり、∀ρ(χ)∈D(j)についてq1,j+d(ρ(χ))≧1であり、q2,j−Σρ(χ)∈D(j)d(ρ(χ))≦0であり、∀ρ(χ)∈D(j)についてq2,j−d(ρ(χ))≧0である旨を含む線形制約を設定する線形制約設定部と、
前記線形制約のもと、線形の評価関数f(q1,0,・・・,q1,n−1,q2,0,・・・,q2,n−1)の出力値が所定の条件を満たすq1,0,・・・,q1,n−1,q2,0,・・・,q2,n−1を決定する評価探索部と、
を有する構造変換装置。 n is an integer of 2 or more, j = 0, ···, a n-1, algebraic structure G 1 to node N (j) of the dependency graph representing the operation of the dependencies in algebraic structure G Q 1, j = 1 and q 2, j = 0, and when assigning the algebraic structure G 2 to the node N (j), q 1, j = 0 and q 2, j = 1, When G 1 ≠ G 2 and when assigning the algebraic structure G 1 to the node N (j), d (j) = 0, and when assigning the algebraic structure G 2 to the node N (j) d (j) = 1, and descendant nodes of the node N (j) are DN (ρ (j, 0)),..., DN (ρ (j, # D (j) −1)), D (j) is a set {ρ (j, 0),..., Ρ (j, # D (j) −1)}, and #D (j) is the number of elements of the set D (j). Yes,
Based on the dependency graph, q 1, j + Σρ (χ) ∈D (j) d (ρ (χ)) ≦ # D (j), and q for ∀ρ (χ) ∈D (j) 1, j + d (ρ (χ)) ≧ 1, q 2, j −Σρ (χ) ∈D (j) d (ρ (χ)) ≦ 0, and ∀ρ (χ) ∈D ( a linear constraint setting unit that sets a linear constraint including j 2, q 2, j −d (ρ (χ)) ≧ 0;
Under the linear constraint, the output value of the linear evaluation function f (q 1,0 ,..., Q 1, n−1 , q 2,0 ,..., Q 2, n−1 ) is predetermined. and satisfies q 1,0, ···, q 1, n-1, q 2,0, ···, evaluation search unit for determining a q 2, n-1,
A structure conversion device.
|Gσ|がσ∈{1,2}について前記代数的構造Gσの元を表現するために必要な情報量であり、wjが前記ノードN(j)について予め定められた重み係数であり、wj,σ=wj・|Gσ|であり、前記評価関数はf(q1,0,・・・,q1,n−1,q2,0,・・・,q2,n−1)=Σj∈{0,・・・,n−1}(wj,1・q1,j+wj,2・q2,j)であり、前記所定の条件は前記評価関数の出力値が最小となることである、構造変換装置。 The structure conversion device according to claim 6,
| G σ | is the amount of information necessary to express the element of the algebraic structure G σ with respect to σ∈ {1, 2}, and w j is a weighting factor predetermined for the node N (j) Yes, w j , σ = w j · | G σ |, and the evaluation function is f (q 1,0 ,..., Q 1, n−1 , q 2,0 ,..., Q 2. , N−1 ) = Σ j∈ {0,..., N−1} (w j , 1 · q 1, j + w j , 2 · q 2, j ), and the predetermined condition is the evaluation A structure converter that minimizes the output value of a function.
前記依存関係グラフは、対称型双線形写像の入力値を得るアルゴリズムに含まれる群演算の依存関係を表し、
前記代数的構造Gは群であり、前記対称型双線形写像の定義域G×Gをなし、
前記代数的構造G1および前記代数的構造G2は互いに異なる群であり、非対称型双線形写像の定義域G1×G2をなし、
前記線形制約は、同一の前記対称型双線形写像の入力値の対に対応する前記ノードN(j1)およびN(j2)についてd(j1)+d(j2)=1であり、前記ノードN(j3)と前記ノードN(j3)の祖先ノードである前記ノードN(j4)とについてd(j3)+d(j4)=0である旨をさらに含む、構造変換装置。 The structure conversion device according to claim 6 or 7, wherein
The dependency graph represents a group operation dependency included in an algorithm for obtaining an input value of a symmetric bilinear map,
The algebraic structure G is a group and forms a domain G × G of the symmetric bilinear map,
The algebraic structure G 1 and the algebraic structure G 2 are groups different from each other, and form a domain G 1 × G 2 of an asymmetric bilinear map,
The linear constraint is d (j 1 ) + d (j 2 ) = 1 for the nodes N (j 1 ) and N (j 2 ) corresponding to the same symmetric bilinear mapping input value pair, further comprising the fact the node N (j 3) and the node N (j 3) the node N (j 4) and the d (j 3) is an ancestor node of + d (j 4) = 0, structure conversion apparatus.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015088396A JP6348082B2 (en) | 2015-04-23 | 2015-04-23 | Structure conversion apparatus and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015088396A JP6348082B2 (en) | 2015-04-23 | 2015-04-23 | Structure conversion apparatus and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2016206444A JP2016206444A (en) | 2016-12-08 |
| JP6348082B2 true JP6348082B2 (en) | 2018-06-27 |
Family
ID=57489551
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015088396A Active JP6348082B2 (en) | 2015-04-23 | 2015-04-23 | Structure conversion apparatus and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6348082B2 (en) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4748206B2 (en) * | 2008-11-11 | 2011-08-17 | ソニー株式会社 | Information processing apparatus, information processing method, and program |
| JP5980178B2 (en) * | 2013-07-29 | 2016-08-31 | 日本電信電話株式会社 | Program conversion apparatus, program conversion method, and program |
-
2015
- 2015-04-23 JP JP2015088396A patent/JP6348082B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2016206444A (en) | 2016-12-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Gamlath et al. | Weighted matchings via unweighted augmentations | |
| Dahlberg et al. | Transforming graph states using single-qubit operations | |
| Liu et al. | Improved quantum circuits for AES: Reducing the depth and the number of qubits | |
| Chestnut et al. | Hardness and approximation for network flow interdiction | |
| Speelman | Instantaneous non-local computation of low T-depth quantum circuits | |
| JP2017515195A (en) | Solve digital logic constraint problems via adiabatic quantum computation | |
| Liu et al. | Pushing the limits of valiant’s universal circuits: Simpler, tighter and more compact | |
| Abe et al. | Design in type-I, run in type-III: Fast and scalable bilinear-type conversion using integer programming | |
| Campanelli et al. | : Linear Time Prover SNARKs with Constant Size Proofs and Square Root Size Universal Setup | |
| Kamara et al. | Parallel homomorphic encryption | |
| Dolev et al. | Non-local computation of quantum circuits with small light cones | |
| Amorós et al. | Explicit connections between supersingular isogeny graphs and Bruhat–Tits trees | |
| Ouyang | Computing spectral bounds of the Heisenberg ferromagnet from geometric considerations | |
| EE | Quantum computing | |
| Gerke et al. | Nonvertex‐balanced factors in random graphs | |
| Beigi et al. | Graph concatenation for quantum codes | |
| Mowshowitz et al. | Entropy, orbits, and spectra of graphs | |
| Datta et al. | An improved reversible circuit synthesis approach using clustering of ESOP cubes | |
| Roşie | Adaptive-secure VRFs with shorter keys from static assumptions | |
| Billings et al. | Identifying almost invariant sets in stochastic dynamical systems | |
| Lau et al. | Efficient edge splitting-off algorithms maintaining all-pairs edge-connectivities | |
| JP6348082B2 (en) | Structure conversion apparatus and program | |
| Boura et al. | Differential analysis of the ternary hash function troika | |
| Cong et al. | zkmatrix: Batched short proof for committed matrix multiplication | |
| JP6691491B2 (en) | Pairing conversion device, pairing conversion method, program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170829 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180518 |
|
| 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: 20180529 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180530 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6348082 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |