JP2006259734A - 重み付き射影座標用の楕円曲線点8倍化 - Google Patents

重み付き射影座標用の楕円曲線点8倍化 Download PDF

Info

Publication number
JP2006259734A
JP2006259734A JP2006071591A JP2006071591A JP2006259734A JP 2006259734 A JP2006259734 A JP 2006259734A JP 2006071591 A JP2006071591 A JP 2006071591A JP 2006071591 A JP2006071591 A JP 2006071591A JP 2006259734 A JP2006259734 A JP 2006259734A
Authority
JP
Japan
Prior art keywords
elliptic curve
direct
curve point
point doubling
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006071591A
Other languages
English (en)
Other versions
JP2006259734A5 (ja
Inventor
Denis X Charles
エックス.チャールズ デニス
Kristin E Lauter
イー.ローター クリスティン
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006259734A publication Critical patent/JP2006259734A/ja
Publication of JP2006259734A5 publication Critical patent/JP2006259734A5/ja
Pending 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

【課題】公開鍵暗号では、指数計算が楕円曲線上の点Pのnスカラー倍を計算するのによく使用されるが、nは非常に大きな整数でもあり、計算の量が多く、コストがかかる。指数計算の計算上のコストを低減する技法として、重み付き射影座標用の楕円曲線点8倍化のためのシステムおよび方法を提供すること。
【解決手段】ある態様では、楕円曲線上の重み付き射影点Pが特定される。8PのPからの計算は、繰り返し2倍化演算に依存せずに、より少ない体の乗算(楕円曲線点8倍化アルゴリズム)を用いて行われる。
【選択図】図1

Description

本明細書のシステムおよび方法は、楕円曲線暗号に関する。
暗号システムは、甲から乙へと送られたデータの秘匿性(confidentiality)、真正性(authenticity)、完全性(integrity)、および否認防止(non−repudiation)に関係している。有限アーベル群における離散対数問題に基づく最新の暗号方式は、こうした問題に対処するように設計されている。そのような有限アーベル群は、ますます支持を得てきているが、その1つが、単純な代数式による群演算を有する、有限体上の楕円曲線(EC)上の点からなる群である。これは、そのような群演算が、ハードウェアまたはソフトウェアでの実現が比較的簡単であるためである。しかし、システム設計者は、そのような群を使用することの実装効率を完全に理解するには、関連する体の演算の基礎的な実装にきめ細かい注意を払う必要がある。
例えば、体の逆元演算が乗算よりも著しくコストがかかるという想定状況では、効率がより高くなるのは、通常、重み付き射影座標を使用して、点の加算が体の乗算を用いて行えるようにし(例えば、非特許文献1に記載されているように)、体の逆元演算を後回しにすることである(普通、そのような逆元演算は、乗算からなる長いシーケンスの最後で1つだけ実装される)。しかし、逆元演算を取り除くことの計算コストは、一般に増加した回数の乗算を計算しなければならないということである。有限群G内の2つの元の乗算を行う効率のよい方法は、効率のよい指数計算を行うのに不可欠である。
指数計算は、公開鍵暗号では、楕円曲線上の点Pのnスカラー倍を計算するのに一般によく使用されるが、ここでnは非常に大きな整数(例えば、乱数または秘密鍵)であり、Pは重み付き射影座標である。nPを計算する素朴な手法は、群Gにおける乗算をn−1回行うことである。暗号の適用例では、群Gの位数(order)は、通常、2160を越えており、22024を越えることもある。そのような演算では、計算の量が多く、選ばれるnは十分に大きくて、nPの計算をPによるn−1回の連続する乗算を用いて行うのが、実行不可能なほどになる。しかし、指数計算の計算上のコストを低減するのに使用できるいくつかの技法がある。
例えば、繰り返し平方乗算(square−and−multiply)アルゴリズム(すなわち、バイナリ法(binary exponentiation))および移動窓方式(windowing methods)(例えば、非特許文献2に記載されているように)により、指数計算の計算上のコストを低減することができる。より具体的には、繰り返し平方乗算アルゴリズムでは、指数nを分割して、2の冪乗のより小さい和にする。これにより、それぞれでは、計算するための処理資源がより少なくなる。例えば、有限体上の楕円曲線上に座標(x,y,z)の射影点Pが与えられると、nを大きさ2の部分に分割して(すなわち、3の窓(window of 3)を用いて)、Pのスカラー倍(2P、すなわち8P)の計算を複数の点の2倍化の反復によって行う。これを達成するのに、既存のシステムでは、通常、P=(x,y,z)を平方乗算アルゴリズムへと入力して2Pを生成する。次に、2P(第1の2倍化演算からの出力)に対する座標を、(x,y,z)として同じ平方乗算アルゴリズムへと入力して、4Pが得られる。最後に、この反復プロセスがもう1度繰り返されて、4P(第2の2倍化演算からの出力)に対する座標を(x,y,z)として同じ平方乗算アルゴリズムへと入力して、8Pが得られる。8Pを得るためのこのプロセスは、計30回の体の乗算を含んでいる。
Blake et al, "Elliptic Curves in Cryptography", Cambridge University Press, 1999, pages 59-60 Blake et al, "Elliptic Curves in Cryptography", Cambridge University Press, 1999, pages 63-72
重み付き射影座標用の楕円曲線点8倍化のためのシステムおよび方法の説明を行う。ある態様では、楕円曲線上の重み付き射影点Pが特定される。8PのPからの計算は、繰り返し2倍化演算に依存しない26回の乗算を用いる直接型(direct)の数式で行われる。
図面では、構成要素の符号の最も左の数字により、その構成要素の最初に現れる特定の図を識別している。
概要
この重み付き射影座標用の楕円曲線点8倍化のためのシステムおよび方法では、重み付き射影点指数計算を、8Pの計算を、繰り返し2倍化演算をせずに行うことにより、実質的に最適化する。ある実装形態では、これは、ストレートインライン型(straight in−line)アルゴリズムによって26回の体の乗算で達成される。8Pの計算に26回の体の乗算を使用することは、8P(すなわち、2Pから4P、それから8P)の計算に30回の体の乗算および繰り返し/反復2倍化を必要とする、従来の技法とは対照的である。このシステムおよび方法では、8Pの計算のための体の乗算の回数を30から26へと減らすことにより、従来の8Pバイナリ法による指数計算の実装にまさる実質的な処理性能の改善が提供される。
重み付き射影座標用の楕円曲線点8倍化のためのシステムおよび方法のこれらおよび他の態様を、次に、より詳細に説明する。
例示的なシステム
必須ではないが、重み付き射影座標の楕円曲線点8倍化のためのシステムおよび方法の説明を、パーソナルコンピュータなどのコンピューティング装置が実行するコンピュータ実行可能命令(プログラムモジュール)の一般的なコンテキストで説明する。プログラムモジュールは、一般に、特定のタスクを行い、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。このシステムおよび方法の説明は以上のコンテキストで説明するが、以下で説明する動作(acts)および操作は、ハードウェアで実装することもできる。
図1に、重み付き射影座標の楕円曲線点8倍化のための例示的なシステム100を示している。システム100は、第1のコンピューティング装置102を含み、これは通信ネットワーク103を介して第2のコンピューティング装置104へと結合されている。通信ネットワーク103は、オフィス、企業規模のコンピュータネットワーク、イントラネット、インターネットなどではでごく普通であるものなどの、ローカルエリアネットワークと一般的な広域ネットワーク通信環境のどのような組合せを含むのでもよい。第1と第2のコンピューティング装置102と104は、それぞれ、パーソナルコンピュータ、ラップトップ、サーバ、ハンドヘルドまたはモバイルのコンピューティング装置(例えば、セルラ電話、PDA(personal digital assistant))など、任意のタイプのコンピューティング装置を表す。
コンピューティング装置102は、プログラムモジュール106およびプログラムデータ108を含む。プログラムモジュール106は、例えば、元のデータ112の暗号化または署名を、楕円曲線(EC)点8倍化の指数計算を用いてそれぞれ行う、署名/暗号化モジュール110を含む。下で説明する楕円曲線点8倍化のためのアルゴリズムとは独立に、署名/暗号化モジュール110によって実装される特定の暗号プロトコルは、任意であり、また、実装のために選択された特定の暗号アルゴリズムの一機能である。署名/暗号化モジュール110は、楕円曲線点8倍化を行うために、楕円曲線114上の1組の点に対して演算を行う。楕円曲線114は、2または3に等しくない体の標数(characteristic)における次の方程式、すなわち、y=x+axz+bzに従う。基礎体(underlying field)の標数は、pかけるその体の任意の元が0であるような最小の非零の自然数pであると定義される。
楕円曲線114上の点Pは、重み付き射影形式で、P=(x,y,z)と表される。ある実装形態で、実装される暗号プロトコルが署名方式である場合には、点Pは、その暗号システム(cryptosystem)用の公開情報の一部とすることができる。別の実装形態で、実装される暗号プロトコルが鍵共有方式(例えば、Diffie−Hellmann鍵共有法)または暗号方式(例えば、ElGamal暗号)である場合には、点Pを、その暗号システムの公開または秘密の情報の一部とすることができる。
ある実装形態では、署名/暗号化モジュール110は、楕円曲線点8倍化指数計算の実装を、直接(非インライン)型アルゴリズムを用いて行う。表1に、楕円114上の点Pから8P(図1の構成要素116を参照)を決定する、署名/暗号化モジュール110用の例示的な直接型楕円曲線点8倍化アルゴリズムを示している。
Figure 2006259734
Figure 2006259734
Figure 2006259734
表1では、8P=(r,s,t)という量に対する数式を与えているが、ここでPは楕円曲線y=x+axz+bz上の重み付き射影座標(x,y,z)で与えられた点である。EC上の点Pから8Pを生成する従来のバイナリ法による指数計算の技法では、2倍化アルゴリズムを反復して呼び出しては前回の点2倍化演算からの出力(例えば、2Pまたは4P)を入力するが、これとは対照的に、表1の直接型楕円曲線点8倍化アルゴリズムでは、楕円曲線114上の点Pの8Pの座標(r,s,t)の計算を、点2倍化演算の反復呼び出しに依存せずに行っている。
このような直接型点8倍化アルゴリズムは、窓の大きさ3を用いた指数計算ルーチンのための基本演算として使用することができる(ここで、窓の大きさ(window size)は、どの2の冪乗を使用して指数を分解したかを示す)。例えば、587*Pは、2*(2*(2*(2*(2*(2*(2*2*2*P+P)))+P))+P)+Pではなく、8*(8*(8*P+P)+P)+3*Pとして計算することができる。
ある実装形態では、署名/暗号化モジュール110は、楕円曲線114上の点Pの8P(116)の計算を、表2の楕円曲線8倍化指数計算のためのストレートライン型アルゴリズムを用いて行う。議論の都合上、ストレートライン型の数式とは、所望の結果を得るのに、数式中の各ステートメントの実行を、連続して、ちょうど演算がコンピュータにより、コードのループまたは分岐がないように実装されるように行うためのプロセスである。表2のストレートライン型プログラムのプログラム命令は、ボールド体にし、その前に終わり山括弧(forward angle bracket)を置いている。各命令には、それに続く記号「:=」があるが、これは「定義」を意味する。プログラム命令は、プログラム記述言語(PDL、program description language)で示してある。比較のため、表2の直接型アルゴリズムからのプログラム命令に対応する実行トレース(ボールド体にしていない)を、表2のストレートライン型アルゴリズムの各プログラム命令のわきに提示している。
Figure 2006259734
Figure 2006259734
Figure 2006259734
Figure 2006259734
Figure 2006259734
Figure 2006259734
表2で示すように、ストレートライン型アルゴリズムでは、表1に提示した式のビルディングブロック(building block)または部分(pieces)の生成を系統立てて行っている。例示の目的で、そのようなビルディングブロックを「他のデータ」118のそれぞれの部分で表している。例えば、定義「xy2:=x*y2」により、xy2は、x*y2に等しく設定される。このシーケンスの後のほうで、T2という項は、xy2の定義をT2:=12*xy2 - T12のように利用して、x*y2などと計算し直さなくても済んでいることに注意されたい。このようにして、楕円曲線114上の点の8Pの(r,s,t)の計算に必要な体の計算の数が、26まで低減される。すなわち、署名/暗号化モジュール110では、計26個の体の乗算に対して、12個の平方の生成および14個の乗算の実装を、楕円曲線114上の点Pに対する8P(116)の座標(r,s,t)を決定するために行う。これは、既存の技法によって代表される体の乗算回数の著しい低減である。
署名/暗号化モジュール110では、元のデータ112の暗号処理を、楕円曲線8倍化指数計算を実装するように変更された何らかの公開鍵ベースの暗号アルゴリズムを用いて行って、暗号処理されたデータを生成する。暗号処理されたデータを、「他のデータ」118のそれぞれの部分として示している。そのような暗号処理の説明を、RSA、Diffie−Hellman鍵交換(key exchange)、およびElGamal暗号に関して行ってきているが、署名/暗号化モジュール110では、楕円曲線8倍化指数計算を利用するように変更された他のアルゴリズムを使用して、元のデータを暗号処理することができる。言い換えると、署名/暗号化モジュール110で実装されたこの特定の公開鍵ベースの暗号アルゴリズムは、上で表1および2に示した楕円曲線114上の点の8Pを計算するためのアルゴリズムに依存せず、実装のために選択された特定の暗号アルゴリズムの一機能であるため、任意である。
例えば、署名/暗号化モジュール110のそれぞれの実装では、次の暗号プロトコルのうちの1つまたは複数を実装している。すなわち、IDに基づく暗号(identity−based cryptography)(例えば、平文(plain)、ブラインド(blind)、代理(proxy)、リング、否認不可(undeniable)など)、暗号化プロトコル(例えば、認証済み、ブロードキャスト、キーワード検索による暗号化など)、バッチ署名、鍵共有(key agreement)(平文、認証済み、グループなど)、信頼機関(trust authorities)および公開鍵認証、階層型の暗号システム(hierarchical cryptosystems)、閾値暗号システム(threshold cryptosystem)および署名、chameleonハッシュならびに署名、認証、アプリケーション、およびシステム、アクセス制御、鍵共有、非対話的な鍵配布、クレデンシャル(例えば、匿名、隠し(hidden)、セルフブラインダブル(self−blindable)など)、秘密ハンドシェイク(secret handshakes)、証明可能にセキュリティ保護された署名(provably secure signatures)、ショート署名(short signatures)、アグリゲート(aggregate)、リング、および検証可能暗号化署名、ブラインドおよび部分ブラインド署名、代理署名、否認不可署名、サインクリプション、多重署名および閾値署名、limited−verifierおよびdesignated−verifier署名、閾値暗号システム、階層型および役割ベース(role−based)の暗号システム、chameleonハッシュおよび署名、検証可能な乱数関数(verifiable random functions)、強く絶縁された暗号(strongly insulated encryption)、イントリュージョンレジリエント暗号(intrusion−resilient encryption)、証明書を用いない公開鍵証明書(certificate−less PKC)、al、不正者追跡(traitor−tracing)、および/またはその他である。
ある実装形態では、装置102は、暗号処理されたデータを装置104へと検証/復号のために通信で送る。例示の目的で、装置104が受け取る暗号処理されたデータを、署名済/暗号化データ120として示している。コンピューティング装置104は、受け取った暗号処理されたデータを検証または復号するための検証/復号モジュール122を含む。ある想定状況では、検証/復号モジュール118は、暗号処理されたデータとしての検証を、この暗号処理されたデータが暗号署名されているときに行う。この想定状況では、検証/復号モジュール118は、上で説明した楕円曲線点8倍化指数計算の1つまたは複数の実装を利用して、暗号処理されたデータの検証を行う。別の想定状況では、検証/復号モジュール116は、暗号化されている暗号処理されたデータの復号を行う。この想定状況では、検証/復号モジュール118は、上で説明した楕円曲線点8倍化指数計算の1つまたは複数の実装を利用して、暗号処理されたデータの復号を行う。
例示的な楕円曲線点8倍化
図2に、重み付き射影座標の楕円曲線点8倍化のための例示的な手順200を示している。論考および例示の都合上、手順200の操作の説明を、図1の構成要素に関して行う。このために、構成要素の符号の最も左の数字で、その構成要素が最初に現れる特定の図を識別している。ブロック202で、署名/暗号化モジュール110(図1)は、有限体F上の楕円曲線114上の点Pの識別を行う。点Pは、(x,y,z)という重み付き射影座標をもつ。ブロック202で、署名/暗号化モジュール110は、Pの8Pの計算を、繰り返し2倍化演算に依存せずに行う。8Pの座標は(r,s,t)である。ある実装形態では、8Pの計算は、上で表1に示すものなどの直接型楕円曲線点8倍化アルゴリズムを用いて行われる。別の実装形態では、8Pの計算は、上で表2に示したものなどの、体の乗算が26回のストレートライン型楕円曲線点8倍化アルゴリズムを用いて行われる。ブロック206で、楕円曲線点8倍化アルゴリズムの結果を用いて、元のデータの暗号化または暗号署名、または暗号処理されたデータの復号または検証が行われる。
例示的な動作環境
図3に、重み付き射影座標の楕円曲線8倍化を完全にまたは部分的に実装できる好適なコンピューティング環境の例を示している。例示的なコンピューティング環境300は、図1の例示的なシステムおよび図2の例示的な操作に適したコンピューティング環境の1つの例に過ぎず、本明細書で説明するシステムおよび方法の用途または機能の範囲に関して何ら制限を示唆するものではない。また、コンピューティング環境300に何らかの依存関係または要件があるとの解釈を、コンピューティング環境300に示す構成要素のいずれかまたは組合せに関して行うべきでもない。
本明細書で説明する方法およびシステムは、他の数多くの汎用または専用のコンピューティングシステム、環境、または構成とともに動作可能である。使用に適する可能性のあるよく知られているコンピューティングシステム、環境、および/または構成の例としては、パーソナルコンピュータ、サーバコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上のシステムまたは装置のいずれかを含む分散コンピューティング環境などがあるが、これに限定されるものではない。この枠組みのコンパクト版またはサブセット版を、ハンドヘルドコンピュータなどの限られた資源のクライアント、または他のコンピューティング装置に実装することもできる。本発明は、分散コンピューティング環境で実施され、そこでは、タスクの実行が、通信ネットワークを通じてリンクされるリモート処理装置によって行われる。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートのどちらのメモリストレージ装置にあってもよい。
図3に関しては、重み付き射影座標の楕円曲線8倍化の例示的なシステムは、例えば、図1のシステム100を実装するコンピュータ310の形態の汎用コンピューティング装置を含む。コンピュータ310の、以下で説明する諸態様は、図1のコンピューティング装置102および/または104の例示的な実装形態である。コンピュータ310の構成要素は、処理ユニット320、システムメモリ330、および、システムメモリを含む様々なシステム構成要素を処理ユニット320へと結合するシステムバス321を含むことができるが、これに限定されるものではない。システムバス321は、様々なバスアーキテクチャのうちのどのようなものでも用いた、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかとすることができる。限定ではなく例として、そのようなアーキテクチャは、ISA(Industry Standard Architecture、業界標準アーキテクチャ)バス、MCA(Micro−Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、および、Mezzanineバスとしても知られるPCI(Peripheral Component Interconnect)バスを含むことができる。
コンピュータ310は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ310がアクセスできる任意の利用可能な媒体とすることができ、揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体をいずれも含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなど、情報の記憶のための任意の方法または技術の形で実装された揮発性および不揮発性、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、DVD(digital versatile disk、デジタル多用途ディスク)、または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは所望の情報を記憶するのに使用でき、コンピュータ310がアクセスできる他のどのような媒体も含むが、これに限定されるものではない。
通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他のトランスポート機構などの変調されたデータ信号中に具現化するものであり、任意の情報伝達媒体を含む。「変調されたデータ信号」という用語は、その特徴の1つまたは複数が、情報をその信号の中にエンコードする形で設定または変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接配線接続などの有線媒体、ならびに音響、RF、赤外線などの無線媒体および他の無線媒体を含む。また、上記のどのようなものの組合せも、コンピュータ可読媒体の範囲内に含められる。
システムメモリ330は、読出し専用メモリ(ROM)331やランダムアクセスメモリ(RAM)332などの揮発性および/または不揮発性の形のコンピュータ記憶媒体を含む。基本入出力システム(BIOS)333は、起動時などにコンピュータ310内部の要素間で情報を転送するのに役立つ基本ルーチンを含むが、通常、ROM331に格納されている。RAM332は、通常、処理ユニット320が、直ちにアクセス可能なかつ/または現在操作されている、データおよび/またはプログラムモジュールを含む。限定ではなく例として、図3に、オペレーティングシステム334、アプリケーションプログラム335、他のプログラムモジュール336、およびプログラム データ337を示している。
また、コンピュータ310は、他の取り外し可能/取り外し不能で、揮発性/不揮発性のコンピュータ記憶媒体を含むことができる。もっぱら例として、図3に、取り外し不能不揮発性の磁気媒体からの読み取りまたはそれへの書き込みを行うハードディスクドライブ341、取り外し可能不揮発性の磁気ディスク352からの読み取りまたはそれへの書き込みを行う磁気ディスクドライブ351、および、CD ROMまたは他の光学メディアなどの取り外し可能不揮発性の光ディスク356からの読み取りまたはそれへの書き込みを行う光ディスクドライブ355を示している。例示的な動作環境で使用できる他の取り外し可能/取り外し不能で、揮発性/不揮発性のコンピュータ記憶媒体としては、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク(DVD)、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどがあるが、これに限定されるものではない。ハードディスクドライブ341のシステムバス321への接続は、通常、インターフェース340などの取り外し不能メモリインターフェースを通じて行われ、磁気ディスクドライブ351および光ディスクドライブ355のシステムバス321への接続は、通常、インターフェース350などの取り外し可能メモリインターフェースによって行われる。
上で論じ図3に示したドライブおよびそれに関連するコンピュータ記憶媒体により、コンピュータ310用のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶が提供される。図3では、例えば、ハードディスクドライブ341を、オペレーティングシステム344、アプリケーションプログラム345、他のプログラムモジュール346、およびプログラム データ347を格納するものとして示している。こうしたコンポーネントは、オペレーティングシステム334、アプリケーションプログラム335、他のプログラムモジュール336、およびプログラム データ337とは、同じまたは異なるものとすることができることに注意されたい。アプリケーションプログラム335は、例えば、図1のコンピューティング装置102または104のプログラムモジュールを含む。プログラム データ337は、例えば、図1のコンピューティング装置102または104のプログラムデータを含む。オペレーティングシステム334、アプリケーションプログラム345、他のプログラムモジュール346、およびプログラム データ347には、ここでは異なる符号を与えて、これらが少なくとも異なるコピーであることを示している。
ユーザは、コマンドまたは情報のコンピュータ310への入力を、キーボード362、および、一般に、マウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス361などの入力装置を通じて行う。他の入力装置(図示せず)としては、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどを挙げることができる。こうしたおよび他の入力装置の処理ユニット320への接続は、しばしば、システムバス321へと結合されているユーザ入力インターフェース360を通じて行われるが、パラレルポート、ゲームポート、USB(universal serial bus、ユニバーサルシリアルバス)など、他のインターフェースおよびバス構造によって接続することもできる。
モニタ391または他のタイプのディスプレイ装置も、ビデオインターフェース390などのインターフェースを介してシステムバス321に接続される。コンピュータは、このモニタのほかに、プリンタ396やオーディオ装置397など、他の出力周辺装置を含むこともでき、それらは出力周辺装置インターフェース395を通じて接続することができる。
コンピュータ310は、リモートコンピュータ380など、1つまたは複数のリモートコンピュータへの論理接続を用いてネットワーク化された環境で動作する。ある実装形態では、リモートコンピュータ380は、図1のコンピューティング装置102またはネットワーク化されたコンピュータ104を表す。リモートコンピュータ380は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置(peer device)、または他の一般的なネットワークノードとすることができ、その特定の実装形態の一機能として、上でコンピュータ310に関して説明した要素の多くまたはすべてを含むことができるが、図3にはメモリストレージ装置381だけが示されていた。図3に示す論理接続は、LAN(local area network)371、WAN(wide area network)373を含むが、他のネットワークも含むことができる。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットではごく普通のものである。
コンピュータ310は、LANネットワーキング環境で使用される場合、ネットワークインターフェースまたはアダプタ370を通じてLAN371に接続される。コンピュータ310は、WANネットワーキング環境で使用される場合は、通常、モデム372、または、通信の確立をインターネットなどのWAN373を介して行うための他の手段を含む。モデム372は、内蔵でも外付けでもよいが、ユーザ入力インターフェース360または他の適切な機構を介してシステムバス321に接続される。ネットワーク化された環境では、コンピュータ310に関して示したプログラムモジュールまたはその部分は、リモートのメモリストレージ装置に格納することができる。限定ではなく例として、図3に、リモートのアプリケーションプログラム385を、メモリ装置381上に常駐するものとして示している。ここに示すネットワーク接続は例示的であり、コンピュータ間に通信リンクを確立する他の手段を使用してもよい。
結論
重み付き射影座標の楕円曲線点8倍化のためのシステムおよび方法の説明を、構造的な特徴および/または方法論的操作またはアクションに特有な言葉で説明してきたが、添付の特許請求の範囲で定義される実装形態は、説明した特定の特徴またはアクションに必ずしも限定されるわけではないことが理解される。例えば、署名/暗号化モジュール110(図1)および検証/復号モジュール122(図1)を、それぞれ異なるコンピューティング装置(すなわち、装置102および104)上に示しているが、別の実装形態では、これらのプログラムモジュールに関連するロジックを単一のコンピューティング装置102上に実装することができる。このため、システム100の特定の特徴および動作を、特許請求する主題(subject matter)を実装する例示的な形態として開示している。
重み付き射影座標用の楕円曲線点8倍化のための例示的なシステムを示す図である。 重み付き射影座標用の楕円曲線点8倍化のための例示的な手順を示す図である。 重み付き射影座標用の楕円曲線点8倍化のためのシステムおよび方法の完全または部分的な実装に適するコンピューティング環境の例を示す図である。
符号の説明
102,104 コンピューティング装置
106 プログラムモジュール
110 署名/暗号化モジュール
122 検証/復号モジュール
320 処理ユニット
321 システムバス
330 システムメモリ
340 取り外し不能不揮発性メモリインターフェース
350 取り外し可能不揮発性メモリインターフェース
360 ユーザ入力インターフェース
361 マウス
362 キーボード
370 ネットワークインターフェース
371 ローカルエリアネットワーク
372 モデム
373 広域ネットワーク
380 リモートコンピュータ
385 リモートアプリケーションプログラム
391 モニタ
390 ビデオインターフェース
394 入力周辺装置インターフェース
395 出力周辺装置インターフェース
396 プリンタ
397 オーディオ装置

Claims (20)

  1. 楕円曲線上の重み付き射影点Pの特定を、Pの座標が(x,y,z)であるとして行うこと、および
    Pの8Pの計算を、繰り返し2倍化演算に依存せずに、8Pの座標が(r,s,t)であるとして行うこと
    を備えることを特徴とする方法。
  2. 8Pの計算は、8Pを計算するために26回の体の乗算となるストレートライン型楕円曲線点8倍化アルゴリズムを用いて8Pの計算を行うことをさらに含むことを特徴とする請求項1に記載の方法。
  3. 記号:=は定義演算を表し、前記ストレートライン型楕円曲線点8倍化アルゴリズムは、次のもの、すなわち
    x2:=x^2;
    y2:=y^2;
    y4:=y2^2;
    xy2:=x*y2;
    yz:=y*z;
    z2:=z^2;
    z4:=z2^2;
    az4:=a*z4;
    ay4z4:=az4*y4;
    T1:=3*x2+az4;
    T12:=T1^2;
    T2:=12*xy2−T12;
    T3:=T12−8*xy2;
    T32:=T3^2;
    T4:=T1*T2−8*y4;
    T42:=T4^2;
    T44:=T42^2;
    T5:=3*T32+16*ay4z4;
    T52:=T5^2;
    T6:=T44*256*ay4z4;
    T7:=T3*T42;
    T8:=T52−8*T7;
    T82:=3*T8^2;
    T9:=T82+T6;
    T92:=(T9)^2;
    S10:=T52−8*T7;
    S11:=12*T7−T52;
    S12:=T5*S11;
    S13:=S12−8*T44;
    S132:=S13^2;
    S14:=S10*S132;
    r:=T92−8*S14;
    S15:=12*S14−T92;
    S134:=S132^2;
    s:=T9*S15−8*S134;および
    t:=8*S13*T4*yz
    を含むことを特徴とする請求項2に記載の方法。
  4. 8Pの計算は、8Pの計算を直接型楕円曲線点8倍化アルゴリズムを用いて行うことをさらに含むことを特徴とする請求項1に記載の方法。
  5. 記号:=は定義演算を表し、前記直接型楕円曲線点8倍化アルゴリズムは、
    Figure 2006259734
    Figure 2006259734
    Figure 2006259734
    を備えることを特徴とする請求項4に記載の方法。
  6. 前記楕円曲線上のそれぞれの点に対する8Pの決定を、直接型またはインライン直接型楕円曲線点8倍化アルゴリズムを用いて行うこと、および
    元のデータの暗号化または署名を、前記直接型またはインライン直接型楕円曲線点8倍化アルゴリズムの結果に基づいて行うこと
    をさらに備えることを特徴とする請求項1に記載の方法。
  7. 前記楕円曲線上のそれぞれの点に対する8Pの決定を、直接型またはインライン直接型楕円曲線点8倍化アルゴリズムを用いて行うこと、および
    暗号処理されたデータの復号または検証を、前記直接型またはインライン直接型楕円曲線点8倍化アルゴリズムの結果に基づいて行うこと
    をさらに備えることを特徴とする請求項1に記載の方法。
  8. 楕円曲線上の重み付き射影点Pの特定を、Pの座標が(x,y,z)であるとして行うこと、および
    Pの8Pの計算を、繰り返し2倍化演算に依存せずに、8Pの座標が(r,s,t)であるとして行うこと
    のための、プロセッサで実行可能なコンピュータプログラム命令を備えることを特徴とするコンピュータ可読媒体。
  9. 8Pの計算を行う前記コンピュータプログラム命令は、8Pを計算するために26回の体の乗算となるストレートライン型楕円曲線点8倍化アルゴリズムを用いて8Pの計算を行う命令をさらに含むことを特徴とする請求項8に記載のコンピュータ可読媒体。
  10. 記号:=は定義演算を表し、前記ストレートライン型楕円曲線点8倍化アルゴリズムは、r、sおよびtを
    x2:=x^2;
    y2:=y^2;
    y4:=y2^2;
    xy2:=x*y2;
    yz:=y*z;
    z2:=z^2;
    z4:=z2^2;
    az4:=a*z4;
    ay4z4:=az4*y4;
    T1:=3*x2+az4;
    T12:=T1^2;
    T2:=12*xy2−T12;
    T3:=T12−8*xy2;
    T32:=T3^2;
    T4:=T1*T2−8*y4;
    T42:=T4^2;
    T44:=T42^2;
    T5:=3*T32+16*ay4z4;
    T52:=T5^2;
    T6:=T44*256*ay4z4;
    T7:=T3*T42;
    T8:=T52−8*T7;
    T82:=3*T8^2;
    T9:=T82+T6;
    T92:=(T9)^2;
    S10:=T52−8*T7;
    S11:=12*T7−T52;
    S12:=T5*S11;
    S13:=S12−8*T44;
    S132:=S13^2;
    S14:=S10*S132;
    r:=T92−8*S14;
    S15:=12*S14−T92;
    S134:=S132^2;
    s:=T9*S15−8*S134;および
    t:=8*S13*T4*yz
    のように決定することを特徴とする請求項9に記載のコンピュータ可読媒体。
  11. 8Pの計算を行う前記コンピュータプログラム命令は、8Pの計算を直接型楕円曲線点8倍化アルゴリズムを用いて行う命令をさらに含むことを特徴とする請求項8に記載のコンピュータ可読媒体。
  12. 記号:=は定義演算を表し、前記直接型楕円曲線点8倍化アルゴリズムは、r、s、およびtを
    Figure 2006259734
    Figure 2006259734
    Figure 2006259734
    のように決定することを特徴とする請求項11に記載のコンピュータ可読媒体。
  13. 前記楕円曲線上のそれぞれの点に対する8Pの決定を、直接型またはインライン直接型楕円曲線点8倍化アルゴリズムを用いて行うこと、および
    元のデータの暗号化または署名を、前記直接型またはインライン直接型楕円曲線点8倍化アルゴリズムの結果に基づいて行うこと
    のための、前記プロセッサで実行可能なコンピュータプログラム命令をさらに備えることを特徴とする請求項8に記載のコンピュータ可読媒体。
  14. 前記楕円曲線上のそれぞれの点に対する8Pの決定を、直接型またはインライン直接型楕円曲線点8倍化アルゴリズムを用いて行うこと、および
    暗号処理されたデータの復号または検証を、前記直接型またはインライン直接型楕円曲線点8倍化アルゴリズムの結果に基づいて行うこと
    のための、前記プロセッサで実行可能なコンピュータプログラム命令をさらに備えることを特徴とする請求項8に記載のコンピュータ可読媒体。
  15. プロセッサと、
    前記プロセッサに結合されたメモリとを含み、前記メモリは、
    楕円曲線上の重み付き射影点Pの特定を、Pの座標が(x,y,z)であるとして行うこと、および
    Pの8Pの計算を、繰り返し2倍化演算に依存せずに、8Pの座標が(r,s,t)であるとして行うこと
    のための、前記プロセッサで実行可能なコンピュータプログラム命令を備えることを特徴とするコンピューティング装置。
  16. 8Pの計算を行う前記コンピュータプログラム命令は、8Pを計算するために26回の体の乗算となるストレートライン型楕円曲線点8倍化アルゴリズムを用いて8Pの計算を行う命令をさらに含むことを特徴とする請求項15に記載のコンピューティング装置。
  17. 記号:=は定義演算を表し、前記ストレートライン型楕円曲線点8倍化アルゴリズムは、r、sおよびtを
    x2:=x^2;
    y2:=y^2;
    y4:=y2^2;
    xy2:=x*y2;
    yz:=y*z;
    z2:=z^2;
    z4:=z2^2;
    az4:=a*z4;
    ay4z4:=az4*y4;
    T1:=3*x2+az4;
    T12:=T1^2;
    T2:=12*xy2−T12;
    T3:=T12−8*xy2;
    T32:=T3^2;
    T4:=T1*T2−8*y4;
    T42:=T4^2;
    T44:=T42^2;
    T5:=3*T32+16*ay4z4;
    T52:=T5^2;
    T6:=T44*256*ay4z4;
    T7:=T3*T42;
    T8:=T52−8*T7;
    T82:=3*T8^2;
    T9:=T82+T6;
    T92:=(T9)^2;
    S10:=T52−8*T7;
    S11:=12*T7−T52;
    S12:=T5*S11;
    S13:=S12−8*T44;
    S132:=S13^2;
    S14:=S10*S132;
    r:=T92−8*S14;
    S15:=12*S14−T92;
    S134:=S132^2;
    s:=T9*S15−8*S134;および
    t:=8*S13*T4*yz
    のように決定することを特徴とする請求項16に記載のコンピューティング装置。
  18. 8Pの計算を行う前記コンピュータプログラム命令は、8Pの計算を直接型楕円曲線点8倍化アルゴリズムを用いて行う命令をさらに含むことを特徴とする請求項15に記載のコンピューティング装置。
  19. 記号:=は定義演算を表し、前記直接型楕円曲線点8倍化アルゴリズムは、r、s、およびtを
    Figure 2006259734
    Figure 2006259734
    Figure 2006259734
    のように決定することを特徴とする請求項18に記載のコンピューティング装置。
  20. 前記楕円曲線上のそれぞれの点に対する8Pの決定を、直接型またはインライン直接型楕円曲線点8倍化アルゴリズムを用いて行うこと、および
    元のデータの暗号化または署名を、前記直接型またはインライン直接型楕円曲線点8倍化アルゴリズムの結果に基づいて行うこと、または
    暗号処理されたデータの復号または検証を、前記直接型またはインライン直接型楕円曲線点8倍化アルゴリズムの結果に基づいて行うこと
    のための、前記プロセッサで実行可能なコンピュータプログラム命令をさらに備えることを特徴とする請求項15に記載のコンピューティング装置。
JP2006071591A 2005-03-15 2006-03-15 重み付き射影座標用の楕円曲線点8倍化 Pending JP2006259734A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/080,303 US7702098B2 (en) 2005-03-15 2005-03-15 Elliptic curve point octupling for weighted projective coordinates

Publications (2)

Publication Number Publication Date
JP2006259734A true JP2006259734A (ja) 2006-09-28
JP2006259734A5 JP2006259734A5 (ja) 2009-07-30

Family

ID=36791620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006071591A Pending JP2006259734A (ja) 2005-03-15 2006-03-15 重み付き射影座標用の楕円曲線点8倍化

Country Status (5)

Country Link
US (1) US7702098B2 (ja)
EP (1) EP1705560B1 (ja)
JP (1) JP2006259734A (ja)
AT (1) ATE450825T1 (ja)
DE (1) DE602006010755D1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212458A (ja) * 1998-01-27 1999-08-06 Matsushita Electric Ind Co Ltd 楕円曲線演算装置
JP2000137436A (ja) * 1998-10-30 2000-05-16 Fujitsu Ltd 素体上楕円曲線上の点の演算方法およびその装置
JP2000181347A (ja) * 1998-12-18 2000-06-30 Fujitsu Ltd 素体上楕円曲線上の点の演算方法およびその装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442707A (en) * 1992-09-28 1995-08-15 Matsushita Electric Industrial Co., Ltd. Method for generating and verifying electronic signatures and privacy communication using elliptic curves
US5577124A (en) * 1995-03-09 1996-11-19 Arithmetica, Inc. Multi-purpose high speed cryptographically secure sequence generator based on zeta-one-way functions
US6252959B1 (en) * 1997-05-21 2001-06-26 Worcester Polytechnic Institute Method and system for point multiplication in elliptic curve cryptosystem
US6212279B1 (en) * 1998-06-26 2001-04-03 The United States Of America As Represented By The United States National Security Agency Method of elliptic curve cryptographic key exchange using reduced base tau expansion in non-adjacent form
US6415032B1 (en) * 1998-12-01 2002-07-02 Xilinx, Inc. Encryption technique using stream cipher and block cipher
US6611597B1 (en) * 1999-01-25 2003-08-26 Matsushita Electric Industrial Co., Ltd. Method and device for constructing elliptic curves
AU2002332671A1 (en) * 2001-08-13 2003-03-03 Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption and related cryptographic techniques
US7209555B2 (en) * 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
GB2389678A (en) 2002-06-14 2003-12-17 Univ Sheffield Finite field processor reconfigurable for varying sizes of field.
US7024559B1 (en) * 2002-06-28 2006-04-04 The United States Of America As Represented By The National Security Agency Method of elliptic curve digital signature using expansion in joint sparse form
GB0215524D0 (en) * 2002-07-05 2002-08-14 Hewlett Packard Co Method and apparatus for generating a cryptographic key
KR20030008183A (ko) * 2002-12-24 2003-01-24 학교법인 한국정보통신학원 겹선형쌍을 이용한 개인식별정보 기반의 원형서명 방법
KR20030008182A (ko) * 2002-12-24 2003-01-24 학교법인 한국정보통신학원 겹선형쌍을 이용한 개인식별정보 기반의 은닉서명 방법
US20050018850A1 (en) * 2003-06-26 2005-01-27 Micorsoft Corporation Methods and apparatuses for providing short digital signatures using curve-based cryptography
US20050018851A1 (en) * 2003-06-26 2005-01-27 Microsoft Coproration Methods and apparatuses for providing blind digital signatures using curve-based cryptography
KR20030062401A (ko) * 2003-07-04 2003-07-25 학교법인 한국정보통신학원 겹선형쌍을 이용한 개인식별정보 기반의 은닉서명 장치 및방법
US7499544B2 (en) 2003-11-03 2009-03-03 Microsoft Corporation Use of isogenies for design of cryptosystems
US7594261B2 (en) 2005-02-08 2009-09-22 Microsoft Corporation Cryptographic applications of the Cartier pairing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212458A (ja) * 1998-01-27 1999-08-06 Matsushita Electric Ind Co Ltd 楕円曲線演算装置
JP2000137436A (ja) * 1998-10-30 2000-05-16 Fujitsu Ltd 素体上楕円曲線上の点の演算方法およびその装置
JP2000181347A (ja) * 1998-12-18 2000-06-30 Fujitsu Ltd 素体上楕円曲線上の点の演算方法およびその装置

Also Published As

Publication number Publication date
EP1705560B1 (en) 2009-12-02
DE602006010755D1 (de) 2010-01-14
EP1705560A2 (en) 2006-09-27
US7702098B2 (en) 2010-04-20
US20060210069A1 (en) 2006-09-21
EP1705560A3 (en) 2006-10-04
ATE450825T1 (de) 2009-12-15

Similar Documents

Publication Publication Date Title
RU2376651C2 (ru) Использование изогений для разработки криптосистем
US7594261B2 (en) Cryptographic applications of the Cartier pairing
US20060251247A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor
US20070011467A1 (en) Methods and apparatus for hardware normalization and denormalization
JP2006171711A (ja) カースルズ−テイトペアリングに基づくデータの暗号処理
US20090136025A1 (en) Method for scalarly multiplying points on an elliptic curve
JP2006259735A (ja) Simd処理を用いた楕円曲線点8倍化
US11706019B2 (en) Systems for providing secure communications using a protocol engine
US6772184B2 (en) Method for efficient modular division over prime integer fields
Vijayakumar et al. Comparative study of hyperelliptic curve cryptosystem over prime field and its survey
JP2007041461A (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
Trujillo-Olaya et al. Hardware implementation of elliptic curve digital signature algorithm over GF (2409) using sha-3
Aung et al. Implementation of elliptic curve arithmetic operations for prime field and binary field using java BigInteger class
JP2006259734A (ja) 重み付き射影座標用の楕円曲線点8倍化
Wang et al. An efficient elliptic curves scalar multiplication for wireless network
Saini et al. An FPGA implementation of the RSA algorithm using VHDL and a Xilinx system generator for image applications
JP2005055488A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびそのプログラム
JP2004004784A (ja) ハッシュ・アルゴリズムを実装するためのシステム及び方法
Muhammed et al. Automated Performance analysis E-services by AES-Based Hybrid Cryptosystems with RSA, ElGamal, and ECC
KR100341507B1 (ko) 빠른 유한체 연산을 이용한 타원곡선 암호화 방법 및 전자서명 방법
JP2003228285A (ja) 楕円曲線スカラ倍演算装置
CN117278213B (zh) 基于多项式承诺的方法、电子设备及可读存储介质
Somsuk The alternative Method to Finish Modular Exponentiation and Point Multiplication Processes
WO2023151171A1 (zh) 抗内存信息泄露攻击的椭圆曲线数字签名计算方法及装置
KR20090090881A (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120106