JP2010002662A - Recovery signature system, signature creating device, signature verification device, method for them and program - Google Patents

Recovery signature system, signature creating device, signature verification device, method for them and program Download PDF

Info

Publication number
JP2010002662A
JP2010002662A JP2008161298A JP2008161298A JP2010002662A JP 2010002662 A JP2010002662 A JP 2010002662A JP 2008161298 A JP2008161298 A JP 2008161298A JP 2008161298 A JP2008161298 A JP 2008161298A JP 2010002662 A JP2010002662 A JP 2010002662A
Authority
JP
Japan
Prior art keywords
signature
value
hash
bit
bit string
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.)
Granted
Application number
JP2008161298A
Other languages
Japanese (ja)
Other versions
JP4861369B2 (en
Inventor
Fumisato Hoshino
文学 星野
Takeshi Yamamoto
剛 山本
Kotaro Suzuki
幸太郎 鈴木
Masayuki Abe
正幸 阿部
Tatsuaki Okamoto
龍明 岡本
Atsushi Fujioka
淳 藤岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2008161298A priority Critical patent/JP4861369B2/en
Publication of JP2010002662A publication Critical patent/JP2010002662A/en
Application granted granted Critical
Publication of JP4861369B2 publication Critical patent/JP4861369B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a signature technique for message recovery, capable of reducing complexity in acquiring and managing a public key, and of flexibly coping with messages of various bit lengths. <P>SOLUTION: A signature creating device 10 selects an integer y and calculates R=e(P<SB>1</SB>, P<SB>2</SB>)<SP>y</SP>, h=H<SB>1</SB>(rec¾R¾id), v=H<SB>2</SB>(h¾R¾id), r=h¾(v(+)rec), u=H<SB>3</SB>(r¾M<SB>clr</SB>¾id), t=u mod p, σ=y×P<SB>1</SB>-t×S<SB>id</SB>, then transmits signature information (r, σ). A signature verifying device 20 receives signature information (r', σ'), calculates u'=H<SB>3</SB>(r'¾M<SB>clr</SB>¾id), t=u' mod p, R'=e(σ', P<SB>2</SB>)×e(P<SB>id</SB>, mp)<SP>t'</SP>, extracts bit strings h' and x' from r', calculates v'=H<SB>2</SB>(h'¾R'¾id), rec'=v'(+)x', h''=H<SB>1</SB>(rec'¾R'¾id), and then determines whether the relation h'=h'' holds. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、情報セキュリティ技術の応用技術に関し、特に、署名からメッセージが復元できるメッセージ復元署名に関する。   The present invention relates to an application technology of information security technology, and more particularly to a message restoration signature that can restore a message from a signature.

メッセージ復元署名の従来技術として非特許文献1に示すものがある。この方式は、ランダムオラクルモデルで安全性が証明される方式である。以下にこの方式の概要を示す。   Non-patent document 1 discloses a conventional technique for message restoration signature. This system is a system whose safety is proved by a random oracle model. The outline of this method is shown below.

この方式では、
メッセージM∈{0,1}k2
関数F:{0,1}k2→{0,1}k1
関数F:{0,1}k1→{0,1}k2
関数F:{0,1}k1+k2→{0,1}
E:有限体F上で定義された楕円曲線
p:楕円曲線E上の点Rに対してp・R=O(Oは無限遠点)を満たす素数
G1:楕円曲線E上の位数pの部分集合の点
w∈Z/pZ
秘密鍵:x∈Z/pZ
公開鍵:(F,E,G1,Y)(Y=−x・G1(∈E))
とする。なお、{0,1}δは、2進δ桁のビットデータを示し、{0,1}δ→{0,1}εは、2進δ桁のビットデータから2進ε桁のビットデータへの写像である関数を示す。
In this method,
Message Mε {0,1} k2
Function F 1 : {0, 1} k 2 → {0, 1} k 1
Function F 2 : {0,1} k1 → {0,1} k2
Function F: {0,1} k1 + k2 → {0,1} k
E: elliptic curve defined on finite field F q p: prime number satisfying p · R = O (O is an infinite point) for point R on elliptic curve E G1: order p on elliptic curve E Points of a subset of w∈Z / pZ
Secret key: x∈Z / pZ
Public key: (F q , E, G1, Y) (Y = −x · G1 (∈E))
And {0, 1} δ indicates binary δ-digit bit data, and {0, 1} δ → {0, 1} ε indicates binary ε-digit bit data to binary ε-digit bit data. Here is a function that maps to.

<署名生成>
署名生成は以下のように行う。ただし、Rは点R∈Eのx座標を示し、(+)は排他的論理和演算子を示す。
<Signature generation>
Signature generation is performed as follows. Here, R x represents the x coordinate of the point RεE, and (+) represents the exclusive OR operator.

M’=F(M)|(F(F(M))(+)M) …(1)
=(w・G1)
r=R(+)M’ …(2)
c=F(r)
z=w+c・x mod p
署名Sign=(r,z)
M ′ = F 1 (M) | (F 2 (F 1 (M)) (+) M) (1)
R x = (w · G1) x
r = R x (+) M ′ (2)
c = F (r)
z = w + c · x mod p
Signature Sign = (r, z)

<署名検証>
署名検証は以下のように行う。ただし、[M’]k1はM’の先頭k1ビットを示し、[M’]k2はM’の残りのk2ビットを示す。
<Signature verification>
Signature verification is performed as follows. However, [M ′] k1 indicates the first k1 bits of M ′, and [M ′] k2 indicates the remaining k2 bits of M ′.

M’=r(+)(z・G1+F(r)・Y)
M=[M’]k2(+)F([M’]k1
[M’]k1=F(M)であれば検証合格
Masayuki Abe, Tatsuaki Okamoto, "A Signature Scheme with Message Recovery as Secure as Discrete Logarithm," ASIACRYPT 1999, pp.378-389
M ′ = r (+) (z · G1 + F (r) · Y) x
M = [M ′] k2 (+) F 2 ([M ′] k1 )
[M ′] If k1 = F 1 (M), pass verification
Masayuki Abe, Tatsuaki Okamoto, "A Signature Scheme with Message Recovery as Secure as Discrete Logarithm," ASIACRYPT 1999, pp.378-389

しかし、非特許文献1の方式では、署名検証を行う署名検証装置が、署名生成を行った署名生成装置の公開鍵を取得する必要がある。従来の構成の場合、公開鍵は署名生成装置ごとに異なるため、その取得や管理が煩雑であった。   However, in the method of Non-Patent Document 1, the signature verification apparatus that performs signature verification needs to acquire the public key of the signature generation apparatus that generated the signature. In the case of the conventional configuration, since the public key is different for each signature generation device, acquisition and management thereof are complicated.

また、非特許文献1の方式では、式(1)の(F(F(M))や式(2)のRのビット長が固定長であり、メッセージMのビット長も固定長としなければならない。特に、式(2)のRは楕円曲線E上の点R∈Eのx座標であり、そのビット長は楕円曲線Eに依存する。しかしながら、メッセージMのビット長に応じ、Rのビット長がM’(式(1)の演算結果)のビット長と等しくなるように楕円曲線Eを変更し、なおかつ、変更されたすべての楕円曲線Eにおいて安全性を確保することは容易ではない。 In the method of Non-Patent Document 1, the bit length of (F 2 (F 1 (M)) in equation (1) and R x in equation (2) is a fixed length, and the bit length of message M is also a fixed length. In particular, R x in equation (2) is the x coordinate of the point RεE on the elliptic curve E, and its bit length depends on the elliptic curve E. However, depending on the bit length of the message M, The elliptic curve E is changed so that the bit length of R x is equal to the bit length of M ′ (the calculation result of the expression (1)), and safety is ensured in all the changed elliptic curves E. Is not easy.

このため、従来は、メッセージMの長さが固定長より短い場合であっても、それに併せて署名Signの一部分rのビット長を短くすることができず、非効率であった。また、メッセージMのビット長が固定長よりも長い場合には、式(1)にメッセージMの一部分しか代入することができず、メッセージMの全てのビットを対象としたメッセージ復元署名を構成できない。   For this reason, conventionally, even if the length of the message M is shorter than the fixed length, the bit length of the part r of the signature Sign cannot be shortened accordingly, which is inefficient. If the bit length of the message M is longer than the fixed length, only a part of the message M can be substituted into the expression (1), and a message restoration signature for all the bits of the message M cannot be configured. .

本発明はこのような点に鑑みてなされたものであり、公開鍵の取得や管理の煩雑さを軽減し、なおかつ、様々なビット長のメッセージに柔軟に対応可能なメッセージ復元署名技術を提供することを目的とする。   The present invention has been made in view of these points, and provides a message restoration signature technique that can reduce the complexity of public key acquisition and management and can flexibly handle messages of various bit lengths. For the purpose.

本発明の署名生成装置は、有限体F上の楕円曲線をEとし、楕円曲線E上の有理点からなる有限集合の要素数#Eを割り切る素数をpとし、楕円曲線E上のp等分点からなる有限集合をE[p]とし、有限体Fを基礎体とする拡大体からなる有限集合をμとし、有限集合E[p]の2つの元を有限集合μの1つの元に写す非退化双線形ペアリング関数をe:E[p]×E[p]→μとし、e(P,P)≠1を満たす有限集合E[p]の元をP,P∈E[p]とし、署名生成装置の識別子をidとし、識別子idに対応する有限集合E[p]の元をPidとし、整数であるマスター秘密鍵をmsとし、Pidの楕円曲線E上でのms倍点ms・Pidを署名生成装置の秘密鍵Sidとした場合における、当該秘密鍵Sidを格納する第1記憶部と、秘匿される署名対象のビット列である復元署名対象情報recを格納する第2記憶部と、任意の整数yを選択する任意数選択部と、双線形関数値R=e(P,P∈μを算出する第1双線形関数演算部と、復元署名対象情報recのビット列と双線形関数値Rのビット列とを含むビット結合値αに対し、第1ハッシュ関数Hを作用させたハッシュ値h=H(α)を算出する第1ハッシュ演算部と、ハッシュ値hのビット列と双線形関数値Rのビット列とを含むビット結合値βに対し、任意のビット長のビット列を復元署名対象情報recとビット長が等しいビット列に変換する第2ハッシュ関数Hを作用させたハッシュ値v=H(β)を算出する第2ハッシュ演算部と、ハッシュ値vと復元署名対象情報recとの排他的論理和値xを算出する第1排他的論理和演算部と、ハッシュ値hのビット列を第1ビット位置に配置し、排他的論理和値xのビット列を第2ビット位置に配置したビット結合値rを算出するビット結合部と、ビット結合値rのビット列を含むビット列γに対し、第3ハッシュ関数Hを作用させたハッシュ値u=H(γ)を算出する第3ハッシュ演算部と、予め定められた規則に従ってハッシュ値uに対して定まる整数をtとした場合における、元Pの楕円曲線E上でのy倍点y・Pと、Sidの楕円曲線E上でのt倍点t・Sidの楕円逆元−t・Sidとを楕円加算した楕円曲線演算値σ=y・P−t・Sidを算出する楕円曲線演算部と、ビット結合値rと楕円曲線演算値σとからなる署名情報(r,σ)を送信する送信部と、を有する。 The signature generation apparatus of the present invention uses E as the elliptic curve on the finite field F q , p as the prime number that divides the number of elements #E of the finite set of rational points on the elliptic curve E, p on the elliptic curve E, etc. A finite set consisting of dividing points is E [p], a finite set consisting of an extension field based on the finite field F q is μ p, and two elements of the finite set E [p] are 1 of the finite set μ p . Let e: E [p] × E [p] → μ p be a non-degenerate bilinear pairing function that maps to two elements, and let P be an element of a finite set E [p] that satisfies e (P 1 , P 2 ) ≠ 1 1 , P 2 ∈ E [p], the identifier of the signature generation device is id, the element of the finite set E [p] corresponding to the identifier id is P id , the master secret key that is an integer is ms, and P id The secret key when the ms multiple point ms · P id on the elliptic curve E is the secret key S id of the signature generation device A first storage unit that stores S id , a second storage unit that stores restored signature target information rec that is a bit string to be concealed, an arbitrary number selection unit that selects an arbitrary integer y, and a bilinear function a first bi-linear function calculator for calculating a value R = e (P 1, P 2) y ∈μ p, the bit combination value α, including a bit string of restoration signed information rec and the bit string of the bilinear function value R On the other hand, a bit combination value including a first hash calculation unit that calculates a hash value h = H 1 (α) obtained by applying the first hash function H 1, and a bit string of the hash value h and a bit string of the bilinear function value R A second hash that calculates a hash value v = H 2 (β) obtained by applying a second hash function H 2 for converting a bit string having an arbitrary bit length into a bit string having the same bit length as the restored signature target information rec for β Calculation unit and hash value v A first exclusive OR operation unit that calculates an exclusive OR value x with the restoration signature target information rec, a bit string of the hash value h are arranged at the first bit position, and a bit string of the exclusive OR value x is A hash value u = H 3 (γ) obtained by applying the third hash function H 3 to the bit combination unit that calculates the bit combination value r arranged at the 2-bit position and the bit string γ including the bit string of the bit combination value r. Y multiple point y · P 1 on the elliptic curve E of the element P 1 where t is an integer determined with respect to the hash value u according to a predetermined rule, elliptic curve calculating a t multiplied point t · S elliptic curve calculation value and the elliptic curve addition and elliptic inverse -t · S id of id σ = y · P 1 -t · S id on elliptic curve E S id An arithmetic unit, a bit combination value r, and an elliptic curve calculation value σ And a transmission unit that transmits the signature information (r, σ).

以上のように本発明では、第2ハッシュ演算部が、任意のビット長のビット列を復元署名対象情報recとビット長が等しいビット列に変換する第2ハッシュ関数Hを用い、ビット結合値βを復元署名対象情報recとビット長が等しいハッシュ値vに変換する。ハッシュ関数の出力ビット長を変化させることは、楕円曲線Eを変更することに比べて大変容易である。そのため、本発明の署名生成装置では、復元署名対象情報recのあらゆるビット長に柔軟に対応した署名生成が可能となる。 As described above, in the present invention, the second hash calculation unit uses the second hash function H 2 that converts a bit string having an arbitrary bit length into a bit string having the same bit length as the restoration signature target information rec, and uses the bit combination value β to It is converted into a hash value v having the same bit length as the restoration signature target information rec. Changing the output bit length of the hash function is much easier than changing the elliptic curve E. Therefore, the signature generation apparatus according to the present invention can generate a signature that flexibly corresponds to any bit length of the restored signature target information rec.

また、本発明の署名検証装置は、元Pと、元Pの楕円曲線E上でのms倍点ms・Pであるマスター公開鍵mpと、を格納する第3記憶部と、ビット列である第1パート情報r’と、有限集合E[p]の元である第2パート情報σ’とからなる署名情報(r’,σ’)を受信する受信部と、第1パート情報r’と第2パート情報σ’を格納する第4記憶部と、署名生成装置の識別子idに対応する有限集合E[p]の元Pidを格納する第5記憶部と、第1パート情報r’のビット列を含むビット列γ’に対し、第3ハッシュ関数Hを作用させたハッシュ値u’=H(γ’)を算出する第4ハッシュ演算部と、予め定められた規則に従ってハッシュ値u’に対して定まる整数をt’とした場合における、双線形関数値R’=e(σ’,P)・e(Pid,mp)t’∈μを算出する第2双線形関数演算部と、第1パート情報r’の第1ビット位置のビット列h’と、第1パート情報r’の第2ビット位置のビット列x’とを抽出するビット分割部と、ハッシュ値h’のビット列と双線形関数値R’のビット列とを含むビット結合値β’に対し、第2ハッシュ関数Hを作用させたハッシュ値v’=H(β’)を算出する第5ハッシュ演算部と、ハッシュ値v’とビット列x’との排他的倫理和値を、署名対象情報の復元値rec’として算出する第2排他的論理和演算部と、署名対象情報の復元値rec’のビット列と双線形関数値R’のビット列とを含むビット結合値α’に対し、第1ハッシュ関数Hを作用させたハッシュ値h’’=H(α’)を算出する第6ハッシュ演算部と、ビット列h’とハッシュ値h’’とが等しいか否かを判定する比較部と、を有する。 Also, the signature verification apparatus of the present invention, the original P 2, and a third storage unit for storing a master public key mp, which is the ms multiple point ms · P 2 on the elliptic curve of the original P 2 E, bit string A receiving unit that receives signature information (r ′, σ ′) including first part information r ′ and second part information σ ′ that is an element of the finite set E [p], and first part information r A fourth storage unit that stores 'and second part information σ'; a fifth storage unit that stores an original P id of a finite set E [p] corresponding to the identifier id of the signature generation device; and first part information r A hash value u ′ = H 3 (γ ′) obtained by applying the third hash function H 3 to the bit string γ ′ including the bit string “and a hash value according to a predetermined rule in the case of 'an integer determined with respect t' u was, bilinear function value R '= e (σ', P 2) · e ( id, mp) t 'and the second bi-linear function calculator for calculating a ∈Myu p, first part information r''and, the first part information r' bit sequence h of the first bit position of the second bit position of the 'a bit dividing unit for extracting a hash value h' bit string x to 'bit connection value β including the bit string of' bit stream and the bilinear function value R of the hash value by applying a second hash function H 2 a fifth hash operation unit for calculating v ′ = H 2 (β ′), and a second exclusive unit for calculating the exclusive ethical value of the hash value v ′ and the bit string x ′ as the restoration value rec ′ of the signature target information A hash value h obtained by applying the first hash function H 1 to the bit combination value α ′ including the logical OR operation unit, the bit string of the restoration value rec ′ of the signature target information, and the bit string of the bilinear function value R ′ a sixth hash calculator for calculating the '' = H 1 (α ' ), ha bit string h' Has a comparison unit for determining the whether Interview value h '' are equal.

この署名検証装置により、上述の署名生成装置が生成した署名を検証できる。また、本発明の署名検証装置は、複数の署名生成装置に共通するマスター公開鍵mpと、実際に署名生成を行った署名生成装置の識別子idとがあれば、署名検証と署名対象情報の復元とができる。そのため、実際に署名生成を行った署名生成装置ごとに異なる公開鍵を用いる従来構成に比べ、署名検証と署名対象情報の復元を行うために必要な鍵の取得や管理の煩雑さを軽減できる。   This signature verification apparatus can verify the signature generated by the signature generation apparatus. In addition, the signature verification apparatus according to the present invention can perform signature verification and restoration of signature target information if there is a master public key mp common to a plurality of signature generation apparatuses and an identifier id of a signature generation apparatus that has actually generated a signature. You can. Therefore, it is possible to reduce the complexity of key acquisition and management necessary for performing signature verification and restoration of signature target information, as compared with a conventional configuration in which a different public key is used for each signature generation apparatus that has actually generated a signature.

本発明では、公開鍵の取得や管理の煩雑さを軽減し、様々なビット長のメッセージに柔軟に対応可能なメッセージ復元署名を実現できる。   In the present invention, the complexity of public key acquisition and management can be reduced, and a message restoration signature that can flexibly handle messages of various bit lengths can be realized.

以下、図面を参照して本発明の実施形態を説明する。
〔記号・用語の定義〕
まず、各実施形態で使用する記号・用語を定義する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[Definition of symbols and terms]
First, symbols and terms used in each embodiment are defined.

Z:整数集合。
k:k∈Z(Zの元)であるセキュリティパラメータ。
E:位数qの有限体F上で定義された楕円曲線。アフィン(affine)座標版のWeierstrass方程式
+a・x・y+a・y=x+a・x+a・x+a …(3)
(ただし、a,a,a,a,a∈F)を満たす点(x,y)の集合に無限遠点と呼ばれる特別な点Oを付加したもので定義される。楕円曲線E上の任意の2点に対して楕円加算と呼ばれる二項演算+及び楕円曲線E上の任意の1点に対して楕円逆元と呼ばれる単項演算−がそれぞれ定義できる。また、この楕円加算に関して群をなすこと及び楕円加算を用いて楕円スカラー倍算と呼ばれる演算が定義できることはよく知られている(例えば、参考文献1“イアン・F・ブラケ、ガディエル・セロッシ、ナイジェル・P・スマート=著、「楕円曲線暗号」、出版=ピアソン・エデュケーション、ISBN4-89471-431-0”等参照)。
Z: integer set.
k: Security parameter with kεZ (element of Z).
E: An elliptic curve defined on a finite field F q of order q . The affine coordinate version of the Weierstrass equation y 2 + a 1 · x · y + a 3 · y = x 3 + a 2 · x 2 + a 4 · x + a 6 (3)
It is defined as a set of points (x, y) satisfying (where a 1 , a 2 , a 3 , a 4 , a 6 ∈ F q ) and a special point O called an infinite point. A binary operation + called ellipse addition can be defined for any two points on the elliptic curve E, and a unary operation called ellipse inverse can be defined for any one point on the elliptic curve E. In addition, it is well known that grouping and ellipse addition can be used to define an operation called elliptic scalar multiplication (for example, Reference 1 “Ian F. Brake, Gadiel Selosi, Nigel)・ See P. Smart = Author, “Elliptic Curve Cryptography”, Publishing = Pearson Education, ISBN4-89471-431-0 ”).

#E:楕円曲線E上の有理点からなる有限集合の要素数。有限体F上で定義された楕円曲線Eの有理点の個数#Eは有限である。
p:#Eを割り切る大きい素数。
E[p]:楕円曲線Eのp等分点からなる有限集合。楕円曲線E上の点Aのうち、楕円曲線E上での楕円スカラー倍算値p・Aがp・A=Oを満たす点Aの有限集合として定義される。E[p]はEの部分群である。
μ:有限体Fを基礎体とする拡大体である有限集合。その一例は、有限体Fの代数閉包における1のp乗根からなる有限集合である。
e:非退化双線形ペアリング(pairing)関数(以下「ペアリング関数」と呼ぶ)であり、以下の式で定義される。
E[p]×E[p]=μ …(4)
#E: The number of elements in a finite set of rational points on the elliptic curve E. Number #E of rational points of a finite field F q on the defined elliptic curve E is finite.
p: A large prime number that divides #E.
E [p]: A finite set of p equal points of the elliptic curve E. Of the points A on the elliptic curve E, the elliptic scalar multiplication value p · A on the elliptic curve E is defined as a finite set of points A satisfying p · A = O. E [p] is a subgroup of E.
μ p : A finite set that is an extension field based on the finite field F q . An example is a finite set of one of the p th root of the algebraic closure of a finite field F q.
e: Non-degenerate bilinear pairing function (hereinafter referred to as “pairing function”), which is defined by the following equation.
E [p] × E [p] = μ p (4)

ペアリング関数eは次の性質を持つ。
[性質1]E[p]上の任意の点Aに対して、e(A,A)=1が成り立つ。
[性質2]E[p]上の任意の2点A、Aに対して、e(A,A)=e(A,A−1が成り立つ。
[性質3]E[p]上の任意の3点A,A,Aに対して、e(A+A,A)=e(A,A)e(A,A)であり、e(A,A+A)=e(A,A)e(A,A)が成り立つ。
[性質4]E[p]上の任意の点Aに対して、e(A,O)=1が成り立つ。
[性質5]E[p]上のある点AがE[p]上のすべての点Aに対して、e(A,A)=1を満たすなら、A=Oが成り立つ。
The pairing function e has the following properties.
[Property 1] e (A 1 , A 1 ) = 1 holds for an arbitrary point A 1 on E [p].
[Property 2] For any two points A 1 and A 2 on E [p], e (A 1 , A 2 ) = e (A 2 , A 1 ) −1 holds.
[Property 3] For any three points A 1 , A 2 , A 3 on E [p], e (A 1 + A 2 , A 3 ) = e (A 1 , A 3 ) e (A 2 , an a 3), e (a 1 , a 2 + a 3) = e (a 1, a 2) e (a 1, a 3) holds.
[Property 4] e (A 1 , O) = 1 holds for an arbitrary point A 1 on E [p].
[Property 5] If a certain point A 1 on E [p] satisfies e (A 1 , A 2 ) = 1 for all points A 2 on E [p], then A 1 = O holds. .

なお、ペアリング関数eの具体例としては、WeilペアリングやTateペアリングなどを挙げることができる(例えば、参考文献2「Alfred. J. Menezes,ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6,pp. 61-81」等参照)。また、ペアリング関数が効率的に計算可能な非超特異楕円曲線(non-supersingular curve)の生成方法については、参考文献3「A. Miyaji, M. Nakabayashi, S.Takano, "New explicit conditions of elliptic curve Traces for FR-Reduction," IEICE Trans. Fundamentals, vol. E84-A, no05, pp. 1234-1243, May 2001」、参考文献4「P.S.L.M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embedding degrees," Proc. SCN '2002, LNCS 2576, pp.257-267, Springer-Verlag. 2003」、参考文献5「R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields," http://eprint.iacr.org/2002/094/」などに開示されている。また、ペアリング関数をコンピュータ上で計算するためのアルゴリズムとしては、周知のMiller のアルゴリズム(参考文献6「V. S. Miller, “Short Programs for functions on Curves,” [online],1986,[2008年6月13日検索],インターネット<http://crypto.stanford.edu/miller/miller.pdf>」などが存在する。   Specific examples of the pairing function e include Weil pairing and Tate pairing (for example, Reference 2 “Alfred. J. Menezes, ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0- 7923-9368-6, pp. 61-81 ”). For the method of generating a non-supersingular curve in which the pairing function can be calculated efficiently, see Reference 3 “A. Miyaji, M. Nakabayashi, S. Takano,“ New explicit conditions of elliptic curve Traces for FR-Reduction, "IEICE Trans. Fundamentals, vol. E84-A, no05, pp. 1234-1243, May 2001", reference 4 "PSLM Barreto, B. Lynn, M. Scott," Constructing elliptic curves with prescribed embedding degrees, "Proc. SCN '2002, LNCS 2576, pp.257-267, Springer-Verlag. 2003", Reference 5, R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields, "http://eprint.iacr.org/2002/094/". As an algorithm for calculating the pairing function on a computer, the well-known Miller algorithm (reference document 6 “VS Miller,“ Short Programs for functions on Curves, ”[online], 1986, [June 2008] 13th search], the Internet <http://crypto.stanford.edu/miller/miller.pdf> ”.

,P:e(P,P)≠1を満たす有限集合E[p]の元。
<P>:Pを生成元とする巡回群。
<P>:Pを生成元とする巡回群。
IDencode:任意のビット列を<P>に移す衝突困難な関数{0,1}→<P>。IDencodeの例は以下の通りである。
P 1 , P 2 : An element of a finite set E [p] that satisfies e (P 1 , P 2 ) ≠ 1.
<P 1 >: A traveling group having P 1 as a generation source.
<P 2 >: A traveling group having P 2 as a generation source.
IDencode: collision function to transfer arbitrary bit string to <P 1> {0,1} * → <P 1>. An example of IDencode is as follows.

《IDencodeの例1》関数H:{0,1}→Fを衝突困難な関数とする。このような関数は、例えばSHA−1などのハッシュ関数の出力を一定の方法で有限体Fの元に対応させることで得られる。cを自然数で、#E=c・pとなるものとする。cは通常cofactorと呼ばれる。以上の準備の下で、以下のアルゴリズムを実行する関数をIDencodeとする。 "Examples of IDencode 1" function H: {0,1} * → F q and a collision function. Such a function can be obtained by, for example, associating the output of a hash function such as SHA-1 with an element of the finite field Fq by a certain method. Let c be a natural number, and # E = c · p. c is usually called a cofactor. Based on the above preparation, a function that executes the following algorithm is defined as IDencode.

処理1.ran←0
処理2.入力isに対してx1=H(is|ran)を計算する。
処理3.y1∈Fに関して、(x1,y1)∈Eとなる条件から導かれる2次方程式を解く。解y1が存在するならば、処理5に進む。
処理4.ran←ran+1として処理2に戻る。
処理5.点(x1,y1)∈Eをc倍してその結果を出力する。#E=c・pであり、楕円曲線E上の任意の点をc・p倍すると無限遠点Oとなるため、点(x1,y1)∈Eをc倍した点はE[p]の元となる。
Process 1. ran ← 0
Process 2. Calculate x1 = H (is | ran) for the input is.
Process 3. For y1∈F q , a quadratic equation derived from the condition (x1, y1) ∈E is solved. If the solution y1 exists, the process proceeds to process 5.
Process 4. Return to processing 2 as ran ← ran + 1.
Process 5. The point (x1, y1) εE is multiplied by c and the result is output. # E = c · p, and when an arbitrary point on the elliptic curve E is multiplied by c · p, it becomes an infinite point O, so the point obtained by multiplying the point (x1, y1) ∈E by c is E [p] Be original.

《IDencodeの例2》<P>の元をD個選択し、それらをそれぞれ0以上D−1以下の整数dに対応付け、選択された<P>の各元をSP∈<P>とする。また、入力された任意のビット列に対してDビットのハッシュ値を出力とするハッシュ関数Hを用意する。入力された任意のビット列にハッシュ関数Hを作用させて得られたDビットのビット列の上位からdビット目をh∈{0,1}とする。そして、入力された任意のビット列に対してΣd=0 D−1・SPを出力する関数をIDencodeとする。 << Example 2 of IDencode >> D elements of <P 1 > are selected, each of which is associated with an integer d of 0 or more and D−1 or less, and each element of the selected <P 1 > is SP d ∈ <P 1 >. Also, a hash function H 0 is prepared that outputs a D-bit hash value for an arbitrary input bit string. It is assumed that the d-th bit from the top of the D-bit bit string obtained by applying the hash function H 0 to the input arbitrary bit string is h d ε {0, 1}. A function that outputs Σ d = 0 D−1 h d · SP d for an inputted arbitrary bit string is defined as IDencode.

rec:署名対象となるメッセージの復元部分である任意のビット長のリカバリーメッセージMrec∈{0,1}。なお、メッセージの復元部分とは、メッセージのうち一旦秘匿され、署名検証装置で復元される情報を意味する。つまり、リカバリーメッセージMrecは、秘匿される署名対象のビット列である。 M rec : a recovery message M rec ε {0, 1} * having an arbitrary bit length that is a restored part of the message to be signed. The message restoration part means information that is once concealed in the message and restored by the signature verification apparatus. That is, the recovery message M rec is a secret bit string to be concealed.

clr:署名対象となるメッセージの非復元部分である任意のビット長のクリアーメッセージMclr∈{0,1}。なお、メッセージの非復元部分とは、メッセージのうち秘匿されることなく署名検証装置に開示される情報を意味する。つまり、クリアーメッセージMclrは秘匿されない署名対象のビット列である。 M clr : Clear message M clr ε {0, 1} * of any bit length that is a non-restored part of the message to be signed. The non-restored part of the message means information disclosed to the signature verification apparatus without being confidential. That is, the clear message M clr is a bit string to be signed that is not concealed.

encode:任意のビット長のビット列を入力ビット長に応じたビット長のビット列に変換する関数{0,1}→{0,1}。ただし、encodeの出力ビット長をL(Lは1以上の整数)とする。encodeの例は後述する。 then the encode: Function {0,1} to be converted to bit strings of a bit length corresponding to the input bit length bit string of arbitrary bit length * → {0, 1} *. However, the output bit length of encode is L (L is an integer of 1 or more). An example of encode will be described later.

decode:encodeの逆関数。
rec:署名検証装置によって復元されるビット列である復元署名対象情報rec=encode(Mrec)。
rounddown{*}: *の小数点以下を切り捨てる関数。
length(*): *のビット長を求める関数。その出力ビット長は一定である。
delete{δ,ε}:εのビットを先頭からδビットだけ削除する関数。
decode: Inverse function of encode.
rec: Restoration signature target information rec = encode (M rec ) which is a bit string restored by the signature verification device.
rounddown {*}: A function that rounds off the decimal part of *.
length (*): A function for obtaining the bit length of *. The output bit length is constant.
delete {δ, ε}: A function that deletes δ bits from the head of ε.

:任意のビット長のビット列をNビットのビット列に変換するハッシュ関数{0,1}→{0,1}。ただし、Nは1以上の整数。なお、ハッシュ関数の具体例としては、SHA−1やそれを利用した一方向性関数を例示できる。
:出力長可変のハッシュ関数H:{0,1}×N→{0,1}である。任意のL∈Nについて、任意のω∈{0,1}に対する出力値H(ω,L)は長さLのビット列となる。なお、以下では、H(ω,L)をH(ω)と表記する。
:ハッシュ関数。
H 1 : Hash function {0, 1} * → {0, 1} N for converting a bit string having an arbitrary bit length into an N-bit bit string. N is an integer of 1 or more. In addition, as a specific example of the hash function, SHA-1 and a one-way function using the same can be exemplified.
H 2 : Hash function with variable output length H 2 : {0, 1} * × N → {0, 1} * . For any L∈N, the output value H 2 (ω, L) for any ω∈ {0,1} * is a bit string of length L. Hereinafter, H 2 (ω, L) is expressed as H 2 (ω).
H 3 : Hash function.

b|c:ビット列bとビット列cとのビット結合値。
b(+)c:bとcとの排他的論理和。
Z/pZ:pを法とする剰余類。各実施形態では、その代表元をZ/pZと表現する。また、代表元の一例は、0以上p−1以下の整数である。
(Z/pZ)\{0}:Z/pZから0を除いた集合。各実施形態では、1以上p−1以下の整数を(Z/pZ)\{0}とする。
ms:IDベース暗号のマスター秘密鍵ms∈Z/pZ。なお、IDベース暗号については、例えば、参考文献7「D. Boneh and M. Franklin, "Identify-based encryption from the Weil pairing", Advances in Cryptology 0 CRYTPO '01, volume 2139 of LNCS, pages 213-229. Springer, 2001.」などに開示されている。
b | c: Bit combination value of bit string b and bit string c.
b (+) c: Exclusive OR of b and c.
Z / pZ: a residue class modulo p. In each embodiment, the representative element is expressed as Z / pZ. An example of the representative is an integer of 0 or more and p−1 or less.
(Z / pZ) \ {0}: a set obtained by removing 0 from Z / pZ. In each embodiment, an integer from 1 to p−1 is (Z / pZ) \ {0}.
ms: Master secret key for ID-based encryption msεZ / pZ. Regarding ID-based encryption, for example, Reference 7 “D. Boneh and M. Franklin,“ Identify-based encryption from the Weil pairing ”, Advances in Cryptology 0 CRYTPO '01, volume 2139 of LNCS, pages 213-229 Springer, 2001. ”and the like.

mp:IDベース暗号のマスター公開鍵mp=ms・P∈<P>。
id:署名生成装置の識別子id∈{0,1}
id:idに対応する楕円曲線E上の点Pid=IDencode(id)∈<P>。
id:署名生成装置の秘密鍵Sid=ms・Pid∈<P>。
mp: Master public key of ID-based encryption mp = ms · P 2 ∈ <P 2 >.
id: Signature generating device identifier idε {0, 1} * .
P id : A point P id = IDencode (id) ∈ <P 1 > on the elliptic curve E corresponding to id.
S id : Secret key of the signature generation device S id = ms · P id ∈ <P 1 >.

〔第1実施形態〕
本発明の第1実施形態を説明する。
[First Embodiment]
A first embodiment of the present invention will be described.

<構成>
図1は、第1実施形態のリカバリ署名システム1を説明するためのシステム構成図である。また、図2は、第1実施形態の署名生成装置10の詳細構成を説明するためのブロック図である。図3は、第1実施形態におけるハッシュ演算部10iの詳細構成の一例を説明するためのブロック図である。図4は、第1実施形態の署名検証装置20の詳細構成を説明するためのブロック図である。図5は、第1実施形態の管理装置30の詳細構成を説明するためのブロック図である。
<Configuration>
FIG. 1 is a system configuration diagram for explaining a recovery signature system 1 of the first embodiment. FIG. 2 is a block diagram for explaining a detailed configuration of the signature generation apparatus 10 according to the first embodiment. FIG. 3 is a block diagram for explaining an example of a detailed configuration of the hash calculation unit 10i in the first embodiment. FIG. 4 is a block diagram for explaining a detailed configuration of the signature verification apparatus 20 according to the first embodiment. FIG. 5 is a block diagram for explaining a detailed configuration of the management apparatus 30 according to the first embodiment.

図1に示すように、本形態のリカバリ署名システム1は、署名を生成する署名生成装置10と、署名を検証する署名検証装置20と、リカバリ署名システム1を管理する第三者機関の装置である管理装置30とを有し、それらはネットワーク40を通じて通信可能に接続されている。なお、説明の簡略化のため、図1では署名生成装置10及び署名検証装置20を1つずつ記述しているが、署名生成装置10や署名検証装置20が2以上存在してもよい。同様に、管理装置30が2以上存在してもよい。   As shown in FIG. 1, a recovery signature system 1 according to the present embodiment is a signature generation apparatus 10 that generates a signature, a signature verification apparatus 20 that verifies a signature, and a third-party organization apparatus that manages the recovery signature system 1. There is a certain management apparatus 30, and they are communicably connected through a network 40. For simplification of explanation, FIG. 1 illustrates one signature generation apparatus 10 and one signature verification apparatus 20, but two or more signature generation apparatuses 10 and signature verification apparatuses 20 may exist. Similarly, two or more management devices 30 may exist.

図2に示すように、本形態の署名生成装置10は、メモリ10a(「第1記憶部」「第2記憶部」「第6記憶部」)と、一時メモリ10bと、制御部10cと、入力部10dと、符号化部10eと、任意数選択部10fと、双線形関数演算部10g(「第1双線形関数演算部」)と、ハッシュ演算部10h(「第1ハッシュ演算部」)と、ハッシュ演算部10i(「第2ハッシュ演算部」)と、排他的論理和演算部10j(「第1排他的論理和演算部」)と、ビット結合部10kと、ハッシュ演算部10m(「第3ハッシュ演算部」)と、剰余演算部10nと、判定部10p,10rと、楕円曲線演算部10qと、通信部10s(「送信部」)とを有する。また、図3に示す例では、ハッシュ演算部10iは、ハッシュ回数演算部10iaと、部分ハッシュ演算部10ibと、ビット結合部10icと、ビット削除部10idとを有する。なお、本形態の署名生成装置10は、CPU(Central Processing Unit)やRAM(Random Access Memory)などからなる通信手段を備えた公知のコンピュータに所定のプログラムが読み込まれて構成される。ここで、メモリ10aや一時メモリ10bは、例えば、RAM、レジスタ、補助記憶装置、或いはこれらを結合した記憶領域である。また、制御部10cと、符号化部10eと、任意数選択部10fと、双線形関数演算部10gと、ハッシュ演算部10h,10i,10mと、排他的論理和演算部10jと、ビット結合部10kと、剰余演算部10nと、判定部10p,10rと、楕円曲線演算部10qとは、例えば、CPUが所定のプログラムを実行して構築される処理手段である。また、入力部10dは、キーボード、マウス、入力ポートなどの入力インタフェースである。また、通信部10sは、所定のプログラムを実行するCPUの制御のみと駆動するLANカード、モデム等の通信手段である。また、署名生成装置10は、制御部10cの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ10bに読み書きされる。   As shown in FIG. 2, the signature generation apparatus 10 of the present embodiment includes a memory 10a (“first storage unit”, “second storage unit”, “sixth storage unit”), a temporary memory 10b, a control unit 10c, Input unit 10d, encoding unit 10e, arbitrary number selection unit 10f, bilinear function calculation unit 10g ("first bilinear function calculation unit"), and hash calculation unit 10h ("first hash calculation unit") A hash operation unit 10i (“second hash operation unit”), an exclusive OR operation unit 10j (“first exclusive OR operation unit”), a bit combination unit 10k, and a hash operation unit 10m (“ 3rd hash calculation part "), remainder calculation part 10n, determination part 10p, 10r, elliptic curve calculation part 10q, and communication part 10s (" transmission part "). In the example illustrated in FIG. 3, the hash calculation unit 10 i includes a hash number calculation unit 10 ia, a partial hash calculation unit 10 ib, a bit combination unit 10 ic, and a bit deletion unit 10 id. The signature generation apparatus 10 according to the present embodiment is configured by reading a predetermined program into a known computer having communication means including a CPU (Central Processing Unit) and a RAM (Random Access Memory). Here, the memory 10a and the temporary memory 10b are, for example, a RAM, a register, an auxiliary storage device, or a storage area obtained by combining these. Further, the control unit 10c, the encoding unit 10e, the arbitrary number selection unit 10f, the bilinear function calculation unit 10g, the hash calculation units 10h, 10i, and 10m, the exclusive OR calculation unit 10j, and the bit combination unit The 10k, the remainder calculation unit 10n, the determination units 10p and 10r, and the elliptic curve calculation unit 10q are, for example, processing means constructed by the CPU executing a predetermined program. The input unit 10d is an input interface such as a keyboard, a mouse, and an input port. The communication unit 10s is a communication unit such as a LAN card or a modem that is driven only by control of a CPU that executes a predetermined program. Further, the signature generation device 10 executes each process under the control of the control unit 10c. Further, unless otherwise specified, each data in the calculation process is read and written to the temporary memory 10b one by one.

また、図4に示すように、本形態の署名検証装置20は、メモリ20a(「第3記憶部」「第4記憶部」「第5記憶部」「第7記憶部」)と、一時メモリ20bと、制御部20cと、通信部20d(「受信部」)と、ハッシュ演算部20e(「第4ハッシュ演算部」)と、剰余演算部20fと、識別子符号化部20gと、双線形関数演算部20h(「第2双線形関数演算部」)と、判定部20iと、ビット分割部20jと、ハッシュ演算部20k(「第5ハッシュ演算部」)と、排他的論理和演算部20m(「第2排他的論理和演算部」)と、ハッシュ演算部20n(「第6ハッシュ演算部」)と、比較部20pと、復号部20qと、出力部20rと、入力部20sとを有する。なお、本形態の署名検証装置20は、CPUやRAMからなる通信手段を備えた公知のコンピュータに所定のプログラムが読み込まれて構成される。ここで、メモリ20aや一時メモリ20bは、例えば、RAM、レジスタ、補助記憶装置、或いはこれらを結合した記憶領域である。また、制御部20cと、ハッシュ演算部20eと、剰余演算部20fと、識別子符号化部20gと、双線形関数演算部20hと、判定部20iと、ビット分割部20jと、ハッシュ演算部20kと、排他的論理和演算部20mと、ハッシュ演算部20nと、比較部20pと、復号部20qとは、例えば、CPUが所定のプログラムを実行して構築される処理手段である。また、通信部20dは、所定のプログラムを実行するCPUの制御のみと駆動するLANカード、モデム等の通信手段である。また、出力部20rは、ディスプレイ、出力ポートなどの出力インタフェースであり、入力部20sは、キーボード、マウス、入力ポートなどの入力インタフェースである。また、署名検証装置20は、制御部20cの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ20bに読み書きされる。   As shown in FIG. 4, the signature verification apparatus 20 of the present embodiment includes a memory 20a (“third storage unit”, “fourth storage unit”, “fifth storage unit”, “seventh storage unit”) and a temporary memory. 20b, control unit 20c, communication unit 20d ("receiving unit"), hash calculation unit 20e ("fourth hash calculation unit"), remainder calculation unit 20f, identifier encoding unit 20g, bilinear function Operation unit 20h (“second bilinear function operation unit”), determination unit 20i, bit division unit 20j, hash operation unit 20k (“fifth hash operation unit”), and exclusive OR operation unit 20m ( “Second exclusive OR operation unit”), hash operation unit 20n (“sixth hash operation unit”), comparison unit 20p, decryption unit 20q, output unit 20r, and input unit 20s. Note that the signature verification apparatus 20 according to the present embodiment is configured by reading a predetermined program into a known computer having communication means including a CPU and a RAM. Here, the memory 20a and the temporary memory 20b are, for example, a RAM, a register, an auxiliary storage device, or a storage area obtained by combining these. Further, the control unit 20c, the hash calculation unit 20e, the remainder calculation unit 20f, the identifier encoding unit 20g, the bilinear function calculation unit 20h, the determination unit 20i, the bit division unit 20j, and the hash calculation unit 20k The exclusive OR operation unit 20m, the hash operation unit 20n, the comparison unit 20p, and the decryption unit 20q are, for example, processing means constructed by the CPU executing a predetermined program. The communication unit 20d is a communication unit such as a LAN card or a modem that is driven only by control of a CPU that executes a predetermined program. The output unit 20r is an output interface such as a display and an output port, and the input unit 20s is an input interface such as a keyboard, a mouse, and an input port. In addition, the signature verification apparatus 20 executes each process under the control of the control unit 20c. Further, unless otherwise specified, each data in the calculation process is read and written to the temporary memory 20b one by one.

また、図5に示すように、管理装置30は、メモリ30aと、一時メモリ30bと、制御部30cと、マスター秘密鍵生成部30dと、マスター公開鍵生成部30eと、識別子符号化部30fと、秘密鍵生成部30gと、通信部30hとを有する。本形態の管理装置30は、CPUやRAMからなる通信手段を備えた公知のコンピュータに所定のプログラムが読み込まれて構成される。   As shown in FIG. 5, the management device 30 includes a memory 30a, a temporary memory 30b, a control unit 30c, a master secret key generation unit 30d, a master public key generation unit 30e, and an identifier encoding unit 30f. And a secret key generation unit 30g and a communication unit 30h. The management apparatus 30 according to the present embodiment is configured by reading a predetermined program into a known computer having communication means including a CPU and a RAM.

<処理>
次に本形態の処理について説明する。
[前処理]
まず、前処理として、第三者機関が、セキュリティパラメータk∈Zに対してkビット安全性が担保されるように、楕円曲線Eと、#Eを割り切る大きい素数pと、ペアリング関数eと、元P,Pと、関数IDencodeと、関数encodeと、関数decodeと、ハッシュ関数H,H,Hとを設定する。
<Processing>
Next, the processing of this embodiment will be described.
[Preprocessing]
First, as a pre-process, a third-party organization has an elliptic curve E, a large prime number p that divides #E, and a pairing function e so that k-bit safety is ensured for the security parameter kεZ. , Elements P 1 , P 2 , function IDencode, function encode, function decode, and hash functions H 1 , H 2 , H 3 are set.

設定された楕円曲線Eとペアリング関数eと関数encodeとハッシュ関数H,H,Hは、例えば、署名生成装置10を構成するためのプログラムに記述され、素数pと元P,Pとは、例えば、署名生成装置10のメモリ10aに格納され、これらは署名生成装置10が利用可能な状態にされる。また、設定された楕円曲線Eとペアリング関数eと関数IDencodeと関数decodeとハッシュ関数H,H,Hは、例えば、署名検証装置20を構成するためのプログラムに記述され、素数pと元Pとは、例えば、署名検証装置20のメモリ20aに格納され、これらは署名検証装置20が利用可能な状態にされる。さらに、設定された楕円曲線Eと関数encodeと関数IDencodeとは、例えば、管理装置30を構成するためのプログラムに記述され、素数pと元P,Pとは、例えば、管理装置30のメモリ30aに格納され、これらは管理装置30が利用可能な状態にされる。 The set elliptic curve E, pairing function e, function encode, and hash functions H 1 , H 2 , and H 3 are described in, for example, a program for configuring the signature generation apparatus 10, and the prime number p and the elements P 1 , the P 2, for example, stored in the memory 10a of the signature generating apparatus 10, these signature generating apparatus 10 is in the available state. Further, the set elliptic curve E, the pairing function e, the function IDencode, the function decode, and the hash functions H 1 , H 2 , and H 3 are described in a program for configuring the signature verification apparatus 20, for example, and the prime number p And the source P 2 are stored in, for example, the memory 20 a of the signature verification device 20, and these are made available to the signature verification device 20. Further, the set elliptic curve E, function encode, and function IDencode are described in, for example, a program for configuring the management device 30, and the prime number p and the elements P 1 and P 2 are, for example, those of the management device 30. These are stored in the memory 30a and are made available to the management device 30.

また、管理装置30のマスター秘密鍵生成部30dが、マスター秘密鍵ms∈Z/pZを一様ランダムに選択し、それをメモリ30aに安全に格納する。次に、マスター公開鍵生成部30eが、メモリ30aからマスター秘密鍵msと元Pとを読み込み、楕円曲線E上の点である元Pを楕円曲線E上でmsし、その演算結果mp=ms・P∈<P>をマスター公開鍵mpとしてメモリ30aに格納する。このように生成されたマスター公開鍵mpは、署名検証装置20にも配信され、署名検証装置20のメモリ20aに格納される。 The master private key generating section 30d of the management apparatus 30, the master secret key ms∈ U Z / pZ selected uniformly randomly, securely store it in the memory 30a. Then, the master public key generation unit 30e can read, and the original P 2 master secret key ms from the memory 30a, the original P 2 is a point on the elliptic curve E and ms on an elliptic curve E, the operation result mp = Ms · P 2 ∈ <P 2 > is stored in the memory 30a as the master public key mp. The master public key mp generated in this way is also distributed to the signature verification device 20 and stored in the memory 20a of the signature verification device 20.

[秘密鍵生成処理]
次に、管理装置30が署名生成装置10の秘密鍵を生成する秘密鍵生成処理を説明する。秘密鍵生成処理は、前処理において実行されてもよいし、署名生成装置10が署名生成を行うたびに実行されてもよいし、所定の契機で定期的又は不定期的に実行されてもよい。
[Secret key generation process]
Next, a secret key generation process in which the management apparatus 30 generates a secret key for the signature generation apparatus 10 will be described. The secret key generation process may be executed in the pre-process, may be executed every time the signature generation apparatus 10 generates a signature, or may be executed regularly or irregularly at a predetermined opportunity. .

秘密鍵生成処理では、まず、署名生成装置10の入力部10dに署名生成装置10の識別子idが入力される。識別子idの例は、署名生成装置10のメールアドレス、URL、電話番号、位置情報、時刻情報、ユーザ名などである。入力された識別子idはメモリ10aに格納される。また、識別子idは、秘密鍵発行要求情報とともに通信部10qからネットワーク40経由で管理装置30に送信される。これらの情報は管理装置30の通信部30hで受信され、識別子idはメモリ30aに格納される。次に、識別子idは識別子符号化部30fに読み込まれ、識別子符号化部30fは識別子idを関数IDencodeに入力し、楕円曲線E上の点Pid=IDencode(id)を算出する。これは有限集合E[p]の元である。楕円曲線E上の点Pidはメモリ30aに格納され、さらに秘密鍵生成部30gに読み込まれる。秘密鍵生成部30gは、楕円曲線E上の点Pidを楕円曲線E上でms倍した署名生成装置10の秘密鍵Sid=ms・Pidを生成し、秘密鍵Sidをメモリ30aに格納する。生成された秘密鍵Sidは通信部30hに送られ、専用回線や公知の公開鍵暗号や共通鍵暗号などを用い、署名生成装置10に安全に送信される。秘密鍵Sidは署名生成装置10の通信部10qで受信され、メモリ10aに安全に格納される。 In the secret key generation process, first, the identifier id of the signature generation apparatus 10 is input to the input unit 10d of the signature generation apparatus 10. Examples of the identifier id are a mail address, URL, telephone number, location information, time information, user name, and the like of the signature generation device 10. The input identifier id is stored in the memory 10a. The identifier id is transmitted from the communication unit 10q to the management device 30 via the network 40 together with the secret key issue request information. These pieces of information are received by the communication unit 30h of the management apparatus 30, and the identifier id is stored in the memory 30a. Next, the identifier id is read by the identifier encoding unit 30f, and the identifier encoding unit 30f inputs the identifier id to the function IDencode, and calculates a point P id = IDencode (id) on the elliptic curve E. This is an element of the finite set E [p]. The point P id on the elliptic curve E is stored in the memory 30a and further read into the secret key generation unit 30g. The secret key generation unit 30g generates the secret key S id = ms · P id of the signature generation apparatus 10 obtained by multiplying the point P id on the elliptic curve E by ms on the elliptic curve E, and stores the secret key S id in the memory 30a. Store. Secret key S id that generated is sent to the communication unit 30h, etc. using a dedicated line or a known public key cryptography and common key cryptography, it is securely transmitted to the signature generating apparatus 10. The secret key S id is received by the communication unit 10q of the signature generation apparatus 10 and stored securely in the memory 10a.

[署名生成処理]
次に、署名生成装置10の署名生成処理を説明する。この処理の前提として、署名生成装置10のメモリ10aに元P,Pと素数pと署名生成装置10の秘密鍵Sidと識別子idとが格納されているものとする。
[Signature generation processing]
Next, the signature generation process of the signature generation apparatus 10 will be described. As a premise of this process, it is assumed that the elements P 1 and P 2 , the prime number p, the secret key S id of the signature generation apparatus 10 and the identifier id are stored in the memory 10 a of the signature generation apparatus 10.

図6は、第1実施形態の署名生成処理を説明するためのフローチャートである。以下、この図に従って本形態の署名生成処理を説明する。   FIG. 6 is a flowchart for explaining the signature generation processing according to the first embodiment. Hereinafter, the signature generation processing according to this embodiment will be described with reference to FIG.

まず、入力部10dに、署名対象となるリカバリーメッセージMrec及びクリアーメッセージMclrが入力され、これらがメモリ10aに格納される(ステップS1)。次に、符号化部10eが、メモリ10aからリカバリーメッセージMrecを読み込み、関数encodeを用いて符号化し、Lビットの復元署名対象情報rec=encode(Mrec)を生成する。以下に関数encodeの具体例を示す。 First, a recovery message M rec and a clear message M clr to be signed are input to the input unit 10d and stored in the memory 10a (step S1). Next, the encoding unit 10e reads the recovery message M rec from the memory 10a, encodes it using the function encode, and generates L-bit restoration signature target information rec = encode (M rec ). A specific example of the function “encode” is shown below.

[関数encodeの具体例の説明]
関数encodeは、任意の入力ビット列に対し、セキュリティパラメータkに対応した安全性が得られるビット長の復元署名対象情報recを出力する可逆な関数(逆関数が存在する関数)である。セキュリティパラメータkに対応した安全性が得られるビット長が72ビット以上であった場合の関数encodeの一例は以下の通りである。
[Description of specific example of function encode]
The function “encode” is a reversible function (a function having an inverse function) that outputs, for an arbitrary input bit string, restored signature target information rec having a bit length that can provide security corresponding to the security parameter k. An example of the function “encode” in the case where the bit length for obtaining the security corresponding to the security parameter k is 72 bits or more is as follows.

《length(Mrec)が72ビット未満の場合》
encode(Mrec)=length(Mrec)|Mrec|0…0 …(4)
(ただし、Mrec|0…0のビット長は72ビットである。)
<< When length (M rec ) is less than 72 bits >>
encode (M rec ) = length (M rec ) | M rec | 0... 0 (4)
(However, the bit length of M rec | 0... 0 is 72 bits.)

《length(Mrec)が72ビット以上の場合》
encode(Mrec)=0ff|Mrec …(5)
(ただし、0ffは、付加ビットが追加されていないことを示すヘッダ情報である。また、0ffのビット長BLは関数lengthの出力ビット長BLと等しい。)
この場合、関数decodeの演算は以下のようになる。
<< When length (M rec ) is 72 bits or more >>
encode (M rec ) = 0 x ff | M rec (5)
(However, 0 x ff is header information indicating that no additional bit is added. The bit length BL of 0 x ff is equal to the output bit length BL of the function length.)
In this case, the operation of the function decode is as follows.

《recの先頭BLビットが0ffである場合》
recから先頭BLビットを除いたビット列を出力する。
<< When the first BL bit of rec is 0 x ff >>
A bit string obtained by removing the head BL bit from rec is output.

《recの先頭BLビットが0ffでない場合》
recの先頭BLビットが0ffでない場合には、recから先頭BLビットに示されるビット長だけ、recの先頭BLビットより下位のビット列を抽出して出力する( [関数encodeの具体例の説明]終わり)。
<< When the first BL bit of rec is not 0 x ff >>
If the first BL bit of rec is not 0 x ff, a bit string lower than the first BL bit of rec by the bit length indicated by the first BL bit is extracted and output from rec ([Explanation of specific example of function encode] ]the end).

生成された復元署名対象情報recは、メモリ10aに格納される(ステップS2)。次に、任意数選択部10fが乱数y∈(Z/pZ)\{0}を選択し、それをメモリ10aに格納する(ステップS3)。なお、乱数の選択は、例えば、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用いて行う。   The generated restoration signature target information rec is stored in the memory 10a (step S2). Next, the arbitrary number selection unit 10f selects a random number yε (Z / pZ) \ {0} and stores it in the memory 10a (step S3). The random number is selected using, for example, a pseudo-random number generation algorithm based on the computational complexity theory, which is configured using a one-way hash function such as SHA-1.

次に、双線形関数演算部10gが、メモリ10aから元P,Pと乱数yとを読み込み、ペアリング関数eを用いて双線形関数値R=e(P,P∈μを算出し、双線形関数値Rをメモリ10aに格納する(ステップS4)。なお、e(P,P∈μは有限体Fを基礎体とする標数qのm(m≧2)次の拡大体F 上の演算である。拡大体F の元は、有限体Fの元を係数とするαについてのm−1次多項式で表現できる。なお、αは有限体Fの元を係数とする既約多項式の根である。また、この既約多項式のうち最小次数のものをfとし、拡大体F の元を表現する2つの多項式をA(α),B(α)とすると、拡大体F 上の乗算は、C(α)=A(α)・B(α) mod f(α)と表現でき、多項式演算A(α)・B(α)とf(α)による除算とによって計算できる。なお、多項式演算A(α)・B(α)における各次数の係数間の演算は有限体F上の演算である。また、拡大体F 上のべき乗は、このような拡大体F 上の乗算をべき乗回繰り返すことを意味する。例えば、e(P,P∈μは、e(P,P)・e(P,P)・e(P,P)∈μを意味する。 Next, the bilinear function calculation unit 10g reads the elements P 1 and P 2 and the random number y from the memory 10a, and uses the pairing function e to set the bilinear function value R = e (P 1 , P 2 ) y ∈ It calculates mu p, stores the bilinear function value R in the memory 10a (step S4). Note that e (P 1 , P 2 ) y ∈μ p is an operation on the m-th (m ≧ 2) -order extended field F q m of the characteristic q with the finite field F q as a base field. The element of the extension field F q m can be expressed by an m−1th order polynomial with respect to α having the coefficient of the element of the finite field F q . Note that α is a root of an irreducible polynomial whose coefficient is an element of the finite field Fq . Further, if the minimum degree of the irreducible polynomial is f and the two polynomials representing the elements of the extension field F q m are A (α) and B (α), multiplication on the extension field F q m is performed. Can be expressed as C (α) = A (α) · B (α) mod f (α), and can be calculated by polynomial operation A (α) · B (α) and division by f (α). In addition, the calculation between the coefficients of each order in the polynomial calculation A (α) / B (α) is an operation on the finite field Fq . Also, power of the extension field F q m means repeating the exponentiation times multiplication over such an extension field F q m. For example, e (P 1 , P 2 ) 3 εμ p means e (P 1 , P 2 ) · e (P 1 , P 2 ) · e (P 1 , P 2 ) εμ p .

次に、ハッシュ演算部10hが、メモリ10aから復元署名対象情報recと双線形関数値Rと識別子idとを読み込み、それらの各ビット列のビット結合値α=rec|R|idに対し、ハッシュ関数Hを作用させたNビットのハッシュ値h=H(α)を算出する(ステップS5)。生成されたハッシュ値hはメモリ10aに格納される。次に、ハッシュ演算部10iが、メモリ10aからハッシュ値hのビット列と双線形関数値Rのビット列と識別子idのビット列とを読み込み、それらの各ビット列のビット結合値β=h|R|idに対し、ハッシュ関数Hを作用させたLビットのハッシュ値v=H(β)を算出する(ステップS6)。生成されたハッシュ値vはメモリ10aに格納される。以下にステップS6の詳細を例示する。 Next, the hash calculation unit 10h reads the restored signature target information rec, the bilinear function value R, and the identifier id from the memory 10a, and performs a hash function on the bit combination value α = rec | R | id of each of these bit strings. hash value of N bits allowed to act H 1 h = H 1 (α ) is calculated (step S5). The generated hash value h is stored in the memory 10a. Next, the hash calculation unit 10i reads the bit string of the hash value h, the bit string of the bilinear function value R, and the bit string of the identifier id from the memory 10a, and sets the bit combination value β = h | R | id of each of these bit strings. On the other hand, an L-bit hash value v = H 2 (β) obtained by applying the hash function H 2 is calculated (step S6). The generated hash value v is stored in the memory 10a. Details of step S6 will be exemplified below.

[ステップS6の詳細処理の例]
図7は、ステップS6の詳細処理を例示するためのフローチャートである。
まず、ハッシュ演算回数算出部10ia(図3)が、記憶部10aから復元署名対象情報recを読み込み、
emax=rounddown{L/length(H)}, L=length(rec) …(6)
の演算を行ってemax
を一時メモリ10bに格納する(ステップS6a)。なお、HはSHA−1等の公知のハッシュ関数を意味し、length(H)はハッシュ関数Hの出力ビットのビット長を意味する。なお、Lが定数である場合にはemaxを事前計算しておくことも可能であり、その場合にはステップS6aの処理は不要となる。
[Example of detailed processing in step S6]
FIG. 7 is a flowchart for illustrating the detailed processing of step S6.
First, the hash calculation number calculation unit 10ia (FIG. 3) reads the restoration signature target information rec from the storage unit 10a,
e max = rounddown {L / length (H)}, L = length (rec)… (6)
E max
Is stored in the temporary memory 10b (step S6a). H means a known hash function such as SHA-1, and length (H) means the bit length of the output bit of the hash function H. Incidentally, L is when a constant is also possible that you precompute e max, the processing in step S6a in that case is not necessary.

次に、制御部10cは変数eに0を代入し、変数eを一時メモリ10bに格納する(ステップS6b)。次に、部分ハッシュ演算部10ibが、一時メモリ10bから変数eを読み込み、記憶部10aからハッシュ値hのビット列と双線形関数値Rのビット列と識別子idのビット列とを読み込み、それらの各ビット列のビット結合値β=h|R|idに対し、ハッシュ値
H(e,β) …(7)
を算出して一時メモリ10bに格納する(ステップS6c)。
Next, the control unit 10c substitutes 0 for the variable e, and stores the variable e in the temporary memory 10b (step S6b). Next, the partial hash calculation unit 10ib reads the variable e from the temporary memory 10b, reads the bit string of the hash value h, the bit string of the bilinear function value R, and the bit string of the identifier id from the storage unit 10a, Hash value for bit combined value β = h | R | id
H (e, β)… (7)
Is calculated and stored in the temporary memory 10b (step S6c).

次に、制御部10cが、一時メモリ10bからemaxと変数eとを読み込み、
e=emax …(8)
を満たすか否かを判断する(ステップS6d)。ここで、式(8)を満たさないのであれば、制御部10cはe+1を新たなeとし、新たなeを一時メモリ10bに格納した後(ステップS6e)、処理をステップS6cに戻す。一方、式(8)を満たすのであれば、制御部10cはビット結合部10icに指示を与え、ビット結合部10icは、一時メモリ10bから各ハッシュ値H(0,β),H(1,β),H(2,β),…,H(emax,β)を読み込み、それらのビット結合値
HC(β)=H(0,β)|・・・|H(emax,β) …(9)
を算出して一時メモリ10bに格納する(ステップS6f)。
Next, the control unit 10c reads e max and the variable e from the temporary memory 10b,
e = e max … (8)
It is determined whether or not the condition is satisfied (step S6d). If the expression (8) is not satisfied, the control unit 10c sets e + 1 as a new e, stores the new e in the temporary memory 10b (step S6e), and then returns the process to step S6c. On the other hand, if Expression (8) is satisfied, the control unit 10c gives an instruction to the bit combination unit 10ic, and the bit combination unit 10ic receives the hash values H (0, β), H (1, β from the temporary memory 10b. ), H (2, β),..., H (e max , β), and their bit combination values
HC (β) = H (0, β) | ・ ・ ・ | H (e max , β)… (9)
Is calculated and stored in the temporary memory 10b (step S6f).

次に、ビット削除部10idが、一時メモリ10bから、ビット結合値HC(β)を読み込み、
v=H2(β)=delete{length(HC(β))- L,HC(β)} …(10)
を算出して記憶部10aに出力する(ステップS6g)。すなわち、HC(R)の先頭の数ビットを削除して全体のビット長をLとしたものをv=H(β)とする。
Next, the bit deletion unit 10id reads the bit combination value HC (β) from the temporary memory 10b,
v = H 2 (β) = delete {length (HC (β))-L, HC (β)}… (10)
Is calculated and output to the storage unit 10a (step S6g). That is, v = H 2 (β) is obtained by deleting the first few bits of HC (R) and setting the total bit length to L.

なお、ステップS6の処理方法はこれに限定されない。例えば、eを用いるのではなく、ハッシュチェインによってハッシュ値のビット長を拡張する方法でもよい。この場合、式(9)のHC(β)は、例えば、
HC(β)=H(β)|H(H(β))|H(H(H(β)))|…|H(H(H…(β)…))
であってもよい([ステップS6の詳細処理の例]の説明終わり)。
In addition, the processing method of step S6 is not limited to this. For example, instead of using e, a method of extending the bit length of the hash value by a hash chain may be used. In this case, HC (β) in the formula (9) is, for example,
HC (β) = H (β) | H (H (β)) | H (H (H (β))) |… | H (H (H… (β)…))
(End of description of [Example of Detailed Processing in Step S6]).

次に、排他的論理和演算部10jが、メモリ10aからハッシュ値vと復元署名対象情報recとを読み込み、それらの排他的論理和値x=v(+)recを算出し、排他的論理和値xをメモリ10aに格納する(ステップS7)。次に、ビット結合部10kが、メモリ10aからハッシュ値hと排他的論理和値xとを読み込み、ハッシュ値hのビット列を第1ビット位置に配置し、排他的論理和値xのビット列を第2ビット位置に配置したN+Lビットのビット結合値rを算出する(ステップS8)。なお、第1ビット位置及び第2ビット位置はどのビット位置に設定されてもよいが、署名生成装置10で設定される第1ビット位置と、署名検証装置20で設定される第1ビット位置とは同一であり、かつ、署名生成装置10で設定される第2ビット位置と、署名検証装置20で設定される第2ビット位置とは同一であるものとする。また、第1ビット位置及び第2ビット位置の設定例は以下の通りである。   Next, the exclusive OR operation unit 10j reads the hash value v and the restoration signature target information rec from the memory 10a, calculates their exclusive OR value x = v (+) rec, and performs the exclusive OR operation. The value x is stored in the memory 10a (step S7). Next, the bit combination unit 10k reads the hash value h and the exclusive OR value x from the memory 10a, arranges the bit string of the hash value h at the first bit position, and sets the bit string of the exclusive OR value x to the first bit position. The bit combination value r of N + L bits arranged at the 2-bit position is calculated (step S8). The first bit position and the second bit position may be set to any bit position, but the first bit position set by the signature generation apparatus 10 and the first bit position set by the signature verification apparatus 20 Are the same, and the second bit position set by the signature generation apparatus 10 and the second bit position set by the signature verification apparatus 20 are the same. An example of setting the first bit position and the second bit position is as follows.

[第1ビット位置及び第2ビット位置の設定例]
図9は、第1ビット位置及び第2ビット位置の設定例を説明する図である。
《例1》先頭Nビットを第1ビット位置とし、残りLビットを第2ビット位置とする(図9(a))。
《例2》先頭Lビットを第2ビット位置とし、残りNビットを第1ビット位置とする(図9(b))。
《例3》L個の奇数ビットを第2ビット位置とし、残りのNビットを第1ビット位置とする(図9(c))。
[Setting example of first bit position and second bit position]
FIG. 9 is a diagram illustrating a setting example of the first bit position and the second bit position.
Example 1 The first N bits are the first bit position and the remaining L bits are the second bit position (FIG. 9A).
Example 2 The first L bit is the second bit position and the remaining N bits are the first bit position (FIG. 9B).
<< Example 3 >> Let L odd bits be the second bit positions and the remaining N bits be the first bit positions (FIG. 9C).

なお、これらは一例であり、その他の設定も可能である([第1ビット位置及び第2ビット位置の設定例]の説明終わり)。   These are only examples, and other settings are possible (end of description of [setting example of first bit position and second bit position]).

次に、ハッシュ演算部10mが、メモリ10aからビット結合値rとクリアーメッセージMclrと識別子idとを読み込み、それらのビット結合値γ=r|Mclr|idに対し、ハッシュ関数Hを作用させたハッシュ値u=H(γ)を算出する(ステップS9)。生成されたハッシュ値uはメモリ10aに格納される。次に、剰余演算部10nがメモリ10aからハッシュ値uと素数pとを読み込み、剰余演算t=u mod pを行い、その演算結果をメモリ10aに格納する(ステップS10)。次に、判定部10pがメモリ10aから演算結果tを読み込み、t=0であるか否かを判定する(ステップS11)。ここで、t=0であれば、処理がステップS3に戻され、乱数yを取り直して処理がやり直される。一方、t=0でなければ、楕円曲線演算部10qがメモリ10aから演算結果tと元Pと乱数yと秘密鍵Sidとを読み込み、元Pの楕円曲線E上でのy倍点y・Pと、Sidの楕円曲線E上でのt倍点t・Sidの楕円逆元−t・Sidとを楕円加算した楕円曲線演算値σ=y・P−t・Sid∈E[p]を算出する(ステップS12)。算出された楕円曲線演算値σはメモリ10aに格納される。次に、判定部10rが、メモリ10aから楕円曲線演算値σを読み込み、それが無限遠点Oを示すか否かを判定する(ステップS13)。ここで、楕円曲線演算値σ=Oであれば、処理がステップS3に戻され、乱数yを取り直して処理がやり直される。一方、楕円曲線演算値σ=Oでなければ、制御部10cがメモリ10aから乱数yを削除する(ステップS14)。そして、クリアーメッセージMclrとビット結合値rと楕円曲線演算値σとが送信部10sに送られ、送信部10sは、クリアーメッセージMclrと署名情報(r,σ)とをネットワーク40経由で署名検証装置20に送信する(ステップS15)。 Then, the hash calculator 10m is, reads the bit connection value r and the clear message M clr the identifier id from the memory 10a, their bit combination value γ = r | M clr | id hand, acts a hash function H 3 The hash value u = H 3 (γ) is calculated (step S9). The generated hash value u is stored in the memory 10a. Next, the remainder calculation unit 10n reads the hash value u and the prime number p from the memory 10a, performs a remainder calculation t = u mod p, and stores the calculation result in the memory 10a (step S10). Next, the determination unit 10p reads the calculation result t from the memory 10a and determines whether t = 0 (step S11). Here, if t = 0, the process returns to step S3, the random number y is taken again, and the process is repeated. On the other hand, unless t = 0, the elliptic curve computation unit 10q reads the operation result t and the original P 1 and the random number y from the memory 10a and the secret key S id, y multiplied point on an elliptic curve of the original P 1 E and y · P 1, elliptic curve calculation value and the elliptic inverse -t · S id of t times points t · S id on elliptic curve E and elliptic curve addition of S id σ = y · P 1 -t · S id ∈ E [p] is calculated (step S12). The calculated elliptic curve calculation value σ is stored in the memory 10a. Next, the determination unit 10r reads the elliptic curve calculation value σ from the memory 10a and determines whether or not it indicates the infinity point O (step S13). Here, if the elliptic curve calculation value σ = O, the process returns to step S3, the random number y is taken again, and the process is performed again. On the other hand, unless the elliptic curve calculation value σ = O, the control unit 10c deletes the random number y from the memory 10a (step S14). Then, the clear message M clr , the bit combination value r, and the elliptic curve calculation value σ are transmitted to the transmission unit 10s, and the transmission unit 10s signs the clear message M clr and the signature information (r, σ) via the network 40. It transmits to the verification apparatus 20 (step S15).

[署名検証処理]
次に、署名検証装置20の署名検証処理を説明する。この処理の前提として、署名検証装置20のメモリ20aにマスター公開鍵mpと元Pと素数pとが格納されているものとする。
[Signature verification]
Next, the signature verification process of the signature verification apparatus 20 will be described. Given this process, it is assumed that the master public key mp and the original P 2 in the memory 20a of the signature verifying apparatus 20 and the prime number p is stored.

図8は、第1実施形態の署名検証処理を説明するためのフローチャートである。以下、この図に従って本形態の署名検証処理を説明する。   FIG. 8 is a flowchart for explaining the signature verification processing according to the first embodiment. Hereinafter, the signature verification processing according to this embodiment will be described with reference to FIG.

まず、署名検証装置20の通信部20dが、クリアーメッセージMclrと署名情報(r’,σ’)とを受信する(ステップS21)。なお、この署名情報が正当なものであれば署名情報(r’,σ’)=(r,σ)であるが、この時点ではそれが不明であるため、通信部20dが受信する署名情報を(r’,σ’)と表現する。受信された署名情報(r’,σ’)は、ビット列である第1パート情報r’と、有限集合E[p]の元である第2パート情報σ’とからなり、これらはメモリ20aに格納される。次に、入力部20sに署名生成装置10の識別子idが入力され、メモリ20aに格納される(ステップS22)。なお、識別子idがすでにメモリ20aに格納されているのであれば、ステップS22は省略可能である。次に、ハッシュ演算部20eが、メモリ20aから第1パート情報r’とクリアーメッセージMclrと識別子idとを読み込み、これらのビット列のビット結合からなるビット列γ’=r’|Mclr|idに対し、ハッシュ関数Hを作用させたハッシュ値u’=H(γ’)を算出する(ステップS23)。算出されたハッシュ値u’はメモリ20aに格納される。次に、剰余演算部20fが、メモリ20aからハッシュ値u’と素数pとを読み込み、剰余演算t’=u’ mod pを行い、その演算結果をメモリ20aに格納する(ステップS24)。次に、識別子符号化部20gが、メモリ20aから識別子idを読み込み、識別子idを関数IDencodeに入力し、楕円曲線E上の点Pid=IDencode(id)を算出する(ステップS25)。これは署名生成装置10の識別子idに対応する有限集合E[p]の元Pidである。生成された楕円曲線E上の点Pidはメモリ20aに格納される。次に、双線形関数演算部20hが、メモリ20aから、第2パート情報σ’と元Pと楕円曲線E上の点Pidとマスター公開鍵mpと演算結果t’を読み込み、ペアリング関数eを用いて双線形関数値R’=e(σ’,P)・e(Pid,mp)t’を算出する(ステップS26)。生成された双線形関数値R’はメモリ20aに格納される。次に、判定部20iが、メモリ20aから双線形関数値R’を読み込み、R’=1であるか否かを判定する(ステップS27)。ここで、R’=1であれば、制御部20cは署名を拒絶し(ステップS36)、処理を終了する。一方、R’=1でなければ、次に、ビット分割部20jが、メモリ20aから第1パート情報r’を読み込み、1パート情報r’の第1ビット位置のビット列h’と、第1パート情報r’の第2ビット位置のビット列x’とを抽出し(ステップS28)、それらをメモリ20aに格納する。なお、前述のように、第1ビット位置及び第2ビット位置は、署名生成装置10のビット結合部10kに設定されたものと同一とする。例えば、署名生成装置10のビット結合部10kで先頭Nビットを第1ビット位置とし、残りLビットを第2ビット位置としていたのであれば、ビット分割部20jも先頭Nビットを第1ビット位置とし、残りLビットを第2ビット位置として処理を行う。次に、ハッシュ演算部20kが、メモリ20aからハッシュ値h’と双線形関数値R’と識別子idとを読み込み、それらのビット列のビット結合値β’=h’|R’|idに対し、ハッシュ関数Hを作用させたハッシュ値v’=H(β’)を算出する(ステップS29)。算出されたハッシュ値v’はメモリ20aに格納される。次に、排他的論理和演算部20mが、メモリ20aからハッシュ値v’とビット列x’とを読み込み、それらの排他的倫理和値を、署名対象情報の復元値rec’として算出し(ステップS30)、算出された復元値rec’をメモリ20aに格納する。次に、ハッシュ演算部20nが、メモリ20aから署名対象情報の復元値rec’と双線形関数値R’と識別子idとを読み込み、それらのビット列のビット結合値α’=rec’|R’|idに対し、ハッシュ関数Hを作用させたハッシュ値h’’=H(α’)を算出する(ステップS31)。算出されたハッシュ値h’’は、メモリ20aに格納される。次に、比較部20pがメモリ20aから、ビット列h’とハッシュ値h’’とを読み込み、これらが等しいか否かを判定する(ステップS32)。ここで、これらが等しくなければ、制御部20cは署名を拒絶し(ステップS36)、処理を終了する。一方、これらが等しければ、次に、復号部20qがメモリ20aから復元値rec’を読み込み、それをdecode関数に入力し、復号値Mrec’=decode(rec’)を算出し、それをメモリ20aに格納する(ステップS34)。ここで、復号値Mrec’が所定のフォーマットに従ったものでなければ、制御部20cは署名を拒絶し(ステップS36)、処理を終了する。一方、復号値Mrec’が所定のフォーマットに従ったものであれば、検証が成功ものとして、復号値Mrec’が出力部20rに送られ、そこから出力される(ステップS35)。 First, the communication unit 20d of the signature verification apparatus 20 receives the clear message M clr and the signature information (r ′, σ ′) (step S21). If the signature information is valid, the signature information (r ′, σ ′) = (r, σ) is unknown, but since it is unknown at this point, the signature information received by the communication unit 20d is It is expressed as (r ′, σ ′). The received signature information (r ′, σ ′) includes first part information r ′ that is a bit string and second part information σ ′ that is an element of the finite set E [p], and these are stored in the memory 20a. Stored. Next, the identifier id of the signature generation device 10 is input to the input unit 20s and stored in the memory 20a (step S22). If the identifier id is already stored in the memory 20a, step S22 can be omitted. Next, the hash calculator 20e reads the first part information r ′, the clear message M clr, and the identifier id from the memory 20a, and sets the bit string γ ′ = r ′ | M clr | id consisting of bit combinations of these bit strings. On the other hand, the hash value u ′ = H 3 (γ ′) obtained by applying the hash function H 3 is calculated (step S23). The calculated hash value u ′ is stored in the memory 20a. Next, the remainder calculation unit 20f reads the hash value u ′ and the prime number p from the memory 20a, performs a remainder calculation t ′ = u ′ mod p, and stores the calculation result in the memory 20a (step S24). Next, the identifier encoding unit 20g reads the identifier id from the memory 20a, inputs the identifier id to the function IDencode, and calculates a point P id = IDencode (id) on the elliptic curve E (step S25). This is the original P id of the finite set E [p] corresponding to the identifier id of the signature generation apparatus 10. The generated point P id on the elliptic curve E is stored in the memory 20a. Next, the bilinear function calculator 20h is read from the memory 20a, the second part information sigma 'original P 2 and elliptic curve E on a point P id master public key mp arithmetic result t', the pairing function A bilinear function value R ′ = e (σ ′, P 2 ) · e (P id , mp) t ′ is calculated using e (step S26). The generated bilinear function value R ′ is stored in the memory 20a. Next, the determination unit 20i reads the bilinear function value R ′ from the memory 20a and determines whether R ′ = 1 (step S27). If R ′ = 1, the control unit 20c rejects the signature (step S36) and ends the process. On the other hand, if R ′ = 1, the bit dividing unit 20j reads the first part information r ′ from the memory 20a, and the bit string h ′ at the first bit position of the first part information r ′ and the first part. The bit string x ′ at the second bit position of the information r ′ is extracted (step S28) and stored in the memory 20a. As described above, the first bit position and the second bit position are the same as those set in the bit combination unit 10k of the signature generation apparatus 10. For example, if the bit combining unit 10k of the signature generating apparatus 10 has the first N bits as the first bit position and the remaining L bits as the second bit position, the bit dividing unit 20j also sets the first N bits as the first bit position. The remaining L bits are processed as the second bit position. Next, the hash calculator 20k reads the hash value h ′, the bilinear function value R ′, and the identifier id from the memory 20a, and for the bit combination value β ′ = h ′ | R ′ | id of these bit strings, A hash value v ′ = H 2 (β ′) obtained by applying the hash function H 2 is calculated (step S29). The calculated hash value v ′ is stored in the memory 20a. Next, the exclusive OR operation unit 20m reads the hash value v ′ and the bit string x ′ from the memory 20a, and calculates the exclusive ethical value of these as the restoration value rec ′ of the signature target information (step S30). ), The calculated restoration value rec ′ is stored in the memory 20a. Next, the hash calculation unit 20n reads the signature value restoration value rec ′, the bilinear function value R ′, and the identifier id from the memory 20a, and the bit combination value α ′ = rec ′ | R ′ | A hash value h ″ = H 1 (α ′) obtained by applying the hash function H 1 to id is calculated (step S31). The calculated hash value h ″ is stored in the memory 20a. Next, the comparison unit 20p reads the bit string h ′ and the hash value h ″ from the memory 20a, and determines whether or not they are equal (step S32). Here, if these are not equal, the control part 20c rejects a signature (step S36), and complete | finishes a process. On the other hand, if they are equal, the decoding unit 20q next reads the restored value rec 'from the memory 20a, inputs it to the decode function, calculates the decoded value M rec ' = decode (rec '), and stores it in the memory. 20a is stored (step S34). Here, if the decrypted value M rec 'is not in accordance with a predetermined format, the control unit 20c rejects the signature (step S36) and ends the process. On the other hand, if the decoded value M rec ′ conforms to a predetermined format, the verification is successful and the decoded value M rec ′ is sent to the output unit 20r and output therefrom (step S35).

<本形態の特徴>
本形態の署名生成装置10は、ステップS6で、ハッシュ値hのビット列と双線形関数値Rのビット列と識別子idのビット列のビット結合値β=h|R|idに対し、ハッシュ関数Hを作用させたLビットのハッシュ値v=H(β)を求め、このハッシュ値vとLビットの復元署名対象情報recとの排他的論理和値x=v(+)recを行い、復元署名対象情報recを最終的な署名情報に関連付けている。ここで、排他的論理和値x=v(+)recを行うためには、ハッシュ値vと復元署名対象情報recとのビット長を同一にする必要があるが、前述のように、任意のビット長の入力に対し、復元署名対象情報recと同じビット長のハッシュ値vを出力するハッシュ関数Hを設定することは容易である。よって、本形態では、様々なビット長の復元署名対象情報rec及びリカバリーメッセージMrecに柔軟に対応可能な署名情報を生成できる。
<Features of this embodiment>
Signature generating apparatus 10 of this embodiment, in step S6, the bit coupling value beta = h of the bit string and the bit string of the identifier id bit string and a bilinear function value R of the hash value h | R | to id, a hash function H 2 The applied L-bit hash value v = H 2 (β) is obtained, and the exclusive OR value x = v (+) rec of the hash value v and the L-bit restored signature target information rec is obtained to obtain the restored signature. The target information rec is associated with the final signature information. Here, in order to perform the exclusive OR value x = v (+) rec, it is necessary to make the bit lengths of the hash value v and the restored signature target information rec the same. the input bit length, it is easy to set the hash function H 2 for outputting a hash value v of the same bit length as recovery signature object information rec. Therefore, in this embodiment, it is possible to generate signature information that can flexibly correspond to the restoration signature target information rec and the recovery message M rec of various bit lengths.

また、署名検証装置20がステップS21で受信した署名情報(r’,σ’)が正当であり、(r’,σ’)=(r,σ)であった場合、ステップS23で算出されるハッシュ値u’は、
u’=H(γ’)
=H(r’|Mclr|id)
=H(r|Mclr|id)
=u
となり、ステップS24で算出される剰余演算結果t’=tとなる。そして、ステップS26で算出される双線形関数値R’は、
R’=e(σ’,P)・e(Pid,mp)t’
=e(σ,P)・e(Pid,mp)
=e(y・P−t・Sid,P)・e(Pid,mp) …(11)
となる。そして、mp=ms・Pであることと、ペアリング関数の[性質3]より、式(11)は、
R’=e(y・P−t・ms・Pid,P)・e(Pid,ms・P
=e(y・P−t・ms・Pid,P)・e(ms・t・Pid,P
=e(y・P−t・ms・Pid+ms・t・Pid,P
=e(y・P,P
=e(P,P
=R
となる。
If the signature information (r ′, σ ′) received by the signature verification apparatus 20 in step S21 is valid and (r ′, σ ′) = (r, σ), it is calculated in step S23. The hash value u ′ is
u ′ = H 3 (γ ′)
= H 3 (r ′ | M clr | id)
= H 3 (r | M clr | id)
= U
Thus, the remainder calculation result t ′ = t calculated in step S24 is obtained. The bilinear function value R ′ calculated in step S26 is
R ′ = e (σ ′, P 2 ) · e (P id , mp) t ′
= E (σ, P 2 ) · e (P id , mp) t
= E (y · P 1 −t · S id , P 2 ) · e (P id , mp) t (11)
It becomes. And from the fact that mp = ms · P 2 and [property 3] of the pairing function, equation (11) is
R ′ = e (y · P 1 −t · ms · P id , P 2 ) · e (P id , ms · P 2 ) t
= E (y · P 1 -t · ms · P id, P 2) · e (ms · t · P id, P 2)
= E (y · P 1 -t · ms · P id + ms · t · P id, P 2)
= E (y · P 1 , P 2 )
= E (P 1 , P 2 ) y
= R
It becomes.

ここで、本形態ではy≠0であるため、R’≠1とはならない(ステップS27)。また、r’=rである場合にはh’=h,x’=xとなるため(ステップS28)、β’=βとなり、v’=vとなり(ステップS29)、rec’=recとなる(ステップS30)。よってh’’=h’=hとなり(ステップS31,S32)、rec’=recからリカバリーメッセージMrec’=Mrecが復号され、検証が成功する(ステップS33〜S35)。 Here, since y ≠ 0 in this embodiment, R ′ ≠ 1 is not satisfied (step S27). When r ′ = r, h ′ = h, x ′ = x (step S28), β ′ = β, v ′ = v (step S29), and rec ′ = rec. (Step S30). Therefore, h ″ = h ′ = h (steps S31 and S32), and the recovery message M rec ′ = M rec is decoded from rec ′ = rec, and the verification is successful (steps S33 to S35).

また、この署名検証処理を行うために署名検証装置20がクリアーメッセージMclr及び署名情報(r’,σ’)以外に取得すべき情報は、すべての装置に共有される楕円曲線E、ペアリング関数e、関数IDencode、関数decode、ハッシュ関数H,H,H、マスター公開鍵mpなどの共用パラメータと、実際に署名生成を行った署名生成装置10の識別子idである。これらのうち、署名生成装置10に独自の情報は識別子idのみであり、さらに、この識別子idはメールアドレス等の容易に入手可能な情報である。よって、従来のように公開鍵証明書等を必要とするRSA等の公開鍵を用いる方式に比べ、署名検証に必要な鍵の取得や管理の煩雑さが軽減できる。また、GPS装置で検出される特定の位置情報や、時計から出力される時刻情報などを識別子idとして用いた場合には、署名検証装置20が所定の位置に達したり、所定の時間に達したりした場合にのみ、署名検証やリカバリーメッセージMrecの復元を可能とするといったシステムも構築可能である。 In addition to the clear message M clr and signature information (r ′, σ ′), information to be acquired by the signature verification apparatus 20 in order to perform this signature verification processing is an elliptic curve E, pairing shared by all apparatuses. The shared parameter such as the function e, the function IDencode, the function decode, the hash function H 1 , H 2 , H 3 , the master public key mp, and the identifier id of the signature generation apparatus 10 that has actually generated the signature. Among these, the information unique to the signature generation apparatus 10 is only the identifier id, and this identifier id is easily available information such as a mail address. Therefore, in comparison with the conventional method using a public key such as RSA that requires a public key certificate or the like, it is possible to reduce the complexity of obtaining and managing a key necessary for signature verification. Further, when specific position information detected by the GPS device, time information output from a clock, or the like is used as an identifier id, the signature verification device 20 reaches a predetermined position or reaches a predetermined time. It is possible to construct a system that enables signature verification and recovery of the recovery message M rec only when it is performed.

〔第2実施形態〕
次に、本発明の第2実施形態を説明する。第2実施形態は第1実施形態の変形例であり、クリアーメッセージMclrを用いず、クリアーメッセージMclrをヌル値とした形態である。以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. The second embodiment is a modification of the first embodiment, in which the clear message M clr is not used and the clear message M clr is set to a null value. Below, it demonstrates centering around difference with 1st Embodiment, and abbreviate | omits description about the matter which is common in 1st Embodiment.

<構成>
図10は、第2実施形態の署名生成装置110の詳細構成を説明するためのブロック図である。図11は、第2実施形態の署名検証装置120の詳細構成を説明するためのブロック図である。
<Configuration>
FIG. 10 is a block diagram for explaining a detailed configuration of the signature generation apparatus 110 according to the second embodiment. FIG. 11 is a block diagram for explaining a detailed configuration of the signature verification apparatus 120 according to the second embodiment.

本形態のリカバリ署名システムは、第1実施形態のリカバリ署名システム1を構成する署名生成装置10を署名生成装置110に置換し、署名検証装置20を署名検証装置120に置換した構成である。また、署名生成装置10と署名生成装置110との相違点は、ハッシュ演算部10mがハッシュ演算部110m(「第3ハッシュ演算部」)に置換された点である。また、署名検証装置20と署名検証装置120との相違点は、ハッシュ演算部20eがハッシュ演算部120e(「第4ハッシュ演算部」)に置換された点である。   The recovery signature system of the present embodiment has a configuration in which the signature generation apparatus 10 constituting the recovery signature system 1 of the first embodiment is replaced with a signature generation apparatus 110 and the signature verification apparatus 20 is replaced with a signature verification apparatus 120. The difference between the signature generation device 10 and the signature generation device 110 is that the hash calculation unit 10m is replaced with a hash calculation unit 110m ("third hash calculation unit"). The difference between the signature verification device 20 and the signature verification device 120 is that the hash calculation unit 20e is replaced with a hash calculation unit 120e (“fourth hash calculation unit”).

<処理>
次に本形態の処理について説明する。
[前処理及び秘密鍵生成処理]
第1実施形態と同じであるため説明を省略する。
<Processing>
Next, the processing of this embodiment will be described.
[Pre-processing and secret key generation processing]
Since it is the same as 1st Embodiment, description is abbreviate | omitted.

[署名生成処理]
次に、署名生成装置110の署名生成処理を説明する。図12は、第2実施形態の署名生成処理を説明するためのフローチャートである。以下、第1実施形態との相違点を中心に説明する。
[Signature generation processing]
Next, the signature generation process of the signature generation apparatus 110 will be described. FIG. 12 is a flowchart for explaining a signature generation process according to the second embodiment. Hereinafter, the difference from the first embodiment will be mainly described.

まず、入力部10dに、署名対象となるリカバリーメッセージMrecが入力され、これがメモリ10aに格納される(ステップS101)。本形態ではクリアーメッセージMclrは入力されない。その後、第1実施形態と同じ、ステップS2〜S8の処理が実行される。次に、ハッシュ演算部10mが、メモリ10aからビット結合値rと識別子idとを読み込み、それらのビット結合値γ=r|idに対し、ハッシュ関数Hを作用させたハッシュ値u=H(γ)を算出する(ステップS109)。生成されたハッシュ値uはメモリ10aに格納される。その後、第1実施形態と同じ、ステップS10〜S14の処理が実行された後、ビット結合値rと楕円曲線演算値σとが送信部10sに送られ、送信部10sは、署名情報(r,σ)とをネットワーク40経由で署名検証装置120に送信する(ステップS115)。 First, the recovery message M rec to be signed is input to the input unit 10d and stored in the memory 10a (step S101). In this embodiment, the clear message McIr is not input. After that, the same processes of steps S2 to S8 are executed as in the first embodiment. Next, the hash calculator 10m reads the bit combination value r and the identifier id from the memory 10a, and a hash value u = H 3 obtained by applying a hash function H 3 to the bit combination value γ = r | id. (Γ) is calculated (step S109). The generated hash value u is stored in the memory 10a. Thereafter, after the processing of steps S10 to S14, which is the same as in the first embodiment, is performed, the bit combination value r and the elliptic curve calculation value σ are sent to the transmission unit 10s, and the transmission unit 10s receives the signature information (r, σ) is transmitted to the signature verification apparatus 120 via the network 40 (step S115).

[署名検証処理]
次に、署名検証装置120の署名検証処理を説明する。図13は、第2実施形態の署名検証処理を説明するためのフローチャートである。以下、第1実施形態との相違点を中心に説明する。
[Signature verification]
Next, the signature verification process of the signature verification apparatus 120 will be described. FIG. 13 is a flowchart for explaining the signature verification processing of the second embodiment. Hereinafter, the difference from the first embodiment will be mainly described.

まず、署名検証装置20の通信部20dが、署名情報(r’,σ’)を受信する(ステップS121)。本形態ではクリアーメッセージMclrは受信されない。次に、入力部20sに署名生成装置10の識別子idが入力され、メモリ20aに格納される(ステップS22)。なお、識別子idがすでにメモリ20aに格納されているのであれば、ステップS22は省略可能である。次に、ハッシュ演算部20eが、メモリ20aから第1パート情報r’と識別子idとを読み込み、これらのビット列のビット結合からなるビット列γ’=r’|idに対し、ハッシュ関数Hを作用させたハッシュ値u’=H(γ’)を算出する(ステップS123)。算出されたハッシュ値u’はメモリ20aに格納される。その後、第1実施形態のステップS24〜S36の処理によって署名検証とリカバリーメッセージの復元とが行われる。 First, the communication unit 20d of the signature verification apparatus 20 receives the signature information (r ′, σ ′) (step S121). In this embodiment, the clear message M clr is not received. Next, the identifier id of the signature generation device 10 is input to the input unit 20s and stored in the memory 20a (step S22). If the identifier id is already stored in the memory 20a, step S22 can be omitted. Next, the hash calculator 20e reads the first part information r ′ and the identifier id from the memory 20a, and applies the hash function H 3 to the bit string γ ′ = r ′ | id consisting of the bit combination of these bit strings. The calculated hash value u ′ = H 3 (γ ′) is calculated (step S123). The calculated hash value u ′ is stored in the memory 20a. Thereafter, signature verification and recovery of the recovery message are performed by the processing of steps S24 to S36 of the first embodiment.

〔変形例等〕
なお、本発明は上述の各実施形態に限定されるものではない。例えば、第1実施形態では、復元署名対象情報recと双線形関数値Rと識別子idとの各ビット列のビット結合値rec|R|idをαとし、署名対象情報の復元値rec’と双線形関数値R’と識別子idとの各ビット列のビット結合値rec’|R’|idをα’とした。しかし、復元署名対象情報recと双線形関数値Rとの各ビット列を含むビット結合値をαとし、前記署名対象情報の復元値rec’と前記双線形関数値R’との各ビット列を含むビット結合値をα’とし、ビット結合値αを構成するビット列とビット結合値をα’を構成するビット列とが等しい場合にα=α’となるのであれば、αやα’が識別子idを含まなくてもよく、その他の情報を含んでもよく、各情報がどのような順序で結合されていてもよい。
[Modifications, etc.]
In addition, this invention is not limited to each above-mentioned embodiment. For example, in the first embodiment, the bit combination value rec | R | id of each bit string of the restored signature target information rec, the bilinear function value R, and the identifier id is α, and the restored value rec ′ of the signature target information is bilinear. The bit combination value rec ′ | R ′ | id of each bit string of the function value R ′ and the identifier id is α ′. However, the bit combination value including each bit string of the restoration signature object information rec and the bilinear function value R is α, and the bit including each bit string of the restoration value rec ′ of the signature object information and the bilinear function value R ′ If the combined value is α ′ and the bit string constituting the bit combined value α is equal to the bit string constituting the bit combined value α ′, α and α ′ include the identifier id if α = α ′. The information may not be included, may include other information, and may be combined in any order.

また、同様に第1実施形態では、β=h|R|idとし、β’=h’|R’|idとしたが、ハッシュ値hと双線形関数値Rとの各ビット列を含むビット結合値をβとし、ハッシュ値h’と双線形関数値R’との各ビット列を含むビット結合値をβ’とし、ビット結合値βを構成するビット列とビット結合値β’を構成するビット列とが等しい場合にβ=β’となるのであれば、βやβ’が識別子idを含まなくてもよく、その他の情報を含んでもよく、各情報がどのような順序で結合されていてもよい。   Similarly, in the first embodiment, β = h | R | id and β ′ = h ′ | R ′ | id, but a bit combination including each bit string of the hash value h and the bilinear function value R is used. The value is β, the bit combination value including each bit string of the hash value h ′ and the bilinear function value R ′ is β ′, and the bit string constituting the bit combination value β and the bit string constituting the bit combination value β ′ are If β = β ′ in the case of equality, β and β ′ may not include the identifier id, may include other information, and may be combined in any order.

また、同様に第1実施形態では、γ=r|Mclr|idとし、γ’=r’|Mclr|idとしたが、ビット結合値rのビット列を含むビット列をγとし、署名情報の第1パート情報r’のビット列を含むビット列をγ’とし、ビット結合値γを構成するビット列とビット結合値γ’を構成するビット列とが等しい場合にγ=γ’となるのであれば、γやγ’が識別子idを含まなくてもよく、Mclrを含まなくてもよくてもよく(例えば、第2実施形態)、その他の情報を含んでもよく、各情報がどのような順序で結合されていてもよい。 Similarly, in the first embodiment, γ = r | M clr | id is set and γ ′ = r ′ | M clr | id is set, but a bit sequence including a bit sequence of the bit combination value r is set to γ, and the signature information If the bit string including the bit string of the first part information r ′ is γ ′, and γ = γ ′ when the bit string constituting the bit combination value γ and the bit string constituting the bit combination value γ ′ are equal, then γ And γ ′ may not include the identifier id, may not include M clr (for example, the second embodiment), may include other information, and are combined in any order. May be.

また、署名検証装置20,120の判定部20iが、メモリ20aから第2パート情報σ’や剰余演算結果t’を読み込み、σ’が無限遠点Oであるか否かや、剰余演算結果t’が0であるか否かを判定し、σ’=Oであったり、t’=0であったりした場合に署名情報を拒絶する構成であってもよい。特に、t’=0であった場合に署名情報を拒絶する構成とした場合、ランダムオラクルモデルを前提としない実環境での安全性が向上する。すなわち、攻撃者が0=u mod p、u=H(r|Mclr|id)を満たす整数rを発見できたとする。ここで、署名検証装置20,120がt’=0となることを許した場合には、攻撃者は、公開情報であるPのみを用い、何れかの署名生成装置に成りすまして楕円曲線演算値σ=y・P−t・Sid=y・Pを生成し、署名検証に合格する署名情報(r,σ)を生成できてしまう。署名検証装置20,120がt’=0となる署名情報を排除することで、このような攻撃を防止できる。 Further, the determination unit 20i of the signature verification device 20, 120 reads the second part information σ ′ and the remainder calculation result t ′ from the memory 20a, and whether or not σ ′ is the infinity point O and the remainder calculation result t. It may be configured to determine whether or not “0” and reject signature information when σ ′ = O or t ′ = 0. In particular, when the configuration is such that signature information is rejected when t ′ = 0, safety in an actual environment that does not assume a random oracle model is improved. That is, it is assumed that the attacker has found an integer r satisfying 0 = u mod p, u = H 3 (r | M clr | id). Here, when the signature verification devices 20 and 120 permit t ′ = 0, the attacker uses only public information P 1 and impersonates any signature generation device as an elliptic curve calculation. The value σ = y · P 1 −t · S id = y · P 1 is generated, and signature information (r, σ) that passes the signature verification can be generated. Such an attack can be prevented by eliminating the signature information in which the signature verification devices 20 and 120 have t ′ = 0.

また、第1,2実施形態では、(Z/pZ)\{0}の範囲から乱数yを選択することとした。しかし、0を含むZ/pZから乱数yを選び、署名検証時にステップS27の判定を行わない構成でもよい。さらには、演算効率は落ちるが、一般的な整数から乱数yを選ぶ構成であってもよい。また、ステップS11やステップS13の判定を行わない構成であってもよい。   In the first and second embodiments, the random number y is selected from the range of (Z / pZ) \ {0}. However, the configuration may be such that the random number y is selected from Z / pZ including 0 and the determination of step S27 is not performed at the time of signature verification. Furthermore, although the calculation efficiency is lowered, a configuration in which the random number y is selected from general integers may be used. Moreover, the structure which does not perform determination of step S11 or step S13 may be sufficient.

また、第1,2実施形態では、rec=encode(Mrec)としたが、rec=Mrecとし、ステップS2,S33,S34を実行しない構成であってもよい。また、第1,2実施形態では、剰余演算t=u mod pやt’=u’ mod pによってtやt’を算出することとしたが、t=u及びt’=u’とし、ステップS10,S24を実行しない構成であってもよい。 In the first and second embodiments, rec = encode (M rec ) is set, but rec = M rec may be set, and steps S2, S33, and S34 may not be executed. In the first and second embodiments, t and t ′ are calculated by the remainder calculation t = u mod p and t ′ = u ′ mod p, but t = u and t ′ = u ′ The structure which does not perform S10 and S24 may be sufficient.

また、ステップS4,S12においてPの代わりに<P>に属するその他の元(例えば、Pid)を用いてもよい。 Further, the step S4, instead of P 1 in S12 belonging to <P 1> other source (e.g., P id) may be used.

また、本形態ではリカバリーメッセージのビット長がどのような値であっても署名を生成できるため、リカバリーメッセージをヌル値とすることもできる。この場合には、クリアーメッセージのみが署名対象となる。このように、本形態の構成では、署名対象の自由度が向上する。   In this embodiment, since the signature can be generated regardless of the bit length of the recovery message, the recovery message can be a null value. In this case, only the clear message is to be signed. As described above, in the configuration of the present embodiment, the degree of freedom of the signature target is improved.

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

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

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

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

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

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

本発明は、電子署名を用いる様々な用途に適用可能である。   The present invention is applicable to various uses using an electronic signature.

図1は、第1実施形態のリカバリ署名システムを説明するためのシステム構成図である。FIG. 1 is a system configuration diagram for explaining a recovery signature system according to the first embodiment. 図2は、第1実施形態の署名生成装置の詳細構成を説明するためのブロック図である。FIG. 2 is a block diagram for explaining a detailed configuration of the signature generation apparatus according to the first embodiment. 図3は、第1実施形態におけるハッシュ演算部10iの詳細構成の一例を説明するためのブロック図である。FIG. 3 is a block diagram for explaining an example of a detailed configuration of the hash calculation unit 10i in the first embodiment. 図4は、第1実施形態の署名検証装置の詳細構成を説明するためのブロック図である。FIG. 4 is a block diagram for explaining a detailed configuration of the signature verification apparatus according to the first embodiment. 図5は、第1実施形態の管理装置の詳細構成を説明するためのブロック図である。FIG. 5 is a block diagram for explaining a detailed configuration of the management apparatus according to the first embodiment. 図6は、第1実施形態の署名生成処理を説明するためのフローチャートである。FIG. 6 is a flowchart for explaining the signature generation processing according to the first embodiment. 図7は、ステップS6の詳細処理を例示するためのフローチャートである。FIG. 7 is a flowchart for illustrating the detailed processing of step S6. 図8は、第1実施形態の署名検証処理を説明するためのフローチャートである。FIG. 8 is a flowchart for explaining the signature verification processing according to the first embodiment. 図9は、第1ビット位置及び第2ビット位置の設定例を説明する図である。FIG. 9 is a diagram illustrating a setting example of the first bit position and the second bit position. 図10は、第2実施形態の署名生成装置の詳細構成を説明するためのブロック図である。FIG. 10 is a block diagram for explaining a detailed configuration of the signature generation apparatus according to the second embodiment. 図11は、第2実施形態の署名検証装置の詳細構成を説明するためのブロック図である。FIG. 11 is a block diagram for explaining a detailed configuration of the signature verification apparatus according to the second embodiment. 図12は、第2実施形態の署名生成処理を説明するためのフローチャートである。FIG. 12 is a flowchart for explaining a signature generation process according to the second embodiment. 図13は、第2実施形態の署名検証処理を説明するためのフローチャートである。FIG. 13 is a flowchart for explaining the signature verification processing of the second embodiment.

符号の説明Explanation of symbols

1 リカバリ署名システム
10,110 署名生成装置
20,120 署名検証装置
30 管理装置
1 recovery signature system 10, 110 signature generation device 20, 120 signature verification device 30 management device

Claims (9)

署名生成装置と署名検証装置とを有するリカバリ署名システムであって、
前記署名生成装置は、
有限体上の楕円曲線をEとし、楕円曲線E上の有理点からなる有限集合の要素数#Eを割り切る素数をpとし、楕円曲線E上のp等分点からなる有限集合をE[p]とし、上記有限体を基礎体とする拡大体からなる有限集合μとし、有限集合E[p]の2つの元を有限集合μの1つの元に写す非退化双線形ペアリング関数をe:E[p]×E[p]→μとし、e(P,P)≠1を満たす有限集合E[p]の元をP,P∈E[p]とし、前記署名生成装置の識別子をidとし、識別子idに対応する有限集合E[p]の元をPidとし、整数であるマスター秘密鍵をmsとし、Pidの楕円曲線E上でのms倍点ms・Pidを前記署名生成装置の秘密鍵Sidとした場合における、当該秘密鍵Sidを格納する第1記憶部と、
秘匿される署名対象のビット列である復元署名対象情報recを格納する第2記憶部と、
任意の整数yを選択する任意数選択部と、
双線形関数値R=e(P,P∈μを算出する第1双線形関数演算部と、
前記復元署名対象情報recのビット列と前記双線形関数値Rのビット列とを含むビット結合値αに対し、第1ハッシュ関数Hを作用させたハッシュ値h=H(α)を算出する第1ハッシュ演算部と、
前記ハッシュ値hのビット列と前記双線形関数値Rのビット列とを含むビット結合値βに対し、任意のビット長のビット列を前記復元署名対象情報recとビット長が等しいビット列に変換する第2ハッシュ関数Hを作用させたハッシュ値v=H(β)を算出する第2ハッシュ演算部と、
前記ハッシュ値vと前記復元署名対象情報recとの排他的論理和値xを算出する第1排他的論理和演算部と、
前記ハッシュ値hのビット列を第1ビット位置に配置し、前記排他的論理和値xのビット列を第2ビット位置に配置したビット結合値rを算出するビット結合部と、
前記ビット結合値rのビット列を含むビット列γに対し、第3ハッシュ関数Hを作用させたハッシュ値u=H(γ)を算出する第3ハッシュ演算部と、
予め定められた規則に従って前記ハッシュ値uに対して定まる整数をtとした場合における、前記元Pの楕円曲線E上でのy倍点y・Pと、Sidの楕円曲線E上でのt倍点t・Sidの楕円逆元−t・Sidとを楕円加算した楕円曲線演算値σ=y・P−t・Sidを算出する楕円曲線演算部と、
前記ビット結合値rと前記楕円曲線演算値σとからなる署名情報(r,σ)を送信する送信部と、を有し、
前記署名検証装置は、
前記元Pと、前記元Pの楕円曲線E上でのms倍点ms・Pであるマスター公開鍵mpと、を格納する第3記憶部と、
ビット列である第1パート情報r’と、有限集合E[p]の元である第2パート情報σ’とからなる、署名情報(r’,σ’)を受信する受信部と、
前記第1パート情報r’と前記第2パート情報σ’を格納する第4記憶部と、
前記署名生成装置の識別子idに対応する有限集合E[p]の元Pidを格納する第5記憶部と、
前記第1パート情報r’のビット列を含むビット列γ’に対し、第3ハッシュ関数Hを作用させたハッシュ値u’=H(γ’)を算出する第4ハッシュ演算部と、
前記予め定められた規則に従って前記ハッシュ値u’に対して定まる整数をt’とした場合における、双線形関数値R’=e(σ’,P)・e(Pid,mp)t’∈μを算出する第2双線形関数演算部と、
前記第1パート情報r’の前記第1ビット位置のビット列h’と、前記第1パート情報r’の前記第2ビット位置のビット列x’とを抽出するビット分割部と、
前記ハッシュ値h’のビット列と前記双線形関数値R’のビット列とを含むビット結合値β’に対し、前記第2ハッシュ関数Hを作用させたハッシュ値v’=H(β’)を算出する第5ハッシュ演算部と、
前記ハッシュ値v’と前記ビット列x’との排他的倫理和値を、署名対象情報の復元値rec’として算出する第2排他的論理和演算部と、
前記署名対象情報の復元値rec’のビット列と前記双線形関数値R’のビット列とを含むビット結合値α’に対し、前記第1ハッシュ関数Hを作用させたハッシュ値h’’=H(α’)を算出する第6ハッシュ演算部と、
前記ビット列h’と前記ハッシュ値h’’とが等しいか否かを判定する比較部と、を有する、
ことを特徴とするリカバリ署名システム。
A recovery signature system having a signature generation device and a signature verification device,
The signature generation device includes:
Let E be an elliptic curve on a finite field, p be a prime number that divides element number #E of a finite set of rational points on elliptic curve E, and E [p and, a finite set mu p consisting enlarged body based body said finite field, a non-degenerate bilinear pairing function copy two original finite set E [p] to one original finite set mu p e: and E [p] × E [p ] → μ p, the original e (P 1, P 2) meet the ≠ 1 finite set E [p] and P 1, P 2 ∈E [p ], the The identifier of the signature generating device is set to id, the element of the finite set E [p] corresponding to the identifier id is set to P id , the master secret key that is an integer is set to ms, and ms multiple points ms on the elliptic curve E of P id - in the case of the P id was secret key S id of the signature generating apparatus, the first SL for storing the secret key S id And parts,
A second storage unit for storing restored signature target information rec, which is a bit string of a signature target to be concealed;
An arbitrary number selector for selecting an arbitrary integer y;
A first bilinear function computing unit for calculating a bilinear function value R = e (P 1 , P 2 ) y ∈μ p ;
A hash value h = H 1 (α) obtained by applying the first hash function H 1 to the bit combination value α including the bit string of the restored signature object information rec and the bit string of the bilinear function value R is calculated. 1 hash operation part,
A second hash for converting a bit string having an arbitrary bit length into a bit string having the same bit length as the restored signature object information rec for the bit combination value β including the bit string of the hash value h and the bit string of the bilinear function value R A second hash calculator that calculates a hash value v = H 2 (β) obtained by applying the function H 2 ;
A first exclusive OR operation unit for calculating an exclusive OR value x of the hash value v and the restored signature target information rec;
A bit combination unit that calculates a bit combination value r in which the bit string of the hash value h is arranged in a first bit position and the bit string of the exclusive OR value x is arranged in a second bit position;
A third hash calculator that calculates a hash value u = H 3 (γ) obtained by applying a third hash function H 3 to the bit string γ including the bit string of the bit combination value r;
In the case where an integer determined to the hash value u according to a predetermined rule set to t, the the y magnification point y · P 1 on the original P 1 of the elliptic curve E, on an elliptic curve E S id An elliptic curve calculation unit for calculating an elliptic curve calculation value σ = y · P 1 −t · S id obtained by elliptically adding the elliptic inverse element −t · S id of the t-fold point t · S id of
A transmission unit for transmitting signature information (r, σ) composed of the bit combination value r and the elliptic curve calculation value σ,
The signature verification device includes:
And the source P 2, and a third storage unit for storing a master public key mp, a is the a ms multiplied point ms · P 2 on the original P 2 elliptic curve E,
A receiving unit for receiving signature information (r ′, σ ′) including first part information r ′ that is a bit string and second part information σ ′ that is an element of a finite set E [p];
A fourth storage unit for storing the first part information r ′ and the second part information σ ′;
A fifth storage unit for storing an original P id of a finite set E [p] corresponding to the identifier id of the signature generation device;
A fourth hash calculator that calculates a hash value u ′ = H 3 (γ ′) obtained by applying a third hash function H 3 to the bit string γ ′ including the bit string of the first part information r ′;
Bilinear function value R ′ = e (σ ′, P 2 ) · e (P id , mp) t ′ where t ′ is an integer determined for the hash value u ′ according to the predetermined rule. a second bi-linear function calculator for calculating a ∈μ p,
A bit dividing unit that extracts the bit string h ′ of the first bit position of the first part information r ′ and the bit string x ′ of the second bit position of the first part information r ′;
A hash value v ′ = H 2 (β ′) obtained by applying the second hash function H 2 to a bit combination value β ′ including the bit string of the hash value h ′ and the bit string of the bilinear function value R ′. A fifth hash calculation unit for calculating
A second exclusive OR operation unit that calculates an exclusive ethical sum value of the hash value v ′ and the bit string x ′ as a restoration value rec ′ of the signature target information;
A hash value h ″ = H obtained by applying the first hash function H 1 to the bit combination value α ′ including the bit string of the restoration value rec ′ of the signature target information and the bit string of the bilinear function value R ′. A sixth hash calculator that calculates 1 (α ′);
A comparison unit that determines whether or not the bit string h ′ and the hash value h ″ are equal to each other.
A recovery signature system characterized by that.
請求項1のリカバリ署名システムであって、
前記署名生成装置は、秘匿されない署名対象のビット列であるクリアーメッセージMclrを格納する第6記憶部を有し、
前記署名生成装置の前記第3ハッシュ演算部は、前記ビット結合値rのビット列と前記クリアーメッセージMclrのビット列とを含むビット結合値であるビット列γに対し、第3ハッシュ関数Hを作用させたハッシュ値u=H(γ)を算出するように構成され、
前記署名生成装置の前記送信部は、前記署名情報(r,σ)と前記クリアーメッセージMclrとを送信するように構成され、
前記署名検証装置の前記受信部は、前記署名情報(r’,σ’)と前記クリアーメッセージMclrとを受信するように構成され、
前記署名検証装置は、前記クリアーメッセージMclrを格納する第7記憶部を有し、
前記署名検証装置の前記第4ハッシュ演算部は、前記第1パート情報r’のビット列と前記クリアーメッセージMclrのビット列とを含むビット結合値であるビット列γ’に対し、第3ハッシュ関数Hを作用させたハッシュ値u’=H(γ’)を算出するように構成される、
ことを特徴とするリカバリ署名システム。
The recovery signature system of claim 1,
The signature generation apparatus includes a sixth storage unit that stores a clear message M clr that is a bit string to be signed that is not concealed;
The third hash calculation unit of the signature generation device operates a third hash function H 3 on a bit string γ that is a bit combination value including the bit string of the bit combination value r and the bit string of the clear message M clr. Configured to calculate a hash value u = H 3 (γ),
The transmission unit of the signature generation device is configured to transmit the signature information (r, σ) and the clear message M clr ,
The receiving unit of the signature verification device is configured to receive the signature information (r ′, σ ′) and the clear message M clr ;
The signature verification apparatus includes a seventh storage unit that stores the clear message M clr .
The fourth hash calculation unit of the signature verification apparatus performs a third hash function H 3 on a bit string γ ′ that is a bit combination value including the bit string of the first part information r ′ and the bit string of the clear message Mclr. Configured to calculate a hash value u ′ = H 3 (γ ′) obtained by applying
A recovery signature system characterized by that.
請求項1又は2のリカバリ署名システムであって、
前記署名生成装置は、
前記ハッシュ値uに対して定まる整数tが0であるか否かを判定する第1判定部と、
前記ハッシュ値uに対して定まる整数tが0である場合に、前記任意数選択部に新たな任意の整数yを選択させ、その新たな任意の整数yに基づき、前記第1双線形関数演算部の処理と、前記第1ハッシュ演算部の処理と、前記第2ハッシュ演算部の処理と、前記第1排他的論理和演算部の処理と、前記ビット結合部の処理と、前記第3ハッシュ演算部の処理とをやり直させる制御部と、を有し、
前記署名検証装置は、
前記ハッシュ値u’に対して定まる整数t’が0であるか否かを判定し、整数t’が0である場合に、前記署名情報(r’,σ’)が正当でないと判定する第2判定部を有する、
ことを特徴とするリカバリ署名システム。
The recovery signature system according to claim 1 or 2,
The signature generation device includes:
A first determination unit that determines whether or not an integer t determined for the hash value u is 0;
When the integer t determined for the hash value u is 0, the arbitrary number selection unit selects a new arbitrary integer y, and the first bilinear function calculation is performed based on the new arbitrary integer y. Processing, first hash operation unit processing, second hash operation unit processing, first exclusive OR operation unit processing, bit combination unit processing, and third hash A control unit for performing processing of the calculation unit again,
The signature verification device includes:
It is determined whether or not an integer t ′ determined for the hash value u ′ is 0. If the integer t ′ is 0, it is determined that the signature information (r ′, σ ′) is not valid. Having two determination units,
A recovery signature system characterized by that.
請求項1から3の何れかのリカバリ署名システムを構成する署名生成装置。   A signature generation device constituting the recovery signature system according to claim 1. 請求項1から3の何れかのリカバリ署名システムを構成する署名検証装置。   The signature verification apparatus which comprises the recovery signature system in any one of Claim 1 to 3. 請求項4の署名生成装置が実行する署名生成方法。   A signature generation method executed by the signature generation apparatus according to claim 4. 請求項5の署名検証装置が実行する署名検証方法。   A signature verification method executed by the signature verification apparatus according to claim 5. 請求項4の署名生成装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the signature generation apparatus according to claim 4. 請求項5の署名検証装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the signature verification apparatus according to claim 5.
JP2008161298A 2008-06-20 2008-06-20 Recovery signature system, signature generation device, signature verification device, method and program thereof Active JP4861369B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008161298A JP4861369B2 (en) 2008-06-20 2008-06-20 Recovery signature system, signature generation device, signature verification device, method and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008161298A JP4861369B2 (en) 2008-06-20 2008-06-20 Recovery signature system, signature generation device, signature verification device, method and program thereof

Publications (2)

Publication Number Publication Date
JP2010002662A true JP2010002662A (en) 2010-01-07
JP4861369B2 JP4861369B2 (en) 2012-01-25

Family

ID=41584445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008161298A Active JP4861369B2 (en) 2008-06-20 2008-06-20 Recovery signature system, signature generation device, signature verification device, method and program thereof

Country Status (1)

Country Link
JP (1) JP4861369B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257456A (en) * 2012-06-13 2013-12-26 Nippon Telegr & Teleph Corp <Ntt> Certification device, verification device and program
JP5849962B2 (en) * 2010-10-29 2016-02-03 日本電気株式会社 Signature processing device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5849962B2 (en) * 2010-10-29 2016-02-03 日本電気株式会社 Signature processing device
JP2013257456A (en) * 2012-06-13 2013-12-26 Nippon Telegr & Teleph Corp <Ntt> Certification device, verification device and program

Also Published As

Publication number Publication date
JP4861369B2 (en) 2012-01-25

Similar Documents

Publication Publication Date Title
JP4575283B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD
Azarderakhsh et al. Key compression for isogeny-based cryptosystems
US10003460B2 (en) Secret quotient transfer device, secret bit decomposition device, secret modulus conversion device, secret quotient transfer method, secret bit decomposition method, secret modulus conversion method, and programs therefor
JP4282546B2 (en) ENCRYPTION DEVICE, DECRYPTION DEVICE, KEY GENERATION DEVICE, PROGRAM, AND METHOD
JP2006194990A (en) Encryption device, decryption device, key generating device, program, and method
TW202029693A (en) Computer implemented system and method for distributing shares of digitally signed data
KR20110136787A (en) Encoding of points of an elliptic curve
JP2007036364A (en) Time device, encrypting device, decrypting device, and encrypting/decrypting system
JP7238977B2 (en) Anonymous Signature System and Anonymous Signature Method
JP2013243441A (en) Secret dispersion system, data dispersion device, data restoration device, secret dispersion method, and program
Patil et al. Pixel co-ordinate-based secret image sharing scheme with constant size shadow images
JP4690819B2 (en) Scalar multiplication calculation method and scalar multiplication calculation apparatus in elliptic curve cryptography
JP4861369B2 (en) Recovery signature system, signature generation device, signature verification device, method and program thereof
JP5469618B2 (en) Encryption system, decryption method, key update method, key generation device, reception device, proxy calculation device, program
WO2014112523A1 (en) Decryption-service provision device, processing device, safety evaluation device, program, and recording medium
JP2010160235A (en) Retrieval system, terminal device, database device, retrieval method, and program
JP2007187908A (en) Modular exponentiation calculation device and method having tolerance to side-channel attack
JP5679344B2 (en) Signature key obfuscation system, signature key obfuscation method, encryption signature system using obfuscated signature key, encryption signature method and program using obfuscated signature key
JP5300373B2 (en) Apparatus and program for performing data compression processing using algebraic torus
JP4685621B2 (en) Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program
WO2021095103A1 (en) Electronic watermarking system, electronic watermarking method and program
JP5097137B2 (en) Cryptographic communication system, terminal device, secret key generation method and program
Omote et al. D2-POR: direct repair and dynamic operations in network coding-based proof of retrievability
JP2007208410A (en) Id base encryption communication system
JP5355263B2 (en) Key sharing apparatus, key sharing method and program

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111007

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111025

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111104

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4861369

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141111

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350