説明

暗黙の証明書検証

【課題】暗黙の証明書検証の提供。
【解決手段】暗号システムを介して互いに通信し合う一対の通信者の間で共有されるべき暗号鍵を計算する方法が提供される。ここで一対の通信者のうちの一方の通信者は、鍵を生成するためにその一方の通信者の秘密鍵情報と組み合わされるべき他方の通信者の公開鍵情報の証明書を受け取る。その方法は、公開鍵情報と秘密鍵情報とを組み合わせることによって鍵を計算するステップと、証明書の検証に失敗した結果として一方の通信者での鍵が他方の通信者で計算された鍵とが異なるように、証明書の検証に対応する成分を計算に含めるステップとを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、公開鍵暗号法に関する。
(本発明の概要)
公開鍵暗号法は、一対の通信者の間の安全な通信を可能にし、一対の通信者のうちの一方の通信者が発するメッセージの認証を可能にするために用いられる。公開鍵暗号法において各通信者は、数学的関数による秘密鍵に関連した秘密鍵および公開鍵を利用する。その数学的関数は、関係者の秘密鍵が対応する公開鍵から獲得され得ないことを保証するために「困難な」数学的問題を提供する。そのような問題は、RSA暗号システムにおいて用いられる2つの大きな素数の積を因数分解する困難さ、およびデジタル署名アルゴリズム(DSA)において用いられる有限体上の離散対数問題の難しさ(intractabiliy)を含む。離散対数システムは、広く用いられ、そのようなシステムの特定の適用は、有限体上に定義された楕円曲線の点を使用する。楕円曲線暗号システム(ECC)として参照されるそのようなシステムは、他のシステムよりも小さい鍵の大きさで高いレベルの安全性を提供する。
【0002】
メッセージが安全に交換されるべきときは、通信者間でそれぞれの秘密鍵を開示しないで共有される鍵を構築するために、公開鍵および秘密鍵が、概して鍵の合意プロトコルとして参照される特定のプロトコルにおいて用いられる。次いで、共有される鍵は、通信者間のメッセージを暗号化および復号するために用いられ得る。
【0003】
楕円曲線公開鍵の鍵の合意プロトコルは、典型的には以下のステップを含む。
・鍵のコントリビューション(key contribution):各関係者は、任意の整数である秘密鍵と、かつ一時的な公開鍵を表す点を提供するためのシード点とから、任意の短期の(一時的な)公開鍵を生成し、対応する一時的な公開鍵(しかし、秘密鍵ではない)をもう一方の関係者に伝える。加えて、鍵のコントリビューションは、その長期の固定的な公開鍵を伝え得る。
・鍵の設定:各関係者は、他方の関係者から受け取った固定的および一時的な鍵に基づいて、および自身で生成した秘密鍵に基づいて、共有される鍵を計算する。楕円曲線の特性に起因して、両方の関係者は、同一の共有される鍵に到達する。
・鍵の認証:各関係者は、共通の鍵を計算する能力があり得る唯一の関係者が、本当に、その受け取られた通信する関係者である証拠を獲得するために、他方の関係者の長期の固定的な鍵の信頼性を検証する。
・鍵の確認:各関係者は、いずれかの関係者によって伝えられた鍵のコントリビューションに対応するストリング(string)を介して通例ではメッセージの認証チェック値を伝えることによって、他方の関係者に対し共通の鍵の所有を実証する。このことは、各関係者に対して他方の関係者の真の識別を確認し、その関係者が首尾よく共通の鍵を計算したことを証明する。このステップは、鍵の合意プロトコルの一部として、またはその後に、共有される鍵の使用を介して行われ得る。
【0004】
鍵の認証ステップは、典型的には上記で説明された他のプロトコルステップとは独立に実行され、対応する公開鍵を手段として関係者とその秘密鍵との間の結合の信頼性を請け合う証明書の有効性をチェックすることに通例では関係する。別個の鍵の認証ステップが、(例えば、証明書の使用における)より大きな柔軟性を可能にするが、かなりのコストで行われる。なぜなら、鍵の合意プロトコルのオンラインでの計算コストは、鍵の認証ステップのコストと、鍵の設定ステップ中の鍵の計算のコストとの合計によって支配されるからである。
【0005】
証明書は、本質的に通信者の公開鍵への信頼された関係者の署名と、発行する関係者の名前および証明書の保有者の名前のような他の情報とが一緒になったものである。ECCシステムにおいて、署名は、通例ではECDSAプロトコルを用いて実行され、検証されるが、他の署名プロトコルもまた、用いられ得る。例として、ECDSA署名生成は、ECCのドメインパラメーター、秘密鍵d、およびメッセージmに対して機能し、メッセージmは、証明書に関しては、通信者の公開鍵を含む。出力は、署名(r,s)である。ここで署名の成分rおよびsは、整数であり、以下のように進められる。
1.任意の整数
【0006】
【数1】

を選ぶ。nは、ドメインパラメーターのうちの1つである。
2.kG=(x,y)を計算し、xを整数
【0007】
【数2】

に変換する。ここでGは、楕円曲線E上の点であり、ドメインパラメーターのうちの1つである。
3.
【0008】
【数3】

を計算する。ここでr=0の場合には、ステップ1に戻る。
4.e=H(m)を計算する。ここでHは、出力がnのビット長さを超えないビット長さを有する、暗号ハッシュ関数を示す(この条件が満たされない場合には、Hの出力は切り捨て(truncate)られ得る)。
5.s=k−1(e+αr)mod nを計算する。ここでαは、署名者の長期の秘密鍵である。s=0の場合には、ステップ1に戻る。
6.対(r,s)をメッセージmのECDSA署名として出力する。
【0009】
ECDSA署名検証は、いくつかのドメインパラメーター、長期の公開鍵Q(ここでQ=αG)、メッセージm、および上記で導かれた署名(r,s)に対して機能する。ECDSA署名検証の出力は、署名の拒絶または承認であり、以下のように進められる。
1.rおよびsが区間[1,n−1]にある整数であることを検証する。すべての検証が失敗する場合には、拒絶が返される。
2.e=H(m)を計算する。
3.w=s−1 mod nを計算する。
4.u=ew mod nおよびu=rw mod nを計算する。
5.R=uG+uQ=s−1(eG+rQ)を計算する。(上記の3および4から)6.R=∞の場合には、署名は、拒絶される。
7.Rのx座標xを整数
【0010】
【数4】

に変換する。
【0011】
【数5】

を計算する。
8.ν=rの場合には、署名は、承認される。そうでない場合には、署名は、拒絶される。
【0012】
ECGDSAのような他の署名生成および検証のステップが用いられ得ること、および署名の完全性を確認する特定のステップが時として省略されることは、認識されるであろう。
【0013】
したがって、通信者の公開鍵、すなわち通信者の公開鍵および他の情報を含むメッセージmを認証するためには、証明書上の署名を検証することが必要である。
【0014】
認証に続いて、各関係者が本当に同一であることを確認するのが通例である。2つの関係者AとBとの間で鍵の合意プロトコルの実行中、関係者Aが鍵Kを構築している間に、関係者Bは、鍵Kを構築する。鍵の確認は、Aが何らかの量f(K)(ここでfは、何らかの公知の関数である)をB(Bは、これを彼自身の計算された値f(K)と比較し、これらの値が一致する場合にのみ承認する(およびその逆))に伝えることによって、Kについての知識をBに対して実証することからなる。この関数fは、f(K)=f(K)の場合に圧倒的な確率でK=±Kとなり、共通の鍵が設定されるような関数である。
【発明の概要】
【発明が解決しようとする課題】
【0015】
上記で留意されたように、鍵の認証ステップは、鍵の合意プロトコルにかなりの計算負荷を追加する。したがって、本発明の目的は、上記の不利な点を除去または軽減することである。
【課題を解決するための手段】
【0016】
一般的に言って、本出願人は、共有される鍵と証明書検証との組み合わせを結合して計算することによって、証明書の暗黙の検証が後続の鍵の確認ステップにおいて獲得されることを認識した。
【0017】
好ましくは、署名検証は、証明書の検証の失敗の結果、共有される鍵の値の間の不一致が生じるような同次の検証方程式、すなわち0に等しい方程式を用いる。
【0018】
1つの局面において、暗号システムを介して互いに通信する一対の通信者の間で共有されるべき暗号鍵を計算する方法が提供され、一対の通信者のうちの一方の通信者は、鍵を生成するためにその一方の通信者の秘密鍵情報と組み合わされるべき他方の通信者の公開鍵情報の証明書を受け取り、その方法は、公開鍵情報と秘密鍵情報とを組み合わせることによって鍵を計算するステップと、証明書の検証に失敗した結果として一方の通信者での鍵が他方の通信者で計算された鍵とが異なるように、証明書の検証に対応する成分を計算に含めるステップとを含む。
【0019】
別の局面において、コンピューター読み取り可能な媒体、暗号ユニット、および上記の方法のステップを実行するために構成されるシステムが提供される。
例えば、本願発明は以下の項目を提供する。
(項目1)
暗号システムを介して互いに通信する一対の通信者の間で共有されるべき暗号鍵を計算する方法であって、該一対の通信者のうちの一方の通信者は、該鍵を生成するために該一方の通信者の秘密鍵情報と組み合わされるべき他方の通信者の公開鍵情報の証明書を受け取り、該方法は、
該公開鍵情報と該秘密鍵情報とを組み合わせることによって該鍵を計算するステップと、
該証明書の検証に失敗した結果として、該一方の通信者での鍵が該他方の通信者で計算された鍵とは異なるように、該証明書の検証に対応する成分を該計算に含めるステップと
を含む、方法。
(項目2)
前記検証は、前記証明書に含まれる署名を利用する、項目1に記載の方法。
(項目3)
前記成分は、前記証明書が検証するときにゼロに等しい、項目2に記載の方法。
(項目4)
前記証明書の検証を隠すために、任意の要素が前記成分に含まれる、項目3に記載の方法。
(項目5)
前記任意の要素は、前記署名の検証において繰り返される反復を提供することにより、側面チャネル攻撃を禁止するように選ばれる、項目4に記載の方法。
(項目6)
前記暗号システムは、楕円曲線暗号システムである、項目1に記載の方法。
(項目7)
前記計算は、重複点の倍増を用いて実行される、項目6に記載の方法。
(項目8)
前記証明書は、楕円曲線署名プロトコルによって実行される署名を含む、項目6に記載の方法。
(項目9)
前記署名プロトコルは、ECDSAである、項目8に記載の方法。
(項目10)
前記公開鍵情報は、楕円曲線の点を表し、公開鍵情報と前記秘密鍵情報との組み合わせが点の倍増を含む、項目6に記載の方法。
(項目11)
前記署名の検証は、重複点の倍増を要求する、項目10に記載の方法。
(項目12)
前記計算は、重複点の倍増を用いて実行される、項目11に記載の方法。
(項目13)
前記一方の通信者によって生成された鍵が前記他方の通信者の鍵と一致することを確認するステップを含む、項目1に記載の方法。
【図面の簡単な説明】
【0020】
本発明の一実施形態がここで添付の図面を参照することにより説明される。
【図1】図1は、データ通信システムの概略を表示する図である。
【図2】図2は、第一の鍵の合意プロトコルを表示する図である。
【図3】図3は、さらなる鍵の合意プロトコルを表示する図である。
【発明を実施するための形態】
【0021】
(本発明の詳細な説明)
したがって、図1を参照すると、暗号通信システムが、数字10によって一般的に示されている。システム10は、通信チャネル16を介して互いに通信し得る第一の通信者12および第二の通信者14を有する。通信チャネル16は、安全であり得るか、または、安全でないこともあり得る。各通信者は、選ばれた体上で定義される楕円曲線E上で機能する暗号化操作を実行するために、暗号モジュール18および暗号モジュール20をそれぞれ有する。暗号モジュール18は、以下に説明されるもののような暗号化操作を実行するように構成されるハードウェア、コンピューター読み取り可能なソフトウェア命令または両者の組み合わせであり得る。
【0022】
通信者12は、長期の秘密鍵「a」と、対応する長期の公開鍵A=aGとを有し、ここでGはドメインパラメーターにおける特定の曲線上の基点である。
【0023】
通信者12に対して公開鍵Aを認証するために、証明書Tが、信頼された機関から獲得される。証明書は、信頼された機関の公開鍵Qを用いて検証され得る公開鍵Aに関する信頼された機関の署名を含む。
【0024】
同様に、通信者14は、長期の秘密鍵bと、対応する長期の公開鍵B=bGと、その公開鍵の証明書Tとを有する。証明書Tは、証明書Tを獲得するために用いられたものとは異なる別の信頼された関係者によってか、または別の公開鍵を用いて、署名された可能性がある。
【0025】
典型的には、通信者12、14はそれぞれ、対応する一時的な公開鍵xG、yGを生成するセッションまたは一時的な秘密鍵として用いるための、任意の整数x、yを生成し得る。しかしながら、明確さのために、共通の鍵が各通信者の長期の鍵を用いて設定される第一の実施形態が、説明される。
【0026】
図2に示された第一の鍵の合意プロトコルにおいて、固定的(static)な楕円曲線ディフィ・ヘルマン(Diffie Hellman)(ECDH)鍵生成が、証明書T、Tを用いて使用され、ECDSAを用いて署名される。
【0027】
最初に、通信者12、14は、公開鍵A、Bおよびそれぞれの証明書T、Tを交換する。共通の鍵は、K=abGであり、K=abGは、各関係者に対して、受け取られた公開情報および各関係者が有する秘密情報から計算され得る。その結果、K=aBおよびK=bAである。
【0028】
鍵の信頼性を検証するために、証明書TおよびTを検証するのが通常である。しかしながら、本実施形態において、鍵の生成および認証は、効率性を提供するために、結合して実行される。上記で留意されたように、ECDSAは、その検証において、
【0029】
【数6】

を提供する。したがって、証明書が検証する場合には、s−1(eG+rQ)−R=Σ=Oである。Rの値は、点Rのx座標の値になるようにrを取ることによって署名成分rから復元され得る。x座標は、2つの可能なyの値を提供し、曖昧さを解決するために、正しい値の指示が署名に含まれるか、または、Rが計算されることを可能にする正しい値として値のうちの1つの値を選ぶために予め合意されたルールがある。Rを復元する付加的な技術は、米国特許出願第11/333,296号において開示され、その内容は、参照により援用される。
【0030】
各通信者はまた、証明書T、Tから署名(r,s)を有する。鍵Kを計算するために、通信者12は、公開鍵情報と秘密鍵情報とを組み合わせ、署名の検証に対応する成分を含むことによって鍵Kを計算する。したがって、
=abG+λ(s−1(eG+r)−R
この式で、
λは、任意の値である。
、sは、証明書Tの署名成分である。
は、証明書におけるメッセージmのハッシュである。証明書は、通信者14の公開鍵Bを含む。そして、
は、rから復元される値である。
【0031】
証明書がBの公開鍵を認証する場合には、署名検証成分
【0032】
【数7】

がゼロであるべきであり、したがって、計算の結果が鍵K=aBをもたらすべきであることは、認められるであろう。
【0033】
同様に、通信者14は、r、s、およびRの値が証明書Tと関連するK=abG+λ(s−1(eG+r)−R)を計算する。さらにまた、証明書が認証する場合には、これは、鍵K=bAをもたらすべきである。
【0034】
通信者12、14がそれぞれの鍵K、Kを計算した後で、それらは、共通の鍵の機能である情報を交換するための鍵確認ステップを実行する。受け取られた情報が計算されたものと一致しない場合には、鍵は、拒絶される。
【0035】
共通の鍵が異なる1つの理由は、証明書の検証部分から獲得された値がゼロでなく、証明書が認証していないことを示していることである。通信者12、14それぞれに対して通例では異なる各計算中に任意の値λを挿入することによって、認証プロセスの有効性が高められる。
【0036】
こうして、証明書が認証する場合には、共通の鍵の値および、Oに対応する関係を結合して計算することによって、計算が削減される。
【0037】
さらなる実施形態が図3に示され、MQV鍵合意プロトコルが、ECDSAを用いて署名された証明書の認証と組み合わされている。
【0038】
図3の実施形態において、通信者12および14はそれぞれ、長期の秘密鍵a、b、長期の公開鍵A、B、短期の秘密鍵x、yおよび短期の公開鍵X、Yを有する。ECMQVにおいて、共通の鍵は、
K=cX+dB
の形式である。
ここで、
c=x+ag(x)(mod n)かつ
d=cg(Y)(mod n)。
ここで、gは、楕円曲線の点を適切な整数に写像する公知の表現関数である。
【0039】
各通信者がもう一方の通信者の証明書T、Tを有していると仮定すると、各通信者はそれぞれ、もう一方の通信者に短期の公開鍵X、Yを送る。
【0040】
通信者12は、s12=(x+ag(x))mod nを計算する。通信者14は、s14=(y+bg(y))mod nを計算する。次いで、共通の鍵Kは、K=s12(Y+g(y)B)=s14(X+g(x)A)として計算され得る。
【0041】
鍵を認証するためには、通信者の長期の公開鍵の証明書が認証されなければならない。したがって、上記で説明されたように、共通の鍵Kは、通信者12によって
=s12(Y+g(y)B)+λΣ=(x+ag(x))(Y+g(y)B)+(λ−1)G+(λ−1)Q+λ
として、かつ、通信者14によって、
=s14(Y+g(x)A)+λΣ=(y+bg(y))(X+g(x)A)+(λ−1)G+(λ−1)Q+λ
として、計算される。
【0042】
各通信者に対して、λは、任意の整数であり、Σは、それぞれの証明書に対する署名検証の関係s−1(eG+rQ)−Rである。
【0043】
Σ=Oと仮定すると、鍵は、一致し、証明書は、暗黙に認証される。
【0044】
獲得された効率性は、点の倍増操作の節約および重複点の倍増戦略を用いる可能性に帰せられ得る。
【0045】
安全性の観点から、λの任意の値は、大きさ
【0046】
【数8】

の組から選ばれるべきである。なぜなら、この組が、ECDLP問題を解決することの作業負荷に対応しているからである。λが選ばれる組は、変化され得、後続の変形は安全である。λがt<(logn)/2である大きさ2の組から抜き出される場合には、鍵の認証強度は、tビットまで下がり得る。λのそのような選択とともに、aB+λRを計算することは、BまたはB−Rを伴うwt(a)点の追加を伴い、wtは、値aの二進表現のハミング重みである。これは、aBの計算に伴う点の追加と同一の数である。
【0047】
量(λes−1)G+(λrs−1)Qは、その内容が参照により援用されるVanstone他、Springer、「Guide to Elliptic Curve Cryptography」、98から101ページにおいてより十分に説明されている、隣接していない形式(NAF;non−adjacent form)を用いて計算され得る。
【0048】
この方法でKを評価することの作業負荷は、およそmの点の追加およびmの倍増であり、mは、曲線のビットの大きさである。
【0049】
比較によって、K=aBを評価することおよびECDSA署名を検証することは、それぞれ5m/6の追加および2mの倍増の作業負荷を有する。
【0050】
したがって、30%の改善は、達成可能である。上記の米国特許出願第11/333,296号において示されている「高速検証(fast verify)」技術が用いられる場合には、10%程度の節約が可能である。
【0051】
二進表現におけるよりむしろNAF表現において整数とともにλを考慮することによって、さらなる改善を行い得る。
【0052】
【数9】

であるから、
【0053】
【数10】

が得られる(Lにおけるすべての整数は、NAF形式であり、そのため一意的であることに留意されたい)。上記と類似の分析を実行して、ここで与えられたアプローチは、およそ5m/6の追加およびmの倍増をもたらす。この場合、ここで与えられたアプローチは、上記で説明された二進法のアプローチによる1.70mの追加でなく、1.52mの追加をもたらし、その結果、個別の計算(Fast Verify、Ordinary ECDSA Verifyのそれぞれ)と比較してそれぞれ22%、47%の効率性の改善をもたらす。この場合、aB−λR=(a−λ+λ)B−λ(R−B)−λ(R+B)と書き得る。ここでλ=λ+λであり、λおよびλは、それぞれ、aの対応する成分と同じまたは異なる符合を有するλの成分を示していることに留意されたい。
【0054】
Vanstone他、Springer、「Guide to Elliptic Curve Cryptography」、99ページにおいて説明されたw−NAF表現(w≧2)に対して、これをさらに一般化し得る。そのとき、
【0055】
【数11】

であり、ここでq:=2w−1+1およびt:=wt(a)である(すべての整数は、w−NAF形式であり、それ故一意的である)。
【0056】
【数12】

と仮定する場合には、
【0057】
【数13】

を得る。より詳細な分析は、aB+λRにおける追加が、aBが2w−2ではなくおよそ2(w+1)(w−2)/2のより大きな予め計算するコストを有することを除いて、(同一の方法を用いることによって)aBにおける追加と同一のコストで計算され得る。格納コストは、1対3(w=2)、2対8(w=3)、4対24(w=4)、8対64(w=5)である。したがって、格納コストが選択の尺度である場合には、比較は、いくぶん誤解を招きやすい。8つの点を格納し、w−NAF技術のみを用いる場合には、本技術を用いて0.166mの追加対0.25mの追加というコストで、aB+λRを計算するための5−NAFまたは3−NAF計算を用いてaBを計算し得る。したがって、本技術は、aB+λRの評価における0.083mの付加的な追加という代償でECDSA署名の評価におけるmの倍増を節約することが考えられ得る。
【0058】
このアプローチは、基本的にECDSA検証手順から倍増操作を除去する。すなわち、ECDSA検証の徐々に増加するコストは、それぞれ(スケーリングの後で)0.85mの追加(Fast Verify)、1.02mの追加(普通のECDSA検証)ではなく、m/2の追加のみとなる。すなわち、ECDSA検証手順の70〜104%の効率性改善を表している。重複点倍増の方法でできることをより十分に利用することによって、およびウィンドウイング(windowing)とw−NAFの方法とを用いることによって、さらなる改善が行われ得る。
【0059】
MQVおよびECDSAを含む図3の実施形態について、KA’=cY+dB+λΣ=cY+dB−λR+((λes−1)G+(λrs−1)Q)である。
【0060】
【数14】

とし、ここで整数xは、二進表現で表されるとする。cおよびdがJSF表現である場合には、
【0061】
【数15】

が得られ、この式は、重み
【0062】
【数16】

(ここでm:=logn)を有する。その結果、
【0063】
【数17】

である。このλの選択によって、K+λRを計算することは、まさにwt(c,d)点の追加を含む。λは、このゼロでない成分が予め計算された点Y、B、Y−B、Y+Bに対してcY+dBにおける対応する係数と同じ符号を有するように選ばれる(このことは、すべてのλが、実際に、一意的であることを保証する)。その結果、すべての計算は、(12の点を要求するのでなく)8つの点Y、B、Y+B、Y−B、R+Y、R+B、R+Y+B、R+Y−Bに関係して行われ得る。いったんλが上記で示されたように決定されれば、量(λes−1)G+(λrs−1)Qは、ジョイント(joint)NAF形式を用いて計算され得る。K’をこのように評価することに伴う負荷の全体は、ほぼmの点の追加およびmの点の倍増である。明らかに、改善は、重複点倍増の方法でできることを利用することによって、およびウィンドウイングとw−NAFの方法とを用いることによって可能である。しかしながら、主たる改善は、組み合わされた計算が、倍増操作に対する相当な節約の見通しを提供することである。
【0064】
上記のアプローチは、単純な側面チャネル攻撃(side channel attack)への抵抗を実施するために用いられ得る。詳細は、以下の通りである。
【0065】
【数18】

とし、ここですべての整数を二進表現であるとみなす。
【0066】
【数19】

であるから、
【0067】
【数20】

が得られる。ここで、λ=λ+λであるとする。ここでλは、Lの任意の要素であり、λは、supp(c)の外にあるすべての点に対して1に、そうでないときは0に設定されている。cY+dB+λRの計算は、5つの予め計算された点Y、B、Y+B、B+R、およびY+B+Rを用いて実行され得る。いったんλがR、Q、およびGを含む7つのゼロでない部分の合計を用いて上記で示されたように決定されれば、量λR+((λes−1)G+(λrs−1)Q)が計算され得る。22=5×3+3+4の点を予め計算することによって、重複点の倍増を用い、正確にm+22の点の追加およびmの点の倍増を用いて、K’を計算し得る。λの選択は、点の倍増のための二進法の方法における各ステップが追加を伴うことを保証する。λ:=0を選ぶことによって、わずか19の点のみを予め計算することが可能であり得るが、そのときは反復につき1つの追加を実行し、側面チャネル攻撃が可能であった可能性がある。このことは、そのような条件が獲得されるまで別のλを選ぶことによって保証された可能性があるが、これは、側面チャネルの情報をそれ自身で漏洩し得る。上記のアプローチは、Kの計算中にダミー点の追加操作を付加することに基づく単純な側面チャネル攻撃の防止の方法とほぼ同じコストを有するが、ECDSA署名検証も遂行する。このように、ECDSA署名検証は、このアプローチを用いて実質的に自由にできる。
【0068】
ΣがGによって生成される素数位数部分群にあることが仮定される。Σは、十分に大きな位数を有するべきである。ΣがECDSA検証の方程式に対応する場合には、この条件は、hR≠Oであることをチェックすることによって、容易にチェックされ得る。ここで、hは曲線の余因子である。
【0069】
上記で説明されたアプローチは、倍増操作の節約および重複点の倍増戦略を利用する見込みに起因して、性能の改善につながる。さらには、このアプローチは、鍵の合意プロトコルの実行中に鍵の認証ステップと鍵の設定ステップとを組み合わせることに限定されず、それは、いくつかの鍵を計算し、いくつかの楕円曲線の方程式を検証しなければならない任意の環境に適用され得る(事実、鍵は、秘密である必要さえない)。このこと、本アプローチが、計算された鍵が正しいか否か検証し得る環境において最も有用であるゆえんである(なぜなら、このことは、同次の楕円曲線の方程式Σ=0が成り立つか否かに関する判定をもたらし得るからである)。このように、本アプローチは、計算された鍵の知識を本当に実証するすべての環境において効果的に機能する。
【0070】
検証を鍵の計算と組み合わせる方法は、上記で説明されたよりもより一般的な環境において機能する。多数のECDSA署名(証明書の連鎖)の検証は、計算および検証の方程式と各検証に対して異なるλとの組み合わせを用いることによって獲得され得る。同様に、任意の楕円曲線の検証および多数の楕円曲線の方程式のバッチ検証が可能である。
【0071】
ANSI X9.63NIST SP800−56aにおけるECDHスキーム(ECIES、Unified Model、STS、ECMQV、ElGamal暗号化を含む)を用いた鍵の計算もまた、可能である。正確さを提供された秘密でないECC点の計算は、例えばECDSA証明書を用いたPV署名においてチェックされ得る。同様に、正確さを提供された多数のECC点の計算がチェックされ得る。
【0072】
また、そのような技術を(超楕円曲線、識別に基づく暗号システム等を含む)他の代数的構造における操作に適用することも可能である。
【0073】
単純な側面チャネルの抵抗を提供するλの使用は、実質的に自由である。
【0074】
上記は特定の例示的な実施形態に関して説明されてきたが、その変形は以下に続く特許請求の範囲内で可能であることが認識されるであろう。

【特許請求の範囲】
【請求項1】
本願明細書に記載された発明。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2013−34251(P2013−34251A)
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−247137(P2012−247137)
【出願日】平成24年11月9日(2012.11.9)
【分割の表示】特願2009−536569(P2009−536569)の分割
【原出願日】平成19年11月15日(2007.11.15)
【出願人】(397071791)サーティコム コーポレーション (38)
【Fターム(参考)】