JP4307589B2 - 認証プロトコル - Google Patents

認証プロトコル Download PDF

Info

Publication number
JP4307589B2
JP4307589B2 JP13174398A JP13174398A JP4307589B2 JP 4307589 B2 JP4307589 B2 JP 4307589B2 JP 13174398 A JP13174398 A JP 13174398A JP 13174398 A JP13174398 A JP 13174398A JP 4307589 B2 JP4307589 B2 JP 4307589B2
Authority
JP
Japan
Prior art keywords
signature
key
value
secret
secret information
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.)
Expired - Lifetime
Application number
JP13174398A
Other languages
English (en)
Other versions
JPH11174957A (ja
Inventor
スコット・エイ・ヴァンストーン
ドナルド・ビー・ジョンソン
Original Assignee
サーティコム コーポレーション
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 サーティコム コーポレーション filed Critical サーティコム コーポレーション
Publication of JPH11174957A publication Critical patent/JPH11174957A/ja
Application granted granted Critical
Publication of JP4307589B2 publication Critical patent/JP4307589B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/3013Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/724Finite field arithmetic
    • G06F7/725Finite 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)

Description

【0001】
【発明の属する技術分野】
本発明は、データ伝送に関し、更に詳しくは、データを伝送している当事者のアイデンティティ(ID)を確認(認証)するデータ伝送システムに関する。
【0002】
【従来の技術】
1対の通話者の間で、典型的には、1対のコンピュータ端末の間やパーソナル・カードとコンピュータ端末との間で、電子的にデータを通信することは広く知られている。このような通信は、トランザクションを行うために、バンキング環境で広範囲に用いられている。
【0003】
そのようなトランザクションの完全性(インテグリティ)を維持するには、当事者のIDを確認できるシステムを実現することが必要であり、この目的のために、多数の署名プロトコルが開発されてきた。これらのプロトコルは、ディフィ・ヘルマン(Diffie Hellman)公開鍵暗号化方式を用いたエルガマル(El Gamal)署名プロトコルに基づいている。広く用いられている暗号化方式の1つに、RSAがあるが、安全な伝送を得るには、帯域幅を増加させる比較的大きなモジュラス(modulus)が用いられなければならないが、限定的な計算能力しか利用可能でない場合には、これは、一般に望ましくない。更に堅固な暗号化方式に、楕円曲線暗号システム(ECC)として知られているものがあり、このシステムによれば、RSA暗号システムに匹敵するセキュリティを、より小さなモジュラスで得ることができる。
【0004】
基本的には、それぞれの当事者は、秘密鍵と、その秘密鍵から導かれる公開鍵とを有する。データ転送の際には、通常は、メッセージは、意図している受信者の公開鍵を用いて暗号化され、その受信者は、その人間だけが知っている秘密鍵を用いることにより、このメッセージを復号化できる。署名及び確認の目的のために、メッセージは、送信者の秘密鍵を用いて署名されることにより、記されている送信者の公開鍵を用いた処理によって確認することができる。送信者の秘密鍵は、送信者にだけしか知られていないので、送信者の公開鍵を用いて復号化が成功すれば、送信者のIDが確認されることになる。
【0005】
エルガマル署名プロトコルは、有限体において離散対数を計算することが困難であることから、そのセキュリティを獲得している。エルガマル型の署名は、楕円曲線群を含む任意の群(group)で機能する。例えば、楕円曲線群E(Fq)が与えられると、E(Fq)に属するPと、Q=aPに対しては、離散対数問題は、整数aを見つけることに帰着される。基礎となる曲線が適切に選択されると、この問題は、計算的に実行不可能であり、従って、これらの暗号システムは、安全であると考えられる。
【0006】
【発明が解決しようとする課題】
そのような方式を実現する様々なプロトコルが存在する。例えば、デジタル署名アルゴリズムDSAは、エルガマル方式の変形である。この方式では、1対の通話者A及びBのそれぞれが、公開鍵と対応する秘密鍵とを作成する。通話者Aは、自分の秘密鍵を用いて、任意の長さのメッセージmに署名する。通話者Bは、この署名を、Aの公開鍵を用いて、確認することができる。しかし、それぞれの場合に、送信者である通話者Aと受信者である通話者Bとの両方が、典型的には累乗計算であるが、計算的に集約的な演算を実行して、署名を生成し確認することが要求される。どちらの当事者も適切な計算能力を有している場合であれば、これは特に問題を生じないが、一方又は両方の当事者の計算能力に制限がある場合、例えば、「スマート・カード」アプリケーションの場合などには、計算は、署名及び確認プロセスを遅延させることになる。
【0007】
また、署名者が、自分自身の署名を確認することを要求される場合もある。例えば、公開鍵暗号システムでは、鍵の配送は、対称(symmetric)鍵システムの場合よりも容易である。しかし、公開鍵の完全性が、重要である。従って、そのようなシステムの通話者は、信頼できる第三者を使って、それぞれの通話者の公開鍵を認証する。この第三者は、証明機関(certifying authority = CA)であり、秘密の署名アルゴリズムSTと、すべての通話者が知っているものと想定される確認アルゴリズムVTとを有する。その最も単純な形式では、CAは、ある通話者のIDをその公開鍵に拘束する証明書を提供する。これは、識別子とその通話者の認証された公開鍵とから成るメッセージに署名することから構成される。しかし、時には、CAは、それ自身の証明書を認証又は確認することを望むこともある。
【0008】
上述したように、署名の確認は、計算的な集約性を有し、実際的な時間内に完了させるためには、かなりの計算能力が要求される。通話者の一方の計算能力に制限がある場合、例えば、「スマート・カード」がキャッシュ・カードとして用いられている場合などには、カード上での計算が最小化されるようなプロトコルを採用することが好ましい。同様に、多数の署名を確認しなければならない場合などには、高速の確認方法が、望ましい。
【0009】
従って、本発明の目的は、通話者の一方の制限された計算能力を用いて署名の確認を行うことを容易にする署名及び確認プロトコルを提供することである。
【0010】
【課題を解決するための手段】
一般的な表現を用いると、本発明は、それぞれが共通の秘密の整数を共有している1対の通話者の間で、署名を生成し確認する方法を提供する。この方法は、通話者の一方において、選択された整数からセッション鍵を生成するステップと、前記セッション鍵の成分を選択し、その選択した成分を用いてメッセージを暗号化するステップと、前記選択した成分のハッシュを生成するステップと、前記共通の秘密の整数と、前記ハッシュと、前記選択した整数とを含む署名成分を計算し、その署名成分と、暗号化されたメッセージと、ハッシュとを他方の通話者に送るステップと、を含む。選択された整数は、共通の秘密の整数と暗号化されたセッション鍵とを用いて、署名成分に対して回復される。次に、回復されたセッション鍵のバランスを用いて、認証を、そしてオプションであるが、質問(challenge)を、受信者に提供する。
【0011】
【発明の実施の形態】
本発明の実施例を、次に、添付の図面を参照して、説明する。
【0012】
図1を参照すると、データ伝送システム10は、データ伝送リンク16によって相互接続された複数の通話者12a、12b、…、12t(全体として、参照番号12で示す)を含む。通話者12は、典型的には、限定的な計算能力を有する電子端末であり、この例では、通話者12は、限定的なメモリと計算能力とを有する「スマート・カード」の形式を有すると考える。データ伝送システム10は、また、この実施例では、端末12のそれぞれに伝送リンクによって接続された金融機関における端末である通話者14を含む。この接続は、典型的には、通話者12がシステム10に周期的にアクセスする過渡的なものであるのが典型的であるが、恒久的な接続であってもよい。
【0013】
通話者12、14は、それぞれが、共通の暗号システムを確立する暗号化ユニット18、20を有する。この例では、暗号化ユニット18、20は、基礎となる曲線パラメータとその曲線上のシード(seed)点Pとが確立されている楕円曲線暗号システムを実現している。
【0014】
通話者12は、それぞれが、この通話者12によって長期的な秘密鍵として複数のトランザクションに用いられる秘密の整数dが埋め込まれているメモリ22を含む。通話者14は、公開鍵QBを有し、dQBの多数の予め計算された値が、署名を容易にするために、対話者12のアドレシング可能なメモリ24に記憶されている。
【0015】
数生成器26が、それぞれのカードに含まれており、統計的には一意的であるが予想できない整数を、それぞれのトランザクションにおいて変化する短期的な秘密鍵として用いるために、それぞれのセッションの開始時に生成する。
【0016】
通話者14は、同様に、それぞれの通話者12の長期的な秘密鍵dを記憶しそれを通話者のそれぞれのIDに相関させるデータバンクを有するメモリ28を含む。
【0017】
確認プロトコルを開始するには、通話者12の一人が、メッセージmを定式化し、伝送セッションの間に短期的な秘密鍵として作用するランダムな整数kを生成器26から生成する。シード点Pを用いて、kPに対応するセッション鍵rが計算される。kPは、実際に、座標(x,y)を有する基礎となる曲線上の点である。
【0018】
第1の署名成分eは、x座標の2進表現を用いて、e=Ex(m)となるようにメッセージを暗号化することによって、生成される。
【0019】
第2の署名成分e’は、セッション鍵rのx座標を、e’=h(x)となるようにハッシュすることによって、生成される。米国の国立標準及び技術局(NIST)によって提唱された安全ハッシュ・アルゴリズム(SHA−1)などの、適切な暗号論的ハッシュ関数が用いられる。
【0020】
第3の署名成分sは、s=ae+k(modn)の一般的な形式で生成される。ここで、aは長期的な秘密鍵であり、eはメッセージ・ストリングをハッシュすることによって導かれる値であり、kは短期的な秘密鍵である。この実施例では、署名成分sは、次の特定の形式を有している。
【0021】
【数1】
s=d.h(dQB//e’)+k (modn)
ここで、nは、基礎となる曲線の位数(オーダー)である。署名成分sは、通話者12のメモリ24からdQBの予め計算された値を検索し、それをxのハッシュ値に連接し、結果をハッシュすることによって、得られる。
【0022】
署名成分s、e、e’を含む署名は、次に、通話者14に送られる。受信の際に、通話者14は、通話者12の指示されたIDに基づいて、データバンク28から長期的な秘密鍵dを検索し、自分自身の公開鍵とQBと検索された成分e’とを用いて、ハッシュh=dQB//e’を計算する。これと署名成分sとから、kに対応する値k’が得られる。
【0023】
kの計算された値とシード点Pとを用いて、短期的な鍵の計算された値、すなわち、kPのx座標の値であるx’に関連する関数が得られる。次に、x’の計算された値がハッシュされ、比較がなされて、ハッシュの結果的な値がe’の受信された値と対応することが確認される。この段階で、通話者の確認が得られ、必要となる累乗計算は、kPの最初の計算だけである。
【0024】
セッション鍵rの計算と、そのセッション鍵の一部分を後で用いることによって、安全な認証が、通話者14に返されることが可能になる。座標xの値を計算すると、通話者14は、次に、座標yを計算して、それを、認証として、メッセージm’を暗号化するのに用いる。従って、通話者14は、Ey(m’)を含むメッセージを送ることによって、通話者12に応答する。受信の際に、通話者12は、セッション鍵Rのy座標を知っており、質問を含むメッセージm’を回復することができる。通話者12は、メッセージを復号化し、質問を通話者14に返し、それによって、両方の通話者は確認され同期化される。更なるメッセージを、セッション鍵rを暗号化鍵として用いて、通話者12及び14の間で転送することもできる。
【0025】
従って、上述のプロトコルでは、1対の鍵が用いられ、通話者14は、長期的な秘密鍵を与える一方の鍵の制御を保持し、これらを用いて、通話者12によって計算される短期的なセッション鍵を回復する。回復された短期的な鍵は、次に、例えば、e’をチェックすることによって、伝送された他の署名成分と共に、確認に用いることができる。
【0026】
また、鍵の回復された値の構造は、例えば、パターン、数、又は桁の分布によって、確認を示すことができ、それによって、回復された値を、確認のために、所定のパラメータと比較することができる。回復された成分と送られた情報との間の関係によって、セッション鍵の他の部分を用いて、回答し、同期を確立することができる。
【0027】
この実施例では、署名の確認は、累乗計算を含まない計算的に好都合な態様で実行されるので、比較的迅速に行うことができることに注意すべきである。
【0028】
システム10は、通話者12の間での、又は、通話者12と通話者14との間での公開鍵暗号化システムとして機能するが、迅速な確認が要求される場合には、対称鍵プロトコルの属性を用いることもできることに注意すべきである。
【0029】
次に説明するように、別の署名を用いることができるし、一般に、任意のエルガマル署名方程式を用いることができる。署名確認の別の実施例は、図3に示されているように、DSS署名プロトコルを用いて実現することができる。このプロトコルでは、短期的な公開鍵rが、群の生成元αのランダムな整数kのベキ乗、すなわち、r=αkを計算することによって、導かれる。楕円曲線暗号システムが用いられる場合には、累乗計算は、点Pのk回の加算、すなわち、r=kPによって、実行される。
【0030】
DSSプロトコルでは、署名成分は、次の形式を有する。ただし、dは長期的な秘密鍵であり、mはメッセージである。
【0031】
【数2】
s=k-1(h(m)+dr) (modn)
署名成分s、rの値とメッセージmとは、通話者12によって、通話者14に送られる。
【0032】
通話者14は、長期的な秘密鍵dを共有しているので、IDから、短期的な秘密鍵k=s(h(m)+dr)を検索することができる。
【0033】
r、m、sの値は送られ、dは通話者14によって知られているので、kを計算することができる。
【0034】
上述のように、kは、例えば、1が特定のパターンとなったりある数だけ存在するなどのように、特定の構造を有するように構成することができる。また、確認は、回復したkからrの値を計算し(すなわち、r=αk)、それを送信されたrと比較することによって、チェックすることができる。このステップには、累乗計算が必要であるから、計算的な要求が大きいが、望まれる場合には用いることができる。
【0035】
再び、長期的な秘密鍵dを共有することによって、確認は、短期的な秘密鍵kを抽出して、単純ではあるが効果的な態様で、実行することができる。
【0036】
上述の例のそれぞれでは、署名の確認は、1対の通話者の間で実行される。プロトコルの特性を用いて、銀行などの証明機関CAが発行した、通話者14が作成した署名を確認するのに用いることができる。
【0037】
この実施例では、通話者14は、それによって発行されたと主張する証明書を受け取る。通話者14は、長期的な秘密鍵dを用いて短期的な秘密鍵kを抽出することによって、証明書の真正を確認する。秘密鍵kの構造を次にチェックすることができ、又は、鍵kを用いて、メッセージに含まれる短期的な公開鍵rに関係する情報を引き出す。再び、確認が、広範な計算を必要とせず、都合のよい態様で得られ、それによって、通話者14、すなわち、銀行などの金融機関が受け取った証明書の確認が可能になる。
【0038】
この実施例は、エルガマル署名方式の特別の場合であるデジタル署名アルゴリズムDSAを用いて、例示することもできる。エルガマル署名方式における鍵生成のために、それぞれの通話者A及びBが、公開鍵と対応する秘密鍵とを作成する。基礎となる暗号システムを群Fpに設定するために、通話者A及びBは、qがp−1を割るような素数p及びqを選択する。生成元gは、それがFpにおける位数(order)qの元であり、用いられる群が、{g0,g1,g2,…,gq-1}であるように、選択される。
【0039】
デジタル署名アルゴリズム(DSA)では、鍵の生成は、区間[1,q−1]の中のランダムな整数dを選択し、長期的な公開鍵y=gdmodpを計算することによって、行われる。公開鍵情報は、(p,q,g,y)であり、長期的な秘密鍵はdであり、他方で、一般的なエルガマル方式では、公開鍵情報は、(p,g,y)であり、秘密鍵はdである。
【0040】
DSA署名方式では、署名成分r及びsは、次のように与えられる。
【0041】
【数3】
r=(gkmodp)modq
【数4】
s=k-1(h(m)+dr)modq
ただし、ここで、
dは、ランダムな整数であり、署名者の長期的な秘密鍵であって、典型的には160ビットである。
pは、典型的には、1024ビットの素数である。
qは、160ビットの素数であり、qは、p−1を割る。
gは、生成元であり、y=gdmodpである。
h(m)は、典型的には、メッセージmのSHA−1ハッシュである。
kは、それぞれの署名に対してランダムに選ばれる160ビットの値である。
mに対する署名は、対(r,s)である。
【0042】
通常、メッセージm上のAの署名(r,s)を確認するためには、受信者Bは、Aの真正の公開鍵情報(p,q,g,y)を取得して、0<r<q及び0<s<qを確認しなければならない。次に、値w=s-1modqと、h(m)とが、計算される。次に、u1=wh(m)modqと、u2=rwmodqと、v=(gu1u2modp)modqとが計算される。v=rの場合に、そして、その場合だけに、署名は、受け入れられる。従って、署名の所有者が後の段階において自分自身の署名を確認することを望む場合には、公開鍵情報を検索し、累乗計算を含む上述のステップを実行するには、時間がかかることがわかる。
【0043】
図4に示されているように、証明機関CAによる高速署名確認は、証明機関の長期的な秘密鍵dを、確認者(検証者、verifier)として用いることによって実現される。この場合には、元の署名者は、p、q、g、y、h(m)、r、sの知識を有している。従って、確認者は、署名において用いられた短期的な秘密鍵kを回復し、署名を確認するために、そのようにして得られたkの値を確認するだけでよい。こうして、確認者は、z=(h(m)+dr)modqを計算する。値z-1が、zmodqを反転させることによって計算され、k’-1=s(z-1)modqを計算するのに用いられる。k’は、 k’-1modqを反転させることによって、計算される。確認者は、次に、r=gk’modpmodqを評価し、k=k’であることを確認する。このようにして、この確認のステップは、長期的な公開鍵yではなく長期的な秘密鍵dを用いて、累乗計算を回避していることがわかる。もちろん、上述の計算の多くは、予め計算されたテーブルを用いることによって、高速化することができる。
【0044】
別のエルガマル署名方法が、図5に示されており、署名成分(s,e)を有している。ここで、次の関係が成立している。
【0045】
【数5】
r=gkmodp
【数6】
e=h(m||r)
【数7】
s=(de+k)modp
ここで、pは大きな公開素数であり、gは公開生成元であり、mはメッセージであり、hはハッシュ関数であり、記号||は連接(concatenation)を意味し、dは長期的な秘密鍵であり、y=gdmodpは対応する長期的な公開鍵であり、kは短期的な秘密鍵として用いられる秘密のランダムな整数である。
【0046】
証明書を生成するためには、通話者14は、通話者12の一人の、公開鍵に対応するIDを含むメッセージmに署名をする。このメッセージは、通話者14の長期的な公開鍵と短期的なセッション鍵kとを用いて署名され、署名成分s及びeを含む証明書が、通話者12に発行される。公開情報は、通話者14によって保持される。証明書は、通話者12によって用いられ、通話者14の公開鍵を用いて、受信者によって、確認される。
【0047】
証明書が通話者14に提供されると、長期的な秘密鍵dを用いて、迅速な確認が得られる。
【0048】
秘密鍵dを用いた高速署名確認では、p、g、y、h、m、r、eの公開情報と、秘密鍵dとが、確認者に知られている。従って、確認者は、短期的な秘密鍵kえい回復し、署名を確認するために、kを確認するだけでよい。確認者は、k’=(s−de)modp、r’=gk’modp、e’=h(m||r’)を計算する。e=e’である場合には、k=k’が確認される。この確認には、処理を容易にするために、ただ1つの累乗計算しか要求されない。また、回復されたkの値の特性は、上述の確認を満足するのに十分である。
【0049】
このように、本発明の特別の効果は、署名者が、例えば、署名者のコンピュータに存在するデータに署名する場合である。これは、後で、対応する公開鍵を用いることなく確認することができ、署名者は、自分の秘密鍵を用いてデータを確認することができる。これは、また、スマート・カードなどの計算能力が限定的である応用例に対して、非常に有用である。
【0050】
証明機関を含むデータ通信システムでは、証明機関(CA)又は鍵配分センタは、それが様々な通信システムの中にインストールされる前にデータに署名を行い、後でその署名を確認することがある。従って、CAは、署名を確認するために公開鍵情報を要求することはなく、単に、長期的な秘密鍵を用いて確認を行う。これは、他のすべてのパラメータは、署名者の安全な境界の内部に記憶されているからである。長期的な秘密鍵dが用いられる際には、システムに関連するオーバヘッドが最小化されるように、短期的な秘密鍵kを保持しておくことは不要であることに注意すべきである。
【0051】
別の応用例として、ペーパーユース(pay-per-use)型のソフトウェアでのソフトウェアの確認がある。サーバへのアクセスの要求は、サーバが発行しソフトウェアの使用者によって提示される証明書によって、制御される。証明書の真正は、上述したような適切な態様で、サーバの秘密鍵を用いて、確認される。
【0052】
本発明は、以上で、特定の実施例と特定の使用とに関して説明したが、冒頭の特許請求の範囲によって定義される発明の範囲から逸脱することなく、様々な修正が、当業者であれば、想定できよう。例えば、上述の好適実施例では、乗法に関して述べられているが、本発明は、加法に関しても成立する。例えば、DSAの楕円曲線アルゴリズムと等価であるECDSAは、離散対数アルゴリズムと類似の楕円曲線であり、これは、通常は、素数を法とする整数から成る乗法群であるF*pに関して説明されうる。F*pの元及び演算と楕円曲線群E(Fq)との間には、対応が存在する。更に、この署名技術は、F2’’上で定義される体において実行される関数にも等しく適用できる。
【0053】
本発明は、このように、暗号化方法及びシステムに関係し、特に、有限体の元がプロセッサに効率的な態様で乗算される楕円曲線暗号方法及びシステムに関係する。この暗号システムは、適切にプログラムされた汎用コンピュータなどの任意の適切なプロセッサから構成することができる。
【図面の簡単な説明】
【図1】データ伝送システムの概略図である。
【図2】署名確認プロトコルの概略的な流れ図である。
【図3】別のプロトコルの概略的な流れ図である。
【図4】更に別のプロトコルの概略的な流れ図である。
【図5】別のエルガマル署名方法の概略を示す流れ図である。

Claims (43)

  1. データ通信システム(10)において、暗号化ユニット(18、20)を用いて署名端末によって生成されたデジタル署名を、受信端末において確認する方法であって、前記デジタル署名は1対の署名成分を有し、前記署名成分の一方は第1の秘密鍵dと第2の秘密鍵kとを組み入れ、前記第1の秘密鍵dは前記受信端末と前記署名端末とに知られており、前記署名成分の他方は前記第2の秘密鍵kと関連する関数と同等な値を有する、前記暗号化ユニット(18、20)において実行される方法において、
    前記受信端末において前記第1の秘密鍵dを前記署名成分に適用して、前記第2の秘密鍵kと関連する前記関数と同等の値を回復するステップと、
    前記回復された値と前記他方の署名成分とを比較して、前記署名の真正を判断するステップと、
    を含むことを特徴とする方法。
  2. 請求項1記載の方法において、前記回復された値は前記署名成分の一方の値を計算するのに用いられ、前記計算された値と前記署名成分とが比較され前記署名が確認されることを特徴とする方法。
  3. 請求項1記載の方法において、前記回復された値の構造が所定のパラメータと比較され、前記署名が確認されることを特徴とする方法。
  4. 請求項1記載の方法において、前記鍵の一方は長期的な鍵であり、前記鍵の他方はそれぞれの署名によって生成される短期的な鍵であることを特徴とする方法。
  5. 請求項4記載の方法において、前記回復された値は前記短期的な鍵に対応することを特徴とする方法。
  6. 請求項5記載の方法において、前記回復された値は、前記短期的な鍵から導かれ前記署名成分に含まれる短期的な公開鍵を計算するのに用いられることを特徴とする方法。
  7. 請求項5記載の方法において、前記回復された値の少なくとも一部は暗号論的ハッシュ関数によってハッシュされ、結果的なハッシュ値は確認のために前記署名成分の一方と比較されることを特徴とする方法。
  8. 複数の通信端末(12、14)含むデータ通信システム(10)において、前記複数の通信端末(12、14)のそれぞれに含まれている暗号化ユニット(18、20)を用いて、秘密鍵dと、元gと前記秘密鍵dとの両方から導かれる公開鍵yとを有する前記複数の通信端末の中の1つである署名端末によって生成されるデジタル署名を確認する方法であって、
    a)前記暗号化ユニット(18、20)が、少なくとも前記元gと前記署名端末によって短い署名パラメータとして用いられる値kとを第1の数学的関数に従って合成することによって生成された第1の署名成分と、前記第1の署名成分と前記秘密鍵dとメッセージmと前記署名パラメータkとを数学的に合成することによって生成された第2の署名成分とを用いてメッセージmに署名することによって前記署名端末によって生成された前記デジタル署名を取得するステップと
    b)前記暗号化ユニット(18、20)が、前記公開鍵yを用いることなく前記デジタル署名から値k’を回復するステップと、
    c)前記暗号化ユニット(18、20)が、前記第1の数学的関数において前記回復された値k’を用いて値r’を導き、前記署名パラメータkとk’とが等しいことを確認するステップと、
    を含むことを特徴とする方法。
  9. 請求項8記載の方法において、gは体F pの位数qの元であることを特徴とする方法。
  10. 請求項8記載の方法において、gはE(Fq)の中の素数位数nの点であり、Eは体Fq上で定義された楕円曲線であることを特徴とする方法。
  11. 請求項8記載の方法において、gは、有限体Fq n上で定義された楕円曲線上の点であることを特徴とする方法。
  12. 請求項8記載の方法において、前記署名パラメータkは、区間[1,q−1]に含まれるランダムに選択された整数であり、前記第1の署名成分は、pとqとをqがp−1を割る素数として、r=gmodpmodqによって定義される形式を有することを特徴とする方法。
  13. 請求項12記載の方法において、hをハッシュ関数として、値e=h(m)を計算するステップを含み、前記第2の署名成分sが、s=k−1(e+dr)modqであることを特徴とする方法。
  14. 請求項13記載の方法において、前記値k’を回復するステップは、
    (a)値z=(h(m)+dr)modqを計算するステップと、
    (b)zmodqを反転するz−1を計算するステップと、
    (c)k’−1=s(z−1)modqを計算するステップと、
    (d)k−1modqを反転することによって、k’を計算するステップと、
    を含むことを特徴とする方法。
  15. 請求項14記載の方法において、前記署名パラメータkと前記値k’とが等しいことを確認する前記ステップは、
    r’=gk‘modpmodqを計算するステップと、
    k=k’を確認するために、r’とrとを比較するステップと、
    を含むことを特徴とする方法。
  16. 請求項14記載の方法において、前記計算において、予め計算されたテーブルを用いるステップを含むことを特徴とする方法。
  17. 請求項10記載の方法において、署名パラメータkは、区間[2,n−2]において選択された統計的に一意的であり予測不可能な整数kであり、前記第1の署名成分は、xを秘密鍵の1つの座標としてr=x,modnによって定義される形式を有することを特徴とする方法。
  18. 請求項17記載の方法において、hをハッシュ関数として、e=h(m)の値を計算するステップを含み、前記第2の署名成分sが、s=k−1(e+dr)modnによって与えられることを特徴とする方法。
  19. 請求項18記載の方法において、前記値k’を回復する前記ステップは、
    (a)値z=(h(m)+dr)modnを計算するステップと、
    (b)zmodnを反転することによって、z−1を計算するステップと、
    (c)k’−1=s(z−1)modnを計算するステップと、
    (d)k−1modnを反転することによって、k’を計算するステップと、
    を含むことを特徴とする方法。
  20. 請求項19記載の方法において、前記署名パラメータkと前記値k’とが等しいことを確認する前記ステップは、
    r’=gk‘modnを計算するステップと、
    k=k’を確認するために、r’とrとを比較するステップと、
    を含むことを特徴とする方法。
  21. 請求項19記載の方法において、前記署名パラメータkは、区間[1,p−1]に含まれるランダムに選択された整数であり、前記第1の署名成分は、r=gmodp、hをハッシュ関数、||を連接(concatenation)を表すとして、e=h(m||r)によって定義される形式を有することを特徴とする方法。
  22. 請求項21記載の方法において、前記第2の署名成分sは、s=(de+k)modpによって定義されることを特徴とする方法。
  23. 請求項22記載の方法において、前記値k’を回復する前記ステップは、
    (a)値k’=(s−de)modpを計算するステップと、
    (b)値r’=gmodpを計算するステップと、
    (c)値e’=h(m||r’)を計算するステップと、
    (d)k’=kを確認するために、前記値e’とeとを比較するステップと、
    を含むことを特徴とする方法。
  24. 電子データ通信システム(10)において、証明機関によって発行された証明書の真正を確認する方法であって、暗号化ユニット(18、20)によって実行される方法において、
    前記証明機関が、前記証明書に1対の秘密鍵(d、k)から導かれた1対の署名成分を含ませるステップと、
    前記証明機関が、前記秘密鍵の一方dを保持するステップと、
    前記証明機関が、前記証明書を受け取り前記秘密鍵dを前記署名成分に適用して、前記秘密鍵の他方kの関数に対応する値を導くステップと、
    前記導かれた値と前記関数とを比較して、前記証明書の真正を判断するステップと、
    を含むことを特徴とする方法。
  25. 請求項24記載の方法において、前記導かれた値は、所定のパラメータと比較され、前記証明書の真正が判断されることを特徴とする方法。
  26. 請求項24記載の方法において、前記導かれた値は、前記秘密鍵の前記他方kに対応することを特徴とする方法。
  27. 請求項26記載の方法において、前記一方の鍵は複数の署名において用いられる長期的な秘密鍵であり、前記他方の鍵はそれぞれの署名に対して導かれる短期的な鍵であることを特徴とする方法。
  28. 請求項26記載の方法において、前記署名成分は前記他方の鍵から導かれる公開鍵を含み、この方法は、更に、
    対応する公開鍵を、前記導かれた値から導くステップと、
    前記署名成分における前記公開鍵と前記対応する公開鍵とを比較するステップと、
    を含むことを特徴とする方法。
  29. データ通信リンク(16)によって接続された1対の通信端末(12、14)を有するデータ通信システム(10)であって、前記通信端末のそれぞれは、1対の秘密鍵(d、k)を用いる公開鍵暗号方式を実現する暗号論的関数を暗号化ユニット(18、20)において有し、前記秘密鍵の一方dは前記通信端末の間の複数の通信に対して用いられ、前記秘密鍵の他方kはそれぞれの通信において前記通信端末の一方によって生成され、前記一方の秘密鍵dは、前記1対の通信端末(12、14)に共有されて、前記秘密鍵の前記他方kが前記一方の通信端末(12)によって生成されたデジタル署名から前記他方の通信端末(14)によって回復されることを可能にし、前記デジタル署名の署名成分と比較されて前記一方の通信端末(12)の真正が確認されることを可能にすることを特徴とするデータ通信システム。
  30. 請求項29記載のデータ通信システムにおいて、前記暗号論的関数は、楕円曲線暗号システムを用いて実現されることを特徴とするデータ通信システム。
  31. データ通信システム(10)においてそれぞれが秘密情報dを共有している1対の通信端末(14、14)の間でセッション鍵を確立し、交換される署名成分を確認する方法であって、それぞれの通信端末(12、14)における暗号化ユニット(18、20)を用いて実行される方法において、
    a)前記通信端末の一方(12)が、追加的秘密情報kを生成し、前記追加的秘密情報kからセッション鍵rを導くステップと、
    b)前記通信端末の前記一方(12)が、前記秘密情報dと前記追加的秘密情報kとを署名アルゴリズムにおいて合成して、第1の署名成分を提供するステップと、
    c)前記通信端末の前記一方(12)が、前記追加的秘密情報kから第2の署名成分を導くステップと、
    d)前記通信端末の前記一方(12)が、前記第1及び第2の署名成分を前記通信端末の前記他方(14)に転送するステップと、
    e)前記通信端末の前記他方(14)が、前記秘密情報dを用いて前記追加的秘密情報kを前記第1の署名成分から取得し、前記秘密情報dと前記追加的秘密情報kとから前記セッション鍵rを生成するステップと、
    f)前記通信端末の前記他方(14)が、当該通信端末の前記他方(14)において取得された前記セッション鍵rに演算を実行することにより前記第2の署名成分に対応する値を取得し前記値と前記第2の署名成分とを比較することによって前記第2の署名成分を確認するステップと、
    を含むことを特徴とする方法。
  32. 請求項31記載の方法において、前記第1の署名成分は前記他方の通信端末(14)と関連する公開情報を含み、前記他方の通信端末(14)は前記公開情報を用いて前記追加的秘密情報kを取得することを特徴とする方法。
  33. 請求項32記載の方法において、前記秘密情報dと前記公開情報とは前記署名アルゴリズムにおいて合成され、この合成は前記一方の通信端末(12)によって予め計算され記憶されることを特徴とする方法。
  34. 請求項33記載の方法において、前記合成は前記秘密情報dと前記公開情報との積であることを特徴とする方法。
  35. 請求項31記載の方法において、前記追加的秘密情報kの一部が用いられ前記第2の署名成分が提供されることを特徴とする方法。
  36. 請求項35記載の方法において、前記追加的秘密情報kは楕円曲線上の1点の座標を表し、前記一部は前記座標の1つであることを特徴とする方法。
  37. 請求項35記載の方法において、前記一部は安全ハッシュ関数によってハッシュされ、前記第2の署名成分が提供されることを特徴とする方法。
  38. 第1の通信端末(14)と前記第1の通信端末(14)に接続された複数の第2の通信端末(12a、12b、・・・)の中の選択された1つとの間でセッション鍵を確立し、交換される署名成分を確認する方法であって、それぞれの通信端末(12、14)における暗号ユニット(18、20)を用いて実行される方法において、
    前記複数の第2の通信端末のそれぞれに秘密情報を提供するステップと、
    前記秘密情報dのそれぞれを前記第1の通信端末(14)においてメモリ(24)に記憶し、前記記憶された秘密情報dのそれぞれを対応する第2の通信端末(12)と関連付けるステップと、
    前記複数の第2の通信端末(12)の中の前記選択された1つが、前記秘密情報dと追加的秘密情報kとを署名アルゴリズムにおいて合成し、第1の署名成分を提供するステップであって、前記追加的秘密情報kは、前記第2の通信端末(12)の中の前記選択された1つによって用いられてセッション鍵rを生成する、ステップと、
    前記複数の第2の通信端末(12)の中の前記選択された1つが、前記追加的秘密情報kから第2の署名成分を導くステップと、
    前記第1の通信端末(14)が、前記複数の第2の通信端末(12)の中の前記選択された1つから、前記第1及び第2の署名成分を受け取るステップと、
    前記第1の通信端末(14)が、前記メモリ(24)から、前記複数の第2の通信端末(12)の中の前記選択された1つと関連付けられた前記記憶されている秘密情報dを検索し、前記秘密情報dを用いて前記追加的秘密情報kを取得して、前記複数の第2の通信端末(12)の中の前記選択された1つに関する前記秘密情報dと前記追加的秘密情報kとから前記セッション鍵rを生成するステップと、
    前記第1の通信端末(14)が、当該第1の通信端末(14)において取得された前記セッション鍵rに演算を実行することにより前記第2の署名成分を確認して前記第2の署名成分に対応する値を取得し、前記取得された値と前記第2の署名成分とを比較するステップと、
    を含むことを特徴とする方法。
  39. 請求項38記載の方法において、前記第1の署名成分は前記第1の通信端末(14)と関連する公開情報を含み、前記第1の通信端末(14)は前記公開情報を用いて前記追加的秘密情報kを取得することを特徴とする方法。
  40. 請求項38記載の方法において、前記追加的秘密情報kの一部が用いられ前記第2の署名成分が提供されることを特徴とする方法。
  41. 請求項40記載の方法において、前記追加的秘密情報kは楕円曲線上の1点の座標を表し、前記一部は前記座標の1つであることを特徴とする方法。
  42. 請求項40記載の方法において、前記一部は安全ハッシュ関数によってハッシュされ、前記第2の署名成分が提供されることを特徴とする方法。
  43. 請求項8記載の方法において、前記公開鍵yを用いることなく前記署名から値k’を回復する前記ステップは、前記第1の署名成分と前記第2の署名成分との少なくとも一方に前記秘密鍵dを適用してk’を回復するステップを含むことを特徴とする方法。
JP13174398A 1997-10-31 1998-05-14 認証プロトコル Expired - Lifetime JP4307589B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US962441 1992-10-16
US96244197A 1997-10-31 1997-10-31

Publications (2)

Publication Number Publication Date
JPH11174957A JPH11174957A (ja) 1999-07-02
JP4307589B2 true JP4307589B2 (ja) 2009-08-05

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 After (1)

Application Number Title Priority Date Filing Date
JP2000519520A Pending JP2001522071A (ja) 1997-10-31 1998-11-02 ElGamal方式用の署名検証

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)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4611680B2 (ja) * 2003-07-25 2011-01-12 株式会社リコー 通信装置、通信システム、通信方法及びプログラム
JP5348148B2 (ja) * 2003-07-25 2013-11-20 株式会社リコー 通信装置、通信システム、通信方法及びプログラム
JP4712326B2 (ja) * 2003-07-25 2011-06-29 株式会社リコー 通信装置、通信システム、通信方法及びプログラム
US9240884B2 (en) 2003-10-28 2016-01-19 Certicom Corp. Method and apparatus for verifiable generation of public keys
CN1922816B (zh) 2004-02-13 2011-11-02 塞尔蒂卡姆公司 单向认证
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
AU1015499A (en) 1999-05-24
EP1025674A1 (en) 2000-08-09
JPH11174957A (ja) 1999-07-02
CA2306468A1 (en) 1999-05-14
WO1999023781A1 (en) 1999-05-14
JP2001522071A (ja) 2001-11-13

Similar Documents

Publication Publication Date Title
US7036015B2 (en) Verification protocol
US11323276B2 (en) Mutual authentication of confidential communication
US10530585B2 (en) Digital signing by utilizing multiple distinct signing keys, distributed between two parties
US9967239B2 (en) Method and apparatus for verifiable generation of public keys
JP4588874B2 (ja) 内在的証明書方式
US7716484B1 (en) System and method for increasing the security of encrypted secrets and authentication
US6178507B1 (en) Data card verification system
US9705683B2 (en) Verifiable implicit certificates
US9800418B2 (en) Signature protocol
KR100989185B1 (ko) Rsa기반 패스워드 인증을 통한 세션키 분배방법
JP2019537349A (ja) 複合デジタル署名
US20150006900A1 (en) Signature protocol
Kumar et al. An efficient implementation of digital signature algorithm with SRNN public key cryptography
JP4307589B2 (ja) 認証プロトコル
WO2003063410A1 (en) Cryptosystem
WO2016187689A1 (en) Signature protocol
Andreevich et al. On Using Mersenne Primes in Designing Cryptoschemes
WO2022050833A1 (en) Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge
Song et al. A two-public key scheme omitting collision problem in digital signature
CA2892318A1 (en) Signature protocol

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050516

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050516

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080305

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080310

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080606

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080708

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081105

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090105

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

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

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term