JP2004253950A - 事前計算による電子署名高速生成方法および装置 - Google Patents
事前計算による電子署名高速生成方法および装置 Download PDFInfo
- Publication number
- JP2004253950A JP2004253950A JP2003040645A JP2003040645A JP2004253950A JP 2004253950 A JP2004253950 A JP 2004253950A JP 2003040645 A JP2003040645 A JP 2003040645A JP 2003040645 A JP2003040645 A JP 2003040645A JP 2004253950 A JP2004253950 A JP 2004253950A
- Authority
- JP
- Japan
- Prior art keywords
- signature
- calculation
- random number
- calculated
- value
- 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
Links
Images
Abstract
【課題】事前計算を行なうことにより、電子署名の高速生成を行なうことができる事前計算による電子署名高速生成方法および装置を提供する。
【解決手段】外部演算装置に専用デバイスを接続し電子署名を生成する装置を用いると共に、暗号技術には楕円DSAを用いる。前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部と、乱数kから生成する乱数逆元k−1との2つを事前に計算しておき、この事前計算結果を事前計算値記憶領域に記憶し、外部演算装置にて計算されたハッシュ値eが入力された際に、専用デバイスは、秘密鍵sでハッシュ値eへの署名を行い署名t部を事後計算するにあたり、事前計算値の署名r部と乱数逆元k−1を利用して、署名t部を計算することで、署名r部と署名t部を署名データとして生成する。
【選択図】 図3
【解決手段】外部演算装置に専用デバイスを接続し電子署名を生成する装置を用いると共に、暗号技術には楕円DSAを用いる。前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部と、乱数kから生成する乱数逆元k−1との2つを事前に計算しておき、この事前計算結果を事前計算値記憶領域に記憶し、外部演算装置にて計算されたハッシュ値eが入力された際に、専用デバイスは、秘密鍵sでハッシュ値eへの署名を行い署名t部を事後計算するにあたり、事前計算値の署名r部と乱数逆元k−1を利用して、署名t部を計算することで、署名r部と署名t部を署名データとして生成する。
【選択図】 図3
Description
【0001】
【発明の属する技術分野】
本発明は、事前計算による電子署名高速生成方法および装置に関し、特に、秘匿すべき情報(秘密鍵や乱数など)および計算処理機能を格納する専用デバイスを用いた場合にあっても高速に署名生成可能な技術に関する。
【0002】
【従来の技術】
近年、インターネット等のオープンなネットワークを利用した電子メールやオンライン取引などが行なわれるようになり、これらディジタルデータ交換におけるセキュリティ上の安全性を確保するために暗号技術が不可欠になっている。
この暗号技術を用いて、例えば、送信者から受信者へのデータ送付をするとき、伝送途中でデータの改竄などが行なわれていないことを検知する技術に電子署名技術がある。
【0003】
この電子署名技術に用いられる暗号技術としては、一般に公開鍵暗号を用いたものが多い。公開鍵暗号は、暗号用の鍵と復号用の鍵が異なるもので、送信者は暗号用鍵(公開鍵という)を持ち、受信者は復号用鍵(秘密鍵という)を持つ。
公開鍵から秘密鍵を導き出すには膨大な計算量が必要であり、実用上にあっては不可能なように設計されている。したがって、送信者は、受信者の公開鍵を知ってさえいれば、秘密の鍵を送受信者間で共有しなくても暗号通信を行なうことができる。その点で、公開鍵暗号は、電子署名に適していると言える。
【0004】
公開鍵暗号を用いた暗号通信では、メッセージ内容の機密性を確保する目的のために、送信者は、受信者の公開鍵でメッセージ文の暗号化を行なう。これとは逆に、送信者が送信者自身の秘密鍵を用いてデータ変換を行なって署名データとすると電子署名となる。電子署名の場合、メッセージ内容の機密性を確保するのではなく当該メッセージ文の正当性を確認するための手段としての目的に供する。
即ち、署名データとは、従来の紙面文書への署名・捺印に対応するものであると言えよう。このように、公開鍵暗号による電子署名は、署名者の秘密鍵を知らなくても、公開鍵があれば署名の正当性を確認できるという特徴を有する。
【0005】
なお、電子署名には、素因数分解問題に基づいた電子署名方式のESIGN署名やRSA署名、有限体上の離散対数問題に基づくElGamel署名、楕円曲線理論を用いてDSA(Digital Signature Algorithm)署名を強化した楕円DSA署名、楕円ElGamel署名など様々なものがある。そして、これら署名方式を用いた電子署名生成過程において、予め電子署名の事前計算を行なっておき、実際に対象とするメッセージ文の署名データ生成時には事後計算を行うことにより、署名の高速化を図る提案がなされている。
【0006】
このような例として、特開2001−255816号公報に示されるものがある。この公報に記載の技術は、従来電子署名処理全体を装置内にて行なってきたものを、事前に実行しておく事前計算と、電子署名を生成する際に実行する必要がある事後処理に分け、署名が必要となる前に予め事前計算値を求めておき、実際に署名が必要となった際には、事前計算値を読み出し、事後計算のみにより高速に電子署名を作成するようにした電子署名の作成装置と作成方法が記載されている。これによれば、パソコン(PC)のデータに対して署名を施すために、電子署名処理装置として機能するICカードを用い、PCに接続されたカードリーダ/ライタにそのICカードを装着し、ICカード内にて前記データに対する署名処理を行ない、生成した電子署名をPCに引き渡すといった方式の場合、ICカード内に事前計算部と事後計算部とメモリとを設け、事前計算部による事前計算値をメモリ内に予め記憶しておき、実際に署名が必要となった際には、記憶しておいた事前計算値を使って事後計算部のみの計算で済ますことで、電子署名の生成を高速にしている。
【0007】
一般的な電子署名アルゴリズムにあっては、署名の対象とするメッセージ文のデータから所定のハッシュ関数に基づく演算を行なってハッシュ値を求め、そのハッシュ値に対し秘密鍵や乱数を用いて生成した値を用いて所定の演算を施すことにより署名データを生成している。ここで、ハッシュ値とは、任意のビット長からなるメッセージ文のデータから、一定長のダイジェストに圧縮したものであり、一方向性と無衝突性とが考慮されている。一方向性とは、生成されたハッシュ値から元のメッセージ文を復元計算することが容易でない性質を指し、また、衝突とは、異なる複数のメッセージ文に対し、同一のハッシュ値が生成されることを指す。
【0008】
ところで、上述の如くICカード等の専用デバイスを用いることについては、次のような利便性及び安全性がある。つまり、秘密鍵や乱数のような秘匿すべき情報については、手の平に収まるかの如く小型の専用デバイス内に格納しておき、これを通常の実印の印判と同様に物理的に管理し、金庫に収納したり、あるいは、必要な時に携帯できるようになり、意識的に日常の習慣として重要性を認識することができるようになる。また、例えば、上述のICカード等において、カードに物理的改ざん(ICチップの改造・分解など)加えようとしても、格納されている秘匿すべき情報が消滅、或いは無効化したりして使用できなくなるような構造としたものを「耐タンパデバイス」と呼び、セキュリティを強化することが行なわれている。
【0009】
【発明が解決しようとする課題】
しかしながら、上述した従来の事前計算による電子署名高速生成方法および装置においては、以下に示すような問題点があった。つまり、ICカード等の専用デバイスは小型省電力の制限から演算処理能力が非力であるから、たとえ従来例の如く事前計算をしておいて、実際に署名が必要となったときに事後計算部のみの計算で済ますとしても、ハッシュ値生成にあっては元となるメッセージ文のデータ量が多ければ多いほど計算量が増加するので、メッセージ文からハッシュ値を生成するのに要する時間が多くかかってしまうという問題があった。
【0010】
そこで、本発明はこのような問題点を解決するためになされたものであり、パーソナルコンピュータ(以下、PCと記す)等の外部演算装置と、署名データを生成する専用デバイスとにより電子署名生成に関する演算処理を分業しつつ、事前計算を行なうことにより、更なる電子署名の高速生成を行なうことができる事前計算による電子署名高速生成方法および装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記課題を解決するために本発明に係わる事前計算による電子署名高速生成方法の請求項1の発明は、外部演算装置に専用デバイスを接続し電子署名を生成する装置を用い、暗号技術に楕円DSAを用いた事前計算による電子署名高速生成方法であって、前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部r=x mod n ただし、(x,y)=kGであり、nはGの位数と、乱数kから生成する乱数逆元k−1との2つを事前に計算しておき、当該事前計算結果を事前計算値記憶領域に記憶し、外部演算装置にて計算されたハッシュ値eが入力された際に、前記専用デバイスは、秘密鍵sでハッシュ値eへの署名を行い署名t部t = k−1 ( e + s・r ) mod nを事後計算するにあたり、事前計算値の署名r部と乱数逆元k−1を利用して、署名t部を計算することで、署名r部と署名t部を署名データとして生成することを特徴とする。
【0012】
また、本発明に係わる事前計算による電子署名高速生成方法の請求項2の発明は、外部演算装置に専用デバイスを接続し電子署名を生成する装置を用い、暗号技術に楕円DSAを用いた事前計算による電子署名高速生成方法であって、前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部r=x mod n ただし、(x,y)=kGであり、nはGの位数と、乱数kから生成する乱数逆元k−1と、署名r部と秘密鍵sの乗算値srとの3つを事前に計算しておき、当該事前計算結果を事前計算値記憶領域に記憶し、外部演算装置にて計算されたハッシュ値eが入力された際に、前記専用デバイスは、秘密鍵sでハッシュ値eへの署名を行い署名t部t = k−1 ( e + s・r ) mod nを事後計算するにあたり、事前計算値の署名r部と乱数逆元k−1と乗算値srを利用して、署名t部を計算することで、署名r部と署名t部を署名データとして生成することを特徴とする
【0013】
また、本発明に係わる事前計算による電子署名高速生成方法の請求項3の発明は、前記請求項1または2の何れかに記載の事前計算による電子署名高速生成方法において、前記外部演算装置がハッシュ値eを専用デバイスに入力し、専用デバイスは署名r部と署名t部からなる署名データを外部演算装置に出力することを特徴とする。
【0014】
また、本発明に係わる事前計算による電子署名高速生成方法の請求項4の発明は、前記請求項3記載の事前計算による電子署名高速生成方法において、前記専用デバイスは、電子署名を行う対象データのハッシュ値eが入力されると、署名データを出力するトークンデバイスであって、トークンデバイス内に、署名データ生成装置と事前計算値記憶領域を有し、トークンデバイスへの給電があった時に前記署名データ生成装置は署名r部と乱数逆元k−1と乗算値srについて事前計算値を計算し、その計算結果を前記事前計算値記憶領域に記憶することで事前計算を行ない、トークンデバイスは、ハッシュ値eの入力の後、署名t部を生成し、署名データを出力することを特徴とする。
【0015】
また、本発明に係わる事前計算による電子署名高速生成方法の請求項5の発明は、前記請求項4記載の事前計算による電子署名高速生成方法において、外部演算装置にて対象データのハッシュ値eの計算中に、前記事前計算値の計算と記憶とを行うことを特徴とする。
【0016】
また、本発明に係わる事前計算による電子署名高速生成装置の請求項6の発明は、外部演算装置に専用デバイスを接続し、楕円DSAを用いた事前計算による電子署名高速生成装置であって、前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部r=x mod n ただし、(x,y)=kGであり、nはGの位数と、乱数kから生成する乱数逆元k−1との2つを事前に計算する事前計算装置と、当該事前計算結果を記憶しておく事前計算値記憶領域部と、秘密鍵sでハッシュ値eへの署名を行い署名t部t = k−1 ( e + s・r ) mod nを事後計算する署名データ生成装置とを備え、前記専用デバイスは、外部演算装置にて計算されたハッシュ値eが入力されると、事前計算値の署名r部と乱数逆元k−1を利用して署名t部を計算し、署名r部と署名t部を署名データとして生成することを特徴とする。
【0017】
また、本発明に係わる事前計算による電子署名高速生成装置の請求項7の発明は、外部演算装置に専用デバイスを接続し、楕円DSAを用いた事前計算による電子署名高速生成装置であって、前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部r=x mod n ただし、(x,y)=kGであり、nはGの位数と、乱数kから生成する乱数逆元k−1と、署名r部と秘密鍵sの乗算値srとの3つを事前に計算する事前計算装置と、当該事前計算結果を記憶しておく事前計算値記憶領域部と、秘密鍵sでハッシュ値eへの署名を行い署名t部t = k−1 ( e + s・r ) mod nを事後計算する署名データ生成装置とを備え、前記専用デバイスは、外部演算装置にて計算されたハッシュ値eが入力されると、事前計算値の署名r部と乱数逆元k−1と乗算値srを利用して署名t部を計算し、署名r部と署名t部を署名データとして生成することを特徴とする。
【0018】
【発明の実施の形態】
以下、図示した実施の形態例に基づいて本発明を詳細に説明する。
図1は、本発明に係わる事前計算による電子署名高速生成装置の適用の形態例を示す構成図である。同図(a)は、専用デバイス100と外部演算装置200とが接続され、更に外部演算装置200がネットワーク300に接続したシステム構成例を示し、(b)は、外部演算装置200としてパーソナル・コンピュータ(以下、PCと記す)201を用い、また、専用デバイス100としてUSB(Universal Serial Bus)インタフェースを具備したUSBデバイス101を用いた場合の構成例を示す。
この例に示す専用デバイス100と外部演算装置200の何れも、演算処理機能を有しており、それぞれ内部にはディジタル集積回路などを備える。ここで、専用デバイス100側の演算処理機能は、外部演算装置200側のそれに比べて能力が劣るものである。これは、専用デバイス100が小型ゆえの物理的な制約による。
【0019】
上述の専用デバイス100と外部演算装置200の組合せによる電子署名の生成であって、暗号技術として楕円DSA方式を用いたものが本発明の前提構成となる。
以下、図を用いて具体的な例を説明する。
図2は本発明に係る事前計算による電子署名高速生成装置に用いる外部演算装置の内部構成例を示す機能ブロック図であり、図3は、事前計算による電子署名高速生成装置に用いる専用デバイスの内部構成例を示す機能ブロック図である。
そして、図4は、本発明に係る事前計算による電子署名高速生成装置により生成される電子署名付きデータのフレーム構成イメージ図である。
【0020】
まず、公開鍵暗号を用いた電子署名技術の1つとしての楕円DSA方式の詳細は、米国電気電子学会IEEE(The Institute of Electrical and Electronics Engineers)の標準規格P1363や、暗号の解説書(例えば、「暗号ゼロ知識証明数論」共立出版、「PGP―暗号メールと電子署名」オライリー・ジャパン)等に記載されているので、ここでは要点のみ説明する。
楕円DSA方式では、1つのデータM(メッセージ文)に対して、図4に示す如く署名r部と署名t部との2つの値からなる署名データを署名として生成する。即ち、楕円DSAは、ハッシュ関数hを用いてデータMから固定長のメッセージダイジェストであるハッシュ値eを生成し、このハッシュ値eに対し、乱数kと秘密鍵sを用いて、署名データを生成する署名アルゴリズムであり、演算式は以下の通りである。
r = x mod n
t = k−1 ( e + s r ) mod n
ただし、(x, y)=kG、Gは楕円曲線のベースポイント、nはGの位数。
ここで、kは乱数、sは秘密鍵であって、乱数kと秘密鍵sは何れも署名する者が秘密にしておかなければならない値である。
【0021】
通常、ハッシュ値eの入力を受け、乱数kを生成し、ベースポイントGを乱数倍し、そのx座標値をベースポイントの位数nで剰余をとり、署名r部を生成し、
位数nを法として、乱数の逆元k−1を計算し、秘密鍵sと署名r部を乗算し、その乗算結果である乗算値srとハッシュ値eを加算し、更にその結果に乱数の逆元k−1を乗算することで、署名t部を生成する。そして署名r部と署名t部を署名データとして対象データMに付加し、電子署名付きデータを出力する。
【0022】
受信者は、電子署名付きデータを受け取ると、データM部、署名r部、署名t部とに分離し、前記データからハッシュ値を求めると共に、署名者の公開鍵と、署名r、署名tを用いた所定の演算により検証を行なうことになる。
楕円曲線暗号系は,RSA暗号やElGamal暗号に比較して、約1/6の大きさの鍵で同等の安全性を確保することができる特徴を持つ。つまり、楕円DSA方式の電子署名は、鍵サイズが小さく、秘匿すべき鍵を演算処理能力の非力な専用デバイスに格納するには適したものである。鍵サイズが小さいと、メモリが小さくなるだけでなく、演算規模も小さくて済むので、非力な専用デバイスを用いたとしても高速に暗号/復号化処理を行うことができることになる。
【0023】
本発明に係る電子署名生成にあっては、秘密鍵sと乱数kの絡む演算は専用デバイス100内にて行ない、送信する対象データMからハッシュ値eを生成する過程の演算は外部演算装置200内にて行ない、外部演算装置200はハッシュ値eを専用デバイス100に出力する。
【0024】
図2に戻り説明する。この例に示すPC201内のハッシュ値生成装置210は、対象データMが入力されると、予め与えられたハッシュ関数hに基づきハッシュ値eを求める計算を行ない、求めたハッシュ値eを専用デバイス100に出力する。ここで、前記データMは秘密にする必要がなく、当該データMから生成したハッシュ値eも秘密にしておく必要がないので、外部演算装置200内にこれらの値などが残っていたとしても何ら問題がない。したがって、外部演算装置200は、不特定の装置を利用してもよいのである。
【0025】
また、図3に示す専用デバイス100は、大別すると事前計算装置10と、事前計算値記憶領域20と、署名データ生成装置30とを備えて構成される。
前記事前計算装置10は、乱数kを発生する乱数生成装置11と、該乱数生成装置11からの乱数kを元に所定の演算を行ない署名r部を生成する署名r部生成装置12と、前記乱数kからその逆元k−1を求める逆元生成装置13と、秘密鍵sを格納した秘密鍵14と、前記秘密鍵14からの秘密鍵sと前記署名r部生成装置12からの署名rとを用いて所定の演算を行い乗算値srを求める乗算装置15とを有している。
事前計算装置10からは、乱数kと秘密鍵sを用いて計算可能な署名r部と乱数逆元k−1と乗算値srとの3つについて事前計算値として出力される。
【0026】
また、前記事前計算値記憶領域20は、署名r部21と乱数逆元22と乗算値sr23の3つの記憶領域を有し、前記事前計算装置10から出力される署名r部と乱数逆元k−1と乗算値srについて、それぞれの事前計算値を記憶する。
【0027】
また、前記署名データ生成装置30は、外部演算装置200からのハッシュ値eが入力されると事前計算値記憶領域20の乗算値sr23に記憶されている乗算値srとを加算する加算装置31と、該加算装置31からの加算結果に更に事前計算値記憶領域20の乱数逆元22に記憶されている乱数逆元k−1とを用いて演算する乗算装置32とを有し、この署名データ生成装置30から出力されるのは、署名t部となる。
こうして、最終的に専用デバイス100からは、署名r部と署名t部とを組み合わして構成する署名データが出力される。そして、外部演算装置200は、この署名データを付加し、電子署名付きデータとしてネットワーク300などに送信する。
【0028】
ここで特徴的な点は、秘匿すべき情報、即ち、秘密鍵sと乱数kの絡む計算は全て専用デバイス100内にて行なうことで、外部に漏れる虞を排除している。そして、これまでにも述べたように専用デバイス100の演算能力は非力であり、電子署名生成処理に要する処理時間を実用的な時間に短縮するために事前計算を行なっている。このとき事前計算しておく値としては、署名r部の値と、乱数の逆元の値と、前記署名r部と秘密鍵sとを乗算した値である。言うまでもなく、これら値の全てを事前に計算しておいてもいいし、何れかの部分のみ計算しておくとしてもよい。最大の特徴は、対象データMからハッシュ値eを生成する過程の計算処理を外部演算装置200にて行なう点にある。これにより、対象データMのデータサイズが極めて巨大なものであったとしても、演算能力の高い外部演算装置200(これは、複数台からなる並列処理装置であってもよい)により計算処理するので、これを専用デバイス100内にて行なう場合に比べ、大幅な処理時間短縮の効果を得ることが可能になる。
【0029】
上述した如く構成する事前計算による電子署名高速生成装置は、例えば、以下のように機能する。なお、ハッシュ値を生成する機能を備えたPC201と、署名データを生成する機能を備えたUSBデバイス101との組合せの場合を例に動作手順を説明する。
まず、USBデバイス101をPC201に直接または間接的にUSBインタフェースにて接続すると、PC201はプラグアンドプレイ機能により接続されたUSBデバイス101を自動的に認識すると共に、USBインタフェースを介してPC201側からUSBデバイス101へ電力の供給が開始される。つまり、USBデバイス101内には電源を持たなくてもよく、この給電される電力を用いて動作すればよい。
【0030】
そして、USBデバイス101は、事前計算を行なう。即ち、予め定めた秘密鍵sと任意に生成する乱数kとを用いて、署名r部と乱数逆元k−1と乗算値srとを計算により生成し、これを事前計算値記憶領域20に記憶しておく。ここで、事前計算値記憶領域20として、例えば、EEPROM(Electrically Erasable Programmable ROM)等に事前計算値テーブルを形成した場合を想定すれば、図5に示すように構成すればよい。
【0031】
図5は、本発明に係る事前計算による電子署名高速生成方法に用いる事前計算値テーブルの構成例を示す図である。この事前計算値テーブルは、署名r部と乱数逆元k−1と乗算値srとの3つについて、それぞれ格納する領域(列)を有し、且つ、10通りのバリエーション組(行)を有したものを示している。
つまり、USBデバイス101が動作可能な状態にあって署名処理を行なわないときの空いている時間中に前記事前計算を自動的に行なって、その結果をテーブル上に書き加えていく。
【0032】
他方、署名処理を行なう際には、PC201は対象データMについてハッシュ値eの生成を行ない、USBデバイス101にハッシュ値eを送る。
このハッシュ値eを受けたUSBデバイス101は、前記事前計算値テーブル内から、署名r部と乱数逆元k−1と乗算値srの組を一つ選び、読み出す。このとき、どの組みを選択するかは任意でよく、読み出した各事前計算値は、例えばRAM(Random Access Memory)などに展開する。なお、選択した事前計算値の組みの情報について、前記事前計算値テーブル内から削除する。削除の手段としては、記憶を消去してもいいし、使用済みフラグなどを付して再選択されないようにしてもよい。
また、その後、署名処理を行なわないときに、USBデバイス101は、自動的に事前計算を行ない、新たに生成した署名r部と乱数逆元k−1と乗算値srの組みを追加記憶、或いは上書き記憶する。
【0033】
そして、USBデバイス101は、署名データ生成装置30によりRAM上の事前計算値を用いて署名t部を生成し、署名r部と署名t部とからなる署名データをPC201に出力する。
こうして、PC201は、対象データMに署名データを付加して電子署名付きデータを完成させる。
【0034】
以上、専用デバイス100としてUSBデバイス101を用いた場合を説明したが、ICカードなどの他のデバイスを用いても、上述の構成を適用可能なことは言うまでもない。
【0035】
以上のように、本発明に係わる事前計算による電子署名高速生成装置は、専用デバイス100と外部演算装置200を組合せ、それぞれに分業させて楕円DSA方式を用いた電子署名の生成を行なうようにし、前記専用デバイス100では署名r部と乱数逆元k−1と乗算値srについて事前に計算しておき、外部演算装置200では対象データMからハッシュ値eを求める計算を行なわたので、演算処理御能力の低い専用デバイス100を用いたとしても、実際に署名処理が必要となったときには、専用デバイス100は、入力されたハッシュ値eと、各事前計算値をと用い、署名データ生成装置30にて計算を行なうだけの処理時間で済み、大幅な時間短縮をすることができる。
【0036】
【発明の効果】
以上のように本発明に係わる事前計算による電子署名高速生成方法は、外部演算装置に専用デバイスを接続し電子署名を生成する装置を用い、暗号技術に楕円DSAを用いた事前計算による電子署名高速生成方法であって、前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部“r=x mod n”ただし、(x,y)=kGであり、nはGの位数と、乱数kから生成する乱数逆元k−1との2つを事前に計算しておき、当該事前計算結果を事前計算値記憶領域に記憶し、外部演算装置にて計算されたハッシュ値eが入力された際に、前記専用デバイスは、秘密鍵sでハッシュ値eへの署名を行い署名t部“t = k−1 ( e + s・r ) mod n”を事後計算するにあたり、事前計算値の署名r部と乱数逆元k−1を利用して、署名t部を計算することで、署名r部と署名t部を署名データとして生成するようにしたので、専用デバイスにおいて、ハッシュ値の取得から署名データの生成にかかる処理時間の削減になり、高速な電子署名生成が実現できる。
【図面の簡単な説明】
【図1】本発明に係る事前計算による電子署名高速生成装置の適用の形態例を示すの構成図である。(a)は、ネットワーク中に電子署名付きデータを送信する場合のシステム構成例を示し、(b)はPCとUSBデバイスを用いた場合の構成例を示す。
【図2】本発明に係る事前計算による電子署名高速生成装置に用いる外部演算装置の構成例を示す機能ブロック図である。
【図3】本発明に係る事前計算による電子署名高速生成装置に用いる専用デバイスの構成例を示す機能ブロック図である。
【図4】本発明に係る事前計算による電子署名高速生成装置により生成される電子署名付きデータのフレーム構成イメージ例を示す図である。
【図5】本発明に係る事前計算による電子署名高速生成方法に用いる事前計算値テーブルの構成例を示す図である。
【符号の説明】
10・・・事前計算装置
11・・・乱数生成装置
12・・・署名r部生成装置
13・・・逆元生成装置
14・・・秘密鍵s
15・・・乗算装置
20・・・事前計算値記憶領域
21・・・署名r部
22・・・乱数逆元k−1
23・・・乗算値sr
30・・・署名データ生成装置
31・・・加算装置
32・・・乗算装置
100・・・専用デバイス
101・・・USBデバイス
200・・・外部演算装置
201・・・パーソナル・コンピュータ(PC)
210・・・ハッシュ値生成装置
300・・・ネットワーク
【発明の属する技術分野】
本発明は、事前計算による電子署名高速生成方法および装置に関し、特に、秘匿すべき情報(秘密鍵や乱数など)および計算処理機能を格納する専用デバイスを用いた場合にあっても高速に署名生成可能な技術に関する。
【0002】
【従来の技術】
近年、インターネット等のオープンなネットワークを利用した電子メールやオンライン取引などが行なわれるようになり、これらディジタルデータ交換におけるセキュリティ上の安全性を確保するために暗号技術が不可欠になっている。
この暗号技術を用いて、例えば、送信者から受信者へのデータ送付をするとき、伝送途中でデータの改竄などが行なわれていないことを検知する技術に電子署名技術がある。
【0003】
この電子署名技術に用いられる暗号技術としては、一般に公開鍵暗号を用いたものが多い。公開鍵暗号は、暗号用の鍵と復号用の鍵が異なるもので、送信者は暗号用鍵(公開鍵という)を持ち、受信者は復号用鍵(秘密鍵という)を持つ。
公開鍵から秘密鍵を導き出すには膨大な計算量が必要であり、実用上にあっては不可能なように設計されている。したがって、送信者は、受信者の公開鍵を知ってさえいれば、秘密の鍵を送受信者間で共有しなくても暗号通信を行なうことができる。その点で、公開鍵暗号は、電子署名に適していると言える。
【0004】
公開鍵暗号を用いた暗号通信では、メッセージ内容の機密性を確保する目的のために、送信者は、受信者の公開鍵でメッセージ文の暗号化を行なう。これとは逆に、送信者が送信者自身の秘密鍵を用いてデータ変換を行なって署名データとすると電子署名となる。電子署名の場合、メッセージ内容の機密性を確保するのではなく当該メッセージ文の正当性を確認するための手段としての目的に供する。
即ち、署名データとは、従来の紙面文書への署名・捺印に対応するものであると言えよう。このように、公開鍵暗号による電子署名は、署名者の秘密鍵を知らなくても、公開鍵があれば署名の正当性を確認できるという特徴を有する。
【0005】
なお、電子署名には、素因数分解問題に基づいた電子署名方式のESIGN署名やRSA署名、有限体上の離散対数問題に基づくElGamel署名、楕円曲線理論を用いてDSA(Digital Signature Algorithm)署名を強化した楕円DSA署名、楕円ElGamel署名など様々なものがある。そして、これら署名方式を用いた電子署名生成過程において、予め電子署名の事前計算を行なっておき、実際に対象とするメッセージ文の署名データ生成時には事後計算を行うことにより、署名の高速化を図る提案がなされている。
【0006】
このような例として、特開2001−255816号公報に示されるものがある。この公報に記載の技術は、従来電子署名処理全体を装置内にて行なってきたものを、事前に実行しておく事前計算と、電子署名を生成する際に実行する必要がある事後処理に分け、署名が必要となる前に予め事前計算値を求めておき、実際に署名が必要となった際には、事前計算値を読み出し、事後計算のみにより高速に電子署名を作成するようにした電子署名の作成装置と作成方法が記載されている。これによれば、パソコン(PC)のデータに対して署名を施すために、電子署名処理装置として機能するICカードを用い、PCに接続されたカードリーダ/ライタにそのICカードを装着し、ICカード内にて前記データに対する署名処理を行ない、生成した電子署名をPCに引き渡すといった方式の場合、ICカード内に事前計算部と事後計算部とメモリとを設け、事前計算部による事前計算値をメモリ内に予め記憶しておき、実際に署名が必要となった際には、記憶しておいた事前計算値を使って事後計算部のみの計算で済ますことで、電子署名の生成を高速にしている。
【0007】
一般的な電子署名アルゴリズムにあっては、署名の対象とするメッセージ文のデータから所定のハッシュ関数に基づく演算を行なってハッシュ値を求め、そのハッシュ値に対し秘密鍵や乱数を用いて生成した値を用いて所定の演算を施すことにより署名データを生成している。ここで、ハッシュ値とは、任意のビット長からなるメッセージ文のデータから、一定長のダイジェストに圧縮したものであり、一方向性と無衝突性とが考慮されている。一方向性とは、生成されたハッシュ値から元のメッセージ文を復元計算することが容易でない性質を指し、また、衝突とは、異なる複数のメッセージ文に対し、同一のハッシュ値が生成されることを指す。
【0008】
ところで、上述の如くICカード等の専用デバイスを用いることについては、次のような利便性及び安全性がある。つまり、秘密鍵や乱数のような秘匿すべき情報については、手の平に収まるかの如く小型の専用デバイス内に格納しておき、これを通常の実印の印判と同様に物理的に管理し、金庫に収納したり、あるいは、必要な時に携帯できるようになり、意識的に日常の習慣として重要性を認識することができるようになる。また、例えば、上述のICカード等において、カードに物理的改ざん(ICチップの改造・分解など)加えようとしても、格納されている秘匿すべき情報が消滅、或いは無効化したりして使用できなくなるような構造としたものを「耐タンパデバイス」と呼び、セキュリティを強化することが行なわれている。
【0009】
【発明が解決しようとする課題】
しかしながら、上述した従来の事前計算による電子署名高速生成方法および装置においては、以下に示すような問題点があった。つまり、ICカード等の専用デバイスは小型省電力の制限から演算処理能力が非力であるから、たとえ従来例の如く事前計算をしておいて、実際に署名が必要となったときに事後計算部のみの計算で済ますとしても、ハッシュ値生成にあっては元となるメッセージ文のデータ量が多ければ多いほど計算量が増加するので、メッセージ文からハッシュ値を生成するのに要する時間が多くかかってしまうという問題があった。
【0010】
そこで、本発明はこのような問題点を解決するためになされたものであり、パーソナルコンピュータ(以下、PCと記す)等の外部演算装置と、署名データを生成する専用デバイスとにより電子署名生成に関する演算処理を分業しつつ、事前計算を行なうことにより、更なる電子署名の高速生成を行なうことができる事前計算による電子署名高速生成方法および装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記課題を解決するために本発明に係わる事前計算による電子署名高速生成方法の請求項1の発明は、外部演算装置に専用デバイスを接続し電子署名を生成する装置を用い、暗号技術に楕円DSAを用いた事前計算による電子署名高速生成方法であって、前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部r=x mod n ただし、(x,y)=kGであり、nはGの位数と、乱数kから生成する乱数逆元k−1との2つを事前に計算しておき、当該事前計算結果を事前計算値記憶領域に記憶し、外部演算装置にて計算されたハッシュ値eが入力された際に、前記専用デバイスは、秘密鍵sでハッシュ値eへの署名を行い署名t部t = k−1 ( e + s・r ) mod nを事後計算するにあたり、事前計算値の署名r部と乱数逆元k−1を利用して、署名t部を計算することで、署名r部と署名t部を署名データとして生成することを特徴とする。
【0012】
また、本発明に係わる事前計算による電子署名高速生成方法の請求項2の発明は、外部演算装置に専用デバイスを接続し電子署名を生成する装置を用い、暗号技術に楕円DSAを用いた事前計算による電子署名高速生成方法であって、前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部r=x mod n ただし、(x,y)=kGであり、nはGの位数と、乱数kから生成する乱数逆元k−1と、署名r部と秘密鍵sの乗算値srとの3つを事前に計算しておき、当該事前計算結果を事前計算値記憶領域に記憶し、外部演算装置にて計算されたハッシュ値eが入力された際に、前記専用デバイスは、秘密鍵sでハッシュ値eへの署名を行い署名t部t = k−1 ( e + s・r ) mod nを事後計算するにあたり、事前計算値の署名r部と乱数逆元k−1と乗算値srを利用して、署名t部を計算することで、署名r部と署名t部を署名データとして生成することを特徴とする
【0013】
また、本発明に係わる事前計算による電子署名高速生成方法の請求項3の発明は、前記請求項1または2の何れかに記載の事前計算による電子署名高速生成方法において、前記外部演算装置がハッシュ値eを専用デバイスに入力し、専用デバイスは署名r部と署名t部からなる署名データを外部演算装置に出力することを特徴とする。
【0014】
また、本発明に係わる事前計算による電子署名高速生成方法の請求項4の発明は、前記請求項3記載の事前計算による電子署名高速生成方法において、前記専用デバイスは、電子署名を行う対象データのハッシュ値eが入力されると、署名データを出力するトークンデバイスであって、トークンデバイス内に、署名データ生成装置と事前計算値記憶領域を有し、トークンデバイスへの給電があった時に前記署名データ生成装置は署名r部と乱数逆元k−1と乗算値srについて事前計算値を計算し、その計算結果を前記事前計算値記憶領域に記憶することで事前計算を行ない、トークンデバイスは、ハッシュ値eの入力の後、署名t部を生成し、署名データを出力することを特徴とする。
【0015】
また、本発明に係わる事前計算による電子署名高速生成方法の請求項5の発明は、前記請求項4記載の事前計算による電子署名高速生成方法において、外部演算装置にて対象データのハッシュ値eの計算中に、前記事前計算値の計算と記憶とを行うことを特徴とする。
【0016】
また、本発明に係わる事前計算による電子署名高速生成装置の請求項6の発明は、外部演算装置に専用デバイスを接続し、楕円DSAを用いた事前計算による電子署名高速生成装置であって、前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部r=x mod n ただし、(x,y)=kGであり、nはGの位数と、乱数kから生成する乱数逆元k−1との2つを事前に計算する事前計算装置と、当該事前計算結果を記憶しておく事前計算値記憶領域部と、秘密鍵sでハッシュ値eへの署名を行い署名t部t = k−1 ( e + s・r ) mod nを事後計算する署名データ生成装置とを備え、前記専用デバイスは、外部演算装置にて計算されたハッシュ値eが入力されると、事前計算値の署名r部と乱数逆元k−1を利用して署名t部を計算し、署名r部と署名t部を署名データとして生成することを特徴とする。
【0017】
また、本発明に係わる事前計算による電子署名高速生成装置の請求項7の発明は、外部演算装置に専用デバイスを接続し、楕円DSAを用いた事前計算による電子署名高速生成装置であって、前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部r=x mod n ただし、(x,y)=kGであり、nはGの位数と、乱数kから生成する乱数逆元k−1と、署名r部と秘密鍵sの乗算値srとの3つを事前に計算する事前計算装置と、当該事前計算結果を記憶しておく事前計算値記憶領域部と、秘密鍵sでハッシュ値eへの署名を行い署名t部t = k−1 ( e + s・r ) mod nを事後計算する署名データ生成装置とを備え、前記専用デバイスは、外部演算装置にて計算されたハッシュ値eが入力されると、事前計算値の署名r部と乱数逆元k−1と乗算値srを利用して署名t部を計算し、署名r部と署名t部を署名データとして生成することを特徴とする。
【0018】
【発明の実施の形態】
以下、図示した実施の形態例に基づいて本発明を詳細に説明する。
図1は、本発明に係わる事前計算による電子署名高速生成装置の適用の形態例を示す構成図である。同図(a)は、専用デバイス100と外部演算装置200とが接続され、更に外部演算装置200がネットワーク300に接続したシステム構成例を示し、(b)は、外部演算装置200としてパーソナル・コンピュータ(以下、PCと記す)201を用い、また、専用デバイス100としてUSB(Universal Serial Bus)インタフェースを具備したUSBデバイス101を用いた場合の構成例を示す。
この例に示す専用デバイス100と外部演算装置200の何れも、演算処理機能を有しており、それぞれ内部にはディジタル集積回路などを備える。ここで、専用デバイス100側の演算処理機能は、外部演算装置200側のそれに比べて能力が劣るものである。これは、専用デバイス100が小型ゆえの物理的な制約による。
【0019】
上述の専用デバイス100と外部演算装置200の組合せによる電子署名の生成であって、暗号技術として楕円DSA方式を用いたものが本発明の前提構成となる。
以下、図を用いて具体的な例を説明する。
図2は本発明に係る事前計算による電子署名高速生成装置に用いる外部演算装置の内部構成例を示す機能ブロック図であり、図3は、事前計算による電子署名高速生成装置に用いる専用デバイスの内部構成例を示す機能ブロック図である。
そして、図4は、本発明に係る事前計算による電子署名高速生成装置により生成される電子署名付きデータのフレーム構成イメージ図である。
【0020】
まず、公開鍵暗号を用いた電子署名技術の1つとしての楕円DSA方式の詳細は、米国電気電子学会IEEE(The Institute of Electrical and Electronics Engineers)の標準規格P1363や、暗号の解説書(例えば、「暗号ゼロ知識証明数論」共立出版、「PGP―暗号メールと電子署名」オライリー・ジャパン)等に記載されているので、ここでは要点のみ説明する。
楕円DSA方式では、1つのデータM(メッセージ文)に対して、図4に示す如く署名r部と署名t部との2つの値からなる署名データを署名として生成する。即ち、楕円DSAは、ハッシュ関数hを用いてデータMから固定長のメッセージダイジェストであるハッシュ値eを生成し、このハッシュ値eに対し、乱数kと秘密鍵sを用いて、署名データを生成する署名アルゴリズムであり、演算式は以下の通りである。
r = x mod n
t = k−1 ( e + s r ) mod n
ただし、(x, y)=kG、Gは楕円曲線のベースポイント、nはGの位数。
ここで、kは乱数、sは秘密鍵であって、乱数kと秘密鍵sは何れも署名する者が秘密にしておかなければならない値である。
【0021】
通常、ハッシュ値eの入力を受け、乱数kを生成し、ベースポイントGを乱数倍し、そのx座標値をベースポイントの位数nで剰余をとり、署名r部を生成し、
位数nを法として、乱数の逆元k−1を計算し、秘密鍵sと署名r部を乗算し、その乗算結果である乗算値srとハッシュ値eを加算し、更にその結果に乱数の逆元k−1を乗算することで、署名t部を生成する。そして署名r部と署名t部を署名データとして対象データMに付加し、電子署名付きデータを出力する。
【0022】
受信者は、電子署名付きデータを受け取ると、データM部、署名r部、署名t部とに分離し、前記データからハッシュ値を求めると共に、署名者の公開鍵と、署名r、署名tを用いた所定の演算により検証を行なうことになる。
楕円曲線暗号系は,RSA暗号やElGamal暗号に比較して、約1/6の大きさの鍵で同等の安全性を確保することができる特徴を持つ。つまり、楕円DSA方式の電子署名は、鍵サイズが小さく、秘匿すべき鍵を演算処理能力の非力な専用デバイスに格納するには適したものである。鍵サイズが小さいと、メモリが小さくなるだけでなく、演算規模も小さくて済むので、非力な専用デバイスを用いたとしても高速に暗号/復号化処理を行うことができることになる。
【0023】
本発明に係る電子署名生成にあっては、秘密鍵sと乱数kの絡む演算は専用デバイス100内にて行ない、送信する対象データMからハッシュ値eを生成する過程の演算は外部演算装置200内にて行ない、外部演算装置200はハッシュ値eを専用デバイス100に出力する。
【0024】
図2に戻り説明する。この例に示すPC201内のハッシュ値生成装置210は、対象データMが入力されると、予め与えられたハッシュ関数hに基づきハッシュ値eを求める計算を行ない、求めたハッシュ値eを専用デバイス100に出力する。ここで、前記データMは秘密にする必要がなく、当該データMから生成したハッシュ値eも秘密にしておく必要がないので、外部演算装置200内にこれらの値などが残っていたとしても何ら問題がない。したがって、外部演算装置200は、不特定の装置を利用してもよいのである。
【0025】
また、図3に示す専用デバイス100は、大別すると事前計算装置10と、事前計算値記憶領域20と、署名データ生成装置30とを備えて構成される。
前記事前計算装置10は、乱数kを発生する乱数生成装置11と、該乱数生成装置11からの乱数kを元に所定の演算を行ない署名r部を生成する署名r部生成装置12と、前記乱数kからその逆元k−1を求める逆元生成装置13と、秘密鍵sを格納した秘密鍵14と、前記秘密鍵14からの秘密鍵sと前記署名r部生成装置12からの署名rとを用いて所定の演算を行い乗算値srを求める乗算装置15とを有している。
事前計算装置10からは、乱数kと秘密鍵sを用いて計算可能な署名r部と乱数逆元k−1と乗算値srとの3つについて事前計算値として出力される。
【0026】
また、前記事前計算値記憶領域20は、署名r部21と乱数逆元22と乗算値sr23の3つの記憶領域を有し、前記事前計算装置10から出力される署名r部と乱数逆元k−1と乗算値srについて、それぞれの事前計算値を記憶する。
【0027】
また、前記署名データ生成装置30は、外部演算装置200からのハッシュ値eが入力されると事前計算値記憶領域20の乗算値sr23に記憶されている乗算値srとを加算する加算装置31と、該加算装置31からの加算結果に更に事前計算値記憶領域20の乱数逆元22に記憶されている乱数逆元k−1とを用いて演算する乗算装置32とを有し、この署名データ生成装置30から出力されるのは、署名t部となる。
こうして、最終的に専用デバイス100からは、署名r部と署名t部とを組み合わして構成する署名データが出力される。そして、外部演算装置200は、この署名データを付加し、電子署名付きデータとしてネットワーク300などに送信する。
【0028】
ここで特徴的な点は、秘匿すべき情報、即ち、秘密鍵sと乱数kの絡む計算は全て専用デバイス100内にて行なうことで、外部に漏れる虞を排除している。そして、これまでにも述べたように専用デバイス100の演算能力は非力であり、電子署名生成処理に要する処理時間を実用的な時間に短縮するために事前計算を行なっている。このとき事前計算しておく値としては、署名r部の値と、乱数の逆元の値と、前記署名r部と秘密鍵sとを乗算した値である。言うまでもなく、これら値の全てを事前に計算しておいてもいいし、何れかの部分のみ計算しておくとしてもよい。最大の特徴は、対象データMからハッシュ値eを生成する過程の計算処理を外部演算装置200にて行なう点にある。これにより、対象データMのデータサイズが極めて巨大なものであったとしても、演算能力の高い外部演算装置200(これは、複数台からなる並列処理装置であってもよい)により計算処理するので、これを専用デバイス100内にて行なう場合に比べ、大幅な処理時間短縮の効果を得ることが可能になる。
【0029】
上述した如く構成する事前計算による電子署名高速生成装置は、例えば、以下のように機能する。なお、ハッシュ値を生成する機能を備えたPC201と、署名データを生成する機能を備えたUSBデバイス101との組合せの場合を例に動作手順を説明する。
まず、USBデバイス101をPC201に直接または間接的にUSBインタフェースにて接続すると、PC201はプラグアンドプレイ機能により接続されたUSBデバイス101を自動的に認識すると共に、USBインタフェースを介してPC201側からUSBデバイス101へ電力の供給が開始される。つまり、USBデバイス101内には電源を持たなくてもよく、この給電される電力を用いて動作すればよい。
【0030】
そして、USBデバイス101は、事前計算を行なう。即ち、予め定めた秘密鍵sと任意に生成する乱数kとを用いて、署名r部と乱数逆元k−1と乗算値srとを計算により生成し、これを事前計算値記憶領域20に記憶しておく。ここで、事前計算値記憶領域20として、例えば、EEPROM(Electrically Erasable Programmable ROM)等に事前計算値テーブルを形成した場合を想定すれば、図5に示すように構成すればよい。
【0031】
図5は、本発明に係る事前計算による電子署名高速生成方法に用いる事前計算値テーブルの構成例を示す図である。この事前計算値テーブルは、署名r部と乱数逆元k−1と乗算値srとの3つについて、それぞれ格納する領域(列)を有し、且つ、10通りのバリエーション組(行)を有したものを示している。
つまり、USBデバイス101が動作可能な状態にあって署名処理を行なわないときの空いている時間中に前記事前計算を自動的に行なって、その結果をテーブル上に書き加えていく。
【0032】
他方、署名処理を行なう際には、PC201は対象データMについてハッシュ値eの生成を行ない、USBデバイス101にハッシュ値eを送る。
このハッシュ値eを受けたUSBデバイス101は、前記事前計算値テーブル内から、署名r部と乱数逆元k−1と乗算値srの組を一つ選び、読み出す。このとき、どの組みを選択するかは任意でよく、読み出した各事前計算値は、例えばRAM(Random Access Memory)などに展開する。なお、選択した事前計算値の組みの情報について、前記事前計算値テーブル内から削除する。削除の手段としては、記憶を消去してもいいし、使用済みフラグなどを付して再選択されないようにしてもよい。
また、その後、署名処理を行なわないときに、USBデバイス101は、自動的に事前計算を行ない、新たに生成した署名r部と乱数逆元k−1と乗算値srの組みを追加記憶、或いは上書き記憶する。
【0033】
そして、USBデバイス101は、署名データ生成装置30によりRAM上の事前計算値を用いて署名t部を生成し、署名r部と署名t部とからなる署名データをPC201に出力する。
こうして、PC201は、対象データMに署名データを付加して電子署名付きデータを完成させる。
【0034】
以上、専用デバイス100としてUSBデバイス101を用いた場合を説明したが、ICカードなどの他のデバイスを用いても、上述の構成を適用可能なことは言うまでもない。
【0035】
以上のように、本発明に係わる事前計算による電子署名高速生成装置は、専用デバイス100と外部演算装置200を組合せ、それぞれに分業させて楕円DSA方式を用いた電子署名の生成を行なうようにし、前記専用デバイス100では署名r部と乱数逆元k−1と乗算値srについて事前に計算しておき、外部演算装置200では対象データMからハッシュ値eを求める計算を行なわたので、演算処理御能力の低い専用デバイス100を用いたとしても、実際に署名処理が必要となったときには、専用デバイス100は、入力されたハッシュ値eと、各事前計算値をと用い、署名データ生成装置30にて計算を行なうだけの処理時間で済み、大幅な時間短縮をすることができる。
【0036】
【発明の効果】
以上のように本発明に係わる事前計算による電子署名高速生成方法は、外部演算装置に専用デバイスを接続し電子署名を生成する装置を用い、暗号技術に楕円DSAを用いた事前計算による電子署名高速生成方法であって、前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、乱数kとベースポイントGから生成する署名r部“r=x mod n”ただし、(x,y)=kGであり、nはGの位数と、乱数kから生成する乱数逆元k−1との2つを事前に計算しておき、当該事前計算結果を事前計算値記憶領域に記憶し、外部演算装置にて計算されたハッシュ値eが入力された際に、前記専用デバイスは、秘密鍵sでハッシュ値eへの署名を行い署名t部“t = k−1 ( e + s・r ) mod n”を事後計算するにあたり、事前計算値の署名r部と乱数逆元k−1を利用して、署名t部を計算することで、署名r部と署名t部を署名データとして生成するようにしたので、専用デバイスにおいて、ハッシュ値の取得から署名データの生成にかかる処理時間の削減になり、高速な電子署名生成が実現できる。
【図面の簡単な説明】
【図1】本発明に係る事前計算による電子署名高速生成装置の適用の形態例を示すの構成図である。(a)は、ネットワーク中に電子署名付きデータを送信する場合のシステム構成例を示し、(b)はPCとUSBデバイスを用いた場合の構成例を示す。
【図2】本発明に係る事前計算による電子署名高速生成装置に用いる外部演算装置の構成例を示す機能ブロック図である。
【図3】本発明に係る事前計算による電子署名高速生成装置に用いる専用デバイスの構成例を示す機能ブロック図である。
【図4】本発明に係る事前計算による電子署名高速生成装置により生成される電子署名付きデータのフレーム構成イメージ例を示す図である。
【図5】本発明に係る事前計算による電子署名高速生成方法に用いる事前計算値テーブルの構成例を示す図である。
【符号の説明】
10・・・事前計算装置
11・・・乱数生成装置
12・・・署名r部生成装置
13・・・逆元生成装置
14・・・秘密鍵s
15・・・乗算装置
20・・・事前計算値記憶領域
21・・・署名r部
22・・・乱数逆元k−1
23・・・乗算値sr
30・・・署名データ生成装置
31・・・加算装置
32・・・乗算装置
100・・・専用デバイス
101・・・USBデバイス
200・・・外部演算装置
201・・・パーソナル・コンピュータ(PC)
210・・・ハッシュ値生成装置
300・・・ネットワーク
Claims (7)
- 外部演算装置に専用デバイスを接続し電子署名を生成する装置を用い、暗号技術に楕円DSAを用いた事前計算による電子署名高速生成方法であって、
前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、
乱数kとベースポイントGから生成する署名r部
r=x mod n
ただし、(x,y)=kGであり、nはGの位数
と、
乱数kから生成する乱数逆元k−1との2つを事前に計算しておき、
当該事前計算結果を事前計算値記憶領域に記憶し、
外部演算装置にて計算されたハッシュ値eが入力された際に、
前記専用デバイスは、秘密鍵sでハッシュ値eへの署名を行い署名t部
t = k−1 ( e + s・r ) mod n
を事後計算するにあたり、事前計算値の署名r部と乱数逆元k−1を利用して、署名t部を計算することで、
署名r部と署名t部を署名データとして生成することを特徴とする事前計算による電子署名高速生成方法。 - 外部演算装置に専用デバイスを接続し電子署名を生成する装置を用い、暗号技術に楕円DSAを用いた事前計算による電子署名高速生成方法であって、
前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、
乱数kとベースポイントGから生成する署名r部
r=x mod n
ただし、(x,y)=kGであり、nはGの位数
と、
乱数kから生成する乱数逆元k−1と、
署名r部と秘密鍵sの乗算値srとの3つを事前に計算しておき、
当該事前計算結果を事前計算値記憶領域に記憶し、
外部演算装置にて計算されたハッシュ値eが入力された際に、
前記専用デバイスは、秘密鍵sでハッシュ値eへの署名を行い署名t部
t = k−1 ( e + s・r ) mod n
を事後計算するにあたり、事前計算値の署名r部と乱数逆元k−1と乗算値srを利用して、署名t部を計算することで、
署名r部と署名t部を署名データとして生成することを特徴とする事前計算による電子署名高速生成方法。 - 請求項1または2の何れかの電子署名高速生成方法において、
前記外部演算装置がハッシュ値eを専用デバイスに入力し、専用デバイスは署名r部と署名t部からなる署名データを外部演算装置に出力することを特徴とする事前計算による電子署名高速生成方法。 - 前記専用デバイスは、電子署名を行う対象データのハッシュ値eが入力されると、署名データを出力するトークンデバイスであって、
トークンデバイス内に、署名データ生成装置と事前計算値記憶領域を有し、
トークンデバイスへの給電があった時に前記署名データ生成装置は署名r部と乱数逆元k−1と乗算値srについて事前計算値を計算し、その計算結果を前記事前計算値記憶領域に記憶することで事前計算を行ない、
トークンデバイスは、ハッシュ値eの入力の後、署名t部を生成し、署名データを出力することを特徴とする請求項3の事前計算による電子署名高速生成方法。 - 請求項4の電子署名高速生成方法において、
外部演算装置にて対象データのハッシュ値eの計算中に、前記事前計算値の計算と記憶とを行うことを特徴とする事前計算による電子署名高速生成方法。 - 外部演算装置に専用デバイスを接続し、楕円DSAを用いた事前計算による電子署名高速生成装置であって、
前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、
乱数kとベースポイントGから生成する署名r部
r=x mod n
ただし、(x,y)=kGであり、nはGの位数
と、
乱数kから生成する乱数逆元k−1との2つを事前に計算する事前計算装置と、
当該事前計算結果を記憶しておく事前計算値記憶領域部と、
秘密鍵sでハッシュ値eへの署名を行い署名t部
t = k−1 ( e + s・r ) mod n
を事後計算する署名データ生成装置とを備え、
前記専用デバイスは、外部演算装置にて計算されたハッシュ値eが入力されると、事前計算値の署名r部と乱数逆元k−1を利用して署名t部を計算し、
署名r部と署名t部を署名データとして生成することを特徴とする事前計算による電子署名高速生成装置。 - 外部演算装置に専用デバイスを接続し、楕円DSAを用いた事前計算による電子署名高速生成装置であって、
前記専用デバイスは、格納した秘密鍵sと乱数kに関する情報を元にして、
乱数kとベースポイントGから生成する署名r部
r=x mod n
ただし、(x,y)=kGであり、nはGの位数
と、
乱数kから生成する乱数逆元k−1と、
署名r部と秘密鍵sの乗算値srとの3つを事前に計算する事前計算装置と、
当該事前計算結果を記憶しておく事前計算値記憶領域部と、
秘密鍵sでハッシュ値eへの署名を行い署名t部
t = k−1 ( e + s・r ) mod n
を事後計算する署名データ生成装置とを備え、
前記専用デバイスは、外部演算装置にて計算されたハッシュ値eが入力されると、事前計算値の署名r部と乱数逆元k−1と乗算値srを利用して署名t部を計算し、
署名r部と署名t部を署名データとして生成することを特徴とする事前計算による電子署名高速生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003040645A JP2004253950A (ja) | 2003-02-19 | 2003-02-19 | 事前計算による電子署名高速生成方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003040645A JP2004253950A (ja) | 2003-02-19 | 2003-02-19 | 事前計算による電子署名高速生成方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004253950A true JP2004253950A (ja) | 2004-09-09 |
Family
ID=33024453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003040645A Pending JP2004253950A (ja) | 2003-02-19 | 2003-02-19 | 事前計算による電子署名高速生成方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004253950A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011250335A (ja) * | 2010-05-31 | 2011-12-08 | Hitachi Ltd | 効率的相互認証方法,プログラム,及び装置 |
JP2013524263A (ja) * | 2010-03-31 | 2013-06-17 | イルデト カナダ コーポレーション | ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法 |
JP2016006945A (ja) * | 2014-05-29 | 2016-01-14 | 健一 先名 | デジタル署名型2次元コード生成装置、及びデジタル署名型2次元コード認証装置 |
WO2020065958A1 (ja) * | 2018-09-28 | 2020-04-02 | 日本電気株式会社 | 署名生成装置、署名プログラム生成装置、署名生成方法、署名プログラム生成方法、署名プログラム、及び署名生成プログラムの生成プログラム |
JP2021536695A (ja) * | 2018-08-24 | 2021-12-27 | ナグラヴィジョン エス.アー.Nagravision S.A. | メッセージの送受信 |
-
2003
- 2003-02-19 JP JP2003040645A patent/JP2004253950A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013524263A (ja) * | 2010-03-31 | 2013-06-17 | イルデト カナダ コーポレーション | ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法 |
US9009481B2 (en) | 2010-03-31 | 2015-04-14 | Irdeto Canada Corporation | System and method for protecting cryptographic assets from a white-box attack |
JP2011250335A (ja) * | 2010-05-31 | 2011-12-08 | Hitachi Ltd | 効率的相互認証方法,プログラム,及び装置 |
JP2016006945A (ja) * | 2014-05-29 | 2016-01-14 | 健一 先名 | デジタル署名型2次元コード生成装置、及びデジタル署名型2次元コード認証装置 |
JP2021536695A (ja) * | 2018-08-24 | 2021-12-27 | ナグラヴィジョン エス.アー.Nagravision S.A. | メッセージの送受信 |
WO2020065958A1 (ja) * | 2018-09-28 | 2020-04-02 | 日本電気株式会社 | 署名生成装置、署名プログラム生成装置、署名生成方法、署名プログラム生成方法、署名プログラム、及び署名生成プログラムの生成プログラム |
JPWO2020065958A1 (ja) * | 2018-09-28 | 2021-08-30 | 日本電気株式会社 | 署名生成装置、署名プログラム生成装置、署名生成方法、署名プログラム生成方法、署名プログラム、及び署名生成プログラムの生成プログラム |
JP7364241B2 (ja) | 2018-09-28 | 2023-10-18 | 日本電気株式会社 | 署名生成装置、署名生成方法及び署名プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0997016B1 (en) | Method and apparatus for fast elliptical encryption with direct embedding | |
US8832438B2 (en) | Digital signature generation apparatus, digital signature verification apparatus, and key generation apparatus | |
Abidi et al. | Implementation of elliptic curve digital signature algorithm (ECDSA) | |
JP6507171B2 (ja) | 関連付けられた秘密鍵部分を用いた高速公開鍵暗号化のためのシステムおよび方法 | |
EP1710952A2 (en) | Cryptographic Applications of the Cartier Pairing | |
US20080240443A1 (en) | Method and apparatus for securely processing secret data | |
JP4137385B2 (ja) | 公開鍵および秘密鍵による暗号化方法 | |
JP2006340347A (ja) | データに署名するための楕円曲線デジタル署名暗号プロセスを実行する認証システム | |
CN109450640B (zh) | 基于sm2的两方签名方法及*** | |
JP4776906B2 (ja) | 署名生成方法及び情報処理装置 | |
US20060026426A1 (en) | Identifier-based signcryption with two trusted authorities | |
US20030152218A1 (en) | Cryptography method on elliptic curves | |
JP2003208097A (ja) | サイドチャネルアタック耐性を有する暗号演算装置及び方法 | |
CN111262704A (zh) | Sm9数字签名生成方法、装置、计算机设备和存储介质 | |
JP4250429B2 (ja) | 連鎖型署名作成装置、及びその制御方法 | |
US6480606B1 (en) | Elliptic curve encryption method and system | |
JP2003098962A (ja) | 楕円曲線スカラー倍計算方法及び装置並びに記録媒体 | |
WO2014030706A1 (ja) | 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム | |
Chande et al. | An improvement of a elliptic curve digital signature algorithm | |
CN114362912A (zh) | 基于分布式密钥中心的标识密码生成方法、电子设备及介质 | |
JP2004253950A (ja) | 事前計算による電子署名高速生成方法および装置 | |
JP2003255831A (ja) | 楕円曲線スカラー倍計算方法及び装置 | |
JP3694242B2 (ja) | 署名付き暗号通信方法及びその装置 | |
CN112822026B (zh) | 数字签名方法、装置及*** | |
JP2002108210A (ja) | 依頼計算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20050719 |