JP2001522071A - ElGamal方式用の署名検証 - Google Patents
ElGamal方式用の署名検証Info
- Publication number
- JP2001522071A JP2001522071A JP2000519520A JP2000519520A JP2001522071A JP 2001522071 A JP2001522071 A JP 2001522071A JP 2000519520 A JP2000519520 A JP 2000519520A JP 2000519520 A JP2000519520 A JP 2000519520A JP 2001522071 A JP2001522071 A JP 2001522071A
- Authority
- JP
- Japan
- Prior art keywords
- signature
- mod
- value
- calculating
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012795 verification Methods 0.000 title abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000007620 mathematical function Methods 0.000 claims abstract description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 206010041349 Somnolence Diseases 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3013—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
(57)【要約】
ElGamalのような署名方式に適用される署名検証プロトコルを提供する。当該デジタル署名検証方式は、メッセージの署名装置が、公開鍵を使用せずにそのデジタル署名を検証できるようにする。通常、署名装置のコンピュータシステムは、専用鍵dと、要素gおよび専用鍵dから導出される公開鍵yとを有している。本発明の検証方法は、コンピュータシステムにおいて、第一数理関数に従って要素gと署名パラメータkとを組み合わせて第一署名成分を生成する。そして、この第一署名成分を、専用鍵d,メッセージm,および署名パラメータkと数理的に組み合わせて、第二署名成分を生成することによって、メッセージmを署名するステップを有している。また、本署名検証方法における署名装置は、公開鍵dを使用せずに署名から値kを回復し、署名パラメータkとk’とが同等であることを確認するために、回復した値k’を第一数理関数に適用して値r’を導出することで、署名を確認する。本署名検証方法は、あらゆるElGamal型の署名に対して適用され、どのような群においても機能し、特に、楕円曲線群において機能する。本署名検証方法は、「スマートカード」のような、計算能力の限られた装置を用いる場合や、署名装置によって大量の検証を行う場合において特に有効である。
Description
本発明は、有限体(a finite field)において行なわれるデジタル署名検証演
算を高速化する方法に関し、特に、計算能力の限られた処理装置を使用する場合
の方法に関する。
算を高速化する方法に関し、特に、計算能力の限られた処理装置を使用する場合
の方法に関する。
【0001】 〔発明の背景〕 暗号システムの機能の一つに、デジタル署名の演算がある。デジタル署名は、
特定の関係者(party )がメッセージを発信したこと、および、その内容が転送
中に変更されていないことを確認するために使用される。広く使用されている署
名プロトコルでは、送信者の専用鍵(private key )によってメッセージに署名
を行う、ElGamal公開鍵署名方式(ELGamal public key signature schem
e )が用いられている。受信者は、送信者の公開鍵(public key)を用いること
によって、そのメッセージを回復できる。また、ElGamal方式(ELGamal
scheme)では、有限体において離散対数(discrete logarithms )を計算するこ
とにより、セキュリティを確保している。また、ElGamal型の署名は、ど
のような群でも、特にどのような楕円曲線群でも機能する。例えば、楕円曲線グ
ループE(Fq )が与えられると、P∈E(Fq )およびQ=aPに基づいて、
離散対数より整数aを導き出せる。従って、これらの暗号システムは、計算集約
的(computationally intensive)でありうる。
特定の関係者(party )がメッセージを発信したこと、および、その内容が転送
中に変更されていないことを確認するために使用される。広く使用されている署
名プロトコルでは、送信者の専用鍵(private key )によってメッセージに署名
を行う、ElGamal公開鍵署名方式(ELGamal public key signature schem
e )が用いられている。受信者は、送信者の公開鍵(public key)を用いること
によって、そのメッセージを回復できる。また、ElGamal方式(ELGamal
scheme)では、有限体において離散対数(discrete logarithms )を計算するこ
とにより、セキュリティを確保している。また、ElGamal型の署名は、ど
のような群でも、特にどのような楕円曲線群でも機能する。例えば、楕円曲線グ
ループE(Fq )が与えられると、P∈E(Fq )およびQ=aPに基づいて、
離散対数より整数aを導き出せる。従って、これらの暗号システムは、計算集約
的(computationally intensive)でありうる。
【0002】 このような方式は、様々なプロトコルによって実行することが可能である。例
えば、デジタル署名アルゴリズム(DAS)は、ElGamal方式の変形であ
る。これらの方式では、1組の通信機(correspondent entities)A・Bのそれ
ぞれが、公開鍵と、それに対応する専用鍵とを作成する。通信機(entity)Aは
、任意の長さのメッセージmに署名する。通信機Bは、この署名を、通信機Aの
公開鍵を使用して検証する。しかしながら、どの場合においても、送信者である
通信機Aと受信者である通信機Bとの各々が、署名の生成・検証のための計算集
約的な演算を行う必要がある。このとき、通信機の両方が十分な計算能力を備え
ていれば、これは特に問題とはならない。しかし、「スマートカード(Smart ca
rd)」アプリケーションのように、通信機の一方または両方の計算能力に限界の
ある場合、計算処理によって、署名・検証のプロセスに遅延が生じてしまう。
えば、デジタル署名アルゴリズム(DAS)は、ElGamal方式の変形であ
る。これらの方式では、1組の通信機(correspondent entities)A・Bのそれ
ぞれが、公開鍵と、それに対応する専用鍵とを作成する。通信機(entity)Aは
、任意の長さのメッセージmに署名する。通信機Bは、この署名を、通信機Aの
公開鍵を使用して検証する。しかしながら、どの場合においても、送信者である
通信機Aと受信者である通信機Bとの各々が、署名の生成・検証のための計算集
約的な演算を行う必要がある。このとき、通信機の両方が十分な計算能力を備え
ていれば、これは特に問題とはならない。しかし、「スマートカード(Smart ca
rd)」アプリケーションのように、通信機の一方または両方の計算能力に限界の
ある場合、計算処理によって、署名・検証のプロセスに遅延が生じてしまう。
【0003】 また、署名装置が、自分自身の署名を検証しなければならない場合もある。例
えば、公開鍵暗号システムでは、鍵の分配は、対称型鍵システムよりも簡単であ
る。ただし、公開鍵の保全は非常に重要となる。従って、システムの通信機が、
各自の公開鍵を検証するために、信頼できる第三者を利用するようにしてもよい
。この第三者としては、全通信機に既知と考えられる専用署名アルゴリズムST ・検証アルゴリズムVT を持つ、認証機関(certification authority:CA)を
挙げることができる。その最も簡単な形態においては、CAは、通信機の身元(
identity)を公開鍵に結び付けるための認証を提供する。これは、証明書と通信
機の正当な公開鍵(authenticated public key)とからなるメッセージに署名する
ことからなっていてもよい。しかしながら、時々、CAには、自身の証明書を認
証または検証することが必要なときもある。このような場合、改良された署名検
証アルゴリズムを実行することで、検証プロセスを高速化できれば便利であると
考えられる。
えば、公開鍵暗号システムでは、鍵の分配は、対称型鍵システムよりも簡単であ
る。ただし、公開鍵の保全は非常に重要となる。従って、システムの通信機が、
各自の公開鍵を検証するために、信頼できる第三者を利用するようにしてもよい
。この第三者としては、全通信機に既知と考えられる専用署名アルゴリズムST ・検証アルゴリズムVT を持つ、認証機関(certification authority:CA)を
挙げることができる。その最も簡単な形態においては、CAは、通信機の身元(
identity)を公開鍵に結び付けるための認証を提供する。これは、証明書と通信
機の正当な公開鍵(authenticated public key)とからなるメッセージに署名する
ことからなっていてもよい。しかしながら、時々、CAには、自身の証明書を認
証または検証することが必要なときもある。このような場合、改良された署名検
証アルゴリズムを実行することで、検証プロセスを高速化できれば便利であると
考えられる。
【0004】 〔発明の要約〕 本発明の目的は、高速署名検証方法を提供することにある。
【0005】 本発明は、処理能力の限られた処理装置の有する署名装置によって検証を行う
場合(スマートカード等に適用する場合等)や、頻繁に検証を行う場合(認証機
関等に適用する場合)に、比較的に効率よく実行できるデジタル署名検証方法を
提供することを目的としている。
場合(スマートカード等に適用する場合等)や、頻繁に検証を行う場合(認証機
関等に適用する場合)に、比較的に効率よく実行できるデジタル署名検証方法を
提供することを目的としている。
【0006】 本発明によれば、コンピュータシステムの署名装置によって生成されるデジタ
ル署名を検証する方法であって、上記署名装置は、専用鍵dと、要素gおよび上
記専用鍵dから導出(derived)される公開鍵yとを有しており、上記方法は、 (a)コンピュータシステムにおいて、メッセージmに署名するステップを有
し、 このメッセージmは、 (b)第一数理関数に基づいて、少なくとも要素gと署名パラメータkとを組
み合わせることによって、第一署名成分を生成するステップと、 (c)上記第一署名成分を、上記専用鍵d,上記メッセージmおよび上記署名
パラメータkと数理的に組み合わせて第二署名成分を生成するステップとによっ
て署名され、 上記署名装置は、 (d)上記公開鍵yを使用することなく、上記署名から値k’を回復するステ
ップと、 (e)上記回復された値k’を上記第一数理関数に適用して値r’を導出(de
rive) し、上記署名パラメータkと上記署名パラメータk’とが同等であること
を確認するステップと、 によって上記署名を確認する、デジタル署名検証方法が提供される。
ル署名を検証する方法であって、上記署名装置は、専用鍵dと、要素gおよび上
記専用鍵dから導出(derived)される公開鍵yとを有しており、上記方法は、 (a)コンピュータシステムにおいて、メッセージmに署名するステップを有
し、 このメッセージmは、 (b)第一数理関数に基づいて、少なくとも要素gと署名パラメータkとを組
み合わせることによって、第一署名成分を生成するステップと、 (c)上記第一署名成分を、上記専用鍵d,上記メッセージmおよび上記署名
パラメータkと数理的に組み合わせて第二署名成分を生成するステップとによっ
て署名され、 上記署名装置は、 (d)上記公開鍵yを使用することなく、上記署名から値k’を回復するステ
ップと、 (e)上記回復された値k’を上記第一数理関数に適用して値r’を導出(de
rive) し、上記署名パラメータkと上記署名パラメータk’とが同等であること
を確認するステップと、 によって上記署名を確認する、デジタル署名検証方法が提供される。
【0007】 〔好適な実施形態に関する詳細な説明〕 ElGamal型の署名は、どのような群でも機能し、特に楕円曲線群で機能
するが、以下の説明においては、便宜上、乗算表記(multiplicative notation)
を使用する。
するが、以下の説明においては、便宜上、乗算表記(multiplicative notation)
を使用する。
【0008】 図1に示すように、データ通信システム10は、通信チャネル16を介して接
続される一組の通信機、すなわち、送信機A(12)および受信機B(14)を
含んでいる。これら通信機A・B(12・14)は、それぞれ、暗号化ユニット
18・20を有している。これら暗号化ユニット18・20は、以下に述べるよ
うに、デジタル情報を処理し、チャネル16を通じて送信できるように整えるも
のである。
続される一組の通信機、すなわち、送信機A(12)および受信機B(14)を
含んでいる。これら通信機A・B(12・14)は、それぞれ、暗号化ユニット
18・20を有している。これら暗号化ユニット18・20は、以下に述べるよ
うに、デジタル情報を処理し、チャネル16を通じて送信できるように整えるも
のである。
【0009】 一般的な実施形態によると、送信機Aは、送信機の公開鍵y,メッセージm,
送信機の短期公開鍵k,送信機Aの署名S等を含むデータ列をアセンブルする。
アセンブルされた後、データ列は、宛先の受信機Bに対して、チャネル16を通
じて送信される。受信機Bは、Aの公開鍵を使用して署名を検証する。この公開
鍵の情報は、認証機関(CA)24から得られるか、またはメッセージとともに
送付されることもある。このCAは、通常、通信機の公開鍵および証明書の公開
ファイルを持っている。
送信機の短期公開鍵k,送信機Aの署名S等を含むデータ列をアセンブルする。
アセンブルされた後、データ列は、宛先の受信機Bに対して、チャネル16を通
じて送信される。受信機Bは、Aの公開鍵を使用して署名を検証する。この公開
鍵の情報は、認証機関(CA)24から得られるか、またはメッセージとともに
送付されることもある。このCAは、通常、通信機の公開鍵および証明書の公開
ファイルを持っている。
【0010】 ElGamal署名方式における鍵の生成のために、各通信機A・Bは、公開
鍵と、それに対応する専用鍵とを作成する。この方式を設定するために、通信機
A・Bは、qがp−1を割り切れるような関係にある素数p・qを選択する。g
については、Fpにおける次数qの要素であって、使用される群が{g0 ,g 1 ,g2 ,... ,g q-1}であるようなgが選択される。
鍵と、それに対応する専用鍵とを作成する。この方式を設定するために、通信機
A・Bは、qがp−1を割り切れるような関係にある素数p・qを選択する。g
については、Fpにおける次数qの要素であって、使用される群が{g0 ,g 1 ,g2 ,... ,g q-1}であるようなgが選択される。
【0011】 ElGamal方式の特殊な場合であるデジタル署名アルゴリズム(DSA)
では、ランダムな整数dを[1,q−1]の間隔内で選択し、「y=gd mod
p」を計算することによって、鍵の生成を行う。DASでは、公開鍵情報は(
p,q,g,y)であり、専用鍵はdである。一方、ElGamal方式では、
公開鍵情報は(p,g,y)であり、専用鍵はdである。
では、ランダムな整数dを[1,q−1]の間隔内で選択し、「y=gd mod
p」を計算することによって、鍵の生成を行う。DASでは、公開鍵情報は(
p,q,g,y)であり、専用鍵はdである。一方、ElGamal方式では、
公開鍵情報は(p,g,y)であり、専用鍵はdである。
【0012】 まず、次のようなDASの署名方式を検討する。この署名方式において、 dは、署名装置の専用鍵としてのランダムな整数で、例えば160ビットであ
り、 pは、例えば1024ビットの素数であり、 qは、p−1を割り切るような、160ビットの素数であり、 gは、「y=gd mod p」となるような生成元(generator)であり、 h(m)は、メッセージmにおける例えばSHA−1ハッシュであり、 kは、各署名用にランダムに選択された160ビットの値であり、 mに対する署名が(r,s)の一対であるとき、署名成分r・sは、 r=(gk mod p)mod q s=k-1(h(m)+dr)mod q と表される。
り、 pは、例えば1024ビットの素数であり、 qは、p−1を割り切るような、160ビットの素数であり、 gは、「y=gd mod p」となるような生成元(generator)であり、 h(m)は、メッセージmにおける例えばSHA−1ハッシュであり、 kは、各署名用にランダムに選択された160ビットの値であり、 mに対する署名が(r,s)の一対であるとき、署名成分r・sは、 r=(gk mod p)mod q s=k-1(h(m)+dr)mod q と表される。
【0013】 通常、メッセージmにおけるAの署名(r,s)を検証するために、受信機B
は、Aの正当な公開鍵(p,q,g,y)を入手し、0<r<qおよび0<s<
qを確認しなければならない。次に、「w=s-1mod q」、および、h(m
)の値が算出される。さらにその後、「u1 =wh(m)mod q」、「u2 =rw mod q」、および、「v=(gu1yu2mod p)mod q」が
計算される。そして、v=rとなった場合に限り、署名が受諾される。従って、
署名の所有者が自分自身の署名を後に検証したくなった場合、特に、署名装置が
それ自身の署名を検証することになるため、公開鍵情報の読み込み、および、上
記のようなステップの実行に時間のかかることがわかる。
は、Aの正当な公開鍵(p,q,g,y)を入手し、0<r<qおよび0<s<
qを確認しなければならない。次に、「w=s-1mod q」、および、h(m
)の値が算出される。さらにその後、「u1 =wh(m)mod q」、「u2 =rw mod q」、および、「v=(gu1yu2mod p)mod q」が
計算される。そして、v=rとなった場合に限り、署名が受諾される。従って、
署名の所有者が自分自身の署名を後に検証したくなった場合、特に、署名装置が
それ自身の署名を検証することになるため、公開鍵情報の読み込み、および、上
記のようなステップの実行に時間のかかることがわかる。
【0014】 上記のように、専用鍵dを使用して高速署名検証を実行するためには、検証装
置(この場合、元の署名装置)が、p,q,g,y,h(m),rおよびsを知
っているものと考えてよい。従って、署名を検証するために、検証装置は、署名
ごとの(秘密の)値kのみを回復し、得られたkの値を検証すればよい。このた
め、検証装置は、「z=(h(m)+dr)mod q」を計算する。値z-1は
、「z mod q」の逆数をとることで求められる。次に、「k’-1=s(z -1 )mod q」を計算し、さらに、「k’-1mod q」の逆数をとってk’
を算出する。そして、検証装置は、「r=gk'mod p mod q」である
ことを確認することで、k=k’を確認できたことになる。このように、この検
証処理では、yでなくdを使用する。従って、上記した計算の多くを、事前に計
算されたテーブルを用いることにより、高速化できることがわかる。
置(この場合、元の署名装置)が、p,q,g,y,h(m),rおよびsを知
っているものと考えてよい。従って、署名を検証するために、検証装置は、署名
ごとの(秘密の)値kのみを回復し、得られたkの値を検証すればよい。このた
め、検証装置は、「z=(h(m)+dr)mod q」を計算する。値z-1は
、「z mod q」の逆数をとることで求められる。次に、「k’-1=s(z -1 )mod q」を計算し、さらに、「k’-1mod q」の逆数をとってk’
を算出する。そして、検証装置は、「r=gk'mod p mod q」である
ことを確認することで、k=k’を確認できたことになる。このように、この検
証処理では、yでなくdを使用する。従って、上記した計算の多くを、事前に計
算されたテーブルを用いることにより、高速化できることがわかる。
【0015】 次に、上記の方法に代わりうる、図2に示すElGamal署名方法を検討す
る。このElGamal署名方法は、以下に示すような、署名成分(s,e)を
有する。
る。このElGamal署名方法は、以下に示すような、署名成分(s,e)を
有する。
【0016】 r=gk mod p e=h(m‖r);(‖は連結(concantenation)を示す) s=(de+k)mod p ここで、pは大公開素数(large public prime)、gは公開生成元(public g
enerator)、mはメッセージ、hはハッシュ関数、dは専用鍵、「y=gd mo
d p」は公開鍵、kはランダムな秘密の整数である。
enerator)、mはメッセージ、hはハッシュ関数、dは専用鍵、「y=gd mo
d p」は公開鍵、kはランダムな秘密の整数である。
【0017】 専用鍵dを使用した高速署名検証において、上記と同様に、p,g,y,h,
m,r,eおよびdは既知であると考えられる。従って、検証装置は、署名を検
証するために、kの値を回復し、kを検証するだけでよい。従って、検証装置は
、「k’=(s−de)mod p」、「r’=gk'mod p」、および、「
e’=h(m‖r’)」を計算する。そして、e=e’であれば、k=k’であ
ることを確認できる。
m,r,eおよびdは既知であると考えられる。従って、検証装置は、署名を検
証するために、kの値を回復し、kを検証するだけでよい。従って、検証装置は
、「k’=(s−de)mod p」、「r’=gk'mod p」、および、「
e’=h(m‖r’)」を計算する。そして、e=e’であれば、k=k’であ
ることを確認できる。
【0018】 このように、本発明の利点は、例えば署名装置のコンピュータに存在するデー
タに、署名装置が署名することにあるといえる。この署名は、その後、対応する
公開鍵を使用することなく確認できる。そして、署名装置は、上記データの確認
に、その専用鍵を使用できる。また、これは、スマートカードのように、計算能
力の限られた装置に適用すると非常に有効となる。
タに、署名装置が署名することにあるといえる。この署名は、その後、対応する
公開鍵を使用することなく確認できる。そして、署名装置は、上記データの確認
に、その専用鍵を使用できる。また、これは、スマートカードのように、計算能
力の限られた装置に適用すると非常に有効となる。
【0019】 また、認証機関(CA)を含むデータ通信システムにおいて、CAまたは鍵分
配センターは、様々な通信システムに組み込まれる以前に、頻繁にデータに署名
する。そして、組み込まれた後に署名を検証することとなる。従って、他の全パ
ラメータが、署名装置における安全な境界内に記憶されているので、CAは、署
名の検証に公開鍵情報を必要とせず、検証のための専用鍵を使うだけとなる。
配センターは、様々な通信システムに組み込まれる以前に、頻繁にデータに署名
する。そして、組み込まれた後に署名を検証することとなる。従って、他の全パ
ラメータが、署名装置における安全な境界内に記憶されているので、CAは、署
名の検証に公開鍵情報を必要とせず、検証のための専用鍵を使うだけとなる。
【0020】 さらに、ペイ・パー・ユース(pay-per-use;従量料金方式)のソフトウェア・
アプリケーション等における、ソフトウェアの検証にも適用できる。
アプリケーション等における、ソフトウェアの検証にも適用できる。
【0021】 本発明の特定の実施形態、および、特定の使用についてこれまで述べてきた。
しかしながら、当業者は、特許請求の範囲に示した本発明の精神の範囲内で、本
発明の様々な変形を想到するであろう。例えば、上記の好適な実施形態の記載に
おいては、乗算表記(multiplicative notation)を使用している。しかしながら
、主題の発明である上記方法は、加算表記(additive notation) であっても、同
様に記載できる。例えば、よく知られているように、DSAと等化の楕円曲線ア
ルゴリズム、すなわちECDSAは、F* p (素数を法とした整数の乗算群;th
e multiplicative group of the integers modulo a prime )の設定で通常に記
載される離散対数アルゴリズムと相似の、楕円曲線である。F* p 群と楕円曲線
群E(Fq )とにおける要素(elements)および演算(operations)は、互いに
対応する。さらに、本発明の署名技術は、F2"上で画定(define)されるフィー
ルドにおいて用いられる関数にも、同様に適用できる。
しかしながら、当業者は、特許請求の範囲に示した本発明の精神の範囲内で、本
発明の様々な変形を想到するであろう。例えば、上記の好適な実施形態の記載に
おいては、乗算表記(multiplicative notation)を使用している。しかしながら
、主題の発明である上記方法は、加算表記(additive notation) であっても、同
様に記載できる。例えば、よく知られているように、DSAと等化の楕円曲線ア
ルゴリズム、すなわちECDSAは、F* p (素数を法とした整数の乗算群;th
e multiplicative group of the integers modulo a prime )の設定で通常に記
載される離散対数アルゴリズムと相似の、楕円曲線である。F* p 群と楕円曲線
群E(Fq )とにおける要素(elements)および演算(operations)は、互いに
対応する。さらに、本発明の署名技術は、F2"上で画定(define)されるフィー
ルドにおいて用いられる関数にも、同様に適用できる。
【0022】 このように、本発明は、広くは暗号化(encryption)の方法・システムに関し
、特に、有限体要素を処理効率のよい手法で乗算できるような楕円曲線暗号化の
方法・システムに関する。この暗号化システムには、適切にプログラムされた汎
用のコンピュータ等、適切な処理機(processor )を含ませることもできる。
、特に、有限体要素を処理効率のよい手法で乗算できるような楕円曲線暗号化の
方法・システムに関する。この暗号化システムには、適切にプログラムされた汎
用のコンピュータ等、適切な処理機(processor )を含ませることもできる。
【図1】 本発明にかかる通信システムの概略の構成を示す図である。
【図2】 本発明にかかる署名アルゴリズムを示すフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GE,GH,GM,HR ,HU,ID,IL,IS,JP,KE,KG,KP, KR,KZ,LC,LK,LR,LS,LT,LU,L V,MD,MG,MK,MN,MW,MX,NO,NZ ,PL,PT,RO,RU,SD,SE,SG,SI, SK,SL,TJ,TM,TR,TT,UA,UG,U S,UZ,VN,YU,ZW (72)発明者 ジョンソン,ドナルド ビー. アメリカ合衆国,ヴァージニア州 22033, フェアファックス,スリーピー レイク ドライブ 4253 Fターム(参考) 5J104 AA09 AA18 AA25 JA25 JA29 LA06 NA12 【要約の続き】 る。本署名検証方法は、「スマートカード」のような、 計算能力の限られた装置を用いる場合や、署名装置によ って大量の検証を行う場合において特に有効である。
Claims (16)
- 【請求項1】 コンピュータシステムの署名装置によって生成されるデジタル署名を検証する
方法であって、上記署名装置は、専用鍵dと、要素gおよび上記専用鍵dから導
出される公開鍵yとを有しており、上記方法は、 (a)コンピュータシステムにおいて、メッセージmに署名するステップを有
し、 このメッセージmは、 (b)第一数理関数に基づいて、少なくとも要素gと署名パラメータkとを組
み合わせることによって、第一署名成分を生成するステップと、 (c)上記第一署名成分を、上記専用鍵d,上記メッセージmおよび上記署名
パラメータkと数理的に組み合わせて第二署名成分を生成するステップとによっ
て署名され、 上記署名装置は、 (d)上記公開鍵yを使用することなく、上記署名から値k’を回復するステ
ップと、 (e)上記回復された値k’を上記第一数理関数に適用して値r’を導出(de
rive) し、上記署名パラメータkと上記署名パラメータk’とが同等であること
を確認するステップと、 によって上記署名を確認する、デジタル署名検証方法。 - 【請求項2】 gは、フィールドF* p の次数qの要素である請求項1に記載の方法。
- 【請求項3】 gは、フィールドFq 上で画定される楕円曲線をEとした場合、E(Fq )の
素数次数(prime order )nの点である請求項1に記載の方法。 - 【請求項4】 上記要素gは、有限体Fq"上における楕円曲線上の点である請求項1に記載の
方法。 - 【請求項5】 上記署名パラメータkは、[1,q−1]の間隔内においてランダムに選択さ
れた整数であり、 上記第一署名成分は、pおよびqを、p−1がqで割り切れるような関係の素
数とするとき、「r=gk mod p mod q」によって画定される形状(
form)を有する請求項1に記載の方法。 - 【請求項6】 ハッシュ関数hを用いて、値e=h(m)を計算するステップを含み、 上記第二署名成分sが、「s=k-1(e+dr)mod q」である請求項5
に記載の方法。 - 【請求項7】 上記値k’を回復するステップは、 (a)「値z=(h(m)+dr)mod q」を算出するステップと、 (b)「z mod q」の逆数を求めることによって、z-1を算出するステ
ップと、 (c)「k’-1=s(z-1)mod q」を計算するステップと、 (d)「k-1mod q」の逆数を求めることによって、k’を算出するステ
ップとを含む請求項6に記載の方法。 - 【請求項8】 上記kを検証するステップは、k=k’であるか否かを検証するために、「r
’=gk'mod p mod q」を計算し、r’をrと比較するステップを含
む請求項7に記載の方法。 - 【請求項9】 上記の計算には、事前の計算により作成されたテーブルを利用する請求項9に
記載の方法。 - 【請求項10】 上記署名パラメータkが、統計的に特殊(unique)であって、[2,n−2]
の間隔内で選択された予測不可能な整数kであり、 上記第一署名成分が、専用鍵のn座標をnとするとき、「r=x, mod
n」で画定される形状(form)を有する請求項3に記載の方法。 - 【請求項11】 ハッシュ関数hを用いて、値e=h(m)を計算するステップを含み、 上記第二署名成分が、「s=k-1(e+dr)mod n」により表される請
求項10に記載の方法。 - 【請求項12】 上記値k’を回復するステップは、 (a)「値z=(h(m)+dr)mod n」を算出するステップと、 (b)「z mod n」の逆数を求めることによって、z-1を算出するステ
ップと、 (c)「k’-1=s(z-1)mod n」を計算するステップと、 (d)「k-1mod n」の逆数を求めることによって、k’を算出するステ
ップとを含む請求項11に記載の方法。 - 【請求項13】 上記kを検証するステップは、k=k’であるか否かを検証するために、「r
’=gk'mod n」を計算し、r’をrと比較するステップを含む請求項12
に記載の方法。 - 【請求項14】 上記署名パラメータkが、[1,p−1]の間隔内でランダムに選択された整
数であり、 「r=gk mod p」であり、hがハッシュ関数であり、‖が連結を示すと
き、上記第一署名成分が、e=h(m‖r)によって画定される形状を有する請
求項2に記載の方法。 - 【請求項15】 上記第二署名成分が、「s=(de+k)mod p」により画定される請求
項14に記載の方法。 - 【請求項16】 上記値k’を回復するステップは、 (a)「値k’=(s−de)mod p」を算出するステップと、 (b)「値r’=gk mod p」を算出するステップと、 (c)「値e’=h(m‖r’)」を算出するステップと、 (d)k=k’であるか否かを検証するために、上記値e’をeと比較するス
テップとを含む請求項15に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US96244197A | 1997-10-31 | 1997-10-31 | |
US08/962,441 | 1997-10-31 | ||
PCT/CA1998/001018 WO1999023781A1 (en) | 1997-10-31 | 1998-11-02 | Signature verification for elgamal schemes |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001522071A true JP2001522071A (ja) | 2001-11-13 |
Family
ID=25505878
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13174398A Expired - Lifetime JP4307589B2 (ja) | 1997-10-31 | 1998-05-14 | 認証プロトコル |
JP2000519520A Pending JP2001522071A (ja) | 1997-10-31 | 1998-11-02 | ElGamal方式用の署名検証 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13174398A Expired - Lifetime JP4307589B2 (ja) | 1997-10-31 | 1998-05-14 | 認証プロトコル |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1025674A1 (ja) |
JP (2) | JP4307589B2 (ja) |
AU (1) | AU1015499A (ja) |
CA (1) | CA2306468A1 (ja) |
WO (1) | WO1999023781A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007510336A (ja) * | 2003-10-28 | 2007-04-19 | サーティコム コーポレーション | 公開鍵を検証可能に生成する方法及び装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5348148B2 (ja) * | 2003-07-25 | 2013-11-20 | 株式会社リコー | 通信装置、通信システム、通信方法及びプログラム |
JP4712326B2 (ja) * | 2003-07-25 | 2011-06-29 | 株式会社リコー | 通信装置、通信システム、通信方法及びプログラム |
JP4611680B2 (ja) * | 2003-07-25 | 2011-01-12 | 株式会社リコー | 通信装置、通信システム、通信方法及びプログラム |
WO2005078986A1 (en) | 2004-02-13 | 2005-08-25 | Certicom Corp. | One way authentication |
CN103108325B (zh) * | 2011-11-10 | 2018-05-18 | 中兴通讯股份有限公司 | 一种信息安全传输方法及系统及接入服务节点 |
CN110430044A (zh) * | 2019-07-10 | 2019-11-08 | 南京工业大学 | 一种基于ElGamal加密的双层加密方法 |
CN111262707B (zh) * | 2020-01-16 | 2023-04-14 | 余志刚 | 数字签名方法及验证方法、设备、存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5231668A (en) * | 1991-07-26 | 1993-07-27 | The United States Of America, As Represented By The Secretary Of Commerce | Digital signature algorithm |
US5442707A (en) * | 1992-09-28 | 1995-08-15 | Matsushita Electric Industrial Co., Ltd. | Method for generating and verifying electronic signatures and privacy communication using elliptic curves |
US5475763A (en) * | 1993-07-01 | 1995-12-12 | Digital Equipment Corp., Patent Law Group | Method of deriving a per-message signature for a DSS or El Gamal encryption system |
ATE187588T1 (de) * | 1993-08-17 | 1999-12-15 | R3 Security Engineering Ag | Verfahren zur digitalen unterschrift und verfahren zur schlüsselübereinkunft |
CA2228185C (en) * | 1997-01-31 | 2007-11-06 | Certicom Corp. | Verification protocol |
-
1998
- 1998-05-14 JP JP13174398A patent/JP4307589B2/ja not_active Expired - Lifetime
- 1998-11-02 EP EP98952457A patent/EP1025674A1/en not_active Withdrawn
- 1998-11-02 AU AU10154/99A patent/AU1015499A/en not_active Abandoned
- 1998-11-02 JP JP2000519520A patent/JP2001522071A/ja active Pending
- 1998-11-02 WO PCT/CA1998/001018 patent/WO1999023781A1/en not_active Application Discontinuation
- 1998-11-02 CA CA002306468A patent/CA2306468A1/en not_active Abandoned
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007510336A (ja) * | 2003-10-28 | 2007-04-19 | サーティコム コーポレーション | 公開鍵を検証可能に生成する方法及び装置 |
JP4741503B2 (ja) * | 2003-10-28 | 2011-08-03 | サーティコム コーポレーション | 公開鍵を検証可能に生成する方法及び装置 |
US8713321B2 (en) | 2003-10-28 | 2014-04-29 | Certicom Corp. | Method and apparatus for verifiable generation of public keys |
US9160530B2 (en) | 2003-10-28 | 2015-10-13 | Certicom Corp. | Method and apparatus for verifiable generation of public keys |
US9240884B2 (en) | 2003-10-28 | 2016-01-19 | Certicom Corp. | Method and apparatus for verifiable generation of public keys |
US9967239B2 (en) | 2003-10-28 | 2018-05-08 | Certicom Corp. | Method and apparatus for verifiable generation of public keys |
Also Published As
Publication number | Publication date |
---|---|
WO1999023781A1 (en) | 1999-05-14 |
CA2306468A1 (en) | 1999-05-14 |
AU1015499A (en) | 1999-05-24 |
EP1025674A1 (en) | 2000-08-09 |
JP4307589B2 (ja) | 2009-08-05 |
JPH11174957A (ja) | 1999-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9967239B2 (en) | Method and apparatus for verifiable generation of public keys | |
JP4649040B2 (ja) | マスクディジタル署名 | |
JP5221687B2 (ja) | 混成署名方式 | |
CA2228185C (en) | Verification protocol | |
CA2235359C (en) | Implicit certificate scheme with ca chaining | |
JP3522447B2 (ja) | 認証交換方法および付加型公衆電子署名方法 | |
EP2533457B1 (en) | Secure implicit certificate chaining | |
CN109818730B (zh) | 盲签名的获取方法、装置和服务器 | |
CA2279462A1 (en) | Data card verification system | |
CA2376381A1 (en) | Server-assisted regeneration of a strong secret from a weak secret | |
US20150288527A1 (en) | Verifiable Implicit Certificates | |
CN107911217B (zh) | 基于ecdsa算法协同生成签名的方法、装置和数据处理系统 | |
CN112118111B (zh) | 一种适用于门限计算的sm2数字签名方法 | |
Tanwar et al. | Efficient and secure multiple digital signature to prevent forgery based on ECC | |
JP2001521196A (ja) | 楕円曲線を使った加速式署名検証 | |
US20150006900A1 (en) | Signature protocol | |
CN110690969A (zh) | 一种多方协同完成双向ssl/tls认证的方法和系统 | |
Lei et al. | Generating digital signatures on mobile devices | |
JP2001522071A (ja) | ElGamal方式用の署名検証 | |
JP3435472B2 (ja) | 秘密保持認証方法及びシステム |