JP5544355B2 - 共有の秘密の確認の方法およびシステム - Google Patents

共有の秘密の確認の方法およびシステム Download PDF

Info

Publication number
JP5544355B2
JP5544355B2 JP2011509427A JP2011509427A JP5544355B2 JP 5544355 B2 JP5544355 B2 JP 5544355B2 JP 2011509427 A JP2011509427 A JP 2011509427A JP 2011509427 A JP2011509427 A JP 2011509427A JP 5544355 B2 JP5544355 B2 JP 5544355B2
Authority
JP
Japan
Prior art keywords
result
secret
random number
way function
alice
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
JP2011509427A
Other languages
English (en)
Other versions
JP2011521553A (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 JP2011521553A publication Critical patent/JP2011521553A/ja
Application granted granted Critical
Publication of JP5544355B2 publication Critical patent/JP5544355B2/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/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/3271Cryptographic 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
    • 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/3236Cryptographic 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 cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、安全なデータ交換に使用することができる、安全なマルチパーティ計算(SMC:Secure Multi−party Computation)にリンクした共有の秘密の確認方法に関する。本発明はさらに、この方法を実行するための装置、システムおよびコンピュータプログラムに関する。
共有の秘密の確認を使用するシステムにおいては、たとえば2人の当事者がそれぞれ秘密を持っている場合がある。彼らは同じ秘密を共有しているか否かを知りたいが、相互にまたは第三者に秘密自体を開示したくない。本発明は、現代の電気通信において安全な通信(公開鍵および/または秘密鍵)、ゼロ知識証明、一方向性(ハッシュ)関数、コミットメント方式、データ圧縮などに関係する。用途としては特に、たとえば2人の当事者がインターネット上で出会うなど、インターネット上での接触における安全なグループ形成の分野で用途がある。後に2人が再びインターネット上で出会う。この際に問題となるのは、2人の当事者が本人情報を開示しなくても他方の当事者について以前出会ったのと同じ当事者であることをどのように確認できるかということである。別の例としては、たとえば2つの携帯装置が相互につながれ、この2つの装置がつながれたときの正確な時間インスタンスである秘密のタイムスタンプを作成するときに生じる問題である。後で2人は相互に通信したい。この際に問題となるのは、他方の装置に全く同じタイムスタンプがあることを自らのタイムスタンプを開示せずにどのように確認するかということである。
本発明による方法が解決法を提供しようとする問題は以下のように記載することができる:ある時点のある場所で通信手段において、ある秘密ができた。この秘密は2つ以上の当事者間で共有される。これらの当事者は人でも、機械でも、またはその両方でもよい。別の時間、場所および/または通信手段において、2つ以上の当事者が出会い、他方(単数または複数)が同じ秘密を共有しているかどうかを確認したい。介在させてもよい信頼される第三者は存在しない。この秘密はシャノンエントロピーが小さくてもよい。プロトコル/アルゴリズムが失敗した場合、詐欺師にはそれ以上の情報が分からない。さらに、本発明による方法はプライバシーを最適に保護し、秘密が作成されるときも、あるいは秘密が確認されるときも本人情報は交換されないはずである。また、認証あるいは確認には第三者が必要とされないはずである。
暗号化における安全なマルチパーティ計算(MPC)は、1982年にアンドリューC.ヤオ(Andrew C.Yao)により最初に示唆された問題である[アンドリューチーチーヤオ(Andrew Chi−Chih Yao):安定な計算のためのプロトコル(概要書)(Protocols for Secure Computations (Extended Abstract))FOCS 1982:160−164]。この刊行物において大富豪問題が紹介された。すなわちアリス(Alice)およびボブ(Bob)は2人共大富豪であり、どちらの方が金持ちであるかを、正確な財産額を明らかにすることなく知りたがっている。ヤオは、その制約を守りつつアリスおよびボブの好奇心を満足させる解決法を提案した。
安全なMPCは、分散投票、非公開の入札および競売、署名または復号機能の共有、個人情報の検索など様々な現実的な問題に対して解決策を与える。マルチパーティ計算の最初の大規模な実用化は、2008年1月にデンマークで行われた[ピーターボーゲトフト(Peter Bogetoft)、ダンルンドクリステンセン(Dan Lund Christensen)、イバンダームガード(Ivan Damgard)、マーティンガイスラー(Martin Geisler)、トマスヤコブセン(Thomas Jakobsen)、ミッケルクルガード(Mikkel Kroigaard)、ヤヌスダムニールセン(Janus Dam Nielsen)、ジェスパーブースニールセン(Jesper Buus Nielsen)、カートニールセン(Kurt Nielsen)、ヤコブパグター(Jakob Pagter)、ミカエルシュバルツバッハ(Michael Schwartzbach)およびトマストフト(Tomas Toft):マルチパーティ計算の実用化(Multiparty Computation Goes Live)、クリプトロジーeプリントアーカイブ(Cryptology ePrint Archive):レポート(Report)2008/068]。
大富豪問題の従来技術による解決法を以下に示す。2人の大富豪アリスおよびボブ(暗号化の際の2人の当事者は通常AおよびB)は実際の財産を明らかにせずにどちらがより金持ちであるかを知りたい。始めに、アリスおよびボブには、有力な公開鍵暗号システム、本例ではRSAが必要になる。アリスはRSAを使用し、公開鍵を作成する(79,3337)。彼女の秘密鍵は1019である。例を単純にしておくため、アリスおよびボブは2人のロールスロイスコレクションから算定して、どちらも1〜10百万程度の財産がある。2人は互いにどの程度金持ちであるかを伝えたがらないが、どちらの方が金持ちであるかをどうしても知りたい。アリスはI百万を、ボブはJ百万を所有している。この例ではアリスは5百万(I=5)を、ボブは6百万(J=6)を所有しているものとする。手法は数百万まで拡張できるが、1〜10の数のみを使用し、百万単位を使用しないこととする。
ステップ1
ボブはxというランダムなNビットの整数を選ぶ(その後アリスはN/2ビットの素数を使用するため、整数の長さが重要である。この計算例で使用する素数はN/2ビットに過ぎないが、それでもうまく行く)。ここではx=1234(4つの10進数字、Nは約14ビットである)とする。まず、ボブは、C=1234^79 mod 3337=901になるようにCを計算する[CはxをRSA暗号化したものである。]
ステップ2
ボブはCを得て、アリスにC−J+1、つまり901−6+1=896を送信する。彼は896アリスを送る。
ステップ3
アリスは、Y1が(C−J+1)のRSA復号化;Y2が(C−J+2)のRSA復号化;Y3が(C+J+3)のRSA復号化;…;Y10が(C−J+10)のRSA復号化になるように一連の数字Y1、Y2、Y3…Y10を作成する。彼女はCまたはJが分からないけれども、(C−J+1)が分かっているため、これを行うことができる。(C−J+1)はボブがアリスに送った数字である。ここで、以下の表が得られ、この場合Uは1〜10、YUはY1、Y2、Y3、Y4 …Y10である:
U(C−J+U) RSA関数 YU
1 896 896^1019 mod 3337 1059
2 897 897^1019 mod 3337 1156
3 898 898^1019 mod 3337 2502
4 899 ・ 2918
5 900 ・ 385
6 901 ・ 1234(この値にならなければならない)
7 902 ・ 296
8 903 ・ 1596
9 904 ・ 2804
10 905 905^1019 mod 3337 1311
ステップ4
ここでアリスはランダムなN/2ビットの長さの素数pを作成する。この場合、107を使用する:107は7または8ビットであるため、要件を満たしている。次にアリスはY1 mod p、Y2 mod p、Y3 mod p …Y10 mod pを計算してZ1、Z2、Z3 …Z10を作成する。このためU=1〜10であれば、ZU=Z1〜Z10であり、以下の表を完成できる:
U(C−J+U) RSA関数 YU ZU(=YU mod 107)
1 896 896^ 1019 mod 33371059 96
2 897 897^ 1019 mod 33371156 86
3 898 898^ 1019 mod 33372502 41
4 899 ・ 2918 29
5 900 ・ 385 64
6 901 ・ 1234 57
7 902 ・ 296 82
8 903 ・ 1596 98
9 904 ・ 2804 22
10 905 905^1019 mod 3337 1311 27
pはすべてのZUが少なくとも2異なるように選択されなければならないことに注意する必要がある(これは比較的小規模の例では重要な場合がある)。
ステップ5
上記は有効なビットである。次にアリスは素数pをボブに送ってから10個の数字を送る。最初のいくつかの数字はZ1、Z2、Z3で、最大ZIの値までであり、Iは百万単位のアリス財産(この場合5)である。したがってアリスはZ1、Z2、Z3、Z4およびZ5を送る。アリスは残りの数字には1を加算するため、Z6+1、Z7+1、Z8+1、Z9+1およびZ10+1を送る。彼女が送る完全な文字列は以下となる:
p Z1 Z2 Z3 Z4 Z5 Z6+1 Z7+1 Z8+1 Z9+1 Z10+1
107 96 86 41 29 64 58 83 99 23 28
ステップ6
次にボブは、最初の素数を除外してJ番目の数字を見る。Jは彼の百万単位の財産(6)である。したがって彼は58を見る。さらに彼はG=x mod pを計算する(xは彼の最初のランダムな数字、pはアリスが彼に送ったランダムな素数である)。したがって:
G=1234 mod 107=57となる。ここでJ番目の数字(58)がGと等しければ、アリスの財産はボブと等しいか、またはそれ以上となる(I>=J)。J番目の数字がGと等しくなければ、ボブの方がアリスより財産が多いことになる(I<J)。この例では、57は58と等しくないので、ボブの方が財産が多い。
ステップ7
ボブはアリスに結果を伝え、アリスは一連の数字の中で彼女の値(5)よりも大きい数字に1を加算し始め、ボブは一連の数字の中で彼の境遇の数字(6)に1が加算されているかどうかを点検し、加算されていれば、ボブはアリスより財産があるにちがいないことが分かる。
これはすべて、どちらにも財産額を送信することなく行われたものである。一方、最終的に2人にはより多くのことが分かる。つまりアリスはボブが6〜10百万を所有していることが分かり、ボブはアリスが1〜5百万を所有していることが分かる。ただし、これは、どちらがより多くの財産があるかを知ることによる必然的な結論である。>=条件が成立するなら、ボブとアリスは、アリスの方が実際に財産があるかどうか、あるいは2人の財産が共に同じであるかどうかを調べるためこのプロトコルを逆に実行することもできる。
この手法は不正を確認できる手法ではない(ボブはステップ7で嘘をつくことができた)。ヤオは、通常追加のステップを採用することで、こうした技法を不正の抑制が可能なように構築できることを示している。
最後に、この手法を実際に使用することはできるが、それにはある程度の処理能力が必要となる。1つの解決策で1〜100,000,000の範囲をカバーしたい場合、アリスはおそらく少なくとも8バイトの整数になると考えられる100,000,000の数字の表をボブに送ることになる。現実的なフォーマットのオーバーヘッドの点から見ると、これは、この表がギガバイト程度になることを意味する。これを処理することはできるが、この手法の実際の処理および保存への影響は小さくなく、これが実用的な実装にするのに大きな問題になっている。
本発明は、この問題の解決法を与えることを目的とする。
本発明の目的は、現代の安全なデータ交換用途における実用的な実装に十分適合する、より無駄のない効率的なプロトコルを提供することにある。
請求項1に記載する方法を提供する。ヤオの既知のプロトコルはx<yかどうかを決定できるが、そのためにはアリスはxおよびyの考えられるすべての値を暗号化しなければならず、ボブがxおよびyのうちどちらが大きいかを決定できるのはその後のことである。これに対して特許請求の範囲に記載される方法はx=yかどうかのみを判定するため、アリスが暗号化する必要があるのはxの値だけであり、ボブが決定する必要があるのはy=xであるか(または否か)のみである。このアプローチによりプロトコルはより効率的なものとなる。実施形態の1つでは、このプロトコルに追加ステップを加えて、プロトコルを初めからやり直さなくてもアリスおよびボブがxおよびyの2つの値が等しいか、または等しくないかを決定できるようにすることができる。
一態様によれば、この方法の各当事者の行為を実行するそれぞれの装置を提供する。こうした装置は消費者装置であってもよい。さらなる実施形態では、装置は、必要に応じてアリスまたはボブとしての役割を果たすことができるように2つの装置の各特徴を組み合わせたものでもよい。
これらおよび他の目的および有利な態様については、例示的な実施形態の説明により明らかになるであろう。新規なプロトコルを提示する。例示的な実施形態の説明は、以下の図を参照する。
通信システムを示す。 共有の秘密の確認に関わる動作を図示する。
図1は、第1の装置Aおよび第2の装置Bを含む通信システムを示す。装置A、装置Bはどちらも、記憶装置100、記憶装置120、送受信機102、送受信機122およびプロセッサ104、プロセッサ124を含む。各装置ではプロセッサ104、プロセッサ124が装置の記憶装置100、記憶装置120および送受信機102、送受信機122に連結されている。装置A、装置Bは同一である必要はない。すなわち一方の装置がスマートカードチップであって、他方がそのスマートカードチップと通信するための機械であってもよい。あるいは、装置A、装置Bは、たとえば携帯電話でも構わない。送受信機102、送受信機104は装置A、装置B間のメッセージの交換を行う装置である。どのようなメッセージ交換媒体を使用してもよい。たとえばコンダクタを使用してもよいし、あるいは無線通信媒体を使用してもよい。送受信機102、送受信機120は、無線通信受信機および送信機、またはスマートカードリーダまたはリーダインターフェイスを含んでもよい。
記憶装置100、記憶装置120は共に2つの装置A、装置Bにおいて同一の秘密情報を保存する。この情報を共有の秘密という。動作プロセッサ104、動作プロセッサ124は装置A、装置Bに情報を交換させ、装置間で交換される信号の秘密情報を明らかにせずに秘密情報が同一であることを確認する。暗号化における慣用的な名前として、装置A、装置Bをそれぞれアリスおよびボブと呼ぶが、「当事者」とも呼ぶ。
前述のように、本発明により2つの当事者は互いに同じ秘密を共有しているかどうかを確認することができる。本発明は以下の要素を使用する。
−共有の秘密S
−暗号化アルゴリズムE
−復号アルゴリズムD
−一方向性(ハッシュ)関数H
−公開鍵PU
−秘密鍵PR
−ランダムな数字R
図2はプロトコルを実行するためのアルゴリズムを図示する(「SAはSBに等しいか?」という質問に対する答えは、はい/いいえである)。図2のアルゴリズムでは以下のステップを行う:
ステップ1
ボブは自分の公開鍵PUBをアリスに送る。注記:アリスは既にボブの公開鍵を持っている(アクセスできる)こともある。この場合、公開鍵を送らなくてもよい。
ステップ2
アリスはランダムな数字RAを選択し、ボブの公開鍵PUBを用いてこれを暗号化し、彼女の秘密SAの値を加算してその結果Kをボブに送る。注記:ここでアリスは一方向性関数しか使用できない。なぜなら、その後ボブは同一の一方向性関数の出力を与える秘密を発見するまで、限られた秘密の空間(シャノンエントロピーが小さい)ですべての秘密を簡単に試すことができるためである。
ステップ3
ボブはKを受信し、彼の秘密SBを減算し、彼自身の秘密鍵PRBを用いて復号を行う。注記:アリスおよびボブが同じ秘密を持つ場合、すなわちSA=SBである場合、結果Lはアリスの最初のランダムな数字RAと等しくなる。秘密が同一でない場合、すなわちSA≠SBである場合、やはりRA≠Lとなる。
ステップ4
ボブはLを得て、これに一方向性関数Hを実行して、その結果Mをアリスに送り返す。注記:一方向性関数を使用する理由は、多くの暗号化/復号アルゴリズムが入れ替え可能であるためである。つまり、暗号化の前に復号も行うことが可能である。アリスはSB=K−DPRA(L)とすることでボブの秘密を計算できるため、これは問題になると考えられる。このためボブは彼の結果Lを秘密しておかなければならず、Lの一方向性関数のみを送ることができる。
ステップ5
アリスはMを受信し、彼女の最初のランダムな数字RAを用いて、同一の一方向性関数Hを実行し、結果が受信したMに等しいかどうかを確認する。注記:答えが「はい」である場合、アリスはボブが同じ秘密を持つことが分かる。答えが「いいえ」である場合、アリスはボブが同じ秘密を持たないことが分かる。
ステップ6
アリスは彼女の最初のランダムな数字RAをボブに送る。アリスはステップ5の結果が「はい」であった場合に限り、ステップ6を行う必要があることに注意されたい。答えが「いいえ」であった場合、アリスは任意のランダムな数字RA’を送っても、あるいは単にプロトコルが失敗したというメッセージを送ってもよい。
ステップ7
ボブはRAを受信し、それが彼の以前の結果Lに等しいかどうかを確認する。答えが「はい」である場合、アリスはボブが同じ秘密を持つことが分かる。答えが「いいえ」である場合、ボブはアリスが同じ秘密を持たないことが分かる。
装置Aおよび装置Bがこれらのステップを行うとき、第1の装置Aのプロセッサ104は、ランダムな数字RAの選択、公開鍵PUBを用いた暗号化、第1の装置Aの記憶装置100の秘密SAの値の加算を行うことができ、プロセッサ104は、公開鍵PUBを用いてランダムな数字を暗号化した結果に秘密SAを加算した結果を第1の装置Aの送受信機102により送信させる。さらに、プロセッサ装置Aは一方向性関数Hをランダムな数字RAに適用し、HをRAに適用した結果が、受信したMに等しいかどうかを確認することもできる。
第2の装置Bのプロセッサ124は、送信された結果Kを第2の装置Bの送受信機122に取得させ、第2の装置Bの記憶装置120の秘密SBを減算し、装置Bの秘密鍵PRBを用いて復号を行い、復号の結果に一方向性関数Hを適用し、第2の装置Bの送受信機122に結果Mを第1の装置に返信させるように構築すればよい。
記憶装置100、記憶装置120に保存された秘密SA、秘密SBが等しい場合(SA=SB)、結果Lはランダムな数字RAに等しい。秘密が同一でなかった場合、すなわちSA≠SBである場合、やはりRA≠Lとなる。任意に第2の装置Bのプロセッサ124は、第1の装置Aからランダムな数字RAを受信し、ランダムな数字がその以前の結果Lに等しいかどうかを確認するように構築してもよい。プロセッサ104、プロセッサ124は、様々な動作を行うためのプログラムを備えたプログラム可能なプロセッサ回路であってもよい。
提案したアルゴリズムにはいくつかの修正および改善が可能である。
修正1
このアルゴリズムは、アリスまたはボブのどちらが交換を開始すべきかを判定するように拡張してもよい。1つのアプローチは通信の開始者が先になる(または後になる)必要があるというアプローチである。たとえば、装置Aが最初に装置Bにメッセージを送り、通信を開始する場合、装置Aがアリスの役割を果たす。この場合、最初のメッセージは、秘密SAを加算してあるランダムな数字により暗号化することができる。あるいは、装置Bからの最初のメッセージの受信をきっかけに装置Aがプロトコルのステップを実行し始めるようにしてもよい。
もう1つのアプローチは、コミットメント方式を用いてランダムに決定して(硬貨を指ではじいて)判定される。この場合、関係当事者は関連値を隠したままでその値をコミットする一方で、ランダムな決定(硬貨投げ)の公正性を確保するためコミットした値を後で明らかすることができる。ランダムな決定は、たとえば2進値をランダムに選択して行ってもよい。
修正2
アリスおよびボブはステップ6および7を行う代わりに、ステップ1〜5を繰り返してもよく、この場合、交換を開始するのはボブである。この場合、ボブがアリスのステップを行ってもよく、アリスがボブのステップを行ってもよい。
修正2a
ステップ6および7を省略する実施形態の1つでは、相互に入れ替えができない暗号化アルゴリズムEおよび復号アルゴリズムDを使用してもよい。この実施形態では、一方向性関数Hを省略することができる。ステップ4の文脈で示したように、一方向性関数を使用する理由は、ボブにより送られた結果Lからアリスがボブの秘密を計算することを防止するためである。相互に入れ替えができない暗号化および復号を使用する場合、アリスはDPRA(L)を計算することが不可能であり、一方向性(ハッシュ)関数Hを省略しても構わない。
修正3
ボブがアリスの公開鍵を既に知ってしまっている場合、アリスはそれを送る必要はない。
修正4
本明細書で使用する場合、「加算(すること)」および「減算(すること)」とは、数学関数が相互に逆の関係にあり、かつ数値の加算の場合のように2つの数を結び付ける働きをするという点で、すなわち単純な逆操作によりその結果から他方の数を復元するには2つの数のうちの1つの数(秘密)が必要になるように、数学関数が2つの数を結び付ける働きをするという点で、加算することおよび減算することの対に相当する、数を結び付けるための数学関数の任意の対をいう。
たとえば、整数数値の加算/減算またはビット単位の加算/減算(ビット単位の排他的論理和)を用いてもよい。ステップ2において整数数値またはビット単位の加算、およびステップ3において減算を用いる代わりに、たとえば、掛け算/割り算、累乗/対数、またはこうした関数の組み合わせのような数値数学関数など任意の可逆的数学関数を用いてもよい。これらの数学関数は、加算することおよび減算することにより総称される。ステップ2では、秘密SAとボブの公開鍵を用いてランダムな数字を暗号化した結果EB(RA)との和SA+EB(RA)の代わりに積EB(RA)*SA、差EB(RA)−SAまたは累乗EB(RA)SAの計算を行ってもよい。この場合、ステップ3では、減算K−SBの代わりに比K/SB、和K+SB、対数SBlog Kの計算を行えばよい。加算/減算の役割については、暗号化したランダムな数字から秘密SAを減算し、受信した結果Kに加算して交換してもよい。同様に掛け算/割り算および累乗/対数の役割も交換しても構わない。
修正5
ボブは一定の暗号化および復号アルゴリズムを使用する代わりに、アリスが使用するはずの暗号化アルゴリズムの信号に対するプロトコルを使用してもよく、またはその逆も同様である。
修正6
ボブは一定の一方向性関数を使用する代わりに、アリスが使用するはずの一方向性関数の信号に対するプロトコルを使用してもよく、またはその逆も同様である。
修正7
一部のメッセージは順序が異なってもよく、たとえばアリスは彼女の公開鍵PUAを送る前に結果Kを送ってもよいし、あるいは同じメッセージ内にその両方を送ってもよい。修正5および6において選択した暗号化/復号アルゴリズムおよび/または一方向性関数の場合も同様である。
修正8
場合によっては、秘密を符号化する必要があることもある。この場合、全当事者が連続した番号を取得するか、または秘密に任意のデータ圧縮アルゴリズムを使用してもよい。
修正9
ステップ6においてRAを送ることで、アリスとボブとの間の通信を盗聴する不正者は秘密を計算することができる。こうしたリスクを回避するには、アリスはRAの数字自体ではなく、RAを秘密と連結し、一方向性関数に基づきその画像を計算し、その結果をボブに送ればよい。こうすれば、盗聴する不正者には秘密が分からない。
修正10
すべてのステップは、安全な通信チャネルを用いて、たとえば受信機の公開鍵で全メッセージを暗号化することでさらに保護してもよい。
修正11
すべてのステップは、認証機構を用いて、たとえば公開鍵を利用した認証によりさらに保護してもよい。さらに、たとえば送信者の秘密鍵でメッセージを暗号化することで、各メッセージにデジタル署名を付与してもよい。プロトコルに認証を付与すれば、中間者はプロトコルを確実に妨害できなくなる。
このプロトコルを用いれば、国際公開第2009/014438号に関連する問題が解決される。さらに、このプロトコルは、信頼される第三者企業の新たな役割、すなわち共有の秘密の確認という役割を示唆している。この場合、信頼される第三者がアリスおよびボブのうちの1人のステップを実行することになる。
共有の秘密の確認のため、たとえば安全なデータ交換に利用できる方法が提供される。この場合、少なくとも2人の当事者(以下アリスおよびボブという)はそれぞれ秘密を持っており、その課題は、秘密自体を相互にまたは任意の第三者に開示しなくても、彼らが同じ秘密を共有しているか否かを知ることである。この方法は、それぞれの秘密SAおよびSB、暗号化アルゴリズムE、復号アルゴリズムD、一方向性またはハッシュ関数H、公開鍵PUAおよびPUB、秘密鍵PRAおよびPRB、ならびにランダムな数字RAを含む次のステップを含む:
ステップ1:アリスはランダムな数字RAを選択し、ボブの公開鍵PUBを用いてこれを暗号化し、彼女の秘密SAの値を加算し、結果Kをボブに送る;
ステップ2:ボブはKを受信し、彼の秘密SBを減算し、彼自身の秘密鍵PRBを用いて復号を行う;
ステップ3:ボブはLに一方向性関数Hを実行し、結果Mをアリスに送る;
ステップ4:アリスはMを受信し、彼女の最初のランダムな数字RAを用いて、同一の一方向性関数Hを行い、結果が受信したMに等しいかどうかを確認する。
ステップ1で加算、およびステップ2で減算を用いる代わりに、たとえば掛け算/割り算、累乗/対数、またはこうした関数の組み合わせなど任意の可逆的数学関数を用いてもよい。
実施形態の1つでは、こうしたステップの後に以下のステップが続く:
ステップ5:アリスは彼女の最初のランダムな数字RAをボブに送る;
ステップ6:ボブはRAを受信し、それが彼の以前の結果Lと等しいかどうかを確認し、答えが「いいえ」である場合、アリスはボブが同じ秘密を持つことが分かり、答えが「はい」である場合、ボブはアリスが同じ秘密を持たないことが分かると結論する。
実施形態の1つでは、アリスおよびボブはステップ1〜4を繰り返すが、この場合、交換を開始するのはボブである。
実施形態の1つでは、アリス、アリスまたはボブのどちらの当事者が交換を開始すべきかを判定するステップを加える。どちらの当事者が交換を開始すべきかの判定は、どちらの当事者が通信の交換を開始するかにより判定してもよいし、あるいは「硬貨を指ではじき」、コミットメント方式を用いてその硬貨投げの公正性を確保することで判定してもよい。

Claims (11)

  1. 第1の装置の第1の秘密SAおよび第2の装置の第2の秘密SBが同じであるか否かを、前記第1の秘密SAおよび前記第2の秘密SBを相互にまたは任意の第三者に開示することなく判定する方法であって、
    −前記第1の装置はランダムな数字RAを選択し、前記第2の装置の公開鍵PUBを用いて前記ランダムな数字RAを暗号化し、前記第1の装置の第1の秘密SAの値を暗号化された前記ランダムな数字RAに加算し、前記ランダムな数字RAを選択し、前記ランダムな数字RAを暗号化し、及び前記第1の秘密SAの値を加算するステップの第1の結果Kを前記第2の装置に送るステップ;
    −前記第2の装置は前記第1の結果Kを受信し、前記第2の装置の前記第2の秘密SBを前記第1の結果Kから減算し、前記第2の装置の秘密鍵PRBを用いて前記減算の結果の復号を行い、前記復号により復号結果Lを得るステップ;
    −前記第2の装置は一方向性関数Hを前記復号結果Lに適用し、前記一方向性関数の前記適用の第2の結果Mを前記第1の装置に送るステップ;
    −前記第1の装置は前記一方向性関数Hを前記ランダムな数字RAに適用するステップ;
    −前記第1の装置は前記第2の結果Mを受信し、前記受信した第2の結果Mが前記一方向性関数Hを前記ランダムな数字RAに適用した結果に等しいかどうかを確認するステップ
    を含む方法。
  2. 前記第1の装置および前記第2の装置は、前記第1および第2の装置の役割を相互に交換して前記ステップを繰り返す、請求項1に記載の方法。
  3. −前記第1の装置は前記ランダムな数字RAを前記第2の装置に送るステップ;
    −前記第2の装置は前記ランダムな数字RAを受信し、前記ランダムな数字RAが以前の前記復号結果Lに等しいかどうかを確認し、答えが「はい」である場合、前記第1の装置は前記第2の装置が前記同じ秘密を持つことが分かり、答えが「いいえ」である場合、前記第2の装置は前記第1の装置が前記同じ秘密を持たないことが分かると結論するステップ
    が後に続く、請求項1に記載の方法。
  4. 一対の装置を用い、前記一対の装置のどちらかが前記第1および前記第2の装置の役割においてそれぞれ実行すべきかを判定するステップを含む、請求項1〜3のいずれか1項に記載の方法。
  5. どちらの装置が前記第1および前記第2の装置の役割においてそれぞれ実行すべきかの前記判定は、どちらの装置が通信の交換を開始するかにより判定される、請求項4に記載の方法。
  6. どちらの装置が前記第1および前記第2の装置の役割においてそれぞれ実行すべきかの前記判定は、ランダムな決定により判定され、コミットメント方式を用いて前記ランダムな決定の公正性を確保する、請求項4に記載の方法。
  7. 秘密SAを保存する記憶装置;および、ランダムな数字RAを選択し、別の装置の公開鍵PUBを用いて前記ランダムな数字RAを暗号化し、秘密SAの値を暗号化された前記ランダムな数字RAに加算し、前記ランダムな数字RAを選択し、前記ランダムな数字を暗号化し、及び前記秘密SAの値を加算するステップの第1の結果Kを前記別の装置に送り、前記別の装置から第2の結果Mを受信し、一方向性関数Hを前記ランダムな数字RAに適用し、前記受信した第2の結果Mが前記一方向性関数Hを前記ランダムな数字RAに適用した結果に等しいかどうかを確認することにより、前記別の装置が前記秘密SAを有するかどうかを判定するように構成されたプロセッサを含む装置。
  8. 秘密SBを保存する記憶装置;およびプロセッサを含む装置であって、前記プロセッサは、別の装置から第1の結果Kを受信し、前記秘密SBを前記第1の結果Kから減算し、前記装置の秘密鍵PRBを用いて前記減算の結果の復号を行い、前記復号により復号結果Lを得て、一方向性関数Hを前記復号結果Lに適用し、前記一方向性関数の前記適用の第2の結果Mを前記別の装置に返信し、数字RAを前記別の装置から受信し、受信した前記数字RAが前記復号結果Lに等しいかどうかを確認することにより、前記別の装置が前記秘密SBと同じ秘密を有しているかどうかを判定するように構成された、装置。
  9. 請求項7に記載の装置を含むシステムであって、前記システムは前記別の装置をさらに含み、前記別の装置は秘密SBを保存する別の記憶装置;および、第1の結果Kを受信し、前記秘密SBを前記第1の結果Kから減算し、前記装置の秘密鍵PRBを用いて前記減算の結果の復号を行い、前記復号により復号結果Lを得て、一方向性関数Hを前記復号結果Lに適用し、前記一方向性関数の前記適用の第2の結果Mを、請求項7に記載の装置に返信し、数字RAを請求項7に記載の装置から受信し、受信した前記数字RAが前記復号結果Lに等しいかどうかを確認することにより、請求項7に記載の装置が前記秘密SBと同じ秘密を有しているかどうかを判定するように構成された別のプロセッサを含むシステム。
  10. プログラム可能なプロセッサにより実行される際、前記プロセッサに
    −ランダムな数字RAを選択させ、
    −装置の公開鍵PUBを用いて前記ランダムな数字RAを暗号化させ、
    −秘密SAの値を前記暗号化したランダムな数字に加算させ、
    −前記ランダムな数字RAを選択させ、前記ランダムな数字を暗号化させ、及び前記秘密SAの値を加算させるステップの第1の結果Kを前記装置に送らせ、
    −前記装置から第2の結果Mを受信させ、
    −一方向性関数Hを前記ランダムな数字RAに適用させ、
    −前記受信した第2の結果Mが、前記一方向性関数Hを前記ランダムな数字RAに適用した結果に等しいかどうかを確認させることにより、前記秘密SAが前記装置の別の秘密と同じであるかどうかを判定する
    命令プログラムを含むコンピュータプログラム。
  11. プログラム可能なプロセッサにより実行される際、前記プロセッサに
    −装置から第1の結果Kを受信させ、
    −前記第1の結果から秘密SBを減算させ、
    −秘密鍵PRBを用いて前記減算の結果の復号を行い、前記復号により復号結果Lを得さ
    せ、
    −一方向性関数Hを前記復号結果Lに適用させ、
    −前記一方向性関数の前記適用の第2の結果Mを前記装置に返信させ、数字RAを前記装置から受信させ、受信した前記数字RAが前記復号結果Lに等しいかどうかを確認させることにより、前記装置が前記秘密SBと同じ秘密を有しているかどうかを判定させる
    命令プログラムを含むコンピュータプログラム。
JP2011509427A 2008-05-14 2009-05-14 共有の秘密の確認の方法およびシステム Expired - Fee Related JP5544355B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP08156173.0 2008-05-14
EP08156173A EP2120393A1 (en) 2008-05-14 2008-05-14 Shared secret verification method
PCT/NL2009/050257 WO2009139629A1 (en) 2008-05-14 2009-05-14 Shared secret verification method and system

Publications (2)

Publication Number Publication Date
JP2011521553A JP2011521553A (ja) 2011-07-21
JP5544355B2 true JP5544355B2 (ja) 2014-07-09

Family

ID=39820990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011509427A Expired - Fee Related JP5544355B2 (ja) 2008-05-14 2009-05-14 共有の秘密の確認の方法およびシステム

Country Status (4)

Country Link
US (1) US8527765B2 (ja)
EP (2) EP2120393A1 (ja)
JP (1) JP5544355B2 (ja)
WO (1) WO2009139629A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012120671A1 (ja) * 2011-03-09 2012-09-13 富士通株式会社 共通鍵暗号を用いた認証システム
IL213497A0 (en) * 2011-06-12 2011-08-31 Eliphaz Hibshoosh Light public key cryptography
EP2915279B1 (en) 2012-10-30 2019-05-01 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Method and system for protected exchange of data
IL224890A0 (en) * 2013-02-24 2013-07-31 Uri Kaluzhny Digital signature system
US11128453B2 (en) * 2013-09-04 2021-09-21 Fiske Software Visual image authentication
WO2015166216A1 (en) * 2014-05-02 2015-11-05 Barclays Bank Plc Transaction authentication
CN104954130B (zh) 2014-03-31 2019-08-20 西安西电捷通无线网络通信股份有限公司 一种实体鉴别方法及装置
CN105577625B (zh) * 2014-10-17 2019-04-23 西安西电捷通无线网络通信股份有限公司 基于预共享密钥的实体鉴别方法及装置
WO2017216801A1 (en) * 2016-06-16 2017-12-21 Bar-Ilan University Secure sharing of confidential digital data
US10432400B2 (en) 2016-10-25 2019-10-01 Southern Methodist University Method and system for privacy preserving disclosure of a shared, identity linked secret
US10944566B2 (en) 2017-11-15 2021-03-09 International Business Machines Corporation Methods and systems for supporting fairness in secure computations
GB2569130B (en) 2017-12-05 2020-11-04 Ali Musallam Ibrahim Method and system for sharing an item of media content
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption
CN110661610B (zh) * 2018-06-29 2020-11-03 创新先进技术有限公司 安全多方计算协议的输入获取方法和装置
CN111447065B (zh) * 2019-01-16 2021-03-09 中国科学院软件研究所 一种主动安全的sm2数字签名两方生成方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02273779A (ja) * 1989-04-14 1990-11-08 Matsushita Electric Ind Co Ltd ディジタル署名装置
US5455863A (en) * 1993-06-29 1995-10-03 Motorola, Inc. Method and apparatus for efficient real-time authentication and encryption in a communication system
US5768388A (en) * 1996-03-01 1998-06-16 Goldwasser; Shafi Time delayed key escrow
WO1997037461A1 (en) * 1996-04-01 1997-10-09 Hewlett-Packard Company Transmitting messages over a network
US7373507B2 (en) * 2000-08-10 2008-05-13 Plethora Technology, Inc. System and method for establishing secure communication
US20030104859A1 (en) * 2001-12-05 2003-06-05 David Chaum Random number generator security systems
US7210617B2 (en) * 2002-02-20 2007-05-01 David Chaum Secret-ballot systems with voter-verifiable integrity
US7103184B2 (en) * 2002-05-09 2006-09-05 Intel Corporation System and method for sign mask encryption and decryption
JP2004072214A (ja) * 2002-08-02 2004-03-04 Sharp Corp 電子印鑑、icカード、本人認証システムおよび携帯機器
AU2003302545A1 (en) * 2002-12-03 2004-06-23 Matsushita Electric Industrial Co., Ltd. Key sharing system, shared key creation device, and shared key restoration device
US7299356B2 (en) * 2003-09-02 2007-11-20 Authernative, Inc. Key conversion method for communication session encryption and authentication system
JP4298441B2 (ja) * 2003-09-09 2009-07-22 Kddi株式会社 匿名オンラインサービス提供方法および匿名オンラインサービスシステム
JP2005268903A (ja) * 2004-03-16 2005-09-29 Toshiba Corp 暗号鍵共有装置、暗号鍵共有方法、プログラム及び通信機器
CA2560570C (en) * 2004-03-22 2011-09-13 Samsung Electronics Co., Ltd. Authentication between device and portable storage
JP4189496B2 (ja) * 2005-03-29 2008-12-03 国立大学法人福井大学 情報処理システム及びそのプログラム
JP4140617B2 (ja) * 2005-04-15 2008-08-27 三菱電機株式会社 認証用記録媒体を用いた認証システムおよび認証用記録媒体の作成方法
JP4820997B2 (ja) * 2006-03-31 2011-11-24 国立大学法人福井大学 サービス取引システム及びそのプログラム
JP2008011058A (ja) * 2006-06-28 2008-01-17 Mitsubishi Electric Corp 認証情報生成装置及び認証情報生成方法及び認証情報生成プログラム
US7865729B2 (en) * 2006-10-02 2011-01-04 Cisco Technology, Inc. Bidirectional authentication for HTML form processing
US8892887B2 (en) * 2006-10-10 2014-11-18 Qualcomm Incorporated Method and apparatus for mutual authentication

Also Published As

Publication number Publication date
US20110179274A1 (en) 2011-07-21
EP2286540B1 (en) 2016-09-14
JP2011521553A (ja) 2011-07-21
US8527765B2 (en) 2013-09-03
WO2009139629A1 (en) 2009-11-19
EP2286540A1 (en) 2011-02-23
EP2120393A1 (en) 2009-11-18

Similar Documents

Publication Publication Date Title
JP5544355B2 (ja) 共有の秘密の確認の方法およびシステム
JP6720424B1 (ja) 鍵共有デバイス及び方法
Rodriguez-Henriquez et al. A brief introduction to modern cryptography
CN104270249B (zh) 一种从无证书环境到基于身份环境的签密方法
EP2882132B1 (en) Encryption device, decryption device, encryption method, decryption method, and program
US7899184B2 (en) Ends-messaging protocol that recovers and has backward security
CN114282928A (zh) 基于区块链系统结合钱包管理系统的加密密钥存储和转移
EP1526676A1 (en) Conference session key distribution method on an id-based cryptographic system
JPH03128541A (ja) 暗号通信システムと暗号通信方法
JPH08507619A (ja) 低価格端末装置のための二方向公開キー確証およびキー一致
US11658815B2 (en) System and method for performing key operations during a multi-party computation process
KR101407220B1 (ko) 리셋 가능한 변조 방지 하드웨어 토큰을 이용한 효과적인 보안 함수 평가 방법
JP2004364303A (ja) メッセージを暗号化及び復号化するためのリンク鍵を確立する方法及びシステム
WO2019110399A1 (en) Two-party signature device and method
KR100989185B1 (ko) Rsa기반 패스워드 인증을 통한 세션키 분배방법
CN113987583A (zh) 一种隐匿查询方法及系统
CN111192050B (zh) 一种数字资产私钥存储提取方法及装置
Parmar et al. A comparative evaluation of algorithms in the implementation of an ultra-secure router-to-router key exchange system
JP7023584B2 (ja) 公開鍵暗号システム、公開鍵暗号方法、公開鍵暗号プログラム
Nguyen et al. No-key protocol for deniable encryption
CN114050897B (zh) 一种基于sm9的异步密钥协商方法及装置
Parakh Oblivious transfer using elliptic curves
JP3699618B2 (ja) 暗号鍵取得方法及び暗号鍵交換装置
US20140044261A1 (en) Method and system of cryptographic processing of a message
CN114697001B (zh) 一种基于区块链的信息加密传输方法、设备及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131007

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140324

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140512

R150 Certificate of patent or registration of utility model

Ref document number: 5544355

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees