JP6610277B2 - 共有鍵生成プログラム、共有鍵生成方法および情報処理端末 - Google Patents

共有鍵生成プログラム、共有鍵生成方法および情報処理端末 Download PDF

Info

Publication number
JP6610277B2
JP6610277B2 JP2016006688A JP2016006688A JP6610277B2 JP 6610277 B2 JP6610277 B2 JP 6610277B2 JP 2016006688 A JP2016006688 A JP 2016006688A JP 2016006688 A JP2016006688 A JP 2016006688A JP 6610277 B2 JP6610277 B2 JP 6610277B2
Authority
JP
Japan
Prior art keywords
subject
shared key
calculation
key
information processing
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.)
Active
Application number
JP2016006688A
Other languages
English (en)
Other versions
JP2017126970A (ja
Inventor
由美 酒見
郁也 森川
正彦 武仲
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016006688A priority Critical patent/JP6610277B2/ja
Priority to US15/385,538 priority patent/US10425227B2/en
Priority to CN201710018197.5A priority patent/CN106992854B/zh
Priority to DE102017200354.5A priority patent/DE102017200354A1/de
Publication of JP2017126970A publication Critical patent/JP2017126970A/ja
Application granted granted Critical
Publication of JP6610277B2 publication Critical patent/JP6610277B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0847Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/3033Public 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 details relating to pseudo-prime or prime number generation, e.g. primality test
    • 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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Description

本発明は、共有鍵生成プログラム、共有鍵生成方法および情報処理端末に関する。
計算機やネットワークに関する技術の進展と普及に伴い、無線通信網やインターネットなどを通じて重要なデータがやりとりされる機会が増えている。無線通信網やインターネットでは通信経路上での盗聴や改竄、なりすましが比較的容易であり、セキュリティを維持するため、通信相手の認証とそれに基づく通信内容の保護を行う暗号通信技術に対する需要が高まっている。暗号通信技術のうち広く使われているものとして、様々な公開鍵暗号化技術を適用したTransport Layer Security(TLS)が挙げられる。
このような公開鍵暗号技術の一つとして、識別子に基づく暗号技術(identity-based cryptography、ID-based cryptography、以降では「IDベース暗号技術」と記載する場合がある)が知られている。IDベース暗号技術は、公開鍵が任意の識別子(ID)でよく、そのために証明書が不要である。識別子は、IP(Internet Protocol)アドレス、ホスト名、機器番号、電話番号、その他アプリケーションに応じて決められた名前など、何でも利用することができる。
RSAなどの公開鍵暗号技術では、公開鍵は数学的に作られたある種の数であり、識別子とは無関係に作られることから、利用者が認識できる識別子と公開鍵を関連付けるために証明書が使われることが多い。一方、IDベース暗号技術では、識別子が公開鍵であるため、通信したい相手の識別子がわかれば証明書がなくとも暗号処理を行うことができる。近年では、IDによる相互認証機能付きの2者間鍵共有プロトコルとして、McCullagh−Barretoによる鍵共有プロトコルにおける鍵共有処理(以下、「MB方式」と記載する場合がある)が利用されている。
特開2006−309068号公報 特開2009−80344号公報 特開2010−66510号公報
しかしながら、MB方式を用いた鍵共有処理は、計算コストが大きく、処理遅延が発生する場合がある。特に、ゲートウェイやセンサーなどの性能の低い機器が多く利用されるIoT(Internet of Things)システムでは、計算コストにより処理遅延が発生する可能性が高くなる。
例えば、MB方式では、2者間で鍵を共有する処理において、べき乗算が実行された後に、楕円曲線上の双線形写像(以下、ペアリング関数)が実行されるが、それぞれの演算において乗算や二乗算で実行されるので、計算コストが多い。特に、現在多く利用されるBN曲線(256ビット)を利用した場合では、ペアリング関数におけるミラーアルゴリズムおよびべき乗算において、合計で二乗算が318回、乗算が193回実行され、計算コストが多い。
1つの側面では、暗号鍵共有にかかる計算コストを抑制することができる共有鍵生成プログラム、共有鍵生成方法および情報処理端末を提供することを目的とする。
第1の案では、共有鍵生成プログラムは、識別子を用いる公開鍵暗号方式によって共有鍵を生成する情報処理端末に、前記共有鍵を生成する処理の開始前に、素体で定義される楕円曲線上の加法巡回群上の2点から前記素体の拡大体上の元を出力するアルゴリズムを用いて第1の演算値を予め算出して保持する処理を実行させる。共有鍵生成プログラムは、情報処理端末に、前記共有鍵を生成する処理を開始すると、前記共有鍵を共有する共有者の識別子を用いた変数と前記情報処理端末の秘密鍵と前記アルゴリズムとから第2の演算値を算出する処理を実行させる。共有鍵生成プログラムは、情報処理端末に、前記第1の演算値のべき乗算および前記第2の演算値のそれぞれに、最終べき演算を実行して前記共有鍵を生成する処理を実行させる。
一実施形態によれば、暗号鍵共有にかかる計算コストを抑制することができる。
図1は、実施例にかかるシステムの全体構成例を説明する図である。 図2は、IDベース認証付鍵共有を説明する図である。 図3は、べき乗計算を説明するフローチャートである。 図4は、ペアリング計算を説明する図である。 図5は、Miller(ミラー)アルゴリズムを説明するフローチャートである。 図6は、情報処理端末の機能構成を示す機能ブロック図である。 図7は、変数DBに記憶される情報の例を示す図である。 図8は、分割処理を説明する図である。 図9は、処理の流れを示すフローチャートである。 図10は、分岐処理の流れを示すフローチャートである。 図11は、効果を説明する図である。 図12は、ハードウェア構成例を説明する図である。
以下に、本願の開示する共有鍵生成プログラム、共有鍵生成方法および情報処理端末の実施例を図面に基づいて詳細に説明する。この実施例によりこの発明が限定されるものではない。なお、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[全体構成]
図1は、実施例にかかるシステムの全体構成例を説明する図である。図1に示すように、このシステムは、共有サーバ1と情報処理端末10と情報処理端末20とがネットワークNを介して接続され、情報処理端末10と情報処理端末20との間で、MB方式を用いた鍵共有を採用したIDベース暗号技術を実行するシステムである。なお、ネットワークNには、有線または無線を問わず、インターネット(Internet)を始め、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。
共有サーバ1は、プライベート鍵生成者(private key generator;PKG)であり、情報処理端末10および情報処理端末20のそれぞれに秘密鍵(プライベート鍵)を配布する。情報処理端末10は、ユーザA(以下では主体Aと記載する場合ある)が利用するコンピュータであり、情報処理端末20は、ユーザB(以下では主体Bと記載する場合ある)が利用するコンピュータである。なお、各情報処理端末としては、サーバ、パーソナルコンピュータ、携帯電話、スマートフォンなどを採用することができる。
[MB方式の説明]
ここで、一般的なMB方式を用いた鍵共有の方式について説明する。まず、記号の定義を行う。標数をpとして、素体Fpで定義される楕円曲線上の加法巡回群をE(Fp)と表記し、E(Fp)の位数#E(Fp)を割り切る最大素数をrとし、r|pk−1を満たすkを埋め込み次数と呼び、E(Fp)における位数rの部分加法群をE(Fp)[r]とする。このとき、双線形写像eは、以下に定義される巡回群G1とG2の2つの元を入力として拡大体上の元を出力する関数(例えば有理関数)として定義される。なお、e:G1×G2→G3であってもよい。なお、Fpkは、実施例上ではFpにおけるpのk乗と同様として記載する。
G1:E(Fp)[r]
G2:E(Fpk)[r]
G3:Fpk*/(Fpk*)r
E:G2×G1 → G3
また、整数0〜(r―1)の整数で構成される群をZrと表記する。このとき、G1とG2の元に対し、α∈Zr、P∈G1(あるいはG2)の場合に、スカラー倍算αPは、Pをα個加算する計算と定義される。さらに、G3の元に対し、α∈Zr、x∈G3に対し、べき乗算xαは、xをα個乗算する計算と定義される。このとき、双線形性とはe(xP,Q)=e(P,xQ)=e(P,Q)xを満たす性質のことである。
次に、鍵交換を具体的に説明する。プライベート鍵生成者(private key generator;PKG)がマスター秘密鍵s∈Zrを決定し、秘密に保持する。また、PKGは、公開パラメータP∈G1、Q∈G2、e、HおよびP0=sP∈G1を決定し、公開する。ただし、Pは、巡回群G1の生成元、QはG2の生成元、eは双線形写像(以下、ペアリング関数と呼ぶ)、Hは識別子から整数を求めるためのハッシュ関数である。主体Aの識別子IDAに対応する公開鍵PAは、a=H(IDA)とすると、PA=aP+P0=(a+s)Pであり、公開パラメータから誰でも算出できる。IDAに対応するプライベート鍵SAは、SA=(a+s)-1Qであり、マスター秘密鍵sを知るPKGのみが算出できる。
次に、PKGは、生成したプライベート鍵を、対応する識別子で認証を受ける権利のある正しい主体に通知する。主体AとBが鍵交換を行うには、あらかじめ互いに相手の識別子を知っている前提で、次のように行う。主体Aは、整数xをランダムに選び、RA=xPBを計算し、主体Bへ送る。主体Bも同様に整数yをランダムに選び、RB=yPAを計算し、主体Aへ送る。RAやRBはそれぞれ主体B、主体Aのみが鍵交換に使える鍵材料である。RAを受け取った主体Bは、ZB=e(P,Q)ye(RA,SB)を計算する。一方RBを受け取った主体Aは、ZA=e(P,Q)xe(RB,SA)を計算する。主体A、Bがそれぞれプライベート鍵SA、SBをもつ正しい主体であり、鍵材料が途中で改ざんされていなければ、ペアリングの双線形性によりZA=ZB=e(P,Q)x+yが成り立ち、ZA=ZBを共有鍵とする鍵交換が完了する。
ここで、上述した処理の流れを説明する。図2は、IDベース認証付鍵共有を説明する図である。なお、主体A(情報処理端末10)の秘密鍵をSA=(a+s)-1Qとし、主体B(情報処理端末20)の秘密鍵をSB=(b+s)-1Qとする。
図2に示すように、主体Aが、識別子IDAを主体Bに送付し(ステップS1)、主体Bが、識別子IDBを主体Aに送付し(ステップS2)、互いの識別子を交換する。
続いて、主体Aは、主体Bの公開鍵の素材となるb=H(IDB)を算出し(ステップS3)、同様に、主体Bは、主体Aの公開鍵の素材となるa=H(IDA)を算出する(ステップS4)。その後、主体Aは、RA=xPB(xは一時鍵)を計算し、主体Bへ送る(ステップS5)。同様に、主体Bは、RB=yPA(yは一時鍵)を計算し、主体Aへ送る(ステップS6)。
そして、主体Aは、主体Aの公開鍵PA=aP+P0=(a+s)PとRB=yPAとSA=(a+s)-1Qとを用いて、ZA=e(P,Q)xe(RB,SA)を算出する(ステップS7)。同様に、主体Bは、主体Bの公開鍵PB=bP+P0=(b+s)PとRA=xPBとSB=(b+s)-1Qとを用いて、ZB=e(P,Q)ye(RA,SB)を算出する(ステップS8)。この結果、主体Aおよび主体Bにおいて、ZA=ZBを共有鍵とする鍵交換が完了する。
上述したように、MB方式における鍵共有処理では、鍵c=zx×e(R,S)と計算することができる。ここで、eは、ペアリング関数(楕円曲線上の双線形写像)、zは、ペアリングの事前計算結果(e(P,Q))、xは整数(x∈Zr)、P,Qは楕円曲線上加法群の元である。一般的には、c0=zxを計算し、c1=e(R,S)を計算した後、c=c0×c1を計算することで、共有鍵を計算する。
ここで、共有鍵を作成するために、ペアリングを2回実行するが、e(P,Q)の計算については、PとQを事前に入手しているので、事前に計算可能である。そのため、主体Aで共有鍵を行う際には、まず、e(P,Q)xを得るために、べき乗算を実行し、続いてe(RB,SA)を得るために、ペアリングを実行し、これらの結果の積を計算することで実現できる。次に、一般的なべき乗算とペアリングとについて具体的に説明する。
(べき乗算)
次に、情報処理端末10を例にして一般的なべき乗の計算について説明する。ペアリングに基づく暗号方式では、十分な安全性を保証するために、256ビット以上の位数rが使用される。そのため、例えばべき乗算ax(a∈G3,x∈Zr)を計算する場合、Zrからxをランダムに選ぶと、xは極めて高い確率でrと同程度の大きさとなる。従って、単純にべき乗算を実行しようとすると、aを2256個掛け算することとなり、現実的ではない。そこで、べき乗算を効率的に計算するための手法としてバイナリ―法が多く利用される(図3参照)。
図3は、べき乗計算を説明するフローチャートである。図3に示すように、情報処理端末10は、最終的に算出するbに変数aを代入し、iにxのビット数−1を代入する(ステップS10)。
続いて、iが0より大きければ(ステップS11:Yes)、情報処理端末10は、b=b2とし(ステップS12)、Bit(x,i)が1か否かを判定する(ステップS13)。ここで、情報処理端末10は、Bit(x,i)が1である場合(ステップS13:Yes)、b=b×aを実行し(ステップS14)、iを1減算した後(ステップS15)、ステップS11以降を繰り返す。なお、Bit(x,i)はxの最下位ビットからi番目のビット値を示す。
一方、情報処理端末10は、Bit(x,i)が1ではない場合(ステップS13:No)、ステップS15以降を実行する。なお、ステップS11において、iが0以下である場合(ステップS11:No)、情報処理端末10は、処理を終了する。
具体例を挙げて説明すると、ここでは、簡単な例として、aをx=10乗する計算を例にアルゴリズムを説明する。まず、初期化として、最終的な結果が得られる変数bにaを代入し、繰り返し回数iに指数(xのビット数−1)、すなわち3を代入する。そして、iに基づき繰り返し処理を実行する。現在、iは3のため、bに対し二乗算(b=a2)を行う。そして、xの最下位ビットからi番目のビット値をチェックし、0であれば、iから1を引いて次の繰り返し処理に進み、1であればbに対しaを乗算する。現在、i=3番目のビットは0のため、次の繰り返し処理に進む。
次に、i=2のため、b=b2=a4を計算する。そして、i=2番目のビット値を調べると、1のため、b=b×a=a5を計算し、iから1をひいて次の繰り返し処理に進む。次に、i=1のため、b=b2=a10を計算する。そして、i=1番目のビット値を調べると0のため、iから1を引いて次の繰り返し処理に進む。次に、i=0であり、i>0を満たさないため、計算を終了する。このとき、b=a10であり、正しく計算できていることが分かる。このように、一般的な方法では、aを9回乗算する必要があるのに対し、バイナリ法では2乗算を3回、乗算を1回、計4回の乗算と効率的に計算可能である。なお、xのハミング重みとは、xを2進数展開した際の1の数である。
(ペアリング計算)
次に、図4と図5を用いてペアリング計算について説明する。図4は、ペアリング計算を説明する図であり、図5は、Millerアルゴリズムを説明するフローチャートである。
図4に示すように、ペアリング処理は、楕円曲線上の2点を入力として拡大体の元を出力する。具体的には、素体(E(Fpk)上のG1群の点Pと素体(E(Fpk)上のG2群の点Qと入力として、これら点Pと点Qを、Millerアルゴリズムによって、Fpをk次元にした拡大体上の点で表し、その後に最終べきを行って、拡大体上のG3群の点を生成する。
つまり、ペアリング計算は大きく分けて2段階の処理に分かれている。1つは、Millerアルゴリズムと呼ばれる計算と、もう1つは最終べきと呼ばれる計算である。上記ペアリングe(P,Q)を計算する際、MillerアルゴリズムはPとQから拡大体Fpk上の元を出力する関数fとして定義される。そして、最終べきは、Millerアルゴリズムで得られた拡大体上の元を(pk−1)/rでべき乗算することでG3上の元を得られる。ペアリングeは、Millerアルゴリズムfを用いて式(1)で表現できる。
Figure 0006610277
ここで、Millerアルゴリズムの計算について説明する。図5に示すように、情報処理端末10は、入力をP、Qとして、初期化を実行する(ステップS20)。具体的には、情報処理端末10は、最終的な出力値zに1を代入し、変数iに(予め定めた繰り返し回数(α)のビット数から1減算した値を代入し、TにQを代入する。
続いて、iが0より大きければ(ステップS21:Yes)、情報処理端末10は、zを算出し(ステップS22)、TにT+Tを代入し(ステップS23)、Bit(α,i)が1か否かを判定する(ステップS24)。なお、Bit(α,i)はαのi番目のビット値を示す。また、S22で実行される式のlT,T(P)は、Tを通る接線の式にPを代入することを示す。
そして、情報処理端末10は、Bit(α,i)が1である場合(ステップS24:Yes)、zを算出し(ステップS25)、TにT+Qを代入し(ステップS26)、iを1減算した後(ステップS27)、ステップS21以降を繰り返す。なお、S25で実行される式のlT,Q(P)は、TとQを通る直線の式にPを代入することを示す。
一方、情報処理端末10は、Bit(α,i)が1ではない場合(ステップS24:No)、ステップS27以降を実行する。なお、ステップS21において、iが0以下である場合(ステップS21:No)、情報処理端末10は、処理を終了する。
上述したように、べき乗算もMillerアルゴリズムの計算も、繰り返し処理の中で拡大体上の元に対する2乗算が必ず実行されている。最終的にべき乗算の結果とMillerアルゴリズムの結果は乗算されるため、2つのアルゴリズムで実行される2乗算を減らすことにより、共有鍵に生成にかかる計算コストの削減を実現する。
そこで、以下では、共有鍵の生成にかかる計算において2乗算の回数を削減することで、計算コストを削減する実施例について説明する。なお、情報処理端末10と情報処理端末20とは同様の処理を実行するので、ここでは、情報処理端末10を例にして説明する。
[機能構成]
図6は、情報処理端末10の機能構成を示す機能ブロック図である。図6に示すように、情報処理端末10は、通信部11、記憶部12、制御部15を有する。
通信部11は、他の装置の通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、通信部11は、共有サーバ1から秘密鍵を受信し、情報処理端末20に識別子(IDA)などを送信し、情報処理端末20から識別子(IDB)などを受信する。
記憶部12は、プログラムやデータなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、変数DB12aと鍵DB12bとを記憶する。変数DB12aは、MB方式を用いて共有鍵の生成する際に利用される各種情報を記憶するデータベースである。図7は、変数DB12aに記憶される情報の例を示す図である。図7に示すように、変数DB12aは、事前計算が可能である「R、S、x、z´=f(P,Q)、z1´、z2´、z3´」を記憶する。鍵DB12bは、情報処理端末20との間で生成された共有鍵を記憶するデータベースである。
制御部15は、情報処理端末10全体の処理を司る処理部であり、例えばプロセッサなどである。この制御部15は、受付部16、事前算出部17、分割部18、算出部19を有する。なお、受付部16、事前算出部17、分割部18、算出部19は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
受付部16は、他の端末から各種情報を受信する処理部である。例えば、受付部16は、共有サーバ1から秘密鍵SA(例えばSA=(a+s)-1Q)を受信して変数DB12aに格納する。また、受付部16は、上述した識別子IDB、RBなどを情報処理端末20から受信して変数DB12aに格納する。
事前算出部17は、鍵共有を行う際のべき乗算もMillerアルゴリズムの計算について、事前に算出可能な各種情報(例えば数値)を算出して、変数DB12aに格納する処理部である。具体的には、事前算出部17は、ペアリングe(P,Q)ではなく、Millerアルゴリズムの関数を用いたf(P,Q)を、鍵共有処理の事前に計算して変数DB12aに格納する。
すなわち、事前算出部17がf(P,Q)を事前に計算しておくことで、べき乗算の底となる元がペアリングの結果であるため、最終べきが実行されていることを利用し、e(R,S)の最終べきを行う際に、e(P,Q)の最終べきも同時に行うことができる。つまり、式(2)のように計算することで、最終べきは1回で良いため、e(P,Q)の最終べきを後回しにすることにより、計算コストを削減する。
Figure 0006610277
分割部18は、べき乗算の繰り返し回数をMillerアルゴリズムの繰り返し回数に揃えて分割し、事前計算を利用して、分割されたべき乗算における各2乗算も1回で計算する処理部である。なお、分割処理は、省略することもできるが、分割処理を行うことで、計算コストをより削減できる。
図8は、分割処理を説明する図である。図8に示すように、αとx3とは同時に計算可能であるが、αとx2と、αとx1と、αとx0とは、同時に実行することができないので、この部分を繰り返すことになる。そこで、事前計算を活用して、これらをαに合わせて分割して同時に計算することで、繰り返し回数を削減する。
例えば、事前計算を用いて、べき乗算を分割し、2乗算をまとめる方法を説明する。ここでは、rが256ビットのBN(Barreto-Naehrig)曲線の場合を例にする。この場合、xは256ビット、αは64ビットであるため、同時に計算できない二乗算が現れる。したがって、分割部18は、式(3)のように、xを264進数展開することで、64ビットずつに分割する。
Figure 0006610277
分割部18は、この式(3)を用いてzxを変形していくことで、式(2)を式(4)のように変形する。
Figure 0006610277
すなわち、分割部18は、z,z1,z2,z3のべき乗算の積を計算しているため、z1,z2,z3を事前に計算して変数DB12aに格納しておく。この結果、これらのべき乗算で実行されている二乗算を1回にまとめることが可能である。よって、これらべき乗算における二乗算とMillerアルゴリズムにおける二乗算を1回にすることができる。
算出部19は、事前算出されたz´=f(P,Q)、z1´,z2´,z3´を用いて、べき乗算およびMillerアルゴリズムを計算した後、最終べきを行って、共有鍵を生成する処理部である。具体的には、算出部19は、式(2)を実行して、「e(P,Q)xe(R,S)」を算出する。そして、この算出部19は、e(P,Q)xe(R,S)を鍵DB12bに格納する。
[処理の流れ]
次に、上述した事前算出および分割処理のフローチャートを説明する。図9は、処理の流れを示すフローチャートであり、図10は、分岐処理の流れを示すフローチャートである。なお、図8の処理が実行された後に最終べきが実行される。
図9に示すように、情報処理端末10は、初期化を実行する(ステップS101)。具体的には、情報処理端末10は、最終的に算出する対象のcに1を代入し、繰り返し判定するiに[α(予め定めた繰り返し回数)−1]を代入し、TにQを代入する。
続いて、情報処理端末10は、xを4分割してx0,x1,x2,x3を得る(ステップS102)。そして、情報処理端末10は、iが0より大きければ(ステップS103:Yes)、c=c2×lT,T(P)を計算し(ステップS104)、T=T+Tを計算した後(ステップS105)、分岐処理を実行する(ステップS106)。
そして、情報処理端末10は、分岐処理が実行された後、iを1減算した後(ステップS107)、ステップS103以降を繰り返す。なお、ステップS103において、iが0以下となった場合(ステップS103:No)、情報処理端末10は、処理を終了する。
続いて、ステップS106の分岐処理について説明する。図10に示すように、情報処理端末10は、Bit(α,i)が1である場合(ステップS201:Yes)、c=c×lT,Q(P)を算出し、TにT+Qを代入する(ステップS202)。一方、情報処理端末10は、Bit(α,i)が1ではない場合(ステップS201:No)、ステップS202を実行することなく、ステップS203を実行する。
そして、情報処理端末10は、Bit(x0,i)が1である場合(ステップS203:Yes)、c=c×z´を算出する(ステップS204)。一方、情報処理端末10は、Bit(x0,i)が1ではない場合(ステップS203:No)、ステップS204を実行することなく、ステップS205を実行する。
続いて、情報処理端末10は、Bit(x1,i)が1である場合(ステップS205:Yes)、c=c×z1´を算出する(ステップS206)。一方、情報処理端末10は、Bit(x1,i)が1ではない場合(ステップS205:No)、ステップS206を実行することなく、ステップS207を実行する。
続いて、情報処理端末10は、Bit(x2,i)が1である場合(ステップS207:Yes)、c=c×z2´を算出する(ステップS208)。一方、情報処理端末10は、Bit(x2,i)が1ではない場合(ステップS207:No)、ステップS208を実行することなく、ステップS209を実行する。
続いて、情報処理端末10は、Bit(x3,i)が1である場合(ステップS209:Yes)、c=c×z3´を算出した後(ステップS210)、図8の処理に戻る。一方、情報処理端末10は、Bit(x3,i)が1ではない場合(ステップS209:No)、ステップS210を実行することなく、図8の処理に戻る。
[効果]
上述したように、情報処理端末10は、ステップS104の2乗算1回で、z´,z1´,z2´,z3´に対するべき乗算およびMillerアルゴリズムにおける2乗算を実行する。そして、情報処理端末10は、図9の分岐処理では、各分割されたべき乗算の各指数とMillerアルゴリズムの繰り返し回数それぞれについてビット値をチェックし、ビット値に応じた処理を行う。この結果、2乗算を削減することができ、暗号鍵共有にかかる計算コストを抑制することができる。
図11は、効果を説明する図である。図11に示すように、一般曲線では、従来技術の場合、べき乗算内の二乗算は「xのビット数−1」回実行し、Millerアルゴリズム内の二乗算は「αのビット数−1」回実行するので、合計で「(xのビット数)+(αのビット数)−2)」回の二乗算が実行される。しかし、上記実施例を用いることで、べき乗算の二乗算をMillerアルゴリズム内の二乗算に合わせることができるので、合計で「αのビット数−1」回の二乗算となる。したがって、上記実施例を用いることで、「xのビット数-1」回の二乗算を削減できる。
また、256ビットのBN曲線では、従来技術の場合、べき乗算内の二乗算は「255」回実行し、Millerアルゴリズム内の二乗算は「63」回実行するので、合計で「255+63=318」回の二乗算が実行される。しかし、上記実施例を用いることで、べき乗算の二乗算をMillerアルゴリズム内の二乗算に合わせることができるので、合計で「63」回の二乗算となる。したがって、上記実施例を用いることで、「255」回の二乗算を削減できる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
(フロベニウス写像)
べき乗算のべき指数を2x進数展開することで、べき乗算の繰り返し回数とMillerアルゴリズムの繰り返し回数を揃えているが、この場合、例えばべき指数を256ビット、Millerのアルゴリズムの繰り返し回数を64ビットとすると、式(5)を保持する必要がある。
Figure 0006610277
ここで、BN曲線では、標数pは「p=36α4−36α3+24α2−6α+1」、位数rは「r=36α4−36α3+18α2−6α+1」、トレースtは「t=6α2+1」と定義される。この場合、拡大体上の写像として定義されるフロベニウス写像を用いることで、事前に保持する量を削減するとともに、計算量も削減できる。具体的には、フロベニウス写像においては、G3の元は、p乗の計算をこの写像で計算可能という特徴をもつことから、1回で実現することができる。
例えば、フロベニウス写像を組み合わせると、「6α=1+φ+φ3+φ10」が成り立つ。これにより、ある元の6α乗はフロベニウス写像で計算できる。よって、べき指数xを展開することで、実施例1で説明したような事前計算が不要となり、事前計算した値を保持するメモリ量を削減することができる。
具体的には、xをp進展開して「x=x0+px1」を得る。そして、x0およびx1に対して6α進展開して、x=x0,0+(6α)x0,1+p(x1,0+(6α)x1,1)=x0,0+(1+φ+φ3+φ10)x0,1+p(x1,0+(1+φ+φ3+φ10)x1,1)=x0,0+(1+φ3)(1+φ10)x0,1+φx1,0+φ(1+φ3)(1+φ10)x1,1を得ることができる。
したがって、情報処理端末10は、べき乗算を開始する前に、z´=f(P,Q)、z1´=φ3(z´)・z´、z1´=φ10(z1´)・z1´、z2´=φ(z´)、z3´=φ(z1´)を計算することで、メモリ量を削減することができる。
(特殊なペアリング)
上記実施例では、Millerアルゴリズムの後に最終べきを実行するペアリング処理ついて説明したが、これに限定されず、他のペアリング処理にも上記実施例を適用することができる。例えば、使用する曲線によって、Millerアルゴリズムの後に追加処理を行ってから最終べきを実行するペアリング処理も存在するが、このようなペアリング処理であっても、最終べきを実行する直前の値を事前算出して保持することで、同様に処理することができる。
例えば、BN曲線利用時のOptimal Ateペアリングを例にして説明すると、e(P,Q)は式(5)にように算出することができ、この式(6)のうち下線部が実施例1とは異なる追加処理の部分である。この式(6)に対して実施例1を適用すると式(7)となる。したがって、追加処理が存在する場合でも、べき乗算の二乗算をMillerアルゴリズムの二乗算にあわせることができるので、計算コストを削減することができる。
Figure 0006610277
Figure 0006610277
なお、式(7)において、pは標数であり、rはペアリングで使用する群G1、G2、G3の位数であり、P∈G1、Q∈G2、z=e(P,Q)∈G3である。また、tは楕円曲線暗号におけるトレースであり、αは変数p,r,tを与えるパラメータである。kは埋め込み次数であり、(pk−1)をrが割り切る最小の整数である。φはFpkにおけるフロベニウス写像であり、φG2はE(Fp k)におけるフロベニウス写像である。QとφG2は式(8)のように定義される。
Figure 0006610277
[アルゴリズム、曲線]
また、上記実施例では、Millerのアルゴリズムを例にして説明したが、これに限定されるものではない。例えば、Millerのアルゴリズムと同様、楕円曲線上の双線形写像を行うアルゴリズムであれば採用することができる。また、BN曲線に限られず、一般的な曲線を採用することもできる。
[システム]
また、図示した装置の各構成は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、任意の単位で分散または統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[ハードウェア]
図12は、情報処理端末のハードウェア構成例を説明する図である。図12に示すように、情報処理端末10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、CPU(Central Processing Unit)などのプロセッサ10dを有する。また、図12に示した各部は、バス等で相互に接続される。
通信インタフェース10aは、他の装置との通信を制御するインタフェースであり、例えばネットワークインタフェースカードである。HDD10bは、図6等に示した機能を動作させるプログラム、DB、テーブルを記憶する。
プロセッサ10dは、図6等に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、図6等で説明した各機能を実行するプロセスを動作させる。
すなわち、このプロセスは、情報処理端末10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、受付部16、事前算出部17、分割部18、算出部19等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、受付部16、事前算出部17、分割部18、算出部19と同様の処理を実行するプロセスを実行する。
このように情報処理端末10は、プログラムを読み出して実行することで共有鍵生成方法を実行する情報処理装置として動作する。また、情報処理端末10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理端末10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
10 情報処理端末
11 通信部
12 記憶部
12a 変数DB
12b 鍵DB
15 制御部
16 受付部
17 事前算出部
18 分割部
19 算出部

Claims (5)

  1. 識別子を用いる公開鍵暗号方式によって、第1の主体者と第2の主体者との間で共有する共有鍵を生成する、前記第1の主体者が利用する情報処理端末に、
    体で定義される楕円曲線上の加法巡回群上であり、素体の元を座標とする有理点と、拡大体の元を座標とする有理点の2点から前記素体の拡大体上の元を出力するミラーアルゴリズムに、前記第1の主体者と前記第2の主体者のそれぞれに秘密鍵を配布する装置により公開される公開パラメータを入力した演算結果である第1の演算値を算出して保持し、
    記共有鍵を共有する前記第2の主体者の識別子を用いた変数と前記第1の主体者の秘密鍵と前記ミラーアルゴリズムに入力した演算結果である第2の演算値を算出し、
    前記第1の演算値のべき乗算および前記第2の演算値のそれぞれに、最終べき演算を実行して前記共有鍵を生成する
    処理を実行させることを特徴とする共有鍵生成プログラム。
  2. 前記保持する処理は、前記べき乗算の繰り返し回数を前記ミラーアルゴリズムの繰り返し回数ごとに合わせて分割し、分割した各部分べき乗算の結果を保持し、
    前記生成する処理は、前記各部分べき乗算および前記第2の演算値のそれぞれに、最終べき演算を実行して前記共有鍵を生成することを特徴とする請求項1に記載の共有鍵生成プログラム。
  3. 記算出する処理は、前記第1の演算値のべき乗算および前記第2の演算値のそれぞれに、最終べき演算を実行して、前記2点を用いたべき乗算の双線形写像と、前記第2の主体者の識別子を用いた変数および前記第1の主体者の秘密鍵を用いた双線形写像とを算出し、各双線形写像の乗算結果を、前記共有鍵として生成することを特徴とする請求項1に記載の共有鍵生成プログラム。
  4. 識別子を用いる公開鍵暗号方式によって、第1の主体者と第2の主体者との間で共有する共有鍵を生成する、前記第1の主体者が利用する情報処理端末が、
    体で定義される楕円曲線上の加法巡回群上であり、素体の元を座標とする有理点と、拡大体の元を座標とする有理点の2点から前記素体の拡大体上の元を出力するミラーアルゴリズムに、前記第1の主体者と前記第2の主体者のそれぞれに秘密鍵を配布する装置により公開される公開パラメータを入力した演算結果である第1の演算値を算出して保持し、
    記共有鍵を共有する前記第2の主体者の識別子を用いた変数と前記第1の主体者の秘密鍵と前記ミラーアルゴリズムに入力した演算結果である第2の演算値を算出し、
    前記第1の演算値のべき乗算および前記第2の演算値のそれぞれに、最終べき演算を実行して前記共有鍵を生成する
    処理を実行することを特徴とする共有鍵生成方法。
  5. 識別子を用いる公開鍵暗号方式によって、第1の主体者と第2の主体者との間で共有する共有鍵を生成する、前記第1の主体者が利用する情報処理端末において、
    体で定義される楕円曲線上の加法巡回群上であり、素体の元を座標とする有理点と、拡大体の元を座標とする有理点の2点から前記素体の拡大体上の元を出力するミラーアルゴリズムに、前記第1の主体者と前記第2の主体者のそれぞれに秘密鍵を配布する装置により公開される公開パラメータを入力した演算結果である第1の演算値を記憶する記憶部と、
    記共有鍵を共有する前記第2の主体者の識別子を用いた変数と前記第1の主体者の秘密鍵と前記ミラーアルゴリズムに入力した演算結果である第2の演算値を算出する算出部と、
    前記第1の演算値のべき乗算および前記第2の演算値のそれぞれに、最終べき演算を実行して前記共有鍵を生成する生成部と
    を有することを特徴とする情報処理端末。
JP2016006688A 2016-01-15 2016-01-15 共有鍵生成プログラム、共有鍵生成方法および情報処理端末 Active JP6610277B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016006688A JP6610277B2 (ja) 2016-01-15 2016-01-15 共有鍵生成プログラム、共有鍵生成方法および情報処理端末
US15/385,538 US10425227B2 (en) 2016-01-15 2016-12-20 Computer-readable recording medium, shared key generation method, and information processing terminal
CN201710018197.5A CN106992854B (zh) 2016-01-15 2017-01-10 共享密钥生成方法和信息处理终端
DE102017200354.5A DE102017200354A1 (de) 2016-01-15 2017-01-11 Geteilter-Schlüssel-Erzeugungsprogramm, Geteilter-Schlüssel-Erzeugungsverfahren und Informationsverarbeitungsvorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016006688A JP6610277B2 (ja) 2016-01-15 2016-01-15 共有鍵生成プログラム、共有鍵生成方法および情報処理端末

Publications (2)

Publication Number Publication Date
JP2017126970A JP2017126970A (ja) 2017-07-20
JP6610277B2 true JP6610277B2 (ja) 2019-11-27

Family

ID=59256056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016006688A Active JP6610277B2 (ja) 2016-01-15 2016-01-15 共有鍵生成プログラム、共有鍵生成方法および情報処理端末

Country Status (4)

Country Link
US (1) US10425227B2 (ja)
JP (1) JP6610277B2 (ja)
CN (1) CN106992854B (ja)
DE (1) DE102017200354A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108337091A (zh) * 2018-03-22 2018-07-27 北京中电华大电子设计有限责任公司 一种SM9椭圆曲线扭曲线上特定点的p倍点计算方法
EP3836482A4 (en) * 2018-10-19 2022-05-04 Nippon Telegraph And Telephone Corporation AUTHENTICATION AUTHORIZATION SYSTEM, INFORMATION PROCESSING DEVICE, DEVICE, AUTHENTICATION AUTHORIZATION METHOD AND PROGRAM
US11128454B2 (en) 2019-05-30 2021-09-21 Bong Mann Kim Quantum safe cryptography and advanced encryption and key exchange (AEKE) method for symmetric key encryption/exchange
JP7289478B2 (ja) * 2019-08-28 2023-06-12 日本電信電話株式会社 鍵交換システム、機器、情報処理装置、鍵交換方法及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050213758A1 (en) * 2000-02-07 2005-09-29 Lenstra Arjen K Efficient and compact subgroup trace representation ("XTR")
US7076061B1 (en) * 2000-02-07 2006-07-11 Citibank, N.A. Efficient and compact subgroup trace representation (“XTR”)
US20160112069A1 (en) * 2003-09-09 2016-04-21 Peter Lablans Methods and Apparatus in Alternate Finite Field Based Coders and Decoders
JP4585372B2 (ja) 2005-05-02 2010-11-24 日本電信電話株式会社 ペアリング演算装置、ペアリング演算方法、およびペアリング演算プログラム
WO2007080633A1 (ja) * 2006-01-11 2007-07-19 Mitsubishi Denki Kabushiki Kaisha 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム
US8180047B2 (en) * 2006-01-13 2012-05-15 Microsoft Corporation Trapdoor pairings
JP4649456B2 (ja) * 2007-09-26 2011-03-09 株式会社東芝 べき乗計算装置、べき乗計算方法及びプログラム
JP4189828B1 (ja) * 2007-10-30 2008-12-03 国立大学法人 岡山大学 ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム
WO2010024401A1 (ja) * 2008-08-29 2010-03-04 国立大学法人岡山大学 ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム
JP5329879B2 (ja) 2008-09-10 2013-10-30 株式会社東芝 計算装置、方法及びプログラム
CN102405469A (zh) * 2009-04-21 2012-04-04 国立大学法人冈山大学 配对运算装置、配对运算方法以及记录有配对运算程序的记录介质
JP5457848B2 (ja) * 2010-01-18 2014-04-02 日本電信電話株式会社 Idベース認証鍵交換システム、認証鍵交換方法、認証鍵交換装置及びそのプログラムと記録媒体
US10515567B2 (en) * 2010-06-01 2019-12-24 Ternarylogic Llc Cryptographic machines with N-state lab-transformed switching devices
CN102413465B (zh) * 2012-01-04 2015-04-08 西安电子科技大学 基于MIPv6的安全组播密钥管理方法
JP6040052B2 (ja) * 2013-02-26 2016-12-07 日本電信電話株式会社 ペアリング演算装置、ペアリング演算方法、およびプログラム

Also Published As

Publication number Publication date
US10425227B2 (en) 2019-09-24
JP2017126970A (ja) 2017-07-20
US20170207914A1 (en) 2017-07-20
CN106992854B (zh) 2020-11-03
CN106992854A (zh) 2017-07-28
DE102017200354A1 (de) 2017-07-20

Similar Documents

Publication Publication Date Title
CN110363030B (zh) 用于执行基于格的密码操作的方法和处理设备
US10673631B2 (en) Elliptic curve isogeny-based cryptographic scheme
CN110383754B (zh) 基于椭圆曲线同源的密钥协商协议
US11310060B1 (en) Atomic cross-chain swaps using equivalent secret values
US9037623B2 (en) Proxy calculation system, proxy calculation method, proxy calculation requesting apparatus, and proxy calculation program and recording medium therefor
TWI813616B (zh) 用以獲取數位簽署資料之電腦實行方法及系統
JP6610277B2 (ja) 共有鍵生成プログラム、共有鍵生成方法および情報処理端末
JP2005522968A (ja) バイリニアマッピングを使用する署名スキーム
CN108462579B (zh) 一种基于密钥矩阵的密钥分配方法
CN108055128B (zh) Rsa密钥的生成方法、装置、存储介质及计算机设备
JP7238977B2 (ja) 匿名署名システム及び匿名署名方法
CN101296076A (zh) 一种基于ecc的数字签名方案
Chande et al. An improvement of a elliptic curve digital signature algorithm
JP6000188B2 (ja) 鍵交換装置、鍵交換システム、鍵交換方法、およびプログラム
JP5314449B2 (ja) 電子署名検証システム、電子署名装置、検証装置、電子署名検証方法、電子署名方法、検証方法、電子署名プログラム、検証プログラム
CN117795901A (zh) 生成数字签名份额
Ahirwal et al. Signcryption scheme that utilizes elliptic curve for both encryption and signature generation
Chen et al. Blockchain as a CA: A provably secure signcryption scheme leveraging blockchains
US11005656B2 (en) Embedding information in elliptic curve base point
JP5227764B2 (ja) 電子署名検証システム、電子署名装置、検証装置、電子署名検証方法、電子署名方法、検証方法、電子署名プログラム、検証プログラム
JPH1152854A (ja) 有限体上の四則演算装置及び楕円曲線上の群演算装置
CN111510299B (zh) 联合数字签名生成方法、电子设备和计算机可读介质
JP2004253950A (ja) 事前計算による電子署名高速生成方法および装置
US20230085577A1 (en) Secured performance of an elliptic curve cryptographic process
JP3518680B2 (ja) 素数生成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190917

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191014

R150 Certificate of patent or registration of utility model

Ref document number: 6610277

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150