JP2010020189A - Batch verification device and program - Google Patents
Batch verification device and program Download PDFInfo
- Publication number
- JP2010020189A JP2010020189A JP2008182047A JP2008182047A JP2010020189A JP 2010020189 A JP2010020189 A JP 2010020189A JP 2008182047 A JP2008182047 A JP 2008182047A JP 2008182047 A JP2008182047 A JP 2008182047A JP 2010020189 A JP2010020189 A JP 2010020189A
- Authority
- JP
- Japan
- Prior art keywords
- value
- signature
- scalar multiplication
- elliptic curve
- verification
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は、署名データを一括して検証する技術に関する。 The present invention relates to a technique for verifying signature data collectively.
デジタル署名の技術では、署名者は、署名対象の電子データに対し、署名者が秘密にしている署名鍵を用いて署名データを生成し、署名検証者は、公開されている検証鍵を用いて署名データを復号して、署名対象となっている電子データと比較することにより、署名者の真偽や電子データに対する改ざんの有無等を検出することができるようにしている。 In the digital signature technology, the signer generates signature data for the electronic data to be signed by using a signature key that is kept secret by the signer, and the signature verifier uses the public verification key. By decrypting the signature data and comparing it with the electronic data to be signed, it is possible to detect the authenticity of the signer and the presence / absence of alteration of the electronic data.
このようなデジタル署名の技術では、検証を行う際に重い処理(数学的な計算)を繰り返し行わなければならないが、例えば、非特許文献1に記載の技術では、複数のデジタル署名を一括して検証することで、デジタル署名の検証処理の効率性を向上させている。
In such a digital signature technique, heavy processing (mathematical calculation) must be repeatedly performed at the time of verification. For example, in the technique described in Non-Patent
例えば、通常の署名検証では、各i(iは順番を示すインデックスであって、1≦i≦u(u:2以上の自然数)を満たす自然数)に対応するデジタル署名に対して、下記の(1)式を満たすかどうかを各々別個に検証する。 For example, in normal signature verification, for digital signatures corresponding to each i (i is a natural number satisfying 1 ≦ i ≦ u (u: a natural number of 2 or more), i is an index indicating an order), the following ( 1) Verify separately whether each expression is satisfied.
但し、各i(i=1,・・・,u)に対してxi、yiはそれぞれ下記の(2)式及び(3)式を満たす。 However, for each i (i = 1,..., U), x i and y i satisfy the following expressions (2) and (3), respectively.
ここで、Gは、位数をn(nは大きな素数)とする有限巡回群であり、gは、群Gの生成元である。さらに、(xi,yi)は、(1)式を満たすか否かを検証するための組(バッチインスタンス)である。 Here, G is a finite cyclic group whose order is n (n is a large prime number), and g is a generation source of the group G. Further, (x i , y i ) is a set (batch instance) for verifying whether or not the expression (1) is satisfied.
このようなデジタル署名の技術では、検証を行う際に重い処理(数学的な計算)を繰り返し行わなければならないが、例えば、非特許文献1に記載のRandom Subset Testでは、下記の(4)式及び(5)式を満たすか否かを検証することで、複数のデジタル署名を一括して検証することで(重い処理を一回だけ行うことで)、デジタル署名を効率的に検証することができるようにしている。
In such a digital signature technique, heavy processing (mathematical calculation) must be repeatedly performed for verification. For example, in the Random Subset Test described in
ここで、(5)式に示すように、各i(i=1,・・・,u)に対してsiは0又は1がランダムに選ばれたものである。 Here, as shown in the equation (5), 0 or 1 is randomly selected for s i for each i (i = 1,..., U).
また、非特許文献1に記載のSmall Exponents Testでは、下記の(6)式及び(7)式を満たすか否かを検証することで、デジタル署名を効率的に検証することができるようにしている。
In addition, in the Small Exponents Test described in
ここで、siは0又は2m−1からランダムに選ばれた整数である。なお、m(mは任意に選択された正の整数)はセキュリティレベルであり、このmによってセキュリティレベルが定まる。 Here, s i is an integer randomly selected from 0 or 2m−1. Note that m (m is a positive integer selected arbitrarily) is a security level, and the security level is determined by this m.
そして、非特許文献1に記載の一括検証における効率性は、バッチインスタンスの個数nとセキュリティレベルmに依存する。
The efficiency in the batch verification described in
また、楕円曲線に基づく署名方式における一括検証では、多重スカラー倍算を行う処理が、処理全体の大部分を占める。そのため、Frobenius展開を用いた効率的な一括検証を行う技術が、非特許文献2、非特許文献3に記載されている。 In batch verification in a signature scheme based on an elliptic curve, a process of performing multiple scalar multiplication occupies most of the entire process. Therefore, Non-Patent Document 2 and Non-Patent Document 3 describe techniques for performing efficient collective verification using Frobenius expansion.
以上に記載したように、非特許文献1に記載の一括検証処理の技術では、通常の署名検証処理と比較して効率性を向上させることができるが、楕円曲線に基づく署名方式への適用に関しては記載がなされておらず、楕円曲線に基づく署名方式において十分な効率性を発揮することはできないものと思われる。
As described above, the collective verification processing technique described in
また、非特許文献2及び非特許文献3に記載の一括検証方法は、検証する署名の個数が増えると、多重スカラー倍算の中間値の更新が頻繁に発生するため、この中間値の更新が処理性能のボトルネックとなっており、十分な処理性能を達成することが困難である。さらに、このような中間値の更新を避けるためには、中間値の結果すべてを記憶領域に格納しておく方法もあるが、この場合、大きな記憶領域を必要とするため、実システムにおいて様々なアプリケーションが実行されているような環境では、アプリケーションの処理時間に大きな影響を及ぼす。 Further, in the batch verification methods described in Non-Patent Document 2 and Non-Patent Document 3, if the number of signatures to be verified increases, an intermediate value of multiple scalar multiplication frequently occurs. It is a bottleneck in processing performance and it is difficult to achieve sufficient processing performance. Furthermore, in order to avoid such an update of the intermediate value, there is a method of storing all the results of the intermediate value in the storage area. In this case, since a large storage area is required, there are various methods in the actual system. In an environment where an application is executed, the processing time of the application is greatly affected.
そこで、本発明は、検証する署名の個数が多い場合であっても、高い安全性と高い効率性を兼ね備える一括検証を実現することを目的とする。 Therefore, an object of the present invention is to realize collective verification that combines high security and high efficiency even when the number of signatures to be verified is large.
以上の課題を解決するため、本発明は、スカラー値をFrobinius展開した値において共通因数をくくり出すことで、乗算回数を減らす。 In order to solve the above problems, the present invention reduces the number of multiplications by creating a common factor in a value obtained by expanding a scalar value into a Frobinius.
例えば、本発明は、楕円曲線に基づく署名方式により生成された複数の署名データを、二重スカラー倍算により算出される値と、多重スカラー倍算により算出される値と、が対応しているか否かで一括して検証する一括検証装置であって、前記多重スカラー倍算のスカラー値に対して、Frobinius展開を行い、展開値を算出する処理と、前記展開値を、共通因数を係数とする値の第一の値と、その他の値の第二の値と、からなる第一の加算値に分解する処理と、前記第一の加算値を、前記第一の値において共通因数をくくりだし、第二の加算値とする処理と、前記第二の加算値により前記多重スカラー倍算を行う処理と、を行う制御部を備えること、を特徴とする。 For example, according to the present invention, a plurality of signature data generated by a signature scheme based on an elliptic curve corresponds to a value calculated by double scalar multiplication and a value calculated by multiple scalar multiplication. A batch verification apparatus that collectively verifies whether or not, and performing a Frobinius expansion on the scalar value of the multiple scalar multiplication to calculate the expansion value, the expansion value, the common factor as a coefficient A process of decomposing into a first addition value consisting of a first value of the value to be processed and a second value of the other values, and combining the first addition value with a common factor in the first value. However, it is characterized by comprising a control unit that performs a process of obtaining the second added value and a process of performing the multiple scalar multiplication using the second added value.
以上のように、本発明によれば、検証する署名の個数が多い場合であっても、高い安全性と高い効率性を兼ね備える一括検証を実現することができる。 As described above, according to the present invention, even when the number of signatures to be verified is large, collective verification having both high security and high efficiency can be realized.
図1は、本発明の第一の実施形態である署名一括検証システム100の概略図である。
FIG. 1 is a schematic diagram of a signature
図示するように、署名一括検証システム100は、署名装置110と、検証装置130と、を備え、これらの署名装置110及び検証装置130は、ネットワーク150を介して相互に情報の送受信を行うことができるようにされている。
As shown in the figure, the signature
そして、本実施形態である署名一括検証システム100では、署名装置110でメッセージMに対する署名Sの生成を行い、検証装置130で署名Sの一括検証を行う。
In the signature
図2は、署名装置110の概略図である。
FIG. 2 is a schematic diagram of the
ここで、本実施形態における署名方式は、ECDSA署名、または、ECDSA*署名を用いるが、このような態様に限定されるわけではない。 Here, the ECDSA signature or the ECDSA * signature is used as the signature method in the present embodiment, but the present invention is not limited to such a mode.
図示するように、署名装置110は、記憶部111と、制御部114と、入力部117と、出力部118と、通信部119と、を備える。
As illustrated, the
記憶部111は、署名鍵記憶領域112と、データ記憶領域113と、を備える。
The
署名鍵記憶領域112には、署名を行う際の鍵情報である署名鍵を特定する情報が記憶される。
In the signature
ここで、ECDSA署名(または、ECDSA*署名)における署名鍵dは、下記の(8)式で示される整数である。 Here, the signature key d in the ECDSA signature (or ECDSA * signature) is an integer represented by the following equation (8).
データ記憶領域113には、署名を行う対象となるデータであるメッセージを特定する情報が記憶される。
The
制御部114は、署名生成処理部115と、数学関数計算部116と、を備える。
The
署名生成処理部115は、署名を行う対象となるデータであるメッセージMに対する署名データを生成する処理を制御する。
The signature
例えば、本実施形態では、署名生成処理部115は、署名を行う対象となるデータであるメッセージMを、予め定められたハッシュ関数Hに入力することで、入力データを生成する。
For example, in this embodiment, the signature
そして、署名生成処理部115は、署名鍵記憶領域112に記憶されている署名鍵を取得して、入力データとともに、数学関数計算部116に入力する。
Then, the signature
また、署名生成処理部115は、数学関数計算部116より生成された署名Sを取得して、署名SとメッセージMとを署名データとして、通信部119を介して検証装置130に送信する。
The signature
数学関数計算部116は、署名生成処理部115から入力された入力データに対して、署名生成処理部115から入力された署名鍵を用いて、予め定められたアルゴリズムによる暗号化を施して署名を生成する。
The mathematical
例えば、ECDSA署名において、上述の署名鍵dを用いたメッセージMi(i=1,・・・,u)に対する署名Siは、下記の(9)式、(10)式、(11)式及び(12)式で計算される。 For example, in the ECDSA signature, the signature S i for the message M i (i = 1,..., U) using the signature key d is expressed by the following formulas (9), (10), and (11): And (12).
ここで、Hは暗号学的ハッシュ関数を意味する。また、x(Ri)は楕円曲線E(Fq e)上の点Riのx座標を表す。 Here, H means a cryptographic hash function. X (R i ) represents the x coordinate of the point R i on the elliptic curve E (F q e ).
また、kiは署名生成時に生成した乱数であり、下記の(13)式を満たす。 K i is a random number generated at the time of signature generation and satisfies the following expression (13).
なお、ECDSA署名(または、ECDSA*署名)におけるシステムパラメータは、下記の通りである。 The system parameters in the ECDSA signature (or ECDSA * signature) are as follows.
E/Fq:有限体Fq上において定義された楕円曲線。 E / F q : An elliptic curve defined on the finite field F q .
#E(Fq)=n×h(但し、hは小さな整数、nは大きな素数)。 #E (F q ) = n × h (where h is a small integer and n is a large prime number).
q:nのビットサイズが160以上である素数pのべき(q=pr)。 q: prime bit size of n is more than 160 p powers of (q = p r).
P:位数がnであるようなE(Fq)上の点。 P: A point on E (F q ) such that the order is n.
これらのシステムパラメータは、ネットワーク上に公開される。 These system parameters are exposed on the network.
そして、数学関数計算部116は、このようにして生成した署名を署名生成処理部115に出力する。
Then, the mathematical
入力部117は、情報の入力を受け付ける。
The
出力部118は、情報を出力する。
The
通信部119は、ネットワーク150を介して、情報の送受信を行う。
The communication unit 119 transmits and receives information via the
以上に記載した署名装置110は、例えば、図3(コンピュータ900の概略図)に示すような、CPU(Central Processing Unit)901と、メモリ902と、HDD(Hard Disk Drive)等の外部記憶装置903と、CD−ROM(Compact Disk Read Only Memory)やDVD−ROM(Digital Versatile Disk Read Only Memory)等の可搬性を有する記憶媒体904に対して情報を読み書きする読書装置905と、キーボードやマウスなどの入力装置906と、ディスプレイなどの出力装置907と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置908と、を備えた一般的なコンピュータ900で実現できる。
The
例えば、記憶部111は、CPU901がメモリ902又は外部記憶装置903を利用することにより実現可能であり、制御部114は、外部記憶装置903に記憶されている所定のプログラムをメモリ902にロードしてCPU901で実行することで実現可能であり、入力部117は、CPU901が入力装置906を利用することで実現可能であり、出力部118は、CPU901が出力装置907を利用することで実現可能であり、通信部119は、CPU901が通信装置908を利用することで実現可能である。
For example, the
この所定のプログラムは、読書装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、外部記憶装置903にダウンロードされ、それから、メモリ902上にロードされてCPU901により実行されるようにしてもよい。また、読書装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、メモリ902上に直接ロードされ、CPU901により実行されるようにしてもよい。
The predetermined program is downloaded from the
図4は、検証装置130の概略図である。
FIG. 4 is a schematic diagram of the
図示するように、検証装置130は、記憶部131と、制御部134と、入力部137と、出力部138と、通信部139と、を備える。
As illustrated, the
記憶部131は、検証鍵記憶領域132と、署名データ記憶領域133と、を備える。
The
検証鍵記憶領域132には、署名装置110から送信されてきた署名データに含まれている署名を復号化して検証するための鍵情報である検証鍵を特定する情報が記憶される。
The verification
署名データ記憶領域133には、署名装置110から送信されてきた署名データを特定する情報が記憶される。
In the signature
制御部134は、署名一括検証処理部135と、数学関数計算部136と、を備える。
The
署名一括検証処理部135は、署名装置110から送信されてきた署名データを一括して検証する処理を制御する。
The signature batch
例えば、本実施形態においては、署名一括検証処理部135は、検証鍵記憶領域132に記憶されている検証鍵及び署名データ記憶領域133に記憶されている署名データを記憶部131から取得し、数学関数計算部136に入力する。
For example, in the present embodiment, the signature batch
そして、署名一括検証処理部135は、数学関数計算部136から一括検証の結果を取得して、記憶部131に記憶するか、または、出力部138や通信部139を介して、検証結果を出力する。
The signature batch
数学関数計算部136は、署名一括検証部135から入力された署名データに含まれている署名に対して、署名一括検証部135から入力された検証鍵を用いて、予め定められたアルゴリズムによる署名の一括検証を施して、署名の有効性を確認する。
The mathematical
例えば、本実施形態においては、数学関数計算部136は、バッチインスタンス生成部136aと、多重スカラー倍算計算部136bと、を備える。
For example, in the present embodiment, the mathematical
バッチインスタンス生成部136aは、署名一括検証部135から入力された署名データに含まれている署名から、バッチインスタンスを生成する。
The batch
ここで、バッチインスタンスの生成方法は、署名装置110及び検証装置130で使用する署名方式に依存する。なお、署名装置110及び検証装置130で使用する署名方式により生成された署名がバッチインスタンスとなっている場合には、数学関数計算部136にバッチインスタンス生成部136aを設ける必要はない。
Here, the batch instance generation method depends on the signature method used in the
例えば、ECDSA署名方式で生成された署名については、一括検証方式を適用できるように変形する必要があるため、数学関数計算部136のバッチインスタンス生成部136aは、署名装置110から取得した署名をバッチインスタンスに変形する。
For example, since the signature generated by the ECDSA signature method needs to be modified so that the batch verification method can be applied, the batch
具体的には、数学関数計算部136のバッチインスタンス生成部136aは、上述の(9)式で算出された署名Siを、上述の(10)式、(11)式及び(12)式を用いて、下記の(14)式に示すバッチインスタンスを算出する。
Specifically,
多重スカラー倍算計算部136bは、多重スカラー倍計算処理を行う。
The multiple scalar
そして、多重スカラー倍算計算部136bは、下記の(15)式を満たすかどうかで検証を行う。
Then, the multiple scalar
即ち、(15)式を満たす場合は「有効」として署名Siを受け入れ、(15)式を満たさない場合は「無効」として署名Siを拒否する。 That is, if the expression (15) is satisfied, the signature S i is accepted as “valid”, and if the expression (15) is not satisfied, the signature S i is rejected as “invalid”.
ここで、Li(i=1,・・・,u)は、下記の(16)式を満たす集合SETからランダムに選択された数である。なお、集合SETについては、下記の(16)式を満たす。 Here, L i (i = 1,..., U) is a number randomly selected from the set SET that satisfies the following equation (16). The set SET satisfies the following expression (16).
但し、#Sは、集合SETの要素数である。 Here, #S is the number of elements in the set SET.
多重スカラー倍算計算部136bが行う多重スカラー倍計算の概略は下記のとおりである。
The outline of the multiple scalar multiplication performed by the multiple scalar
まず、多重スカラー倍算計算部136bは、スカラー値を、x2+1=0の根となる複素数λに対し、(0,±1,±λ)を係数とするFrobenius展開を施す。このFrobenius展開については、公知のものを用いればよいため詳細な説明は省略する。
First, the multiple scalar
次に、多重スカラー倍算計算部136bは、Frobenius展開された値を、λを係数とする値と、他の値と、の加算値に分解する。
Next, the multiple scalar
例えば、Frobenius展開された値が(1,λ,0,−1,−λ)である場合、この値を(1,0,0,−1,0)+(0,λ,0,0,−λ)という加算値に分解する。 For example, when the Frobenius expanded value is (1, λ, 0, −1, −λ), this value is (1, 0, 0, −1, 0) + (0, λ, 0, 0, -Λ).
そして、多重スカラー倍算計算部136bは、λを係数とする値において、λを共通因数としてくくることで、乗算回数を減らすことができる。
The multiple scalar
例えば、上述の加算値(1,0,0,−1,0)+(0,λ,0,0,−λ)を(1,0,0,−1,0)+λ(0,1,0,0,−1)として多重スカラー倍算を行う。 For example, the addition value (1, 0, 0, −1, 0) + (0, λ, 0, 0, −λ) is changed to (1, 0, 0, −1, 0) + λ (0, 1, Multiple scalar multiplication is performed as 0,0, -1).
なお、多重スカラー倍計算における具体的な計算方法については、図8を用いて詳細に説明する。 Note that a specific calculation method in the multiple scalar multiplication will be described in detail with reference to FIG.
入力部117は、情報の入力を受け付ける。
The
出力部118は、情報を出力する。
The
通信部119は、ネットワーク150を介して、情報の送受信を行う。
The communication unit 119 transmits and receives information via the
以上に記載した署名装置130も、例えば、図3に示すような一般的なコンピュータ900で実現できる。
The
例えば、記憶部131は、CPU901がメモリ902又は外部記憶装置903を利用することにより実現可能であり、制御部134は、外部記憶装置903に記憶されている所定のプログラムをメモリ902にロードしてCPU901で実行することで実現可能であり、入力部137は、CPU901が入力装置906を利用することで実現可能であり、出力部138は、CPU901が出力装置907を利用することで実現可能であり、通信部139は、CPU901が通信装置908を利用することで実現可能である。
For example, the
この所定のプログラムは、読書装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、外部記憶装置903にダウンロードされ、それから、メモリ902上にロードされてCPU901により実行されるようにしてもよい。また、読書装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、メモリ902上に直接ロードされ、CPU901により実行されるようにしてもよい。
The predetermined program is downloaded from the
図5は、署名装置110における署名生成処理を示すシーケンス図である。
FIG. 5 is a sequence diagram showing a signature generation process in the
まず、署名装置110の署名生成処理部115は、入力部117を介して入力された、または、記憶部111のデータ記憶領域113に記憶されているメッセージMを取得する(S10)。ここで、メッセージMは、デジタル化されたデータであればよく、テキスト、画像、映像、音等の種類は問わない。
First, the signature
次に、署名生成処理部115は、取得したメッセージMから入力データH(M)を生成する(S11)。入力データH(M)は、例えば、メッセージMのハッシュ値等で、メッセージMや使用する署名方式に依存するものである。
Next, the signature
次に、署名生成処理部115は、記憶部111の署名鍵記憶領域112に記憶されている署名鍵skを読み出す(S12)。
Next, the signature
そして、署名生成処理部115は、読み出した署名鍵sk及びステップS11で生成した入力データH(M)を数学関数計算部116に入力する(S13)。
Then, the signature
数学関数計算部116は、入力された署名鍵skと入力データH(M)とから、署名Sを計算する(S14)。ここで、署名Sは、採用する署名方式に依存して計算される値である。
The mathematical
そして、数学関数計算部116は、計算した署名Sを署名生成処理部115に出力する(S15)。
Then, the mathematical
署名生成処理部115は、受け取った署名Sと、メッセージMと、を少なくとも含む署名データを生成して、通信部119を介して検証装置130に送信する(S16)。
The signature
なお、ステップS12において記憶部111からの署名鍵skの取得タイミングについては、数学関数計算部116へ署名鍵skを出力する前であればよく、例えば、メッセージMを取得する(S10)前であってもよい。
Note that the acquisition timing of the signature key sk from the
図6は、検証装置130における署名の一括検証処理を示すシーケンス図である。
FIG. 6 is a sequence diagram showing a signature verification process in the
まず、検証装置130の署名一括検証処理部135は、入力部137又は通信部139を介して入力された、または、記憶部131の署名データ記憶領域133に記憶されている署名データを任意の個数取得する(S20)。
First, the signature batch
また、署名一括検証処理部135は、記憶部131の検証鍵記憶領域132に記憶されている検証鍵pkを読み出す(S21)。
The signature batch
そして、署名一括検証処理部135は、取得した複数の署名データ及び読み出した検証鍵pkを数学関数計算部136に入力する(S22)。
Then, the signature batch
数学関数計算部136では、入力された複数の署名データに含まれる署名SからバッチインスタンスS’を生成する(S23)。なお、署名Sが既にバッチインスタンスとなっている場合には、バッチインスタンスを生成する必要はない。
The mathematical
そして、数学関数計算部136は、入力された検証鍵pkとバッチインスタンスS’とから、予め定められた一括検証を行い(S24)、その結果を検証結果として署名一括検証処理部135に出力する(S25)。なお、数学関数計算部136での署名の一括検証処理については、後述する図7を用いて詳述する。
Then, the mathematical
このような検証結果を取得した署名一括検証処理部135は、記憶部131に記憶するか、または、出力部138や通信部139を介して、検証結果(署名データが有効か否か)を出力する(S26)。
The signature batch
なお、記憶部131からの検証鍵pkの読み出し(S21)については、数学関数計算部136で一括検証を行う前であればよく、例えば、ステップS20において署名データを受け取る前であってもよい。
Note that the reading of the verification key pk from the storage unit 131 (S21) may be performed before the batch verification is performed by the mathematical
図7は、本実施形態における数学関数計算部136での一括検証処理を示すフローチャートである。
FIG. 7 is a flowchart showing the batch verification process in the mathematical
まず、数学関数計算部136は、メッセージMi(i=1,・・・,u)、バッチインスタンスSi’=(Ri、σi)(i=1,・・・,u)、公開鍵Q、楕円曲線補助情報ξ、および、セキュリティパラメータmの入力を受け付ける(S30)。ここで、楕円曲線補助情報ξとは、後述するように楕円曲線上の自己同型写像等である。
First, the
次に、数学関数計算部136は、すべてのi(i=1,・・・,u)に対して、下記の(17)式及び(18)式が成り立つか否かを判定する(S31)。ここで、riは、上述の(11)式を満たす。
Next, the
すべてのiに対して、(17)式及び(18)式が成り立つ場合には(ステップS31でYes)、ステップS32に進み、成り立たない場合には(ステップS31でNo)、ステップS36に進む。 If the equations (17) and (18) are satisfied for all i (Yes in step S31), the process proceeds to step S32. If not (No in step S31), the process proceeds to step S36.
次に、数学関数計算部136は、各iに対して、メッセージMiのハッシュ値H(Mi)を計算し、その結果をmiに代入する(S32)。
Then, the mathematical
そして、数学関数計算部136は、集合SETからLi(i=1,・・・,u)をランダムに選択する(S33)。
Then, the mathematical
そして、数学関数計算部136は、下記(19)式が成り立つか否かを判定する(S34)。
Then, the mathematical
そして、(19)式が成り立つ場合には(ステップS34でYes)、ステップS35に進み、(19)式が成り立たない場合には(ステップS34でNo)、ステップS36に進む。 If equation (19) holds (Yes in step S34), the process proceeds to step S35, and if equation (19) does not hold (No in step S34), the process proceeds to step S36.
ステップS35では、数学関数計算部136は、入力された署名が有効であると判定する。
In step S35, the
ステップS36では、数学関数計算部136は、入力された署名が無効であると判定する。
In step S36, the mathematical
次に、本実施形態における多重すらカー倍算の概要を説明する。 Next, an overview of even multiple multiplication in the present embodiment will be described.
ここで、本実施形態においては、Eaは、下記の(20)式に示すように、有限体F5上において定義された楕円曲線である。 Here, in the present embodiment, E a is an elliptic curve defined on the finite field F 5 as shown in the following equation (20).
また、λは、下記の(21)式に示すような楕円曲線Ea上の自己同型写像である。 Λ is an automorphism map on an elliptic curve E a as shown in the following equation (21).
ただし、αは位数4であるような有限体F5の元である
図8は、上述した(19)式における多重スカラー倍算の計算処理を示すフローチャートである。
However, α is an element of a finite field F 5 having an order of 4. FIG. 8 is a flowchart showing a calculation process of multiple scalar multiplication in the above-described equation (19).
まず、検証装置130の制御部134の数学関数計算部136の多重スカラー倍算計算部136bは、楕円曲線Ea上の点P、Q(Q=dP、d:秘密鍵)、Ri(i=1,・・・,u)、スカラー値wi、zi、下記の(22)式に示す乱数ti、下記の(23)式に示す乱数tij、および、楕円曲線Ea上の自己同型写像λの入力を受け付ける(S40)。
First, the multiple scalar
ここで、スカラー値wi,ziは、それぞれ、(19)式の右辺のPの係数Liσi−1mi、(19)式の右辺のQの係数Liσi−1riを表す。 Here, the scalar values w i and z i are respectively the P coefficient L i σ i−1 m i on the right side of the equation (19) and the Q coefficient L i σ i−1 r on the right side of the equation (19). i is represented.
また、集合SG(e,k,q)は、下記の(24)式に示されているように、集合DGの元を係数とするe桁以下のFrobenius展開であって、そのHamming Weightがk以下の元全体の集合を表している。 Further, the set S G (e, k, q) is a Frobenius expansion of e digits or less with coefficients of the elements of the set D G as shown in the following equation (24), and its Hamming Weight Represents a set of all elements with k or less.
なお、図7のステップS33における集合SETは、ここでは、SG(e,k,q)を表している。 Note that the set SET in step S33 in FIG. 7 represents S G (e, k, q) here.
また、上述のDGのように、展開の桁となる元全体の集合は桁集合(digit set)と呼ばれる。 Further, as described above for D G, a set of the entire original to be digits deployment is called digit set (digit set).
ここで、上述の乱数tiを、下記の(25)式に示すように変形する方法について説明する。 Here, the random number t i above, describes a method of deformed as shown in (25) below.
まず、楕円曲線E上の点に対して、Frobenius写像φと呼ばれる自己準同型写像を施すことが可能である。点(x1,y1)に対してFrobenius写像φを施すとは、下記の(26)式を計算することである。 First, a self-homogeneous map called Frobenius map φ can be applied to points on the elliptic curve E. Applying the Frobenius map φ to the point (x 1 , y 1 ) means calculating the following equation (26).
また、下記の(27)式が成り立つことが知られており、下記の(28)式の性質により、φを(28)式を満たす複素数と考えることができる。 Further, it is known that the following equation (27) holds, and due to the property of the following equation (28), φ can be considered as a complex number satisfying the equation (28).
ここで、tは楕円曲線Eのトレースと呼ばれる整数である。上述のFrobenius写像φのみならず、すべての自己準同型写像は、ある複素数と考えることができることが知られている。 Here, t is an integer called a trace of the elliptic curve E. It is known that not only the above-described Frobenius map φ but also all self-homomorphic maps can be considered as a complex number.
本実施形態においては、(20)式の楕円曲線Eaにおいて、λの値は、下記の(29)式に示すとおりである。 In the present embodiment, the value of λ in the elliptic curve E a in the equation (20) is as shown in the following equation (29).
(20)式の楕円曲線Eaにおいて、a=1のとき、(28)式のtは、t=2であることが知られており、さらにFrobenius写像φは(30)式に示される複素数とみなすことができ、φとλの関係式は(31)式に示される。 In the elliptic curve E a in the equation (20), when a = 1, t in the equation (28) is known to be t = 2, and the Frobenius map φ is a complex number represented by the equation (30). The relational expression of φ and λ is shown in the equation (31).
この関係式を使うと、ti=12の場合は、(32)式のように変形することによって、上述の乱数tiの変形が可能となる。 When this relational expression is used, when t i = 12, the above-described random number ti can be modified by modifying it as shown in Expression (32).
一般のaに対して上述のような変換を行う場合にも、(31)式と類似するφとλの関係式を用いつつ、Frobenius展開を行えばよい。上記変換の詳細については下記の文献4に記載されている。 Even when the above-described conversion is performed on general a, Frobenius expansion may be performed using a relational expression of φ and λ similar to the expression (31). Details of the above conversion are described in Reference 4 below.
文献4:T. J. Park, M. K. Lee, and K. Park, "New Frobenius Expansions for Elliptic Curves with Efficient Endomorphisms, " International Conference on Information Security and Cryptology − ICISC 2002, LNCS 2587, Springer-Verlag, pp.264-282, 2003.
図8のフローチャートに戻り、多重スカラー倍算計算部136bは、上述の(19)式の右辺の二重スカラー倍算を計算し、その結果をGに代入する(S41)。
Reference 4: TJ Park, MK Lee, and K. Park, "New Frobenius Expansions for Elliptic Curves with Efficient Endomorphisms," International Conference on Information Security and Cryptology-ICISC 2002, LNCS 2587, Springer-Verlag, pp.264-282, 2003.
Returning to the flowchart of FIG. 8, the multiple scalar
次に、多重スカラー倍算計算部136bは、iに1を、jにe−1を、Aに無限遠点0を、Bに無限遠点0を、それぞれ代入する(S42)。
Next, the multiple scalar
次に、多重スカラー倍算計算部136bは、i≦uであるか否かを判定する(S43)。
Next, the multiple scalar
そして、i≦uが成立する場合には(ステップS43でYes)、ステップS44に進み、i≦uが成立しない場合には(ステップS43でNo)、ステップS49に進む。 If i ≦ u is satisfied (Yes in step S43), the process proceeds to step S44. If i ≦ u is not satisfied (No in step S43), the process proceeds to step S49.
ステップS44では、多重スカラー倍算計算部136bは、j≧0であるか否かを判定する。
In step S44, the multiple scalar
そして、j≧0が成立する場合には(ステップS44でYes)、ステップS45に進み、j≧0が成立しない場合には(ステップS44でNo)、ステップS48に進む。 If j ≧ 0 is satisfied (Yes in step S44), the process proceeds to step S45. If j ≧ 0 is not satisfied (No in step S44), the process proceeds to step S48.
ステップS45では、多重スカラー倍算計算部136bは、Bにφ(B)を代入する。
In step S45, the multiple scalar
そして、多重スカラー倍算計算部136bは、もし、tij=±1であるならば、BにB±Riを代入する(S46)。なお、tij=±1が成立しない場合には、ステップS46は、スキップする。
The multi-scalar
次に、多重スカラー倍算計算部136bは、jにj−1を代入し(S47)、ステップS44に戻り処理を繰り返す。
Next, the multiple scalar
一方、ステップS44において、j≧0が成立しない場合には(ステップS44でNo)、多重スカラー倍算計算部136bは、iにi+1を、jにe−1を、AにA+Bを、Bに無限遠点0を、それぞれ代入し(S48)、ステップS43に戻り処理を繰り返す。
On the other hand, if j ≧ 0 is not satisfied in step S44 (No in step S44), the multiple scalar
また、ステップS43において、i≦uが成立しない場合には(ステップS43でNo)、多重スカラー倍算計算部136bは、iに1を代入する(S49)。
If i ≦ u is not satisfied in step S43 (No in step S43), the multiple scalar
そして、多重スカラー倍算計算部136bは、i≦uであるか否かを判定する(S50)。
Then, the multiple scalar
そして、i≦uが成立する場合には(ステップS50でYes)、ステップS51に進み、i≦uが成立しない場合には(ステップS50でNo)、ステップS56に進む。 If i ≦ u is satisfied (Yes in step S50), the process proceeds to step S51. If i ≦ u is not satisfied (No in step S50), the process proceeds to step S56.
ステップS51では、多重スカラー倍算計算部136bは、j≧0であるか否かを判定する。
In step S51, the multiple scalar
そして、j≧0が成立する場合には(ステップS51でYes)、ステップS52に進み、j≧0が成立しない場合には(ステップS51でNo)、ステップS55に進む。 If j ≧ 0 is satisfied (Yes in step S51), the process proceeds to step S52. If j ≧ 0 is not satisfied (No in step S51), the process proceeds to step S55.
ステップS52では、多重スカラー倍算計算部136bは、Bにφ(B)を代入する。
In step S52, the multiple scalar
そして、多重スカラー倍算計算部136bは、もし、tij=±λであるならば、BにB±Riを代入する(S53)。なお、tij=±λが成立しない場合には、ステップS53は、スキップする。
Then, the multiple scalar
次に、多重スカラー倍算計算部136bは、jにj−1を代入し(S54)、ステップS51に戻り処理を繰り返す。
Next, the multiple scalar
一方、ステップS51において、j≧0が成立しない場合には(ステップS51でNo)、多重スカラー倍算計算部136bは、iにi+1を、jにe−1を、それぞれ代入し(S55)、ステップS50に戻り処理を繰り返す。
On the other hand, if j ≧ 0 is not satisfied in step S51 (No in step S51), the multiple scalar
また、ステップS50において、i≦uが成立しない場合には(ステップS50でNo)、多重スカラー倍算計算部136bは、Bにλ(B)を、AにA+Bを代入し(S56)、処理を終了する。
If i ≦ u is not satisfied in step S50 (No in step S50), the multiple scalar
なお、上述の多重スカラー倍算((19)式の左辺)の計算方法は、上述の図8の多重スカラー倍計算方法でもよいし、その他の方法で計算してもよい。 The calculation method of the above-described multiple scalar multiplication (the left side of equation (19)) may be the above-described multiple scalar multiplication method of FIG. 8, or may be calculated by other methods.
上述した多重スカラー倍の計算方法が、非特許文献1、非特許文献2、および、非特許文献3と比較して、効率的である(中間値の更新回数を大幅に削減できる)理由は、以下のとおりである。
The reason why the multiple scalar multiplication calculation method described above is more efficient than
非特許文献1、非特許文献2、および、非特許文献3に記載の署名一括検証の場合、符号付き2進展開、または、Frobenius展開の桁集合が大きいため、(桁集合の要素数)×(検証したい署名の個数)の回数だけ中間値を更新する必要がある。そのため、検証したい署名の個数が大きい場合は、中間値の更新回数が多くなり、結果として処理性能のボトルネックとなる。
In the signature collective verification described in
これに対し、本実施形態においては、(20)式の楕円曲線Ea、および、(24)式のFrobenius展開を用いた場合、桁集合が小さく、上述の自己同型写像λは(21)式に記載のとおり、乗算一回(α×y)と符号変換一回(x→−x)で実施できる。 On the other hand, in the present embodiment, when the elliptic curve E a of the equation (20) and the Frobenius expansion of the equation (24) are used, the digit set is small, and the above-mentioned automorphism map λ is the equation (21). As described in (1), it can be implemented by one multiplication (α × y) and one code conversion (x → −x).
符号変換一回の処理時間は乗算一回と比較して無視できるほど小さいため、上述の自己同型写像λは、実際には乗算一回の処理時間で計算可能である。 Since the processing time for one code conversion is negligibly small as compared with one multiplication, the above-mentioned automorphism map λ can actually be calculated with the processing time for one multiplication.
さらに、自己同型写像は群の準同型性を満たすことから、下記の(33)式に示すように、楕円曲線上の各点に写像λを施した点の和と、楕円曲線上の各点の和に対して写像λを施した点は等しいという性質を持っている。 Furthermore, since the automorphism map satisfies the homomorphism of the group, as shown in the following equation (33), the sum of the points obtained by mapping λ to each point on the elliptic curve and each point on the elliptic curve The point where the map λ is given to the sum of is equal.
例えば、u=2、L1=λ−Φ+λΦ2、L1=1+λΦ2とすると、下記の(34)式に示すようになる。 For example, when u = 2, L 1 = λ−Φ + λΦ 2 , and L 1 = 1 + λΦ 2 , the following equation (34) is obtained.
これより、図8に記載の多重スカラー倍計算方法を用いた場合、中間値λR1、λR2を更新する必要はなく、係数が±λとなっている点をすべて加算し、最後に自己同型写像λを施せばよい。 Thus, when the multiple scalar multiplication method shown in FIG. 8 is used, it is not necessary to update the intermediate values λR 1 and λR 2 , and all points where the coefficients are ± λ are added, and finally the automorphism is obtained. What is necessary is just to give map (lambda).
また、楕円曲線上の整数倍算も上述の群の準同型性を満たす。例えば、4P+4Q=4(P+Q)の計算は、P+Qを計算し、最後に4倍算を実施すればよい。 In addition, integer multiplication on the elliptic curve also satisfies the above-mentioned group homomorphism. For example, 4P + 4Q = 4 (P + Q) may be calculated by calculating P + Q and finally performing quadruple calculation.
しかしながら、上述の自己同型写像λとは異なり、一回の乗算で実施することはできず、複数回の乗算が必要となる。したがって、非特許文献1、非特許文献2、および、非特許文献3に記載の署名一括検証の場合は、(桁集合の要素数)×(検証したい署名の個数)の回数だけ中間値を更新する必要がある。これに対して、図8に記載の多重スカラー倍計算方法を用いた場合、非特許文献1、非特許文献2、および、非特許文献3と比較して、中間値の更新回数を大幅に削減できる。
However, unlike the above-mentioned automorphic map λ, it cannot be performed by a single multiplication, and a plurality of multiplications are required. Therefore, in the case of signature verification described in
さらに、上述の中間値を事前に計算する方法を用いる場合、事前計算テーブル(桁集合の元をスカラー値とするスカラー倍点)を保持する記憶領域を大量に必要とするのに対し、図8に記載の多重スカラー倍計算方法を用いる場合は事前計算結果を保持する記憶領域が不要であり、使用するメモリ量の削減が可能となる。 Further, when the above-described method for calculating the intermediate value in advance is used, a large amount of storage area is required to hold a pre-calculation table (scalar multiple point with the element of the digit set as a scalar value), whereas FIG. When the multiple scalar multiplication calculation method described in (1) is used, a storage area for holding the pre-calculation result is unnecessary, and the amount of memory to be used can be reduced.
第一の実施形態に記載の署名一括検証が高い安全性を持つ理由は以下のとおりである。 The reason why the signature batch verification described in the first embodiment has high security is as follows.
上述のとおり、一括検証のセキュリティレベルをmに設定するには、集合Sの要素数#Sが、(16)式を満たさなければならないことが知られている。 As described above, it is known that the number of elements #S of the set S must satisfy the equation (16) in order to set the security level of collective verification to m.
一般にFrobenius展開は、表現方法が異なっても、値としては同じものが存在することは容易にわかる(例えば、楕円曲線の特性多項式と呼ばれる(28)式より、二つのFrobenius展開φ2+q、tφは、表現方法は異なるが、値としては同じものである)。つまり、集合SETとして(ある桁集合に関する)Frobenius展開を用いる場合は、そのFrobenius展開の元の個数を正確に求める(もしくは、Frobenius展開の元の個数の上限と下限を求める)必要があり、これができなければ、一括検証のセキュリティレベルmを正確に設定することはできない。そのため、集合SETとしてFrobenius展開を用いる場合は、その元の個数を正確に求める(もしくは、Frobenius展開の元の個数の上限と下限を求める)ことができるような桁集合を用いることが望ましい。本実施形態に記載の集合SG(e,k,q)は、そのFrobenius展開が一意であることを証明することができる。 In general, the Frobenius expansion can be easily understood that the same value exists even if the expression method is different (for example, two Frobenius expansions φ 2 + q, tφ from the equation (28) called an elliptic curve characteristic polynomial). Is the same value, although the representation is different). That is, when using a Frobenius expansion (related to a certain digit set) as a set SET, it is necessary to accurately obtain the original number of the Frobenius expansion (or to obtain an upper limit and a lower limit of the original number of the Frobenius expansion). If not, the security level m for batch verification cannot be set accurately. Therefore, when Frobenius expansion is used as the set SET, it is desirable to use a digit set that can accurately determine the original number (or determine the upper and lower limits of the original number of Frobenius expansion). The set S G (e, k, q) described in this embodiment can prove that the Frobenius expansion is unique.
Frobenius展開が一意であることから、表現方法は異なり、かつ値としては同じとなることはない。さらに、SG(e,k,q)の要素数#SG(e,k,q)が、下記の(35)式を満たすことも確かめることができる。 Since the Frobenius expansion is unique, the representation method is different and the values are not the same. Furthermore, it is possible to S G (e, k, q) number of elements #S G of (e, k, q) is ascertained also satisfy the equation (35) below.
したがって、(35)式の値が2mとなるように(e,k,q)を定めればよい。具体的には、第一の実施形態では、q=5であり、eは使用する楕円曲線の安全性を示すビット長(160−bit、192−bit、256−bit等)が、5eと同程度になるように設定すればよい。そして、定まったeとqを(35)式に代入し、2mと同程度になるようkを決めればよい。 Therefore, (e, k, q) may be determined so that the value of the expression (35) becomes 2 m . Specifically, in the first embodiment, q = 5, and e is a bit length (160-bit, 192-bit, 256-bit, etc.) indicating the safety of the elliptic curve to be used is 5 e . What is necessary is just to set so that it may become comparable. Then, the determined e and q are substituted into the equation (35), and k may be determined so as to be approximately equal to 2 m .
本実施形態では、ある署名者によって署名された複数の署名(または、バッチインスタンス)を一括検証する場合を説明したが、複数の署名者がそれぞれ署名した複数の署名(または、バッチインスタンス)を一括検証することも可能である。 In this embodiment, a case has been described in which a plurality of signatures (or batch instances) signed by a signer are collectively verified. However, a plurality of signatures (or batch instances) each signed by a plurality of signers are collectively recorded. It is also possible to verify.
例えば、署名生成鍵skiと署名検証鍵pkiの組(ski=di、pki=Qi)(ここで、Qi=diP)をもつ少なくとも一人以上のユーザAi(1≦i≦r)がそれぞれ生成したバッチインスタンス(Ri (j)、σi (j)){1≦i≦r、1≦j≦n(i)}に対する一括検証は、下記の(36)式を満たすか否かで検証を行う。 For example, at least one or more users A i (1) having a set (sk i = d i , pk i = Q i ) (where Q i = d i P) of a signature generation key sk i and a signature verification key pk i ≦ i ≦ r) respectively generated batch instances (R i (j) , σ i (j) ) {1 ≦ i ≦ r, 1 ≦ j ≦ n (i)} are collectively verified by the following (36) Verification is performed based on whether the expression is satisfied.
また、以上に記載した一括検証方式では、ECDSA署名方式を利用したが、ECDSA署名の代わりに、ECDSA*署名を利用することも可能である。 Further, although the ECDSA signature method is used in the batch verification method described above, an ECDSA * signature can be used instead of the ECDSA signature.
ECDSA*署名では、上述の(14)式で算出されるバッチインスタンスが署名となっているため(署名装置110で計算されるため)、検証装置130においてバッチインスタンスを生成する必要がなくなる。
In the ECDSA * signature, since the batch instance calculated by the above equation (14) is a signature (since it is calculated by the signature device 110), it is not necessary to generate a batch instance in the
なお、ECDSA*署名は、下記の文献5に記載されており、その安全性はECDSA署名と等価である。 The ECDSA * signature is described in Reference 5 below, and its security is equivalent to the ECDSA signature.
文献5:A. Antipa, D. Brown, R. Gallant, R. Lambert, R. Struik, and S. Vanstone, "Accelerated Verification of ECDSA Signatures", Selected Areas in Cryptography - SAC 2005, LNCS 3897, pp.307-318, 2006.
本実施形態では、ECDSA署名、および、ECDSA*署名に関する一括検証方法を説明したが、下記の文献6に記載のSchnorr署名を、楕円曲線上の離散対数問題に基づく署名方式に拡張した楕円Schnorr署名などへの適用が可能であることも知られている。
Reference 5: A. Antipa, D. Brown, R. Gallant, R. Lambert, R. Struik, and S. Vanstone, "Accelerated Verification of ECDSA Signatures", Selected Areas in Cryptography-SAC 2005, LNCS 3897, pp.307 -318, 2006.
In this embodiment, the ECDSA signature and the batch verification method for the ECDSA * signature have been described. The elliptic Schnorr signature obtained by extending the Schnorr signature described in
文献6:C. P. Schnorr, "Efficient Signature Generation by Smart Cards", Journal of Cryptology 4(3), pp.161-174, 1991.
次に、第一の実施形態とは異なる楕円曲線を用いた署名一括検証を第二の実施形態として説明する。
Reference 6: CP Schnorr, "Efficient Signature Generation by Smart Cards", Journal of Cryptology 4 (3), pp.161-174, 1991.
Next, signature verification using an elliptic curve different from the first embodiment will be described as a second embodiment.
本発明の第二の実施形態である署名一括検証システムも第一の実施形態と同様に、署名装置110と、検証装置130と、を備え、これらの署名装置110及び検証装置130は、ネットワーク150を介して相互に情報の送受信を行うことができるようにされている。
Similarly to the first embodiment, the signature batch verification system according to the second embodiment of the present invention includes a
そして、署名装置110については、第一の実施形態と同様に構成される。
The
また、検証装置130についても、第一の実施形態と同様に構成されるが、制御部134の数学関数計算部136での署名の一括検証処理が異なるため、以下、この異なる点に関連する事項について説明する。
The
本実施形態の多重スカラー倍計算の概要は、以下のとおりである。 The outline of the multiple scalar multiplication of this embodiment is as follows.
第二の実施形態では、第一の実施形態で用いた楕円曲線とは異なる曲線を用いる。以下、本実施形態においてEbは、下記の(37)式のように有限体F7上定義された楕円曲線である。 In the second embodiment, a curve different from the elliptic curve used in the first embodiment is used. Hereinafter, in the present embodiment, E b is an elliptic curve defined on the finite field F 7 as expressed by the following equation (37).
ここで、ωは、下記の(38)式で示される楕円曲線Eb上の自己同型写像である。 Here, ω is an automorphism map on the elliptic curve Eb expressed by the following equation (38).
但し、βは位数3であるような有限体F7の元である。 However, β is an element of a finite field F 7 having an order of 3.
そして、多重スカラー倍算計算部136bは、スカラー値を、x2+x+1=0の根となる複素数ωに対し、(0,±1,±ω,±ω2)を係数とするFrobenius展開を施す。このFrobenius展開については、公知のものを用いればよいため詳細な説明は省略する。
Then, the multiple scalar
次に、多重スカラー倍算計算部136bは、Frobenius展開された値を、ωを係数とする値と、ω2を係数とする値と、他の値と、の加算値に分解する。
Next, the multiple scalar
例えば、Frobenius展開された値が(1,ω,0,−1,−ω2)である場合、この値を(1,0,0,−1,0)+(0,ω,0,0,0)+(0,0,0,0,−ω2)という加算値に分解する。 For example, if the Frobenius expanded value is (1, ω, 0, −1, −ω 2 ), this value is (1, 0, 0, −1, 0) + (0, ω, 0, 0). , 0) + (0, 0, 0, 0, −ω 2 ).
そして、多重スカラー倍算計算部136bは、ω又はω2を係数とする値において、ω又はω2を共通因数としてくくることで、乗算回数を減らすことができる。
The multiple scalar
例えば、上述の加算値(1,0,0,−1,0)+(0,ω,0,0,0)+(0,0,0,0,−ω2)を(1,0,0,−1,0)+ω(0,1,0,0,0)+ω2(0,0,0,0,−1)として多重スカラー倍算を行う。 For example, the added value (1, 0, 0, −1, 0) + (0, ω, 0, 0, 0) + (0, 0, 0, 0, −ω 2 ) is changed to (1, 0, Multiple scalar multiplication is performed as 0, -1,0) + ω (0,1,0,0,0) + ω 2 (0,0,0,0, -1).
図9及び図10は、上述した(19)式における多重スカラー倍算の計算処理を示すフローチャートである。 FIG. 9 and FIG. 10 are flowcharts showing the calculation processing of multiple scalar multiplication in the above-described equation (19).
まず、検証装置130の制御部134の数学関数計算部136の多重スカラー倍算計算部136bは、楕円曲線Eb上の点P、Q(Q=dP、d:秘密鍵)、Ri(i=1,・・・,u)、スカラー値wi、zi、下記の(39)式に示す乱数ti、下記の(40)式に示す乱数tij、および、楕円曲線Eb上の自己同型写像ωの入力を受け付ける(S60)。
First, the multiple scalar
ここで、スカラー値wi,ziは、それぞれ、(19)式の右辺のPの係数Liσi−1mi、(19)式の右辺のQの係数Liσi−1riを表す。 Here, the scalar values w i and z i are respectively the P coefficient L i σ i−1 m i on the right side of the equation (19) and the Q coefficient L i σ i−1 r on the right side of the equation (19). i is represented.
また、集合SE(e,k,q)は、下記の(41)式に示されているように、集合DEの元を係数とするe桁以下のFrobenius展開であって、そのHamming Weightがk以下の元全体の集合を表している。 Further, the set S E (e, k, q) is a Frobenius expansion of e digits or less with the element of the set D E as a coefficient, as shown in the following equation (41), and its Hamming Weight Represents a set of all elements with k or less.
なお、図7のステップS33における集合SETは、ここでは、SE(e,k,q)を表している。 Note that the set SET in step S33 in FIG. 7 represents S E (e, k, q) here.
ここで、上述の乱数tiを、下記の(42)式に示すように変形する方法について説明する。 Here, the random number t i described above, the method of deformed as shown in (42) below will be described.
本実施形態においては、(37)式の楕円曲線Ebにおいて、ωの値は、下記の(43)式に示すとおりである。 In the present embodiment, the value of ω in the elliptic curve Eb of the equation (37) is as shown in the following equation (43).
(37)式の楕円曲線Ebにおいて、b=1のとき、(43)式のtは、t=5であることが知られており、さらにFrobenius写像φは(44)式に示される複素数とみなすことができ、φとλの関係式は(45)式に示される。 In the elliptic curve Eb of the equation (37), when b = 1, t in the equation (43) is known to be t = 5, and the Frobenius map φ is a complex number represented by the equation (44). The relational expression of φ and λ is shown in the equation (45).
この関係式を使うと、ti=16φ−10の場合は、(46)式のように変形することによって、上述の乱数tiの変形が可能となる。 When this relational expression is used, when t i = 16φ−10, the above-described random number t i can be modified by modifying it as shown in the equation (46).
一般のbに対して上述のような変換を行う場合にも、(45)式と類似するφとωの関係式を用いつつ、Frobenius展開を行えばよい。上記変換の詳細については上記の文献4に記載されている。 Even when the above-described conversion is performed on general b, Frobenius expansion may be performed using a relational expression of φ and ω similar to the expression (45). Details of the conversion are described in Document 4 above.
図9のフローチャートに戻り、多重スカラー倍算計算部136bは、上述の(19)式の右辺の二重スカラー倍算を計算し、その結果をGに代入する(S61)。
Returning to the flowchart of FIG. 9, the multiple scalar
次に、多重スカラー倍算計算部136bは、iに1を、jにe−1を、Aに無限遠点0を、Bに無限遠点0を、それぞれ代入する(S62)。
Next, the multiple scalar
次に、多重スカラー倍算計算部136bは、i≦uであるか否かを判定する(S63)。
Next, the multiple scalar
そして、i≦uが成立する場合には(ステップS63でYes)、ステップS64に進み、i≦uが成立しない場合には(ステップS63でNo)、ステップS69に進む。 If i ≦ u is satisfied (Yes in step S63), the process proceeds to step S64. If i ≦ u is not satisfied (No in step S63), the process proceeds to step S69.
ステップS64では、多重スカラー倍算計算部136bは、j≧0であるか否かを判定する。
In step S64, the multiple scalar
そして、j≧0が成立する場合には(ステップS64でYes)、ステップS65に進み、j≧0が成立しない場合には(ステップS64でNo)、ステップS68に進む。 If j ≧ 0 is satisfied (Yes in step S64), the process proceeds to step S65. If j ≧ 0 is not satisfied (No in step S64), the process proceeds to step S68.
ステップS65では、多重スカラー倍算計算部136bは、Bにφ(B)を代入する。
In step S65, the multiple scalar
そして、多重スカラー倍算計算部136bは、もし、tij=±1であるならば、BにB±Riを代入する(S66)。なお、tij=±1が成立しない場合には、ステップS66は、スキップする。
Then, the multiple scalar
次に、多重スカラー倍算計算部136bは、jにj−1を代入し(S67)、ステップS64に戻り処理を繰り返す。
Next, the multiple scalar
一方、ステップS64において、j≧0が成立しない場合には(ステップS64でNo)、多重スカラー倍算計算部136bは、iにi+1を、jにe−1を、AにA+Bを、Bに無限遠点0を、それぞれ代入し(S68)、ステップS63に戻り処理を繰り返す。
On the other hand, if j ≧ 0 is not satisfied in step S64 (No in step S64), the multiple scalar
また、ステップS63において、i≦uが成立しない場合には(ステップS63でNo)、多重スカラー倍算計算部136bは、iに1を代入する(S69)。
If i ≦ u is not satisfied in step S63 (No in step S63), the multiple scalar
そして、多重スカラー倍算計算部136bは、i≦uであるか否かを判定する(S70)。
Then, the multiple scalar
そして、i≦uが成立する場合には(ステップS70でYes)、ステップS71に進み、i≦uが成立しない場合には(ステップS70でNo)、ステップS76に進む。 If i ≦ u is satisfied (Yes in step S70), the process proceeds to step S71. If i ≦ u is not satisfied (No in step S70), the process proceeds to step S76.
ステップS71では、多重スカラー倍算計算部136bは、j≧0であるか否かを判定する。
In step S71, the multiple scalar
そして、j≧0が成立する場合には(ステップS71でYes)、ステップS72に進み、j≧0が成立しない場合には(ステップS71でNo)、ステップS75に進む。 If j ≧ 0 is satisfied (Yes in step S71), the process proceeds to step S72. If j ≧ 0 is not satisfied (No in step S71), the process proceeds to step S75.
ステップS72では、多重スカラー倍算計算部136bは、Bにφ(B)を代入する。
In step S72, the multiple scalar
そして、多重スカラー倍算計算部136bは、もし、tij=±ωであるならば、BにB±Riを代入する(S73)。なお、tij=±ωが成立しない場合には、ステップS73は、スキップする。
The multi-scalar
次に、多重スカラー倍算計算部136bは、jにj−1を代入し(S74)、ステップS71に戻り処理を繰り返す。
Next, the multiple scalar
一方、ステップS71において、j≧0が成立しない場合には(ステップS71でNo)、多重スカラー倍算計算部136bは、iにi+1を、jにe−1を、それぞれ代入し(S75)、ステップS70に戻り処理を繰り返す。
On the other hand, if j ≧ 0 is not satisfied in step S71 (No in step S71), the multiple scalar
また、ステップS70において、i≦uが成立しない場合には(ステップS70でNo)、多重スカラー倍算計算部136bは、Bにω(B)を、AにA+Bを、iに1を、Bに0を、代入し(S76)、図10のステップS77に進む。
If i ≦ u is not satisfied in step S70 (No in step S70), the multiple scalar
ステップS77では、多重スカラー倍算計算部136bは、i≦uであるか否かを判定する。
In step S77, the multiple scalar
そして、i≦uが成立する場合には(ステップS77でYes)、ステップS78に進み、i≦uが成立しない場合には(ステップS77でNo)、ステップS83に進む。 If i ≦ u is satisfied (Yes in step S77), the process proceeds to step S78. If i ≦ u is not satisfied (No in step S77), the process proceeds to step S83.
ステップS78では、多重スカラー倍算計算部136bは、j≧0であるか否かを判定する。
In step S78, the multiple scalar
そして、j≧0が成立する場合には(ステップS78でYes)、ステップS79に進み、j≧0が成立しない場合には(ステップS78でNo)、ステップS82に進む。 If j ≧ 0 is satisfied (Yes in step S78), the process proceeds to step S79. If j ≧ 0 is not satisfied (No in step S78), the process proceeds to step S82.
ステップS79では、多重スカラー倍算計算部136bは、Bにφ(B)を代入する。
In step S79, the multiple scalar
そして、多重スカラー倍算計算部136bは、もし、tij=±ω2であるならば、BにB±Riを代入する(S80)。なお、tij=±ωが成立しない場合には、ステップS80は、スキップする。
Then, the multiple scalar
次に、多重スカラー倍算計算部136bは、jにj−1を代入し(S81)、ステップS78に戻り処理を繰り返す。
Next, the multiple scalar
一方、ステップS78において、j≧0が成立しない場合には(ステップS78でNo)、多重スカラー倍算計算部136bは、iにi+1を、jにe−1を、それぞれ代入し(S82)、ステップS77に戻り処理を繰り返す。
On the other hand, if j ≧ 0 is not satisfied in step S78 (No in step S78), the multiple scalar
また、ステップS77において、i≦uが成立しない場合には(ステップS77でNo)、多重スカラー倍算計算部136bは、Bにω2(B)を、AにA+Bを、代入し(S83)、処理を終了する。
If i ≦ u is not satisfied in step S77 (No in step S77), the multiple scalar
なお、上述の多重スカラー倍算の計算方法は、上述の図9及び図10の多重スカラー倍計算方法でもよいし、その他の方法で計算してもよい。例えば、ωとω2を係数として有する部分をωで因数分解することで、ω2の乗算を避けるようにすることも可能である。 In addition, the calculation method of the above-mentioned multiple scalar multiplication may be the above-described multiple scalar multiplication calculation method of FIGS. 9 and 10, or may be calculated by other methods. For example, it is possible to avoid multiplication of ω 2 by factoring a portion having ω and ω 2 as coefficients with ω.
第二の実施形態における多重スカラー倍計算方法が、非特許文献1、非特許文献2及び非特許文献3と比較して、中間値の更新回数を大幅に削減できる理由は第一の実施形態と同様である。
The reason why the multiple scalar multiplication calculation method in the second embodiment can significantly reduce the number of times of updating the intermediate value compared with
また、中間値を事前に計算する方法を用いる場合、事前計算テーブル(桁集合の元をスカラー値とするスカラー倍点)を保持する記憶領域を大量に必要とするのに対し、第二の実施形態における多重スカラー倍計算方法を用いる場合は、事前計算結果を保持する記憶領域が不要であり、使用するメモリ量の削減が可能となることも第一の実施形態と同様である。 In addition, when using the method of calculating the intermediate value in advance, the second implementation requires a large amount of storage area to hold the pre-calculation table (scalar multiple with the element of the digit set as a scalar value). When the multiple scalar multiplication method in the embodiment is used, a storage area for holding the pre-calculation result is unnecessary, and the amount of memory to be used can be reduced as in the first embodiment.
第二の実施形態に記載の署名一括検証が高い安全性を持つ理由も第一の実施形態と同様である。すなわち集合SE(e,k,q)は、そのFrobenius展開が一意であることを証明することができる。 The reason why the signature batch verification described in the second embodiment has high security is the same as that in the first embodiment. That is, the set S E (e, k, q) can prove that its Frobenius expansion is unique.
さらに、SE(e,k,q)の要素数#SE(e,k,q)が、下記の(47)式を満たすことも確かめることができる。 Furthermore, it can be confirmed that the number of elements #SE (e, k, q) of S E (e, k, q) satisfies the following expression (47).
したがって、47式の値が2mとなるように(e,k,q)を定めればよい。具体的には、第二の実施形態では、q=7であり、eは使用する楕円曲線の安全性を示すビット長(160−bit、192−bit、256−bit等)が7eと同程度になるように設定すればよい。そして、定まったeとqを47式に代入し、2mと同程度になるようkを決めればよい。
Therefore, (e, k, q) may be determined so that the value of
なお、上記各実施形態では、署名生成処理部115、署名一括検証処理部135を、ソフトウェアで実現するものとして説明したが、専用のハードウェアを用いて実現してもよい。また、数学関数計算部116、136を専用ハードウェアで実現しても良い。
In each of the above embodiments, the signature
100 署名一括検証システム
111 記憶部
112 署名鍵記憶領域
113 データ記憶領域
114 制御部
115 署名生成処理部
116 数学関数計算部
117 入力部
118 出力部
119 通信部
130 検証装置
131 記憶部
132 検証鍵記憶領域
133 署名データ記憶領域
134 制御部
135 署名一括検証処理部
136 数学関数計算部
137 入力部
138 出力部
139 通信部
DESCRIPTION OF
Claims (10)
前記多重スカラー倍算のスカラー値に対して、Frobenius展開を行い、展開値を算出する処理と、
前記展開値を、共通因数を係数とする値の第一の値と、その他の値の第二の値と、からなる第一の加算値に分解する処理と、
前記第一の加算値を、前記第一の値において共通因数をくくりだし、第二の加算値とする処理と、
前記第二の加算値により前記多重スカラー倍算を行う処理と、を行う制御部を備えること、
を特徴とする一括検証装置。 Multiple signature data generated by a signature method based on an elliptic curve are collectively determined by whether or not the value calculated by double scalar multiplication and the value calculated by multiple scalar multiplication are compatible. A collective verification device for verification,
A process of performing Frobenius expansion on the scalar value of the multiple scalar multiplication and calculating the expansion value;
A process of decomposing the expanded value into a first addition value consisting of a first value having a common factor as a coefficient and a second value of the other values;
The first addition value is a process in which a common factor is repeated in the first value to obtain a second addition value;
A control unit for performing the multiple scalar multiplication by the second addition value,
A batch verification device characterized by
前記Frobenius展開は、x2+1=0の根となる複素数λに対し、(0,±1,±λ)を係数とするFrobenius展開であって、
前記制御部は、前記第一の加算値を、前記第一の値においてλを共通因数としてくくりだし、前記第二の加算値とする処理を行うこと、
を特徴とする一括検証装置。 The collective verification device according to claim 1,
The Frobenius expansion is a Frobenius expansion using (0, ± 1, ± λ) as a coefficient for a complex number λ that is the root of x 2 + 1 = 0.
The control unit performs the process of setting the first addition value as λ as a common factor in the first value and making the second addition value,
A batch verification device characterized by
前記Frobenius展開は、x2+x+1=0の根となる複素数ωに対し、(0,±1,±ω,±ω2)を係数とするFrobenius展開であって、
前記制御部は、前記第一の加算値を、前記第一の値においてω及びω2を共通因数としてくくりだし、前記第二の加算値とする処理を行うこと、
を特徴とする一括検証装置。 The collective verification device according to claim 1,
The Frobenius expansion is a Frobenius expansion in which (0, ± 1, ± ω, ± ω 2 ) is a coefficient with respect to a complex number ω that is a root of x 2 + x + 1 = 0.
Wherein the control unit, the first additional value, out tying the 2 omega and omega in said first value as a common factor, performing the processing of said second addition value,
A batch verification device characterized by
前記楕円曲線は、Ea{y2=x3+ax(a≠0は有限体F5の元)}であり、
前記λは、前記楕円曲線Eaにおける自己同型写像λ(Ea{(x,y)→(−x,αy)}、但し、αは位数4であるような有限体F5の元)であること、
を特徴とする一括検証装置。 The collective verification device according to claim 2,
The elliptic curve is E a {y 2 = x 3 + ax (a ≠ 0 is an element of the finite field F 5 )}
The λ is an automorphism map λ (E a {(x, y) → (−x, α y)}) in the elliptic curve E a , where α is an element of a finite field F 5 having an order of 4) Being
A batch verification device characterized by
前記楕円曲線は、Eb{y2=x3+b(b≠0は有限体F7の元)}であり、
前記ωは、前記楕円曲線Ebにおける自己同型写像ω(Eb{(x,y)→(βx,y)}、但し、βは位数3であるような有限体F7の元)であること、
を特徴とする一括検証装置。 The collective verification device according to claim 3,
The elliptic curve is E b {y 2 = x 3 + b (b ≠ 0 is an element of the finite field F 7 )},
The ω is an automorphism map ω (E b {(x, y) → (βx, y)} in the elliptic curve E b , where β is an element of a finite field F 7 having order 3). There is,
A batch verification device characterized by
前記コンピュータを、
前記多重スカラー倍算のスカラー値に対して、(0,±1,±α)を係数とするFrobenius展開を行い、展開値を算出する処理と、
前記展開値を、αを係数とする値の第一の値と、その他の値の第二の値と、からなる第一の加算値に分解する処理と、
前記第一の加算値を、前記第一の値においてαを共通因数としてくくりだし、第二の加算値とする処理と、
前記第二の加算値により前記多重スカラー倍算を行う処理と、を行う制御手段として機能させること、
を特徴とするプログラム。 The computer determines whether a plurality of signature data generated by a signature method based on an elliptic curve corresponds to a value calculated by double scalar multiplication and a value calculated by multiple scalar multiplication. It is a program that functions as a batch verification device that performs batch verification,
The computer,
A process of performing Frobenius expansion with a coefficient of (0, ± 1, ± α) on the scalar value of the multiple scalar multiplication, and calculating the expansion value;
A process of decomposing the expansion value into a first addition value composed of a first value having a coefficient of α and a second value of the other values;
The first addition value is processed with α as a common factor in the first value, and the second addition value,
Functioning as a control means for performing the multiple scalar multiplication by the second addition value,
A program characterized by
前記Frobenius展開は、x2+1=0の根となる複素数λに対し、(0,±1,±λ)を係数とするFrobenius展開であって、
前記制御手段に、前記第一の加算値を、前記第一の値においてλを共通因数としてくくりだし、前記第二の加算値とする処理を行わせること、
を特徴とするプログラム。 The program according to claim 6,
The Frobenius expansion is a Frobenius expansion using (0, ± 1, ± λ) as a coefficient for a complex number λ that is the root of x 2 + 1 = 0.
Causing the control means to process the first addition value as λ in the first value as a common factor and to make the second addition value;
A program characterized by
前記Frobenius展開は、x2+x+1=0の根となる複素数ωに対し、(0,±1,±ω,±ω2)を係数とするFrobenius展開であって、
前記制御手段に、前記第一の加算値を、前記第一の値においてω及びω2を共通因数としてくくりだし、前記第二の加算値とする処理を行わせること、
を特徴とするプログラム。 The program according to claim 6,
The Frobenius expansion is a Frobenius expansion in which (0, ± 1, ± ω, ± ω 2 ) is a coefficient with respect to a complex number ω that is a root of x 2 + x + 1 = 0.
Wherein the control means, the first sum value, out tying the 2 omega and omega in said first value as a common factor, to carry out the process according to the second sum value,
A program characterized by
前記楕円曲線は、Ea{y2=x3+ax(a≠0は有限体F5の元)}であり、
前記λは、前記楕円曲線Eaにおける自己同型写像λ(Ea{(x,y)→(−x,αy)}、但し、αは位数4であるような有限体F5の元)であること、
を特徴とするプログラム。 The program according to claim 7,
The elliptic curve is E a {y 2 = x 3 + ax (a ≠ 0 is an element of the finite field F 5 )}
The λ is an automorphism map λ (E a {(x, y) → (−x, α y)}) in the elliptic curve E a , where α is an element of a finite field F 5 having an order of 4) Being
A program characterized by
前記楕円曲線は、Eb{y2=x3+b(b≠0は有限体F7の元)}であり、
前記ωは、前記楕円曲線Ebにおける自己同型写像ω(Eb{(x,y)→(βx,y)}、但し、βは位数3であるような有限体F7の元)であること、
を特徴とするプログラム。 The program according to claim 8, wherein
The elliptic curve is E b {y 2 = x 3 + b (b ≠ 0 is an element of the finite field F 7 )},
The ω is an automorphism map ω (E b {(x, y) → (βx, y)} in the elliptic curve E b , where β is an element of a finite field F 7 having order 3). There is,
A program characterized by
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008182047A JP2010020189A (en) | 2008-07-11 | 2008-07-11 | Batch verification device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008182047A JP2010020189A (en) | 2008-07-11 | 2008-07-11 | Batch verification device and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010020189A true JP2010020189A (en) | 2010-01-28 |
Family
ID=41705133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008182047A Pending JP2010020189A (en) | 2008-07-11 | 2008-07-11 | Batch verification device and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010020189A (en) |
-
2008
- 2008-07-11 JP JP2008182047A patent/JP2010020189A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5373026B2 (en) | Enhanced verification of digital signatures and public keys | |
US8745376B2 (en) | Verifying implicit certificates and digital signatures | |
WO2013031414A1 (en) | Signature verification device, signature verification method, program, and recording medium | |
JP5099003B2 (en) | Group signature system and information processing method | |
CN113098691B (en) | Digital signature method, signature information verification method, related device and electronic equipment | |
Sengupta et al. | Efficient proofs of retrievability with public verifiability for dynamic cloud storage | |
CN115664675B (en) | SM2 algorithm-based traceable ring signature method, system, equipment and medium | |
JP4988448B2 (en) | Batch verification apparatus, program, and batch verification method | |
US20240007303A1 (en) | Method and system for digital signatures utilizing multiplicative semigroups | |
JP5328993B2 (en) | Signature generation apparatus, signature generation method, and recording medium | |
JP6610277B2 (en) | Shared key generation program, shared key generation method, and information processing terminal | |
Gajland et al. | Swoosh: Practical Lattice-Based Non-Interactive Key Exchange. | |
CN113407976A (en) | Digital signature method, signature information verification method, related device and electronic equipment | |
CN111147254B (en) | Method and device for generating EdDSA digital signature cooperated by two parties | |
US20220385954A1 (en) | Embedding information in elliptic curve base point | |
JP2011259389A (en) | Message authentication code generation device, message authentication code verification device, message authentication code generation method, message authentication code verification method, and program | |
CN117795901A (en) | Generating digital signature shares | |
CN110752931B (en) | SM2 elliptic curve public key cryptosystem optimization method | |
JP2010020189A (en) | Batch verification device and program | |
KR101699893B1 (en) | Method and device for hashing onto points of an elliptic curve | |
WO2021127951A1 (en) | Method and device for generating two-party collaborative eddsa digital signature | |
JP4769147B2 (en) | Batch proof verification method, proof device, verification device, batch proof verification system and program | |
Leevik et al. | Review and Analysis of the Classical and Post-Quantum Ring Signature Algorithms | |
CN116827628A (en) | Quantum attack resistant blockchain transaction method and system based on IPFS | |
Sindhu et al. | Fortifying Blockchain: Streamlined Lattice Signatures Amid Quantum Threats to Blockchain |