説明

圧縮されたECDSA署名

【課題】圧縮されたECDSA署名を提供すること。
【解決手段】ECDSA署名を圧縮する改善された圧縮スキームが提供される。そのスキームは、署名(r,s)における整数をより小さな値cによって代替する。値cは、sおよび別の値dから導かれ、dは、cがsより小さくなるよう十分に小さい。圧縮された署名(r,c)は、rと、メッセージmのハッシュであるeとを用いて、および値dを導くためにrから復元された値Rとともにこの値を用いて、値を計算することによって検証される。次いで値sは、復元され得、完全な署名が、復元、検証され得る。

【発明の詳細な説明】
【技術分野】
【0001】
(本発明の分野)
本発明は、暗号スキームに関し、デジタル署名アルゴリズムにおいて特定の有用性を有する。
【背景技術】
【0002】
(先行技術の説明)
メッセージのデジタル署名は、署名者にのみ知られた何らかの秘密に、さらには、署名されるメッセージの内容に依存する数である。署名は、検証可能であるように意図される。(自分が実際に作成した署名を否認しようとする署名者か、または不正な請求者のいずれかによって引き起こされる)関係者が文書に署名したか否かに関して争いが生じる場合には、バイアスのかかっていない第三者が、署名者の秘密情報(例えば、秘密鍵)へのアクセスを要求することなく、公正に問題を解決し得るべきである。
【0003】
デジタル署名は、特に、それらが暗号スキームにおいて用いられているので、情報安全性において多くの用途を有する。一部の用途は、認証、データ統合性、および非否認(non−repudiation)を含む。デジタル署名の一つの特に有意義な用途は、大規模ネットワークにおける公開鍵の認証である。認証は、信頼される第三者が使用者の識別を公開鍵と結びつけ、その結果、しばらく後の時点で他の主体が信頼される第三者の支援なしで公開鍵を認証し得るための手段である。
【0004】
デジタル署名アルゴリズム(DSA)として知られている暗号スキームは、周知のしばしば論じられる離散対数問題の難しさ(intractabiliy)に基づいている。DSAは、米国標準技術局(NIST)によって1991年に提案され、デジタル署名標準(DSS)と呼ばれる米国連邦情報処理規格(FIPS 186)となっている。そのアルゴリズムは、周知のElGamal署名スキームの変形であり、付属物を有するデジタル署名(すなわち、カスタマイズされた冗長関数(redundancy function)よりも暗号ハッシュ関数に依存するデジタル署名)として分類され得る。
【0005】
楕円曲線デジタル署名アルゴリズム(ECDSA)は、楕円曲線暗号システムにおいて用いられ得る、DSAに類似した属性を有する署名スキームである。ECDSAは、概して最も広く標準化された楕円曲線をベースにした署名スキームと見なされ、ANSI X9.62、FIPS 186−2、IEEE 1363−2000およびISO/IEC 15946−2の規格、およびいくつかの草案の規格に見られる。
【0006】
ECDSA署名生成は、いくつかの領域パラメーター、秘密鍵d、およびメッセージmに対して機能する。出力は、署名(r,s)であり、署名の成分rおよびsは、整数であり、以下のように進められる。
1.任意の整数
【0007】
【数1】

【0008】
を選ぶ。nは、領域パラメーターのうちの一つである。
2.kP=(x,y)を計算し、xを整数
【0009】
【数2】

【0010】
に変換する。Pは、楕円曲線E上の点であり、領域パラメーターのうちの一つである。
3.
【0011】
【数3】

【0012】
を計算する。r=0の場合には、ステップ1に戻る。
4.e=H(m)を計算する。Hは、出力がnのビット長さを超えないビット長さを有する、暗号ハッシュ関数を示す(この条件が満たされない場合、Hの出力は切り捨て(truncate)られ得る)。
5.s=k−1(e+αr) mod nを計算する。αは、署名者の長期の秘密鍵である。
s=0の場合には、ステップ1に戻る。
6.メッセージmのECDSA署名として対(r,s)を出力する。
【0013】
ECDSA署名検証は、いくつかの領域パラメーター、Q=αPである長期の公開鍵Q、メッセージ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=uP+uQ=s−1(eP+rQ)を計算する。(上記の3および4から)6.R=∞の場合には、署名は、拒絶される。
7.Rのx座標xを整数
【0014】
【数4】

【0015】
に変換する。
【0016】
【数5】

【0017】
を計算する。
8.ν=rの場合には、署名は、承認される。そうでない場合には、署名は、拒絶される。
【0018】
ECDSA署名検証の効率性を高めるために、sの反転を含む上記の具体的なステップ5において、ECDSA署名は、2bビットを省略することでsを切り捨てることによって圧縮されることが知られてきた。そのような圧縮は、付加的な検証ステップを代償として払い、その付加的な検証ステップは、検証者に約22bの追加の楕円曲線群操作を代償として行わせることが知られてきた。
【0019】
署名の圧縮は、帯域幅の節約が最も重要な暗号用途において特に望ましく、付加的な暗号操作が、検証者によって容易に扱われ得る。一例は、帯域幅が非常に限られた二次元バーコードであるが、検証者のプロセッサーは高速であり得る。別の例は、データを送信するために無線周波数の場からの電力を必要とする無線自動識別(RFID)タグであり、したがって低い送信帯域幅が非常に望まれる。
【発明の概要】
【発明が解決しようとする課題】
【0020】
そのような以前の圧縮スキームよりも検証者に払わせる代償が小さいECDSA署名圧縮のスキームが必要とされている。
【0021】
したがって、上記の不利な点のうちの少なくとも一つを除去または軽減することが、本発明の目的である。
【課題を解決するための手段】
【0022】
一つの局面において、メッセージのデジタル署名を圧縮する方法が提供され、署名は、一対の署名成分r、sを含み、その方法は、数学的にsに関連した一対の値c、dを獲得することであって、その一対の値のうちの一つは、sよりも小さいことと、デジタル署名における署名成分sをその一つの値で代替することと、署名を受取人に送ることとを含む。
【0023】
別の局面において、一対の署名成分r、sから圧縮された署名を生成する暗号システムが提供され、そのシステムは、成分sと数学的に関連した一対の値c、dを提供するための演算ユニットと、署名sをその値のうちの一つの値で代替するための署名生成装置とを有する。
【0024】
さらに別の局面において、上記の値のうちのもう一方の値を復元し、そのもう一方の値を予め定義された基準と比較するための演算ユニットを含む上記で定義されたシステムを用いて、送付者から受け取られた署名r、cを検証する暗号システムが提供されている。
【0025】
さらに別の局面において、値sをより小さな値cで代替するステップであって、値cは、sおよび別の値dから導かれ、別の値dは、cがsより小さくなるよう十分に小さい、ステップと、圧縮された署名(r,c)を獲得するために値sを値cで代替するステップとを含む、デジタル署名(r,s)を圧縮する方法が提供される。
【0026】
さらに別の局面において、圧縮された署名を検証する方法が提供され、圧縮された署名は、完全な署名(r,s)のうちの値sを代替した値cを含み、その方法は、圧縮された署名およびメッセージのパラメーターを用いて値dを計算するステップであって、値cは、値dおよび値sから導かれる、ステップと、dの値が予め決定された基準に従って発見され得る場合には、圧縮された署名を検証するステップとを含む方法が提供される。
例えば、本発明は、以下を提供する。
(項目1)
メッセージのデジタル署名を圧縮する方法であって、該署名は、一対の署名成分r、sを含み、該方法は、
数学的にsに関連した一対の値c、dを獲得することであって、該一対の値のうちの一つは、sよりも小さい、ことと、
該デジタル署名における該署名成分sを該一つの値で代替することと、
該署名を受取人に送ることと
を含む、方法。
(項目2)
上記値c、dの両方は、予め決定された基準を満たす、項目1に記載の方法。
(項目3)
上記dの値は、予め決定された境界内に収まることを要求される、項目2に記載の方法。
(項目4)
上記値cは、上記成分sより小さい、項目3に記載の方法。
(項目5)
上記成分r、sは、ECDSA署名を表す、項目4に記載の方法。
(項目6)
s、c、およびdは、s=c/d mod nの関係にある、項目1に記載の方法。
(項目7)
上記値c、dは、予め決定された基準を満たすように獲得される、項目6に記載の方法。
(項目8)
上記値c、dは、拡張されたユークリッドの互除法のアルゴリズムの適用によって獲得され、上記予め決定された基準が満たされたときに該アルゴリズムの反復が終了される、項目7に記載の方法。
(項目9)
上記一つの値は、cに対応する、項目6に記載の方法。
(項目10)
上記一つの値は、dに対応する、項目6に記載の方法。
(項目11)
上記署名から上記値のうちのもう一方の値に等しい値を復元することと、定義された基準を満たすか否かを決定することとによって、項目1に従って生成された署名を検証する方法。
(項目12)
上記もう一方の値の復元は、上記署名成分を組み合わせることから獲得される、項目11に記載の方法。
(項目13)
中間的な値は、上記メッセージから獲得され、上記もう一方の値を復元するために上記署名成分から獲得された値と組み合わされる、項目12に記載の方法。
(項目14)
上記もう一方の値は、定義された境界内に収まることを要求される、項目11に記載の方法。
(項目15)
上記もう一方の値が上記予め定義された基準を満たさない場合には、上記署名を拒絶するステップを含む、項目11に記載の方法。
(項目16)
上記もう一方の値が上記予め定義された基準を満たす場合には、上記署名を承認するステップを含む、項目11に記載の方法。
(項目17)
さらなる検証は、上記一つの値の適用から獲得されたオリジナルの署名と、上記受取人によって受け取られた上記署名に該受取人によって復元される上記もう一方の値とに対して実行される、項目16に記載の方法。
(項目18)
一対の署名成分r、sから圧縮された署名を生成する暗号システムであって、該システムは、該成分sと数学的に関連した一対の値c、dを提供するための演算ユニットと、該署名sを該値のうちの一つの値で代替するための署名生成装置とを有する、システム。
(項目19)
上記値のうちのもう一方の値を復元し、該もう一方の値を予め定義された基準と比較するための演算ユニットを含む項目18に記載のシステムを用いて、送付者から受け取られた署名r、cを検証する暗号システム。
【図面の簡単な説明】
【0027】
本発明の一実施形態が、ここで、添付された図面を参照して単に例として説明される。
【図1】図1は、暗号通信システムである。
【図2】図2は、署名圧縮スキームおよび圧縮された署名の署名検証スキームの一実施形態を図示するフローチャートである。
【図3】図3は、署名圧縮スキームおよび圧縮された署名の署名検証スキームの別の実施形態を図示するフローチャートである。
【発明を実施するための形態】
【0028】
(本発明の詳細な説明)
したがって、図1を参照すると、暗号通信システムが、数字10によって一般的に示されている。システム10は、通信チャネル16を介して互いに通信し得る第一の通信者12および第二の通信者14を有する。通信チャネル16は、安全であり得るか、または、安全でないこともあり得る。各通信者は、暗号化操作を実行するために、暗号モジュール18および暗号モジュール20をそれぞれ有する。
【0029】
暗号モジュール18および暗号モジュール20はそれぞれ、ECDSA署名生成のような楕円曲線の暗号化操作と、体
【0030】
【数6】

【0031】
上で定義される楕円曲線E上で機能する検証スキームとを実行し得る。本明細書で説明される実施形態は、特にECDSAアルゴリズムに適しており、例えば、署名(r,s)における整数sは、検証者が付加的な暗号化操作を行う必要があるという代償を払って圧縮され得る。
【0032】
図2に例示された第一の実施形態において、通信者12は、「署名者」として参照され得、通信者14は、「検証者」として参照され得る。署名者12によってメッセージmのために生成されるECDSA署名(r,s)は、上記で説明されたように生成される。帯域幅を狭くするために、署名は、例えばsをより小さな値cにより代替することによって圧縮され得る。この例における値sおよび値cは、式
【0033】
【数7】

【0034】
によって関連づけられ、dの値は、cがsよりも小さい値になるように選ばれる。dの値または「境界」の可能な範囲は、システムパラメーターの一部であり、復元されたdが承認可能か否かを決定する検証ステップにおいて用いられる。
【0035】
cおよびdの値は、拡張されたユークリッドの互除法の変形を用い、ds+un=cの形の等式を解くことによって獲得され得る。より正確には、拡張されたユークリッドの互除法における中間ステップは、xs+yn=zとなるような値x、y、zを計算する。通常、拡張されたユークリッドの互除法は、小さなxおよびy(0または1の値)および大きなz(nまたはsと同じくらい大きい)で始まり、大きなxおよびy(それぞれおよそnおよびsの大きさ)および小さなzで終わる(ECDSAにおけるnおよびsの選択に対しては生じないであろう、nおよびsが公約数を有する場合を除き、通常は1)。本実施形態において、拡張されたユークリッドの互除法は、大きさが中間的であってdおよびcそれぞれの要求を満たすxおよびyの値を入手するために途中で止められる。
【0036】
獲得されたcの値は、圧縮された署名(r,c)を提供するために、署名におけるsの代替とされる。次いで、これは、署名者から受取人へ送られる。
【0037】
圧縮された署名(r,c)は、点Rを計算することによって受取人により検証され得、Rは、rから復元され得る。rからRを復元することは、Rに対するいくつかの候補を提供し得、その場合に、以下の検証スキームが、各々のそのようなRについて検証者14によって試みられ得る。代わりに、候補の値のうちのどれがRに対する正しい選択であるかを示すために、追加の情報が、署名またはメッセージmとともに送られ得るか、または署名またはメッセージmの中に埋め込まれ得る。これは、例えば、Rのy座標の値の最初のビット(first bit)または類似の技術であり得る。各々のそのようなRについて、完全な署名(r,s)は、定義により、R=s−1(eP+rQ)の場合およびその場合にのみ、妥当であり、R=s−1(eP+rQ)は、上記の表記法に従えば、cR=d(eP+rQ)に等しい。
【0038】
署名(r,c)を検証するために、検証者14は、受取人にとって利用可能な公的情報を用いて行われ得るW=eP+rQを最初に計算する。上記で論じられたように、eは、概してメッセージmのハッシュとして、例えばe=H(m)として計算される。次いで、検証者14は、署名圧縮という目的のために署名者と検証者とによって合意された予め決定された境界よりもdが小さいという知識を用いて、d=log(cR)を計算しようと試みる。そのようなdが境界内に発見され得ない場合には、圧縮された署名(r,c)は妥当でないとして拒絶される。同様に、合意された境界を満たすdの値が獲得される場合には、署名は、検証されたとみなされ得る。そのような離散対数アルゴリズムは、概して、
【0039】
【数8】

【0040】
に比例する時間を要する。
【0041】
【数9】

【0042】
が十分に小さい場合には、そのようなアルゴリズムを用いることは、検証者14にとって非常に実用的である。いったん(および仮に)dが検証者14によって獲得されると、完全な署名(r,s)は、s=c/d mod nを計算することによって復元され得、検証者14が望む場合には、検証者14がまた完全な署名を用いる、または検証することも可能にし得る。
【0043】
図3に示される別の実施形態において、圧縮された署名は、(r,d)であり得、dは、上記の表記法において用いられる値であり、この場合において、cの復元された値は、特定の範囲の大きさを満たすこと、すなわち「十分に小さい」ことが要求される。
【0044】
上記の実施形態と同様に、値W=eP+rQが最初に計算され、次いで、検証者14は、Rを選ぶために任意の適切な方法を用いてc=log(dW)を計算しようと試み、上記の計算は、cが十分に小さい場合に行われ得る。そのようなcが発見され得ない場合には、圧縮された署名(r,d)は、妥当でないとして拒絶される。いったん(および仮に)cが獲得されると、署名は検証されたとみなされ得るが、検証者14が完全な署名(r,s)を用いるまたは検証することを望む場合には、完全な署名(r,s)は、s=c/d mod nを計算することによって復元され得る。
【0045】
多くの実用的な用途において、Rの選択は、しばしば二つの値の間に、例えばrのみが与えられる場合にはRと−Rとの間の選択に狭められ得る。一般に、Rとある点Wとの間の離散対数を解くアルゴリズムはまた、−RとWとの間の対数を求める。なぜならば最初の対数が例えばuである場合、もう一方は−uだからである。典型的には、−uが十分に小さいことをチェックするのは容易なので、候補の対(R,−R)につき一つの離散対数を計算すれば、概して十分である。
【0046】
上記の圧縮スキームは、検証者14が追加の2の楕円曲線群操作を実行するという代償を払って、2bビットの除去によりECDSA署名を効果的に圧縮し得、bは、署名者によって選ばれた予め決定された値である。公知の圧縮技術によって、2bビットを節減することの代償は、22bの追加の署名検証であったが、その追加の署名検証は、適度な大きさのbに対して、より多くの相当なコストがかかる。
【0047】
ECDSA署名(r,s)の検証、圧縮および解凍が秘密鍵を用いないで行われ得ることは、留意されるべきである。安全性の観点から、このことは、秘密鍵が完全な署名を圧縮または解凍する必要がないので、圧縮されたECDSA署名が完全な署名と同じように安全であることが大いに保証されることを意味する。実用的な観点から、このことは、圧縮された署名を検証するために、第三者が上記で説明されたスキームを含み得る方法を用いてサービスを提供し得ることを意味する。例えば、CAは、署名者によって作成された署名を圧縮し、それらが検証され得る受取人にそれらを送るための媒介として機能し得る。
【0048】
本発明は、所定の具体的な実施形態を参照して説明されてきたが、それらの多様な修正は、本明細書に添付された特許請求の範囲に概略が述べられている本発明の精神および範囲から逸脱することなく、当業者にとって明らかであろう。例えば、本技術は、第一の署名コンポーネントを生成するために短期の秘密鍵が用いられる他の離散対数署名アルゴリズムとともに用いられ得、第一の署名コンポーネントは、次いで第二の署名コンポーネントを生成するためにメッセージおよび署名者の長期の秘密鍵と結びつけられる。

【特許請求の範囲】
【請求項1】
明細書に記載の発明。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−110053(P2012−110053A)
【公開日】平成24年6月7日(2012.6.7)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−43403(P2012−43403)
【出願日】平成24年2月29日(2012.2.29)
【分割の表示】特願2009−535536(P2009−535536)の分割
【原出願日】平成19年11月13日(2007.11.13)
【出願人】(509132794)サーティコム コーポレイション (3)
【Fターム(参考)】