JP2008113315A - Signature generation device, signature verification device, methods and programs therefor - Google Patents

Signature generation device, signature verification device, methods and programs therefor Download PDF

Info

Publication number
JP2008113315A
JP2008113315A JP2006295599A JP2006295599A JP2008113315A JP 2008113315 A JP2008113315 A JP 2008113315A JP 2006295599 A JP2006295599 A JP 2006295599A JP 2006295599 A JP2006295599 A JP 2006295599A JP 2008113315 A JP2008113315 A JP 2008113315A
Authority
JP
Japan
Prior art keywords
value
signature
bit
hash
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
Application number
JP2006295599A
Other languages
Japanese (ja)
Other versions
JP4814755B2 (en
JP2008113315A5 (en
Inventor
Kotaro Suzuki
幸太郎 鈴木
Miki Yasuda
幹 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006295599A priority Critical patent/JP4814755B2/en
Publication of JP2008113315A publication Critical patent/JP2008113315A/en
Publication of JP2008113315A5 publication Critical patent/JP2008113315A5/ja
Application granted granted Critical
Publication of JP4814755B2 publication Critical patent/JP4814755B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To prevent a third party from generating an unauthorized message restoration signature to pass signature verification. <P>SOLUTION: X denotes a secret key of a signature generation device, "m<SB>rec</SB>is one element of a set ä0, 1}<SP>M</SP>" is used as a recovery message, "m<SB>clr</SB>is one element of a set ä0, 1}<SP>N</SP>" is used as a clear message, h denotes a shared value between the signature generation device and a signature verification device, k is set as an optional value, g denotes a generating element of a cyclic group G of an order q, R denotes "g<SP>k</SP>is one element of a set G", H<SB>0</SB>denotes a hash function H<SB>0</SB>:ä0, 1}<SP>*</SP>→ä0, 1}<SP>L+M</SP>of output variable length, H<SB>1</SB>denotes a hash function H<SB>1</SB>:ä0, 1}<SP>*</SP>→ä0, 1}<SP>L</SP>, H<SB>3</SB>denotes a hash function H<SB>3</SB>:ä0, 1}<SP>*</SP>→Z<SB>q</SB>, β is expressed as β=(R, M), γ is expressed as γ=(r, m<SB>clr</SB>, M), t is expressed as t=H<SB>3</SB>(γ), s is expressed as "s=k-t×x is one element of a set Z" , r is expressed as r=H<SB>0</SB>(β)(+)(h¾m<SB>rec</SB>), (+) is expressed as "(+) denotes an exclusive OR operator" and a signature is expressed as σ=(r, s). <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

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

メッセージ復元署名の従来技術として非特許文献1のものがある。この方式は、復元できるメッセージを可変長にできるという利点がある。以下、非特許文献1の署名方式を簡略化して説明する。   Non-patent document 1 discloses a conventional technique for message restoration signature. This method has an advantage that a message that can be restored can be of variable length. Hereinafter, the signature method of Non-Patent Document 1 will be described in a simplified manner.

〔背景技術での定義〕
P:楕円曲線E上の点からなる巡回群の元
h∈{0,1}L,q,L:署名生成装置と署名検証装置とでの共用パラメータ
x:署名生成装置の秘密鍵
Y:秘密鍵xに対応する公開鍵(Y=x・P∈E)
m:署名対象のメッセージ
:{0,1}→{0,1}L+M(出力ビット長可変)
:{0,1}→Zq
[Definition in Background Art]
P: element of cyclic group consisting of points on elliptic curve E hε {0,1} L , q, L: shared parameters between signature generation device and signature verification device x: secret key of signature generation device Y: secret Public key corresponding to key x (Y = x · P∈E)
m: Message to be signed F 0 : {0,1} * → {0,1} L + M (Output bit length variable)
F 1 : {0,1} * → Z q

[署名生成]
(s-1) メッセージm∈{0,1}N+Mをリカバリメッセージmrec∈{0,1}Mとクリアメッセージmclr∈{0,1}Nとに分割
(s-2) 乱数k∈{1,...,n−1}を選択
(s-3) R=k・P=(R1,R2)∈E
(s-4) Π=F0(R1)∈{0,1}L+M (δ|εはδとεとのビット結合)
(s-5) d=h|mrec∈{0,1}L+M
(s-6) r=d(+)Π∈{0,1}L+M (δ(+)εはδとεとの排他的論理和)
(s-7) t=F1(r|mclr)∈Zq
(s-8) s=(k-x・t) mod q
(s-9) σ=(r,s),mclr出力
[Signature generation]
(s-1) Divide message m∈ {0,1} N + M into recovery message m rec ∈ {0,1} M and clear message m clr ∈ {0,1} N
(s-2) Select a random number k∈ {1, ..., n-1}
(s-3) R = k ・ P = (R 1 , R 2 ) ∈E
(s-4) Π = F 0 (R 1 ) ∈ {0,1} L + M (δ | ε is a bit combination of δ and ε)
(s-5) d = h | m rec ∈ {0,1} L + M
(s-6) r = d (+) Π∈ {0,1} L + M (δ (+) ε is exclusive OR of δ and ε)
(s-7) t = F 1 (r | m clr ) ∈Z q
(s-8) s = (kx ・ t) mod q
(s-9) σ = (r, s), m clr output

[署名検証]
(v-1) σ'=(r',s'),mclr'入力
(v-2) t'=F1(r'|mclr')∈Zq
(v-3) R'=s'・P+t'・Y=(R1',R2')∈E
(v-4) Π'=F0(R1') ∈{0,1}L+M'(M'はr'のビット長からLを引いた値)
(v-5) d'=r'(+)Π' ∈{0,1}L+M'
(v-6) d'の上位Lビットh'と下位M’ビットmrec'とを抽出
(v-7) h'=hであれば検証合格。リカバリメッセージとしてmrec'出力
"ECPV(Elliptic Curve Pintsov-Vanstone message recovery signature)", INTERNATIONAL STANDARD ISO/IEC 9796-3, pp.27-29.
[Signature verification]
(v-1) σ '= (r', s '), m clr ' input
(v-2) t '= F 1 (r' | m clr ') ∈Z q
(v-3) R '= s' ・ P + t' ・ Y = (R 1 ', R 2 ') ∈E
(v-4) Π '= F 0 (R 1 ') ∈ {0,1} L + M ' (M' is the bit length of r 'minus L)
(v-5) d '= r' (+) Π '∈ {0,1} L + M'
(v-6) Extracting upper L bit h 'and lower M' bit m rec 'of d'
(v-7) If h '= h, the verification is passed. M rec 'output as recovery message
"ECPV (Elliptic Curve Pintsov-Vanstone message recovery signature)", INTERNATIONAL STANDARD ISO / IEC 9796-3, pp.27-29.

しかし、非特許文献1の署名方式の場合、署名σ=(s,r)とクリアメッセージmclrとを入手した攻撃者が、署名検証に合格する別のメッセージに対する署名を生成できる可能性があるという問題点がある。以下にその詳細を説明する。
署名σ=(s,r)とクリアメッセージmclrとを入手した攻撃者は、署名σが有するrのビットをr=r1|m2clrとなるr1とm2clrとに分割することができる。さらに、この攻撃者は、このように分割したm2clrと入手したクリアメッセージmclrとをビット結合してm1clr=m2clr|mclrを生成できる。
However, in the case of the signature method of Non-Patent Document 1, an attacker who has obtained the signature σ = (s, r) and the clear message m clr may be able to generate a signature for another message that passes the signature verification. There is a problem. Details will be described below.
An attacker who has obtained the signature σ = (s, r) and the clear message m clr can divide the bits of r included in the signature σ into r1 and m2 clr where r = r1 | m2 clr . Furthermore, the attacker can generate m1 clr = m2 clr | m clr by bit-combining the divided m2 clr and the obtained clear message m clr .

ここで、r1|m1clr=r1|m2clr|mclr=r|mclrを満たすため、正規のrとmclrとの組に対するtと、攻撃者が抽出した不正なr1とm1clrに対するtは、
(s-7) t=F1(r|mclr)= F1(r1|m1clr) …(1)
と等しくなる。そして、sは
(s-8) s=(k-x・t) mod q …(2)
によって求めているのだから、正規のrとmclrとの組に対するsと、攻撃者が抽出した不正なr1とm1clrに対するsは等しくなる。すなわち、入手した正規な署名σ=(s,r)とクリアメッセージmclrとを入手した攻撃者は、不正なクリアメッセージm1clrに対する署名(r1,s)を生成できる。
Here, in order to satisfy r1 | m1 clr = r1 | m2 clr | m clr = r | m clr , t for a pair of normal r and m clr and t for illegal r1 and m1 clr extracted by the attacker Is
(s-7) t = F 1 (r | m clr ) = F 1 (r1 | m1 clr )… (1)
Is equal to And s
(s-8) s = (kx ・ t) mod q… (2)
Therefore , s for a pair of regular r and m clr is equal to s for illegal r1 and m1 clr extracted by the attacker. That is, an attacker who has obtained the obtained normal signature σ = (s, r) and the clear message m clr can generate a signature (r1, s) for the illegal clear message m1 clr .

このような署名(r1,s)と不正なクリアメッセージm1clrとを上述のように検証すると以下のようになる。
(v-2) t'=F1(r'|mclr')=F1(r1'|m1clr')=t ((1)より)
(v-3) R'=s'・P+t'・Y= s・P+t・Y=(R1,R2)∈E
(v-4) Π'=F0(R1')=F0(R1)∈{0,1}L+M'(M'はr'のビット長からLを引いた値)
(v-5) d'=r'(+)Π'=r1(+)Π'∈{0,1}L+M'
(v-6) d'の上位Lビットh'と下位M’ビットmrec'とを抽出。ここで、攻撃者がr1を生成する際に正規のrから除去したm2clr部分(r=r1|m2clr)のビット数がリカバリメッセージmrecのビット数M以下であり、なおかつ、関数F(R)の出力値のビット数をL+MからL+M’に変化させた場合にF(R)の上位Lビットが変化しないならば、攻撃者によってrからr1への改変が行われても、d'の上位Lビットh'は影響をうけない。すなわちh'=hとなり、検証に合格する。
When such a signature (r1, s) and an illegal clear message m1 clr are verified as described above, the following is obtained.
(v-2) t '= F 1 (r' | m clr ') = F 1 (r1' | m1 clr ') = t (from (1))
(v-3) R '= s' ・ P + t' ・ Y = s ・ P + t ・ Y = (R 1 , R 2 ) ∈E
(v-4) Π '= F 0 (R 1 ') = F 0 (R 1 ) ∈ {0,1} L + M ' (M' is the value obtained by subtracting L from the bit length of r ')
(v-5) d '= r' (+) Π '= r1 (+) Π'∈ {0,1} L + M'
(v-6) The upper L bit h ′ and the lower M ′ bit m rec ′ of d ′ are extracted. Here, the bit number of the m2 clr part (r = r1 | m2 clr ) removed from the regular r when the attacker generates r1 is equal to or less than the bit number M of the recovery message m rec , and the function F 0 If the upper L bits of F 0 (R 1 ) do not change when the number of bits of the output value of (R 1 ) is changed from L + M to L + M ′, the attacker changes the r to r1. However, the upper L bits h ′ of d ′ are not affected. That is, h ′ = h and the verification is passed.

本発明はこのような点に鑑みてなされたものであり、署名σ=(s,r)とクリアメッセージmclrとを入手した攻撃者が別のメッセージに対する署名を偽造する攻撃を検出可能な署名方式を提供することを目的とする。 The present invention has been made in view of the above points, and a signature that can detect an attack in which an attacker who has obtained a signature σ = (s, r) and a clear message m clr forges a signature on another message can be detected. The purpose is to provide a method.

〔第1の本発明〕
第1の本発明では上記課題を解決するために、署名生成装置が以下のように署名生成を行う。
まず、整数の秘密鍵xを署名生成装置の第1記憶部に格納し、Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を第2記憶部に格納し、Nビット(N≧1)のクリアメッセージmclr∈{0,1}を第3記憶部に格納する。次に、署名生成装置の任意値生成部が、整数の任意値kを生成し、群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力する。なお、「g∈G」とは、巡回群Gをなす演算をgについてk回実行することを意味する(詳細は後述)。次に、署名生成装置の第1ハッシュ演算部が、出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力する。なお、「関数εをδに作用させる」とは、「δ又はδを特定するための値を関数εに代入する」ことを意味する。さらに、署名生成装置のビット結合部が、署名検証装置との共有値h∈{0,1}を第1ビット位置に配置し、リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力する。なお、第1ビット位置は必ずしも連続したLビットの位置である必要はなく、離散的に配置された合計Lビットの位置でもよい。同様に、第2ビット位置も必ずしも連続したMビットの位置である必要はなく、離散的に配置された合計Mビットの位置でもよい。ただし、「第1ビット位置」及び「第2ビット位置」がどのビット位置であるかについては、署名生成装置と署名検証装置とで統一しておく。また、署名生成装置の排他的論理和演算部が、ハッシュ値Πとビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力する。なお、(+)は排他的論理和演算子であり、δ(+)εはδとεとの排他的論理和である。さらに、署名生成装置の第3ハッシュ演算部が、出力値が整数のハッシュ関数H:{0,1}→Zを、排他的論理和値rとクリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力する。そして、署名生成装置の整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力し、署名出力部が、署名σ=(r,s)とクリアメッセージmclrとを出力する。なお、値β及び値γの少なくとも一方の値は、さらに、リカバリメッセージmrecのビット長Mに依存して決まる値である。
[First Invention]
In the first aspect of 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 first storage unit of the signature generation apparatus, and an M-bit (M ≧ 1) recovery message m rec ε {0,1} M is stored in the second storage unit, and N bits The clear message m clr ε {0, 1} N of (N ≧ 1) is stored in the third storage unit. Next, the arbitrary value generation unit of the signature generation device generates an integer arbitrary value k, and the group operation unit sets G as the cyclic group of order q and g as the generation source of the cyclic group G. R = 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 operation unit of the signature generation apparatus has a hash function H 0 : {0, 1} * → {0, whose output bit length is L + M bits (L is a positive integer shared with the signature verification apparatus). 1} L + M is applied to a value β determined depending on the operation result R, and an L + M bit hash value Π = H 0 (β) ε {0,1} L + M , which is the operation result, is output. Note that “acting a function ε on δ” means “substituting a value for specifying δ or δ into the function ε”. Further, the bit combination unit of the signature generation device places the shared value hε {0,1} L with the signature verification device at the first bit position, and sets the recovery message m rec ε {0,1} M as the second bit. L + M bit combination value d = h | m rec ∈ {0, 1} L + M arranged at the position is calculated, and the bit combination 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. Also, the exclusive OR operation unit of the signature generation apparatus calculates the exclusive OR r = Π (+) dε {0, 1} L + M between the hash value Π and the bit combination value d, and the exclusive logic The sum value r is output. Note that (+) is an exclusive OR operator, and δ (+) ε is an exclusive OR of δ and ε. Further, the third hash calculation unit of the signature generation device determines the hash function H 3 : {0, 1} * → Z whose output value is an integer depending on the exclusive OR value r and the clear message m clr. The hash value t = H 3 (γ) εZ, which is the calculation result, is output on the value γ. Then, the integer calculation unit of the signature generation apparatus calculates s = kt · xεZ and outputs the calculation result s, and the signature output unit outputs the signature σ = (r, s) and the clear message m clr. Is output. Note that at least one of the value β and the value γ is a value determined depending on the bit length M of the recovery message m rec .

第1の本発明の署名検証装置は、このように生成された署名を、以下のように検証する。なお、署名検証装置が受け取る署名をσ’=(r’,s’)と表現し、クリアメッセージをmclr’と表現する。
まず、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを署名検証装置の第1記憶部に格納する。そして、署名σ’=(r’,s’)とクリアメッセージmclr’とが署名検証装置の署名入力部に入力され、第2記憶部に格納される。また、署名検証装置のビット長抽出部が、署名σ’のr’のビット長から値L(Lは署名生成装置と共有される正の整数)を減じた値M’を、署名σ’に対応するリカバリメッセージmrec’のビット長M’として抽出し、第3記憶部に格納する。次に、署名検証装置の第1ハッシュ演算部が、整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、署名σ’が有するr’とクリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力する。また、署名検証装置の群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力する。なお、「gs’・yt’∈G」とは、巡回群Gをなす演算をgについてs’回施し、当該演算をyについてt’回施し、それらの各演算結果に対して当該演算を施す演算を意味する(詳細は後述)。また、署名検証装置の第2ハッシュ演算部が、出力ビット長がL+M’ビットのハッシュ関数H:{0,1}→{0,1}L+M’を、演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力する。さらに、署名検証装置の排他的論理和演算部が、ハッシュ値Π’と、署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力する。そして、署名検証装置の比較部が、署名生成装置との共有値h∈{0,1}と、排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}とを比較し、h’=hであることを条件に、検証が成功である旨の情報を出力する。なお、値β’及び値γ’の少なくとも一方の値は、さらに、リカバリメッセージmrec’のビット長M’に依存して決まる値である。また、署名生成装置で用いる値β,γのビット構成と、署名検証装置で用いる値β’,γ’のビット構成とが、それぞれ同一である必要がある。例えば、署名生成装置において、rを上位L+Mビットとし、mclrをその次のNビットとし、その後のLビットをMとして結合した2L+M+Nビットの値をγとする場合、署名検証装置においても、r’を上位L+M’ビットとし、mclr’をその次のN’ビットとし、その後のLビットをM’として結合した2L+M’+Nビットの値をγ’としなければならない(詳細は後述)。
The signature verification apparatus according to the first aspect 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 ′), and the clear message is expressed as m clr ′.
First, 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 is the signature verification apparatus. In the first storage unit. The signature σ ′ = (r ′, s ′) and the clear message m clr ′ are input to the signature input unit of the signature verification apparatus and stored in the second storage unit. Further, the bit length extraction unit of the signature verification apparatus sets a value M ′ obtained by subtracting the value L (L is a positive integer shared with the signature generation apparatus) from the bit length of r ′ of the signature σ ′ to the signature σ ′. Extracted as the bit length M ′ of the corresponding recovery message m rec ′ and stored in the third storage unit. Next, the first hash calculator of the signature verification apparatus outputs a hash function H 3 : {0, 1} * → Z that outputs an integer hash value, r ′ included in the signature σ ′, and a clear message m clr ′. The hash value t ′ = H 3 (γ ′) εZ, which is the result of the calculation, is output. In addition, 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). In addition, the second hash calculation unit of the signature verification apparatus generates a hash function H 0 : {0, 1} * → {0, 1} L + M ′ having an output bit length of L + M ′ bits depending on the calculation result R ′. It acts on the fixed value β and outputs the hash value Π ′ = H 0 (β ′) ∈ {0, 1} L + M ′ of the L + M ′ bit as the calculation result. Further, the exclusive OR operation unit of the signature verification apparatus performs an 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. Then, the comparison unit of the signature verification apparatus performs the shared value hε {0, 1} L with the signature generation device and the L-bit value h′ε {0, L at the first bit position of the exclusive OR value d ′. 1} Compares with L, and outputs information indicating that the verification is successful on condition that h ′ = h. Note that at least one of the values β ′ and γ ′ is a value determined depending on the bit length M ′ of the recovery message m rec ′. Also, 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 r is the upper L + M bits, m clr is the next N bits, and the subsequent L bits are combined as M, the value of 2L + M + N bits is γ. The value of 2L + M ′ + N bits obtained by combining “L” as the upper L + M ′ bits, m clr ′ as the next N ′ bit, and M ′ as the subsequent L bit is γ ′ (details will be described later).

以上のように、第1の本発明では、署名生成装置において、値β及び値γの少なくとも一方の値を、さらに、リカバリメッセージmrecのビット長Mに依存して決まる値とし、署名検証装置において、値β’及び値γ’の少なくとも一方の値を、さらに、リカバリメッセージmrec’のビット長M’に依存して決まる値とし、各処理を行う。そして、署名検証装置は、入力された署名σ’のr’のビット長から値Lを減じた値M’を、署名σ’に対応するリカバリメッセージmrec’のビット長M’として抽出する。
ここで、署名検証装置に入力された署名σ’のr’が前述の攻撃方法によって生成されたr1(r=r1|m2clr)であった場合、そのビット長M’は正当なr∈{0,1}L+Mのビット長Mよりも短い(M’<M)。この場合、値β’及び値γ’の少なくとも一方の値は、署名検証装置が抽出したビット長M’に依存して決まる値なのだから、β=β’及びγ=γ’の少なくとも一方が不成立となる。
β≠β’となる場合、Π’=H(β’)≠H(β)=Πとなって、d’=Π’(+)r’≠dとなるため、d’の第1ビット位置の値h’は、dの第1ビット位置の値hと相違し(h’≠h)、署名検証失敗となる。また、γ≠γ’となる場合もt’=H(γ’)≠H(γ)=tとなるため、R’=gs’・yt’≠g=Rとなり、R’に依存して定まる値β’はβ’≠βとなり、同様に署名検証失敗となる。これにより、前述の攻撃方法によって生成された不正な署名を高い確率で検出することができる。
As described above, according to the first aspect of the present invention, in the signature generation device, at least one of the value β and the value γ is further determined depending on the bit length M of the recovery message m rec. , Each of the values β ′ and γ ′ is further determined depending on the bit length M ′ of the recovery message m rec ′. Then, the signature verification apparatus extracts the value M ′ obtained by subtracting the value L from the bit length of r ′ of the input signature σ ′ as the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′.
Here, when the r ′ of the signature σ ′ input to the signature verification apparatus is r1 (r = r1 | m2 clr ) generated by the above attack method, the bit length M ′ is a valid r∈ { 0, 1} shorter than the bit length M of L + M (M ′ <M). In this case, since at least one of the values β ′ and γ ′ is a value determined depending on the bit length M ′ extracted by the signature verification apparatus, at least one of β = β ′ and γ = γ ′ is not established. It becomes.
When β ≠ β ′, Π ′ = H 0 (β ′) ≠ H 0 (β) = Π and d ′ = Π ′ (+) r ′ ≠ d, so that the first of d ′ The value h ′ of the bit position is different from the value h of the first bit position of d (h ′ ≠ h), and signature verification fails. Further, when γ ≠ γ ′, t ′ = H 3 (γ ′) ≠ H 3 (γ) = t, so that R ′ = g s ′ · y t ′ ≠ g k = R, and R ′ The value β ′ determined depending on ## EQU1 ## becomes β ′ ≠ β, and similarly signature verification fails. Thereby, an illegal signature generated by the above-described attack method can be detected with high probability.

〔第2の本発明〕
第2の本発明では上記課題を解決するために、署名生成装置が以下のように署名生成を行う。
まず、整数の秘密鍵xを署名生成装置の第1記憶部に格納し、Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を第2記憶部に格納し、Nビット(N≧1)のクリアメッセージmclr∈{0,1}を第3記憶部に格納する。次に、署名生成装置の任意値生成部が、整数の任意値kを生成し、群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力する。また、署名生成装置の第1ハッシュ演算部が、出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力する。さらに、署名生成装置のビット結合部が、署名検証装置との共有値h∈{0,1}を第1ビット位置に配置し、リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力する。そして、署名生成装置の排他的論理和演算部が、ハッシュ値Πとビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力し、第3ハッシュ演算部が、出力値が整数のハッシュ関数H:{0,1}→Zを、排他的論理和値rとクリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力する。そして、署名生成装置の整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力し、署名出力部が、署名σ=(r,s)とクリアメッセージmclrとを出力する。なお、値β及び値γの少なくとも一方の値は、さらに、クリアメッセージmclrのビット長Nに依存して決まる値である。
[Second Invention]
In the second aspect of 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 first storage unit of the signature generation apparatus, and an M-bit (M ≧ 1) recovery message m rec ε {0,1} M is stored in the second storage unit, and N bits The clear message m clr ε {0, 1} N of (N ≧ 1) is stored in the third storage unit. Next, the arbitrary value generation unit of the signature generation device generates an integer arbitrary value k, and the group operation unit sets G as the cyclic group of order q and g as the generation source of the cyclic group G. R = g k εG is calculated, and the calculation result R is output. Also, the first hash calculator of the signature generation device has a hash function H 0 : {0, 1} * → {0, 1 with an output bit length of L + M bits (L is a positive integer shared with the signature verification device). } L + M is applied to a value β determined depending on the operation result R, and an L + M bit hash value Π = H 0 (β) ε {0,1} L + M , which is the operation result, is output. Further, the bit combination unit of the signature generation device places the shared value hε {0,1} L with the signature verification device at the first bit position, and sets the recovery message m rec ε {0,1} M as the second bit. L + M bit combination value d = h | m rec ∈ {0, 1} L + M arranged at the position is calculated, and the bit combination value d is output. Then, the exclusive OR operation unit of the signature generation apparatus calculates an exclusive OR r = Π (+) dε {0, 1} L + M between the hash value Π and the bit combination value d, and the exclusive logic The sum value r is output, and the third hash calculator calculates the hash function H 3 : {0,1} * → Z whose output value is an integer depending on the exclusive OR value r and the clear message m clr A hash value t = H 3 (γ) εZ, which is the calculation result, is output on the fixed value γ. Then, the integer calculation unit of the signature generation apparatus calculates s = kt · xεZ and outputs the calculation result s, and the signature output unit outputs the signature σ = (r, s) and the clear message m clr. Is output. Note that at least one of the values β and γ is a value determined depending on the bit length N of the clear message m clr .

第2の本発明の署名検証装置は、このように生成された署名を、以下のように検証する。
まず、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを署名検証装置の第1記憶部に格納する。そして、署名σ’=(r’,s’)とクリアメッセージmclr’とが署名検証装置の署名入力部に入力され、第2記憶部に格納される。また、署名σ’に対応するリカバリメッセージmrec’のビット長M’を署名検証装置の第3記憶部に格納し、クリアメッセージmclr’のビット長N’を第4記憶部に格納する。なお、署名検証装置がビット長M’の値を取得する方法については後述する。また、署名検証装置の第1ハッシュ演算部が、整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、署名σ’が有するr’とクリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力する。さらに、署名検証装置の群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力し、第2ハッシュ演算部が、出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+M’を、演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力する。また、署名検証装置の排他的論理和演算部が、ハッシュ値Π’と、署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力する。そして、署名検証装置の比較部が、署名生成装置との共有値h∈{0,1}と、排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}とを比較し、h’=hであることを条件に、検証が成功である旨の情報を出力する。なお、値β’及び値γ’の少なくとも一方の値は、さらに、クリアメッセージmclr’のビット長N’に依存して決まる値である。また、署名生成装置で用いる値β,γのビット構成と、署名検証装置で用いる値β’,γ’のビット構成とが、それぞれ同一である必要がある(詳細は後述)。
The signature verification apparatus according to the second aspect of the present invention verifies the signature generated in this way as follows.
First, 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 is the signature verification apparatus. In the first storage unit. The signature σ ′ = (r ′, s ′) and the clear message m clr ′ are input to the signature input unit of the signature verification apparatus and stored in the second storage unit. Further, the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′ is stored in the third storage unit of the signature verification apparatus, and the bit length N ′ of the clear message m clr ′ is stored in the fourth storage unit. Note that a method by which the signature verification apparatus acquires the value of the bit length M ′ will be described later. In addition, the first hash calculator of the signature verification apparatus converts the hash function H 3 : {0, 1} * → Z that outputs an integer hash value into r ′ included in the signature σ ′ and the clear message m clr ′. The hash value t ′ = H 3 (γ ′) εZ, which is the calculation result, is output by acting on the value γ ′ determined depending on the dependency. Further, the group calculation unit of the signature verification apparatus calculates R ′ = g s ′ · y t ′ εG, outputs the calculation result R ′, and the second hash calculation unit outputs the output bit length L + M ′. A hash function H 0 of bits (L is a positive integer shared with the signature generation device): {0, 1} * → {0, 1} L + M ′ is set to a value β ′ determined depending on the operation result R ′. The L + M′-bit hash value Π ′ = H 0 (β ′) ∈ {0, 1} L + M ′ , which is the operation result, is output. Also, the 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. Then, the comparison unit of the signature verification apparatus performs the shared value hε {0, 1} L with the signature generation device and the L-bit value h′ε {0, L at the first bit position of the exclusive OR value d ′. 1} Compares with L, and outputs information indicating that the verification is successful on condition that h ′ = h. Note that at least one of the value β ′ and the value γ ′ is a value determined depending on the bit length N ′ of the clear message m clr ′. Further, 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 (details will be described later).

以上のように、第2の本発明では、署名生成装置において、値β及び値γの少なくとも一方の値を、さらに、クリアメッセージmclrのビット長Nに依存して決まる値とし、署名検証装置において、値β’及び値γ’の少なくとも一方の値を、さらに、クリアメッセージmclr’のビット長N’に依存して決まる値とし、各処理を行う。
ここで、署名検証装置に入力されたクリアメッセージmclr’が前述の攻撃方法によって生成されたm1clr(m1clr=m2clr|mclr)であった場合、そのビット長N’は正当なクリアメッセージmclr∈{0,1}のビット長Nよりも長い(N’>N)。この場合、値β’及び値γ’の少なくとも一方の値は、クリアメッセージmclr’のビット長N’に依存して決まる値なのだから、β=β’及びγ=γ’の少なくとも一方が不成立となる。その結果、第1の本発明と同様に、前述の攻撃方法によって生成された不正な署名を高い確率で検出することができる。
As described above, according to the second aspect of the present invention, in the signature generation device, at least one of the value β and the value γ is further determined depending on the bit length N of the clear message m clr. In FIG. 5, at least one of the value β ′ and the value γ ′ is set to a value determined depending on the bit length N ′ of the clear message m clr ′, and each process is performed.
Here, if the clear message m clr ′ input to the signature verification apparatus is m1 clr (m1 clr = m2 clr | m clr ) generated by the above attack method, the bit length N ′ is a valid clear. message m clr{0,1} longer than the bit length N of the N (N '> N). In this case, since at least one of the value β ′ and the value γ ′ is a value determined depending on the bit length N ′ of the clear message m clr ′, at least one of β = β ′ and γ = γ ′ is not established. It becomes. As a result, similar to the first aspect of the present invention, an illegal signature generated by the above attack method can be detected with high probability.

〔第3の本発明〕
第3の本発明では上記課題を解決するために、署名生成装置が以下のように署名生成を行う。
まず、整数の秘密鍵xが第1記憶部に格納され、Mビット(M≧1)のリカバリメッセージmrec∈{0,1}が第2記憶部に格納され、Nビット(N≧1)のクリアメッセージmclr∈{0,1}が第3記憶部に格納される。そして、署名生成装置の任意値生成部が、整数の任意値kを生成し、群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力する。
次に、署名生成装置の第1ハッシュ演算部が、出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力する。次に、署名生成装置の第2ハッシュ演算部が、出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、リカバリメッセージmrecに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H(α)∈{0,1}を出力する。また、署名生成装置のビット結合部が、ハッシュ値h∈{0,1}を第1ビット位置に配置し、リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力する。次に、署名生成装置の排他的論理和演算部が、ハッシュ値Πとビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力し、第3ハッシュ演算部が、出力値が整数のハッシュ関数H:{0,1}→Zを、排他的論理和値rとクリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力する。その後、整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力し、署名出力部が、署名σ=(r,s)とクリアメッセージmclrとを出力する。
[Third Invention]
In the third aspect of 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 first storage unit, an M-bit (M ≧ 1) recovery message m rec ε {0,1} M is stored in the second storage unit, and N bits (N ≧ 1) ) Clear message m clr ε {0, 1} N is stored in the third storage unit. 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.
Next, the first hash operation unit of the signature generation apparatus has a hash function H 0 : {0, 1} * → {0, whose output bit length is L + M bits (L is a positive integer shared with the signature verification apparatus). 1} L + M is applied to a value β determined depending on the operation result R, and an L + M bit hash value Π = H 0 (β) ε {0,1} L + M , which is the operation result, is output. Next, the second hash calculator of the signature generation device determines the hash function H 1 : {0,1} * → {0,1} L having an output bit length of L bits depending on the recovery message m rec. An L-bit hash value h = H 1 (α) ε {0, 1} L , which is the result of the operation, is output on the value α. In addition, the bit combination unit of the signature generation device arranges the hash value hε {0,1} L at the first bit position and L + M arranges the recovery message m rec ε {0,1} M at the second bit position. Bit combination value d = h | m rec ∈ {0, 1} L + M is calculated, and the bit combination value d is output. Next, the exclusive OR operation unit of the signature generation apparatus calculates the exclusive OR r = Π (+) d∈ {0, 1} L + M between the hash value Π and the bit combination value d, and the exclusive OR The logical sum r is output, and the third hash calculator depends on the exclusive logical value r and the clear message m clr for the hash function H 3 : {0, 1} * → Z whose output value is an integer. The hash value t = H 3 (γ) εZ that is the calculation result is output. Thereafter, the integer operation unit calculates s = kt · xεZ, outputs the operation result s, and the signature output unit outputs the signature σ = (r, s) and the clear message m clr. .

第3の本発明の署名検証装置は、このように生成された署名を、以下のように検証する。
まず、署名検証装置の第1記憶部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを格納する。そして、署名σ’=(r’,s’)とクリアメッセージmclr’とが署名検証装置の署名入力部に入力され、第2記憶部に格納される。また、署名σ’に対応するリカバリメッセージmrec’のビット長M’を第3記憶部に格納する。なお、署名検証装置がビット長M’の値を取得する方法については後述する。そして、署名検証装置の第1ハッシュ演算部が、整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、署名σ’が有するr’とクリアメッセージmclrとに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力する。さらに、署名検証装置の群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力する。次に、第2ハッシュ演算部が、出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+M’を、演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力する。さらに、排他的論理和演算部が、ハッシュ値Π’と、署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力する。また、署名検証装置の第3ハッシュ演算部が、出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、排他的論理和値d’の第2ビット位置のM’ビットの値mrec’∈{0,1}M’に依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H(α’)∈{0,1}を出力する。そして、署名検証装置の比較部が、排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}と、ハッシュ値H(α’)とを比較し、h’=H(α’)であることを条件に、検証が成功である旨の情報を出力する。
The signature verification apparatus according to the third aspect of the present invention verifies the signature generated in this way as follows.
First, when the first storage unit of the signature verification apparatus sets G as the cyclic group of order q and g as the generation source of the cyclic group G, the public key corresponding to the secret key xεZ of the signature generation apparatus Store y = g x ∈G. The signature σ ′ = (r ′, s ′) and the clear message m clr ′ are input to the signature input unit of the signature verification apparatus and stored in the second storage unit. Further, the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′ is stored in the third 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 calculation unit of the signature verification apparatus depends on the hash function H 3 : {0, 1} * → Z that outputs an integer hash value depending on r ′ included in the signature σ ′ and the clear message m clr The hash value t ′ = H 3 (γ ′) εZ, which is the result of the operation, is output. Further, the group calculation unit of the signature verification apparatus calculates R ′ = g s ′ · y t ′ ∈G and outputs the calculation result R ′. Next, the second hash calculator calculates a hash function H 0 : {0,1} * → {0,1} L + M with an output bit length of L + M ′ bits (L is a positive integer shared with the signature generation device). ' Is applied to a value β ′ determined depending on the operation result R ′, and an L + M′-bit hash value Π ′ = H 0 (β ′) ∈ {0, 1} L + M ′ , which is the operation result, is output. . Further, the exclusive OR operation unit calculates an exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ included in the signature σ ′. , The exclusive OR value d ′ is output. In addition, the third hash calculation unit of the signature verification apparatus converts the hash function H 1 having an output bit length of L bits: {0, 1} * → {0, 1} L to the second exclusive OR value d ′. The value m rec '∈ {0, 1} of the M ′ bit at the bit position is operated on the value α ′ determined depending on M ′ , and the L-bit hash value H 1 (α ′) ∈ {0 as the operation result , 1} L is output. Then, the comparison unit of the signature verification apparatus compares the L-bit value h′∈ {0, 1} L at the first bit position of the exclusive OR value d ′ with the hash value H 1 (α ′). , H ′ = H 1 (α ′) is output on the condition that the verification is successful.

なお、「mrecに依存して定まる値α」には、値αがmrecのみに依存する場合のみならず、値αがmrecと他の情報とに依存する場合も含まれる。また、「Rに依存して定まる値β」には、値βがRのみに依存する場合のみならず、値βがRと他の情報とに依存する場合も含まれ、「rとmclrとに依存して定まる値γ」には、値γがrとmclrとのみに依存する場合のみならず、値γがΠとmrecと他の情報とに依存する場合も含まれる。同様に、「mrec’に依存して定まる値α’」には、値α’がmrec’のみに依存する場合のみならず、値α’がmrec’と他の情報とに依存する場合も含まれ、「R’に依存して定まる値β’」には、値β’がR’のみに依存する場合のみならず、値β’がR’と他の情報とに依存する場合も含まれ、「r’とmclr’とに依存して定まる値γ」には、値γ’がr’とmclr’とのみに依存する場合のみならず、値γ’がr’とmclr’と他の情報とに依存する場合も含まれる。
ただし、署名生成装置で用いる値α,β,γのビット構成と、署名検証装置で用いる値α’,β’,γ’のビット構成とが、それぞれ同一である必要がある。例えば、署名生成装置において、rを上位L+Mビットとし、mclrを下位Nビットとして結合したL+M+Nビットの値をγとする場合、署名検証装置においても、r’を上位L+M’ビットとし、mclr’を下位N’ビットとして結合したL+M’+N’ビットの値をγ’としなければならない(詳細は後述)。
The “value α determined depending on m rec ” includes not only the case where the value α depends only on m rec but also the case where the value α depends on m rec and other information. The “value β determined depending on R” includes not only the case where the value β depends only on R, but also the case where the value β depends on R and other information. “R and m clr The value γ determined depending on “” includes not only the case where the value γ depends only on r and m clr , but also the case where the value γ depends on Π, m rec and other information. Similarly, in “value α ′ determined depending on m rec ′”, not only when value α ′ depends only on m rec ′, but also on value α ′ depends on m rec ′ and other information. The value “β ′ determined depending on R ′” includes not only the case where the value β ′ depends only on R ′ but also the case where the value β ′ depends on R ′ and other information. The “value γ determined depending on r ′ and m clr ′” includes not only the case where the value γ ′ depends only on r ′ and m clr ′, but also the value γ ′ is r ′. A case where it depends on m clr ′ and other information is also included.
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 r is an upper L + M bit and m clr is a lower N bit and the value of L + M + N bits is γ, also in the signature verification apparatus, r ′ is an upper L + M ′ bit and m clr The value of the L + M ′ + N ′ bits combined with “lower N” bits must be γ ′ (details will be described later).

以上のように、第3の本発明では、署名生成装置において、リカバリメッセージmrecに依存して定まる値αのハッシュ値h=H(α)∈{0,1}を算出し、ハッシュ値hを第1ビット位置に配置し、リカバリメッセージmrecを第2ビット位置に配置したビット結合値d=h|mrec∈{0,1}L+Mを算出し、演算結果Rに依存して定まる値βのハッシュ値Π=H(β)∈{0,1}L+Mを算出し、r=Π(+)d∈{0,1}L+Mを算出する。また、署名検証装置において、d’=Π’(+)r’を算出し、d’の第2ビット位置の値mrec’∈{0,1}M’に依存して定まる値α’のハッシュ値H(α’)∈{0,1}と、d’の第1ビット位置の値h’∈{0,1}とを比較し、これらが一致した場合に署名検証合格とする。 As described above, in the third aspect of the present invention, the signature generation apparatus calculates the hash value h = H 1 (α) ∈ {0, 1} L of the value α determined depending on the recovery message m rec, and The bit combination value d = h | m rec ε {0, 1} L + M is calculated by placing the value h in the first bit position and the recovery message m rec in the second bit position, and depending on the operation result R The hash value ま る = H 0 (β) ε {0,1} L + M of the fixed value β is calculated, and r = Π (+) dε {0,1} L + M is calculated. Also, in the signature verification apparatus, d ′ = Π ′ (+) r ′ is calculated, and the value α ′ determined depending on the value m rec ′ ′ {0, 1} M ′ of the second bit position of d ′. The hash value H 1 (α ′) ε {0,1} L is compared with the value h′ε {0,1} L of the first bit position of d ′. To do.

ここで、署名検証装置に入力された署名σ’のr’が前述の攻撃方法によって生成されたr1(r=r1|m2clr)であった場合、r’=r1≠rであるから、高い確率でd’=Π’(+)r’≠dとなる。この場合、(d’の第2ビット位置の値mrec’)=(dの第2ビット位置の値mrec)及び(d’の第1ビット位置の値h’)=(dの第1ビット位置の値h)の少なくとも一方が必ず不成立となる。その結果、d’の第2ビット位置の値mrec’∈{0,1}M’に依存して定まる値α’のハッシュ値H(α’)∈{0,1}と、d’の第1ビット位置の値h’∈{0,1}とが不一致となり、前述の攻撃方法によって生成された不正な署名を高い確率で検出することができる。 Here, when r ′ of the signature σ ′ input to the signature verification apparatus is r1 (r = r1 | m2 clr ) generated by the above-described attack method, r ′ = r1 ≠ r, which is high. The probability is d ′ = Π ′ (+) r ′ ≠ d. In this case, (d ′ second bit position value m rec ′) = (d second bit position value m rec ) and (d ′ first bit position value h ′) = (first d At least one of the bit position values h) is always not established. As a result, the hash value H 1 (α ′) ∈ {0, 1} L of the value α ′ determined depending on the value m rec '∈ {0, 1} M ′ of the second bit position of d ′, and d The value h′∈ {0, 1} L in the first bit position of “′” does not match, and an illegal signature generated by the above-described attack method can be detected with high probability.

〔第4の本発明〕
第4の本発明では上記課題を解決するために、署名生成装置が以下のように署名生成を行う。
まず、整数の秘密鍵xを署名生成装置の第1記憶部に格納し、Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を第2記憶部に格納し、Nビット(N≧1)のクリアメッセージmclr∈{0,1}を第3記憶部に格納する。また、署名生成装置の任意値生成部が、整数の任意値kを生成し、群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力する。次に、署名生成装置の第1ハッシュ演算部が、出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力する。また、署名生成装置の第2ハッシュ演算部が、出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、クリアメッセージmclrに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H(α)∈{0,1}を出力する。次に、署名生成装置のビット結合部が、ハッシュ値h∈{0,1}を第1ビット位置に配置し、リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力する。そして、署名生成装置の排他的論理和演算部が、ハッシュ値Πとビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力し、第3ハッシュ演算部が、出力値が整数のハッシュ関数H:{0,1}→Zを、排他的論理和値rとクリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力する。そして、署名生成装置の整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力し、署名出力部が、署名σ=(r,s)とクリアメッセージmclrとを出力する。
[Fourth Invention]
In the fourth aspect of 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 first storage unit of the signature generation apparatus, and an M-bit (M ≧ 1) recovery message m rec ε {0,1} M is stored in the second storage unit, and N bits The clear message m clr ε {0, 1} N of (N ≧ 1) is stored in the third storage unit. Further, the R in the case where the arbitrary value generation unit of the signature generation apparatus generates an integer arbitrary value k, and the group calculation unit sets G as the cyclic group of order q and g as the generation source of the cyclic group G. = G k εG is calculated, and the calculation result R is output. Next, the first hash operation unit of the signature generation apparatus has a hash function H 0 : {0, 1} * → {0, whose output bit length is L + M bits (L is a positive integer shared with the signature verification apparatus). 1} L + M is applied to a value β determined depending on the operation result R, and an L + M bit hash value Π = H 0 (β) ε {0,1} L + M , which is the operation result, is output. Further, the second hash calculator of the signature generation device determines the hash function H 1 : {0,1} * → {0,1} L whose output bit length is L bits depending on the clear message m clr Acting on α, an L-bit hash value h = H 1 (α) ε {0, 1} L , which is the calculation result, is output. Next, the bit combination unit of the signature generation device places the hash value hε {0,1} L in the first bit position and places the recovery message m rec ε {0,1} M in the second bit position. L + M bit combination value d = h | m rec ε {0, 1} L + M is calculated, and the bit combination value d is output. Then, the exclusive OR operation unit of the signature generation apparatus calculates an exclusive OR r = Π (+) dε {0, 1} L + M between the hash value Π and the bit combination value d, and the exclusive logic The sum value r is output, and the third hash calculator calculates the hash function H 3 : {0,1} * → Z whose output value is an integer depending on the exclusive OR value r and the clear message m clr A hash value t = H 3 (γ) εZ, which is the calculation result, is output on the fixed value γ. Then, the integer calculation unit of the signature generation apparatus calculates s = kt · xεZ and outputs the calculation result s, and the signature output unit outputs the signature σ = (r, s) and the clear message m clr. Is output.

第4の本発明の署名検証装置は、このように生成された署名を、以下のように検証する。
まず、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを署名検証装置の第1記憶部に格納する。また、署名σ’=(r’,s’)とクリアメッセージmclr’とが署名検証装置の署名入力部に入力され、第2記憶部に格納される。さらに、署名σ’に対応するリカバリメッセージmrec’のビット長M’を第3記憶部に格納する。次に、署名検証装置の第1ハッシュ演算部が、整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、署名σ’が有するr’とクリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力する。さらに、群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力する。そして、第2ハッシュ演算部が、出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+M’を、演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力し、署名検証装置の排他的論理和演算部が、ハッシュ値Π’と、署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力する。さらに、署名検証装置の第3ハッシュ演算部が、出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、クリアメッセージmclr’に依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H(α’)∈{0,1}を出力する。そして、署名検証装置の比較部が、排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}と、ハッシュ値H(α’)とを比較し、h’=H(α’)であることを条件に、検証が成功である旨の情報を出力する。
The signature verification apparatus according to the fourth aspect of the present invention verifies the signature generated in this way as follows.
First, 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 is the signature verification apparatus. In the first storage unit. Also, the signature σ ′ = (r ′, s ′) and the clear message m clr ′ are input to the signature input unit of the signature verification apparatus and stored in the second storage unit. Further, the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′ is stored in the third storage unit. Next, the first hash calculator of the signature verification apparatus outputs a hash function H 3 : {0, 1} * → Z that outputs an integer hash value, r ′ included in the signature σ ′, and a clear message m clr ′. The hash value t ′ = H 3 (γ ′) εZ, which is the result of the calculation, is output. Further, the group calculation unit calculates R ′ = g s ′ · y t ′ ∈G and outputs the calculation result R ′. Then, the second hash calculation unit has a hash function H 0 : {0, 1} * → {0, 1} L + M ′ having an output bit length of L + M ′ bits (L is a positive integer shared with the signature generation device). Is applied to the value β ′ determined depending on the operation result R ′, and the L + M′-bit hash value β ′ = H 0 (β ′) ∈ {0, 1} L + M ′ , which is the operation result, is output, The exclusive OR operation unit of the signature verification apparatus obtains an exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ included in the signature σ ′. Calculate and output the exclusive OR value d ′. Further, the third hash calculator of the signature verification apparatus determines the hash function H 1 : {0,1} * → {0,1} L having an output bit length of L bits depending on the clear message m clr ′. An L-bit hash value H 1 (α ′) ∈ {0, 1} L , which is the operation result, is output on the value α ′. Then, the comparison unit of the signature verification apparatus compares the L-bit value h′∈ {0, 1} L at the first bit position of the exclusive OR value d ′ with the hash value H 1 (α ′). , H ′ = H 1 (α ′) is output on the condition that the verification is successful.

以上のように、第4の本発明では、署名生成装置において、クリアメッセージmclrに依存して定まる値αのハッシュ値h=H(α)∈{0,1}を算出し、ハッシュ値hを第1ビット位置に配置し、リカバリメッセージmrecを第2ビット位置に配置したビット結合値d=h|mrec∈{0,1}L+Mを算出し、演算結果Rに依存して定まる値βのハッシュ値Π=H(β)∈{0,1}L+Mを算出し、r=Π(+)d∈{0,1}L+Mを算出する。また、署名検証装置において、d’=Π’(+)r’を算出し、クリアメッセージmclr’に依存して定まる値α’のハッシュ値H(α’)∈{0,1}と、d’の第1ビット位置の値h’∈{0,1}とを比較し、これらが一致した場合に署名検証合格とする。 As described above, in the fourth aspect of the present invention, the signature generation apparatus calculates the hash value h = H 1 (α) ∈ {0, 1} L of the value α determined depending on the clear message m clr , and the hash The bit combination value d = h | m rec ε {0, 1} L + M is calculated by placing the value h in the first bit position and the recovery message m rec in the second bit position, and depending on the operation result R The hash value ま る = H 0 (β) ε {0,1} L + M of the fixed value β is calculated, and r = Π (+) dε {0,1} L + M is calculated. Also, in the signature verification apparatus, d ′ = Π ′ (+) r ′ is calculated, and the hash value H 1 (α ′) ∈ {0, 1} L of the value α ′ determined depending on the clear message m clr ′. And the value h′∈ {0, 1} L of the first bit position of d ′ are compared, and if they match, the signature verification is passed.

ここで、署名検証装置に入力されたクリアメッセージmclr’が前述の攻撃方法によって生成されたm1clr(m1clr=m2clr|mclr)であった場合、必ずα’≠αとなり、ハッシュ値H(α’)≠ハッシュ値H(α)=hとなる。そのため、d’の第1ビット位置の値h’がhであったとしてもH(α’)≠h’となり、前述の攻撃方法によって生成された不正な署名を高い確率で検出することができる。
なお、第3,4の本発明に第1,2の本発明を適用してもよい。すなわち、第3,4の本発明において、値β及び値γの少なくとも一方の値を、さらに、リカバリメッセージmrecのビット長Mに依存して決まる値とし、値β’及び値γ’の少なくとも一方の値を、さらに、署名検証装置で抽出したリカバリメッセージmrec’のビット長M’に依存して決まる値としてもよい。また、第3,4の本発明において、値β及び値γの少なくとも一方の値を、さらに、クリアメッセージmclrのビット長Nに依存して決まる値とし、値β’及び値γ’の少なくとも一方の値を、さらに、署名検証装置に入力されたクリアメッセージmclr’のビット長N’に依存して決まる値としてもよい。これにより、前述の攻撃方法によって生成された不正な署名をより高い確率で検出することができる。
Here, when the clear message m clr ′ input to the signature verification apparatus is m1 clr (m1 clr = m2 clr | m clr ) generated by the above-described attack method, α ′ ≠ α, which is always a hash value H 1 (α ′) ≠ hash value H 1 (α) = h. Therefore, even if the value h ′ of the first bit position of d ′ is h, H 1 (α ′) ≠ h ′, and it is possible to detect an illegal signature generated by the above attack method with a high probability. it can.
The first and second inventions may be applied to the third and fourth inventions. That is, in the third and fourth present inventions, at least one of the value β and the value γ is further determined depending on the bit length M of the recovery message m rec , and at least the value β ′ and the value γ ′. One value may be a value determined depending on the bit length M ′ of the recovery message m rec ′ extracted by the signature verification apparatus. In the third and fourth present inventions, at least one of the value β and the value γ is further determined depending on the bit length N of the clear message m clr , and at least the value β ′ and the value γ ′. One value may be a value determined depending on the bit length N ′ of the clear message m clr ′ input to the signature verification apparatus. As a result, an illegal signature generated by the above attack method can be detected with a higher probability.

以上のように本発明では、署名σ=(s,r)とクリアメッセージmclrとを入手した攻撃者が別のメッセージに対する署名を偽造する攻撃を検出できる。 As described above, according to the present invention, it is possible to detect an attack in which an attacker who has obtained the signature σ = (s, r) and the clear message m clr forges a signature for another message.

以下、本発明を実施するための最良の形態を図面を参照して説明する。
〔第1実施形態〕
まず、第1実施形態について説明する。第1実施形態は、第1の本発明に係る実施形態である。
<全体構成>
図1は、第1実施形態の署名システム1の全体構成を示した概念図である。
図1に示すように、本形態の署名システム1は、署名生成を行う署名生成装置10と、署名検証を行う署名検証装置20と、署名生成装置10の効果鍵を公開する公開鍵サーバ装置30とを有し、相互にネットワーク40を通じて通信可能に接続される。なお、署名生成装置10、署名検証装置20及び公開鍵サーバ装置30は、それぞれ、公知のコンピュータに所定のプログラムが読み込まれることにより構成される装置である。
The best mode for carrying out the present invention will be described below with reference to the drawings.
[First Embodiment]
First, the first embodiment will be described. The first embodiment is an embodiment according to the first present invention.
<Overall configuration>
FIG. 1 is a conceptual diagram showing the overall configuration of the signature system 1 of the first embodiment.
As shown in FIG. 1, the signature system 1 of this embodiment includes a signature generation device 10 that generates a signature, a signature verification device 20 that performs signature verification, and a public key server device 30 that publishes the effect key of the signature generation device 10. And are connected to each other through the network 40 so that they can communicate with each other. The signature generation device 10, the signature verification device 20, and the public key server device 30 are each configured by reading a predetermined program into a known computer.

<署名生成装置10の構成>
次に、署名生成装置10の構成を説明する。
[ハードウェア構成]
図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を有している。
この例の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を、データのやり取りが可能なように接続する。
<Configuration of Signature Generation Device 10>
Next, the configuration of the signature generation apparatus 10 will be described.
[Hardware configuration]
FIG. 2 is a block diagram illustrating a hardware configuration of the signature generation device 10 according to the first embodiment.
As illustrated in FIG. 2, the signature generation apparatus 10 of this example includes a CPU (Central Processing Unit) 11, an input unit 12, an output unit 13, an auxiliary storage device 14, a ROM (Read Only Memory) 15, a RAM (Random Access). Memory) 16, bus 17, and communication unit 18.
The CPU 11 in this example includes a control unit 11a, a calculation unit 11b, and a register 11c, and executes various calculation processes according to various programs read into the register 11c. The input unit 12 in this example is an input port for inputting data, a keyboard, a mouse, and the like, and the output unit 13 is an output port for outputting data, a data storage device to an external recording medium, a printing device, and a display. Etc. The auxiliary storage device 14 is, for example, a hard disk, an MO (Magneto-Optical disc), a semiconductor memory, or the like, and has a program area 14a storing various programs and a data area 14b storing various data. The RAM 16 is, for example, an SRAM (Static Random Access Memory), a DRAM (Dynamic Random Access Memory) or the like, and has a program area 16a in which the above program is written and a data area 16b in which various data are written. The communication unit 18 is a network card or the like. The bus 17 in this example connects the CPU 11, the input unit 12, the output unit 13, the auxiliary storage device 14, the ROM 15, the RAM 16, and the communication unit 18 so that data can be exchanged.

[ハードウェアとプログラムとの協働]
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 program area 14 a of the auxiliary storage device 14 in the program area 16 a of the RAM 16 according to the read OS (Operating System) program. Similarly, the CPU 11 writes various data stored in the data area 14 b of the auxiliary storage device 14 in the data area 16 b of the RAM 16. The address on the RAM 16 where the program and data are written is stored in the register 11c of the CPU 11. The control unit 11a of the CPU 11 sequentially reads these addresses stored in the register 11c, reads a program and data from the area on the RAM 16 indicated by the read address, and causes the calculation unit 11b to sequentially execute the operation indicated by the program. The calculation result is stored in the register 11c. Each program may be described as a single program sequence, or at least some of the programs may be stored in the library as separate modules.

図3は、CPU11にプログラムが読み込まれることにより構成される第1実施形態の署名生成装置10の機能構成を例示したブロック図である。なお、図3における矢印はデータの流れを示すが、一時メモリ10tや制御部10sに入出力されるデータの流れは省略してある。
図3に示すように、本形態の署名生成装置10は、記憶部10aと、秘密鍵生成部10bと、公開鍵生成部10cと、入力部10dと、メッセージ分割部10eと、任意値生成部10fと、群演算部10gと、ハッシュ演算部10h,10pと、ビット結合部10mと、排他的論理和演算部10nと、整数演算部10qと、通信部10rと、制御部10sと、一時メモリ10tとを有する。
また、図4は、ハッシュ演算部10hの機能構成の詳細を示した図である。図4に示すように、ハッシュ演算部10hは、ハッシュ回数演算部10haと、部分ハッシュ演算部10hbと、ビット結合部10hcと、ビット削除部10hdとを有する。
FIG. 3 is a block diagram illustrating a functional configuration of the signature generation device 10 according to the first embodiment configured by reading a program into the CPU 11. The arrows in FIG. 3 indicate the flow of data, but the flow of data input to and output from the temporary memory 10t and the control unit 10s is omitted.
As shown in FIG. 3, the signature generation apparatus 10 according to the present exemplary embodiment includes a storage unit 10a, a secret key generation unit 10b, a public key generation unit 10c, an input unit 10d, a message division unit 10e, and an arbitrary value generation unit. 10f, group operation unit 10g, hash operation units 10h and 10p, bit combination unit 10m, exclusive OR operation unit 10n, integer operation unit 10q, communication unit 10r, control unit 10s, and temporary memory 10t.
FIG. 4 is a diagram showing details of the functional configuration of the hash calculation unit 10h. As shown in FIG. 4, the hash calculation unit 10h includes a hash number calculation unit 10ha, a partial hash calculation unit 10hb, a bit combination unit 10hc, and a bit deletion unit 10hd.

なお、記憶部10aと一時メモリ10tとは、例えば、図2に記載したレジスタ11c、補助記憶装置14、RAM16、或いはこれらを結合した記憶領域に相当する。また、秘密鍵生成部10bと、公開鍵生成部10cと、メッセージ分割部10eと、任意値生成部10fと、群演算部10gと、ハッシュ演算部10h,10pと、ビット結合部10mと、排他的論理和演算部10nと、整数演算部10qと、制御部10sとは、それぞれの処理を実現するためのプログラムがCPU11に読み込まれることにより構成されるものである。また、入力部10dは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する入力部12であり、通信部10rは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する通信部18である。また、署名生成装置10は、制御部10sの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ10tに読み書きされる。
また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名生成装置10の機能をコンピュータに実行させるためのプログラムに相当する。
Note that the storage unit 10a and the temporary memory 10t correspond to, for example, the register 11c, the auxiliary storage device 14, the RAM 16, or a storage area obtained by combining these, as illustrated in FIG. Further, the secret key generation unit 10b, the public key generation unit 10c, the message division unit 10e, the arbitrary value generation unit 10f, the group calculation unit 10g, the hash calculation units 10h and 10p, and the bit combination unit 10m are exclusive. The logical OR operation unit 10n, the integer operation unit 10q, and the control unit 10s are configured by reading a program for realizing each processing into the CPU 11. The input unit 10d is an input unit 12 that is driven under the control of the CPU 11 into which a predetermined program has been read. The communication unit 10r is a communication unit that is driven under the control of the CPU 11 into which a predetermined program has been read. 18. In addition, the signature generation device 10 executes each process under the control of the control unit 10s. Further, unless otherwise specified, each data in the calculation process is read from and written to the temporary memory 10t.
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 signature generation apparatus 10.

<署名検証装置20の構成>
次に、署名検証装置20の構成を説明する。
[ハードウェア構成]
図2に示した署名生成装置10のハードウェア構成と同様である。
[ハードウェアとプログラムとの協働]
署名検証装置20も図2に示したようなコンピュータに所定のプログラムが読み込まれることにより構成される。図5は、このように構成される第1実施形態の署名検証装置20の機能構成を例示したブロック図である。なお、図5における矢印はデータの流れを示すが、一時メモリ20pや制御部20nに入出力されるデータの流れは省略してある。
図5に示すように、本形態の署名検証装置20は、記憶部20aと、通信部20bと、ビット長抽出部20cと、ハッシュ演算部20d,20fと、群演算部20eと、排他的論理和演算部20gと、ビット抽出部20hと、比較部20iと、出力部20mと、制御部20nと、一時メモリ20pとを有する。
<Configuration of Signature Verification Device 20>
Next, the configuration of the signature verification apparatus 20 will be described.
[Hardware configuration]
This is the same as the hardware configuration of the signature generation apparatus 10 shown in FIG.
[Cooperation between hardware and programs]
The signature verification apparatus 20 is also configured by reading a predetermined program into a computer as shown in FIG. FIG. 5 is a block diagram illustrating a functional configuration of the signature verification apparatus 20 according to the first embodiment configured as described above. Note that the arrows in FIG. 5 indicate the flow of data, but the flow of data input to and output from the temporary memory 20p and the control unit 20n is omitted.
As shown in FIG. 5, the signature verification apparatus 20 of this embodiment includes a storage unit 20a, a communication unit 20b, a bit length extraction unit 20c, hash calculation units 20d and 20f, a group calculation unit 20e, an exclusive logic It has a sum operation unit 20g, a bit extraction unit 20h, a comparison unit 20i, an output unit 20m, a control unit 20n, and a temporary memory 20p.

なお、記憶部20aと一時メモリ20pとは、例えば、コンピュータが具備するレジスタ、補助記憶装置、RAM、或いはこれらを結合した記憶領域に相当する。また、ビット長抽出部20cと、ハッシュ演算部20d,20fと、群演算部20eと、排他的論理和演算部20gと、ビット抽出部20hと、比較部20iと、制御部20nとは、それぞれの処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。また、出力部20mと通信部20bは、所定のプログラムが読み込まれたCPUの制御のもと駆動する。また、署名検証装置20は、制御部20nの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ20pに読み書きされる。
また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名検証装置20の機能をコンピュータに実行させるためのプログラムに相当する。
The storage unit 20a and the temporary memory 20p correspond to, for example, a register included in the computer, an auxiliary storage device, a RAM, or a storage area obtained by combining these. The bit length extraction unit 20c, the hash calculation units 20d and 20f, the group calculation unit 20e, the exclusive OR calculation unit 20g, the bit extraction unit 20h, the comparison unit 20i, and the control unit 20n are respectively The program for realizing this processing is configured to be read by the CPU. The output unit 20m and the communication unit 20b are driven under the control of the CPU loaded with a predetermined program. In addition, the signature verification apparatus 20 executes each process under the control of the control unit 20n. Further, unless otherwise specified, each data in the calculation process is read and written to the temporary memory 20p one by one.
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 signature verification apparatus 20.

<処理>
次に、本形態の処理について説明する。
[前処理]
まず、署名システム1で使用する位数qの離散対数問題の求解が困難な巡回群Gとその生成元g∈Gとを決定する。このような巡回群Gとしては、例えば、楕円曲線上の有理点のなす群や有限体の乗法群などを用いることができる。なお、安全性の面から位数qは素数であることが望ましい。また、署名システム1で使用するビット長パラメータL∈Z>0(0より大きな整数)と、共用値h∈{0,1}とを決定する。
さらに、後述するリカバリメッセージmrecのビット長Mに応じて出力ビット長がL+Mビットに定まる出力が可変長のハッシュ関数H:{0,1}→{0,1}L+Mを決定する。なお、このようなハッシュ関数の演算方法については後述する。
<Processing>
Next, the processing of this embodiment will be described.
[Preprocessing]
First, a cyclic group G that is difficult to find a discrete logarithm problem of order q used in the signature system 1 and its generation source gεG are determined. As such a cyclic group G, for example, a group formed by rational points on an elliptic curve or a multiplicative group of a finite field can be used. The order q is preferably a prime number from the viewpoint of safety. In addition, the bit length parameter LεZ > 0 (an integer greater than 0 ) and the shared value hε {0,1} L used in the signature system 1 are determined.
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 method for calculating such a hash function will be described later.

また、入力値に対してLビットのハッシュ値を出力するハッシュ関数H:{0,1}→{0,1}と、また、入力値に対してZ(qを法とする完全剰余系)の元を出力するハッシュ関数H:{0,1}→Zとを決定する。ハッシュ関数Hは、ハッシュ関数Hと同様に構成でき、ハッシュ関数Hは、SHA−1等のハッシュ値に対し、qを法とした剰余演算を行うことで構成できる。
以上のように決定された巡回群Gや各ハッシュ関数H,H,Hを特定する情報は、例えば、署名生成装置10や署名検証装置20を構成する各プログラムに書き込まれ、署名生成装置10や署名検証装置20は、決定された巡回群Gでの演算や、各ハッシュ関数H,H,Hの演算が可能になるものとする。また、ビット長パラメータL∈Z>0や共用値h∈{0,1}や位数qや生成元g∈Gは、署名生成装置10の記憶部10aと署名検証装置20の記憶部20aに格納される。
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 3 can be configured by performing a remainder operation modulo q on a hash value such as SHA-1.
Information specifying the cyclic group G and the hash functions H 0 , H 1 , and H 3 determined as described above is written in each program constituting the signature generation device 10 and the signature verification device 20, for example, to generate a signature. It is assumed that the device 10 and the signature verification device 20 can perform operations on the determined cyclic group G and operations of the hash functions H 0 , H 1 , and H 3 . The bit length parameter LεZ > 0 , the shared value hε {0,1} L , the order q, and the generation source gεG are stored in the storage unit 10a of the signature generation device 10 and the storage unit 20a of the signature verification device 20, respectively. Stored in

[鍵生成処理]
次に、署名生成装置10が行う鍵生成処理について説明する。
まず、署名生成装置10の秘密鍵生成部10bが任意の秘密鍵x∈Zを生成する。なお、この秘密鍵xの生成は、擬似乱数をZにマッピングして行ってもよいし、署名生成者によって任意に決定された値を元に行ってもよい。生成された秘密鍵xは、署名生成装置10の記憶部10aに安全に格納される。すなわち、署名生成装置10の外部の装置は、記憶部10aから秘密鍵xを取得することができない。
[Key generation process]
Next, a key generation process performed by the signature generation apparatus 10 will be described.
First, the secret key generator 10b of the signature generating apparatus 10 generates an arbitrary secret key x∈Z q. The secret key x may be generated by mapping a pseudo-random number to Zq or based on a value arbitrarily determined by the signature generator. The generated secret key x is securely stored in the storage unit 10a of the signature generation device 10. That is, a device external to the signature generation device 10 cannot acquire the secret key x from the storage unit 10a.

次に、署名生成装置10の公開鍵生成部10cが、記憶部10aから秘密鍵xと巡回群Gの生成元g∈Gとを読み込み、巡回群Gで定義された演算
y=gx∈G …(3)
を行って秘密鍵xに対応する公開鍵y∈Gを生成し、記憶部10aに格納する。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(3)の右辺は、楕円曲線E上の点である生成元g=(g,g)を楕円スカラー倍(楕円x倍)する演算(x・g∈E)を意味し、公開鍵yは楕円曲線E上の点となる。また、例えば、巡回群Gが有限体の乗法群であった場合、式(3)の右辺は、gmod p(ただし、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 signature generation apparatus 10 reads the secret key x and the generation group gεG of the cyclic group G from the storage unit 10a, and performs an operation defined by the cyclic group G.
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. Also, for example, when the cyclic group G is a finite field multiplicative group, the right side of the equation (3) means g x mod p (where p = 2q + 1), and the public key y is a scalar value and Become. The generated public key y is transmitted from the communication unit 10r to the public key server device 30 through the network 40, and the public key server device 30 publishes the transmitted public key y together with, for example, a public key certificate. The public key y and the like are publicly stored in the storage unit of the public key server device 30 and any device that can be connected to the network 40 is stored in the storage unit of the public key server device 30. This means that the public key y and the like can be acquired. The signature verification device 20 receives the public key y from the public key server device 30 through the communication unit 20b and stores it in the storage unit 20a.

[署名生成処理]
次に、第1実施形態の署名生成処理について説明する。
図6は、第1実施形態の署名生成処理を説明するためのフローチャートである。以下、図6に従って本形態の署名生成処理を説明する。
まず、署名生成装置10(図3)の入力部10dに、メッセージm∈{0,1}N+Mとリカバリメッセージのビット長M≧1とが入力される(ステップS11)。入力されたこれらの情報は、それぞれ記憶部10aに格納される。
[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.
First, the message mε {0, 1} N + M and the recovery message bit length M ≧ 1 are input to the input unit 10d of the signature generation apparatus 10 (FIG. 3) (step S11). These pieces of input information are stored in the storage unit 10a.

次に、メッセージ分割部10eが、記憶部10aからメッセージm∈{0,1}N+Mとリカバリメッセージのビット長M≧1とを読み込む。メッセージ分割部10eは、これらの情報を用い、
メッセージm∈{0,1}N+Mを、ビット長Mのリカバリメッセージmrec∈{0,1} と、ビット長N(N≧0)のクリアメッセージmclr∈{0,1}とに分割する(ステップS12)。例えば、メッセージm∈{0,1}N+Mの上位Mビットをリカバリメッセージmrec∈{0,1}とし、下位Nビットをクリアメッセージmclr∈{0,1}とする。なお、分割法はこれに限定されず、メッセージm∈{0,1}N+Mのどのビットをリカバリメッセージmrecとし、どのビットをクリアメッセージmclr
とするかは、任意に設定できる。このように分割されたビット長Mのリカバリメッセージmrec∈{0,1} と、ビット長Nのクリアメッセージmclr∈{0,1}とは、それぞれ記憶部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∈Zを生成し、生成した任意値kを記憶部10aに格納する(ステップS13)。なお、任意値kの生成は、例えば、擬似乱数をZにマッピングすることにより行う。
次に、群演算部10gが、記憶部10aから生成元g∈Gと任意値k∈Zとを読み込み、
R=gk∈G …(4)
を算出し、当該演算結果R∈Gを記憶部10aに出力して格納する(ステップS14)。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(4)の右辺は、楕円曲線E上の点である生成元g=(g,g)を楕円スカラー倍(楕円k倍)する演算(k・g∈E)を意味し、演算結果Rは楕円曲線E上の点となる。また、例えば、巡回群Gが有限体の乗法群であった場合、式(4)の右辺は、gmod pの演算を意味し、演算結果Rはスカラー値となる。
Next, the arbitrary value generation unit 10f generates an arbitrary value kεZ q , and stores the generated arbitrary value k in the storage unit 10a (step S13). The generation of arbitrary value k is performed, for example, by mapping a pseudo random number to Z q.
Next, the group calculation unit 10g reads the generation source gεG and the arbitrary value kεZ q from the storage unit 10a,
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. 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とリカバリメッセージmrecのビット長Mとビット長パラメータLを読み込む。ハッシュ演算部10hは、リカバリメッセージmrecのビット長Mに応じて出力ビット長がL+Mビットに定まるハッシュ関数H:{0,1}→{0,1}L+Mを、演算結果Rとビット長Mとに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値
Π=H0(β)∈{0,1}L+M …(5)
を記憶部10aに出力して格納する(ステップS15)。なお、第1実施形態では、βは演算結果Rとビット長Mとのみに依存する値γ=(R,M)である。また、本形態のβの構成方法に限定はないが、βの構成方法は後述する署名検証装置20でのβ’の構成方法と同一とする。本形態のβの構成例としては以下のようなものがある。
Next, the hash calculation unit 10h reads the calculation result RεG, the bit length M of the recovery message m rec , and the bit length parameter L from the storage unit 10a. The hash calculation unit 10h generates a hash function H 0 : {0, 1} * → {0, 1} L + M , in which the output bit length is determined as L + M bits according to the bit length M of the recovery message m rec , the calculation result R and the bit L + M-bit hash value さ せ = H 0 (β) ∈ {0,1} L + M (5) acting on a value β determined depending on the length M
Is output and stored in the storage unit 10a (step S15). In the first embodiment, β is a value γ = (R, M) that depends only on the calculation result R and the bit length M. In addition, although there is no limitation on the β configuration method of the present embodiment, the β configuration method is the same as the β ′ configuration method in the signature verification apparatus 20 described later. Examples of the configuration of β in this embodiment include the following.

巡回群Gが楕円曲線E上の有理点のなす群であった場合:
〔β−1〕楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値(例えば、点Rのx座標若しくはy座標、又は、点Rのx座標とy座標とのビット結合値)を上位ビットとし、Mを下位ビットとして結合した値をβとする。
〔β−2〕楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値を下位ビットとし、Mを上位ビットとして結合した値をβとする。
〔β−3〕所定の規則に従い、楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値とMとの各ビットをそれぞれ離散的に配置して結合した値をβとする。
巡回群Gが有限体の乗法群であった場合:
〔β−4〕スカラー値である演算結果Rを上位ビットとし、Mを下位ビットとして結合した値をβとする。
〔β−5〕スカラー値である演算結果Rを下位ビットとし、Mを上位ビットとして結合した値をβとする。
〔β−6〕所定の規則に従い、スカラー値である演算結果RとMとの各ビットをそれぞれ離散的に配置して結合した値をβとする。
If the cyclic group G is a group of rational points on the elliptic curve E:
[Β-1] A value (for example, the x-coordinate or y-coordinate of the point R, or the x-coordinate and y-coordinate of the point R) that can uniquely or exclusively specify the calculation result R that is a point on the elliptic curve E Bit combined value) is the upper bit, and M is the lower bit and the combined value is β.
[Β-2] A value obtained by uniquely or limitedly specifying the calculation result R that is a point on the elliptic curve E is a lower bit, and a value obtained by combining M with an upper bit is β.
[Β-3] In accordance with a predetermined rule, a value obtained by uniquely arranging or combining each bit of M with a value that can uniquely specify the calculation result R that is a point on the elliptic curve E and β is β And
If the cyclic group G is a multiplicative group of finite fields:
[Β-4] A value obtained by combining the operation result R which is a scalar value as the upper bits and M as the lower bits is β.
[Β-5] A value obtained by combining the operation result R which is a scalar value as the lower bits and M as the upper bits is β.
[Β-6] According to a predetermined rule, a value obtained by discretely arranging and combining the bits of the operation results R and M, which are scalar values, is β.

[ステップS15の処理の例]
図7は、ステップS15の処理の例を説明するためのフローチャートである。
[Example of processing in step S15]
FIG. 7 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)。
次に、部分ハッシュ演算部10hbが、一時メモリ10tから変数eを読み込み、記憶部10aからβ=Rを読み込み、ハッシュ値
H(e,β) …(5-2)
を算出して一時メモリ10tに格納する(ステップS15c)。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(5−2)は、楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値(例えば、点Rのx座標若しくはy座標、又は、点Rのx座標とy座標とのビット結合値)と変数eとのビット結合値にハッシュ関数Hを作用させる演算を意味する。また、例えば、巡回群Gが有限体の乗法群であった場合、式(5−2)は、スカラー値である演算結果Rと変数eとのビット結合値にハッシュ関数Hを作用させる演算を意味する。
Next, the control unit 10s substitutes 0 for the variable e, and stores the variable e in the temporary memory 10t (step S15b).
Next, the partial hash calculation unit 10hb reads the variable e from the temporary memory 10t, reads β = R from the storage unit 10a, and the hash value
H (e, β)… (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)。
次に、ビット削除部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としたものをΠ=H(R)とする演算を意味する。
Next, the control unit 10s reads e max and the variable e from the temporary memory 10t,
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 control unit 10s sets e + 1 as a new e, stores the new e in the temporary memory 10t (step S15e), and then returns the process to step S15c. On the other hand, if the expression (5-3) is satisfied, the control unit 10s gives an instruction to the bit combination unit 10hc, and the bit combination unit 10hc receives each hash value H (0, R), H (1 from the temporary memory 10t. , R), H (2, R), ..., H (e max , R), and their bit combination values
HC (R) = H (0, R) | ・ ・ ・ | H (e max , R)… (5-4)
Is calculated and stored in the temporary memory 10t (step S15f).
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の処理の例]の説明終わり)。
ステップS15の後、ビット結合部10mが、記憶部10aから共有値h∈{0,1}と、リカバリメッセージmrecとを読み込む(ステップS16)。ビット結合部10mは、共有値h∈{0,1}を第1ビット位置に配置し、リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値
d=h|mrec∈{0,1}L+M …(6)
を算出し、当該ビット結合値dを記憶部10aに出力して格納する(ステップS17)。なお、「第1ビット位置」及び「第2ビット位置」をどのビット位置にするかについて特に限定はない。しかし、署名生成装置10と署名検証装置20との間では、「第1ビット位置」及び「第2ビット位置」をどのビット位置にするかの基準を同一にしなければならない。図9に「第1ビット位置」及び「第2ビット位置」の設定例を示す。
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]).
After step S15, the bit combining unit 10m reads the shared value hε {0, 1} L and the recovery message m rec from the storage unit 10a (step S16). The bit combination unit 10m arranges the shared value hε {0,1} L in the first bit position and the bit combination value of L + M bits in which the recovery message m rec ε {0,1} M is arranged in the second bit position.
d = h | m rec ∈ {0,1} L + M … (6)
And the bit combination value d is output to the storage unit 10a and stored (step S17). 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 signature generation apparatus 10 and the signature verification apparatus 20, the reference for which bit position should be the “first bit position” and “second bit position” must be the same. FIG. 9 shows a setting example of “first bit position” and “second bit position”.

図9(a)の例は、連続した上位Lビットを「第1ビット位置」とし、連続した下位Mビットを「第2ビット位置」とした例である。図9(b)の例は、連続した上位Mビットを「第2ビット位置」とし、連続した下位Lビットを「第1ビット位置」とした例である。また、図9(c)の例は、L≧Mの場合の例であり、上位から奇数番目のビット(合計Mビット)の位置を「第2ビット位置」とし、その他のビット位置を「第1ビット位置」とした例である。
次に、排他的論理和演算部10nが、記憶部10aからハッシュ値Πとビット結合値dとを読み込む。排他的論理和演算部10nは、ハッシュ値Πとビット結合値dとの排他的論理和
r=Π(+)d∈{0,1}L+M …(7)
を算出し((+)は排他的論理和演算子)、当該排他的論理和値rを記憶部10aに出力して格納する(ステップS18)。
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”.
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 (7)
((+) Is an exclusive OR operator), and the exclusive OR value r is output to the storage unit 10a and stored (step S18).

次に、ハッシュ演算部10pが、記憶部10aから排他的論理和値rとクリアメッセージmclrとビット長Mとを読み込む。ハッシュ演算部10pは、入力値に対して整数を出力するハッシュ関数H:{0,1}→Zを、排他的論理和値rとクリアメッセージmclrとビット長Mとに依存して定まる値γに作用させ、その演算結果であるハッシュ値
t=H3(γ)∈Zq …(8)
を記憶部10aに出力して格納する(ステップS19)。なお、第1実施形態では、γは排他的論理和値rとクリアメッセージmclrとビット長Mとのみに依存する値γ=(r,mclr,M)である。本形態のγの構成方法に限定はないが、γの構成方法は後述する署名検証装置20でのγ’の構成方法と同一とする。γの構成例としては以下のようなものがある。
Next, the hash operation unit 10p reads the exclusive OR value r, the clear message m clr, and the bit length M from the storage unit 10a. The hash calculator 10p depends on the hash function H 3 : {0, 1} * → Z q that outputs an integer for the input value, depending on the exclusive OR value r, the clear message m clr, and the bit length M. The hash value that is the result of the operation
t = H 3 (γ) ∈Z q (8)
Is output and stored in the storage unit 10a (step S19). In the first embodiment, γ is a value γ = (r, m clr , M) that depends only on the exclusive OR value r, the clear message m clr, and the bit length M. The γ configuration method of the present embodiment is not limited, but the γ configuration method is the same as the γ ′ configuration method in the signature verification apparatus 20 described later. Examples of the configuration of γ include the following.

〔γ−1〕最上位L+Mビットをrとし、その後に続くNビットをmclrとし、さらにその後に続くLビットをMとして結合した2L+M+Nビットの値をγとする。
〔γ−2〕最上位LビットをMとし、その後に続くL+Mビットをrとし、さらにその後に続くNビットをmclrとして結合した2L+M+Nビットの値をγとする。
〔γ−3〕所定の規則に従い、Mやrやmclrのビットをそれぞれ離散的(例えば、Mを偶数番目のビットに離散的に配置する等)に結合したものをγとする。
次に、整数演算部10qが、記憶部10aから任意値kとハッシュ値tと秘密鍵xとqとを読み込む。整数演算部10qは、
s=k-t・x∈Zq …(9)
を算出し、当該演算結果sを記憶部10aに出力して格納する(ステップS20)。
次に、通信部10rに、排他的論理和値rと演算結果sとクリアメッセージmclrとが読み込まれ、通信部10rは、署名σ=(r,s)とクリアメッセージmclrとをネットワーク40を通じて署名検証装置20に送信する(ステップS21)。
[Γ−1] The value of 2L + M + N bits obtained by combining the most significant L + M bit as r, the subsequent N bit as m clr, and the subsequent L bit as M is γ.
[Γ-2] The value of 2L + M + N bits obtained by combining the most significant L bit as M, the subsequent L + M bit as r, and the subsequent N bit as m clr is γ.
[Γ-3] Let γ be a combination of M, r, and m clr bits discretely (for example, discretely arranging M in even-numbered bits) according to a predetermined rule.
Next, the integer arithmetic unit 10q reads the arbitrary value k, the hash value t, and the secret keys x and q from the storage unit 10a. The integer arithmetic unit 10q is
s = kt · x∈Z q (9)
And the calculation result s is output and stored in the storage unit 10a (step S20).
Next, the exclusive OR value r, the operation result s, and the clear message m clr are read into the communication unit 10r, and the communication unit 10r transmits the signature σ = (r, s) and the clear message m clr to the network 40. To the signature verification apparatus 20 (step S21).

[署名検証処理]
次に、第1実施形態の署名検証処理について説明する。
図8は、第1実施形態の署名検証処理を説明するためのフローチャートである。以下、図8に従って本形態の署名検証処理を説明する。
まず、署名検証装置20(図5)の通信部20bが、署名σ’=(r’,s’)とクリアメッセージmclr’とを受信し(「入力を受け付け」に相当)、これらを記憶部20aに格納する(ステップS41)。なお、署名とリアメッセージとが正規なものであれば、σ’=(r’,s’)=σ=(r,s)であり、mclr’=mclrであるが、ここでは、検証対象の署名をσ’=(r’,s’)と表現し、検証対象のクリアメッセージをmclr’と表現する。
[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.
First, the communication unit 20b of the signature verification apparatus 20 (FIG. 5) receives the signature σ ′ = (r ′, s ′) and the clear message m clr ′ (corresponding to “accept input”) and stores them. Store in the unit 20a (step S41). If the signature and the rear message are legitimate, σ ′ = (r ′, s ′) = σ = (r, s) and m clr ′ = m clr. The target signature is expressed as σ ′ = (r ′, s ′), and the verification target clear message is expressed as m clr ′.

次に、ビット長抽出部20cが、記憶部20aから、ビット長パラメータLと署名σ’=(r’,s’)のr’とを読み込む。ビット長抽出部20cは、
M'=length(r')‐L …(10)
により、署名σ’に対応するリカバリメッセージmrec’のビット長M’を算出し、記憶部20aに格納する(ステップS42)。
次に、ハッシュ演算部20dが、記憶部20aからr’とクリアメッセージをmclr’とqとビット長M’とを読み込む。ハッシュ演算部20dは、署名生成装置10と同一のハッシュ関数H:{0,1}→Zを、r’とmclr’とビット長M’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値
t’=H3(γ’) …(11)
を記憶部20aに出力して格納する(ステップS43)。なお、γ’の構成方法は前述した署名生成装置10でのγの構成方法と同一(r=r’とし、mclr=mclr’とした場合に同一)とする。
Next, the bit length extraction unit 20c reads the bit length parameter L and r ′ of the signature σ ′ = (r ′, s ′) from the storage unit 20a. The bit length extraction unit 20c
M '= length (r')-L (10)
Thus, the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′ is calculated and stored in the storage unit 20a (step S42).
Next, the hash calculator 20d reads r ′, a clear message, m clr ′, q, and a bit length M ′ from the storage unit 20a. The hash calculator 20d sets the same hash function H 3 : {0,1} * → Z q as the signature generation apparatus 10 to a value γ ′ determined depending on r ′, m clr ′, and the bit length M ′. Hash value that is the result of the operation
t '= H 3 (γ')… (11)
Is output and stored in the storage unit 20a (step S43). Note that the configuration method of γ ′ is the same as the configuration method of γ in the signature generation apparatus 10 described above (same when r = r ′ and m clr = m clr ′).

次に、群演算部20eが、記憶部20aから、生成元g∈Gと署名生成装置10の公開鍵y∈Gと署名σ’のs’とハッシュ値t’とを読み込み、
R’=gs’・yt’∈G …(12)
の演算を行い、その演算結果R’を記憶部20aに出力して格納する(ステップS44)。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(12)の右辺は、楕円曲線E上の点である生成元g=(g,g)を楕円スカラー倍(楕円s’倍)し、公開鍵y=(y,y)を楕円スカラー倍(楕円t’倍)し、それらの演算結果を楕円加算する演算(s’・g+t’・y∈E)を意味し、演算結果R’は楕円曲線E上の点となる。また、例えば、巡回群Gが有限体の乗法群であった場合、式(12)の右辺は、gs’・yt’mod pの演算を意味し、演算結果R’はスカラー値となる。
Next, the group calculation unit 20e reads the generation source gεG, the public key yεG of the signature generation device 10, the s ′ of the signature σ ′, and the hash value t ′ from the storage unit 20a,
R '= g s' · y t' ∈ G (12)
The calculation result R ′ is output to the storage unit 20a and stored (step S44). 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 (12) is a generator g = (g 1 , g 2 ) that is a point on the elliptic curve E. Is multiplied by the elliptic scalar (ellipse s ′ times), the public key y = (y 1 , y 2 ) is multiplied by the ellipse scalar (ellipse t ′ times), and the result of ellipse addition (s ′ · g + t ′) Y means E), and the calculation result R ′ is a point on the elliptic curve E. For example, when the cyclic group G is a multiplicative group of a finite field, the right side of the equation (12) means an operation of g s ′ · y t ′ mod p, and the operation result R ′ is a scalar value. .

次に、ハッシュ演算部20fが、記憶部20aから演算結果R’∈Gとリカバリメッセージmrec’のビット長M’とビット長パラメータLを読み込む。ハッシュ演算部20fは、署名生成装置10と同じハッシュ関数Hを演算結果R’とビット長M’とに依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値
Π'=H0(β’)∈{0,1}L+M' …(13)
を記憶部20aに出力して格納する(ステップS45)。なお、β’の構成方法は、前述した署名生成装置10でのβの構成方法と同一とし、また、H(β')の演算は、署名生成装置10の場合のH(β')の演算と同一(β=β',M=M’の場合に同一)とする。
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 storage unit 20a. Hash calculator 20f the operation result of the same hash function H 0 and the signature generating apparatus 10 R 'and the bit length M''to act on, L + M is a result of the operation' value β determined in dependence on the bits of the hash value Π '= H 0 (β') ∈ {0,1} L + M ' … (13)
Is output and stored in the storage unit 20a (step S45). Incidentally, beta 'configuration method is the same as the configuration method of the beta of the signature generating apparatus 10 described above, also, H 0 (β') calculation of the H 0 in the case of the signature generating apparatus 10 (beta ') (Same when β = β ′, M = M ′).

次に、排他的論理和演算部20gが、記憶部20aから、ハッシュ値Π’と署名σ’が有するr’とを読み込み、それらの排他的論理和
d’=Π’(+)r’∈{0,1}L+M’ …(14)
を算出し、当該排他的論理和値d’を記憶部20aに出力して格納する(ステップS46)。
次に、ビット抽出部20hが、記憶部20aから排他的論理和値d’とリカバリメッセージmrec’のビット長M’とを読み込む。ビット抽出部20hは、排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}と、排他的論理和値d’の第2ビット位置のM’ビットの値mrec’∈{0,1}M’とを抽出し、それらを記憶部20aに格納する(ステップS47)。なお、「第1ビット位置」及び「第2ビット位置」は、署名生成装置10の処理での「第1ビット位置」及び「第2ビット位置」と同一(d=d’とした場合に同一)とする。
Next, the exclusive OR operation unit 20g reads the hash value Π ′ and r ′ included in the signature σ ′ from the storage unit 20a, and performs the exclusive OR operation on them.
d '= Π' (+) r'∈ {0,1} L + M ' (14)
And the exclusive OR value d ′ is output and stored in the storage unit 20a (step S46).
Next, the bit extraction unit 20h reads the exclusive OR value d ′ and the bit length M ′ of the recovery message m rec ′ from the storage unit 20a. The bit extraction unit 20h outputs the L-bit value h′ε {0, 1} L at the first bit position of the exclusive OR value d ′ and the M ′ bit at the second bit position of the exclusive-OR value d ′. Value m rec '∈ {0, 1} M ′ is extracted and stored in the storage unit 20a (step S47). The “first bit position” and the “second bit position” are the same as the “first bit position” and the “second bit position” in the processing of the signature generation apparatus 10 (when d = d ′, the same). ).

次に、比較部20iが、記憶部20aから共有値h∈{0,1}と値h’とを読み込み(ステップS48)、
h'=h …(15)
を満たすか否かを判断する(ステップS49)。
ここで、式(15)を満たさない場合、比較部20iは0(検証失敗)を記憶部20aに出力して格納し、出力部20mは、記憶部20aから送られた0(検証失敗)を出力する(ステップS50)。一方、式(15)を満たす場合、比較部20iは1(検証成功)を記憶部20aに出力して格納し、出力部20mは、記憶部20aから送られた1(検証成功)を出力し(ステップS51)、さらにリカバリメッセージmrec’を出力する(ステップS52)。
Next, the comparison unit 20i reads the shared value hε {0, 1} L and the value h ′ from the storage unit 20a (step S48),
h '= h… (15)
It is determined whether or not the condition is satisfied (step S49).
Here, when Expression (15) is not satisfied, the comparison unit 20i outputs 0 (verification failure) to the storage unit 20a and stores it, and the output unit 20m receives 0 (verification failure) sent from the storage unit 20a. Output (step S50). On the other hand, when the expression (15) is satisfied, the comparison unit 20i outputs 1 (verification success) to the storage unit 20a and stores it, and the output unit 20m outputs 1 (verification success) sent from the storage unit 20a. (Step S51), and further, a recovery message m rec 'is output (Step S52).

〔第2実施形態〕
次に、第2実施形態について説明する。第2実施形態は、第2の本発明に係る実施形態である。以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
<全体構成>
署名生成装置10が署名生成装置110となり、署名検証装置20が署名検証装置120となる以外は、第1実施形態と同じである。
<署名生成装置110の構成>
[ハードウェア構成]
図2に示した署名生成装置10のハードウェア構成と同様である。
[ハードウェアとプログラムとの協働]
第1実施形態と同様、本形態の署名生成装置110も図2に示したようなコンピュータに所定のプログラムが読み込まれることにより構成される。
図10は、CPUにプログラムが読み込まれることにより構成される第2実施形態の署名生成装置110の機能構成を例示したブロック図である。なお、図10における矢印はデータの流れを示すが、一時メモリ10tや制御部10sに入出力されるデータの流れは省略してある。また、図10において第1実施形態と共通する部分には図3と同じ符号を付した。
[Second Embodiment]
Next, a second embodiment will be described. The second embodiment is an embodiment according to the second aspect of the present invention. Below, it demonstrates centering around difference with 1st Embodiment, and abbreviate | omits description about the matter which is common in 1st Embodiment.
<Overall configuration>
The second embodiment is the same as the first embodiment except that the signature generation apparatus 10 becomes the signature generation apparatus 110 and the signature verification apparatus 20 becomes the signature verification apparatus 120.
<Configuration of Signature Generation Device 110>
[Hardware configuration]
This is the same as the hardware configuration of the signature generation apparatus 10 shown in FIG.
[Cooperation between hardware and programs]
As in the first embodiment, the signature generation apparatus 110 according to the present embodiment is configured by reading a predetermined program into a computer as shown in FIG.
FIG. 10 is a block diagram illustrating a functional configuration of the signature generation apparatus 110 according to the second embodiment configured by reading a program into the CPU. The arrows in FIG. 10 indicate the flow of data, but the flow of data input to and output from the temporary memory 10t and the control unit 10s is omitted. In FIG. 10, the same reference numerals as those in FIG.

図10に示すように、本形態の署名生成装置110は、記憶部10aと、秘密鍵生成部10bと、公開鍵生成部10cと、入力部10dと、メッセージ分割部110eと、任意値生成部10fと、群演算部10gと、ハッシュ演算部110h,110pと、ビット結合部10mと、排他的論理和演算部10nと、整数演算部10qと、通信部10rと、制御部10sと、一時メモリ10tとを有する。なお、メッセージ分割部110eとハッシュ演算部110h,110pとは、それぞれの処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。   As illustrated in FIG. 10, the signature generation device 110 according to the present exemplary embodiment includes a storage unit 10a, a secret key generation unit 10b, a public key generation unit 10c, an input unit 10d, a message division unit 110e, and an arbitrary value generation unit. 10f, group operation unit 10g, hash operation units 110h and 110p, bit combination unit 10m, exclusive OR operation unit 10n, integer operation unit 10q, communication unit 10r, control unit 10s, and temporary memory 10t. The message dividing unit 110e and the hash calculation units 110h and 110p are configured by reading a program for realizing each processing into the CPU.

<署名検証装置120の構成>
次に、署名検証装置120の構成を説明する。
[ハードウェア構成]
図2に示した署名生成装置10のハードウェア構成と同様である。
[ハードウェアとプログラムとの協働]
署名検証装置120も図2に示したようなコンピュータに所定のプログラムが読み込まれることにより構成される。図11は、このように構成される第2実施形態の署名検証装置120の機能構成を例示したブロック図である。なお、図11における矢印はデータの流れを示すが、一時メモリ20pや制御部20nに入出力されるデータの流れは省略してある。また、図11において第1実施形態と共通する部分には図5と同じ符号を付した。
図11に示すように、本形態の署名検証装置120は、記憶部20aと、通信部20bと、ビット長抽出部120cと、ハッシュ演算部120d,120fと、群演算部20eと、排他的論理和演算部20gと、ビット抽出部20hと、比較部20iと、出力部20mと、制御部20nと、一時メモリ20pとを有する。なお、ビット長抽出部120cとハッシュ演算部120d,120fとは、それぞれの処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。
<Configuration of Signature Verification Apparatus 120>
Next, the configuration of the signature verification apparatus 120 will be described.
[Hardware configuration]
This is the same as the hardware configuration of the signature generation apparatus 10 shown in FIG.
[Cooperation between hardware and programs]
The signature verification apparatus 120 is also configured by reading a predetermined program into a computer as shown in FIG. FIG. 11 is a block diagram illustrating a functional configuration of the signature verification apparatus 120 according to the second embodiment configured as described above. Note that the arrows in FIG. 11 indicate the flow of data, but the flow of data input to and output from the temporary memory 20p and the control unit 20n is omitted. Also, in FIG. 11, the same reference numerals as those in FIG.
As shown in FIG. 11, the signature verification apparatus 120 of this embodiment includes a storage unit 20a, a communication unit 20b, a bit length extraction unit 120c, hash calculation units 120d and 120f, a group calculation unit 20e, an exclusive logic It has a sum operation unit 20g, a bit extraction unit 20h, a comparison unit 20i, an output unit 20m, a control unit 20n, and a temporary memory 20p. The bit length extraction unit 120c and the hash calculation units 120d and 120f are configured by reading a program for realizing each processing into the CPU.

<処理>
次に、本形態の処理について説明する。
[前処理]
第1実施形態と同様である。
[鍵生成処理]
第1実施形態と同様である。
[署名生成処理]
次に、第1実施形態の署名生成処理について説明する。
図12は、第2実施形態の署名生成処理を説明するためのフローチャートである。以下、図12に従って本形態の署名生成処理を説明する。
まず、署名生成装置110(図10)の入力部10dに、メッセージm∈{0,1}N+Mとリカバリメッセージのビット長M≧1とが入力される(ステップS111)。入力されたこれらの情報は、それぞれ記憶部10aに格納される。
<Processing>
Next, the processing of this embodiment will be described.
[Preprocessing]
This is the same as in the first embodiment.
[Key generation process]
This is the same as in the first embodiment.
[Signature generation processing]
Next, a signature generation process according to the first 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.
First, the message mε {0, 1} N + M and the recovery message bit length M ≧ 1 are input to the input unit 10d of the signature generation apparatus 110 (FIG. 10) (step S111). These pieces of input information are stored in the storage unit 10a.

次に、メッセージ分割部110eが、記憶部10aからメッセージm∈{0,1}N+Mとリカバリメッセージのビット長M≧1とを読み込む。メッセージ分割部110eは、これらの情報を用い、
メッセージm∈{0,1}N+Mを、ビット長Mのリカバリメッセージmrec∈{0,1} と、ビット長N(N≧0)のクリアメッセージmclr∈{0,1}とに分割し、さらにクリアメッセージmclr∈{0,1}のビット長Nを抽出する(ステップS112)。なお、ビット分割の手法は第1実施形態と同様である。このように分割されたビット長Mのリカバリメッセージmrec∈{0,1} と、ビット長Nのクリアメッセージmclr∈{0,1}と、クリアメッセージmclr∈{0,1}のビット長Nとは、それぞれ記憶部10aに格納される。
次に、第1実施形態と同じく、任意値生成部10fが任意値k∈Zを生成し、生成した任意値kを記憶部10aに格納し(ステップS113)。群演算部10gが、記憶部10aから生成元g∈Gと任意値k∈Zとを読み込み、式(4)に従ってRを算出し、当該演算結果R∈Gを記憶部10aに出力して格納する(ステップS114)。
Next, the message dividing unit 110e 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 110e uses these pieces of information,
The message mε {0,1} N + M is changed to 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). divided, further extracts the clear message m clr{0,1} bit length of N N (step S112). The bit division method is the same as that in the first embodiment. The bit length M recovery message m rec ε {0,1} M , the bit length N clear message m clr ε {0,1} N, and the clear message m clr ε {0,1}. the bit length N of the N, are stored in the respective storage unit 10a.
Then, as in the first embodiment, any value generator 10f generates an arbitrary value k ∈ Z q, and stores the generated arbitrary value k in the storage unit 10a (step S113). The group calculation unit 10g reads the generator gεG and the arbitrary value kεZ q from the storage unit 10a, calculates R according to the equation (4), and outputs the calculation result RεG to the storage unit 10a. Store (step S114).

次に、ハッシュ演算部110hが、記憶部10aから演算結果R∈Gとリカバリメッセージmrecのビット長Mとクリアメッセージmclrのビット長Nとビット長パラメータLを読み込む。ハッシュ演算部110hは、リカバリメッセージmrecのビット長Mに応じて出力ビット長がL+Mビットに定まるハッシュ関数H:{0,1}→{0,1}L+Mを、演算結果Rとビット長Nとに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値
Π=H0(β)∈{0,1}L+M …(16)
を記憶部10aに出力して格納する(ステップS115)。なお、第2実施形態では、βは演算結果Rとビット長Nとのみに依存する値γ=(R,N)である。また、本形態のβの構成方法に限定はないが、βの構成方法は後述する署名検証装置120でのβ’の構成方法と同一とする。本形態のβの構成例としては以下のようなものがある。
巡回群Gが楕円曲線E上の有理点のなす群であった場合:
〔β−1〕楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値(例えば、点Rのx座標若しくはy座標、又は、点Rのx座標とy座標とのビット結合値)を上位ビットとし、Nを下位ビットとして結合した値をβとする。
〔β−2〕楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値を下位ビットとし、Nを上位ビットとして結合した値をβとする。
〔β−3〕所定の規則に従い、楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値とNとの各ビットをそれぞれ離散的に配置して結合した値をβとする。
巡回群Gが有限体の乗法群であった場合:
〔β−4〕スカラー値である演算結果Rを上位ビットとし、Nを下位ビットとして結合した値をβとする。
〔β−5〕スカラー値である演算結果Rを下位ビットとし、Nを上位ビットとして結合した値をβとする。
〔β−6〕所定の規則に従い、スカラー値である演算結果RとNとの各ビットをそれぞれ離散的に配置して結合した値をβとする。
Next, the hash calculator 110h reads the calculation result RεG, the bit length M of the recovery message m rec , the bit length N of the clear message m clr , and the bit length parameter L from the storage unit 10a. The hash calculation unit 110h generates a hash function H 0 : {0, 1} * → {0, 1} L + M , in which the output bit length is determined as L + M bits according to the bit length M of the recovery message m rec , the calculation result R and the bit L + M-bit hash value さ せ = H 0 (β) ∈ {0,1} L + M (16) acting on a value β determined depending on the length N
Is output and stored in the storage unit 10a (step S115). In the second embodiment, β is a value γ = (R, N) that depends only on the calculation result R and the bit length N. In addition, although there is no limitation on the β configuration method of this embodiment, the β configuration method is the same as the β ′ configuration method in the signature verification apparatus 120 described later. Examples of the configuration of β in this embodiment include the following.
If the cyclic group G is a group of rational points on the elliptic curve E:
[Β-1] A value (for example, the x-coordinate or y-coordinate of the point R, or the x-coordinate and y-coordinate of the point R) that can uniquely or exclusively specify the calculation result R that is a point on the elliptic curve E (Bit combination value) is an upper bit, and a value obtained by combining N as a lower bit is β.
[Β-2] A value obtained by uniquely or limitedly specifying the calculation result R that is a point on the elliptic curve E is a lower bit, and a value obtained by combining N as an upper bit is β.
[Β-3] In accordance with a predetermined rule, a value obtained by discretely arranging and combining each bit of N and a value that can uniquely specify the calculation result R that is a point on the elliptic curve E and β And
If the cyclic group G is a multiplicative group of finite fields:
[Β-4] A value obtained by combining the operation result R, which is a scalar value, with the upper bit and N with the lower bit is β.
[Β-5] A value obtained by combining the operation result R, which is a scalar value, with the lower bit and N with the upper bit is β.
[Β-6] According to a predetermined rule, a value obtained by discretely arranging and combining the bits of the operation results R and N, which are scalar values, is β.

ステップS115の後、第1実施形態のステップS16〜S18と同様な処理が行われる(ステップS116〜S118)。その後、ハッシュ演算部110pが、記憶部10aから排他的論理和値rとクリアメッセージmclrとビット長Nとを読み込む。ハッシュ演算部110pは、入力値に対して整数を出力するハッシュ関数H:{0,1}→Zを、排他的論理和値rとクリアメッセージmclrとビット長Nとに依存して定まる値γに作用させ、その演算結果であるハッシュ値
t=H3(γ)∈Zq …(17)
を記憶部10aに出力して格納する(ステップS119)。なお、第2実施形態では、γは排他的論理和値rとクリアメッセージmclrとビット長Nとのみに依存する値γ=(r,mclr,N)である。本形態のγの構成方法に限定はないが、γの構成方法は後述する署名検証装置120でのγ’の構成方法と同一とする。本形態のγの構成例としては以下のようなものがある。
〔γ−1〕最上位L+Mビットをrとし、その後に続くNビットをmclrとし、さらにその後に続くLビットをNとして結合した2L+M+Nビットの値をγとする。
〔γ−2〕最上位LビットをNとし、その後に続くL+Mビットをrとし、さらにその後に続くNビットをmclrとして結合した2L+M+Nビットの値をγとする。
〔γ−3〕所定の規則に従い、Nやrやmclrのビットをそれぞれ離散的(例えば、Nを偶数番目のビットに離散的に配置する等)に結合したものをγとする。
次に、第1実施形態と同様、整数演算部10qが、式(9)に従ってsを算出し(ステップS120)、通信部10rに、排他的論理和値rと演算結果sとクリアメッセージmclrとが読み込まれ、通信部10rが、署名σ=(r,s)とクリアメッセージmclrとをネットワーク40を通じて署名検証装置120に送信する(ステップS121)。
After step S115, the same processing as steps S16 to S18 of the first embodiment is performed (steps S116 to S118). Thereafter, the hash calculation unit 110p reads the exclusive OR value r, the clear message m clr, and the bit length N from the storage unit 10a. The hash calculator 110p depends on the hash function H 3 : {0, 1} * → Z q that outputs an integer for the input value, depending on the exclusive OR value r, the clear message m clr, and the bit length N. The hash value that is the result of the operation
t = H 3 (γ) ∈Z q (17)
Is output and stored in the storage unit 10a (step S119). In the second embodiment, γ is a value γ = (r, m clr , N) that depends only on the exclusive OR value r, the clear message m clr, and the bit length N. The γ configuration method of the present embodiment is not limited, but the γ configuration method is the same as the γ ′ configuration method in the signature verification apparatus 120 described later. Examples of the configuration of γ in this embodiment include the following.
[Γ-1] The value of 2L + M + N bits obtained by combining the most significant L + M bit as r, the subsequent N bit as m clr, and the subsequent L bit as N is γ.
[Γ-2] Let the most significant L bit be N, the subsequent L + M bit be r, and the subsequent N bit be m clr and the value of 2L + M + N bits be γ.
[Γ-3] According to a predetermined rule, γ is a combination of N, r, and m clr bits discretely (for example, discretely arranging N in even-numbered bits).
Next, as in the first embodiment, the integer operation unit 10q calculates s according to the equation (9) (step S120), and the communication unit 10r sends the exclusive OR value r, the operation result s, and the clear message m clr. And the communication unit 10r transmits the signature σ = (r, s) and the clear message m clr to the signature verification apparatus 120 via the network 40 (step S121).

[署名検証処理]
次に、第2実施形態の署名検証処理について説明する。
[Signature verification]
Next, a signature verification process according to the second embodiment will be described.

図13は、第2実施形態の署名検証処理を説明するためのフローチャートである。以下、図13に従って本形態の署名検証処理を説明する。
まず、署名検証装置120(図11)の通信部20bが、署名σ’=(r’,s’)とクリアメッセージmclr’とを受信し(「入力を受け付け」に相当)、これらを記憶部20aに格納する(ステップS141)。なお、署名とリアメッセージとが正規なものであれば、σ’=(r’,s’)=σ=(r,s)であり、mclr’=mclrであるが、ここでは、検証対象の署名をσ’=(r’,s’)と表現し、検証対象のクリアメッセージをmclr’と表現する。
次に、ビット長抽出部120cが、記憶部20aから、ビット長パラメータLと署名σ’=(r’,s’)のr’とクリアメッセージをmclr’とを読み込み、式(10)に従ってリカバリメッセージmrec’のビット長M’を算出し、さらに、クリアメッセージをmclr’のビット長
N'=|mclr'| …(18)
を算出し、これらを記憶部20aに格納する(ステップS142)。
FIG. 13 is a flowchart for explaining a signature verification process according to the second embodiment. Hereinafter, the signature verification processing of this embodiment will be described with reference to FIG.
First, the communication unit 20b of the signature verification apparatus 120 (FIG. 11) receives the signature σ ′ = (r ′, s ′) and the clear message m clr ′ (corresponding to “accept input”) and stores them. Stored in the unit 20a (step S141). If the signature and the rear message are legitimate, σ ′ = (r ′, s ′) = σ = (r, s) and m clr ′ = m clr. The target signature is expressed as σ ′ = (r ′, s ′), and the verification target clear message is expressed as m clr ′.
Next, the bit length extraction unit 120c reads the bit length parameter L, r ′ of the signature σ ′ = (r ′, s ′) and the clear message m clr ′ from the storage unit 20a, and follows equation (10). The bit length M ′ of the recovery message m rec ′ is calculated, and further the clear message is changed to the bit length of m clr ′.
N '= | m clr ' |… (18)
Are stored in the storage unit 20a (step S142).

次に、ハッシュ演算部120dが、記憶部20aからr’とクリアメッセージをmclr’とqとビット長N’とを読み込む。ハッシュ演算部120dは、署名生成装置110と同一のハッシュ関数H:{0,1}→Zを、r’とmclr’とビット長N’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値
t’=H3(γ’) …(19)
を記憶部20aに出力して格納する(ステップS143)。なお、γ’の構成方法は前述した署名生成装置110でのγの構成方法と同一(r=r’とし、mclr=mclr’とした場合に同一)とする。
次に、群演算部20eが、記憶部20aから、生成元g∈Gと署名生成装置10の公開鍵y∈Gと署名σ’のs’とハッシュ値t’とを読み込み、第1実施形態と同様、式(12)の演算を行い、その演算結果R’を記憶部20aに出力して格納する(ステップS144)。
Next, the hash calculator 120d reads r ′, a clear message, m clr ′, q, and a bit length N ′ from the storage unit 20a. The hash calculator 120d sets the same hash function H 3 : {0,1} * → Z q as the signature generation apparatus 110 to a value γ ′ that is determined depending on r ′, m clr ′, and the bit length N ′. Hash value that is the result of the operation
t '= H 3 (γ')… (19)
Is output and stored in the storage unit 20a (step S143). Note that the configuration method of γ ′ is the same as the configuration method of γ in the signature generation apparatus 110 described above (same when r = r ′ and m clr = m clr ′).
Next, the group calculation unit 20e reads the generation source gεG, the public key yεG of the signature generation device 10, the s ′ of the signature σ ′, and the hash value t ′ from the storage unit 20a, and the first embodiment Similarly to the above, the calculation of Expression (12) is performed, and the calculation result R ′ is output and stored in the storage unit 20a (step S144).

次に、ハッシュ演算部120fが、記憶部20aから演算結果R’∈Gとリカバリメッセージmrec’のビット長M’とクリアメッセージをmclr’のビット長N’とビット長パラメータLを読み込む。ハッシュ演算部120fは、署名生成装置110と同じハッシュ関数Hを演算結果R’とビット長M’とに依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値
Π'=H0(β’)∈{0,1}L+M' …(20)
を記憶部20aに出力して格納する(ステップS145)。なお、β’の構成方法は、前述した署名生成装置110でのβの構成方法と同一とし、また、H(β')の演算は、署名生成装置110の場合のH(β')の演算と同一(β=β',M=M’の場合に同一)とする。
その後、第1実施形態のステップS46〜S52と同じ処理が実行され(146〜S152)、署名検証が行われる。
Next, the hash calculation unit 120f reads the calculation result R′εG, the bit length M ′ of the recovery message m rec ′, the clear message, the bit length N ′ of the m clr ′, and the bit length parameter L from the storage unit 20a. The hash calculator 120f operates the same hash function H 0 as that of the signature generation device 110 on the value β ′ determined depending on the calculation result R ′ and the bit length M ′, and the L + M′-bit hash value that is the calculation result Π '= H 0 (β') ∈ {0,1} L + M ' … (20)
Is output and stored in the storage unit 20a (step S145). Incidentally, beta 'configuration method is the same as the configuration method of the beta of the signature generating apparatus 110 described above, also, H 0 (β') calculation of the H 0 in the case of the signature generating apparatus 110 (beta ') (Same when β = β ′, M = M ′).
Thereafter, the same processing as steps S46 to S52 of the first embodiment is executed (146 to S152), and signature verification is performed.

〔第3実施形態〕
次に、第3実施形態について説明する。第3実施形態は、第3の本発明に係る実施形態である。以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
<全体構成>
署名生成装置10が署名生成装置210となり、署名検証装置20が署名検証装置220となる以外は、第1実施形態と同じである。
[Third Embodiment]
Next, a third embodiment will be described. The third embodiment is an embodiment according to the third aspect of the present invention. Below, it demonstrates centering around difference with 1st Embodiment, and abbreviate | omits description about the matter which is common in 1st Embodiment.
<Overall configuration>
The second embodiment is the same as the first embodiment except that the signature generation apparatus 10 becomes the signature generation apparatus 210 and the signature verification apparatus 20 becomes the signature verification apparatus 220.

<署名生成装置210の構成>
[ハードウェア構成]
図2に示した署名生成装置10のハードウェア構成と同様である。
[ハードウェアとプログラムとの協働]
第1実施形態と同様、本形態の署名生成装置210も図2に示したようなコンピュータに所定のプログラムが読み込まれることにより構成される。
図14は、CPUにプログラムが読み込まれることにより構成される第3実施形態の署名生成装置210の機能構成を例示したブロック図である。なお、図14における矢印はデータの流れを示すが、一時メモリ10tや制御部10sに入出力されるデータの流れは省略してある。
<Configuration of Signature Generation Device 210>
[Hardware configuration]
This is the same as the hardware configuration of the signature generation apparatus 10 shown in FIG.
[Cooperation between hardware and programs]
Similar to the first embodiment, the signature generation apparatus 210 of the present embodiment is configured by reading a predetermined program into a computer as shown in FIG.
FIG. 14 is a block diagram illustrating the functional configuration of the signature generation apparatus 210 according to the third embodiment configured by reading a program into the CPU. The arrows in FIG. 14 indicate the flow of data, but the flow of data input to and output from the temporary memory 10t and the control unit 10s is omitted.

図14に示すように、本形態の署名生成装置210は、記憶部10aと、秘密鍵生成部10bと、公開鍵生成部10cと、入力部10dと、メッセージ分割部10eと、任意値生成部10fと、群演算部10gと、ハッシュ演算部210h,210i,210pと、ビット結合部10mと、排他的論理和演算部10nと、整数演算部10qと、通信部10rと、制御部10sと、一時メモリ10tとを有する。なお、ハッシュ演算部210hの機能構成は、前述したハッシュ演算部10hの機能構成と同様である。なお、ハッシュ演算部210h,210i,210pは、それぞれの処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名生成装置210の機能をコンピュータに実行させるためのプログラムに相当する。   As shown in FIG. 14, the signature generation apparatus 210 according to the present exemplary embodiment includes a storage unit 10a, a secret key generation unit 10b, a public key generation unit 10c, an input unit 10d, a message division unit 10e, and an arbitrary value generation unit. 10f, group operation unit 10g, hash operation units 210h, 210i, 210p, bit combination unit 10m, exclusive OR operation unit 10n, integer operation unit 10q, communication unit 10r, control unit 10s, And a temporary memory 10t. The functional configuration of the hash calculation unit 210h is the same as the functional configuration of the hash calculation unit 10h described above. The hash calculators 210h, 210i, and 210p are configured by reading a program for realizing each processing into the CPU. 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 signature generation apparatus 210.

<署名検証装置220の構成>
次に、署名検証装置220の構成を説明する。
[ハードウェア構成]
図2に示した署名生成装置10のハードウェア構成と同様である。
[ハードウェアとプログラムとの協働]
署名検証装置220も図2に示したようなコンピュータに所定のプログラムが読み込まれることにより構成される。図15は、このように構成される第3実施形態の署名検証装置220の機能構成を例示したブロック図である。なお、図15における矢印はデータの流れを示すが、一時メモリ20pや制御部20nに入出力されるデータの流れは省略してある。
図15に示すように、本形態の署名検証装置220は、記憶部20aと、通信部20bと、ビット長抽出部20cと、ハッシュ演算部220d,220f,220kと、群演算部20eと、排他的論理和演算部20gと、ビット抽出部20hと、比較部220iと、出力部20mと、制御部20nと、一時メモリ20pとを有する。
<Configuration of Signature Verification Device 220>
Next, the configuration of the signature verification apparatus 220 will be described.
[Hardware configuration]
This is the same as the hardware configuration of the signature generation apparatus 10 shown in FIG.
[Cooperation between hardware and programs]
The signature verification apparatus 220 is also configured by reading a predetermined program into a computer as shown in FIG. FIG. 15 is a block diagram illustrating a functional configuration of the signature verification apparatus 220 according to the third embodiment configured as described above. The arrows in FIG. 15 indicate the flow of data, but the flow of data input to and output from the temporary memory 20p and the control unit 20n is omitted.
As shown in FIG. 15, the signature verification apparatus 220 according to the present embodiment includes a storage unit 20a, a communication unit 20b, a bit length extraction unit 20c, hash calculation units 220d, 220f, and 220k, and a group calculation unit 20e. A logical OR operation unit 20g, a bit extraction unit 20h, a comparison unit 220i, an output unit 20m, a control unit 20n, and a temporary memory 20p.

なお、ハッシュ演算部220d,220f,220kは、それぞれの処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。また、上記のプログラムは単体でその機能を実現できるものでもよいし、当該プログラムがさらに他のライブラリ(記載していない)を読み出して各機能を実現するものでもよい。すなわち、各プログラムの少なくとも一部が、署名検証装置220の機能をコンピュータに実行させるためのプログラムに相当する。   The hash calculation units 220d, 220f, and 220k are configured by reading a program for realizing each processing into the CPU. 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 signature verification apparatus 220.

<処理>
次に、本形態の処理について説明する。
[前処理]
まず、署名システム1で使用する位数qの離散対数問題の求解が困難な巡回群Gとその生成元g∈Gとを決定する。このような巡回群Gとしては、例えば、楕円曲線上の有理点のなす群や有限体の乗法群などを用いることができる。なお、安全性の面から位数qは素数であることが望ましいが、qの素因数分解が困難であるならqは素数でなくてもかまわない。また、署名システム1で使用するビット長パラメータL∈Z>0(0より大きな整数)を決定する。
さらに、後述するリカバリメッセージmrecのビット長Mに応じて出力ビット長がL+Mビットに定まる出力が可変長のハッシュ関数H:{0,1}→{0,1}L+Mを決定する。なお、このようなハッシュ関数の演算方法については後述する。
また、入力値に対してLビットのハッシュ値を出力するハッシュ関数H:{0,1}→{0,1}と、また、入力値に対してZ(qを法とする完全剰余系)の元を出力するハッシュ関数H:{0,1}→Zとを決定する。ハッシュ関数Hは、ハッシュ関数Hと同様に構成でき、ハッシュ関数Hは、SHA−1等のハッシュ値に対し、qを法とした剰余演算を行うことで構成できる。
<Processing>
Next, the processing of this embodiment will be described.
[Preprocessing]
First, a cyclic group G that is difficult to find a discrete logarithm problem of order q used in the signature system 1 and its generation source gεG are determined. As such a cyclic group G, for example, a group formed by rational points on an elliptic curve or a multiplicative group of a finite field can be used. Although the order q is desirably a prime number from the viewpoint of safety, q may not be a prime number if prime factorization of q is difficult. The bit length parameter LεZ > 0 (an integer greater than 0 ) used in the signature system 1 is determined.
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 method for calculating such a hash function will be described later.
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 3 can be configured by performing a remainder operation modulo q on a hash value such as SHA-1.

以上のように決定された巡回群Gや各ハッシュ関数H,H,Hを特定する情報は、例えば、署名生成装置210や署名検証装置220を構成する各プログラムに書き込まれ、署名生成装置210や署名検証装置220は、決定された巡回群Gでの演算や、各ハッシュ関数H,H,Hの演算が可能になるものとする。また、ビット長パラメータL∈Z>0や位数qや生成元g∈Gは、署名生成装置210の記憶部10aと署名検証装置220の記憶部20aに格納される。 Information specifying the cyclic group G and the hash functions H 0 , H 1 , and H 3 determined as described above is written in each program constituting the signature generation device 210 and the signature verification device 220, for example, to generate a signature. It is assumed that the device 210 and the signature verification device 220 can perform operations on the determined cyclic group G and operations of the hash functions H 0 , H 1 , and H 3 . Further, the bit length parameter LεZ > 0 , the order q, and the generation source gεG are stored in the storage unit 10 a of the signature generation device 210 and the storage unit 20 a of the signature verification device 220.

[鍵生成処理]
次に、署名生成装置210が行う鍵生成処理について説明する。
まず、署名生成装置210の秘密鍵生成部10bが任意の秘密鍵x∈Zを生成する。なお、この秘密鍵xの生成は、擬似乱数をZにマッピングして行ってもよいし、署名生成者によって任意に決定された値を元に行ってもよい。生成された秘密鍵xは、署名生成装置210の記憶部10aに安全に格納される。すなわち、署名生成装置210の外部の装置は、記憶部10aから秘密鍵xを取得することができない。
次に、署名生成装置210の公開鍵生成部10cが、記憶部10aから秘密鍵xと巡回群Gの生成元g∈Gとを読み込み、巡回群Gで定義された演算
y=gx∈G …(21)
を行って秘密鍵xに対応する公開鍵y∈Gを生成し、記憶部10aに格納する。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(21)の右辺は、楕円曲線E上の点である生成元g=(g,g)を楕円スカラー倍(楕円x倍)する演算(x・g∈E)を意味し、公開鍵yは楕円曲線E上の点となる。また、例えば、巡回群Gが有限体の乗法群であった場合、式(21)の右辺は、gmod p(ただし、p=2q+1)の演算を意味し、公開鍵yはスカラー値となる。生成された公開鍵yは、通信部10rからネットワーク40を通じて公開鍵サーバ装置30に送信され、公開鍵サーバ装置30は、送信された公開鍵yを例えば公開鍵証明書とともに公開する。なお、公開鍵y等の公開とは、公開鍵y等が公開鍵サーバ装置30の記憶部に格納され、ネットワーク40に接続可能な任意の装置が公開鍵サーバ装置30の記憶部に格納された公開鍵y等を取得可能な状態とすることを意味する。署名検証装置220は、このような公開鍵yを通信部20bによって公開鍵サーバ装置30から受信し、記憶部20aに格納する。
[Key generation process]
Next, a key generation process performed by the signature generation apparatus 210 will be described.
First, the secret key generator 10b of the signature generating apparatus 210 generates an arbitrary secret key x∈Z q. The secret key x may be generated by mapping a pseudo-random number to Zq or based on a value arbitrarily determined by the signature generator. The generated secret key x is securely stored in the storage unit 10a of the signature generation device 210. That is, a device external to the signature generation device 210 cannot acquire the secret key x from the storage unit 10a.
Next, the public key generation unit 10c of the signature generation apparatus 210 reads the secret key x and the generation source gεG of the cyclic group G from the storage unit 10a, and performs an operation defined by the cyclic group G.
y = g x ∈G… (21)
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 (21) 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. Also, for example, when the cyclic group G is a finite field multiplicative group, the right side of the equation (21) means g x mod p (where p = 2q + 1), and the public key y is a scalar value and Become. The generated public key y is transmitted from the communication unit 10r to the public key server device 30 through the network 40, and the public key server device 30 publishes the transmitted public key y together with, for example, a public key certificate. The public key y and the like are publicly stored in the storage unit of the public key server device 30 and any device that can be connected to the network 40 is stored in the storage unit of the public key server device 30. This means that the public key y and the like can be acquired. The signature verification apparatus 220 receives such a public key y from the public key server apparatus 30 through the communication unit 20b and stores it in the storage unit 20a.

[署名生成処理]
次に、第3実施形態の署名生成処理について説明する。
図16は、第3実施形態の署名生成処理を説明するためのフローチャートである。以下、図16に従って本形態の署名生成処理を説明する。
まず、署名生成装置210(図14)の入力部10dに、メッセージm∈{0,1}N+Mとリカバリメッセージのビット長M≧1とが入力される(ステップS211)。入力されたこれらの情報は、それぞれ記憶部10aに格納される。
次に、メッセージ分割部10eが、記憶部10aからメッセージm∈{0,1}N+Mとリカバリメッセージのビット長M≧1とを読み込む。メッセージ分割部10eは、これらの情報を用い、
メッセージm∈{0,1}N+Mを、ビット長Mのリカバリメッセージmrec∈{0,1} と、ビット長N(N≧0)のクリアメッセージmclr∈{0,1}とに分割する(ステップS212)。例えば、メッセージm∈{0,1}N+Mの上位Mビットをリカバリメッセージmrec∈{0,1}とし、下位Nビットをクリアメッセージmclr∈{0,1}とする。なお、分割法はこれに限定されず、メッセージm∈{0,1}N+Mのどのビットをリカバリメッセージmrecとし、どのビットをクリアメッセージmclrとするかは、任意に設定できる。このように分割されたビット長Mのリカバリメッセージmrec∈{0,1} と、ビット長Nのクリアメッセージmclr∈{0,1}とは、それぞれ記憶部10aに格納される。
[Signature generation processing]
Next, a signature generation process according to the third embodiment will be described.
FIG. 16 is a flowchart for explaining a signature generation process according to the third embodiment. Hereinafter, the signature generation processing of this embodiment will be described with reference to FIG.
First, the message mε {0, 1} N + M and the recovery message bit length M ≧ 1 are input to the input unit 10d of the signature generation apparatus 210 (FIG. 14) (step S211). These pieces of input information are stored in the storage unit 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 S212). 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. Note that 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 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∈Zを生成し、生成した任意値kを記憶部10aに格納する(ステップS213)。なお、任意値kの生成は、例えば、擬似乱数をZにマッピングすることにより行う。
次に、群演算部10gが、記憶部10aから生成元g∈Gと任意値k∈Zとを読み込み、
R=gk∈G …(22)
を算出し、当該演算結果R∈Gを記憶部10aに出力して格納する(ステップS214)。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(22)の右辺は、楕円曲線E上の点である生成元g=(g,g)を楕円スカラー倍(楕円k倍)する演算(k・g∈E)を意味し、演算結果Rは楕円曲線E上の点となる。また、例えば、巡回群Gが有限体の乗法群であった場合、式(22)の右辺は、gmod pの演算を意味し、演算結果Rはスカラー値となる。
次に、ハッシュ演算部210hが、記憶部10aから演算結果R∈Gとリカバリメッセージのビット長Mとビット長パラメータLを読み込む。ハッシュ演算部210hは、リカバリメッセージmrecのビット長Mに応じて出力ビット長がL+Mビットに定まるハッシュ関数H:{0,1}→{0,1}L+Mを、演算結果Rに依存して定まる値β(本形態ではβ=R)に作用させ、その演算結果であるL+Mビットのハッシュ値
Π=H0(β)∈{0,1}L+M …(23)
を記憶部10aに出力して格納する(ステップS215)。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(23)の右辺は、楕円曲線E上の点である演算結果Rを一義的又は限定的に特定できる値(例えば、点Rのx座標若しくはy座標、又は、点Rのx座標とy座標とのビット結合値)にハッシュ関数Hを作用させる演算を意味する。また、例えば、巡回群Gが有限体の乗法群であった場合、式(23)の右辺は、スカラー値である演算結果Rにハッシュ関数Hを作用させる演算を意味する。ハッシュ関数Hを作用させる演算の具体的な処理方法は、例えば、第1実施形態の図7と同様である。
Next, the arbitrary value generation unit 10f generates an arbitrary value kεZ q , and stores the generated arbitrary value k in the storage unit 10a (step S213). The generation of arbitrary value k is performed, for example, by mapping a pseudo random number to Z q.
Next, the group calculation unit 10g reads the generation source gεG and the arbitrary value kεZ q from the storage unit 10a,
R = g k ∈G… (22)
And the calculation result RεG is output and stored in the storage unit 10a (step S214). 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 (22) 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. For example, when the cyclic group G is a multiplicative group of a finite field, the right side of the equation (22) means an operation of g k mod p, and the operation result R is a scalar value.
Next, the hash calculation unit 210h reads the calculation result RεG, the bit length M of the recovery message, and the bit length parameter L from the storage unit 10a. The hash calculation unit 210h depends on the calculation result R for the hash function H 0 : {0, 1} * → {0, 1} L + M in which the output bit length is determined as L + M bits according to the bit length M of the recovery message m rec. L + M-bit hash value Π = H 0 (β) ∈ {0,1} L + M (23) that acts on the value β determined in this way (β = R in this embodiment)
Is output and stored in the storage unit 10a (step S215). 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 (23) uniquely or limitedly specifies the calculation result R that is a point on the elliptic curve E. This 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). For example, when the cyclic group G is a multiplicative group of a finite field, the right side of the equation (23) means an operation in which the hash function H 0 is applied to the operation result R that is a scalar value. The specific processing method of the calculation that operates the hash function H 0 is the same as that in FIG. 7 of the first embodiment, for example.

ステップS215の後、ハッシュ演算部210iが、記憶部10aからリカバリメッセージmrecとビット長パラメータLとを読み込む。ハッシュ演算部210iは、入力値に対してLビットのハッシュ値を出力するハッシュ関数H:{0,1}→{0,1}を、リカバリメッセージmrecに依存して定まる値α(本形態ではα=mrec)に作用させ、その演算結果であるLビットのハッシュ値
h=H1(α)∈{0,1}L …(24)
を記憶部10aに出力して格納する(ステップS216)。
次に、ビット結合部10mが、記憶部10aからハッシュ値h∈{0,1}とリカバリメッセージmrecとを読み込む。ビット結合部10mは、ハッシュ値h∈{0,1}を第1ビット位置に配置し、リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値
d=h|mrec∈{0,1}L+M …(25)
を算出し、当該ビット結合値dを記憶部10aに出力して格納する(ステップS217)。なお、「第1ビット位置」及び「第2ビット位置」をどのビット位置にするかについて特に限定はない。しかし、署名生成装置210と署名検証装置220との間では、「第1ビット位置」及び「第2ビット位置」をどのビット位置にするかの基準を同一にしなければならない。「第1ビット位置」及び「第2ビット位置」の設定例は、例えば図9に示した通りである。
After step S215, the hash calculator 210i reads the recovery message m rec and the bit length parameter L from the storage unit 10a. The hash calculation unit 210i determines a hash function H 1 : {0, 1} * → {0, 1} L that outputs an L-bit hash value for the input value, depending on the recovery message m rec. (In this embodiment, α = m rec ), and an L-bit hash value that is the result of the operation
h = H 1 (α) ∈ {0,1} L … (24)
Is output and stored in the storage unit 10a (step S216).
Next, the bit combining unit 10m reads the hash value hε {0, 1} L and the recovery message m rec 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 bit combination value of L + M bits in which the recovery message m rec ε {0,1} M is arranged at the second bit position.
d = h | m rec ∈ {0,1} L + M … (25)
And the bit combination value d is output to the storage unit 10a and stored (step S217). 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 signature generation device 210 and the signature verification device 220, it is necessary to have the same reference as to which bit position the “first bit position” and the “second bit position” are set. An example of setting “first bit position” and “second bit position” is as shown in FIG. 9, for example.

次に、排他的論理和演算部10nが、記憶部10aからハッシュ値Πとビット結合値dとを読み込む。排他的論理和演算部10nは、ハッシュ値Πとビット結合値dとの排他的論理和
r=Π(+)d∈{0,1}L+M …(26)
を算出し((+)は排他的論理和演算子)、当該排他的論理和値rを記憶部10aに出力して格納する(ステップS218)。
次に、ハッシュ演算部210pが、記憶部10aから排他的論理和値rとクリアメッセージmclrとを読み込む。ハッシュ演算部210pは、入力値に対して整数を出力するハッシュ関数H:{0,1}→Zを、排他的論理和値rとクリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値
t=H3(γ)∈Zq …(27)
を記憶部10aに出力して格納する(ステップS219)。なお、第3実施形態では、γは排他的論理和値rとクリアメッセージmclrとのみに依存する値γ=(r,mclr)である。本形態のγの構成方法に限定はないが、γの構成方法は後述する署名検証装置220でのγ’の構成方法と同一とする。γの構成例としては以下のようなものがある。
〔γ−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ビットの値をγとする。
次に、整数演算部10qが、記憶部10aから任意値kとハッシュ値tと秘密鍵xとqとを読み込む。整数演算部10qは、
s=k-t・x∈Zq …(28)
を算出し、当該演算結果sを記憶部10aに出力して格納する(ステップS220)。
次に、通信部10rに、排他的論理和値rと演算結果sとクリアメッセージmclrとが読み込まれ、通信部10rは、署名σ=(r,s)とクリアメッセージmclrとをネットワーク40を通じて署名検証装置220に送信する(ステップS221)。
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 … (26)
((+) Is an exclusive OR operator), and the exclusive OR value r is output to the storage unit 10a and stored (step S218).
Next, the hash operation unit 210p reads the exclusive OR value r and the clear message m clr from the storage unit 10a. The hash calculation unit 210p determines the hash function H 3 that outputs an integer for the input value: {0, 1} * → Z q depending on the exclusive OR value r and the clear message m clr. The hash value that is the result of the operation
t = H 3 (γ) ∈Z q (27)
Is output and stored in the storage unit 10a (step S219). In the third embodiment, γ is a value γ = (r, m clr ) that depends only on the exclusive OR value r and the clear message m clr . The γ configuration method of the present embodiment is not limited, but the γ configuration method is the same as the γ ′ configuration method in the signature verification apparatus 220 described later. Examples of the configuration of γ include the following.
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 γ.
Next, the integer arithmetic unit 10q reads the arbitrary value k, the hash value t, and the secret keys x and q from the storage unit 10a. The integer arithmetic unit 10q is
s = kt ・ x∈Z q (28)
And the calculation result s is output and stored in the storage unit 10a (step S220).
Next, the exclusive OR value r, the operation result s, and the clear message m clr are read into the communication unit 10r, and the communication unit 10r transmits the signature σ = (r, s) and the clear message m clr to the network 40. To the signature verification apparatus 220 (step S221).

[署名検証処理]
次に、第3実施形態の署名検証処理について説明する。
図17は、第3実施形態の署名検証処理を説明するためのフローチャートである。以下、図17に従って本形態の署名検証処理を説明する。
まず、署名検証装置220(図15)の通信部20bが、署名σ’=(r’,s’)とクリアメッセージmclr’とを受信し(「入力を受け付け」に相当)、これらを記憶部20aに格納する(ステップS241)。なお、署名とリアメッセージとが正規なものであれば、σ’=(r’,s’)=σ=(r,s)であり、mclr’=mclrであるが、ここでは、検証対象の署名をσ’=(r’,s’)と表現し、検証対象のクリアメッセージをmclr’と表現する。
次に、ビット長抽出部20cが、記憶部20aから、ビット長パラメータLと署名σ’=(r’,s’)のr’とを読み込む。ビット長抽出部20cは、
M'=length(r')‐L …(29)
により、署名σ’に対応するリカバリメッセージmrec’のビット長M’を算出し、記憶部20aに格納する(ステップS242)。
[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 third embodiment. Hereinafter, the signature verification processing of this embodiment will be described with reference to FIG.
First, the communication unit 20b of the signature verification apparatus 220 (FIG. 15) receives the signature σ ′ = (r ′, s ′) and the clear message m clr ′ (corresponding to “accept input”) and stores them. Stored in the unit 20a (step S241). If the signature and the rear message are legitimate, σ ′ = (r ′, s ′) = σ = (r, s) and m clr ′ = m clr. The target signature is expressed as σ ′ = (r ′, s ′), and the verification target clear message is expressed as m clr ′.
Next, the bit length extraction unit 20c reads the bit length parameter L and r ′ of the signature σ ′ = (r ′, s ′) from the storage unit 20a. The bit length extraction unit 20c
M '= length (r')-L (29)
Thus, the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′ is calculated and stored in the storage unit 20a (step S242).

次に、ハッシュ演算部220dが、記憶部20aからr’とクリアメッセージをmclr’とqとを読み込む。ハッシュ演算部220dは、署名生成装置210と同一のハッシュ関数H:{0,1}→Zを、r’とmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値
t’=H3(γ’) …(30)
を記憶部20aに出力して格納する(ステップS243)。なお、γ’の構成方法は前述した署名生成装置210でのγの構成方法と同一(r=r’とし、mclr=mclr’とした場合に同一)とする。
次に、群演算部20eが、記憶部20aから、生成元g∈Gと署名生成装置210の公開鍵y∈Gと署名σ’のs’とハッシュ値t’とを読み込み、
R’=gs’・yt’∈G …(31)
の演算を行い、その演算結果R’を記憶部20aに出力して格納する(ステップS244)。なお、例えば、巡回群Gが楕円曲線E上の有理点のなす群であった場合、式(31)の右辺は、楕円曲線E上の点である生成元g=(g,g)を楕円スカラー倍(楕円s’倍)し、公開鍵y=(y,y)を楕円スカラー倍(楕円t’倍)し、それらの演算結果を楕円加算する演算(s’・g+t’・y∈E)を意味し、演算結果R’は楕円曲線E上の点となる。また、例えば、巡回群Gが有限体の乗法群であった場合、式(31)の右辺は、gs’・yt’mod pの演算を意味し、演算結果R’はスカラー値となる。
Next, the hash calculation unit 220d reads r ′ and a clear message from the storage unit 20a and m clr ′ and q. The hash calculation unit 220d operates the same hash function H 3 : {0, 1} * → Z q as the signature generation apparatus 210 on a value γ ′ determined depending on r ′ and m clr ′, and performs the calculation. The resulting hash value
t '= H 3 (γ')… (30)
Is output and stored in the storage unit 20a (step S243). Note that the configuration method of γ ′ is the same as the configuration method of γ in the signature generation apparatus 210 described above (same when r = r ′ and m clr = m clr ′).
Next, the group calculation unit 20e reads the generation source gεG, the public key yεG of the signature generation device 210, the s ′ of the signature σ ′, and the hash value t ′ from the storage unit 20a,
R '= g s' · y t' ∈G (31)
The calculation result R ′ is output to the storage unit 20a and stored (step S244). 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 (31) is a generator g = (g 1 , g 2 ) that is a point on the elliptic curve E. Is multiplied by the elliptic scalar (ellipse s ′ times), the public key y = (y 1 , y 2 ) is multiplied by the ellipse scalar (ellipse t ′ times), and the result of ellipse addition (s ′ · g + t ′) Y means E), and the calculation result R ′ is a point on the elliptic curve E. Further, for example, when the cyclic group G is a finite field multiplicative group, the right side of the equation (31) means the calculation of g s ′ · y t ′ mod p, and the calculation result R ′ is a scalar value. .

次に、ハッシュ演算部220fが、記憶部20aから演算結果R’∈Gとリカバリメッセージmrec’のビット長M’とビット長パラメータLを読み込む。ハッシュ演算部220fは、署名生成装置210と同じハッシュ関数Hを演算結果R’に依存して定まる値β’(この例ではβ’=R’)に作用させ、その演算結果であるL+M’ビットのハッシュ値
Π'=H0(β’)∈{0,1}L+M' …(32)
を記憶部20aに出力して格納する(ステップS245)。なお、H(β')の演算は、署名生成装置210の場合のH(β)の演算と同一(β=β’,M=M’の場合に同一)とする。
次に、排他的論理和演算部20gが、記憶部20aから、ハッシュ値Π’と署名σ’が有するr’とを読み込み、それらの排他的論理和
d’=Π’(+)r’∈{0,1}L+M’ …(33)
を算出し、当該排他的論理和値d’を記憶部20aに出力して格納する(ステップS246)。
Next, the hash calculator 220f reads the calculation result R′εG, the bit length M ′ of the recovery message m rec ′, and the bit length parameter L from the storage unit 20a. The hash calculation unit 220f operates the same hash function H 0 as that of the signature generation device 210 on a value β ′ (in this example, β ′ = R ′) determined depending on the calculation result R ′, and L + M ′ that is the calculation result Hash value of bit Π '= H 0 (β') ∈ {0,1} L + M ' … (32)
Is output and stored in the storage unit 20a (step S245). Note that the calculation of H 0 (β ′) is the same as the calculation of H 0 (β) in the case of the signature generation device 210 (same when β = β ′ and M = M ′).
Next, the exclusive OR operation unit 20g reads the hash value Π ′ and r ′ included in the signature σ ′ from the storage unit 20a, and performs the exclusive OR operation on them.
d '= Π' (+) r'∈ {0,1} L + M ' (33)
And the exclusive OR value d ′ is output and stored in the storage unit 20a (step S246).

次に、ビット抽出部20hが、記憶部20aから排他的論理和値d’とリカバリメッセージmrec’のビット長M’とを読み込む。ビット抽出部20hは、排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}と、排他的論理和値d’の第2ビット位置のM’ビットの値mrec’∈{0,1}M’とを抽出し、それらを記憶部20aに格納する(ステップS247)。なお、「第1ビット位置」及び「第2ビット位置」は、署名生成装置210の処理での「第1ビット位置」及び「第2ビット位置」と同一(d=d’とした場合に同一)とする。
次に、ハッシュ演算部220kが、記憶部20aからリカバリメッセージmrec’を読み込む。ハッシュ演算部220kは、署名生成装置210と同一のハッシュ関数H:{0,1}→{0,1}を、リカバリメッセージmrec’に依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値
H1(α’)∈{0,1}L …(34)
を記憶部20aに出力して格納する(ステップS248)。なお、α’の構成方法は前述した署名生成装置210でのαの構成方法と同一(mrec=mrec’とした場合に同一)とする。
Next, the bit extraction unit 20h reads the exclusive OR value d ′ and the bit length M ′ of the recovery message m rec ′ from the storage unit 20a. The bit extraction unit 20h outputs the L-bit value h′ε {0, 1} L at the first bit position of the exclusive OR value d ′ and the M ′ bit at the second bit position of the exclusive-OR value d ′. Value m rec '∈ {0, 1} M ′ is extracted and stored in the storage unit 20a (step S247). Note that the “first bit position” and the “second bit position” are the same as the “first bit position” and the “second bit position” in the processing of the signature generation apparatus 210 (d = d ′). ).
Next, the hash calculator 220k reads the recovery message m rec ′ from the storage unit 20a. The hash calculator 220k operates the same hash function H 1 : {0, 1} * → {0, 1} L as the signature generation device 210 on a value α ′ determined depending on the recovery message m rec ′, L-bit hash value that is the result of the operation
H 1 (α ') ∈ {0,1} L … (34)
Is output and stored in the storage unit 20a (step S248). Note that the configuration method of α ′ is the same as the configuration method of α in the signature generation apparatus 210 described above (same when m rec = m rec ′).

次に、比較部20iが、記憶部20aからハッシュ値H(α’)と値h’とを読み込み、
h'=H1(α’) …(35)
を満たすか否かを判断する(ステップS249)。
ここで、式(35)を満たさない場合、比較部20iは0(検証失敗)を記憶部20aに出力して格納し、出力部20mは、記憶部20aから送られた0(検証失敗)を出力する(ステップS250)。一方、式(35)を満たす場合、比較部20iは1(検証成功)を記憶部20aに出力して格納し、出力部20mは、記憶部20aから送られた1(検証成功)を出力し(ステップS251)、さらにリカバリメッセージmrec’を出力する(ステップS252)。
Next, the comparison unit 20i reads the hash value H 1 (α ′) and the value h ′ from the storage unit 20a,
h '= H 1 (α')… (35)
It is determined whether or not the condition is satisfied (step S249).
Here, when the expression (35) is not satisfied, the comparison unit 20i outputs 0 (verification failure) to the storage unit 20a and stores it, and the output unit 20m receives 0 (verification failure) sent from the storage unit 20a. Output (step S250). On the other hand, when Expression (35) is satisfied, the comparison unit 20i outputs 1 (verification success) to the storage unit 20a and stores it, and the output unit 20m outputs 1 (verification success) sent from the storage unit 20a. (Step S251), and further, a recovery message m rec 'is output (Step S252).

〔第4実施形態〕
次に、第4実施形態について説明する。第4実施形態は、第4の本発明に係る実施形態である。
第3実施形態では、リカバリメッセージmrecに依存して定まる値をαとし、リカバリメッセージmrec’に依存して定まる値をα’とした。第4実施形態では、クリアメッセージmclrに依存して定まる値をαとし、クリアメッセージmclr’に依存して定まる値をα’とする。以下では、第1,3実施形態との相違点を中心に説明する。
<全体構成>
署名生成装置10が署名生成装置310となり、署名検証装置20が署名検証装置320となる以外は、第1実施形態と同じである。
[Fourth Embodiment]
Next, a fourth embodiment will be described. The fourth embodiment is an embodiment according to the fourth aspect of the present invention.
In the third embodiment, the value determined depending on the recovery message m rec is α, and the value determined depending on the recovery message m rec ′ is α ′. In the fourth embodiment, a value determined depending on the clear message m clr is α, and a value determined depending on the clear message m clr ′ is α ′. Below, it demonstrates centering on difference with 1st, 3rd embodiment.
<Overall configuration>
The second embodiment is the same as the first embodiment except that the signature generation apparatus 10 is the signature generation apparatus 310 and the signature verification apparatus 20 is the signature verification apparatus 320.

<署名生成装置310の構成>
[ハードウェア構成]
図2に示した署名生成装置10のハードウェア構成と同様である。
[ハードウェアとプログラムとの協働]
第1実施形態と同様、本形態の署名生成装置310も図2に示したようなコンピュータに所定のプログラムが読み込まれることにより構成される。
図18は、CPUにプログラムが読み込まれることにより構成される第4実施形態の署名生成装置310の機能構成を例示したブロック図である。
図18に示すように、本形態の署名生成装置310は、記憶部10aと、秘密鍵生成部10bと、公開鍵生成部10cと、入力部10dと、メッセージ分割部10eと、任意値生成部10fと、群演算部10gと、ハッシュ演算部210h,310i,210pと、ビット結合部10mと、排他的論理和演算部10nと、整数演算部10qと、通信部10rと、制御部10sと、一時メモリ10tとを有する。なお、ハッシュ演算部310iは、その処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。
<Configuration of Signature Generating Device 310>
[Hardware configuration]
This is the same as the hardware configuration of the signature generation apparatus 10 shown in FIG.
[Cooperation between hardware and programs]
Similar to the first embodiment, the signature generation apparatus 310 according to this embodiment is configured by reading a predetermined program into a computer as shown in FIG.
FIG. 18 is a block diagram illustrating a functional configuration of the signature generation apparatus 310 according to the fourth embodiment configured by reading a program into the CPU.
As shown in FIG. 18, the signature generation apparatus 310 according to the present embodiment includes a storage unit 10a, a secret key generation unit 10b, a public key generation unit 10c, an input unit 10d, a message division unit 10e, and an arbitrary value generation unit. 10f, group operation unit 10g, hash operation units 210h, 310i, 210p, bit combination unit 10m, exclusive OR operation unit 10n, integer operation unit 10q, communication unit 10r, control unit 10s, And a temporary memory 10t. The hash calculator 310i is configured by reading a program for realizing the processing into the CPU.

<署名検証装置320の構成>
次に、署名検証装置320の構成を説明する。
[ハードウェア構成]
図2に示した署名生成装置10のハードウェア構成と同様である。
[ハードウェアとプログラムとの協働]
署名検証装置320も図2に示したようなコンピュータに所定のプログラムが読み込まれることにより構成される。図19は、このように構成される第4実施形態の署名検証装置320の機能構成を例示したブロック図である。
図19に示すように、本形態の署名検証装置320は、記憶部20aと、通信部20bと、ビット長抽出部20cと、ハッシュ演算部220d,220f,320kと、群演算部20eと、排他的論理和演算部20gと、ビット抽出部20hと、比較部220iと、出力部20mと、制御部20nと、一時メモリ20pとを有する。なお、ハッシュ演算部320kは、その処理を実現するためのプログラムがCPUに読み込まれることにより構成されるものである。
<Configuration of Signature Verification Device 320>
Next, the configuration of the signature verification apparatus 320 will be described.
[Hardware configuration]
This is the same as the hardware configuration of the signature generation apparatus 10 shown in FIG.
[Cooperation between hardware and programs]
The signature verification apparatus 320 is also configured by reading a predetermined program into a computer as shown in FIG. FIG. 19 is a block diagram illustrating a functional configuration of the signature verification apparatus 320 according to the fourth embodiment configured as described above.
As shown in FIG. 19, the signature verification apparatus 320 according to the present embodiment includes a storage unit 20a, a communication unit 20b, a bit length extraction unit 20c, hash calculation units 220d, 220f, and 320k, and a group calculation unit 20e. A logical OR operation unit 20g, a bit extraction unit 20h, a comparison unit 220i, an output unit 20m, a control unit 20n, and a temporary memory 20p. The hash calculation unit 320k is configured by reading a program for realizing the processing into the CPU.

<処理>
次に、本形態の処理について説明する。
[前処理]
第3実施形態と同じである。
[鍵生成処理]
第3実施形態と同じである。
[署名生成処理]
次に、第4実施形態の署名生成処理について説明する。
図20は、第4実施形態の署名生成処理を説明するためのフローチャートである。以下、図20に従って本形態の署名生成処理を説明する。
まず、署名生成装置310(図18)が、第3実施形態のステップS211〜S215と同様の処理を実行する(ステップS311〜S315)。
ステップS315の後、ハッシュ演算部310iが、記憶部10aからクリアメッセージmclrとビット長パラメータLとを読み込む。ハッシュ演算部310iは、入力値に対してLビットのハッシュ値を出力するハッシュ関数H:{0,1}→{0,1}を、クリアメッセージmclrに依存して定まる値α(本形態ではα=mclr)に作用させ、その演算結果であるLビットのハッシュ値
h=H1(α)∈{0,1}L …(36)
を記憶部10aに出力して格納する(ステップS316)。
その後、署名生成装置310は、第3実施形態のステップS217〜S221と同様な処理を実行する(ステップS317〜S321)。
<Processing>
Next, the processing of this embodiment will be described.
[Preprocessing]
The same as in the third embodiment.
[Key generation process]
The same as in the third embodiment.
[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 signature generation apparatus 310 (FIG. 18) performs the same processing as steps S211 to S215 of the third embodiment (steps S311 to S315).
After step S315, the hash calculator 310i reads the clear message m clr and the bit length parameter L from the storage unit 10a. The hash calculation unit 310i determines a hash function H 1 : {0, 1} * → {0, 1} L that outputs an L-bit hash value for the input value, depending on the clear message m clr. (In this embodiment, α = m clr ), and an L-bit hash value that is the result of the operation
h = H 1 (α) ∈ {0,1} L … (36)
Is output and stored in the storage unit 10a (step S316).
Thereafter, the signature generation apparatus 310 performs the same processing as steps S217 to S221 of the third embodiment (steps S317 to S321).

[署名検証処理]
次に、第4実施形態の署名検証処理について説明する。
図21は、第4実施形態の署名検証処理を説明するためのフローチャートである。以下、図21に従って本形態の署名検証処理を説明する。
まず、署名検証装置320(図19)が、第3実施形態のステップS241〜S247と同様な処理を実行する(ステップS341〜S347)。
その後、ハッシュ演算部320kが、記憶部20aからクリアメッセージmclr’を読み込む。ハッシュ演算部320kは、署名生成装置310と同一のハッシュ関数H:{0,1}→{0,1}を、クリアメッセージmclr’に依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値
H1(α’)∈{0,1}L …(37)
を記憶部20aに出力して格納する(ステップS448)。なお、α’の構成方法は前述した署名生成装置310でのαの構成方法と同一(mrec=mrec’とした場合に同一)とする。
その後、署名検証装置320は、第3実施形態のステップS249〜S252と同様な処理を実行して署名検証を行う(ステップS349〜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 signature verification apparatus 320 (FIG. 19) performs the same processing as steps S241 to S247 of the third embodiment (steps S341 to S347).
Thereafter, the hash calculation unit 320k reads the clear message m clr ′ from the storage unit 20a. The hash calculation unit 320k operates the same hash function H 1 : {0, 1} * → {0, 1} L as the signature generation device 310 on the value α ′ determined depending on the clear message m clr ′, L-bit hash value that is the result of the operation
H 1 (α ') ∈ {0,1} L … (37)
Is output and stored in the storage unit 20a (step S448). Note that the configuration method of α ′ is the same as the configuration method of α in the signature generation apparatus 310 described above (same when m rec = m rec ').
Thereafter, the signature verification apparatus 320 performs the same process as steps S249 to S252 of the third embodiment to perform signature verification (steps S349 to S352).

〔変形例〕
なお、本発明は上述の各実施形態に限定されるものではない。以下に各実施形態の変形例を示す。
第1実施形態では、βをRとMとに依存して定まる値(R,M)とし、β’をR’とM’とに依存して定まる値(R’,M’)とし、γをrとmclrとMとに依存して定まる値(r,mclr,M)とし、γ’をr’とmclr’とM’とに依存して定まる値(r’,mclr’,M’)とした。しかし、第1実施形態の変形として、β,γの一方(β’,γ’の一方)のみがM(M’)に依存して定まる構成であってもよい。
また、第2実施形態では、βをRとNとに依存して定まる値(R,N)とし、β’をR’とN’とに依存して定まる値(R’,N’)とし、γをrとmclrとNとに依存して定まる値(r,mclr,N)とし、γ’をr’とmclr’とN’とに依存して定まる値(r’,mclr’,N’)とした。しかし、第2実施形態の変形として、β,γの一方(β’,γ’の一方)のみがN(N’)に依存して定まる構成であってもよい。
[Modification]
In addition, this invention is not limited to each above-mentioned embodiment. The modification of each embodiment is shown below.
In the first embodiment, β is a value (R, M) determined depending on R and M, β ′ is a value (R ′, M ′) determined depending on R ′ and M ′, and γ Is a value determined depending on r, m clr and M (r, m clr , M), and γ ′ is a value determined depending on r ′, m clr ′ and M ′ (r ′, m clr ′). , M ′). However, as a modification of the first embodiment, only one of β and γ (one of β ′ and γ ′) may be determined depending on M (M ′).
In the second embodiment, β is a value (R, N) determined depending on R and N, and β ′ is a value (R ′, N ′) determined depending on R ′ and N ′. , determined depending the gamma to the r and m clr and N values (r, m clr, N) and to a value determined depending on 'the r' gamma and m clr 'and N' and (r ', m clr ′, N ′). However, as a modification of the second embodiment, only one of β and γ (one of β ′ and γ ′) may be determined depending on N (N ′).

また、第1,2実施形態の変形として、βとβ’とがさらに共通する付加情報に依存して定まる値であってもよく、γとγ’とがさらに共通する付加情報に依存して定まる値であってもよい。なお「付加情報」としては、リカバリメッセージのビット長や、クリアメッセージや、クリアメッセージのビット長や、公開鍵yや、群Gを特定するためのパラメータ、或いは、それらの少なくとも一部のビット結合値などを例示できる。これにより、署名検証精度をより向上させることができる。特に、付加情報として群Gを特定するためのパラメータを用いた場合には、不正な群(例えば、離散対数問題が容易であって群演算部での演算結果が正規の巡回群Gでの演算結果と同一となる群)を用いて生成された不正な署名が検証に合格してしまうことを防止できる。
また、第3実施形態では、α=mrecとし、α’=mrec’とした。しかし、αをΠとmrecとのみに依存する値(Π,mrec)とし、α’をΠ’とmrec’とのみに依存する値(Π’,mrec’)としてもよい。その他、αをmrecと「付加情報」とに依存する値とし、α’をmrec’と「付加情報」とに依存する値としてもよい。
また、第4実施形態では、α=mclrとし、α’=mclr’とした。しかし、αをΠとmclrとのみに依存する値(Π,mclr)とし、α’をΠ’とmclr’とのみに依存する値(Π’,mclr’)としてもよい。その他、αをmclrと「付加情報」とに依存する値とし、α’をmclr’と「付加情報」とに依存する値としてもよい。
Further, as a modification of the first and second embodiments, β and β ′ may be values determined depending on additional common information, and γ and γ ′ are further dependent on additional common information. It may be a fixed value. The “additional information” includes a recovery message bit length, a clear message, a bit length of the clear message, a public key y, a parameter for specifying the group G, or a bit combination of at least a part thereof. A value etc. can be illustrated. Thereby, signature verification accuracy can be further improved. In particular, when a parameter for specifying the group G is used as additional information, an illegal group (for example, the discrete logarithm problem is easy and the operation result in the group operation unit is an operation in the regular cyclic group G). It is possible to prevent an illegal signature generated using the same group as the result from passing the verification.
In the third embodiment, α = m rec and α ′ = m rec ′. However, α may be a value that depends only on Π and m rec (Π, m rec ), and α ′ may be a value that depends only on Π ′ and m rec ′ (Π ′, m rec ′). In addition, α may be a value depending on m rec and “additional information”, and α ′ may be a value depending on m rec ′ and “additional information”.
In the fourth embodiment, α = m clr and α ′ = m clr ′. However, α may be a value that depends only on Π and m clr (Π, m clr ), and α ′ may be a value that depends only on Π ′ and m clr ′ (Π ′, m clr ′). In addition, α may be a value depending on m clr and “additional information”, and α ′ may be a value depending on m clr ′ and “additional information”.

また、第3,4実施形態では、β=Rとし、β’=R’とした。しかし、βをRとリカバリメッセージmrecのビット長Mとのみに依存する情報(R,M)とし、β’をR’とリカバリメッセージmrec’のビット長M’とのみに依存する情報(R’,M’)としてもよい。また、βをRとクリアメッセージmclrのビット長Nとのみに依存する情報(R,N)とし、β’をR’とクリアメッセージmclr’のビット長N’とのみに依存する情報(R’,N’)としてもよい。その他、βをRと「付加情報」とに依存する値とし、β’をR’と「付加情報」とに依存する値としてもよい。
また、第3,4実施形態では、γをrとmclrとのみに依存して定まる値(r,mclr)とし、γ’をr’とmclr’とのみに依存して定まる値(r’,mclr’)とした。しかし、γをrとmclrとMとのみに依存して定まる値(r,mclr,M)とし、γ’をr’とmclr’ とM’とのみに依存して定まる値(r’,mclr’ ,M’)としてもよい。γをrとmclrとNとのみに依存して定まる値(r,mclr,N)とし、γ’をr’とmclr’ とN’とのみに依存して定まる値(r’,mclr’ ,N’)としてもよい。その他、γをrとmclrと「付加情報」とに依存して定まる値とし、γ’をr’とmclr’ と「付加情報」とに依存して定まる値としてもよい。
In the third and fourth embodiments, β = R and β ′ = R ′. However, β is information (R, M) that depends only on R and the bit length M of the recovery message m rec , and β ′ is information that depends only on R ′ and the bit length M ′ of the recovery message m rec ′ ( R ′, M ′). Also, β is information (R, N) that depends only on R and the bit length N of the clear message m clr , and β ′ is information that depends only on R ′ and the bit length N ′ of the clear message m clr ′ ( R ′, N ′). In addition, β may be a value depending on R and “additional information”, and β ′ may be a value depending on R ′ and “additional information”.
In the third and fourth embodiments, γ is a value (r, m clr ) that depends only on r and m clr, and γ ′ is a value that depends only on r ′ and m clr ′ ( r ′, m clr ′). However, it determined depending the gamma on r and m clr, M and only the value (r, m clr, M) and determined depending 'the r' gamma only and m clr 'and M' value (r ', M clr ', M '). It determined depending the gamma on r and m clr N and only the value to (r, m clr, N) and determined depending 'the r' gamma only in the m clr 'and N' value (r ', m clr ', N'). Alternatively , γ may be a value determined depending on r, m clr, and “additional information”, and γ ′ may be a value determined depending on r ′, m clr ′, and “additional information”.

また、各実施形態では、署名生成装置10〜310が鍵生成を行ったが、別の装置が鍵生成を行ってもよい。また、各実施形態では、公開鍵サーバ装置30が公開鍵yを公開したが署名生成装置10〜310が署名検証装置20〜320に公開鍵yを送信する構成であってもよい。また、各処理におけるZ(qを法とする完全剰余系)をZ(整数)に置換した構成であってもよい。
また、第3,4実施形態では、署名検証装置220,320が、署名σ’が具備するr’のビット長とビット長パラメータLとからリカバリメッセージのビット長を算出したが、署名生成装置210,310が署名検証装置220,320にリカバリメッセージのビット長を送信する構成であってもよい。
また、上記各実施形態では、リカバリメッセージのビット長Mを可変とし、署名生成装置10〜310の入力部10dにリカバリメッセージのビット長Mを入力する構成であった。しかし、リカバリメッセージのビット長Mを固定にしてもよい。この場合、署名生成装置10〜310と署名検証装置20〜320との間で、ビット長Mを共有する構成であってもよい。
また、ハッシュ関数とは、あるデータに対し、そのデータを代表する値を算出する関数を意味する。本発明では、SHA−1やMD5等のみならず、例えば、DESやCamelliaなどの共通鍵暗号関数に共通鍵を代入したものをハッシュ関数として用いることもできる。
In each embodiment, the signature generation apparatuses 10 to 310 perform key generation, but another apparatus may perform key generation. In each embodiment, the public key server device 30 discloses the public key y, but the signature generation devices 10 to 310 may transmit the public key y to the signature verification devices 20 to 320. Further, Z q (the complete residue system modulo q) may be configured to be replaced with Z (integer) in each treatment.
In the third and fourth embodiments, the signature verification apparatuses 220 and 320 calculate the bit length of the recovery message from the bit length of r ′ included in the signature σ ′ and the bit length parameter L. , 310 may transmit the bit length of the recovery message to the signature verification devices 220, 320.
In each of the above embodiments, the recovery message bit length M is variable, and the recovery message bit length M is input to the input unit 10d of the signature generation apparatuses 10-310. However, the recovery message bit length M may be fixed. In this case, the bit length M may be shared between the signature generation devices 10 to 310 and the signature verification devices 20 to 320.
Further, the hash function means a function for calculating a value representing 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.

また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよく、その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、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)等を用いることができる。
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.
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等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態のプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、各形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
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.
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 according to this embodiment includes information provided for processing by an electronic computer and equivalent 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 each embodiment, this apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.

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

図1は、第1実施形態の署名システムの全体構成を示した概念図である。FIG. 1 is a conceptual diagram showing the overall configuration of the signature system of the first embodiment. 図2は、第1実施形態の署名生成装置のハードウェア構成を例示したブロック図である。FIG. 2 is a block diagram illustrating a hardware configuration of the signature generation apparatus according to the first embodiment. 図3は、第1実施形態の署名生成装置の機能構成を例示したブロック図である。FIG. 3 is a block diagram illustrating a functional configuration of the signature generation apparatus according to the first embodiment. 図4は、第1実施形態のハッシュ演算部の機能構成の詳細を示した図である。FIG. 4 is a diagram illustrating details of a functional configuration of the hash calculation unit according to the first embodiment. 図5は、第1実施形態の署名検証装置の機能構成を例示したブロック図である。FIG. 5 is a block diagram illustrating a functional configuration of the signature verification apparatus according to the first embodiment. 図6は、第1実施形態の署名生成処理を説明するためのフローチャートである。FIG. 6 is a flowchart for explaining the signature generation processing according to the first embodiment. 図7は、ステップS15の処理の例を説明するためのフローチャートである。FIG. 7 is a flowchart for explaining an example of the process of step S15. 図8は、第1実施形態の署名検証処理を説明するためのフローチャートである。FIG. 8 is a flowchart for explaining the signature verification processing according to the first embodiment. 図9(a)(b)(c)は「第1ビット位置」及び「第2ビット位置」の設定例を示した図である。FIGS. 9A, 9B, and 9C are diagrams showing setting examples of “first bit position” and “second bit position”. 図10は、第2実施形態の署名生成装置1の機能構成を例示したブロック図である。FIG. 10 is a block diagram illustrating a functional configuration of the signature generation device 1 according to the second embodiment. 図11は、第2実施形態の署名検証装置の機能構成を例示したブロック図である。FIG. 11 is a block diagram illustrating a functional configuration of the signature verification apparatus according to the second embodiment. 図12は、第2実施形態の署名生成処理を説明するためのフローチャートである。FIG. 12 is a flowchart for explaining a signature generation process according to the second embodiment. 図13は、第2実施形態の署名検証処理を説明するためのフローチャートである。FIG. 13 is a flowchart for explaining the signature verification processing of the second embodiment. 図14は、第3実施形態の署名生成装置の機能構成を例示したブロック図である。FIG. 14 is a block diagram illustrating a functional configuration of the signature generation apparatus according to the third embodiment. 図15は、第3実施形態の署名検証装置の機能構成を例示したブロック図である。FIG. 15 is a block diagram illustrating a functional configuration of the signature verification apparatus according to the third embodiment. 図16は、第3実施形態の署名生成処理を説明するためのフローチャートである。FIG. 16 is a flowchart for explaining a signature generation process according to the third embodiment. 図17は、第3実施形態の署名検証処理を説明するためのフローチャートである。FIG. 17 is a flowchart for explaining the signature verification processing according to the third embodiment. 図18は、第4実施形態の署名生成装置の機能構成を例示したブロック図である。FIG. 18 is a block diagram illustrating a functional configuration of the signature generation apparatus according to the fourth embodiment. 図19は、第4実施形態の署名検証装置の機能構成を例示したブロック図である。FIG. 19 is a block diagram illustrating a functional configuration of the signature verification apparatus according to the fourth embodiment. 図20は、第4実施形態の署名生成処理を説明するためのフローチャートである。FIG. 20 is a flowchart for explaining a signature generation process according to the fourth embodiment. 図21は、第4実施形態の署名検証処理を説明するためのフローチャートである。FIG. 21 is a flowchart for explaining a signature verification process according to the fourth embodiment.

符号の説明Explanation of symbols

1 署名システム
10〜310 署名生成装置
20〜320 署名検証装置
1 Signature System 10-310 Signature Generation Device 20-320 Signature Verification Device

Claims (22)

署名生成を行う署名生成装置であって、
整数の秘密鍵xを格納する第1記憶部と、
Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を格納する第2記憶部と、
Nビット(N≧1)のクリアメッセージmclr∈{0,1}を格納する第3記憶部と、
整数の任意値kを生成する任意値生成部と、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力する群演算部と、
出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、上記演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力する第1ハッシュ演算部と、
署名検証装置との共有値h∈{0,1}を第1ビット位置に配置し、上記リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力するビット結合部と、
上記ハッシュ値Πと上記ビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し((+)は排他的論理和演算子)、当該排他的論理和値rを出力する排他的論理和演算部と、
出力値が整数のハッシュ関数H:{0,1}→Zを、上記排他的論理和値rと上記クリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力する第3ハッシュ演算部と、
s=k−t・x∈Zを算出し、当該演算結果sを出力する整数演算部と、
署名σ=(r,s)と上記クリアメッセージmclrとを出力する署名出力部と、を有し、
上記値β及び上記値γの少なくとも一方の値は、
さらに、上記リカバリメッセージmrecのビット長Mに依存して決まる値である、
ことを特徴とする署名生成装置。
A signature generation device for generating a signature,
A first storage unit for storing an integer secret key x;
A second storage unit for storing an M-bit (M ≧ 1) recovery message m rec ε {0,1} M ;
A third storage for storing N-bit (N ≧ 1) clear message m clr ε {0, 1} N ;
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 0 : {0,1} * → {0,1} L + M having an output bit length of L + M bits (L is a positive integer shared with the signature verification apparatus) is determined depending on the calculation result R. A first hash operation unit that operates on the value β and outputs an L + M-bit hash value β = H 0 (β) ∈ {0, 1} L + M as a result of the operation;
L + M-bit bit combination value in which the shared value hε {0,1} L with the signature verification device is arranged in the first bit position and the recovery message m rec ε {0,1} M is arranged in the second bit position d = h | m rec ε {0, 1} L + M is calculated, and a bit combination unit that outputs the bit combination value d;
The exclusive OR of the hash value Π and the bit combination value d = Π (+) dε {0,1} L + M is calculated ((+) is the exclusive OR operator), and the exclusive logic An exclusive OR operation unit for outputting a sum value r;
An output value is an integer hash function H 3 : {0, 1} * → Z is applied to a value γ determined depending on the exclusive OR value r and the clear message m clr, and is an operation result thereof. A third 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 the signature σ = (r, s) and the clear message m clr ;
At least one of the value β and the value γ is
Furthermore, the value is determined depending on the bit length M of the recovery message m rec .
A signature generation apparatus characterized by the above.
署名生成を行う署名生成装置であって、
整数の秘密鍵xを格納する第1記憶部と、
Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を格納する第2記憶部と、
Nビット(N≧1)のクリアメッセージmclr∈{0,1}を格納する第3記憶部と、
整数の任意値kを生成する任意値生成部と、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力する群演算部と、
出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、上記演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力する第1ハッシュ演算部と、
署名検証装置との共有値h∈{0,1}を第1ビット位置に配置し、上記リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力するビット結合部と、
上記ハッシュ値Πと上記ビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し((+)は排他的論理和演算子)、当該排他的論理和値rを出力する排他的論理和演算部と、
出力値が整数のハッシュ関数H:{0,1}→Zを、上記排他的論理和値rと上記クリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力する第3ハッシュ演算部と、
s=k−t・x∈Zを算出し、当該演算結果sを出力する整数演算部と、
署名σ=(r,s)と上記クリアメッセージmclrとを出力する署名出力部と、を有し、
上記値β及び上記値γの少なくとも一方の値は、
さらに、上記クリアメッセージmclrのビット長Nに依存して決まる値である、
ことを特徴とする署名生成装置。
A signature generation device for generating a signature,
A first storage unit for storing an integer secret key x;
A second storage unit for storing an M-bit (M ≧ 1) recovery message m rec ε {0,1} M ;
A third storage for storing N-bit (N ≧ 1) clear message m clr ε {0, 1} N ;
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 0 : {0,1} * → {0,1} L + M having an output bit length of L + M bits (L is a positive integer shared with the signature verification apparatus) is determined depending on the calculation result R. A first hash operation unit that operates on the value β and outputs an L + M-bit hash value β = H 0 (β) ∈ {0, 1} L + M as a result of the operation;
L + M-bit bit combination value in which the shared value hε {0,1} L with the signature verification device is arranged in the first bit position and the recovery message m rec ε {0,1} M is arranged in the second bit position d = h | m rec ε {0, 1} L + M is calculated, and a bit combination unit that outputs the bit combination value d;
The exclusive OR of the hash value Π and the bit combination value d = Π (+) dε {0,1} L + M is calculated ((+) is the exclusive OR operator), and the exclusive logic An exclusive OR operation unit for outputting a sum value r;
An output value is an integer hash function H 3 : {0, 1} * → Z is applied to a value γ determined depending on the exclusive OR value r and the clear message m clr, and is an operation result thereof. A third 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 the signature σ = (r, s) and the clear message m clr ;
At least one of the value β and the value γ is
Further, the value is determined depending on the bit length N of the clear message m clr .
A signature generation apparatus characterized by the above.
署名生成を行う署名生成装置であって、
整数の秘密鍵xを格納する第1記憶部と、
Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を格納する第2記憶部と、
Nビット(N≧1)のクリアメッセージmclr∈{0,1}を格納する第3記憶部と、
整数の任意値kを生成する任意値生成部と、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力する群演算部と、
出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、上記演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力する第1ハッシュ演算部と、
出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、上記リカバリメッセージmrecに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H(α)∈{0,1}を出力する第2ハッシュ演算部と、
上記ハッシュ値h∈{0,1}を第1ビット位置に配置し、上記リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力するビット結合部と、
上記ハッシュ値Πと上記ビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し((+)は排他的論理和演算子)、当該排他的論理和値rを出力する排他的論理和演算部と、
出力値が整数のハッシュ関数H:{0,1}→Zを、上記排他的論理和値rと上記クリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力する第3ハッシュ演算部と、
s=k−t・x∈Zを算出し、当該演算結果sを出力する整数演算部と、
署名σ=(r,s)と上記クリアメッセージmclrとを出力する署名出力部と、
を有することを特徴とする署名生成装置。
A signature generation device for generating a signature,
A first storage unit for storing an integer secret key x;
A second storage unit for storing an M-bit (M ≧ 1) recovery message m rec ε {0,1} M ;
A third storage for storing N-bit (N ≧ 1) clear message m clr ε {0, 1} N ;
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 0 : {0,1} * → {0,1} L + M having an output bit length of L + M bits (L is a positive integer shared with the signature verification apparatus) is determined depending on the calculation result R. A first hash operation unit that operates on the value β and outputs an L + M-bit hash value β = H 0 (β) ∈ {0, 1} L + M as a result of the operation;
A hash function H 1 having an output bit length of L bits: {0,1} * → {0,1} L is applied to a value α determined depending on the recovery message m rec, and L bits as a result of the operation A second hash calculator that outputs a hash value h = H 1 (α) ∈ {0, 1} L ,
The hash value hε {0,1} L is arranged at the first bit position, and the recovery message m rec ε {0,1} M is arranged at the second bit position. m rec ∈ {0, 1} L + M is calculated, and a bit combination unit that outputs the bit combination value d;
The exclusive OR of the hash value Π and the bit combination value d = Π (+) dε {0,1} L + M is calculated ((+) is the exclusive OR operator), and the exclusive logic An exclusive OR operation unit for outputting a sum value r;
An output value is an integer hash function H 3 : {0, 1} * → Z is applied to a value γ determined depending on the exclusive OR value r and the clear message m clr, and is an operation result thereof. A third 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 the signature σ = (r, s) and the clear message m clr ;
A signature generation apparatus comprising:
署名生成を行う署名生成装置であって、
整数の秘密鍵xを格納する第1記憶部と、
Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を格納する第2記憶部と、
Nビット(N≧1)のクリアメッセージmclr∈{0,1}を格納する第3記憶部と、
整数の任意値kを生成する任意値生成部と、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力する群演算部と、
出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、上記演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力する第1ハッシュ演算部と、
出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、上記クリアメッセージmclrに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H(α)∈{0,1}を出力する第2ハッシュ演算部と、
上記ハッシュ値h∈{0,1}を第1ビット位置に配置し、上記リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力するビット結合部と、
上記ハッシュ値Πと上記ビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力する排他的論理和演算部と、
出力値が整数のハッシュ関数H:{0,1}→Zを、上記排他的論理和値rと上記クリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力する第3ハッシュ演算部と、
s=k−t・x∈Zを算出し、当該演算結果sを出力する整数演算部と、
署名σ=(r,s)と上記クリアメッセージmclrとを出力する署名出力部と、
を有することを特徴とする署名生成装置。
A signature generation device for generating a signature,
A first storage unit for storing an integer secret key x;
A second storage unit for storing an M-bit (M ≧ 1) recovery message m rec ε {0,1} M ;
A third storage for storing N-bit (N ≧ 1) clear message m clr ε {0, 1} N ;
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 0 : {0,1} * → {0,1} L + M having an output bit length of L + M bits (L is a positive integer shared with the signature verification apparatus) is determined depending on the calculation result R. A first hash operation unit that operates on the value β and outputs an L + M-bit hash value β = H 0 (β) ∈ {0, 1} L + M as a result of the operation;
A hash function H 1 having an output bit length of L bits: {0, 1} * → {0, 1} L is applied to a value α determined depending on the clear message m clr , and the L bit as a result of the operation A second hash calculator that outputs a hash value h = H 1 (α) ∈ {0, 1} L ,
The hash value hε {0,1} L is arranged at the first bit position, and the recovery message m rec ε {0,1} M is arranged at the second bit position. m rec ∈ {0, 1} L + M is calculated, and a bit combination unit that outputs the bit combination value d;
Exclusive OR operation unit that calculates 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 When,
An output value is an integer hash function H 3 : {0, 1} * → Z is applied to a value γ determined depending on the exclusive OR value r and the clear message m clr, and is an operation result thereof. A third 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 the signature σ = (r, s) and the clear message m clr ;
A signature generation apparatus comprising:
請求項3又は4に記載の署名生成装置であって、
上記値β及び上記値γの少なくとも一方の値は、
さらに、上記リカバリメッセージmrecのビット長Mに依存して決まる値である、
ことを特徴とする署名生成装置。
The signature generation device according to claim 3 or 4,
At least one of the value β and the value γ is
Furthermore, the value is determined depending on the bit length M of the recovery message m rec .
A signature generation apparatus characterized by the above.
請求項3又は4に記載の署名生成装置であって、
上記値β及び上記値γの少なくとも一方の値は、
さらに、上記クリアメッセージmclrのビット長Nに依存して決まる値である、
ことを特徴とする署名生成装置。
The signature generation device according to claim 3 or 4,
At least one of the value β and the value γ is
Further, the value is determined depending on the bit length N of the clear message m clr .
A signature generation apparatus characterized by the above.
署名検証する署名検証装置であって、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを格納する第1記憶部と、
署名σ’=(r’,s’)と上記クリアメッセージmclr’との入力を受け付ける署名入力部と、
上記署名σ’=(r’,s’)と上記クリアメッセージmclr’とを格納する第2記憶部と、
上記署名σ’のr’のビット長から値L(Lは署名生成装置と共有される正の整数)を減じた値M’を、上記署名σ’に対応するリカバリメッセージmrec’のビット長M’として抽出するビット長抽出部と、
上記ビット長M’を格納する第3記憶部と、
整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、上記署名σ’が有するr’と上記クリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力する第1ハッシュ演算部と、
R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力する群演算部と、
出力ビット長がL+M’ビットのハッシュ関数H:{0,1}→{0,1}L+M’を、上記演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力する第2ハッシュ演算部と、
上記ハッシュ値Π’と、上記署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力する排他的論理和演算部と、
署名生成装置との共有値h∈{0,1}と、上記排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}とを比較し、h’=hであることを条件に、検証が成功である旨の情報を出力する比較部と、を有し、
上記値β’及び上記値γ’の少なくとも一方の値は、
さらに、上記リカバリメッセージmrec’のビット長M’に依存して決まる値である、
ことを特徴とする署名検証装置。
A signature verification device for verifying a signature,
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 that receives input of the signature σ ′ = (r ′, s ′) and the clear message m clr ′;
A second storage unit for storing the signature σ ′ = (r ′, s ′) and the clear message m clr ′;
The bit length of the recovery message m rec 'corresponding to the signature σ' is obtained by subtracting the value M 'obtained by subtracting the value L (L is a positive integer shared with the signature generation device) from the bit length of r' of the signature σ '. A bit length extraction unit that extracts M ′;
A third storage unit for storing the bit length M ′;
A hash function H 3 that outputs an integer hash value: {0, 1} * → Z is applied to a value γ ′ determined depending on r ′ of the signature σ ′ and the clear message m clr ′, A first hash calculation unit that outputs a hash value t ′ = H 3 (γ ′) εZ that is the calculation result;
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 0 having an output bit length of L + M ′ bits: {0, 1} * → {0, 1} L + M ′ is applied to a value β ′ determined depending on the calculation result R ′, and the calculation result is A second hash calculator that outputs a certain L + M′-bit hash value '′ = H 0 (β ′) ∈ {0, 1} L + M ′ ;
The exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ of the signature σ ′ is calculated, and the exclusive OR value d is calculated. An exclusive OR operation unit that outputs',
The shared value hε {0,1} L with the signature generation device is compared with the L-bit value h′ε {0,1} L at the first bit position of the exclusive OR value d ′, and h A comparator that outputs information indicating that the verification is successful on the condition that '= h;
At least one of the value β ′ and the value γ ′ is
Furthermore, the value is determined depending on the bit length M ′ of the recovery message m rec ′.
A signature verification apparatus.
署名検証する署名検証装置であって、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを格納する第1記憶部と、
署名σ’=(r’,s’)と上記クリアメッセージmclr’との入力を受け付ける署名入力部と、
上記署名σ’=(r’,s’)と上記クリアメッセージmclr’とを格納する第2記憶部と、
上記署名σ’に対応するリカバリメッセージmrec’のビット長M’を格納する第3記憶部と、
上記クリアメッセージmclr’のビット長N’を格納する第4記憶部と、
整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、上記署名σ’が有するr’と上記クリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力する第1ハッシュ演算部と、
R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力する群演算部と、
出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+M’を、上記演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力する第2ハッシュ演算部と、
上記ハッシュ値Π’と、上記署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力する排他的論理和演算部と、
署名生成装置との共有値h∈{0,1}と、上記排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}とを比較し、h’=hであることを条件に、検証が成功である旨の情報を出力する比較部と、を有し、
上記値β’及び上記値γ’の少なくとも一方の値は、
さらに、上記クリアメッセージmclr’のビット長N’に依存して決まる値である、
ことを特徴とする署名検証装置。
A signature verification device for verifying a signature,
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 that receives input of the signature σ ′ = (r ′, s ′) and the clear message m clr ′;
A second storage unit for storing the signature σ ′ = (r ′, s ′) and the clear message m clr ′;
A third storage unit for storing the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′;
A fourth storage unit for storing the bit length N ′ of the clear message m clr ′;
A hash function H 3 that outputs an integer hash value: {0, 1} * → Z is applied to a value γ ′ determined depending on r ′ of the signature σ ′ and the clear message m clr ′, A first hash calculation unit that outputs a hash value t ′ = H 3 (γ ′) εZ that is the calculation result;
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 0 having an output bit length of L + M ′ bits (L is a positive integer shared with the signature generation device): {0, 1} * → {0, 1} L + M ′ depends on the operation result R ′ A second hash operation unit that acts on the value β ′ determined in this way and outputs a hash value Π ′ = H 0 (β ′) ∈ {0, 1} L + M ′ of the L + M ′ bit that is the operation result;
The exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ of the signature σ ′ is calculated, and the exclusive OR value d is calculated. An exclusive OR operation unit that outputs',
The shared value hε {0,1} L with the signature generation device is compared with the L-bit value h′ε {0,1} L at the first bit position of the exclusive OR value d ′, and h A comparator that outputs information indicating that the verification is successful on the condition that '= h;
At least one of the value β ′ and the value γ ′ is
Furthermore, the value is determined depending on the bit length N ′ of the clear message m clr ′.
A signature verification apparatus.
署名検証する署名検証装置であって、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを格納する第1記憶部と、
署名σ’=(r’,s’)と上記クリアメッセージmclr’との入力を受け付ける署名入力部と、
上記署名σ’=(r’,s’)と上記クリアメッセージmclr’とを格納する第2記憶部と、
上記署名σ’に対応するリカバリメッセージmrec’のビット長M’を格納する第3記憶部と、
整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、上記署名σ’が有するr’と上記クリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力する第1ハッシュ演算部と、
R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力する群演算部と、
出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+M’を、上記演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力する第2ハッシュ演算部と、
上記ハッシュ値Π’と、上記署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力する排他的論理和演算部と、
出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、上記排他的論理和値d’の第2ビット位置のM’ビットの値mrec’∈{0,1}M’に依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H(α’)∈{0,1}を出力する第3ハッシュ演算部と、
上記排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}と、上記ハッシュ値H(α’)とを比較し、h’=H(α’)であることを条件に、検証が成功である旨の情報を出力する比較部と、
を有することを特徴とする署名検証装置。
A signature verification device for verifying a signature,
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 that receives input of the signature σ ′ = (r ′, s ′) and the clear message m clr ′;
A second storage unit for storing the signature σ ′ = (r ′, s ′) and the clear message m clr ′;
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 hash value: {0, 1} * → Z is applied to a value γ ′ determined depending on r ′ of the signature σ ′ and the clear message m clr ′, A first hash calculation unit that outputs a hash value t ′ = H 3 (γ ′) εZ that is the calculation result;
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 0 having an output bit length of L + M ′ bits (L is a positive integer shared with the signature generation device): {0, 1} * → {0, 1} L + M ′ depends on the operation result R ′ A second hash operation unit that acts on the value β ′ determined in this way and outputs a hash value Π ′ = H 0 (β ′) ∈ {0, 1} L + M ′ of the L + M ′ bit that is the operation result;
The exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ of the signature σ ′ is calculated, and the exclusive OR value d is calculated. An exclusive OR operation unit that outputs',
A hash function H 1 having an output bit length of L bits: {0, 1} * → {0, 1} L is converted into a value m rec ' ∈ε of the M ′ bit at the second bit position of the exclusive OR value d ′. {0, 1} A third hash operation unit that operates on a value α ′ determined depending on M ′ , and outputs an L-bit hash value H 1 (α ′) ∈ {0, 1} L as a result of the operation When,
The L-value h′ε {0,1} L at the first bit position of the exclusive OR value d ′ is compared with the hash value H 1 (α ′), and h ′ = H 1 (α ') On the condition that the verification is successful, a comparison unit that outputs information indicating that the verification is successful,
A signature verification apparatus comprising:
署名検証する署名検証装置であって、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを格納する第1記憶部と、
署名σ’=(r’,s’)と上記クリアメッセージmclr’との入力を受け付ける署名入力部と、
上記署名σ’=(r’,s’)と上記クリアメッセージmclr’とを格納する第2記憶部と、
上記署名σ’に対応するリカバリメッセージmrec’のビット長M’を格納する第3記憶部と、
整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、上記署名σ’が有するr’と上記クリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力する第1ハッシュ演算部と、
R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力する群演算部と、
出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+M’を、上記演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力する第2ハッシュ演算部と、
上記ハッシュ値Π’と、上記署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力する排他的論理和演算部と、
出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、上記クリアメッセージmclr’に依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H(α’)∈{0,1}を出力する第3ハッシュ演算部と、
上記排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}と、上記ハッシュ値H(α’)とを比較し、h’=H(α’)であることを条件に、検証が成功である旨の情報を出力する比較部と、
を有することを特徴とする署名検証装置。
A signature verification device for verifying a signature,
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 that receives input of the signature σ ′ = (r ′, s ′) and the clear message m clr ′;
A second storage unit for storing the signature σ ′ = (r ′, s ′) and the clear message m clr ′;
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 hash value: {0, 1} * → Z is applied to a value γ ′ determined depending on r ′ of the signature σ ′ and the clear message m clr ′, A first hash calculation unit that outputs a hash value t ′ = H 3 (γ ′) εZ that is the calculation result;
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 0 having an output bit length of L + M ′ bits (L is a positive integer shared with the signature generation device): {0, 1} * → {0, 1} L + M ′ depends on the operation result R ′ A second hash operation unit that acts on the value β ′ determined in this way and outputs a hash value Π ′ = H 0 (β ′) ∈ {0, 1} L + M ′ of the L + M ′ bit that is the operation result;
The exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ of the signature σ ′ is calculated, and the exclusive OR value d is calculated. An exclusive OR operation unit that outputs',
Hash function H 1 having an output bit length of L bits: {0,1} * → {0,1} L is applied to a value α ′ determined depending on the clear message m clr ′, and is a result of the calculation. A third hash calculator that outputs an L-bit hash value H 1 (α ′) ∈ {0, 1} L ;
The L-value h′ε {0,1} L at the first bit position of the exclusive OR value d ′ is compared with the hash value H 1 (α ′), and h ′ = H 1 (α ') On the condition that the verification is successful, a comparison unit that outputs information indicating that the verification is successful,
A signature verification apparatus comprising:
請求項9又は10に記載の署名検証装置であって、
上記値β’及び上記値γ’の少なくとも一方の値は、
さらに、上記リカバリメッセージmrec’のビット長M’に依存して決まる値である、
ことを特徴とする署名検証装置。
The signature verification device according to claim 9 or 10,
At least one of the value β ′ and the value γ ′ is
Furthermore, the value is determined depending on the bit length M ′ of the recovery message m rec ′.
A signature verification apparatus.
請求項9又は10に記載の署名検証装置であって、
上記値β’及び上記値γ’の少なくとも一方の値は、
さらに、上記クリアメッセージmclr’のビット長N’に依存して決まる値である、
ことを特徴とする署名検証装置。
The signature verification device according to claim 9 or 10,
At least one of the value β ′ and the value γ ′ is
Furthermore, the value is determined depending on the bit length N ′ of the clear message m clr ′.
A signature verification apparatus.
署名生成を行う署名生成方法であって、
整数の秘密鍵xを第1記憶部に格納するステップと、
Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を第2記憶部に格納するステップと、
Nビット(N≧1)のクリアメッセージmclr∈{0,1}を第3記憶部に格納するステップと、
任意値生成部が、整数の任意値kを生成するステップと、
群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力するステップと、
第1ハッシュ演算部が、出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、上記演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力するステップと、
ビット結合部が、署名検証装置との共有値h∈{0,1}を第1ビット位置に配置し、上記リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力するステップと、
排他的論理和演算部が、上記ハッシュ値Πと上記ビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力するステップと、
第3ハッシュ演算部が、出力値が整数のハッシュ関数H:{0,1}→Zを、上記排他的論理和値rと上記クリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力するステップと、
整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力するステップと、
署名出力部が、署名σ=(r,s)と上記クリアメッセージmclrとを出力するステップと、を有し、
上記値β及び上記値γの少なくとも一方の値は、
さらに、上記リカバリメッセージmrecのビット長Mに依存して決まる値である、
ことを特徴とする署名生成方法。
A signature generation method for generating a signature,
Storing an integer secret key x in the first storage unit;
Storing an M-bit (M ≧ 1) recovery message m rec ε {0,1} M in the second storage unit;
Storing N-bit (N ≧ 1) clear message m clr ε {0, 1} N in the third 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;
The first hash calculation unit calculates the hash function H 0 : {0,1} * → {0,1} L + M having an output bit length of L + M bits (L is a positive integer shared with the signature verification apparatus) Acting on a value β determined depending on the result R, and outputting an L + M-bit hash value Π = H 0 (β) ε {0,1} L + M , which is the calculation result;
The bit combining unit arranges the shared value hε {0,1} L with the signature verification device in the first bit position, and L + M arranges the recovery message m rec ε {0,1} M in the second bit position. Calculating a bit combination value d = h | m rec ∈ {0, 1} L + M of the bits and outputting the bit combination value d;
The 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 r is calculated. An output step;
The third hash calculator operates the hash function H 3 : {0, 1} * → Z whose output value is an integer on the value γ determined depending on the exclusive OR value r and the clear message m clr. 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 signature output unit outputting the signature σ = (r, s) and the clear message m clr ;
At least one of the value β and the value γ is
Furthermore, the value is determined depending on the bit length M of the recovery message m rec .
A signature generation method characterized by the above.
署名生成を行う署名生成方法であって、
整数の秘密鍵xを第1記憶部に格納するステップと、
Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を第2記憶部に格納するステップと、
Nビット(N≧1)のクリアメッセージmclr∈{0,1}を第3記憶部に格納するステップと、
任意値生成部が、整数の任意値kを生成するステップと、
群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力するステップと、
第1ハッシュ演算部が、出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、上記演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力するステップと、
ビット結合部が、署名検証装置との共有値h∈{0,1}を第1ビット位置に配置し、上記リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力するステップと、
排他的論理和演算部が、上記ハッシュ値Πと上記ビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力するステップと、
第3ハッシュ演算部が、出力値が整数のハッシュ関数H:{0,1}→Zを、上記排他的論理和値rと上記クリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力するステップと、
整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力するステップと、
署名出力部が、署名σ=(r,s)と上記クリアメッセージmclrとを出力するステップと、を有し、
上記値β及び上記値γの少なくとも一方の値は、
さらに、上記クリアメッセージmclrのビット長Nに依存して決まる値である、
ことを特徴とする署名生成方法。
A signature generation method for generating a signature,
Storing an integer secret key x in the first storage unit;
Storing an M-bit (M ≧ 1) recovery message m rec ε {0,1} M in the second storage unit;
Storing N-bit (N ≧ 1) clear message m clr ε {0, 1} N in the third 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;
The first hash calculation unit calculates the hash function H 0 : {0,1} * → {0,1} L + M having an output bit length of L + M bits (L is a positive integer shared with the signature verification apparatus) Acting on a value β determined depending on the result R, and outputting an L + M-bit hash value Π = H 0 (β) ε {0,1} L + M , which is the calculation result;
The bit combining unit arranges the shared value hε {0,1} L with the signature verification device in the first bit position, and L + M arranges the recovery message m rec ε {0,1} M in the second bit position. Calculating a bit combination value d = h | m rec ∈ {0, 1} L + M of the bits and outputting the bit combination value d;
The 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 r is calculated. An output step;
The third hash calculator operates the hash function H 3 : {0, 1} * → Z whose output value is an integer on the value γ determined depending on the exclusive OR value r and the clear message m clr. 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 signature output unit outputting the signature σ = (r, s) and the clear message m clr ;
At least one of the value β and the value γ is
Further, the value is determined depending on the bit length N of the clear message m clr .
A signature generation method characterized by the above.
署名生成を行う署名生成方法であって、
整数の秘密鍵xを第1記憶部に格納するステップと、
Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を第2記憶部に格納するステップと、
Nビット(N≧1)のクリアメッセージmclr∈{0,1}を第3記憶部に格納するステップと、
任意値生成部が、整数の任意値kを生成するステップと、
群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力するステップと、
第1ハッシュ演算部が、出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、上記演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力するステップと、
第2ハッシュ演算部が、出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、上記リカバリメッセージmrecに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H(α)∈{0,1}を出力するステップと、
ビット結合部が、上記ハッシュ値h∈{0,1}を第1ビット位置に配置し、上記リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力するステップと、
排他的論理和演算部が、上記ハッシュ値Πと上記ビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力するステップと、
第3ハッシュ演算部が、出力値が整数のハッシュ関数H:{0,1}→Zを、上記排他的論理和値rと上記クリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力するステップと、
整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力するステップと、
署名出力部が、署名σ=(r,s)と上記クリアメッセージmclrとを出力するステップと、
を有することを特徴とする署名生成方法。
A signature generation method for generating a signature,
Storing an integer secret key x in the first storage unit;
Storing an M-bit (M ≧ 1) recovery message m rec ε {0,1} M in the second storage unit;
Storing N-bit (N ≧ 1) clear message m clr ε {0, 1} N in the third 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;
The first hash calculation unit calculates the hash function H 0 : {0,1} * → {0,1} L + M having an output bit length of L + M bits (L is a positive integer shared with the signature verification apparatus) Acting on a value β determined depending on the result R, and outputting an L + M-bit hash value Π = H 0 (β) ε {0,1} L + M , which is the calculation result;
The second hash calculator applies a hash function H 1 : {0,1} * → {0,1} L having an output bit length of L bits to a value α determined depending on the recovery message m rec ; Outputting an L-bit hash value h = H 1 (α) ε {0, 1} L as a result of the operation;
A bit combining unit arranges the hash value hε {0,1} L in the first bit position and the bit combination of L + M bits in which the recovery message m rec ε {0,1} M is arranged in the second bit position. Calculating a value d = h | m rec ∈ {0, 1} L + M and outputting the bit combination value d;
The 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 r is calculated. An output step;
The third hash calculator operates the hash function H 3 : {0, 1} * → Z whose output value is an integer on the value γ determined depending on the exclusive OR value r and the clear message m clr. 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 signature output unit outputting the signature σ = (r, s) and the clear message m clr ;
A signature generation method characterized by comprising:
署名生成を行う署名生成方法であって、
整数の秘密鍵xを第1記憶部に格納するステップと、
Mビット(M≧1)のリカバリメッセージmrec∈{0,1}を第2記憶部に格納するステップと、
Nビット(N≧1)のクリアメッセージmclr∈{0,1}を第3記憶部に格納するステップと、
任意値生成部が、整数の任意値kを生成するステップと、
群演算部が、位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合におけるR=g∈Gを算出し、当該演算結果Rを出力するステップと、
第1ハッシュ演算部が、出力ビット長がL+Mビット(Lは署名検証装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+Mを、上記演算結果Rに依存して定まる値βに作用させ、その演算結果であるL+Mビットのハッシュ値Π=H(β)∈{0,1}L+Mを出力するステップと、
第2ハッシュ演算部が、出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、上記クリアメッセージmclrに依存して定まる値αに作用させ、その演算結果であるLビットのハッシュ値h=H(α)∈{0,1}を出力するステップと、
ビット結合部が、上記ハッシュ値h∈{0,1}を第1ビット位置に配置し、上記リカバリメッセージmrec∈{0,1}を第2ビット位置に配置したL+Mビットのビット結合値d=h|mrec∈{0,1}L+Mを算出し、当該ビット結合値dを出力するステップと、
排他的論理和演算部が、上記ハッシュ値Πと上記ビット結合値dとの排他的論理和r=Π(+)d∈{0,1}L+Mを算出し、当該排他的論理和値rを出力するステップと、
第3ハッシュ演算部が、出力値が整数のハッシュ関数H:{0,1}→Zを、上記排他的論理和値rと上記クリアメッセージmclrとに依存して定まる値γに作用させ、その演算結果であるハッシュ値t=H(γ)∈Zを出力するステップと、
整数演算部が、s=k−t・x∈Zを算出し、当該演算結果sを出力するステップと、
署名出力部が、署名σ=(r,s)と上記クリアメッセージmclrとを出力するステップと、
を有することを特徴とする署名生成方法。
A signature generation method for generating a signature,
Storing an integer secret key x in the first storage unit;
Storing an M-bit (M ≧ 1) recovery message m rec ε {0,1} M in the second storage unit;
Storing N-bit (N ≧ 1) clear message m clr ε {0, 1} N in the third 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;
The first hash calculation unit calculates the hash function H 0 : {0,1} * → {0,1} L + M having an output bit length of L + M bits (L is a positive integer shared with the signature verification apparatus) Acting on a value β determined depending on the result R, and outputting an L + M-bit hash value Π = H 0 (β) ε {0,1} L + M , which is the calculation result;
The second hash calculator applies a hash function H 1 : {0,1} * → {0,1} L having an output bit length of L bits to a value α determined depending on the clear message m clr , Outputting an L-bit hash value h = H 1 (α) ε {0, 1} L as a result of the operation;
A bit combining unit arranges the hash value hε {0,1} L in the first bit position and the bit combination of L + M bits in which the recovery message m rec ε {0,1} M is arranged in the second bit position. Calculating a value d = h | m rec ∈ {0, 1} L + M and outputting the bit combination value d;
The 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 r is calculated. An output step;
The third hash calculator operates the hash function H 3 : {0, 1} * → Z whose output value is an integer on the value γ determined depending on the exclusive OR value r and the clear message m clr. 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 signature output unit outputting the signature σ = (r, s) and the clear message m clr ;
A signature generation method characterized by comprising:
署名検証する署名検証方法であって、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを第1記憶部に格納するステップと、
署名σ’=(r’,s’)と上記クリアメッセージmclr’とが署名入力部に入力されるステップと、
上記署名σ’=(r’,s’)と上記クリアメッセージmclr’とを第2記憶部に格納するステップと、
ビット長抽出部が、上記署名σ’のr’のビット長から値L(Lは署名生成装置と共有される正の整数)を減じた値M’を、上記署名σ’に対応するリカバリメッセージmrec’のビット長M’として抽出するステップと、
上記ビット長M’を第3記憶部に格納するステップと、
第1ハッシュ演算部が、整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、上記署名σ’が有するr’と上記クリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力するステップと、
群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力するステップと、
第2ハッシュ演算部が、出力ビット長がL+M’ビットのハッシュ関数H:{0,1}→{0,1}L+M’を、上記演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力するステップと、
排他的論理和演算部が、上記ハッシュ値Π’と、上記署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力するステップと、
比較部が、署名生成装置との共有値h∈{0,1}と、上記排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}とを比較し、h’=hであることを条件に、検証が成功である旨の情報を出力するステップと、を有し、
上記値β’及び上記値γ’の少なくとも一方の値は、
さらに、上記リカバリメッセージmrec’のビット長M’に依存して決まる値である、
ことを特徴とする署名検証方法。
A signature verification method for verifying a signature,
When the cyclic group of order q is G and the generation source of the cyclic group G is g, the public key y = g x ∈G corresponding to the secret key x∈Z of the signature generation apparatus is stored in the first storage unit. Storing, and
A step of inputting the signature σ ′ = (r ′, s ′) and the clear message m clr ′ into the signature input unit;
Storing the signature σ ′ = (r ′, s ′) and the clear message m clr ′ in a second storage unit;
The recovery message corresponding to the signature σ ′ is obtained by subtracting the value M ′ obtained by subtracting the value L (L is a positive integer shared with the signature generation device) from the bit length of r ′ of the signature σ ′. extracting m rec 'as a bit length M';
Storing the bit length M ′ in a third storage unit;
The first hash calculator determines a hash function H 3 : {0, 1} * → Z that outputs an integer hash value depending on r ′ included in the signature σ ′ and the clear message m clr ′. Acting on the value γ ′ and 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 ′;
The second hash calculation unit changes the hash function H 0 having an output bit length of L + M ′ bits: {0, 1} * → {0, 1} L + M ′ to a value β ′ determined depending on the calculation result R ′. Outputting a hash value Π ′ = H 0 (β ′) ∈ {0, 1} L + M ′ of the L + M ′ bits that is the operation result;
The exclusive OR operation unit calculates an exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ included in the signature σ ′. Outputting the exclusive OR value d ′;
The comparison unit obtains the shared value hε {0, 1} L with the signature generation device and the L-bit value h′ε {0, 1} L at the first bit position of the exclusive OR value d ′. A step of outputting information indicating that the verification is successful on the condition that h ′ = h.
At least one of the value β ′ and the value γ ′ is
Furthermore, the value is determined depending on the bit length M ′ of the recovery message m rec ′.
And a signature verification method.
署名検証する署名検証方法であって、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを第1記憶部に格納するステップと、
署名σ’=(r’,s’)と上記クリアメッセージmclr’とが署名入力部に入力されるステップと、
上記署名σ’=(r’,s’)と上記クリアメッセージmclr’とを第2記憶部に格納するステップと、
上記署名σ’に対応するリカバリメッセージmrec’のビット長M’を第3記憶部に格納するステップと、
上記クリアメッセージmclr’のビット長N’を第4記憶部に格納するステップと、
第1ハッシュ演算部が、整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、上記署名σ’が有するr’と上記クリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力するステップと、
群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力するステップと、
第2ハッシュ演算部が、出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+M’を、上記演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力するステップと、
排他的論理和演算部が、上記ハッシュ値Π’と、上記署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力するステップと、
比較部が、署名生成装置との共有値h∈{0,1}と、上記排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}とを比較し、h’=hであることを条件に、検証が成功である旨の情報を出力するステップと、を有し、
上記値β’及び上記値γ’の少なくとも一方の値は、
さらに、上記クリアメッセージmclr’のビット長N’に依存して決まる値である、
ことを特徴とする署名検証方法。
A signature verification method for verifying a signature,
When the cyclic group of order q is G and the generation source of the cyclic group G is g, the public key y = g x ∈G corresponding to the secret key x∈Z of the signature generation apparatus is stored in the first storage unit. Storing, and
A step of inputting the signature σ ′ = (r ′, s ′) and the clear message m clr ′ into the signature input unit;
Storing the signature σ ′ = (r ′, s ′) and the clear message m clr ′ in a second storage unit;
Storing the bit length M ′ of the recovery message m rec ′ corresponding to the signature σ ′ in the third storage unit;
Storing the bit length N ′ of the clear message m clr ′ in a fourth storage unit;
The first hash calculator determines a hash function H 3 : {0, 1} * → Z that outputs an integer hash value depending on r ′ included in the signature σ ′ and the clear message m clr ′. Acting on the value γ ′ and 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 ′;
The second hash calculator calculates a hash function H 0 : {0, 1} * → {0, 1} L + M ′ having an output bit length of L + M ′ bits (L is a positive integer shared with the signature generation device), A step of acting on a value β ′ determined depending on the operation result R ′, and outputting an L + M′-bit hash value β ′ = H 0 (β ′) ∈ {0, 1} L + M ′ as the operation result; ,
The exclusive OR operation unit calculates an exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ included in the signature σ ′. Outputting the exclusive OR value d ′;
The comparison unit obtains the shared value hε {0, 1} L with the signature generation device and the L-bit value h′ε {0, 1} L at the first bit position of the exclusive OR value d ′. A step of outputting information indicating that the verification is successful on the condition that h ′ = h.
At least one of the value β ′ and the value γ ′ is
Furthermore, the value is determined depending on the bit length N ′ of the clear message m clr ′.
And a signature verification method.
署名検証する署名検証方法であって、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを第1記憶部に格納するステップと、
署名σ’=(r’,s’)と上記クリアメッセージmclr’とが署名入力部に入力されるステップと、
上記署名σ’=(r’,s’)と上記クリアメッセージmclr’とを第2記憶部に格納するステップと、
上記署名σ’に対応するリカバリメッセージmrec’のビット長M’を第3記憶部に格納するステップと、
第1ハッシュ演算部が、整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、上記署名σ’が有するr’と上記クリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力するステップと、
群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力するステップと、
第2ハッシュ演算部が、出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+M’を、上記演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力するステップと、
排他的論理和演算部が、上記ハッシュ値Π’と、上記署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力するステップと、
第3ハッシュ演算部が、出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、上記排他的論理和値d’の第2ビット位置のM’ビットの値mrec’∈{0,1}M’に依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H(α’)∈{0,1}を出力するステップと、
比較部が、上記排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}と、上記ハッシュ値H(α’)とを比較し、h’=H(α’)であることを条件に、検証が成功である旨の情報を出力するステップと、
を有することを特徴とする署名検証方法。
A signature verification method for verifying a signature,
When the cyclic group of order q is G and the generation source of the cyclic group G is g, the public key y = g x ∈G corresponding to the secret key x∈Z of the signature generation apparatus is stored in the first storage unit. Storing, and
A step of inputting the signature σ ′ = (r ′, s ′) and the clear message m clr ′ into the signature input unit;
Storing the signature σ ′ = (r ′, s ′) and the clear message m clr ′ in a 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 determines a hash function H 3 : {0, 1} * → Z that outputs an integer hash value depending on r ′ included in the signature σ ′ and the clear message m clr ′. Acting on the value γ ′ and 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 ′;
The second hash calculator calculates a hash function H 0 : {0, 1} * → {0, 1} L + M ′ having an output bit length of L + M ′ bits (L is a positive integer shared with the signature generation device), A step of acting on a value β ′ determined depending on the operation result R ′, and outputting an L + M′-bit hash value β ′ = H 0 (β ′) ∈ {0, 1} L + M ′ as the operation result; ,
The exclusive OR operation unit calculates an exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ included in the signature σ ′. Outputting the exclusive OR value d ′;
The third hash calculator calculates a hash function H 1 with an output bit length of L bits: {0, 1} * → {0, 1} L , M ′ at the second bit position of the exclusive OR value d ′. The bit value m rec '∈ {0,1} is applied to a value α ′ determined depending on M ′ , and an L-bit hash value H 1 (α ′) ∈ {0,1} L as a result of the operation is set to Output step;
The comparison unit compares the L-bit value h′∈ {0, 1} L at the first bit position of the exclusive OR value d ′ with the hash value H 1 (α ′), and h ′ = A step of outputting information indicating that the verification is successful on the condition that H 1 (α ′);
A signature verification method comprising:
署名検証する署名検証方法であって、
位数qの巡回群をGとし、当該巡回群Gの生成元をgとした場合における、署名生成装置の秘密鍵x∈Zに対応する公開鍵y=g∈Gを第1記憶部に格納するステップと、
署名σ’=(r’,s’)と上記クリアメッセージmclr’とが署名入力部に入力されるステップと、
上記署名σ’=(r’,s’)と上記クリアメッセージmclr’とを第2記憶部に格納するステップと、
上記署名σ’に対応するリカバリメッセージmrec’のビット長M’を第3記憶部に格納するステップと、
第1ハッシュ演算部が、整数のハッシュ値を出力するハッシュ関数H:{0,1}→Zを、上記署名σ’が有するr’と上記クリアメッセージmclr’とに依存して定まる値γ’に作用させ、その演算結果であるハッシュ値t’=H(γ’)∈Zを出力するステップと、
群演算部が、R’=gs’・yt’∈Gの演算を行い、その演算結果R’を出力するステップと、
第2ハッシュ演算部が、出力ビット長がL+M’ビット(Lは署名生成装置と共有される正の整数)のハッシュ関数H:{0,1}→{0,1}L+M’を、上記演算結果R’に依存して定まる値β’に作用させ、その演算結果であるL+M’ビットのハッシュ値Π’=H(β’)∈{0,1}L+M’を出力するステップと、
排他的論理和演算部が、上記ハッシュ値Π’と、上記署名σ’が有するr’との排他的論理和d’=Π’(+)r’∈{0,1}L+M’を算出し、当該排他的論理和値d’を出力するステップと、
第3ハッシュ演算部が、出力ビット長がLビットのハッシュ関数H:{0,1}→{0,1}を、上記クリアメッセージmclr’に依存して定まる値α’に作用させ、その演算結果であるLビットのハッシュ値H(α’)∈{0,1}を出力するステップと、
比較部が、上記排他的論理和値d’の第1ビット位置のLビットの値h’∈{0,1}と、上記ハッシュ値H(α’)とを比較し、h’=H(α’)であることを条件に、検証が成功である旨の情報を出力するステップと、
を有することを特徴とする署名検証方法。
A signature verification method for verifying a signature,
When the cyclic group of order q is G and the generation source of the cyclic group G is g, the public key y = g x ∈G corresponding to the secret key x∈Z of the signature generation apparatus is stored in the first storage unit. Storing, and
A step of inputting the signature σ ′ = (r ′, s ′) and the clear message m clr ′ into the signature input unit;
Storing the signature σ ′ = (r ′, s ′) and the clear message m clr ′ in a 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 determines a hash function H 3 : {0, 1} * → Z that outputs an integer hash value depending on r ′ included in the signature σ ′ and the clear message m clr ′. Acting on the value γ ′ and 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 ′;
The second hash calculator calculates a hash function H 0 : {0, 1} * → {0, 1} L + M ′ having an output bit length of L + M ′ bits (L is a positive integer shared with the signature generation device), A step of acting on a value β ′ determined depending on the operation result R ′, and outputting an L + M′-bit hash value β ′ = H 0 (β ′) ∈ {0, 1} L + M ′ as the operation result; ,
The exclusive OR operation unit calculates an exclusive OR d ′ = Π ′ (+) r′∈ {0, 1} L + M ′ between the hash value Π ′ and r ′ included in the signature σ ′. Outputting the exclusive OR value d ′;
The third hash operation unit operates the hash function H 1 with an output bit length of L bits: {0, 1} * → {0, 1} L on the value α ′ determined depending on the clear message m clr ′. And outputting an L-bit hash value H 1 (α ′) ∈ {0, 1} L as the operation result;
The comparison unit compares the L-bit value h′∈ {0, 1} L at the first bit position of the exclusive OR value d ′ with the hash value H 1 (α ′), and h ′ = A step of outputting information indicating that the verification is successful on the condition that H 1 (α ′);
A signature verification method comprising:
請求項1から6の何れかに記載の署名生成装置としてコンピュータを機能させるためのプログラム。   The program for functioning a computer as a signature production | generation apparatus in any one of Claim 1 to 6. 請求項7から12の何れかに記載の署名検証装置としてコンピュータを機能させるためのプログラム。   The program for functioning a computer as a signature verification apparatus in any one of Claims 7-12.
JP2006295599A 2006-10-31 2006-10-31 Signature generation apparatus, signature verification apparatus, method and program thereof Expired - Fee Related JP4814755B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006295599A JP4814755B2 (en) 2006-10-31 2006-10-31 Signature generation apparatus, signature verification apparatus, method and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006295599A JP4814755B2 (en) 2006-10-31 2006-10-31 Signature generation apparatus, signature verification apparatus, method and program thereof

Publications (3)

Publication Number Publication Date
JP2008113315A true JP2008113315A (en) 2008-05-15
JP2008113315A5 JP2008113315A5 (en) 2009-04-02
JP4814755B2 JP4814755B2 (en) 2011-11-16

Family

ID=39445574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006295599A Expired - Fee Related JP4814755B2 (en) 2006-10-31 2006-10-31 Signature generation apparatus, signature verification apparatus, method and program thereof

Country Status (1)

Country Link
JP (1) JP4814755B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110768799A (en) * 2019-12-30 2020-02-07 中国银联股份有限公司 Digital signature method, device, equipment, medium and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009057338A1 (en) * 2007-10-29 2009-05-07 Nippon Telegraph And Telephone Corporation Signature generating device, signature verifying device, their methods, and their programs
JP2009246657A (en) * 2008-03-31 2009-10-22 Nippon Telegr & Teleph Corp <Ntt> Message recovery system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009057338A1 (en) * 2007-10-29 2009-05-07 Nippon Telegraph And Telephone Corporation Signature generating device, signature verifying device, their methods, and their programs
JP2009246657A (en) * 2008-03-31 2009-10-22 Nippon Telegr & Teleph Corp <Ntt> Message recovery system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110768799A (en) * 2019-12-30 2020-02-07 中国银联股份有限公司 Digital signature method, device, equipment, medium and system

Also Published As

Publication number Publication date
JP4814755B2 (en) 2011-11-16

Similar Documents

Publication Publication Date Title
EP2207156B1 (en) Signature generating device, signature verifying device, their methods, and their programs
JP5306465B2 (en) Pre-calculation of message authentication code applied to secure memory
CN106878013B (en) File encryption and decryption method and device
CN111373401B (en) Homomorphic inference device, homomorphic inference method, computer-readable storage medium, and hidden information processing system
JP3871996B2 (en) Data division management method and program
JP5299286B2 (en) Distributed information generation apparatus, restoration apparatus, verification apparatus, and secret information distribution system
CN111325535A (en) Block chain private key management method, system and storage medium based on elliptic curve migration
JP4928412B2 (en) Signature generation apparatus, signature verification apparatus, method and program thereof
EP2286610B1 (en) Techniques for peforming symmetric cryptography
JP4814755B2 (en) Signature generation apparatus, signature verification apparatus, method and program thereof
JPWO2018216512A1 (en) Secret tampering detection system, secret tampering detection device, secret tampering detection method, and program
JP6933290B2 (en) Secret calculation device, secret calculation authentication system, secret calculation method, and program
JP6881111B2 (en) Cryptographic data generator, decryption data generator, authenticated cryptosystem with additional data, its method, and program
WO2015032921A1 (en) Method of managing consistency of caches
JP6830867B2 (en) Authenticated encryption system with additional data, decryption device, authenticated encryption method with additional data, and program
JPWO2006114841A1 (en) Information processing method and information processing system
KR101987752B1 (en) Key distribution processing apparatus for processing the distribution of a session key in an encrypted manner for the electronic control units mounted in a vehicle and operating method thereof
JP5381981B2 (en) Distributed information generator
JP7317261B2 (en) Encryption device, decryption device, encryption method, encryption program, decryption method and decryption program
JP6830868B2 (en) Authenticated encryption system with additional data, decryption device, authenticated encryption method with additional data, and program
WO2024057411A1 (en) Memory update device, information processing system, memory update method, and computer-readable medium
JP3881273B2 (en) ENCRYPTION KEY GENERATION DEVICE, ENCRYPTION KEY GENERATION PROGRAM, AND RECORDING MEDIUM CONTAINING THE PROGRAM
JP2011035809A (en) Information processing apparatus, code generation method, code validation method, and program
JP6723958B2 (en) Encrypted data generation device, decrypted data generation device, authentication encryption system with additional data, method thereof, and program
JP6732698B2 (en) Authentication encryption system with additional data, encryption device, decryption device, authentication encryption method with additional data, and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110727

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: 20110816

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: 20110826

R150 Certificate of patent or registration of utility model

Ref document number: 4814755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140902

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees