説明

暗号化方法用の楕円曲線を求める方法

【課題】サイドチャネル攻撃の際に個人鍵を推定できない楕円曲線を選択する方法を提供すること。
【解決手段】暗号化方法用の楕円曲線を求める方法において、この方法は、
(a)テストすべき楕円曲線を準備するステップと、
(b)このテストすべき楕円曲線に対応するツイスト楕円曲線の位数を決定するステップと、
(c)このツイスト楕円曲線の位数が強い素数であるか否かを自動的に検査するステップと、
(d)このツイスト楕円曲線の位数が強い素数である場合、上のテストすべき楕円曲線を暗号化方法に適切な楕円曲線として選択するステップとを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、楕円曲線を求める方法に関し、殊に暗号化データ処理に有利な楕円曲線を求める方法に関する。本発明はさらにあらかじめ選択した楕円曲線に基づく暗号化方法および装置に関する。
【背景技術】
【0002】
暗号化方法は、殊にメッセージの符号化、文書の署名および人物または対象体の認証に使用される。このためには殊にいわゆる非対称鍵方式が有利であり、この方式では関与者に対して個人的でありかつ秘密にされた鍵も公開鍵も共に設けられる。
【0003】
メッセージを符号化する際には送信者は、所望の受取人の公開鍵を入手して、メッセージを符号化する。その後はこの受取人だけが、この受取人だけに分かっている個人鍵によってこのメッセージを元のように復号化することができるのである。
【0004】
文書に署名する際には、署名者は、その個人鍵によって文書から電子署名を計算する。他の人は、この署名者の公開鍵を用いればこの署名を簡単にチェックすることができる。しかしながらこの公開鍵でチェックできるのは、対応する個人鍵によって署名された署名だけである。このような一義的な対応付けおよび個人鍵が署名者によって秘密にされているという前提により、署名と、署名者および文書との一義的な対応付けが行われるのである。
【0005】
チャレンジ−レスポンス(問い合わせ−応答)プロトコルによる認証において、認証局(Pruefstelle)は、人に問い合わせを伝達して、この問い合わせに対してその人の個人鍵で応答を計算して送り返すようにこの人に要求する。認証が成功するのは、上記の認証局が、送り返された上記の応答と、チェックすべき人の公開鍵とを照合できる場合である。
【0006】
非対称の暗号化方法は、上で説明したように個人鍵および公開鍵に基づいている。ここでは上記の公開鍵は、あらかじめ定めたアルゴリズムを用いて個人鍵から生成される。この暗号化方法に重要であるのは、逆、すなわち有限の時間内で利用可能な計算能力により、上記の公開鍵から個人鍵の決定できないようにすることである。この最後の述べたことは、個人鍵の鍵の長さが最小長に達している場合に得られる。この鍵の最小長は、符号化に使用されるアルゴリズムおよび公開鍵の決定に依存する。
【0007】
上記の公開鍵または個人鍵による演算には、所定の計算コストが必要である。この計算コストは、使用するアルゴリズムに依存し、また使用する鍵の長さにも依存する。ここで有利であることが判明しているのは、楕円曲線に基づく符号化アルゴリズムを使用することである。それはこのアルゴリズムにより、高い安全性が長さの短い鍵で得られるからである。楕円曲線の基づく暗号化法に対して、別の方法とは異なり、これまで、公開鍵から個人鍵を決定することは知られておらず、鍵の長さが長くなるのに伴うその計算コストは、指数関数的に増大するものに比べて緩慢に増大する。言い換えると、使用する鍵の付加的なビット長当たりに得られる安全性は、他の方法における安全性よりも高いのである。したがって実際の適用に対して、格段に短い鍵長を使用できるのである。
【0008】
楕円曲線Eは、一般的にワイエルシュトラスの方程式によって定義され、これはつぎの3次方程式によって表される。すなわち
2+a1xy+a3y=x3+a22+a4x+a6
である。
【0009】
ここでa,a,a,a,aは、固定に選択される体Kの要素であり、対(x,y)は、上記の楕円曲線Eの点であり、上記のワイエルシュトラス方程式を満たす。暗号化法に対して、有限体Kを選択する。これに相応して楕円曲線Eの点の数も有限であり、以下ではこの数を曲線Eの位数ord(E)と称する。さらに形式的な無限遠点を導入する。
【0010】
楕円曲線の点集合にはアーベル群構造Gを定義することができる。このアーベル群構造の演算を以下では加法と称して足し算で表す。上記の楕円曲線の任意の2つの点を加算すると、この楕円曲線の第3の点が一意に得られる。さらにこれによって、スカラ積を定義することができ、このスカラ積は1つの点にその点そのものを複数回加えることによって定義される。Pをこの楕円曲線Eの点、sを整数とすると、Q=sPは点Pのs倍である。Qもこの楕円曲線の点である。PおよびQが与えられた場合にスカラsを決定することは、楕円曲線に対する離散対数問題と称される。体Kおよび楕円曲線Eのパラメタを適切に選択すると、今日利用可能な計算装置によっては、上記の離散対数問題を許容される時間に解くことはできない。楕円曲線を用いた暗号化法の安全性は、この困難さに依拠しているのである。
【0011】
通信関与者はスカラsをその個人鍵として選択し、これを秘密にする。さらにこの通信関与者Pは、始点Pから、この始点のスカラ倍として公開鍵Qを生成する。始点Pについては、通信関与者間で一致している。上記の公開鍵Qから個人鍵sを決定することは、離散対数問題の計算コストが高いことに起因して不可能であるため、楕円曲線による暗号化法の安全性が得られるのである。上記の楕円曲線に対する別の要求は、その位数が大きな素数であるか、または大きな素数と小さな数の積になることである。
【0012】
暗号化法は、データを符号化する際の期待される安全性と計算コストとの妥協である。DE 101 61 138 A1には、y座標を使用せずにx座標だけで点のスカラ倍の決定できることが記載されている。DE 101 61 138 A1には相応する計算規則が、任意の体に対して記載されている。これによって点算術、例えばスカラ積に対するモンゴメリ導出器(Montgomery Leiter)を格段に効率的に実現することができ、点加算当たりの体の乗算回数を少なくし、また点を表すためおよび中間結果に対するレジスタの数を少なくすることができる。しかしながらこの方法においては、点が実際に上記の楕円曲線の要素であるか否かはチェックされない。
【0013】
このことから、サイドチェネル攻撃が行われる可能性が生じる。ここでは符号化装置に点のx座標が伝送されるが、この点は上記の楕円曲線上にはない。これに合わせて上記のDE 10161138 A1には、上記によって符号化装置の個人鍵の部分的な再構成ができることが記載されている。このDE 10161138 A1は、このようなサイドチャネル攻撃を阻止するために固有に選択された楕円曲線を使用する。ここで判定基準として使用されるのは、上記の楕円曲線に対応するツイスト楕円曲線である。この対応するツイスト楕円曲線は、つぎのように定義される。すなわち
2+va1xy+a3y=x3+va22+v24xv36
であり、ここでパラメタa1,a2,a3,a4,a6は、上記の楕円曲線のパラメタである。上記のパラメタvは、体Kの標数が奇数である場合に体Kの任意の非平方数であるかまたはトレース1を有する体Kの要素である。DE 10161138 A1によれば、これらのツイスト楕円曲線がすべて同様に大きな素数または大きな素数と小さな数との積である位数を有するようにする。
【0014】
著者であるDaniel R. L. BrownおよびRobert P. Gallantは、その論文"The Static Diffie-Hellman Problem"において、個人鍵を完全または部分的に探り出すサイドチャネル攻撃の別の可能性を記載している。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】DE 101 61 138 A1
【非特許文献】
【0016】
【非特許文献1】Daniel R. L. BrownおよびRobert P. Gallant著、"The Static Diffie-Hellman Problem"
【発明の概要】
【発明が解決しようとする課題】
【0017】
本発明の課題は、サイドチャネル攻撃の際に個人鍵を推定できない楕円曲線を選択する方法を提供することである。
【課題を解決するための手段】
【0018】
上記の課題は本発明により、請求項1の特徴部分に記載された特徴的構成を有する方法によって解決される。
【0019】
請求項4に記載された特徴的構成を有するデータ暗号化処理方法および請求項6に記載された特徴的構成を有する人物および対象体の同定確認する装置により、同様にサイドチャネル攻撃による個人鍵の決定またはこの個人鍵の部分的な決定が阻止される。
【図面の簡単な説明】
【0020】
【図1】本発明による方法の1実施形態のフローチャートである。
【図2】本発明による装置の1実施形態のブロック図である。
【図3】図2の装置によって実施される本発明による方法の1実施形態のフローチャートである。
【発明を実施するための形態】
【0021】
本発明では、暗号化方法に有利な楕円曲線を求める方法を設け、ここでこの方法はつぎのステップを有する:
(a)テストすべき楕円曲線を準備する;
(b)上記のテストすべき楕円曲線に対応するツイスト楕円曲線の位数を決定する;
(c)このツイスト楕円曲線の位数が強い素数であるか否かを自動的に検査する;
(d)上記のツイスト楕円曲線の位数が強い素数である場合、上記のテストすべき楕円曲線を暗号化方法に有利な楕円曲線として選択する。
【0022】
またここではつぎのようなステップを有するデータ暗号化処理方法を設ける:
請求項1から3までの方法のうちのいずれか1つによって求めた楕円曲線を準備する;
1点のx座標だけを準備する;
個人鍵を準備する;
上記の準備した楕円曲線および個人鍵を使用し、上記のx座標に暗号化符号化方法を自動的に適用して、符号化されたx座標を決定する;
この符号化されたx座標に基づいて値を出力する。
【0023】
さらにここではつぎを有する人物または対象体の同定確認のための装置を設ける。すなわちこの装置は、
− 座標を受信する受信装置と、
− 上記の人物または対象体の個人鍵を保持する記憶装置と、
− 上記の受信した座標を個人鍵によって処理する処理装置と有しており、ここでこの処理は、上記の方法1〜3のうちの1つから選択される楕円曲線に基づいており、
上記の装置はさらに
− 上記の処理したこの座標を出力する出力装置を有しているのである。
【0024】
本発明の基礎にあるアイデアは、楕円曲線に対するツイスト楕円曲線が強い素数である位数を有する場合だけ、この楕円曲線を暗号化方法に使用することにある。強い素数はつぎの式によって表される。すなわち、
P=1+r・q
であり、ここでrはふつう255までの範囲の小さな数であり、qは大きな素数である。理想的には上記の強い素数は、いわゆるソフィ−ジェルマン−素数であり、すなわちrが2である。上記の楕円曲線およびこれに対応するツイスト楕円曲線は、上で示した定義に相応する。本発明により、誤って伝送されるx座標または悪意をもって誤って伝送されるx座標に基づくサイドチャネル攻撃が阻止される。ここでこのx座標は、上記の選択した楕円曲線のいずれの点にも相応しない。本発明の方法は、このようなx座標においても、外部の装置によって個人鍵を探し出すかまたは部分的に決定できないという点でロバストである。
【0025】
有利な発展形態および実施形態は、別の従属請求項に記載されているかまたは図面と説明とを一緒に参照することによって得られる。
【0026】
1実施形態によれば、上記のツイスト楕円曲線の位数は、このツイスト楕円曲線上にある点の数を数えることによって決定される。択一的には上記のツイスト楕円曲線の位数は、楕円曲線の位数および体の標数を決定することによって行うことができる。このために相異なる位数間の一意の数学的関係を使用することができる。上の点のカウントは、当業者に広く知られている方法によって行われる。
【0027】
1実施形態では、テストすべき楕円曲線の位数が強い素数であるか否かを自動的に検査して、テストすべきこの楕円曲線の位数が強い素数である場合だけ、テストすべきこの楕円曲線を暗号化方法に対して選択する。
【実施例】
【0028】
本発明を以下、図面に略示した実施例に基づいて説明する。
【0029】
図1には、本発明による方法の1実施形態を説明するフローチャートが示されている。第1ステップでは楕円曲線Eを有するプールを準備する(S1)。この楕円曲線Eは、有限体K上に定義される。したがってこの曲線Eには有限個の点Pが含まれる。この楕円曲線は、すでに説明したように、ワイエルシュトラス方程式およびパラメタa1,a2,a3,a4,a6によって決定される。パラメトライゼーションを相応に制限または変更することによって個々のパラメタはゼロになることもある。これらのパラメタを選択して、この楕円曲線が非特異になるようにする。
【0030】
つぎのこの楕円曲線の位数を決定する(S2)。この楕円曲線の位数とは、上記のワイエルシュトラス方程式を満たす体K上の点の数のことである。幾何学的な解釈では、これはこの楕円曲線E上にあるすべての点のことである。
【0031】
この楕円曲線の位数、略してord(E)を素数としたい。チェックが行われてこれが素数でない場合、別の曲線Eを上記のプールから選択する(S8)。上記の楕円曲線Eの位数が素数であることが確認される場合、この楕円曲線の位数が強い素数であるか否かの検査が行われる(S3)。強い素数の定義は上に示されている。
【0032】
つぎのステップでは、この楕円曲線Eに対してツイストした楕円曲線E′をチェックする(S4)。ツイストされた曲線E′についての定義は上に示されている。このチェックは、すべてのツイスト曲線E′に対して行われる。すなわち、相応して非平方であるかまたはトレース1を有する要素である考えられるすべてのパラメタvに対して行われる。上記のツイスト曲線E′の位数が個々に決定される(S5)。このツイスト楕円曲線E′の位数も上記の楕円曲線と同様に素数としたい。これが満たされない場合、別の楕円曲線Eを選択する。
【0033】
付加的に検査されるのは、このツイスト楕円曲線E′の位数が強い素数であるか否かである(E6)。
【0034】
上記のステップS2,S3,S5およびS6の4つのすべての条件が満たされる場合、この楕円曲線Eを暗号化方法に対して選択する。
【0035】
楕円曲線の位数は、公知のカウント方法に基づいて決定することができる。択一的には上記の位数を関係式
ord(E)+ord(E′)=2・|K|+2
によって決定することができ、ここで|K|は体Kの位数である。
【0036】
図2にはテスト対象体Aおよび検査装置Bのブロック図が示されている。このテスト対象体は、例えばスマートカードまたはRFIDチップとすることが可能である。上記の検査装置Bは、相応する読み出し装置である。上記のテスト対象体Aは記憶装置1を有しており、この記憶装置に個人鍵KPが記憶されている。この個人鍵KPは秘密にされており、またいかなる方法でも外部装置によって読み出すことはできない。別の記憶装置2には、楕円曲線Eのパラメトライゼーションに必要なパラメタが記憶されている。データ処理装置3は、上記の個人鍵と、記憶装置2に格納されているパラメタによって決定される楕円曲線とに基づいて符号化アルゴリズムを実行する。これらのパラメタないしは楕円曲線は、本発明の方法に基づいて、例えば図1に示した実施例によって決定される。さらに上記のテスト対象体は受信装置4を有しており、この受信装置は点のx座標を受信することができる。このx座標は、データ処理装置3に供給され、このデータ処理装置3はこれに基づいて、あらかじめ決定された方法を実施する。この方法において特徴的であるのは、これがx座標だけに適用され、また1点のx座標だけを要することである。処理または符号化されたx座標は、送信装置5によって送出される。テスト対象体Aは、伝送されるこのx座標が有効なx座標である得るか否かを検査しない。このテスト対象体Aは、このx座標が、上記の楕円曲線の1点に対応するか否かを検査しない。しかしながら記憶装置2に格納されている上記の選択された楕円曲線によって保証されるのは、このようなx座標により、個人鍵の探り出しまたは部分的な探り出しできないことである。
【0037】
検査装置Bは、乱数発生器10を有しており、この乱数発生器により、任意の点POが上記の楕円曲線から選択される。この点は、送信装置11によってテスト対象物Aに伝送される。検査装置Bはさらに、処理したx座標Q(x)を受信する受信装置を有する。データ処理装置13により、テスト対象体Aの公開鍵に基づき、上記の処理されたx座標が検査される。この公開鍵は、検査装置Bに格納するかまたは外部のソースから使用することができる。この復号化した値と、前もってランダムに生成したx座標とが一致する場合、テスト対象体Aの同定が確認されたことがインタフェース14に出力される。
【0038】
図3にはこれに加えてテスト対象体Aの同定の流れが、再度フローチャートで略示されている。第1ステップS10において乱数発生器は、上記の楕円曲線上の点POを生成し、そのx座標を問い合わせとしてテスト対象体Aに伝送する。このテスト対象体は、このx座標からその個人鍵KPによって応答を計算する(S11)。続いてこのテスト対象体は応答Q(x)を伝送し、また場合によってはその公開鍵KOも伝送する。この応答は、認証局Bにより、公開鍵KOを用いて検査される(S12)。この応答が確認されると、人物Aが認証または同定されたことの信号が出力される(S13,S14)。
【0039】
以下では例示的に適切な楕円曲線が得られるものとする。使用される有限体KはZ/pZの形であり、楕円曲線Eの式はy2=x3+ax+bによって与えられるとする。上記の楕円曲線Eの相応するパラメタは
p = 517847993827160675843549642866661055787617496734405781471
a = 38341706974568098172697905376562415410863420236739650958
b = 395393382584534989047698356330422317897630021672687214876
である。
【0040】
上記の楕円曲線の位数
ord(E)=517847993827160675843549642866661055787617496734522943517
であり、楕円曲線Eに対してツイストされた楕円曲線E′も同様に素数の位数
ord(E′)=517847993827160675843549642866661055787617496734288619427
を有する。基点P=(x,y)は、座標
x = 81094469663915015430255024705469171085831504304496796756
y = 482060190644397986573077501327725919378173632606557848976
によって与えられ、上記の楕円曲線E上にあり、またこの場合に完全な点群をなす。すなわち、この楕円曲線Kの各点は、基点Pのスカラ倍によって表すことができるのである。さらに曲線Eおよびツイスト曲線E′の位数は、つぎの値
Ord(E)=1+4・129461998456790168960887410716665263946904374183630735879
Ord(E′)=1+2・258923996913580337921774821433330527893808748367144309713
を有する。
【0041】
これによって暗号化方法用の楕円曲線に対し、要求されるすべての特性が満たされる。
【符号の説明】
【0042】
A テスト対象体、 B 検査装置、 E 楕円曲線、 1 記憶装置、 2 記憶装置、 3 データ処理装置、 4 受信装置、 5 送信装置、 10 乱数発生器、 11 送信装置、 13 データ処理装置、 14 インタフェース

【特許請求の範囲】
【請求項1】
暗号化方法用の楕円曲線を求める方法において、
該方法は、
(a)テストすべき楕円曲線を準備するステップと、
(b)前記のテストすべき楕円曲線に対応するツイスト楕円曲線の位数を決定するステップと、
(c)当該のツイスト楕円曲線の位数が強い素数であるか否かを自動的に検査するステップと、
(d)前記のツイスト楕円曲線の位数が強い素数である場合、前記のテストすべき楕円曲線を暗号化方法に適切な楕円曲線として選択するステップとを有することを特徴とする、
暗号化方法用の楕円曲線を求める方法。
【請求項2】
前記のツイスト楕円曲線上にある点の数を数えることによって当該のツイスト楕円曲線の位数を決定する、
請求項1に記載の方法。
【請求項3】
既知の標数を有する体上に前記のテストすべき楕円曲線を定義し、
当該の楕円曲線の位数の決定および体の標数に基づいて前記のツイスト楕円曲線の位数を決定する、
請求項1に記載の方法。
【請求項4】
前記のテストすべき楕円曲線の位数が強い素数であるか否かを自動的に検査し、
当該のテストすべき楕円曲線の位数が強い素数である場合、当該のテストすべき楕円曲線を前記の暗号化方法に対して選択する、
請求項1から3までのいずれか1項に記載の方法。
【請求項5】
データを暗号化処理する方法において、
当該方法は、
(a)請求項1から4までのうちのいずれか1項に記載の方法を用いて楕円曲線を求めて準備するステップと、
(b)1点のx座標だけを準備するステップと、
(c)個人鍵を準備するステップと、
(d)前記の準備した楕円曲線および個人鍵を使用して、前記のx座標に暗号化方法を自動的に適用して、処理されたx座標を決定するステップと、
(e)当該の処理されたx座標に基づいて値を出力するステップを有することを特徴とする、
データを暗号化処理する方法
【請求項6】
前記のx座標を認証局からテスト対象体に送信し、
当該のテスト対象体によって前記の個人鍵を準備し、
前記のテスト対象体によって前記の処理されたx座標を決定し、
前記のテスト対象体によって前記の処理されたx座標を前記の認証局に伝送し、
当該の認証局によって前記のテスト対象体の公開鍵を準備し、
前記の認証局によって前記の処理されたx座標と公開鍵とを検査し、
当該の検査により、前記の処理されたx座標が有効であることが示される場合、前記の認証局によって前記のテスト対象体の同定の確認が行われる、
請求項5に記載の方法。
【請求項7】
人物または対象体の同定確認のための装置において、
該装置は、
− 座標を受信するための受信装置と、
− 前記の人物または対象体の個人鍵を保持する記憶装置と、
− 請求項1から4までのいずれか1項に記載の方法を使用し、前記の楕円曲線に基づき、個人鍵を用いて、前記の受信した座標を処理する処理装置と、
− 前記の処理した座標を送出する送出装置とを有することを特徴する、
人物または対象体の同定確認のための装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−123426(P2012−123426A)
【公開日】平成24年6月28日(2012.6.28)
【国際特許分類】
【出願番号】特願2012−69762(P2012−69762)
【出願日】平成24年3月26日(2012.3.26)
【分割の表示】特願2009−501996(P2009−501996)の分割
【原出願日】平成19年3月6日(2007.3.6)
【出願人】(390039413)シーメンス アクチエンゲゼルシヤフト (2,104)
【氏名又は名称原語表記】Siemens Aktiengesellschaft
【住所又は居所原語表記】Wittelsbacherplatz 2, D−80333 Muenchen, Germany
【Fターム(参考)】