JP2010020189A - Batch verification device and program - Google Patents

Batch verification device and program Download PDF

Info

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
Application number
JP2008182047A
Other languages
Japanese (ja)
Inventor
Keisuke Hakuta
恵輔 伯田
Hisanobu Sato
尚宜 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008182047A priority Critical patent/JP2010020189A/en
Publication of JP2010020189A publication Critical patent/JP2010020189A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To achieve a batch verification which combines both high security and high efficiency even when there is much number of signatures to be verified. <P>SOLUTION: A plurality of signature data transmitted from a signature device 110 are collectively verified by a verification device 130. The verification device 130 performs batch verification of the plurality of signature data according to whether the value calculated by double scalar multiplication corresponds to the value calculated by multiplex scalar multiplication, performs Frobenius expansion to the scalar value of the multiplex scalar multiplication to calculate an expanded value, and performs calculation by binding common factors in the expanded value. <P>COPYRIGHT: (C)2010,JPO&INPIT

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 Document 1, a plurality of digital signatures are collectively processed. By verifying, the efficiency of digital signature verification processing is improved.

例えば、通常の署名検証では、各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.

Figure 2010020189
Figure 2010020189

但し、各i(i=1,・・・,u)に対してx、yはそれぞれ下記の(2)式及び(3)式を満たす。 However, for each i (i = 1,..., U), x i and y i satisfy the following expressions (2) and (3), respectively.

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

ここで、Gは、位数をn(nは大きな素数)とする有限巡回群であり、gは、群Gの生成元である。さらに、(x,y)は、(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 Non-Patent Document 1, the following equation (4) is used. And by verifying whether or not the expression (5) is satisfied, it is possible to verify the digital signature efficiently by verifying a plurality of digital signatures at once (by performing heavy processing only once). I can do it.

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

ここで、(5)式に示すように、各i(i=1,・・・,u)に対してsは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 Non-Patent Document 1, it is possible to efficiently verify a digital signature by verifying whether or not the following expressions (6) and (7) are satisfied. Yes.

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

ここで、sは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 Non-Patent Document 1 depends on the number n of batch instances and the security level m.

また、楕円曲線に基づく署名方式における一括検証では、多重スカラー倍算を行う処理が、処理全体の大部分を占める。そのため、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.

M. Bellare,J. Garay,and T. Rabin, "Fast Batch Verification for Modular Exponentiation and Digital Signatures", Advances in Cryptology - EUROCRYPT 1998,LNCS 1403, pp. 236 - 250, 1998.M. Bellare, J. Garay, and T. Rabin, "Fast Batch Verification for Modular Exponentiation and Digital Signatures", Advances in Cryptology-EUROCRYPT 1998, LNCS 1403, pp. 236-250, 1998. J. Cheon and D. Lee, "Use of Sparse and/or Complex Exponents in Batch Verification of Exponentiation", IEEE. T. on Computers, Vol.55, No.12, 2006.J. Cheon and D. Lee, "Use of Sparse and / or Complex Exponents in Batch Verification of Exponentiation", IEEE. T. on Computers, Vol.55, No.12, 2006. J. Cheon and J. Yi, "Fast Batch Verification of Multiple Signature",PKC’07,LNCS 4450,Springer-Verlag,pp.442-457,2007.J. Cheon and J. Yi, "Fast Batch Verification of Multiple Signature", PKC'07, LNCS 4450, Springer-Verlag, pp. 442-457, 2007.

以上に記載したように、非特許文献1に記載の一括検証処理の技術では、通常の署名検証処理と比較して効率性を向上させることができるが、楕円曲線に基づく署名方式への適用に関しては記載がなされておらず、楕円曲線に基づく署名方式において十分な効率性を発揮することはできないものと思われる。   As described above, the collective verification processing technique described in Non-Patent Document 1 can improve the efficiency as compared with the normal signature verification processing, but it is applied to a signature scheme based on an elliptic curve. Is not described, and it seems that the signature scheme based on the elliptic curve cannot exhibit sufficient efficiency.

また、非特許文献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 batch verification system 100 according to the first embodiment of the present invention.

図示するように、署名一括検証システム100は、署名装置110と、検証装置130と、を備え、これらの署名装置110及び検証装置130は、ネットワーク150を介して相互に情報の送受信を行うことができるようにされている。   As shown in the figure, the signature batch verification system 100 includes a signature device 110 and a verification device 130, and these signature device 110 and verification device 130 can transmit and receive information to and from each other via a network 150. It has been made possible.

そして、本実施形態である署名一括検証システム100では、署名装置110でメッセージMに対する署名Sの生成を行い、検証装置130で署名Sの一括検証を行う。   In the signature batch verification system 100 according to this embodiment, the signature device 110 generates a signature S for the message M, and the verification device 130 performs batch verification of the signature S.

図2は、署名装置110の概略図である。   FIG. 2 is a schematic diagram of the signature device 110.

ここで、本実施形態における署名方式は、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 signature device 110 includes a storage unit 111, a control unit 114, an input unit 117, an output unit 118, and a communication unit 119.

記憶部111は、署名鍵記憶領域112と、データ記憶領域113と、を備える。   The storage unit 111 includes a signature key storage area 112 and a data storage area 113.

署名鍵記憶領域112には、署名を行う際の鍵情報である署名鍵を特定する情報が記憶される。   In the signature key storage area 112, information for specifying a signature key, which is key information for performing a signature, is stored.

ここで、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).

Figure 2010020189
Figure 2010020189

データ記憶領域113には、署名を行う対象となるデータであるメッセージを特定する情報が記憶される。   The data storage area 113 stores information for identifying a message that is data to be signed.

制御部114は、署名生成処理部115と、数学関数計算部116と、を備える。   The control unit 114 includes a signature generation processing unit 115 and a mathematical function calculation unit 116.

署名生成処理部115は、署名を行う対象となるデータであるメッセージMに対する署名データを生成する処理を制御する。   The signature generation processing unit 115 controls processing for generating signature data for the message M that is data to be signed.

例えば、本実施形態では、署名生成処理部115は、署名を行う対象となるデータであるメッセージMを、予め定められたハッシュ関数Hに入力することで、入力データを生成する。   For example, in this embodiment, the signature generation processing unit 115 generates input data by inputting a message M, which is data to be signed, into a predetermined hash function H.

そして、署名生成処理部115は、署名鍵記憶領域112に記憶されている署名鍵を取得して、入力データとともに、数学関数計算部116に入力する。   Then, the signature generation processing unit 115 acquires the signature key stored in the signature key storage area 112 and inputs it to the mathematical function calculation unit 116 together with the input data.

また、署名生成処理部115は、数学関数計算部116より生成された署名Sを取得して、署名SとメッセージMとを署名データとして、通信部119を介して検証装置130に送信する。   The signature generation processing unit 115 acquires the signature S generated by the mathematical function calculation unit 116, and transmits the signature S and the message M as signature data to the verification device 130 via the communication unit 119.

数学関数計算部116は、署名生成処理部115から入力された入力データに対して、署名生成処理部115から入力された署名鍵を用いて、予め定められたアルゴリズムによる暗号化を施して署名を生成する。   The mathematical function calculation unit 116 encrypts the input data input from the signature generation processing unit 115 with a predetermined algorithm using the signature key input from the signature generation processing unit 115, and signs the signature. Generate.

例えば、ECDSA署名において、上述の署名鍵dを用いたメッセージM(i=1,・・・,u)に対する署名Sは、下記の(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).

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

ここで、Hは暗号学的ハッシュ関数を意味する。また、x(R)は楕円曲線E(F )上の点Rの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 ).

また、kは署名生成時に生成した乱数であり、下記の(13)式を満たす。 K i is a random number generated at the time of signature generation and satisfies the following expression (13).

Figure 2010020189
Figure 2010020189

なお、ECDSA署名(または、ECDSA署名)におけるシステムパラメータは、下記の通りである。 The system parameters in the ECDSA signature (or ECDSA * signature) are as follows.

E/F:有限体F上において定義された楕円曲線。 E / F q : An elliptic curve defined on the finite field F q .

#E(F)=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=p)。 q: prime bit size of n is more than 160 p powers of (q = p r).

P:位数がnであるようなE(F)上の点。 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 function calculation unit 116 outputs the signature generated in this way to the signature generation processing unit 115.

入力部117は、情報の入力を受け付ける。   The input unit 117 receives information input.

出力部118は、情報を出力する。   The output unit 118 outputs information.

通信部119は、ネットワーク150を介して、情報の送受信を行う。   The communication unit 119 transmits and receives information via the network 150.

以上に記載した署名装置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 signature device 110 described above includes, for example, a CPU (Central Processing Unit) 901, a memory 902, and an external storage device 903 such as an HDD (Hard Disk Drive) as shown in FIG. 3 (schematic diagram of the computer 900). A reading device 905 for reading / writing information from / to a portable storage medium 904 such as a CD-ROM (Compact Disk Read Only Memory) or a DVD-ROM (Digital Versatile Disk Read Only Memory), a keyboard, a mouse, etc. This can be realized by a general computer 900 including an input device 906, an output device 907 such as a display, and a communication device 908 such as a NIC (Network Interface Card) for connecting to a communication network.

例えば、記憶部111は、CPU901がメモリ902又は外部記憶装置903を利用することにより実現可能であり、制御部114は、外部記憶装置903に記憶されている所定のプログラムをメモリ902にロードしてCPU901で実行することで実現可能であり、入力部117は、CPU901が入力装置906を利用することで実現可能であり、出力部118は、CPU901が出力装置907を利用することで実現可能であり、通信部119は、CPU901が通信装置908を利用することで実現可能である。   For example, the storage unit 111 can be realized by the CPU 901 using the memory 902 or the external storage device 903, and the control unit 114 loads a predetermined program stored in the external storage device 903 into the memory 902. The input unit 117 can be realized by using the input device 906 by the CPU 901, and the output unit 118 can be realized by using the output device 907 by the CPU 901. The communication unit 119 can be realized by the CPU 901 using the communication device 908.

この所定のプログラムは、読書装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、外部記憶装置903にダウンロードされ、それから、メモリ902上にロードされてCPU901により実行されるようにしてもよい。また、読書装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、メモリ902上に直接ロードされ、CPU901により実行されるようにしてもよい。   The predetermined program is downloaded from the storage medium 904 via the reading device 905 or from the network via the communication device 908 to the external storage device 903, and then loaded onto the memory 902 and executed by the CPU 901. You may do it. Alternatively, the program may be directly loaded on the memory 902 from the storage medium 904 via the reading device 905 or from the network via the communication device 908 and executed by the CPU 901.

図4は、検証装置130の概略図である。   FIG. 4 is a schematic diagram of the verification device 130.

図示するように、検証装置130は、記憶部131と、制御部134と、入力部137と、出力部138と、通信部139と、を備える。   As illustrated, the verification device 130 includes a storage unit 131, a control unit 134, an input unit 137, an output unit 138, and a communication unit 139.

記憶部131は、検証鍵記憶領域132と、署名データ記憶領域133と、を備える。   The storage unit 131 includes a verification key storage area 132 and a signature data storage area 133.

検証鍵記憶領域132には、署名装置110から送信されてきた署名データに含まれている署名を復号化して検証するための鍵情報である検証鍵を特定する情報が記憶される。   The verification key storage area 132 stores information for specifying a verification key, which is key information for decrypting and verifying the signature included in the signature data transmitted from the signature device 110.

署名データ記憶領域133には、署名装置110から送信されてきた署名データを特定する情報が記憶される。   In the signature data storage area 133, information for identifying the signature data transmitted from the signature device 110 is stored.

制御部134は、署名一括検証処理部135と、数学関数計算部136と、を備える。   The control unit 134 includes a signature batch verification processing unit 135 and a mathematical function calculation unit 136.

署名一括検証処理部135は、署名装置110から送信されてきた署名データを一括して検証する処理を制御する。   The signature batch verification processing unit 135 controls processing for collectively verifying signature data transmitted from the signature device 110.

例えば、本実施形態においては、署名一括検証処理部135は、検証鍵記憶領域132に記憶されている検証鍵及び署名データ記憶領域133に記憶されている署名データを記憶部131から取得し、数学関数計算部136に入力する。   For example, in the present embodiment, the signature batch verification processing unit 135 acquires the verification key stored in the verification key storage region 132 and the signature data stored in the signature data storage region 133 from the storage unit 131, Input to the function calculation unit 136.

そして、署名一括検証処理部135は、数学関数計算部136から一括検証の結果を取得して、記憶部131に記憶するか、または、出力部138や通信部139を介して、検証結果を出力する。   The signature batch verification processing unit 135 acquires the result of the batch verification from the mathematical function calculation unit 136 and stores the result in the storage unit 131 or outputs the verification result via the output unit 138 or the communication unit 139. To do.

数学関数計算部136は、署名一括検証部135から入力された署名データに含まれている署名に対して、署名一括検証部135から入力された検証鍵を用いて、予め定められたアルゴリズムによる署名の一括検証を施して、署名の有効性を確認する。   The mathematical function calculation unit 136 uses a verification key input from the signature batch verification unit 135 for a signature included in the signature data input from the signature batch verification unit 135 to sign a signature based on a predetermined algorithm. To verify the validity of the signature.

例えば、本実施形態においては、数学関数計算部136は、バッチインスタンス生成部136aと、多重スカラー倍算計算部136bと、を備える。   For example, in the present embodiment, the mathematical function calculation unit 136 includes a batch instance generation unit 136a and a multiple scalar multiplication calculation unit 136b.

バッチインスタンス生成部136aは、署名一括検証部135から入力された署名データに含まれている署名から、バッチインスタンスを生成する。   The batch instance generation unit 136a generates a batch instance from the signature included in the signature data input from the signature batch verification unit 135.

ここで、バッチインスタンスの生成方法は、署名装置110及び検証装置130で使用する署名方式に依存する。なお、署名装置110及び検証装置130で使用する署名方式により生成された署名がバッチインスタンスとなっている場合には、数学関数計算部136にバッチインスタンス生成部136aを設ける必要はない。   Here, the batch instance generation method depends on the signature method used in the signature device 110 and the verification device 130. If the signature generated by the signature method used in the signature device 110 and the verification device 130 is a batch instance, the mathematical function calculation unit 136 does not need to include the batch instance generation unit 136a.

例えば、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 instance generation unit 136a of the mathematical function calculation unit 136 batches the signature acquired from the signature device 110. Transform into an instance.

具体的には、数学関数計算部136のバッチインスタンス生成部136aは、上述の(9)式で算出された署名Sを、上述の(10)式、(11)式及び(12)式を用いて、下記の(14)式に示すバッチインスタンスを算出する。 Specifically, batch instantiation portion 136a of the mathematical function computing unit 136, the signature S i calculated in the above-mentioned (9), the above equation (10), (11) and (12) The batch instance shown in the following equation (14) is calculated by using the calculation.

Figure 2010020189
Figure 2010020189

多重スカラー倍算計算部136bは、多重スカラー倍計算処理を行う。   The multiple scalar multiplication calculation unit 136b performs a multiple scalar multiplication calculation process.

そして、多重スカラー倍算計算部136bは、下記の(15)式を満たすかどうかで検証を行う。   Then, the multiple scalar multiplication calculation unit 136b performs verification based on whether or not the following expression (15) is satisfied.

Figure 2010020189
Figure 2010020189

即ち、(15)式を満たす場合は「有効」として署名Sを受け入れ、(15)式を満たさない場合は「無効」として署名Sを拒否する。 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”.

ここで、L(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).

Figure 2010020189
Figure 2010020189

但し、#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 multiplication calculation unit 136b is as follows.

まず、多重スカラー倍算計算部136bは、スカラー値を、x+1=0の根となる複素数λに対し、(0,±1,±λ)を係数とするFrobenius展開を施す。このFrobenius展開については、公知のものを用いればよいため詳細な説明は省略する。 First, the multiple scalar multiplication calculation unit 136b performs a Frobenius expansion with a scalar value as a coefficient (0, ± 1, ± λ) on the complex number λ that is the root of x 2 + 1 = 0. About this Frobenius development, since a well-known thing should just be used, detailed description is abbreviate | omitted.

次に、多重スカラー倍算計算部136bは、Frobenius展開された値を、λを係数とする値と、他の値と、の加算値に分解する。   Next, the multiple scalar multiplication calculation unit 136b decomposes the Frobenius expanded value into an addition value of a value having λ as a coefficient and another value.

例えば、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 multiplication calculation unit 136b can reduce the number of multiplications by using λ as a common factor in a value having λ as a coefficient.

例えば、上述の加算値(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 input unit 117 receives information input.

出力部118は、情報を出力する。   The output unit 118 outputs information.

通信部119は、ネットワーク150を介して、情報の送受信を行う。   The communication unit 119 transmits and receives information via the network 150.

以上に記載した署名装置130も、例えば、図3に示すような一般的なコンピュータ900で実現できる。   The signature device 130 described above can also be realized by a general computer 900 as shown in FIG.

例えば、記憶部131は、CPU901がメモリ902又は外部記憶装置903を利用することにより実現可能であり、制御部134は、外部記憶装置903に記憶されている所定のプログラムをメモリ902にロードしてCPU901で実行することで実現可能であり、入力部137は、CPU901が入力装置906を利用することで実現可能であり、出力部138は、CPU901が出力装置907を利用することで実現可能であり、通信部139は、CPU901が通信装置908を利用することで実現可能である。   For example, the storage unit 131 can be realized by the CPU 901 using the memory 902 or the external storage device 903, and the control unit 134 loads a predetermined program stored in the external storage device 903 into the memory 902. The input unit 137 can be realized by using the input device 906 by the CPU 901, and the output unit 138 can be realized by using the output device 907 by the CPU 901. The communication unit 139 can be realized by the CPU 901 using the communication device 908.

この所定のプログラムは、読書装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、外部記憶装置903にダウンロードされ、それから、メモリ902上にロードされてCPU901により実行されるようにしてもよい。また、読書装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、メモリ902上に直接ロードされ、CPU901により実行されるようにしてもよい。   The predetermined program is downloaded from the storage medium 904 via the reading device 905 or from the network via the communication device 908 to the external storage device 903, and then loaded onto the memory 902 and executed by the CPU 901. You may do it. Alternatively, the program may be directly loaded on the memory 902 from the storage medium 904 via the reading device 905 or from the network via the communication device 908 and executed by the CPU 901.

図5は、署名装置110における署名生成処理を示すシーケンス図である。   FIG. 5 is a sequence diagram showing a signature generation process in the signature device 110.

まず、署名装置110の署名生成処理部115は、入力部117を介して入力された、または、記憶部111のデータ記憶領域113に記憶されているメッセージMを取得する(S10)。ここで、メッセージMは、デジタル化されたデータであればよく、テキスト、画像、映像、音等の種類は問わない。   First, the signature generation processing unit 115 of the signature device 110 obtains the message M input via the input unit 117 or stored in the data storage area 113 of the storage unit 111 (S10). Here, the message M may be any digitized data, and may be any type of text, image, video, sound, or the like.

次に、署名生成処理部115は、取得したメッセージMから入力データH(M)を生成する(S11)。入力データH(M)は、例えば、メッセージMのハッシュ値等で、メッセージMや使用する署名方式に依存するものである。   Next, the signature generation processing unit 115 generates input data H (M) from the acquired message M (S11). The input data H (M) is, for example, a hash value of the message M and depends on the message M and the signature method used.

次に、署名生成処理部115は、記憶部111の署名鍵記憶領域112に記憶されている署名鍵skを読み出す(S12)。   Next, the signature generation processing unit 115 reads the signature key sk stored in the signature key storage area 112 of the storage unit 111 (S12).

そして、署名生成処理部115は、読み出した署名鍵sk及びステップS11で生成した入力データH(M)を数学関数計算部116に入力する(S13)。   Then, the signature generation processing unit 115 inputs the read signature key sk and the input data H (M) generated in step S11 to the mathematical function calculation unit 116 (S13).

数学関数計算部116は、入力された署名鍵skと入力データH(M)とから、署名Sを計算する(S14)。ここで、署名Sは、採用する署名方式に依存して計算される値である。   The mathematical function calculation unit 116 calculates a signature S from the input signature key sk and the input data H (M) (S14). Here, the signature S is a value calculated depending on the signature scheme to be adopted.

そして、数学関数計算部116は、計算した署名Sを署名生成処理部115に出力する(S15)。   Then, the mathematical function calculation unit 116 outputs the calculated signature S to the signature generation processing unit 115 (S15).

署名生成処理部115は、受け取った署名Sと、メッセージMと、を少なくとも含む署名データを生成して、通信部119を介して検証装置130に送信する(S16)。   The signature generation processing unit 115 generates signature data including at least the received signature S and the message M, and transmits the signature data to the verification device 130 via the communication unit 119 (S16).

なお、ステップS12において記憶部111からの署名鍵skの取得タイミングについては、数学関数計算部116へ署名鍵skを出力する前であればよく、例えば、メッセージMを取得する(S10)前であってもよい。   Note that the acquisition timing of the signature key sk from the storage unit 111 in step S12 may be before the signature key sk is output to the mathematical function calculation unit 116, for example, before the message M is acquired (S10). May be.

図6は、検証装置130における署名の一括検証処理を示すシーケンス図である。   FIG. 6 is a sequence diagram showing a signature verification process in the verification apparatus 130.

まず、検証装置130の署名一括検証処理部135は、入力部137又は通信部139を介して入力された、または、記憶部131の署名データ記憶領域133に記憶されている署名データを任意の個数取得する(S20)。   First, the signature batch verification processing unit 135 of the verification device 130 receives an arbitrary number of signature data input via the input unit 137 or the communication unit 139 or stored in the signature data storage area 133 of the storage unit 131. Obtain (S20).

また、署名一括検証処理部135は、記憶部131の検証鍵記憶領域132に記憶されている検証鍵pkを読み出す(S21)。   The signature batch verification processing unit 135 reads the verification key pk stored in the verification key storage area 132 of the storage unit 131 (S21).

そして、署名一括検証処理部135は、取得した複数の署名データ及び読み出した検証鍵pkを数学関数計算部136に入力する(S22)。   Then, the signature batch verification processing unit 135 inputs the acquired plurality of signature data and the read verification key pk to the mathematical function calculation unit 136 (S22).

数学関数計算部136では、入力された複数の署名データに含まれる署名SからバッチインスタンスS’を生成する(S23)。なお、署名Sが既にバッチインスタンスとなっている場合には、バッチインスタンスを生成する必要はない。   The mathematical function calculation unit 136 generates a batch instance S ′ from the signatures S included in the plurality of input signature data (S23). When the signature S is already a batch instance, it is not necessary to generate a batch instance.

そして、数学関数計算部136は、入力された検証鍵pkとバッチインスタンスS’とから、予め定められた一括検証を行い(S24)、その結果を検証結果として署名一括検証処理部135に出力する(S25)。なお、数学関数計算部136での署名の一括検証処理については、後述する図7を用いて詳述する。   Then, the mathematical function calculation unit 136 performs predetermined batch verification from the input verification key pk and the batch instance S ′ (S24), and outputs the result to the signature batch verification processing unit 135 as a verification result. (S25). The signature verification process in the mathematical function calculation unit 136 will be described in detail with reference to FIG.

このような検証結果を取得した署名一括検証処理部135は、記憶部131に記憶するか、または、出力部138や通信部139を介して、検証結果(署名データが有効か否か)を出力する(S26)。   The signature batch verification processing unit 135 that has acquired the verification result stores the verification result in the storage unit 131 or outputs the verification result (whether the signature data is valid) via the output unit 138 and the communication unit 139. (S26).

なお、記憶部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 function calculation unit 136, for example, before the signature data is received in step S20.

図7は、本実施形態における数学関数計算部136での一括検証処理を示すフローチャートである。   FIG. 7 is a flowchart showing the batch verification process in the mathematical function calculation unit 136 in the present embodiment.

まず、数学関数計算部136は、メッセージM(i=1,・・・,u)、バッチインスタンスS’=(R、σ)(i=1,・・・,u)、公開鍵Q、楕円曲線補助情報ξ、および、セキュリティパラメータmの入力を受け付ける(S30)。ここで、楕円曲線補助情報ξとは、後述するように楕円曲線上の自己同型写像等である。 First, the mathematical function calculator 136 sends a message M i (i = 1,..., U), a batch instance S i ′ = (R i , σ i ) (i = 1,. The input of the key Q, the elliptic curve auxiliary information ξ, and the security parameter m is accepted (S30). Here, the elliptic curve auxiliary information ξ is an automorphism map on the elliptic curve, as will be described later.

次に、数学関数計算部136は、すべてのi(i=1,・・・,u)に対して、下記の(17)式及び(18)式が成り立つか否かを判定する(S31)。ここで、rは、上述の(11)式を満たす。 Next, the mathematical function calculator 136 determines whether or not the following equations (17) and (18) hold for all i (i = 1,..., U) (S31). . Here, r i satisfies the above expression (11).

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

すべての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に対して、メッセージMのハッシュ値H(M)を計算し、その結果をmに代入する(S32)。 Then, the mathematical function computing unit 136, for each i, and computes a message M i of the hash value H (M i), and substitutes the result to m i (S32).

そして、数学関数計算部136は、集合SETからL(i=1,・・・,u)をランダムに選択する(S33)。 Then, the mathematical function calculation unit 136 randomly selects L i (i = 1,..., U) from the set SET (S33).

そして、数学関数計算部136は、下記(19)式が成り立つか否かを判定する(S34)。   Then, the mathematical function calculation unit 136 determines whether or not the following equation (19) holds (S34).

Figure 2010020189
Figure 2010020189

そして、(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 mathematical function calculator 136 determines that the input signature is valid.

ステップS36では、数学関数計算部136は、入力された署名が無効であると判定する。   In step S36, the mathematical function calculation unit 136 determines that the input signature is invalid.

次に、本実施形態における多重すらカー倍算の概要を説明する。   Next, an overview of even multiple multiplication in the present embodiment will be described.

ここで、本実施形態においては、Eは、下記の(20)式に示すように、有限体F上において定義された楕円曲線である。 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).

Figure 2010020189
Figure 2010020189

また、λは、下記の(21)式に示すような楕円曲線E上の自己同型写像である。 Λ is an automorphism map on an elliptic curve E a as shown in the following equation (21).

Figure 2010020189
Figure 2010020189

ただし、αは位数4であるような有限体Fの元である
図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は、楕円曲線E上の点P、Q(Q=dP、d:秘密鍵)、R(i=1,・・・,u)、スカラー値w、z、下記の(22)式に示す乱数t、下記の(23)式に示す乱数tij、および、楕円曲線E上の自己同型写像λの入力を受け付ける(S40)。 First, the multiple scalar multiplication calculation unit 136b of the mathematical function calculation unit 136 of the control unit 134 of the verification apparatus 130 performs points P and Q on the elliptic curve E a (Q = dP, d: secret key), R i (i = 1,..., U), scalar values w i , z i , random numbers t i shown in the following equation (22), random numbers t ij shown in the following equation (23), and elliptic curve E a The input of the automorphism map λ is accepted (S40).

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

ここで、スカラー値w,zは、それぞれ、(19)式の右辺のPの係数Lσi−1、(19)式の右辺のQの係数Lσi−1を表す。 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.

また、集合S(e,k,q)は、下記の(24)式に示されているように、集合Dの元を係数とする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.

Figure 2010020189
Figure 2010020189

なお、図7のステップS33における集合SETは、ここでは、S(e,k,q)を表している。 Note that the set SET in step S33 in FIG. 7 represents S G (e, k, q) here.

また、上述のDのように、展開の桁となる元全体の集合は桁集合(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).

ここで、上述の乱数tを、下記の(25)式に示すように変形する方法について説明する。 Here, the random number t i above, describes a method of deformed as shown in (25) below.

Figure 2010020189
Figure 2010020189

まず、楕円曲線E上の点に対して、Frobenius写像φと呼ばれる自己準同型写像を施すことが可能である。点(x,y)に対して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).

Figure 2010020189
Figure 2010020189

また、下記の(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).

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

ここで、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)式の楕円曲線Eにおいて、λの値は、下記の(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).

Figure 2010020189
Figure 2010020189

(20)式の楕円曲線Eにおいて、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).

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

この関係式を使うと、t=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).

Figure 2010020189
Figure 2010020189

一般の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 multiplication calculation unit 136b calculates the double scalar multiplication on the right side of the above equation (19), and substitutes the result into G (S41).

次に、多重スカラー倍算計算部136bは、iに1を、jにe−1を、Aに無限遠点0を、Bに無限遠点0を、それぞれ代入する(S42)。   Next, the multiple scalar multiplication calculation unit 136b substitutes 1 for i, e-1 for j, infinity point 0 for A, and infinity point 0 for B (S42).

次に、多重スカラー倍算計算部136bは、i≦uであるか否かを判定する(S43)。   Next, the multiple scalar multiplication calculation unit 136b determines whether i ≦ u is satisfied (S43).

そして、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 multiplication calculation unit 136b determines whether j ≧ 0.

そして、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 multiplication calculation unit 136b substitutes φ (B) for B.

そして、多重スカラー倍算計算部136bは、もし、tij=±1であるならば、BにB±Rを代入する(S46)。なお、tij=±1が成立しない場合には、ステップS46は、スキップする。 The multi-scalar multiplication calculation portion 136b may If a t ij = ± 1, substitutes the B ± R i to B (S46). If t ij = ± 1 is not satisfied, step S46 is skipped.

次に、多重スカラー倍算計算部136bは、jにj−1を代入し(S47)、ステップS44に戻り処理を繰り返す。   Next, the multiple scalar multiplication calculation unit 136b substitutes j−1 for j (S47), and returns to step S44 to repeat the processing.

一方、ステップ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 multiplication calculation unit 136b sets i + 1 to i, e-1 to j, A + B to A, and B to B. The infinite point 0 is substituted (S48), and the process returns to step S43 to repeat the process.

また、ステップ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 multiplication calculation unit 136b substitutes 1 for i (S49).

そして、多重スカラー倍算計算部136bは、i≦uであるか否かを判定する(S50)。   Then, the multiple scalar multiplication calculation unit 136b determines whether i ≦ u is satisfied (S50).

そして、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 multiplication calculation unit 136b determines whether j ≧ 0.

そして、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 multiplication calculation unit 136b substitutes φ (B) for B.

そして、多重スカラー倍算計算部136bは、もし、tij=±λであるならば、BにB±Rを代入する(S53)。なお、tij=±λが成立しない場合には、ステップS53は、スキップする。 Then, the multiple scalar multiplication calculation unit 136b substitutes B ± R i for B if t ij = ± λ (S53). In the case where t ij = ± lambda is not satisfied, step S53 is skipped.

次に、多重スカラー倍算計算部136bは、jにj−1を代入し(S54)、ステップS51に戻り処理を繰り返す。   Next, the multiple scalar multiplication calculation unit 136b substitutes j−1 for j (S54), and returns to Step S51 to repeat the processing.

一方、ステップ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 multiplication calculation unit 136b substitutes i + 1 for i and e-1 for j (S55), respectively. The process returns to step S50 and is repeated.

また、ステップ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 multiplication calculation unit 136b substitutes λ (B) for B and A + B for A (S56). Exit.

なお、上述の多重スカラー倍算((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 Non-Patent Document 1, Non-Patent Document 2, and Non-Patent Document 3 (the number of updates of intermediate values can be greatly reduced) is as follows. It is as follows.

非特許文献1、非特許文献2、および、非特許文献3に記載の署名一括検証の場合、符号付き2進展開、または、Frobenius展開の桁集合が大きいため、(桁集合の要素数)×(検証したい署名の個数)の回数だけ中間値を更新する必要がある。そのため、検証したい署名の個数が大きい場合は、中間値の更新回数が多くなり、結果として処理性能のボトルネックとなる。   In the signature collective verification described in Non-Patent Document 1, Non-Patent Document 2, and Non-Patent Document 3, since the digit set of signed binary expansion or Frobenius expansion is large, (number of elements in the digit set) × The intermediate value needs to be updated as many times as the number of signatures to be verified. For this reason, when the number of signatures to be verified is large, the number of intermediate value updates increases, resulting in a bottleneck in processing performance.

これに対し、本実施形態においては、(20)式の楕円曲線E、および、(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.

Figure 2010020189
Figure 2010020189

例えば、u=2、L=λ−Φ+λΦ、L=1+λΦとすると、下記の(34)式に示すようになる。 For example, when u = 2, L 1 = λ−Φ + λΦ 2 , and L 1 = 1 + λΦ 2 , the following equation (34) is obtained.

Figure 2010020189
Figure 2010020189

これより、図8に記載の多重スカラー倍計算方法を用いた場合、中間値λR、λRを更新する必要はなく、係数が±λとなっている点をすべて加算し、最後に自己同型写像λを施せばよい。 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 Non-Patent Document 1, Non-Patent Document 2, and Non-Patent Document 3, the intermediate value is updated by the number of times of (number of elements in digit set) × (number of signatures to be verified). There is a need to. On the other hand, when the multiple scalar multiplication method shown in FIG. 8 is used, the number of updates of the intermediate value is greatly reduced as compared with Non-Patent Document 1, Non-Patent Document 2, and Non-Patent Document 3. it can.

さらに、上述の中間値を事前に計算する方法を用いる場合、事前計算テーブル(桁集合の元をスカラー値とするスカラー倍点)を保持する記憶領域を大量に必要とするのに対し、図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展開φ+q、tφは、表現方法は異なるが、値としては同じものである)。つまり、集合SETとして(ある桁集合に関する)Frobenius展開を用いる場合は、そのFrobenius展開の元の個数を正確に求める(もしくは、Frobenius展開の元の個数の上限と下限を求める)必要があり、これができなければ、一括検証のセキュリティレベルmを正確に設定することはできない。そのため、集合SETとしてFrobenius展開を用いる場合は、その元の個数を正確に求める(もしくは、Frobenius展開の元の個数の上限と下限を求める)ことができるような桁集合を用いることが望ましい。本実施形態に記載の集合S(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展開が一意であることから、表現方法は異なり、かつ値としては同じとなることはない。さらに、S(e,k,q)の要素数#S(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.

Figure 2010020189
ここで、は組合せの個数を表す記号であり、異なるe個からi個を選択する場合の組合せの総数を表す。
Figure 2010020189
Here, e C i is a symbol representing the number of combinations, and represents the total number of combinations when i is selected from different e.

したがって、(35)式の値が2となるように(e,k,q)を定めればよい。具体的には、第一の実施形態では、q=5であり、eは使用する楕円曲線の安全性を示すビット長(160−bit、192−bit、256−bit等)が、5と同程度になるように設定すればよい。そして、定まったeとqを(35)式に代入し、2と同程度になるよう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.

例えば、署名生成鍵skと署名検証鍵pkの組(sk=d、pk=Q)(ここで、Q=dP)をもつ少なくとも一人以上のユーザA(1≦i≦r)がそれぞれ生成したバッチインスタンス(R (j)、σ (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.

Figure 2010020189
Figure 2010020189

また、以上に記載した一括検証方式では、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 verification device 130.

なお、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 Document 6 below to a signature scheme based on the discrete logarithm problem on an elliptic curve. It is also known that application to the above is possible.

文献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 signature device 110 and a verification device 130. These signature device 110 and verification device 130 are connected to a network 150. It is possible to send and receive information to and from each other.

そして、署名装置110については、第一の実施形態と同様に構成される。   The signature device 110 is configured in the same manner as in the first embodiment.

また、検証装置130についても、第一の実施形態と同様に構成されるが、制御部134の数学関数計算部136での署名の一括検証処理が異なるため、以下、この異なる点に関連する事項について説明する。   The verification device 130 is also configured in the same manner as in the first embodiment, but since the signature verification processing in the mathematical function calculation unit 136 of the control unit 134 is different, items related to this different point will be described below. Will be described.

本実施形態の多重スカラー倍計算の概要は、以下のとおりである。   The outline of the multiple scalar multiplication of this embodiment is as follows.

第二の実施形態では、第一の実施形態で用いた楕円曲線とは異なる曲線を用いる。以下、本実施形態においてEは、下記の(37)式のように有限体F上定義された楕円曲線である。 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).

Figure 2010020189
Figure 2010020189

ここで、ωは、下記の(38)式で示される楕円曲線E上の自己同型写像である。 Here, ω is an automorphism map on the elliptic curve Eb expressed by the following equation (38).

Figure 2010020189
Figure 2010020189

但し、βは位数3であるような有限体Fの元である。 However, β is an element of a finite field F 7 having an order of 3.

そして、多重スカラー倍算計算部136bは、スカラー値を、x+x+1=0の根となる複素数ωに対し、(0,±1,±ω,±ω)を係数とするFrobenius展開を施す。このFrobenius展開については、公知のものを用いればよいため詳細な説明は省略する。 Then, the multiple scalar multiplication calculation unit 136b performs a Frobenius expansion with the scalar value as a coefficient for (0, ± 1, ± ω, ± ω 2 ) for the complex number ω that is the root of x 2 + x + 1 = 0. . About this Frobenius development, since a well-known thing should just be used, detailed description is abbreviate | omitted.

次に、多重スカラー倍算計算部136bは、Frobenius展開された値を、ωを係数とする値と、ωを係数とする値と、他の値と、の加算値に分解する。 Next, the multiple scalar multiplication calculation unit 136b decomposes the Frobenius expanded value into an addition value of a value having ω as a coefficient, a value having ω 2 as a coefficient, and another value.

例えば、Frobenius展開された値が(1,ω,0,−1,−ω)である場合、この値を(1,0,0,−1,0)+(0,ω,0,0,0)+(0,0,0,0,−ω)という加算値に分解する。 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は、ω又はωを係数とする値において、ω又はωを共通因数としてくくることで、乗算回数を減らすことができる。 The multiple scalar multiplication calculation unit 136b can reduce the number of multiplications by using ω or ω 2 as a common factor in a value having ω or ω 2 as a coefficient.

例えば、上述の加算値(1,0,0,−1,0)+(0,ω,0,0,0)+(0,0,0,0,−ω)を(1,0,0,−1,0)+ω(0,1,0,0,0)+ω(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は、楕円曲線E上の点P、Q(Q=dP、d:秘密鍵)、R(i=1,・・・,u)、スカラー値w、z、下記の(39)式に示す乱数t、下記の(40)式に示す乱数tij、および、楕円曲線E上の自己同型写像ωの入力を受け付ける(S60)。 First, the multiple scalar multiplication calculation unit 136b of the mathematical function calculation unit 136 of the control unit 134 of the verification apparatus 130 performs points P and Q on the elliptic curve Eb (Q = dP, d: secret key), R i (i = 1,..., U), scalar values w i , z i , random number t i shown in the following equation (39), random number t ij shown in the following equation (40), and elliptic curve E b The input of the automorphism map ω is accepted (S60).

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

ここで、スカラー値w,zは、それぞれ、(19)式の右辺のPの係数Lσi−1、(19)式の右辺のQの係数Lσi−1を表す。 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.

また、集合S(e,k,q)は、下記の(41)式に示されているように、集合Dの元を係数とする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.

Figure 2010020189
Figure 2010020189

なお、図7のステップS33における集合SETは、ここでは、S(e,k,q)を表している。 Note that the set SET in step S33 in FIG. 7 represents S E (e, k, q) here.

ここで、上述の乱数tを、下記の(42)式に示すように変形する方法について説明する。 Here, the random number t i described above, the method of deformed as shown in (42) below will be described.

Figure 2010020189
Figure 2010020189

本実施形態においては、(37)式の楕円曲線Eにおいて、ωの値は、下記の(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).

Figure 2010020189
Figure 2010020189

(37)式の楕円曲線Eにおいて、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).

Figure 2010020189
Figure 2010020189

Figure 2010020189
Figure 2010020189

この関係式を使うと、t=16φ−10の場合は、(46)式のように変形することによって、上述の乱数tの変形が可能となる。 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).

Figure 2010020189
Figure 2010020189

一般の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 multiplication calculation unit 136b calculates the double scalar multiplication on the right side of the above equation (19), and substitutes the result for G (S61).

次に、多重スカラー倍算計算部136bは、iに1を、jにe−1を、Aに無限遠点0を、Bに無限遠点0を、それぞれ代入する(S62)。   Next, the multiple scalar multiplication calculation unit 136b substitutes 1 for i, e-1 for j, infinity point 0 for A, and infinity point 0 for B (S62).

次に、多重スカラー倍算計算部136bは、i≦uであるか否かを判定する(S63)。   Next, the multiple scalar multiplication calculation unit 136b determines whether i ≦ u is satisfied (S63).

そして、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 multiplication calculation unit 136b determines whether j ≧ 0.

そして、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 multiplication calculation unit 136b substitutes φ (B) for B.

そして、多重スカラー倍算計算部136bは、もし、tij=±1であるならば、BにB±Rを代入する(S66)。なお、tij=±1が成立しない場合には、ステップS66は、スキップする。 Then, the multiple scalar multiplication calculation unit 136b substitutes B ± R i for B if t ij = ± 1 (S66). If t ij = ± 1 is not satisfied, step S66 is skipped.

次に、多重スカラー倍算計算部136bは、jにj−1を代入し(S67)、ステップS64に戻り処理を繰り返す。   Next, the multiple scalar multiplication calculation unit 136b substitutes j−1 for j (S67), and returns to step S64 to repeat the processing.

一方、ステップ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 multiplication calculation unit 136b sets i + 1 to i, e-1 to j, A + B to A, and B to B. The infinity point 0 is substituted (S68), and the process returns to step S63 to repeat the process.

また、ステップ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 multiplication calculation unit 136b substitutes 1 for i (S69).

そして、多重スカラー倍算計算部136bは、i≦uであるか否かを判定する(S70)。   Then, the multiple scalar multiplication calculation unit 136b determines whether i ≦ u is satisfied (S70).

そして、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 multiplication calculation unit 136b determines whether j ≧ 0.

そして、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 multiplication calculation unit 136b substitutes φ (B) for B.

そして、多重スカラー倍算計算部136bは、もし、tij=±ωであるならば、BにB±Rを代入する(S73)。なお、tij=±ωが成立しない場合には、ステップS73は、スキップする。 The multi-scalar multiplication calculation portion 136b may If a t ij = ± ω, substituting B ± R i to B (S73). If t ij = ± ω is not satisfied, step S73 is skipped.

次に、多重スカラー倍算計算部136bは、jにj−1を代入し(S74)、ステップS71に戻り処理を繰り返す。   Next, the multiple scalar multiplication calculation unit 136b substitutes j−1 for j (S74), and returns to Step S71 to repeat the processing.

一方、ステップ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 multiplication calculation unit 136b substitutes i + 1 for i and e-1 for j (S75). The process returns to step S70 and is repeated.

また、ステップ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 multiplication calculation unit 136b sets ω (B) to B, A + B to A, 1 to i, B 0 is substituted into (S76), and the process proceeds to step S77 in FIG.

ステップS77では、多重スカラー倍算計算部136bは、i≦uであるか否かを判定する。   In step S77, the multiple scalar multiplication calculation unit 136b determines whether i ≦ u.

そして、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 multiplication calculation unit 136b determines whether j ≧ 0.

そして、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 multiplication calculation unit 136b substitutes φ (B) for B.

そして、多重スカラー倍算計算部136bは、もし、tij=±ωであるならば、BにB±Rを代入する(S80)。なお、tij=±ωが成立しない場合には、ステップS80は、スキップする。 Then, the multiple scalar multiplication calculation unit 136b substitutes B ± R i for B if t ij = ± ω 2 (S80). If t ij = ± ω is not satisfied, step S80 is skipped.

次に、多重スカラー倍算計算部136bは、jにj−1を代入し(S81)、ステップS78に戻り処理を繰り返す。   Next, the multiple scalar multiplication calculation unit 136b substitutes j−1 for j (S81), and returns to Step S78 to repeat the processing.

一方、ステップ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 multiplication calculation unit 136b substitutes i + 1 for i and e-1 for j (S82), respectively. The process returns to step S77 and is repeated.

また、ステップS77において、i≦uが成立しない場合には(ステップS77でNo)、多重スカラー倍算計算部136bは、Bにω(B)を、AにA+Bを、代入し(S83)、処理を終了する。 If i ≦ u is not satisfied in step S77 (No in step S77), the multiple scalar multiplication calculation unit 136b substitutes ω 2 (B) for B and A + B for A (S83). The process is terminated.

なお、上述の多重スカラー倍算の計算方法は、上述の図9及び図10の多重スカラー倍計算方法でもよいし、その他の方法で計算してもよい。例えば、ωとωを係数として有する部分をωで因数分解することで、ωの乗算を避けるようにすることも可能である。 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 Non-Patent Document 1, Non-Patent Document 2, and Non-Patent Document 3 is the same as in the first embodiment. It is the same.

また、中間値を事前に計算する方法を用いる場合、事前計算テーブル(桁集合の元をスカラー値とするスカラー倍点)を保持する記憶領域を大量に必要とするのに対し、第二の実施形態における多重スカラー倍計算方法を用いる場合は、事前計算結果を保持する記憶領域が不要であり、使用するメモリ量の削減が可能となることも第一の実施形態と同様である。   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.

第二の実施形態に記載の署名一括検証が高い安全性を持つ理由も第一の実施形態と同様である。すなわち集合S(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.

さらに、S(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).

Figure 2010020189
Figure 2010020189

したがって、47式の値が2となるように(e,k,q)を定めればよい。具体的には、第二の実施形態では、q=7であり、eは使用する楕円曲線の安全性を示すビット長(160−bit、192−bit、256−bit等)が7と同程度になるように設定すればよい。そして、定まったeとqを47式に代入し、2と同程度になるようkを決めればよい。 Therefore, (e, k, q) may be determined so that the value of Formula 47 is 2 m . Specifically, in the second embodiment, a q = 7, e-bit length indicating the safety of the elliptic curve to be used (160-bit, 192-bit , 256-bit , etc.) 7 e same What is necessary is just to set so that it may become. Then, the determined e and q are substituted into Equation 47, and k may be determined so as to be approximately equal to 2 m .

なお、上記各実施形態では、署名生成処理部115、署名一括検証処理部135を、ソフトウェアで実現するものとして説明したが、専用のハードウェアを用いて実現してもよい。また、数学関数計算部116、136を専用ハードウェアで実現しても良い。   In each of the above embodiments, the signature generation processing unit 115 and the signature batch verification processing unit 135 are described as being realized by software, but may be realized by using dedicated hardware. Further, the mathematical function calculation units 116 and 136 may be realized by dedicated hardware.

署名一括検証システムの概略図。Schematic diagram of signature batch verification system. 署名装置の概略図。Schematic diagram of a signature device. コンピュータの概略図。Schematic diagram of a computer. 検証装置の概略図。Schematic of a verification apparatus. 署名装置における署名生成処理を示すシーケンス図。The sequence diagram which shows the signature production | generation process in a signature apparatus. 検証装置における署名の一括検証処理を示すシーケンス図。The sequence diagram which shows the collective verification process of the signature in a verification apparatus. 数学関数計算部での一括検証処理を示すフローチャート。The flowchart which shows the batch verification process in a mathematical function calculation part. 多重スカラー倍算の計算処理を示すフローチャート。The flowchart which shows the calculation process of multiple scalar multiplication. 多重スカラー倍算の計算処理を示すフローチャート。The flowchart which shows the calculation process of multiple scalar multiplication. 多重スカラー倍算の計算処理を示すフローチャート。The flowchart which shows the calculation process of multiple scalar multiplication.

符号の説明Explanation of symbols

100 署名一括検証システム
111 記憶部
112 署名鍵記憶領域
113 データ記憶領域
114 制御部
115 署名生成処理部
116 数学関数計算部
117 入力部
118 出力部
119 通信部
130 検証装置
131 記憶部
132 検証鍵記憶領域
133 署名データ記憶領域
134 制御部
135 署名一括検証処理部
136 数学関数計算部
137 入力部
138 出力部
139 通信部
DESCRIPTION OF SYMBOLS 100 Signature batch verification system 111 Storage part 112 Signature key storage area 113 Data storage area 114 Control part 115 Signature generation process part 116 Mathematical function calculation part 117 Input part 118 Output part 119 Communication part 130 Verification apparatus 131 Storage part 132 Verification key storage area 133 Signature data storage area 134 Control unit 135 Signature batch verification processing unit 136 Mathematical function calculation unit 137 Input unit 138 Output unit 139 Communication unit

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
請求項1に記載の一括検証装置であって、
前記Frobenius展開は、x+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
請求項1に記載の一括検証装置であって、
前記Frobenius展開は、x+x+1=0の根となる複素数ωに対し、(0,±1,±ω,±ω)を係数とするFrobenius展開であって、
前記制御部は、前記第一の加算値を、前記第一の値においてω及びωを共通因数としてくくりだし、前記第二の加算値とする処理を行うこと、
を特徴とする一括検証装置。
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
請求項2に記載の一括検証装置であって、
前記楕円曲線は、E{y=x+ax(a≠0は有限体Fの元)}であり、
前記λは、前記楕円曲線Eにおける自己同型写像λ(E{(x,y)→(−x,αy)}、但し、αは位数4であるような有限体Fの元)であること、
を特徴とする一括検証装置。
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
請求項3に記載の一括検証装置であって、
前記楕円曲線は、E{y=x+b(b≠0は有限体Fの元)}であり、
前記ωは、前記楕円曲線Eにおける自己同型写像ω(E{(x,y)→(βx,y)}、但し、βは位数3であるような有限体Fの元)であること、
を特徴とする一括検証装置。
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
請求項6に記載のプログラムであって、
前記Frobenius展開は、x+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
請求項6に記載のプログラムであって、
前記Frobenius展開は、x+x+1=0の根となる複素数ωに対し、(0,±1,±ω,±ω)を係数とするFrobenius展開であって、
前記制御手段に、前記第一の加算値を、前記第一の値においてω及びωを共通因数としてくくりだし、前記第二の加算値とする処理を行わせること、
を特徴とするプログラム。
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
請求項7に記載のプログラムであって、
前記楕円曲線は、E{y=x+ax(a≠0は有限体Fの元)}であり、
前記λは、前記楕円曲線Eにおける自己同型写像λ(E{(x,y)→(−x,αy)}、但し、αは位数4であるような有限体Fの元)であること、
を特徴とするプログラム。
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
請求項8に記載のプログラムであって、
前記楕円曲線は、E{y=x+b(b≠0は有限体Fの元)}であり、
前記ωは、前記楕円曲線Eにおける自己同型写像ω(E{(x,y)→(βx,y)}、但し、βは位数3であるような有限体Fの元)であること、
を特徴とするプログラム。
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
JP2008182047A 2008-07-11 2008-07-11 Batch verification device and program Pending JP2010020189A (en)

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)

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