JP3551853B2 - αYa+βXb+1=0という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体 - Google Patents

αYa+βXb+1=0という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体 Download PDF

Info

Publication number
JP3551853B2
JP3551853B2 JP24207599A JP24207599A JP3551853B2 JP 3551853 B2 JP3551853 B2 JP 3551853B2 JP 24207599 A JP24207599 A JP 24207599A JP 24207599 A JP24207599 A JP 24207599A JP 3551853 B2 JP3551853 B2 JP 3551853B2
Authority
JP
Japan
Prior art keywords
prime number
storage means
candidate value
prime
jacobian
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
JP24207599A
Other languages
English (en)
Other versions
JP2001066987A (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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP24207599A priority Critical patent/JP3551853B2/ja
Priority to CA002316720A priority patent/CA2316720C/en
Priority to US09/645,588 priority patent/US7023990B1/en
Publication of JP2001066987A publication Critical patent/JP2001066987A/ja
Application granted granted Critical
Publication of JP3551853B2 publication Critical patent/JP3551853B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、離散対数型暗号(以下、代数曲線暗号と記す)における安全なパラメータの生成装置、生成方法、および記録媒体に関し、特に、代数曲線のヤコビアン群を用いた離散対数型暗号における安全なパラメータの生成装置、生成方法、および記録媒体に関する。
【0002】
【従来の技術】
離散対数型暗号は、与えられた有限群上の離散対数問題の困難性に基づく公開鍵暗号方式である。暗号の安全性を保つためには、用いる有限群の位数は、ほぼ素数、すなわち、小さな整数と大きな素数の積でなければならない。離散対数型暗号の一種である代数曲線暗号では、ヤコビアン群の位数がほぼ素数である代数曲線を用いる必要がある。
【0003】
最も簡単な代数曲線である楕円曲線の場合には、任意の楕円曲線に対して、そのヤコビアン群の位数を計算する効率的なアルゴリズムが知られている。例えば、1995年、レネ=スクーフ著、カウンティング=ポインツ=オン=エリプティック=カーブズ=オーバー=ファイナイト=フィールズ、ジャーナル=ドゥ=セオリ=ドゥ=ノンブル、7巻、219−254(Rene Schoof、Counting points on elliptic curves over finite fields、Journal de Theorie des Nombres、de Bordeaux 7 (1995)、219−254、Institue deMathematique de Bordeaux)に詳しい記述がある。ヤコビアン群の位数がほぼ素数である楕円曲線を得るには、上記のアルゴリズムを利用して、以下のようにすればよい。
【0004】
1。ランダムな楕円曲線Eを生成する。
2。Eのヤコビアン群の位数nを計算する。
3。nがほぼ素数ならばEを出力し、そうでないならば1に戻る。
【0005】
楕円曲線以外の代数曲線の場合には、例外的な一部の超楕円曲線を除いて、そのヤコビアン群の位数を計算する効率的なアルゴリズムは知られていない。そのため、代数曲線暗号で使用できる代数曲線は、楕円曲線および例外的な一部の超楕円曲線に限定されてしまう。
【0006】
また、ヤコビアン群における要素のh倍演算に関しては、「有田、吉川、宮内、Cab曲線を用いた離散対数型暗号のソフトウェア実装、1999年暗号と情報セキュリティシンポジウム、pp.573−578」が知られている。
【0007】
また、「特開平6−282226号公報」記載の技術は、「任意の素数を選び、素数に対応した暗号化鍵を公開ファイル装置に登録し、素数、暗号鍵に対応する復号鍵表により生成し、素数と共に復号鍵表を復号装置に記憶しておき、暗号化装置が公開ファイル装置より受信者(復号装置)の公開鍵を入手し、平文を楕円曲線上で乗算し、その値を暗号文として復号装置に送信し、復号装置が暗号文から楕円曲線のパラメータを計算し、復号鍵表を用いてパラメータに対応する復号鍵を選び、暗号文を楕円曲線で乗算した値から中国剰余定理を用いて平文を得る」ものである。
【0008】
【発明が解決しようとする課題】
上述した従来技術においては、使用できる代数曲線が、楕円曲線および例外的な一部の超楕円曲線に限定されている。楕円曲線および超楕円曲線は、代数曲線全体から見ると、極めて特殊な代数曲線であり、暗号解読のためのターゲットが狭くなるため、代数曲線暗号の安全性に問題がある。
【0009】
本発明の目的は、従来使用できなかった高次の複雑な代数曲線を代数曲線暗号に用いることを可能とし、代数曲線暗号の安全性を向上させることである。
【0010】
【課題を解決するための手段】
本発明の第1のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置は、
(a)曲線の複雑さの度合いを指定する2つの異なる素数a、b、および、使用したい暗号鍵のサイズnを入力する入力装置と、
(b)前記入力手段に入力された素数a、素数b、暗号鍵のサイズnをそれぞれ記憶するa記憶手段、b記憶手段、および、n記憶手段と、
(c)前記a記憶手段、前記b記憶手段からそれぞれ素数a、素数bを取得し、円のab分体におけるスティッケルバーガー要素ωを演算するスティッケルバーガー要素計算装置と、
(d)前記スティッケルバーガー要素計算装置により演算されたスティッケルバーガー要素ωを記憶するω記憶手段と、
(e)前記a記憶手段、前記b記憶手段、前記n記憶手段、前記ω記憶手段からそれぞれ素数a、素数b、暗号鍵のサイズn、スティッケルバーガー要素ωを取得し、2つの異なる素数a、素数bに対するヤコビ和候補値jおよびヤコビ和候補値jに対応する素数pを演算するヤコビ和候補値計算装置と、
(f)前記ヤコビ和候補値計算装置により演算された素数p、ヤコビ和候補値jをそれぞれ記憶するp記憶手段、およびj記憶手段と、
(g)前記a記憶手段、前記b記憶手段、前記j記憶手段から、それぞれ素数a、素数b、ヤコビ和候補値jを取得し、素数a、素数bで指定される代数曲線のヤコビアン群の位数の複数の候補値からなる集合Hを演算する位数候補値計算装置と、
(h)前記位数候補値計算装置により演算された集合Hを記憶するH記憶手段と、
(i)前記H記憶手段から集合Hを取得し、集合Hの中から概素数性等の安全性条件を満たす候補値hを検索する安全性判定装置と、
(j)前記安全性判定装置により検索された候補値hを記憶するh記憶手段と、
(k)前記a記憶手段、前記b記憶手段、前記p記憶手段、前記h記憶手段からそれぞれ素数a、素数b、素数p、候補値hを取得し、素数a、素数b、素数pで指定される代数曲線でそのヤコビアン群の位数が候補値hと一致する代数曲線のパラメータを演算するパラメータ決定装置と、
(l)前記パラメータ決定装置で演算された代数曲線のパラメータを出力する出力装置と、
を備える。
【0011】
本発明の第2のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置は、前記第1のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置であって、
前記a記憶手段、前記b記憶手段からそれぞれ素数a、素数bを取得し、式ω = Σt [<t/a> + <t/b>] σ_{-t-1}(tはabを法とする既約剰余類の代表系を走り、[λ]は有理数λを超えない最大の整数を表し、<λ>は有理数λの小数部分λ-[λ]を表し、σtは円のab分体におけるガロア写像ζ → ζtを表す(ζは1の原始ab乗根))を用いてスティッケルバーガー要素ωを演算する前記スティッケルバーガー要素計算装置を備える。
【0012】
本発明の第3のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置は、前記第1または第2のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置であって、
前記a記憶手段、前記b記憶手段、前記n記憶手段、前記ω記憶手段からそれぞれ素数a、素数b、暗号鍵のサイズn、スティッケルバーガー要素ωを取得し、1の原始ab乗根で生成される円分体Kの素イデアルを生成する代数的整数γで、その絶対ノルムが2n/(a-1)(b-1)程度のビット長の素数pとなるαをランダムに生成し、式j = γωを用いてヤコビ和候補値jを演算する前記ヤコビ和候補値計算装置を備える。
【0013】
本発明の第4のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置は、前記第1、第2または第3のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置であって、
前記a記憶手段、前記b記憶手段、前記j記憶手段からそれぞれ素数a、素数b、ヤコビ和候補値jを取得し、1以上2ab以下の整数である各kに対して、ζを1の原始ab乗根とするとき、式 hk = NormK|Q(1+ (-ζ)k j)(Norm_{K|Q}は、円のab分体Kにおけるノルム写像)を用いて、パラメータa、bで指定される代数曲線のヤコビアン群の位数の候補値hkを演算し、候補値の集合H={h1、h2、...、h2ab}を演算する前記位数候補値計算装置を備える。
【0014】
本発明の第5のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置は、前記第1、第2、第3または第4ののα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置であって、
前記a記憶手段、前記b記憶手段、前記p記憶手段、前記h記憶手段からそれぞれ素数a、素数b、素数p、候補値hを取得し、素数pを法とする1の原始a乗根ζaおよび1の原始b乗根ζbを求め、1以上a以下の各整数l、および1以上b以下の各整数mに対して、式ζa l Ya + ζb m Xb +1=0で定義される代数曲線上のランダムな点Gを生成し、点Gの表すヤコビアン群における要素のh倍を計算し、結果がヤコビアン群における単位元に等しいならば、素数a、素数bで指定される代数曲線でそのヤコビアン群の位数が候補値hと一致する代数曲線のパラメータとしてp、ζa lおよびζb mを出力する前記パラメータ決定装置を備える。
【0015】
本発明の第1のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法は、
(a)入力装置が、曲線の複雑さの度合いを指定する 2 つの異なる素数 a b 、および、使用したい暗号鍵のサイズ n を入力する手順と、
(b) a 記憶手段、 b 記憶手段、および、 n 記憶手段が、それぞれ、前記入力手段に入力された素数 a 、素数 b 、暗号鍵のサイズ n を記憶する手順と、
(c)スティッケルバーガー要素計算装置が、前記 a 記憶手段、前記 b 記憶手段からそれぞれ素数 a 、素数 b を取得し、円の ab 分体におけるスティッケルバーガー要素ωを演算する手順と、
(d)ω記憶手段が、前記スティッケルバーガー要素計算装置により演算されたスティッケルバーガー要素ωを記憶する手順と、
(e)ヤコビ和候補値計算装置が、前記 a 記憶手段、前記 b 記憶手段、前記 n 記憶手段、前記ω記憶手段からそれぞれ素数 a 、素数 b 、暗号鍵のサイズ n 、スティッケルバーガー要素ωを取得し、 2 つの異なる素数 a 、素数 b に対するヤコビ和候補値 j およびヤコビ和候補値 j に対応する素数 p を演算する手順と、
(f) p 記憶手段、および j 記憶手段が、それぞれ、前記ヤコビ和候補値計算装置により演算された素数 p 、ヤコビ和候補値 j を記憶する手順と、
(g)位数候補値計算装置が、前記 a 記憶手段、前記 b 記憶手段、前記 j 記憶手段から、それぞれ素数 a 、素数 b 、ヤコビ和候補値 j を取得し、素数 a 、素数 b で指定される代数曲線のヤコビアン群の位数の複数の候補値からなる集合 H を演算する手順と、
(h) H 記憶手段が、前記位数候補値計算装置により演算された集合 H を記憶する手順と、
(i)安全性判定装置が、前記 H 記憶手段から集合 H を取得し、集合 H の中から概素数性等の安全性条件を満たす候補値 h を検索する手順と、
(j) h 記憶手段が、前記安全性判定装置により検索された候補値 h を記憶する手順と、
(k)パラメータ決定装置が、前記 a 記憶手段、前記 b 記憶手段、前記 p 記憶手段、前記 h 記憶手段からそれぞれ素数 a 、素数 b 、素数 p 、候補値 h を取得し、素数 a 、素数 b 、素数 p で指定される代数曲線でそのヤコビアン群の位数が候補値 h と一致する代数曲線のパラメータを演算する手順と、
(l)出力装置が、前記パラメータ決定装置で演算された代数曲線のパラメータを出力する手順と、
を含む
【0016】
本発明の第2のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法は、前記第1のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法であって、
前記スティッケルバーガー要素計算装置が、前記 a 記憶手段、前記 b 記憶手段からそれぞれ素数 a 、素数 b を取得し、式ω = Σ t [<t/a> + <t/b>] σ _{-t -1 } t ab を法とする既約剰余類の代表系を走り、 [ λ ] は有理数λを超えない最大の整数を表し、 < λ > は有理数λの小数部分λ -[ λ ] を表し、σ t は円の ab 分体におけるガロア写像ζ ζ t を表す ( ζは 1 の原始 ab 乗根 ) )を用いてスティッケルバーガー要素ωを演算する手順を含む
【0017】
本発明の第3のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法は、前記第1、または第2のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法であって、
前記ヤコビ和候補値計算装置が、前記 a 記憶手段、前記 b 記憶手段、前記 n 記憶手段、前記ω記憶手段からそれぞれ素数 a 、素数 b 、暗号鍵のサイズ n 、スティッケルバーガー要素ωを取得し、1の原始 ab 乗根で生成される円分体 K の素イデアルを生成する代数的整数γで、その絶対ノルムが 2n/(a-1)(b-1) 程度のビット長の素数 p となるαをランダムに生成し、式 j = γ ω を用いてヤコビ和候補値 j を演算する手順を含む
【0018】
本発明の第4のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法は、前記第1、第2、または第3のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法であって、
前記位数候補値計算装置が、前記 a 記憶手段、前記 b 記憶手段、前記 j 記憶手段からそれぞれ素数 a 、素数 b 、ヤコビ和候補値 j を取得し、1以上 2ab 以下の整数である各 k に対して、ζを1の原始 ab 乗根とするとき、式 h k = Norm K|Q ( + (- ζ ) k j) Norm_{K|Q} は、円の ab 分体 K におけるノルム写像)を用いて、パラメータ a b で指定される代数曲線のヤコビアン群の位数の候補値 h k を演算し、候補値の集合 H={h 1 h 2 、...、 h 2ab } を演算する手順を含む
【0019】
本発明の第5のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法は、前記第1、第2、第3、または第4のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法であって、
前記パラメータ決定装置が、前記 a 記憶手段、前記 b 記憶手段、前記 p 記憶手段、前記 h 記憶手段からそれぞれ素数 a 、素数 b 、素数 p 、候補値 h を取得し、素数 p を法とする1の原始 a 乗根ζ a および1の原始 b 乗根ζ b を求め、1以上 a 以下の各整数 l 、および1以上 b 以下の各整数 m に対して、式ζ a l Y a + ζ b m X b + = 0で定義される代数曲線上のランダムな点 G を生成し、点 G の表すヤコビアン群における要素の h 倍を計算し、結果がヤコビアン群における単位元に等しいならば、素数 a 、素数 b で指定される代数曲線でそのヤコビアン群の位数が候補値 h と一致する代数曲線のパラメータとして p 、ζ a l およびζ b m を出力する手順を含む
【0020】
本発明の記録媒体は、
(a)入力装置に、曲線の複雑さの度合いを指定する 2 つの異なる素数 a b 、および、使用したい暗号鍵のサイズ n を入力する手順を実行させ
(b) a 記憶手段、 b 記憶手段、および、 n 記憶手段に、それぞれ、前記入力手段に入力された素数 a 、素数 b 、暗号鍵のサイズ n を記憶する手順を実行させ
(c)スティッケルバーガー要素計算装置に、前記 a 記憶手段、前記 b 記憶手段からそれぞれ素数 a 、素数 b を取得し、円の ab 分体におけるスティッケルバーガー要素ωを演算する手順を実行させ
(d)ω記憶手段に、前記スティッケルバーガー要素計算装置により演算されたスティッケルバーガー要素ωを記憶する手順を実行させ
(e)ヤコビ和候補値計算装置に、前記 a 記憶手段、前記 b 記憶手段、前記 n 記憶手段、前記ω記憶手段からそれぞれ素数 a 、素数 b 、暗号鍵のサイズ n 、スティッケルバーガー要素ωを取得し、 2 つの異なる素数 a 、素数 b に対するヤコビ和候補値 j およびヤコビ和候補値 j に対応する素数 p を演算する手順を実行させ
(f) p 記憶手段、および j 記憶手段に、それぞれ、前記ヤコビ和候補値計算装置により演算された素数 p 、ヤコビ和候補値 j を記憶する手順を実行させ
(g)位数候補値計算装置に、前記 a 記憶手段、前記 b 記憶手段、前記 j 記憶手段から、それぞれ素数 a 、素数 b 、ヤコビ和候補値 j を取得し、素数 a 、素数 b で指定される代数曲線のヤコビアン群の位数の複数の候補値からなる集合 H を演算する手順を実行させ
(h) H 記憶手段に、前記位数候補値計算装置により演算された集合 H を記憶する手順を実行させ
(i)安全性判定装置に、前記 H 記憶手段から集合 H を取得し、集合 H の中から概素数性等の安全性条件を満たす候補値 h を検索する手順を実行させ
(j) h 記憶手段に、前記安全性判定装置により検索された候補値 h を記憶する手順を実行させ
(k)パラメータ決定装置に、前記 a 記憶手段、前記 b 記憶手段、前記 p 記憶手段、前記 h 記憶手段からそれぞれ素数 a 、素数 b 、素数 p 、候補値 h を取得し、素数 a 、素数 b 、素数 p で指定される代数曲線でそのヤコビアン群の位数が候補値 h と一致する代数曲線のパラメータを演算する手順を実行させ
(l)出力装置に、前記パラメータ決定装置で演算された代数曲線のパラメータを出力する手順を実行させるα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成プログラムを記録する。
【0021】
【発明の実施の形態】
まず、本発明の原理について説明する。
【0022】
本発明は、αY +βX + 1 = 0という形の定義方程式をもつ代数曲線のクラスから、そのヤコビアン群の位数がほぼ素数である代数曲線を効率的に探索し、従来使用できなかった高次の複雑な代数曲線を代数曲線暗号に用いることを可能にするものである。ここで、パラメータa、bは曲線の複雑さの程度を表す。
【0023】
αY +βX + 1 = 0という形の定義方程式をもつ、位数qの有限体F上の代数曲線をC(q、α、β)とおく。代数曲線C(q、α、β)に対しては、そのL関数がヤコビ和を用いて記述されることを用いて、そのヤコビアン群の位数を設計することができるのである。以下簡単のため、q := p(pをqとおく) は素数であり、p≡ 1 mod LCM(a、b)とする(LCMは最小公倍数)。また、1の原始ab乗根をζとおく。素数pは円分体Q(ζ)において、m個の素イデアルP、P、...、Pに完全分解する。ここで、mは、法abの既約剰余類の個数である。
【0024】
有限体Fの乗法群F の生成元wを固定し、(p−1)sが整数となる有理数sに対して、F の指標χをχ(w) = exp(2πis)(iは虚数)によって定義する。χ(0)=0 (s: 整数でないとき)、 =1 (s: 整数のとき)として、定義域をF全体に拡張する。整数 l=1、2、...、a−1および整数 m=1、2、...、b−1に対して、j(l、m) = Σ_{1+v+v=0} χl/a(v)χm/b(v) はヤコビ和と呼ばれる。ここで、v、 vは1+v+v=0を満たすv、 v ∈Fを走る。このとき、C(p、α、β)のL関数L(U)は以下のようにヤコビ和を用いて表されることが知られている。
【0025】
(U) = Πl=1、2、...、a−1、 m=1、2、...、b−1 (1 + χl/a(α−1)χm/b(β−1) j(l、m) U )。
したがって、C(p、α、β)のヤコビアン群の位数hは、
h = L(1) = Πl=1、2、...、a−1、 m=1、2、...、b−1 ( 1 +χl/a(α−1)χm/b(β−1) j(l、m) )
で与えられる。よって、ヤコビアン群の位数を求めるには、ヤコビ和j(l、m)が計算できればよい。しかしながら、ヤコビ和j(l、m)を定義式に従って直接計算することは計算量的に不可能なので、次のヤコビ和に対するスティッケルバーガー要素を用いる。
【0026】
[λ]は有理数λを超えない最大の整数を表し、<λ>は有理数λの小数部分λ−[λ]を表すとする。また、σ は円分体Q(ζ)のガロア写像ζ → ζ を表すとする。群環Z[Gal(Q(ζ)| Q)]の元であるスティッケルバーガー要素ω(a、b)を、
ω(a、b) = Σ [<t/a> + <t/b>] σ−t −1とおく。
ただし、tは、abを法とする既約剰余類の代表系を走るとする。
【0027】
このとき、円分体Q(ζ)のイデアルとして、(j(l、m)) = Pω (a、b)が成立することが知られている。ここで、Pはpの上にある素イデアルである。上式より、j(l、m)は1の2ab乗根を除いて一意に定まる。そのうち、ab乗根分の自由度はC(p、α、β)の係数α、β ∈ Fの自由度から得られる。
【0028】
以上より、次のような安全な曲線C(p、α、β)の探索アルゴリズムが得られる。
安全な曲線C(p、α、β)の探索アルゴリズム
入力:ヤコビアンのビット数n
出力:p、α、β
(1)g ← (a−1)(b−1)/2
(2)ある n/g ビット程度の素数pに対するヤコビ和の候補jを後述のヤコビ和の候補値の計算アルゴリズムを用いて探す:
(p、j) ← {ヤコビ和の候補値の計算アルゴリズム}(n/g)。
(3)各k = 0、1、...、ab に対して、
←Πl=1、2、...、a−1、 m=1、2、...、b−1 ( 1 + (−ζ) j)
(4){ h、h、...、hab }にほぼ素数である h があるかどうかを調べる。なければ、(1)へ戻る。あれば、h := h とする。
(5)ζ、ζ をそれぞれ F における1のa乗根、b乗根とする。各 l = 0、1、...、a−1 および各 m = 0、1、...、b−1 に対して、曲線C(p、ζ 、ζ ):ζ +ζ + 1 = 0 のヤコビアン群のオーダーが h に等しいかどうか調べる。等しければ、p、α=ζ 、β=ζ を出力して終了する。そのようなl、 m がなければ、(2)へ。
上で用いた、ヤコビ和の候補値の計算アルゴリズムでは、前記のスティッケルバーガー要素ω(a、b) = Σ [<t/a> + <t/b>] σ−t −1 を用いて、ヤコビ和の候補値を求める。
ヤコビ和の候補値の計算アルゴリズムは以下のようである。
入力:ビット数m、
出力:p、j、
(1)ω ← Σ (<t/a> + <t/b>)σ−t −1
(2)γ = Σl=0 m−1ζ (−10 < c < 10) をランダムに生成。
(3)各 i = 1、2、... に対して、
γ ← γ + I、
p ← NormQ( ζ )|Q(γ)、
p が約 m ビットより小さいか?、
yes → continue、
p が約 m ビットより大きいか?、
yes → (2)へ、
p が素数か?
no → continue、
(4)j ← γω 、 p および j を出力して終了。
【0029】
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
【0030】
図1は、本発明の第1の実施の形態を示すブロック図である。
図1を参照すると、本発明の第1の実施の形態は、スティッケルバーガー要素計算装置11と、ヤコビ和候補値計算装置12と、位数候補値計算装置13と、安全性判定装置14と、パラメータ決定装置15と、メモリ16と、入力装置17と、出力装置18と、中央処理装置19とから構成される。
【0031】
また、メモリ16は、a記憶ファイル161、b記憶ファイル162、ω記憶ファイル163、j記憶ファイル164、H記憶ファイル165、h記憶ファイル166、p記憶ファイル167、および、n記憶ファイル168を含む。
【0032】
以下では、円分体Q(ζ)における代数的数の四則演算、およびノルムNQ( ζ )| の演算、および円分体Q(ζ)に対するガロア群G(Q(ζ)| Q)の作用の演算、および整数環Z係数のガロア群G(Q(ζ)| Q)上の群環Z[G(Q(ζ)| Q)]における加法および乗法演算に関しては、既知の手法を用いるものとする。
【0033】
次に、本発明の第1の実施の形態の動作について説明する。
図2は、スティッケルバーガー要素計算装置11の動作を示すフローチャートである。
図3は、ヤコビ和候補値計算装置12の動作を示すフローチャートである。
図4は、位数候補値計算装置13の動作を示すフローチャートである。
図5は、パラメータ決定装置15の動作を示すフローチャートである。
【0034】
曲線の複雑さの度合いを指定する2つの異なる素数a=3、b=7、および使用したい暗号鍵のサイズn=160が入力装置17から入力された場合について説明する。入力されたa、bは中央処理装置19を介してそれぞれa記憶ファイル161、b記憶ファイル162に一時的に記憶される。また、以下の記述において現れる変数は、メモリ16に格納される。
【0035】
次に、スティッケルバーガー要素計算装置11が、図2に示す処理にしたがって、a記憶ファイル161、b記憶ファイル162よりa=3、b=7を取得して以下のように動作する。
【0036】
図2のステップS21において、変数Lにa・b = 3×7=21を法とする既約剰余類の代表系{1、2、4、5、8、10、11、13、16、17、19、20}が格納される。
【0037】
次に、図2のステップS22において、変数L={1、2、4、5、8、10、11、13、16、17、19、20}に含まれる各整数tに対して、例えば、t=1のとき、[<1/3>+<1/7>] = [1/3+1/7]=[10/21]=0なので、変数mに0が格納され、−1−1 ≡ −1 ≡ 20 mod21なので、変数sに20が格納され、0×σ20 = 0なので、変数λに0が格納される。
【0038】
他のtについても同様にして、変数λに[<2/3>+<2/7>]=[2/3+2/7]=[20/21]=0なので0が、変数λに[<4/3>+<4/7>]=[1/3+4/7]=[19/21]=0なので0が、変数λに[<5/3>+<5/7>]=[2/3+5/7]=[29/21]=1で(−5)−1 ≡ 16−1 ≡ 4 mod 21なのでσが、変数λに[<8/3>+<8/7>]=[2/3+1/7]=[17/21]=0なので0が、変数λ10に[<10/3>+<10/7>]=[1/3+3/7]=[16/21]=0なので0が、変数λ11に[<11/3>+<11/7>]=[2/3+4/7]=[26/21]=1で(−11)−1 ≡ 10−1 ≡ 19 mod 21なのでσ19が、変数λ13に[<13/3>+<13/7>]=[1/3+6/7]=[25/21]=1で(−13) −1 ≡ 8−1 ≡ 8mod 21なのでσが、変数λ16に[<16/3>+<16/7>]=[1/3+2/7]=[13/21]=0なので0が、変数λ17に[<17/3>+<17/7>]=[2/3+3/7]=[23/21]=1で(−17) −1 ≡ 4−1 ≡ 16 mod 21なのでσ16が、変数λ19に[<19/3>+<19/7>]=[1/3+5/7]=[22/21]=1で(−19) −1 ≡ 2−1 ≡ 11 mod 21なのでσ11が、変数λ20に[<20/3>+<20/7>]=[2/3+6/7]=[32/21]=1で(−20) −1 ≡ 1−1 ≡ 1 mod 21 なのでσが、それぞれ格納される。
【0039】
次に、図2のステップS23において、各変数λ、λ、λ、λ、λ、λ10、λ11、λ13、λ16、λ17、λ19、λ20に記憶された全データの総和ω = σ + σ19 + σ + σ16 + σ11 + σ が計算される。ここでの総和は、群環Z[G(Q(ζ)| Q)]における総和であり、 各σをシンボルとみなし、各σごとの係数の総和を意味する。演算結果であるωは中央処理装置19を介して、ω記憶ファイル163に一時的に記憶される。
【0040】
次に、ヤコビ和候補値計算装置12が、a記憶ファイル161、b記憶ファイル162、n記憶ファイル168、ω記憶ファイル163から、a=3、b=7、n=160、ω=σ + σ19 + σ + σ16 + σ11 + σを取得して、図3に示す処理にしたがって、以下のようにしてヤコビ和の候補値jを演算する。
【0041】
まず、図3のステップS31において、変数ζに、ab=21なので、1の原始21乗根を格納し、変数mに、2n / (a−1)(b−1) = 26.6...なので、27を格納する。
【0042】
次に、図3のステップS32において、変数γに円分体Q(ζ)のランダム整数を以下のようにして格納する。変数γを0に初期化し、t=0に対し、乱数r = −2を発生し、γにr ζ = −2を加え、γ=−2とし、t=1に対し、乱数r = 2を発生し、γにr ζ = 2 ζを加え、γ = −2 + 2ζとし、以下同様の操作をt=11まで繰り返して、γ = −2 + 2ζ−ζ + 2ζ + 2ζ − ζ − ζ − 2 ζ + 2ζ − ζ11を得る。
【0043】
次に、図3のステップS33において、各整数i=0、1、2、...に対して、以下の操作を行う。i=0に対し、変数γにγ + 0を格納し、γ = −2 + 2ζ−ζ + 2ζ + 2ζ − ζ − ζ − 2 ζ + 2ζ − ζ11 を得て、 そのノルムNQ( ζ )| (γ)を計算し、129571513を得てp記憶ファイル167に格納し、変数lにp=129571513のビット数29を格納し、l=29がm=27程度であることを確認し、p=129571513を既知の方法により素因数分解するとp=129571513=43×211×14281となりp=129571513は素数ではないので、i=0に対する処理を終了し、i=1に対して、同様の操作を繰り返す。本実施の形態の場合は、i=2となるまで同様の操作が続き、i=2に対し、変数γにγ + 2を格納し、γ = 2ζ−ζ + 2ζ + 2ζ − ζ − ζ − 2 ζ + 2ζ − ζ11 を得て、そのノルムNQ( ζ )| (γ)を計算し、163255597を得てp記憶ファイル167に格納し、変数lにp=163255597のビット数28を格納し、l=28がm=27程度であり、p=163255597は素数と判定されるので(素数判定には既知の手法を用いる)、ステップS33の操作は終了する。
【0044】
次に、図3のステップS34において、変数γの値2ζ−ζ + 2ζ + 2ζ − ζ − ζ − 2 ζ + 2ζ − ζ11 に、スティッケルバーガー要素ω=σ + σ19 + σ + σ16 + σ11 + σを作用させ、結果をj記憶ファイル164に格納する。
【0045】
すなわち、j = σ(γ)σ19(γ)σ(γ)σ16(γ) σ11(γ)σ(γ)
= −11346 + 4158ζ + 9337ζ − 10930ζ + 3060ζ + 11132ζ − 1408ζ − 10000ζ + 7506ζ + 1237ζ − 9894ζ10 + 16406 ζ11
となるので、j記憶ファイル164の内容は −11346 + 4158ζ + 9337ζ − 10930ζ + 3060ζ + 11132ζ − 1408ζ − 10000ζ + 7506ζ + 1237ζ − 9894ζ10 + 16406 ζ11となる。
【0046】
次に、位数候補値計算装置13が、図4に示す処理にしたがって、a記憶ファイル161、b記憶ファイル162、j記憶ファイル164からそれぞれa、b、jを取得し、以下のようにしてヤコビ群の位数の候補値を計算する。
【0047】
まず、図4のステップS41において、変数ζに、ab=21なので、1の原始21乗根を格納する。
【0048】
次に、図4のステップS42において、各整数k=1、...、2ab=42に対して、ヤコビ和候補値jを用いて、NQ( ζ )| (1 + (−ζ) j) を計算し、結果を変数hに格納する。すなわち、k=1に対して、NQ( ζ )| (1 + (−ζ) j)= 18945750554224674862720917379214050968749547249577なので、変数hに18945750554224674862720917379214050968749547249577が格納され、k=2に対して、NQ( ζ )| (1 + (−ζ) j) = 18928969305265796978830941938772180777050417721949なので、変数hに18928969305265796978830941938772180777050417721949が格納される。
【0049】
以下同様にして、変数hに18939442397757559639176586128404383479076142135761が、変数hに18935060345406437247984249590121980321244862496761が、変数hに18935622676852726684902816970612470237474541809664が、変数hに18931936903665705475581647305574444786263237069081が、変数hに18929560654771860101383318185997674116929626012889が、変数hに18939150203650250186166315242126355786799280592469が、変数hに18932675807273674693936115572103379669380378369473が、変数h10に18942309965821405414970614992239749691042375170033が、変数h11に18934229290635176830764035532046510839791719442389が、変数h12に18935834172588603026508807514961653603431968293369が、変数h13に18938078743053945947831932134835899678969080710281が、変数h14に18930980854114698521197692341107826796840225368461が、変数h15に18925926348482126046797408190951930473609373791353が、変数h16に18936229724314338327608155999193464492913218459633が、変数h17に18935389098278487495205740285052812170943878823253が、変数h18に18931691567781542998050896522571358027374445665073が、変数h19に18932734180610926108166703609049207716180145717849が、変数h20に18938664411743724815803784593761801461579705647693が、変数h21に18933942752770105179837989473472080616474423254969が、変数h22に18919302986335777367049540268484273861903106390769が、変数h23に18936075396885270373781711765180522497408613713621が、変数h24に18925604328984592629627465194343191206594160037073が、変数h25に18929984863788418751836156261712299372083231633577が、変数h26に18929422531793648170111228339741198150094983499776が、変数h27に18933107954541528865152848804062672753166448460761が、変数h28に18935483634705487053043563594391048299333735703993が、変数h29に18925896848340062851972136696783348221127455098349が、変数h30に18932368490475205159124453933007681555744686326777が、変数h31に18922739336864448742750281538719599103232717642873が、変数h32に18930815175217344826609492375186423724694014551957が、変数h33に18929210510360406226057659372472230885175421077009が、変数h34に18926967327936730178250537884862137815188718140673が、変数h35に18934063763272126450623787600233843527396400812437が、変数h36に18939120559761876801054292506881700885415287701041が、変数h37に18928816315710623530089460607608797337081800632473が、変数h38に18929656538570982720438072809652072203857571941789が、変数h39に18933352933862176606331230531189579186007983024249が、変数h40に18932310663274994445599743180032079937147687805121が、変数h41に18926381945702726406182624557022344113037957991709が、変数h42に18931102681789095072229676262975577344314266433617が、それぞれ格納される。
【0050】
最後に、位数候補値計算装置13は、ヤコビアン群の位数の候補値として変数h〜変数h42の内容をHとして、H記憶ファイル165にまとめて格納する。
【0051】
次に、安全性判定装置14が、H記憶ファイル165からHを取得し、Hに含まれる位数の候補値h、h、...、h42から概素数性等の安全性条件を満たす候補値hを検索し、h記憶ファイル166に格納する。本実施の形態では、説明を簡明にするため、安全性条件は概素数性のみを検討する。既知の素数判定法を用いると、h11 = 18934229290635176830764035532046510839791719442389が素数と判定され、安全性判定装置14は、h = h11 = 18934229290635176830764035532046510839791719442389をh記憶ファイル166に格納する。
【0052】
次に、パラメータ決定装置15が、a記憶ファイル161、b記憶ファイル162、p記憶ファイル167、h記憶ファイル166からそれぞれa、b、p、hを取得し、図5に示す処理にしたがって動作する。
【0053】
まず、図5のステップS51において、変数ζにp=163255597を法とする1の原始3乗根である127994587を、変数ζにp=163255597を法とする1の原始7乗根である8342648をそれぞれ格納する。
【0054】
次に、図5のステップS52において、各整数l=1、2、3および各整数m=1、2、3、4、5、6、7に対して、以下のような処理を行う。
【0055】
まず、l=1、m=1に対して、変数εにζ = 127994587を格納し、変数ηにζ =8342648を格納し、式 ε y + η x + 1 = 127994587 y + 8342648 x + 1 =0 で定義される代数曲線のヤコビアン群のランダムな元{151707017 + 104678491 x + 123646083 x + 18753988 y + 87634493 x + 61274336 x y + x、 138799785 + 145105684 x + 584395 x + 80828873 y + 34715892 x + 121885874 xy + 59787844 x + x y、 161162224 + 117150097 x + 100956100 x + 89380061 y + 140032555 x + 43367019 x y + y }を生成し、これを変数Gに格納し、変数Gに格納されている点の、ヤコビアン群におけるh=18934229290635176830764035532046510839791719442389倍を計算し、計算結果である {133659497 + 103424746 x + 136032897 x + 131029199 y + 24618867 x + 114944034 x y + x、 86125426 + 125891893 x + 19568269 x + 27044314 y + 80420960 x + 137562092 x y + x y、 53604112 + 65990501 x + 51269221 x + 55271502 y + 7974233 x + 84922220 x y + y } を変数Gに格納する。
【0056】
変数Gの上記内容がヤコビアン群における単位元{}に等しくないので、次に、l=1、m=2に対して、変数εにζ = 127994587を格納し、変数ηにζ = 8342648 mod 163255597 = 159772073を格納し、上記の処理を繰り返す。
【0057】
本実施の形態の場合、l=2、m=2に対して、ε=35261009、η=159772073となり、ランダムに生成された点G = {4568071 + 141843715 x + 68256743 x + 71903501 y + 128953783 x + 10781960 x y + x、 48272788 + 45615229 x + 150692034 x + 53973350 y + 11114765 x + 78550130 x y + 61331354 x + x y、117552807 + 135448907 x + 64074711 x + 141058974 y + 49208246 x + 93940317 x y + y }のh=18934229290635176830764035532046510839791719442389倍が単位元{}となり、パラメータ決定装置15は安全な代数曲線のパラメータとして、p=163255597、ε=35261009、η=159772073を出力する。
【0058】
最後に、パラメータ決定装置15の出力したパラメータp=163255597、ε=35261009、η=159772073が出力装置18より出力される。
【0059】
次に、本発明の第2の実施の形態について詳細に説明する。
本発明の第2の実施の形態は、
(a)a記憶ファイル161、b記憶ファイル162から、それぞれ素数a、bを取得し、円のab分体におけるスティッケルバーガー要素ωを演算するスティッケルバーガー要素計算手順と、
(b)前記スティッケルバーガー要素計算手順により演算されたスティッケルバーガー要素ωをω記憶ファイル163に記憶する手順と、
(c)a記憶ファイル161、b記憶ファイル162、n記憶ファイル168、ω記憶ファイル163からそれぞれ素数a、素数b、暗号鍵のサイズn、スティッケルバーガー要素ωを取得し、2つの異なる素数a、素数bに対するヤコビ和候補値jおよびヤコビ和候補値jに対応する素数pを演算するヤコビ和候補値計算手順と、(d)前記ヤコビ和候補値計算手順により演算された素数p、ヤコビ和候補値jをそれぞれp記憶ファイル167、およびj記憶ファイル164に記憶する手順と、
(e)a記憶ファイル161、b記憶ファイル162、j記憶ファイル164から、それぞれ素数a、素数b、ヤコビ和候補値jを取得し、素数a、素数bで指定される代数曲線のヤコビアン群の位数の複数の候補値からなる集合Hを演算する位数候補値計算手順と、
(f)前記位数候補値計算手順により演算された集合HをH記憶ファイル165に記憶する手順と、
(g)H記憶ファイル165から集合Hを取得し、集合Hの中から概素数性等の安全性条件を満たす候補値hを検索する安全性判定手順と、
(h)前記安全性判定手順により検索された候補値hをh記憶ファイル166に記憶する手順と、
(i)a記憶ファイル161、b記憶ファイル162、p記憶ファイル167、h記憶ファイル166からそれぞれ素数a、素数b、素数p、候補値hを取得し、素数a、素数b、素数pで指定される代数曲線でそのヤコビアン群の位数が候補値hと一致する代数曲線のパラメータを演算するパラメータ決定手順と、
を含むことを特徴とする代数曲線暗号における安全なパラメータの生成方法である。
【0060】
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。
図6は、本発明の第3の実施の形態を示すブロック図である。
図6を参照すると、本発明の第3の実施の形態は、本発明の第2の実施の形態の各手順をコンピュータ100に実行させるプログラムを記録する記録媒体130である。このプログラムは、コンピュータ100の記憶装置にロードされ実行される。
【0061】
【発明の効果】
本発明の効果は、従来使用できなかった高次の複雑な代数曲線を代数曲線暗号に用いることができ、代数曲線暗号の安全性を向上することである。
【0062】
その理由は、αY +βX + 1 = 0という形の定義方程式をもつ代数曲線のクラスから、そのヤコビアン群の位数がほぼ素数である代数曲線を効率的に探索することが可能となり、使用できる代数曲線の範囲が広がり、攻撃者の解読作業が分散増加するからである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態を示すブロック図である。
【図2】スティッケルバーガー要素計算装置の動作を示すフローチャートである。
【図3】ヤコビ和候補値計算装置の動作を示すフローチャートである。
【図4】位数候補値計算装置の動作を示すフローチャートである。
【図5】パラメータ決定装置の動作を示すフローチャートである。
【図6】本発明の第3の実施の形態を示すブロック図である。
【符号の説明】
11 スティッケルバーガー要素計算装置
12 ヤコビ和候補値計算装置
13 位数候補値計算装置
14 安全性判定装置
15 パラメータ決定装置
16 メモリ
17 入力装置
18 出力装置
19 中央処理装置
100 コンピュータ
130 記録媒体
161 a記憶ファイル
162 b記憶ファイル
163 ω記憶ファイル
164 j記憶ファイル
165 H記憶ファイル
166 h記憶ファイル
167 p記憶ファイル
168 n記憶ファイル

Claims (11)

  1. (a)曲線の複雑さの度合いを指定する2つの異なる素数a、b、および、使用したい暗号鍵のサイズnを入力する入力装置と、
    (b)前記入力手段に入力された素数a、素数b、暗号鍵のサイズnをそれぞれ記憶するa記憶手段、b記憶手段、および、n記憶手段と、
    (c)前記a記憶手段、前記b記憶手段からそれぞれ素数a、素数bを取得し、円のab分体におけるスティッケルバーガー要素ωを演算するスティッケルバーガー要素計算装置と、
    (d)前記スティッケルバーガー要素計算装置により演算されたスティッケルバーガー要素ωを記憶するω記憶手段と、
    (e)前記a記憶手段、前記b記憶手段、前記n記憶手段、前記ω記憶手段からそれぞれ素数a、素数b、暗号鍵のサイズn、スティッケルバーガー要素ωを取得し、2つの異なる素数a、素数bに対するヤコビ和候補値jおよびヤコビ和候補値jに対応する素数pを演算するヤコビ和候補値計算装置と、
    (f)前記ヤコビ和候補値計算装置により演算された素数p、ヤコビ和候補値jをそれぞれ記憶するp記憶手段、およびj記憶手段と、
    (g)前記a記憶手段、前記b記憶手段、前記j記憶手段から、それぞれ素数a、素数b、ヤコビ和候補値jを取得し、素数a、素数bで指定される代数曲線のヤコビアン群の位数の複数の候補値からなる集合Hを演算する位数候補値計算装置と、
    (h)前記位数候補値計算装置により演算された集合Hを記憶するH記憶手段と、
    (i)前記H記憶手段から集合Hを取得し、集合Hの中から概素数性等の安全性条件を満たす候補値hを検索する安全性判定装置と、
    (j)前記安全性判定装置により検索された候補値hを記憶するh記憶手段と、
    (k)前記a記憶手段、前記b記憶手段、前記p記憶手段、前記h記憶手段からそれぞれ素数a、素数b、素数p、候補値hを取得し、素数a、素数b、素数pで指定される代数曲線でそのヤコビアン群の位数が候補値hと一致する代数曲線のパラメータを演算するパラメータ決定装置と、
    (l)前記パラメータ決定装置で演算された代数曲線のパラメータを出力する出力装置と、
    を備えたことを特徴とするα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置。
  2. 前記a記憶手段、前記b記憶手段からそれぞれ素数a、素数bを取得し、式ω = Σt [<t/a> + <t/b>] σ_{-t-1}(tはabを法とする既約剰余類の代表系を走り、[λ]は有理数λを超えない最大の整数を表し、<λ>は有理数λの小数部分λ-[λ]を表し、σtは円のab分体におけるガロア写像ζ → ζtを表す(ζは1の原始ab乗根))を用いてスティッケルバーガー要素ωを演算する前記スティッケルバーガー要素計算装置を備えることを特徴とする請求項1記載のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置。
  3. 前記a記憶手段、前記b記憶手段、前記n記憶手段、前記ω記憶手段からそれぞれ素数a、素数b、暗号鍵のサイズn、スティッケルバーガー要素ωを取得し、1の原始ab乗根で生成される円分体Kの素イデアルを生成する代数的整数γで、その絶対ノルムが2n/(a-1)(b-1)程度のビット長の素数pとなるαをランダムに生成し、式j = γωを用いてヤコビ和候補値jを演算する前記ヤコビ和候補値計算装置を備えることを特徴とする請求項1または2記載のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置。
  4. 前記a記憶手段、前記b記憶手段、前記j記憶手段からそれぞれ素数a、素数b、ヤコビ和候補値jを取得し、1以上2ab以下の整数である各kに対して、ζを1の原始ab乗根とするとき、式 hk = NormK|Q(1+ (-ζ)k j)(Norm_{K|Q}は、円のab分体Kにおけるノルム写像)を用いて、パラメータa、bで指定される代数曲線のヤコビアン群の位数の候補値hkを演算し、候補値の集合H={h1、h2、...、h2ab}を演算する前記位数候補値計算装置を備えることを特徴とする請求項1、2、または3記載のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置。
  5. 前記a記憶手段、前記b記憶手段、前記p記憶手段、前記h記憶手段からそれぞれ素数a、素数b、素数p、候補値hを取得し、素数pを法とする1の原始a乗根ζaおよび1の原始b乗根ζbを求め、1以上a以下の各整数l、および1以上b以下の各整数mに対して、式ζa l Ya + ζb m Xb +1=0で定義される代数曲線上のランダムな点Gを生成し、点Gの表すヤコビアン群における要素のh倍を計算し、結果がヤコビアン群における単位元に等しいならば、素数a、素数bで指定される代数曲線でそのヤコビアン群の位数が候補値hと一致する代数曲線のパラメータとしてp、ζa lおよびζb mを出力する前記パラメータ決定装置を備えることを特徴とする請求項1、2、3または4記載のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置。
  6. (a)入力装置が、曲線の複雑さの度合いを指定する 2 つの異なる素数 a b 、および、使用したい暗号鍵のサイズ n を入力する手順と、
    (b) a 記憶手段、 b 記憶手段、および、 n 記憶手段が、それぞれ、前記入力手段に入力された素数 a 、素数 b 、暗号鍵のサイズ n を記憶する手順と、
    (c)スティッケルバーガー要素計算装置が、前記 a 記憶手段、前記 b 記憶手段からそれぞれ素数 a 、素数 b を取得し、円の ab 分体におけるスティッケルバーガー要素ωを演算する手順と、
    (d)ω記憶手段が、前記スティッケルバーガー要素計算装置により演算されたスティッケルバーガー要素ωを記憶する手順と、
    (e)ヤコビ和候補値計算装置が、前記 a 記憶手段、前記 b 記憶手段、前記 n 記憶手段、前記ω記憶手段からそれぞれ素数 a 、素数 b 、暗号鍵のサイズ n 、スティッケルバーガー要素ωを取得し、 2 つの異なる素数 a 、素数 b に対するヤコビ和候補値 j およびヤコビ和候補値 j に対応する素数 p を演算する手順と、
    (f) p 記憶手段、および j 記憶手段が、それぞれ、前記ヤコビ和候補値計算装置により演算された素数 p 、ヤコビ和候補値 j を記憶する手順と、
    (g)位数候補値計算装置が、前記 a 記憶手段、前記 b 記憶手段、前記 j 記憶手段から、それぞれ素数 a 、素数 b 、ヤコビ和候補値 j を取得し、素数 a 、素数 b で指定される代数曲線のヤコビアン群の位数の複数の候補値からなる集合 H を演算する手順と、
    (h) H 記憶手段が、前記位数候補値計算装置により演算された集合 H を記憶する手順と、
    (i)安全性判定装置が、前記 H 記憶手段から集合 H を取得し、集合 H の中から概素数性等の安全性条件を満たす候補値 h を検索する手順と、
    (j) h 記憶手段が、前記安全性判定装置により検索された候補値 h を記憶する手順と、
    (k)パラメータ決定装置が、前記 a 記憶手段、前記 b 記憶手段、前記 p 記憶手段、前記 h 記憶手段からそれぞれ素数 a 、素数 b 、素数 p 、候補値 h を取得し、素数 a 、素数 b 、素数 p で指定される代数曲線でそのヤコビアン群の位数が候補値 h と一致する代数曲線のパラメータを演算する手順と、
    (l)出力装置が、前記パラメータ決定装置で演算された代数曲線のパラメータを出力する手順と、
    を含むことを特徴とするα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法。
  7. 前記スティッケルバーガー要素計算装置が、前記 a 記憶手段、前記 b 記憶手段からそれぞれ素数 a 、素数 b を取得し、式ω = Σ t [<t/a> + <t/b>] σ _{-t -1 } t ab を法とする既約剰余類の代表系を走り、 [ λ ] は有理数λを超えない最大の整数を表し、 < λ > は有理数λの小数部分λ -[ λ ] を表し、σ t は円の ab 分体におけるガロア写像ζ ζ t を表す ( ζは 1 の原始 ab 乗根 ) )を用いてスティッケルバーガー要素ωを演算する手順を含むことを特徴とする請求項6記載のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法。
  8. 前記ヤコビ和候補値計算装置が、前記 a 記憶手段、前記 b 記憶手段、前記 n 記憶手段、前記ω記憶手段からそれぞれ素数 a 、素数 b 、暗号鍵のサイズ n 、スティッケルバーガー要素ωを取得し、1の原始 ab 乗根で生成される円分体 K の素イデアルを生成する代数的整数γで、その絶対ノルムが 2n/(a-1)(b-1) 程度のビット長の素数 p となるαをランダムに生成し、式 j = γ ω を用いてヤコビ和候補値 j を演算する手順を含むことを特徴とする請求項6または7記載のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法。
  9. 前記位数候補値計算装置が、前記 a 記憶手段、前記 b 記憶手段、前記 j 記憶手段からそれぞれ素数 a 、素数 b 、ヤコビ和候補値 j を取得し、1以上 2ab 以下の整数である各 k に対して、ζを1の原始 ab 乗根とするとき、式 h k = Norm K|Q ( + (- ζ ) k j) Norm_{K|Q} は、円の ab 分体 K におけるノルム写像)を用いて、パラメータ a b で指定される代数曲線のヤコビアン群の位数の候補値 h k を演算し、候補値の集合 H={h 1 h 2 、...、 h 2ab } を演算する手順を含むことを特徴とする請求項6、7、または8記載のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法。
  10. 前記パラメータ決定装置が、前記 a 記憶手段、前記 b 記憶手段、前記 p 記憶手段、前記 h 記憶手段からそれぞれ素数 a 、素数 b 、素数 p 、候補値 h を取得し、素数 p を法とする1の原始 a 乗根ζ a および1の原始 b 乗根ζ b を求め、1以上 a 以下の各整数 l 、および1以上 b 以下の各整数 m に対して、式ζ a l Y a + ζ b m X b + = 0で定義される代数曲線上のランダムな点 G を生成し、点 G の表すヤコビアン群における要素の h 倍を計算し、結果がヤコビアン群における単位元に等しいならば、素数 a 、素数 b で指定される代数曲線でそのヤコビアン群の位数が候補値 h と一致する代数曲線のパラメータとして p 、ζ a l およびζ b m を出力する手順を含むことを特徴とする請求項6、7、8または9記載のα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成方法。
  11. (a)入力装置に、曲線の複雑さの度合いを指定する 2 つの異なる素数 a b 、および、使用したい暗号鍵のサイズ n を入力する手順を実行させ
    (b) a 記憶手段、 b 記憶手段、および、 n 記憶手段に、それぞれ、前記入力手段に入力された素数 a 、素数 b 、暗号鍵のサイズ n を記憶する手順を実行させ
    (c)スティッケルバーガー要素計算装置に、前記 a 記憶手段、前記 b 記憶手段からそれぞれ素数 a 、素数 b を取得し、円の ab 分体におけるスティッケルバーガー要素ωを演算する手順を実行させ
    (d)ω記憶手段に、前記スティッケルバーガー要素計算装置により演算されたスティッケルバーガー要素ωを記憶する手順を実行させ
    (e)ヤコビ和候補値計算装置に、前記 a 記憶手段、前記 b 記憶手段、前記 n 記憶手段、前記ω記憶手段からそれぞれ素数 a 、素数 b 、暗号鍵のサイズ n 、スティッケルバーガー要素ωを取得し、 2 つの異なる素数 a 、素数 b に対するヤコビ和候補値 j およびヤコビ和候補値 j に対応する素数 p を演算する手順を実行させ
    (f) p 記憶手段、および j 記憶手段に、それぞれ、前記ヤコビ和候補値計算装置により演算された素数 p 、ヤコビ和候補値 j を記憶する手順を実行させ
    (g)位数候補値計算装置に、前記 a 記憶手段、前記 b 記憶手段、前記 j 記憶手段から、それぞれ素数 a 、素数 b 、ヤコビ和候補値 j を取得し、素数 a 、素数 b で指定される代数曲線のヤコビアン群の位数の複数の候補値からなる集合 H を演算する手順を実行させ
    (h) H 記憶手段に、前記位数候補値計算装置により演算された集合 H を記憶する手順を実行させ
    (i)安全性判定装置に、前記 H 記憶手段から集合 H を取得し、集合 H の中から概素数性等の安全性条件を満たす候補値 h を検索する手順を実行させ
    (j) h 記憶手段に、前記安全性判定装置により検索された候補値 h を記憶する手順を実行させ
    (k)パラメータ決定装置に、前記 a 記憶手段、前記 b 記憶手段、前記 p 記憶手段、前記 h 記憶手段からそれぞれ素数 a 、素数 b 、素数 p 、候補値 h を取得し、素数 a 、素数 b 、素数 p で指定される代数曲線でそのヤコビアン群の位数が候補値 h と一致する代数曲線のパラメータ を演算する手順を実行させ
    (l)出力装置に、前記パラメータ決定装置で演算された代数曲線のパラメータを出力する手順を実行させるα Y a + β X b + 1 = 0 という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成プログラムを記録したことを特徴とする記録媒体。
JP24207599A 1999-08-27 1999-08-27 αYa+βXb+1=0という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体 Expired - Lifetime JP3551853B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP24207599A JP3551853B2 (ja) 1999-08-27 1999-08-27 αYa+βXb+1=0という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体
CA002316720A CA2316720C (en) 1999-08-27 2000-08-25 Secure parameter generating device and parameter generating method in algebraic curve cryptography
US09/645,588 US7023990B1 (en) 1999-08-27 2000-08-25 Secure parameter generating device and parameter generating method in algebraic curve crytography

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24207599A JP3551853B2 (ja) 1999-08-27 1999-08-27 αYa+βXb+1=0という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体

Publications (2)

Publication Number Publication Date
JP2001066987A JP2001066987A (ja) 2001-03-16
JP3551853B2 true JP3551853B2 (ja) 2004-08-11

Family

ID=17083920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24207599A Expired - Lifetime JP3551853B2 (ja) 1999-08-27 1999-08-27 αYa+βXb+1=0という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体

Country Status (3)

Country Link
US (1) US7023990B1 (ja)
JP (1) JP3551853B2 (ja)
CA (1) CA2316720C (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10143728B4 (de) * 2001-09-06 2004-09-02 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer modularen Exponentiation
JP4304937B2 (ja) * 2002-08-21 2009-07-29 日本電気株式会社 ヤコビ群要素加算装置
KR100453230B1 (ko) * 2002-11-08 2004-10-15 한국전자통신연구원 초타원곡선 암호화 프로세싱 장치
US7499541B2 (en) * 2004-05-11 2009-03-03 National Institute Of Information And Communications Technology Cipher strength evaluation apparatus
WO2007080633A1 (ja) * 2006-01-11 2007-07-19 Mitsubishi Denki Kabushiki Kaisha 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号演算装置及び楕円曲線暗号パラメータ生成プログラム及び楕円曲線暗号演算プログラム
JP2008203548A (ja) * 2007-02-20 2008-09-04 Oki Electric Ind Co Ltd 二次双曲線群を使用する鍵生成方法、復号方法、署名検証方法、鍵ストリーム生成方法および装置。
US8401179B2 (en) * 2008-01-18 2013-03-19 Mitsubishi Electric Corporation Encryption parameter setting apparatus, key generation apparatus, cryptographic system, program, encryption parameter setting method, and key generation method
JP5079024B2 (ja) * 2008-02-20 2012-11-21 三菱電機株式会社 検証装置及び暗号文復号装置及び署名検証装置及び認証装置及び暗号システム及びコンピュータプログラム
US9425952B2 (en) 2014-03-27 2016-08-23 Samsung Israel Research Corporation Algebraic manipulation detection codes from algebraic curves

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06282226A (ja) 1993-03-29 1994-10-07 Nippon Telegr & Teleph Corp <Ntt> 楕円曲線に基づく公開鍵暗号方式
JP3292107B2 (ja) * 1997-08-28 2002-06-17 日本電気株式会社 2重ベクトル加算装置、2重ベクトル2倍装置及び2重ベクトル整数倍装置

Also Published As

Publication number Publication date
CA2316720A1 (en) 2001-02-27
JP2001066987A (ja) 2001-03-16
US7023990B1 (en) 2006-04-04
CA2316720C (en) 2005-04-26

Similar Documents

Publication Publication Date Title
CN101194457B (zh) 随机模数化多项式约简方法及其硬件
US6266688B1 (en) Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
US6466668B1 (en) IC card equipped with elliptical curve encryption processing facility
CN107040362A (zh) 模乘设备和方法
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
JP3551853B2 (ja) αYa+βXb+1=0という形の定義方程式をもつ代数曲線暗号における安全なパラメータの生成装置、生成方法、および記録媒体
US7050579B1 (en) Cryptographic methods and apparatus using word-wise montgomery multiplication
US8014520B2 (en) Exponentiation ladder for cryptography
US10057064B2 (en) Computational method, computational device and computer software product for montgomery domain
TWI630545B (zh) 非模數乘法器、用於非模數乘法的方法及計算裝置
Stogbauer Efficient Algorithms for pairing-based cryptosystems
US8731187B2 (en) Computing genus-2 curves using general isogenies
Anagreh et al. Accelerate Performance for Elliptic Curve Scalar Multiplication based on NAF by Parallel Computing.
KR20100062565A (ko) 모듈러스의 음의 역원을 구하는 방법
Haneda et al. Suitable Curves for Genus-4 HCC over Prime Fields: Point Counting Formulae for Hyperelliptic Curves of Type y 2= x+ ax
JP3779479B2 (ja) Icカード
JP4752176B2 (ja) 一方向性関数演算方法及び装置及びプログラム
JPH10214262A (ja) 逆元演算方法及び装置及び乗算方法及び乗算装置
JP3966714B2 (ja) 暗号処理方法、そのプログラム及びその記録媒体
JP2004205870A (ja) 超楕円曲線スカラー倍演算方法及び装置
Khrennikov et al. Secure cloud computations: Description of (fully) homomorphic ciphers within the P-adic model of encryption
Lipiński et al. Extensions of the Diffie-Hellman Key Agreement Protocol Based on Exponential and Logarithmic Functions
JPH1152851A (ja) 楕円曲線上の群演算装置
Liu et al. Privacy and integrity of outsourced data storage and processing
JP2005063349A (ja) 拡大体平方根算出装置、拡大体平方根算出方法、拡大体平方根算出プログラム及びそのプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040319

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040419

R150 Certificate of patent or registration of utility model

Ref document number: 3551853

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100514

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110514

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110514

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120514

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120514

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20140514

Year of fee payment: 10

EXPY Cancellation because of completion of term