(57)【要約】  合意プロトコルを実行する合意装置Ｐ（ｉ）（ただし、ｉ＝０，…，ｎ−１）は、意見を表す意見値ｘｉと、意見値ｘｉに対して付した署名ｓｉｇ＿ｉ（ｘｉ）と、を含む署名付き意見値Ｘｉｊ＝（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））または署名付き意見値Ｘｉｊとは異なる情報を署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）として生成して合意装置Ｐ（ｊ）（ただし、ｊ＝０，…，ｎ−１、ｉ≠ｊ）に対して出力する。合意装置Ｐ（ｊ）は、署名付き意見値Ｘ’ｉｊを受け付け、署名付き意見値Ｘ’ｉｊまたは署名付き意見値Ｘ’ｉｊとは異なる情報を、署名付き意見値Ｘ”ｉｊとして合意装置Ｐ（ｍ）（ただし、ｍ＝０，…，ｎ−１、ｍ≠ｉ、ｍ≠ｊ）に対して出力する。
2019039382.tif 000002
【特許請求の範囲】
【請求項１】
合意プロトコルを実行する合意システムであって、
ｎ個の合意装置Ｐ（０），…，Ｐ（ｎ−１）を有し、
ｎが３以上の整数、ｉ＝０，…，ｎ−１、ｊ＝０，…，ｎ−１、ｍ＝０，…，ｎ−１、ｉ≠ｊ、ｍ≠ｉ、ｍ≠ｊであり、
合意装置Ｐ（ｉ）は、
意見を表す意見値ｘｉと、前記意見値ｘｉに対して付した署名ｓｉｇ＿ｉ（ｘｉ）と、を含む署名付き意見値Ｘｉｊ＝（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））または前記署名付き意見値Ｘｉｊとは異なる情報を、署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）として生成する署名生成部と、
前記署名付き意見値Ｘ’ｉｊを合意装置Ｐ（ｊ）に対して出力する第１出力部と、を含み、
前記合意装置Ｐ（ｊ）は、
前記署名付き意見値Ｘ’ｉｊを受け付ける第１入力部と、
前記署名付き意見値Ｘ’ｉｊまたは前記署名付き意見値Ｘ’ｉｊとは異なる情報を、署名付き意見値Ｘ”ｉｊとして合意装置Ｐ（ｍ）に対して出力する第２出力部と、を含む、合意システム。
【請求項２】
請求項１の合意システムであって、
前記合意装置Ｐ（ｍ）は、
前記合意装置Ｐ（ｊ）の前記第２出力部から出力された前記署名付き意見値Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）、および、前記合意装置Ｐ（ｉ）の前記第１出力部から出力された署名付き意見値Ｘ’ｉｍ＝（ｘ’ｉｍ，ｅ’ｉｍ）を受け付ける第２入力部と、
前記署名付き意見値Ｘ”ｉｊに対する署名検証を行う署名検証部と、
（１）前記署名付き意見値Ｘ”ｉｊのうち、少なくとも何れかの２個の署名付き意見値Ｘ”ｉｙ＝（ｘ”ｉｙ，ｅ”ｉｙ）および署名付き意見値Ｘ”ｉｚ＝（ｘ”ｉｚ，ｅ”ｉｚ）（ただし、ｙ，ｚ∈｛０，…，ｉ−１，ｉ＋１，…，ｎ−１｝かつｙ≠ｚ）に対する署名検証の結果が合格であり、かつ、前記署名付き意見値Ｘ”ｉｙに含まれた意見値ｘ”ｉｙと、前記署名付き意見値Ｘ”ｉｚに含まれた意見値ｘ”ｉｚと、が互いに相違する場合、および／または、（２）前記署名付き意見値Ｘ”ｉｙ＝（ｘ”ｉｙ，ｅ”ｉｙ）に対する署名検証の結果が合格であり、かつ、前記署名付き意見値Ｘ”ｉｙに含まれた意見値ｘ”ｉｙと、前記署名付き意見値Ｘ’ｉｍ＝（ｘ’ｉｍ，ｅ’ｉｍ）に含まれた意見値ｘ’ｉｍと、が互いに相違する場合に、前記合意装置Ｐ（ｉ）に不正があったと判定する第１判定部を含む、合意システム。
【請求項３】
請求項１または２の合意システムであって、
前記合意装置Ｐ（ｍ）は、
前記合意装置Ｐ（ｊ）の前記第２出力部から出力された前記署名付き意見値Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）を受け付ける第２入力部と、
前記署名付き意見値Ｘ”ｉｊに対する署名検証を行う署名検証部と、
前記署名付き意見値Ｘ”ｉｊのうち、少なくとも何れかの２個の署名付き意見値Ｘ”ｉｙ＝（ｘ”ｉｙ，ｅ”ｉｙ）および署名付き意見値Ｘ”ｉｚ＝（ｘ”ｉｚ，ｅ”ｉｚ）（ただし、ｙ，ｚ∈｛０，…，ｉ−１，ｉ＋１，…，ｎ−１｝かつｙ≠ｚ）に対する署名検証の結果が不合格である場合に、前記合意装置Ｐ（ｉ）に不正があったと判定する第２判定部を含む、合意システム。
【請求項４】
請求項２または３の合意システムであって、
前記署名検証部は、
前記第２入力部に受け付けられた前記署名付き意見値Ｘ”ｉｊが前記合意装置Ｐ（ｉ）に対応する検証鍵ｋｉに対して正しい関係にある場合に、前記署名付き意見値Ｘ”ｉｊに対する署名検証の結果が合格であると判断し、
前記第２入力部に前記署名付き意見値Ｘ”ｉｊが受け付けられなかった場合、前記第２入力部に受け付けられた前記署名付き意見値Ｘ”ｉｊの形式が規定のものではなかった場合、または、前記第２入力部に受け付けられた前記署名付き意見値Ｘ”ｉｊが前記検証鍵ｋｉに対して正しい関係にない場合に、前記署名付き意見値Ｘ”ｉｊに対する署名検証の結果が不合格であると判断する、合意システム。
【請求項５】
請求項１から４の何れかの前記合意システムが有する合意装置。
【請求項６】
合意プロトコルを実行するｎ個の合意装置Ｐ（０），…，Ｐ（ｎ−１）を有する合意システムの合意装置Ｐ（ｍ）であって、
ｎが３以上の整数、ｉ＝０，…，ｎ−１、ｊ＝０，…，ｎ−１、ｍ＝０，…，ｎ−１、ｉ≠ｊ、ｍ≠ｉ、ｍ≠ｊであり、
合意装置Ｐ（ｊ）から出力された署名付き意見値Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）、および、合意装置Ｐ（ｉ）から出力された署名付き意見値Ｘ’ｉｍ＝（ｘ’ｉｍ，ｅ’ｉｍ）を受け付ける第２入力部と、
前記署名付き意見値Ｘ”ｉｊに対して署名検証を行う署名検証部と、
（１）前記署名付き意見値Ｘ”ｉｊのうち、少なくとも何れかの２個の署名付き意見値Ｘ”ｉｙ＝（ｘ”ｉｙ，ｅ”ｉｙ）および署名付き意見値Ｘ”ｉｚ＝（ｘ”ｉｚ，ｅ”ｉｚ）（ただし、ｙ，ｚ∈｛０，…，ｉ−１，ｉ＋１，…，ｎ−１｝かつｙ≠ｚ）に対する署名検証の結果が合格であり、かつ、前記署名付き意見値Ｘ”ｉｙに含まれた意見値ｘ”ｉｙと、前記署名付き意見値Ｘ”ｉｚに含まれた意見値ｘ”ｉｚと、が互いに相違する場合、および／または、（２）前記署名付き意見値Ｘ”ｉｙ＝（ｘ”ｉｙ，ｅ”ｉｙ）に対する署名検証の結果が合格であり、かつ、前記署名付き意見値Ｘ”ｉｙに含まれた意見値ｘ”ｉｙと、前記署名付き意見値Ｘ’ｉｍ＝（ｘ’ｉｍ，ｅ’ｉｍ）に含まれた意見値ｘ’ｉｍと、が互いに相違する場合に、前記合意装置Ｐ（ｉ）に不正があったと判定する第１判定部と、
を有する合意装置。
【請求項７】
合意プロトコルを実行するｎ個の合意装置Ｐ（０），…，Ｐ（ｎ−１）を有する合意システムの合意装置Ｐ（ｍ）であって、
ｎが３以上の整数、ｉ＝０，…，ｎ−１、ｊ＝０，…，ｎ−１、ｍ＝０，…，ｎ−１、ｉ≠ｊ、ｍ≠ｉ、ｍ≠ｊであり、
合意装置Ｐ（ｊ）から出力された署名付き意見値Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）を受け付ける第２入力部と、
前記署名付き意見値Ｘ”ｉｊに対して署名検証を行う署名検証部と、
前記署名付き意見値Ｘ”ｉｊのうち、少なくとも何れかの２個の署名付き意見値Ｘ”ｉｙ＝（ｘ”ｉｙ，ｅ”ｉｙ）および署名付き意見値Ｘ”ｉｚ＝（ｘ”ｉｚ，ｅ”ｉｚ）（ただし、ｙ，ｚ∈｛０，…，ｉ−１，ｉ＋１，…，ｎ−１｝かつｙ≠ｚ）に対する署名検証の結果が不合格である場合に、前記合意装置Ｐ（ｉ）に不正があったと判定する第２判定部と、
を有する合意装置。
【請求項８】
請求項５から７の何れかの合意装置としてコンピュータを機能させるためのプログラム。
【請求項９】
請求項５から７の何れかの合意装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号技術に関し、特に合意プロトコルに関する。
【背景技術】
【０００２】
自律分散システムでは複数の装置がそれぞれ独立に処理を行う。これら複数の装置の処理内容は互いに整合のとれたものでなければならない。これを実現する技術に合意プロトコルがある（例えば、非特許文献１等参照）。合意プロトコルでは、複数の装置が自らの意見（例えば、処理順序、リクエストの有無、リクエストの内容など）を表す値（意見値）を互いに提供し、それらを最終合意関数に入力してシステム全体として整合のとれた合意結果（例えば、処理順序、リクエストの有無、リクエストの内容など）を得る。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Zuzana Beerliova-Trubiniova, Martin Hirt, and Micha Riser, “Efficient Byzantine Agreement with Faulty Minority,” ASIACRYPT 2007, LNCS 4833, pp. 393 - 409, 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
合意プロトコルでは、何れかの装置が意図的または偶発的に不正な意見値を他の装置に提供したり、意見値を提供しなかったりする場合が想定される。本発明の目的は、合意プロトコルにおいて不正な処理を行った装置をある程度特定することである。
【課題を解決するための手段】
【０００５】
合意プロトコルを実行する合意システムは、ｎ個の合意装置Ｐ（０），…，Ｐ（ｎ−１）を有する。ただし、ｎが３以上の整数、ｉ＝０，…，ｎ−１、ｊ＝０，…，ｎ−１、ｍ＝０，…，ｎ−１、ｉ≠ｊ、ｍ≠ｉ、ｍ≠ｊである。合意装置Ｐ（ｉ）は、意見を表す意見値ｘｉと、当該意見値ｘｉに対して付した署名ｓｉｇ＿ｉ（ｘｉ）と、を含む署名付き意見値Ｘｉｊ＝（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））または署名付き意見値Ｘｉｊとは異なる情報を、署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）として生成して合意装置Ｐ（ｊ）に対して出力する。合意装置Ｐ（ｊ）は、署名付き意見値Ｘ’ｉｊを受け付け、署名付き意見値Ｘ’ｉｊまたは署名付き意見値Ｘ’ｉｊとは異なる情報を、署名付き意見値Ｘ”ｉｊとして合意装置Ｐ（ｍ）に対して出力する。
【発明の効果】
【０００６】
これにより、合意プロトコルにおいて不正な処理を行った装置をある程度特定できる。
【図面の簡単な説明】
【０００７】
【図１】図１は実施形態の合意システムを例示したブロック図である。
【図２】図２は実施形態の合意装置を例示したブロック図である。
【図３】図３は実施形態の合意方法の提供処理を例示したフロー図である。
【図４】図４は実施形態の合意方法の検証処理を例示したフロー図である。
【図５】図５Ａおよび図５Ｂは実施形態の合意方法を例示した図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明の実施形態を説明する。
＜構成＞
図１に例示するように、本形態の合意プロトコルを実行する合意システム１は、ネットワークを通じて通信可能なｎ個の合意装置１０−Ｐ（０），…，１０−Ｐ（ｎ−１）を有する自律分散システムである。ただし、ｎが３以上の整数（例えば、ｎ≧４）、ｉ＝０，…，ｎ−１、ｊ＝０，…，ｎ−１、ｒ＝０，…，ｎ−１、ｍ＝０，…，ｎ−１、ｉ≠ｊ、ｍ≠ｉ、ｍ≠ｊである。図２に例示するように、合意装置１０−Ｐ（ｒ）は、通信部１１−Ｐ（ｒ）、記憶部１２−Ｐ（ｒ）、共有部１３−Ｐ（ｒ）、署名生成部１４−Ｐ（ｒ）、署名検証部１５−Ｐ（ｒ）、判定部１６−Ｐ（ｒ）、判定部１７−Ｐ（ｒ）、意見値出力部１８−Ｐ（ｒ）、および制御部１９−Ｐ（ｒ）を有する。各合意装置１０−Ｐ（ｒ）は、制御部１９−Ｐ（ｒ）の制御に基づいて各処理を実行する。
【０００９】
＜提供処理＞
次に、図３および図５を用い、各合意装置１０−Ｐ（ｒ）（ただし、ｒ＝０，…，ｎ−１）が自らの意見を表す意見値ｘｒを提供する提供処理を説明する。意見値ｘｒは合意装置１０−Ｐ（０），…，１０−Ｐ（ｎ−１）で互いに整合させる必要のある処理内容を表す。意見値ｘｒの一例は処理順序を表す意見を表す値である。例えば、合意装置１０−Ｐ（Ａ）から「値Ｄを１１に更新する」というリクエストＲＡが送信され、合意装置１０−Ｐ（Ｂ）から「値Ｄを９に更新する」というリクエストＲＢが送信される場合（ただし、Ａ，Ｂ∈｛０，…，ｎ−１｝）、リクエストＲＡを処理してからリクエストＲＢを処理するといった意見を表す意見値ｘｒ＝（（Ａ，ｕｐｄａｔｅ，Ｄ，１１），（Ｂ，ｕｐｄａｔｅ，Ｄ，９））、およびリクエストＲＢを処理してからリクエストＲＡを処理するといった意見を表す意見値ｘｒ＝（（Ｂ，ｕｐｄａｔｅ，Ｄ，９），（Ａ，ｕｐｄａｔｅ，Ｄ，１１））を例示できる。このような意見値ｘｒに対して合意がなされれば、システム全体で処理順序を統一できる。他の意見値ｘｒの例はリクエストが送られたことを表す値である。例えば、合意装置１０−Ｐ（Ａ）から「値Ｄを１１に更新する」というリクエストＲＡが送信され、合意装置１０−Ｐ（Ｂ）から「値Ｄを９に更新する」というリクエストＲＢが送信される場合、リクエストＲＡおよびＲＢが送られたことを表す意見値ｘｒ＝（（Ａ，ｕｐｄａｔｅ，Ｄ，１１），（Ｂ，ｕｐｄａｔｅ，Ｄ，９））、リクエストＲＡしか送られなかったことを表す意見値ｘｒ＝（Ａ，ｕｐｄａｔｅ，Ｄ，１１）などを例示できる。このような意見値ｘｒを用いることにより、リクエストが各装置に正しく提供されたことを確認できる。他の意見値ｘｒの例はリクエストの内容を表す値である。例えば、合意装置１０−Ｐ（Ａ）から「値Ｄを１１に更新する」というリクエストＲＡが送信される場合、「値Ｄを１１に更新する」という内容のリクエストＲＡが送られたことを表すｘｒ＝（Ａ，ｕｐｄａｔｅ，Ｄ，１１）や「値Ｄを９に更新する」という内容のリクエストＲＡが送られたことを表すｘｒ＝（Ａ，ｕｐｄａｔｅ，Ｄ，９）を例示できる。このような意見値ｘｒを用いることにより、システム全体で各合意装置に同一のリクエストが提供されたかを確認できる。
【００１０】
≪ステップＳ１≫
前提として、各合意装置１０−Ｐ（ｉ）（ただし、ｉ＝０，…，ｎ−１）には、署名生成のための署名生成鍵ｓｋｉ、および署名生成鍵ｓｋｉを用いて生成された署名を検証するための署名検証鍵ｋｉが設定されている。署名生成鍵ｓｋｉおよび署名検証鍵ｋｉは合意装置１０−Ｐ（ｉ）の記憶部１２−Ｐ（ｉ）に格納されている。署名生成鍵ｓｋｉは合意装置１０−Ｐ（ｉ）の秘密情報であり、署名検証鍵ｋｉは公開情報である。署名生成鍵ｓｋｉの例は公開鍵暗号方式（例えば、ＲＳＡ）に則った秘密鍵であり、署名検証鍵ｋｉの例は当該公開鍵暗号方式に則った公開鍵である。この場合の署名生成鍵ｓｋｉおよび署名検証鍵ｋｉは公開鍵暗号方式における鍵ペアである。この前提の下、合意装置１０−Ｐ（ｉ）（ただし、ｉ＝０，…，ｎ−１）の共有部１３−Ｐ（ｉ）が、合意装置１０−Ｐ（ｉ）（ただし、ｉ＝０，…，ｎ−１）以外の合意装置１０−Ｐ（ｊ）（ただし、ｊ＝０，…，ｎ−１、ｊ≠ｉ）の共有部１３−Ｐ（ｉ）との間で署名検証鍵ｋｉを共有する。共有部１３−Ｐ（ｉ）と共有部１３−Ｐ（ｊ）との間での署名検証鍵ｋｉの共有は、例えば、共有部１３−Ｐ（ｉ）から共有部１３−Ｐ（ｊ）に署名検証鍵ｋｉまたは署名検証鍵ｋｉに対応する値を送信することで行われる。あるいは、ネットワーク上の公開されたサーバ装置に署名検証鍵ｋｉまたは署名検証鍵ｋｉに対応する情報を格納しておき、各共有部１３−Ｐ（ｊ）がこのサーバ装置から署名検証鍵ｋｉまたは署名検証鍵ｋｉに対応する情報を受信してもよい。署名検証鍵ｋｉは合意装置１０−Ｐ（ｊ）の記憶部１２−Ｐ（ｊ）に格納される。これにより、各合意装置１０−Ｐ（ｊ）（ただし、ｊ＝０，…，ｎ−１、ｊ≠ｉ）の記憶部１２−Ｐ（ｊ）には、自らの署名生成鍵ｓｋｊおよび署名検証鍵ｋｊに加え、ｎ−１個の他の合意装置１０−Ｐ（ｉ）の署名検証鍵ｋｉ（ただし、ｉ＝０，…，ｎ−１、ｉ≠ｊ）が格納される。例えばｎ＝３の場合、合意装置１０−Ｐ（０）の記憶部１２−Ｐ（０）にｓｋ０，ｋ０，ｋ１，ｋ２が格納され、合意装置１０−Ｐ（１）の記憶部１２−Ｐ（１）にｓｋ１，ｋ０，ｋ１，ｋ２が格納され、合意装置１０−Ｐ（２）の記憶部１２−Ｐ（２）にｓｋ２，ｋ０，ｋ１，ｋ２が格納される（図５Ａ）。次にステップＳ２に進む。
【００１１】
≪ステップＳ２≫
合意装置１０−Ｐ（ｉ）（ただし、ｉ＝０，…，ｎ−１）の署名生成部１４−Ｐ（ｉ）には、意見を表す意見値ｘｉ、ならびに記憶部１２−Ｐ（ｉ）から読み込んだ署名生成鍵ｓｋｉが入力される。合意装置１０−Ｐ（ｉ）は正当な処理を行うかもしれないし、不正な処理を行うかもしれない。合意装置１０−Ｐ（ｉ）が正当な処理を行う場合、署名生成部１４−Ｐ（ｉ）は、意見値ｘｉと、署名生成鍵ｓｋｉを用いて意見値ｘｉに対して付した署名ｓｉｇ＿ｉ（ｘｉ）と、を含む署名付き意見値Ｘｉｊ＝（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））を生成し、当該意見値Ｘｉｊを署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）として出力する。なお、署名生成鍵ｓｋｉが公開鍵暗号方式に則った秘密鍵である場合、署名ｓｉｇ＿ｉ（ｘｉ）は、例えば署名生成鍵ｓｋｉを用い、公開鍵暗号方式に則って意見値ｘｉを暗号化して得られる暗号文である。一方、合意装置１０−Ｐ（ｉ）が不当な処理を行う場合、署名生成部１４−Ｐ（ｉ）は、署名付き意見値Ｘｉｊとは異なる情報を、署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）として生成して出力する。署名付き意見値Ｘ’ｉｊは通信部１１−Ｐ（ｉ）に送られる。
【００１２】
≪ステップＳ３≫
正当な処理を行う合意装置１０−Ｐ（ｉ）（ただし、ｉ＝０，…，ｎ−１）の通信部１１−Ｐ（ｉ）（第１出力部）は、ｎ−１個の合意装置１０−Ｐ（ｊ）（ただし、ｊ＝０，…，ｎ−１、ｊ≠ｉ）に対して署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）を出力する。例えば、ｎ＝３の場合、合意装置１０−Ｐ（０）は署名付き意見値Ｘ’０１を合意装置１０−Ｐ（１）に送信し、署名付き意見値Ｘ’０２を合意装置１０−Ｐ（２）に送信し、合意装置１０−Ｐ（１）は署名付き意見値Ｘ’１０を合意装置１０−Ｐ（０）に送信し、署名付き意見値Ｘ’１２を合意装置１０−Ｐ（２）に送信し、合意装置１０−Ｐ（２）は署名付き意見値Ｘ’２０を合意装置１０−Ｐ（０）に送信し、署名付き意見値Ｘ’２１を合意装置１０−Ｐ（１）に送信する（図５Ａ）。合意装置１０−Ｐ（ｉ）が正当な処理を実行する場合、Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）＝Ｘｉｊ＝（ｘｉ，ｓｉｇ＿ｉ（ｘｉ）））である。不正な処理を行う合意装置１０−Ｐ（ｉ）の通信部１１−Ｐ（ｉ）は署名付き意見値Ｘｉｊ＝（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））とは異なる情報を署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）として合意装置１０−Ｐ（ｊ）に対して出力する。すなわち、通信部１１−Ｐ（ｉ）は、署名付き意見値Ｘｉｊ＝（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））または署名付き意見値Ｘｉｊとは異なる情報を、署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）として合意装置１０−Ｐ（ｊ）に対して出力する。不正な処理を行う合意装置１０−Ｐ（ｉ）の通信部１１−Ｐ（ｉ）は、署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）を、少なくとも一部の合意装置１０−Ｐ（ｊ）に出力しないかもしれない。
【００１３】
≪ステップＳ４≫
合意装置１０−Ｐ（ｉ）から出力された署名付き意見値Ｘ’ｉｊは、ネットワークを通じて合意装置１０−Ｐ（ｊ）（ただし、ｊ＝０，…，ｎ−１、ｊ≠ｉ）に送信される。署名付き意見値Ｘ’ｉｊは、合意装置１０−Ｐ（ｊ）の通信部１１−Ｐ（ｊ）（第１入力部）に入力され（受け付けられ）、記憶部１２−Ｐ（ｊ）に格納される。例えば、ｎ＝３の場合、合意装置１０−Ｐ（０）の記憶部１２−Ｐ（０）に署名付き意見値Ｘ’１０および署名付き意見値Ｘ’２０が格納され、合意装置１０−Ｐ（１）の記憶部１２−Ｐ（１）に署名付き意見値Ｘ’０１および署名付き意見値Ｘ’２１が格納され、合意装置１０−Ｐ（２）の記憶部１２−Ｐ（２）に署名付き意見値Ｘ’０２および署名付き意見値Ｘ’１２が格納される（図５Ｂ）。
【００１４】
≪ステップＳ５≫
正当な処理を行う合意装置１０−Ｐ（ｊ）（ただし、ｊ＝０，…，ｎ−１、ｊ≠ｉ）の通信部１１−Ｐ（ｊ）（第２出力部）は、署名付き意見値Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）（ただし、ｉ＝０，…，ｎ−１、ｉ≠ｊ）をｎ−１個の合意装置１０−Ｐ（ｍ）（ただし、ｍ＝０，…，ｎ−１、ｍ≠ｊ）に対して出力する。合意装置１０−Ｐ（ｊ）が正当な処理を実行する場合、署名付き意見値Ｘ”ｉｊは記憶部１２−Ｐ（ｊ）に格納されたＸ’ｉｊであり、Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）＝Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）である。ただし、何れかの合意装置１０−Ｐ（ｊ）が不正な処理を行う可能性があり、不正な処理を行う合意装置１０−Ｐ（ｊ）の通信部１１−Ｐ（ｊ）は署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）とは異なる情報を署名付き意見値Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）として合意装置１０−Ｐ（ｍ）に対して出力する。すなわち、通信部１１−Ｐ（ｊ）は、署名付き意見値Ｘ’ｉｊ＝（ｘ’ｉｊ，ｅ’ｉｊ）または署名付き意見値Ｘ’ｉｊとは異なる情報を、署名付き意見値Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）として合意装置１０−Ｐ（ｍ）に対して出力する。通信部１１−Ｐ（ｊ）から合意装置１０−Ｐ（ｍ）に対して出力されるｎ−１個の署名付き意見値Ｘ”０ｊ，…，Ｘ”（ｊ−１）ｊ，Ｘ”（ｊ＋１）ｊ，…，Ｘ”（ｎ−１）ｊの集合を確認データＣｊ＝Ｘ”０ｊ，…，Ｘ”（ｊ−１）ｊ，Ｘ”（ｊ＋１）ｊ，…，Ｘ”（ｎ−１）ｊと表現する。例えば、ｎ＝３の場合、通信部１１−Ｐ（０）は、確認データＣ０＝Ｘ”１０，Ｘ”２０を合意装置１０−Ｐ（１）およびＰ（２）に対して出力し、通信部１１−Ｐ（１）は、確認データＣ１＝Ｘ”０１，Ｘ”２１を合意装置１０−Ｐ（０）およびＰ（２）に対して出力し、通信部１１−Ｐ（２）は、確認データＣ２＝Ｘ”０２，Ｘ”１２を合意装置１０−Ｐ（０）およびＰ（１）に対して出力する（図５Ｂ）。不正な処理を行う合意装置１０−Ｐ（ｊ）（ただし、ｊ＝０，…，ｎ−１、ｊ≠ｉ）の通信部１１−Ｐ（ｊ）は、確認データＣｊを、少なくとも一部の合意装置１０−Ｐ（ｍ）に対して出力しないかもしれない。
【００１５】
≪ステップＳ６≫
通信部１１−Ｐ（ｊ）から出力された確認データＣｊは、ネットワークを通じて合意装置１０−Ｐ（ｍ）（ただし、ｍ＝０，…，ｎ−１、ｍ≠ｊ）に送信される。確認データＣｊは、合意装置１０−Ｐ（ｍ）の通信部１１−Ｐ（ｍ）（第２入力部）に入力され（受け付けられ）、記憶部１２−Ｐ（ｍ）に格納される。例えば、ｎ＝３の場合、記憶部１２−Ｐ（０）に確認データＣ１＝Ｘ”０１，Ｘ”２１およびＣ２＝Ｘ”０２，Ｘ”１２が格納され、記憶部１２−Ｐ（１）に確認データＣ０＝Ｘ”１０，Ｘ”２０およびＣ２＝Ｘ”０２，Ｘ”１２が格納され、記憶部１２−Ｐ（２）に確認データＣ０＝Ｘ”１０，Ｘ”２０およびＣ１＝Ｘ”０１，Ｘ”２１が格納される（図５Ｂ）。
【００１６】
＜検証処理＞
次に、図４および図５Ｂを用い、各合意装置１０−Ｐ（ｍ）（ただし、ｍ＝０，…，ｎ−１）が行う意見値の検証処理を説明する。ただし、不正を行う合意装置の個数が１個以下であることを前提とする。検証処理は上述した提供処理の後に実行される。検証処理は提供処理が行われたことを契機として実行されてもよいし、提供処理の後の所定のタイミングで実行されてもよい。検証処理はすべての合意装置１０−Ｐ（０），…，１０−Ｐ（ｎ−１）が行ってもよいし、その一部のみが行ってもよい。
【００１７】
≪ステップＳ１１≫
まず、合意装置１０−Ｐ（ｍ）の制御部１９−Ｐ（ｍ）が判定対象に対応するインデックスｉ∈｛０，…，ｎ−１｝を初期化する。例えば、ｍ≠０ならば制御部１９−Ｐ（ｍ）はｉ＝０に初期化し、ｍ≠０ならば制御部１９−Ｐ（ｍ）はｉ＝１に初期化する。
【００１８】
≪ステップＳ１２≫
合意装置１０−Ｐ（ｍ）の署名検証部１５−Ｐ（ｍ）は、記憶部１２−Ｐ（ｍ）から、確認データＣ０，…，Ｃｎ−１に含まれる、インデックスｉについての署名付き意見値Ｘ”ｉ０，…，Ｘ”ｉ（ｉ―１），Ｘ”ｉ（ｉ＋１），…，Ｘ”ｉ（ｎ−１）、ならびに署名検証鍵ｋｉ（ただし、ｉ＝０，…，ｎ−１，ｉ≠ｊ）を読み込み、これらを用いて署名付き意見値Ｘ”ｉ０，…，Ｘ”ｉ（ｉ―１），Ｘ”ｉ（ｉ＋１），…，Ｘ”ｉ（ｎ−１）のそれぞれに対する署名検証を行い、それらの結果Ｖ（Ｘ”ｉ０），…，Ｖ（Ｘ”ｉ（ｉ―１）），Ｖ（Ｘ”ｉ（ｉ＋１）），…，Ｖ（Ｘ”ｉ（ｎ−１））を出力する。すなわち、署名検証部１５−Ｐ（ｍ）は、通信部１１−Ｐ（ｍ）（第２入力部）で受け付けられた（入力された）署名付き意見値Ｘ”ｉｊが合意装置１０−Ｐ（ｉ）に対応する署名検証鍵ｋｉに対して正しい関係にある場合（署名正当の場合）に、署名付き意見値Ｘ”ｉｊに対する署名検証の結果が合格であると判定し、その旨を表す結果Ｖ（Ｘ”ｉｊ）＝ＯＫを出力する。それ以外の場合、署名検証部１５−Ｐ（ｍ）は、署名付き意見値Ｘ”ｉｊに対する署名検証の結果が不合格であると判定し、その旨を表す結果Ｖ（Ｘ”ｉｊ）＝ＮＧを出力する。例えば、署名検証部１５−Ｐ（ｍ）は、通信部１１−Ｐ（ｍ）に署名付き意見値Ｘ”ｉｊが受け付けられなかった場合（入力されなかった場合）、通信部１１−Ｐ（ｍ）受け付けられた署名付き意見値Ｘ”ｉｊの形式が規定のものではなかった場合、または、通信部１１−Ｐ（ｍ）に受け付けられた署名付き意見値Ｘ”ｉｊが署名検証鍵ｋｉに対して正しい関係にない場合（署名不正の場合）に、署名付き意見値Ｘ”ｉｊに対する署名検証の結果が不合格であると判定し、その旨を表すＶ（Ｘ”ｉｊ）＝ＮＧを出力する。
【００１９】
署名検証鍵ｋｉが公開鍵暗号方式に則った公開鍵である場合、署名付き意見値Ｘ”ｉｊが署名検証鍵ｋｉに対して正しい関係にあるか否か（署名正当か署名不正か）の判定は、例えば次のように行う。まず、署名検証部１５−Ｐ（ｍ）は、前述の公開鍵暗号方式に則って、署名付き意見値Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）に含まれた暗号文ｅ”ｉｊを、署名検証鍵ｋｉを用いて復号して復号結果ｘ”ｉ＝ｄｅｃｋ＿ｉ（ｅ”ｉｊ）を得る。ここで、署名付き意見値Ｘ”ｉｊが正しく生成されたものであれば、Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）＝（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））であり、ｘ”ｉ＝ｄｅｃｋ＿ｉ（ｅ”ｉｊ）＝ｄｅｃｋ＿ｉ（ｓｉｇ＿ｉ（ｘｉ））＝ｘｉとなる。次に署名検証部１５−Ｐ（ｍ）は、ｘ”ｉｊ＝ｘ”ｉを満たすか否かを判定する。ここで、ｘ”ｉｊ＝ｘ”ｉを満たす場合には、署名検証部１５−Ｐ（ｍ）は、署名付き意見値Ｘ”ｉｊが署名検証鍵ｋｉに対して正しい関係にある（署名正当）と判断する。一方、ｘ”ｉｊ＝ｘ”ｉを満たさない場合（ｘ”ｉｊ≠ｘ”ｉ）には、署名検証部１５−Ｐ（ｍ）は、署名付き意見値Ｘ”ｉｊが署名検証鍵ｋｉに対して正しい関係にない（署名不正）と判断する。
【００２０】
例えば、ｎ＝３かつｉ＝１の場合、署名検証部１５−Ｐ（０）は、署名付き意見値Ｘ”１２に対する署名検証を行ってその結果Ｖ（Ｘ”１２）を出力し、ｎ＝３かつｉ＝０の場合、署名検証部１５−Ｐ（１）は、署名付き意見値Ｘ”０２に対する署名検証を行ってその結果Ｖ（Ｘ”０２）を出力し、ｎ＝３かつｉ＝０の場合、署名検証部１５−Ｐ（２）は、署名付き意見値Ｘ”０１に対する署名検証を行ってその結果Ｖ（Ｘ”０１）を出力する（図５Ｂ）。
【００２１】
≪ステップＳ１３≫
インデックスｉについての署名付き意見値Ｘ”ｉｊおよび合意装置１０−Ｐ（ｍ）から出力されたインデックスｉについての署名検証の結果Ｖ（Ｘ”ｉｊ）（ただし、ｊ＝０，…，ｎ−１、ｊ≠ｉ）は判定部１６−Ｐ（ｍ）（第１判定部）に入力される。さらに判定部１６−Ｐ（ｍ）には、記憶部１２−Ｐ（ｍ）から読み出されたインデックスｉについての署名付き意見値Ｘ’ｉｍが入力される。署名付き意見値Ｘ’ｉｍ＝（ｘ’ｉｍ，ｅ’ｉｍ）は前述のステップＳ４で合意装置１０−Ｐ（ｉ）から合意装置１０−Ｐ（ｍ）に送信され、記憶部１２−Ｐ（ｍ）に格納されたものである。判定部１６−Ｐ（ｍ）は、以下の（１−１）および（１−２）の少なく一方に該当するかを判定する。
（１−１）署名付き意見値Ｘ”ｉｊのうち、少なくとも何れかの２個の署名付き意見値Ｘ”ｉｙ＝（ｘ”ｉｙ，ｅ”ｉｙ）および署名付き意見値Ｘ”ｉｚ＝（ｘ”ｉｚ，ｅ”ｉｚ）（ただし、ｙ，ｚ∈｛０，…，ｉ−１，ｉ＋１，…，ｎ−１｝かつｙ≠ｚ）に対する署名検証の結果が合格（Ｖ（Ｘ”ｉｙ）＝Ｖ（Ｘ”ｉｚ）＝ＯＫ）であり、かつ、署名付き意見値Ｘ”ｉｙに含まれた意見値ｘ”ｉｙと、署名付き意見値Ｘ”ｉｚに含まれた意見値ｘ”ｉｚと、が互いに相違する（ｘ”ｉｙ≠ｘ”ｉｚ）。
（１−２）署名付き意見値Ｘ”ｉｙ＝（ｘ”ｉｙ，ｅ”ｉｙ）に対する署名検証の結果が合格（Ｖ（Ｘ”ｉｙ）＝ＯＫ）であり、かつ、署名付き意見値Ｘ”ｉｙに含まれた意見値ｘ”ｉｙと、署名付き意見値Ｘ’ｉｍ＝（ｘ’ｉｍ，ｅ’ｉｍ）に含まれた意見値ｘ’ｉｍと、が互いに相違する（ｘ”ｉｙ≠ｘ’ｉｍ）。
【００２２】
ステップＳ１３で（１−１）および（１−２）の少なく一方に該当すると判定された場合、判定部１６−Ｐ（ｍ）は、合意装置１０−Ｐ（ｉ）に不正があったと判定し、その旨を出力する。すなわち、（１−１）に該当するのは、Ｘ”ｉｙ＝ＸｉｙかつＸ”ｉｚ＝Ｘｉｚであり、これらが合意装置１０−Ｐ（ｉ）で生成されたものである場合である。しかし、本来ｘ”ｉｙ＝ｘ”ｉｚ＝ｘｉであるはずがｘ”ｉｙ≠ｘ”ｉｚとなっている。このような不正を行うことが可能なのは、署名を生成した合意装置１０−Ｐ（ｉ）のみである。よって、合意装置１０−Ｐ（ｉ）に不正があったと判定できる。また、（１−２）に該当するのは、署名付き意見値Ｘ”ｉｙ＝Ｘｉｙであり、この署名が合意装置１０−Ｐ（ｉ）で生成されたものである場合である。しかし、本来ｘ”ｉｙ＝ｘ’ｉｍ＝ｘｉであるはずがｘ”ｉｙ≠ｘ’ｉｍとなっている。このような不正は合意装置１０−Ｐ（ｉ）が署名付き意見値Ｘ’ｉｙを生成するときに行ったか、または、前述のステップＳ４で合意装置１０−Ｐ（ｉ）が合意装置１０−Ｐ（ｍ）に署名付き意見値Ｘ’ｉｍを送る際に行ったものである。よって、合意装置１０−Ｐ（ｉ）に不正があったと判定できる。合意装置１０−Ｐ（ｉ）に不正があった旨が出力された場合、検証処理が終了となる（ステップＳ１５）。
【００２３】
≪ステップＳ１４≫
一方、ステップＳ１３で（１−１）および（１−２）のいずれにも該当しないと判定された場合、インデックスｉについての署名付き意見値Ｘ”ｉｊおよび合意装置１０−Ｐ（ｍ）から出力されたインデックスｉについての署名検証の結果Ｖ（Ｘ”ｉｊ）（ただし、ｊ＝０，…，ｎ−１、ｊ≠ｉ）が判定部１７−Ｐ（ｍ）（第２判定部）に入力される。判定部１７−Ｐ（ｍ）は、以下の（２−１）に該当するかを判定する。
（２−１）署名付き意見値Ｘ”ｉｊのうち、少なくとも何れかの２個の署名付き意見値Ｘ”ｉｙ＝（ｘ”ｉｙ，ｅ”ｉｙ）および署名付き意見値Ｘ”ｉｚ＝（ｘ”ｉｚ，ｅ”ｉｚ）（ただし、ｙ，ｚ∈｛０，…，ｉ−１，ｉ＋１，…，ｎ−１｝かつｙ≠ｚ）に対する署名検証の結果が不合格（Ｖ（Ｘ”ｉｙ）＝Ｖ（Ｘ”ｉｚ）＝ＮＧ）である。
【００２４】
ステップＳ１４で（２−１）に該当すると判定された場合、判定部１６−Ｐ（ｍ）は、合意装置１０−Ｐ（ｉ）に不正があったと判定し、その旨を出力する。すなわち、（２−１）に該当するのは、合意装置１０−Ｐ（ｉ）がステップＳ３で不正な署名付き意見値Ｘ’ｉｙ≠（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））および署名付き意見値Ｘ’ｉｚ≠（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））を出力していたか、または、少なくとも二つの合意装置１０−Ｐ（ｙ）および１０−Ｐ（ｚ）がステップＳ５で不正な署名付き意見値Ｘ”ｉｙ≠Ｘ’ｉｙ＝（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））および署名付き意見値Ｘ”ｉｚ≠Ｘ’ｉｚ＝（ｘｉ，ｓｉｇ＿ｉ（ｘｉ））を出力していた場合である。しかし、不正を行う合意装置の個数が１個以下であるとの前提のもとでは、後者は除外され、合意装置１０−Ｐ（ｉ）に不正があったと判定できる。合意装置１０−Ｐ（ｉ）に不正があった旨が出力された場合、検証処理が終了となる（ステップＳ１５）。
【００２５】
≪ステップＳ１６≫
ステップＳ１４で（２−１）に該当しないと判定された場合、意見値出力部１８−Ｐ（ｍ）は、記憶部１２−Ｐ（ｍ）から何れかの署名付き意見値Ｘ”ｉｊ＝（ｘ”ｉｊ，ｅ”ｉｊ）を抽出し、それが含む意見値ｘ”ｉｊを合意装置１０−Ｐ（ｉ）の正当な意見値ｘｉとして出力する（ステップＳ１６）。
【００２６】
≪ステップＳ１７≫
次に、制御部１９−Ｐ（ｍ）はｍを除くすべてのｉ∈｛０，…，ｎ−１｝について判定（ステップＳ１２〜Ｓ１６）を終了したかを判定する（ステップＳ１７）。ｍを除くすべてのｉ∈｛０，…，ｎ−１｝について判定が終了した場合には検証処理を終了する。一方、ｍを除くすべてのｉ∈｛０，…，ｎ−１｝について判定が終了していない場合、制御部１９−Ｐ（ｍ）はインデックスｉをまだ選択されていない値に更新して処理をステップＳ１２に戻す（ステップＳ１８）。
【００２７】
［変形例等］
なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の検証処理は不正を行う合意装置の個数が１個以下であることを前提としたが、この前提がなくても本発明を適用することは可能である。この場合には、ステップＳ１３で（１−１）および（１−２）の少なく一方に該当すると判定されたときには合意装置１０−Ｐ（ｉ）に不正があったと判定することはできるが、ステップＳ１４で（２−１）に該当すると判定された場合でも、直ちに合意装置１０−Ｐ（ｉ）に不正があったと判定することはできない。しかし、この場合でも少なくとも不正があったことを検知することができ、不正を行った装置をある程度特定することはできる。また、ステップＳ１３およびＳ１４の何れか一方のみが実行されてもよい。
【００２８】
また、判定部１６−Ｐ（ｍ）または１７−Ｐ（ｍ）が、さらに、ステップＳ４において通信部１１−Ｐ（ｍ）で署名付き意見値Ｘ’ｉｍが受け付けられなかった場合（入力されなかった場合）、または、受け付けられたＸ’ｉｍの形式が規定のものではなかった場合に、合意装置１０−Ｐ（ｉ）に不正があったと判定し、その旨を出力してもよい。また、上述の実施形態では公開鍵暗号方式を用いて署名を生成したが、共通鍵暗号方式を用いて署名を生成してもよい。
【００２９】
また、上述の実施形態では合意システム１が自律分散システムであったが、集中管理システムであってもよい。上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【００３０】
上記の各装置は、例えば、ＣＰＵ（central processing unit）等のプロセッサ（ハードウェア・プロセッサ）およびＲＡＭ（random-access memory）・ＲＯＭ（read-only memory）等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは１個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めＲＯＭ等に記録されていてもよい。また、ＣＰＵのようにプログラムが読み込まれることで機能構成を実現する電子回路（circuitry）ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。１個の装置を構成する電子回路が複数のＣＰＵを含んでいてもよい。
【００３１】
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な（non-transitory）記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
【００３２】
このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００３３】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。
【００３４】
コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されるのではなく、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
【産業上の利用可能性】
【００３５】
本発明は、例えば、秘密計算システムなどに利用できる。
【符号の説明】
【００３６】
１  合意システム
１０−Ｐ（０），…，１０−Ｐ（ｎ−１）  合意装置
【図１】
2019039382.tif 000003
【図２】
2019039382.tif 000004
【図３】
2019039382.tif 000005
【図４】
2019039382.tif 000006
【図５】
2019039382.tif 000007
【手続補正書】
【提出日】令和2年2月18日(2020.2.18)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
≪ステップＳ１≫
前提として、各合意装置１０−Ｐ（ｉ）（ただし、ｉ＝０，…，ｎ−１）には、署名生成のための署名生成鍵ｓｋｉ、および署名生成鍵ｓｋｉを用いて生成された署名を検証するための署名検証鍵ｋｉが設定されている。署名生成鍵ｓｋｉおよび署名検証鍵ｋｉは合意装置１０−Ｐ（ｉ）の記憶部１２−Ｐ（ｉ）に格納されている。署名生成鍵ｓｋｉは合意装置１０−Ｐ（ｉ）の秘密情報であり、署名検証鍵ｋｉは公開情報である。署名生成鍵ｓｋｉの例は公開鍵暗号方式（例えば、ＲＳＡ）に則った秘密鍵であり、署名検証鍵ｋｉの例は当該公開鍵暗号方式に則った公開鍵である。この場合の署名生成鍵ｓｋｉおよび署名検証鍵ｋｉは公開鍵暗号方式における鍵ペアである。この前提の下、合意装置１０−Ｐ（ｉ）（ただし、ｉ＝０，…，ｎ−１）の共有部１３−Ｐ（ｉ）が、合意装置１０−Ｐ（ｉ）（ただし、ｉ＝０，…，ｎ−１）以外の合意装置１０−Ｐ（ｊ）（ただし、ｊ＝０，…，ｎ−１、ｊ≠ｉ）の共有部１３−Ｐ（ｊ）との間で署名検証鍵ｋｉを共有する。共有部１３−Ｐ（ｉ）と共有部１３−Ｐ（ｊ）との間での署名検証鍵ｋｉの共有は、例えば、共有部１３−Ｐ（ｉ）から共有部１３−Ｐ（ｊ）に署名検証鍵ｋｉまたは署名検証鍵ｋｉに対応する値を送信することで行われる。あるいは、ネットワーク上の公開されたサーバ装置に署名検証鍵ｋｉまたは署名検証鍵ｋｉに対応する情報を格納しておき、各共有部１３−Ｐ（ｊ）がこのサーバ装置から署名検証鍵ｋｉまたは署名検証鍵ｋｉに対応する情報を受信してもよい。署名検証鍵ｋｉは合意装置１０−Ｐ（ｊ）の記憶部１２−Ｐ（ｊ）に格納される。これにより、各合意装置１０−Ｐ（ｊ）（ただし、ｊ＝０，…，ｎ−１、ｊ≠ｉ）の記憶部１２−Ｐ（ｊ）には、自らの署名生成鍵ｓｋｊおよび署名検証鍵ｋｊに加え、ｎ−１個の他の合意装置１０−Ｐ（ｉ）の署名検証鍵ｋｉ（ただし、ｉ＝０，…，ｎ−１、ｉ≠ｊ）が格納される。例えばｎ＝３の場合、合意装置１０−Ｐ（０）の記憶部１２−Ｐ（０）にｓｋ０，ｋ０，ｋ１，ｋ２が格納され、合意装置１０−Ｐ（１）の記憶部１２−Ｐ（１）にｓｋ１，ｋ０，ｋ１，ｋ２が格納され、合意装置１０−Ｐ（２）の記憶部１２−Ｐ（２）にｓｋ２，ｋ０，ｋ１，ｋ２が格納される（図５Ａ）。次にステップＳ２に進む。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
≪ステップＳ１１≫
まず、合意装置１０−Ｐ（ｍ）の制御部１９−Ｐ（ｍ）が判定対象に対応するインデックスｉ∈｛０，…，ｎ−１｝を初期化する。例えば、ｍ＝０ならば制御部１９−Ｐ（ｍ）はｉ＝０に初期化し、ｍ＝０ならば制御部１９−Ｐ（ｍ）はｉ＝１に初期化する。
【国際調査報告】
2019039382.tif 000008
2019039382.tif 000009