JP2006510265A - ゼロ知識プロトコルの効率的な実装 - Google Patents
ゼロ知識プロトコルの効率的な実装 Download PDFInfo
- Publication number
- JP2006510265A JP2006510265A JP2004558896A JP2004558896A JP2006510265A JP 2006510265 A JP2006510265 A JP 2006510265A JP 2004558896 A JP2004558896 A JP 2004558896A JP 2004558896 A JP2004558896 A JP 2004558896A JP 2006510265 A JP2006510265 A JP 2006510265A
- Authority
- JP
- Japan
- Prior art keywords
- montgomery
- prover
- value
- verifier
- knowledge
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3271—Cryptographic 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 using challenge-response
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/34—User authentication involving the use of external additional devices, e.g. dongles or smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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 a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Fiat−ShamirプロトコルおよびGuillou−Quisquaterプロトコルなどのゼロ知識プロトコルが、特にスマート・カードおよび他のポータブル電子装置などの制限された計算資源を有する装置で、プロトコルのより効率的な実施をもたらすために、数のMontgomery表現に対するMontgomery乗算だけを使用して実施される。
Description
本発明は、実際の秘密情報または秘密鍵を第2の当事者または盗聴する第三者に伝えることなく、第1の当事者の領域内のある「秘密」または秘密鍵情報の知識を第2の当事者が検証できるようにするゼロ知識プロトコルに関する。特に、本発明は、スマート・カードやモバイル電子装置などの制限された計算資源を有するシステムおよび装置でのゼロ知識プロトコルの実装での応用を有する。
本明細書全体を通じて、秘密情報または秘密鍵(「s」)を所有し、その情報を所有することを証明することを望む第1の当事者を、「証明者」(「P」)と称し、秘密の知識を実際には受け取らずにそうであることを検証することを望む第2の当事者を、「検証者」(「V」)と称する。証明者Pおよび検証者Vは、任意の適当な電子装置とすることができる。秘密情報は、以下で証明者Pの秘密数と称する、任意の数値とすることができる。
ゼロ知識プロトコルは、金融取引またはペイ・テレビジョン・アクセスに使用されるスマート・カードなどの装置の認証に、および携帯電話機または他の電子装置などのネットワークに接続される装置の識別に使用することができる、非常に貴重なツールである。
従来、証明者は、計算的に困難な数学的問題を提供し、検証者は、その問題に対する複数の可能な解の1つを要求する。証明者が、解に関係するクリティカルな情報を知っている場合に、証明者は、検証者の要求に従って、オンデマンドで、要求された入手可能な解のいずれかを(またはどれでも)提供することができる。証明者が、そのクリティカル情報を知らない場合には、要求された解を検証者に必ず提供できることは証明者にとって計算的に実行不能である。
通常、ゼロ知識プロトコルは、整数の因数分解または離散対数問題などのある困難な数学的問題に頼る。これらのプロトコルの短所は、これらが、通常は、モジュラ算術の広範囲の使用を必要とし、このモジュラ算術が、スマート・カードおよびポータブル電子装置などの低電力かつ能力の限られた装置に望ましい計算資源より多くの計算資源を必要とすることである。したがって、セキュリティ・プロトコルの通常の実施時間は、望ましいものより長い。
本発明の目的は、プロセッサ装置で、特に少ない計算資源または低電力を有する装置で、ゼロ知識プロトコルを実施するより効率的な方法を提供することである。
一態様によれば、本発明は、証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、証明者装置内の秘密数sの知識を、前記秘密数の知識を有しない検証者装置によって検証する方法を提供する。
もう1つの態様によれば、本発明は、Montgomery表現の秘密数sを含む証明者装置であって、その証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、前記秘密数自体の知識を伝えることなく、検証者装置に対して前記秘密鍵sの知識を証明するように適合された証明者装置を提供する。
もう1つの態様によれば、本発明は、証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、証明者装置内の秘密数自体の知識なしで、前記秘密数の知識を検証する検証者装置を提供する。
もう1つの態様によれば、本発明は、証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、証明者装置内の秘密数sの知識を有することなく、前記秘密数の知識を検証者装置に証明する方法であって、
乱数rを選択するステップと、
xを得るためにMontgomery e乗を計算するステップと、
xを検証者装置に送るステップと、
チャレンジ値cを受け取るステップと、
y=r×mscのMontgomery積を計算するステップと、
yを検証者装置に送るステップと
を含む方法を提供する。
乱数rを選択するステップと、
xを得るためにMontgomery e乗を計算するステップと、
xを検証者装置に送るステップと、
チャレンジ値cを受け取るステップと、
y=r×mscのMontgomery積を計算するステップと、
yを検証者装置に送るステップと
を含む方法を提供する。
もう1つの態様によれば、本発明は、証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、証明者装置内の秘密数sの知識を有することなく、前記秘密数の知識を検証者装置によって検証する方法であって、
前記秘密数sのMontgomery二乗vを受け取るステップと、
乱数rのMontgomery二乗xを受け取るステップと、
チャレンジ値eを前記証明者装置に送るステップと、
チャレンジ値eに従って前記証明者装置から受け取ったxおよび/またはvの値に対して検証される前記証明者の応答yのMontgomery二乗に従ってyの真正性を検査するステップと
を含む方法を提供する。
前記秘密数sのMontgomery二乗vを受け取るステップと、
乱数rのMontgomery二乗xを受け取るステップと、
チャレンジ値eを前記証明者装置に送るステップと、
チャレンジ値eに従って前記証明者装置から受け取ったxおよび/またはvの値に対して検証される前記証明者の応答yのMontgomery二乗に従ってyの真正性を検査するステップと
を含む方法を提供する。
もう1つの態様によれば、本発明は、証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、証明者装置内の秘密数sの知識を有することなく、前記秘密数の知識を検証者装置によって検証する方法であって、
前記秘密数sのMontgomery e乗を受け取るステップと、
乱数rのMontgomery e乗xを受け取るステップと、
チャレンジ値cを前記証明者装置に送るステップと、
チャレンジ値cに従って前記証明者装置から受け取ったx×msecの値に対して検証される前記証明者の応答yのMontgomery e乗に従ってyの真正性を検査するステップと
を含む方法を提供する。
前記秘密数sのMontgomery e乗を受け取るステップと、
乱数rのMontgomery e乗xを受け取るステップと、
チャレンジ値cを前記証明者装置に送るステップと、
チャレンジ値cに従って前記証明者装置から受け取ったx×msecの値に対して検証される前記証明者の応答yのMontgomery e乗に従ってyの真正性を検査するステップと
を含む方法を提供する。
本発明の実施形態を、例により、添付図面を参照してこれから説明する。
好ましい例で、本発明は、既存の基本的なFiat−Shamirプロトコルに対する改善を提供する。
Fiat−Shamirプロトコルの目的は、証明者Pが、検証者Vに、または実際にプロトコルを盗聴するだれにも秘密を明かさずに、秘密s(数)を知っていることをVに確信させることである。
有効であるためには、このプロトコルは、従来、かなり多数のラウンド(または「試行」)を介して行われる。各ラウンドが、Pが実際に数sを知っていることの高い度合の確信をVに与える。
数sは、証明者の領域内で秘密のままになる。第1の例では、証明者Pが、信頼される第三者に、数sの二乗のnを法とする剰余、v=s2 mod nを与える。たとえば、vを、証明者Pの公開鍵とすることができ、秘密鍵sは、s=sqrt(v) mod nになる最小の事例である。信頼される第三者は、一般に、その構成素因数から法nを作成すると仮定される。
信頼される第三者は、検証者Vにvを供給する。nは、Vに未知の少なくとも2つの大きい素数の積(通常は1024ビットまたは2048ビットの数)なので、因数分解は極端に困難であり、これによって、s2を与えられてsを導出することが計算的に実行不可能になり、したがって、信頼される第三者は、Vに、sを明かさずにs2の値を与えることができる。
Fiat−Shamirプロトコルの各ラウンドは、3つの段階で働く。
段階1
証明者Pは、乱数r mod nを選択し、r2 mod nを計算することと、これを検証者Vに送ることによって、検証者Vに委任する。検証者Vが、前と同一の理由(未知の因数分解を有する大きい合成数の平方根剰余をとることは、計算的に実行不可能である)から、rを計算できないことに留意されたい。
証明者Pは、乱数r mod nを選択し、r2 mod nを計算することと、これを検証者Vに送ることによって、検証者Vに委任する。検証者Vが、前と同一の理由(未知の因数分解を有する大きい合成数の平方根剰余をとることは、計算的に実行不可能である)から、rを計算できないことに留意されたい。
段階2
検証者Vは、証明者Pに尋ねる2つの質問のうちの1つを選択する。証明者は、2つの質問のどちらに答えることになるかを事前に知らないが、真に秘密sを知る場合に限って、その両方に正しく答えることができる。証明者は、積r.s mod nの値または証明者が選択したばかりのrの値のいずれかについて質問することができる。
検証者Vは、証明者Pに尋ねる2つの質問のうちの1つを選択する。証明者は、2つの質問のどちらに答えることになるかを事前に知らないが、真に秘密sを知る場合に限って、その両方に正しく答えることができる。証明者は、積r.s mod nの値または証明者が選択したばかりのrの値のいずれかについて質問することができる。
これは、一般に、Vが、「チャレンジ」または「試験」と称する、質問の選択を示すビットeをPに送ることによって実行され、証明者は、回答y=r.se mod n(ただしeは{0,1}に含まれる)を供給しなければならない。
段階3
証明者Pは、要求されたy=r.se mod nを供給し、検証者が、その結果を次のように検査する。
証明者Pは、要求されたy=r.se mod nを供給し、検証者が、その結果を次のように検査する。
チャレンジがe=1に関するものである場合に、検証者は、r.s mod nを受け取ったと期待する。rが、Vに未知の乱数なので、検証者は、これからsに関する情報を導出することができない)。したがって、検証者は、応答の二乗(すなわち、y2 mod n。これは、(rs)2 mod nでなければならない)が、r2 * s2 mod nと同一であることを検査する。検証者は、このラウンドの段階1でPからr2を受け取り、信頼される第三者からs2(=v)を得る。
チャレンジがe=0に関するものである場合に、検証者は、rを受け取ったと期待し、その二乗が、段階1で供給された値r2 mod nと一致することを検査する。
チャレンジe=0のポイントは、sの知識なしで、Pを装う者がどのように振る舞うかに関する考察を与える時に明瞭になる。sを知らない装う者は、e=1チャレンジに対する正しい答えを(事前計算によって)捏造することができるが、どの質問を尋ねられるかを前もって知らないので、これは賭けになる。装う者は、
*乱数rを選択し、信頼される第三者からvを得、その後、段階1でVに(r2 * v−1) mod nを送り、
*段階2でVによってe=1のチャレンジを与えられた場合に、段階3でのyの値としてrを答え、
*これが、y2=r2=(r2 * v−1) * vを検査するVに受入可能に見える
ことによってこれを行うことができる。
*乱数rを選択し、信頼される第三者からvを得、その後、段階1でVに(r2 * v−1) mod nを送り、
*段階2でVによってe=1のチャレンジを与えられた場合に、段階3でのyの値としてrを答え、
*これが、y2=r2=(r2 * v−1) * vを検査するVに受入可能に見える
ことによってこれを行うことができる。
しかし、装う者は、この場合にチャレンジe=0に正しく答えることができない。というのは、装う者が、(r2 * v−1) mod nの平方根を提示する必要があり、これが、v−1 mod nの平方根を知ることを必要とするからである。これと同等に、装う者は、v mod nの平方根を知る必要がある、すなわち、装う者は、回答e=0を正しく知る必要がある。
その一方で、装う者は、e=0でチャレンジされた時に賭けに出ることができる。これには、乱数rを選択し、段階1でr2を提示し、段階3でチャレンジe=0に応答してrを提示することが用いられ、これは、やはりVに受入可能に見える。しかし、この手法を選択した場合に、装う者は、段階2のチャレンジがe=1である場合に、sの知識がないので、r.s mod nを供給することができない。
完全なプロトコルは、装う者が各ラウンドで正しい戦略を選択する50:50の可能性を有するので、Vが実際に装う者ではなくPと会話していることにVを満足させるのに十分な数のラウンドの実行を必要とする。プロトコルが、20ラウンドすなわち、チャレンジe={0,1}に対する20回の連続する正しい応答を必要とする場合に、sを知らない装う者が成功裡にVに証明する見込みは、1000000分の1より小さい。40ラウンドの場合に、その確率は、1012分の1未満に減る。
各ラウンドが、rの新しい値の使用を必要とする。このプロトコルは、装う者が、予想される単純な乗算r.se mod n以外にチャレンジに対する回答を計算できることを計算的に実行不能にすることによって決定される時間制限のうちにチャレンジに対する応答を提供することも必要とする。
このプロトコルの実行中の計算動作のすべてを、制限された計算能力を有する低電力装置によって簡単に実行でき、その結果、複数の連続するラウンドを素早く実行できるようになることが、明らかに有益である。
本発明によれば、上で述べたFiat−Shamirプロトコルなどのゼロ知識プロトコルを、プロトコルで使用される数量のMontgomery表現を使用して完全に実施できることが認められた。これは、証明者および検証者の両方の計算効率のかなりの改善を提供する。
提案される解決策は、数z∈ZnのMontgomery表現に基づく。数zのMontgomery表現zmは、zm=zR mod nによって与えられ、ここで、数Rはnより大きく、Rおよびnの両方が、証明者装置および検証者装置に既知である。
Montgomery乗算は、次のように実行される。数aおよびbのMontgomery表現である2つの数amおよびbmについて、剰余乗算は、次式によって与えられる。
am×mbm=ambmR−1 mod n.
従来のFiat−Shamirプロトコルと同様に、nは、信頼される第三者の領域で秘密のままである2つの素数pおよびqの積である公知の法である。
従来のFiat−Shamirプロトコルと同様に、nは、信頼される第三者の領域で秘密のままである2つの素数pおよびqの積である公知の法である。
図1を参照すると、この方式で、秘密s(ステップ101)を、別の数s’のMontgomery表現とみなすことができる。信頼される第三者は、s’2のMontgomery表現すなわちs2を保管することができ、ここで、二乗は、Montgomery乗算s2=s×msによって実行され、下ではこれをvと表す。これを、証明者Pの公開鍵とみなすことができる。一般に、Montgomery積s2が、計算され(ステップ102)、信頼される第三者20によってか、他の形で証明者から直接にかのいずれであっても、検証者領域に供給される(ステップ103)。このようにして、値vの完全性を保証することができる。
このステップ101から103は、以下に説明される3段階プロトコルの多数の繰り返しまたは使用について1回実行される、初期セット・アップ手順とみなすことができる。
段階1
変更されたプロトコルの第1段階では、Pが、乱数r∈Znを選択し(ステップ105)、このrは、別の数r’のMontgomery表現と解釈することができる。Pは、rとそれ自身とのMontgomery乗算を実行し(ステップ106)、r’2のMontgomery表現であるr2を作り(下ではxと称する)、x(=r2)を検証者に送る(ステップ107)。
変更されたプロトコルの第1段階では、Pが、乱数r∈Znを選択し(ステップ105)、このrは、別の数r’のMontgomery表現と解釈することができる。Pは、rとそれ自身とのMontgomery乗算を実行し(ステップ106)、r’2のMontgomery表現であるr2を作り(下ではxと称する)、x(=r2)を検証者に送る(ステップ107)。
段階2
変更されたプロトコルの第2段階では、検証者Vが、チャレンジe∈{0,1}を証明者Pに送る(ステップ108)。
変更されたプロトコルの第2段階では、検証者Vが、チャレンジe∈{0,1}を証明者Pに送る(ステップ108)。
段階3
変更されたプロトコルの第3段階では、Pが、rとseのMontgomery乗算すなわち、r×mse(下ではyと称する)を計算し(ステップ110)、この数を検証者Vに送る(ステップ111)。yを受け取る時に(ステップ112)、Vは、チャレンジ値eに応じて、次の2つの検査のうちの1つを実行する(ステップ113)。
変更されたプロトコルの第3段階では、Pが、rとseのMontgomery乗算すなわち、r×mse(下ではyと称する)を計算し(ステップ110)、この数を検証者Vに送る(ステップ111)。yを受け取る時に(ステップ112)、Vは、チャレンジ値eに応じて、次の2つの検査のうちの1つを実行する(ステップ113)。
e=1の場合に、Vは、y×myの値およびv×mxの値を計算し(ステップ115)、2つの計算された値が等しいすなわち、y2=(v×mx)であるかどうかを検査する(ステップ116)。これは、2つの通常の剰余乗算ではなく、2つのMontgomery乗算を必要とする。
代替のe=0の場合に、検証者Vは、y2=y×myを計算するが(ステップ120)、項seが1と等しいので、上式はr×mrと等しい)。次に、Vは、y2(ステップ111、112で送られた数yのMontgomery二乗)が、前にステップ106、107で送られた数x(=r2)と等しいことを検査する(ステップ121)。これは、1つの通常の剰余乗算ではなく、1つのMontgomery乗算だけを必要とする。
ステップ116または121の検査のいずれかが失敗する場合に、それは、プロトコルの誤りを構成し(ステップ122)、検証者は、証明者Pが、秘密sの知識の確立に失敗したと結論する。
ステップ116または121の検査のいずれかが真と評価される場合に、ステップ125で、Pの完全性を満足するのに、すなわち、Pが秘密sを所有するとVに確信させる(ステップ126)のに、このプロトコルのさらなる反復が必要であるかどうかに関する判断を行う。
さらなる反復が必要である場合に、新しい乱数値rを用いて、このプロトコルをステップ105から繰り返す。
変更されたプロトコルの結果として、PおよびVの両方は、Montgomery乗算だけを実行する必要がある(それぞれステップ106および110ならびにステップ115および120)が、これは、通常の乗算mod n(通常のFiat−Shamir方式の)より効率的である。
このプロトコルの実行中に、数をMontgomery表現に変換することおよびその逆は不要である。といのは、出発点の数s、v、およびrが、既にMontgomery表現であるからである。これによって、変更されたプロトコルが、さらに効率的になる。
装う者Pが1または0のいずれかのチャレンジeに関する賭けのどちらを選ぶかに依存して、(r2×mv−1)の平方根またはvの平方根のいずれかを計算することが、証明者を装う者P’にとって計算的に実行不可能であり、たしかに、ステップ106の送出とステップ112の受け取りの間にVによって普通に受け入れられる時間枠内で計算的に実行不可能であることを、このプロトコルが必要とすることを理解されたい。
上で説明したプロトコルは、任意の適当なハードウェアまたはソフトウェアで実施することができる。好ましい実施形態を、図2に示す。
証明者装置10は、スマート・カードや、ペイTVカード、クレジット・カードまたは携帯電話機用のSIMカードなどの類似する低電力装置を備えることができる。装置10は、スマート・カード自体を備えることができ、あるいはカードが挿入される装置と一緒にカードを備えることができる。たとえば、カードが、検証装置によって「読み取られる」(または問い合わせされる)場合に、カード自体に、プロセッサ11の形態の限られた処理能力を設けることができる。カードが、Pの領域の一部を形成すると考えることもできる適当な装置(たとえば衛星TV受像機または携帯電話機)に挿入されるか、その中で使用される場合に、処理機能11が、カードを受ける装置の中にあることができる。
検証者装置30は、カード読み取り機(たとえばクレジット・カードの直接問い合わせ用)とすることができ、あるいは、カードがインストールされる装置に問い合わせるリモート装置とすることができる。たとえば、検証者装置30は、許可カードが挿入されるセット・トップ・ボックスに問い合わせる衛星TV送信器とすることができる。代替案では、検証者装置30を、携帯電話機およびそのSIMカードと通信する携帯電話基地局とすることができる。
好ましい構成では、証明者装置10は、Montgomery表現で保持されるs、r、x、およびyのメモリ・レジスタと、乱数生成器12とを備える。
好ましい構成では、検証者装置30は、プロセッサ31と、Montgomery表現のvおよびyのレジスタと、e用の乱数生成器とを備える。
好ましい構成では、信頼される第三者装置20が、プロセッサ31を含み、Montgomery表現のvのレジスタを維持する。第三者装置は、証明者10の公開鍵/秘密鍵対としてのvおよびsを提供者とすることもでき、秘密の素数pおよびqから導出されたnの値を供給する。
乱数rおよび集合{0,1}からのeの乱数値の生成に関して使用される時の表現「乱数(またはランダム)」は、単に、送出する当事者によって選択されるrまたはeの値が、受け取る当事者の領域で十分に予測不能でなければならず、発行される次の値の予測またはそれに関する推論の値の有用なパターンを、受け取る当事者が判定できないことを暗示することを理解されたい。
装置10、20、および30のそれぞれが、データ転送を行うことができる任意の適切な接続を使用して互いに通信することができる。これには、ラジオ、マイクロ波、光、赤外線、音響、および類似物などの適切な媒体を使用する無線リンクが含まれる。接続は、直接電気接続による、過渡的または永久的、あるいは交換ベース・ネットワークまたはパケット・ベース・ネットワークを介するものとすることができる。
上述したように、数のMontgomery表現およびMontgomery算術と共に動作するようにFiat−Shamirプロトコルを変更できることが判定された。この原理は、RSA様構造に基づく他のプロトコルにも拡張されることがわかっている。数のMontgomery表現を使用するようにGuillou−Quisquaterプロトコルが適合されるもう1つの例を、これから示す。
Guillou−Quisquaterプロトコルは、より高次のべきを利用する、Fiat−Shamirプロトコルの拡張である。このプロトコルは、秘密数sの証明者の知識の確立に関する、メッセージの個数およびメモリ要件の両方の削減を可能にする。
Guillou−Quisquaterプロトコルでは、信頼される第三者が、2つのRSA素数pおよびqを選択し、積n=pqを計算する。信頼される第三者は、gcd(e,φ(n))=1を有する公開指数e≧3を定義し、秘密指数d=e−1 mod φ(n)を計算する。システム・パラメータ(e,n)が公開される。
図3を参照すると、本発明に従って変更されたプロトコルでは、すべての数が、Montgomery表現で与えられ、すべての計算が、Montgomery算術を使用して行われる。証明者Pの秘密は、s∈Znであり(ステップ301)、別の数s’のMontgomery表現と考えることができる。信頼される第三者TTPは、s’eのMontgomery表現すなわち、s×ms×ms…×ms(e回)を計算し、保管する。検証者Vは、信頼される第三者からseを受け取り、保管する。
このプロトコルは、次のように進行する。
Pは、数r∈Znをランダムに選択する(ステップ305)。rは、別の数r’のMontgomery表現と考えることができる。次に、Pは、rのMontgomery e乗:x=re(すなわち、r×mr×mr…×mr(e回))を計算し、xを検証者Vに送る(ステップ306)。xが、r’eのMontgomery表現であることに留意されたい。
Vは、xを受け取り(ステップ307)、チャレンジ値c∈{0,1,…,e−1}をランダムに選択し、Pに送る(ステップ308)。
チャレンジcに応答して、Pは、y=r×msc mod nを計算し(ステップ310)、yをVに送る(ステップ311)。
yを受け取る時に(ステップ312)、Vは、Montgomeryべきyeを計算し(ステップ313)、Montgomeryべきsecを計算し(ステップ314)、ye=x×msecであるかどうかを検査する(ステップ315)。そうでない場合には、プロトコルが失敗し(ステップ322)、Vは、Pがsを知らないと結論しなければならない。
検査によってye=x×msecが証明される場合に、十分な確かさの度合までVがsを知っていることを検証するために、プロトコルの十分な反復が実行されたかどうかを調べるためにVが検査を行う(ステップ325)。そうである場合には、この処理が終了し(ステップ326)、そうでない場合には、Pによる新しい乱数rの選択からこのプロトコルを繰り返す(ステップ305)。匹敵する度合の確かさを達成するために、Fiat−Shamirプロトコルより少数のラウンドを実行する必要があることが、Guillou−Quisquaterプロトコルの全般的な目標である。
他の実施形態は、意図的に、請求項の範囲に含まれる。
Claims (24)
- 証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、証明者装置内の秘密数sの知識を、前記秘密数の知識を有しない検証者装置によって検証する方法。
- 前記ゼロ知識プロトコルが、Fiat−Shamirプロトコルである、請求項1に記載の方法。
- 前記ゼロ知識プロトコルが、Guillou−Quisquaterプロトコルである、請求項1に記載の方法。
- (i)それ自体による前記秘密数sのMontgomery乗算である値v=s2を前記検証者装置に供給するステップと、
(ii)rが乱数であり、前記証明者装置によって値x=r×mrを計算し、xの値を前記検証者装置に送るステップと、
(iii)前記検証者装置によって、集合{0,1}からeのチャレンジ値を選択し、前記チャレンジ値を前記証明者装置に送るステップと、
(iv)前記証明者装置によって、値y=r×mseを計算し、前記値yを前記検証者装置に送るステップと、
(v)前記検証者装置が、前に受け取られたx、y、およびvの前記値に従い、前記チャレンジ値eに従って、前記証明者の応答の真正性を検査するステップと
を含む、請求項2に記載の方法。 - 前記証明者の応答の前記真正性を検査する前記ステップが、
e=1のチャレンジ値について、y×myの値およびv×mxの値を計算し、これらが同一であることを検査するステップと、
e=0のチャレンジ値について、y×myの値を計算し、これが前に受け取ったxの値と同一であることを検査するステップと
を含む、請求項4に記載の方法。 - 前記証明者装置の前記真正性を確認するために複数の連続するラウンドについてステップ(ii)から(v)を繰り返すステップをさらに含む、請求項4または5に記載の方法。
- 前記秘密数sが、前記証明者装置で既知であるが前記検証者装置領域で既知でない別の数s’のMontgomery表現であり、前記証明者装置によって、s=s’R mod nに従ってs’からsの前記値を計算するステップをさらに含み、R>nであり、nおよびrの値が、前記証明者装置および前記検証者装置の両方によって使用される、請求項4または5に記載の方法。
- s×ms、r×mr、およびr×mseのMontgomery乗算が、式a×mb=abR−1 mod nに従って実行され、R>nであり、nおよびRの値が、前記証明者装置および前記検証者装置の両方によって使用される、請求項4に記載の方法。
- y×myおよびs2×mxのMontgomery乗算が、式a×mb=abR−1 mod nに従って実行され、R>nであり、nおよびRの値が、前記証明者装置および前記検証者装置の両方によって使用される、請求項5に記載の方法。
- 前記ゼロ知識プロトコルでのすべての計算が、数のMontgomery表現を使用し、Montgomery乗算演算を使用して実行される、請求項1に記載の方法。
- (i)前記秘密数sのMontgomery e乗である値seを前記検証者装置に提供するステップと、
(ii)rが乱数であり、前記証明者装置によって、rのMontgomery e乗である値x=reを計算し、xの前記値を前記検証者装置に送るステップと、
(iii)前記検証者装置によって、集合{0,1,…e−1}からcのチャレンジ値を選択し、前記チャレンジ値を前記証明者装置に送るステップと、
(iv)前記証明者装置によって、値y=r×mscを計算し、前記値yを前記検証者装置に送るステップと、
(v)前記検証者装置が、前記チャレンジ値cに従って前に受け取られたx、y、およびseの前記値に従って前記証明者の応答の真正性を検査するステップと
を含む、請求項3に記載の方法。 - 前記証明者の応答の前記真正性を検査する前記ステップが、
yeの値およびx×msecの値を計算し、これらが同一であることを検査するステップ
を含む、請求項11に記載の方法。 - 前記証明者装置の前記真正性を確認するために複数の連続するラウンドについてステップ(ii)から(v)を繰り返すステップをさらに含む、請求項11または12に記載の方法。
- Montgomery表現の秘密数sを含む証明者装置であって、その証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、前記秘密数自体の知識を伝えることなく、検証者装置に対して前記秘密鍵sの知識を証明するように適合された証明者装置。
- 乱数rを選択する手段と、
xを得るためにrのMontgomery二乗を計算する手段と、
xを検証者装置に送る手段と、
チャレンジ値eを受け取る手段と、
y=r×msのMontgomery積を計算する手段と、
yを検証者装置に送る手段と
をさらに含む、請求項14に記載の証明者装置。 - 乱数rを選択する手段と、
xを得るためにrのMontgomery e乗を計算する手段と、
xを検証者装置に送る手段と、
チャレンジ値cを受け取る手段と、
y=r×msのMontgomery積を計算する手段と、
yを検証者装置に送る手段と
をさらに含む、請求項14に記載の証明者装置。 - 証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、証明者装置内の秘密数s自体の知識なしで、前記秘密数の知識を検証する検証者装置。
- 前記秘密数sのMontgomery二乗vを受け取る手段と、
乱数rのMontgomery二乗xを受け取る手段と、
チャレンジ値eを前記証明者装置に送る手段と、
前記チャレンジ値eに従って、前記証明者装置から受け取った値xおよび/またはvに対して検証される前記証明者の応答yのMontgomery二乗に従って、yの真正性を検査する手段と
をさらに含む、請求項17に記載の検証者装置。 - 前記秘密数sのMontgomery e乗seを受け取る手段と、
乱数rのMontgomery e乗xを受け取る手段と、
チャレンジ値cを前記証明者装置に送る手段と、
前記チャレンジ値cに従って、前記証明者装置から受け取った値x×msecに対して検証される前記証明者の応答yのMontgomery e乗に従って、yの真正性を検査する手段と
をさらに含む、請求項17に記載の検証者装置。 - 証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、証明者装置内の秘密数sの知識を有することなく、前記秘密数の知識を検証者装置に証明する方法であって、
乱数rを選択するステップと、
xを得るためにMontgomery e乗を計算するステップと、
xを検証者装置に送るステップと、
チャレンジ値cを受け取るステップと、
y=r×mscのMontgomery積を計算するステップと、
yを検証者装置に送るステップと
を含む方法。 - 証明装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、証明者装置内の秘密数sの知識を有することなく、前記秘密数の知識を検証者装置によって検証する方法であって、
前記秘密数sのMontgomery二乗vを受け取るステップと、
乱数rのMontgomery二乗xを受け取るステップと、
チャレンジ値eを前記証明者装置に送るステップと、
チャレンジ値eに従って前記証明者装置から受け取ったxおよび/またはvの値に対して検証される前記証明者の応答yのMontgomery二乗に従ってyの真正性を検査するステップと
を含む方法。 - 証明者装置内で数のMontgomery表現およびMontgomery乗算演算を使用するゼロ知識プロトコルを用いて、証明者装置内の秘密数sの知識を有することなく、前記秘密数の知識を検証者装置によって検証する方法であって、
前記秘密数sのMontgomery e乗を受け取るステップと、
乱数rのMontgomery e乗xを受け取るステップと、
チャレンジ値cを前記証明者装置に送るステップと、
チャレンジ値cに従って前記証明者装置から受け取ったx×msecの値に対して検証される前記証明者の応答yのMontgomery e乗に従ってyの真正性を検査するステップと
を含む方法。 - コンピュータにロードされた時に、請求項1ないし13および19ないし22のいずれか一項に記載の手順を前記コンピュータに実行させるように適合されたコンピュータ・プログラム・コード手段を有するコンピュータ可読媒体を含むコンピュータ・プログラム製品。
- コンピュータにロードされた時に、請求項1ないし13および19ないし22のいずれか一項に記載の手順を前記コンピュータに実行させるように適合されたコンピュータ・プログラム・コード手段を含む、電子データ伝送によって配布可能なコンピュータ・プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0228760.5A GB0228760D0 (en) | 2002-12-10 | 2002-12-10 | Efficient implementation of zero knowledge protocols |
PCT/IB2003/005335 WO2004054168A1 (en) | 2002-12-10 | 2003-11-21 | Efficient implementation of zero knowledge protocols |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006510265A true JP2006510265A (ja) | 2006-03-23 |
JP2006510265A5 JP2006510265A5 (ja) | 2007-01-18 |
Family
ID=9949405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004558896A Withdrawn JP2006510265A (ja) | 2002-12-10 | 2003-11-21 | ゼロ知識プロトコルの効率的な実装 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7555646B2 (ja) |
EP (1) | EP1573957A1 (ja) |
JP (1) | JP2006510265A (ja) |
CN (1) | CN1723654B (ja) |
AU (1) | AU2003280132A1 (ja) |
GB (1) | GB0228760D0 (ja) |
WO (1) | WO2004054168A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022009388A1 (ja) | 2020-07-09 | 2022-01-13 | 富士通株式会社 | 情報処理システムおよび制御方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2880149B1 (fr) | 2004-12-23 | 2007-03-30 | Oberthur Card Syst Sa | Procede de traitement de donnees et dispositif associe |
WO2007007229A1 (en) * | 2005-07-07 | 2007-01-18 | Koninklijke Philips Electronics N.V. | Method, apparatus and system for verifying authenticity of an object |
WO2007006798A1 (fr) * | 2005-07-13 | 2007-01-18 | Gemplus | Procede et systeme d'authentification de puces electroniques |
US20110271109A1 (en) * | 2010-05-01 | 2011-11-03 | Tor Anumana, Inc. | Systems and methods of remote device authentication |
US9425966B1 (en) * | 2013-03-14 | 2016-08-23 | Amazon Technologies, Inc. | Security mechanism evaluation service |
US9930523B2 (en) * | 2014-03-11 | 2018-03-27 | Ecole Polytechnique Federale De Lausanne (Epfl) | Method and device for proving his identity |
US10205598B2 (en) * | 2015-05-03 | 2019-02-12 | Ronald Francis Sulpizio, JR. | Temporal key generation and PKI gateway |
US10708071B1 (en) | 2018-07-12 | 2020-07-07 | Protocol Labs, Inc. | Consensus protocols in distributed computing systems |
US11570001B1 (en) * | 2018-07-12 | 2023-01-31 | Protocol Labs, Inc. | Protocols for decentralized networks |
US11245528B1 (en) | 2018-11-19 | 2022-02-08 | Protocol Labs, Inc. | Protocols for decentralized networks |
US11546161B2 (en) * | 2020-02-21 | 2023-01-03 | Hong Kong Applied Science and Technology Research Institute Company Limited | Zero knowledge proof hardware accelerator and the method thereof |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4748668A (en) * | 1986-07-09 | 1988-05-31 | Yeda Research And Development Company Limited | Method, apparatus and article for identification and signature |
DE69333121T2 (de) * | 1992-06-30 | 2004-04-15 | Thomson Multimedia | Verfahren zur Ausführung von kryptographischen und/oder fehlerkorrigierenden Protokollen auf dem Gebiet der Zahlentheorie |
FR2747257B1 (fr) * | 1996-04-09 | 1998-09-11 | Gilbert Henri | Procede d'identification et/ou de signature |
EP0881557B1 (en) * | 1997-05-28 | 2003-04-16 | Siemens Aktiengesellschaft | Computer system for protecting software and a method for protecting software |
US7165181B2 (en) * | 2002-11-27 | 2007-01-16 | Intel Corporation | System and method for establishing trust without revealing identity |
FR2880149B1 (fr) * | 2004-12-23 | 2007-03-30 | Oberthur Card Syst Sa | Procede de traitement de donnees et dispositif associe |
US7607019B2 (en) * | 2005-02-03 | 2009-10-20 | Apple Inc. | Small memory footprint fast elliptic encryption |
-
2002
- 2002-12-10 GB GBGB0228760.5A patent/GB0228760D0/en not_active Ceased
-
2003
- 2003-11-21 AU AU2003280132A patent/AU2003280132A1/en not_active Abandoned
- 2003-11-21 WO PCT/IB2003/005335 patent/WO2004054168A1/en active Application Filing
- 2003-11-21 CN CN2003801055016A patent/CN1723654B/zh not_active Expired - Fee Related
- 2003-11-21 JP JP2004558896A patent/JP2006510265A/ja not_active Withdrawn
- 2003-11-21 EP EP03772508A patent/EP1573957A1/en not_active Ceased
- 2003-11-21 US US10/538,449 patent/US7555646B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022009388A1 (ja) | 2020-07-09 | 2022-01-13 | 富士通株式会社 | 情報処理システムおよび制御方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1573957A1 (en) | 2005-09-14 |
GB0228760D0 (en) | 2003-01-15 |
CN1723654B (zh) | 2010-10-06 |
US20060112273A1 (en) | 2006-05-25 |
CN1723654A (zh) | 2006-01-18 |
WO2004054168A1 (en) | 2004-06-24 |
US7555646B2 (en) | 2009-06-30 |
AU2003280132A1 (en) | 2004-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1717895B (zh) | 用于在不泄露身份的情况下建立信任的系统和方法 | |
CN113569294B (zh) | 一种零知识证明方法及装置、电子设备、存储介质 | |
CN1736055B (zh) | 替换密钥的系统、设备和方法 | |
EP0348812B1 (en) | Authentication method and apparatus therefor | |
US7363492B2 (en) | Method for zero-knowledge authentication of a prover by a verifier providing a user-selectable confidence level and associated application devices | |
EP1616406B1 (en) | Interactif zero-knowledge proof protocol | |
US9882890B2 (en) | Reissue of cryptographic credentials | |
JP4809310B2 (ja) | エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス | |
JP2006510265A (ja) | ゼロ知識プロトコルの効率的な実装 | |
JP4737834B2 (ja) | 小さなサイズの情報内容を使用したメッセージの認証および署名ならびにそのためのシステム | |
US6959085B1 (en) | Secure user identification based on ring homomorphisms | |
US6952476B1 (en) | Verification of the private components of a public-key cryptographic system | |
US10841105B2 (en) | Method and system for providing a proof-of-work | |
JP4945026B2 (ja) | 減少した計算組を伴う認証または署名プロセス | |
US7386122B1 (en) | Method for proving the authenticity or integrity of a message by means of a public exponent equal to the power of two | |
US6978372B1 (en) | Verification of correct exponentiation or other operations in cryptographic applications | |
Almuhammadi et al. | Security and privacy using one-round zero-knowledge proofs | |
Di Crescenzo et al. | Delegating a product of group exponentiations with application to signature schemes | |
Liu et al. | Lottery protocol using oblivious transfer based on ECC | |
Al-Saidi et al. | A new idea in zero knowledge protocols based on iterated function systems | |
JP2001044987A (ja) | 一括認証方法 | |
KR20010108142A (ko) | 2의 거듭제곱과 동등한 공개 지수를 이용한 엔티티 인증성및/또는 메시지의 무결성 검증방법 | |
Eidens | Anonymous Credential System based on the q-Strong Diffie-Hellman Assumption | |
Gilboa | Zero-Knowledge Proofs | |
JPH07281595A (ja) | 認証方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061120 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061120 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080619 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090928 |