JP2008136193A - Signature producing device, signature verification device, and their method and program - Google Patents
Signature producing device, signature verification device, and their method and program Download PDFInfo
- Publication number
- JP2008136193A JP2008136193A JP2007280287A JP2007280287A JP2008136193A JP 2008136193 A JP2008136193 A JP 2008136193A JP 2007280287 A JP2007280287 A JP 2007280287A JP 2007280287 A JP2007280287 A JP 2007280287A JP 2008136193 A JP2008136193 A JP 2008136193A
- Authority
- JP
- Japan
- Prior art keywords
- value
- hash
- signature
- bit
- unit
- 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
Links
Images
Abstract
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
この方式では、
メッセージm∈{0,1}k1
関数F1:{0,1}k2→{0,1}k1
関数F2:{0,1}k1→{0,1}k2
関数H:{0,1}k1+k2→{0,1}k
E:有限体Fq上で定義された楕円曲線
p:楕円曲線E上の点Rに対して楕円スカラー倍値p・R=O(Oは無限遠点)を満たす素数
G1:楕円曲線E上の位数pの部分集合の点
w∈Z/pZ
秘密鍵:x∈Z/pZ
公開鍵:(Fq,E,G1,Y)(Y=−x・G1(∈E))
とする。なお、{0,1}δは、2進δ桁のビットデータを示し、{0,1}δ→{0,1}εは、2進δ桁のビットデータから2進ε桁のビットデータへの写像である関数を示す。
In this method,
Message mε {0,1} k1
Function F 1 : {0, 1} k 2 → {0, 1} k 1
Function F 2 : {0,1} k1 → {0,1} k2
Function H: {0,1} k1 + k2 → {0,1} k
E: finite F q on the elliptic curve defined by p: prime number satisfying the elliptic scalar Baichi for points R on the elliptic curve E p · R = O (O is a point at infinity) G1: on the elliptic curve E Points of a subset of the order p 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.
<署名生成>
署名生成は以下のように行う。ただし、Rxは点R∈Eのx座標を示し、(+)は排他的論理和演算子を示す。
m’=F1(m)|(F2(F1(m))(+)m) …(1)
R=(w・G1)x
r=R(+)m’ …(2)
c=H(r)
z=w+c・x mod p
署名σ=(r,z)
<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 1 (m) | (F 2 (F 1 (m)) (+) m) (1)
R = (w ・ G1) x
r = R (+) m '… (2)
c = H (r)
z = w + c ・ x mod p
Signature σ = (r, z)
<署名検証>
署名検証は以下のように行う。ただし、[m’]k1はm’の先頭k1ビットを示し、[m’]k2はm’の残りのk2ビットを示す。
m’=r(+)(z・G1+H(r)・Y)x
m=[m’]k2(+)F2([m’]k1)
[m’]k1=F1(m)であれば検証合格
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 + H (r) ・ Y) x
m = [m '] k2 (+) F 2 ([m'] k1 )
[m '] Validation passed if k1 = F 1 (m)
しかし、非特許文献1の方式では、式(1)の(F2(F1(m))や式(2)のRのビット長が固定長であり、メッセージmのビット長も固定長としなければならない。
However, in the method of
このため、メッセージmの長さが固定長より短い場合であっても、それに併せて署名σの一部分rのビット長を短くすることができず、非効率である。また、メッセージmのビット長が固定長よりも長い場合には、式(1)にメッセージmの一部分しか代入することができず、メッセージmの全てのビットを対象としたメッセージ復元署名を構成できない。 For this reason, even if the length of the message m is shorter than the fixed length, the bit length of the part r of the signature σ cannot be shortened accordingly, which is inefficient. Further, when 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 an object of the present invention is to provide a message restoration signature technique that can flexibly handle messages of various bit lengths.
本発明では上記課題を解決するために、署名生成装置が以下のように署名生成を行う。
まず、署名生成装置の記憶部に整数の秘密鍵xが格納され、さらに、Mビットのリカバリメッセージmrec∈{0,1}Mが格納される。ここで、リカバリメッセージmrecが、署名対象の少なくとも一部となる。そして、署名生成装置の任意値生成部が、整数の任意値kを生成し、群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=gk∈Gを算出し、当該演算結果Rを出力する。なお、「gk∈G」とは、巡回群Gをなす演算をgについてk回実行することを意味する(詳細は後述)。次に、署名生成装置の第1ハッシュ演算部が、リカバリメッセージmrecのビット長Mに応じて出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)に定まるハッシュ関数H0:{0,1}*→{0,1}L+Mを、演算結果Rに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H0(R)∈{0,1}L+Mを出力する。なお、「関数εをδに作用させる」とは、「δ又はδを特定するための値を関数εに代入する」ことを意味する。次に、署名生成装置の第2ハッシュ演算部が、入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、ハッシュ値Πとリカバリメッセージmrecとに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H1(α)∈{0,1}Lを出力する。また、署名生成装置の第3ハッシュ演算部が、リカバリメッセージmrecのビット長Mに応じて出力ビット長がMビットに定まるハッシュ関数H2:{0,1}*→{0,1}Mを、ハッシュ値Πとハッシュ値hとに依存して定まる値βに作用させ、その演算結果であるMビットのハッシュ値u=H2(β)∈{0,1}Mを出力する。さらに、署名生成装置の第1排他的論理和演算部が、リカバリメッセージmrecとハッシュ値uとの排他的論理和w=mrec(+)u∈{0,1}M((+)は排他的論理和演算子)を算出し、当該排他的論理和値wを出力する。またビット結合部が、ハッシュ値h∈{0,1}Lを第1ビット位置に配置し、排他的論理和値w∈{0,1}Mを第2ビット位置に配置したL+Mビットのビット結合値d=h|w∈{0,1}L+Mを算出し、当該ビット結合値dを出力する。なお、第1ビット位置は必ずしも連続したLビットの位置である必要はなく、離散的に配置された合計Lビットの位置でもよい。同様に、第2ビット位置も必ずしも連続したMビットの位置である必要はなく、離散的に配置された合計Mビットの位置でもよい。ただし、「第1ビット位置」及び「第2ビット位置」がどのビット位置であるかについては、署名生成装置と署名検証装置とで統一しておく。次に、署名生成装置の第2排他的論理和演算部が、ハッシュ値Πとビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力する。また署名生成装置の第4ハッシュ演算部が、入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Zを、排他的論理和値rに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H3(γ)∈Zを出力する。そして、整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力し、署名出力部が署名σ=(r,s)を出力する。
In the present invention, in order to solve the above-described problem, the signature generation apparatus generates a signature as follows.
First, an integer secret key x is stored in the storage unit of the signature generation apparatus, and an M-bit recovery message m rec ε {0, 1} M is stored. Here, the recovery message m rec becomes at least a part of the signature target. Then, the arbitrary value generation unit of the signature generation device generates an integer arbitrary value k, and the group calculation unit determines that the cyclic group of order q is G, and the generation source of the cyclic group G is g. = G k εG is calculated, and the calculation result R is output. Note that “g k εG” means that an operation forming the cyclic group G is executed k times for g (details will be described later). Next, the first hash calculator of the signature generation device determines the output bit length to be L + M bits (L is a positive integer shared with the signature verification device) according to the bit length M of the recovery message m rec. 0 : {0, 1} * → {0, 1} L + M is applied to the operation result R, and the L + M-bit hash value Π = H 0 (R) ∈ {0, 1} L + M , which is the operation result, is output. To do. Note that “acting a function ε on δ” means “substituting a value for specifying δ or δ into the function ε”. Next, the second hash calculation unit of the signature generation device outputs a hash function H 1 : {0,1} * → {0,1} L that outputs an L-bit hash value with respect to the input value as a hash value Π And a value α determined depending on the recovery message m rec, and an L-bit hash value h = H 1 (α) ε {0, 1} L as an operation result is output. In addition, the third hash calculation unit of the signature generation device uses a hash function H 2 in which the output bit length is determined to be M bits according to the bit length M of the recovery message m rec : {0, 1} * → {0, 1} M Is applied to a value β determined depending on the hash value Π and the hash value h, and an M-bit hash value u = H 2 (β) ∈ {0, 1} M , which is the calculation result, is output. Further, the first exclusive OR operation unit of the signature generation apparatus obtains the exclusive OR of the recovery message m rec and the hash value u = m rec (+) uε {0,1} M ((+) (Exclusive OR operator) is calculated and the exclusive OR value w is output. In addition, the bit combination unit arranges the hash value hε {0,1} L at the first bit position, and the L + M bit with the exclusive OR value wε {0,1} M arranged at the second bit position. The combined value d = h | wε {0, 1} L + M is calculated, and the bit combined value d is output. The first bit position is not necessarily a continuous L bit position, and may be a total L bit position that is discretely arranged. Similarly, the second bit position is not necessarily a continuous M-bit position, and may be a total M-bit position that is discretely arranged. However, the bit positions of the “first bit position” and the “second bit position” are unified between the signature generation apparatus and the signature verification apparatus. Next, the second exclusive OR operation unit of the signature generation device calculates the exclusive OR r = Π (+) dε {0, 1} L + M of the hash value Π and the bit combination value d, The exclusive OR value r is output. Further, the fourth hash calculation unit of the signature generation apparatus sets the hash function H 3 : {0, 1} * → Z that outputs an integer to the input value to a value γ determined depending on the exclusive OR value r. The hash value t = H 3 (γ) εZ, which is the calculation result, is output. Then, the integer operation unit calculates s = kt · xεZ, outputs the operation result s, and the signature output unit outputs the signature σ = (r, s).
本発明の署名検証装置は、このように生成された署名を、以下のように検証する。なお、署名検証装置が受け取る署名をσ’=(r’,s’)と表現する。 The signature verification apparatus of the present invention verifies the signature generated in this way as follows. The signature received by the signature verification apparatus is expressed as σ ′ = (r ′, s ′).
まず、署名検証装置の記憶部に署名生成装置の公開鍵y=gx∈Gを格納する。そして、署名検証装置の署名入力部に署名σ’=(r’,s’)が入力され、その署名σ’=(r’,s’)は記憶部に格納される。また、署名σ’に対応するリカバリメッセージmrec’のビット長M’を記憶部に格納する。なお、署名検証装置がビット長M’の値を取得する方法については後述する。そして、署名検証装置の第1ハッシュ演算部が、入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Zを、署名σ’が有するr’に依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H3(γ’)∈Zを出力する。さらに、署名検証装置の群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力する。なお、「gs’・yt’∈G」とは、巡回群Gをなす演算をgについてs’回施し、当該演算をyについてt’回施し、それらの各演算結果に対して当該演算を施す演算を意味する(詳細は後述)。次に、署名検証装置の第2ハッシュ演算部が、リカバリメッセージmrec’のビット長M’に応じて出力ビット長がL+M’ビット(Lは正の整数)に定まるハッシュ関数H0:{0,1}*→{0,1}L+M’を、演算結果R’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H0(R’)∈{0,1}L+M’を出力する。さらに、署名検証装置の第1排他的論理和演算部が、ハッシュ値Πと署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力する。また、署名検証装置の第3ハッシュ演算部が、リカバリメッセージmrec’のビット長M’に応じて出力ビット長がM’ビットに定まるハッシュ関数H2:{0,1}*→{0,1}M’を、ハッシュ値Π’と排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}Lとに依存して定まる値β’に作用させ、その演算結果であるM’ビットのハッシュ値u’=H2(β’)∈{0,1}M’を出力する。また、第2排他的論理和演算部が、排他的論理和値d’の第2ビット位置のM’ビットの値w’∈{0,1}M’とハッシュ値u’との排他的論理和w’(+)u’を算出し、その演算結果をリカバリメッセージmrec’∈{0,1}M’として出力する。さらに、第4ハッシュ演算部が、入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、ハッシュ値Π’と第2排他的論理和演算部で算出されたリカバリメッセージmrec’とに依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H1(α’)∈{0,1}Lを出力する。そして、比較部が、Lビットの値h’とハッシュ値H1(α’)とを比較し、h’=H1(α’)であることを条件に、検証が成功である旨の情報を出力する。 First, the public key y = g x εG of the signature generation device is stored in the storage unit of the signature verification device. The signature σ ′ = (r ′, s ′) is input to the signature input unit of the signature verification apparatus, and the signature σ ′ = (r ′, s ′) is stored in the storage unit. Further, the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′ is stored in the storage unit. Note that a method by which the signature verification apparatus acquires the value of the bit length M ′ will be described later. Then, the first hash calculator of the signature verification apparatus determines the hash function H 3 : {0, 1} * → Z that outputs an integer with respect to the input value depending on r ′ of the signature σ ′. The hash value t ′ = H 3 (γ ′) εZ, which is the calculation result, is output on γ ′. Further, the group calculation unit of the signature verification apparatus calculates R ′ = g s ′ · y t ′ ∈G and outputs the calculation result R ′. Note that “g s ′ · y t ′ ∈ G” means that the operation forming the cyclic group G is performed s ′ times for g, the operation is performed t ′ times for y, and the operation is performed on the respective operation results. (Details will be described later). Next, the second hash calculator of the signature verification apparatus uses a hash function H 0 : {0 where the output bit length is determined to be L + M ′ bits (L is a positive integer) according to the bit length M ′ of the recovery message m rec ′. , 1} * → {0,1} L ' the calculation result R' + M to act on, 'bit hash value [pi' L + M which is the operation result = H 0 (R ') ∈ {0,1} L + M' Is output. Further, the first exclusive OR operation unit of the signature verification apparatus performs exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M between the hash value Π and r ′ included in the signature σ ′. ' Is calculated and the exclusive OR value d' is output. Further, the third hash calculation unit of the signature verification apparatus has a hash function H 2 in which the output bit length is determined as M ′ bits according to the bit length M ′ of the recovery message m rec ′: {0, 1} * → {0, 1} Let M ′ act on the value β ′ determined depending on the hash value Π ′ and the L-bit value h′∈ {0, 1} L at the first bit position of the exclusive OR value d ′, An M′-bit hash value u ′ = H 2 (β ′) ε {0, 1} M ′ , which is the calculation result, is output. Further, the second exclusive OR operation unit performs exclusive logic between the value w′∈ {0, 1} M ′ of the M ′ bit at the second bit position of the exclusive OR value d ′ and the hash value u ′. The sum w ′ (+) u ′ is calculated, and the calculation result is output as a recovery message m rec 'ε {0, 1} M ′ . Further, the fourth hash operation unit outputs a hash function H 1 : {0, 1} * → {0, 1} L that outputs an L-bit hash value with respect to the input value as a second exclusive value with the hash value Π ′. L value hash value H 1 (α ′) ∈ {0, 1} L as a result of the operation is applied to the value α ′ determined depending on the recovery message m rec ′ calculated by the logical OR operation unit. Is output. Then, the comparison unit compares the L-bit value h ′ with the hash value H 1 (α ′), and information indicating that the verification is successful on the condition that h ′ = H 1 (α ′). Is output.
なお、「Πとmrecとに依存して定まる値α」には、値αがΠとmrecとのみに依存する場合のみならず、値αがΠとmrecと他の情報とに依存する場合も含まれる。また、「Πとhとに依存して定まる値β」には、値βがΠとhとのみに依存する場合のみならず、値βがΠとhと他の情報とに依存する場合も含まれ、「rに依存して定まる値γ」には、値γがrのみに依存する場合のみならず、値γがrと他の情報とに依存する場合も含まれる。同様に、「Π’とmrec’とに依存して定まる値α’」には、値α’がΠ’とmrecとのみに依存する場合のみならず、値α’がΠ’とmrec’と他の情報とに依存する場合も含まれ、「Π’とh’とに依存して定まる値β’」には、値β’がΠ’とh’とのみに依存する場合のみならず、値β’がΠ’とh’と他の情報とに依存する場合も含まれ、「r’に依存して定まる値γ’」には、値γ’がr’のみに依存する場合のみならず、値γ’がr’と他の情報とに依存する場合も含まれる。 Note that “value α determined depending on Π and m rec ” is not limited to the case where the value α depends only on Π and m rec , but the value α depends on Π, m rec and other information. It is also included when doing. The “value β determined depending on Π and h” includes not only the case where the value β depends only on Π and h, but also the case where the value β depends on Π, h and other information. The “value γ determined depending on r” is included not only when the value γ depends only on r but also when the value γ depends on r and other information. Similarly, “value α ′ determined depending on Π ′ and m rec ′” includes not only the case where the value α ′ depends only on Π ′ and m rec , but also the value α ′ becomes Π ′ and m rec. It also includes cases depending on rec ′ and other information, and “value β ′ determined depending on Π ′ and h ′” includes only when value β ′ depends only on Π ′ and h ′. In addition, the case where the value β ′ depends on Π ′, h ′ and other information is included, and the value γ ′ depends only on r ′ in “value γ ′ determined depending on r ′”. This includes not only the case but also the case where the value γ ′ depends on r ′ and other information.
ただし、署名生成装置で用いる値α,β,γのビット構成と、署名検証装置で用いる値α’,β’,γ’のビット構成とが、それぞれ同一である必要がある。例えば、署名生成装置において、Πを上位L+Mビットとし、mrecを下位Mビットとして結合したL+2Mビットの値をαとする場合、署名検証装置においても、Π’を上位L+M’ビットとし、mrec’を下位M’ビットとしたL+2M’ビットの値をα’としなければならない(詳細は後述)。 However, the bit configurations of the values α, β, and γ used in the signature generation device and the bit configurations of the values α ′, β ′, and γ ′ used in the signature verification device need to be the same. For example, in the signature generation apparatus, when the value of L + 2M bits obtained by combining Π as the upper L + M bits and m rec as the lower M bits is α, the signature verification apparatus also sets Π ′ as the upper L + M ′ bits, and m rec The value of the L + 2M ′ bit, where “is the lower M ′ bit, must be α ′ (details will be described later).
ここで本発明では、リカバリメッセージのビット長に従って出力ビット長が変化するハッシュ関数H0,H2を用い、処理方法を工夫することにより、リカバリメッセージのビット長が変化しても、各排他的論理和演算の対象となる2つの被演算子のビット長を常に同一とできる。これにより、リカバリメッセージのビット長が短い場合には、それに併せて各演算過程での演算ビット数や署名σを構成するrのビット数を短くでき、効率的な署名方式が実現できる。同時に、リカバリメッセージのビット長が長くなっても、リカバリメッセージmrecの全てのビットを対象としたメッセージ復元署名が生成できる。 Here, in the present invention, even if the bit length of the recovery message is changed by using the hash functions H 0 and H 2 that change the output bit length according to the bit length of the recovery message and devising the processing method, The bit lengths of two operands to be subjected to the logical sum operation can always be the same. Thereby, when the bit length of the recovery message is short, the number of operation bits in each operation process and the number of bits of r constituting the signature σ can be shortened, and an efficient signature scheme can be realized. At the same time, even if the bit length of the recovery message is increased, a message restoration signature for all bits of the recovery message m rec can be generated.
また、本発明では、署名生成装置で算出されたハッシュ値h,uと署名検証装置で算出されたハッシュ値h’,u’とがそれぞれ整合性を持たないと署名検証が成功とならないため、ハッシュ値hとハッシュ値h’との整合性のみで署名検証を行う場合より高い安全性を保証できる。 In the present invention, since the hash values h and u calculated by the signature generation device and the hash values h ′ and u ′ calculated by the signature verification device are not consistent, signature verification is not successful. Higher security can be ensured than when signature verification is performed only by the consistency between the hash value h and the hash value h ′.
なお、本発明では、従来構成と異なり、メッセージの全てのビットを対象としたメッセージ復元署名を構成することもできる(m=mrecの場合)。しかし、メッセージmの全てのビットをメッセージ復元署名の対象としない構成であってもよい。この場合、メッセージ復元署名の対象とするMビットのリカバリメッセージmrecと、メッセージ復元署名ではない通常の署名の対象とするNビットのクリアメッセージmclrとが署名対象となる。この場合、上述した本発明において、さらに、署名生成装置が、Nビットのクリアメッセージmclr∈{0,1}Nを記憶部に格納し、署名生成装置の第4ハッシュ演算部が、ハッシュ関数H3:{0,1}*→Zを、排他的論理和値rとクリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H3(γ)∈Zを出力し、署名生成装置の署名出力部が、署名σ=(r,s)とクリアメッセージmclrとを出力する。署名検証装置には署名σ’とクリアメッセージmclr’とが入力され、署名検証装置はこれらを格納する。署名検証装置の第1ハッシュ演算部は、ハッシュ関数H3:{0,1}*→Zを、署名σ’が有するr’とクリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H3(γ’)∈Zを出力する。 In the present invention, unlike the conventional configuration, a message restoration signature for all bits of a message can also be configured (when m = m rec ). However, the configuration may be such that not all the bits of the message m are subject to the message restoration signature. In this case, an M-bit recovery message m rec that is a target of a message restoration signature and an N-bit clear message m clr that is a target of a normal signature that is not a message restoration signature are signature targets. In this case, in the above-described present invention, the signature generation device further stores the N-bit clear message m clr ε {0, 1} N in the storage unit, and the fourth hash calculation unit of the signature generation device stores the hash function. H 3 : {0, 1} * → Z is made to act on a value γ determined depending on the exclusive OR value r and the clear message m clr, and a hash value t = H 3 (γ) as a result of the operation ΕZ is output, and the signature output unit of the signature generation apparatus outputs the signature σ = (r, s) and the clear message m clr . A signature σ ′ and a clear message m clr ′ are input to the signature verification device, and the signature verification device stores them. The first hash calculation unit of the signature verification apparatus applies the hash function H 3 : {0, 1} * → Z to a value γ ′ determined depending on r ′ included in the signature σ ′ and the clear message m clr ′. And the hash value t ′ = H 3 (γ ′) εZ, which is the calculation result, is output.
これにより、メッセージの全てのビットをメッセージ復元署名の対象とする必要のない場合にまで、メッセージの全ビットをメッセージ復元署名の対象とし、各演算過程における演算ビット数が長くなってしまうことを回避できる。即ち、様々なビット長のメッセージ及び様々な用途に対し、柔軟に対応可能なメッセージ復元署名が実現できる。 This prevents all bits of the message from being subject to the message restoration signature until it is not necessary to subject all bits of the message to the message restoration signature, thereby avoiding an increase in the number of computation bits in each computation process. it can. That is, it is possible to realize a message restoration signature that can flexibly deal with various bit length messages and various uses.
本発明では、様々なビット長のメッセージに柔軟に対応可能なメッセージ復元署名を実現できる。 In the present invention, a message restoration signature that can flexibly handle messages of various bit lengths can be realized.
以下、本発明を実施するための最良の形態を図面を参照して説明する。 The best mode for carrying out the present invention will be described below with reference to the drawings.
〔第1実施形態〕
まず、本発明の第1実施形態について説明する。
[First Embodiment]
First, a first embodiment of the present invention will be described.
<全体構成>
図1は、第1実施形態の署名システム1の全体構成を示した概念図である。
図1に示すように、本形態の署名システム1は、署名生成を行う署名生成装置10と、署名検証を行う署名検証装置20と、署名生成装置10の効果鍵を公開する公開鍵サーバ装置30とを有し、相互にネットワーク40を通じて通信可能に接続される。なお、署名生成装置10、署名検証装置20及び公開鍵サーバ装置30は、それぞれ、公知のコンピュータに所定のプログラムが読み込まれることにより構成される装置である。
<Overall configuration>
FIG. 1 is a conceptual diagram showing the overall configuration of the
As shown in FIG. 1, the
<署名生成装置10の構成>
次に、署名生成装置10の構成を説明する。
<Configuration of
Next, the configuration of the
[ハードウェア構成]
図2は、第1実施形態における署名生成装置10のハードウェア構成を例示したブロック図である。
図2に例示するように、この例の署名生成装置10は、CPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16、バス17及び通信部18を有している。
[Hardware configuration]
FIG. 2 is a block diagram illustrating a hardware configuration of the
As illustrated in FIG. 2, the
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、この例の入力部12は、データが入力される入力ポート、キーボード、マウス等であり、出力部13は、データを出力する出力ポート、外部記録媒体へのデータ記憶装置、印刷装置、ディスプレイなどである。補助記憶装置14は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、各種プログラムを格納したプログラム領域14a及び各種データが格納されるデータ領域14bを有している。また、RAM16は、例えば、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、上記のプログラムが書き込まれるプログラム領域16a及び各種データが書き込まれるデータ領域16bを有している。また、通信部18は、ネットワークカードなどである。また、この例のバス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15、RAM16及び通信部18を、データのやり取りが可能なように接続する。
The
[ハードウェアとプログラムとの協働]
CPU11(図2)は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置14のプログラム領域14aに格納されているプログラムをRAM16のプログラム領域16aに書き込む。同様にCPU11は、補助記憶装置14のデータ領域14bに格納されている各種データを、RAM16のデータ領域16bに書き込む。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11aは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11bに順次実行させ、その演算結果をレジスタ11cに格納していく。なお、各プログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。
[Cooperation between hardware and programs]
The CPU 11 (FIG. 2) writes the program stored in the
図3は、CPU11にプログラムが読み込まれることにより構成される第1実施形態における署名生成装置10の機能構成を例示したブロック図である。なお、図3における矢印はデータの流れを示すが、一時メモリ10tや制御部10sに入出力されるデータの流れは省略してある。
図3に示すように、本形態の署名生成装置10は、記憶部10aと、秘密鍵生成部10bと、公開鍵生成部10cと、入力部10dと、メッセージ分割部10eと、任意値生成部10fと、群演算部10gと、ハッシュ演算部10h,10i,10j,10pと、排他的論理和演算部10k,10nと、ビット結合部10mと、整数演算部10qと、通信部10rと、制御部10sと、一時メモリ10tとを有する。
FIG. 3 is a block diagram illustrating a functional configuration of the
As shown in FIG. 3, the
また、図4(a)は、ハッシュ演算部10hの機能構成の詳細を示した図であり、図4(b)は、ハッシュ演算部10jの機能構成の詳細を示した図である。図4に示すように、ハッシュ演算部10hは、ハッシュ回数演算部10haと、部分ハッシュ演算部10hbと、ビット結合部10hcと、ビット削除部10hdとを有する。また、ハッシュ演算部10jは、ハッシュ回数演算部10jaと、部分ハッシュ演算部10jbと、ビット結合部10jcと、ビット削除部10jdとを有する。
FIG. 4A is a diagram illustrating details of the functional configuration of the
なお、記憶部10aと一時メモリ10tとは、例えば、図2に記載したレジスタ11c、補助記憶装置14、RAM16、或いはこれらを結合した記憶領域に相当する。また、秘密鍵生成部10bと、公開鍵生成部10cと、メッセージ分割部10eと、任意値生成部10fと、群演算部10gと、ハッシュ演算部10h,10i,10j,10pと、排他的論理和演算部10k,10nと、ビット結合部10mと、整数演算部10qと、制御部10sとは、それぞれの処理を実現するためのプログラムがCPU11に読み込まれることにより構成されるものである。また、入力部10dは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する入力部12であり、通信部10rは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する通信部18である。また、署名生成装置10は、制御部10sの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ10tに読み書きされる。
Note that the storage unit 10a and the temporary memory 10t correspond to, for example, the
また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名生成装置10の機能をコンピュータに実行させるためのプログラムに相当する。
Further, the above program may be a program that can realize the function alone, or the program may read out another library (not described) to realize each function. That is, at least a part of each program corresponds to a program for causing a computer to execute the function of the
<署名検証装置20の構成>
次に、署名検証装置20の構成を説明する。
<Configuration of
Next, the configuration of the
[ハードウェア構成]
図2に示した署名生成装置10のハードウェア構成と同様である。
[Hardware configuration]
This is the same as the hardware configuration of the
[ハードウェアとプログラムとの協働]
署名検証装置20も図2に示したようなコンピュータに所定のプログラムが読み込まれることにより構成される。図5は、このように構成される第1実施形態の署名検証装置20の機能構成を例示したブロック図である。なお、図5における矢印はデータの流れを示すが、一時メモリ20nや制御部20pに入出力されるデータの流れは省略してある。
[Cooperation between hardware and programs]
The
図5に示すように、本形態の署名検証装置20は、記憶部20aと、通信部20bと、ビット長抽出部20cと、ハッシュ演算部20d,20f,20i,20kと、群演算部20eと、排他的論理和演算部20gと、ビット抽出部20hと、排他的論理和演算部20jと、比較部20lと、出力部20mと、制御部20nと、一時メモリ20pとを有する。
As shown in FIG. 5, the
なお、記憶部20aと一時メモリ20pとは、例えば、コンピュータが具備するレジスタ、補助記憶装置、RAM、或いはこれらを結合した記憶領域に相当する。また、ビット長抽出部20cと、ハッシュ演算部20d,20f,20i,20kと、群演算部20eと、排他的論理和演算部20gと、ビット抽出部20hと、排他的論理和演算部20jと、比較部20lと、制御部20nとは、それぞれの処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。また、出力部20mと通信部20bは、所定のプログラムが読み込まれたCPUの制御のもと駆動する。また、署名検証装置20は、制御部20nの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ20pに読み書きされる。
The
また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名検証装置20の機能をコンピュータに実行させるためのプログラムに相当する。
Further, the above program may be a program that can realize the function alone, or the program may read out another library (not described) to realize each function. That is, at least a part of each program corresponds to a program for causing a computer to execute the function of the
<処理>
次に、本形態の処理について説明する。
<Processing>
Next, the processing of this embodiment will be described.
[前処理]
まず、署名システム1で使用する位数qの離散対数問題の求解が困難な巡回群Gとその生成元g∈Gとを決定する。このような巡回群Gとしては、例えば、楕円曲線上の有理点のなす群や有限体の乗法群などを用いることができる。なお、楕円曲線上の有理点のなす群を用いる場合、生成元gは楕円曲線上の点g=(g1,g2)であり、有限体の乗法群を用いる場合、生成元gは2以上の整数である。また、楕円曲線上の有理点のなす群をコンピュータ上で実現するための具体的方法には様々なもの(例えば、「N. Koblitz. Elliptic Curve Cryptosystems. Math. Comp., Vol. 48, No. 17, pp. 203-209, 1987.」「Victor S. Miller. Use of Elliptic Curves in Cryptography. In Advances in Cryptology - CRYPTO ’85, Vol. 218 of Lecture Notes in Computer Science, pp. 417-426. Springer, 1986.」)が存在し、実際、楕円曲線上の有理点のなす群で構成され、コンピュータ上で実装可能な様々な暗号方式が存在する。また、安全性の面から位数qは素数であることが望ましいが、qの素因数分解が困難であるならqは素数でなくてもかまわない。また、署名システム1で使用するビット長パラメータL∈Z>0(0より大きな整数)を決定する。
[Preprocessing]
First, a cyclic group G that is difficult to find a discrete logarithm problem of order q used in the
さらに、後述するリカバリメッセージmrecのビット長Mに応じて出力ビット長がL+Mビットに定まる出力が可変長のハッシュ関数H0:{0,1}*→{0,1}L+Mを決定し、リカバリメッセージmrecのビット長Mに応じて出力ビット長がMビットに定まる出力が可変長のハッシュ関数H2:{0,1}*→{0,1}Mを決定する。なお、これらのハッシュ関数の処理方法については後述する。 Further, a hash function H 0 : {0, 1} * → {0, 1} L + M whose output bit length is determined to be L + M bits according to the bit length M of a recovery message m rec described later is determined, A hash function H 2 : {0, 1} * → {0, 1} M whose output bit length is determined to be M bits according to the bit length M of the recovery message m rec is variable. A method for processing these hash functions will be described later.
また、入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lと、また、入力値に対してZq(qを法とする完全剰余系)の元を出力するハッシュ関数H3:{0,1}*→Zqとを決定する。ハッシュ関数H1は、ハッシュ関数H0やハッシュ関数H2と同様に構成でき、ハッシュ関数H3は、SHA−1等のハッシュ値に対し、qを法とした剰余演算を行うことで構成できる。 Also, hash function H 1 for outputting an L-bit hash value for the input value: {0, 1} * → {0, 1} L, and Z q (q is modulo for the input value Hash function H 3 : {0, 1} * → Z q that outputs an element of a complete residue system) is determined. The hash function H 1 can be configured in the same manner as the hash function H 0 and the hash function H 2, and the hash function H 3 can be configured by performing a remainder operation modulo q on a hash value such as SHA-1. .
以上のように決定された巡回群Gや各ハッシュ関数H0〜H3を特定する情報は、例えば、署名生成装置10や署名検証装置20を構成する各プログラムに書き込まれ、署名生成装置10や署名検証装置20は、決定された巡回群Gでの演算や、各ハッシュ関数H0〜H3の演算が可能になるものとする。また、ビット長パラメータL∈Z>0や位数qや生成元g∈Gは、署名生成装置10の記憶部10aと署名検証装置20の記憶部20aに格納される。
Information specifying the cyclic group G and the hash functions H 0 to H 3 determined as described above is written in each program constituting the
[鍵生成処理]
次に、署名生成装置10が行う鍵生成処理について説明する。
まず、署名生成装置10の秘密鍵生成部10bが任意の秘密鍵x∈Zqを生成する。なお、この秘密鍵xの生成は、擬似乱数をZqにマッピングして行ってもよいし、署名生成者によって任意に決定された値を元に行ってもよい。生成された秘密鍵xは、署名生成装置10の記憶部10aに安全に格納される。すなわち、署名生成装置10の外部の装置は、記憶部10aから秘密鍵xを取得することができない。
[Key generation process]
Next, a key generation process performed by the
First, the secret
次に、署名生成装置10の公開鍵生成部10cが、記憶部10aから秘密鍵xと巡回群Gの生成元g∈Gとを読み込み、巡回群Gで定義された演算
y=gx∈G …(3)
を行って秘密鍵xに対応する公開鍵y∈Gを生成し、記憶部10aに格納する。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(3)の右辺は、楕円曲線E上の点である生成元g=(g1,g2)を楕円スカラー倍(楕円x倍)する演算(x・g∈E)を意味し、公開鍵yは楕円曲線E上の点となる。なお、楕円スカラー倍演算をコンピュータ上で実行する具体的な方法としては、二進展開法、移動窓法等の公知の演算方法を例示できる(例えば、参考文献1“イアン・F・ブラケ、ガディエル・セロッシ、ナイジェル・P・スマート=著、鈴木治郎=訳、「楕円曲線暗号」、出版=ピアソン・エデュケーション、ISBN4-89471-431-0”等参照)。また、例えば、巡回群Gが有限体の乗法群であった場合、式(3)の右辺は、gxmod p(ただし、gは2以上の整数、p=2q+1)の演算を意味し、公開鍵yはスカラー値となる。生成された公開鍵yは、通信部10rからネットワーク40を通じて公開鍵サーバ装置30に送信され、公開鍵サーバ装置30は、送信された公開鍵yを例えば公開鍵証明書とともに公開する。なお、公開鍵y等の公開とは、公開鍵y等が公開鍵サーバ装置30の記憶部に格納され、ネットワーク40に接続可能な任意の装置が公開鍵サーバ装置30の記憶部に格納された公開鍵y等を取得可能な状態とすることを意味する。署名検証装置20は、このような公開鍵yを通信部20bによって公開鍵サーバ装置30から受信し、記憶部20aに格納する。
Next, the public key generation unit 10c of the
y = g x ∈G (3)
To generate a public key yεG corresponding to the secret key x and store it in the storage unit 10a. For example, when the cyclic group G is a group formed by rational points on the elliptic curve E, the right side of the equation (3) is a generator g = (g 1 , g 2 ) that is a point on the elliptic curve E. Is an elliptic scalar multiplication (ellipse x times) (x · gεE), and the public key y is a point on the elliptic curve E. As a specific method for executing the elliptic scalar multiplication operation on the computer, known calculation methods such as a binary expansion method and a moving window method can be exemplified (for example,
[署名生成処理]
次に、第1実施形態の署名生成処理について説明する。
図6は、第1実施形態の署名生成処理を説明するためのフローチャートである。以下、図6に従って本形態の署名生成処理を説明する。
[Signature generation processing]
Next, a signature generation process according to the first embodiment will be described.
FIG. 6 is a flowchart for explaining the signature generation processing according to the first embodiment. Hereinafter, the signature generation processing of this embodiment will be described with reference to FIG.
まず、署名生成装置10(図3)の入力部10dに、メッセージm∈{0,1}N+Mとリカバリメッセージのビット長M≧1とが入力される(ステップS11)。入力されたこれらの情報は、それぞれ記憶部10aに格納される。
First, the message mε {0, 1} N + M and the recovery message bit length M ≧ 1 are input to the
次に、メッセージ分割部10eが、記憶部10aからメッセージm∈{0,1}N+Mとリカバリメッセージのビット長M≧1とを読み込む。メッセージ分割部10eは、これらの情報を用い、
メッセージm∈{0,1}N+Mを、ビット長Mのリカバリメッセージmrec∈{0,1}M と、ビット長N(N≧0)のクリアメッセージmclr∈{0,1}Nとに分割する(ステップS12)。例えば、メッセージm∈{0,1}N+Mの上位Mビットをリカバリメッセージmrec∈{0,1}Mとし、下位Nビットをクリアメッセージmclr∈{0,1}Nとする。なお、分割法はこれに限定されず、メッセージm∈{0,1}N+Mのどのビットをリカバリメッセージmrecとし、どのビットをクリアメッセージmclr
とするかは、任意に設定できる。このように分割されたビット長Mのリカバリメッセージmrec∈{0,1}M と、ビット長Nのクリアメッセージmclr∈{0,1}Nとは、それぞれ記憶部10aに格納される。
Next, the message dividing unit 10e reads the message mε {0, 1} N + M and the recovery message bit length M ≧ 1 from the storage unit 10a. The message dividing unit 10e uses these pieces of information,
The message mε {0,1} N + M is changed into a recovery message m rec ε {0,1} M having a bit length M and a clear message m clr ε {0,1} N having a bit length N (N ≧ 0). Divide (step S12). For example, the upper M bits of the message mε {0,1} N + M are the recovery message m rec ε {0,1} M , and the lower N bits are the clear message m clr ε {0,1} N. The division method is not limited to this, and which bit of the message mε {0,1} N + M is the recovery message m rec and which bit is the clear message m clr
It can be arbitrarily set. The bit length M recovery message m rec ε {0, 1} M and the bit length N clear message m clr ε {0, 1} N are stored in the storage unit 10a.
次に、任意値生成部10fが任意値k∈Zqを生成し、生成した任意値kを記憶部10aに格納する(ステップS13)。なお、任意値kの生成は、例えば、擬似乱数をZqにマッピングすることにより行う。
Next, the arbitrary
次に、群演算部10gが、記憶部10aから生成元g∈Gと任意値k∈Zqとを読み込み、
R=gk∈G …(4)
を算出し、当該演算結果R∈Gを記憶部10aに出力して格納する(ステップS14)。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(4)の右辺は、楕円曲線E上の点である生成元g=(g1,g2)を楕円スカラー倍(楕円k倍)する演算(k・g∈E)を意味し、演算結果Rは楕円曲線E上の点となる。なお、楕円スカラー倍演算をコンピュータ上で実行する具体的な方法としては、二進展開法、移動窓法等の公知の演算方法を例示できる。また、例えば、巡回群Gが有限体の乗法群であった場合、式(4)の右辺は、gkmod pの演算を意味し、演算結果Rはスカラー値となる。
Next, the
R = g k ∈G (4)
And the calculation result RεG is output to the storage unit 10a and stored (step S14). For example, when the cyclic group G is a group formed by rational points on the elliptic curve E, the right side of the equation (4) is a generator g = (g 1 , g 2 ) that is a point on the elliptic curve E. Is an elliptic scalar multiplication (ellipse k times) (k · gεE), and the operation result R is a point on the elliptic curve E. As a specific method for executing the elliptic scalar multiplication operation on the computer, known calculation methods such as a binary expansion method and a moving window method can be exemplified. For example, when the cyclic group G is a multiplicative group of a finite field, the right side of the equation (4) means an operation of g k mod p, and the operation result R is a scalar value.
次に、ハッシュ演算部10hが、記憶部10aから演算結果R∈Gとリカバリメッセージのビット長Mとビット長パラメータLを読み込む。ハッシュ演算部10hは、リカバリメッセージmrecのビット長Mに応じて出力ビット長がL+Mビットに定まるハッシュ関数H0:{0,1}*→{0,1}L+Mを演算結果Rに作用させ、その演算結果であるL+Mビットのハッシュ値
Π=H0(R)∈{0,1}L+M …(5)
を記憶部10aに出力して格納する(ステップS15)。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(5)の右辺は、楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値(例えば、点Rのx座標若しくはy座標、又は、点Rのx座標とy座標とのビット結合値)にハッシュ関数H0を作用させる演算を意味する。すなわち、この場合の「ハッシュ関数H0を演算結果Rに作用させる」とは、ハッシュ関数H0を、楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値に作用させることを意味する。また、例えば、巡回群Gが有限体の乗法群であった場合、式(5)の右辺は、スカラー値である演算結果Rにハッシュ関数H0を作用させる演算を意味する。
Next, the
Is output and stored in the storage unit 10a (step S15). Note that, for example, when the cyclic group G is a group formed by rational points on the elliptic curve E, the right side of the equation (5) uniquely or limitedly specifies the calculation result R that is a point on the elliptic curve E. It means an operation for applying the hash function H 0 to a possible value (for example, the x-coordinate or y-coordinate of the point R or the bit combination value of the x-coordinate and the y-coordinate of the point R). That is, in this case, “acting the hash function H 0 on the operation result R” means that the hash function H 0 operates on a value that can uniquely or specifically specify the operation result R that is a point on the elliptic curve E. It means that Further, for example, when the cyclic group G is a finite field multiplicative group, the right side of the equation (5) means an operation for applying the hash function H 0 to the operation result R that is a scalar value.
[ステップS15の処理の例]
図7(a)は、ステップS15の処理の例を説明するためのフローチャートである。
[Example of processing in step S15]
FIG. 7A is a flowchart for explaining an example of the process of step S15.
まず、リカバリメッセージのビット長Mとビット長パラメータLとがハッシュ演算回数算出部10haに読み込まれる。ハッシュ演算回数算出部10haは、
emax=rounddown{(L+M)/length(H)} …(5-1)
の演算を行ってemax
を一時メモリ10tに格納する(ステップS15a)。なお、rounddown{*}は*の小数点以下を切り捨てる演算を意味し、length(*)は*のビット長を意味し、Hは公知のハッシュ関数を意味する。なお、ハッシュ関数Hの具体例としては、SHA−1(ビット長160ビット)やMD5(ビット長128ビット)などを例示できる。例えば、L+M=500であり、ハッシュ関数HがSHA−1〔length(H)=160〕であるならば、emax=3である。
First, the bit length M and the bit length parameter L of the recovery message are read into the hash calculation number calculation unit 10ha. The hash calculation number calculation unit 10ha
e max = rounddown {(L + M) / length (H)}… (5-1)
E max
Is stored in the temporary memory 10t (step S15a). Note that rounddown {*} means an operation for rounding down the decimal part of *, length (*) means the bit length of *, and H means a known hash function. Specific examples of the hash function H include SHA-1 (bit length 160 bits) and MD5 (bit length 128 bits). For example, if L + M = 500 and the hash function H is SHA-1 [length (H) = 160], e max = 3.
次に、制御部10sは変数eに0を代入し、変数eを一時メモリ10tに格納する(ステップS15b)。
Next, the
次に、部分ハッシュ演算部10hbが、一時メモリ10tから変数eを読み込み、記憶部10aから演算結果Rを読み込み、ハッシュ値
H(e,R) …(5-2)
を算出して一時メモリ10tに格納する(ステップS15c)。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(5−2)は、楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値(例えば、点Rのx座標若しくはy座標、又は、点Rのx座標とy座標とのビット結合値)と変数eとのビット結合値にハッシュ関数Hを作用させる演算を意味する。また、例えば、巡回群Gが有限体の乗法群であった場合、式(5−2)は、スカラー値である演算結果Rと変数eとのビット結合値にハッシュ関数H0を作用させる演算を意味する。
Next, the partial hash calculation unit 10hb reads the variable e from the temporary memory 10t, reads the calculation result R from the storage unit 10a, and the hash value
H (e, R)… (5-2)
Is calculated and stored in the temporary memory 10t (step S15c). For example, when the cyclic group G is a group formed by rational points on the elliptic curve E, the expression (5-2) uniquely or exclusively specifies the calculation result R that is a point on the elliptic curve E. This means an operation that causes the hash function H to act on the bit combination value of the variable e and a possible value (for example, the x coordinate or y coordinate of the point R or the bit combination value of the x coordinate and the y coordinate of the point R). Further, for example, when the cyclic group G is a finite field multiplicative group, the expression (5-2) is an operation for applying the hash function H 0 to the bit combination value of the operation result R that is a scalar value and the variable e. Means.
次に、制御部10sが、一時メモリ10tからemaxと変数eとを読み込み、
e=emax …(5-3)
を満たすか否かを判断する(ステップS15d)。ここで、式(5−3)を満たさなければ、制御部10sはe+1を新たなeとし、新たなeを一時メモリ10tに格納した後(ステップS15e)、処理をステップS15cに戻す。一方、式(5−3)を満たすのであれば、制御部10sはビット結合部10hcに指示を与え、ビット結合部10hcは、一時メモリ10tから各ハッシュ値H(0,R),H(1,R),H(2,R),…,H(emax,R)を読み込み、それらのビット結合値
HC(R)=H(0,R)|・・・|H(emax,R) …(5-4)
を算出して一時メモリ10tに格納する(ステップS15f)。
Next, the
e = e max … (5-3)
It is determined whether or not the condition is satisfied (step S15d). If the expression (5-3) is not satisfied, the
HC (R) = H (0, R) | ・ ・ ・ | H (e max , R)… (5-4)
Is calculated and stored in the temporary memory 10t (step S15f).
次に、ビット削除部10hdが、一時メモリ10tから、ビット結合値HC(R)とリカバリメッセージのビット長Mとビット長パラメータLとを読み込み、
Π=H0(R)=delete{length(HC(R))-length(L+M),HC(R)} …(5-5)
を算出して記憶部10aに出力する(ステップS15g)。なお、delete{δ,ε}は、εのビットを先頭からδビットだけ削除する処理を意味する。すなわち、式(5−5)は、HC(R)の先頭ビットを削除して全体のビット長をL+MとしたものをΠ=H0(R)とする演算を意味する。
Next, the bit deletion unit 10hd reads the bit combination value HC (R), the bit length M of the recovery message, and the bit length parameter L from the temporary memory 10t,
Π = H 0 (R) = delete {length (HC (R))-length (L + M), HC (R)}… (5-5)
Is calculated and output to the storage unit 10a (step S15g). Delete {δ, ε} means a process of deleting δ bits from the head by δ bits. That is, Expression (5-5) means an operation in which Π = H 0 (R) is obtained by deleting the first bit of HC (R) and setting the total bit length to L + M.
なお、ステップS15の処理方法はこれに限定されない。例えば、eを用いるのではなく、ハッシュチェインによってハッシュ値のビット長を拡張する方法でもよい。この場合、式(5−4)のHC(R)は、例えば、
HC(R)=H(R)|H(H(R))|H(H(H(R)))|…|H(H(H…(R)…))
となる([ステップS15の処理の例]の説明終わり)。
In addition, the processing method of step S15 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 (R) in formula (5-4) is, for example,
HC (R) = H (R) | H (H (R)) | H (H (H (R))) |… | H (H (H… (R)…))
(End of description of [Example of processing in step S15]).
ステップS15の後、ハッシュ演算部10iが、記憶部10aからハッシュ値Πとリカバリメッセージmrecとビット長パラメータLとを読み込む。ハッシュ演算部10iは、入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、ハッシュ値Πとリカバリメッセージmrecとに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値
h=H1(α)∈{0,1}L …(6)
を記憶部10aに出力して格納する(ステップS16)。なお、第1実施形態では、αはハッシュ値Πとリカバリメッセージmrecとのみに依存する値α=(Π,mrec)である。なお、本形態のαの構成方法に限定はないが、αの構成方法は後述する署名検証装置20でのα’(後述)の構成方法と同一とする。αの構成例としては以下のようなものがある。
After step S15, the
h = H 1 (α) ∈ {0,1} L … (6)
Is output and stored in the storage unit 10a (step S16). In the first embodiment, α is a value α = (Π, m rec ) that depends only on the hash value Π and the recovery message m rec . Although there is no limitation on the configuration method of α in this embodiment, the configuration method of α is the same as the configuration method of α ′ (described later) in the
〔α−1〕Πを上位L+Mビットとし、mrecを下位Mビットとして結合したL+2Mビットの値をαとする。
〔α−2〕Πを下位L+Mビットとし、mrecを上位Mビットとして結合したL+2Mビットの値をαとする。
〔α−3〕mrecを上位から奇数番目のビット(合計Mビット)とし、Πをその他のL+Mビットとして結合したL+2Mビットの値をαとする。
[Α-1] Let L be a value of L + 2M bits obtained by combining Π as upper L + M bits and m rec as lower M bits.
[Α-2] Let L be a value of L + 2M bits obtained by combining Π as lower L + M bits and m rec as upper M bits.
[Α-3] Let m rec be an odd-numbered bit (total M bits) from the upper side, and let L be a value of L + 2M bits obtained by combining Π as other L + M bits.
次に、ハッシュ演算部10jが、記憶部10aからハッシュ値Πとハッシュ値hとリカバリメッセージのビット長Mとを読み込む。ハッシュ演算部10jは、リカバリメッセージmrecのビット長Mに応じて出力ビット長がMビットに定まるハッシュ関数H2:{0,1}*→{0,1}Mを、ハッシュ値Πとハッシュ値hとに依存して定まる値βに作用させ、その演算結果であるMビットのハッシュ値
u=H2(β)∈{0,1}M …(7)
を記憶部10aに出力して格納する(ステップS17)。なお、第1実施形態では、βはハッシュ値Πとハッシュ値hとのみに依存する値β=(Π,h)である。本形態のβの構成方法に限定はないが、βの構成方法は後述する署名検証装置20でのβ’(後述)の構成方法と同一とする。βの構成例としては以下のようなものがある。
Next, the
u = H 2 (β) ∈ {0,1} M … (7)
Is output and stored in the storage unit 10a (step S17). In the first embodiment, β is a value β = (Π, h) that depends only on the hash value Π and the hash value h. Although there is no limitation on the configuration method of β in this embodiment, the configuration method of β is the same as the configuration method of β ′ (described later) in the
〔β−1〕Πを上位L+Mビットとし、hを下位Lビットとして結合した2L+Mビットの値をβとする。
〔β−2〕Πを下位L+Mビットとし、hを上位Lビットとして結合した2L+Mビットの値をβとする。
〔β−3〕hを上位から奇数番目のビット(合計Lビット)とし、Πをその他のL+Mビットとして結合した2L+Mビットの値をβとする。
[Β-1]
[Β-2]
[Β-3] The value of 2L + M bits obtained by combining h as odd-numbered bits (total L bits) from the upper side and Π as the other L + M bits is β.
[ステップS17の処理の例]
図7(b)は、ステップS17の処理の例を説明するためのフローチャートである。
まず、リカバリメッセージのビット長Mがハッシュ演算回数算出部10jaに読み込まれる。ハッシュ演算回数算出部10jaは、
emax=rounddown{M/length(H)} …(7-1)
の演算を行ってemax
を一時メモリ10tに格納する(ステップS17a)。
[Example of processing in step S17]
FIG. 7B is a flowchart for explaining an example of the process in step S17.
First, the bit length M of the recovery message is read into the hash calculation number calculation unit 10ja. The hash calculation number calculation unit 10ja
e max = rounddown {M / length (H)}… (7-1)
E max
Is stored in the temporary memory 10t (step S17a).
次に、制御部10sは変数eに0を代入し、変数eを一時メモリ10tに格納する(ステップS17b)。
次に、部分ハッシュ演算部10jbが、一時メモリ10tから変数eを読み込み、記憶部10aからハッシュ値Π,hを読み込み、ハッシュ値
H(e,β),β=(Π,h) …(7-2)
を算出して一時メモリ10tに格納する(ステップS17c)。
Next, the
Next, the partial hash calculation unit 10jb reads the variable e from the temporary memory 10t, reads the hash values Π and h from the storage unit 10a, and the hash value
H (e, β), β = (Π, h)… (7-2)
Is calculated and stored in the temporary memory 10t (step S17c).
次に、制御部10sが、一時メモリ10tからemaxと変数eとを読み込み、
e=emax …(7-3)
を満たすか否かを判断する(ステップS17d)。ここで、式(7−3)を満たさないのであれば、制御部10sはe+1を新たなeとし、新たなeを一時メモリ10tに格納した後(ステップS17e)、処理をステップS17cに戻す。一方、式(7−3)を満たすのであれば、制御部10sはビット結合部10jcに指示を与え、ビット結合部10jcは、一時メモリ10tから各ハッシュ値H(0,β),H(1,β),H(2,β),…,H(emax,β)を読み込み、それらのビット結合値
HC(β)=H(0,β)|・・・|H(emax,β) …(7-4)
を算出して一時メモリ10tに格納する(ステップS17f)。
Next, the
e = e max … (7-3)
It is determined whether or not the condition is satisfied (step S17d). Here, if the expression (7-3) is not satisfied, the
HC (β) = H (0, β) | ・ ・ ・ | H (e max , β) (7-4)
Is calculated and stored in the temporary memory 10t (step S17f).
次に、ビット削除部10jdが、一時メモリ10tから、ビット結合値HC(β)とリカバリメッセージのビット長Mを読み込み、
Π=H0(β)=delete{length(HC(β))-length(M),HC(β)} …(7-5)
を算出して記憶部10aに出力する(ステップS17g)。
Next, the bit deletion unit 10jd reads the bit combination value HC (β) and the bit length M of the recovery message from the temporary memory 10t,
Π = H 0 (β) = delete {length (HC (β))-length (M), HC (β)}… (7-5)
Is calculated and output to the storage unit 10a (step S17g).
なお、ステップS17の処理方法はこれに限定されない。例えば、eを用いるのではなく、ハッシュチェインによってハッシュ値のビット長を拡張する方法でもよい([ステップS17の詳細処理の例]の説明終わり)。 In addition, the processing method of step S17 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 (end of description of [Example of detailed processing in step S17]).
ステップS17の後、排他的論理和演算部10kが、記憶部10aからリカバリメッセージmrecとハッシュ値uとを読み込む。排他的論理和演算部10kは、リカバリメッセージmrecとハッシュ値uとの排他的論理和
w=mrec(+)u∈{0,1}M …(8)
((+)は排他的論理和演算子)を算出し、当該排他的論理和値wを記憶部10aに出力して格納する(ステップS18)。
After step S17, the exclusive OR operation unit 10k reads the recovery message m rec and the hash value u from the storage unit 10a. The exclusive OR operation unit 10k performs an exclusive OR of the recovery message m rec and the hash value u.
w = m rec (+) u∈ {0,1} M … (8)
((+) Is an exclusive OR operator), and the exclusive OR value w is output to the storage unit 10a and stored (step S18).
次に、ビット結合部10mが、記憶部10aからハッシュ値h∈{0,1}Lと排他的論理和値w∈{0,1}Mとを読み込む。ビット結合部10mは、ハッシュ値h∈{0,1}Lを第1ビット位置に配置し、排他的論理和値w∈{0,1}Mを第2ビット位置に配置したL+Mビットのビット結合値
d=h|w∈{0,1}L+M …(9)
を算出し、当該ビット結合値dを記憶部10aに出力して格納する(ステップS19)。なお、「第1ビット位置」及び「第2ビット位置」をどのビット位置にするかについて特に限定はない。しかし、署名生成装置10と署名検証装置20との間では、「第1ビット位置」及び「第2ビット位置」をどのビット位置にするかの基準を同一にしなければならない。図9に「第1ビット位置」及び「第2ビット位置」の設定例を示す。
Next, the bit combining unit 10m reads the hash value hε {0, 1} L and the exclusive OR value wε {0, 1} M from the storage unit 10a. The bit combining unit 10m arranges the hash value hε {0,1} L at the first bit position and the L + M bits of the bit obtained by arranging the exclusive OR value wε {0,1} M at the second bit position. Join value
d = h | w∈ {0,1} L + M (9)
And the bit combination value d is output to the storage unit 10a and stored (step S19). Note that there is no particular limitation as to which bit position the “first bit position” and the “second bit position” are set. However, between the
図9(a)の例は、連続した上位Lビットを「第1ビット位置」とし、連続した下位Mビットを「第2ビット位置」とした例である。図9(b)の例は、連続した上位Mビットを「第2ビット位置」とし、連続した下位Lビットを「第1ビット位置」とした例である。また、図9(c)の例は、L≧Mの場合の例であり、上位から奇数番目のビット(合計Mビット)の位置を「第2ビット位置」とし、その他のビット位置を「第1ビット位置」とした例である。 The example of FIG. 9A is an example in which consecutive upper L bits are “first bit positions” and consecutive lower M bits are “second bit positions”. The example of FIG. 9B is an example in which consecutive upper M bits are “second bit positions” and consecutive lower L bits are “first bit positions”. The example of FIG. 9C is an example in the case of L ≧ M, where the positions of the odd-numbered bits (M bits in total) from the higher order are “second bit positions” and the other bit positions are “first”. This is an example of “1 bit position”.
次に、排他的論理和演算部10nが、記憶部10aからハッシュ値Πとビット結合値dとを読み込む。排他的論理和演算部10nは、ハッシュ値Πとビット結合値dとの排他的論理和
r=Π(+)d∈{0,1}L+M …(10)
を算出し、当該排他的論理和値rを記憶部10aに出力して格納する(ステップS20)。
Next, the exclusive OR operation unit 10n reads the hash value Π and the bit combination value d from the storage unit 10a. The exclusive OR operation unit 10n obtains the exclusive OR of the hash value Π and the bit combination value d.
r = Π (+) d∈ {0,1} L + M … (10)
And the exclusive OR value r is output to and stored in the storage unit 10a (step S20).
次に、ハッシュ演算部10pが、記憶部10aから排他的論理和値rとクリアメッセージmclrとを読み込む。ハッシュ演算部10pは、入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Zqを、排他的論理和値rとクリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値
t=H3(γ)∈Zq …(11)
を記憶部10aに出力して格納する(ステップS21)。なお、第1実施形態では、γは排他的論理和値rとクリアメッセージmclrとのみに依存する値γ=(r,mclr)である。本形態のγの構成方法に限定はないが、γの構成方法は後述する署名検証装置20でのγ’(後述)の構成方法と同一とする。γの構成例としては以下のようなものがある。
Next, the
t = H 3 (γ) ∈Z q (11)
Is output and stored in the storage unit 10a (step S21). In the first embodiment, γ is a value γ = (r, m clr ) that depends only on the exclusive OR value r and the clear message m clr . Although the configuration method of γ in this embodiment is not limited, the configuration method of γ is the same as the configuration method of γ ′ (described later) in the
〔γ−1〕rを上位L+Mビットとし、mclrを下位Nビットとして結合したL+M+Nビットの値をγとする。
〔γ−2〕rを下位L+Mビットとし、mclrを上位Nビットとして結合したL+M+Nビットの値をγとする。
〔γ−3〕mclrを上位から奇数番目のビット(合計Nビット)とし、rをその他のL+Mビットとして結合したL+M+Nビットの値をγとする。
The value of L + M + N bits obtained by combining [γ−1] r with the upper L + M bits and m clr with the lower N bits is γ.
[Γ-2] The value of L + M + N bits obtained by combining r as the lower L + M bits and m clr as the upper N bits is γ.
[Γ−3] Let m clr be an odd-numbered bit (N bits in total) from the higher order, and let the value of L + M + N bits obtained by combining r as the other L + M bits be γ.
次に、整数演算部10qが、記憶部10aから任意値kとハッシュ値tと秘密鍵xとqとを読み込む。整数演算部10qは、
s=k-t・x∈Zq …(12)
を算出し、当該演算結果sを記憶部10aに出力して格納する(ステップS22)。
Next, the
s = kt ・ x∈Z q (12)
And the calculation result s is output and stored in the storage unit 10a (step S22).
次に、通信部10rに、排他的論理和値rと演算結果sとクリアメッセージmclrとが読み込まれ、通信部10rは、署名σ=(r,s)とクリアメッセージmclrとをネットワーク40を通じて署名検証装置20に送信する(ステップS23)。
Next, the exclusive OR value r, the operation result s, and the clear message m clr are read into the
[署名検証処理]
次に、第1実施形態の署名検証処理について説明する。
図8は、第1実施形態の署名検証処理を説明するためのフローチャートである。以下、図8に従って本形態の署名検証処理を説明する。
[Signature verification]
Next, the signature verification process according to the first embodiment will be described.
FIG. 8 is a flowchart for explaining the signature verification processing according to the first embodiment. Hereinafter, the signature verification processing of this embodiment will be described with reference to FIG.
まず、署名検証装置20(図5)の通信部20bが、署名σ’=(r’,s’)とクリアメッセージmclr’とを受信し(「入力を受け付け」に相当)、これらを記憶部20aに格納する(ステップS41)。なお、署名とリアメッセージとが正規なものであれば、σ’=(r’,s’)=σ=(r,s)であり、mclr’=mclrであるが、ここでは、検証対象の署名をσ’=(r’,s’)と表現し、検証対象のクリアメッセージをmclr’と表現する。
First, the
次に、ビット長抽出部20cが、記憶部20aから、ビット長パラメータLと署名σ’=(r’,s’)のr’とを読み込む。ビット長抽出部20cは、
M'=length(r')‐L …(13)
により、署名σ’に対応するリカバリメッセージmrec’のビット長M’を算出し、記憶部20aに格納する(ステップS42)。
Next, the bit length extraction unit 20c reads the bit length parameter L and r ′ of the signature σ ′ = (r ′, s ′) from the
M '= length (r')-L (13)
Thus, the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′ is calculated and stored in the
次に、ハッシュ演算部20dが、記憶部20aからr’とクリアメッセージをmclr’とqとを読み込む。ハッシュ演算部20dは、署名生成装置10と同一のハッシュ関数H3:{0,1}*→Zqを、r’とmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値
t’=H3(γ’) …(14)
を記憶部20aに出力して格納する(ステップS43)。なお、γ’の構成方法は前述した署名生成装置10でのγの構成方法と同一(r=r’とし、mclr=mclr’とした場合に同一)とする。
Next, the
t '= H 3 (γ')… (14)
Is output and stored in the
次に、群演算部20eが、記憶部20aから、生成元g∈Gと署名生成装置10の公開鍵y∈Gと署名σ’のs’とハッシュ値t’とを読み込み、
R’=gs’・yt’∈G …(15)
の演算を行い、その演算結果R’を記憶部20aに出力して格納する(ステップS44)。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(15)の右辺は、楕円曲線E上の点である生成元g=(g1,g2)を楕円スカラー倍(楕円s’倍)し、公開鍵y=(y1,y2)を楕円スカラー倍(楕円t’倍)し、それらの演算結果を楕円加算する演算(s’・g+t’・y∈E)を意味し、演算結果R’は楕円曲線E上の点となる。なお、楕円スカラー倍演算をCPU上で実行する具体的な方法としては、二進展開法、移動窓法等の公知の演算方法を例示できる。また、例えば、巡回群Gが有限体の乗法群であった場合、式(15)の右辺は、gs’・yt’mod pの演算を意味し、演算結果R’はスカラー値となる。
Next, the
R '= g s' · y t' ∈ G (15)
The calculation result R ′ is output to the
次に、ハッシュ演算部20fが、記憶部20aから演算結果R’∈Gとリカバリメッセージmrec’のビット長M’とビット長パラメータLを読み込む。ハッシュ演算部20fは、署名生成装置10と同じハッシュ関数H0:{0,1}*→{0,1}L+Mを演算結果R’に作用させ、その演算結果であるL+M’ビットのハッシュ値
Π'=H0(R')∈{0,1}L+M' …(16)
を記憶部20aに出力して格納する(ステップS45)。なお、H0(R’)の演算は、署名生成装置10の場合と同一(R=R’の場合に同一)とする。
Next, the hash calculation unit 20f reads the calculation result R′εG, the bit length M ′ of the recovery message m rec ′, and the bit length parameter L from the
Is output and stored in the
次に、排他的論理和演算部20gが、記憶部20aから、ハッシュ値Π’と署名σ’が有するr’とを読み込み、それらの排他的論理和
d’=Π’(+)r’∈{0,1}L+M’ …(17)
を算出し、当該排他的論理和値d’を記憶部20aに出力して格納する(ステップS46)。
Next, the exclusive OR operation unit 20g reads the hash value Π ′ and r ′ included in the signature σ ′ from the
d ′ = Π ′ (+) r′∈ {0,1} L + M ′ (17)
And the exclusive OR value d ′ is output and stored in the
次に、ビット抽出部20hが、記憶部20aから排他的論理和値d’とリカバリメッセージmrec’のビット長M’とを読み込む。ビット抽出部20hは、排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}Lと、排他的論理和値d’の第2ビット位置のM’ビットの値w’∈{0,1}M’とを抽出し、それらを記憶部20aに格納する(ステップS47)。なお、「第1ビット位置」及び「第2ビット位置」は、署名生成装置10の処理での「第1ビット位置」及び「第2ビット位置」と同一(d=d’とした場合に同一)とする。
Next, the
次に、ハッシュ演算部20iが、記憶部20aからハッシュ値Π’とh’とリカバリメッセージmrec’のビット長M’とを読み込む。ハッシュ演算部20iは、署名生成装置10と同一のハッシュ関数H2:{0,1}*→{0,1}Mを、ハッシュ値Π’と値h’とに依存して定まる値β’に作用させ、その演算結果であるM’ビットのハッシュ値
u'=H2(β')∈{0,1}M' …(18)
を記憶部20aに出力して格納する(ステップS48)。なお、β'の構成方法は前述した署名生成装置10でのβの構成方法と同一(Π=Π’とし、h=h’とした場合に同一)とする。
Next, the hash calculation unit 20i reads the hash values Π ′ and h ′ and the bit length M ′ of the recovery message m rec ′ from the
u '= H 2 (β') ∈ {0,1} M ' … (18)
Is output and stored in the
排他的論理和演算部20jが、記憶部20aから値w’∈{0,1}M’とハッシュ値u’とを読み込む。排他的論理和演算部20jは、値w’とハッシュ値u’との排他的論理和
mrec’=w’(+)u’∈{0,1}M …(19)
を算出し、その演算結果をリカバリメッセージmrec’∈{0,1}M’として記憶部20aに出力して格納する(ステップS49)。
The exclusive OR operation unit 20j reads the value w′ε {0, 1} M ′ and the hash value u ′ from the
m rec '= w' (+) u'∈ {0,1} M … (19)
And the calculation result is output and stored in the
次に、ハッシュ演算部20kが、記憶部20aからハッシュ値Π’とリカバリメッセージmrec’とを読み込む。ハッシュ演算部20kは、署名生成装置10と同一のハッシュ関数H1:{0,1}*→{0,1}Lを、ハッシュ値Π’とリカバリメッセージmrec’とに依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値
H1(α’)∈{0,1}L …(20)
を記憶部20aに出力して格納する(ステップS50)。なお、α’の構成方法は前述した署名生成装置10でのαの構成方法と同一(Π=Π’とし、mrec=mrec’とした場合に同一)とする。
Next, the
H 1 (α ') ∈ {0,1} L … (20)
Is output and stored in the
次に、比較部20lが、記憶部20aからハッシュ値H1(α’)と値h’とを読み込み、
h'=H1(α’) …(21)
を満たすか否かを判断する(ステップS51)。
Next, the
h '= H 1 (α')… (21)
It is determined whether or not the condition is satisfied (step S51).
ここで、式(21)を満たさない場合、比較部20lは0(検証失敗)を記憶部20aに出力して格納し、出力部20mは、記憶部20aから送られた0(検証失敗)を出力する(ステップS52)。一方、式(21)を満たす場合、比較部20lは1(検証成功)を記憶部20aに出力して格納し、出力部20mは、記憶部20aから送られた1(検証成功)を出力し(ステップS53)、さらにリカバリメッセージmrec’を出力する(ステップS54)。
Here, when Expression (21) is not satisfied, the
〔第2実施形態〕
次に、本発明の第2実施形態について説明する。第2実施形態ではクリアメッセージを用いない。この点が第1実施形態との相違点である。以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. In the second embodiment, no clear message is used. This is the difference from the first embodiment. Below, it demonstrates centering around difference with 1st Embodiment, and abbreviate | omits description about the matter which is common in 1st Embodiment.
<全体構成>
第1実施形態の署名システム1の署名生成装置10が署名生成装置110に置換され、署名検証装置20が署名検証装置120に置換された構成である。
<Overall configuration>
The
<署名生成装置110の構成>
次に、署名生成装置110の構成を説明する。
<Configuration of
Next, the configuration of the
[ハードウェア構成]
第1実施形態の署名生成装置10と同じである。
[Hardware configuration]
This is the same as the
[ハードウェアとプログラムとの協働]
署名生成装置110もコンピュータに所定のプログラムが読み込まれることにより構成される。
図10は、このように構成される第2実施形態における署名生成装置110の機能構成を例示したブロック図である。なお、署名生成装置110において署名生成装置10と共通する部分には図3と同じ符号を付して説明を簡略化する。
図10に示すように、本形態の署名生成装置110は、記憶部10aと、秘密鍵生成部10bと、公開鍵生成部10cと、入力部110dと、ビット長抽出部110eと、任意値生成部10fと、群演算部10gと、ハッシュ演算部10h,10i,10j,110pと、排他的論理和演算部10k,10nと、ビット結合部10mと、整数演算部10qと、通信部110rと、制御部10sと、一時メモリ10tとを有する。
[Cooperation between hardware and programs]
The
FIG. 10 is a block diagram illustrating a functional configuration of the
As shown in FIG. 10, the
なお、ビット長抽出部110eとハッシュ演算部110pは、それぞれの処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。また、入力部110dは、所定のプログラムが読み込まれたCPUの制御のもと駆動し、通信部110rは、所定のプログラムが読み込まれたCPUの制御のもと駆動する。
The bit length extraction unit 110e and the
また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名生成装置110の機能をコンピュータに実行させるためのプログラムに相当する。
Further, the above program may be a program that can realize the function alone, or the program may read out another library (not described) to realize each function. That is, at least a part of each program corresponds to a program for causing a computer to execute the function of the
<署名検証装置120の構成>
次に、署名検証装置120の構成を説明する。
<Configuration of
Next, the configuration of the
[ハードウェア構成]
第1実施形態の署名検証装置20と同じである。
[Hardware configuration]
This is the same as the
[ハードウェアとプログラムとの協働]
署名検証装置120もコンピュータに所定のプログラムが読み込まれることにより構成される。図11は、このように構成される第2実施形態の署名検証装置120の機能構成を例示したブロック図である。
図11に示すように、本形態の署名検証装置120は、記憶部20aと、通信部120bと、ビット長抽出部20cと、ハッシュ演算部120d,20f,20i,20kと、群演算部20eと、排他的論理和演算部20gと、ビット抽出部20hと、排他的論理和演算部20jと、比較部20lと、出力部20mと、制御部20nと、一時メモリ20pとを有する。
[Cooperation between hardware and programs]
The
As shown in FIG. 11, the
なお、ハッシュ演算部120dは、処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。また、通信部120bは、所定のプログラムが読み込まれたCPUの制御のもと駆動する。また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名検証装置120の機能をコンピュータに実行させるためのプログラムに相当する。
The
<処理>
次に、本形態の処理について説明する。
<Processing>
Next, the processing of this embodiment will be described.
[前処理・鍵生成処理]
第1実施形態と同じである。
[Preprocessing / Key generation processing]
The same as in the first embodiment.
[署名生成処理]
次に、第2実施形態の署名生成処理について説明する。
図12は、第2実施形態の署名生成処理を説明するためのフローチャートである。以下、図12に従って本形態の署名生成処理を説明する。
[Signature generation processing]
Next, a signature generation process according to the second embodiment will be described.
FIG. 12 is a flowchart for explaining a signature generation process according to the second embodiment. Hereinafter, the signature generation processing of this embodiment will be described with reference to FIG.
まず、署名生成装置110(図10)の入力部110dに、リカバリメッセージmrec∈{0,1}Mが入力される(ステップS111)。入力されたリカバリメッセージmrecは、記憶部10aに格納される。なお、第2実施形態ではm=mrecである。
次に、ビット長抽出部110eが、記憶部10aからリカバリメッセージmrec∈{0,1}Mを読み込み、そのビット長Mを抽出して記憶部10aに格納する(ステップS112)。
First, the recovery message m rec ε {0, 1} M is input to the
Next, the bit length extraction unit 110e reads the recovery message m rec ε {0, 1} M from the storage unit 10a, extracts the bit length M, and stores it in the storage unit 10a (step S112).
その後、署名生成装置110において第1実施形態のステップS13〜S20と同じ処理(ステップS113〜S120)が実行された後、ハッシュ演算部110pが、記憶部10aから排他的論理和値rを読み込む。ハッシュ演算部110pは、第1実施形態と同じハッシュ関数H3:{0,1}*→Zqを、排他的論理和値rに依存して定まる値γに作用させ、その演算結果であるハッシュ値
t=H3(γ)∈Zq …(22)
を記憶部10aに出力して格納する(ステップS121)。なお、第2実施形態では、γは排他的論理和値rのみに依存する値γ=(r)である。本形態のγの構成方法に限定はないが、γの構成方法は後述する署名検証装置120でのγ’(後述)の構成方法と同一とする。
Then, after the same processing (steps S113 to S120) as steps S13 to S20 of the first embodiment is executed in the
t = H 3 (γ) ∈Z q (22)
Is output and stored in the storage unit 10a (step S121). In the second embodiment, γ is a value γ = (r) that depends only on the exclusive OR value r. Although the configuration method of γ in this embodiment is not limited, the configuration method of γ is the same as the configuration method of γ ′ (described later) in the
次に、整数演算部10qが、記憶部10aから任意値kとハッシュ値tと秘密鍵xとqとを読み込み、前述の式(12)によってsを算出し、当該演算結果sを記憶部10aに出力して格納する(ステップS122)。
次に、通信部110rに、排他的論理和値rと演算結果sが読み込まれ、通信部10rは、署名σ=(r,s)をネットワーク40を通じて署名検証装置120に送信する(ステップS123)。
Next, the
Next, the exclusive OR value r and the operation result s are read into the
[署名検証処理]
次に、第2実施形態の署名検証処理について説明する。
[Signature verification]
Next, a signature verification process according to the second embodiment will be described.
図13は、第2実施形態の署名検証処理を説明するためのフローチャートである。以下、図13に従って本形態の署名検証処理を説明する。 FIG. 13 is a flowchart for explaining the signature verification processing of the second embodiment. Hereinafter, the signature verification processing of this embodiment will be described with reference to FIG.
まず、署名検証装置120(図11)の通信部120bが、署名σ’=(r’,s’)を受信し(「入力を受け付け」に相当)、これらを記憶部20aに格納する(ステップS141)。
First, the
次に、ビット長抽出部20cが、記憶部20aから、ビット長パラメータLと署名σ’=(r’,s’)のr’とを読み込み、前述の式(13)によって署名σ’に対応するリカバリメッセージmrec’のビット長M’を算出し、記憶部20aに格納する(ステップS142)。
Next, the bit length extraction unit 20c reads the bit length parameter L and r ′ of the signature σ ′ = (r ′, s ′) from the
次に、ハッシュ演算部120dが、記憶部20aからr’とqとを読み込む。ハッシュ演算部120dは、署名生成装置110と同一のハッシュ関数H3:{0,1}*→Zqを、r’に依存して定まる値γ’に作用させ、その演算結果であるハッシュ値
t’=H3(γ’) …(23)
を記憶部20aに出力して格納する(ステップS143)。なお、γ’の構成方法は前述した署名生成装置110でのγの構成方法と同一(r=r’とした場合に同一)とする。
Next, the
t '= H 3 (γ')… (23)
Is output and stored in the
その後、第1実施形態のステップS44〜S54と同じ処理によって署名検証を行う(ステップS144〜S154)。 Thereafter, signature verification is performed by the same processing as steps S44 to S54 of the first embodiment (steps S144 to S154).
〔第3実施形態〕
次に、本発明の第3実施形態について説明する。本形態は第1実施形態の変形例であり、署名σ=(r,s)を構成するrを簡略化した例である。すなわち、第1実施形態においてr=H0(R)(+)H1(H0(R), mrec)|mrec(+)H2(H0(R),H1(H0(R),mrec))としていたのに対し、第3実施形態ではr=H1(R, mrec)|mrec(+) H2(R, H1(R, mrec))とする。これにより演算量を削減できる。以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
[Third Embodiment]
Next, a third embodiment of the present invention will be described. This embodiment is a modification of the first embodiment, and is an example in which r constituting the signature σ = (r, s) is simplified. That is, in the first embodiment, r = H 0 (R) (+) H 1 (H 0 (R), m rec ) | m rec (+) H 2 (H 0 (R), H 1 (H 0 ( R), while was the m rec)), in the third embodiment r = H 1 (R, m rec) | and m rec (+) H 2 ( R, H 1 (R, m rec)) . Thereby, the amount of calculation can be reduced. Below, it demonstrates centering around difference with 1st Embodiment, and abbreviate | omits description about the matter which is common in 1st Embodiment.
<全体構成>
第1実施形態の署名システム1の署名生成装置10が署名生成装置210に置換され、署名検証装置20が署名検証装置220に置換された構成である。
<Overall configuration>
The
<署名生成装置210の構成>
次に、署名生成装置210の構成を説明する。
<Configuration of
Next, the configuration of the
[ハードウェア構成]
第1実施形態の署名生成装置10と同じである。
[Hardware configuration]
This is the same as the
[ハードウェアとプログラムとの協働]
署名生成装置210もコンピュータに所定のプログラムが読み込まれることにより構成される。
図14は、このように構成される第3実施形態における署名生成装置210の機能構成を例示したブロック図である。なお、署名生成装置210において署名生成装置10と共通する部分には図3と同じ符号を付して説明を簡略化する。
図14に示すように、本形態の署名生成装置210は、記憶部10aと、秘密鍵生成部10bと、公開鍵生成部10cと、入力部10dと、メッセージ分割部10eと、任意値生成部10fと、群演算部10gと、ハッシュ演算部210i,210j,210pと、排他的論理和演算部10kと、ビット結合部210mと、整数演算部10qと、通信部10rと、制御部10sと、一時メモリ10tとを有する。
[Cooperation between hardware and programs]
The
FIG. 14 is a block diagram illustrating a functional configuration of the
As shown in FIG. 14, the
なお、ハッシュ演算部210i,210j,210pとビット結合部210mとは、それぞれの処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。
また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名生成装置210の機能をコンピュータに実行させるためのプログラムに相当する。
The
Further, the above program may be a program that can realize the function alone, or the program may read out another library (not described) to realize each function. That is, at least a part of each program corresponds to a program for causing a computer to execute the function of the
<署名検証装置220の構成>
次に、署名検証装置220の構成を説明する。
<Configuration of
Next, the configuration of the
[ハードウェア構成]
第1実施形態の署名検証装置20と同じである。
[Hardware configuration]
This is the same as the
[ハードウェアとプログラムとの協働]
署名検証装置220もコンピュータに所定のプログラムが読み込まれることにより構成される。図11は、このように構成される第2実施形態の署名検証装置120の機能構成を例示したブロック図である。
図15に示すように、本形態の署名検証装置220は、記憶部20aと、通信部20bと、ビット長抽出部20cと、ハッシュ演算部20d,220i,220kと、群演算部20eと、ビット抽出部20hと、排他的論理和演算部20jと、比較部20lと、出力部20mと、制御部20nと、一時メモリ20pとを有する。
[Cooperation between hardware and programs]
The
As shown in FIG. 15, the
なお、ハッシュ演算部220i,220kと比較部20lは、処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名検証装置120の機能をコンピュータに実行させるためのプログラムに相当する。
The
<処理>
次に、本形態の処理について説明する。
<Processing>
Next, the processing of this embodiment will be described.
[前処理]
ハッシュ関数H0が設定されない点が第1実施形態との相違点である。
[Preprocessing]
The difference from the first embodiment is that the hash function H 0 is not set.
[鍵生成処理]
第1実施形態と同じである。
[Key generation process]
The same as in the first embodiment.
[署名生成処理]
次に、第3実施形態の署名生成処理について説明する。
[Signature generation processing]
Next, a signature generation process according to the third embodiment will be described.
図16は、第3実施形態の署名生成処理を説明するためのフローチャートである。以下、第1実施形態との相違点を中心に説明する。
まず、署名生成装置210が、第1実施形態のステップS11〜S14と同じ処理を実行する(ステップS211〜S214)。次に、ハッシュ演算部10iが、記憶部10aからステップS114の演算結果Rとリカバリメッセージmrecとビット長パラメータLとを読み込む。ハッシュ演算部10iは、入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、演算結果Rとリカバリメッセージmrecとに依存して定まる値αに作用させ(式(6))、その演算結果であるLビットのハッシュ値hを記憶部10aに出力して格納する(ステップS215)。なお、第3実施形態では、αは演算結果R∈Gとリカバリメッセージmrecとのみに依存する値α=(R,mrec)である。なお、巡回群Gが有限体の乗法群であった場合、本形態のαの構成は、ΠがRに置換される点を除き、第1実施形態と同様である。また、巡回群Gが楕円曲線E上の有理点のなす群である場合、本形態のαの構成は、Πが、楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値(例えば、点Rのx座標若しくはy座標、又は、点Rのx座標とy座標とのビット結合値)に置換される点を除き、第1実施形態と同様である。
FIG. 16 is a flowchart for explaining a signature generation process according to the third embodiment. Hereinafter, the difference from the first embodiment will be mainly described.
First, the
次に、ハッシュ演算部210jが、記憶部10aから演算結果Rとハッシュ値hとリカバリメッセージのビット長Mとを読み込む。ハッシュ演算部210jは、リカバリメッセージmrecのビット長Mに応じて出力ビット長がMビットに定まるハッシュ関数H2:{0,1}*→{0,1}Mを、演算結果Rとハッシュ値hとに依存して定まる値βに作用させ(式(7))、その演算結果であるMビットのハッシュ値uを記憶部10aに出力して格納する(ステップS216)。なお、第3実施形態では、βは演算結果Rとハッシュ値hとのみに依存する値β=(R,h)である。なお、巡回群Gが有限体の乗法群であった場合、本形態のβの構成は、ΠがRに置換される点を除き、第1実施形態と同様である。また、巡回群Gが楕円曲線E上の有理点のなす群である場合、本形態のβの構成は、Πが、楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値(例えば、点Rのx座標若しくはy座標、又は、点Rのx座標とy座標とのビット結合値)に置換される点を除き、第1実施形態と同様である。
Next, the
次に、排他的論理和演算部10kが、記憶部10aからリカバリメッセージmrecとハッシュ値uとを読み込む。排他的論理和演算部10kは、リカバリメッセージmrecとハッシュ値uとの排他的論理和w(式(8))を算出し、当該排他的論理和値wを記憶部10aに出力して格納する(ステップS217)。 Next, the exclusive OR operation unit 10k reads the recovery message m rec and the hash value u from the storage unit 10a. The exclusive OR operation unit 10k calculates an exclusive OR w (formula (8)) of the recovery message m rec and the hash value u, and outputs the exclusive OR value w to the storage unit 10a for storage. (Step S217).
次に、ビット結合部210mが、記憶部10aからハッシュ値h∈{0,1}Lと排他的論理和値w∈{0,1}Mとを読み込む。ビット結合部210mは、ハッシュ値h∈{0,1}Lを第1ビット位置に配置し、排他的論理和値w∈{0,1}Mを第2ビット位置に配置したL+Mビットのビット結合値
r=h|w∈{0,1}L+M …(24)
を算出し、当該ビット結合値rを記憶部10aに出力して格納する(ステップS218)。「第1ビット位置」及び「第2ビット位置」をどのビット位置にするかについては第1実施形態と同様である。
その後、第1実施形態のステップS21〜S23と同じ処理が実行される(ステップS219〜S221)。
Next, the bit combination unit 210m reads the hash value hε {0, 1} L and the exclusive OR value wε {0, 1} M from the storage unit 10a. The bit combination unit 210m arranges the hash value hε {0,1} L at the first bit position and the L + M bits of the bit obtained by arranging the exclusive OR value wε {0,1} M at the second bit position. Join value
r = h | w∈ {0,1} L + M … (24)
And the bit combination value r is output to the storage unit 10a and stored (step S218). Which bit position is set to “first bit position” and “second bit position” is the same as in the first embodiment.
Thereafter, the same processing as steps S21 to S23 of the first embodiment is executed (steps S219 to S221).
[署名検証処理]
次に、第3実施形態の署名検証処理について説明する。
図17は、第1実施形態の署名検証処理を説明するためのフローチャートである。以下、第1実施形態との相違点を中心に説明する。
[Signature verification]
Next, a signature verification process according to the third embodiment will be described.
FIG. 17 is a flowchart for explaining the signature verification processing according to the first embodiment. Hereinafter, the difference from the first embodiment will be mainly described.
まず、署名検証装置220が、第1実施形態のステップS41〜S44と同じ処理を実行する(ステップS241〜S244)。
First, the
次に、ビット抽出部220hが、記憶部20aから署名σ’=(r’,s’)のr’とリカバリメッセージmrec’のビット長M’とを読み込む。ビット抽出部220hは、r’の第1ビット位置のLビットの値h’∈{0,1}Lと、r’の第2ビット位置のM’ビットの値w’∈{0,1}M’とを抽出し、それらを記憶部20aに格納する(ステップS245)。なお、「第1ビット位置」及び「第2ビット位置」は、署名生成装置210の処理での「第1ビット位置」及び「第2ビット位置」と同一(d=d’とした場合に同一)とする。
Next, the
次に、ハッシュ演算部220iが、記憶部20aからステップS244での演算結果R’とh’とリカバリメッセージmrec’のビット長M’とを読み込む。ハッシュ演算部20iは、署名生成装置210と同一のハッシュ関数H2:{0,1}*→{0,1}Mを、演算結果R’と値h’とに依存して定まる値β’に作用させ(式(18))、その演算結果であるM’ビットのハッシュ値u’を記憶部20aに出力して格納する(ステップS246)。なお、β’の構成方法は署名生成装置210でのβの構成方法と同一(Π=Π’とし、h=h’とした場合に同一)とする。
Next, the
次に、排他的論理和演算部20jが、記憶部20aから値w’∈{0,1}M’とハッシュ値u’とを読み込む。排他的論理和演算部20jは、値w’とハッシュ値u’との排他的論理和を算出し(式(10))、その演算結果をリカバリメッセージmrec’∈{0,1}M’として記憶部20aに出力して格納する(ステップS247)。
Next, the exclusive OR operation unit 20j reads the value w′ε {0, 1} M ′ and the hash value u ′ from the
次に、ハッシュ演算部220kが、記憶部20aから演算結果R’とリカバリメッセージmrec’とを読み込む。ハッシュ演算部220kは、署名生成装置210と同一のハッシュ関数H1:{0,1}*→{0,1}Lを、演算結果R’とリカバリメッセージmrec’とに依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値(式(20))を記憶部20aに出力して格納する(ステップS248)。なお、α’の構成方法は署名生成装置210でのαの構成方法と同一(Π=Π’とし、mrec=mrec’とした場合に同一)とする。
Next, the
その後、第1実施形態のステップS51〜S54と同じ処理が実行される(ステップS249〜S252)。 Thereafter, the same processing as steps S51 to S54 of the first embodiment is executed (steps S249 to S252).
〔第4実施形態〕
次に、本発明の第4実施形態について説明する。本形態は第3実施形態の変形例である。第4実施形態ではクリアメッセージを用いない。この点が第3実施形態との相違点である。以下では、第1〜3実施形態との相違点を中心に説明し、第1〜3実施形態と共通する事項については説明を省略する。
[Fourth Embodiment]
Next, a fourth embodiment of the present invention will be described. This embodiment is a modification of the third embodiment. In the fourth embodiment, a clear message is not used. This is the difference from the third embodiment. Below, it demonstrates centering around difference with 1st-3rd embodiment, and abbreviate | omits description about the matter which is common in 1st-3rd embodiment.
<全体構成>
第1実施形態の署名システム1の署名生成装置10が署名生成装置310に置換され、署名検証装置20が署名検証装置320に置換された構成である。
<Overall configuration>
The
<署名生成装置310の構成>
次に、署名生成装置310の構成を説明する。
<Configuration of
Next, the configuration of the
[ハードウェア構成]
第1実施形態の署名生成装置10と同じである。
[Hardware configuration]
This is the same as the
[ハードウェアとプログラムとの協働]
署名生成装置310もコンピュータに所定のプログラムが読み込まれることにより構成される。
図18は、このように構成される第4実施形態における署名生成装置310の機能構成を例示したブロック図である。なお、署名生成装置410において署名生成装置10,110,210と共通する部分には図3,図10,図14と同じ符号を付して説明を簡略化する。
図18に示すように、本形態の署名生成装置310は、記憶部10aと、秘密鍵生成部10bと、公開鍵生成部10cと、入力部110dと、ビット長抽出部110eと、任意値生成部10fと、群演算部10gと、ハッシュ演算部210i,210j,110pと、排他的論理和演算部10kと、ビット結合部210mと、整数演算部10qと、通信部110rと、制御部10sと、一時メモリ10tとを有する。
[Cooperation between hardware and programs]
The
FIG. 18 is a block diagram illustrating a functional configuration of the
As shown in FIG. 18, the
<署名検証装置320の構成>
次に、署名検証装置320の構成を説明する。
<Configuration of
Next, the configuration of the
[ハードウェア構成]
第1実施形態の署名検証装置20と同じである。
[Hardware configuration]
This is the same as the
[ハードウェアとプログラムとの協働]
署名検証装置320もコンピュータに所定のプログラムが読み込まれることにより構成される。図19は、このように構成される第2実施形態の署名検証装置120の機能構成を例示したブロック図である。なお、署名検証装置320において署名検証装置20,120,220と共通する部分には図5,図11,図15と同じ符号を付して説明を簡略化する。
図19に示すように、本形態の署名検証装置320は、記憶部20aと、通信部120bと、ビット長抽出部20cと、ハッシュ演算部120d,220i,220kと、群演算部20eと、ビット抽出部220hと、排他的論理和演算部20jと、比較部20lと、出力部20mと、制御部20nと、一時メモリ20pとを有する。
[Cooperation between hardware and programs]
The
As shown in FIG. 19, the
<処理>
次に、本形態の処理について説明する。
<Processing>
Next, the processing of this embodiment will be described.
[前処理・鍵生成処理]
第1実施形態と同じである。
[Preprocessing / Key generation processing]
The same as in the first embodiment.
[署名生成処理]
次に、第4実施形態の署名生成処理について説明する。
図20は、第4実施形態の署名生成処理を説明するためのフローチャートである。以下、図20に従って本形態の署名生成処理を説明する。
まず、署名生成装置310が、第2実施形態のステップS111〜S114と同じ処理を実行し(ステップS311〜S314)、次に、第3実施形態のステップS215〜S218と同じ処理を実行する(ステップS315〜S318)。次に、署名生成装置310が、第2実施形態のステップS121〜123と同じ処理を実行する(ステップS319〜S321)。
[Signature generation processing]
Next, a signature generation process according to the fourth embodiment will be described.
FIG. 20 is a flowchart for explaining a signature generation process according to the fourth embodiment. Hereinafter, the signature generation processing of this embodiment will be described with reference to FIG.
First, the
[署名検証処理]
次に、第4実施形態の署名検証処理について説明する。
図21は、第4実施形態の署名検証処理を説明するためのフローチャートである。以下、図21に従って本形態の署名検証処理を説明する。
まず、署名検証装置320が、第2実施形態のステップS141〜S144と同じ処理を実行し(ステップS341〜S344)、次に、第3実施形態のステップS245〜252と同じ処理を実行する(ステップS345〜S352)。
[Signature verification]
Next, a signature verification process according to the fourth embodiment will be described.
FIG. 21 is a flowchart for explaining a signature verification process according to the fourth embodiment. Hereinafter, the signature verification processing of this embodiment will be described with reference to FIG.
First, the
〔署名検証となる理由〕
次に、署名検証装置20,120,220,320の処理が署名検証となる理由について説明する。
[Reason for signature verification]
Next, the reason why the processing of the
<第1,2実施形態について>
署名検証装置20,120では、署名σ’=(r’,s’)を用い、r’に依存して定まる値γ’に対してハッシュ値t’=H3(γ’)を演算し(式(14)(23))、R’=gs’・yt’∈Gの演算を行い(式(15))、ハッシュ値Π’=H0(R’)の演算を行っている(式(16))。署名σ’が正規なものであればr’=r及びs’=s(s=k−t・x∈Z)を満たすため、γ’=γを満たし、t’=H3(γ’)=H3(γ)=tを満たし、y=gx∈Gを満たすため、R’=gs’・yt’=gs・yt=gk−t・x・gt・x=gk∈Gとなる。そのため、Π’=H0(R’)=H0(gk)=Πとなる。
<About the first and second embodiments>
The
また、署名検証装置20,120では、排他的論理和値d’=Π’(+)r’を求めているが(式(17))、署名σ’が正規なものであればr’=rを満たし、r=Π(+)dを満たし、Π’=Πを満たすため、d’=dを満たす。さらに、署名検証装置20,120では、ハッシュ値Π’と排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}Lとに依存して定まる値β’のハッシュ値u’=H2(β’)を求めているが(式(18))、署名σ’が正規なものであればd’=dを満たすため、h’=hを満たし、さらにΠ’=Πを満たすため、β’=βを満たし、u’=uを満たす。
The
さらに、署名検証装置20,120では、排他的論理和値d’の第2ビット位置のM’ビットの値w’∈{0,1}Mとハッシュ値u’との排他的論理和w’(+)u’を算出し、その演算結果をリカバリメッセージmrec’∈{0,1}Mとしているが(式(19))、署名σ’が正規なものであればu’=u、M’=M及びd’=dを満たす。この場合、w’=wも満たすため、mrec’=w’(+)u’=w(+)u=mrec(+)u(+)u=mrecを満たす。
Furthermore, in the
その後、署名検証装置20,120では、ハッシュ値Π’とリカバリメッセージmrec’とに依存して定まる値α’にハッシュ値H1を作用させたハッシュ値H1(α’)∈{0,1}Lを求めている(式(20))。署名σ’が正規なものであればΠ’=Π,mrec’=mrec,α’=α,h’=hを満たし、署名生成装置ではh=H1(α)としていたため、h’=H1(α’)も満たす。つまり、署名σ’が正規なものであればh’=H1(α’)を満たすことがいえる。
Thereafter, in the
一方、巡回群Gでの離散対数問題の求解が困難であると仮定すると、秘密鍵xを知らない第三者は公開鍵y=gx∈Gから秘密鍵xを知ることができず、上記の検証に合格する署名σ’=(r’,s’)を生成することができない。よって、上記の検証に合格する署名σ’=(r’,s’)が秘密鍵xを知る者が正規に生成した署名であるといえる。 On the other hand, assuming that it is difficult to solve the discrete logarithm problem in the cyclic group G, a third party who does not know the secret key x cannot know the secret key x from the public key y = g x ∈G. The signature σ ′ = (r ′, s ′) that passes the verification cannot be generated. Therefore, it can be said that the signature σ ′ = (r ′, s ′) that passes the above verification is a signature that is normally generated by a person who knows the secret key x.
<第3,4実施形態について>
署名検証装置220,320では、署名σ’=(r’,s’)を用い、r’に依存して定まる値γ’に対してハッシュ値t’=H3(γ’)を演算し、R’=gs’・yt’∈Gの演算を行っている。署名σ’が正規なものであればr’=r及びs’=s(s=k−t・x∈Z)を満たすため、γ’=γを満たし、t’=H3(γ’)=H3(γ)=tを満たし、y=gx∈Gを満たすため、R’=gs’・yt’=gs・yt=gk−t・x・gt・x=gk=Rとなる。
<About 3rd and 4th embodiment>
The
また、署名検証装置220,320では、演算結果R’と署名σ’のr’の第1ビット位置のLビットの値h’∈{0,1}Lとに依存して定まる値β’のハッシュ値u’=H2(β’)を求めているが、署名σ’が正規なものであればr’=rを満たすため、h’=hを満たし、さらにR’=Rを満たすため、β’=βを満たし、u’=uを満たす。
Also, in the
さらに、署名検証装置220,320では、署名σ’のr’の第2ビット位置のM’ビットの値w’∈{0,1}Mとハッシュ値u’との排他的論理和w’(+)u’を算出し、その演算結果をリカバリメッセージmrec’∈{0,1}Mとしているが)、署名σ’が正規なものであればu’=u、M’=M及びr’=rを満たす。この場合、w’=wも満たすため、mrec’=w’(+)u’=w(+)u=mrec(+)u(+)u=mrecを満たす。
Further, in the
その後、署名検証装置220,320では、演算結果R’とリカバリメッセージmrec’とに依存して定まる値α’にハッシュ値H1を作用させたハッシュ値H1(α’)∈{0,1}Lを求めている。署名σ’が正規なものであればR’=R,mrec’=mrec,α’=α,h’=hを満たし、署名生成装置ではh=H1(α)としていたため、h’=H1(α’)も満たす。つまり、署名σ’が正規なものであればh’=H1(α’)を満たすことがいえる。
Thereafter, in the
一方、巡回群Gでの離散対数問題の求解が困難であると仮定すると、秘密鍵xを知らない第三者は公開鍵y=gx∈Gから秘密鍵xを知ることができず、上記の検証に合格する署名σ’=(r’,s’)を生成することができない。よって、上記の検証に合格する署名σ’=(r’,s’)が秘密鍵xを知る者が正規に生成した署名であるといえる。 On the other hand, assuming that it is difficult to solve the discrete logarithm problem in the cyclic group G, a third party who does not know the secret key x cannot know the secret key x from the public key y = g x ∈G. The signature σ ′ = (r ′, s ′) that passes the verification cannot be generated. Therefore, it can be said that the signature σ ′ = (r ′, s ′) that passes the above verification is a signature that is normally generated by a person who knows the secret key x.
〔変形例〕
本発明は上述の各実施の形態に限定されるものではない。例えば、第1,2実施形態では、αをΠとmrecとのみに依存する値とし、α’をΠ’とmrec’とのみに依存する値とした。しかし、αをΠとmrecと第三情報とに依存する値とし、α’をΠ’とmrec’と第三情報とに依存する値としてもよい。なお、第三情報としては、クリアメッセージmclrや公開鍵yや群Gを特定するためのパラメータなどを例示できる。βとβ’及びγとγ’についても同様である。これにより、署名検証精度をより向上させることができる。特に、第三情報として群Gを特定するためのパラメータを用いた場合には、不正な群(例えば、離散対数問題が容易であって群演算部20eでの演算結果が正規の巡回群Gでの演算結果と同一となる群)を用いて生成された不正な署名が検証に合格してしまうことを防止できる。
[Modification]
The present invention is not limited to the embodiments described above. For example, in the first and second embodiments, α is a value that depends only on Π and m rec, and α ′ is a value that depends only on Π ′ and m rec ′. However, α may be a value that depends on Π, m rec, and the third information, and α ′ may be a value that depends on Π ′, m rec ′, and the third information. Note that examples of the third information include a clear message m clr , a public key y, a parameter for specifying the group G, and the like. The same applies to β and β ′ and γ and γ ′. Thereby, signature verification accuracy can be further improved. In particular, when a parameter for specifying the group G is used as the third information, an illegal group (for example, the discrete logarithm problem is easy and the calculation result in the
同様に、第3,4実施形態では、αをRとmrecとのみに依存する値とし、α’をR’とmrec’とのみに依存する値とした。しかし、αをRとmrecと第三情報とに依存する値とし、α’をR’とmrec’と第三情報とに依存する値としてもよい。βとβ’及びγとγ’についても同様である。 Similarly, in the third and fourth embodiments, α is a value that depends only on R and m rec, and α ′ is a value that depends only on R ′ and m rec ′. However, α may be a value depending on R, m rec, and third information, and α ′ may be a value depending on R ′, m rec ′, and third information. The same applies to β and β ′ and γ and γ ′.
また、各実施形態では、署名生成装置10,110,210,310が鍵生成を行ったが、別の装置が鍵生成を行ってもよい。また、各実施形態では、公開鍵サーバ装置30が公開鍵yを公開したが署名生成装置10,110,210,310が署名検証装置20,120,220,320に公開鍵yを送信する構成であってもよい。また、各処理におけるZq(qを法とする完全剰余系)をZ(整数)に置換した構成であってもよい。
In each embodiment, the
また、各実施形態では、署名検証装置20,120,220,320が、署名σ’が具備するr’のビット長とビット長パラメータLとからリカバリメッセージのビット長を算出したが、署名生成装置10,110,210,310が署名検証装置20,120,220,320にリカバリメッセージのビット長を送信する構成であってもよい。
In each embodiment, the
また、本発明における「ハッシュ関数」とは、あるデータに対し、そのデータを代表する値を算出する関数を意味する。本発明では、SHA−1やMD5等のみならず、例えば、DESやCamelliaなどの共通鍵暗号関数に共通鍵を代入したものをハッシュ関数として用いることもできる。 Further, the “hash function” in the present invention means a function for calculating a value representative of the data for a certain data. In the present invention, not only SHA-1 and MD5, but also a hash function obtained by assigning a common key to a common key encryption function such as DES or Camellia can be used.
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよく、その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。 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 as required by the processing capability of the apparatus that executes the process, or otherwise. Needless to say, changes can be made without departing from the scope 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.
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。 The program describing the processing contents can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory. Specifically, for example, the magnetic recording device may be a hard disk device or a flexible Discs, magnetic tapes, etc. as optical disks, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc. As the magneto-optical recording medium, MO (Magneto-Optical disc) or the like can be used, and as the semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory) or the like can be used.
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。 A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, the computer reads a program stored in its own recording medium and executes a process according to the read program. As another execution form of the program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially. Also, the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good. 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 署名システム
10,110,210,310 署名生成装置
20,120,220,320 署名検証装置
1
Claims (18)
整数の秘密鍵xを格納する第1記憶部と、
Mビットのリカバリメッセージmrec∈{0,1}Mを格納する第2記憶部と、
整数の任意値kを生成する任意値生成部と、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=gk∈Gを算出し、当該演算結果Rを出力する群演算部と、
上記リカバリメッセージmrecのビット長Mに応じて出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)に定まるハッシュ関数H0:{0,1}*→{0,1}L+Mを上記演算結果Rに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H0(R)∈{0,1}L+Mを出力する第1ハッシュ演算部と、
入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、上記ハッシュ値Πとリカバリメッセージmrecとに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H1(α)∈{0,1}Lを出力する第2ハッシュ演算部と、
上記リカバリメッセージmrecのビット長Mに応じて出力ビット長がMビットに定まるハッシュ関数H2:{0,1}*→{0,1}Mを、上記ハッシュ値Πと上記ハッシュ値hとに依存して定まる値βに作用させ、その演算結果であるMビットのハッシュ値u=H2(β)∈{0,1}Mを出力する第3ハッシュ演算部と、
上記リカバリメッセージmrecと上記ハッシュ値uとの排他的論理和w=mrec(+)u∈{0,1}M((+)は排他的論理和演算子)を算出し、当該排他的論理和値wを出力する第1排他的論理和演算部と、
上記ハッシュ値h∈{0,1}Lを第1ビット位置に配置し、上記排他的論理和値w∈{0,1}Mを第2ビット位置に配置したL+Mビットのビット結合値d=h|w∈{0,1}L+Mを算出し、当該ビット結合値dを出力するビット結合部と、
上記ハッシュ値Πと上記ビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力する第2排他的論理和演算部と、
入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Z(整数)を、上記排他的論理和値rに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H3(γ)∈Zを出力する第4ハッシュ演算部と、
s=k−t・x∈Zを算出し、当該演算結果sを出力する整数演算部と、
署名σ=(r,s)を出力する署名出力部と、
を有することを特徴とする署名生成装置。 A signature generation device for generating a signature,
A first storage unit for storing an integer secret key x;
A second storage for storing an M-bit recovery message m rec ε {0,1} M ;
An arbitrary value generator for generating an arbitrary value k of an integer;
A group operation unit that calculates R = g k ∈G when the cyclic group of order q is G and the generation source of the cyclic group G is g, and outputs the operation result R;
Hash function H 0 : {0, 1} * → {0, 1 whose output bit length is determined as L + M bits (L is a positive integer shared with the signature verification device) according to the bit length M of the recovery message m rec } L + M acts on the operation result R, and a first hash operation unit that outputs an L + M-bit hash value Π = H 0 (R) ∈ {0, 1} L + M as the operation result;
Hash function H 1 that outputs an L-bit hash value for the input value: {0, 1} * → {0, 1} L is a value α that is determined depending on the hash value Π and the recovery message m rec. And a second hash operation unit that outputs an L-bit hash value h = H 1 (α) ε {0,1} L as a result of the operation;
Hash function H 2 : {0,1} * → {0,1} M, whose output bit length is determined to be M bits according to the bit length M of the recovery message m rec , is converted into the hash value Π and the hash value h. A third hash operation unit that operates on a value β determined depending on and outputs an M-bit hash value u = H 2 (β) ε {0,1} M as a result of the operation;
An exclusive OR w = m rec (+) uε {0,1} M ((+) is an exclusive OR operator) of the recovery message m rec and the hash value u is calculated. A first exclusive OR operation unit for outputting a logical sum value w;
The hash value hε {0,1} L is arranged at the first bit position, and the exclusive OR value wε {0,1} M is arranged at the second bit position. h | wε {0,1} L + M is calculated, and a bit combination unit that outputs the bit combination value d;
A second exclusive OR that calculates the exclusive OR r = Π (+) dε {0, 1} L + M of the hash value Π and the bit combination value d and outputs the exclusive OR value r An arithmetic unit;
A hash function H 3 that outputs an integer with respect to an input value: {0, 1} * → Z (integer) is applied to a value γ determined depending on the exclusive OR value r, and is a result of the calculation. A fourth hash calculator that outputs a hash value t = H 3 (γ) εZ;
an integer calculation unit that calculates s = kt−x∈Z and outputs the calculation result s;
A signature output unit that outputs a signature σ = (r, s);
A signature generation apparatus comprising:
整数の秘密鍵xを格納する第1記憶部と、
Mビットのリカバリメッセージmrec∈{0,1}Mを格納する第2記憶部と、
整数の任意値kを生成する任意値生成部と、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=gk∈Gを算出し、当該演算結果Rを出力する群演算部と、
入力値に対してLビット(Lは署名検証装置と共有される正の整数)のハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、上記演算結果Rとリカバリメッセージmrecとに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H1(α)∈{0,1}Lを出力する第2ハッシュ演算部と、
上記リカバリメッセージmrecのビット長Mに応じて出力ビット長がMビットに定まるハッシュ関数H2:{0,1}*→{0,1}Mを、上記演算結果Rと上記ハッシュ値hとに依存して定まる値βに作用させ、その演算結果であるMビットのハッシュ値u=H2(β)∈{0,1}Mを出力する第3ハッシュ演算部と、
上記リカバリメッセージmrecと上記ハッシュ値uとの排他的論理和w=mrec(+)u∈{0,1}M((+)は排他的論理和演算子)を算出し、当該排他的論理和値wを出力する第1排他的論理和演算部と、
上記ハッシュ値h∈{0,1}Lを第1ビット位置に配置し、上記排他的論理和値w∈{0,1}Mを第2ビット位置に配置したL+Mビットのビット結合値r=h|w∈{0,1}L+Mを算出し、当該ビット結合値rを出力するビット結合部と、
入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Z(整数)を、上記ビット結合値rに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H3(γ)∈Zを出力する第4ハッシュ演算部と、
s=k−t・x∈Zを算出し、当該演算結果sを出力する整数演算部と、
署名σ=(r,s)を出力する署名出力部と、
を有することを特徴とする署名生成装置。 A signature generation device for generating a signature,
A first storage unit for storing an integer secret key x;
A second storage for storing an M-bit recovery message m rec ε {0,1} M ;
An arbitrary value generator for generating an arbitrary value k of an integer;
A group operation unit that calculates R = g k ∈G when the cyclic group of order q is G and the generation source of the cyclic group G is g, and outputs the operation result R;
A hash function H 1 : {0, 1} * → {0, 1} L that outputs a hash value of L bits (L is a positive integer shared with the signature verification apparatus) for the input value is obtained as a result of the above operation. A second hash operation unit that operates on a value α determined depending on R and the recovery message m rec and outputs an L-bit hash value h = H 1 (α) ε {0,1} L as a result of the operation When,
A hash function H 2 : {0, 1} * → {0, 1} M, whose output bit length is determined to be M bits according to the bit length M of the recovery message m rec , is obtained by calculating the operation result R and the hash value h. A third hash operation unit that operates on a value β determined depending on and outputs an M-bit hash value u = H 2 (β) ε {0,1} M as a result of the operation;
An exclusive OR w = m rec (+) uε {0,1} M ((+) is an exclusive OR operator) of the recovery message m rec and the hash value u is calculated. A first exclusive OR operation unit for outputting a logical sum value w;
The hash value hε {0,1} L is arranged at the first bit position, and the exclusive OR value wε {0,1} M is arranged at the second bit position. h | wε {0,1} L + M is calculated, and a bit combination unit that outputs the bit combination value r;
A hash function H 3 that outputs an integer with respect to an input value: {0, 1} * → Z (integer) is applied to a value γ determined depending on the bit combination value r, and a hash value that is a result of the operation a fourth hash calculator that outputs t = H 3 (γ) εZ;
an integer calculation unit that calculates s = kt−x∈Z and outputs the calculation result s;
A signature output unit that outputs a signature σ = (r, s);
A signature generation apparatus comprising:
Nビットのクリアメッセージmclr∈{0,1}Nを格納する第3記憶部をさらに有し、
上記第4ハッシュ演算部は、
上記ハッシュ関数H3:{0,1}*→Zを、上記rと上記クリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H3(γ)∈Zを出力し、
上記署名出力部は、
上記署名σ=(r,s)と上記クリアメッセージmclrとを出力する、
ことを特徴とする署名生成装置。 The signature generation device according to claim 1 or 2,
A third storage unit for storing an N-bit clear message m clr ε {0, 1} N ;
The fourth hash calculation unit is
The hash function H 3 : {0,1} * → Z is applied to a value γ determined depending on the r and the clear message m clr, and a hash value t = H 3 (γ) as a result of the calculation is applied. ∈Z, and
The signature output part
Outputting the signature σ = (r, s) and the clear message m clr ;
A signature generation apparatus characterized by the above.
上記R=gk∈Gは、楕円曲線上の点gの楕円スカラー倍(k倍)演算であり、
上記ハッシュ関数H0:{0,1}*→{0,1}L+Mを上記演算結果Rに作用させる演算は、楕円曲線上の点である上記演算結果Rを一義的又は限定的に特定する値に、上記ハッシュ関数H0を作用させる演算である、
ことを特徴とする署名生成装置。 The signature generation device according to claim 1,
R = g k ∈ G is an elliptic scalar multiplication (k times) operation of the point g on the elliptic curve,
The hash function H 0 : {0,1} * → {0,1} The calculation that applies L + M to the calculation result R uniquely or exclusively specifies the calculation result R that is a point on the elliptic curve. The operation is to apply the hash function H 0 to the value.
A signature generation apparatus characterized by the above.
上記R=gk∈Gは、楕円曲線上の点gの楕円スカラー倍(k倍)演算である、
ことを特徴とする署名生成装置。 The signature generation device according to claim 2,
R = g k ∈ G is an elliptic scalar multiplication (k times) operation of the point g on the elliptic curve.
A signature generation apparatus characterized by the above.
上記R=gk∈Gは、gx mod p(ただし、gは2以上の整数,p=2q+1)の演算である、
ことを特徴とする署名生成装置。 The signature generation device according to claim 1 or 2,
R = g k ∈G is an operation of g x mod p (where g is an integer of 2 or more, p = 2q + 1),
A signature generation apparatus characterized by the above.
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=gx∈Gを格納する第1記憶部と、
署名σ’=(r’,s’)の入力を受け付ける署名入力部と、
上記署名σ’=(r’,s’)を格納する第2記憶部と、
上記署名σ’に対応するリカバリメッセージmrec’のビット長M’を格納する第3記憶部と、
入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Z(整数)を、上記署名σ’が有するr’に依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H3(γ’)∈Zを出力する第1ハッシュ演算部と、
R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力する群演算部と、
上記リカバリメッセージmrec’のビット長M’に応じて出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)に定まるハッシュ関数H0:{0,1}*→{0,1}L+M’を上記演算結果R’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H0(R’)∈{0,1}L+M’を出力する第2ハッシュ演算部と、
上記ハッシュ値Π’と上記署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力する第1排他的論理和演算部と、
上記リカバリメッセージmrec’のビット長M’に応じて出力ビット長がM’ビットに定まるハッシュ関数H2:{0,1}*→{0,1}M’を、上記ハッシュ値Π’と上記排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}Lとに依存して定まる値β’に作用させ、その演算結果であるM’ビットのハッシュ値u’=H2(β’)∈{0,1}M’を出力する第3ハッシュ演算部と、
上記排他的論理和値d’の第2ビット位置のM’ビットの値w’∈{0,1}M’と上記ハッシュ値u’との排他的論理和w’(+)u’を算出し、その演算結果をリカバリメッセージmrec’∈{0,1}M’として出力する第2排他的論理和演算部と、
入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、上記ハッシュ値Π’と上記第2排他的論理和演算部で算出された上記リカバリメッセージmrec’とに依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H1(α’)∈{0,1}Lを出力する第4ハッシュ演算部と、
上記Lビットの値h’と上記ハッシュ値H1(α’)とを比較し、h’=H1(α’)であることを条件に、検証が成功である旨の情報を出力する比較部と、
を有することを特徴とする署名検証装置。 A signature verification device that performs signature verification,
A first memory for storing the public key y = g x ∈G corresponding to the secret key x∈Z of the signature generation apparatus when the cyclic group of order q is G and the generation source of the cyclic group G is g And
A signature input unit for receiving an input of a signature σ ′ = (r ′, s ′);
A second storage unit for storing the signature σ ′ = (r ′, s ′);
A third storage unit for storing the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′;
A hash function H 3 that outputs an integer with respect to an input value: {0, 1} * → Z (integer) is applied to a value γ ′ determined depending on r ′ included in the signature σ ′, and a result of the operation A first hash calculator that outputs a hash value t ′ = H 3 (γ ′) ∈Z,
A group operation unit that performs an operation of R ′ = g s ′ · y t ′ ∈G and outputs the operation result R ′;
Hash function H 0 : {0, 1} * → {where the output bit length is determined as L + M ′ bits (L is a positive integer shared with the signature generation device) according to the bit length M ′ of the recovery message m rec ′ 0,1} L + M ′ is applied to the operation result R ′, and the hash value Π ′ = H 0 (R ′) ε {0,1} L + M ′ of the L + M ′ bit that is the operation result is output. An arithmetic unit;
The exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ of the hash value Π ′ and r ′ of the signature σ ′ is calculated, and the exclusive OR value d ′ is calculated. A first exclusive OR operation unit that outputs
A hash function H 2 : {0,1} * → {0,1} M ′, whose output bit length is determined as M ′ bits according to the bit length M ′ of the recovery message m rec ′, is expressed as the hash value Π ′. It acts on the value β ′ determined depending on the L-bit value h′ε {0, 1} L at the first bit position of the exclusive OR value d ′, and the hash of the M′-bit that is the operation result A third hash calculator that outputs the value u ′ = H 2 (β ′) ∈ {0, 1} M ′ ;
Calculate the exclusive logical sum w ′ (+) u ′ of the M ′ bit value w′∈ {0, 1} M ′ and the hash value u ′ in the second bit position of the exclusive logical sum d ′. A second exclusive OR operation unit that outputs the operation result as a recovery message m rec '∈ {0, 1} M ′ ;
Hash function H 1 for outputting an L-bit hash value for the input value: {0, 1} * → {0, 1} L is calculated by the hash value Π ′ and the second exclusive OR operation unit. A fourth hash value that acts on a value α ′ determined depending on the recovery message m rec ′ and outputs an L-bit hash value H 1 (α ′) ∈ {0, 1} L as a result of the operation An arithmetic unit;
The L-bit value h ′ is compared with the hash value H 1 (α ′), and the comparison is performed to output information indicating that the verification is successful on condition that h ′ = H 1 (α ′). And
A signature verification apparatus comprising:
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=gx∈Gを格納する第1記憶部と、
署名σ’=(r’,s’)の入力を受け付ける署名入力部と、
上記署名σ’=(r’,s’)を格納する第2記憶部と、
上記署名σ’に対応するリカバリメッセージmrec’のビット長M’を格納する第3記憶部と、
入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Z(整数)を、上記署名σ’が有するr’に依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H3(γ’)∈Zを出力する第1ハッシュ演算部と、
R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力する群演算部と、
上記リカバリメッセージmrec’のビット長M’に応じて出力ビット長がM’ビットに定まるハッシュ関数H2:{0,1}*→{0,1}M’を、上記演算結果R’とr’の第1ビット位置のLビット(Lは署名生成装置と共有される正の整数)の値h’∈{0,1}Lとに依存して定まる値β’に作用させ、その演算結果であるM’ビットのハッシュ値u’=H2(β’)∈{0,1}M’を出力する第3ハッシュ演算部と、
上記r’の第2ビット位置のM’ビットの値w’∈{0,1}M’と上記ハッシュ値u’との排他的論理和w’(+)u’を算出し、その演算結果をリカバリメッセージmrec’∈{0,1}M’として出力する第2排他的論理和演算部と、
入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、上記演算結果R’と上記第2排他的論理和演算部で算出された上記リカバリメッセージmrec’とに依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H1(α’)∈{0,1}Lを出力する第4ハッシュ演算部と、
上記Lビットの値h’と上記ハッシュ値H1(α’)とを比較し、h’=H1(α’)であることを条件に、検証が成功である旨の情報を出力する比較部と、
を有することを特徴とする署名検証装置。 A signature verification device that performs signature verification,
A first memory for storing the public key y = g x ∈G corresponding to the secret key x∈Z of the signature generation apparatus when the cyclic group of order q is G and the generation source of the cyclic group G is g And
A signature input unit for receiving an input of a signature σ ′ = (r ′, s ′);
A second storage unit for storing the signature σ ′ = (r ′, s ′);
A third storage unit for storing the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′;
A hash function H 3 that outputs an integer with respect to an input value: {0, 1} * → Z (integer) is applied to a value γ ′ determined depending on r ′ included in the signature σ ′, and a result of the operation A first hash calculator that outputs a hash value t ′ = H 3 (γ ′) ∈Z,
A group operation unit that performs an operation of R ′ = g s ′ · y t ′ ∈G and outputs the operation result R ′;
A hash function H 2 : {0,1} * → {0,1} M ′, whose output bit length is determined as M ′ bits according to the bit length M ′ of the recovery message m rec ′, An operation is performed on a value β ′ determined depending on a value h′∈ {0, 1} L of L bits (L is a positive integer shared with the signature generation device) at the first bit position of r ′. A third hash calculation unit that outputs a hash value u ′ = H 2 (β ′) ε {0, 1} M ′ of the resulting M ′ bit;
An exclusive logical sum w ′ (+) u ′ of the value w′∈ {0, 1} M ′ of the M ′ bit at the second bit position of r ′ and the hash value u ′ is calculated, and the calculation result A second exclusive OR operation unit that outputs a recovery message m rec '∈ {0, 1} M ′ ;
Hash function H 1 for outputting an L-bit hash value for the input value: {0, 1} * → {0, 1} L is calculated by the calculation result R ′ and the second exclusive OR calculation unit. A fourth hash value that acts on a value α ′ determined depending on the recovery message m rec ′ and outputs an L-bit hash value H 1 (α ′) ∈ {0, 1} L as a result of the operation An arithmetic unit;
The L-bit value h ′ is compared with the hash value H 1 (α ′), and the comparison is performed to output information indicating that the verification is successful on condition that h ′ = H 1 (α ′). And
A signature verification apparatus comprising:
上記署名入力部は、
上記署名σ’と上記署名σ’に対応するクリアメッセージmclr’との入力を受け付け、
当該署名検証装置は、
上記クリアメッセージmclr’を格納する第4記憶部を有し、
上記第1ハッシュ演算部は、
上記ハッシュ関数H3:{0,1}*→Zを、上記署名σ’が有するr’と上記クリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H3(γ’)∈Zを出力する、
ことを特徴とする署名検証装置。 The signature verification device according to claim 7 or 8,
The signature input part
Accepting the input of the signature σ ′ and the clear message m clr ′ corresponding to the signature σ ′,
The signature verification device
A fourth storage unit for storing the clear message m clr ';
The first hash calculation unit includes:
The hash function H 3 : {0, 1} * → Z is applied to the value γ ′ determined depending on the r ′ of the signature σ ′ and the clear message m clr ′, and the hash that is the result of the operation Outputs the value t ′ = H 3 (γ ′) ∈Z,
A signature verification apparatus.
上記公開鍵y=gx∈Gは、楕円曲線上の点gの楕円スカラー倍(k倍)点であり、
上記R’=gs’・yt’∈Gは、楕円曲線上の点gを楕円スカラー倍(楕円s’倍)し、上記公開鍵yを楕円スカラー倍(楕円t’倍)し、それらの演算結果を楕円加算する演算であり、
上記ハッシュ関数H0:{0,1}*→{0,1}L+M’を上記演算結果R’に作用させる演算は、楕円曲線E上の点である上記演算結果R’を一義的又は限定的に特定する値に、上記ハッシュ関数H0を作用させる演算である、
ことを特徴とする署名検証装置。 The signature verification apparatus according to claim 7,
The public key y = g x ∈G is an elliptic scalar multiple (k times) point g on the elliptic curve,
R ′ = g s ′ · y t ′ ∈ G is obtained by multiplying the point g on the elliptic curve by elliptic scalar multiplication (elliptical s ′ multiple), and by multiplying the public key y by elliptic scalar multiplication (elliptical t ′ multiple), and Is the operation of adding the result of the ellipse,
The hash function H 0 : {0,1} * → {0,1} L + M ′ is applied to the calculation result R ′ as a result of the calculation result R ′, which is a point on the elliptic curve E, unambiguously or limited. Is an operation that causes the hash function H 0 to act on a specific value.
A signature verification apparatus.
上記公開鍵y=gx∈Gは、楕円曲線上の点gの楕円スカラー倍(k倍)点であり、
上記R’=gs’・yt’∈Gは、楕円曲線上の点gを楕円スカラー倍(楕円s’倍)し、上記公開鍵yを楕円スカラー倍(楕円t’倍)し、それらの演算結果を楕円加算する演算である、
ことを特徴とする署名検証装置。 The signature verification device according to claim 8, comprising:
The public key y = g x ∈G is an elliptic scalar multiple (k times) point g on the elliptic curve,
R ′ = g s ′ · y t ′ ∈ G is obtained by multiplying the point g on the elliptic curve by elliptic scalar multiplication (elliptical s ′ multiple), and by multiplying the public key y by elliptic scalar multiplication (elliptical t ′ multiple), and Is an operation that adds the ellipses of the operation results of
A signature verification apparatus.
上記公開鍵y=gx∈Gは、gx mod p(ただし、gは2以上の整数,p=2q+1)であり、
上記R’=gs’・yt’∈Gは、gs’・yt’ mod pの演算をである、
ことを特徴とする署名検証装置。 The signature verification device according to claim 7 or 8,
The public key y = g x ∈G is g x mod p (where g is an integer of 2 or more, p = 2q + 1),
R ′ = g s ′ · y t ′ ∈G is an operation of g s ′ · y t ′ mod p,
A signature verification apparatus.
第1記憶部に整数の秘密鍵xを格納するステップと、
第2記憶部にMビットのリカバリメッセージmrec∈{0,1}Mを格納するステップと、
任意値生成部が、整数の任意値kを生成するステップと、
群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=gk∈Gを算出し、当該演算結果Rを出力するステップと、
第1ハッシュ演算部が、上記リカバリメッセージmrecのビット長Mに応じて出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)に定まるハッシュ関数H0:{0,1}*→{0,1}L+Mを、上記演算結果Rに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H0(R)∈{0,1}L+Mを出力するステップと、
第2ハッシュ演算部が、入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、上記ハッシュ値Πとリカバリメッセージmrecとに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H1(α)∈{0,1}Lを出力するステップと、
第3ハッシュ演算部が、上記リカバリメッセージmrecのビット長Mに応じて出力ビット長がMビットに定まるハッシュ関数H2:{0,1}*→{0,1}Mを、上記ハッシュ値Πと上記ハッシュ値hとに依存して定まる値βに作用させ、その演算結果であるMビットのハッシュ値u=H2(β)∈{0,1}Mを出力するステップと、
第1排他的論理和演算部が、上記リカバリメッセージmrecと上記ハッシュ値uとの排他的論理和w=mrec(+)u∈{0,1}M((+)は排他的論理和演算子)を算出し、当該排他的論理和値wを出力するステップと、
ビット結合部が、上記ハッシュ値h∈{0,1}Lを第1ビット位置に配置し、上記排他的論理和値w∈{0,1}Mを第2ビット位置に配置したL+Mビットのビット結合値d=h|w∈{0,1}L+Mを算出し、当該ビット結合値dを出力するステップと、
第2排他的論理和演算部が、上記ハッシュ値Πと上記ビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力するステップと、
第4ハッシュ演算部が、入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Z(整数)を、上記排他的論理和値rに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H3(γ)∈Zを出力するステップと、
整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力するステップと、
署名出力部が署名σ=(r,s)を出力するステップと、
を有することを特徴とする署名生成方法。 A signature generation method of a signature generation device, comprising:
Storing an integer secret key x in the first storage unit;
Storing an M-bit recovery message m rec ε {0,1} M in the second storage unit;
An arbitrary value generation unit generating an integer arbitrary value k;
A group calculation unit calculating R = g k ∈G when the cyclic group of order q is G, and the generation source of the cyclic group G is g, and outputting the calculation result R;
Hash function H 0 : {0, 1 in which the first hash calculator determines an output bit length of L + M bits (L is a positive integer shared with the signature verification device) according to the bit length M of the recovery message m rec. } * → {0, 1} L + M is applied to the operation result R, and the L + M bit hash value Π = H 0 (R) ∈ {0, 1} L + M , which is the operation result, is output;
The second hash calculation unit outputs a hash function H 1 : {0, 1} * → {0, 1} L that outputs an L-bit hash value with respect to the input value, the hash value Π and the recovery message m rec Acting on a value α determined depending on, and outputting an L-bit hash value h = H 1 (α) ∈ {0, 1} L as the operation result;
The third hash calculator calculates the hash function H 2 : {0,1} * → {0,1} M, whose output bit length is determined to be M bits according to the bit length M of the recovery message m rec , as the hash value Acting on a value β determined depending on Π and the hash value h, and outputting an M-bit hash value u = H 2 (β) ε {0,1} M as a result of the operation;
The first exclusive OR operation unit performs an exclusive OR of the recovery message m rec and the hash value u = m rec (+) uε {0,1} M ((+) is an exclusive OR Calculating an operator) and outputting the exclusive OR value w;
The bit combination unit arranges the hash value hε {0,1} L at the first bit position and the L + M bits of the exclusive OR value wε {0,1} M at the second bit position. Calculating a bit combination value d = h | wε {0,1} L + M and outputting the bit combination value d;
The second exclusive OR operation unit calculates an exclusive OR r = Π (+) dε {0, 1} L + M between the hash value Π and the bit combination value d, and the exclusive OR value outputting r;
The fourth hash calculator applies a hash function H 3 : {0, 1} * → Z (integer) that outputs an integer to the input value to a value γ determined depending on the exclusive OR value r. And outputting a hash value t = H 3 (γ) εZ as a result of the calculation;
An integer calculation unit calculating s = kt−x∈Z and outputting the calculation result s;
A step in which the signature output unit outputs a signature σ = (r, s);
A signature generation method characterized by comprising:
第1記憶部に整数の秘密鍵xを格納するステップと、
第2記憶部にMビットのリカバリメッセージmrec∈{0,1}Mを格納するステップと、
任意値生成部が、整数の任意値kを生成するステップと、
群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=gk∈Gを算出し、当該演算結果Rを出力するステップと、
第2ハッシュ演算部が、入力値に対してLビット(Lは署名検証装置と共有される正の整数)のハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、上記演算結果Rとリカバリメッセージmrecとに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H1(α)∈{0,1}Lを出力するステップと、
第3ハッシュ演算部が、上記リカバリメッセージmrecのビット長Mに応じて出力ビット長がMビットに定まるハッシュ関数H2:{0,1}*→{0,1}Mを、上記演算結果Rと上記ハッシュ値hとに依存して定まる値βに作用させ、その演算結果であるMビットのハッシュ値u=H2(β)∈{0,1}Mを出力するステップと、
第1排他的論理和演算部が、上記リカバリメッセージmrecと上記ハッシュ値uとの排他的論理和w=mrec(+)u∈{0,1}M((+)は排他的論理和演算子)を算出し、当該排他的論理和値wを出力するステップと、
ビット結合部が、上記ハッシュ値h∈{0,1}Lを第1ビット位置に配置し、上記排他的論理和値w∈{0,1}Mを第2ビット位置に配置したL+Mビットのビット結合値r=h|w∈{0,1}L+Mを算出し、当該ビット結合値rを出力するステップと、
第4ハッシュ演算部が、入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Z(整数)を、上記ビット結合値rに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H3(γ)∈Zを出力するステップと、
整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力するステップと、
署名出力部が署名σ=(r,s)を出力するステップと、
を有することを特徴とする署名生成方法。 A signature generation method of a signature generation device, comprising:
Storing an integer secret key x in the first storage unit;
Storing an M-bit recovery message m rec ε {0,1} M in the second storage unit;
An arbitrary value generation unit generating an integer arbitrary value k;
A group calculation unit calculating R = g k ∈G when the cyclic group of order q is G, and the generation source of the cyclic group G is g, and outputting the calculation result R;
Hash function H 1 : {0, 1} * → {0, 1 for the second hash calculator to output a hash value of L bits (L is a positive integer shared with the signature verification device) for the input value } L is applied to a value α determined depending on the operation result R and the recovery message m rec, and an L-bit hash value h = H 1 (α) ∈ {0, 1} L , which is the operation result, is used. Output step;
The third hash calculator calculates the hash function H 2 : {0,1} * → {0,1} M, whose output bit length is determined to be M bits according to the bit length M of the recovery message m rec , as the result of the calculation Acting on a value β determined depending on R and the hash value h, and outputting an M-bit hash value u = H 2 (β) ε {0,1} M as a result of the operation;
The first exclusive OR operation unit performs an exclusive OR of the recovery message m rec and the hash value u = m rec (+) uε {0,1} M ((+) is an exclusive OR Calculating an operator) and outputting the exclusive OR value w;
The bit combination unit arranges the hash value hε {0,1} L at the first bit position and the L + M bits of the exclusive OR value wε {0,1} M at the second bit position. Calculating a bit combination value r = h | wε {0,1} L + M and outputting the bit combination value r;
The fourth hash calculator applies a hash function H 3 : {0, 1} * → Z (integer) that outputs an integer to the input value to a value γ determined depending on the bit combination value r; Outputting a hash value t = H 3 (γ) εZ as a result of the operation;
An integer calculation unit calculating s = kt−x∈Z and outputting the calculation result s;
A step in which the signature output unit outputs a signature σ = (r, s);
A signature generation method characterized by comprising:
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Z(整数)に対応する公開鍵y=gx∈Gを第1記憶部に格納するステップと、
署名入力部が、署名σ’=(r’,s’)の入力を受け付けるステップと、
第2記憶部に上記署名σ’=(r’,s’)を格納するステップと、
上記署名σ’に対応するリカバリメッセージmrec’のビット長M’を第3記憶部に格納するステップと、
第1ハッシュ演算部が、入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Zを、上記署名σ’が有するr’に依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H3(γ’)∈Zを出力するステップと、
群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力するステップと、
第2ハッシュ演算部が、上記リカバリメッセージmrec’のビット長M’に応じて出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)に定まるハッシュ関数H0:{0,1}*→{0,1}L+M’を、上記演算結果R’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H0(R’)∈{0,1}L+M’を出力するステップと、
第1排他的論理和演算部が、上記ハッシュ値Π’と上記署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力するステップと、
第3ハッシュ演算部が、上記リカバリメッセージmrec’のビット長M’に応じて出力ビット長がM’ビットに定まるハッシュ関数H2:{0,1}*→{0,1}M’を、上記ハッシュ値Π’と上記排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}Lとに依存して定まる値β’に作用させ、その演算結果であるM’ビットのハッシュ値u’=H2(β’)∈{0,1}M’を出力するステップと、
第2排他的論理和演算部が、上記排他的論理和値d’の第2ビット位置のM’ビットの値w’∈{0,1}M’と上記ハッシュ値u’との排他的論理和w’(+)u’を算出し、その演算結果をリカバリメッセージmrec’∈{0,1}M’として出力するステップと、
第4ハッシュ演算部が、入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、上記ハッシュ値Π’と上記第2排他的論理和演算部で算出された上記リカバリメッセージmrec’とに依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H1(α’)∈{0,1}Lを出力するステップと、
比較部が、上記Lビットの値h’と上記ハッシュ値H1(α’)とを比較し、h’=H1(α’)であることを条件に、検証が成功である旨の情報を出力するステップと、
を有することを特徴とする署名検証方法。 A signature verification method for a signature verification apparatus, comprising:
The public key y = g x ∈G corresponding to the secret key x∈Z (integer) of the signature generation apparatus when the cyclic group of order q is G and the generation source of the cyclic group G is g is the first. Storing in the storage unit;
A step in which a signature input unit receives an input of a signature σ ′ = (r ′, s ′);
Storing the signature σ ′ = (r ′, s ′) in the second storage unit;
Storing the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′ in the third storage unit;
The first hash calculator applies a hash function H 3 : {0, 1} * → Z that outputs an integer to the input value to a value γ ′ determined depending on r ′ of the signature σ ′. Outputting a hash value t ′ = H 3 (γ ′) εZ as a result of the operation;
A group operation unit performing an operation of R ′ = g s ′ · y t ′ εG and outputting the operation result R ′;
Hash function H 0 in which the second hash calculator determines the output bit length to be L + M ′ bits (L is a positive integer shared with the signature generation device) according to the bit length M ′ of the recovery message m rec ′: { 0,1} * → {0,1} L + M ′ is applied to the operation result R ′, and the hash value Π ′ = H 0 (R ′) ∈ {0,1} of the L + M ′ bits as the operation result Outputting L + M ′ ;
The first exclusive OR operation unit calculates an exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ included in the signature σ ′. And outputting the exclusive OR value d ′;
The third hash calculator calculates a hash function H 2 : {0, 1} * → {0, 1} M ′, whose output bit length is determined as M ′ bits according to the bit length M ′ of the recovery message m rec ′. , And acting on a value β ′ determined depending on the L-bit value h′∈ {0, 1} L at the first bit position of the hash value Π ′ and the exclusive OR value d ′. Outputting a hash value u ′ = H 2 (β ′) ε {0,1} M ′ of M ′ bits,
The second exclusive OR operation unit performs exclusive logic between the value w′∈ {0, 1} M ′ of the M ′ bit at the second bit position of the exclusive OR value d ′ and the hash value u ′. Calculating the sum w ′ (+) u ′ and outputting the result of the operation as a recovery message m rec ′ {0, 1} M ′ ;
A hash function H 1 : {0, 1} * → {0, 1} L, in which the fourth hash calculation unit outputs an L-bit hash value with respect to the input value, is used as the hash value Π ′ and the second exclusive value. It acts on a value α ′ determined depending on the recovery message m rec ′ calculated by the logical OR operation unit, and an L-bit hash value H 1 (α ′) ∈ {0, 1} as a result of the operation Outputting L ;
The comparison unit compares the value h ′ of the L bit with the hash value H 1 (α ′), and indicates that the verification is successful on the condition that h ′ = H 1 (α ′). A step of outputting
A signature verification method comprising:
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Z(整数)に対応する公開鍵y=gx∈Gを第1記憶部に格納するステップと、
署名入力部が、署名σ’=(r’,s’)の入力を受け付けるステップと、
第2記憶部に上記署名σ’=(r’,s’)を格納するステップと、
上記署名σ’に対応するリカバリメッセージmrec’のビット長M’を第3記憶部に格納するステップと、
第1ハッシュ演算部が、入力値に対して整数を出力するハッシュ関数H3:{0,1}*→Zを、上記署名σ’が有するr’に依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H3(γ’)∈Z(整数)を出力するステップと、
群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力するステップと、
第3ハッシュ演算部が、上記リカバリメッセージmrec’のビット長M’に応じて出力ビット長がM’ビットに定まるハッシュ関数H2:{0,1}*→{0,1}M’を、上記演算結果R’と上記r’の第1ビット位置のLビット(Lは署名生成装置と共有される正の整数)の値h’∈{0,1}Lとに依存して定まる値β’に作用させ、その演算結果であるM’ビットのハッシュ値u’=H2(β’)∈{0,1}M’を出力するステップと、
第2排他的論理和演算部が、上記r’の第2ビット位置のM’ビットの値w’∈{0,1}M’と上記ハッシュ値u’との排他的論理和w’(+)u’を算出し、その演算結果をリカバリメッセージmrec’∈{0,1}M’として出力するステップと、
第4ハッシュ演算部が、入力値に対してLビットのハッシュ値を出力するハッシュ関数H1:{0,1}*→{0,1}Lを、上記演算結果R’と上記第2排他的論理和演算部で算出された上記リカバリメッセージmrec’とに依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H1(α’)∈{0,1}Lを出力するステップと、
比較部が、上記Lビットの値h’と上記ハッシュ値H1(α’)とを比較し、h’=H1(α’)であることを条件に、検証が成功である旨の情報を出力するステップと、
を有することを特徴とする署名検証方法。 A signature verification method for a signature verification apparatus, comprising:
The public key y = g x ∈G corresponding to the secret key x∈Z (integer) of the signature generation apparatus when the cyclic group of order q is G and the generation source of the cyclic group G is g is first Storing in the storage unit;
A step in which a signature input unit receives an input of a signature σ ′ = (r ′, s ′);
Storing the signature σ ′ = (r ′, s ′) in the second storage unit;
Storing the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′ in the third storage unit;
The first hash calculator applies a hash function H 3 : {0, 1} * → Z that outputs an integer to the input value to a value γ ′ determined depending on r ′ of the signature σ ′. Outputting a hash value t ′ = H 3 (γ ′) ∈Z (integer) as a result of the operation;
A group operation unit performing an operation of R ′ = g s ′ · y t ′ εG and outputting the operation result R ′;
The third hash calculator calculates a hash function H 2 : {0, 1} * → {0, 1} M ′, whose output bit length is determined as M ′ bits according to the bit length M ′ of the recovery message m rec ′. , A value determined depending on the operation result R ′ and the value h′∈ {0, 1} L of the L bit (L is a positive integer shared with the signature generation device) at the first bit position of the r ′. acting on β ′ and outputting an M′-bit hash value u ′ = H 2 (β ′) ∈ {0, 1} M ′ as a result of the operation;
The second exclusive OR operation unit performs exclusive OR w ′ (+) between the value w′∈ {0, 1} M ′ of the M ′ bit at the second bit position of r ′ and the hash value u ′. ) Calculating u ′ and outputting the result of the operation as a recovery message m rec '∈ {0, 1} M ′ ;
A hash function H 1 : {0, 1} * → {0, 1} L, in which the fourth hash calculation unit outputs an L-bit hash value with respect to the input value, is used as the calculation result R ′ and the second exclusive It acts on a value α ′ determined depending on the recovery message m rec ′ calculated by the logical OR operation unit, and an L-bit hash value H 1 (α ′) ∈ {0, 1} as a result of the operation Outputting L ;
The comparison unit compares the value h ′ of the L bit with the hash value H 1 (α ′), and indicates that the verification is successful on the condition that h ′ = H 1 (α ′). A step of outputting
A signature verification method comprising:
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007280287A JP4928412B2 (en) | 2006-10-31 | 2007-10-29 | Signature generation apparatus, signature verification apparatus, method and program thereof |
EP08752053.2A EP2207156B1 (en) | 2007-10-29 | 2008-04-24 | Signature generating device, signature verifying device, their methods, and their programs |
US12/682,896 US8458478B2 (en) | 2007-10-29 | 2008-04-24 | Signature generating apparatus, signature verifying apparatus, and methods and programs therefor |
CA2702280A CA2702280C (en) | 2007-10-29 | 2008-04-24 | Signature generating apparatus, signature verifying apparatus and methods therefor |
PCT/JP2008/057962 WO2009057338A1 (en) | 2007-10-29 | 2008-04-24 | Signature generating device, signature verifying device, their methods, and their programs |
CN200880111550.3A CN101828210B (en) | 2007-10-29 | 2008-04-24 | Signature generating device, signature verifying device, their methods |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006295598 | 2006-10-31 | ||
JP2006295598 | 2006-10-31 | ||
JP2007280287A JP4928412B2 (en) | 2006-10-31 | 2007-10-29 | Signature generation apparatus, signature verification apparatus, method and program thereof |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008136193A true JP2008136193A (en) | 2008-06-12 |
JP2008136193A5 JP2008136193A5 (en) | 2011-01-20 |
JP4928412B2 JP4928412B2 (en) | 2012-05-09 |
Family
ID=39560667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007280287A Active JP4928412B2 (en) | 2006-10-31 | 2007-10-29 | Signature generation apparatus, signature verification apparatus, method and program thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4928412B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814989A (en) * | 2009-02-19 | 2010-08-25 | 汤姆森许可贸易公司 | Be used to hash to the method and apparatus on the point of elliptic curve |
KR101325484B1 (en) | 2012-11-09 | 2013-11-07 | 한국기초과학지원연구원 | Identity-based signature scheme with message recovery and multi-user broadcast authentication method using the scheme |
US9709416B2 (en) | 2012-12-05 | 2017-07-18 | Denso Corporation | Destination proposal system, destination proposal method, and storage medium for program product |
CN111130791A (en) * | 2019-12-09 | 2020-05-08 | 飞天诚信科技股份有限公司 | Data signature method, electronic device and computer readable storage medium |
CN114128213A (en) * | 2019-05-29 | 2022-03-01 | 比特飞翔区块链株式会社 | Apparatus, method, and program for verifying authenticity of public key |
-
2007
- 2007-10-29 JP JP2007280287A patent/JP4928412B2/en active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814989A (en) * | 2009-02-19 | 2010-08-25 | 汤姆森许可贸易公司 | Be used to hash to the method and apparatus on the point of elliptic curve |
KR101325484B1 (en) | 2012-11-09 | 2013-11-07 | 한국기초과학지원연구원 | Identity-based signature scheme with message recovery and multi-user broadcast authentication method using the scheme |
US9709416B2 (en) | 2012-12-05 | 2017-07-18 | Denso Corporation | Destination proposal system, destination proposal method, and storage medium for program product |
CN114128213A (en) * | 2019-05-29 | 2022-03-01 | 比特飞翔区块链株式会社 | Apparatus, method, and program for verifying authenticity of public key |
CN114128213B (en) * | 2019-05-29 | 2024-05-28 | 比特飞翔区块链株式会社 | Apparatus, method, and program for verifying the authenticity of a public key |
CN111130791A (en) * | 2019-12-09 | 2020-05-08 | 飞天诚信科技股份有限公司 | Data signature method, electronic device and computer readable storage medium |
CN111130791B (en) * | 2019-12-09 | 2022-12-20 | 飞天诚信科技股份有限公司 | Data signature method, electronic device and computer readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
JP4928412B2 (en) | 2012-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2207156B1 (en) | Signature generating device, signature verifying device, their methods, and their programs | |
JP4575283B2 (en) | ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND METHOD | |
TW202101432A (en) | Data homomorphic encryption and decryption method and apparatus for implementing privacy protection | |
US20130051552A1 (en) | Device and method for obtaining a cryptographic key | |
CN111066285A (en) | Method for recovering public key based on SM2 signature | |
US20190058580A1 (en) | System and method for publication of private data using a blockchain network | |
CN111159745B (en) | Verification method and device suitable for block chain | |
JP5099003B2 (en) | Group signature system and information processing method | |
JP4928412B2 (en) | Signature generation apparatus, signature verification apparatus, method and program thereof | |
CN111325535A (en) | Block chain private key management method, system and storage medium based on elliptic curve migration | |
TWI807103B (en) | Computer implemented system and method for sharing a common secret | |
JP2006311383A (en) | Data managing method, data management system and data managing device | |
WO2018216512A1 (en) | Secret tamper detection system, secret tamper detection device, method for detecting secret tamper, and program | |
JP4875448B2 (en) | Key generation apparatus, anonymous signature system, management apparatus, anonymous signature method, and program | |
JP2011040932A (en) | Authenticated encryption device, authenticated encryption method, verified decryption device, verified decryption method, encryption system, program, recording medium | |
Chen et al. | An efficient date-constraint hierarchical key management scheme for mobile agents | |
JP4814755B2 (en) | Signature generation apparatus, signature verification apparatus, method and program thereof | |
Easttom | More Approaches to Quantum-Resistant Cryptography | |
JP4676873B2 (en) | Parameter generating device, encryption key generating device, method and program thereof | |
JP4692022B2 (en) | Scalar multiplication apparatus and program for elliptic curve cryptography | |
JP7317261B2 (en) | Encryption device, decryption device, encryption method, encryption program, decryption method and decryption program | |
JP4802228B2 (en) | Key generation apparatus and program | |
WO2023242955A1 (en) | Confidential information processing system, confidential information processing method, and confidential information processing program | |
JP3881273B2 (en) | ENCRYPTION KEY GENERATION DEVICE, ENCRYPTION KEY GENERATION PROGRAM, AND RECORDING MEDIUM CONTAINING THE PROGRAM | |
WO2023228408A1 (en) | Parameter generation system, parameter generation method, and parameter generation program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100217 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110621 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110801 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110812 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111228 |
|
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: 20120124 |
|
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: 20120210 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150217 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4928412 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |