JP5403630B2 - スカラ倍算器及びスカラ倍算プログラム - Google Patents

スカラ倍算器及びスカラ倍算プログラム Download PDF

Info

Publication number
JP5403630B2
JP5403630B2 JP2010540535A JP2010540535A JP5403630B2 JP 5403630 B2 JP5403630 B2 JP 5403630B2 JP 2010540535 A JP2010540535 A JP 2010540535A JP 2010540535 A JP2010540535 A JP 2010540535A JP 5403630 B2 JP5403630 B2 JP 5403630B2
Authority
JP
Japan
Prior art keywords
scalar
mod
register
storing
storage means
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 - Fee Related
Application number
JP2010540535A
Other languages
English (en)
Other versions
JPWO2010061951A1 (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 国立大学法人 岡山大学
Priority to JP2010540535A priority Critical patent/JP5403630B2/ja
Publication of JPWO2010061951A1 publication Critical patent/JPWO2010061951A1/ja
Application granted granted Critical
Publication of JP5403630B2 publication Critical patent/JP5403630B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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
    • 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/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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Chemical Vapour Deposition (AREA)
  • Numerical Control (AREA)

Description

本発明は、有理点Pのスカラ倍算[s]Pを行うスカラ倍算器及びスカラ倍算プログラムに関する。
従来、インターネットなどの電気通信回線を利用して、インターネットバンキングや行政機関への電子申請などのような各種のサービスが提供されてきている。
このようなサービスを利用する場合には、サービスの利用者が、成りすましや架空の人間などではなく、適正な利用者であることを確認するための認証処理が必要である。そこで、信頼性の高い認証方法として、公開鍵と秘密鍵を用いる公開鍵暗号をベースとした電子認証技術がよく利用されていた。
昨今では、より多くの利用者を効率よく管理しやすくするために、IDベース暗号やグループ署名を用いた認証システムが提案されている。
IDベース暗号やグループ署名では、ペアリング演算とともに、所要のべき乗算やスカラ倍算が行われており、認証処理に要する時間をできるだけ短縮させるには、これらの演算を高速に実行することが求められていた。
そのため、べき乗算やスカラ倍算をバイナリ法やWindow法などを用いて高速化することが提案されていた。
さらに、スカラ倍算においては、写像を利用することにより演算回数を削減して高速化する手法が提案されていた(例えば、特許文献1、特許文献2参照。)。
特開2004−271792号公報 特開2007−41461号公報
しかしながら、単に写像を利用して演算回数を削減するだけでは高速化が十分ではなく、特に、1万人を超えるような利用者を対象とした認証処理を数秒以内で完了させることが困難であったため、実用に耐えないおそれがあった。
本発明者らはこのような現状に鑑み、スカラ倍算を高速化することにより実用性を向上させるべく研究開発を行って、本発明を成すに至ったものである。
本発明のスカラ倍算器では、整数変数χを用いて、埋め込み次数k=12における標数p、位数r、フロベニウス自己準同型写像のトレースtが、
p(χ)=36χ4−36χ3+24χ2−6χ+1,
r(χ)=36χ4−36χ3+18χ2−6χ+1=p(χ)+1−t(χ),
t(χ)=6χ2+1,
として与えられる楕円曲線の有理点が成す加法群E(Fp)の有理点Pのスカラ倍算[s]Pを演算するスカラ倍算器であって、ツイスト次数dを6とし、k=d×eとなる正整数eを2として、
[p2]P=φ'2(P),
となるフロベニウス写像φ'2を用い、
[6χ2−4χ+1]P=[(-2χ+1)p2]P=[-2χ+1]φ'2(P)
であることから、6χ2−4χ+1=νとして前記スカラsをν進数展開することにより
s=s1ν+s2,s2<ν,
とし、
s≡(-2χ+1)s1p2+s2 mod r,
であることから、(-2χ+1)s1部分をν進数展開して、
s≡(s3ν+s4)p2+s2≡s5p4+s4p2+s2 mod r,
とし、p4≡p2−1 mod rであることから、
s≡(s4+s5)p2+(s2−s5) mod r,
であることを利用して、スカラ倍算[s]Pを、
[s]P=([s4+s5]φ'2+[s2−s5])P,
として演算すべく、前記スカラsの値を記憶する記憶手段と、前記係数s1,s2,s3,s4,s5をそれぞれ記憶する第1〜5補助記憶手段とを設け、前記スカラsをν進数展開して得られた値を前記第1補助記憶手段と前記第2補助記憶手段に記憶させ、(-2χ+1)s1をν進数展開して得られた値を前記第3補助記憶手段と前記第4補助記憶手段に記憶させ、(-2χ+1)s3の値を前記第5補助記憶手段に記憶させることとした。
また、本発明のスカラ倍算プログラムでは、整数変数χを用いて、埋め込み次数k=12における標数p、位数r、フロベニウス自己準同型写像のトレースtが、
p(χ)=36χ4−36χ3+24χ2−6χ+1,
r(χ)=36χ4−36χ3+18χ2−6χ+1=p(χ)+1−t(χ),
t(χ)=6χ2+1,
として与えられる楕円曲線の有理点が成す加法群E(Fp)の有理点Pのスカラ倍算[s]Pを、CPUを備えた電子計算機に演算させるスカラ倍算プログラムであって、ツイスト次数dを6とし、k=d×eとなる正整数eを2として、
[p2]P=φ'2(P),
となるフロベニウス写像φ'2を用い、
[6χ2−4χ+1]P=[(-2χ+1)p2]P=[-2χ+1]φ'2(P)
であることから、6χ2−4χ+1=νとして前記スカラsをν進数展開することにより
s=s1ν+s2,s2<ν,
とし、
s≡(-2χ+1)s1p2+s2 mod r,
であることから、(-2χ+1)s1部分をν進数展開して、
s≡(s3ν+s4)p2+s2≡s5p4+s4p2+s2 mod r,
とし、p4≡p2−1 mod rであることから、
s≡(s4+s5)p2+(s2−s5) mod r,
であることを利用して、スカラ倍算[s]Pを、
[s]P=([s4+s5]φ'2+[s2−s5])P,
として前記電子計算機に演算させるべく、前記スカラsをν進数展開して得られる前記s1を第1のレジスタに格納させるとともに前記s2を第2のレジスタに格納させるステップと、(-2χ+1)s1をν進数展開して得られる前記s3を第3のレジスタに格納させるとともに前記s4を第4のレジスタに格納させるステップと、(-2χ+1)s3の値を前記s5の値として第5のレジスタに格納させるステップとを有することとした。
また、本発明のスカラ倍算器では、整数変数χを用いて、埋め込み次数k=8における標数p、位数r、フロベニウス自己準同型写像のトレースtが、
p(χ)=(81χ6+54χ5+45χ4+12χ3+13χ2+6χ+1)/4,
r(χ)=9χ4+12χ3+8χ2+4χ+1,
t(χ)=−9χ3−3χ2−2χ,
として与えられる楕円曲線の有理点が成す加法群E(Fp)の有理点Pのスカラ倍算[s]Pを演算するスカラ倍算器であって、
ツイスト次数dを4とし、k=d×eとなる正整数eを2として、
[p2]P=φ'2(P),
となるフロベニウス写像φ'2を用い、
[3χ2+2χ]P=[(-2χ−1)p2]P=[-2χ−1]φ'2(P)
であることから、3χ2+2χ=νとして前記スカラsをν進数展開することにより
s=s1ν+s2,s2<ν,
とし、
s≡(-2χ−1)s1p2+s2 mod r,
であることから、(-2χ−1)s1部分をν進数展開して、
s≡(s3ν+s4)p2+s2≡s5p4+s4p2+s2 mod r,
とし、p4≡−1 mod rであることから、
s≡s4p2+(s2−s5) mod r,
であることを利用して、スカラ倍算[s]Pを、
[s]P=([s4]φ'2+[s2−s5])P,
として演算すべく、前記スカラsの値を記憶する記憶手段と、前記係数s1,s2,s3,s4,s5をそれぞれ記憶する第1〜5補助記憶手段とを設け、前記スカラsをν進数展開して得られた値を前記第1補助記憶手段と前記第2補助記憶手段に記憶させ、(-2χ−1)s1をν進数展開して得られた値を前記第3補助記憶手段と前記第4補助記憶手段に記憶させ、(-2χ−1)s3の値を前記第5補助記憶手段に記憶させることとした。
また、本発明のスカラ倍算プログラムでは、整数変数χを用いて、埋め込み次数k=8における標数p、位数r、フロベニウス自己準同型写像のトレースtが、
p(χ)=(81χ6+54χ5+45χ4+12χ3+13χ2+6χ+1)/4,
r(χ)=9χ4+12χ3+8χ2+4χ+1,
t(χ)=−9χ3−3χ2−2χ,
として与えられる楕円曲線の有理点が成す加法群E(Fp)の有理点Pのスカラ倍算[s]Pを、CPUを備えた電子計算機に演算させるスカラ倍算プログラムであって、ツイスト次数dを4とし、k=d×eとなる正整数eを2として、
[p2]P=φ'2(P),
となるフロベニウス写像φ'2を用い、
[3χ2+2χ]P=[(-2χ−1)p2]P=[-2χ−1]φ'2(P)
であることから、3χ2+2χ=νとして前記スカラsをν進数展開することにより
s=s1ν+s2,s2<ν,
とし、
s≡(-2χ−1)s1p2+s2 mod r,
であることから、(-2χ−1)s1部分をν進数展開して、
s≡(s3ν+s4)p2+s2≡s5p4+s4p2+s2 mod r,
とし、p4≡−1 mod rであることから、
s≡s4p2+(s2−s5) mod r,
であることを利用して、スカラ倍算[s]Pを、
[s]P=([s4]φ'2+[s2−s5])P,
として前記電子計算機に演算させるべく、前記スカラsをν進数展開して得られる前記s1を第1のレジスタに格納させるとともに前記s2を第2のレジスタに格納させるステップと、(-2χ−1)s1をν進数展開して得られる前記s3を第3のレジスタに格納させるとともに前記s4を第4のレジスタに格納させるステップと、(-2χ−1)s3の値を前記s5の値として第5のレジスタに格納させるステップとを有することとした。
本発明によれば、スカラ倍算[s]Pを演算するに当たり、スカラsをν進展開してスカラsの大きさを小さくするとともに、
[p2]P=φ'2(P)
を満たすフロベニウス写像φ'2(P)を用いることにより、スカラ倍算[s]Pの演算量をほぼ半減させることができ、スカラ倍算を高速化できる。
本発明の実施形態にかかるスカラ倍算器を備えた電子計算機の概略模式図である。 本発明の実施形態にかかるスカラ倍算プログラムのフローチャートである。
10 電子計算機
11 CPU
12 記憶装置
13 メモリ装置
14 バス
110 スカラ値用レジスタ
111 第1のレジスタ
112 第2のレジスタ
113 第3のレジスタ
114 第4のレジスタ
115 第5のレジスタ5
本発明の実施形態を説明するにあたり、最初に埋め込み次数k=12の場合について説明し、その後、埋め込み次数k=8の場合について説明する。
本実施形態のスカラ倍算器及びスカラ倍算プログラムで実行されるスカラ倍算は、埋め込み次数k=12の場合、標数p、位数r、フロベニウス自己準同型写像のトレースtが、
p(χ)=36χ4−36χ3+24χ2−6χ+1, ・・・(式1)
r(χ)=36χ4−36χ3+18χ2−6χ+1=p(χ)+1−t(χ), ・・・(式2)
t(χ)=6χ2+1, ・・・(式3)
として与えられる楕円曲線の有理点が成す加法群E(Fp)の有理点Pのスカラ倍算[s]Pである。この楕円曲線は、ペアリングフレンドリ曲線の1種としてBarreto-Naehrig曲線(以下、「BN曲線」という。)が知られているものである。
このBN曲線で表される楕円曲線に対しては、部分体ツイスト曲線が存在することが知られている。特に、埋め込み次数k=12の場合には、6次のツイスト曲線が知られており、
[p2]P=φ'2(P),
となるフロベニウス写像φ'2が知られている。
このフロベニウス写像φ'2を用いることにより、スカラ演算を高速化することができることを利用するとともに、本発明では、以下に説明する関係式を利用してスカラ演算を高速化している。
まず、式2より下式が得られる。
36χ4−36χ3+18χ2−6χ+1≡0 mod r. ・・・(式4)
また、p≡t−1 mod rであるので、下式が得られる。
p2−6χp+3p−6χ+1≡0 mod r. ・・・(式5)
ここで、式5を変形することにより下式が得られる。
(−6χ+3)p≡−p2+6χ−1 mod r. ・・・(式6)
ここで、式6の両辺を平方することにより下式が得られる。
(−6χ+3)2p2≡(p2−6χ+1)2 mod r,
36χ2p2−36χp2+9p2≡p4−12χp2+2p2+36χ2−12χ+1 mod r. ・・・(式7)
さらに、p4+1≡p2 mod rであることを利用して式7を変形することにより、下式が得られる。
36χ2p2−36χp2+9p2≡−12χp2+3p2+36χ2−12χ mod r,
36χ2(p2−1)≡(24χ−6)p2−12χ mod r,
2(p2−1)≡(4χ−1)p2−2χ mod r. ・・・(式8)
そして、式8の両辺に(p2−1)-1を掛ける際に、
p4−p2+1≡0 mod r, ・・・(式9)
であることから、
−p2(p2−1)≡1 mod r, ・・・(式10)
であるので、
(p2−1)-1≡−p2 mod r, ・・・(式11)
であることを利用して、式8を下式にように変形できる。
2≡−(4χ−1)p4+2χp2
≡−(4χ−1)(p2−1)+2χp2 mod r. ・・・(式12)
したがって、式12を変形することにより下式が得られる。
2−4χ+1≡(−2χ−1)p2 mod r, ・・・(式13)
これにより、下式のフロベニウス写像φ'2の関係式が得られる。
[6χ2−4χ+1]P=[(-2χ+1)p2]P=[-2χ+1]φ'2(P), ・・・(式14)
次いで、フロベニウス写像φ'2を用いたスカラ倍算[s]Pを考える。ここで、便宜上、
ν=6χ2−4χ+1, ・・・(式15)
とする。
この場合、スカラsのν進展開は下式のように表すことができる。
s=s1ν+s2,s2<ν. ・・・(式16)
ここで、式16は、式15と式14より、下式のように表すことができる。
s≡(-2χ+1)s1p2+s2 mod r. ・・・(式17)
なお、(-2χ+1)s1はνより大きくなることがある。そこで、(-2χ+1)s1をさらにν進展開して下式のように表すこととする。
s≡(s3ν+s4)p2+s2 mod r. ・・・(式18)
ここで式14によりs3νp2≡(-2χ+1)s3p4であるので、(-2χ+1)s3=s5とすることにより、式18は下式のように表すことができる。
s≡s5p4+s4p2+s2 mod r. ・・・(式19)
この場合、s4とs2はνよりも小さい一方で、s5はνより小さくないかもしれないが、そのような場合でもそれほど大きくなることはなく、問題となることはない。
式9よりp4≡p2−1 mod rであることから、式19は下式のように変形できる。
s≡s5(p2−1)+s4p2+s2≡(s4+s5)p2+(s2−s5) mod r. ・・・(式20)
ここで、
A=s4+s5, ・・・(式21)
B=s2−s5, ・・・(式22)
とすると、スカラ倍算[s]Pは
[s]P=([A]φ'2+[B])P, ・・・(式23)
として演算できる。
したがって、たとえば、256ビットサイズのスカラsに対するスカラ倍算を演算する際には、A及びBは128ビットサイズとなるので、演算量をほぼ半減させてスカラ倍算を高速化することができる。
上述したスカラ倍算を行うスカラ倍算器は、図1に示すように電子計算機10で構成されるものであり、演算処理を実行するCPU11と、スカラ倍算プログラム及びスカラ倍算プログラムで使用する有理点のデータなどを記憶したハードディスクなどの記憶装置12と、スカラ倍算プログラムを展開して実行可能とするとともに、スカラ倍算プログラムの実行にともなって生成されたデータを一時的に記憶するRAMなどで構成されたメモリ装置13を備えている。図1中、14はバスである。
本実施形態では、CPU11内にスカラsの値を記憶するスカラ値用レジスタ110を記憶手段として設けることとしている。さらに、CPU11内には、上述したようにスカラsのν進数展開にともなって生じる係数s1,s2,s3,s4,s5の値をそれぞれ記憶する第1〜5のレジスタ111,112,113,114,115を第1〜5補助記憶手段として設けている。なお、スカラ値用レジスタ110で構成した記憶手段、及び第1〜5のレジスタ111,112,113,114,115で構成した第1〜5補助記憶手段は、CPU11内にではなく、メモリ装置13などのCPU11以外の記憶手段に設けてもよい。
スカラ倍算器として機能する電子計算機10では、スカラ倍算の実行が必要となった場合にスカラ倍算プログラムを起動して、スカラ倍算を実行している。
すなわち、電子計算機10では、起動したスカラ倍算プログラムによって、図2に示すフローチャートに基づいてスカラ倍算を行い、演算結果を出力している。
起動したスカラ倍算プログラムによって、電子計算機10では、CPU11を入力手段として機能させて、記憶装置12またはメモリ装置13に記憶されている整数変数χのデータと、有理点Pのデータを読み出して、CPU11の内部に設けている所定のレジスタにそれぞれ入力している(ステップS1)。
さらに、電子計算機10では、スカラ倍算プログラムによってCPU11を入力手段として機能させて、スカラ倍算におけるスカラsの値を入力させている。そして、CPU11を記憶手段として機能させて、入力されたスカラsの値をスカラ値用レジスタ110に記憶している(ステップS2)。
次いで、電子計算機10では、スカラ倍算プログラムによってCPU11を演算手段として機能させて、上述したようにスカラsをν進数展開して、ν進数展開の係数であるs1とs2を算出している(ステップS3)。すなわち、係数s1は、スカラsをνで除した際の商であり、係数s2は、スカラsをνで除した際の剰余である。
算出されたν進数展開の係数であるs1とs2の値は、CPU11を記憶手段として機能させて、第1のレジスタ111及び第2のレジスタ112にそれぞれ格納して、記憶させている(ステップS4)。
次いで、電子計算機10では、CPU11を演算手段として機能させて(-2χ+1)s1の値を演算し(ステップS5)、上述したように(-2χ+1)s1をν進数展開して、ν進数展開の係数であるs3とs4を算出している(ステップS6)。すなわち、係数s3は、(-2χ+1)s1をνで除した際の商であり、係数s4は、(-2χ+1)s1をνで除した際の剰余である。
算出された(-2χ+1)s1のν進数展開の係数であるs3とs4の値は、CPU11を記憶手段として機能させて、第3のレジスタ113及び第4のレジスタ114にそれぞれ格納して、記憶させている(ステップS7)。
次いで、電子計算機10では、CPU11を演算手段として機能させて(-2χ+1)s3の値を演算し(ステップS8)、この値を第5のレジスタ115にそれぞれ格納して、記憶させている(ステップS9)。
次いで、電子計算機10では、CPU11を演算手段として機能させて、第1〜5のレジスタ11,112,113,114,115に記憶された値を用いて、s4+s5の値及びs2−s5の値を演算している(ステップS10)。
演算されたs4+s5の値及びs2−s5の値は、それぞれ所定のレジスタに格納して、記憶させている。説明の便宜上、s4+s5=A、s2−s5=Bとする。
次いで、電子計算機10では、CPU11を演算手段として機能させて、スカラ倍算[s]Pを、[s]P=([A]φ'2+[B])Pとして演算している(ステップS11)。ここで、A及びBの値の大きさが、スカラsの大きさの半分程度となることにより、演算時間を大きく削減できる。コンピュータシミュレーションでは、一般的なバイナリ法でのスカラ倍算と比較して、40%程度の高速化が可能であった。
なお、ステップS11で行っている[s]P=([A]φ'2+[B])Pの演算は、具体的には、以下のように行っている。
ここで、電子計算機10には、スカラ演算[s]Pの演算結果を記憶する演算結果用レジスタRと、演算に必要となる値を一時的に記憶しておく第1補助レジスタCと第2補助レジスタDとを設けている。
まず、電子計算機10は、初期化処理として、演算結果用レジスタRを零元とし、第1補助レジスタCにφ'2(P)を代入し、第2補助レジスタDに有理点Pを代入している。
また、上記のAとBをそれぞれ2進数表示した際のi番目の桁の値をAiとBiと表示するものとして、電子計算機10では、AとBの全桁にわたって以下の演算ループを実行することとしている。
i番目の桁において、Ai=1かつBi=1の場合には、演算結果用レジスタRに、演算結果用レジスタRと第2補助レジスタDの和を代入する。すなわち、R←R+Dである。
i番目の桁において、Ai=1かつBi=0の場合には、演算結果用レジスタRに、演算結果用レジスタRと第1補助レジスタCの和を代入する。すなわち、R←R+Cである。
i番目の桁において、Ai=0かつBi=1の場合には、演算結果用レジスタRに、演算結果用レジスタRと有理点Pの和を代入する。すなわち、R←R+Pである。
そして、演算結果用レジスタRに、演算結果用レジスタRと演算結果用レジスタRの和を代入する。すなわち、R←R+Rである。
その後、電子計算機10は、デクリメントまたはインクリメントを行って、AiとBiの桁をずらしながらAとBの全桁にわたって演算を行うことによりスカラ演算[s]Pの演算を行って、演算結果を出力可能としている。
本実施形態の演算では、AとBとを同時進行で演算していることにより、AとBの値の大きさが、スカラsの大きさの半分程度となることのメリットを最大限利用することができる。
次に、埋め込み次数k=8の場合について説明する。
埋め込み次数k=8の場合、標数p、位数r、フロベニウス自己準同型写像のトレースtが、
p(χ)=(81χ6+54χ5+45χ4+12χ3+13χ2+6χ+1)/4,
r(χ)=9χ4+12χ3+8χ2+4χ+1,
t(χ)=−9χ3−3χ2−2χ,
として与えられるBN曲線の有理点が成す加法群E(Fp)の有理点Pでのスカラ倍算[s]Pとする。
この場合でも、部分体ツイスト曲線が存在することが知られている。特に、埋め込み次数k=8の場合には、4次のツイスト曲線が知られており、
[p2]P=φ'2(P),
となるフロベニウス写像φ'2が知られている。
また、埋め込み次数k=8の場合には、上述した式14の代わりに、
[3χ2+2χ]P=[(-2χ−1)p2]P=[-2χ−1]φ'2(P), ・・・(式24)
の関係式があることを利用している。
そして、埋め込み次数k=12の場合と同様に、3χ2+2χ=νとして前記スカラsをν進数展開すると、下式のように表すことができる。
s=s1ν+s2,s2<ν. ・・・(式25)
ここで、式24より、式25は下式のように表すことができる。
s≡(-2χ−1)s1p2+s2 mod r. ・・・(式26)
なお、(-2χ−1)s1はνより大きくなることがある。そこで、(-2χ−1)s1をさらにν進展開して下式のように表すこととする。
s≡(s3ν+s4)p2+s2 mod r. ・・・(式27)
ここで式24によりs3νp2≡(-2χ−1)s3p4であるので、(-2χ−1)s3=s5とすることにより、式27は下式のように表すことができる。
s≡s5p4+s4p2+s2 mod r. ・・・(式28)
この場合、s4とs2はνよりも小さい一方で、s5はνより小さくないかもしれないが、そのような場合でもそれほど大きくなることはなく、問題となることはない。
埋め込み次数k=8の場合、p4≡−1 mod rであることから、式28は下式のように変形できる。
s≡−s5+s4p2+s2≡s4p2+(s2−s5) mod r. ・・・(式29)
ここで、
A=s4, ・・・(式30)
B=s2−s5, ・・・(式31)
とすると、スカラ倍算[s]Pは、埋め込み次数k=12の場合と同様に
[s]P=([A]φ'2+[B])P,
として演算できる。
したがって、埋め込み次数k=8の場合には、埋め込み次数k=12の場合と比較して、第5のレジスタ115に格納される値の計算式、及び式30のAの値が異なるだけであり、埋め込み次数k=12の場合と同様に演算できる。
そこで、埋め込み次数k=8の場合におけるスカラ演算器は、埋め込み次数k=12の場合におけるスカラ演算器と同じとし、図2に示したフローチャートのステップS8での計算式を(-2χ−1)s3とし、ステップS9でs5の値を(-2χ−1)s3とし、ステップS10でA=s4としている。
これにより、埋め込み次数k=8の場合でも、A及びBの値の大きさが、スカラsの大きさの半分程度となることにより、スカラ倍算[s]Pの演算時間を大きく削減できる。
本発明によれば、グループ署名の演算中に必要となるスカラ演算の速度を向上させて、グループ署名の処理の高速化をはかることができる。

Claims (4)

  1. 整数変数χを用いて、埋め込み次数k=12における標数p、位数r、フロベニウス自己準同型写像のトレースtが、
    p(χ)=36χ4−36χ3+24χ2−6χ+1,
    r(χ)=36χ4−36χ3+18χ2−6χ+1=p(χ)+1−t(χ),
    t(χ)=6χ2+1,
    として与えられる楕円曲線の有理点が成す加法群E(Fp)の有理点Pのスカラ倍算[s]Pを演算するスカラ倍算器であって、
    ツイスト次数dを6とし、k=d×eとなる正整数eを2として、
    [p2]P=φ'2(P),
    となるフロベニウス写像φ'2を用い、
    [6χ2−4χ+1]P=[(-2χ+1)p2]P=[-2χ+1]φ'2(P)
    であることから、6χ2−4χ+1=νとして前記スカラsをν進数展開することにより
    s=s1ν+s2,s2<ν,
    とし、
    s≡(-2χ+1)s1p2+s2 mod r,
    であることから、(-2χ+1)s1部分をν進数展開して、
    s≡(s3ν+s4)p2+s2≡s5p4+s4p2+s2 mod r,
    とし、p4≡p2−1 mod rであることから、
    s≡(s4+s5)p2+(s2−s5) mod r,
    であることを利用して、スカラ倍算[s]Pを、
    [s]P=([s4+s5]φ'2+[s2−s5])P,
    として演算すべく、
    前記スカラsの値を記憶する記憶手段と、
    前記係数s1,s2,s3,s4,s5をそれぞれ記憶する第1〜5補助記憶手段と
    を設け、
    前記スカラsをν進数展開して得られた値を前記第1補助記憶手段と前記第2補助記憶手段に記憶させ、(-2χ+1)s1をν進数展開して得られた値を前記第3補助記憶手段と前記第4補助記憶手段に記憶させ、(-2χ+1)s3の値を前記第5補助記憶手段に記憶させているスカラ倍算器。
  2. 整数変数χを用いて、埋め込み次数k=12における標数p、位数r、フロベニウス自己準同型写像のトレースtが、
    p(χ)=36χ4−36χ3+24χ2−6χ+1,
    r(χ)=36χ4−36χ3+18χ2−6χ+1=p(χ)+1−t(χ),
    t(χ)=6χ2+1,
    として与えられる楕円曲線の有理点が成す加法群E(Fp)の有理点Pのスカラ倍算[s]Pを、CPUを備えた電子計算機に演算させるスカラ倍算プログラムであって、
    ツイスト次数dを6とし、k=d×eとなる正整数eを2として、
    [p2]P=φ'2(P),
    となるフロベニウス写像φ'2を用い、
    [6χ2−4χ+1]P=[(-2χ+1)p2]P=[-2χ+1]φ'2(P)
    であることから、6χ2−4χ+1=νとして前記スカラsをν進数展開することにより
    s=s1ν+s2,s2<ν,
    とし、
    s≡(-2χ+1)s1p2+s2 mod r,
    であることから、(-2χ+1)s1部分をν進数展開して、
    s≡(s3ν+s4)p2+s2≡s5p4+s4p2+s2 mod r,
    とし、p4≡p2−1 mod rであることから、
    s≡(s4+s5)p2+(s2−s5) mod r,
    であることを利用して、スカラ倍算[s]Pを、
    [s]P=([s4+s5]φ'2+[s2−s5])P,
    として前記電子計算機に演算させるべく、
    前記スカラsをν進数展開して得られる前記s1を第1のレジスタに格納させるとともに前記s2を第2のレジスタに格納させるステップと、
    (-2χ+1)s1をν進数展開して得られる前記s3を第3のレジスタに格納させるとともに前記s4を第4のレジスタに格納させるステップと、
    (-2χ+1)s3の値を前記s5の値として第5のレジスタに格納させるステップと、
    を有するスカラ倍算プログラム。
  3. 整数変数χを用いて、埋め込み次数k=8における標数p、位数r、フロベニウス自己準同型写像のトレースtが、
    p(χ)=(81χ6+54χ5+45χ4+12χ3+13χ2+6χ+1)/4,
    r(χ)=9χ4+12χ3+8χ2+4χ+1,
    t(χ)=−9χ3−3χ2−2χ,
    として与えられる楕円曲線の有理点が成す加法群E(Fp)の有理点Pのスカラ倍算[s]Pを演算するスカラ倍算器であって、
    ツイスト次数dを4とし、k=d×eとなる正整数eを2として、
    [p2]P=φ'2(P),
    となるフロベニウス写像φ'2を用い、
    [3χ2+2χ]P=[(-2χ−1)p2]P=[-2χ−1]φ'2(P)
    であることから、3χ2+2χ=νとして前記スカラsをν進数展開することにより
    s=s1ν+s2,s2<ν,
    とし、
    s≡(-2χ−1)s1p2+s2 mod r,
    であることから、(-2χ−1)s1部分をν進数展開して、
    s≡(s3ν+s4)p2+s2≡s5p4+s4p2+s2 mod r,
    とし、p4≡−1 mod rであることから、
    s≡s4p2+(s2−s5) mod r,
    であることを利用して、スカラ倍算[s]Pを、
    [s]P=([s4]φ'2+[s2−s5])P,
    として演算すべく、
    前記スカラsの値を記憶する記憶手段と、
    前記係数s1,s2,s3,s4,s5をそれぞれ記憶する第1〜5補助記憶手段と
    を設け、
    前記スカラsをν進数展開して得られた値を前記第1補助記憶手段と前記第2補助記憶手段に記憶させ、(-2χ−1)s1をν進数展開して得られた値を前記第3補助記憶手段と前記第4補助記憶手段に記憶させ、(-2χ−1)s3の値を前記第5補助記憶手段に記憶させているスカラ倍算器。
  4. 整数変数χを用いて、埋め込み次数k=8における標数p、位数r、フロベニウス自己準同型写像のトレースtが、
    p(χ)=(81χ6+54χ5+45χ4+12χ3+13χ2+6χ+1)/4,
    r(χ)=9χ4+12χ3+8χ2+4χ+1,
    t(χ)=−9χ3−3χ2−2χ,
    として与えられる楕円曲線の有理点が成す加法群E(Fp)の有理点Pのスカラ倍算[s]Pを、CPUを備えた電子計算機に演算させるスカラ倍算プログラムであって、
    ツイスト次数dを4とし、k=d×eとなる正整数eを2として、
    [p2]P=φ'2(P),
    となるフロベニウス写像φ'2を用い、
    [3χ2+2χ]P=[(-2χ−1)p2]P=[-2χ−1]φ'2(P)
    であることから、3χ2+2χ=νとして前記スカラsをν進数展開することにより
    s=s1ν+s2,s2<ν,
    とし、
    s≡(-2χ−1)s1p2+s2 mod r,
    であることから、(-2χ−1)s1部分をν進数展開して、
    s≡(s3ν+s4)p2+s2≡s5p4+s4p2+s2 mod r,
    とし、p4≡−1 mod rであることから、
    s≡s4p2+(s2−s5) mod r,
    であることを利用して、スカラ倍算[s]Pを、
    [s]P=([s4]φ'2+[s2−s5])P,
    として前記電子計算機に演算させるべく、
    前記スカラsをν進数展開して得られる前記s1を第1のレジスタに格納させるとともに前記s2を第2のレジスタに格納させるステップと、
    (-2χ−1)s1をν進数展開して得られる前記s3を第3のレジスタに格納させるとともに前記s4を第4のレジスタに格納させるステップと、
    (-2χ−1)s3の値を前記s5の値として第5のレジスタに格納させるステップと、
    を有するスカラ倍算プログラム。
JP2010540535A 2008-11-28 2009-11-30 スカラ倍算器及びスカラ倍算プログラム Expired - Fee Related JP5403630B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010540535A JP5403630B2 (ja) 2008-11-28 2009-11-30 スカラ倍算器及びスカラ倍算プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008305121 2008-11-28
JP2008305121 2008-11-28
PCT/JP2009/070127 WO2010061951A1 (ja) 2008-11-28 2009-11-30 スカラ倍算器及びスカラ倍算プログラム
JP2010540535A JP5403630B2 (ja) 2008-11-28 2009-11-30 スカラ倍算器及びスカラ倍算プログラム

Publications (2)

Publication Number Publication Date
JPWO2010061951A1 JPWO2010061951A1 (ja) 2012-04-26
JP5403630B2 true JP5403630B2 (ja) 2014-01-29

Family

ID=42225813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010540535A Expired - Fee Related JP5403630B2 (ja) 2008-11-28 2009-11-30 スカラ倍算器及びスカラ倍算プログラム

Country Status (6)

Country Link
US (1) US8374342B2 (ja)
EP (1) EP2369568B1 (ja)
JP (1) JP5403630B2 (ja)
KR (1) KR101154845B1 (ja)
CN (1) CN102227759B (ja)
WO (1) WO2010061951A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5769263B2 (ja) * 2010-10-08 2015-08-26 国立大学法人 岡山大学 有理点情報圧縮装置、有理点情報圧縮方法及び有理点情報圧縮プログラム
CN104579661B (zh) * 2013-10-21 2018-05-01 航天信息股份有限公司 基于身份的电子签章的实现方法和装置
JP6228940B2 (ja) * 2015-01-07 2017-11-08 日本電信電話株式会社 標本装置、標本方法、およびプログラム
EP4167213B1 (en) * 2017-01-18 2024-03-13 Nippon Telegraph And Telephone Corporation Secret computation method, secret computation system, secret computation apparatus, and program
CN108337091A (zh) * 2018-03-22 2018-07-27 北京中电华大电子设计有限责任公司 一种SM9椭圆曲线扭曲线上特定点的p倍点计算方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006184831A (ja) * 2004-12-28 2006-07-13 Nippon Telegr & Teleph Corp <Ntt> 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム
JP2007041461A (ja) * 2005-08-05 2007-02-15 Hitachi Ltd 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4184120B2 (ja) 2003-03-07 2008-11-19 日本電信電話株式会社 楕円曲線上スカラー倍演算装置、及び楕円曲線上スカラー倍演算プログラム
CN101031944A (zh) * 2004-09-30 2007-09-05 索尼株式会社 加密计算方法、加密系统和计算机程序

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006184831A (ja) * 2004-12-28 2006-07-13 Nippon Telegr & Teleph Corp <Ntt> 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム
JP2007041461A (ja) * 2005-08-05 2007-02-15 Hitachi Ltd 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CSNG200701375076; 赤根 正剛,加藤 英洋,沖本 卓求弥,野上 保之,森川 良孝: '"Ateペアリングに適したBarreto-Naehrig曲線のパラメータ設定"' コンピュータセキュリティシンポジウム2007 論文集 第2007巻,第10号, 20071031, p.495-500, 社団法人情報処理学会 *
JPN6013047599; 赤根 正剛,加藤 英洋,沖本 卓求弥,野上 保之,森川 良孝: '"Ateペアリングに適したBarreto-Naehrig曲線のパラメータ設定"' コンピュータセキュリティシンポジウム2007 論文集 第2007巻,第10号, 20071031, p.495-500, 社団法人情報処理学会 *
JPN6013047600; Masataka AKANE, Yasuyuki NOGAMI, and Yoshitaka MORIKAWA: '"Fast Ate Pairing Computation of Embedding Degree 12 Using Subfield-Twisted Elliptic Curve"' IEICE TRANSACTIONS on Fundamentals of Electronics, Communications and Computer Sciences VOL.E92-A,NO.2, 20090201, p&#xFF0E *
JPN6013047602; Yasuyuki Nogami, Masataka Akane, Yumi Sakemi, Yoshitaka Morikawa: '"Efficient Pairings on Twisted Elliptic Curve"' Third 2008 International Conference on Convergence and Hybrid Information Technology (ICCIT '08) Volume 2, 20081111, p.430-439 *
JPN6013047604; Roberto Maria Avanzi, Mathieu Ciet, and Francesco Sica: '"Faster Scalar Multiplication on Koblitz Curves Combining Point Halving with the Frobenius Endomorp' LNCS, Public Key Cryptography - PKC 2004 Vol.2947, 200403, p.28-40 *

Also Published As

Publication number Publication date
JPWO2010061951A1 (ja) 2012-04-26
WO2010061951A1 (ja) 2010-06-03
KR20110095328A (ko) 2011-08-24
KR101154845B1 (ko) 2012-06-18
EP2369568A1 (en) 2011-09-28
US20110261955A1 (en) 2011-10-27
US8374342B2 (en) 2013-02-12
CN102227759B (zh) 2015-06-24
EP2369568A4 (en) 2014-03-19
EP2369568B1 (en) 2016-08-31
CN102227759A (zh) 2011-10-26

Similar Documents

Publication Publication Date Title
Unterluggauer et al. Efficient pairings and ECC for embedded systems
JP5360836B2 (ja) ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム
US7603558B2 (en) Montgomery transform device, arithmetic device, IC card, encryption device, decryption device and program
Renes et al. qDSA: small and secure digital signatures with curve-based Diffie–Hellman key pairs
JP5403630B2 (ja) スカラ倍算器及びスカラ倍算プログラム
WO2012090284A1 (ja) 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法、剰余演算プログラム、演算装置のゼロ判定方法およびゼロ判定プログラム
JP3785044B2 (ja) べき乗剰余計算装置、べき乗剰余計算方法及び記録媒体
Koppermann et al. 18 seconds to key exchange: Limitations of supersingular isogeny Diffie-Hellman on embedded devices
JP5147085B2 (ja) 演算方法及び演算装置
KR101223498B1 (ko) 타원 곡선 암호 방식에서 공개키를 생성하는 방법 및 상기방법을 수행하는 시스템
US10057064B2 (en) Computational method, computational device and computer software product for montgomery domain
CN111897578A (zh) 一种特征为2的椭圆曲线上标量乘的并行处理方法及装置
JP4616169B2 (ja) モンゴメリ乗算剰余における変換パラメータの計算装置、方法およびそのプログラム
US20240061648A1 (en) Scalar multiplication system, scalar multiplication apparatus, scalar multiplication method and program
RU2392736C1 (ru) Способ генерации и проверки подлинности электронной цифровой подписи, заверяющей электронный документ
WO2012015047A1 (ja) 埋め込み次数1かつ合成数位数の楕円曲線上の有理点のスカラー倍算およびペアリング演算
JP5528842B2 (ja) ハッシングする方法及び装置
JP5168649B2 (ja) ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム
JP5000399B2 (ja) 楕円曲線演算装置および楕円曲線演算方法
Lou et al. An efficient Montgomery exponentiation algorithm by using signed-digit-recoding and folding techniques
JP2003263110A (ja) 楕円曲線上の有理点群の部分群の元生成装置、そのプログラム及び記録媒体
Mahboob et al. Faster polynomial basis finite field squaring and inversion for GF (2 m) with cryptographic software application
JP5769263B2 (ja) 有理点情報圧縮装置、有理点情報圧縮方法及び有理点情報圧縮プログラム
JP2014178506A (ja) 楕円曲線暗号装置
JP2004053814A (ja) 楕円曲線暗号装置及び楕円曲線暗号演算方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131023

R150 Certificate of patent or registration of utility model

Ref document number: 5403630

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees