JP2015166867A - 楕円曲線上のデータの暗号処理方法、対応する電子装置およびコンピュータ・プログラム・プロダクト - Google Patents

楕円曲線上のデータの暗号処理方法、対応する電子装置およびコンピュータ・プログラム・プロダクト Download PDF

Info

Publication number
JP2015166867A
JP2015166867A JP2015039856A JP2015039856A JP2015166867A JP 2015166867 A JP2015166867 A JP 2015166867A JP 2015039856 A JP2015039856 A JP 2015039856A JP 2015039856 A JP2015039856 A JP 2015039856A JP 2015166867 A JP2015166867 A JP 2015166867A
Authority
JP
Japan
Prior art keywords
elliptic curve
points
point
electronic device
obtaining
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
JP2015039856A
Other languages
English (en)
Inventor
ジョイェ,マルク
Joye Marc
ガンダール,ラビーン
Goundar Raveen
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2015166867A publication Critical patent/JP2015166867A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/726Inversion; Reciprocal calculation; Division of elements of a finite field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】楕円曲線上の少なくとも二つの点の加算の像に対応する別の点の座標を取得するためのパフォーマンスのよいデータの暗号処理方法を提供する。【解決手段】有限環である代数構造上で定義される同じ楕円曲線に属する少なくとも二つの点の各点は、少なくとも二つの座標によって表現される。方法は、楕円曲線と別の楕円曲線との間の同型のパラメータ化を取得する、パラメータ化はいくつかの構成パラメータを定義し、各構成パラメータはある範囲の可能な値をもつ段階と、少なくとも二つの点の座標の値の関数の形で構成パラメータを決定し、決定された構成パラメータを与える段階と、同型を通じた少なくとも二つの点の加算の像に対応する別の点の座標を取得する、別の点は別の楕円曲線に属し、該取得は、決定された構成パラメータのおかげで、代数構造における逆元計算なしに実行される段階と、を含む。【選択図】図1

Description

本発明は、暗号に、より詳細には楕円曲線暗号に関する。本開示は数多くの応用をもち、組み込みデバイスにおいて使われるのに好適である。より一般には、楕円曲線の使用に基づくすべての暗号プロトコルおよびアルゴリズムに適用できる。
本節は、以下で記述されるおよび/または特許請求される本発明のさまざまな側面に関係しうる技術のさまざまな側面を読者に紹介するために意図されたものである。この議論は、本発明のさまざまな側面のよりよい理解を容易にするために、読者に背景情報を提供する助けとなると信ずる。よって、これらの陳述は、従来技術の自認ではなく、この観点で読まれるべきであることは理解しておくべきである。
楕円曲線暗号(elliptic curve cryptography)は、通常のRSA暗号システム(指数関数より弱い安全性)に比べ、より小さな鍵サイズで高いレベルの安全性(指数関数的安全性)を提供する。ますます多くの人が小型電子装置に頼るにつれ、ECCの応用は日常生活において増加しつつある。より小さな鍵サイズはECCを、PDAやスマートカードのような制約されたデバイスにとって魅力的にする。ECCの効率性は、スカラー乗算(または点乗算)と呼ばれる演算によって支配される。問題は、(有限体または有限環上で定義される)楕円曲線上の点Pおよびスカラーkを与えられて、点kP、すなわちP+……+P(k−1回)をできるだけコスト効率よく生成するというものである。この問題は、冪乗の評価の自明な類推である。よって、ここでは、冪乗の高速評価の方法が、効率的な実装を得るために使用できる。
D.Bernstein et al., Explicit-Formulas Database、ウェブサイトhttp://www.hyperelliptic.org/EFD
楕円曲線群演算は、定義環におけるいくつかの演算を用いて表現できる。決定的な問題は、環演算の数を最小にする仕方で楕円曲線を表現する正しいモデルを見出すことになる。実際、楕円曲線は双有理変換の自由度を除いたところまで定義されるので、その表現のためには多くの可能な選択がある。しかしながら、座標および演算の数を爆発させないために、実際上は、低次元空間にある楕円曲線のモデルのみが考慮される。
さらに、点加算公式に関わる基本演算(つまり環加算/減算、環乗算および環逆元計算)は互いに等価ではない。特に、環逆元計算は、全体的なパフォーマンスに著しく影響しうるので、特別な注意を要する。楕円曲線を使う暗号アプリケーションでは、根底にある有限環における乗算に対する逆元計算の比は3ないし30の範囲になる。そのため、逆元計算のない点加算公式が特に関心があることになる。これは、(広く使われている同次およびヤコビアン座標を含む)射影表現に頼ることによって古典的に達成される。
さまざまな座標系を使う楕円曲線の数多くの有用な形およびそれらのコストが、非特許文献1にまとめられている。
楕円曲線上の点を表現するためにアフィン座標系が使われるとき、現在のところ、有限環おける逆元計算を使うことを防ぐ技法はない。スカラー乗算における環逆元計算をなくすことが、本技法のねらいである。提案される技法は、もちろん、点間で基本演算(加算)のみが実行される他のコンテキスト(ECDSAアルゴリズムの検証など)に適用されることができる。
本明細書における「一つの実施形態」、「ある実施形態」、「例示的実施形態」への言及は、記載される実施形態が特定の特徴、構造または特性を含むことを示すことがあるが、必ずしもすべての実施形態がその特定の特徴、構造または特性を含むとは限らない。さらに、そのような句は必ずしも同じ実施形態を参照しているのではない。さらに、ある特定の特徴、構造または特性がある実施形態との関連で記述されるとき、明示的に記載されているか否かによらず、そのような特徴、構造または特性を他の実施形態との関連で実施することは、当業者の知識の範囲内である。
本発明は、電子デバイスによって実行される、データの暗号学的処理の方法であって、有限環である代数構造上で定義される同じ楕円曲線に属する少なくとも二つの点を得ることを含む、方法に向けられる。各点は、少なくとも二つの座標によって表現される。本方法は:
・前記楕円曲線と別の楕円曲線との間の同型のパラメータ化を取得する段階であって、前記パラメータ化はいくつかの構成パラメータを定義し、各構成パラメータはある範囲の可能な値をもつ、段階と;
・前記少なくとも二つの点の座標の値の関数の形で前記構成パラメータを決定し、決定された構成パラメータを与える段階と;
・前記同型を通じた前記少なくとも二つの点の加算の像に対応する別の点の座標を取得する段階であって、前記別の点は前記別の楕円曲線に属し、該取得は、前記決定された構成パラメータのおかげで、前記代数構造における逆元計算なしに実行される、段階とを含む点で注目すべきである。
よって、同型のパラメータ化の構成パラメータの選択に応じて、点の加算における逆元計算の実行を避けることができる。該選択は、点の座標の値の関数の形で実行される。当業者は構成パラメータについてランダムな値を使ったであろうという事実のため、構成パラメータの選択は自明ではなかったことを注意しておくべきである。
ある好ましい実施形態では、本方法は、前記少なくとも二つの点が同一であるとき、前記加算が二倍演算であるという点で注目すべきである。
ある好ましい実施形態では、本方法は、各点がアフィン座標系において表現されるという点で注目すべきである。
ある好ましい実施形態では、本方法は、第一の楕円曲線に属する第一の点とのスカラー乗算演算において使用されるという点で注目すべきである。
ある好ましい実施形態では、本方法は、前記スカラー乗算演算の、最後の楕円曲線に属する出力点を、前記第一の楕円曲線に属する変換された出力点に変換する段階を含むという点で注目すべきである。
よって、提案される技法は、現状技術におけるような逆元計算演算を使わない。提案される方法は、楕円曲線上でのスカラー乗算の効率的な実装を可能にする。提案される技法は、点加算公式における逆元の計算を避ける方法として、曲線同型の使用に依拠する。おもしろいことに、提案される技法は、楕円曲線を表わすために使われるモデルが何であろうと、点を表わすために使われる座標系が何であろうと適用される。よって、提案される技法はアフィン表現、ヤコビアン表現などに適用されることができる。
ある好ましい実施形態では、本方法は、前記代数構造が2に等しい標数(characteristic)をもつ有限体であるという点で注目すべきである。
ある好ましい実施形態では、本方法は、前記代数構造が3に等しい標数をもつ有限体であるという点で注目すべきである。
ある好ましい実施形態では、本方法は、前記代数構造が素数p>3に等しい標数をもつ有限体であるという点で注目すべきである。
ある例示的な実装によれば、本方法の種々の段階は、コンピュータ・ソフトウェア・プログラム(単数または複数)によって実装され、該ソフトウェア・プログラムは、本開示に基づくリレー・モジュールのデータ・プロセッサによって実行されるよう設計され、本方法の種々の段階の実行を制御するよう設計されたソフトウェア命令によって実装される。
結果として、本開示のある側面は、コンピュータによってまたはデータ・プロセッサによって実行されるべきプログラムにも関する。このプログラムは、上述した方法の段階の実行を指令する命令を含む。
このプログラムは、いかなるプログラミング言語を使うこともでき、ソース・コード、オブジェクト・コードまたは部分的にコンパイルされた形のようなソース・コードとオブジェクト・コードの中間であるコードの形または他の任意の望ましい形であることができる。
本開示は、データ・プロセッサが読むことができ、上述したプログラムの命令を含む情報媒体にも関する。
情報媒体は、プログラムを記憶することのできるいかなるエンティティまたはデバイスであることもできる。たとえば、媒体は、ROM(これは「Read Only Memory(読み出し専用メモリ)」の略)、たとえばCD-ROM(これは「Compact Disc-Read Only Memory(コンパクト・ディスク‐読み出し専用メモリ)」の略)またはマイクロ電子回路ROMのような、あるいはまた磁気記録手段、たとえばフロッピー(登録商標)ディスクまたはハードディスクドライブのような記憶手段を含むことができる。
さらに、情報媒体は、電気または光ケーブルを通じて伝達されることのできる電気または光信号のような伝送可能キャリアであってもよい。プログラムは、特に、インターネット型ネットワークにダウンロードされることができる。
あるいはまた、情報媒体はプログラムが組み込まれることのできる集積回路であることができる。該回路は、問題の方法を実行するまたは問題の方法の実行において使用されることに適応されている。
ある実施形態によれば、本開示のある実施形態は、ソフトウェアおよび/またはハードウェア・コンポーネントによって実装される。この観点から、本稿では、用語「モジュール」は、ソフトウェア・コンポーネントおよびハードウェア・コンポーネントの両方に、あるいはハードウェアおよびソフトウェア・コンポーネントのセットに対応することができる。
ソフトウェア・コンポーネントは、一つまたは複数のコンピュータ・プログラム、プログラムの一つまたは複数のサブプログラムまたはより一般には、当該モジュールについて以下に記載されるものに基づく機能または機能のセットを実装することのできるプログラムの任意の要素またはソフトウェア・プログラムに対応する。一つのそのようなソフトウェア・コンポーネントは、物理的なエンティティ(端末、サーバーなど)のデータ・プロセッサによって実行され、この物理的なエンティティのハードウェア資源(メモリ、記録媒体、通信バス、入出力電子基板、ユーザー・インターフェースなど)にアクセスすることができる。
同様に、ハードウェア・コンポーネントは、当該モジュールについて以下に記載されるものに基づく機能または機能のセットを実装することのできるハードウェア・ユニットの任意の要素に対応する。それは、プログラム可能なハードウェア・コンポーネントまたはソフトウェアの実行のための集積回路をもつコンポーネント、たとえば集積回路、スマートカード、メモリカード、ファームウェアなどを実行するための電子基板などであってもよい。ある変形では、ハードウェア・コンポーネントは、中央処理ユニットおよび/またはマイクロプロセッサおよび/または特定用途向け集積回路(ASIC: Application-specific integrated circuit)および/または特定用途向け命令セット・プロセッサ(ASIP: Application-specific instruction-set processor)および/またはグラフィクス処理ユニット(GPU: graphics processing unit)および/または物理処理ユニット(PPU: physics processing unit)および/またはデジタル信号プロセッサ(DSP: digital signal processor)および/または画像プロセッサおよび/またはコプロセッサおよび/または浮動小数点ユニットおよび/またはネットワーク・プロセッサおよび/またはオーディオ・プロセッサおよび/またはマルチコア・プロセッサのような集積回路であるプロセッサを有する。さらに、ハードウェア・コンポーネントは、ベースバンド・プロセッサ(たとえばメモリ・ユニットおよびファームウェアを有する)および/または電波信号を受信もしくは送信する電波電子回路(アンテナを有することができる)を有することもできる。ある実施形態では、ハードウェア・コンポーネントは、ISO/IEC18092/ECMA-340、ISO/IEC21481/ECMA-352、GSMA、StoLPaN、ETSI/SCP(SmartCardPlatform[スマート・カード・プラットフォーム])、グローバルプラットフォーム(GlobalPlatform)(すなわちセキュアな要素)のような一つまたは複数の標準に準拠する。ある変形では、ハードウェア・コンポーネントは電波周波数識別(RFID: Radio-frequency identification)タグである。ある実施形態では、ハードウェア・コンポーネントは、ブルートゥース通信および/またはWi-fi通信および/またはジグビー通信および/またはUSB通信および/またはファイアワイア通信を可能にする回路を有する。
本稿における要素/値を取得する段階が、電子デバイスのメモリ・ユニットにおけるそのような要素/値を読む段階または通信手段を介して別の電子デバイスからそのような要素/値を受領する段階として見ることができることをも注意しておくべきである。
もう一つの実施形態では、データの暗号処理を実行するよう構成された電子デバイスであって、有限環である代数構造上で定義される同じ楕円曲線に属する少なくとも二つの点を得る手段を有する、デバイスに向けられる。各点は、少なくとも二つの座標によって表現される。本電子デバイスは:
・前記楕円曲線と別の楕円曲線との間の同型のパラメータ化を取得する手段であって、前記パラメータ化はいくつかの構成パラメータを定義し、各構成パラメータはある範囲の可能な値をもつ、手段と;
・前記少なくとも二つの点の座標の値の関数の形で前記構成パラメータを決定し、決定された構成パラメータを与える手段と;
・前記同型を通じた前記少なくとも二つの点の加算の像に対応する別の点の座標を取得する手段であって、前記別の点は前記別の楕円曲線に属し、該取得は、前記決定された構成パラメータのおかげで、前記代数構造における逆元計算なしに実行される、手段とを有する点で注目すべきである。
ある変形では、本電子デバイスは、前記少なくとも二つの点が同一であるとき、前記加算が二倍演算であるという点で注目すべきである。
ある変形では、本電子デバイスは、各点がアフィン座標系において表現されるという点で注目すべきである。
ある変形では、本電子デバイスは、前記手段が、第一の楕円曲線に属する第一の点とのスカラー乗算演算を実行するために使用されるという点で注目すべきである。
ある変形では、本電子デバイスは、前記スカラー乗算演算の、最後の楕円曲線に属する出力点を、前記第一の楕円曲線に属する変換された出力点に変換する手段を有するという点で注目すべきである。
もう一つの実施形態では、本電子デバイスは、前記代数構造が素数p>3に等しい標数をもつ有限体であるという点で注目すべきである。
本発明の上記および他の側面は、付属の図面を参照してのその例示的実施形態の以下の詳細な説明からより明白となるであろう。
本発明のある実施形態に基づく楕円曲線上でのスカラー乗算を示す図である。 楕円曲線上でのスカラー乗算を実行する二つの古典的方法(二倍して加算法と加算して二倍法)を示す図である。 本技法に基づく、楕円曲線上でのスカラー乗算を実行する二つの方法を示す図である。 本技法に基づく、楕円曲線上でのスカラー乗算を実行する方法のもう一つの実施形態を示す図である。 楕円曲線上でのスカラー乗算を実行する二つの古典的方法(モンゴメリー・ラダーおよびジョワ(Joye)の二倍‐加算ラダー)を示す図である。 本発明のある実施形態に基づく、図5に開示される楕円曲線上でのスカラー乗算を実行する方法の二つの修正を示す図である。 本発明のある実施形態に基づく、図5に開示される楕円曲線上でのスカラー乗算を実行するモンゴメリー・ラダー方法の修正を示す図である。 本稿に開示される方法の一つまたは複数の段階を実行するために使用できる装置を示す図である。
提案される方法を完全な一般性をもって記載する前に、まずヴァイエルシュトラス・モデルに対するいくつかのコメントをしておく。説明を簡単にするため、2または3とは異なる標数の環上で定義された楕円曲線に焦点を当てる。慣例通り、K*
Figure 2015166867

の乗法群を表わし〔本稿では便宜上上記のように通常の書体を使うことがある〕、Char(K)はKの標数を表わすものとする。
環K、Char(K)≠2,3上での、
E1:y2=x3+a・x+b
によって与えられる楕円曲線E1を考える。
任意のu∈K*について、楕円曲線E1は楕円曲線:
Eu:y2=x3+a・u4・x+bu6
に対して、逆のマッピング
Figure 2015166867

を介してK同型である。E1上の二つの有限な点、点P1=(x1,y1)および点P2=(x2,y2)であって、P1≠±P2(すなわち、x1≠x2)であるようなものが与えられるとき、(x1−x2)∈K*であれば、それらの和はP3=P1+P2=(x3,y3)によって与えられ、ここで
Figure 2015166867

である。y1∈K*であれば、P1=(x1,y1)の二倍は、P4=2P1=P1+P1=(x4,y4)によって与えられ、ここで
Figure 2015166867

である。
本発明のある実施形態では、本技法は、次の性質を使う:φ:=x1−x2を定義することによって、上記の加算公式(eq.1として参照される)から次を得る。
Figure 2015166867

換言すれば、楕円曲線E1上に点P1およびP2が与えられるとき、同型な楕円曲線Eφ上で、点
Figure 2015166867

を容易に得ることができる。チルダ付きのP3の評価において、逆元演算が必要とされないことは注目に値する。iADDが
Figure 2015166867

を得る演算を表わすことにする。
同様の扱いが点二倍演算に当てはまることを注意しておくべきである。(二倍演算は、同一である二つの点の間の具体的な加算として見ることができる。しかしながら、点が同じであるまたは同じでない場合に加算を実行するために使われる公式は必ずしも同じではない。)ここでφ:=2y1と定義すると、上記二倍公式(eq.2として参照される)から次を得る。
Figure 2015166867

つまり、E1上の点P1を与えられたとき、楕円曲線Eφに属する点
Figure 2015166867

を容易に得ることができる。上記点加算についてと同様に、チルダ付きのP4の評価において、逆元演算が必要とされないことは注目に値する。iDBLが
Figure 2015166867

を得る演算を表わすことにする。
E1を環K上での楕円曲線であるとする。何らかのパラメータ
Figure 2015166867

によってインデックス付けされる、同型
Figure 2015166867

のもとでの同型な楕円曲線の族
Figure 2015166867

を考える。
矢印→付きのφで表わされるパラメータは、同型の記述である(すなわち、同型を定義するパラメータ化である)。
Figure 2015166867

という記法を使う(Descはdescription〔記述〕の略)。すべての可能なパラメータの集合は
Figure 2015166867

で表わされる。
iADD、iADDUおよびiADDCと記される次の三つの加算演算は、次の式によって定義される。
Figure 2015166867

効率のため、→付きのφで表わされるパラメータは、E1上に二つの異なる点P1およびP2が与えられたときに、加算演算の出力が環逆元計算を必要としないように選ばれる。
また、次式によって定義される二つの二倍演算iDBLおよびiDBLUを与える。
Figure 2015166867

同様に、→付きのφで表わされるパラメータは、E1に属する点P1が与えられたときに、二倍演算の出力が環逆元計算を必要としないように選ばれる。
より一般には、
Figure 2015166867

と同型な二つの楕円曲線
Figure 2015166867

が与えられたとき、
Figure 2015166867

がこれらの楕円曲線の間の同型を表わすとすると、同様に、次の演算を定義する。
Figure 2015166867

演算子定義における添え字の→付きのφは、入力点が楕円曲線
Figure 2015166867

に属することを示す。
以下の例は上記の原理を例解する。環K(標数が何であれ)上で定義された一般的なヴァイエルシュトラス・モデルについて、次のようになる。
E1 :y2+a1xy+a3y=x3+a2x2+a4x+a6
ここで、パラメータa1、a2、a3、a4およびa6はKに属し、
Figure 2015166867

であり、ここで、同型の記述
Figure 2015166867

は四つのパラメータu,r,s,tによって与えられる。よって
Figure 2015166867

また、
Figure 2015166867

である。ここで、KはE1の定義環である。よって、同型
Figure 2015166867

は、
E1 :y2+a1xy+a3y=x3+a2x2+a4x+a6
の点Pの、楕円曲線
E'1 :y2+a'1xy+a'3y=x3+a'2x2+a'4x+a'6
に属する点へのマッピングを可能にする。ここで、パラメータa'1、a'2、a'3、a'4およびa'6はKに属する。対応する曲線パラメータは、下記の式によって関係付けられる。
Figure 2015166867

Kの標数が2でも3でもないとき、一般性を失うことなく、a1=a2=a3=0と選ぶことができる。同様に、Kの標数が2であるとき、楕円曲線が非超特異(non-supersingular)であれば、a1=1かつa3=a4=0と選ぶことができる。
以下の節では、2にも3にも等しくない標数をもつ環上で、短ヴァイエルシュトラス・モデルに従って定義される楕円曲線を用いて、演算子iADD、iADDU、iADDC、iDBLおよびiDBLUの出力を得るために実行される明示的な計算が与えられる。
より精密には、(2にも3にも等しくない標数をもつ環K上で定義される(短ヴァイエルシュトラス・モデルに基づく)楕円曲線E1 :y2=x3+ax+bに属する)点P1およびP2から
Figure 2015166867

の評価は下記のようにできる:
・Kにおいてφ=x1−x2を得る;
・KにおいてC=φ2を得る;
・KにおいてW1=x1Cを得る;
・KにおいてW2=x2Cを得る;
・KにおいてD=(y1−y2)2を得る;
・KにおいてA1=(W1−W2)y1を得る;
すると、Kにおいて
Figure 2015166867

となる。
この一連の演算はiADD演算に対応する。これは4M+2Sのグローバルなコストをもつ。ここで、MおよびSはそれぞれKにおける乗算および二乗のコストを表わす。
Figure 2015166867

の評価の間に、
Figure 2015166867

が自動的に得られることを注意しておくべきである。実際、
Figure 2015166867

を用いてただちに
Figure 2015166867

が得られる。
先述したように、チルダ付きのP1と一緒にチルダ付きのP3を得る演算はiADDUと記される。
(2にも3にも等しくない標数をもつ有限環K上で定義される楕円曲線E1 :y2=x3+ax+bに属する)点P1およびP2から
Figure 2015166867

の評価は下記のようにできる:
・KにおいてW1=x1Cを得る;
・KにおいてW2=x2Cを得る;
・KにおいてA1=(W1−W2)y1を得る;
すると、Kにおいて
Figure 2015166867

となる。
実際、−P2=(x2,−y2)なので、P1−P2=(x'3,y'3)が
Figure 2015166867

を満たすことがわかる。よって、iADDCと記される、ψφ(P1−P2)を得る演算は5M+3Sしか必要としない。
(2にも3にも等しくない標数をもつ有限環K上で定義される楕円曲線E1 :y2=x3+ax+bに属する)点P1から
Figure 2015166867

の評価は下記のようにできる:
・KにおいてB=x1 2を得る;
・KにおいてE=y1 2を得る;
・KにおいてL=E2を得る;
・KにおいてM=3B+aを得る;
・KにおいてS=2((x1+E)2−B−L)を得る;
すると、Kにおいて
Figure 2015166867

となる。
Figure 2015166867

の評価はiDBLと記され、そのような演算は1M+5Sしか必要としない。さらに、チルダ付きのP4の評価の間に、
Figure 2015166867

が自動的に得られる。実際、
Figure 2015166867

となる。チルダ付きのP4およびチルダ付きのP4を得ることからなる演算は、先述したように、iDBLUと記される。
楕円曲線を使う暗号方式において最もよく使われる演算の一つは、スカラー乗算である。
図1は、本発明のある実施形態に基づく、楕円曲線上でのスカラー乗算を示している。
より精密には、このスカラー乗算は、スカラー乗算プロセスの間に決定される同型のチェーンまたは系列の使用を介して二倍および加算演算を使うことを含む。
E(0)=E1がもとの楕円曲線を表わすとし、
Figure 2015166867

が段階Iにおける現在の楕円曲線を表わし、
Figure 2015166867

が最後の楕円曲線を表わすとすると、
Figure 2015166867

となる。
段階iにおける現在の曲線ともとの曲線との間の同型は
Figure 2015166867

によって与えられる。記法をやや拡張して、白丸記号を対応する記述に対する演算を表わすためにも使う。つまり、
Figure 2015166867

となる。
Figure 2015166867

なので、結果点Q=k.P∈E(0)
Figure 2015166867

によって与えられる。「合成された」同型
Figure 2015166867

は、
Figure 2015166867

(すなわち、恒等マップ)として、
Figure 2015166867

であることを観察することによって、逐次反復的に得られる。
Figure 2015166867

なので、
Figure 2015166867

が得られる。
以下の例はそのような原理を例解する。一般的ヴァイエルシュトラス・モデルについて、
Figure 2015166867

であるから、i≧1について
Figure 2015166867

(U0,R0,S0,T0)=(1,0,0,0)である。
図2は、楕円曲線上でのスカラー乗算を実行する二つの古典的方法(二倍して加算法と加算して二倍法)を示している。
Q=kP(すなわち、楕円曲線上のスカラー乗算)を評価するための古典的方法は、スカラーkの二進表現k=(kn-1,……,k0)2を考える。ここで、ki∈{0,1}、0≦i≦n−1である。有利なことに、これが必要とするのは最小数のレジスタであり、よって、スマートカードのようなメモリが制約されたデバイスに好適である。この方法は、kが偶数であれば
Figure 2015166867

であり、kが奇数であれば
Figure 2015166867

であるという自明な関係に依拠する。このプロセスを逐次反復すると、二倍して加算法(double-and-add method)として知られる左から右へのスカラー乗算アルゴリズムが与えられる。そのような方法は、二つの(点)レジスタR0およびR1を必要とする。レジスタR0は累積器〔アキュムレーター〕として作用し、レジスタR1は入力点Pの値を記憶するために使われる。
右から左の変形がある。加算して二倍法(add-and-double method)として知られる結果として得られるアルゴリズムは、図2のアルゴリズム2に描かれている。これも二つの(点)レジスタR0およびR1を必要とするが、この場合は両方とも累積器〔アキュムレーター〕として作用する。
図3は、本技法に基づく、楕円曲線上でのスカラー乗算を実行する二つの方法を示す図である。
より精密には、図3に示されるアルゴリズムまたは方法は、本発明の一つの実施形態に基づく加算および二倍公式を用いての上記古典的方法のストレートな実装である。もとの曲線との現在の同型[の記述]を累積するために、矢印→付きのφで表わされる変数を使う。この変数は
Figure 2015166867

(恒等マップIdに対応)に初期化される。先述したように、白丸記号は楕円曲線同型[の記述]の組成を表わす。
図4は、本技法に基づく、楕円曲線上でのスカラー乗算を実行する方法のもう一つの実施形態を示している。
そのような実施形態は、図3に描かれたものより効率的な、上記の左から右の方法の変形である。k1が1に等しいときはレジスタR1はレジスタR0に加えられ、レジスタR1の内容は計算を通じて不変なままである(R1は常に入力点Pを含んでいる)ことに注目すると、それを現在の楕円曲線上の点として常に更新することは必要ない。その代わり、反復工程iにおいて、現在の楕円曲線
Figure 2015166867

上でのその代表が、入力点Pから
Figure 2015166867

として計算されることができる。
図5は、楕円曲線上でのスカラー乗算を実行する二つの古典的方法(モンゴメリー・ラダーおよびジョワ(Joye)の二倍‐加算ラダー)を示している。
これらの古典的方法は、演算のいくつかの結果を記憶するために、三つのレジスタを使う(レジスタR0、レジスタR1およびレジスタT)。
図6は、本発明のある実施形態に基づく、図5に開示される楕円曲線上でのスカラー乗算を実行する方法の二つの修正を示している。
いくつかの楕円曲線モデルについては、二つの相異なる点の点加算公式は、曲線パラメータとは独立である。この場合、iADDUおよびiADDC演算の系列として書くことのできるスカラー乗算アルゴリズムに依拠することが有益である。
主ループは、アルゴリズム6については、R1-b←Rb+R1-bおよびRb←2Rb(ここでbは0または1に等しい)と読め、アルゴリズム7については、R1-b←Rb+2R1-bと読める。したがって、アルゴリズム6およびアルゴリズム7は、本稿で提案される新たな演算を用いて簡単に適応されることができる。値kn-1=1は、アルゴリズム6の最初の反復工程において、(R0,T)=(P,P)に、次いでR1=P+Pにつながる。この最後の演算は点を二倍することである。潜在的な特殊なケースを扱う必要がないように、kn-1=1とし、よってforループをi=n−2において開始し、(R0,R1)を(P,2P)で初期化する。よりよいパフォーマンスのために、これは、iDBLU演算のおかげをもって達成される。同じ理由により、右から左アルゴリズムではk0=1とする。アルゴリズム9において、forループをi=2において開始し、(Rk1,R1-k1)を(P,3P)で初期化する。ここでもまた、これは上記の新たな演算を用いてできる。k0=0であるときは、正しい結果を得るために、計算の最後に点Pが減算される必要がある。
図7は、本発明のある実施形態に基づく、図5に開示される楕円曲線上でのスカラー乗算を実行するモンゴメリー・ラダー方法の修正を示す図である。
もとのモンゴメリー・ラダーは、差R1−R0を不変に保つ。この差はPに等しい。等価だが、アルゴリズム6における変数T(←Rb−R1-b)は(−1)1-bPに等しい。したがって、反復工程i=0において、モンゴメリー・ラダーの我々のバージョン(アルゴリズム8)における変数Rbは、行4において、
Figure 2015166867

の値を含む。これにより、
Figure 2015166867

の記述を、よって
Figure 2015166867

の記述を、
Figure 2015166867

として明示的に復元することができうる。結果として、現在の同型を追跡する必要がないモンゴメリー様アルゴリズムを得ることができる。iADDCおよびiADDU演算は点を返す必要があるだけであり、結果として得られる曲線の同型の記述、すなわちパラメータ
Figure 2015166867

を返す必要はない。このことは、演算子に対する記号′で表わされている。モンゴメリー・ラダーのこの変形は、iADDCおよびiADDU演算が曲線パラメータから独立であることをも要求する。このことは、演算子において添え字
Figure 2015166867

がないことによって示されている。
図8は、本稿に開示される方法(またはアルゴリズム)の一つまたは複数の段階を実行するために使用できる装置を示している。
800で表わされるそのような装置は、801で表わされるコンピューティング・ユニット(たとえば「Central Processing Unit(中央処理ユニット)」の略であるCPU)と、802で表わされる一つまたは複数のメモリ・ユニット(たとえばコンピュータ・プログラム命令の実行の間に一時的に中間的な結果が記憶されることのできるRAM(「Random Access Memory(ランダム・アクセス・メモリ)」の略)ブロックまたは特にコンピュータ・プログラムが記憶されるROMブロックまたはEEPROM(「Electrically-Erasable Programmable Read-Only Memory(電気的に消去可能なプログラム可能型読み出し専用メモリ)」)ブロックまたはフラッシュ・ブロック)とを有する。コンピュータ・プログラムは、コンピューティング・ユニットによって実行されることのできる命令で構成される。そのような装置800は、装置800が他の装置と通信できるようにする入出力インターフェースをなす、803で表わされる専用のユニットをも有することができる。特に、この専用のユニット803は、(コンタクトなしで通信を実行するために)アンテナを用いて、あるいは(通信「コンタクト」を担持する)シリアル・ポートを用いて接続されることができる。図8における矢印は、つながれているユニットがたとえば一緒に諸バスを通じてデータを交換できることを意味することを注意しておくべきである。
ある代替的な実施形態では、先述した方法の段階の一部または全部がプログラム可能なFPGA(「Field Programmable Gate Array(フィールド・プログラム可能なゲート・アレイ)」)コンポーネントまたはASIC(「Application-Specific Integrated Circuit(特定用途向け集積回路)」)コンポーネントにおけるハードウェアにおいて実装されることができる。
ある代替的な実施形態では、先述した方法の段階の一部または全部が、図8に開示したもののような、メモリ・ユニットおよび処理ユニットを有する電子デバイスで実行されることができる。
ある種のモデル(一般的なヴァイエルシュトラス・モデルを含む)については、中立要素(すなわち、無限遠にある点O)が特殊な扱いを必要とする。これは、初期化段階を十分に適応させることによって回避できる。古典的な左から右へのラダーについては、kn-1=1と想定して、アルゴリズム3および5において、初期化段階で、forループをi=n−2において開始し、R0←PおよびR1←Pと置くことができる。
同様に、右から左へのラダーについては、k0=1と想定して、アルゴリズム4において、forループをi=1において開始し、R0←PおよびR1←2.Pと置くことができる。k0=0のときは、同じことをするが、正しい結果を得るために計算の最後においてPを減算する。
R=2.P+Qの評価のような組み合わされた演算が本技法に基づいて行なうことができることを注意しておくべきである。これは、二つの段階においてできる。まず、T←P+Qを決定し、次いでP←P+Tを決定する。点Rが更新された点Pとともに必要とされる場合には、これはiADDU演算の二つの相続く適用によって実行できる:
Figure 2015166867

計算の終わりに点Rを更新された点Q(点Pでなく)とともにほしい場合には、物事はやや複雑になる。これはiADDUの評価およびそれに続くiADDCの評価によって実行できる:
Figure 2015166867

最後に、同型楕円曲線に基づく提案される技法は、本技法の各実行における曲線ランダム化(curve randomization)のようなサイドチャネル攻撃を防止する技法に準拠することを注意しておくべきである。

Claims (15)

  1. 電子デバイスによって実行される、データの暗号学的処理の方法であって、有限環である代数構造上で定義される同じ楕円曲線に属する少なくとも二つの点を得る段階を含み、各点は、少なくとも二つの座標によって表現され、当該方法は:
    ・前記楕円曲線と別の楕円曲線との間の同型のパラメータ化を取得する段階であって、前記パラメータ化はいくつかの構成パラメータを定義し、各構成パラメータはある範囲の可能な値をもつ、段階と;
    ・前記少なくとも二つの点の座標の値の関数として前記構成パラメータを決定し、決定された構成パラメータを与える段階と;
    ・前記同型を通じた前記少なくとも二つの点の加算の像に対応する別の点の座標を取得する段階であって、前記別の点は前記別の楕円曲線に属し、該取得は、前記決定された構成パラメータのため、前記代数構造における逆元計算なしに実行される、段階とを含むことを特徴とする、
    方法。
  2. 前記少なくとも二つの点が同一であるとき、前記加算が二倍演算であることを特徴とする、請求項1記載の方法。
  3. 各点がアフィン座標系において表現されることを特徴とする、請求項1または2記載の方法。
  4. 第一の楕円曲線に属する第一の点とのスカラー乗算演算において使用されることを特徴とする、請求項1ないし3のうちいずれか一項記載の方法。
  5. 前記スカラー乗算演算の、最後の楕円曲線に属する出力点を、前記第一の楕円曲線に属する変換された出力点に変換する段階を含むことを特徴とする、請求項4記載の方法。
  6. 前記代数構造が2に等しい標数をもつ有限体であることを特徴とする、請求項1ないし5のうちいずれか一項記載の方法。
  7. 前記代数構造が3に等しい標数をもつ有限体であることを特徴とする、請求項1ないし5のうちいずれか一項記載の方法。
  8. 前記代数構造が素数p>3に等しい標数をもつ有限体であることを特徴とする、請求項1ないし5のうちいずれか一項記載の方法。
  9. コンピュータによって実行されたときに暗号学的計算のための方法を実装するためのコンピュータ実行可能な命令の集合を含むコンピュータ・プログラムを記憶しているコンピュータ可読であり非一過性の記憶媒体であって、前記命令は、実行されたときに請求項1ないし8のうちいずれか一項記載の方法を実行するようコンピュータを構成する命令を含む、記憶媒体。
  10. データの暗号処理を実行するよう構成された電子デバイスであって、有限環である代数構造上で定義される同じ楕円曲線に属する少なくとも二つの点を得る手段を有しており、各点は、少なくとも二つの座標によって表現され、当該電子デバイスは:
    ・前記楕円曲線と別の楕円曲線との間の同型のパラメータ化を取得する手段であって、前記パラメータ化はいくつかの構成パラメータを定義し、各構成パラメータはある範囲の可能な値をもつ、手段と;
    ・前記少なくとも二つの点の座標の値の関数として前記構成パラメータを決定し、決定された構成パラメータを与える手段と;
    ・前記同型を通じた前記少なくとも二つの点の加算の像に対応する別の点の座標を取得する手段であって、前記別の点は前記別の楕円曲線に属し、該取得は、前記決定された構成パラメータのため、前記代数構造における逆元計算なしに実行される、手段とを有することを特徴とする、
    電子デバイス。
  11. 前記少なくとも二つの点が同一であるとき、前記加算が二倍演算であることを特徴とする、請求項10記載の電子デバイス。
  12. 各点がアフィン座標系において表現されることを特徴とする、請求項10または11記載の電子デバイス。
  13. 前記手段が、最初の楕円曲線に属する最初の点とのスカラー乗算演算を実行するために使用されることを特徴とする、請求項10ないし12のうちいずれか一項記載の電子デバイス。
  14. 前記スカラー乗算演算の、最後の楕円曲線に属する出力点を、前記最初の楕円曲線に属する変換された出力点に変換する手段を有することを特徴とする、請求項13記載の電子デバイス。
  15. 前記代数構造が素数p>3に等しい標数をもつ有限体であることを特徴とする、請求項10ないし14のうちいずれか一項記載の電子デバイス。
JP2015039856A 2014-03-03 2015-03-02 楕円曲線上のデータの暗号処理方法、対応する電子装置およびコンピュータ・プログラム・プロダクト Pending JP2015166867A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14305303.1A EP2916215B1 (en) 2014-03-03 2014-03-03 Method of cryptographic processing of data on elliptic curves, corresponding electronic device and computer program product
EP14305303.1 2014-03-03

Publications (1)

Publication Number Publication Date
JP2015166867A true JP2015166867A (ja) 2015-09-24

Family

ID=50897501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015039856A Pending JP2015166867A (ja) 2014-03-03 2015-03-02 楕円曲線上のデータの暗号処理方法、対応する電子装置およびコンピュータ・プログラム・プロダクト

Country Status (5)

Country Link
US (1) US9729323B2 (ja)
EP (2) EP2916215B1 (ja)
JP (1) JP2015166867A (ja)
KR (1) KR20150103644A (ja)
CN (1) CN104901792A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9590805B1 (en) * 2014-12-23 2017-03-07 EMC IP Holding Company LLC Ladder-based cryptographic techniques using pre-computed points
CN106126193A (zh) * 2016-08-24 2016-11-16 四川卫士通信息安全平台技术有限公司 基于Zynq的椭圆曲线点加运算加速器及加速方法
WO2020145759A1 (ko) * 2019-01-11 2020-07-16 주식회사 크립토랩 근사 계산에 대한 계산 검증

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737424A (en) 1996-06-04 1998-04-07 Software Security, Inc. Method and system for secure distribution of protected data using elliptic curve systems
JP2001290420A (ja) 2000-02-01 2001-10-19 Fujitsu Ltd 楕円曲線暗号処理装置及び方法と楕円曲線暗号処理用プログラム及びそのプログラムの記録媒体
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
US7764785B2 (en) 2004-11-08 2010-07-27 King Fahd University Of Petroleum And Minerals Method for communicating securely over an insecure communication channel
US8509426B1 (en) * 2010-12-01 2013-08-13 King Fahd University Of Petroleum And Minerals XZ-elliptic curve cryptography system and method
US8804952B2 (en) * 2012-12-26 2014-08-12 Umm Al-Qura University System and method for securing scalar multiplication against differential power attacks

Also Published As

Publication number Publication date
KR20150103644A (ko) 2015-09-11
US9729323B2 (en) 2017-08-08
EP2916216A1 (en) 2015-09-09
CN104901792A (zh) 2015-09-09
EP2916215B1 (en) 2016-12-07
US20150256340A1 (en) 2015-09-10
EP2916215A1 (en) 2015-09-09

Similar Documents

Publication Publication Date Title
JP4752313B2 (ja) 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム
Boorghany et al. On constrained implementation of lattice-based cryptographic primitives and schemes on smart cards
US20140098951A1 (en) Method for elliptic curve cryptography with countermeasures against simple power analysis and fault injection analysis and system thereof
JP6621813B2 (ja) 難読化された算術を実行するための電子計算装置
CA2614120A1 (en) Elliptic curve point multiplication
Renes et al. Kummer: Efficient hyperelliptic signatures and key exchange on microcontrollers
US20070211894A1 (en) Encryption processing apparatus, encryption processing method, and computer program
Pendl et al. Elliptic curve cryptography on the WISP UHF RFID tag
RU2698764C2 (ru) Электронное вычислительное устройство для выполнения замаскированных арифметических действий
JP4513752B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US20220166614A1 (en) System and method to optimize generation of coprime numbers in cryptographic applications
JP2015166867A (ja) 楕円曲線上のデータの暗号処理方法、対応する電子装置およびコンピュータ・プログラム・プロダクト
US9042543B2 (en) Method for arbitrary-precision division or modular reduction
Marin et al. Shifting primes: Extension of pseudo-Mersenne primes to optimize ECC for MSP430-based future Internet of things devices
WO2018145190A1 (en) Elliptic curve cryptography scheme with simple side-channel attack countermeasure
WO2018145191A1 (en) System and method for optimized elliptic curve cryptography operations
Jaromczyk et al. Constructions of asymptotically shortest k-radius sequences
US10361855B2 (en) Computing a secure elliptic curve scalar multiplication using an unsecured and secure environment
JP6067596B2 (ja) ペアリング演算装置、マルチペアリング演算装置、プログラム
US20200044818A1 (en) Elliptic curve cryptography scheme for edwards curves having a differential side-channel attack countermeasure
Youssef et al. A low-resource 32-bit datapath ECDSA design for embedded applications
JP4752176B2 (ja) 一方向性関数演算方法及び装置及びプログラム
Hashimoto et al. An ECC Implementation with a Twisted Montgomery Curve over Fq32 on an 8-Bit Microcontroller
JP4629972B2 (ja) ベクトル演算装置及び分割値演算装置及び楕円曲線スカラー倍演算装置及び楕円暗号演算装置及びベクトル演算方法及びプログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2014178506A (ja) 楕円曲線暗号装置