JP6981472B2 - 合意システム、合意装置、プログラム、および記録媒体 - Google Patents

合意システム、合意装置、プログラム、および記録媒体 Download PDF

Info

Publication number
JP6981472B2
JP6981472B2 JP2019537590A JP2019537590A JP6981472B2 JP 6981472 B2 JP6981472 B2 JP 6981472B2 JP 2019537590 A JP2019537590 A JP 2019537590A JP 2019537590 A JP2019537590 A JP 2019537590A JP 6981472 B2 JP6981472 B2 JP 6981472B2
Authority
JP
Japan
Prior art keywords
signed
opinion value
consensus
opinion
agreement
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.)
Active
Application number
JP2019537590A
Other languages
English (en)
Other versions
JPWO2019039382A1 (ja
Inventor
大 五十嵐
浩気 濱田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019039382A1 publication Critical patent/JPWO2019039382A1/ja
Application granted granted Critical
Publication of JP6981472B2 publication Critical patent/JP6981472B2/ja
Active 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/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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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/3215Cryptographic 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 a plurality of channels
    • 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/3255Cryptographic 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 group based signatures, e.g. ring or threshold signatures
    • 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/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Communication Control (AREA)

Description

本発明は、暗号技術に関し、特に合意プロトコルに関する。
自律分散システムでは複数の装置がそれぞれ独立に処理を行う。これら複数の装置の処理内容は互いに整合のとれたものでなければならない。これを実現する技術に合意プロトコルがある(例えば、非特許文献1等参照)。合意プロトコルでは、複数の装置が自らの意見(例えば、処理順序、リクエストの有無、リクエストの内容など)を表す値(意見値)を互いに提供し、それらを最終合意関数に入力してシステム全体として整合のとれた合意結果(例えば、処理順序、リクエストの有無、リクエストの内容など)を得る。
Zuzana Beerliova-Trubiniova, Martin Hirt, and Micha Riser, "Efficient Byzantine Agreement with Faulty Minority," ASIACRYPT 2007, LNCS 4833, pp. 393 - 409, 2007.
合意プロトコルでは、何れかの装置が意図的または偶発的に不正な意見値を他の装置に提供したり、意見値を提供しなかったりする場合が想定される。本発明の目的は、合意プロトコルにおいて不正な処理を行った装置をある程度特定することである。
合意プロトコルを実行する合意システムは、n個の合意装置P(0),…,P(n−1)を有する。ただし、nが3以上の整数、i=0,…,n−1、j=0,…,n−1、m=0,…,n−1、i≠j、m≠i、m≠jである。合意装置P(i)は、意見を表す意見値xと、当該意見値xに対して付した署名sig_i(x)と、を含む署名付き意見値Xij=(x,sig_i(x))または署名付き意見値Xijとは異なる情報を、署名付き意見値X’ij=(x’ij,e’ij)として生成して合意装置P(j)に対して出力する。合意装置P(j)は、署名付き意見値X’ijを受け付け、署名付き意見値X’ijまたは署名付き意見値X’ijとは異なる情報を、署名付き意見値X”ijとして合意装置P(m)に対して出力する。
これにより、合意プロトコルにおいて不正な処理を行った装置をある程度特定できる。
図1は実施形態の合意システムを例示したブロック図である。 図2は実施形態の合意装置を例示したブロック図である。 図3は実施形態の合意方法の提供処理を例示したフロー図である。 図4は実施形態の合意方法の検証処理を例示したフロー図である。 図5Aおよび図5Bは実施形態の合意方法を例示した図である。
以下、図面を参照して本発明の実施形態を説明する。
<構成>
図1に例示するように、本形態の合意プロトコルを実行する合意システム1は、ネットワークを通じて通信可能なn個の合意装置10−P(0),…,10−P(n−1)を有する自律分散システムである。ただし、nが3以上の整数(例えば、n≧4)、i=0,…,n−1、j=0,…,n−1、r=0,…,n−1、m=0,…,n−1、i≠j、m≠i、m≠jである。図2に例示するように、合意装置10−P(r)は、通信部11−P(r)、記憶部12−P(r)、共有部13−P(r)、署名生成部14−P(r)、署名検証部15−P(r)、判定部16−P(r)、判定部17−P(r)、意見値出力部18−P(r)、および制御部19−P(r)を有する。各合意装置10−P(r)は、制御部19−P(r)の制御に基づいて各処理を実行する。
<提供処理>
次に、図3および図5を用い、各合意装置10−P(r)(ただし、r=0,…,n−1)が自らの意見を表す意見値xを提供する提供処理を説明する。意見値xは合意装置10−P(0),…,10−P(n−1)で互いに整合させる必要のある処理内容を表す。意見値xの一例は処理順序を表す意見を表す値である。例えば、合意装置10−P(A)から「値Dを11に更新する」というリクエストRが送信され、合意装置10−P(B)から「値Dを9に更新する」というリクエストRが送信される場合(ただし、A,B∈{0,…,n−1})、リクエストRを処理してからリクエストRを処理するといった意見を表す意見値x=((A,update,D,11),(B,update,D,9))、およびリクエストRを処理してからリクエストRを処理するといった意見を表す意見値x=((B,update,D,9),(A,update,D,11))を例示できる。このような意見値xに対して合意がなされれば、システム全体で処理順序を統一できる。他の意見値xの例はリクエストが送られたことを表す値である。例えば、合意装置10−P(A)から「値Dを11に更新する」というリクエストRが送信され、合意装置10−P(B)から「値Dを9に更新する」というリクエストRが送信される場合、リクエストRおよびRが送られたことを表す意見値x=((A,update,D,11),(B,update,D,9))、リクエストRしか送られなかったことを表す意見値x=(A,update,D,11)などを例示できる。このような意見値xを用いることにより、リクエストが各装置に正しく提供されたことを確認できる。他の意見値xの例はリクエストの内容を表す値である。例えば、合意装置10−P(A)から「値Dを11に更新する」というリクエストRが送信される場合、「値Dを11に更新する」という内容のリクエストRが送られたことを表すx=(A,update,D,11)や「値Dを9に更新する」という内容のリクエストRが送られたことを表すx=(A,update,D,9)を例示できる。このような意見値xを用いることにより、システム全体で各合意装置に同一のリクエストが提供されたかを確認できる。
≪ステップS1≫
前提として、各合意装置10−P(i)(ただし、i=0,…,n−1)には、署名生成のための署名生成鍵sk、および署名生成鍵skを用いて生成された署名を検証するための署名検証鍵kが設定されている。署名生成鍵skおよび署名検証鍵kは合意装置10−P(i)の記憶部12−P(i)に格納されている。署名生成鍵skは合意装置10−P(i)の秘密情報であり、署名検証鍵kは公開情報である。署名生成鍵skの例は公開鍵暗号方式(例えば、RSA)に則った秘密鍵であり、署名検証鍵kの例は当該公開鍵暗号方式に則った公開鍵である。この場合の署名生成鍵skおよび署名検証鍵kは公開鍵暗号方式における鍵ペアである。この前提の下、合意装置10−P(i)(ただし、i=0,…,n−1)の共有部13−P(i)が、合意装置10−P(i)(ただし、i=0,…,n−1)以外の合意装置10−P(j)(ただし、j=0,…,n−1、j≠i)の共有部13−P()との間で署名検証鍵kを共有する。共有部13−P(i)と共有部13−P(j)との間での署名検証鍵kの共有は、例えば、共有部13−P(i)から共有部13−P(j)に署名検証鍵kまたは署名検証鍵kに対応する値を送信することで行われる。あるいは、ネットワーク上の公開されたサーバ装置に署名検証鍵kまたは署名検証鍵kに対応する情報を格納しておき、各共有部13−P(j)がこのサーバ装置から署名検証鍵kまたは署名検証鍵kに対応する情報を受信してもよい。署名検証鍵kは合意装置10−P(j)の記憶部12−P(j)に格納される。これにより、各合意装置10−P(j)(ただし、j=0,…,n−1、j≠i)の記憶部12−P(j)には、自らの署名生成鍵skおよび署名検証鍵kに加え、n−1個の他の合意装置10−P(i)の署名検証鍵k(ただし、i=0,…,n−1、i≠j)が格納される。例えばn=3の場合、合意装置10−P(0)の記憶部12−P(0)にsk,k,k,kが格納され、合意装置10−P(1)の記憶部12−P(1)にsk,k,k,kが格納され、合意装置10−P(2)の記憶部12−P(2)にsk,k,k,kが格納される(図5A)。次にステップS2に進む。
≪ステップS2≫
合意装置10−P(i)(ただし、i=0,…,n−1)の署名生成部14−P(i)には、意見を表す意見値x、ならびに記憶部12−P(i)から読み込んだ署名生成鍵skが入力される。合意装置10−P(i)は正当な処理を行うかもしれないし、不正な処理を行うかもしれない。合意装置10−P(i)が正当な処理を行う場合、署名生成部14−P(i)は、意見値xと、署名生成鍵skを用いて意見値xに対して付した署名sig_i(x)と、を含む署名付き意見値Xij=(x,sig_i(x))を生成し、当該意見値Xijを署名付き意見値X’ij=(x’ij,e’ij)として出力する。なお、署名生成鍵skが公開鍵暗号方式に則った秘密鍵である場合、署名sig_i(x)は、例えば署名生成鍵skを用い、公開鍵暗号方式に則って意見値xを暗号化して得られる暗号文である。一方、合意装置10−P(i)が不当な処理を行う場合、署名生成部14−P(i)は、署名付き意見値Xijとは異なる情報を、署名付き意見値X’ij=(x’ij,e’ij)として生成して出力する。署名付き意見値X’ijは通信部11−P(i)に送られる。
≪ステップS3≫
正当な処理を行う合意装置10−P(i)(ただし、i=0,…,n−1)の通信部11−P(i)(第1出力部)は、n−1個の合意装置10−P(j)(ただし、j=0,…,n−1、j≠i)に対して署名付き意見値X’ij=(x’ij,e’ij)を出力する。例えば、n=3の場合、合意装置10−P(0)は署名付き意見値X’01を合意装置10−P(1)に送信し、署名付き意見値X’02を合意装置10−P(2)に送信し、合意装置10−P(1)は署名付き意見値X’10を合意装置10−P(0)に送信し、署名付き意見値X’12を合意装置10−P(2)に送信し、合意装置10−P(2)は署名付き意見値X’20を合意装置10−P(0)に送信し、署名付き意見値X’21を合意装置10−P(1)に送信する(図5A)。合意装置10−P(i)が正当な処理を実行する場合、X’ij=(x’ij,e’ij)=Xij=(x,sig_i(x)))である。不正な処理を行う合意装置10−P(i)の通信部11−P(i)は署名付き意見値Xij=(x,sig_i(x))とは異なる情報を署名付き意見値X’ij=(x’ij,e’ij)として合意装置10−P(j)に対して出力する。すなわち、通信部11−P(i)は、署名付き意見値Xij=(x,sig_i(x))または署名付き意見値Xijとは異なる情報を、署名付き意見値X’ij=(x’ij,e’ij)として合意装置10−P(j)に対して出力する。不正な処理を行う合意装置10−P(i)の通信部11−P(i)は、署名付き意見値X’ij=(x’ij,e’ij)を、少なくとも一部の合意装置10−P(j)に出力しないかもしれない。
≪ステップS4≫
合意装置10−P(i)から出力された署名付き意見値X’ijは、ネットワークを通じて合意装置10−P(j)(ただし、j=0,…,n−1、j≠i)に送信される。署名付き意見値X’ijは、合意装置10−P(j)の通信部11−P(j)(第1入力部)に入力され(受け付けられ)、記憶部12−P(j)に格納される。例えば、n=3の場合、合意装置10−P(0)の記憶部12−P(0)に署名付き意見値X’10および署名付き意見値X’20が格納され、合意装置10−P(1)の記憶部12−P(1)に署名付き意見値X’01および署名付き意見値X’21が格納され、合意装置10−P(2)の記憶部12−P(2)に署名付き意見値X’02および署名付き意見値X’12が格納される(図5B)。
≪ステップS5≫
正当な処理を行う合意装置10−P(j)(ただし、j=0,…,n−1、j≠i)の通信部11−P(j)(第2出力部)は、署名付き意見値X”ij=(x”ij,e”ij)(ただし、i=0,…,n−1、i≠j)をn−1個の合意装置10−P(m)(ただし、m=0,…,n−1、m≠j)に対して出力する。合意装置10−P(j)が正当な処理を実行する場合、署名付き意見値X”ijは記憶部12−P(j)に格納されたX’ijであり、X”ij=(x”ij,e”ij)=X’ij=(x’ij,e’ij)である。ただし、何れかの合意装置10−P(j)が不正な処理を行う可能性があり、不正な処理を行う合意装置10−P(j)の通信部11−P(j)は署名付き意見値X’ij=(x’ij,e’ij)とは異なる情報を署名付き意見値X”ij=(x”ij,e”ij)として合意装置10−P(m)に対して出力する。すなわち、通信部11−P(j)は、署名付き意見値X’ij=(x’ij,e’ij)または署名付き意見値X’ijとは異なる情報を、署名付き意見値X”ij=(x”ij,e”ij)として合意装置10−P(m)に対して出力する。通信部11−P(j)から合意装置10−P(m)に対して出力されるn−1個の署名付き意見値X”0j,…,X”(j−1)j,X”(j+1)j,…,X”(n−1)jの集合を確認データC=X”0j,…,X”(j−1)j,X”(j+1)j,…,X”(n−1)jと表現する。例えば、n=3の場合、通信部11−P(0)は、確認データC=X”10,X”20を合意装置10−P(1)およびP(2)に対して出力し、通信部11−P(1)は、確認データC=X”01,X”21を合意装置10−P(0)およびP(2)に対して出力し、通信部11−P(2)は、確認データC=X”02,X”12を合意装置10−P(0)およびP(1)に対して出力する(図5B)。不正な処理を行う合意装置10−P(j)(ただし、j=0,…,n−1、j≠i)の通信部11−P(j)は、確認データCを、少なくとも一部の合意装置10−P(m)に対して出力しないかもしれない。
≪ステップS6≫
通信部11−P(j)から出力された確認データCは、ネットワークを通じて合意装置10−P(m)(ただし、m=0,…,n−1、m≠j)に送信される。確認データCは、合意装置10−P(m)の通信部11−P(m)(第2入力部)に入力され(受け付けられ)、記憶部12−P(m)に格納される。例えば、n=3の場合、記憶部12−P(0)に確認データC=X”01,X”21およびC=X”02,X”12が格納され、記憶部12−P(1)に確認データC=X”10,X”20およびC=X”02,X”12が格納され、記憶部12−P(2)に確認データC=X”10,X”20およびC=X”01,X”21が格納される(図5B)。
<検証処理>
次に、図4および図5Bを用い、各合意装置10−P(m)(ただし、m=0,…,n−1)が行う意見値の検証処理を説明する。ただし、不正を行う合意装置の個数が1個以下であることを前提とする。検証処理は上述した提供処理の後に実行される。検証処理は提供処理が行われたことを契機として実行されてもよいし、提供処理の後の所定のタイミングで実行されてもよい。検証処理はすべての合意装置10−P(0),…,10−P(n−1)が行ってもよいし、その一部のみが行ってもよい。
≪ステップS11≫
まず、合意装置10−P(m)の制御部19−P(m)が判定対象に対応するインデックスi∈{0,…,n−1}を初期化する。例えば、m=0ならば制御部19−P(m)はi=0に初期化し、m=0ならば制御部19−P(m)はi=1に初期化する。
≪ステップS12≫
合意装置10−P(m)の署名検証部15−P(m)は、記憶部12−P(m)から、確認データC,…,Cn−1に含まれる、インデックスiについての署名付き意見値X”i0,…,X”i(i―1),X”i(i+1),…,X”i(n−1)、ならびに署名検証鍵k(ただし、i=0,…,n−1,i≠j)を読み込み、これらを用いて署名付き意見値X”i0,…,X”i(i―1),X”i(i+1),…,X”i(n−1)のそれぞれに対する署名検証を行い、それらの結果V(X”i0),…,V(X”i(i―1)),V(X”i(i+1)),…,V(X”i(n−1))を出力する。すなわち、署名検証部15−P(m)は、通信部11−P(m)(第2入力部)で受け付けられた(入力された)署名付き意見値X”ijが合意装置10−P(i)に対応する署名検証鍵kに対して正しい関係にある場合(署名正当の場合)に、署名付き意見値X”ijに対する署名検証の結果が合格であると判定し、その旨を表す結果V(X”ij)=OKを出力する。それ以外の場合、署名検証部15−P(m)は、署名付き意見値X”ijに対する署名検証の結果が不合格であると判定し、その旨を表す結果V(X”ij)=NGを出力する。例えば、署名検証部15−P(m)は、通信部11−P(m)に署名付き意見値X”ijが受け付けられなかった場合(入力されなかった場合)、通信部11−P(m)受け付けられた署名付き意見値X”ijの形式が規定のものではなかった場合、または、通信部11−P(m)に受け付けられた署名付き意見値X”ijが署名検証鍵kに対して正しい関係にない場合(署名不正の場合)に、署名付き意見値X”ijに対する署名検証の結果が不合格であると判定し、その旨を表すV(X”ij)=NGを出力する。
署名検証鍵kが公開鍵暗号方式に則った公開鍵である場合、署名付き意見値X”ijが署名検証鍵kに対して正しい関係にあるか否か(署名正当か署名不正か)の判定は、例えば次のように行う。まず、署名検証部15−P(m)は、前述の公開鍵暗号方式に則って、署名付き意見値X”ij=(x”ij,e”ij)に含まれた暗号文e”ijを、署名検証鍵kを用いて復号して復号結果x”=deck_i(e”ij)を得る。ここで、署名付き意見値X”ijが正しく生成されたものであれば、X”ij=(x”ij,e”ij)=(x,sig_i(x))であり、x”=deck_i(e”ij)=deck_i(sig_i(x))=xとなる。次に署名検証部15−P(m)は、x”ij=x”を満たすか否かを判定する。ここで、x”ij=x”を満たす場合には、署名検証部15−P(m)は、署名付き意見値X”ijが署名検証鍵kに対して正しい関係にある(署名正当)と判断する。一方、x”ij=x”を満たさない場合(x”ij≠x”)には、署名検証部15−P(m)は、署名付き意見値X”ijが署名検証鍵kに対して正しい関係にない(署名不正)と判断する。
例えば、n=3かつi=1の場合、署名検証部15−P(0)は、署名付き意見値X”12に対する署名検証を行ってその結果V(X”12)を出力し、n=3かつi=0の場合、署名検証部15−P(1)は、署名付き意見値X”02に対する署名検証を行ってその結果V(X”02)を出力し、n=3かつi=0の場合、署名検証部15−P(2)は、署名付き意見値X”01に対する署名検証を行ってその結果V(X”01)を出力する(図5B)。
≪ステップS13≫
インデックスiについての署名付き意見値X”ijおよび合意装置10−P(m)から出力されたインデックスiについての署名検証の結果V(X”ij)(ただし、j=0,…,n−1、j≠i)は判定部16−P(m)(第1判定部)に入力される。さらに判定部16−P(m)には、記憶部12−P(m)から読み出されたインデックスiについての署名付き意見値X’imが入力される。署名付き意見値X’im=(x’im,e’im)は前述のステップS4で合意装置10−P(i)から合意装置10−P(m)に送信され、記憶部12−P(m)に格納されたものである。判定部16−P(m)は、以下の(1−1)および(1−2)の少なく一方に該当するかを判定する。
(1−1)署名付き意見値X”ijのうち、少なくとも何れかの2個の署名付き意見値X”iy=(x”iy,e”iy)および署名付き意見値X”iz=(x”iz,e”iz)(ただし、y,z∈{0,…,i−1,i+1,…,n−1}かつy≠z)に対する署名検証の結果が合格(V(X”iy)=V(X”iz)=OK)であり、かつ、署名付き意見値X”iyに含まれた意見値x”iyと、署名付き意見値X”izに含まれた意見値x”izと、が互いに相違する(x”iy≠x”iz)。
(1−2)署名付き意見値X”iy=(x”iy,e”iy)に対する署名検証の結果が合格(V(X”iy)=OK)であり、かつ、署名付き意見値X”iyに含まれた意見値x”iyと、署名付き意見値X’im=(x’im,e’im)に含まれた意見値x’imと、が互いに相違する(x”iy≠x’im)。
ステップS13で(1−1)および(1−2)の少なく一方に該当すると判定された場合、判定部16−P(m)は、合意装置10−P(i)に不正があったと判定し、その旨を出力する。すなわち、(1−1)に該当するのは、X”iy=XiyかつX”iz=Xizであり、これらが合意装置10−P(i)で生成されたものである場合である。しかし、本来x”iy=x”iz=xであるはずがx”iy≠x”izとなっている。このような不正を行うことが可能なのは、署名を生成した合意装置10−P(i)のみである。よって、合意装置10−P(i)に不正があったと判定できる。また、(1−2)に該当するのは、署名付き意見値X”iy=Xiyであり、この署名が合意装置10−P(i)で生成されたものである場合である。しかし、本来x”iy=x’im=xであるはずがx”iy≠x’imとなっている。このような不正は合意装置10−P(i)が署名付き意見値X’iyを生成するときに行ったか、または、前述のステップS4で合意装置10−P(i)が合意装置10−P(m)に署名付き意見値X’imを送る際に行ったものである。よって、合意装置10−P(i)に不正があったと判定できる。合意装置10−P(i)に不正があった旨が出力された場合、検証処理が終了となる(ステップS15)。
≪ステップS14≫
一方、ステップS13で(1−1)および(1−2)のいずれにも該当しないと判定された場合、インデックスiについての署名付き意見値X”ijおよび合意装置10−P(m)から出力されたインデックスiについての署名検証の結果V(X”ij)(ただし、j=0,…,n−1、j≠i)が判定部17−P(m)(第2判定部)に入力される。判定部17−P(m)は、以下の(2−1)に該当するかを判定する。
(2−1)署名付き意見値X”ijのうち、少なくとも何れかの2個の署名付き意見値X”iy=(x”iy,e”iy)および署名付き意見値X”iz=(x”iz,e”iz)(ただし、y,z∈{0,…,i−1,i+1,…,n−1}かつy≠z)に対する署名検証の結果が不合格(V(X”iy)=V(X”iz)=NG)である。
ステップS14で(2−1)に該当すると判定された場合、判定部16−P(m)は、合意装置10−P(i)に不正があったと判定し、その旨を出力する。すなわち、(2−1)に該当するのは、合意装置10−P(i)がステップS3で不正な署名付き意見値X’iy≠(x,sig_i(x))および署名付き意見値X’iz≠(x,sig_i(x))を出力していたか、または、少なくとも二つの合意装置10−P(y)および10−P(z)がステップS5で不正な署名付き意見値X”iy≠X’iy=(x,sig_i(x))および署名付き意見値X”iz≠X’iz=(x,sig_i(x))を出力していた場合である。しかし、不正を行う合意装置の個数が1個以下であるとの前提のもとでは、後者は除外され、合意装置10−P(i)に不正があったと判定できる。合意装置10−P(i)に不正があった旨が出力された場合、検証処理が終了となる(ステップS15)。
≪ステップS16≫
ステップS14で(2−1)に該当しないと判定された場合、意見値出力部18−P(m)は、記憶部12−P(m)から何れかの署名付き意見値X”ij=(x”ij,e”ij)を抽出し、それが含む意見値x”ijを合意装置10−P(i)の正当な意見値xとして出力する(ステップS16)。
≪ステップS17≫
次に、制御部19−P(m)はmを除くすべてのi∈{0,…,n−1}について判定(ステップS12〜S16)を終了したかを判定する(ステップS17)。mを除くすべてのi∈{0,…,n−1}について判定が終了した場合には検証処理を終了する。一方、mを除くすべてのi∈{0,…,n−1}について判定が終了していない場合、制御部19−P(m)はインデックスiをまだ選択されていない値に更新して処理をステップS12に戻す(ステップS18)。
[変形例等]
なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の検証処理は不正を行う合意装置の個数が1個以下であることを前提としたが、この前提がなくても本発明を適用することは可能である。この場合には、ステップS13で(1−1)および(1−2)の少なく一方に該当すると判定されたときには合意装置10−P(i)に不正があったと判定することはできるが、ステップS14で(2−1)に該当すると判定された場合でも、直ちに合意装置10−P(i)に不正があったと判定することはできない。しかし、この場合でも少なくとも不正があったことを検知することができ、不正を行った装置をある程度特定することはできる。また、ステップS13およびS14の何れか一方のみが実行されてもよい。
また、判定部16−P(m)または17−P(m)が、さらに、ステップS4において通信部11−P(m)で署名付き意見値X’imが受け付けられなかった場合(入力されなかった場合)、または、受け付けられたX’imの形式が規定のものではなかった場合に、合意装置10−P(i)に不正があったと判定し、その旨を出力してもよい。また、上述の実施形態では公開鍵暗号方式を用いて署名を生成したが、共通鍵暗号方式を用いて署名を生成してもよい。
また、上述の実施形態では合意システム1が自律分散システムであったが、集中管理システムであってもよい。上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上記の各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されるのではなく、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
本発明は、例えば、秘密計算システムなどに利用できる。
1 合意システム
10−P(0),…,10−P(n−1) 合意装置

Claims (8)

  1. 合意プロトコルを実行する合意システムであって、
    n個の合意装置P(0),…,P(n−1)を有し、
    nが3以上の整数、i=0,…,n−1、j=0,…,n−1、m=0,…,n−1、i≠j、m≠iであり、
    合意装置P(i)は、
    意見を表す意見値xと、前記意見値xに対して付した署名sig_i(x)と、を含む署名付き意見値Xij=(x,sig_i(x))を、署名付き意見値X’ ij =(x’ ij ,e’ ij )として生成する署名生成部、または、少なくとも一部の要素が前記署名付き意見値Xijとは異なる情報を、署名付き意見値X’ij=(x’ij,e’ij)として生成する署名生成部と、
    前記署名付き意見値X’ij前記合意装置P(i)以外の合意装置P(j)に対して出力する第1出力部と、を含み、
    前記合意装置P(j)は、
    前記署名付き意見値X’ijを受け付ける第1入力部と、
    前記署名付き意見値X’ij を、署名付き意見値X” ij として前記合意装置P(j)以外の合意装置P(m)に対して出力する第2出力部、または、少なくとも一部の要素が前記署名付き意見値X’ijとは異なる情報を、署名付き意見値X”ijとして前記合意装置P(j)以外の合意装置P(m)に対して出力する第2出力部と、を含み、
    前記合意装置P(m)は、
    前記合意装置P(j)の前記第2出力部から出力された前記署名付き意見値X” ij =(x” ij ,e” ij )を受け付ける第2入力部と、
    前記署名付き意見値X” ij に対する署名検証を行う署名検証部と、
    前記署名付き意見値X” ij のうち、少なくとも何れかの2個の署名付き意見値X” iy =(x” iy ,e” iy )および署名付き意見値X” iz =(x” iz ,e” iz )(ただし、y,z∈{0,…,i−1,i+1,…,n−1}かつy≠z)に対する署名検証の結果が合格であり、かつ、前記署名付き意見値X” iy に含まれた意見値x” iy と、前記署名付き意見値X” iz に含まれた意見値x” iz と、が互いに相違する場合に、前記合意装置P(i)に不正があったと判定する第1判定部を含む、合意システム。
  2. 請求項1の合意システムであって、
    前記合意装置P(m)は
    前記署名付き意見値X”ijに対する署名検証を行う署名検証部と、
    前記署名付き意見値X”ijのうち、少なくとも何れかの2個の署名付き意見値X”iy=(x”iy,e”iy)および署名付き意見値X”iz=(x”iz,e”iz)(ただし、y,z∈{0,…,i−1,i+1,…,n−1}かつy≠z)に対する署名検証の結果が不合格である場合に、前記合意装置P(i)に不正があったと判定する第2判定部を含む、合意システム。
  3. 合意プロトコルを実行する合意システムであって、
    n個の合意装置P(0),…,P(n−1)を有し、
    nが3以上の整数、i=0,…,n−1、j=0,…,n−1、m=0,…,n−1、i≠j、m≠iであり、
    合意装置P(i)は、
    意見を表す意見値x と、前記意見値x に対して付した署名sig _i (x )と、を含む署名付き意見値X ij =(x ,sig _i (x ))を、署名付き意見値X’ ij =(x’ ij ,e’ ij )として生成する署名生成部、または、少なくとも一部の要素が前記署名付き意見値Xijとは異なる情報を、署名付き意見値X’ ij =(x’ ij ,e’ ij )として生成する署名生成部と、
    前記署名付き意見値X’ ij を前記合意装置P(i)以外の合意装置P(j)に対して出力する第1出力部と、を含み、
    前記合意装置P(j)は、
    前記署名付き意見値X’ ij を受け付ける第1入力部と、
    前記署名付き意見値X’ ij を、署名付き意見値X” ij として前記合意装置P(j)以外の合意装置P(m)に対して出力する第2出力部、または、少なくとも一部の要素が前記署名付き意見値X’ijとは異なる情報を、署名付き意見値X” ij として前記合意装置P(j)以外の合意装置P(m)に対して出力する第2出力部と、を含み、
    前記合意装置P(m)は、
    前記合意装置P(j)の前記第2出力部から出力された前記署名付き意見値X” ij =(x” ij ,e” ij )を受け付ける第2入力部と、
    前記署名付き意見値X” ij に対する署名検証を行う署名検証部と、
    前記署名付き意見値X” ij のうち、少なくとも何れかの2個の署名付き意見値X” iy =(x” iy ,e” iy )および署名付き意見値X” iz =(x” iz ,e” iz )(ただし、y,z∈{0,…,i−1,i+1,…,n−1}かつy≠z)に対する署名検証の結果が不合格である場合に、前記合意装置P(i)に不正があったと判定する第2判定部を含む、合意システム。
  4. 請求項1から3のいずれかの合意システムであって、
    前記署名検証部は、
    前記第2入力部に受け付けられた前記署名付き意見値X”ijが前記合意装置P(i)に対応する検証鍵kに対して正しい関係にある場合に、前記署名付き意見値X”ijに対する署名検証の結果が合格であると判断し、
    前記第2入力部に前記署名付き意見値X”ijが受け付けられなかった場合、前記第2入力部に受け付けられた前記署名付き意見値X”ijの形式が規定のものではなかった場合、または、前記第2入力部に受け付けられた前記署名付き意見値X”ijが前記検証鍵kに対して正しい関係にない場合に、前記署名付き意見値X”ijに対する署名検証の結果が不合格であると判断する、合意システム。
  5. 請求項1から4の何れかの前記合意システムが有する前記合意装置P(m)である合意装置。
  6. 合意プロトコルを実行するn個の合意装置P(0),…,P(n−1)を有する合意システムの合意装置P(m)であって、
    nが3以上の整数、i=0,…,n−1、j=0,…,n−1、m=0,…,n−1、i≠j、m≠iであり、
    前記合意装置P(m)以外の合意装置P(j)から出力された署名付き意見値X”ij=(x”ij,e”ij )を受け付ける第2入力部と、
    前記署名付き意見値X”ijに対して署名検証を行う署名検証部と、
    記署名付き意見値X”ijのうち、少なくとも何れかの2個の署名付き意見値X”iy=(x”iy,e”iy)および署名付き意見値X”iz=(x”iz,e”iz)(ただし、y,z∈{0,…,i−1,i+1,…,n−1}かつy≠z)に対する署名検証の結果が合格であり、かつ、前記署名付き意見値X”iyに含まれた意見値x”iyと、前記署名付き意見値X”izに含まれた意見値x”izと、が互いに相違する場合に、前記合意装置P(i)に不正があったと判定する第1判定部と、
    を有する合意装置。
  7. 請求項5または6の合意装置としてコンピュータを機能させるためのプログラム。
  8. 請求項5または6の合意装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2019537590A 2017-08-22 2018-08-16 合意システム、合意装置、プログラム、および記録媒体 Active JP6981472B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017159343 2017-08-22
JP2017159343 2017-08-22
PCT/JP2018/030441 WO2019039382A1 (ja) 2017-08-22 2018-08-16 合意システム、合意装置、プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JPWO2019039382A1 JPWO2019039382A1 (ja) 2020-09-03
JP6981472B2 true JP6981472B2 (ja) 2021-12-15

Family

ID=65438785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019537590A Active JP6981472B2 (ja) 2017-08-22 2018-08-16 合意システム、合意装置、プログラム、および記録媒体

Country Status (6)

Country Link
US (1) US11265155B2 (ja)
EP (1) EP3675087B1 (ja)
JP (1) JP6981472B2 (ja)
CN (1) CN111033599B (ja)
AU (1) AU2018320435B9 (ja)
WO (1) WO2019039382A1 (ja)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1188325A (ja) 1997-09-01 1999-03-30 Toyo Commun Equip Co Ltd ネットワークにおける認証システム
CN1833403B (zh) * 2003-08-08 2011-05-25 小川惠子 通信***、通信装置、通信方法
JP4901164B2 (ja) * 2005-09-14 2012-03-21 ソニー株式会社 情報処理装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
CN101374043B (zh) * 2007-08-24 2010-09-22 管海明 密钥协商的方法、加/解密的方法及签名/验证的方法
EP2363976A1 (en) * 2010-02-25 2011-09-07 Certicom Corp. Improved digital signature and key agreement schemes
JP5678804B2 (ja) * 2011-05-27 2015-03-04 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
JP5947295B2 (ja) * 2011-06-13 2016-07-06 パナソニック株式会社 端末装置、サーバ装置、コンテンツ記録制御システム、記録方法及び記録許否制御方法
US10938570B2 (en) * 2016-02-08 2021-03-02 Intel Corporation Technologies for remote attestation
US10686590B2 (en) * 2016-12-23 2020-06-16 Joseph Santilli Methods and systems for crowdsourcing an outcome to an issue
US11061887B2 (en) * 2016-12-30 2021-07-13 Guardtime Sa Event verification receipt system and methods
US10503614B2 (en) * 2017-04-21 2019-12-10 Vmware, Inc. Byzantine agreement using communications having linear complexity
US20190220768A1 (en) * 2017-05-16 2019-07-18 Peking University Shenzhen Graduate School Constructing topology for satisfying partition tolerance in consortium blockchain consensus
CN109118214B (zh) * 2017-06-26 2020-11-17 华为技术有限公司 运行智能合约的方法和装置
US10790964B2 (en) * 2017-11-17 2020-09-29 International Business Machines Corporation Peer voting on a blockchain
WO2019116187A1 (en) * 2017-12-13 2019-06-20 nChain Holdings Limited System and method for securely sharing cryptographic material
US11126659B2 (en) * 2018-12-24 2021-09-21 Graphen, Inc. System and method for providing a graph protocol for forming a decentralized and distributed graph database
GB2586997B (en) * 2019-09-11 2022-05-11 PQ Solutions Ltd Data communication between a group of users
KR102372718B1 (ko) * 2019-11-05 2022-03-11 한국전자통신연구원 발행인 익명성 인증서 시스템을 위한 분산화된 그룹 서명 방법

Also Published As

Publication number Publication date
AU2018320435B9 (en) 2021-06-17
US11265155B2 (en) 2022-03-01
EP3675087A4 (en) 2021-04-28
CN111033599A (zh) 2020-04-17
WO2019039382A1 (ja) 2019-02-28
JPWO2019039382A1 (ja) 2020-09-03
AU2018320435B2 (en) 2021-05-13
US20200252209A1 (en) 2020-08-06
CN111033599B (zh) 2023-04-28
EP3675087B1 (en) 2023-10-11
EP3675087A1 (en) 2020-07-01
AU2018320435A1 (en) 2020-02-27

Similar Documents

Publication Publication Date Title
EP3610405B1 (en) Program execution and data proof scheme using multiple key pair signatures
JP6511017B2 (ja) 契約合意方法、合意検証方法、契約合意装置および合意検証装置
CN109756582B (zh) 区块链网络中的信息记录方法、装置、节点及存储介质
CN107438002B (zh) 基于区块链的***以及***中的电子设备和方法
JP5790319B2 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
CN111066285A (zh) 基于sm2签名恢复公钥的方法
JP6950745B2 (ja) 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム
CN109361508A (zh) 数据传输方法、电子设备及计算机可读存储介质
CN112600675B (zh) 基于群签名的电子投票方法及装置、电子设备、存储介质
EP3779932A1 (en) Blockchain network and establishment method therefor
CN112347516A (zh) 基于区块链的资产证明方法及装置
US20210392177A1 (en) Secure multi-party random bit generation
JP2015513156A (ja) ビザンチン・フォールトトレランス及び閾値コイントス
JP2016225790A (ja) 認証装置、認証システム、認証方法、およびプログラム
CN115705601A (zh) 数据处理方法、装置、计算机设备及存储介质
WO2019186978A1 (ja) 電子取引システム、取引サーバ、検証サーバ、電子取引方法及びプログラム
CN110852887B (zh) 获取去中心化应用集群中的交易处理状态的方法及装置
JP6981472B2 (ja) 合意システム、合意装置、プログラム、および記録媒体
WO2013153628A1 (ja) 演算処理システムおよび演算結果認証方法
CN115022012B (zh) 一种数据传输方法、装置、***、设备及存储介质
CN114128213B (zh) 用于验证公钥的可靠性的装置、方法以及其程序
CN112507369A (zh) 基于区块链的业务处理方法、装置、可读介质及电子设备
CN112385181A (zh) 用于证明公钥的可靠性的装置、方法及程序
JP4523788B2 (ja) 無証拠投票システム、管理装置、集計装置及びプログラム
WO2020230831A1 (ja) 情報取引方法、情報利用者端末、及び、プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200218

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210506

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210531

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211101

R150 Certificate of patent or registration of utility model

Ref document number: 6981472

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150