JP2016180840A - 楕円曲線暗号装置、楕円曲線暗号システム、楕円曲線暗号方法、およびプログラム - Google Patents

楕円曲線暗号装置、楕円曲線暗号システム、楕円曲線暗号方法、およびプログラム Download PDF

Info

Publication number
JP2016180840A
JP2016180840A JP2015060569A JP2015060569A JP2016180840A JP 2016180840 A JP2016180840 A JP 2016180840A JP 2015060569 A JP2015060569 A JP 2015060569A JP 2015060569 A JP2015060569 A JP 2015060569A JP 2016180840 A JP2016180840 A JP 2016180840A
Authority
JP
Japan
Prior art keywords
elliptic curve
finite field
subset
point
unit
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.)
Granted
Application number
JP2015060569A
Other languages
English (en)
Other versions
JP6261538B2 (ja
Inventor
メディー ティブシ
Tibouchi Mehdi
メディー ティブシ
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015060569A priority Critical patent/JP6261538B2/ja
Publication of JP2016180840A publication Critical patent/JP2016180840A/ja
Application granted granted Critical
Publication of JP6261538B2 publication Critical patent/JP6261538B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】任意の楕円曲線を用いた任意の楕円曲線暗号プロトコルにおいて、通信量を抑えつつ、識別攻撃に対する安全性を強化する。
【解決手段】楕円曲線暗号装置11の楕円曲線演算部111は楕円曲線暗号プロトコルを実行し楕円曲線上の点Pを得る。符号化部112は点Pを入力とし、部分集合Jの元をuとし、Q=P−f(u)とし、元uと部分集合Iに属する逆像v=f−1(Q)とに対応する符号を出力する。ただし、IおよびJが有限体の部分集合であり、Iが区間であり、IおよびJの少なくとも一方を当該有限体の真部分集合であり、fが当該有限体の元zを楕円曲線上の点f(z)に写す写像である。通信部113は符号化部112で得られた符号をネットワークを介して楕円曲線暗号装置12に送信する。
【選択図】図1

Description

本発明は、情報セキュリティ技術の分野に関し、特に、楕円曲線暗号プロトコルのコバート性(識別攻撃に対する安全性)を強化する方式に関する。
楕円曲線暗号方式は、RSAなどのそれ以前の暗号方式よりも効率性が高く用途も広いため、昨今の情報セキュリティ技術で多用されている。しかしながら、この方式には、プライバシー保護、匿名性保護、データ隠蔽、検閲迂回などの技術への応用の観点で一つの問題がある。それは楕円曲線上の点がランダムなビットストリングと識別しやすいところである。そのせいで、ディープ・パケット・インスペクションなどを利用することによって、攻撃者が楕円曲線暗号プロトコルのメッセージを含むネットワークトラフィックを同定し、ブロッキングや改ざんする識別攻撃を行うことができる。
こういった脆弱性を克服するために、従来は三つのアプローチが提案された。一つ目はMollerによる「擬似ランダム暗号文を生成する暗号方式(Moller方式)」であり(例えば、非特許文献1等参照)、楕円曲線またはそのツイストの点をランダムに抽出することを基にするものである。二つ目はBernsteinらによるElligator方式であり(例えば、非特許文献2等参照)、Fouque-Joux-Tibouchiの可逆単射的関数(例えば、非特許文献3等参照)などの逆関数に基づく。三つ目はTibouchiらのElligator Squared方式であり(例えば、非特許文献4,5等参照)、任意の楕円曲線上の点をランダムなビットストリングと統計的に識別することが不可能なビットストリングに変換し、このビットストリングを送信するものである。
Moller方式およびElligator方式は、適用可能な楕円曲線およびプロトコルに制約がある。これに対し、Elligator Squared方式は、全ての楕円曲線と全てのプロトコルに適用でき、Elligator方式とほぼ同レベルの効率性がある。
B. Moller, "A public-key encryption scheme with pseudo-random ciphertexts," In P. Samarati, P. Y. A. Ryan, D. Gollmann, and R. Molva, editors, ESORICS, volume 3193 of Lecture Notes in Computer Science, pages 335-351. Springer, 2004. D. J. Bernstein, M. Hamburg, A. Krasnova, and T. Lange. Elligator, "Elliptic-curve points indistinguishable from uniform random strings," In V. Gligor and M. Yung, editors, ACM CCS, 2013. P.-A. Fouque, A. Joux, and M, "Tibouchi. Injective encodings to elliptic curves," In C. Boyd and L. Simpson, editors, ACISP, volume 7959 of Lecture Notes in Computer Science, pages 203-218. Springer, 2013. M. Tibouchi., "Elligator Squared: Uniform points on elliptic curves of prime order as uniform random strings," In N. Christin and R. Safavi-Naini, editors, Financial Cryptography and Data Security, volume 8437 of Lecture Notes in Computer Science, pages 139-156, Springer, 2014. D. F. Aranha, P. Fouque, C. Qian, M. Tibouchi, and J. Zapalowicz., "Binary Elligator Squared," In A. Joux and A. M. Youssef, editors, Selected Areas in Cryptography, volume 8781 of Lecture Notes in Computer Science, pages 20-37, Springer, 2014.
しかし、Elligator Squared方式には、楕円曲線上の点に対応するビットストリングのビット長が比較的に長いという問題点がある。
本発明の課題は、任意の楕円曲線を用いた任意の楕円曲線暗号プロトコルにおいて、通信量を抑えつつ、識別攻撃に対する安全性を強化することである。
Pが楕円曲線上の点であり、IおよびJが有限体の部分集合であり、Iが区間であり、IおよびJの少なくとも一方が当該有限体の真部分集合であり、fが当該有限体の元zを楕円曲線上の点f(z)に写す写像であり、uが部分集合Jの元であり、Q=P−f(u)であり、元uと部分集合Iに属する逆像v=f−1(Q)とに対応する符号を出力する。
以上により、任意の楕円曲線を用いた任意の楕円曲線暗号プロトコルにおいて、通信量を抑えつつ、識別攻撃に対する安全性を強化できる。
図1Aは、第1実施形態の楕円曲線暗号システムの構成を例示したブロック図である。図1Bは、実施形態の符号化部の構成を例示したブロック図である。 図2Aは、第1実施形態の楕円曲線暗号方法を例示するためのフロー図である。図2Bは、図2AのステップS112での処理を説明するためのフロー図である。図2Cは、図2AのステップS122での処理を説明するためのフロー図である。 図3は、第2実施形態の楕円曲線暗号システムの構成を例示したブロック図である。 図4は、第2実施形態の楕円曲線暗号方法を例示するためのフロー図である。 図5は、第3実施形態の楕円曲線暗号システムの構成を例示したブロック図である。 図6は、第3実施形態の楕円曲線暗号方法を例示するためのフロー図である。 図7は、第4実施形態の楕円曲線暗号システムの構成を例示したブロック図である。 図8は、第4実施形態の楕円曲線暗号方法を例示するためのフロー図である。
以下、本発明の実施形態を説明する。
[定義]
まず、本形態で使用する用語を定義する。
<統計的な距離(Statistical distance)>
一様分布の有限集合(例えば、有限体)をSetと表し、Setの一様分布をUsetと表し、ある分布Dと分布Usetとの統計的な距離Δ(D)を以下のように定義する。
Δ(D)=Σg∈Set|Pr[g←D]−1/Ord(Set)|
ただし、Pr[g←D](0≦Pr[g←D]≦1)は分布Dに従ってgが選択される確率を表す。Ord(Set)は有限集合Setの要素数を表す。|η|はηの絶対値を表す。なお、「分布(確率分布)Dが統計的に一様に近い」とは、統計的な距離Δ(D)が無視できるほど小さい(negligible)ことを意味する。「Δ(D)が無視できるほど小さい」とは、無視することができる値ρ(0≦ρ<1)に対してΔ(D)≦ρを満たすことを意味する。
<押し出し(Pushforward)>
2つの有限集合(例えば、有限体)をS,Tと表し、SからTへの写像をFと表す。S上の任意の確率分布Dに対し、以下を満たすT上の確率分布を確率分布Dの写像Fによる押し出しF*と表す。
Figure 2016180840
<α−regular>
S上の一様分布をUと表す。押し出しF*と一様分布との統計的な距離がα以下である場合、写像Fはα−regularであるという。
[第1実施形態]
第1実施形態では、複数の装置間で実行される楕円曲線暗号プロトコルを一般化して説明する。すなわち、或る装置が或る楕円曲線暗号プロトコルを実行して楕円曲線上の点を得、他の装置がその楕円曲線上の点を用いて当該楕円曲線暗号プロトコルを実行する。この際、ネットワーク送信などによって装置間を伝送される楕円曲線上の点に対する識別攻撃からシステムを保護する。
<構成>
図1Aに例示するように、本形態の楕円曲線暗号システム1は、楕円曲線暗号プロトコルを実行する楕円曲線暗号装置11,12を有する。楕円曲線暗号装置11は、楕円曲線演算部111、符号化部112、通信部113、および記憶部114を有する。楕円曲線暗号装置12は、楕円曲線演算部121、復号部122、通信部123、および記憶部124を有する。図1Bに例示するように、本形態の楕円曲線演算部121は、選択部1121,1124,1127、演算部1122,1123、判定部1125、逆像部1126、およびビットストリング変換部1128を有する。入力された情報や各部から出力された情報は記憶部114,124にそれぞれ格納される。記憶部114,124に格納された情報は、必要に応じて各部に読み込まれる。
楕円曲線暗号装置11,12は、例えば、ハードウェア・プロセッサ(例えば、CPU:central processing unit)やメモリ(例えば、RAM:random-access memory)などを備えた専用または汎用のコンピュータに所定のプログラムが読み込まれることによって構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。各楕円曲線暗号装置11,12は、ネットワーク等を通じて情報の伝送が可能なように構成されている。
楕円曲線暗号システム1は、楕円曲線暗号プロトコルの全過程を実行するものであってもよいし、その一部の過程のみを実行するものであってもよい。また、楕円曲線暗号システム1が楕円曲線暗号装置11,12以外の楕円曲線暗号装置を含んでいてもよいし、楕円曲線暗号装置11,12がその他の処理部を含んでいてもよい。
<処理>
図2Aを用いて本形態の処理を説明する。まず、楕円曲線暗号装置11の楕円曲線演算部111が楕円曲線暗号プロトコルを実行し、或る楕円曲線上の計算を行ってその演算結果である楕円曲線上の点を得る(ステップS111)。この楕円曲線上の計算は、例えば、或る秘密情報に対応する楕円曲線上の点を得る計算である。得られた楕円曲線上の点を表す情報は、符号化部112に送られる。
符号化部112は、楕円曲線演算部111で得られた楕円曲線上の点に対応する符号を得て出力する(ステップS112)。この符号はランダムな情報から統計的に識別することが不可能な情報(識別不可能な情報)である。言い換えると、この符号の分布は統計的に一様であるか、または統計的に一様に近い。ステップS112の処理の詳細は後述する。
通信部113は、符号化部112で得られた符号を、ネットワーク等を通じ、楕円曲線暗号装置12に送信する(ステップS113)。
楕円曲線暗号装置12の通信部123は、送信された符号を受信し、復号部122に送る(ステップS123)。
復号部122は、送られた符号を復号して楕円曲線上の点を得て出力する(ステップS122)。この処理の詳細は後述する。
楕円曲線演算部121は、送られた楕円曲線上の点を用いて当該楕円曲線上の計算を行い、楕円曲線暗号プロトコルを実行する(ステップS121)。
≪ステップS112の処理の詳細≫
位数qの有限体F上の楕円曲線(すなわち、有限体F上で定義された楕円曲線)をEと表現する。qは正整数であり、例えば、素数である。有限体Fの元zを楕円曲線E上の点f(z)に写す写像をfと表現する。例えば、fは有限体Fを楕円曲線E上の有理点の集合である有限群E(F)へ移す写像(例えば、関数)である。IおよびJが有限体Fの部分集合であり、Iは有限体Fの区間(interval)である。Jは有限体Fの区間であってもよいし、区間でなくてもよい。なお、IおよびJの少なくとも一方は有限体Fの真部分集合である。IおよびJの両方が有限体Fの真部分集合であってもよいし(すなわちI,J⊂F)、Jのみが有限体Fの真部分集合であってもよいし(すなわちI=F,J⊂F)、Iのみが有限体Fの真部分集合であってもよい(すなわちI⊂F,J=F)。ステップS112では、楕円曲線E上の点Pに対し、部分集合Jの元をuとし、Q=P−f(u)とし、部分集合Iに属する逆像f−1(Q)をvとし(すなわち、v∈{f−1(Q)∩I})、順序対(u,v)∈J×Iに対応する情報を符号として出力する。これにより、有限体Fの2個の元u,vに対応する情報を符号としていたElligator Squared方式に比べ、情報量を削減でき、通信量を削減できる。この方式は、Elligator Squared方式と同様、任意の楕円曲線を用いた任意の楕円曲線暗号プロトコルに適用可能であり、識別攻撃に対する安全性を強化できる。
特に、部分集合Iの位数#Iと部分集合Jの位数#Jとの積#I・#Jが当該有限体Fの位数qよりも大きい場合(すなわち#I・#J>q)、識別攻撃に対する安全性をより強化できる。ここで、有限群E(F)の任意の非自明な指標χ(E(F))と任意の区間Iに対し、
Figure 2016180840

という不等式が成り立つような定数Bが存在すると仮定する。つまり、fがB-強良分散関数(B-strongly well-distributed encoding)であるとする。楕円曲線E上の任意の点P∈E(F)に対して、fによる点Pの原像数#f-1(P)が定数d以下であるとする(#f-1(P)≦d)。ただし、dは1以上の整数である。指標χ(E(F))は、E(F)の指標(character)であり、楕円曲線E上の有理点の集合を複素数集合に写す写像である。pは有限体Fの標数(characteristic)であり、c’は#I≧q/c’を満たす正の定数である。このとき、写像F(u,v)=f(u)+f(v)は、以下を満たすαについてα−regularであり、式(1)の右辺の値は無視できるほど小さい(証明省略)。
Figure 2016180840

ここでεが正の場合、式(1)の右辺の値が無視できるほど小さいのであれば、αも無視できるほど小さく、α−regularの定義から、順序対(u,v)の分布と一様分布との統計的な距離も無視できる。式(2)より、#I・#J>qであればεは正であり、順序対(u,v)はランダムな情報から統計的に識別することが不可能である。
順序対(u,v)のビットストリング表現について説明する。以下を満たす正の整数定数k1,k2を仮定する。
#I≦2k1 (3)
#J≦2k2 (4)
k1+k2<2n (5)
ただし、nは有限体Fの要素を表現可能な最小のビット数を表し(例えば、n=127)、n=ceil(logq)の関係を満たす。ceil(β)は実数βの天井関数であり、β以上の最小の整数を表す。この場合、部分集合Iの要素はk1−ビットのビットストリングとして表現でき、部分集合Jの要素はk2−ビットのビットストリングとして表現できる。順序対(u,v)∈J×Iの(k1+k2)−ビットのビットストリング表現をcode=BitEnc(u,v)で示し、その逆算を(u,v)=BitDec(code)で表す。ただし、BitEncは単射である。ここで、#I=2k1かつ#J=2k2である場合、BitEncは全単射となり、順序対(u,v)の一様性がそのビットストリング表現でも維持される。また、#I<2k1であったとしても#Iが2k1の近傍であれば、uの一様性がそのビットストリング表現でもほぼ維持される。同様に、#J<2k2であったとしても#Jが2k2の近傍であれば、vの一様性がそのビットストリング表現でもほぼ維持される。以上より、部分集合Iの位数#Iが2のべき乗または2のべき乗の近傍であり、かつ、部分集合Jの位数#Jが2のべき乗または2のべき乗の近傍であることが望ましい。また「μまたはμの近傍」とは、正値δ,δに対する「μ−δ以上μ+δ以下の範囲」を意味する。δ=δであってもよいし、δ≒δであってもよい。言い換えると、「μまたはμの近傍」とは、|ε|≦δとした場合にμ(1+ε)で表現できる範囲を意味する。ただし、δは十分に小さな正値であり、例えばδ=2−16またはδ=2−32である。2の近傍である位数の例は、2−O(2k/2)である。kは正の整数であり、「O」はビッグ・オー記法を意味する。以下に例を示す。
≪例1≫
#I>q/216 (6)
#I・#J≧216・q (7)
k1−2k1−16<#I≦2k1 (8)
k2−2k2−16<#J≦2k2 (9)
≪例2≫
#I>q/232 (10)
#I・#J≧232・q (11)
k1−2k1−32<#I≦2k1 (12)
k2−2k2−32<#J≦2k2 (13)
ステップS112で実行する確率的アルゴリズムを例示する。この例では、符号化部112が、楕円曲線E上の点Pを入力とし、以下の確率的アルゴリズムReprf,d(P)を実行し、uおよびv=vを得る。ただし、「η←β」は集合βからランダムに元η∈βを選択することを意味し、「β←γ」はγの条件を満たす値の集合βを得ることを意味する。
1 :function Reprf,d(P)
2 : repeat
3 : u←
4 : Q=P−f(u)
5 : t=#f-1(Q)∩I
6 : j←{1,...,d}
7 : until j≦t
8 : {v,...,v}←f-1(Q)∩I
9 : return(u,v)∈J×I
10:end function
例えば、図2Bに例示するように、符号化部112の選択部1121(図1B)は、部分集合Jの元u←Jをランダムに選択して出力する(ステップS1121)。演算部1122は、uおよび楕円曲線演算部111で得られた楕円曲線E上の点Pを入力とし、楕円曲線E上の演算P−f(u)によって楕円曲線E上の点Q=P−f(u)を得て出力する(ステップS1122)。演算部1123は、Qを入力とし、Qに対するfによる原像f-1(Q)であって部分集合Iに属する要素の数t=#f-1(Q)∩Iを得て出力する(ステップS1123)。選択部1124は、1以上d以下の整数からなる集合{1,...,d}から1以上d以下の整数j←{1,...,d}をランダムに選択して出力する(ステップS1124)。判定部1125は、jを入力とし、j≦tを満たすかを判定する(ステップS1125)。j≦tを満たさない場合、ステップS1121に戻る。j≦tを満たす場合、逆像部1126は、Qおよびtを入力とし、点Qに対するfによる原像f-1(Q)であって部分集合Iに属する要素からなる集合{v,...,v}←f-1(Q)∩Iを得て出力する(ステップS1126)。選択部1127は、{v,...,v}およびjを入力とし、v=vを出力する。ビットストリング変換部1128は、順序対(u,v)∈J×Iを入力とし、順序対(u,v)の(k1+k2)−ビットのビットストリング表現である符号Code=BitEnc(Reprf,d(P))=BitEnc(u,v)を得て出力する(ステップS1127)。なお、図2Bの処理は一例であり、複数のステップの処理を同時に実行する等、その他の処理手順によって楕円曲線E上の点Pから順序対(u,v)∈J×Iを得てもよい。
≪ステップS122の処理の詳細≫
ステップS122で実行する決定論アルゴリズムを例示する。この例では、復号部122が、順序対(u,v)について、以下の決定論アルゴリズムRecomb(u,v)を実行し、楕円曲線E上の点Pを得る。
1:function Recomb(u,v)
2:P=f(u)+f(v)
3:return P
4:end function
例えば図2Cに例示するように、復号部122が、符号Codeを入力として順序対(u,v)=BitDec(Code)を復号し(ステップS1221)、さらに楕円曲線E上の点P=Recomb(BitDec(Code))=f(u)+f(v)を得て(ステップS1222)、Pを出力する(ステップS1223)。
<本形態の特徴>
本形態のIおよびJは有限体Fの部分集合であり、IおよびJの少なくとも一方が有限体Fの真部分集合である。そのため、本形態の順序対(u,v)∈J×Iの情報量は、Elligator Squared方式の順序対(u,v)∈F の情報量よりも小さい。すなわち、本形態の順序対(u,v)∈J×Iのビットストリング表現のビット長は(k1+k2)−ビットであり、Elligator Squared方式の順序対(u,v)∈F のビットストリング表現のビット長2nよりも短い(式(3)から(5))。例えば、前述の式(6)から(9)の例では、順序対(u,v)∈J×Iのビットストリング表現のビット長は(n+16)ビットとなる。例えば、前述の式(10)から(13)の例では、順序対(u,v)∈J×Iのビットストリング表現のビット長は(n+32)ビットとなる。これにより、帯域幅オーバーヘッドや通信コストを削減でき、Elligator Squared の利点を保ったままElligator方式並みのビットサイズの最適さを達成する。
[第2実施形態]
第2実施形態では、楕円曲線暗号プロトコルとして楕円曲線上のDiffie-Hellman鍵交換(ECDH鍵交換)を実行し、その際に第1実施形態で説明した提案方式を適用する。ECDH鍵交換は装置間が共通の秘密情報を取得するためのプロトコルである。以下では、第1実施形態との相違点を中心に説明し、これまで説明した事項については説明を省略する。
<ECDH鍵交換の基本方式>
まず、ECDH鍵交換の基本方式について説明する。以下では、装置Aと装置Bとが共通の秘密情報Rを取得する例を示す。有限体F上の楕円曲線E、ならびに有限群E(F)の生成元Pおよび位数N(ただし、Nは1以上の整数)を公開パラメータとする。
S1:装置Aが一様ランダムな整数r{0,…,N−1}を選ぶ。同様に、装置Bが一様ランダムな整数r{0,…,N−1}を選ぶ。
S2:装置Aが楕円曲線E上の点R=rを計算し、それを表現した標準的ビットストリングを装置Bに送信する。同様に、装置Bが楕円曲線E上の点R=rを計算し、それを表現した標準的ビットストリングを装置Aに送信する。
S3:装置Aが装置Bから受け取った点Rのr倍算を計算し、共通の秘密情報R=r=rを取得する。同様に、装置Bが装置Aから受け取った点Rのr倍算を計算し、共通の秘密情報R=r=rを取得する。
しかし、このプロトコルは識別攻撃に対して脆弱である。その脆弱性を克服するために、前述したBernsteinらによるElligator方式を利用できる。Elligator方式によって保護されたプロトコルは以下のようになる。追加公開パラメータとして、単射的関数ι:INT→E(F)を導入する。ただし、INTは整数の区間である。
<Elligator方式によるECDH鍵交換>
S11:装置Aが一様ランダムな整数r{0,…,N−1}を選ぶ。同様に、装置Bが一様ランダムな整数r{0,…,N−1}を選ぶ。
S12:装置Aが楕円曲線E上の点R=rを計算する。もし、R∈ι(INT)でなければS11に戻る(棄却サンプリングAs)。同様に、装置Bが楕円曲線E上の点R=rを計算する。もし、R∈ι(INT)でなければS11に戻る(棄却サンプリングBs)。
S13:装置Aがu=ι−1(R)を計算し、それを表現した標準的ビットストリングを装置Bに送信する。同様に、装置Bがu=ι−1(R)を計算し、それを表現した標準的ビットストリングを装置Aに送信する。
S14:装置Aは装置Bから受け取った値uから点R=ι(u)を復元し、その点のr倍算を計算し、共通秘密R=rを取得する。同様に、装置Bが装置Aから受け取った値uからR=ι(u)を復元し、その点のr倍算を計算し、共通秘密R=rを取得する。
このプロトコルは識別攻撃から守られているが、棄却サンプリングAs,Bsのせいで、効率性は最適ではない。具体的にいうと、例えば、Rを計算するために、平均で2つのスカラー倍算が必要となる。ECDH鍵交換の基本方式に比べて演算速度が約1/2になる。一方、提案方式を適用した場合には、識別攻撃から保護できるとともにECDH鍵交換の基本方式の効率性をほぼ維持できる。以下に本形態の詳細を示す。
<構成>
図3に例示するように、本形態の楕円曲線暗号システム2は、ECDH鍵交換を行う楕円曲線暗号装置21,22を有する。楕円曲線暗号装置21は、楕円曲線演算部211,217、符号化部212、通信部213、選択部215、復号部216、および記憶部214を有する。楕円曲線暗号装置22は、楕円曲線演算部221,227、符号化部222、通信部223、選択部225、復号部226、および記憶部224を有する。楕円曲線暗号装置21,22は、入力された情報や各部から出力された情報は記憶部214,224にそれぞれ格納される。記憶部214,224に格納された情報は、必要に応じて各部に読み込まれる。楕円曲線暗号装置21,22は、例えば、専用または汎用のコンピュータに所定のプログラムが読み込まれることによって構成される。各楕円曲線暗号装置21,22は、ネットワーク等を通じて情報の伝送が可能なように構成されている。
<処理>
図4を用いて本形態の処理を説明する。まず、楕円曲線暗号装置21の選択部215が一様ランダムな整数r{0,…,N−1}を選択して出力する(ステップS215)。同様に、楕円曲線暗号装置22の選択部225が一様ランダムな整数r{0,…,N−1}を選択して出力する(ステップS225)。
楕円曲線暗号装置21の楕円曲線演算部211は、整数rを入力として楕円曲線E上の楕円曲線演算R=rを行い、楕円曲線E上の点Rを得て出力する(ステップS211)。符号化部212は、点Rを入力として符号s=BitEnc(Reprf,d(R))を得て出力する(ステップS212)。通信部213は、符号sを楕円曲線暗号装置22に送信する(ステップS2131)。同様に、楕円曲線暗号装置22の楕円曲線演算部221は、整数rを入力として楕円曲線E上の楕円曲線演算R=rを行い、楕円曲線E上の点Rを得て出力する(ステップS221)。符号化部222は、点Rを入力として符号s=BitEnc(Reprf,d(R))を得て出力する(ステップS222)。通信部223は、符号sを楕円曲線暗号装置21に送信する(ステップS2231)。
楕円曲線暗号装置21の通信部213は、符号sを受信する(ステップS2132)。復号部216は、符号sを入力として楕円曲線E上の点R=Recomb(BitDec(s))を復元して出力する(ステップS216)。楕円曲線演算部217は、整数rおよび点Rを入力として、点Rのr倍算R=rを計算し(ステップS2171)、楕円曲線E上の点R=rを秘密情報として出力する(ステップS2172)。同様に、楕円曲線暗号装置22の通信部223は、符号sを受信する(ステップS2232)。復号部226は、符号sを入力として楕円曲線E上の点R=Recomb(BitDec(s))を復元して出力する(ステップS226)。楕円曲線演算部227は、整数rおよび点Rを入力として、点Rのr倍算R=rを計算し(ステップS2271)、楕円曲線E上の点R=rを秘密情報として出力する(ステップS2272)。
[第3実施形態]
第3実施形態では、楕円曲線暗号プロトコルとして楕円曲線上のElGamal KEMを実行し、その際に第1実施形態で説明した提案方式を適用する。以下では、第1実施形態との相違点を中心に説明し、これまで説明した事項については説明を省略する。
楕円曲線上のElGamal KEMでは、公開鍵を楕円曲線E上のランダムな有理点R=xP∈E(F)とし、秘密鍵をxとする。そのプロトコルでは、楕円曲線E上の一様ランダムな有理点R=rPが選択され、点Rが暗号文として公開され、K=rRが短期鍵(一時鍵)として出力される。この方式は素数位数の楕円曲線E上ではIND-CPA安全なKEMとなるが、楕円曲線E上の点が送信されるので識別攻撃に対して脆弱である。その脆弱性を克服するためElligator方式を利用すれば、なるべく素数位数でない楕円曲線Eを使用しなくてはならず、IND-CPA安全性が失われてしまう。一方、提案方式を適用した場合には、脆弱性を克服したまま素数位数の曲線を使うことができ、IND-CPA安全性を維持できる。以下に本形態の詳細を示す。
<構成>
図5に例示するように、本形態の楕円曲線暗号システム3は、ECDH鍵交換を行う楕円曲線暗号装置31,32,33を有する。楕円曲線暗号装置31は公開鍵を生成する装置であり、楕円曲線暗号装置32は短期鍵の暗号文を生成する装置であり、楕円曲線暗号装置33はこの暗号文を復号して短期鍵を生成する装置である。楕円曲線暗号装置31は、楕円曲線演算部311、符号化部312、通信部313、記憶部314、および選択部315を有する。楕円曲線暗号装置32は、楕円曲線演算部321,327、符号化部322、通信部323、記憶部324、選択部325、および復号部326を有する。楕円曲線暗号装置33は、楕円曲線演算部331、復号部332、通信部333、および記憶部334を有する。楕円曲線暗号装置31,32,33は、入力された情報や各部から出力された情報は記憶部314,324,334にそれぞれ格納される。記憶部314,324,334に格納された情報は、必要に応じて各部に読み込まれる。楕円曲線暗号装置31,32,33は、例えば、専用または汎用のコンピュータに所定のプログラムが読み込まれることによって構成される。各楕円曲線暗号装置31,32,33は、ネットワーク等を通じて情報の伝送が可能なように構成されている。
<処理>
図6を用いて本形態の処理を説明する。まず、楕円曲線暗号装置31の選択部315が一様ランダムな整数x←{0,…,pr−1}を秘密鍵として選択して出力する(ステップS315)。ただし、楕円曲線Eの位数が素数prであるとする。prは公開パラメータである。また、秘密鍵xは楕円曲線暗号装置33の記憶部334に安全に格納される。楕円曲線演算部311は、整数xを入力とし、楕円曲線Eの楕円曲線演算R=rを行い、楕円曲線E上の点R(公開鍵)を得て出力する(ステップS311)。符号化部312は、点Rを入力として符号pk=BitEnc(Reprf,d(R))を得て出力する(ステップS312)。通信部313は、符号pkを楕円曲線暗号装置32に送信する(ステップS313)。
楕円曲線暗号装置32の通信部323は、符号pkを受信する(ステップS3231)。選択部325が一様ランダムな整数r←{0,…,pr−1}を選択して出力する(ステップS325)。楕円曲線演算部321は、整数rを入力とし、楕円曲線E上の楕円曲線演算R=rPを行い、楕円曲線E上の点R(暗号文)を得て出力する(ステップS321)。復号部326は、符号pkを入力として楕円曲線E上の点R=Recomb(BitDec(pk))を復元して出力する(ステップS326)。楕円曲線演算部327は、整数rおよび点Rを入力として楕円曲線E上の楕円曲線演算K=rRを行い(ステップS3271)、楕円曲線E上の点K=rxPを短期鍵として出力する(ステップS3272)。符号化部322は、点Rを入力として符号c=BitEnc(Reprf,d(R))を得て出力する(ステップS322)。通信部323は、符号cを楕円曲線暗号装置32に送信する(ステップS3232)。
楕円曲線暗号装置33の通信部333は、符号cを受信する(ステップS333)。復号部332は、符号cを入力として楕円曲線E上の点R=Recomb(BitDec(c))を復元して出力する(ステップS332)。楕円曲線演算部327は、記憶部324から読み出した秘密鍵xおよび点Rを入力として楕円曲線E上の楕円曲線演算K=xRを行い(ステップS3311)、楕円曲線E上の点K=xrPを短期鍵として出力する(ステップS3312)。
[第4実施形態]
第4実施形態では、楕円曲線暗号プロトコルとして、Boneh-Lynn-Shachamが提案した、ペアリングベースの非常にコンパクトな電子署名方式(BLS署名方式:D. Boneh, B. Lynn, and H. Shacham. Short signatures from the Weil pairing. J. Cryptology,17(4):297-319, 2004.)を実行し、その際に第1実施形態で説明した提案方式を適用する。以下では、第1実施形態との相違点を中心に説明し、これまで説明した事項については、それらと同じ参照符号を用いて説明を省略する。
BLS署名方式も識別攻撃に対して脆弱である。しかし、BLS署名方式は決定論署名アルゴリズムなので、こういった脆弱性を克服するためにElligator方式を用いることは不可能である。なぜなら、BLS署名方式の署名はxH(m)というような楕円曲線上の点であり、メッセージmによっては可逆単射的関数の像に入らない可能性があり、その場合はElligator 方式が失敗するのである。なお、xは整数であり、H(m)はメッセージmを楕円曲線上の点へ写すハッシュ関数である。一方、提案方式はBLS署名方式に適応しやすく、安全性と効率性も大抵維持できる。以下に本形態の詳細を示す。
<構成>
図7に例示するように、本形態の楕円曲線暗号システム4は、BLS署名方式を実行する楕円曲線暗号装置31,42,43を有する。楕円曲線暗号装置31は公開鍵を生成する装置であり、楕円曲線暗号装置43は署名を生成する装置であり、楕円曲線暗号装置42は署名を検証する装置である。楕円曲線暗号装置42は、楕円曲線演算部421、復号部422,426、通信部423、および記憶部424を有する。楕円曲線暗号装置43は、楕円曲線演算部431、符号化部432、通信部433、および記憶部434を有する。楕円曲線暗号装置42,43は、入力された情報や各部から出力された情報は記憶部424,434にそれぞれ格納される。記憶部424,434に格納された情報は、必要に応じて各部に読み込まれる。楕円曲線暗号装置42,43は、例えば、専用または汎用のコンピュータに所定のプログラムが読み込まれることによって構成される。各楕円曲線暗号装置42,43は、ネットワーク等を通じて情報の伝送が可能なように構成されている。
<処理>
図8を用いて本形態の処理を説明する。なお、以下では楕円曲線Eがpairing-friendly楕円曲線であり、eが楕円曲線E上の対称ペアリングとする(ただし、eが非対称ペアリングでもよい)。Hは任意のビットストリングであるメッセージmを有限群E(F)へ写すハッシュ関数である。例えば、H(m)=Recomb(BitDec(SHA2(m)))である。なお、E,e,Hは公開パラメータである。
まず、楕円曲線暗号装置31が前述したステップS315〜S313の処理を行う。ただし、選択部315で選択された整数xは、秘密鍵として楕円曲線暗号装置43の記憶部434に安全に格納される。
楕円曲線暗号装置43の楕円曲線演算部431は、入力されたメッセージmおよび記憶部434から読み出した秘密鍵xを入力とし、楕円曲線E上の楕円曲線演算S=xH(m)を行い、楕円曲線E上の点S(署名)を得て出力する(ステップS421)。符号化部432は、点Sを入力として符号s=BitEnc(Reprf,d(S))を得て出力する(ステップS432)。符号化部432は、メッセージmを表す情報と符号sを楕円曲線暗号装置42に送信する(ステップS433)。
楕円曲線暗号装置42の通信部423は、楕円曲線暗号装置31から送信された符号pkを受信し(ステップS4231)、楕円曲線暗号装置43から送信されたメッセージmを表す情報と符号sを受信する(ステップS4232)。復号部422は、符号pkを入力として楕円曲線E上の点R=Recomb(BitDec(pk))を復元して出力する(ステップS422)。復号部426は、符号sを入力として楕円曲線E上の点S=Recomb(BitDec(s))を復元して出力する(ステップS426)。楕円曲線演算部327は、点R,S,メッセージmを入力とし、楕円曲線E上の演算によってe(H(m),R)=e(S,P)を満たすか否かを判定する(ステップS4211)。楕円曲線演算部327は、e(H(m),R)=e(S,P)を満たす場合に署名検証が合格である旨の検証結果を出力し、そうでない場合に署名検証が不合格である旨の検証結果を出力する(ステップS4212)。
[変形例等]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、dが#f-1(P)∩I≦dを満たす定数であってもよい。各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。すなわち、これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
1〜4 楕円曲線暗号システム
11〜41,12〜42,33,43 楕円曲線暗号装置

Claims (10)

  1. 楕円曲線上の点Pを得る楕円曲線演算部と、
    IおよびJが有限体の部分集合であり、Iが区間であり、IおよびJの少なくとも一方が前記有限体の真部分集合であり、fが前記有限体の元zを前記楕円曲線上の点f(z)に写す写像であり、uが前記部分集合Jの元であり、Q=P−f(u)であり、前記元uと前記部分集合Iに属する逆像v=f−1(Q)とに対応する符号を出力する符号化部と、
    を有する楕円曲線暗号装置。
  2. 請求項1の楕円曲線暗号装置であって、
    前記符号はランダムな情報から統計的に識別することが不可能な情報である、楕円曲線暗号装置。
  3. 請求項1または2の楕円曲線暗号装置であって、
    前記部分集合Iの位数と前記部分集合Jの位数との積が前記有限体の位数よりも大きい、楕円曲線暗号装置。
  4. 請求項1から3の何れかの楕円曲線暗号装置であって、
    前記部分集合Iの位数が2のべき乗または2のべき乗の近傍であり、かつ、前記部分集合Jの位数が2のべき乗または2のべき乗の近傍である、楕円曲線暗号装置。
  5. 請求項1から4の何れかの楕円曲線暗号装置であって、
    前記Jが前記有限体の真部分集合である、楕円曲線暗号装置。
  6. 請求項1から5の何れかの楕円曲線暗号装置であって、
    前記IおよびJが前記有限体の真部分集合である、楕円曲線暗号装置。
  7. 請求項1から6の何れかの楕円曲線暗号装置であって、
    前記有限体が位数qの有限体Fであり、前記楕円曲線が前記有限体F上で定義されており、前記写像fが前記有限体Fを前記楕円曲線上の有理点の集合である有限群E(F)へ移す強良分散写像であり、χ(E(F))が前記有限群E(F)の任意の非自明な指標であり、pが有限体Fの標数であり、前記Iが前記有限体Fの区間であり、
    Figure 2016180840

    を満たす定数Bが存在する、楕円曲線暗号装置。
  8. Pが楕円曲線上の点であり、IおよびJが有限体の部分集合であり、IおよびJの少なくとも一方が前記有限体の真部分集合であり、fが前記有限体の元zを前記楕円曲線上の点f(z)に写す写像であり、uが前記部分集合Jの元であり、Q=P−f(u)であり、前記元uと前記部分集合Iに属する逆像v=f−1(Q)とに対応する符号を出力する符号化部と、
    前記符号を入力とし、f(u)+f(v)によって前記楕円曲線上の点Pを復元する復号部と、
    を有する楕円曲線暗号システム。
  9. 楕円曲線演算部が楕円曲線上の点Pを得るステップと、
    IおよびJが有限体の部分集合であり、Iが区間であり、IおよびJの少なくとも一方が前記有限体の真部分集合であり、fが前記有限体の元zを前記楕円曲線上の点f(z)に写す写像であり、uが前記部分集合Jの元であり、Q=P−f(u)であり、符号化部が、前記元uと前記部分集合Iに属する逆像v=f−1(Q)とに対応する符号を出力するステップと、
    を有する楕円曲線暗号方法。
  10. 請求項1から7の何れかの楕円曲線暗号装置としてコンピュータを機能させるためのプログラム。
JP2015060569A 2015-03-24 2015-03-24 楕円曲線暗号装置、楕円曲線暗号システム、楕円曲線暗号方法、およびプログラム Active JP6261538B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015060569A JP6261538B2 (ja) 2015-03-24 2015-03-24 楕円曲線暗号装置、楕円曲線暗号システム、楕円曲線暗号方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015060569A JP6261538B2 (ja) 2015-03-24 2015-03-24 楕円曲線暗号装置、楕円曲線暗号システム、楕円曲線暗号方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2016180840A true JP2016180840A (ja) 2016-10-13
JP6261538B2 JP6261538B2 (ja) 2018-01-17

Family

ID=57131768

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015060569A Active JP6261538B2 (ja) 2015-03-24 2015-03-24 楕円曲線暗号装置、楕円曲線暗号システム、楕円曲線暗号方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6261538B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023504935A (ja) * 2020-07-30 2023-02-07 ダッパー ラボ インコーポレイテッド 機密知識の特殊な証明を提供するシステムおよび方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060165231A1 (en) * 2002-10-26 2006-07-27 The Additional Director (Ipr) Defence Research & Development Organisation Method of elliptic curve encryption
JP2015125343A (ja) * 2013-12-27 2015-07-06 日本電信電話株式会社 楕円曲線暗号装置、楕円曲線暗号システム、およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060165231A1 (en) * 2002-10-26 2006-07-27 The Additional Director (Ipr) Defence Research & Development Organisation Method of elliptic curve encryption
JP2015125343A (ja) * 2013-12-27 2015-07-06 日本電信電話株式会社 楕円曲線暗号装置、楕円曲線暗号システム、およびプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
RAZA R. FARASHAHI ET AL.: "Indifferentiable Deterministic Hashing to Elliptic and Hyperelliptic Curves", CRYPTOLOGY EPRINT ARCHIVE, vol. Report 2010/539,Ver. 20101025:150950, JPN6016038082, October 2010 (2010-10-01) *
ティブシ・メディ: "素数位数楕円曲線上の点を一様に近いビットストリングとして表す手法", 2014年 暗号と情報セキュリティシンポジウム SCIS2014 [CD−ROM], vol. 3F4−4, JPN6017041915, 21 January 2014 (2014-01-21), JP, pages pp.1−6 *
吉田 順二 ほか: "楕円曲線上の暗号に関する二,三の手法", 電子情報通信学会技術研究報告, vol. Vol.92 No.499, JPN6017041918, 15 March 1993 (1993-03-15), JP, pages pp.37−45 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023504935A (ja) * 2020-07-30 2023-02-07 ダッパー ラボ インコーポレイテッド 機密知識の特殊な証明を提供するシステムおよび方法
JP7251035B2 (ja) 2020-07-30 2023-04-04 ダッパー ラボ インコーポレイテッド 機密知識の特殊な証明を提供するシステムおよび方法
US11824990B2 (en) 2020-07-30 2023-11-21 Dapper Labs, Inc. Systems and methods providing specialized proof of confidential knowledge

Also Published As

Publication number Publication date
JP6261538B2 (ja) 2018-01-17

Similar Documents

Publication Publication Date Title
EP3091690B1 (en) Rsa decryption using multiplicative secret sharing
CN101300570B (zh) 用于使用数字签名的网络编码内容分发的方法和系统
RU2376651C2 (ru) Использование изогений для разработки криптосистем
Naskar et al. DNA encoding and channel shuffling for secured encryption of audio data
EP2582085A1 (en) Generating implicit certificates
Meneses et al. RSA encryption algorithm optimization to improve performance and security level of network messages
CN114586313A (zh) 用于签署一信息的系统及方法
US20130091362A1 (en) Generating implicit certificates
JP6041864B2 (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
Gupta et al. Session key based novel lightweight image encryption algorithm using a hybrid of Chebyshev chaotic map and crossover
CN116830523A (zh) 阈值密钥交换
CN115580396A (zh) 匿踪查询系统及匿踪查询方法
JP6059347B2 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
Jeong et al. Secure cloud storage service using bloom filters for the internet of things
JP6261538B2 (ja) 楕円曲線暗号装置、楕円曲線暗号システム、楕円曲線暗号方法、およびプログラム
Bandara et al. On advances of lattice-based cryptographic schemes and their implementations
Fanfara et al. Usage of asymmetric encryption algorithms to enhance the security of sensitive data in secure communication
JP6063860B2 (ja) 楕円曲線暗号装置、楕円曲線暗号システム、およびプログラム
Heßeling et al. Pareto-optimal covert channels in sensor data transmission
Kader et al. Performance evaluation of new hybrid encryption algorithms to be used for mobile cloud computing
CN115883212A (zh) 信息处理方法、装置、电子设备和存储介质
Hwang et al. An SKP-ABE scheme for secure and efficient data sharing in cloud environments
Zhao et al. Privacy preserving search services against online attack
Ashraf et al. Lightweight and authentic symmetric session key cryptosystem for client–server mobile communication
Mujeerulla et al. Demerits of Elliptic Curve Cryptosystem with Bitcoin Curves Using Lenstra–Lenstra–Lovasz (LLL) Lattice Basis Reduction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171212

R150 Certificate of patent or registration of utility model

Ref document number: 6261538

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150