(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025154306
(43)【公開日】2025-10-10
(54)【発明の名称】秘密計算用器具
(51)【国際特許分類】
G09C 1/00 20060101AFI20251002BHJP
【FI】
G09C1/00 650Z
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2024057226
(22)【出願日】2024-03-29
(71)【出願人】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(74)【代理人】
【識別番号】110003421
【氏名又は名称】弁理士法人フィールズ国際特許事務所
(72)【発明者】
【氏名】渡辺 曜大
(57)【要約】
【課題】単純な操作で安全に秘密計算を人間により実行可能な器具を提供する。
【解決手段】秘密計算用器具は、表裏の状態が0及び1に対応付けられた、複数の入力値部品を備え、複数の入力値部品を表裏が判別不能な状態で合体可能であり、複数の入力値部品が合体した合体構造物は、基準線に関して鏡映対称となるように構成され、表裏が判別不能であり、入力値部品が入力値または入力値のビット反転を示す状態で且つ表裏が秘匿された状態で配置された入力状態の合体構造物を、見えない状態でランダムに回転させることで、観測状態とし、観測状態において所定の入力値部品の表裏を観測し、観測結果に基づき、基準線に関する鏡映変換により合体構造物の表裏を反転させることで、出力状態とし、出力状態において所定の入力値部品の状態を論理演算の出力値とする。
【選択図】
図2
【特許請求の範囲】
【請求項1】
0または1の値を有する入力を秘匿した状態で論理演算を行うための秘密計算用器具であって、
表裏の状態が0及び1に対応付けられた、複数の入力値部品を備え、前記複数の入力値部品を表裏が判別不能な状態で合体可能であり、
前記複数の入力値部品が合体した合体構造物は、基準線に関して鏡映対称となるように構成され、表裏が判別不能であり、
前記入力値部品が入力値または入力値のビット反転を示す状態で且つ表裏が秘匿された状態で配置された入力状態の前記合体構造物を、見えない状態でランダムに回転させることで、観測状態とし、
前記観測状態において所定の前記入力値部品の表裏を観測し、観測結果に基づき、前記基準線に関する鏡映変換により前記合体構造物の表裏を反転させることで、出力状態とし、
前記出力状態における所定の前記入力値部品の状態を論理演算の出力値とする、
秘密計算用器具。
【請求項2】
少なくとも3個の前記入力値部品を備え、
前記合体構造物は、所定の観測方向視において確定される位置である第1位置と第2位置と第3位置とに前記入力値部品を配置可能であり、
前記所定の観測方向視において、前記第2位置は前記基準線上の位置であり、前記第1位置及び前記第3位置は前記基準線の延在方向に対して直交する方向において前記第2位置の両側の位置であり、
前記入力状態において、入力値または入力値のビット反転を示す状態の前記入力値部品を表裏が秘匿された状態で前記第1位置及び前記第2位置に配置し、0または1の値を示す状態の前記入力値部品を前記第3位置に配置し、
前記入力状態の前記合体構造物を、見えない状態でランダムに回転させ、前記基準線の延在方向における前記合体構造物の向きを前記入力状態における向きと一致させることで、前記観測状態とし、
前記観測状態において、前記第2位置に配置された前記入力値部品の表裏を観測し、観測結果に基づき、前記基準線に関する鏡映変換により前記合体構造物の表裏を反転させることで、前記合体構造物を前記出力状態とし、
前記出力状態において、前記第1位置または前記第3位置に配置された前記入力値部品の状態を論理積演算の出力値とする、
請求項1に記載の秘密計算用器具。
【請求項3】
少なくとも3個の前記入力値部品を備え、
前記合体構造物は、所定の観測方向視において確定される位置である第1位置と第2位置と第3位置とに前記入力値部品を配置可能であり、
前記所定の観測方向視において、前記第2位置は前記基準線上の位置であり、前記第1位置及び前記第3位置は前記基準線の延在方向に対して直交する方向において前記第2位置の両側の位置であり、
前記入力状態において、入力値または入力値のビット反転を示す状態の前記入力値部品を表裏が秘匿された状態で前記第1位置及び前記第2位置に配置し、0または1の値を示す状態の前記入力値部品を前記第3位置に配置し、
入力状態の前記合体構造物を、見えない状態でランダムに回転させ、前記基準線の延在方向における前記合体構造物の向きを前記入力状態における向きと一致させることで、前記観測状態とし、
前記観測状態において、前記第2位置に配置された前記入力値部品の表裏を観測し、観測結果に基づき、前記基準線に関する鏡映変換により前記合体構造物の表裏を反転させることで、前記合体構造物を前記出力状態とし、
前記出力状態において、前記第1位置または前記第3位置に配置された前記入力値部品の状態を論理和演算の出力値とする、
請求項1に記載の秘密計算用器具。
【請求項4】
少なくともn個(n=m+1、mは自然数)の前記入力値部品を備え、
前記合体構造物は、前記基準線上の位置に前記n個の入力値部品を配置可能であり、
前記入力状態において、前記n個の入力値部品のうちの1個である第1入力値部品を入力値を示し且つ表裏が秘匿された状態で配置し、他のm個の前記入力値部品の全てを0の値を示す状態と1の値を示す状態とのうち一方の状態に統一して配置し、
前記観測状態において、前記第1入力値部品の表裏を観測し、0の値を示す状態と1の値を示す状態とのうち他方の状態だった場合には前記基準線に関する鏡映変換により前記合体構造物の表裏を反転させ、前記一方の状態だった場合には前記合体構造物の表裏を反転させないことで、前記合体構造物を前記出力状態とし、
前記出力状態において、前記他のm個の入力値部品の状態を複製演算の出力値とする、
請求項1に記載の秘密計算用器具。
【請求項5】
少なくとも2個の前記入力値部品を備え、
前記合体構造物は、前記基準線上の位置に前記2個の入力値部品を配置可能であり、
前記入力状態において、入力値または入力値のビット反転を示す状態の前記2個の入力値部品を表裏が秘匿された状態で配置し、
前記観測状態において、前記2個の入力値部品のうち一方の表裏を観測し、観測結果に基づき、前記基準線に関する鏡映変換により前記合体構造物の表裏を反転させることで、前記合体構造物を前記出力状態とし、
前記出力状態において、前記2個の入力値部品のうち他方の状態を排他的論理和演算の出力値とする、
請求項1に記載の秘密計算用器具。
【請求項6】
前記複数の入力値部品を結合することで前記複数の前記入力値部品と一体となって前記合体構造物を構成する合体用部品を更に備える、
請求項1から5の何れか一項に記載の秘密計算用器具。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、入力を秘匿した状態で論理演算を行うための秘密計算用器具に関する。
【背景技術】
【0002】
秘密計算とは、複数の参加者のそれぞれが有する秘密情報を入力とする所望の関数の計算を各参加者の情報を他の参加者に秘密にしたまま実行する計算のことである。通常、秘密計算は計算機により実行されるが、人間により物理的に実行可能な秘密計算に関する研究が進められている。例えば、非特許文献1-2には、物理的なカード組を用いた秘密計算(カードベース暗号)の手法が開示されている。また、非特許文献3-4には、PEZ(キャンディ)ディスペンサーを用いた秘密計算(PEZプロコトル)の手法が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】水木敬明、https://www.jstage.jst.go.jp/article/essfr/9/3/9_179/_pdf/-char/ja、「カード組を用いた秘密計算」、2016年
【非特許文献2】水木敬明、https://www.ieice.org/ess/sita/forum/article/2019/201903231330.pdf、「カードベース暗号の最近の動向」、2018年
【非特許文献3】Jozsef Balogh, J´anos A. Csirik, Yuval Ishai, Eyal Kushilevitz、http://www.csirik.net/universal.pdf、「Private computation using a PEZ dispenser」、2001年
【非特許文献4】Soma Murata, Daiki Miyahara, Takaaki Mizuki2, Hideaki Sone、https://www.tains.tohoku.ac.jp/netlab/mizuki/conf/pezand_isc2020_web.pdf、「Public-PEZ Cryptography」、2020年
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、カードベース暗号では、カードをシャッフルする必要があるため、操作が複雑であり、また、ランダム性(即ち秘密の安全性)において改善の余地がある。また、PEZプロコトルでは、一般的に入力サイズ(PEZの数量)が大きくなりがちであり、また、初期設定や各参加者の実行を公開することができないため、不正を防ぐ手立てがないという問題がある。
【0005】
そこで、本開示の第1の側面の目的は、より単純な操作で安全に秘密計算を人間により実行可能な器具を提供することにある。
【課題を解決するための手段】
【0006】
本開示の第1の側面は、0または1の値を有する入力を秘匿した状態で論理演算を行うための秘密計算用器具であって、
表裏の状態が0及び1に対応付けられた、複数の入力値部品を備え、前記複数の入力値部品を表裏が判別不能な状態で合体可能であり、
前記複数の入力値部品が合体した合体構造物は、基準線に関して鏡映対称となるように構成され、表裏が判別不能であり、
前記入力値部品が入力値または入力値のビット反転を示す状態で且つ表裏が秘匿された状態で配置された入力状態の前記合体構造物を、見えない状態でランダムに回転させることで、観測状態とし、
前記観測状態において所定の前記入力値部品の表裏を観測し、観測結果に基づき、前記基準線に関する鏡映変換により前記合体構造物の表裏を反転させることで、出力状態とし、
前記出力状態における所定の前記入力値部品の状態を論理演算の出力値とする、
秘密計算用器具である。
【発明の効果】
【0007】
第1の側面によれば、単純な操作で安全に秘密計算を人間により実行可能することができる。
【図面の簡単な説明】
【0008】
【
図1】実施形態1に係る秘密計算用器具の構成例を示す全体斜視図である。
【
図2】実施形態1に係る秘密計算用器具の合体構造物を示す平面図である。
【
図3】実施形態1に係る入力値部品の分解斜視図である。
【
図4】実施形態1に係る入力値部品の表裏を説明するための側面図である。
【
図5】実施形態1に係る秘密計算用器具を用いた論理積演算のフローを示す図である。
【
図6】論理積演算における入力状態の合体構造物を示す平面図である。
【
図7】観測状態における合体構造物を示す平面図(1)である。
【
図8】観測状態における合体構造物を示す平面図(2)である。
【
図9】出力状態における合体構造物を示す平面図(1)である。
【
図10】出力状態における合体構造物を示す平面図(2)である。
【
図11】実施形態1に係る秘密計算用器具を用いた論理和演算のフローを示す図である。
【
図12】論理和演算における入力状態の合体構造物を示す平面図である。
【
図13】実施形態1の変形例1に係る秘密計算用器具の合体構造物を示す平面図である。
【
図14】実施形態1の変形例1に係る秘密計算用器具を用いた複製演算のフローを示す図である。
【
図15】複製演算における入力状態の合体構造物を示す平面図である。
【
図16】実施形態1の変形例2に係る秘密計算用器具の合体構造物を示す平面図である。
【
図17】実施形態1の変形例2に係る秘密計算用器具を用いた排他的論理和演算のフローを示す図である。
【
図18】排他的論理和演算における入力状態の合体構造物を示す平面図である。
【
図19】実施形態2に係る秘密計算用器具の合体構造物を示す平面図である。
【
図20】実施形態2に係る入力値部品の側面図である。
【
図21】実施形態2に係る入力値部品の分解図である。
【
図22】実施形態2に係る合体用部品の平面図である。
【
図23】実施形態2の変形例1に係る秘密計算用器具の合体構造物を示す側面図である。
【
図24】実施形態2の変形例2に係る秘密計算用器具の合体構造物を示す側面図である。
【発明を実施するための形態】
【0009】
以下では、本開示に係る秘密計算用器具の実施形態について説明する。但し、以下の実施形態の構成は例示であり、本開示は実施形態の構成に限定されるものではない。
【0010】
本開示に係る秘密計算用器具は、人間により物理的に秘密計算を行うための器具である。秘密計算は、具体的には、0または1の値を有する入力ビットを秘匿した状態で論理演算(ビット演算)を実行することである。なお、論理演算において、0は偽の論理値を表し、1は真の論理値を表す。また、入力ビットの値(入力値)を
【数1】
と表すものとする。また、入力値のビット反転の値を
【数2】
と表すものとする。
【0011】
本開示に係る秘密計算用器具は、物体の対称性を利用することで、複数の参加者のそれぞれが有する秘密情報を入力値とする所望の論理演算を、各参加者の入力値を他の参加者に秘密にしたまま実行することを可能とする。以下に説明する各実施形態は、論理演算の例として、論理積演算(AND)、論理和演算(OR)、否定演算(NOT)、複製演算(m-COPY)、及び排他的論理和演算(XOR)を実行可能とするものである。但し、本開示に係る秘密計算用器具の適用対象となる論理演算は、上記に限定されない。
【0012】
なお、本明細書において、「鏡映対称」とは、物体について用いる場合には、当該物体の形状が基準線に関して対称であることを意味するものとする。また、「鏡映変換」とは、物体について用いる場合には、基準線を回転軸として当該物体を180°回転させ、当該物体の表裏を反転させることを意味するものとする。また、本明細書において、「対称」とは、少なくとも外観(外形)において対称であればよく、物体の内部構造までもが対称であることまでは求めない。また、「判別不能」とは、秘密計算用器具を使用する際に参加者が判別できない程度であればよく、秘匿性を確保する観点では、少なくとも目視(外観)において物体の表裏が判別不能であればよいものとする。但し、ランダム性を高める観点では、物体を運動させても表裏を判別できないことがより好ましい。
【0013】
<実施形態1>
[全体構成]
図1は、実施形態1に係る秘密計算用器具100の構成例を示す全体斜視図である。
図2は、実施形態1に係る秘密計算用器具100の合体構造物を示す平面図である。秘密計算用器具100を用いる論理演算の過程において、秘密計算用器具100の表裏が反転することがあるが、
図1に示す上下方向及び左右方向は、固定された所定の観測方向に沿って視認した状態(以下、観測方向視)を基準に確定される。但し、これらの各方向は、説明の便宜上、秘密計算用器具100の各要素の相対的な位置関係等を決定するために設定されるものに過ぎず、本開示を限定するものではない。また、符号R1で示す秘密計算用器具100の基準線は、観測方向に対して直交する平面上に設けられる。
図1及び
図2では、基準線R1の延在方向と上下方向とが一致し且つ符号201で示す角部が上側に位置するように秘密計算用器具100が配置された状態が図示されている。また、
図2では、秘密計算用器具100の合体構造物を観測方向に沿って視認した状態が図示されている。
【0014】
図1に示すように、実施形態1に係る秘密計算用器具100は、複数の入力値部品10と合体用部品20とを備え、合体用部品20を介して複数の入力値部品10が合体することで、
図2に示すような合体構造物となる。詳細については後述するが、秘密計算用器具100は、少なくとも3個の入力値部品10を備え、論理積演算(AND)や論理和演算(OR)といった論理演算を実行可能とする。以下、実施形態1に係る秘密計算用器具100の各要素について説明する。
【0015】
[入力値部品]
図3は、実施形態1に係る入力値部品10の分解斜視図である。
図3では、表の状態にある入力値部品10が図示されている。
図4は、実施形態1に係る入力値部品10の表裏を説明するための側面図である。
図4(A)では表の状態にある入力値部品10が図示されており、
図4(B)では裏の状態にある入力値部品10が図示されている。
【0016】
図3及び
図4に示すように、入力値部品10は、凸状部材1と凹状部材2とを含み、これらが合体可能である。凸状部材1は、円盤状の本体部11と、本体部11の中央に形成された突起である凸部12と、を有する。凹状部材2は、円盤状の本体部21と、本体部21の中央に形成された窪みである凹部22と、を有する。凸状部材1の本体部11と凹状部材2の本体部21とは、同一形状となっている。より詳細には、本体部11及び本体部21は、外径及び厚みが互いに同等である。また、凹部22には、凸部12を嵌め込み可能である。凸部12を凹部22に嵌め込むように凸状部材1と凹状部材2とが合体することで、入力値部品10は一体の円盤状の部品に形成される。秘密計算用器具100の合体構造物において、入力値部品10は、その中心軸の延在方向が観測方向と一致するように配置される。
【0017】
図4(A)及び(B)に示すように、入力値部品10は、観測方向において凸部12が手前側を向いた状態と凸部12が奥側を向いた状態との、2通りの状態をとり得る。以下、一例として、入力値部品10の状態について、凸部12が手前側を向いた状態を「表」とし、凸部12が奥側を向いた状態を「裏」とする。入力値部品10は、表裏で異なる形態をとることで、表裏の状態を0及び1に対応付け(ラベル付け)可能である。これにより、入力値部品10の状態に応じて入力値bを表すことが可能である。本実施形態では、入力値部品10が表の状態のときに「0」の値を示し、入力値部品10が裏の状態のときに「1」の値を示すものとして、入力値の符号化ルールを定めるものとする。但し、符号化ルールはこれに限定されず、例えば、これと逆であってもよい。つまり、入力値部品10が表の状態のときに「1」の値を示し、裏の状態のときに「0」の値を示すものとしてもよい。
【0018】
ここで、凸状部材1と凹状部材2とが合体した状態では、凸部12が凹状部材2によって隠蔽されるため、外部からは凸部12の状態を視認することができない。さらに、本体部11と本体部21とが同一形状であることから、凸状部材1の本体部11と凹状部材2の本体部21との判別が不能である。そのため、凸状部材1と凹状部材2とが合体した状態では、入力値部品10の表裏(即ち入力値b)は判別不能である。したがって、入力値部品10を凸状部材1と凹状部材2とに分解し、凸部12の向きを観測することで、入力値部品10の表裏を判別可能となる。
【0019】
また、入力値部品10の表裏を反転させることで、入力値部品10は入力値bのビット反転(数式2)を示す状態となる。これにより、否定演算(NOT)を実現することができる。
【0020】
[合体用部品]
合体用部品20は、板状の部材であり、
図2に示すように、複数の入力値部品10を結合することで、複数の入力値部品10と一体となって合体構造物を構成する。
図2に示すように、合体用部品20は、基準線R1に関して鏡映対称な五角形状の外形を有する。また、観測方向における合体用部品20の表裏は、判別不能である。合体用部品20は、基準線R1上に角部201を有する。この角部201は、基準線R1の延在方向における合体構造物の向きを識別するための目印(標識)として機能する。また、合体用部品20には、観測方向に沿って貫通する複数の嵌合孔20aが形成されている。合体用部品20には、入力値部品10の数に対応して、3つの嵌合孔20aが形成されている。3つの嵌合孔20aの1つは、基準線R1上に形成されている。残り2つの嵌合孔20aは、観測方向視において基準線R1の延在方向に対して直交する方向(本実施形態では左右方向)において、基準線R1の両側に形成されている。この嵌合孔20aには、入力値部品10を嵌め込み可能である。各嵌合孔20aに入力値部品10を嵌め込むことで、複数の入力値部品10と合体用部品20とが合体し、
図2に示す合体構造物となる。
【0021】
[合体構造物]
図2に示すように、合体用部品20に入力値部品10が嵌め込まれた合体構造物は、合体用部品20と同様に、基準線R1に関して鏡映対称な五角形状の外形を有する。また、入力値部品10及び合体用部品20の観測方向における表裏は判別不能であることから、観測方向における合体構造物の表裏も判別不能である。但し、合体構造物の形状は五角形には限定されない。合体構造物は、基準線R1に関して鏡映対称であり且つ表裏が判別不能となるように構成されていればよい。なお、角部201が形成されていることにより、秘密計算用器具100の合体構造物は、基準線R1の延在方向(本実施形態では上下方向)においては非対称(鏡映対称ではない)となっている。
【0022】
合体構造物において、複数の入力値部品10は、それぞれ、観測方向視において確定される位置である第1位置P1と第2位置P2と第3位置P3とに配置される。
図2に示すように、観測方向視において、第2位置P2は基準線R1上の位置であり、第1位置P1及び第3位置P3は基準線R1の延在方向に対して直交する方向(本実施形態では左右方向)において第2位置P2の両側の位置である。つまり、第1位置P1及び第3位置P3は、観測方向視において基準線R1に対して直交する方向において、基準線R1を挟んで互いに反対側の対称な位置である。本実施形態では、基準線R1よりも左側の位置を第1位置P1とし、基準線R1よりも右側の位置を第3位置P3とする。第1位置P1~第3位置P3の位置関係は、観測方向視を基準に確定されるため、合体構造物が基準線R1に関して鏡映変換された場合であっても、第1位置P1~第3位置P3の位置関係は不動である。なお、第1位置P1~第3位置P3の位置関係は、上記に限定されない。例えば、観測方向視において基準線R1よりも右側の位置を第1位置P1とし、基準線R1よりも左側の位置を第3位置P3としてもよい。
【0023】
[秘密計算用器具を用いた論理積演算]
次に、実施形態1に係る秘密計算用器具100を用いた論理積演算(AND)の方法を説明する。
図5は、実施形態1に係る秘密計算用器具100を用いた論理積演算のフローを示す図である。以下では、2人の参加者A1,A2のそれぞれが有する下記の入力値b1,b2を、参加者A1,A2が互いに秘密にしたまま、b1,b2の論理積演算を実行する場合について説明する。
【数3】
【数4】
【0024】
秘密計算用器具100を用いた論理積演算の準備ステップとして、3個の入力値部品10と合体用部品20とを用意する。入力値部品10は、合体用部品20に嵌め込まれておらず、凸状部材1と凹状部材2とに分解された状態とする。
【0025】
まず、ステップS10にて、入力値の符号化ルールを各参加者に共有する。ここでは、入力値部品10が表の状態のときに「0」を示し、入力値部品10が裏の状態のときに「1」を示すものとして、入力値の符号化ルールを定める。
【0026】
次に、ステップS20にて、入力値b1,b2を示す状態の入力値部品10を表裏が秘匿された状態で第1位置P1及び第2位置P2に配置する。各参加者は、凸状部材1と凹状部材2とを合体させた入力値部品10を表裏が秘匿された状態で合体用部品20に嵌め込むことで、入力値b1,b2を入力する。これにより、秘密計算用器具100は、入力値部品10と合体用部品20とが合体した合体構造物となる。以下、入力値を入力するために入力値部品10を配置する操作を、入力操作と称する。また、入力操作によって入力値部品10が入力値を示す状態で且つ表裏が秘匿された状態で配置された状態を、入力状態と称する。
図6は、論理積演算における入力状態の合体構造物を示す平面図である。
図6では、観測方向視における合体構造物が図示されている。
図6に示すように、入力操作は、観測方向視において基準線R1の延在方向と上下方向とが一致し且つ角部201が上側に位置するように合体用部品20が配置された状態で行われる。なお、不正を防止するため、ステップS20の入力操作は、全参加者が確認し得る状況(public)で行われる。
【0027】
ステップS20では、参加者A1,A2には、それぞれ、秘密の入力ビットを入力するための入力値部品10が1個ずつ配られる。各参加者は、他の参加者に見られないように入力値部品10を自分の入力値に対応する状態にする。その後、当該入力値部品10を合体用部品20の嵌合孔20aに嵌め込む。この入力操作は、全参加者が確認し得る状況で行われるため、参加者A1,A2の誰かが行ってもよいし、第三者が行ってもよい。参加者A1の入力値b1を示す状態の入力値部品10は、表裏が秘匿された状態で第1位置P1に配置され、参加者A2の入力値b2を示す状態の入力値部品10は、表裏が秘匿された状態で第2位置P2に配置される。例えば、入力値b1=0の場合には、表の状態(
図4(A)参照)にされた入力値部品10が第1位置P1に対応する嵌合孔20aに嵌め込まれる。反対に、b1=1の場合には、裏の状態(
図4(B)参照)にされた入力値部品10が第1位置P1に対応する嵌合孔20aに嵌め込まれる。入力値b2についても同様である。上述のように、凸状部材1と凹状部材2とが合体した状態では入力値部品10の表裏が判別不能であるため、合体構造物から入力値部品10を取り出して分解し、表裏を観測しない限り、自分の入力値部品10の状態が表裏の何れであるのかは不明となる。なお、例えば入力値部品10にスライド開閉式の窓を設け、窓を開くことで入力値部品10の状態(表裏)を確認できるようにしてもよい。そうすることで、入力値部品10を合体構造物から取り出さなくても(つまり、合体用部品20に嵌め込んだままでも)入力値部品10が示す値を観測することができる。
【0028】
また、ステップS20では、論理積演算を実現するために、入力値として1を示す状態の入力値部品10を第3位置P3に配置する。具体的には、裏の状態にした入力値部品10を第3位置P3に対応する嵌合孔20aに嵌め込む。第3位置P3に配置される入力値部品10が1を示す状態であることは秘匿されず、全参加者に共有される。この入力操作は、全参加者が確認し得る状況で行われるため、参加者A1,A2の誰かが行ってもよいし、第三者が行ってもよい。
【0029】
以下、便宜上、入力状態において第1位置P1に配置される入力値部品10を第1入力値部品101と称し、入力状態において第2位置P2に配置される入力値部品10を第2入力値部品102と称し、入力状態において第3位置P3に配置される入力値部品10を第3入力値部品103と称する場合がある。つまり、第1入力値部品101は、参加者A1の入力値b1を入力するための入力値部品10であり、第2入力値部品102は、参加者A2の入力値b2を入力するための入力値部品10であり、第3入力値部品103は、論理積演算用の入力値として1を入力するための入力値部品10である。入力状態では、第1入力値部品101及び第2入力値部品102の表裏は秘匿され、第3入力値部品103の表裏は秘匿されない。
【0030】
ここで、秘密計算用器具100の合体構造物における各入力値部品10が示す値を
【数5】
と表すものとする。このとき、入力状態は、
【数6】
と表される。
【0031】
次に、ステップS30にて、入力状態の合体構造物を見えない状態でランダムに回転させる。例えば、外部から中身を視認できない箱(ブラックボックス)に入力状態の合体構造物を入れ、箱を無作為にシェイクすることで、合体構造物を見えない状態でランダムに回転させることができる。ステップS30では、観測方向視における合体構造物の表裏が反転し得る状態で合体構造物をランダムに回転させる。ステップS30のランダム回転操作は、参加者A1,A2の誰かが行ってもよいし、第三者が行ってもよい。
【0032】
ここで、合体構造物をランダム回転させた後の状態を観測状態とする。
図7及び
図8は、観測状態における合体構造物を示す平面図である。
図7は、観測状態の合体構造物の表裏が入力状態に対して反転していない状態(観測状態1)を示し、
図8は、観測状態の合体構造物の表裏が入力状態に対して反転している状態(観測状態2)を示す。
図7及び
図8では、観測方向視における合体構造物が図示されている。
【0033】
図7及び
図8に示すように、観測状態では、角部201が上側に位置するように秘密計算用器具100を配置することで、基準線R1の延在方向における合体構造物の向きを入力状態における向きと一致させる。ステップS30のランダム回転により、観測状態の合体構造物は、入力状態に対して表裏が反転していない状態(
図7:観測状態1)と表裏が反転した状態(
図8:観測状態2)とを、それぞれ1/2の確率でとり得る。観測状態1は、
【数7】
と表される。つまり、観測状態1における各入力値部品10の状態は、入力状態と同じである。一方、入力状態に対して表裏が反転した観測状態2は、
【数8】
と表される。観測状態2では、合体構造物の表裏が反転することで、第1位置P1の入力値部品10と第3位置P3の入力値部品10とが入力状態に対して入れ替わる。つまり、第1入力値部品101が第3位置P3に位置し、第3入力値部品103が第1位置P1に位置する。しかしながら、第2入力値部品102の位置は、入力状態から変化せず、第2位置P2のままである。また、観測状態2では、各入力値部品10の表裏が反転することで、各入力値部品10の値は入力状態に対してビット反転する。
【0034】
次に、ステップS40にて、観測状態において所定の入力値部品10の表裏を観測し、観測値を得る。具体的には、第2位置P2に配置されている入力値部品10が表裏の何れの状態であるかを観測する。ステップS40では、第2位置P2にある入力値部品10(即ち第2入力値部品102)が0を示す状態(つまり、表の状態)であるか否かを判定する。観測状態において第2位置P2にある入力値部品10が0を示す場合(ステップS40:Yes)には、ステップS50に進む。なお、不正を防止するため、ステップS40の観測は、全参加者が確認し得る状況で行われる。
【0035】
ステップS50では、ステップS40の観測結果に基づき、基準線R1に関する鏡映変換を合体構造物に対して行うことで、合体構造物の表裏を観測状態に対して反転させる。合体構造物の表裏が観測状態に対して反転した状態を出力状態とし、ステップS60に進む。
【0036】
ステップS40に戻り、観測状態において第2位置P2にある入力値部品10が0を示す状態でない場合(ステップS40:No)、つまり、当該入力値部品10が1を示す状態(つまり、裏の状態)である場合には、ステップS50の鏡映変換を行わず、合体構造物の表裏を観測状態に対して反転させずに、出力状態とする。つまり、合体構造物の表裏が観測状態と同じ状態を出力状態とし、ステップS60に進む。
【0037】
ステップS60では、出力状態において所定の入力値部品10の状態を出力値とする。具体的には、第1位置P1に配置されている入力値部品10の状態により示される値が、b1,b2の論理積演算の出力値となる。その理由を以下に説明する。
【0038】
図9及び
図10は、出力状態における合体構造物を示す平面図である。
図9は、出力状態の合体構造物の表裏が入力状態に対して反転していない状態(出力状態1)を示し、
図10は、出力状態の合体構造物の表裏が入力状態に対して反転している状態(出力状態2)を示す。
図9及び
図10では、観測方向視における合体構造物が図示されている。
【0039】
ステップS30のランダム回転により、出力状態の合体構造物は、入力状態に対して表裏が反転していない状態(
図9:出力状態1)と表裏が反転した状態(
図10:出力状態2)とを、それぞれ1/2の確率でとり得る。出力状態1は、入力状態や観測状態1と同様に、
【数9】
と表される。一方、出力状態2は、観測状態2と同様に、
【数10】
と表される。
【0040】
入力値b2が0と1の何れであるか、及び観測状態が上記の数式7と数式8の何れの状態であるかに応じて、以下の表1に示す4つのケースの論理値対応表を得ることができる。
【表1】
【0041】
表1において、「入力値b2」の欄は、秘密計算用器具100に入力される入力値b2を示す。「観測状態」の「入力値部品の状態」の欄は、観測状態における各入力値部品10の状態を示す。「観測状態」の「第2位置の観測値」の欄は、観測状態において第2位置P2にある入力値部品10が示す値を示す。「鏡映変換の有無」の欄は、第2位置P2の観測結果に基づく鏡映変換の操作の有無を示す。「出力状態」の「入力値部品の状態」の欄は、出力状態における各入力値部品10の状態を示す。「出力状態」の「第1位置の出力値」の欄は、出力状態において第1位置P1にある入力値部品10が示す値を示す。
【0042】
表1が示すように、出力状態において第1位置P1にある入力値部品10が示す値は、入力値b2が0のとき(ケース1,2)にはb1にかかわらず0となり、入力値b2が1のとき(ケース3,4)には入力値b1となることが分かる。ここで、b1とb2の論理積は、以下のように表すことができる。
【数11】
つまり、入力値b1,b2の論理積演算の結果は、入力値b2が0のときにはb1にかかわらず0となり、入力値b2が1のとき(otherwise)には入力値b1となる。したがって、出力状態において第1位置P1にある入力値部品10の状態により示される値は、b1,b2の論理積演算の出力値と等しい。これにより、ステップS60では、出力状態において第1位置P1にある入力値部品10の状態により示される値が、b1,b2の論理積演算の出力値となる。
【0043】
ここで、ステップS40では、観測状態において第2位置P2にある第2入力値部品102の表裏を観測しているが、ステップS30において合体構造物をランダムに回転させているため、観測状態における第2入力値部品102は、1/2の確率でb2もしくはb2のビット反転を示す状態にある。そのため、入力値b2に関する情報が漏れることはない。つまり、情報理論的に安全である。例えば、第2位置P2の観測値が0であっても、観測状態が表1のケース1の場合にはb2=0であり、観測状態が表1のケース4の場合にはb2=1であるため、観測値から入力値b2の値を推定することはできない。同様に、第2位置P2の観測値が1であっても、観測状態が表1のケース2の場合にはb2=0であり、観測状態が表1のケース3の場合にはb2=1であるため、観測値から入力値b2の値を推定することはできない。
【0044】
以上のように、実施形態1に係る秘密計算用器具100を用いることで、入力値b1,b2を秘密にしたまま、b1,b2の論理積演算(AND)を実行することが可能となる。
【0045】
なお、上述の論理積演算では、ステップS20にて、入力状態が
【数12】
となるように、入力操作が行われてもよい。つまり、入力値b1のビット反転を示す状態の第1入力値部品101を表裏が秘匿された状態で第1位置P1に配置し、入力値b2を示す状態の第2入力値部品102を表裏が秘匿された状態で第2位置P2に配置し、0を示す状態の第3入力値部品103を第3位置P3に配置してもよい。入力状態では、第3入力値部品103の表裏は秘匿されず、0を示す状態であることは全参加者に共有される。この場合、ステップS40では、第2位置P2にある入力値部品10が1を示す状態(裏の状態)であるか否かを判定する。1を示す場合には、ステップS50の鏡映変換を行い、出力状態とし、1を示す状態でない場合には、ステップS50の鏡映変換を行わず、出力状態とする。そして、ステップS60では、出力状態において第3位置P3に配置されている入力値部品10の状態を出力値とする。これにより、以下の表2に示す4つのケースの論理値対応表を得ることができる。
【表2】
【0046】
表2において、「出力状態」の「第3位置の出力値」の欄は、出力状態において第3位置P3にある入力値部品10が示す値を示す。
【0047】
表2が示すように、出力状態において第3位置P3にある入力値部品10が示す値は、入力値b2が0のとき(ケース1,2)には0となり、入力値b2が1のとき(ケース3,4)にはb1となり、上記の数式11の結果と一致する。したがって、上記の数式12のように入力操作を行った場合、出力状態において第3位置P3にある入力値部品10により示される値は、b1,b2の論理積演算の出力値と等しくなる。
【0048】
また、上述の論理積演算では、ステップS20にて、入力状態が
【数13】
となるように、入力操作が行われてもよい。つまり、入力値b1を示す状態の第1入力値部品101を表裏が秘匿された状態で第1位置P1に配置し、入力値b2のビット反転を示す状態の第2入力値部品102を表裏が秘匿された状態で第2位置P2に配置し、1を示す状態の第3入力値部品103を第3位置P3に配置してもよい。入力状態では、第3入力値部品103の表裏は秘匿されず、1を示す状態であることは全参加者に共有される。この入力状態は、数式12の入力状態に対して各入力値部品10の表裏を反転させた状態と等しい。つまり、数式13の入力状態は、数式12の入力状態と実質的に等しい。この場合、ステップS40では、第2位置P2にある入力値部品10が1を示す状態(裏の状態)であるか否かを判定する。1を示す場合には、ステップS50の鏡映変換を行い、出力状態とし、1を示す状態でない場合には、ステップS50の鏡映変換を行わず、出力状態とする。そして、ステップS60では、出力状態において第1位置P1に配置されている入力値部品10の状態を出力値とする。これにより、以下の表3に示す4つのケースの論理値対応表を得ることができる。
【表3】
【0049】
表3が示すように、出力状態において第1位置P1にある入力値部品10が示す値は、入力値b2が0のとき(ケース1,2)にはb1にかかわらず0となり、入力値b2が1のとき(ケース3,4)にはb1となり、上記の数式11の結果と一致する。したがって、上記の数式13のように入力操作を行った場合、出力状態において第1位置P1にある入力値部品10により示される値は、b1,b2の論理積演算の出力値と等しくなる。
【0050】
また、上述の論理積演算では、ステップS20にて、入力状態が
【数14】
となるように、入力操作が行われてもよい。つまり、入力値のビット反転を示す状態の入力値部品10を表裏が秘匿された状態で第1位置P1及び第2位置P2に配置し、0を示す状態の第3入力値部品103を第3位置P3に配置してもよい。入力状態では、第3入力値部品103の表裏は秘匿されず、0を示す状態であることは全参加者に共有される。この入力状態は、数式6の入力状態に対して各入力値部品10の表裏を反転させた状態と等しい。つまり、数式14の入力状態は、数式6の入力状態と実質的に等しい。この場合、ステップS40では、第2位置P2にある入力値部品10が0を示す状態(表の状態)であるか否かを判定する。0を示す場合には、ステップS50の鏡映変換を行い、出力状態とし、0を示す状態でない場合には、ステップS50の鏡映変換を行わず、出力状態とする。そして、ステップS60では、出力状態において第3位置P3に配置されている入力値部品10の状態を出力値とする。これにより、以下の表4に示す4つのケースの論理値対応表を得ることができる。
【表4】
【0051】
表4が示すように、出力状態において第3位置P3にある入力値部品10が示す値は、入力値b2が0のとき(ケース1,2)にはb1にかかわらず0となり、入力値b2が1のとき(ケース3,4)にはb1となり、上記の数式11の結果と一致する。したがって、上記の数式14のように入力操作を行った場合、出力状態において第1位置P1にある入力値部品10により示される値は、b1,b2の論理積演算の出力値と等しくなる。
【0052】
以上より、論理積演算では、入力状態において、入力値または入力値のビット反転を示す状態の入力値部品10を表裏が秘匿された状態で第1位置P1及び第2位置P2に配置し、0または1の値を示す状態の入力値部品10を第3位置P3に配置する。また、観測状態において、第2位置P2に配置された入力値部品10の表裏を観測し、観測結果に基づき、基準線R1に関する鏡映変換により合体構造物の表裏を反転させることで、合体構造物を出力状態とする。そして、出力状態において、第1位置P1または第3位置P3に配置された入力値部品10の状態が論理積演算の出力値となる。
【0053】
[秘密計算用器具を用いた論理和演算]
実施形態1に係る秘密計算用器具100を用いることで、2人の参加者A1,A2のそれぞれが有する入力値b1,b2を、参加者A1,A2が互いに秘密にしたまま、b1,b2の論理和演算を実行することができる。以下、実施形態1に係る秘密計算用器具100を用いた論理和演算(OR)の方法を説明する。
図11は、実施形態1に係る秘密計算用器具100を用いた論理和演算のフローを示す図である。なお、
図11において
図5におけるステップと同一番号のステップは、
図5と略同様のステップであるので、相違点を除き詳細な説明は省略する。
【0054】
論理和演算のステップS10(符号化ルールの共有)は、
図5で説明した工程と同一の工程である。論理和演算では、ステップS201にて、入力状態が
【数15】
となるように、入力操作が行われる。
図12は、論理和演算における入力状態の合体構造物を示す平面図である。
図12では、観測方向視における合体構造物が図示されている。ステップS201では、
図12に示すように、入力値b1,b2を示す状態の入力値部品10を表裏が秘匿された状態で第1位置P1及び第2位置P2に配置する。詳細には、参加者A1の入力値b1を示す状態の第1入力値部品101を表裏が秘匿された状態で第1位置P1に配置し、参加者A2の入力値b2を示す状態の第2入力値部品102を表裏が秘匿された状態で第2位置P2に配置し、0を示す状態(即ち表の状態)の第3入力値部品103を第3位置P3に配置する。入力状態では、第3入力値部品103の表裏は秘匿されず、第3入力値部品103が0を示す状態であることは全参加者に共有される。
【0055】
論理和演算のステップS30(ランダム回転)は、
図5で説明した工程と同一の工程である。論理和演算では、ステップS401にて、観測状態において第2位置P2にある入力値部品10(即ち第2入力値部品102)が1を示す状態(つまり、裏の状態)であるか否かを判定する。観測状態において第2位置P2にある入力値部品10が1を示す場合(ステップS401:Yes)には、ステップS50に進み、基準線R1に関する鏡映変換により合体構造物の表裏を反転させ、出力状態とする。観測状態において第2位置P2にある入力値部品10が1を示す状態でない場合(ステップS401:No)、つまり、当該入力値部品10が0を示す状態(つまり、表の状態)である場合には、ステップS50の鏡映変換を行わず、合体構造物の表裏を反転させずに、出力状態とする。論理和演算における観測状態は、
【数16】
または
【数17】
と表される。
【0056】
論理和演算のステップS601は、出力状態において第1位置P1に配置されている入力値部品10の状態を出力値とする。つまり、出力状態において第1位置P1にある入力値部品10の状態により示される値が、b1,b2の論理和演算の出力値となる。その理由を以下に説明する。
【0057】
論理和演算では、入力値b2が0と1の何れであるか、及び観測状態が上記の数式16と数式17の何れの状態であるかに応じて、以下の表5に示す4つのケースの論理値対応表を得ることができる。
【表5】
【0058】
表5が示すように、出力状態において第1位置P1にある入力値部品10が示す値は、入力値b2が0のとき(ケース1,2)には入力値b1となり、入力値b2が1のとき(ケース3,4)にはb1にかかわらず1となることが分かる。ここで、b1とb2の論理和は、以下のように表すことができる。
【数18】
つまり、入力値b1,b2の論理和演算の結果は、入力値b2が1のときにはb1にかかわらず1となり、入力値b2が0のとき(otherwise)には入力値b1となる。したがって、出力状態において第1位置P1にある入力値部品10の状態により示される値は、b1,b2の論理和演算の出力値と等しい。これにより、ステップS601では、出力状態において第1位置P1にある入力値部品10の状態により示される値が、b1,b2の論理和演算の出力値となる。
【0059】
ここで、ステップS401では、観測状態において第2位置P2にある第2入力値部品102の表裏を観測しているが、論理積演算と同様に、ステップS30において合体構造物をランダムに回転させているため、入力値b2に関する情報が漏れることはなく、情報理論的に安全である。
【0060】
以上のように、実施形態1に係る秘密計算用器具100を用いることで、入力値b1,b2を秘密にしたまま、b1,b2の論理和演算(OR)を実行することが可能となる。
【0061】
なお、上述の論理和演算では、ステップS201にて、入力状態が
【数19】
となるように、入力操作が行われてもよい。つまり、入力値b1のビット反転を示す状態の第1入力値部品101を表裏が秘匿された状態で第1位置P1に配置し、入力値b2を示す状態の第2入力値部品102を表裏が秘匿された状態で第2位置P2に配置し、1を示す状態の第3入力値部品103を第3位置P3に配置してもよい。入力状態では、第3入力値部品103の表裏は秘匿されず、1を示す状態であることは全参加者に共有される。この場合、ステップS401では、第2位置P2にある入力値部品10が0を示す状態(表の状態)であるか否かを判定する。0を示す場合には、ステップS50の鏡映変換を行い、出力状態とし、0を示す状態でない場合には、ステップS50の鏡映変換を行わず、出力状態とする。そして、ステップS601では、出力状態において第3位置P3に配置されている入力値部品10の状態を出力値とする。これにより、以下の表6に示す4つのケースの論理値対応表を得ることができる。
【表6】
【0062】
表6が示すように、出力状態において第3位置P3にある入力値部品10が示す値は、入力値b2が0のとき(ケース1,2)にはb1となり、入力値b2が1のとき(ケース3,4)にはb1にかかわらず1となり、上記の数式18の結果と一致する。したがって、上記の数式19のように入力操作を行った場合、出力状態において第3位置P3にある入力値部品10により示される値は、b1,b2の論理和演算の出力値と等しくなる。
【0063】
また、上述の論理和演算では、ステップS201にて、入力状態が
【数20】
となるように、入力操作が行われてもよい。つまり、入力値b1を示す状態の第1入力値部品101を表裏が秘匿された状態で第1位置P1に配置し、入力値b2のビット反転を示す状態の第2入力値部品102を表裏が秘匿された状態で第2位置P2に配置し、0を示す状態の第3入力値部品103を第3位置P3に配置してもよい。入力状態では、第3入力値部品103の表裏は秘匿されず、0を示す状態であることは全参加者に共有される。この入力状態は、数式19の入力状態に対して各入力値部品10の表裏を反転させた状態と等しい。つまり、数式20の入力状態は、数式19の入力状態と実質的に等しい。この場合、ステップS401では、第2位置P2にある入力値部品10が0を示す状態(表の状態)であるか否かを判定する。0を示す場合には、ステップS50の鏡映変換を行い、出力状態とし、0を示す状態でない場合には、ステップS50の鏡映変換を行わず、出力状態とする。そして、ステップS601では、出力状態において第1位置P1に配置されている入力値部品10の状態を出力値とする。これにより、以下の表7に示す4つのケースの論理値対応表を得ることができる。
【表7】
【0064】
表7が示すように、出力状態において第1位置P1にある入力値部品10が示す値は、入力値b2が0のとき(ケース1,2)にはb1となり、入力値b2が1のとき(ケース3,4)にはb1にかかわらず1となり、上記の数式18の結果と一致する。したがって、上記の数式20のように入力操作を行った場合、出力状態において第1位置P1にある入力値部品10により示される値は、b1,b2の論理和演算の出力値と等しくなる。
【0065】
また、上述の論理和演算では、ステップS201にて、入力状態が
【数21】
となるように、入力操作が行われてもよい。つまり、入力値のビット反転を示す状態の入力値部品10を表裏が秘匿された状態で第1位置P1及び第2位置P2に配置し、1を示す状態の第3入力値部品103を第3位置P3に配置してもよい。入力状態では、第3入力値部品103の表裏は秘匿されず、1を示す状態であることは全参加者に共有される。この入力状態は、数式15の入力状態に対して各入力値部品10の表裏を反転させた状態と等しい。つまり、数式21の入力状態は、数式15の入力状態と実質的に等しい。この場合、ステップS401では、第2位置P2にある入力値部品10が1を示す状態(裏の状態)であるか否かを判定する。1を示す場合には、ステップS50の鏡映変換を行い、出力状態とし、1を示す状態でない場合には、ステップS50の鏡映変換を行わず、出力状態とする。そして、ステップS601では、出力状態において第3位置P3に配置されている入力値部品10の状態を出力値とする。これにより、以下の表8に示す4つのケースの論理値対応表を得ることができる。
【表8】
【0066】
表8が示すように、出力状態において第3位置P3にある入力値部品10が示す値は、入力値b2が0のとき(ケース1,2)にはb1となり、入力値b2が1のとき(ケース3,4)にはb1にかかわらず1となり、上記の数式18の結果と一致する。したがって、上記の数式21のように入力操作を行った場合、出力状態において第3位置P3にある入力値部品10により示される値は、b1,b2の論理和演算の出力値と等しくなる。
【0067】
以上より、論理和演算では、入力状態において、入力値または入力値のビット反転を示す状態の入力値部品10を表裏が秘匿された状態で第1位置P1及び第2位置P2に配置し、0または1の値を示す状態の入力値部品10を第3位置P3に配置する。また、観測状態において、第2位置P2に配置された入力値部品10の表裏を観測し、観測結果に基づき、基準線R1に関する鏡映変換により合体構造物の表裏を反転させることで、合体構造物を出力状態とする。そして、出力状態において、第1位置P1または第3位置P3に配置された入力値部品10の状態が論理和演算の出力値となる。
【0068】
また、秘密計算用器具100を用いた論理積演算や論理和演算では、第2入力値部品102は第2位置P2に固定されており、第1入力値部品101は第1位置P1と第3位置P3の何れかに必ず位置するため、仮に参加者A1,A2の誰かが入力値部品10に対して重心を変える等の不正を秘密裏に行った場合であっても、誰が不正を行ったのかを容易に特定することができる。したがって、不正を抑止することができる。
【0069】
[実施形態1の変形例]
以下、実施形態1の変形例について説明する。以下の説明では、
図1~
図12で説明した秘密計算用器具100との相違点を中心に説明し、同様の構成やステップについては同一の番号を付すことにより詳細な説明は割愛する。
【0070】
[変形例1]
図13は、実施形態1の変形例1に係る秘密計算用器具100Aの合体構造物を示す平面図である。
図13では、基準線R1の延在方向と左右方向とが一致し且つ符号202で示す角部が左側に位置するように秘密計算用器具100Aを配置し、観測方向に沿って視認した状態が図示されている。
【0071】
図13に示すように、実施形態1の変形例1に係る秘密計算用器具100Aは、複数の入力値部品10と合体用部品20Aとを備え、合体用部品20Aを介して複数の入力値部品10が合体することで、
図13に示すような合体構造物となる。変形例1に係る秘密計算用器具100Aは、少なくともn個(n=m+1、mは自然数)の入力値部品10を備える。秘密計算用器具100Aは、入力値bを秘密にしたまま、入力値bをm個複製する複製演算(m-COPY)を実行可能とする。
【0072】
実施形態1の変形例1に係る合体用部品20Aは、複数の嵌合孔20aの配置が上述の合体用部品20と相違する。合体用部品20Aは、基準線R1に関して鏡映対称な五角形状の外形を有する。また、観測方向における合体用部品20Aの表裏は、判別不能である。合体用部品20Aは、基準線R1上に角部202を有する。角部202は、基準線R1の延在方向における合体構造物の向きを識別するための目印(標識)として機能する。また、合体用部品20Aには、入力値部品10の数に対応して、n個の嵌合孔20aが形成されている。n個の嵌合孔20aは、基準線R1上に形成されており、基準線R1の延在方向に沿って並んで配置されている。各嵌合孔20aに入力値部品10を嵌め込むことで、n個の入力値部品10と合体用部品20Aとが合体し、
図13に示す合体構造物となる。
【0073】
図13に示すように、実施形態1の変形例1に係る合体構造物は、基準線R1に関して鏡映対称な五角形状の外形を有する。また、観測方向における合体構造物の表裏は、判別不能である。一方で、角部202が形成されていることにより、変形例1に係る合体構造物は、基準線R1の延在方向においては非対称(鏡映対称ではない)となっている。合体構造物において、n個の入力値部品10は、それぞれ、観測方向視において確定される基準線R1上のn箇所の位置に配置される。実施形態1の変形例1では、便宜上、基準線R1の延在方向を左右方向と一致させた状態を基準として、n箇所の位置を、左側から順に、第1位置P1、第2位置P2、・・・第n位置Pnとする。但し、第1位置P1~第n位置Pnの位置関係は、これに限定されない。例えば、右側から順に第1位置P1、第2位置P2、・・・第n位置Pnとしてもよいし、第1位置P1が端の位置でなくてもよい。また、秘密計算用器具100Aの合体構造物における各入力値部品10が示す値を
【数22】
と表すものとする。
【0074】
[秘密計算用器具を用いた複製演算]
次に、実施形態1の変形例1に係る秘密計算用器具100Aを用いた複製演算(m-COPY)の方法を説明する。
図14は、実施形態1の変形例1に係る秘密計算用器具100Aを用いた複製演算のフローを示す図である。以下では、参加者Aが有する入力値bを秘密にしたまま、bの複製演算を実行する場合について説明する。
【0075】
複製演算のステップS10(符号化ルールの共有)は、
図5で説明した工程と同一の工程である。複製演算では、ステップS202にて、入力状態が
【数23】
となるように、入力操作が行われる。
図15は、複製演算における入力状態の合体構造物を示す平面図である。
図15では、観測方向視における合体構造物が図示されている。ここで、変形例1では、n個の入力値部品10について、入力状態において第1位置P1~第n位置Pnに配置される入力値部品10を、それぞれ、第1入力値部品101~第n入力値部品10nとする。ステップS202では、
図15に示すように、参加者Aの入力値bを示す状態の第1入力値部品101を表裏が秘匿された状態で第1位置P1に配置し、0の示す状態(即ち表の状態)の第2入力値部品102~第n入力値部品10nを第2位置P2~第n位置Pnに配置する。つまり、ステップS202では、入力状態において、n個の入力値部品10のうちの1個である第1入力値部品101を入力値bを示し且つ表裏が秘匿された状態で配置し、他のm個の入力値部品10の全てを0の値を示す状態(表の状態)に統一して配置する。入力状態では、他のm個の入力値部品10の表裏は秘匿されず、0を示す状態であることは全参加者に共有される。
【0076】
複製演算のステップS30(ランダム回転)は、
図5で説明した工程と同一の工程である。変形例1の観測状態では、角部202が左側に位置するように秘密計算用器具100Aを配置することで、基準線R1の延在方向における合体構造物の向きを入力状態における向きと一致させる。上述のように、変形例1では、n個の入力値部品10は基準線R1上に配置され、且つ基準線R1の延在方向における合体構造物の向きは入力方向と観測状態とで一致している。そのため、変形例1では、入力状態とランダム回転後の観測状態との間で、入力値部品10の表裏が反転することはあっても観測方向視における入力値部品10の位置が入れ替わることがない。複製演算における観測状態は、
【数24】
または
【数25】
と表される。
【0077】
複製演算では、ステップS402にて、観測状態において第1位置P1にある入力値部品10(即ち第1入力値部品101)が1を示す状態(つまり、裏の状態)であるか否かを判定する。観測状態において第1入力値部品101が1を示す場合(ステップS402:Yes)には、ステップS50に進み、基準線R1に関する鏡映変換により合体構造物の表裏を反転させ、出力状態とする。観測状態において第1入力値部品101が1を示す状態でない場合(ステップS402:No)、つまり、第1入力値部品101が0を示す状態(つまり、表の状態)である場合には、ステップS50の鏡映変換を行わず、合体構造物の表裏を反転させずに、出力状態とする。
【0078】
複製演算のステップS602は、出力状態において第2位置P2~第n位置Pnに配置されているm個の入力値部品10の状態を出力値とする。つまり、出力状態における第2入力値部品102~第n入力値部品10nの状態により示されるm個の値が、bの複製演算の出力値となる。その理由を以下に説明する。
【0079】
複製演算では、入力値bが0と1の何れであるか、及び観測状態が上記の数式24と数式25の何れの状態であるかに応じて、以下の表9に示す4つのケースの論理値対応表を得ることができる。
【表9】
【0080】
表9において、「入力値b」の欄は、秘密計算用器具100Aに入力される入力値bを示す。「観測状態」の「第1入力値部品の観測値」の欄は、観測状態における第1入力値部品101が示す値を示す。「出力状態」の「第2入力値部品~第n入力値部品の出力値」の欄は、出力状態における第2入力値部品102~第n入力値部品10nが示す値を示す。
【0081】
表9が示すように、出力状態における第2入力値部品102~第n入力値部品10nが示す値は、入力値bが0のとき(ケース1,2)には0となり、入力値bが1のとき(ケース3,4)には1となることが分かる。ここで、bの複製は、以下のように表すことができる。
【数26】
つまり、入力値bの複製演算の結果は、入力値bが0のときには0となり、入力値bが1のときには1となる。したがって、出力状態における第2入力値部品102~第n入力値部品10nの状態により示されるm個の値は、bの複製に等しい。
【0082】
ここで、ステップS402では、観測状態において第1入力値部品101の表裏を観測しているが、ステップS30において合体構造物をランダムに回転させているため、入力値bに関する情報が漏れることはなく、情報理論的に安全である。
【0083】
以上のように、実施形態1の変形例1に係る秘密計算用器具100Aを用いることで、入力値bを秘密にしたまま、入力値bの複製演算(m-COPY)を実行することが可能となる。
【0084】
なお、上述の複製演算では、ステップS202にて、入力状態が
【数27】
となるように、入力操作が行われてもよい。この入力状態は、数式23の入力状態に対して各入力値部品10の表裏を反転させた状態と等しい。つまり、数式27の入力状態は、数式23の入力状態と実質的に等しい。この場合においても上述の表9に示す4つのケースの論理値対応表を得ることができ、上記の数式26の結果と一致する。したがって、上記の数式27のように入力操作を行った場合であっても、出力状態における第2入力値部品102~第n入力値部品10nの状態により示されるm個の値は、bの複製と等しくなる。
【0085】
また、上述の複製演算では、ステップS202にて、入力状態が
【数28】
となるように、入力操作が行われてもよい。つまり、n個の入力値部品10のうちの1個である第1入力値部品101を入力値bを示し且つ表裏が秘匿された状態で配置し、他のm個の入力値部品10の全てを1の値を示す状態に統一して配置してもよい。入力状態では、他のm個の入力値部品10の表裏は秘匿されず、1を示す状態であることは全参加者に共有される。この場合、ステップS402では、観測状態における第1入力値部品101が0を示す状態(つまり、表の状態)であるか否かを判定する。0を示す場合には、ステップS50の鏡映変換を行い、出力状態とし、0を示す状態でない場合には、ステップS50の鏡映変換を行わず、出力状態とする。これにより、以下の表10に示す4つのケースの論理値対応表を得ることができる。
【表10】
【0086】
表10が示すように、出力状態における第2入力値部品102~第n入力値部品10nが示す値は、入力値bが0のとき(ケース1,2)には0となり、入力値bが1のとき(ケース3,4)には1となり、上記の数式26の結果と一致する。したがって、上記の数式28のように入力操作を行った場合であっても、出力状態における第2入力値部品102~第n入力値部品10nの状態により示されるm個の値は、bの複製と等しくなる。
【0087】
以上より、複製演算では、入力状態において、n個の入力値部品10のうちの1個である第1入力値部品101を入力値を示し且つ表裏が秘匿された状態で配置し、他のm個の入力値部品10の全てを0の値を示す状態と1の値を示す状態とのうち一方の状態に統一して配置する。そして、観測状態において、第1入力値部品101の表裏を観測し、0の値を示す状態と1の値を示す状態とのうち他方の状態だった場合には基準線R1に関する鏡映変換により合体構造物の表裏を反転させ、一方の状態だった場合には合体構造物の表裏を反転させないことで、合体構造物を出力状態とする。
【0088】
また、実施形態1の変形例1に係る秘密計算用器具100Aを用いた複製演算では、第1入力値部品101は第1位置P1に固定されているため、仮に参加者Aが第1入力値部品101に対して不正を秘密裏に行った場合であっても、参加者Aが不正を行ったことを容易に特定することができる。したがって、不正を抑止することができる。
【0089】
[変形例2]
図16は、実施形態1の変形例2に係る秘密計算用器具100Bの合体構造物を示す平面図である。
図16では、基準線R1の延在方向と左右方向とが一致し且つ符号203で示す角部が左側に位置するように秘密計算用器具100Bを配置し、観測方向に沿って視認した状態が図示されている。
【0090】
図16に示すように、実施形態1の変形例2に係る秘密計算用器具100Bは、複数の入力値部品10と合体用部品20Bとを備え、合体用部品20Bを介して複数の入力値部品10が合体することで、
図16に示すような合体構造物となる。変形例2に係る秘密計算用器具100Bは、少なくとも2個の入力値部品10を備える。秘密計算用器具100Bは、入力値b1,b2を秘密にしたまま、入力値b1,b2の排他的論理和演算(XOR)を実行可能とする。
【0091】
実施形態1の変形例2に係る合体用部品20Bは、観測方向視において、基準線R1に関して鏡映対称な五角形状の外形を有する。また、観測方向における合体用部品20Bの表裏は、判別不能である。合体用部品20Bは、基準線R1上に角部203を有する。角部203は、基準線R1の延在方向における合体構造物の向きを識別するための目印(標識)として機能する。また、合体用部品20Bには、入力値部品10の数に対応して、2個の嵌合孔20aが形成されている。2個の嵌合孔20aは、基準線R1上に形成されており、基準線R1の延在方向に沿って並んで配置されている。各嵌合孔20aに入力値部品10を嵌め込むことで、2個の入力値部品10と合体用部品20Bとが合体し、
図16に示す合体構造物となる。
【0092】
図16に示すように、実施形態1の変形例2に係る合体構造物は、基準線R1に関して鏡映対称な五角形状の外形を有する。また、観測方向における合体構造物の表裏は、判別不能である。一方で、角部202が形成されていることにより、変形例2に係る合体構造物は、基準線R1の延在方向においては非対称(鏡映対称ではない)となっている。合体構造物において、2個の入力値部品10は、それぞれ、観測方向視において確定される基準線R1上の2箇所の位置に配置される。変形例2では、便宜上、基準線R1の延在方向を左右方向と一致させた状態を基準として、2箇所の位置のうち左側の位置を第1位置P1とし、右側の位置を第2位置P2とする。但し、第1位置P1と第2位置P2の位置関係は、これに限定されず、逆であってもよい。また、秘密計算用器具100Bの合体構造物における各入力値部品10が示す値を
【数29】
と表すものとする。
【0093】
[秘密計算用器具を用いた排他的論理和演算]
次に、実施形態1の変形例2に係る秘密計算用器具100Bを用いた排他的論理和演算(XOR)の方法を説明する。
図17は、実施形態1の変形例2に係る秘密計算用器具100Bを用いた排他的論理和演算のフローを示す図である。以下では、2人の参加者A1,A2のそれぞれが有する入力値b1,b2を、参加者A1,A2が互いに秘密にしたまま、b1,b2の排他的論理和演算を実行する場合について説明する。
【0094】
排他的論理和演算のステップS10(符号化ルールの共有)は、
図5で説明した工程と同一の工程である。排他的論理和演算では、ステップS203にて、入力状態が
【数30】
となるように、入力操作が行われる。
図18は、排他的論理和演算における入力状態の合体構造物を示す平面図である。
図18では、観測方向視における合体構造物が図示されている。ここで、変形例2では、2個の入力値部品10のうち、入力状態において第1位置P1に配置される入力値部品10を第1入力値部品101とし、第2位置P2に配置される入力値部品10を第2入力値部品102とする。ステップS203では、
図18に示すように、入力値を示す状態の2個の入力値部品10を表裏が秘匿された状態で配置する。詳細には、参加者A1の入力値b1を示す状態の第1入力値部品101を表裏が秘匿された状態で第1位置P1に配置し、参加者A2の入力値b2を示す状態の第2入力値部品102を表裏が秘匿された状態で第2位置P2に配置する。
【0095】
排他的論理和演算のステップS30(ランダム回転)は、
図5で説明した工程と同一の工程である。変形例2の観測状態では、角部203が左側に位置するように秘密計算用器具100Bを配置することで、基準線R1の延在方向における合体構造物の向きを入力状態における向きと一致させる。上述のように、変形例2では、2個の入力値部品10は基準線R1上に配置され、且つ基準線R1の延在方向における合体構造物の向きは入力方向と観測状態とで一致している。そのため、変形例2では、入力状態とランダム回転後の観測状態との間で、入力値部品10の表裏が反転することはあっても観測方向視における入力値部品10の位置が入れ替わることがない。なお、排他的論理和演算の出力値を得る観点では、基準線R1の延在方向における合体構造物の向きを入力状態と観測状態とで一致させることは必須ではない。排他的論理和演算における観測状態は、
【数31】
または
【数32】
と表される。
【0096】
排他的論理和演算では、ステップS403にて、観測状態において第1位置P1にある入力値部品10(即ち第1入力値部品101)が1を示す状態(つまり、裏の状態)であるか否かを判定する。観測状態において第1入力値部品101が1を示す場合(ステップS403:Yes)には、ステップS50に進み、基準線R1に関する鏡映変換により合体構造物の表裏を反転させ、出力状態とする。観測状態において第1入力値部品101が1を示す状態でない場合(ステップS403:No)、つまり、第1入力値部品101が0を示す状態(つまり、表の状態)である場合には、ステップS50の鏡映変換を行わず、合体構造物の表裏を反転させずに、出力状態とする。
【0097】
排他的論理和演算のステップS603は、出力状態において第2位置P2に配置されている入力値部品10(即ち第2入力値部品102)の状態を出力値とする。つまり、出力状態における第2入力値部品102の状態により示される値が、b1,b2の排他的論理和演算の出力値となる。その理由を以下に説明する。
【0098】
排他的論理和演算では、入力値b1が0と1の何れであるか、及び観測状態が上記の数式31と数式32の何れの状態であるかに応じて、以下の表11に示す4つのケースの論理値対応表を得ることができる。
【表11】
【0099】
表11において、「入力値b1」の欄は、秘密計算用器具100Bに入力される入力値b1を示す。「出力状態」の「第2入力値部品の出力値」の欄は、出力状態における第2入力値部品102が示す値を示す。
【0100】
表11が示すように、出力状態における第2入力値部品102が示す値は、入力値b1が0のとき(ケース1,2)には入力値b2となり、入力値b1が1のとき(ケース3,4)には入力値b2のビット反転となることが分かる。ここで、b1とb2の排他的論理和は、以下のように表すことができる。
【数33】
つまり、入力値b1,b2の排他的論理和演算の結果は、入力値b1が0のときには入力値b2となり、入力値b1が1のとき(otherwise)には入力値b2のビット反転となる。したがって、出力状態における第2入力値部品102の状態により示される値は、b1,b2の排他的論理和演算の出力値に等しい。
【0101】
ここで、ステップS403では、観測状態において第1入力値部品101の表裏を観測しているが、ステップS30において合体構造物をランダムに回転させているため、入力値b1に関する情報が漏れることはなく、情報理論的に安全である。
【0102】
以上のように、実施形態1の変形例2に係る秘密計算用器具100Bを用いることで、入力値b1,b2を秘密にしたまま、入力値b1,b2の排他的論理和演算(XOR)を実行することが可能となる。
【0103】
なお、上述の排他的論理和演算では、ステップS203にて、
【数34】
となるように、入力操作が行われてもよい。この入力状態は、数式30の入力状態に対して各入力値部品10の表裏を反転させた状態と等しい。つまり、数式34の入力状態は、数式30の入力状態と実質的に等しい。この場合においても上述の表11に示す4つのケースの論理値対応表を得ることができ、上記の数式33の結果と一致する。したがって、上記の数式34のように入力操作を行った場合であっても、出力状態における第2入力値部品102の状態により示される値は、b1,b2の排他的論理和演算の出力値に等しい。
【0104】
また、上述の排他的論理和演算では、ステップS403にて、観測状態における第2入力値部品102が1を示す状態(つまり、表の状態)であるか否かを判定し、1を示す場合にはステップS50の鏡映変換を行って出力状態とし、1を示す状態でない場合にはステップS50の鏡映変換を行わずに出力状態としてもよい。そうすることで、ステップS603にて、出力状態における第1入力値部品101の状態により示される値が、b1,b2の排他的論理和演算の出力値となる。この場合、入力値b2が0と1の何れであるか、及び観測状態が上記の数式31と数式32の何れの状態であるかに応じて、以下の表12に示す4つのケースの論理値対応表を得ることができる。
【表12】
【0105】
表12において、「入力値b2」の欄は、秘密計算用器具100Bに入力される入力値b2を示す。「観測状態」の「第2入力値部品の観測値」の欄は、観測状態における第2入力値部品102が示す値を示す。「出力状態」の「第1入力値部品の出力値」の欄は、出力状態における第1入力値部品101が示す値を示す。
【0106】
さらに、b1とb2の排他的論理和は、以下のようにも表すことができる。
【数35】
表12が示すように、出力状態における第1入力値部品101が示す値は、入力値b2が0のとき(ケース1,2)には入力値b1となり、入力値b2が1のとき(ケース3,4)には入力値b1のビット反転となることから、上記の数式35の結果と一致する。したがって、観測状態における第2入力値部品102の観測結果に基づいて鏡映変換を行う場合は、出力状態における第1入力値部品101の状態により示される値が、b1,b2の排他的論理和演算の出力値と等しくなる。
【0107】
また、上述の排他的論理和演算では、ステップS203にて、入力状態が
【数36】
または
【数37】
となるように、入力操作が行われてもよい。つまり、2個の入力値部品10のうち一方を入力値を示す状態で配置し、他方を入力値のビット反転を示す状態にして配置してもよい。この場合、ステップS403では、観測状態における第1入力値部品101が0を示す状態(表の状態)であるか否かを判定し、0を示す場合にはステップS50の鏡映変換を行って出力状態とし、0を示す状態でない場合にはステップS50の鏡映変換を行わずに出力状態としてもよい。これにより、以下の表13に示す4つのケースの論理値対応表を得ることができる。
【表13】
【0108】
表13が示すように、出力状態における第2入力値部品102が示す値は、入力値b1が0のとき(ケース1,2)には入力値b2となり、入力値b1が1のとき(ケース3,4)には入力値b2のビット反転となることから、上記の数式33の結果と一致する。したがって、上記の数式37のように入力操作を行った場合であっても、出力状態における第2入力値部品102の状態により示される値は、b1,b2の排他的論理和演算の出力値に等しい。
【0109】
以上より、排他的論理和演算では、入力状態において、入力値または入力値のビット反転を示す状態の2個の入力値部品10を表裏が秘匿された状態で配置する。また、観測状態において、2個の入力値部品10のうち一方の表裏を観測し、観測結果に基づき、基準線R1に関する鏡映変換により合体構造物の表裏を反転させることで、合体構造物を出力状態とする。そして、出力状態において、2個の入力値部品10のうち他方の状態が排他的論理和演算の出力値となる。
【0110】
また、変形例2に係る秘密計算用器具100Bを用いた排他的論理和演算では、第1入力値部品101は第1位置P1に固定され、第2入力値部品102は第2位置P2に固定されているため、仮に参加者A1,A2の誰かが入力値部品10に対して不正を秘密裏に行った場合であっても、誰が不正を行ったのかを容易に特定することができる。したがって、不正を抑止することができる。
【0111】
[実施形態1の作用効果]
以上のように、実施形態1に係る秘密計算用器具100~100Bは、合体構造物の対称性を利用することで、単純なランダム回転により秘密の安全性を確保することができる。また、入力値部品10を表裏が判別不能な状態で合体可能であることから、各参加者の操作を公開した状態で論理演算を実行することができ、不正を防止し易い。以上のように、実施形態1に係る秘密計算用器具100~100Bによると、単純な操作で安全に秘密計算を人間により実行することが可能となる。
【0112】
また、実施形態1では、基準線R1の延在方向において合体構造物を非対称としている。これによると、基準線R1の延在方向における合体構造物の向きを判別可能とすることができる。そのため、入力状態と観測状態と出力状態とで、基準線R1の延在方向における合体構造物の向きを一致させることが容易となる。これによると、観測状態において観測すべき入力値部品10や出力状態において出力値を示す入力値部品10の特定が容易となる。なお、例えば、基準線R1回りの回転のみが許容され、基準線R1の延在方向における向きが変化しない状況で合体構造物をランダム回転させる場合には、合体構造物の向きを一致させる操作は不要となるため、基準線R1の延在方向において合体構造物が対称であってもよい。
【0113】
実施形態1に係る秘密計算用器具100~100Bは、例えば、3Dプリンターにより各部品を製作することで、実装することができる。
【0114】
<実施形態2>
以下、実施形態2に係る秘密計算用器具200について説明する。以下の説明では、
図1~
図18で説明した実施形態1との相違点を中心に説明し、同様の構成やステップについては同一の番号を付すことにより詳細な説明は割愛する。
【0115】
[全体構成]
図19は、実施形態2に係る秘密計算用器具200の合体構造物を示す平面図である。
図19では、基準線R1の延在方向と上下方向とが一致し且つ符号403で示す凸部に取り付けられた入力値部品30が上側に位置するように秘密計算用器具200を配置し、観測方向に沿って視認した状態が図示されている。
【0116】
図19に示すように、実施形態2に係る秘密計算用器具200は、複数の入力値部品30と合体用部品40とを備え、合体用部品40を介して複数の入力値部品30が合体することで、合体構造物となる。実施形態1に係る秘密計算用器具100と同様に、秘密計算用器具200は、少なくとも3個の入力値部品30を備え、論理積演算(AND)や論理和演算(OR)といった論理演算を実行可能とする。
【0117】
[入力値部品]
図20は、実施形態2に係る入力値部品30の側面図である。
図21は、実施形態2に係る入力値部品30の分解図である。
図20及び
図21では、表の状態にある入力値部品30が図示されている。入力値部品30は、本体ブロック3と一対のカバーブロック4,4とを含み、これらが合体可能である。
【0118】
図21に示すように、本体ブロック3は、立方体状の外形を有する本体部31と、本体部31に形成された突起である凸部32,33,34と、本体部31に形成された窪みである凹部35と、を有する。凸部32,33のそれぞれは、本体部31の側面のうち、観測方向において互いに反対側の側面に設けられている。また、凸部34と凹部35のそれぞれは、本体部31の側面のうち、観測方向に対して直交する方向において互いに反対側の面に設けられている。凹部35には、他の本体ブロック3の凸部34を嵌め込み可能である。これにより、後述の変形例のように、複数の入力値部品30を連結可能である。
【0119】
入力値部品30を本体ブロック3とカバーブロック4とに分解した状態では、凸部32と凸部33とを判別可能である。本実施形態では、凸部32と凸部33とで色を異ならせることで、凸部32と凸部33とを判別可能としている。なお、例えば凸部32と凸部33とで形状を異ならせる等、他の方法により凸部32と凸部33とを判別可能としてもよい。
【0120】
図20に示すように、一対のカバーブロック4,4は、本体ブロック3と合体することで、凸部32,33を隠蔽する。カバーブロック4には、凸部32,33を嵌め込み可能な凹部41が形成されている。カバーブロック凸部32,33のそれぞれにカバーブロック4を取り付けることで、本体ブロック3と一対のカバーブロック4,4とが合体する。
【0121】
入力値部品30は、観測方向において凸部32が手前側(つまり、凸部33が奥側)を向いた状態と凸部32が奥側(つまり、凸部33が手前側)を向いた状態との、2種類の状態をとり得る。例えば、凸部32が手前側を向いた状態を「表」とし、凸部32が奥側を向いた状態を「裏」として、入力値部品30の表裏の状態を0及び1に対応付け(ラベル付け)可能である。これにより、入力値部品30の状態に応じて入力値bを表すことが可能である。例えば、
図20に示されるように入力値部品30が表の状態のときに「0」を示し、入力値部品30が裏の状態のときに「1」を示すものとして、入力値の符号化ルールを定めてもよい。但し、符号化ルールはこれに限定されない。
【0122】
ここで、本体ブロック3と一対のカバーブロック4,4とが合体した状態では、凸部32,33がカバーブロック4によって隠蔽されるため、外部からは本体ブロック3の向きを視認することができない。さらに、一対のカバーブロック4,4の判別が不能であるため、本体ブロック3と一対のカバーブロック4,4とが合体した状態では、入力値部品30の表裏(即ち入力値)は判別不能である。入力値部品30を本体ブロック3とカバーブロック4とに分解し、凸部32または凸部33の向きを確認することで、入力値部品30の表裏を判別可能となる。なお、実施形態2に係る入力値部品30は、外形だけなく内部形状も含めた全体の形状が観測方向において対称となっているため、観測方向における物質の分布が対称となる。これにより、入力値部品30は、目視による表裏の判別ができないだけでなく、これを手に取ったり運動させたりしても表裏の判別が不能である。これにより、秘匿性をより高めることができる。
【0123】
[合体用部品]
図22は、実施形態2に係る合体用部品40の平面図である。合体用部品40は、複数の入力値部品30を結合することで、複数の入力値部品30と一体となって合体構造物を構成する。合体用部品40の形状は、入力値部品30の本体ブロック3の形状と同一である。合体用部品40は、立方体状の外形を有する本体部401と、本体部401に形成された突起である凸部402,403,404と、本体部401に形成された窪みである凹部405と、を有する。凸部402,404のそれぞれは、本体部401の側面のうち、基準線R1の延在方向に対して直交する方向において互いに反対側の側面に設けられている。また、凸部403と凹部405のそれぞれは、本体部401の側面のうち、基準線R1の延在方向において互いに反対側の面に設けられている。凸部402,403,404は、入力値部品30の凹部35に嵌め込み可能である。これにより、凸部402,403,404に入力値部品30を取り付け可能である。
【0124】
[合体構造物]
図19に示すように、合体用部品40に入力値部品30が取り付けられた合体構造物は、観測方向視において、基準線R1に関して鏡映対称な外形を有する。また、観測方向における合体構造物の表裏は、判別不能である。なお、凸部403に入力値部品30が取り付けられることで、秘密計算用器具200の合体構造物は、基準線R1の延在方向においては非対称となっている。凸部403に取り付けられた入力値部品30は、基準線R1の延在方向における合体構造物の向きを識別するための目印(標識)として機能する。
【0125】
実施形態2に係る秘密計算用器具200の合体構造物は、外形だけなく全体形状が観測方向において対称となっているため、観測方向における物質の分布が対称となる。これによると、合体構造物は、目視のみならず手に取ったり運動させたりしても表裏の判別が不能となる。これにより、秘匿性をより高めることができる。さらに、合体構造物をランダム回転させたときには、表裏のそれぞれがちょうど1/2の確率で現れることになるため、ランダム性(秘密の安全性)をより高めることができる。
【0126】
ここで、
図19に示すように、実施形態2に係る秘密計算用器具200の合体構造物において、3個の入力値部品30が配置される位置を、それぞれ、第1位置P1~第3位置P3とする。第1位置P1~第3位置P3は、それぞれ、合体用部品40の凸部402~404に対応している。観測方向視において、第2位置P2は基準線R1上の位置であり、第1位置P1及び第3位置P3は基準線R1の延在方向に対して直交する方向(本実施形態では左右方向)において第2位置P2の両側の位置である。
【0127】
[論理積演算・論理和演算]
図5や
図11で説明した方法と同様の方法により秘密計算用器具200を用いることで、実施形態1と同様に、入力値b1,b2の論理積演算や論理和演算の結果を出力することができる。具体的には、入力状態において、入力値または入力値のビット反転を示す状態の入力値部品30を表裏が秘匿された状態で第1位置P1及び第2位置P2に配置し、1または0を示す状態の入力値部品30を第3位置P3に配置し、合体構造物をランダム回転させる。そして、基準線R1の延在方向における合体構造物の向きを入力状態における向きと一致させて観測状態とし、第2位置P2にある入力値部品30の観測結果に基づいて、基準線R1に関する鏡映変換を行う。これにより、出力状態において第1位置P1にある入力値部品30により示される値が、論理積演算または論理和演算の出力値となる。
【0128】
[実施形態2の変形例]
以下、実施形態2の変形例について、
図19~
図22で説明した秘密計算用器具200との相違点を中心に説明する。
【0129】
[変形例1]
図23は、実施形態2の変形例1に係る秘密計算用器具200Aの合体構造物を示す側面図である。
図23では、基準線R1の延在方向と左右方向とが一致し且つ入力値部品30の凸部34が左側に位置するように秘密計算用器具200Aを配置した状態が図示されている。
図23に示すように、変形例1に係る秘密計算用器具200Aは、合体用部品40を備えず、入力値部品30同士が直接合体することで、合体構造物となる。
【0130】
実施形態2の変形例1に係る秘密計算用器具200Aは、少なくともn個(n=m+1、mは自然数)の入力値部品30を備える。秘密計算用器具200Aは、実施形態1の変形例1に係る秘密計算用器具100Aと同様に、入力値bをm個複製する複製演算(m-COPY)を実行可能とする。
【0131】
図23に示すように、実施形態2の変形例1に係る合体構造物は、n個の入力値部品30が基準線R1の延在方向(左右方向)に沿って並んで配置されている。互いに隣り合う入力値部品30,30は、一方の凸部34が他方の凹部35に嵌め込まれることで、互いに連結されている。実施形態2の変形例1に係る合体構造物は、基準線R1に関して鏡映対称な外形を有する。また、観測方向における合体構造物の表裏は、判別不能である。なお、凸部34が設けられることで、秘密計算用器具200Aの合体構造物は、基準線R1の延在方向においては非対称となっている。凸部34は、基準線R1の延在方向における合体構造物の向きを識別するための目印(標識)として機能する。
【0132】
ここで、
図23に示すように、秘密計算用器具200Aの合体構造物において、n個の入力値部品30が配置される基準線R1上のn箇所の位置を、それぞれ、左側から順に、第1位置P1、第2位置P2、・・・第n位置Pnとする。また、入力状態において第1位置P1~第n位置Pnに配置される入力値部品30を、それぞれ、第1入力値部品301~第n入力値部品30nとする。
【0133】
[複製演算]
図14で説明した方法と同様の方法により秘密計算用器具200Aを用いることで、実施形態1と同様に、入力値bの複製演算を実行することができる。具体的には、入力状態において、入力値bを示す状態の第1入力値部品301を表裏が秘匿された状態で第1位置P1に配置し、他のm個の入力値部品30の全てを0の値を示す状態と1の値を示す状態とのうち一方の状態に統一して第2位置P2~第n位置Pnに配置し、ランダム回転させる。そして、基準線R1の延在方向における合体構造物の向きを入力状態における向きと一致させて観測状態とし、第1入力値部品301の観測結果に基づいて、基準線R1に関する鏡映変換を行う。これにより、出力状態において第2入力値部品302~第n入力値部品30nにより示されるm個の値が、複製演算の出力値となる。
【0134】
[変形例2]
図24は、実施形態2の変形例2に係る秘密計算用器具200Bの合体構造物を示す側面図である。
図24では、基準線R1の延在方向と左右方向とが一致し且つ入力値部品30の凸部34が左側に位置するように秘密計算用器具200Bを配置した状態が図示されている。
図24に示すように、変形例2に係る秘密計算用器具200Bは、変形例1に係る秘密計算用器具200Aと同様に、合体用部品40を備えず、入力値部品30同士が直接合体することで、合体構造物となる。
【0135】
実施形態2の変形例2に係る秘密計算用器具200Bは、少なくとも2個の入力値部品30を備える。秘密計算用器具200Bは、実施形態1の変形例2に係る秘密計算用器具100Bと同様に、入力値b1,b2の排他的論理和演算(XOR)を実行可能とする。
【0136】
図24に示すように、実施形態2の変形例2に係る合体構造物は、2個の入力値部品30が基準線R1の延在方向(左右方向)に沿って並んで配置されている。2個の入力値部品30,30は、一方の凸部34が他方の凹部35に嵌め込まれることで、互いに連結されている。実施形態2の変形例2に係る合体構造物は、観測方向視において、基準線R1に関して鏡映対称な外形を有する。また、観測方向における合体構造物の表裏は、判別不能である。なお、凸部34により、秘密計算用器具200Bの合体構造物は、基準線R1の延在方向においては非対称となっている。
【0137】
ここで、
図24に示すように、秘密計算用器具200Bの合体構造物において、2個の入力値部品30が配置される基準線R1上の2箇所の位置を、それぞれ、左側の位置を第1位置P1とし、右側の位置を第2位置P2とする。また、入力状態において第1位置P1に配置される入力値部品30を第1入力値部品301とし、第2位置P2に配置される入力値部品30を第2入力値部品302とする。
【0138】
[排他的論理和演算]
図17で説明した方法と同様の方法により秘密計算用器具200Bを用いることで、実施形態1と同様に、入力値b1,b2の排他的論理和演算を実行することができる。具体的には、入力状態において、入力値または入力値のビット反転を示す状態の入力値部品30を表裏が秘匿された状態で第1位置P1及び第2位置P2に配置し、ランダム回転させる。そして、基準線R1の延在方向における合体構造物の向きを入力状態における向きと一致させて観測状態とし、2個の入力値部品30のうち一方を観測した観測結果に基づいて、基準線R1に関する鏡映変換を行う。これにより、出力状態において2個の入力値部品30のうち他方により示される値が、排他的論理和演算の出力値となる。
【0139】
[実施形態2の作用効果]
実施形態2に係る秘密計算用器具200~200Bによると、上述の実施形態1と同様の作用効果を得ることができる。即ち、単純な操作で安全に秘密計算を人間により実行することが可能となる。
【0140】
実施形態2に係る秘密計算用器具200~200Bは、例えば、市販のブロック玩具を組み合わせることで、実装することができる。
【0141】
<その他>
以上、本開示の実施形態について説明したが、本開示の構成は、上記の実施形態に限定されるものではなく、様々な変形が可能である。上記の実施形態は、適宜、可能な限り組み合わせて実施することができる。
【0142】
例えば、複数の合体構造物をブラックボックスに入れ、無作為にシェイクすることで、ランダム回転の並列化を実現することができる。つまり、複数の論理演算を並列して実行することができる。その結果、複数の秘密計算を効率的に実行することができる。このとき、互いに同一形状で区別がつかない合体構造物に関しては、合体構造物間のランダム置換も実現されることになる。このことは、例えば、複数の合体構造物により複数の排他的論理和演算を並列して実行し、各合体構造物に対する入力経路を秘匿しながらも各合体構造物から得られる出力値に基づいてハミング重みの計算結果を求める場合に有用である。
【0143】
また、秘密計算用器具により出力される論理演算の出力値は、論理演算の実行後に直ちに観測してもよいし、観測せずに秘匿したまま、次の論理演算の秘密の入力値として用いてもよい。例えば、出力状態において出力値を示す入力値部品の状態を観測せずに、当該入力値部品を用いて別の論理演算を実行してもよい。
【0144】
上述の実施形態に係る秘密計算用器具は、例えば、情報教育分野、娯楽分野、災害セキュリティ分野において有用性が想定される。情報教育の観点では、秘密計算用器具を用いることで、直感的に分かり易く秘密計算を実行することができるため、使用者は、暗号や回路、セキュリティについて楽しく学ぶことができる。また、娯楽の観点では、遊びの中で様々な秘密計算を実行することが可能となる。例えば、あるグループ内で気に入った相手を秘密情報として、それを秘匿した状態でマッチングが成立したペアのみを明らかにする、といった遊びに秘密計算用器具を利用することができる。また、災害セキュリティの観点では、災害時に電気を使えない状況であっても、秘密計算用器具を用いることで、人間が物理的に暗号計算を実行することが可能となる。
【符号の説明】
【0145】
1:凸状部材
2:凹状部材
3:本体ブロック
4:カバーブロック
10,30:入力値部品
20,40:合体用部品
100,200:秘密計算用器具
P1:第1位置
P2:第2位置
P3:第3位置
Pn:第n位置
R1:基準線