JP2001526416A - 楕円曲線暗号化演算の最適化用変換方法 - Google Patents
楕円曲線暗号化演算の最適化用変換方法Info
- Publication number
- JP2001526416A JP2001526416A JP2000524894A JP2000524894A JP2001526416A JP 2001526416 A JP2001526416 A JP 2001526416A JP 2000524894 A JP2000524894 A JP 2000524894A JP 2000524894 A JP2000524894 A JP 2000524894A JP 2001526416 A JP2001526416 A JP 2001526416A
- Authority
- JP
- Japan
- Prior art keywords
- point
- elliptic curve
- mapping
- field
- formula
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods 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/72—Methods 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/728—Methods 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 using Montgomery reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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/3073—Public 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
本発明は、楕円曲線暗号化、復号化及び署名機能を含む楕円曲線暗号化システムの最適化されたハードウェア及びソフトウェア的実装を可能にする一つの変換方法、を提供する。この変換方法は、任意の体F上で定義された任意の楕円曲線群Gに対して適用可能である。特に本発明は計算Q=ePから構成される楕円曲線点乗算演算の高速化を特徴とするものであり、ここにPは楕円曲線群Gのメンバでありeは整数である。この変換方法によると、一旦メンバP=(x,y)を点P’=(x’,y’)に変換してからQ’=(u,v)=eP’の計算を実行することによりこの高速化は実現される。変換後のこの点P’は必ずしも楕円曲線上の点ではないが、点P’上でこの計算eP’を実行して次に計算結果のQ’を楕円曲線群G内に逆変換してQを求めることにより、Qの計算がQの直接計算の採用よりもより効率的になる。本発明は又、体Fの効率的な使用を可能にする変換方法を介することにより、有限体算術演算における任意の計算式を含む暗号化演算の計算を最適化する方法を含む。本発明は又、任意の有限体における任意の有限体計算を最適化する方法を含む。本発明又、以前には限定された特殊例にのみ適用可能であった他の既知技法の使用を可能にする暗号化計算に対する一組の変換を教示する。
Description
【0001】 (技術分野) 本発明は、楕円曲線暗号化システムのソフトウェア的及びハードウェア的実装
(又は実施)に関する。特に本発明は一般に計算演算を必要とする楕円曲線暗号
化システムに関し、この計算演算は有限体(finite field)内での有限個数の任
意の体演算(field operations)を含むものである。
(又は実施)に関する。特に本発明は一般に計算演算を必要とする楕円曲線暗号
化システムに関し、この計算演算は有限体(finite field)内での有限個数の任
意の体演算(field operations)を含むものである。
【0002】 (背景技術) 情報を基盤とする現代社会において、大域的(グローバル)なコンピュータネ
ットワークに対するセキュリティの必要性は益々焦眉の課題となりつつある。暗
号化システムは、プライバシー、信用、アクセス制御に対する守秘用システムの
構築に使用される基本的な道具である。こうしたプライバシー、信用、アクセス
制御の守秘は、特に電子商取引、企業セキュリティ、知的所有権のディジタル形
態的な販売、及び国家セキュリティ、等の広範囲の領域に及んでいる。
ットワークに対するセキュリティの必要性は益々焦眉の課題となりつつある。暗
号化システムは、プライバシー、信用、アクセス制御に対する守秘用システムの
構築に使用される基本的な道具である。こうしたプライバシー、信用、アクセス
制御の守秘は、特に電子商取引、企業セキュリティ、知的所有権のディジタル形
態的な販売、及び国家セキュリティ、等の広範囲の領域に及んでいる。
【0003】 「公開鍵」暗号化システムは、以前にデータを相互に交換したことがない複数
のエンティティ(即ち、人間か又はコンピュータシステム)間における機密保護
された情報の交換が要求されるシステムにおいて、必要とされる本質的な機能を
提供するものである。インターネットを含めた現代的な情報システムの大部分は
、このタイプのシステムに属する。一例として、ある消費者がオンライン上の特
定の業者と過去に一回も接触したことがなくても、このシステムによればその彼
又は彼女はその業者から商品をこうした安全な仕方で購入し得るはずである。暗
号化、復号化、ディジタル署名、及び署名検証、等の機能の提供を通じて、公開
鍵暗号化システムはこうした安全な購入を可能にする。公開鍵暗号化システムに
おいては、他者からの機密保護されたメッセージの受信に関心を払うエンティテ
ィは、彼又は彼女の「公開鍵」を公開する。これらの他者は、その公開鍵を用い
て彼等がエンティティに送付するメッセージを暗号化する。これらの暗号化され
たメッセージは「秘密鍵」を用いてのみ復号化可能であり、この秘密鍵を知って
いる存在は唯一エンティティのみである。又、エンティティはこの秘密鍵を用い
て一連のデータにディジタル的に「署名する」ことができる。翻って他者は公開
鍵を用いてこの署名を検証し、このデータが実際にその署名エンティティにより
署名されたことを確認できる。
のエンティティ(即ち、人間か又はコンピュータシステム)間における機密保護
された情報の交換が要求されるシステムにおいて、必要とされる本質的な機能を
提供するものである。インターネットを含めた現代的な情報システムの大部分は
、このタイプのシステムに属する。一例として、ある消費者がオンライン上の特
定の業者と過去に一回も接触したことがなくても、このシステムによればその彼
又は彼女はその業者から商品をこうした安全な仕方で購入し得るはずである。暗
号化、復号化、ディジタル署名、及び署名検証、等の機能の提供を通じて、公開
鍵暗号化システムはこうした安全な購入を可能にする。公開鍵暗号化システムに
おいては、他者からの機密保護されたメッセージの受信に関心を払うエンティテ
ィは、彼又は彼女の「公開鍵」を公開する。これらの他者は、その公開鍵を用い
て彼等がエンティティに送付するメッセージを暗号化する。これらの暗号化され
たメッセージは「秘密鍵」を用いてのみ復号化可能であり、この秘密鍵を知って
いる存在は唯一エンティティのみである。又、エンティティはこの秘密鍵を用い
て一連のデータにディジタル的に「署名する」ことができる。翻って他者は公開
鍵を用いてこの署名を検証し、このデータが実際にその署名エンティティにより
署名されたことを確認できる。
【0004】 公開鍵暗号化システムのセキュリティは、秘密鍵をその対応する既知の公開鍵
から導出する困難度に依存する。秘密鍵の数学的な導出が複雑で困難であればあ
るほど、対応する秘密鍵を「推測する」ことにより公開鍵を「破る」、という作
業に関してコンピュータは益々時間を要するわけである。今日最も普通に使用さ
れている公開鍵暗号化システムは、RSA公開鍵暗号化システムである。このR
SAシステムの公開鍵と秘密鍵の間の関係は、長大な合成整数の因数分解という
数学によって支配される。RSAシステムの公開鍵と秘密鍵は、二進のビットパ
ターンとして表現された長大な整数である。ある公開鍵が長ければ長いほどそれ
は難度が高く、対応する秘密鍵を導出することによりその公開鍵を破る、という
作業に関してコンピュータは益々時間を要するわけである。例えば、因数分解ア
ルゴリズムと分散型電算処理における現代の進歩により、400ビットの長さの
RSA公開鍵を破る作業が可能になった。しかしながら、現在入手可能な電算処
理リソースをもってしては、1024ビット又は2048ビットの長さのRSA
公開鍵を破る作業は実質的には不可能と考えられている。許容レべルのセキュリ
ティを維持する為に、現代的な公開鍵暗号化システムはより長いRSA公開鍵を
採用してきた。より長い公開鍵の使用に基づく公開鍵暗号化の実行の為には、よ
り多くの電算処理リソースが要求される。従って、より短い公開鍵の使用でこう
した長い公開鍵が提供するのと同一レべルのセキュリティを提供し得る、RSA
公開鍵暗号化システムに対して代替的な公開鍵暗号化システムの利用が経済的観
点からは理想である。
から導出する困難度に依存する。秘密鍵の数学的な導出が複雑で困難であればあ
るほど、対応する秘密鍵を「推測する」ことにより公開鍵を「破る」、という作
業に関してコンピュータは益々時間を要するわけである。今日最も普通に使用さ
れている公開鍵暗号化システムは、RSA公開鍵暗号化システムである。このR
SAシステムの公開鍵と秘密鍵の間の関係は、長大な合成整数の因数分解という
数学によって支配される。RSAシステムの公開鍵と秘密鍵は、二進のビットパ
ターンとして表現された長大な整数である。ある公開鍵が長ければ長いほどそれ
は難度が高く、対応する秘密鍵を導出することによりその公開鍵を破る、という
作業に関してコンピュータは益々時間を要するわけである。例えば、因数分解ア
ルゴリズムと分散型電算処理における現代の進歩により、400ビットの長さの
RSA公開鍵を破る作業が可能になった。しかしながら、現在入手可能な電算処
理リソースをもってしては、1024ビット又は2048ビットの長さのRSA
公開鍵を破る作業は実質的には不可能と考えられている。許容レべルのセキュリ
ティを維持する為に、現代的な公開鍵暗号化システムはより長いRSA公開鍵を
採用してきた。より長い公開鍵の使用に基づく公開鍵暗号化の実行の為には、よ
り多くの電算処理リソースが要求される。従って、より短い公開鍵の使用でこう
した長い公開鍵が提供するのと同一レべルのセキュリティを提供し得る、RSA
公開鍵暗号化システムに対して代替的な公開鍵暗号化システムの利用が経済的観
点からは理想である。
【0005】 最近10年間に、楕円曲線暗号化(「ECC」)システムがこうした代替的な
効率的暗号化システムの候補として登場してきた。ECCは、RSA鍵の6分の
1の長さの鍵でRSAと同一レべルのセキュリティを提供する。しかしながら現
在に至るまで、ECCの実際のソフトウェア実装は余りに非効率な性格のもので
あり商業的に成立不能である。商業的に成立可能である為には、そのハードウェ
ア及びソフトウェア実装の低コスト化においては勿論その速度においても、RS
Aと匹敵する機能をECCは可能にする必要がある。こうした効率的ECCが実
現されれば、構想中である多くの現代的な暗号化システムの実装が可能になる。 こうした現代的暗号化システムの実装は、この効率的ECCの実現なくしては
経済的に不可能であろうと思われる。こうした理由で学界と産業界の双方におい
て、効率的ECCの実装に向けて多大の研究が集中されてきた。効率的ECCの
実装に向けた最も普通のアプローチを以下に簡単に説明する。
効率的暗号化システムの候補として登場してきた。ECCは、RSA鍵の6分の
1の長さの鍵でRSAと同一レべルのセキュリティを提供する。しかしながら現
在に至るまで、ECCの実際のソフトウェア実装は余りに非効率な性格のもので
あり商業的に成立不能である。商業的に成立可能である為には、そのハードウェ
ア及びソフトウェア実装の低コスト化においては勿論その速度においても、RS
Aと匹敵する機能をECCは可能にする必要がある。こうした効率的ECCが実
現されれば、構想中である多くの現代的な暗号化システムの実装が可能になる。 こうした現代的暗号化システムの実装は、この効率的ECCの実現なくしては
経済的に不可能であろうと思われる。こうした理由で学界と産業界の双方におい
て、効率的ECCの実装に向けて多大の研究が集中されてきた。効率的ECCの
実装に向けた最も普通のアプローチを以下に簡単に説明する。
【0006】 公開鍵暗号化の実行の為に、ECCシステムは数学上で「楕円曲線」と呼ばれ
る「群」の固有の特性を利用する。楕円曲線は、数学上の「体(フィールド)」
概念と関連し且つこの体「上で構成される」群である。有限体ならば如何なるも
のでも一つの楕円曲線の構成の為に選択され得るが、この有限体を精確に選択し
ないとこの構成される楕円曲線の性質とこの楕円曲線内で定義される「演算」を
表現するコンピュータ実装の効率に重大な影響がもたらされる。ECCの実装に
使用され得る全ての演算の内で最も計算的に複雑で且つ困難なものの一つに、「
楕円曲線点乗算演算」として知られる演算がある。この楕円曲線点乗算演算はe
Pの計算を要求するものであり、ここにPは楕円曲線上における「点」でありe
は正の整数である。この演算は、暗号化、復号化、乱数生成、鍵交換、ディジタ
ル署名、及び署名検証を含む多くの楕円曲線暗号化機能に関して中心的な役割を
担うものである。
る「群」の固有の特性を利用する。楕円曲線は、数学上の「体(フィールド)」
概念と関連し且つこの体「上で構成される」群である。有限体ならば如何なるも
のでも一つの楕円曲線の構成の為に選択され得るが、この有限体を精確に選択し
ないとこの構成される楕円曲線の性質とこの楕円曲線内で定義される「演算」を
表現するコンピュータ実装の効率に重大な影響がもたらされる。ECCの実装に
使用され得る全ての演算の内で最も計算的に複雑で且つ困難なものの一つに、「
楕円曲線点乗算演算」として知られる演算がある。この楕円曲線点乗算演算はe
Pの計算を要求するものであり、ここにPは楕円曲線上における「点」でありe
は正の整数である。この演算は、暗号化、復号化、乱数生成、鍵交換、ディジタ
ル署名、及び署名検証を含む多くの楕円曲線暗号化機能に関して中心的な役割を
担うものである。
【0007】 どのカテゴリの体がECCの実装用に使用された際に最良の選択を与えるのか
という問題に関して、最近10年間に暗号化システムの関係者間で討論が為され
た。GF(p)及びGF(2k)と呼ばれる体の二つの基本的なカテゴリが、楕 円曲線暗号化用の体の国際規格として米国電気電子学会(IEEE)により選択
された。学界と産業界による今日の研究の大部分は、GF(p)か又はGF(2 k )のいずれか一方上でのECCの実装という方向に集中されている。しかしな がら、暗号化の為のGF(p)か又はGFかという選択の正確な利点と不利点は
、現段階では明確には理解されていない。更に、GF(p)とGF(2k)の双 方ともその内部に無数の特定の個別メンバ体を含む。各個別メンバ体は、ECC
実装の計算特性に影響する固有の性質を有する。更に、GF(p)か又はGF(
2k)内に一個の特定の個別メンバ体を与えると、多数の楕円「曲線」がこのメ ンバ体上で構成され得る。これらの曲線の選択も又、ECC実装の計算結果特性
に影響する。
という問題に関して、最近10年間に暗号化システムの関係者間で討論が為され
た。GF(p)及びGF(2k)と呼ばれる体の二つの基本的なカテゴリが、楕 円曲線暗号化用の体の国際規格として米国電気電子学会(IEEE)により選択
された。学界と産業界による今日の研究の大部分は、GF(p)か又はGF(2 k )のいずれか一方上でのECCの実装という方向に集中されている。しかしな がら、暗号化の為のGF(p)か又はGFかという選択の正確な利点と不利点は
、現段階では明確には理解されていない。更に、GF(p)とGF(2k)の双 方ともその内部に無数の特定の個別メンバ体を含む。各個別メンバ体は、ECC
実装の計算特性に影響する固有の性質を有する。更に、GF(p)か又はGF(
2k)内に一個の特定の個別メンバ体を与えると、多数の楕円「曲線」がこのメ ンバ体上で構成され得る。これらの曲線の選択も又、ECC実装の計算結果特性
に影響する。
【0008】 効率的ECCの実装を目的とした従来の試みは、GF(2k)か又はGF(p )内における「特殊な」数学的又は計算的性質を有する特定の個別メンバ体の発
見か、又はそうした個別メンバ体上で定義される特定の楕円曲線の発見、のいず
れか一方に通常基づいていた。これらの特殊な数学的又は計算的性質はECCの
実装計算の最適化に利用された。このアプローチは全ての体に対する効率的EC
Cの実装を試みるものではない。むしろこのアプローチはある一個の特定の体を
注意深く選択して、効率的ECCの実装計算を実行する為の特殊な数学的又は計
算的技法を用意するものである。
見か、又はそうした個別メンバ体上で定義される特定の楕円曲線の発見、のいず
れか一方に通常基づいていた。これらの特殊な数学的又は計算的性質はECCの
実装計算の最適化に利用された。このアプローチは全ての体に対する効率的EC
Cの実装を試みるものではない。むしろこのアプローチはある一個の特定の体を
注意深く選択して、効率的ECCの実装計算を実行する為の特殊な数学的又は計
算的技法を用意するものである。
【0009】 このアプローチの例はアグニュー等による提案で、「正規ベース」と呼ばれる
方法を利用しGF(2k)内の複数個の特定体において高速ECCを実装する。 学界と産業界による研究の大部分はGF(2k)内の体に対する「多項式ベース 」と呼ばれるこれと代替的な方法の利用に集中されているが、GF(2k)内の 6個の特定体における正規ベースの利用によりECCの特定の実装の商業化が可
能になった。このアプローチの一つの不利点は、鍵の長さがこれらの6個の特定
体により許容される6個の値に限定されてしまうことである。
方法を利用しGF(2k)内の複数個の特定体において高速ECCを実装する。 学界と産業界による研究の大部分はGF(2k)内の体に対する「多項式ベース 」と呼ばれるこれと代替的な方法の利用に集中されているが、GF(2k)内の 6個の特定体における正規ベースの利用によりECCの特定の実装の商業化が可
能になった。このアプローチの一つの不利点は、鍵の長さがこれらの6個の特定
体により許容される6個の値に限定されてしまうことである。
【0010】 (数学的背景技術) この節では、本明細書で使用される数学用語のリストを提供する。本発明の方
法論を理解するのに有用な幾つかの重要な基本概念も又、この節で簡単に説明す
る。この節における説明は数学的な正確性とか厳密性を意図したものではない。
法論を理解するのに有用な幾つかの重要な基本概念も又、この節で簡単に説明す
る。この節における説明は数学的な正確性とか厳密性を意図したものではない。
【0011】 集合 「集合」とは、数学的及び物理的対象を含めた何らかの対象の集りを指す。し
ばしば集合は、これらの対象を書き並べ更にコンマで分離したリストを渦巻き括
弧で囲むことにより、印刷上表現される。例えば、Fが7より小なる全ての非負
整数の集合を表すとする。するとこの集合は、F={0,1,2,3,4,5,
6}と書ける。ある集合に属するある対象は、その集合の「メンバ」即ち「元(
エレメント)」である。他の例を挙げると、Fが全ての4次多項式の集合を表し
、p(x)が特定の多項式x4+x2−x+1を表すとする。p(x)は4次多項
式であるからこの場合p(x)はFの元である。数学的速記法ではp(x)∈F
と表され、ここに記号「∈」は「属する」又は「のメンバである」と通常読まれ
る。ある特定集合Sの各々全ての元が他の集合Fのある元である場合、集合Sは
集合Fの「部分集合」である。これは速記記号でS⊂Fと表される。例えば、{
5,1,3}⊂{0,1,2,3,4,5,6}、である。記号「⊂」は、「の
部分集合である」と読まれる。あらゆる集合はそれ自身の部分集合である。即ち
、任意集合Sに対して、S⊂Sである。
ばしば集合は、これらの対象を書き並べ更にコンマで分離したリストを渦巻き括
弧で囲むことにより、印刷上表現される。例えば、Fが7より小なる全ての非負
整数の集合を表すとする。するとこの集合は、F={0,1,2,3,4,5,
6}と書ける。ある集合に属するある対象は、その集合の「メンバ」即ち「元(
エレメント)」である。他の例を挙げると、Fが全ての4次多項式の集合を表し
、p(x)が特定の多項式x4+x2−x+1を表すとする。p(x)は4次多項
式であるからこの場合p(x)はFの元である。数学的速記法ではp(x)∈F
と表され、ここに記号「∈」は「属する」又は「のメンバである」と通常読まれ
る。ある特定集合Sの各々全ての元が他の集合Fのある元である場合、集合Sは
集合Fの「部分集合」である。これは速記記号でS⊂Fと表される。例えば、{
5,1,3}⊂{0,1,2,3,4,5,6}、である。記号「⊂」は、「の
部分集合である」と読まれる。あらゆる集合はそれ自身の部分集合である。即ち
、任意集合Sに対して、S⊂Sである。
【0012】 写像(マッピング) 「写像」とは、ある集合の各メンバを他の集合の特定メンバに対応させる対応
関係を指す概念である。例えば、全人間の集合の各メンバをその各人間の年齢を
表す整数に「写像させる」対応関係として、写像Tを定義できる。例えば、仮に
トムが32歳であるならば、T(トム)=32と記すことにより写像Tが人間ト
ムと整数32の間に成立させる対応関係を表現する。32は、写像Tの「下での
」トムの「像」と呼ばれる。
関係を指す概念である。例えば、全人間の集合の各メンバをその各人間の年齢を
表す整数に「写像させる」対応関係として、写像Tを定義できる。例えば、仮に
トムが32歳であるならば、T(トム)=32と記すことにより写像Tが人間ト
ムと整数32の間に成立させる対応関係を表現する。32は、写像Tの「下での
」トムの「像」と呼ばれる。
【0013】 他の例を挙げると、pを素数とし、nが任意の非負整数を表し、rがnをpで
割った際の整数剰余を表すとする。この関係は数学的速記法では、r=n mod pと表される。例えば、p=7でn=15の場合ならば、r=15mod7=1 となり、15=2・7+1であるから1とは15を7で割った際の整数剰余であ
る。全ての非負整数の集合N={0,1,2,3,...}と集合R={0,1
,2,3,4,5,6,7,8}との間に、以下のように写像Tを構成し得る。
即ち、p=7とし且つnが任意の非負整数を表す(即ちn∈N)として、T(n
)=r=n mod pと仮定することにより写像Tを構成する。従ってこの場合 、例えばT(37)=r=37mod7=2となる。nがどのような値を取るかに 無関係にT(n)は7以下の整数となることに注意せよ。換言すれば、任意のn
∈Nに対してT(n)∈Rとなる。Tは集合Nを集合R「内に」写像する、と規
約上表現される。これは速記法ではT:N→Rと表され、「Tは集合Nから集合
R内への写像である」と読まれる。Nは写像Tの「領域」と呼ばれ、一方Rは写
像Tの「範囲」と呼ばれる。
割った際の整数剰余を表すとする。この関係は数学的速記法では、r=n mod pと表される。例えば、p=7でn=15の場合ならば、r=15mod7=1 となり、15=2・7+1であるから1とは15を7で割った際の整数剰余であ
る。全ての非負整数の集合N={0,1,2,3,...}と集合R={0,1
,2,3,4,5,6,7,8}との間に、以下のように写像Tを構成し得る。
即ち、p=7とし且つnが任意の非負整数を表す(即ちn∈N)として、T(n
)=r=n mod pと仮定することにより写像Tを構成する。従ってこの場合 、例えばT(37)=r=37mod7=2となる。nがどのような値を取るかに 無関係にT(n)は7以下の整数となることに注意せよ。換言すれば、任意のn
∈Nに対してT(n)∈Rとなる。Tは集合Nを集合R「内に」写像する、と規
約上表現される。これは速記法ではT:N→Rと表され、「Tは集合Nから集合
R内への写像である」と読まれる。Nは写像Tの「領域」と呼ばれ、一方Rは写
像Tの「範囲」と呼ばれる。
【0014】 写像Tの下での集合Nの「像」はRの一意の部分集合であり、この部分集合は
その各々全ての元がNの少なくとも一個の元の像であるものである。換言すれば
、集合FがTの下での集合Nの像を表すならば、任意元y∈Fを考えた場合にT
(x)=yを満足する少なくとも一個の元x∈Nが存在する。任意正整数を7で
割った際の剰余は0乃至6の内の一つの整数であるから、上記例におけるTの下
でのNの像は集合F={0,1,2,3,4,5,6}である。F⊂R(R={
0,1,2,3,4,5,6,7,8}であることを想起せよ)であるからNの
元はFの外部にあるRの如何なる元にも写像されず、TはNからFへの写像でも
ある。換言すれば、T:N→Fである。Fの各々全てのメンバがTの下でNのあ
る元の像であるから、TはNをF「上に」写像する、と表現される。「変換」と
言う用語が時として写像を指す為に使用される。
その各々全ての元がNの少なくとも一個の元の像であるものである。換言すれば
、集合FがTの下での集合Nの像を表すならば、任意元y∈Fを考えた場合にT
(x)=yを満足する少なくとも一個の元x∈Nが存在する。任意正整数を7で
割った際の剰余は0乃至6の内の一つの整数であるから、上記例におけるTの下
でのNの像は集合F={0,1,2,3,4,5,6}である。F⊂R(R={
0,1,2,3,4,5,6,7,8}であることを想起せよ)であるからNの
元はFの外部にあるRの如何なる元にも写像されず、TはNからFへの写像でも
ある。換言すれば、T:N→Fである。Fの各々全てのメンバがTの下でNのあ
る元の像であるから、TはNをF「上に」写像する、と表現される。「変換」と
言う用語が時として写像を指す為に使用される。
【0015】 集合演算 「順序付けペア」とは何らかの対象の組を成した対を指す数学的概念で、その
対のどの対象が「第一の」元でありどの対象が「第二の」元であるかを常に把握
しておく必要がある概念である。例えば、夫と妻の全てのペアの集合は順序付け
ペアの集合である。この順序付けペアのメンバは記号(x,y)で表され、ここ
にxは全ての夫の集合の元でありyは全ての妻の集合の元である。XとYを任意
の集合とする。集合XとYの「クロス乗積(cross product)」とは、全ての順 序付けペアの集合で且つその第一元がXの元でその第二元がYの元である集合、
である。数学的記法ではXとYのクロス乗積はX×Yと表され、全ての順序付け
ペア(x,y)(x∈X、y∈Y)の集合として定義される。一例として、X=
{0,1}、Y={0,1,2}の場合には、X×Y={(0,0),(0,1
),(0,2),(1,0),(1,1),(1,2)}、となる。
対のどの対象が「第一の」元でありどの対象が「第二の」元であるかを常に把握
しておく必要がある概念である。例えば、夫と妻の全てのペアの集合は順序付け
ペアの集合である。この順序付けペアのメンバは記号(x,y)で表され、ここ
にxは全ての夫の集合の元でありyは全ての妻の集合の元である。XとYを任意
の集合とする。集合XとYの「クロス乗積(cross product)」とは、全ての順 序付けペアの集合で且つその第一元がXの元でその第二元がYの元である集合、
である。数学的記法ではXとYのクロス乗積はX×Yと表され、全ての順序付け
ペア(x,y)(x∈X、y∈Y)の集合として定義される。一例として、X=
{0,1}、Y={0,1,2}の場合には、X×Y={(0,0),(0,1
),(0,2),(1,0),(1,1),(1,2)}、となる。
【0016】 任意集合Sに対して、S×SからSへの写像はS内で定義される「二元集合演
算(binary set operation)」と呼び得る(二元という用語は、この写像の領域
の各元が順序付けペアであるという事実を強調している)。例えば、集合F={
0,1,2,3,4,5,6}とする。次に、以下のように写像T:F×F→F
を構成する。即ち、任意の順序付けペア(x,y)∈F×F(x∈F、y∈F)
に対して写像Tの下での順序付けペア(x,y)の像を式(x+y)mod7の計 算結果の整数に等しいと仮定する、ことにより写像Tを構成する。換言すれば、
T((x,y))=(x+y)mod7と仮定する。写像Tの範囲は実際に集合F であることを確認するのは比較的簡単で、例えば、T((4,6))=(4+6
)mod7=10mod7=3であることから確認される。式(x+y)mod7の計算 結果の整数は7による割り算の整数剰余に他ならないので、x+yの値に無関係
に0乃至6の内の一つの整数であり即ちFの一つのメンバである。従って、写像
Tは集合F内で定義される二元集合演算である。
算(binary set operation)」と呼び得る(二元という用語は、この写像の領域
の各元が順序付けペアであるという事実を強調している)。例えば、集合F={
0,1,2,3,4,5,6}とする。次に、以下のように写像T:F×F→F
を構成する。即ち、任意の順序付けペア(x,y)∈F×F(x∈F、y∈F)
に対して写像Tの下での順序付けペア(x,y)の像を式(x+y)mod7の計 算結果の整数に等しいと仮定する、ことにより写像Tを構成する。換言すれば、
T((x,y))=(x+y)mod7と仮定する。写像Tの範囲は実際に集合F であることを確認するのは比較的簡単で、例えば、T((4,6))=(4+6
)mod7=10mod7=3であることから確認される。式(x+y)mod7の計算 結果の整数は7による割り算の整数剰余に他ならないので、x+yの値に無関係
に0乃至6の内の一つの整数であり即ちFの一つのメンバである。従って、写像
Tは集合F内で定義される二元集合演算である。
【0017】 ある二元演算Tを利用する際には、T((x,y))は利便性の為にしばしば
x・yと表記される。記号「・」は「二元演算子(binary operator)」と呼ば れ二元演算Tを表す為に用いられる。例えばTの上記定義を仮定した場合、T(
(4,6))=3と書く代わりに4・6=(4+6)mod7=3と書くことにな る。他の記号も又二元演算子記号として使用し得る。通常使用されるそうした他
の二つの記号として、+と
x・yと表記される。記号「・」は「二元演算子(binary operator)」と呼ば れ二元演算Tを表す為に用いられる。例えばTの上記定義を仮定した場合、T(
(4,6))=3と書く代わりに4・6=(4+6)mod7=3と書くことにな る。他の記号も又二元演算子記号として使用し得る。通常使用されるそうした他
の二つの記号として、+と
【外20】 がある。二元演算は順序付けペアを集合Sの他のメンバに写像するが、この順序
付けペアを構成する集合Sの二個のメンバは二元演算における「オペランド」で
ある。翻って、二元演算はオペランドに「作用する」と言われる。例えば、式4
・6=3においてオペランドは4と6である。
付けペアを構成する集合Sの二個のメンバは二元演算における「オペランド」で
ある。翻って、二元演算はオペランドに「作用する」と言われる。例えば、式4
・6=3においてオペランドは4と6である。
【0018】 群 「群」とは、その内部で以下の三条件が満足されるように二元演算「・」が定
義された集合G、を指す。 (i) 任意のx,y,z∈Gに対して、x・(y・z)=(x・y)・zが 成立する。これは群の結合性として知られている。 (ii) 全てのx∈Gに対して、x・I=I・x=xとなる一意元I∈Gが存
在する。元IはGにおける「単位」元と呼ばれる。 (iii) 任意のx∈Gに対して、x・x-1=Iとなる元x-1∈Gが存在する 。元x-1は二元演算・の下でのxの「逆」元と呼ばれる。 二元演算・は「群演算」とも呼ばれる。集合Gを群ならしめるのはG内で定義さ
れたこの群演算の存在である。実際、集合Gは群演算・の下で群と呼ばれる。「
アーベル」(Abelian)群Gとは、任意のx,y∈Gに対してx・y=y・xが 成立する群Gを指す。
義された集合G、を指す。 (i) 任意のx,y,z∈Gに対して、x・(y・z)=(x・y)・zが 成立する。これは群の結合性として知られている。 (ii) 全てのx∈Gに対して、x・I=I・x=xとなる一意元I∈Gが存
在する。元IはGにおける「単位」元と呼ばれる。 (iii) 任意のx∈Gに対して、x・x-1=Iとなる元x-1∈Gが存在する 。元x-1は二元演算・の下でのxの「逆」元と呼ばれる。 二元演算・は「群演算」とも呼ばれる。集合Gを群ならしめるのはG内で定義さ
れたこの群演算の存在である。実際、集合Gは群演算・の下で群と呼ばれる。「
アーベル」(Abelian)群Gとは、任意のx,y∈Gに対してx・y=y・xが 成立する群Gを指す。
【0019】 アーベル群の一例として、全ての元x,y∈Fに対して式x・y=(x・y)
mod7により二元演算・がその内部で与えられた(即ち定義された)集合F={ 1,2,3,4,5,6}、を考える(第二の「・」は整数乗算に関する通常の
演算を表す)。集合Fはこの「乗算演算」の下で群となることが結局分る。これ
を例証する為に、元x,y∈Fの全ての可能な組み合わせに対する式x・y=(
x・y)mod7の値を含む表1を以下に作成する。この表を用いてx・yの値を 捜し出す為には、名札がxの値である行と名札がyの値である列の交差点にある
部屋の中の値を見れば良い。
mod7により二元演算・がその内部で与えられた(即ち定義された)集合F={ 1,2,3,4,5,6}、を考える(第二の「・」は整数乗算に関する通常の
演算を表す)。集合Fはこの「乗算演算」の下で群となることが結局分る。これ
を例証する為に、元x,y∈Fの全ての可能な組み合わせに対する式x・y=(
x・y)mod7の値を含む表1を以下に作成する。この表を用いてx・yの値を 捜し出す為には、名札がxの値である行と名札がyの値である列の交差点にある
部屋の中の値を見れば良い。
【表1】
【0020】 一例として、x=5且つy=6の場合ならば表はx・y=2を与える。この正
当性を検証する為には、x・y=5・6=(5・6)mod7=30mod7=2、を
計算してみれば良い。
当性を検証する為には、x・y=5・6=(5・6)mod7=30mod7=2、を
計算してみれば良い。
【0021】 上記の二元演算・の定義と集合Fに関して、集合Fが群であることを検証する
作業は上記の条件(i)、(ii)、(iii)が満足されていることを検証する作業
と同等である。即ち、 (i) 条件(i)はx・(y・z)=(x・y)・zの成立を要求する。例え
ばx=3、y=5及びz=2の場合を用いて、3・(5・2)=3・(5・2)
mod7=3・(10mod7)=3・3=(3・3)mod7=9mod7=2、及び(3
・5)・2=((3・5)mod7)・2=(15mod7)・2=1・2=(1・2
)mod7=2mod7=2、が計算される。従って、3・(5・2)=(3・5)・
2である。 (ii) 表1は上記群演算・の下でのFの単位元は1であることを例証してい
ている。その理由は、表が示すように全てのx∈Fに対して、x・1=1・x=
1 となるからである。 (iii) 表1を使用して、Fの各元xの逆元x-1(ただしx・x-1=1)の 値が以下のように導出できる。即ち、1-1=1、2-1=4、3-1=5、4-1=3
、5-1=3、及び6-1=1である。 (iv) 表1を調べると又、全てのx,y∈Fに対してx・y=y・xが成立
することが確認される。従って、集合Fは上記の乗算演算の下でのアーベル群で
ある。
作業は上記の条件(i)、(ii)、(iii)が満足されていることを検証する作業
と同等である。即ち、 (i) 条件(i)はx・(y・z)=(x・y)・zの成立を要求する。例え
ばx=3、y=5及びz=2の場合を用いて、3・(5・2)=3・(5・2)
mod7=3・(10mod7)=3・3=(3・3)mod7=9mod7=2、及び(3
・5)・2=((3・5)mod7)・2=(15mod7)・2=1・2=(1・2
)mod7=2mod7=2、が計算される。従って、3・(5・2)=(3・5)・
2である。 (ii) 表1は上記群演算・の下でのFの単位元は1であることを例証してい
ている。その理由は、表が示すように全てのx∈Fに対して、x・1=1・x=
1 となるからである。 (iii) 表1を使用して、Fの各元xの逆元x-1(ただしx・x-1=1)の 値が以下のように導出できる。即ち、1-1=1、2-1=4、3-1=5、4-1=3
、5-1=3、及び6-1=1である。 (iv) 表1を調べると又、全てのx,y∈Fに対してx・y=y・xが成立
することが確認される。従って、集合Fは上記の乗算演算の下でのアーベル群で
ある。
【0022】 記号+がF内の上記群演算を表す為に時として使用される。そのような場合に
は、群演算+の下での元x∈Fの逆元はx-1よりむしろ−xにより表記される。
アーベル群の他の例として、全ての元x,y∈Fに対して式x+y=(x+y)
mod7により群演算+がその内部で与えられた(即ち定義された)集合F={0 ,1,2,3,4,5,6}、を考える(第二の「+」は整数加算に関する通常
の演算を表す)。集合Fはこの「加算演算」の下で群となることが結局分る。こ
れを例証する為に、元x,y∈Fの全ての可能な組み合わせに対する式x+y=
(x+y)mod7の値を含む表2を以下に作成する。
は、群演算+の下での元x∈Fの逆元はx-1よりむしろ−xにより表記される。
アーベル群の他の例として、全ての元x,y∈Fに対して式x+y=(x+y)
mod7により群演算+がその内部で与えられた(即ち定義された)集合F={0 ,1,2,3,4,5,6}、を考える(第二の「+」は整数加算に関する通常
の演算を表す)。集合Fはこの「加算演算」の下で群となることが結局分る。こ
れを例証する為に、元x,y∈Fの全ての可能な組み合わせに対する式x+y=
(x+y)mod7の値を含む表2を以下に作成する。
【表2】
【0023】 一例として、x=5且つy=6の場合ならば表はx+y=4を与える。この正
当性を検証する為には、5+6=(5+6)mod7=11mod7=4、を計算して
みれば良い。
当性を検証する為には、5+6=(5+6)mod7=11mod7=4、を計算して
みれば良い。
【0024】 上記の群演算+の定義と集合Fに関して、集合Fが群であることを検証する作
業は上記の条件(i)、(ii)、(iii)が満足されていることを検証する作業と
同等である。即ち、 (i) 条件(i)が成立する例として、例えば、(3+5)+2=((3+5
)mod7)+2=(8mod7)+2=1+2=(1+2)mod7=3mod7=3、及
び3+(5+2)=3+((5+2)mod7)=3+(7mod7)=3+0=(3
+0)mod7=3mod7=3、が計算される。従って、(3+5)+2=3+(5
+2)である。 (ii) 表2は群演算+の下でのFの単位元は0であることを例証していてい
る。その理由は、表が示すように全てのx∈Fに対して、x+0=0+x=0と
なるからである。 (iii) 表2を使用して、Fの各元xの逆元−x(ただしx+(−x)=0 )の値が以下のように導出できる。即ち、−0=0、−1=6、−2=5、−3
=4、−4=3、−5=2、及び−6=1である。 (iv) 表2を調べると又、全てのx,y∈Fに対してx+y=y+xが成立
することが確認される。従って、集合Fは上記の加算演算の下でのアーベル群で
ある。
業は上記の条件(i)、(ii)、(iii)が満足されていることを検証する作業と
同等である。即ち、 (i) 条件(i)が成立する例として、例えば、(3+5)+2=((3+5
)mod7)+2=(8mod7)+2=1+2=(1+2)mod7=3mod7=3、及
び3+(5+2)=3+((5+2)mod7)=3+(7mod7)=3+0=(3
+0)mod7=3mod7=3、が計算される。従って、(3+5)+2=3+(5
+2)である。 (ii) 表2は群演算+の下でのFの単位元は0であることを例証していてい
る。その理由は、表が示すように全てのx∈Fに対して、x+0=0+x=0と
なるからである。 (iii) 表2を使用して、Fの各元xの逆元−x(ただしx+(−x)=0 )の値が以下のように導出できる。即ち、−0=0、−1=6、−2=5、−3
=4、−4=3、−5=2、及び−6=1である。 (iv) 表2を調べると又、全てのx,y∈Fに対してx+y=y+xが成立
することが確認される。従って、集合Fは上記の加算演算の下でのアーベル群で
ある。
【0025】 体 「体」とは、その内部で以下の条件が満足されるように二つの二元集合演算+
と・が定義された集合F、を指す。 (i) Fは上記の演算+の下でのアーベル群である。演算+は体の「加算演 算」と呼ばれる。加算演算の下での体の単位元は0と表記される。任意の元x∈
Fに対して体の加算演算の下でのxの逆元は−xと表記され、−xはxの「加算
逆元」と呼ばれる。 (ii) 仮に集合Fから0を捨象した場合、残余の集合は上記の演算・の下で
のアーベル群となるであろう。演算・は体の「乗算演算」と呼ばれる。乗算演算
の下での体の単位元は、1と表記され0とは別個のFの元である。任意の元x∈
Fに対して体の乗算演算の下でのxの逆元はx-1と表記され、x-1はxの「乗算
逆元」と呼ばれる。 (iii) 任意の元x∈Fに対して、x・0=0・x=0となる。 (iv) 任意のx,y,z∈Fに対して、x・(y+z)=(x・y)+(x
・z)が成立する。これは体の「分配性」として知られている。
と・が定義された集合F、を指す。 (i) Fは上記の演算+の下でのアーベル群である。演算+は体の「加算演 算」と呼ばれる。加算演算の下での体の単位元は0と表記される。任意の元x∈
Fに対して体の加算演算の下でのxの逆元は−xと表記され、−xはxの「加算
逆元」と呼ばれる。 (ii) 仮に集合Fから0を捨象した場合、残余の集合は上記の演算・の下で
のアーベル群となるであろう。演算・は体の「乗算演算」と呼ばれる。乗算演算
の下での体の単位元は、1と表記され0とは別個のFの元である。任意の元x∈
Fに対して体の乗算演算の下でのxの逆元はx-1と表記され、x-1はxの「乗算
逆元」と呼ばれる。 (iii) 任意の元x∈Fに対して、x・0=0・x=0となる。 (iv) 任意のx,y,z∈Fに対して、x・(y+z)=(x・y)+(x
・z)が成立する。これは体の「分配性」として知られている。
【0026】 体の一例は、全ての元x,y∈Fに対して式x+y=(x+y)mod7により 加算演算+が定義され且つ式x・y=(x・y)mod7により乗算演算・が定義 された集合F={0,1,2,3,4,5,6}、である。集合Fはこれらの加
算及び乗算演算の下で体を成すことが結局分る。この事実を証明する為には、上
記の4条件が満足されていることを示すことが必要である。条件(i)、(ii) は満足されていることが前節において示された。条件(iii)は以下の表3から 明白である。
算及び乗算演算の下で体を成すことが結局分る。この事実を証明する為には、上
記の4条件が満足されていることを示すことが必要である。条件(i)、(ii) は満足されていることが前節において示された。条件(iii)は以下の表3から 明白である。
【表3】
【0027】 条件(iv)が成立する例として、例えば、3・(5+6)=(3・5)+(3
・6)の成立を示す。実際、3・(5+6)=(3・((5+6)mod7))mod
7=(3・(11mod7))mod7=(3・4)mod7=12mod7=5であり、一
方又、(3・5)+(3・6)=(((3・5)mod7)+((3・6)mod7)
)mod7=((15mod7)+(18mod7))mod7=(1+4)mod7=5mod7
=5であるから、3・(5+6)=(3・5)+(3・6)である。
・6)の成立を示す。実際、3・(5+6)=(3・((5+6)mod7))mod
7=(3・(11mod7))mod7=(3・4)mod7=12mod7=5であり、一
方又、(3・5)+(3・6)=(((3・5)mod7)+((3・6)mod7)
)mod7=((15mod7)+(18mod7))mod7=(1+4)mod7=5mod7
=5であるから、3・(5+6)=(3・5)+(3・6)である。
【0028】 ある体Fが有限個数の元を有する場合、この体Fは「有限体」である。上記の
体FはGF(p)として知られる有限体類の特殊例であり、ここにpは任意の素
数である。特定の素数pに対してGF(p)はpより小なる非負整数の集合{0
,1,...,p−1}として定義され、pを法とする整数加算により与えられる 加算演算+とpを法とする整数乗算により与えられる乗算演算・により随伴され
る。上記例で用いた体Fは体GF(7)である。
体FはGF(p)として知られる有限体類の特殊例であり、ここにpは任意の素
数である。特定の素数pに対してGF(p)はpより小なる非負整数の集合{0
,1,...,p−1}として定義され、pを法とする整数加算により与えられる 加算演算+とpを法とする整数乗算により与えられる乗算演算・により随伴され
る。上記例で用いた体Fは体GF(7)である。
【0029】 体算術演算 体という数学的概念は、馴染み深い「有理」数概念の抽象化に他ならない。分
子、分母が共に0以外の整数である分数として表現され得る全ての数を考えると
、有理数とはこれらの数を同伴した全ての整数の集合である。実際の所、全ての
有理数の集合は分数の加算及び乗算という通常の演算の下で体を成すことが示さ
れる。従って、算術演算に関する共通した数学的技法が体というより抽象的な領
域にも持ち込まれてきた。特定の体Fに対してその定数と変数が「この体に由来
する」(即ちFのメンバである)「有効な」計算式と方程式(arithmetic expre
ssions and equations)を書き下してそれらを値評価(evaluation)することが
、体の数学的な理論を用いて可能になった。
子、分母が共に0以外の整数である分数として表現され得る全ての数を考えると
、有理数とはこれらの数を同伴した全ての整数の集合である。実際の所、全ての
有理数の集合は分数の加算及び乗算という通常の演算の下で体を成すことが示さ
れる。従って、算術演算に関する共通した数学的技法が体というより抽象的な領
域にも持ち込まれてきた。特定の体Fに対してその定数と変数が「この体に由来
する」(即ちFのメンバである)「有効な」計算式と方程式(arithmetic expre
ssions and equations)を書き下してそれらを値評価(evaluation)することが
、体の数学的な理論を用いて可能になった。
【0030】 例えば、方程式y=(2・x)+1を考える。この方程式を満足する有理数の
全ての順序付けペア(x,y)の集合は、(0,1),(2,5),(4,9)
,及び(3.45,7.9)のような元を含む。しかしながらこの方程式中の定
数2及び1は体GF(7)のメンバでもあるので、「計算式」(2・x)+1「
自体」は体GF(7)においても有効な計算式である。従って、この計算式中の
xに代入される値がGF(7)のメンバである限り、この計算式はGF(7)の
有効なメンバに対しては「値評価される」ことが保証されている。かような理由
で、上記方程式自体は体GF(7)においても又有効な方程式である。実際、こ
の方程式に対する全ての「解」の集合(即ちGF(7)においてこの方程式を満
足する全ての順序付けペアの集合)は、{(0,1),(1,3),(2,5)
,(3,0),(4,2),(5,4),(6,6)}、に等しい。
全ての順序付けペア(x,y)の集合は、(0,1),(2,5),(4,9)
,及び(3.45,7.9)のような元を含む。しかしながらこの方程式中の定
数2及び1は体GF(7)のメンバでもあるので、「計算式」(2・x)+1「
自体」は体GF(7)においても有効な計算式である。従って、この計算式中の
xに代入される値がGF(7)のメンバである限り、この計算式はGF(7)の
有効なメンバに対しては「値評価される」ことが保証されている。かような理由
で、上記方程式自体は体GF(7)においても又有効な方程式である。実際、こ
の方程式に対する全ての「解」の集合(即ちGF(7)においてこの方程式を満
足する全ての順序付けペアの集合)は、{(0,1),(1,3),(2,5)
,(3,0),(4,2),(5,4),(6,6)}、に等しい。
【0031】 より複雑な計算式を用いる作業を容易化する為に、二、三の数学的速記法が体
算術演算では利用される。任意の体F、任意の元x∈F、及び任意の正整数kに
対して、式xkは、Fにおける上記乗算演算を用いてxがそれ自身によりk回乗 算された結果として得られるFの一意元を表す。換言すればxk=x・x・...・
xであり、この式中にk−1個の・演算子が存在する。規約上X0は1に等しい と定義する。
算術演算では利用される。任意の体F、任意の元x∈F、及び任意の正整数kに
対して、式xkは、Fにおける上記乗算演算を用いてxがそれ自身によりk回乗 算された結果として得られるFの一意元を表す。換言すればxk=x・x・...・
xであり、この式中にk−1個の・演算子が存在する。規約上X0は1に等しい と定義する。
【0032】 任意整数kとF内の任意元xに対して、式kxは、Fにおける上記加算演算を
用いてxがそれ自身にk回加算された結果として得られるFの一意元を表す。換
言すればkx=x+x+...+xであり、この式中にk−1個の+演算子が存在 する。
用いてxがそれ自身にk回加算された結果として得られるFの一意元を表す。換
言すればkx=x+x+...+xであり、この式中にk−1個の+演算子が存在 する。
【0033】 F内の定数cとF上で定義された変数xに対して、式c・xは通常cxと書か
れる。更に、Fの二個の元x、yに対して、式x+(−y)は通常式x−yと書
かれる。
れる。更に、Fの二個の元x、yに対して、式x+(−y)は通常式x−yと書
かれる。
【0034】 体F及びF内の任意元xに対して、xの加算逆元−x又はxの乗算逆元x-1を
計算する作業は計算的に複雑で且つ困難な作業になり得る。xの逆元を計算する
この作業を一つの集合演算と見なすことが可能である。一つの集合S内で定義さ
れるこの「一元集合演算(unary set operation)」TはSからS上への写像で ある。一元(unary)という用語は、上記の二元集合演算(binary set operatio
ns)と異なりTの領域はSの単一の個別メンバから構成される、という事実を強
調するものである。さてSの任意元xに対して、ある演算Tをxをx-1に写像す
る演算と仮定する。換言すれば、T(x)=x-1と仮定する。この場合に、Tは
上記一元集合演算である。
計算する作業は計算的に複雑で且つ困難な作業になり得る。xの逆元を計算する
この作業を一つの集合演算と見なすことが可能である。一つの集合S内で定義さ
れるこの「一元集合演算(unary set operation)」TはSからS上への写像で ある。一元(unary)という用語は、上記の二元集合演算(binary set operatio
ns)と異なりTの領域はSの単一の個別メンバから構成される、という事実を強
調するものである。さてSの任意元xに対して、ある演算Tをxをx-1に写像す
る演算と仮定する。換言すれば、T(x)=x-1と仮定する。この場合に、Tは
上記一元集合演算である。
【0035】 特定の体Fと整数kに対して、F上で定義されるk次の多項式p(x)はp(
x)=akxk+ak-1xk-1+...+akx+a0の形の式である。この定義にお
いてxはFにおける変数であり、この多項式が値評価される以前にFの特定の元
がxに代入されねばならない。xに代入されるFの特定のメンバは、xが「拘束
される」値である。上記のai(0≦i≦k)はp(x)の「多項係数」として 知られたF内の定数であり、xに代入される上記の値が選択される以前に選択さ
れる。xが取る上記値とは無関係に、これらの多項係数の値は一定である。
x)=akxk+ak-1xk-1+...+akx+a0の形の式である。この定義にお
いてxはFにおける変数であり、この多項式が値評価される以前にFの特定の元
がxに代入されねばならない。xに代入されるFの特定のメンバは、xが「拘束
される」値である。上記のai(0≦i≦k)はp(x)の「多項係数」として 知られたF内の定数であり、xに代入される上記の値が選択される以前に選択さ
れる。xが取る上記値とは無関係に、これらの多項係数の値は一定である。
【0036】 GF(2)が与えられた場合、GF(2)上で定義される全てのk次多項式の
集合はGF(2k)と呼称される。1より大なる任意のkに対して、特定の加算 及び乗算演算が集合GF(2k)がこれらの加算及び乗算演算の下で体を成すよ うにGF(2k)内で定義され得る。集合GF(2k)は、多項係数の値が0又は
1である全てのk次多項式の集合である。例えば、p(x)=x5+x2+1はG
F(25)のメンバであり、その多項係数はa5=1、a4=0、a3=0、a2= 1、a1=0及びa0=1により与えられる。
集合はGF(2k)と呼称される。1より大なる任意のkに対して、特定の加算 及び乗算演算が集合GF(2k)がこれらの加算及び乗算演算の下で体を成すよ うにGF(2k)内で定義され得る。集合GF(2k)は、多項係数の値が0又は
1である全てのk次多項式の集合である。例えば、p(x)=x5+x2+1はG
F(25)のメンバであり、その多項係数はa5=1、a4=0、a3=0、a2= 1、a1=0及びa0=1により与えられる。
【0037】 体算術演算の最適化 情報のセキュリティと暗号化の問題の他に、有限体の理論に基礎を置くか又は
これを利用する他の多数の問題が産業界と科学界において存在する。このような
問題を処理する為のコンピュータアプリケーションは、体算術演算を含む計算を
しばしば実行する必要がある。この作業は、有限体F内で定義される有限個数の
定数、変数、係数及び演算を含む数学的計算式fに対する値評価、という形をし
ばしば取る。定数と変数は体Fのメンバでなければならないが係数は任意の整数
値を取り得る、ことに注意せよ。例えば計算式x−5yにおける5のような係数
は体Fの元ではなく、この場合5y=2y+2y+y(ここに2y=y+y)の
ような反復加算を表す速記記号に過ぎない。計算能率に関心があるので、ある一
個の式中の一個以上の部分に上記の(x2−x1)-1のような同一量が現れた場合
には、そのような各量は一回だけ計算することとする。又、例えば式の定数のみ
を含む全ての計算は既に実行されていて計算結果の定数は式に代入済みである、
といった充分に縮小された形式を一般性を損なうことなく式fにおいては採用す
ることとする。
これを利用する他の多数の問題が産業界と科学界において存在する。このような
問題を処理する為のコンピュータアプリケーションは、体算術演算を含む計算を
しばしば実行する必要がある。この作業は、有限体F内で定義される有限個数の
定数、変数、係数及び演算を含む数学的計算式fに対する値評価、という形をし
ばしば取る。定数と変数は体Fのメンバでなければならないが係数は任意の整数
値を取り得る、ことに注意せよ。例えば計算式x−5yにおける5のような係数
は体Fの元ではなく、この場合5y=2y+2y+y(ここに2y=y+y)の
ような反復加算を表す速記記号に過ぎない。計算能率に関心があるので、ある一
個の式中の一個以上の部分に上記の(x2−x1)-1のような同一量が現れた場合
には、そのような各量は一回だけ計算することとする。又、例えば式の定数のみ
を含む全ての計算は既に実行されていて計算結果の定数は式に代入済みである、
といった充分に縮小された形式を一般性を損なうことなく式fにおいては採用す
ることとする。
【0038】 そのような計算式fの例として、F∈GF(p)、x1、x2、y1、y2 をF 内で定義された変数、且つaをFの元である定数、として、
【数10】 を定義する。 式f中の唯一の変数と定数はx1、x2、y1、y2及びaなので、式fは体の有限
個数の元を含む。更に、式fは以下の演算を含む。即ち、−x1、−x2、−y1 、及び−aを計算する4個の一元加算逆演算、(x2−x1)-1を計算する1個の
一元乗算逆演算、3個の二元乗算演算、5x2を計算する3個の二元加算演算、 括弧内の式を計算する4個の二元加算演算、及び( ...)−x1−5x2を計算す
る3個の二元加算演算、である。故に、式fは有限個数の体演算も含む。従って
、式fが値評価された場合、即ち式fにおいて特定された計算が実行された場合
、計算結果は体F内の単一元となろう。
個数の元を含む。更に、式fは以下の演算を含む。即ち、−x1、−x2、−y1 、及び−aを計算する4個の一元加算逆演算、(x2−x1)-1を計算する1個の
一元乗算逆演算、3個の二元乗算演算、5x2を計算する3個の二元加算演算、 括弧内の式を計算する4個の二元加算演算、及び( ...)−x1−5x2を計算す
る3個の二元加算演算、である。故に、式fは有限個数の体演算も含む。従って
、式fが値評価された場合、即ち式fにおいて特定された計算が実行された場合
、計算結果は体F内の単一元となろう。
【0039】 ある有限体F内で定義される任意の計算式fは、通常「部分計算式」から構成
される。それ自体がF内における有効な計算式であるfの任意部分は、fの部分
計算式である。例えば、式s=(x2−x1)-1は、x2とx1の双方がFのメンバ
であればF内における有効な計算式である。従って、式s=(x2−x1)-1は 式f=((y2−y1)・(x2−x1)-1)・((y2−y1)・(x2−x1)-1)
−x1−x2の部分計算式である。fの他の幾つかの部分計算式は、s=x1、s =−y1、及びs=(y2−y1)・(x2−x1)-1である。しかしながら、s= x2−x1)-1)−x1はF内における有効な計算式ではないのでfの部分計算式 ではない、ことに注意せよ。全ての計算式fはそれ自身の部分計算式である。
される。それ自体がF内における有効な計算式であるfの任意部分は、fの部分
計算式である。例えば、式s=(x2−x1)-1は、x2とx1の双方がFのメンバ
であればF内における有効な計算式である。従って、式s=(x2−x1)-1は 式f=((y2−y1)・(x2−x1)-1)・((y2−y1)・(x2−x1)-1)
−x1−x2の部分計算式である。fの他の幾つかの部分計算式は、s=x1、s =−y1、及びs=(y2−y1)・(x2−x1)-1である。しかしながら、s= x2−x1)-1)−x1はF内における有効な計算式ではないのでfの部分計算式 ではない、ことに注意せよ。全ての計算式fはそれ自身の部分計算式である。
【0040】 ある有限体F内で定義された計算式fを値評価する作業は、計算的に複雑で且
つ困難な作業になり得る。コンピュータソフトウェア且つ/又ハードウェアにお
いてこのような種類の計算式の効率的な計算を可能にする技術は、重要な産業的
且つ科学的価値を有するであろう。このような計算用の計算アプリケーションが
有する正確な性質を考えた場合、この「効率的な」計算という概念の厳密な意味
に関して異なる基準が存在する。即ち、あるアプリケーションでは、より高速の
演算速度が実現されるような計算の最適化が好適である。他のアプリケーション
では、ハードウェア実装のシリコン領域の使用を最小限に抑えるような最適化が
重要であろう。更に他のアプリケーションでは、計算の並列処理を可能にする最
適化が好都合であるかもしれない。特に、体GF(p)とGF(2k)において フェルマー法を使用する上記の逆演算は計算的に非常に複雑で且つ困難な作業で
ある。これを避ける為に、「射影座標」において問題を定式化する方法がメネゼ
ス等により開発された。この方法は逆演算を実行する必要性を取り除いた形に計
算を再定式化することを可能にするが、その代償として通常は他の演算の数が増
大してしまう。
つ困難な作業になり得る。コンピュータソフトウェア且つ/又ハードウェアにお
いてこのような種類の計算式の効率的な計算を可能にする技術は、重要な産業的
且つ科学的価値を有するであろう。このような計算用の計算アプリケーションが
有する正確な性質を考えた場合、この「効率的な」計算という概念の厳密な意味
に関して異なる基準が存在する。即ち、あるアプリケーションでは、より高速の
演算速度が実現されるような計算の最適化が好適である。他のアプリケーション
では、ハードウェア実装のシリコン領域の使用を最小限に抑えるような最適化が
重要であろう。更に他のアプリケーションでは、計算の並列処理を可能にする最
適化が好都合であるかもしれない。特に、体GF(p)とGF(2k)において フェルマー法を使用する上記の逆演算は計算的に非常に複雑で且つ困難な作業で
ある。これを避ける為に、「射影座標」において問題を定式化する方法がメネゼ
ス等により開発された。この方法は逆演算を実行する必要性を取り除いた形に計
算を再定式化することを可能にするが、その代償として通常は他の演算の数が増
大してしまう。
【0041】 モントゴメリーアルゴリズム(Montgomery Algorithm) 1985年に、P.L.モントゴメリーはf=a・b・r-1(ここに、a、b
、rは体F∈GF(p)の元で、・はFにおける乗算演算)という形の計算式f
の計算作業最適化に使用されるアルゴリズムを発表した。1985年以来、産業
界と学界による研究の幾分かは、このf=a・b・r-1よりも一般的な形の計算
式に対するモントゴメリーアルゴリズムの拡張に集中されてきた。このような努
力の解説を容易にする為に、この特許明細書では「モントゴメリー正準形式(Mo
ntgomery Canonical Form)」という用語を定義する。体Fの特定の元rに対し て、F内のある計算式fはrに関するモントゴメリー正準形式であると以下のよ
うに循環的に定義される。 (i) 計算式(expression)fが体の乗算演算を含まず(即ちs=s1・s2と いう形の部分計算式(subexpression)sが存在せず)且つrを含まなければ、 計算式fはrに関するモントゴメリー正準形式である。ここに、s1とs2はfの
部分計算式である。例えば、f=(x1+x1−a)及びf=x1は双方ともrに 関するモントゴメリー正準形式である。 (ii) 計算式fがf=f1・f2・r-1の形に書ければ、計算式fはrに関する
モントゴメリー正準形式である。ここに、f1とf2は双方ともそれ自体がrに関
するモントゴメリー正準形式であるfの部分計算式である。ある計算式がrに関
するモントゴメリー正準形式であるか否かを判断する為にはその計算式を孤立さ
せて考えるべきである、ことに注意せよ。例えば、f=(x1+x1+x1)・x1 ・r-1はrに関するモントゴメリー正準形式である。しかしながら、計算式f=
x1・(x2・x2)・r-1はrに関するモントゴメリー正準形式ではない。その 理由は、(x2・x2)・r-1はrに関するモントゴメリー正準形式であるが、r -1 という単一の因子は同時に部分計算式(x2・x2)・r-1の一部そして又全計
算式x1・(x2・x2)・r-1の一部であるとは考えられず、従って(x2・x2 )はrに関するモントゴメリー正準形式ではないからである。 (iii) 計算式fがf=(s)-1・r2の形に書ければ、計算式fはrに関する
モントゴメリー正準形式である。ここに、sはそれ自体がrに関するモントゴメ
リー正準形式であるfの部分計算式である。例えば、f=(x2−x1)-1・r2 はrに関するモントゴメリー正準形式である。そして最後に、 (iv) s=s1・s2という形に書けるfの部分計算式sが存在する場合常に、
s3=s1・s2・r-1のような形のfの一意の部分計算式s3が更に存在すれば、
計算式fはrに関するモントゴメリー正準形式である。ここに、s1とs2は双方
ともrに関するモントゴメリー正準形式であるfの部分計算式である。例えば、
計算式f=
、rは体F∈GF(p)の元で、・はFにおける乗算演算)という形の計算式f
の計算作業最適化に使用されるアルゴリズムを発表した。1985年以来、産業
界と学界による研究の幾分かは、このf=a・b・r-1よりも一般的な形の計算
式に対するモントゴメリーアルゴリズムの拡張に集中されてきた。このような努
力の解説を容易にする為に、この特許明細書では「モントゴメリー正準形式(Mo
ntgomery Canonical Form)」という用語を定義する。体Fの特定の元rに対し て、F内のある計算式fはrに関するモントゴメリー正準形式であると以下のよ
うに循環的に定義される。 (i) 計算式(expression)fが体の乗算演算を含まず(即ちs=s1・s2と いう形の部分計算式(subexpression)sが存在せず)且つrを含まなければ、 計算式fはrに関するモントゴメリー正準形式である。ここに、s1とs2はfの
部分計算式である。例えば、f=(x1+x1−a)及びf=x1は双方ともrに 関するモントゴメリー正準形式である。 (ii) 計算式fがf=f1・f2・r-1の形に書ければ、計算式fはrに関する
モントゴメリー正準形式である。ここに、f1とf2は双方ともそれ自体がrに関
するモントゴメリー正準形式であるfの部分計算式である。ある計算式がrに関
するモントゴメリー正準形式であるか否かを判断する為にはその計算式を孤立さ
せて考えるべきである、ことに注意せよ。例えば、f=(x1+x1+x1)・x1 ・r-1はrに関するモントゴメリー正準形式である。しかしながら、計算式f=
x1・(x2・x2)・r-1はrに関するモントゴメリー正準形式ではない。その 理由は、(x2・x2)・r-1はrに関するモントゴメリー正準形式であるが、r -1 という単一の因子は同時に部分計算式(x2・x2)・r-1の一部そして又全計
算式x1・(x2・x2)・r-1の一部であるとは考えられず、従って(x2・x2 )はrに関するモントゴメリー正準形式ではないからである。 (iii) 計算式fがf=(s)-1・r2の形に書ければ、計算式fはrに関する
モントゴメリー正準形式である。ここに、sはそれ自体がrに関するモントゴメ
リー正準形式であるfの部分計算式である。例えば、f=(x2−x1)-1・r2 はrに関するモントゴメリー正準形式である。そして最後に、 (iv) s=s1・s2という形に書けるfの部分計算式sが存在する場合常に、
s3=s1・s2・r-1のような形のfの一意の部分計算式s3が更に存在すれば、
計算式fはrに関するモントゴメリー正準形式である。ここに、s1とs2は双方
ともrに関するモントゴメリー正準形式であるfの部分計算式である。例えば、
計算式f=
【数11】 はrに関するモントゴメリー正準形式である。 体F∈GF(p)及び元r∈Fに対して、rに関するモントゴメリー正準形式で
あるF内の計算式fの計算最適化にモントゴメリーアルゴリズムは効率的に使用
され得る。さて任意の計算式fが与えられた場合、既にモントゴメリー正準形式
である他の計算式f’(「fプライム」と読む)にこの計算式fを「変換する」
ことによりその計算効率が向上するであろう。過去15年間にGF(p)の有限
体内に有限個数の体演算を含む無数の計算式が、産業界と学界における特定のア
プリケーション業務の範囲内で使用されてきた。そのような計算式を既にモント
ゴメリー正準形式でありそれ故に計算速度が速い他の計算式に研究者と技術者が
変換してきた場合も多々ある。しかしながら、GF(p)内の有限個数の体演算
を含む如何なるものであれ任意の計算式を既にGF(p)内の元rに関するモン
トゴメリー正準形式である他の計算式に変換する一般的な方法は本発明に至って
初めて知られたのである。
あるF内の計算式fの計算最適化にモントゴメリーアルゴリズムは効率的に使用
され得る。さて任意の計算式fが与えられた場合、既にモントゴメリー正準形式
である他の計算式f’(「fプライム」と読む)にこの計算式fを「変換する」
ことによりその計算効率が向上するであろう。過去15年間にGF(p)の有限
体内に有限個数の体演算を含む無数の計算式が、産業界と学界における特定のア
プリケーション業務の範囲内で使用されてきた。そのような計算式を既にモント
ゴメリー正準形式でありそれ故に計算速度が速い他の計算式に研究者と技術者が
変換してきた場合も多々ある。しかしながら、GF(p)内の有限個数の体演算
を含む如何なるものであれ任意の計算式を既にGF(p)内の元rに関するモン
トゴメリー正準形式である他の計算式に変換する一般的な方法は本発明に至って
初めて知られたのである。
【0042】 GF(p)内の体を含む産業的及び学界的なアプリケーション業務で通常遭遇
する特定の計算式は、f=xkという形の式である。ここに、kはある正整数で ありxはF∈GF(p)内の元である。f=xkの計算はxの指数関数化として 知られている。次の節において説明される特殊な「置換技法」がf=xkという 形の計算式に適用されて、この計算式をF内のある特定の元rに関するモントゴ
メリー正準形式である他の計算式f’に変換する、ことは良く知られている。モ
ントゴメリーアルゴリズムはこの変換した結果のモントゴメリー正準形式である
計算式f’に通常適用されて、xの指数関数化用の効率的な方法を提供する。
する特定の計算式は、f=xkという形の式である。ここに、kはある正整数で ありxはF∈GF(p)内の元である。f=xkの計算はxの指数関数化として 知られている。次の節において説明される特殊な「置換技法」がf=xkという 形の計算式に適用されて、この計算式をF内のある特定の元rに関するモントゴ
メリー正準形式である他の計算式f’に変換する、ことは良く知られている。モ
ントゴメリーアルゴリズムはこの変換した結果のモントゴメリー正準形式である
計算式f’に通常適用されて、xの指数関数化用の効率的な方法を提供する。
【0043】 モントゴメリーアルゴリズムは過去10年間に渡りGF(p)における指数関
数化の高速化の為に使用されてきたが、一般的な有限体計算の高速化にまで改良
、拡張する方法は本発明に至って初めて獲得された。
数化の高速化の為に使用されてきたが、一般的な有限体計算の高速化にまで改良
、拡張する方法は本発明に至って初めて獲得された。
【0044】 1998年に、C.K.コクとT.アカーはf=a・b・r-1(ここに、a、
b、rは体F∈GF(2k)の元で、・はFにおける乗算演算)という形の計算 式fの計算作業最適化に使用できるアルゴリズムを発表した。このアルゴリズム
はGF(2k)におけるモントゴメリーアルゴリズムと呼ばれる。GF(2k)に
おけるモントゴメリーアルゴリズムは、GF(p)における指数関数化の高速化
用に使用される上記方法と類似した仕方でGF(2k)における指数関数化の高 速化用に過去においては使用されてきた。しかしながら、一般的な有限体計算の
高速化に使用するに至るまでこのGF(2k)におけるモントゴメリーアルゴリ ズムを改良、拡張する方法は本発明に至って初めて獲得されたのである。
b、rは体F∈GF(2k)の元で、・はFにおける乗算演算)という形の計算 式fの計算作業最適化に使用できるアルゴリズムを発表した。このアルゴリズム
はGF(2k)におけるモントゴメリーアルゴリズムと呼ばれる。GF(2k)に
おけるモントゴメリーアルゴリズムは、GF(p)における指数関数化の高速化
用に使用される上記方法と類似した仕方でGF(2k)における指数関数化の高 速化用に過去においては使用されてきた。しかしながら、一般的な有限体計算の
高速化に使用するに至るまでこのGF(2k)におけるモントゴメリーアルゴリ ズムを改良、拡張する方法は本発明に至って初めて獲得されたのである。
【0045】 置換技法 この節では、体F内で定義される元と演算を含む計算式の操作にしばしば利用
される特殊な置換技法を説明する。本技法は、f内の特定パターンの演算且つ/
又オペランドの全てを他の特定パターンで置換する。例として、x、y をFの 任意メンバ且つa、b、c及びrをFの特定元として、計算式f=(a・b)+
(c・b)におけるパターンx・yの全てをパターンx・y・rで置換すると置
換した結果の計算式f’はf’=(a・b・r)+(c・b・r)で与えられる
。本技法の解説を容易にする為に、sを置換されるべきパターンを示す計算式と
する。計算式sは「ソース」計算式と呼ばれる。又、tを置換するべきパターン
を示す計算式とする。計算式tは「ターゲット」計算式と呼ばれる。この節の後
半では、3つの単純なタイプのソース計算式に本技法が如何に適用されるかを説
明する。場合1 ソース計算式sが演算子を含まない この場合にはソース計算式sはs=xで与えられ、ここにxは計算式f内の任
意の単一変数を表す。本置換技法は、ソース計算式sにより表される全ての変数
をターゲット計算式tによって与えられるパターンで単に置換する。場合2 ソース計算式sが単一の一元演算子を含む この場合にはソース計算式sはs=−x又はs=x-1のいずれか一方で与えら
れ、ここにxは計算式fの任意の部分計算式を表す。ソース計算式sと「整合す
る」計算式fの全ての部分計算式の集合である集合Sの構成が置換技法によりこ
の場合には要請される。換言すれば、この集合Sはs=−x又はs=x-1という
形の計算式fの全ての部分計算式sの集合によって与えられ、ここにxはそれ自
身がfの部分計算式である。集合S内におけるfの任意の二個の部分計算式を考
えた場合に一方は他方の部分計算式であり得る、ことに注意せよ。集合Sのメン
バsに適用される以前に(sがその部分計算式である)集合Sの他のメンバに置
換技法が最初に適用される場合を除いて、集合Sの各メンバをターゲット計算式
tによって与えられる対応するパターンで置換することにより置換技法は機能す
る。場合3 ソース計算式sが単一の二元演算子を含む この場合にはソース計算式sはs=x+y又はs=x・yのいずれか一方で与
えられ、ここにxとyは計算式fの任意の部分計算式を表す。ソース計算式sと
「整合する」計算式fの全ての部分計算式の集合である集合Sの構成が置換技法
によりこの場合には要請される。換言すれば、この集合Sはs=x+y又はs=
x・yという形の計算式fの全ての部分計算式sの集合によって与えられ、ここ
にxとyはそれら自身がfの部分計算式である。集合S内におけるfの任意の二
個の部分計算式を考えた場合に一方は他方の部分計算式であり得る、ことに注意
せよ。集合Sのメンバsに適用される以前に(sがその部分計算式である)集合
Sの他のメンバに置換技法が最初に適用される場合を除いて、集合Sの各メンバ
をターゲット計算式tによって与えられる対応するパターンで置換することによ
り置換技法は機能する。
される特殊な置換技法を説明する。本技法は、f内の特定パターンの演算且つ/
又オペランドの全てを他の特定パターンで置換する。例として、x、y をFの 任意メンバ且つa、b、c及びrをFの特定元として、計算式f=(a・b)+
(c・b)におけるパターンx・yの全てをパターンx・y・rで置換すると置
換した結果の計算式f’はf’=(a・b・r)+(c・b・r)で与えられる
。本技法の解説を容易にする為に、sを置換されるべきパターンを示す計算式と
する。計算式sは「ソース」計算式と呼ばれる。又、tを置換するべきパターン
を示す計算式とする。計算式tは「ターゲット」計算式と呼ばれる。この節の後
半では、3つの単純なタイプのソース計算式に本技法が如何に適用されるかを説
明する。場合1 ソース計算式sが演算子を含まない この場合にはソース計算式sはs=xで与えられ、ここにxは計算式f内の任
意の単一変数を表す。本置換技法は、ソース計算式sにより表される全ての変数
をターゲット計算式tによって与えられるパターンで単に置換する。場合2 ソース計算式sが単一の一元演算子を含む この場合にはソース計算式sはs=−x又はs=x-1のいずれか一方で与えら
れ、ここにxは計算式fの任意の部分計算式を表す。ソース計算式sと「整合す
る」計算式fの全ての部分計算式の集合である集合Sの構成が置換技法によりこ
の場合には要請される。換言すれば、この集合Sはs=−x又はs=x-1という
形の計算式fの全ての部分計算式sの集合によって与えられ、ここにxはそれ自
身がfの部分計算式である。集合S内におけるfの任意の二個の部分計算式を考
えた場合に一方は他方の部分計算式であり得る、ことに注意せよ。集合Sのメン
バsに適用される以前に(sがその部分計算式である)集合Sの他のメンバに置
換技法が最初に適用される場合を除いて、集合Sの各メンバをターゲット計算式
tによって与えられる対応するパターンで置換することにより置換技法は機能す
る。場合3 ソース計算式sが単一の二元演算子を含む この場合にはソース計算式sはs=x+y又はs=x・yのいずれか一方で与
えられ、ここにxとyは計算式fの任意の部分計算式を表す。ソース計算式sと
「整合する」計算式fの全ての部分計算式の集合である集合Sの構成が置換技法
によりこの場合には要請される。換言すれば、この集合Sはs=x+y又はs=
x・yという形の計算式fの全ての部分計算式sの集合によって与えられ、ここ
にxとyはそれら自身がfの部分計算式である。集合S内におけるfの任意の二
個の部分計算式を考えた場合に一方は他方の部分計算式であり得る、ことに注意
せよ。集合Sのメンバsに適用される以前に(sがその部分計算式である)集合
Sの他のメンバに置換技法が最初に適用される場合を除いて、集合Sの各メンバ
をターゲット計算式tによって与えられる対応するパターンで置換することによ
り置換技法は機能する。
【0046】 f=xkという形の簡単な計算式をモントゴメリー正準形式である他の計算式 f’に変換する為に、上記の置換技法と類似した置換技法が2段階プロセスで産
業界と学界で過去において使用されてきた。その一例を説明する為に、計算式f
がf=x4=x・x・x・x=((x・x)・x)・xにより与えられるk=4 の場合を具体的に取り上げる。 (i) ソース計算式sがs=x・yにより与えられ、且つターゲット計算式t がt=x・y・r-1(rは体F内の定数)により与えられるとする。この場合の
置換技法を計算式f=((x・x)・x)・xに適用することにより、変換結果
の計算式f’=((x・x・r-1)・x・r-1)・x・r-1が得られる。括弧で
囲まれたf’の全ての部分計算式はrに関するモントゴメリー正準形式であるか
ら計算式f’はモントゴメリー正準形式である、ことに注意せよ。この条件の為
に、以下の段階によりモントゴメリーアルゴリズムがf’に適用できてf’を効
率的に計算することが可能になる。 (ii) ソース計算式sがs=x(xはf内の変数又は定数)により与えられ、
且つターゲット計算式tがt=x・rにより与えられるとする。この場合の置換
技法を適用することにより計算式f1=((x・x・r-1)・x・r-1)・x・ r-1内の全てのxをx・rで置換した変換結果の計算式f’=(((x・r)・
(x・r)・r-1)・(x・r)・r-1)・(x・r)・r-1が得られる。 計算式fはf=f’・r-1と同等であることが示せるので、この置換技法はf=
xkの効率的な計算を可能にする。k=4の場合にこれを見る為に、
業界と学界で過去において使用されてきた。その一例を説明する為に、計算式f
がf=x4=x・x・x・x=((x・x)・x)・xにより与えられるk=4 の場合を具体的に取り上げる。 (i) ソース計算式sがs=x・yにより与えられ、且つターゲット計算式t がt=x・y・r-1(rは体F内の定数)により与えられるとする。この場合の
置換技法を計算式f=((x・x)・x)・xに適用することにより、変換結果
の計算式f’=((x・x・r-1)・x・r-1)・x・r-1が得られる。括弧で
囲まれたf’の全ての部分計算式はrに関するモントゴメリー正準形式であるか
ら計算式f’はモントゴメリー正準形式である、ことに注意せよ。この条件の為
に、以下の段階によりモントゴメリーアルゴリズムがf’に適用できてf’を効
率的に計算することが可能になる。 (ii) ソース計算式sがs=x(xはf内の変数又は定数)により与えられ、
且つターゲット計算式tがt=x・rにより与えられるとする。この場合の置換
技法を適用することにより計算式f1=((x・x・r-1)・x・r-1)・x・ r-1内の全てのxをx・rで置換した変換結果の計算式f’=(((x・r)・
(x・r)・r-1)・(x・r)・r-1)・(x・r)・r-1が得られる。 計算式fはf=f’・r-1と同等であることが示せるので、この置換技法はf=
xkの効率的な計算を可能にする。k=4の場合にこれを見る為に、
【数12】 に注意せよ。 従って、f’・r-1=r・x4・r-1=x4・r・r-1=x4・1=x4=f、であ
る。f’はrに関するモントゴメリー正準形式であるから、それ自身がモントゴ
メリー正準形式であるf’・r-1を計算する方がfを直接計算するよりも一般に
より効率的である。
る。f’はrに関するモントゴメリー正準形式であるから、それ自身がモントゴ
メリー正準形式であるf’・r-1を計算する方がfを直接計算するよりも一般に
より効率的である。
【0047】 楕円曲線群 楕円曲線Gは、ある特定の体Fの固有の特性に依存する特定のルールに従って
F上で構成される群である。楕円曲線群Gは一般にF×Fの部分集合であり、G
における乗算演算・は上記体乗算演算・を介して且つ順序付けペアを成すGの元
を構成するFの元に基づいて定義される。最も深く研究された二つの楕円曲線は
、GF(p)か又はGF(2k)に属する体上で構成された楕円曲線である。
F上で構成される群である。楕円曲線群Gは一般にF×Fの部分集合であり、G
における乗算演算・は上記体乗算演算・を介して且つ順序付けペアを成すGの元
を構成するFの元に基づいて定義される。最も深く研究された二つの楕円曲線は
、GF(p)か又はGF(2k)に属する体上で構成された楕円曲線である。
【0048】 GF(p)上の楕円曲線 GF(p)上の楕円曲線は、選択されたパラメータa、b(双方ともGF(p
)のメンバ)により方程式y2=x3+ax+bの解である全ての順序付けペア(
x,y)の集合として定義される。ここに、x、yは特別な極点Oを伴うGF(
p)のメンバで、極点Oは通常は無限遠点とする。pを3以上の素数とし、GF
(p)内のa、bはGF(p)内で4a3−27b2≠0を満足するように選択さ
れる。この楕円曲線上の点とOが以下の点加算演算ルールに関してアーベル群を
成すことは充分に立証されている。
)のメンバ)により方程式y2=x3+ax+bの解である全ての順序付けペア(
x,y)の集合として定義される。ここに、x、yは特別な極点Oを伴うGF(
p)のメンバで、極点Oは通常は無限遠点とする。pを3以上の素数とし、GF
(p)内のa、bはGF(p)内で4a3−27b2≠0を満足するように選択さ
れる。この楕円曲線上の点とOが以下の点加算演算ルールに関してアーベル群を
成すことは充分に立証されている。
【数13】 ここで、演算+、−、・、及び逆演算(-1)は体GF(p)において遂行され
る。上記点加算演算ルールは、楕円曲線上の二点を「加算」して第三点を得る方
法を定義している。以後、これらの方程式を方程式Aと呼称する。
る。上記点加算演算ルールは、楕円曲線上の二点を「加算」して第三点を得る方
法を定義している。以後、これらの方程式を方程式Aと呼称する。
【0049】例 例として体GF(23)上の楕円曲線方程式y2=x3+x+1を説明する。上
記特殊点Oを含めて対応する楕円曲線上には28個の点が存在することになる。
これらの点は
記特殊点Oを含めて対応する楕円曲線上には28個の点が存在することになる。
これらの点は
【数14】 である。 例えば、点(1,7)は体GF(23)(即ち、23を法とする)における楕
円曲線方程式y2=x3+x+1を満足する。なぜならば、72=13+1+1mod 23、49=3mod23、従って3=3mod23、であるからである。従って、点
(1,7)はこの楕円曲線上に存在する。 23を法とする算術演算、即ちGF(23)の体算術演算、を用いて点(3,
10)と点(9,7)の点加算を計算して、
円曲線方程式y2=x3+x+1を満足する。なぜならば、72=13+1+1mod 23、49=3mod23、従って3=3mod23、であるからである。従って、点
(1,7)はこの楕円曲線上に存在する。 23を法とする算術演算、即ちGF(23)の体算術演算、を用いて点(3,
10)と点(9,7)の点加算を計算して、
【数15】 を得る。 従って、点(3,10)と点(9,7)の点加算は(17,20)に等しい。 この例は、上記ルールを使用した楕円曲線上の二点の点加算演算は楕円曲線上
に存在する第三点を与えることを例証している。
に存在する第三点を与えることを例証している。
【0050】 GF(2k)上の楕円曲線 GF(2k)上の非超特異(non-supersingular)楕円曲線は、GF(2k)内 のパラメータa、b(b≠0)により方程式y2+xy=x3+ax2+bの極点 Oを伴う解(x,y)の集合として定義される。これらの点の集合は以下の点加
算演算ルールに関して群を成す。
算演算ルールに関して群を成す。
【数16】
【0051】 点乗算演算 楕円曲線暗号化演算は、それが暗号化、復号化、署名、鍵交換等の演算のいず
れであれ、eとPを与えた場合のePの計算を常に含む。ここに、Pは楕円曲線
上における点でありeは正の整数である。この計算の逆、即ちPとePを与えた
場合のeの計算、は非常に困難な計算であることが知られている。この計算は楕
円曲線離散対数問題と呼ばれ、これに対しては有効なアルゴリズムは現在知られ
ていない。
れであれ、eとPを与えた場合のePの計算を常に含む。ここに、Pは楕円曲線
上における点でありeは正の整数である。この計算の逆、即ちPとePを与えた
場合のeの計算、は非常に困難な計算であることが知られている。この計算は楕
円曲線離散対数問題と呼ばれ、これに対しては有効なアルゴリズムは現在知られ
ていない。
【0052】 楕円曲線群Gにおける加算演算はその基礎を成す体Fに由来する一連の体演算
を用いて定義されるので、Gにおける二点P,Qに対して、P+Q又はP+Pを
計算するには体Fにおける一連の体演算を計算することが必要である。特にF∈
GF(2k)の場合には、P+Qを計算するには一個の体逆演算、三個の体乗算 演算、及び九個の体加算演算の計算が必要であることが上記の方程式4から分る
。一方、上記の方程式5に示されているように、P+Pを計算するには一個の体
逆演算、三個の体乗算演算、及び五個の体加算演算の計算が必要である。
を用いて定義されるので、Gにおける二点P,Qに対して、P+Q又はP+Pを
計算するには体Fにおける一連の体演算を計算することが必要である。特にF∈
GF(2k)の場合には、P+Qを計算するには一個の体逆演算、三個の体乗算 演算、及び九個の体加算演算の計算が必要であることが上記の方程式4から分る
。一方、上記の方程式5に示されているように、P+Pを計算するには一個の体
逆演算、三個の体乗算演算、及び五個の体加算演算の計算が必要である。
【0053】 正の整数eが約500ビットの長さであれば、ePの計算に必要な楕円曲線演
算(点加算演算及び点倍加算演算)の数は約750個であることが示し得る。各
楕円曲線演算は幾つか(約15から20個)の有限体演算を含む。k(F∈GF
(2k)から由来)の値も大きければ(>100)、これらの計算には特にソフ トウェアにおいて多大の時間を要してしまう。従って、楕円曲線点乗算演算の高
速なハードウェア及びソフトウェア的実装が暗号化の為には切に望まれる。
算(点加算演算及び点倍加算演算)の数は約750個であることが示し得る。各
楕円曲線演算は幾つか(約15から20個)の有限体演算を含む。k(F∈GF
(2k)から由来)の値も大きければ(>100)、これらの計算には特にソフ トウェアにおいて多大の時間を要してしまう。従って、楕円曲線点乗算演算の高
速なハードウェア及びソフトウェア的実装が暗号化の為には切に望まれる。
【0054】 体GF(23)における以下の例は、ePの計算の最適化に向けて取り得る様
々なアプローチを例証するものである。今e=18で且つP=(3,10)とす
る。するとeP=18(3,10)の計算は方程式Aで定義された点加算演算(
即ち群演算)を用いて(3,10)をそれ自身に連続的に18回加算して、P+
P+...+P(Pの18倍加算)となる。この計算18Pを遂行するには17個 の楕円曲線点加算演算の実行が必要である。 ところで「指数関数化法」として知られる高速アルゴリズムが存在し、その一
例は次に示す「二元法」である。これは18Pを
々なアプローチを例証するものである。今e=18で且つP=(3,10)とす
る。するとeP=18(3,10)の計算は方程式Aで定義された点加算演算(
即ち群演算)を用いて(3,10)をそれ自身に連続的に18回加算して、P+
P+...+P(Pの18倍加算)となる。この計算18Pを遂行するには17個 の楕円曲線点加算演算の実行が必要である。 ところで「指数関数化法」として知られる高速アルゴリズムが存在し、その一
例は次に示す「二元法」である。これは18Pを
【数17】 のように計算することを可能ならしめる。 このように僅かに5個の点加算演算(即ち群演算)しか利用されていない。そ
の演算途中結果と最終結果は、楕円曲線上の以下に示す点である。
の演算途中結果と最終結果は、楕円曲線上の以下に示す点である。
【数18】 従って、18(3,10)は(6,19)に等しい。するとこの場合、上記の
楕円曲線離散対数問題は次のように定式化される。即ち、(3,10)と(6,
19)が既知で且つ(6,19)が(3,10)の整数倍であるという条件が既
知の場合に、この整数とは何か?この例でのこの整数は18に等しい。
楕円曲線離散対数問題は次のように定式化される。即ち、(3,10)と(6,
19)が既知で且つ(6,19)が(3,10)の整数倍であるという条件が既
知の場合に、この整数とは何か?この例でのこの整数は18に等しい。
【0055】 eの二進表現をek-1ek-2...e2e1e0のように与えた場合、ePの計算は上
記の二元法又は他のM−ary法を利用して実行し得る。例えば、Q=ePの計
算は二元法によれば以下のように進行する。 Q:=O i=k−1から0までに対して Q:=Q+Q ei=1ならばQ:=Q+P リターンQ. 従って、Qの計算は一連の楕円曲線点倍加算演算(Q:=Q+Q)と楕円曲線
点加算演算(Q:=Q+P)により実行される。
記の二元法又は他のM−ary法を利用して実行し得る。例えば、Q=ePの計
算は二元法によれば以下のように進行する。 Q:=O i=k−1から0までに対して Q:=Q+Q ei=1ならばQ:=Q+P リターンQ. 従って、Qの計算は一連の楕円曲線点倍加算演算(Q:=Q+Q)と楕円曲線
点加算演算(Q:=Q+P)により実行される。
【0056】 (発明の開示) 体F上で定義された楕円曲線の守秘的且つ効率的な使用を可能にする変換方法
を介して、本発明は楕円曲線暗号化演算の計算を最適化する。本発明は楕円曲線
点乗算積Q=ePを生成する方法と装置を含む。本発明は、任意整数eと、体F
上で定義された楕円曲線群G上の点P、を利用する。ここで楕円曲線群Gは体F
と体Fのクロス乗積の部分集合である。本発明においては、ある集合G’、楕円
曲線群Gから集合G’内への写像T、集合G’から楕円曲線群G上への写像T-1 、及び集合G’上で定義される
を介して、本発明は楕円曲線暗号化演算の計算を最適化する。本発明は楕円曲線
点乗算積Q=ePを生成する方法と装置を含む。本発明は、任意整数eと、体F
上で定義された楕円曲線群G上の点P、を利用する。ここで楕円曲線群Gは体F
と体Fのクロス乗積の部分集合である。本発明においては、ある集合G’、楕円
曲線群Gから集合G’内への写像T、集合G’から楕円曲線群G上への写像T-1 、及び集合G’上で定義される
【外21】 が構成される。ここでこれらの写像と演算が満足すべき条件式は、(a) 点P
に対してT-1(T(P))=P、及び(b)
に対してT-1(T(P))=P、及び(b)
【数19】 (ここでP’=T(P))、である。楕円曲線点乗算積Qは以下のように生成さ
れる。即ち、写像Tを用いて点Pを点P’に変換し、点P’上で
れる。即ち、写像Tを用いて点Pを点P’に変換し、点P’上で
【外22】 を実行して点Q’=eP’を求め、最後に写像T-1を用いて点Q’を楕円曲線点
乗算積Qに逆変換する。楕円曲線点乗算積Qは楕円曲線暗号化演算において使用
される。
乗算積Qに逆変換する。楕円曲線点乗算積Qは楕円曲線暗号化演算において使用
される。
【0057】 本発明は又、体Fの効率的な使用を可能にする変換方法を介することにより、
有限体算術演算における任意の計算式を含む暗号化演算の計算を最適化する方法
を含む。本発明は又、有限体における任意計算式を他の既知アルゴリズムが適用
可能な正準形式に変換する方法を含むことにより、計算速度と計算効率の増大を
実現する。本発明は又、本発明以前には限定された特殊例にのみ適用可能であっ
た他の既知技法の使用を可能にする暗号化計算に対する一組の変換を教示する。
有限体算術演算における任意の計算式を含む暗号化演算の計算を最適化する方法
を含む。本発明は又、有限体における任意計算式を他の既知アルゴリズムが適用
可能な正準形式に変換する方法を含むことにより、計算速度と計算効率の増大を
実現する。本発明は又、本発明以前には限定された特殊例にのみ適用可能であっ
た他の既知技法の使用を可能にする暗号化計算に対する一組の変換を教示する。
【0058】 (発明の詳細な記載) 「楕円曲線点乗算演算」として知られる演算に焦点を絞ることを介して、本発
明は任意体上の任意楕円曲線に基づくECCの実装計算を最適化する方法を提供
する。この楕円曲線点乗算演算は、ECCの実装に使用される全ての演算の内で
最も計算的に複雑で且つ困難な演算の一つである。楕円曲線点乗算演算はePの
計算を要求するものであり、ここにPは楕円曲線上の点でありeは正の整数であ
る。この演算は、暗号化、復号化、乱数生成、鍵交換、ディジタル署名、及び署
名検証を含む多くの楕円曲線暗号化機能に関して中心的な役割を担うものである
。本発明は、楕円曲線点乗算演算の実装を最適化する為の方法論を提供すること
により効率的ECCを実装するものである。本発明は、GF(p)及びGF(2 k )内の全ての個別メンバ体を含む任意体上の任意楕円曲線上でのECCの実装 用に使用され得る。
明は任意体上の任意楕円曲線に基づくECCの実装計算を最適化する方法を提供
する。この楕円曲線点乗算演算は、ECCの実装に使用される全ての演算の内で
最も計算的に複雑で且つ困難な演算の一つである。楕円曲線点乗算演算はePの
計算を要求するものであり、ここにPは楕円曲線上の点でありeは正の整数であ
る。この演算は、暗号化、復号化、乱数生成、鍵交換、ディジタル署名、及び署
名検証を含む多くの楕円曲線暗号化機能に関して中心的な役割を担うものである
。本発明は、楕円曲線点乗算演算の実装を最適化する為の方法論を提供すること
により効率的ECCを実装するものである。本発明は、GF(p)及びGF(2 k )内の全ての個別メンバ体を含む任意体上の任意楕円曲線上でのECCの実装 用に使用され得る。
【0059】 本発明は更に、任意の有限体における有限個数の任意の有限体演算を含む演算
の計算を最適化する為の方法論、を提供する。これらの計算は、楕円曲線暗号化
システムを含む多数のシステムに関するコンピュータ実装において根本的に重要
な役割を果たすものである。 本発明は、楕円曲線暗号化システムの最適化されたハードウェア及びソフトウ
ェア的実装を可能にする「変換方法」、を提供する。
の計算を最適化する為の方法論、を提供する。これらの計算は、楕円曲線暗号化
システムを含む多数のシステムに関するコンピュータ実装において根本的に重要
な役割を果たすものである。 本発明は、楕円曲線暗号化システムの最適化されたハードウェア及びソフトウ
ェア的実装を可能にする「変換方法」、を提供する。
【0060】 本発明は楕円曲線群の元に適用される可逆な変換を利用するものであるが故に
、楕円曲線暗号化の実行の為に使用される数学的アルゴリズムの本質的な機密保
持性を如何なる意味でも損なうものではない。ECCの全実装アルゴリズムのセ
キュリティは、楕円曲線方程式、数表示、算術アルゴリズム及び他の実装条件、
の選択に依存する。これらの選択が信頼し得る規格に従って為されている限り、
実装態様のセキュリティは本発明の使用により影響されない。
、楕円曲線暗号化の実行の為に使用される数学的アルゴリズムの本質的な機密保
持性を如何なる意味でも損なうものではない。ECCの全実装アルゴリズムのセ
キュリティは、楕円曲線方程式、数表示、算術アルゴリズム及び他の実装条件、
の選択に依存する。これらの選択が信頼し得る規格に従って為されている限り、
実装態様のセキュリティは本発明の使用により影響されない。
【0061】 本発明は全ての任意の潜在的なECC適用態様において使用し得る。こうした
適用態様は、動画、歌曲等に関するディジタル商品の権利保護的形態での販売用
ソフトウェアからセルラー式電話、スマートカード等の消費者向け電子機器に埋
設されたハードウェアチップ、にまで至るものである。本発明のコスト節約性に
よりその実際の商業的適用は大幅に増大して、過去には成立不可能であったビジ
ネス機会が経済的に成立可能となる。
適用態様は、動画、歌曲等に関するディジタル商品の権利保護的形態での販売用
ソフトウェアからセルラー式電話、スマートカード等の消費者向け電子機器に埋
設されたハードウェアチップ、にまで至るものである。本発明のコスト節約性に
よりその実際の商業的適用は大幅に増大して、過去には成立不可能であったビジ
ネス機会が経済的に成立可能となる。
【0062】 節A 本発明は、体F上で定義された楕円曲線群G⊂F×Fに基づくePの計算を最
適化する改良された方法を提供する。ここに、eは整数でありPはGの元である
。 本発明は、 (1) ソフトウェア且つ/又ハードウェアにおける、ある集合G’の構成及び
集合G’のメンバの表示方法の構成の段階と、 (2) ソフトウェア且つ/又ハードウェアにおける、楕円曲線群Gから集合G
’内への第一写像T用のアルゴリズムの構成と実装の段階と、 (3) ソフトウェア且つ/又ハードウェアにおける、Tの逆写像として機能す
る集合G’から楕円曲線群G上への第二写像T-1用のアルゴリズムの構成と実装
の段階と、 (4) ソフトウェア且つ/又ハードウェアにおける、集合G’上で定義される
適化する改良された方法を提供する。ここに、eは整数でありPはGの元である
。 本発明は、 (1) ソフトウェア且つ/又ハードウェアにおける、ある集合G’の構成及び
集合G’のメンバの表示方法の構成の段階と、 (2) ソフトウェア且つ/又ハードウェアにおける、楕円曲線群Gから集合G
’内への第一写像T用のアルゴリズムの構成と実装の段階と、 (3) ソフトウェア且つ/又ハードウェアにおける、Tの逆写像として機能す
る集合G’から楕円曲線群G上への第二写像T-1用のアルゴリズムの構成と実装
の段階と、 (4) ソフトウェア且つ/又ハードウェアにおける、集合G’上で定義される
【外23】 用のアルゴリズムの構成と実装の段階、を含む。これらの各段階での発明に対し
て、以下の三条件が満足される。 (i) 任意のP∈Gに対してT-1(T(P))=Pが成立し、 (ii) G上の任意の二点P、Sに対して
て、以下の三条件が満足される。 (i) 任意のP∈Gに対してT-1(T(P))=Pが成立し、 (ii) G上の任意の二点P、Sに対して
【数20】 が成立し(ここでP’=T(P)、S’=T(S))、更に (iii) P1、P2、...PN∈Gに対して(ここでNは整数)
【数21】 の計算がP1+P2+...+PNの計算より一般により最適化されるようにG’ 、T、T-1、
【外24】 及び上記の対応するアルゴリズムは構成、選択される。 換言すれば、本発明はQ=ePを以下のように計算する。即ち、最初に第一写
像T用のアルゴリズムを用いて点Pを変換された点P’に変換し、次にその変換
領域における
像T用のアルゴリズムを用いて点Pを変換された点P’に変換し、次にその変換
領域における
【外25】 の計算的により最適化された「変換」版を用いて点倍加算和Q’=eP’を計算
し、最後に第二写像T-1用のアルゴリズムを用いて点Q’をQに逆変換する。条
件(i)、(ii)が満足されていることによりこの計算方法は楕円曲線群Gに属 する任意の点Pに適用可能であることが保証されている、ことに注意せよ。
し、最後に第二写像T-1用のアルゴリズムを用いて点Q’をQに逆変換する。条
件(i)、(ii)が満足されていることによりこの計算方法は楕円曲線群Gに属 する任意の点Pに適用可能であることが保証されている、ことに注意せよ。
【0063】 ある状況下では、上記のようにG’、T、T-1及び
【外26】 を精確に選択する際に楕円曲線点乗算演算の計算を最適化する方向での選択方法
も可能である。又、実行されるべき点加算演算の数によっては、Gの元の変換に
要する追加コストが変換領域G’におけるより最適化された計算によるコスト上
の改良を上回るかもしれないし上回らないかもしれない。
も可能である。又、実行されるべき点加算演算の数によっては、Gの元の変換に
要する追加コストが変換領域G’におけるより最適化された計算によるコスト上
の改良を上回るかもしれないし上回らないかもしれない。
【0064】 節B 本発明は更に、任意の楕円曲線群Gに適用可能なG’、T、及びT-1を構成す
る特殊な方法を提供する。 GはF×Fの部分集合であるからG上の点は順序付けペア(x,y)として書
かれ、ここにx、yは体Fの元である。本発明においては、Fの特定のメンバr
が最初に選択されると規定する。選択される特定メンバrは結果的にFの任意元
であっても良い。tを、G上の任意点P=(x,y)をG’上のある点P’=(
x’,y’)に写像するGからF×F内への写像である、とする。本発明におい
ては、t(P)=t((x,y))=(x・r,y・r)=P’と規定する。x
、y、rは全てFのメンバであるから、x・rとy・rもFのメンバである。本
発明においては、G’は写像tの下でのGの像であると規定する。換言すれば、
G’はG上のある一点が写像tにより写像されているF×Fの全ての元の集合で
ある、と規定する。本発明においては更に、TはG上の任意点Pに対してT(P
)=t(P)=P’を満足するGからG’上への変換であると規定する。点P’
=(x’,y’)は必然的にF×Fのメンバであるが必ずしも楕円曲線群G内の
点ではない。P’はx’=x・r、y’=y・rを計算することにより得られる
。
る特殊な方法を提供する。 GはF×Fの部分集合であるからG上の点は順序付けペア(x,y)として書
かれ、ここにx、yは体Fの元である。本発明においては、Fの特定のメンバr
が最初に選択されると規定する。選択される特定メンバrは結果的にFの任意元
であっても良い。tを、G上の任意点P=(x,y)をG’上のある点P’=(
x’,y’)に写像するGからF×F内への写像である、とする。本発明におい
ては、t(P)=t((x,y))=(x・r,y・r)=P’と規定する。x
、y、rは全てFのメンバであるから、x・rとy・rもFのメンバである。本
発明においては、G’は写像tの下でのGの像であると規定する。換言すれば、
G’はG上のある一点が写像tにより写像されているF×Fの全ての元の集合で
ある、と規定する。本発明においては更に、TはG上の任意点Pに対してT(P
)=t(P)=P’を満足するGからG’上への変換であると規定する。点P’
=(x’,y’)は必然的にF×Fのメンバであるが必ずしも楕円曲線群G内の
点ではない。P’はx’=x・r、y’=y・rを計算することにより得られる
。
【0065】 Q’をG’の任意元とする。G’⊂F×Fであるから、u’、v’をFのメン
バとしてQ’=(u’,v’)と書ける。G’は写像tの下でのGの像であるか
ら、(u,v)∈Gで且つu’=u・r、y’=y・rを満足するFの二個の元
u,vが存在するはずである。u,v、rは全て体Fのメンバであるから、r-1 をFの点乗算演算の下でのrの逆元としてu=u’・r-1、v=v’・r-1とな
る。従って、T-1がG’の任意元Q’=(u’,v’)を(u’・r-1,v’・
r-1)に写像するとして、逆変換T-1:G’→Gを構成できる。
バとしてQ’=(u’,v’)と書ける。G’は写像tの下でのGの像であるか
ら、(u,v)∈Gで且つu’=u・r、y’=y・rを満足するFの二個の元
u,vが存在するはずである。u,v、rは全て体Fのメンバであるから、r-1 をFの点乗算演算の下でのrの逆元としてu=u’・r-1、v=v’・r-1とな
る。従って、T-1がG’の任意元Q’=(u’,v’)を(u’・r-1,v’・
r-1)に写像するとして、逆変換T-1:G’→Gを構成できる。
【0066】 形式的な用語で表現すると、本発明のこのより詳細な実施例は、 (1) 写像t:G→F×Fの下でのGの像であるF×Fの部分集合としてG
’を構成する段階を含み、ここにtはFの任意元rを最初に選択し次にt((x
,y))=(x・r,y・r)とすることにより構成され、・はFにおける点乗
算演算であり、更に (2) T(P)=t(P)とすることにより第一写像T:G→G’を構成す
る段階を含み、ここにPはG上の任意点であり、更に (3) T-1((u’,v’))=(u’・r-1,v’・r-1)とすることによ
り第二写像T-1:G’→Gを構成する段階を含み、ここに(u’,v’)はG’
の任意元である。 G’、T、及びT-1に対する上記の構成、選択に際して、G’上での
’を構成する段階を含み、ここにtはFの任意元rを最初に選択し次にt((x
,y))=(x・r,y・r)とすることにより構成され、・はFにおける点乗
算演算であり、更に (2) T(P)=t(P)とすることにより第一写像T:G→G’を構成す
る段階を含み、ここにPはG上の任意点であり、更に (3) T-1((u’,v’))=(u’・r-1,v’・r-1)とすることによ
り第二写像T-1:G’→Gを構成する段階を含み、ここに(u’,v’)はG’
の任意元である。 G’、T、及びT-1に対する上記の構成、選択に際して、G’上での
【外27】 の精確な定義とrの慎重な選択を介してePの計算を最適化する。例えば、rの
ある値はより高速のソフトウェア実装をもたらし、一方他の値はよりアルゴリズ
ム的な並列処理をもたらす。
ある値はより高速のソフトウェア実装をもたらし、一方他の値はよりアルゴリズ
ム的な並列処理をもたらす。
【0067】 節C 本発明の他のより詳細な実施例は、節A,Bの上記方法をGF(p)に属する
特定体上で定義される楕円曲線群に適用する実施例である。この実施例において
は、新規の変換された
特定体上で定義される楕円曲線群に適用する実施例である。この実施例において
は、新規の変換された
【外28】 が節Aの条件(i)、(ii)、(iii)が満足されるように構成される。
【0068】 本発明は、体FがGF(p)内のある個別メンバ体である場合にePの計算を
最適化する方法を含む。本実施例においては、楕円曲線群GはF∈GF(p)上
の楕円曲線群で、G’、T、及びT-1はFの任意元rの選択を介する上記の節B
で説明された方法に従い構成される。本発明は、G’における「変換された」
最適化する方法を含む。本実施例においては、楕円曲線群GはF∈GF(p)上
の楕円曲線群で、G’、T、及びT-1はFの任意元rの選択を介する上記の節B
で説明された方法に従い構成される。本発明は、G’における「変換された」
【外29】 を以下のように構成する。G’の二個の任意元(x1’,y1’)、(x2’,y2 ’)に対して
【数22】 を(x3’,y3’)により与えられる量と定義し、ここで満足されるべき関係式
は
は
【数23】 である。 G’の元の「加算」演算に関する
【外30】 の上記の定義を用いて、本発明はG’における任意「点」(x1’,y1’)をそ
れ自身に加算する演算に関する以下の体方程式の組を導出する。
れ自身に加算する演算に関する以下の体方程式の組を導出する。
【数24】 である。
【0069】 さて、G’、T、T-1及び上記の
【外31】 が節Aで提出された条件(i)、(ii)、(iii)を満足していることを証明する
。 (i) Pを楕円曲線群Gにおける任意点とする。すると、P=(x,y)と なる体Fの元x、yが存在する。すると、T-1(T(P))=T-1(T((x,
y)))=T-1((x・r,y・r))=(x・r・r-1,y・r・r-1)=(
x,y)=P。従って、節Aの条件(i)は満足されている。 (ii) G上の任意の二点P、Sに対する
。 (i) Pを楕円曲線群Gにおける任意点とする。すると、P=(x,y)と なる体Fの元x、yが存在する。すると、T-1(T(P))=T-1(T((x,
y)))=T-1((x・r,y・r))=(x・r・r-1,y・r・r-1)=(
x,y)=P。従って、節Aの条件(i)は満足されている。 (ii) G上の任意の二点P、Sに対する
【数25】 の成立(ここでP’=T(P)、S’=T(S))を証明する必要がある。P=
(x1,y1)、P’=(x1’,y1’)、S=(x2,y2)、S’=(x2’, y2’)、Q=P+S=(x3,y3)、Q’=P’+S’=(x3’,y3’)、 とする。すると、方程式Aにより与えられている楕円曲線群における点加算演算
ルールを適用して、Qの座標はx3=L・L−x1−x2,y3=L・(x1−x3)
−y1(ここでL=(y2−y1)・z、z=(x2−x1)-1)、により与えられ る。一方、上記の方程式A’はQ’の座標を与える。従ってQ’の座標は
(x1,y1)、P’=(x1’,y1’)、S=(x2,y2)、S’=(x2’, y2’)、Q=P+S=(x3,y3)、Q’=P’+S’=(x3’,y3’)、 とする。すると、方程式Aにより与えられている楕円曲線群における点加算演算
ルールを適用して、Qの座標はx3=L・L−x1−x2,y3=L・(x1−x3)
−y1(ここでL=(y2−y1)・z、z=(x2−x1)-1)、により与えられ る。一方、上記の方程式A’はQ’の座標を与える。従ってQ’の座標は
【数26】 、により与えられる。従って(x3’,y3’)=(x3・r,y3・r)となり、
これは要求通り
これは要求通り
【数27】 を示している。従って、節Aの条件(ii)は満足されている。 (iii) 本発明が提供した方法は、P1、P2、...PN∈Gに対して(ここで Nは整数)
【数28】 の計算がP1+P2+...+PNの計算より一般により最適化されるようにG’ 、T、T-1、
【外32】 及び対応するアルゴリズムが選択される方法であった。この最適化に関する条件
を検証する為に、まず
を検証する為に、まず
【数29】 の計算においては方程式A’内の計算式が反復して適用されることに注意せよ。
しかしながら、これらの計算式はrに関するモントゴメリー正準形式である。従
って、GF(p)におけるモントゴメリーアルゴリズムは
しかしながら、これらの計算式はrに関するモントゴメリー正準形式である。従
って、GF(p)におけるモントゴメリーアルゴリズムは
【数30】 の計算に容易に適用され得て、最適化されたソフトウェア的且つ/又ハードウェ
ア的実装を構築する。従って、節Aの条件(ii)は満足されている。
ア的実装を構築する。従って、節Aの条件(ii)は満足されている。
【0070】 節D 本発明の他のより詳細な実施例は、節A,Bの上記方法をGF(2k)に属す る特定体上で定義される楕円曲線群に適用する実施例である。この実施例におい
ては、新規の変換された
ては、新規の変換された
【外33】 が節Aの条件(i)、(ii)、(iii)が満足されるように構成される。
【0071】 本発明は、体FがGF(2k)内のある個別メンバ体である場合にePの計算 を最適化する方法を更に含む。本実施例においては、楕円曲線群GはF∈GF(
2k)上の楕円曲線群で、G’、T、及びT-1はFの任意元rの選択を介する上 記の節Bで説明された方法に従い構成される。本発明は、G’における「変換さ
れた」
2k)上の楕円曲線群で、G’、T、及びT-1はFの任意元rの選択を介する上 記の節Bで説明された方法に従い構成される。本発明は、G’における「変換さ
れた」
【外34】 を以下のように構成する。G’の二個の任意元(x1’,y1’)、(x2’,y2 ’)に対して
【数31】 を(x3’,y3’)により与えられる量と定義し、ここで満足されるべき関係式
は
は
【数32】 である。 G’における点の点加算演算に関する
【外35】 の上記の定義を用いて、本発明は「一点を倍加算する」演算、即ちG’における
一点(x1’,y1’)をそれ自身に点加算する演算、に関する以下の体方程式の
組を導出する。
一点(x1’,y1’)をそれ自身に点加算する演算、に関する以下の体方程式の
組を導出する。
【数33】 である。
【0072】 さて、G’、T、T-1及び上記の
【外36】 が節Aで提出された条件(i)、(ii)、(iii)を満足していることを証明する
。 (i) Pを楕円曲線群Gにおける任意点とする。すると、P=(x,y)と なる体Fの元x、yが存在する。すると、T-1(T(P))=T-1(T((x,
y)))=T-1((x・r,y・r))=(x・r・r-1,y・r・r-1)=(
x,y)=P。従って、節Aの条件(i)は満足されている。 (ii) G上の任意の二点P、Sに対する
。 (i) Pを楕円曲線群Gにおける任意点とする。すると、P=(x,y)と なる体Fの元x、yが存在する。すると、T-1(T(P))=T-1(T((x,
y)))=T-1((x・r,y・r))=(x・r・r-1,y・r・r-1)=(
x,y)=P。従って、節Aの条件(i)は満足されている。 (ii) G上の任意の二点P、Sに対する
【数34】 の成立(ここでP’=T(P)、S’=T(S))を証明する必要がある。P=
(x1,y1)、P’=(x1’,y1’)、S=(x2,y2)、S’=(x2’, y2’)、Q=P+S=(x3,y3)、Q’=P’+S’=(x3’,y3’)、 とする。すると、方程式Aにより与えられている楕円曲線群における点加算演算
ルールを適用して、Qの座標はx3=L・L+L+x1+x2+a,y3=L・(x 1 +x3)+x3+y1(ここでL=(y1+y2)・z、z=(x1+x2)-1)、に
より与えられる。一方、上記の方程式A’はQ’の座標を与える。従ってQ’の
座標は
(x1,y1)、P’=(x1’,y1’)、S=(x2,y2)、S’=(x2’, y2’)、Q=P+S=(x3,y3)、Q’=P’+S’=(x3’,y3’)、 とする。すると、方程式Aにより与えられている楕円曲線群における点加算演算
ルールを適用して、Qの座標はx3=L・L+L+x1+x2+a,y3=L・(x 1 +x3)+x3+y1(ここでL=(y1+y2)・z、z=(x1+x2)-1)、に
より与えられる。一方、上記の方程式A’はQ’の座標を与える。従ってQ’の
座標は
【数35】 、により与えられる。従って(x3’,y3’)=(x3・r,y3・r)となり、
これは要求通り
これは要求通り
【数36】 を示している。従って、節Aの条件(ii)は満足されている。 (iii) 本発明が提供した方法は、P1、P2、...PN∈Gに対して(ここで Nは整数)
【数37】 の計算がP1+P2+...+PNの計算より一般により最適化されるようにG’、T
、T-1、
、T-1、
【外37】 及び対応するアルゴリズムが選択される方法であった。この最適化に関する条件
を検証する為に、まず
を検証する為に、まず
【数38】 の計算においては方程式B’内の計算式が反復して適用されることに注意せよ。
しかしながら、これらの計算式はrに関するモントゴメリー正準形式である。従
って、GF(2k)におけるモントゴメリーアルゴリズムは
しかしながら、これらの計算式はrに関するモントゴメリー正準形式である。従
って、GF(2k)におけるモントゴメリーアルゴリズムは
【数39】 の計算に容易に適用され得て、最適化されたソフトウェア的且つ/又ハードウェ
ア的実装を構築する。従って、節Aの条件(ii)は満足されている。
ア的実装を構築する。従って、節Aの条件(ii)は満足されている。
【0073】 節E 本発明は更に、rの特定の選択を介する節C、Dの方法を利用する場合に、よ
り高い効率を実現する方法を提供する。 本発明においては、楕円曲線群Gが定義された体Fにおける任意元rが活用さ
れる。しかしながら、一般に元rの選択の精確性が計算結果の演算特性に影響す
る。本発明の教える所によれば、rの特定の選択により特定コンピュータ環境内
のソフトウェア的且つ/又ハードウェア的実装の特定態様を最適化し得る。例え
ば、rを32の倍数に選択すれば、32ビットコンピュータ上では諸々の有益な
効果が得られる。rの特定の選択に対してa・b・r-1の計算は一つ以上の方法
で実行し得て、その中の幾つかは計算的により効率的である。rの以下の選択が
好適である。 1. 体GF(p):rはpより大なる2の最小冪として選択される。 2. 体GF(p):rはk個の素数の積として選択され、この積は結果のアル
ゴリズムに高レベルの並列処理をもたらす。 3. 体GF(2k):rはxk mod n(x)として選択され、ここにn(x )は体GF(2k)を生成する既約多項式である。 異なる体に対するrの他の選択も可能である。変換アルゴリズムはこの選択と
は独立に機能する。
り高い効率を実現する方法を提供する。 本発明においては、楕円曲線群Gが定義された体Fにおける任意元rが活用さ
れる。しかしながら、一般に元rの選択の精確性が計算結果の演算特性に影響す
る。本発明の教える所によれば、rの特定の選択により特定コンピュータ環境内
のソフトウェア的且つ/又ハードウェア的実装の特定態様を最適化し得る。例え
ば、rを32の倍数に選択すれば、32ビットコンピュータ上では諸々の有益な
効果が得られる。rの特定の選択に対してa・b・r-1の計算は一つ以上の方法
で実行し得て、その中の幾つかは計算的により効率的である。rの以下の選択が
好適である。 1. 体GF(p):rはpより大なる2の最小冪として選択される。 2. 体GF(p):rはk個の素数の積として選択され、この積は結果のアル
ゴリズムに高レベルの並列処理をもたらす。 3. 体GF(2k):rはxk mod n(x)として選択され、ここにn(x )は体GF(2k)を生成する既約多項式である。 異なる体に対するrの他の選択も可能である。変換アルゴリズムはこの選択と
は独立に機能する。
【0074】 節F 本発明は更に、有限体上の有限個数の任意体演算の計算を最適化する方法を提
供する。fを、有限個数の変数及び有限個数の体演算+、・、−、及び-1を含む
有限体F内で定義された有効な計算式、とする。本発明は計算式fの計算を最適
化する方法を提供するものであり、この方法は以下の段階的処理の実行を順次に
含む。 (1) rを有限体F内の任意の単一元として選択する。元rはある定数であり
、且つ本明細書で既に説明済みの一連の置換技法の適用を介して計算式fを新規
の計算式f’に変換する為に使用される。計算式fが記号rで表される定数又は
変数を既に含む場合は、この段階的処理のこの段階で記号rの値を有限体のある
一意の値に変更し、この段階に引き続く諸段階においてあたかもrの値が適当に
変更されているかのごとくこれらの諸段階を解釈する。この段階での処理に影響
を与えることなく計算式fは選択された元rの値と同一の有限体の値を有する定
数又は変数を偶然に含む可能性がある、ことに注意せよ。この段階に引き続くこ
れらの諸段階は、d’、j”のような「プライム付けされた」記号を最初から含
まない計算式f、に依存する。計算式fが「プライム付け」記号で表される定数
又は変数を最初から含む場合には、各定数又は変数のプライム付け記号を一意の
プライム付けされていない記号に変更、置換する。この処理段階に引き続く置換
段階は、プライム付け記号を含むソース計算式を使用する。プライム付け記号を
含むソース計算式は、非プライム付記号との整合を本発明においては規約上許容
されない。xのような非プライム付け記号含むソース計算式は、定数又は変数の
プライム付け又は非プライム付け記号のいずれか一方との整合を本発明において
は規約上許容される。 (2) 全てのソース計算式xをターゲット計算式x’によって置換することに
より、計算式fを計算式f1に変換する。この置換において、xは計算式f内の 変数又は定数を表す。この置換により、計算式f内の全ての変数及び定数がプラ
イム付け記号に置換される。この置換の実行は計算式f内に存在する係数には影
響を与えない、ことに注意せよ。 (3) 全てのソース計算式x・yをターゲット計算式
供する。fを、有限個数の変数及び有限個数の体演算+、・、−、及び-1を含む
有限体F内で定義された有効な計算式、とする。本発明は計算式fの計算を最適
化する方法を提供するものであり、この方法は以下の段階的処理の実行を順次に
含む。 (1) rを有限体F内の任意の単一元として選択する。元rはある定数であり
、且つ本明細書で既に説明済みの一連の置換技法の適用を介して計算式fを新規
の計算式f’に変換する為に使用される。計算式fが記号rで表される定数又は
変数を既に含む場合は、この段階的処理のこの段階で記号rの値を有限体のある
一意の値に変更し、この段階に引き続く諸段階においてあたかもrの値が適当に
変更されているかのごとくこれらの諸段階を解釈する。この段階での処理に影響
を与えることなく計算式fは選択された元rの値と同一の有限体の値を有する定
数又は変数を偶然に含む可能性がある、ことに注意せよ。この段階に引き続くこ
れらの諸段階は、d’、j”のような「プライム付けされた」記号を最初から含
まない計算式f、に依存する。計算式fが「プライム付け」記号で表される定数
又は変数を最初から含む場合には、各定数又は変数のプライム付け記号を一意の
プライム付けされていない記号に変更、置換する。この処理段階に引き続く置換
段階は、プライム付け記号を含むソース計算式を使用する。プライム付け記号を
含むソース計算式は、非プライム付記号との整合を本発明においては規約上許容
されない。xのような非プライム付け記号含むソース計算式は、定数又は変数の
プライム付け又は非プライム付け記号のいずれか一方との整合を本発明において
は規約上許容される。 (2) 全てのソース計算式xをターゲット計算式x’によって置換することに
より、計算式fを計算式f1に変換する。この置換において、xは計算式f内の 変数又は定数を表す。この置換により、計算式f内の全ての変数及び定数がプラ
イム付け記号に置換される。この置換の実行は計算式f内に存在する係数には影
響を与えない、ことに注意せよ。 (3) 全てのソース計算式x・yをターゲット計算式
【外38】 によって置換することにより、計算式f1を計算式f2に変換する。この置換にお
いて、x、yはプライム付け記号のみを含むはずのf1の部分計算式を表し、記 号
いて、x、yはプライム付け記号のみを含むはずのf1の部分計算式を表し、記 号
【外39】 は体Fにおける前述の体乗算演算を表す為の代替記号として使用される。この段
階の目的は、計算式f内に存在する元々の演算子・の全てを
階の目的は、計算式f内に存在する元々の演算子・の全てを
【外40】 とラベル付けすることにより、これらの元々の演算子・とこの方法の以下の段階
中で変換された計算式内に導入されるであろう演算子・とを区別する、ことであ
る。 (4) 全てのソース計算式x-1をターゲット計算式x-1・r2によって置換す ることにより、計算式f2を計算式f3に変換する。この置換において、xはf2 の部分計算式を表す。 (5) 全てのソース計算式
中で変換された計算式内に導入されるであろう演算子・とを区別する、ことであ
る。 (4) 全てのソース計算式x-1をターゲット計算式x-1・r2によって置換す ることにより、計算式f2を計算式f3に変換する。この置換において、xはf2 の部分計算式を表す。 (5) 全てのソース計算式
【外41】 をターゲット計算式x・y・r-1によって置換することにより、計算式f3を計 算式f4に変換する。この置換において、x、yはf3の部分計算式を表す。 (6) 全てのソース計算式x’をターゲット計算式x・rによって置換するこ
とにより、計算式f4を計算式f’に変換する。この置換においてx’は、特に 非プライム付けの定数rを全て除外した計算式f3内のプライム付け変数又はプ ライム付け定数、を表す。この段階の目的は、全てのプライム付け記号をそのr
倍した非プライム付け形式に置換することである。 上記の段階的処理の完了時には、計算式fは新規の計算式f’に変換されてい
る。本発明においては、条件f=f’・r-1が保証されるように上記の段階的処
理の諸段階が慎重に特定される。これを検証する為に、f=x+y、f=x−y
、f=x・y、及びf=x-1(ここでx、yはFの元)である四つの特定の場合
に関してその変換結果を例証する。一般的にはこうした変換結果は、体の交換性
、結合性、及び分配性に由来するものである。場合1 変換された加算演算 f=x+yとする。本発明の置換技法を計算式fに適用すると、変換結果の計
算式f’はf’=x・r+y・rとなる。f=f’・r-1を検証する為には、
とにより、計算式f4を計算式f’に変換する。この置換においてx’は、特に 非プライム付けの定数rを全て除外した計算式f3内のプライム付け変数又はプ ライム付け定数、を表す。この段階の目的は、全てのプライム付け記号をそのr
倍した非プライム付け形式に置換することである。 上記の段階的処理の完了時には、計算式fは新規の計算式f’に変換されてい
る。本発明においては、条件f=f’・r-1が保証されるように上記の段階的処
理の諸段階が慎重に特定される。これを検証する為に、f=x+y、f=x−y
、f=x・y、及びf=x-1(ここでx、yはFの元)である四つの特定の場合
に関してその変換結果を例証する。一般的にはこうした変換結果は、体の交換性
、結合性、及び分配性に由来するものである。場合1 変換された加算演算 f=x+yとする。本発明の置換技法を計算式fに適用すると、変換結果の計
算式f’はf’=x・r+y・rとなる。f=f’・r-1を検証する為には、
【数40】 に留意すれば良い。場合2 変換された減算演算 f=r−yとする。本発明の置換技法を計算式fに適用すると、変換結果の計
算式f’はf’=x・r−y・rとなる。f=f’・r-1を検証する為には、
算式f’はf’=x・r−y・rとなる。f=f’・r-1を検証する為には、
【数41】 に留意すれば良い。場合3 変換された乗算演算 f=x・yとする。本発明の置換技法を計算式fに適用すると、変換結果の計
算式f’はf’=(x・r)・(y・r)・r-1となる。f=f’・r-1を検証
する為には、
算式f’はf’=(x・r)・(y・r)・r-1となる。f=f’・r-1を検証
する為には、
【数42】 に留意すれば良い。場合4 変換された逆演算 f=x-1とする。本発明の置換技法を計算式fに適用すると、変換結果の計算
式f’はf’=(x・r)-1・r2となる。f=f’・r-1を検証する為には、
式f’はf’=(x・r)-1・r2となる。f=f’・r-1を検証する為には、
【数43】 に留意すれば良い。
【0075】 従って本発明は、有限体F内の有限個数の体演算を含む計算式fをf’・r-1 の形に変換する方法を提供する。更に、本発明により構成された計算式f’・r -1 はモントゴメリー正準形式であることが保証されている。これを検証する為に
は、以下の条件(i)、(ii)、に留意すれば良い。即ち、(i)元々の計算式f
がx・yの形の部分計算式を含む場合はそのような部分計算式はモントゴメリー
正準形式である(x・r)・(y・r)・r-1の形に変換される、ことが本発明
の方法による置換段階により保証されている。(ii)変換された部分計算式内に
本発明の方法による置換段階により新規の乗算演算が導入される場合は常に、そ
のような乗算演算は常にrの冪である単一の追加的オペランドを付随して、自身
が導入された部分計算式のモントゴメリー正準形式性を維持する。
は、以下の条件(i)、(ii)、に留意すれば良い。即ち、(i)元々の計算式f
がx・yの形の部分計算式を含む場合はそのような部分計算式はモントゴメリー
正準形式である(x・r)・(y・r)・r-1の形に変換される、ことが本発明
の方法による置換段階により保証されている。(ii)変換された部分計算式内に
本発明の方法による置換段階により新規の乗算演算が導入される場合は常に、そ
のような乗算演算は常にrの冪である単一の追加的オペランドを付随して、自身
が導入された部分計算式のモントゴメリー正準形式性を維持する。
【0076】 Fの精確な性質、計算式f内の乗算演算の個数、及びf’の計算に含まれる演
算の精確な個数と性質によっては、計算式f’・r-1を計算した方が計算式fを
直接計算するよりも効率的であり得る。このことは、体FがGF(p)又はGF
(2k)のいずれか一方のメンバである場合は特にその可能性が高い。その理由 は、そのような場合はモントゴメリーアルゴリズムはモントゴメリー正準形式で
ある計算式f’・r-1の計算に特に容易に適用され得て、計算式fが値評価され
た場合の値の最適化された計算を保証するからである。
算の精確な個数と性質によっては、計算式f’・r-1を計算した方が計算式fを
直接計算するよりも効率的であり得る。このことは、体FがGF(p)又はGF
(2k)のいずれか一方のメンバである場合は特にその可能性が高い。その理由 は、そのような場合はモントゴメリーアルゴリズムはモントゴメリー正準形式で
ある計算式f’・r-1の計算に特に容易に適用され得て、計算式fが値評価され
た場合の値の最適化された計算を保証するからである。
【0077】 節G 本発明は又、「射影座標」と共に使用され得る。この射影座標は逆演算を実行
する必要性を取り除く為に利用される。 例えば、前述してきたアフィン座標においては二個の座標値(x1,y1)を必
要とするのみであるが、射影座標においては楕円曲線群G上の一点は三個の座標
値(x1,y1,z1)を有する。 例えば、GF(2k)上で定義された楕円曲線上の射影座標:
する必要性を取り除く為に利用される。 例えば、前述してきたアフィン座標においては二個の座標値(x1,y1)を必
要とするのみであるが、射影座標においては楕円曲線群G上の一点は三個の座標
値(x1,y1,z1)を有する。 例えば、GF(2k)上で定義された楕円曲線上の射影座標:
【数44】 で表現された別個の二点P、Qに関して、以下の体加算演算ルール:
【数45】 を用いた楕円曲線上での二点の加算演算の結果の射影座標は、
【数46】 となる。 この計算には13個の体乗算演算が必要であるが、体逆演算は全く必要としな
い。 同様に、2Pに関する倍加算演算ルールは、
い。 同様に、2Pに関する倍加算演算ルールは、
【数47】 のように与えられる。 この計算には7個の体乗算演算が必要であるが、体逆演算は全く必要としない
。 従って、射影座標の利用により逆演算の必要性は取り除かれる。しかしながら
その代償として、点Pを表現する為の三個のGF(2k)座標値の格納と余分な 数個の乗算演算の実行が必要になる。 本発明は又、射影座標と連携して使用され得る。この場合、体加算演算ルール
は以下のように変更される。
。 従って、射影座標の利用により逆演算の必要性は取り除かれる。しかしながら
その代償として、点Pを表現する為の三個のGF(2k)座標値の格納と余分な 数個の乗算演算の実行が必要になる。 本発明は又、射影座標と連携して使用され得る。この場合、体加算演算ルール
は以下のように変更される。
【数48】 同様に、2Pに関する倍加算演算ルールは以下のように変更される。
【数49】
【0078】 実装 本発明は、任意の従来型の又は汎用PCコンピュータシステム上で実装され得
る。本発明は又、インターネットを含めた任意のネットワークシステムと連携し
て使用され得る。本発明を実装する為のコンピュータシステムの好適実施例は、
ウィンドウズNT4.0を走行するインテルペンティアムIIPC233MHzで
ある。 本発明は、C及びジャバを含めた任意のプログラム言語において実装され得る
。本発明を実装するのに適切な擬似コードの例を以下に挙げる。 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 設定:a,b: 楕円曲線(EC)のパラメータ F: ECが基礎とする体 GF(p)又はGF(2k)の一方 *: 体乗算(field multiplication) +: 体加算(field addition) −: 体減算(field subtraction) -1: 体逆算(field inversion) P=(P(x),P(y)): EC上の点 P(x)及びP(y)はアフィン座標 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ アルゴリズム識別子: 点指数化(Exp Point) 入力: e: kビットの整数 P: EC上の点、P=(P(x),P(y)) 出力: Q: EC上の点、Q=(Q(x),Q(y)) Q: =eP=(P+P+...+P) (Pのe倍) 機能 点指数化 開始 /* rを用いてPをP’に変換 */ P’(x)=P(x)*r P’(y)=P(y)*r /* 無限遠点O’から開始 */ Q’=O’ /* 二元法ループ */ i=k−1から0までに対して Q’:=(Q’)の点倍加算(Double Point (Q')) e-i=1ならばQ’:=(Q’,P’)の点加算 を実行 /* rを用いてQ’を Qに変換 */ Q(x)=Q’(x)*r-1 Q(y)=Q’(y)*r-1 リターンQ 終了 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ アルゴリズム識別子: 点加算(Add Point) 入力: P’: EC上の変換点 Q’: EC上の変換点 出力: T’: EC上の変換点 EC点加算ルールを用いてT’:= P’+Q’ 機能 点加算 開始 /* 基礎体(underlying field)がGF(p)ならば */ ラムダ’=((Q’(y)−P’(y))、(Q’(x)−P’(x)の逆
算)の乗算 T’(x)=(ラムダ’,ラムダ’)の乗算−P’(x)−Q’(x) T’(y)=(ラムダ’,(P’(x)−T’(x)))の乗算−P’(y
) リターンT /* 基礎体がGF(2k)ならば */ ラムダ’=((P’(y)+Q’(y))、(P’(x)+Q’(x))の
逆算)の乗算 T’(x)=(ラムダ’,ラムダ’)の乗算+ラムダ’+P’(x)+Q’
(x)+a’ T’(y)=(ラムダ’,(P’(x)+T’(x)))の乗算+T’(x
)+P’(y) リターンT 終了 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ アルゴリズム識別子: 点倍加算(Double Point) 入力: P’: EC上の変換点 出力: T’: EC上の変換点 EC点倍加算ルールを用いてT’:= P’+P 機能 点倍加算 開始 /* 基礎体がGF(p)ならば */ ラムダ’=(3P’(x),P’(x))の乗算+a’)、(2P’(y)
)の逆算)の乗算 T’(x)=(ラムダ’,ラムダ’)の乗算−2P’(x) T’(y)=(ラムダ’,(P’(x)−T’(x)))の乗算−P’(y
) リターンT /* その他、基礎体がGF(2k)ならば */ T’(x)=(P’(x),P’(x))の乗算+ (b’,(P’(x),P’(x))の逆算の乗算)の乗算 T’(y)=(P’(x),P’(x))の乗算+ (P’(x)+(P’(y),P’(x)の逆算)の乗算,T’(x))の乗算
+T’(x) リターンT 終了 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ アルゴリズム識別子: 逆算(Invense) 入力: u: 体の元 出力: t: 体の元 機能 逆算 開始 t=u-1*r2 リターンt 終了 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ アルゴリズム識別子: 乗算(Multiply) 入力: u、v: 体の元 出力: t: 体の元 機能 乗算 開始 t=u*v*r-1 リターンt 終了 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
る。本発明は又、インターネットを含めた任意のネットワークシステムと連携し
て使用され得る。本発明を実装する為のコンピュータシステムの好適実施例は、
ウィンドウズNT4.0を走行するインテルペンティアムIIPC233MHzで
ある。 本発明は、C及びジャバを含めた任意のプログラム言語において実装され得る
。本発明を実装するのに適切な擬似コードの例を以下に挙げる。 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 設定:a,b: 楕円曲線(EC)のパラメータ F: ECが基礎とする体 GF(p)又はGF(2k)の一方 *: 体乗算(field multiplication) +: 体加算(field addition) −: 体減算(field subtraction) -1: 体逆算(field inversion) P=(P(x),P(y)): EC上の点 P(x)及びP(y)はアフィン座標 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ アルゴリズム識別子: 点指数化(Exp Point) 入力: e: kビットの整数 P: EC上の点、P=(P(x),P(y)) 出力: Q: EC上の点、Q=(Q(x),Q(y)) Q: =eP=(P+P+...+P) (Pのe倍) 機能 点指数化 開始 /* rを用いてPをP’に変換 */ P’(x)=P(x)*r P’(y)=P(y)*r /* 無限遠点O’から開始 */ Q’=O’ /* 二元法ループ */ i=k−1から0までに対して Q’:=(Q’)の点倍加算(Double Point (Q')) e-i=1ならばQ’:=(Q’,P’)の点加算 を実行 /* rを用いてQ’を Qに変換 */ Q(x)=Q’(x)*r-1 Q(y)=Q’(y)*r-1 リターンQ 終了 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ アルゴリズム識別子: 点加算(Add Point) 入力: P’: EC上の変換点 Q’: EC上の変換点 出力: T’: EC上の変換点 EC点加算ルールを用いてT’:= P’+Q’ 機能 点加算 開始 /* 基礎体(underlying field)がGF(p)ならば */ ラムダ’=((Q’(y)−P’(y))、(Q’(x)−P’(x)の逆
算)の乗算 T’(x)=(ラムダ’,ラムダ’)の乗算−P’(x)−Q’(x) T’(y)=(ラムダ’,(P’(x)−T’(x)))の乗算−P’(y
) リターンT /* 基礎体がGF(2k)ならば */ ラムダ’=((P’(y)+Q’(y))、(P’(x)+Q’(x))の
逆算)の乗算 T’(x)=(ラムダ’,ラムダ’)の乗算+ラムダ’+P’(x)+Q’
(x)+a’ T’(y)=(ラムダ’,(P’(x)+T’(x)))の乗算+T’(x
)+P’(y) リターンT 終了 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ アルゴリズム識別子: 点倍加算(Double Point) 入力: P’: EC上の変換点 出力: T’: EC上の変換点 EC点倍加算ルールを用いてT’:= P’+P 機能 点倍加算 開始 /* 基礎体がGF(p)ならば */ ラムダ’=(3P’(x),P’(x))の乗算+a’)、(2P’(y)
)の逆算)の乗算 T’(x)=(ラムダ’,ラムダ’)の乗算−2P’(x) T’(y)=(ラムダ’,(P’(x)−T’(x)))の乗算−P’(y
) リターンT /* その他、基礎体がGF(2k)ならば */ T’(x)=(P’(x),P’(x))の乗算+ (b’,(P’(x),P’(x))の逆算の乗算)の乗算 T’(y)=(P’(x),P’(x))の乗算+ (P’(x)+(P’(y),P’(x)の逆算)の乗算,T’(x))の乗算
+T’(x) リターンT 終了 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ アルゴリズム識別子: 逆算(Invense) 入力: u: 体の元 出力: t: 体の元 機能 逆算 開始 t=u-1*r2 リターンt 終了 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ アルゴリズム識別子: 乗算(Multiply) 入力: u、v: 体の元 出力: t: 体の元 機能 乗算 開始 t=u*v*r-1 リターンt 終了 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
【0079】 多くの参考文献が本発明の数学的背景を説明している。これらの参考文献には
以下のものが含まれる。P.L.モントゴメリー、トライアル分割無しのモジュ
ラー乗算演算、「計算数学」、44(170):519−521、四月、198
5、;D.E.クナス、「コンピュータプログラミング技術:半数値的アルゴリ
ズム」、第2巻、第2版、読み取り、MA:アディソンウェスリー、1981;
C.K.コク及びT.アカー、GF(2k)におけるモントゴメリー乗算演算、 「暗号化技術の選択領域に関する第3回年季研究会会報」95−106項、クイ
ーンズ大学、キングストン、オンタリオ、カナダ、8月15−16、1996;
C.K.コク及びT.アカー、GF(2k)における高速ソフトウェア指数関数 化、「コンピュータ算術演算に関する第13回シンポジウム会報」225−23
1項、アシロマル、カリフォルニア、7月6−9、1997、ロスアラミトス、
CA:IEEEコンピュータ協会出版;J.C.バジャド、L.S.ディジール
及びコルネラップ、RNSモントゴメリー乗算演算アルゴリズム、「コンピュー
タ算術演算に関する第13回シンポジウム会報」234−239項、アシロマル
、カリフォルニア、7月6−9、1997、ロスアラミトス、CA:IEEEコ
ンピュータ協会出版;D.R.スティンソン、「暗号化技術の理論と実践」、C
RC出版、1995;V.ミラー、暗号化技術における楕円曲線の利用、「暗号
化技術の進歩―暗号85会報」417−426項、ニューヨーク、NY:スプリ
ンガーヴェルラグ、1985;N.コブリッツ、楕円曲線暗号化システム、「計
算数学」、48:203−209、1987;N.コブリッツ、「数論と暗号化
技術に関する教程」、ニューヨーク、NY:スプリンガーヴェルラグ、1987
;A.J.メネゼス、「楕円曲線公開鍵暗号化システム」、ボストン、MA:ク
ルワー学術出版社、1993;R.L.リィベスト、A.シャミール及びL.ア
デルマン、ディジタル署名と公開鍵暗号化システムの実装方法、「ACM通信」
、21(2):120−126、1978;T.ベス、M.フリィシュ及びG.
J.サイモン、公開鍵暗号化技術:技術の現状と将来の方向性、スプリンガーヴ
ェルラグ、NY,1991;IEEE特別審議会P1363,審議ドラフト:I
EEE1363:RSA、ディフィー−ヘルマン及び関連する公開鍵暗号化に関
する規格(1995年は準備中);RSA研究所、今日の暗号化技術に関して頻
繁に為される質問に対する回答、3.0版、1996;G.B.アグニュー、R
.C.ムリン、I.M.オニズチャク及びS.A.ヴァンストーン、高速公開鍵
暗号化システムの一実装、暗号化技術会誌、3(2):63−79,1991.
これらの全ての公開文献は、その各個別公開文献が特定的且つ個別的に本明細書
で説明されたかのごとくの形態で、引用により本明細書中に併合される。
以下のものが含まれる。P.L.モントゴメリー、トライアル分割無しのモジュ
ラー乗算演算、「計算数学」、44(170):519−521、四月、198
5、;D.E.クナス、「コンピュータプログラミング技術:半数値的アルゴリ
ズム」、第2巻、第2版、読み取り、MA:アディソンウェスリー、1981;
C.K.コク及びT.アカー、GF(2k)におけるモントゴメリー乗算演算、 「暗号化技術の選択領域に関する第3回年季研究会会報」95−106項、クイ
ーンズ大学、キングストン、オンタリオ、カナダ、8月15−16、1996;
C.K.コク及びT.アカー、GF(2k)における高速ソフトウェア指数関数 化、「コンピュータ算術演算に関する第13回シンポジウム会報」225−23
1項、アシロマル、カリフォルニア、7月6−9、1997、ロスアラミトス、
CA:IEEEコンピュータ協会出版;J.C.バジャド、L.S.ディジール
及びコルネラップ、RNSモントゴメリー乗算演算アルゴリズム、「コンピュー
タ算術演算に関する第13回シンポジウム会報」234−239項、アシロマル
、カリフォルニア、7月6−9、1997、ロスアラミトス、CA:IEEEコ
ンピュータ協会出版;D.R.スティンソン、「暗号化技術の理論と実践」、C
RC出版、1995;V.ミラー、暗号化技術における楕円曲線の利用、「暗号
化技術の進歩―暗号85会報」417−426項、ニューヨーク、NY:スプリ
ンガーヴェルラグ、1985;N.コブリッツ、楕円曲線暗号化システム、「計
算数学」、48:203−209、1987;N.コブリッツ、「数論と暗号化
技術に関する教程」、ニューヨーク、NY:スプリンガーヴェルラグ、1987
;A.J.メネゼス、「楕円曲線公開鍵暗号化システム」、ボストン、MA:ク
ルワー学術出版社、1993;R.L.リィベスト、A.シャミール及びL.ア
デルマン、ディジタル署名と公開鍵暗号化システムの実装方法、「ACM通信」
、21(2):120−126、1978;T.ベス、M.フリィシュ及びG.
J.サイモン、公開鍵暗号化技術:技術の現状と将来の方向性、スプリンガーヴ
ェルラグ、NY,1991;IEEE特別審議会P1363,審議ドラフト:I
EEE1363:RSA、ディフィー−ヘルマン及び関連する公開鍵暗号化に関
する規格(1995年は準備中);RSA研究所、今日の暗号化技術に関して頻
繁に為される質問に対する回答、3.0版、1996;G.B.アグニュー、R
.C.ムリン、I.M.オニズチャク及びS.A.ヴァンストーン、高速公開鍵
暗号化システムの一実装、暗号化技術会誌、3(2):63−79,1991.
これらの全ての公開文献は、その各個別公開文献が特定的且つ個別的に本明細書
で説明されたかのごとくの形態で、引用により本明細書中に併合される。
【0080】 (産業上の利用可能性) 本発明の原理を好適実施例に関して説明、例示したが、これらの原理から乖離
することなく本発明がその構成と詳細において変更され得ることは明白であろう
。従って、上記の詳細な好適実施例は単に例示目的の為のものに過ぎず本発明の
請求範囲を限定する性質のものではない、ことが理解されるべきである。むしろ
、以下の請求範囲の範囲と精神の範疇内に存在しこれらと同等な諸々の実施例を
本発明として請求するものである。
することなく本発明がその構成と詳細において変更され得ることは明白であろう
。従って、上記の詳細な好適実施例は単に例示目的の為のものに過ぎず本発明の
請求範囲を限定する性質のものではない、ことが理解されるべきである。むしろ
、以下の請求範囲の範囲と精神の範疇内に存在しこれらと同等な諸々の実施例を
本発明として請求するものである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GE,GH,GM,HU ,ID,IL,IS,JP,KE,KG,KP,KR, KZ,LC,LK,LR,LS,LT,LU,LV,M D,MG,MK,MN,MW,MX,NO,NZ,PL ,PT,RO,RU,SD,SE,SG,SI,SK, SL,TJ,TM,TR,TT,UA,UG,US,U Z,VN,YU,ZW (72)発明者 コク、セティン、カヤ アメリカ合衆国 オレゴン、コアバリス、 ノースウェスト セブンティーンス スト リート 1250 (72)発明者 ビーハン、ジョン、ジェイ、ジュニア アメリカ合衆国 カリフォルニア、パサデ ナ、チェスター アベニュー 170、アパ ートメント 12 (72)発明者 サデジイ、ベーザド アメリカ合衆国 カリフォルニア、パサデ ナ、サウス チェスター アベニュー 170、アパートメント 12 Fターム(参考) 5J104 AA09 AA18 AA25 JA25 NA16 PA07
Claims (23)
- 【請求項1】 任意整数eと、体F上で定義されたG⊂F×Fである楕円曲
線群G上の点P、を使用し、楕円曲線点乗算積Q=ePを生成する方法であって
、 ある集合G’を構成する段階と、 (a) 点P∈Gに対してT-1(T(P))=P、(b) 【数1】 ここにP’=T(P)、が満足されるように、Gから前記集合G’内への写像T
、G’からG上への写像T-1、及びG’上で定義される 【外1】 を構成する段階と、 前記写像Tを用いて前記点Pを前記点P’に変換し、前記点P’上で 【外2】 を実行して点Q’=eP’を求め、更に前記写像T-1を用いて前記点Q’を前記
楕円曲線点乗算積Qに変換する、ことにより前記積Qを生成する段階と、 前記積Qを暗号化演算において使用する段階、から成ることを特徴とする方法
。 - 【請求項2】 Nを整数とするP1、P2、...PN∈Gに対して 【数2】 の計算がP1+P2+...+PNの計算より効率的であるように、前記集合G、 前記集合G’、前記写像T、 【外3】 及び前記写像T-1が構成される、ことを特徴とする請求項1記載の方法。
- 【請求項3】 前記体Fの任意の元rを選択し次にT:(x,y)→(x・
r,y・r)、ここにP=(x,y)∈G、・はFにおける前記乗算演算子、と
定義することにより前記写像Tが構成され、 T:(u,v)(u・r-1,v・r-1)、ここにP’=(u,v)∈G’、と
定義することにより前記写像Tが構成される、ことを特徴とする請求項1記載の
方法。 - 【請求項4】 前記体FはGF(p)のメンバである、ことを特徴とする請
求項3記載の方法。 - 【請求項5】 前記元rはpより大なる2の最小冪として選択される、こと
を特徴とする請求項4記載の方法。 - 【請求項6】 前記元rは素数の積として選択される、ことを特徴とする請
求項4記載の方法。 - 【請求項7】 前記集合G’における二点の加算演算が 【数3】 により与えられるように 【外4】 は構成される、ことを特徴とする請求項4記載の方法。
- 【請求項8】 前記集合G’における一点の倍加算演算が 【数4】 により与えられるように 【外5】 は構成される、ことを特徴とする請求項4記載の方法。
- 【請求項9】 前記点P’上で 【外6】 を実行して点Q’=eP’を求める為にGF(p)におけるモントゴメリーアル
ゴリズムが利用される、ことを特徴とする請求項4記載の方法。 - 【請求項10】 前記体FはGF(2k)のメンバである、ことを特徴とす る請求項3記載の方法。
- 【請求項11】 前記集合G’における二点の加算演算が 【数5】 により与えられるように 【外7】 は構成される、ことを特徴とする請求項10記載の方法。
- 【請求項12】 一点の倍加算演算が 【数6】 により与えられるように 【外8】 は構成される、ことを特徴とする請求項10記載の方法。
- 【請求項13】 前記元rはxk mod n(x)として選択され、ここにn (x)は前記体GF(2k)を生成する既約多項式である、ことを特徴とする請 求項10記載の方法。
- 【請求項14】 前記点P’上で 【外9】 を実行して点Q’=eP’を求める為にGF(2k)におけるモントゴメリーア ルゴリズムが利用される、ことを特徴とする請求項10記載の方法。
- 【請求項15】 前記点P’上で 【外10】 を実行する段階では二元法を利用する、ことを特徴とする請求項1記載の方法。
- 【請求項16】 前記点P’上で 【外11】 を実行する段階ではM−ary法を利用する、ことを特徴とする請求項1記載の
方法。 - 【請求項17】 前記集合G及びG’の前記元は射影座標を用いて実装され
る、ことを特徴とする請求項1記載の方法。 - 【請求項18】 x1,...,xi,...,xnを任意の有限体Fの全ての元と して前記有限体F上の有限個数の任意の体演算を含む計算式f=f(x1,...,
xi,...,xn)の計算を最適化する方法であって、 ある定数元rを前記有限体Fから選択する段階と、 xを前記計算式f内の変数又は定数としてf内の全てのxをx’により置換
して計算式f1を生成し x、yを前記計算式f1の部分計算式としてf1内の全てのx・yを 【外12】 により置換して計算式f2を生成し xを前記計算式f2の部分計算式としてf2内の全てのx-1をx-1・r2によ り置換して計算式f3を生成し x、yを前記計算式f3の部分計算式としてf3内の全ての 【外13】 をx・y・r-1により置換して計算式f4を生成し xを前記計算式f4内のプライム付け変数又はプライム付け定数としてf4内
の全てのx’をx・rにより置換して計算式f’を生成することにより 前記計算式f=f(x1,...,xi,...,xn)を前記計算式f’=f’(x1 ’,...,xi,...,xn’)に変換する段階と、 f=f’・m-1を求める段階と、 f’・m-1を使用して暗号化演算においてfを計算する段階、から成ることを
特徴とする方法。 - 【請求項19】 前記集合FがGF(p)のメンバである場合には前記各x
’・y’・m-1はモントゴメリーアルゴリズムを用いて計算される、ことを特徴
とする請求項18記載の方法。 - 【請求項20】 前記集合FがGF(2k)のメンバである場合には前記各 x’・y’・m-1はGF(2k)におけるモントゴメリーアルゴリズムを用いて 計算される、ことを特徴とする請求項18記載の方法。
- 【請求項21】 体F上で定義されたG⊂F×Fである楕円曲線群G上の点
Pを使用し、楕円曲線点加算和Q=P+Pを生成する方法であって、 ある集合G’を構成する段階と、 (a) 点P∈Gに対してT-1(T(P))=P、(b) 【数7】 ここにP’=T(P)、が満足されるように、Gから前記集合G’内への写像T
、G’からG上への写像T-1、及びG’上で定義される 【外14】 を構成する段階と、 前記写像Tを用いて前記点Pを前記点P’に変換し、前記点P’と前記点P’
上で 【外15】 を実行して点Q’を求め、更に前記写像T-1を用いて前記点Q’を前記楕円曲線
点加算和Qに変換する、ことにより前記和Qを生成する段階と、 前記和Qを暗号化演算において使用する段階、から成ることを特徴とする方法
。 - 【請求項22】 体F上で定義されたG⊂F×Fである楕円曲線群G上の点
P及びSを使用し、楕円曲線点加算和Q=P+Sを生成する方法であって、 ある集合G’を構成する段階と、 (a) 点P∈Gに対してT-1(T(P))=P、(b) 【数8】 ここにP’=T(P)及びS’=T(S)、が満足されるように、Gから前記集
合G’内への写像T、G’からG上への写像T-1、及びG’上で定義される 【外16】 を構成する段階と、 前記写像Tを用いて前記点Pを前記点P’に変換し、前記写像Tを用いて前記
点Sを前記点S’に変換し、前記点P’と前記点S’上で 【外17】 を実行して点Q’を求め、更に前記写像T-1を用いて前記点Q’を前記楕円曲線
点加算和Qに逆変換する、ことにより前記和Qを生成する段階と、 前記和Qを暗号化演算において使用する段階、から成ることを特徴とする方法
。 - 【請求項23】 任意整数eと、体F上で定義されたG⊂F×Fである楕円
曲線群G上の点P、を使用し、楕円曲線点乗算積Q=ePを生成する装置であっ
て、 ある集合G’を構成する手段と、 (a) 点P∈Gに対してT-1(T(P))=P、(b) 【数9】 ここにP’=T(P)、が満足されるように、Gから前記集合G’内への写像T
、G’からG上への写像T-1、及びG’上で定義される 【外18】 を構成する手段と、 前記写像Tを用いて前記点Pを前記点P’に変換し、前記点P’上で 【外19】 を実行して点Q’=eP’を求め、更に前記写像T-1を用いて前記点Q’を前記
楕円曲線点乗算積Qに変換する、ことにより前記積Qを生成する手段と、 前記積Qを暗号化演算において使用する手段、を備えることを特徴とする装置
。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6931497P | 1997-12-05 | 1997-12-05 | |
US60/069,314 | 1997-12-05 | ||
PCT/US1998/025824 WO1999030458A1 (en) | 1997-12-05 | 1998-12-04 | Transformation methods for optimizing elliptic curve cryptographic computations |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001526416A true JP2001526416A (ja) | 2001-12-18 |
Family
ID=22088145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000524894A Pending JP2001526416A (ja) | 1997-12-05 | 1998-12-04 | 楕円曲線暗号化演算の最適化用変換方法 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1038371A4 (ja) |
JP (1) | JP2001526416A (ja) |
CN (1) | CN1280726A (ja) |
AU (1) | AU758621B2 (ja) |
BR (1) | BR9815161A (ja) |
CA (1) | CA2310588A1 (ja) |
WO (1) | WO1999030458A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307935B1 (en) * | 1991-09-17 | 2001-10-23 | Apple Computer, Inc. | Method and apparatus for fast elliptic encryption with direct embedding |
US6343305B1 (en) | 1999-09-14 | 2002-01-29 | The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Methods and apparatus for multiplication in a galois field GF (2m), encoders and decoders using same |
FR2821945B1 (fr) * | 2001-03-12 | 2003-05-30 | Gemplus Card Int | Procede de protection contre les attaques par mesure de courant ou de rayonnement electromagnetique |
FR2821944B1 (fr) * | 2001-03-12 | 2003-05-30 | Gemplus Card Int | Procede de protection contre les attaques par mesure de courant ou de rayonnement electromagnetique |
FR2824210B1 (fr) * | 2001-04-27 | 2003-05-30 | Gemplus Card Int | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme cryptographique du type a cle publique sur une courbe elliptique |
FR2824653B1 (fr) * | 2001-05-11 | 2003-08-08 | Gemplus Card Int | Dispositif destine a realiser des calculs d'exponentiation appliques a des points d'une courbe elliptique |
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 |
CN100440776C (zh) * | 2002-11-29 | 2008-12-03 | 北京华大信安科技有限公司 | 椭圆曲线签名和验证签名方法和装置 |
US7499544B2 (en) | 2003-11-03 | 2009-03-03 | Microsoft Corporation | Use of isogenies for design of cryptosystems |
US7664957B2 (en) | 2004-05-20 | 2010-02-16 | Ntt Docomo, Inc. | Digital signatures including identity-based aggregate signatures |
CN101065924B (zh) * | 2004-11-24 | 2011-06-08 | 惠普开发有限公司 | 具有加密功能的智能卡和使用这种卡的方法和系统 |
US7602907B2 (en) * | 2005-07-01 | 2009-10-13 | Microsoft Corporation | Elliptic curve point multiplication |
CN100414492C (zh) * | 2005-11-04 | 2008-08-27 | 北京浦奥得数码技术有限公司 | 一种椭圆曲线密码系统及实现方法 |
US8311214B2 (en) * | 2006-04-24 | 2012-11-13 | Motorola Mobility Llc | Method for elliptic curve public key cryptographic validation |
CN101079701B (zh) * | 2006-05-22 | 2011-02-02 | 北京华大信安科技有限公司 | 高安全性的椭圆曲线加解密方法和装置 |
US8548160B2 (en) * | 2010-01-13 | 2013-10-01 | Microsoft Corporation | Determination of pairings on a curve using aggregated inversions |
CN103078732B (zh) * | 2013-01-08 | 2015-10-21 | 武汉大学 | 一种素域椭圆曲线加密的点乘加速电路 |
CN104601322A (zh) * | 2013-10-31 | 2015-05-06 | 上海华虹集成电路有限责任公司 | 用于密码芯片中三元扩域的蒙哥马利阶梯算法 |
CN104267926B (zh) * | 2014-09-29 | 2018-03-09 | 北京宏思电子技术有限责任公司 | 获取椭圆曲线密码数据的方法和装置 |
CN108337091A (zh) * | 2018-03-22 | 2018-07-27 | 北京中电华大电子设计有限责任公司 | 一种SM9椭圆曲线扭曲线上特定点的p倍点计算方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5271061A (en) * | 1991-09-17 | 1993-12-14 | Next Computer, Inc. | Method and apparatus for public key exchange in a cryptographic system |
US5159632A (en) * | 1991-09-17 | 1992-10-27 | Next Computer, Inc. | Method and apparatus for public key exchange in a cryptographic system |
US5373560A (en) * | 1991-12-06 | 1994-12-13 | Schlafly; Roger | Partial modular reduction method |
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 |
US5497423A (en) * | 1993-06-18 | 1996-03-05 | Matsushita Electric Industrial Co., Ltd. | Method of implementing elliptic curve cryptosystems in digital signatures or verification and privacy communication |
US5577124A (en) * | 1995-03-09 | 1996-11-19 | Arithmetica, Inc. | Multi-purpose high speed cryptographically secure sequence generator based on zeta-one-way functions |
US5854759A (en) * | 1997-05-05 | 1998-12-29 | Rsa Data Security, Inc. | Methods and apparatus for efficient finite field basis conversion |
CA2321478A1 (en) * | 1998-02-18 | 1999-08-26 | Erwin Hess | Method and device for cryptographic processing with the aid or an elliptic curve on a computer |
-
1998
- 1998-12-04 AU AU21983/99A patent/AU758621B2/en not_active Ceased
- 1998-12-04 CN CN98811822A patent/CN1280726A/zh active Pending
- 1998-12-04 BR BR9815161-4A patent/BR9815161A/pt not_active Application Discontinuation
- 1998-12-04 JP JP2000524894A patent/JP2001526416A/ja active Pending
- 1998-12-04 EP EP98965973A patent/EP1038371A4/en not_active Withdrawn
- 1998-12-04 CA CA002310588A patent/CA2310588A1/en not_active Abandoned
- 1998-12-04 WO PCT/US1998/025824 patent/WO1999030458A1/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP1038371A1 (en) | 2000-09-27 |
EP1038371A4 (en) | 2002-01-30 |
WO1999030458A1 (en) | 1999-06-17 |
BR9815161A (pt) | 2000-10-10 |
CA2310588A1 (en) | 1999-06-17 |
AU2198399A (en) | 1999-06-28 |
AU758621B2 (en) | 2003-03-27 |
CN1280726A (zh) | 2001-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001526416A (ja) | 楕円曲線暗号化演算の最適化用変換方法 | |
Kim et al. | Optimized method for computing odd-degree isogenies on Edwards curves | |
US6266688B1 (en) | Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed | |
US20080095357A1 (en) | Cryptographic Computation Method, Cryptographic System, and Computer Program | |
Longa et al. | Four-dimensional gallant–lambert–vanstone scalar multiplication | |
Kim et al. | New hybrid method for isogeny-based cryptosystems using Edwards curves | |
Farwa et al. | A novel application of elliptic curves in the dynamical components of block ciphers | |
US7177422B2 (en) | Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program | |
Azarderakhsh et al. | EdSIDH: supersingular isogeny Diffie-Hellman key exchange on Edwards curves | |
JP2007041461A (ja) | 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 | |
Stogbauer | Efficient Algorithms for pairing-based cryptosystems | |
Larasati et al. | Depth optimization of FLT-based quantum inversion circuit | |
Chuengsatiansup et al. | Pairing-friendly twisted hessian curves | |
JP4599859B2 (ja) | 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム | |
Aranha et al. | Efficient software implementation of laddering algorithms over binary elliptic curves | |
Realpe-Muñoz et al. | High-performance elliptic curve cryptoprocessors over GF (2^ m) GF (2 m) on Koblitz curves | |
Chen et al. | Quantum circuits for hyperelliptic curve discrete logarithms over the Mersenne prime fields | |
Harb et al. | High-performance Pipelined FPGA Implementation of the Elliptic Curve Cryptography over GF (2n). | |
Karati | Binary Kummer Line | |
Kwon et al. | An efficient implementation of pairing-based cryptography on MSP430 processor | |
KR20090090881A (ko) | 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체 | |
JP2005316038A (ja) | 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびプログラム | |
Fan et al. | Constructing hyperelliptic covers for elliptic curves over quadratic extension fields | |
JP6777569B2 (ja) | ペアリング演算装置、ペアリング演算方法、およびプログラム | |
JPH10214262A (ja) | 逆元演算方法及び装置及び乗算方法及び乗算装置 |