JP5697180B2 - ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法 - Google Patents

ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法 Download PDF

Info

Publication number
JP5697180B2
JP5697180B2 JP2013501569A JP2013501569A JP5697180B2 JP 5697180 B2 JP5697180 B2 JP 5697180B2 JP 2013501569 A JP2013501569 A JP 2013501569A JP 2013501569 A JP2013501569 A JP 2013501569A JP 5697180 B2 JP5697180 B2 JP 5697180B2
Authority
JP
Japan
Prior art keywords
computer
processor
generator
assigning
signature
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.)
Expired - Fee Related
Application number
JP2013501569A
Other languages
English (en)
Other versions
JP2013524263A (ja
JP2013524263A5 (ja
Inventor
ミューア ジェームス
ミューア ジェームス
ジアユエン スイ
ジアユエン スイ
エリー マードック ダニエル
エリー マードック ダニエル
アラン アイゼン フィリップ
アラン アイゼン フィリップ
Original Assignee
イルデト カナダ コーポレーション
イルデト カナダ コーポレーション
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 イルデト カナダ コーポレーション, イルデト カナダ コーポレーション filed Critical イルデト カナダ コーポレーション
Publication of JP2013524263A publication Critical patent/JP2013524263A/ja
Publication of JP2013524263A5 publication Critical patent/JP2013524263A5/ja
Application granted granted Critical
Publication of JP5697180B2 publication Critical patent/JP5697180B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Description

関連出願の参照
これは、本発明の第一の出願である。
本発明は一般に、暗号法に関する。本発明は特に、秘密鍵やその他の秘密パラメータなど、暗号化アセットを保護する方法およびシステムに関する。
デジタル署名アルゴリズム(DSA)や楕円曲線デジタル署名アルゴリズム(ECDSA)が、標準FIPS PUB 186-3(米商務省)やANS X9.62-2005(American National Standard for Financial Services(米国金融サービス国家標準))に記載されており、これら文献は、この参照によりすべてをここに包含する。これら署名アルゴリズムは、公開鍵暗号を使用してデジタルメッセージ上のデジタル署名の作成と検証を可能にしている。DSAにおいてもECDSAにおいても、署名者は秘密鍵と公開鍵を所有している。秘密鍵はデジタル署名を生成するため(つまり、メッセージに署名するため)に使用され、公開鍵は前記署名を検証するために第三者によって使用される。
DSAおよびECDSAは広く展開され(たとえばssh、SSL/TLS、カナダ郵政省デジタル消印、DTCP,AACS,MS−DRMなど)、データ発信元認証、データ整合性、否認防止を提供するために使用できる。しかし、DSAやECDSAの署名が提供する保証は常に、署名者の秘密鍵が秘密である(つまり、秘密鍵がアタッカーに漏えいしていない)という前提に基づいている。
以下の参考文献はさらに背景情報を提供する。この参照によりそれらの内容すべてをここに包含する。
[l] American National Standard for Financial Services, ANS X9.62-2005, Public Key Cryptography for the Financial Services Industry, The Elliptic Curve Digital Signature Algorithm (ECDSA), 16 November 2005.
[2] D. Hankerson, A. Menezes, S. Vanstone, Guide to Elliptic Curve Cryptography, 2003.
[3] Information Technology Laboratory, National Institute of Standards and Technology, FIPS PUB 186-3, Digital Signature Standard (DSS), June 2009.
[4] Standards for Efficient Cryptography, SEC 1 : Elliptic Curve Cryptography, Version 2.0, 21 May 2009.
[5] National Security Agency, NSA Suite B Cryptography, available from http://www.nsa.gov/ia/programs/suiteb cryptography/
[6] Digital Transmission Content Protection Specification, Volume1 (Informational Version), Revision 1 .51 , 1 October2007.
ECDSAおよびDSAの署名生成処理は、通常コンピュータソフトウェアに実行され、特定のコンピュータ装置(たとえば、携帯電話、セットトップボックス、スマートカードなど)上で実行される。多くのアプリケーションにおいて、この処理は、署名者の制御外の環境で―敵対者が存在するかもしれない環境(つまり、署名がコンピュータ処理されている時に敵対者が装置を見ているかもしれない)で起こる。
署名生成の入力と出力のみを解析する敵対者は、「ブラックボックス」のような実行を効果的に行う。DSAやECDSAは、かかるブラックボックスアタッカーに対抗するよう設計された。しかし、単なる入力および出力以上の情報が入手されることがよくある。装置消費電力、実行時間、電磁漏洩、データ障害に対する応答、などの付加的な情報が、ソフトウェアの実行についてアタッカーに手掛かりを与える。それによって、秘密鍵が少しずつ漏えいして、署名方式が完全に漏れてしまうことが示されてきた。
より堅牢なセキュリティモデルでは、ホワイトボックスアタッカーに対抗することを検討している。ホワイトボックスアタッカーは、署名をコンピュータ処理するソフトウェアの実行を完全に見通している。ホワイトボックスアタッカーに対抗することが強く望まれているが、DSAやECDSAのホワイトボックス・インプリメンテーションはまだ提案されていない。この問題の具体的な例として、音声/映像内容を保護するために使用されるDTCPプロトコルを検討する。下記引用は、DTCP仕様書からの抜粋であり、上記参考文献[6]に定義されている通りである。
4.3 規格準拠の装置の製造
完全認証をサポートしている規格準拠の装置(つまり、ブランドやモデルにかかわらず製造された各アイテム)には、DTLAによって生成された固有の装置ID(XID)と装置EC−DSAの公開/秘密鍵の一対が割り当てられる。[秘密鍵]は、その開示を防止するような方法で前記装置内に記憶されなければならない。前記装置には、DTLAによる装置証明書(XCERT)が発行されなければならない。この証明書は、前記装置内に記憶され、認証プロセスにおいて使用される。さらに、前記装置は、暗号プロトコルを実行するために必要なその他の定数や鍵を記憶する必要がある。
上記に強調された一文は、DTCP対応装置がECDSA秘密鍵を保護する対策を取らなければならないと述べている。しかし、かかる装置は、完全認証プロトコル中にECDSA署名を作成するために秘密鍵を使用しなければならない。秘密鍵を単に暗号化状態で記憶することによって保護できると思われるが、実際には、署名操作を行うためには、秘密鍵を使用するためにまず復号化しなければならず、この時にホワイトボックスアタッカーが秘密鍵を抽出できる。この問題を軽減するためには、秘密鍵を極秘に維持し、秘密鍵がアタッカーに漏えいすることなくデジタル署名操作が行われるようにする保護プロセスが必要である。
本発明の目的は、従来のデジタル署名プロセスの欠点の少なくとも一つを除去するか軽減することである。特に、本発明の一つの態様は、署名者の鍵が、動作中のデジタル署名プロセスを観察することができる敵対者によって推測されないように、より安全に保護するプロセスに関する。
したがって、本発明の態様は、ホワイトボックスアタッカーに耐性を提供するデジタル署名生成(DSG)プロセスを実行するための方法とシステムに関する。これは、特別に選択されたデータ変換をアルゴリズムの入力、出力、および内部パラメータに適用することによってなされている。特に、署名者の秘密鍵は本発明の保護されたインプリメンテーションにおいて明らかに現れることが無い。本発明の新たなホワイトボックス・インプリメンテーションは、従来のインプリメンテーションによって生成された署名と互換性のある署名を生成する。したがって、本発明の解決法は、相互運用を容易にし、従来のインプリメンテーションの当座の代替として使用できる。特に、デジタル署名生成プロセスの鍵(d)と生成元ドメインパラメータ(通常Gまたはgと表記される)の変換について記載し、検証者には実際には鍵(d)を使用していないのに使用されたかのように見える署名済みメッセージを、本発明の実施形態によって生成できることを示している。前記鍵(d)が実際には使用されていないため、敵対者はそれを観察することができない。さらなる実施形態は、デジタル署名を生成するプロセスを観察することによって敵対者が前記鍵(d)を推測することを困難にする、さらなる保護を含んでいる。
本発明の一つの態様は、ランダムな整数fに基づいてdを変換することにより、変換済みの鍵(d’)を作成するための方法およびシステムを提供し、これは変換済み生成元(たとえばG’やg’)や、f自体とともに使用することができ、互換性のある署名メッセージを生成する。かかる様態によると、前記変換済み生成元は、前記生成元とnを法とするfの逆数とに基づいて生成される。また、DSGを少し変更して、前記DSGプロセス中で前記生成元(Gまたはg)とdとのかわりに変換済み生成元(たとえばG’やg’)とd’とを使用し、またfを組み込み、あたかもdと前記生成元とが前記DSGプロセスに実際に使用されているかのように公開鍵Qを使用する前記検証ステップによって検証されることができるデジタル署名を生成する。
一様態において、コンピュータが実行する、暗号化秘密鍵(d)を敵対者Bから保護する方法であって、dはそれに対応する暗号化公開鍵Qを有し、Qとdとの両方が位数nの生成元に関連し、dはコンピュータ装置A上で記憶され使用され、敵対者Bはdを使用する暗号化デジタル署名生成(DSG)プロセスの実行中にAを観察でき、前記DSGプロセスはQを使用する公知の署名検証プロセスを有し、前記方法は、
a)1とn-1との間の区間におけるランダムな整数fを選択するステップと、
b)前記生成元と、nを法とするfの逆数とに基づいて、変換済み生成元を生成するステップと、
c)fに基づいてdを変換することにより、変換済み鍵(d’)を生成するステップと、
d)前記生成元とdとのかわりに前記変換済み生成元とd’とを使用し、かつ、fを前記DSGプロセスに組み込んで、あたかもdと前記生成元とが前記DSGプロセスに実際に使用されているかのようにQを使用する前記検証ステップによって検証されることができるデジタル署名を生成するステップを含む方法が、本発明によって提供される。
さらなる態様において、コンピュータが実行する、暗号化秘密鍵(d)を敵対者Bから保護する方法であって、前記暗号化秘密鍵はそれに対応する暗号化公開鍵Qを有し、Qとdとの両方が位数nの生成元に関連し、dはコンピュータ装置A上で記憶され使用され、敵対者Bはdを使用する暗号化デジタル署名生成(DSG)プロセスの実行中にAを観察でき、前記暗号化プロセスはQを使用する公知の署名検証プロセスを有し、前記方法は、
a)1とn-1との間の区間中のランダムな整数fを選択するステップと、
b)前記生成元と、nを法とするfの逆数とに基づいて、変換済み生成元を生成するステップと、
c)fに基づいてdを変換することにより、変換済み鍵(d’)を作成するステップと、
d)機械実行可能な命令を記憶する機械読み取り可能な媒体に実施されるコンピュータプログラムを生成するステップであって、前記命令はAによって実行される時に、前記生成元とdとに替えて前記変換済み生成元とd’とをAに使用させ、かつ、fを前記DSGプロセスに追加して、あたかもdと前記生成元とが前記DSGプロセスに実際に使用されているかのように前記検証プロセスによって検証されることができるデジタル署名を生成するステップを含む方法が、本発明によって提供される。
さらなる態様において、コンピュータ読み取り可能な命令を記憶するコンピュータ読み取り可能な有形の媒体を含むコンピュータプログラム製品であって、前記命令はプロセッサで実行される時に前記プロセッサに暗号化秘密鍵(d)を敵対者Bから保護する方法を実行させ、dはそれに対応する暗号化公開鍵Qを有し、Qとdとの両方が位数nの生成元に関連し、dはコンピュータ装置A上で記憶され使用され、敵対者Bはdを使用する暗号化プロセスの実行中にAを観察でき、前記暗号化プロセスはQを使用する公知の捕捉的プロセスを有し、前記コンピュータ読み取り可能な命令は、
a)1とn-1との間の区間中のランダムな整数fを選択するための命令と、
b)fmod nの逆数に基づいて、前記生成元の変換済み生成元値を計算するための命令と、
c)fに基づいたdの変換済み値d’を計算するための命令と、
d)前記fの値と、前記変換済み生成元と、d’とを、変換済み暗号化プロセスで引き続き使用されるように安全に記憶することであって、前記変換済み暗号化プロセスは、fと、前記変換された生成元と、d’とを使用して、あたかもdと前記生成元とが前記暗号化プロセスに実際に使用されているかのようにQを使用する前記捕捉的プロセスによって検証されることができるデジタル署名を作成することを含む、コンピュータプログラム製品が、本発明によって提供される。
さらなる態様において、コンピュータ読み取り可能な命令を記憶するコンピュータ読み取り可能な有形の媒体を含むコンピュータプログラム製品であって、前記命令はコンピュータ装置(A)によって実行される時に、秘密鍵dの保有者からであるとされるメッセージM上の署名(r, s)を検証するための標準ECDSAデジタル署名検証プロセスによって検証できるメッセージM上のデジタル署名(r, s)を前記コンピュータ装置に生成させ、前記秘密鍵dはそれに対応する暗号化公開鍵Qを有し、Qとdとの両方が位数nの生成元Gに関連し、前記署名は生成可能である一方、前記コンピュータ読み取り可能な命令の実行中にAを観察可能な敵対者からdを保護し、前記コンピュータ読み取り可能な命令は、
i)区間[1, n-1]内のランダムな整数k’を選択するための命令と、
ii)点RにEC_Multiply(k’,G’)の結果を割り当てるための命令であって、EC_Multiply(k’,G’)は楕円曲線点G’をそれ自身にk’回加算することを意味し、前記楕円曲線点G’は前記1からn-1の間の区間内の事前に選択されたランダムな整数fを使用して、前記生成元Gの変換に基づいて事前に生成されているような命令と、
iii)rにRx mod nの結果を割り当てるための命令であって、RxはRのx座標であるような命令と、
iv)r=0なら、ステップi)へ分岐して戻るための命令と、そうでなければ、
v)前記メッセージMについてのハッシュ演算の値をeに割り当てるための命令と、
vi)k’-1(ef+d’r) mod nの値を計算し、その値をsに割り当てるための命令であって、d’は、fに基づいて事前に決定された、dを変換した値であるような命令と、
vii)s=0なら、ステップi)へ分岐して戻るための命令と、そうでなければ、
viii)前記署名(r, s)とともに、前記デジタル署名されたメッセージMを、検証用に第三者へ送信するための命令と、を含み、
メッセージM上の前記署名(r, s)は、前記実際の秘密鍵dが使用されておらず、従って実行中にメモリにロードされることがないこと以外は、前記秘密鍵dを使用して標準ECDSAプロセスによって生成されたであろう署名と等価である、コンピュータプログラム製品が、本発明によって提供される。さらに、本明細書に記載のように、別の態様によると、かかるコンピュータプログラム製品はDSAに適合できる。
開示されているように、さらなる態様において、コンピュータ読み出し可能な命令を記憶するコンピュータ読み出し可能な有形の媒体を含むコンピュータ製品であって、前記命令はコンピュータ装置(A)によって実行される時に、署名を行うためのオフライン変換値を使用してメッセージM上にデジタル署名(r, s)を前記コンピュータ装置に生成させる、コンピュータ製品が、本発明によって提供される。
本発明のさらなる様態と特徴は、当業者には、添付の図面とともに本発明の具体的な実施形態についての下記の記載を参照すれば明白になるであろう。
本発明の実施形態を、あくまでも例として、添付の図面を参照して説明する。
図1は、デジタル署名生成の一般的なプロセスを示すフローチャートである。 図2は、デジタル署名検証の一般的なプロセスを示すフローチャートである。 図3は、ECDSA署名生成のステップを示すフローチャートである。 図4は、本発明の実施形態に準じた事前手続きのステップを示すフローチャートである。 図5は、本発明の実施形態に準じたECDSA署名生成プロセスのステップを示すフローチャートである。 図6は、本発明の実施形態に準じた、かかるECDSA署名生成プロセスをよりロバストにするプロセスを作成するステップを示すフローチャートである。 図7は、本発明の実施形態が行われるコンピュータシステムの簡易な例を示すブロック図である。
一般的には、本発明は、デジタル署名生成プロセスにおける秘密鍵、秘密パラメータなどを含む暗号化資産を保護するための方法およびシステムを提供する。
一般的なデジタル署名生成プロセスが、図1に示されている。ここで、メッセージ(m)は、署名生成アルゴリズム104を使用して秘密鍵(d)で署名され、デジタル署名(S)が生成される。
一般的なデジタル署名検証プロセスが、図2に示されている。ここで、秘密鍵(d)の保有者によって署名されたと考えられているメッセージ(m)上のデジタル署名(S)が、前記保有者の公開鍵(Q)を使用して、署名検証アルゴリズム206を使用して検証される。かかるプロセスの利点は、誰でも公開鍵(Q)を使用して署名を検証できることであり、実際に秘密鍵(d)の保有者によって署名されたかどうかによって、前記プロセスは署名の承認または拒否208を行う。
本発明の一つの様態は、署名(S)を作成でき、既存の検証プロセスに適合するdを保護する、方法とシステムを提供する。言いかえると、本発明の実施形態は、コンピュータ装置A上でSを作成し、これは前記署名生成プロセスを観察することによって積極的にdを取得しようとしている敵対者Bが居るところで行われるかもしれない。前記署名生成プロセスは、前記プロセス206を変更することを検証者に求めることが無いまま、Qを使用した検証が可能である。
DSAまたはECDSA署名生成のインプリメンテーションを、本発明の実施形態に準じて、ホワイトボックスアタッカーに対抗するものに転換するためのプロセスの例を、以下に記載する。
「スムーズな(円滑な)」という語は、署名生成の従来の無防備なインプリメンテーション(つまり、ホワイトボックスアタッカーに対して脆弱であるインプリメンテーション)について述べるために使用し、「ロバストな(堅牢な)」という語は、本発明の実施形態に準じた保護されたインプリメンテーションについて述べるために使用する。
表記法
以下に、楕円曲線暗号法(ECC)に関するいくつかの用語と表記法を定義する。ECCは参考文献[2]に記載の同様の表記法を使用している。
Figure 0005697180
(スムーズなECDSA)
ここに無防備なECDSA署名生成操作の概略を述べる。これは、ANSX9.62[1]の記載に従っている。
ECDSAを使用する前に、特定の楕円曲線、暗号学的ハッシュ関数(H)、および生成元点Gについて選択しなければならない。この情報(「ドメインパラメータ」と称されることもある)は一般的に、秘密ではないとされている。
下記は、ECDSAを使用したメッセージに署名するための従来の(すなわちスムーズな)プロセスを表す。
Figure 0005697180
楕円曲線計算がステップ2のみで使用され、点Rを計算している。ステップ3および5での演算はnを法とする一般的な計算である。ただし、秘密鍵dはステップ5でのみ使用される。
このプロセスを図3に示す。上記のようなステップ1は、図中、ブロック304と表示されている。同様に、上記のようなステップ2は、図中、ブロック306と表示されている。当業者には明らかなように、ステップ2は、Gが楕円曲線点であるので、整数乗算を含まず、むしろ楕円曲線乗算を含む。ステップ2において、Rには、Gが自身にk回加算された場合に得られる点が割り当てられ(←として示されている)、EC_Multiply(k,G)という表記はここではこのタイプの楕円曲線乗算を示すために使用される。上記のようなステップ3は、ブロック308および決定310と表示されており、Rx mod nの結果をrに割り当てることを含む。ここで、rが0ではないと仮定するとRxはRのx座標であり、もしrが0であれば前記プロセスはステップ1へ分岐して戻る。ステップ4は、図3のブロック312に示されているように、前記ハッシュ関数がメッセージに適用された場合に得られる値をeに割り当てることを含む。ハッシュ関数をメッセージに適用することは、H(M)と示される。上記のようなステップ5は、ブロック314および決定316と表示され、k-1(e+dr) mod nの結果を値sに割り当てることを含み、その結果、署名S=(r, s)の出力318が得られる。
上記署名生成プロセス中に、実際に、保護が必須の二つの極秘数値がある。
1.秘密鍵、d
2.メッセージ毎の秘密(per-message secret)、k
dが保護されなければならないのは明瞭である。しかし、もしkの値が漏えいしたら、敵対者はkからdを導き出せる。ハッシュ関数Hがわかっているので、eはメッセージMから判定できる。したがって、敵対者がkを取得すれば、nを法とする下記方程式を解くことによってMについて得られた署名(r, s)から秘密鍵を取得することができる。
s=k-1(e+dr)
ここで、dのみがわかっていない単一方程式を得る。したがって、dを解くことができる。これが潜在的なセキュリティの問題である。
したがって、従来のDSGプロセスを実行するコンピュータ装置Aを観察する敵対者Bは、乱数生成器へのコールを待ち、数値kの選択に気づくだけで、秘密鍵dを導き出せる。または、敵対者Bは装置A上で実行される命令を観察し、kGを計算してkを導き出せるであろう。
(ロバストなECDSA)
本発明の実施形態に準じたECDSA署名のロバストなインプリメンテーションを作成するプロセスの一例について検討する。
たとえばオフラインでセットアップする最中など、敵対者Bによって観察できないやり方で、実施形態に準じて事前プロセスを行う。この事前プロセスは、区間[1, n-1]中の秘密の数fを選択することを含む。fは秘密鍵dを保護するために使用される。実施形態に準じて、二つの変換プロセスが起動され(どちらもfに関連する)、以下の値を有する変換済み(または難読化済み)鍵と変換済み(または難読化済み)生成元を生成する。
・ G’= f-1G ただしf-1はnを法として計算される。
・ d’= fd mod n
G’もd’も、fの選択の直後にオフラインで計算できる。
この事前プロセスは、実施形態に準じて、図5に示されている。図4のフローチャートでは、入力は既知の生成元、この場合Gと、秘密鍵dである。プロセスはランダムな整数fを選択すること(504)によって開始されるが、ここでfは区間[1, n-1]内のランダムな整数である。前記変換済み生成元G’が、nを法とするfの逆数(f-1と示す)を計算することによって決定され(506)、その後、508で、f-1とGの楕円曲線乗算を行う。そして、変換済み(または難読化済み)鍵d’にfd mod nの値が割り当てられる。出力は、ランダムな整数f、変換済み(または難読化済み)鍵d’、および変換済み(または難読化済み)生成元G’である。下記に検討するように、これら3つの値すべてがロバストなECDSA署名生成プロセスの実施形態で使用される。
本発明の実施形態による、ロバストな署名プロセスの基本的なステップを以下に示す。
Figure 0005697180
上記のように、ロバストなECDSA署名生成プロセスを組み込むかかる実施形態は、生成元Gとdのかわりに、変換済み生成元G’とd’とを利用し、また、前記ECDSA署名生成プロセスにfを組み込み(ステップ5を参照)、デジタル署名S=(r, s)を生成する。このデジタル署名は、あたかもdと前記生成元Gが実際にECDSA署名生成プロセスに使用されたかのように、Qを使用する従来のECDSA検証プロセスによって検証できる。つまり、ステップ5においてeをefと置き換えることによって、fが前記プロセスに組み込まれる。このようにステップ5でfを利用することによって(かつ、オフラインでなされた変換にfが使用されてG’およびd’を生成したことを考え)、得られた署名は、従来のプロセスで作成されたものと完全互換である。
本発明の実施形態に準じた、上記のプロセスを示すフローチャートが図5に示されている。プロセス700中のステップ1は、上記のように、図中でブロック604と表示される。同様に、上記のようなステップ2は、図中でブロック606と表示される。なお、当業者には明らかなように、ステップ2は、G’が曲線上の点であるので、整数乗算を含まず、むしろ楕円曲線乗算を含む。したがって、Rには、G’が自身にk’回加算された場合に得られる点が割り当てられる。上記のようなステップ3は、ブロック608および決定610と表示されており、Rx mod nの結果を数値rに割り当てることを含む。ここで、rが0ではないと仮定するとRxはRのx座標であり、もしrが0であれば前記プロセスはステップ1へ分岐して戻る。ステップ4は、図6のブロック612に示されているように、前記ハッシュ関数Hがメッセージに適用された場合に得られる値をeに割り当てる(H(M)と示される)ことを含む。上記のようなステップ5は、ブロック614および決定616と表示され、k’-1(ef+d’r) mod nの結果を数値sに割り当てることを含み、その結果、署名S=(r, s)の出力618が得られる。
署名生成のこのバージョンは、通常のECDSAと完全互換の署名を生成する(すなわち、本発明のロバストなインプリメンテーションによって生成された署名(r, s)はいずれも、スムーズなインプリメンテーションでも作成できたであろうものである)。
(解析)
本発明の実施形態は、下記の二つの目標に対処するためのものである。
1.アタッカーが、メッセージ毎のランダムな数k’の値を獲得することから秘密鍵を推測できるようになることを防ぐ。前述のように、アタッカーがメッセージ毎の秘密kを獲得すると、従来のDSGを使用してメッセージMとその署名(r, s)から秘密鍵dを算出することが可能である。以下に説明するように、これはk’の場合と異なる。
2.アタッカーがdを獲得することを防ぐ。dは秘密鍵である。なお、他の保護形式が無ければ、ホワイトボックス環境において敵対者によって署名アルゴリズムの実行中にd’の値が観察される可能性がある。したがって、実施形態ではデータ変換をさらにそれに適用することによって、d’に対する保護の層をさらに厚くする。しかし、次の意味において、前記値d’は、それ自体はdについての情報を漏えいしない:xが値d’であると仮定する。区間[1, n-1]内のどの整数dについても、d’=fd mod nをxと等しくさせるfの値が存在する(すなわち、xd-1 mod nと等しいfをとる)。したがって、アタッカーが値d’のみを使用してdの可能性のある値を排除することは可能ではない。
上記の目標を達成するためには、ステップ2でRの計算にさらに保護を追加するためにさらなるリソースを使用することが必要であるとは思われない。以下に、このことを説明する。
ステップ2で使用される3つの値、R、k’、G’について検討する。これら値が敵対者にすべて知られていると仮定する。また、Gは公的に入手可能な規格によく現れるので、敵対者が知っていると仮定する。G’= f-1Gなので、敵対者はf-1を、そしてfを、この等式から計算しようとするであろうが、これは前記目標2と矛盾する。しかし、この計算は、ECDLPを解決することになるが、これは実行不可能と考えられる。したがって、敵対者はGおよびG’からfを計算することはできない。
さらに、上記の目標1について、従来のECDSAにおいてはkが分かれば秘密鍵dがわかるが、それと同様にk’がわかれば秘密鍵dがわかるというわけではない。これは、k’と署名(r, s)からdを計算するというタスクは、nを法とする下記方程式を解くことになるからである。
s=k’-1(e+dr)f
しかし、従来のDSGとは異なり、上記方程式は二つの未知の値がある。dとfである(すなわち、一つの方程式と二つの未知数がある)。したがって、k’が分かったとしても、dとfとの両方が未知なので、敵対者はこの一つの方程式からdを抽出することはできない。
上記に検討した実施形態は、かかるプロセスを従来のDSGよりもロバストにするようにDSGを変更するが、アタッカーがfを獲得することを困難にすることにより、かかる改良されたシステムをよりロバストにすることができる。したがって、本発明の実施形態は、fを選択し、変換済み値G’およびd’をBが観察できない方法で生成する事前ステップを行う。これらステップをBが観察できない方法で行う一つのやり方は、これらステップをオフラインでおこなうことである。「オフライン」とは、AがBによる観察を受けないような時間または場所において、ということか、または、異なるコンピュータ装置上で、ということを意味する。たとえば、Aがスマートカードかセットトップボックスの場合、オフラインとは、かかる装置の出荷以前を含む。Aがパーソナルコンピュータの場合、これらステップは別のコンピュータ上で実行されて何らかの安全な媒体によりAに提供できる。または、これらステップは、安全なハードウェアを使用することによってBによる観察を受けないような方法で実行することができる。
さらに、より好適な実施形態において、敵対者がステップ5の計算(すなわち、s←k’-1(ef+d’r) mod n)を観察することからfとd’の値を推測することを困難にするために、さらなる難読化技術が使用される。一つの実施形態において、ステップ5は下記のプロセスを実行することによって算出される。まず、二つの乗算関数を生成する(これら関数は、一連の参照テーブルを使用して難読化されたソフトウェアルーチンの形式をとってもよい)。
mult_by_f(...), mult_by_dhat(...)
これら関数は、一実施形態に準じて、オフライン段階で構築されたワードワイズ再コード化テーブルを含み、多倍精度整数xを入力としてとり(すなわち、32ビットの単語のアレイ)、それぞれxf mod nと、xd’ mod nとを返す。これら二つの関数は、一実施例に準じて、下記のように使用されてステップ5の計算を行う。
5.1: e_f ← mult_by_f(e)
5.2: dhat_r ← mult_by_dhat(r)
5.3: tmp ← e_f+dhat_r mod n
5.4: s ←k’-1*tmp mod n
(DSA)
なお、例示を目的として、上記では主としてECDSAに焦点をあてた。しかし、ECDSAとDSAは密接に関連している。当業者であれば、ECDSAについて上記に示した詳細な説明や例をDSA署名生成に容易に適用できるであろうと思われるが、ここに本発明の実施形態に準じたプロセスの概略を提示する。
ここに無防備なDSA署名生成処理の概略を述べる。これは、FIPS PUB 186-3[3]の記載に従っている。
DSAを使用する前に、素数p、素数q(p-1を割り切る素数)、pを法とする位数qの生成元g、というドメインパラメータについて選択しなければならない。ドメインパラメータは一般的に、秘密ではないとされている。
DSAを使用してメッセージに署名する方法は以下のとおりである。
Figure 0005697180
上記の算術演算はすべてモジュラー演算である(すなわち、pを法とする演算、またはqを法とする演算)。
署名生成中に、保護が必須の二つの極秘数値がある。
1.秘密鍵、d
2.メッセージ毎の秘密(per-message secret)、k
dが保護されなければならないのは明瞭である。もしkの値が漏えいしたら、敵対者はkと、qを法とする下記方程式を解くことによってMについて得られた署名(r, s)とからdを導き出すことができる。
s=k-1(e+dr)
(ロバストな署名生成)
DSA署名生成のロバストなインプリメンテーションを生成する一実施形態を以下に示す。
上記と同様、たとえばオフラインでセットアップする段階など、Bによって観察できないやり方で、区間[1, q-1]中の秘密の数fを選択する。fは秘密鍵dを保護するために使用される。実施形態に準じて、二つの変換プロセスが起動され(どちらもfに関連する)、以下の値を有する変換済み鍵と変換済み生成元を生成する:f:
・ g’ = gf-1 mod p ただしf-1はqを法として計算される。
・ d’= fd mod q
g’もd’も、fの選択の直後にオフラインで計算できる。本発明の実施形態に準じた、ロバストなDSA署名プロセスの基本的なステップを以下に示す。
Figure 0005697180
署名生成のこのバージョンは、通常のDSAと完全互換の署名を生成する(すなわち、本発明のロバストなインプリメンテーションによって生成された署名(r, s)はいずれも、スムーズなインプリメンテーションでも生成できたであろうものである)。

さらなる保護
上記実施形態のうちのいずれが実行されるかにかかわらず、制御フロー変換とデータ変換が、署名生成処理を実行するソースコードに適用できる。これは、敵対者がDSGプロセスを実行するコンピュータ装置の操作を観察することにより、たとえばd’やfなどの秘密のパラメータを推測することをより困難にするためである。図6は、本発明の実施形態に準じて、署名を生成するソフトウェアを難読化することにより、さらにパラメータを保護するプロセスの例を示すフローチャートである。したがって、上記のプロセス700を実行するソースコードが、制御フロー変換702とデータ変換704とを適用することによりさらに保護され、よりロバストなインプリメンテーションが生成される。
前記制御フロー変換702は、フローを制御するための多数の関数を使用して、所与のプログラムの制御フローを新たな制御フロー形式にマップする。かかる変換の例としては、2004年8月17日発行の米国特許第6779114号に記載のような制御フロー変換の例があり、この参照により前記文献をすべてここに包含する。前記データ変換704には、データ操作および位置の両方を数学的空間へ変換する数学的マッピング関数が関与する。これは2003年7月15日発行の米国特許第6594761号、2005年1月11日発行の米国特許第6842862号、および2005年7月28日公開の米国特許公報US‐2005‐0166191A1号に記載されており、この参照によりその内容すべてをここに包含する。
別の実施形態においては、fに別レベルの保護を提供するために、ef mod n(ステップ5で使用)を別のやり方で計算する。前記値eは入力メッセージMのハッシュと等しいので、本発明の実施形態は、前記ハッシュ計算にnを法とするfの演算による乗算を組み込む。もちろん、これは、使用されるハッシュ関数の性質によるが、かかる実施形態中で適切なハッシュ関数を想定すると、前記ハッシュ関数Hは関数Hfと置き換えられ、これはその結果e’=Hf(M) mod n = e*f mod nの値を生成する。さらに、ステップ5で、項efがe’と置き換えられるので、k’-1(ef+d’r) mod nがk’-1(e’+d’r) mod nと置き換えられる。
本発明は、所与のコンピュータシステム上で実施できると理解されるべきである。本発明の実施形態が行われるコンピュータシステムの簡易化した例を、図7のブロック図に示す。このコンピュータシステム110は、表示装置112、キーボード114、コンピュータ116、および外部装置118を含む。
前記コンピュータ116は、中央処理装置(CPU)120などの、プロセッサまたはマイクロプロセッサを一つ以上含んでもよい。前記CPU120は数学的演算処理を行い機能を制御して、内部メモリ122、好適にはランダムアクセスメモリ(RAM)および/または読み出し専用メモリ(ROM)、および場合によっては増設メモリ124に保存されているソフトウェアを実行する。前記増設メモリ124は、たとえば、ビデオゲーム装置、EPROMやPROMなどの着脱式メモリチップや、当該技術分野で公知の同様の記憶媒体のような、マスメモリストレージ、ハードディスク装置、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ、プログラムカートリッジ、およびカートリッジインターフェースを含んでいてもよい。この増設メモリ124は前記コンピュータ116の内部に物理的に設けられてもよく、または図7に示されるように外部に設けられてもよい。
前記コンピュータシステム110は、コンピュータプログラムやその他の命令を読み込ませる、その他の同様な手段も含んでもよい。かかる手段は、たとえば、ソフトウェアやデータがコンピュータシステム110と外部システムとの間でやりとりされるようにするコミュニケーションインターフェース126を含むことができる。コミュニケーションインターフェース126の例としては、モデムや、イーサネットカードなどのネットワークインターフェース、シリアルまたはパラレルコミュニケーションポートなどがある。コミュニケーションインターフェース126を介してやり取りされるソフトウェアやデータは、コミュニケーションインターフェース126によって受信できる電子信号、電磁信号、光学信号、またはその他の信号の形式である。言うまでもなく、多重インターフェースを単一のコンピュータシステム110上に設けることができる。
コンピュータ116への入力およびコンピュータ116からの出力は、入力/出力(I/O)インターフェース128によって管理されている。このI/Oインターフェース128は、表示装置112、キーボード114、外部装置118、およびコンピュータシステム110のその他のかかる部品の制御を管理する。
本発明は便宜上、これらに基づき記載される。本発明がその他のコンピュータなどの制御システム110に適用できることは、当業者には明らかであろう。かかるシステムはとしては、電話、携帯電話、テレビ、テレビのセットトップユニット、販売時点管理(POS)コンピュータ、自動銀行取引機、ラップトップコンピュータ、サーバ、個人情報端末(PDA)、および自動車など、コンピュータまたはプロセッサ制御装置を備えたあらゆるコンピュータ装置が挙げられる。
さらに、「オフライン」部分は、署名処理を行うコンピュータ装置とは別のコンピュータ装置上で実行することもできることは、理解されるであろう。さらに、検証プロセスを行うコンピュータ装置は、デジタル署名プロセスを行うコンピュータ装置とは通常別であり、署名されたメッセージは何らかの媒体を介して送信されることが多い。したがって本発明の一つの態様は、デジタル署名を生成し送信する署名コンピュータ装置と、前記署名を検証する検証コンピュータ装置とを含むシステムに関する。さらに、一つの実施形態は、fを選択し、fに基づいて変換済み鍵と変換済み生成元を生成する事前ステップを行うための別のコンピュータ装置を含んでもよい。
上記の記載では、実施形態の全面的な理解を提供するために、説明を目的として数々の詳細が述べられた。しかし、これら特定の詳細は必須ではないことは、当業者に明らかであろう。理解を妨げないように、公知の電気構造や回路はブロック図で示されていることもある。たとえば、本明細書中で記載された実施形態がソフトウェアルーチンか、ハードウェア回路か、ファームウェアか、またはそれらの組み合わせかで実行されるかどうかについては、具体的な詳細は述べられていない。
本開示の実施形態は、機械が読み取り可能な媒体(コンピュータが読み取り可能な媒体、プロセッサが読み取り可能な媒体、または、コンピュータが読み取り可能なプログラムコードを実施させるコンピュータ使用可能な媒体、とも呼ばれる)に記憶されたコンピュータプログラム製品としてあらわされることができる。前記機械が読み取り可能な媒体は、ディスケット、コンパクトディスク読み出し専用メモリ(CD−ROM)、記憶装置(揮発性または不揮発性)、または同様の記憶機構などの磁気記憶媒体、光学記憶媒体、電子記憶媒体など、なんらかの適切な、非一時的な有形の媒体である。前記機械が読み取り可能な媒体は、インストラクション、コードシーケンス、設定情報や、その他のデータの様々な群を含むことができ、これらは実行されたときに、プロセッサに本開示の実施形態に準じた方法のステップを行わせる。前述されたインプリメンテーションをインプリメントするために必要なその他のインストラクションやオペレーションの、前記機械が読み取り可能な媒体への記憶が可能であることも、当業者であれば理解できるであろう。前記機械が読み取り可能な媒体から実行されるソフトウェアは、プロセッサやその他の適切な処理装置によって実行可能であり、上述されたタスクを行うための回路構成とのインターフェースともなり得る。
本発明の前記の実施形態は、単なる例示である。当業者によって、添付のクレームによってのみ定義される本発明の範囲を逸脱することなく、前記特定の実施形態に変更、変形、変種がもたらされるであろう。

Claims (19)

  1. コンピュータが実行する、暗号化秘密鍵(d)を敵対者から保護する方法であって、dはそれに対応する暗号化公開鍵Qを有し、Qとdとの両方が位数nの生成元に関連し、dはコンピュータ装置Aがアクセス可能なメモリに記憶されて前記コンピュータ装置Aに使用され、敵対者のコンピュータ装置Bはdを使用する暗号化デジタル署名生成(DSG)プロセスの実行中にコンピュータ装置Aを観察でき、前記DSGプロセスはQを使用する公知の署名検証プロセスを有し、前記方法は、
    a)コンピュータのプロセッサにより、1とn-1との間の区間中のランダムな整数fを選択するステップと、
    b)コンピュータのプロセッサにより、前記生成元と、nを法とするfの逆数とに基づいて、変換済み生成元を作成するステップと、
    c)コンピュータのプロセッサにより、fに基づいてdを変換することにより、変換済み鍵(d’)を生成するステップと、
    d)コンピュータのプロセッサにより、前記生成元とdとのかわりに前記変換済み生成元とd’とを使用し、かつ、fを前記DSGプロセスに組み込んで、あたかもdと前記生成元とが前記DSGプロセスに実際に使用されているかのようにQを使用する前記検証プロセスによって検証されることができるデジタル署名を生成するステップを含む方法。
  2. ステップa、b、およびcは、敵対者のコンピュータ装置Bが観察できないように実行され、ステップdは敵対者のコンピュータ装置Bによる観察が可能な条件のもとで前記コンピュータ装置Aによって行われる、請求項1に記載の方法。
  3. ステップa、b、およびcをオフラインで実行することによって前記敵対者のコンピュータ装置Bが観察できないようにステップa、b、およびcが実行される、請求項2に記載の方法。
  4. 前記生成元は、濃度がnの楕円曲線群を生成するために使用される楕円曲線上の点Gであり、前記変換済み生成元は、前記楕円曲線群内の別の点G’であり、ステップb)は、コンピュータのプロセッサにより、nを法とするfの逆数をf-1に割り当て、Gをそれ自身にf-1回加算した結果をG’に割り当てることを含み、ステップc)は、コンピュータのプロセッサにより、d f mod nの結果をd’に割り当てることを含む、請求項1〜3のいずれかに記載の方法。
  5. 前記デジタル署名検証プロセスが、秘密鍵dの保有者からのメッセージM上の署名(r, s)を検証するための標準ECDSAデジタル署名検証プロセスであり、ステップd)は、
    i) コンピュータのプロセッサにより、区間[1, n-1]内のランダムな整数k’を選択するステップと、
    ii) コンピュータのプロセッサにより、点RにEC_Multiply(k’, G’)の結果を割り当てるステップであって、EC_Multiply(k’, G’)は楕円曲線点G’をそれ自身にk’回加算することを意味する、ステップと、
    iii) コンピュータのプロセッサにより、rにRx mod nの結果を割り当てるステップであって、RxはRのx座標である、ステップと、
    iv) コンピュータのプロセッサにより、r=0なら、ステップi)から再度開始するステップと、そうでなければ、
    v) コンピュータのプロセッサにより、前記メッセージMについてのハッシュ演算の値をeに割り当てるステップと、
    vi) コンピュータのプロセッサにより、k’-1(e f+d’r) mod nの値を計算し、その値をsに割り当てるステップと、
    vii) コンピュータのプロセッサにより、s=0なら、ステップi)から再度開始するステップと、そうでなければ、
    viii) コンピュータのプロセッサにより、前記署名(r, s)を出力するステップと、を含み、
    メッセージM上の前記署名(r, s)は、前記実際の秘密鍵dが実際には使用されておらず、従ってステップdの実行中にメモリにロードされることがないこと以外は、前記秘密鍵dを使用して標準ECDSAプロセスによって生成されるであろう署名と等価である、請求項4に記載の方法。
  6. デジタル署名検証プロセスが、秘密鍵dの保有者からのメッセージM上の署名(r, s)を検証するための標準DSAデジタル署名検証プロセスであり、ドメインパラメータp, q, およびgを使用し、前記生成元はgであり、q=nが満たされ、ステップb)は、コンピュータのプロセッサにより、qを法とするfの逆数をf-1に割り当てることと、gf-1 mod pの結果をg’に割り当てることとを含み、ただしf-1はqを法として計算され、ステップc)は、コンピュータのプロセッサにより、d f mod qの結果をd’に割り当てることを含む、請求項1〜3のいずれかに記載の方法。
  7. 前記ステップd)は、
    i) コンピュータのプロセッサにより、区間[1, n-1]内のランダムな整数k’を選択するステップと、
    ii) コンピュータのプロセッサにより、rpにg’k’ mod pの結果を割り当てるステップと、
    iii) コンピュータのプロセッサにより、rにrp mod qの結果を割り当てるステップと、
    iv) コンピュータのプロセッサにより、r=0なら、ステップi)から再度開始するステップと、そうでなければ、
    v) コンピュータのプロセッサにより、前記メッセージMについてのハッシュ演算の値をeに割り当てるステップと、
    vi) コンピュータのプロセッサにより、k’-1(e f+d’r) mod nの値を計算し、その値をsに割り当てるステップと、
    vii) コンピュータのプロセッサにより、s=0なら、ステップi)から再度開始するステップと、そうでなければ、
    viii) コンピュータのプロセッサにより、前記署名(r, s)を出力するステップと、を含み、
    メッセージM上の前記署名(r, s)は、前記秘密鍵dが実際には使用されておらず、従ってステップdの実行中にメモリにロードされることがないこと以外は、前記秘密鍵dを使用して標準DSAプロセスによって生成されるであろう署名と等価である、請求項6に記載の方法。
  8. ステップvi)は、コンピュータのプロセッサにより、一連の参照テーブルを使用して難読化されたソフトウェアルーチンを使用して、nを法とするe fの値を計算し、前記計算中に前記fの値がメモリにロードされず、明らかにされないようにするステップを含む、請求項5または7に記載の方法。
  9. ステップvi)は、コンピュータのプロセッサにより、一連の参照テーブルを使用して難読化されたソフトウェアルーチンを使用して、nを法とするd’rの値を計算し、前記計算中に前記fとd’の値がメモリにロードされず、明らかにされないようにするステップをさらに含む、請求項8に記載の方法。
  10. 前記ソフトウェアルーチンは、オフライン段階で構築されたワードワイズ再コード化テーブルを含む、請求項8または9に記載の方法。
  11. 前記ハッシュ関数Hは、結果としてe’=Hf(M) = e*f mod nという値を生成する関数H fと置き換えられ、項efがe’と置き換えられ、ステップiv)のk’-1(ef+d’r) mod nがk’-1(e’+d’r) mod nと置き換えられるようにする、請求項5または7に記載の方法。
  12. 前記方法のステップを実行するソフトウェア上で行われる制御フローおよびデータの難読化をさらに含む、請求項1〜11のいずれかに記載の方法。
  13. コンピュータが実行する、暗号化秘密鍵(d)を敵対者から保護する方法であって、前記暗号化秘密鍵はそれに対応する暗号化公開鍵Qを有し、Qとdとの両方が位数nの生成元に関連し、dはコンピュータ装置Aがアクセス可能なメモリに記憶されて前記コンピュータ装置Aに使用され、敵対者のコンピュータ装置Bはdを使用する暗号化デジタル署名生成(DSG)プロセスの実行中にコンピュータ装置Aを観察でき、前記暗号化プロセスはQを使用する公知の署名検証プロセスを有し、前記方法は、
    a)コンピュータのプロセッサにより、1とn-1との間の区間中のランダムな整数fを選択するステップと、
    b)コンピュータのプロセッサにより、前記生成元と、nを法とするfの逆数とに基づいて、変換済み生成元を生成するステップと、
    c)コンピュータのプロセッサにより、fに基づいてdを変換することにより、変換済み鍵(d’)を生成するステップと、
    d)機械実行可能な命令を記憶する機械読み取り可能な媒体に実施されるコンピュータプログラムをコンピュータのプロセッサにより作成するステップであって、前記命令はコンピュータ装置Aによって実行される時に、前記生成元とdとのかわりに前記変換済み生成元とd’とをコンピュータ装置Aに使用させ、かつ、fを前記DSGプロセスに追加して、あたかもdと前記生成元とが前記DSGプロセスに実際に使用されているかのようにQを使用する前記検証プロセスによって検証されることができるデジタル署名をコンピュータのプロセッサにより作成するステップを含む方法。
  14. 前記デジタル署名検証プロセスが、秘密鍵dの保有者からのメッセージM上の署名(r, s)を検証するための標準ECDSAデジタル署名検証プロセスであり、
    前記生成元は、濃度がnの楕円曲線群を生成するために使用される楕円曲線上の点Gであり、前記変換済み生成元は、前記楕円曲線群内の別の点G’であり、ステップb)は、コンピュータのプロセッサにより、nを法とするfの逆数をf-1に割り当て、Gをそれ自身にf-1回加算した結果をG’に割り当てることを含み、ステップc)は、コンピュータのプロセッサにより、d f modnの結果をd’に割り当てることを含む、請求項13に記載の方法。
  15. デジタル署名検証プロセスが、秘密鍵dの保有者からのメッセージM上の署名(r, s)を検証するための標準DSAデジタル署名検証プロセスであり、ドメインパラメータp, q, およびgを使用し、前記生成元はgであり、q=nが満たされ、ステップb)は、コンピュータのプロセッサにより、qを法とするfの逆数をf-1に割り当て、gf-1 mod pの結果をg’に割り当てることを含み、ただしf-1はqを法として計算され、ステップc)は、コンピュータのプロセッサにより、d f modqの結果をd’に割り当てることを含む、請求項13に記載の方法。
  16. コンピュータ読み取り可能な命令を記憶するコンピュータ読み取り可能な媒体であって、前記命令はプロセッサで実行される時に前記プロセッサに暗号化秘密鍵(d)を敵対者のコンピュータ装置Bから保護する方法を実行させ、dはそれに対応する暗号化公開鍵Qを有し、Qとdとの両方が位数nの生成元に関連し、dはコンピュータ装置Aがアクセス可能なメモリに記憶されて前記コンピュータ装置Aに使用され、敵対者のコンピュータ装置Bはdを使用する暗号化プロセスの実行中にコンピュータ装置Aを観察でき、前記暗号化プロセスはQを使用する公知の捕捉的プロセスを有し、前記コンピュータ読み取り可能な命令は、
    a)コンピュータのプロセッサにより、1とn-1との間の区間中のランダムな整数fを選択するための命令と、
    b)コンピュータのプロセッサにより、f mod nの逆数に基づいて、前記生成元の変換済み生成元値を計算するための命令と、
    c)コンピュータのプロセッサにより、fに基づいたdの変換済み値d’を計算するための命令と、
    d)コンピュータのプロセッサにより、前記fの値と、前記変換済み生成元と、d’とを、変換済み暗号化プロセスで引き続き使用されるように安全に記憶することであって、前記変換済み暗号化プロセスは、fと、前記変換された生成元と、d’とを使用して、あたかもdと前記生成元とが前記暗号化プロセスに実際に使用されているかのようにQを使用する前記捕捉的プロセスによって検証されることができるデジタル署名を作成することを含む、
    コンピュータ読み取り可能な媒体。
  17. コンピュータ読み取り可能な命令を記憶するコンピュータ読み取り可能な媒体であって、前記命令はコンピュータ装置Aによって実行される時に、秘密鍵dの保有者からであるとされるメッセージM上の署名(r, s)を検証するための標準ECDSAデジタル署名検証プロセスによって検証できるメッセージM上のデジタル署名(r, s)を前記コンピュータ装置に生成させ、dはそれに対応する暗号化公開鍵Qを有し、Qとdとの両方が位数nの生成元Gに関連し、前記署名は作成可能である一方、前記コンピュータ読み取り可能な命令の実行中にコンピュータ装置Aを観察可能な敵対者からdを保護し、前記コンピュータ読み取り可能な命令は、
    i) コンピュータのプロセッサにより、区間[1, n-1]内のランダムな整数k’を選択するための命令と、
    ii) コンピュータのプロセッサにより、点RにEC_Multiply(k’, G’)の結果を割り当てるための命令であって、EC_Multiply(k’, G’)は楕円曲線点G’をそれ自身にk’回加算することを意味し、前記楕円曲線点G’は前記1からn-1の間の区間内の事前に選択されたランダムな整数fを使用して、前記生成元Gの変換に基づいて事前に生成されているような命令と、
    iii) コンピュータのプロセッサにより、rにRx mod nの結果を割り当てるための命令であって、RxはRのx座標であるような命令と、
    iv) コンピュータのプロセッサにより、r=0なら、ステップi)へ分岐して戻るための命令と、そうでなければ、
    v) コンピュータのプロセッサにより、前記メッセージMについてのハッシュ演算の値をeに割り当てるための命令と、
    vi) コンピュータのプロセッサにより、k’-1(e f+d’r) mod nの値を計算し、その値をsに割り当てるための命令であって、d’は、fに基づいて事前に決定された、dを変換した値であるような命令と、
    vii) コンピュータのプロセッサにより、s=0なら、ステップi)へ分岐して戻るための命令と、そうでなければ、
    viii) コンピュータのプロセッサにより、前記署名(r, s)とともに、前記デジタル署名されたメッセージMを、検証用に第三者へ送信するための命令と、を含み、
    メッセージM上の前記署名(r, s)は、前記実際の秘密鍵dが使用されておらず、従ってステップdの実行中にメモリにロードされることがないこと以外は、前記秘密鍵dを使用して標準ECDSAプロセスによって生成されるであろう署名と等価である、
    コンピュータ読み取り可能な媒体。
  18. 請求項1〜15のいずれか1項に記載の方法を実行する、セットトップボックス。
  19. 請求項1〜15のいずれか1項に記載の方法を実行する、コンピュータ装置。

JP2013501569A 2010-03-31 2010-03-31 ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法 Expired - Fee Related JP5697180B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2010/000486 WO2011120125A1 (en) 2010-03-31 2010-03-31 System and method for protecting cryptographic assets from a white-box attack

Publications (3)

Publication Number Publication Date
JP2013524263A JP2013524263A (ja) 2013-06-17
JP2013524263A5 JP2013524263A5 (ja) 2015-01-08
JP5697180B2 true JP5697180B2 (ja) 2015-04-08

Family

ID=44711254

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013501569A Expired - Fee Related JP5697180B2 (ja) 2010-03-31 2010-03-31 ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法

Country Status (7)

Country Link
US (1) US9009481B2 (ja)
EP (1) EP2553866B1 (ja)
JP (1) JP5697180B2 (ja)
KR (1) KR101712850B1 (ja)
CN (1) CN103081398B (ja)
CA (1) CA2792787C (ja)
WO (1) WO2011120125A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013116916A1 (en) 2012-02-09 2013-08-15 Irdeto Canada Corporation System and method for generating and protecting cryptographic keys
EP2634993B1 (en) * 2012-03-01 2017-01-11 Certicom Corp. Devices and methods for connecting client devices to a network
WO2014075000A1 (en) * 2012-11-12 2014-05-15 Cryptography Research Inc. Methods and systems for glitch-resistant cryptographic discrete-log based signing
SG10201405852QA (en) 2014-09-18 2016-04-28 Huawei Internat Pte Ltd Encryption function and decryption function generating method, encryption and decryption method and related apparatuses
GB201418815D0 (en) * 2014-10-22 2014-12-03 Irdeto Bv Providing access to content
DE102014016548A1 (de) * 2014-11-10 2016-05-12 Giesecke & Devrient Gmbh Verfahren zum Testen und zum Härten von Softwareapplikationen
US9639674B2 (en) * 2014-12-18 2017-05-02 Nxp B.V. Using single white-box implementation with multiple external encodings
CN116911835A (zh) * 2016-07-29 2023-10-20 区块链控股有限公司 区块链实现的方法和***
EP3340094B1 (en) * 2016-12-22 2021-04-28 Mastercard International Incorporated Method for renewal of cryptographic whiteboxes under binding of new public key and old identifier
CN106712965B (zh) * 2017-01-17 2020-02-18 数安时代科技股份有限公司 数字签名方法、装置以及密码设备
FR3063857B1 (fr) * 2017-03-08 2020-02-14 Safran Identity & Security Procede de signature electronique d'un document avec une cle secrete predeterminee
EP3376705A1 (en) * 2017-03-17 2018-09-19 Koninklijke Philips N.V. Elliptic curve point multiplication device and method in a white-box context
GB201707168D0 (en) 2017-05-05 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
FR3066845B1 (fr) * 2017-05-24 2019-06-14 Idemia Identity And Security Procede de signature electronique d'un document avec une cle secrete predeterminee
CN109104272A (zh) * 2017-06-20 2018-12-28 上海策链信息科技有限公司 私钥保存方法、***及计算机可读存储介质
US10516541B2 (en) * 2017-09-13 2019-12-24 Nxp B.V. Nonce to message binding in digital signature generation
EP3493456A1 (en) 2017-12-01 2019-06-05 Gemalto Sa Cryptography device having improved security against side-channel attacks
EP3493460A1 (en) * 2017-12-01 2019-06-05 Gemalto Sa Cryptography device having secure provision of random number sequences
JP7328969B2 (ja) * 2018-12-21 2023-08-17 01 コミュニーク ラボラトリー インコーポレイテッド 暗号システムおよび方法
EP3713148B1 (en) 2019-03-22 2022-08-03 Giesecke+Devrient Mobile Security GmbH White-box ecc implementation
WO2021025631A1 (en) * 2019-08-05 2021-02-11 Securify Bilisim Teknolojileri Ve Guvenligi Egt. Dan. San. Ve Tic. Ltd. Sti. A method for generating digital signatures
US20230124498A1 (en) * 2020-05-19 2023-04-20 Visa International Service Association Systems And Methods For Whitebox Device Binding
FR3133251B1 (fr) * 2022-03-03 2024-03-22 Idemia France Procédé de signature cryptographique d’une donnée, dispositif électronique et programme d’ordinateur associés
CN115473633B (zh) * 2022-08-24 2024-05-31 武汉大学 一种多方协同产生sm2数字签名的方法及装置
WO2024072529A1 (en) * 2022-09-30 2024-04-04 Microsoft Technology Licensing, Llc Low-cost, high-security solutions for digital signature algorithm

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2293650C (en) 1997-06-09 2012-09-25 Christian Sven Collberg Obfuscation techniques for enhancing software security
CN100334831C (zh) * 1998-06-23 2007-08-29 微软公司 生成加密签名以及与产品副本一起使用此类签名的技术
US7599491B2 (en) * 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
US6594761B1 (en) 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
US6779114B1 (en) 1999-08-19 2004-08-17 Cloakware Corporation Tamper resistant software-control flow encoding
AU762650B2 (en) * 1999-09-29 2003-07-03 Hitachi Limited Device, program or system for processing secret information
US7020778B1 (en) 2000-01-21 2006-03-28 Sonera Smarttrust Oy Method for issuing an electronic identity
JP2003098962A (ja) * 2001-09-20 2003-04-04 Hitachi Ltd 楕円曲線スカラー倍計算方法及び装置並びに記録媒体
CA2327911A1 (en) 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
JP3676280B2 (ja) * 2001-10-16 2005-07-27 株式会社エヌ・ティ・ティ・データ 電子署名装置およびicカード、ならびにその電子署名プログラム
CA2369304A1 (en) 2002-01-30 2003-07-30 Cloakware Corporation A protocol to hide cryptographic private keys
JP2004253950A (ja) * 2003-02-19 2004-09-09 Toyo Commun Equip Co Ltd 事前計算による電子署名高速生成方法および装置
US7966499B2 (en) 2004-01-28 2011-06-21 Irdeto Canada Corporation System and method for obscuring bit-wise and two's complement integer computations in software
CA2573101C (en) * 2004-07-23 2014-06-10 Data Security Systems Solutions Pte Ltd System and method for implementing digital signature using one time private keys
DE102005024609A1 (de) * 2005-05-25 2006-11-30 Siemens Ag Bestimmung einer modularen Inversen
CA2542556C (en) * 2005-06-03 2014-09-16 Tata Consultancy Services Limited An authentication system executing an elliptic curve digital signature cryptographic process
US8280039B2 (en) 2005-12-28 2012-10-02 Panasonic Corporation Signature generating device, signature generating method and signature generating program
EP2082524B1 (en) * 2006-11-15 2013-08-07 Certicom Corp. Implicit certificate verification
US8165286B2 (en) 2008-04-02 2012-04-24 Apple Inc. Combination white box/black box cryptographic processes and apparatus
CN101547099B (zh) * 2009-05-07 2011-08-03 张键红 基于椭圆曲线的自认证签名方法与装置
JP5446678B2 (ja) * 2009-09-29 2014-03-19 富士通株式会社 楕円曲線暗号演算装置及び方法

Also Published As

Publication number Publication date
CA2792787A1 (en) 2011-10-06
US9009481B2 (en) 2015-04-14
EP2553866A1 (en) 2013-02-06
WO2011120125A1 (en) 2011-10-06
KR101712850B1 (ko) 2017-03-07
CN103081398A (zh) 2013-05-01
CN103081398B (zh) 2016-04-06
JP2013524263A (ja) 2013-06-17
EP2553866A4 (en) 2017-06-28
EP2553866B1 (en) 2018-11-21
KR20130024897A (ko) 2013-03-08
US20130024699A1 (en) 2013-01-24
CA2792787C (en) 2017-07-25

Similar Documents

Publication Publication Date Title
JP5697180B2 (ja) ホワイトボックス攻撃から暗号化資産を保護するためのシステムと方法
Ti Fault attack on supersingular isogeny cryptosystems
CN107968710B (zh) Sm9数字签名分离交互生成方法及***
CN109818730A (zh) 盲签名的获取方法、装置和服务器
JP4776906B2 (ja) 署名生成方法及び情報処理装置
JP7155173B2 (ja) 外部監視攻撃からモジュラーインバージョン演算を保護すること
EP3020159A1 (en) Electronic signature system
Sarath et al. A survey on elliptic curve digital signature algorithm and its variants
CN112436938A (zh) 数字签名的生成方法、装置和服务器
JP5972181B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
Dottax et al. White-box ECDSA: challenges and existing solutions
CN117134900A (zh) 一种实现非对称加密的结构及控制方法
KR100817048B1 (ko) 여러 가지 포인트 표현을 기반으로 한 ecc에서 dfa대책을 위한 암호화 방법 및 장치
CN107040370B (zh) 一种用于产生实施模幂运算的代码的装置
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
WO2011033642A1 (ja) 署名生成装置及び署名検証装置
JP5227816B2 (ja) 匿名署名生成装置、匿名署名検証装置、匿名署名追跡判定装置、追跡機能付き匿名署名システム、それらの方法及びプログラム
CN112887097A (zh) 基于sm2椭圆曲线的签名方法、相关装置、及存储介质
Wang Signer‐admissible strong designated verifier signature from bilinear pairings
KR20110113965A (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
WO2012176408A1 (ja) 署名検証方法、署名検証システム及び署名検証プログラム
US20220329439A1 (en) Method for generating digital signatures
Kaur et al. Survey of Security Algorithms in Cloud
Tai et al. Weak-keys in public key cryptosystems based on discrete logarithms
Satya Bhavani et al. A Proficient Digital Signature Scheme Using Lightweight Cryptography

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141106

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20141106

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: 20150203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150205

R150 Certificate of patent or registration of utility model

Ref document number: 5697180

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees