是不是Bob?
是誰?
Problem
Solution
B 有 \(j\) million
隨機選擇 \(N\)-bit 的 \(x\)
計算 \(E_A(x)\)
把 \(E_A(x)-j+1\) 傳給A
A 有 \(i\) million
對於 \(u=1,...,10\) 計算
\(y_u=D_A(E_A(x)-j+u)\)若 \(u=j\),則 \(y_u=x\)
隨機選則 \(N/2\)-bit 的質數 \(p\)
對於 \(u=1,...,10\) 計算
\(z_u=y_u\text{ mod }p\)若 \(u=j\),\(z_u=x\text{ mod }p\)
把 \(p,z_1,...z_i,z_{i}+1,...,z_{10}+1\) 傳給
B
若 \(z_u\) 的差沒有超過2
重新選擇 \(p\)
確保 \(z_a+1 \neq z_b\)
B
檢查第 \(j\) 個值是否等於 \(x\text{ mod }p\)
如果是: \(j \leq i\)
else: \(j>i\)
告訴A 結果
Note:
\(\begin{cases}
{\text{if }j\text{ in }(z_1,...,z_i),} \\
{\Rightarrow z_j=y_j=D_A(E_A(x))\text{ mod }p=x\text{ mod }p}\\
{\Rightarrow j^{\text{ th}}=x\text{ mod }p}\\
{\Rightarrow j \leq i} \\
{\text{other }z_u=y_u\text{ mod }p=D_A(E_A(x)-j+u)\text{ mod }p}\\
{\Rightarrow \text{unknown to B}} \\
{\text{if }j\text{ in }(z_{i+1}+1,...,z_{10}+1),} \\
{\Rightarrow z_{i+1}+1=y_{i+1}+1=D_A(E_A(x)-j+i+1)+1\text{ mod }p}\\
{\Rightarrow \text{unknown to B}} \\
\end{cases}\)
可以是 random order,B 只要檢查 \(x\text{ mod }p\) 是否在裡面
Leakage
如果違反者的 view 跟 honest 的人的 output 相關
simulator 可以 capture 此相關性
需要 \(E\) 是 probabilistic
計算 \(E(-a)\)
選擇隨機數 \(r\)
計算 \(E(b)\)
計算 \(E(b-a)\)
計算 \(E(r(b-a))\)
計算 \(E(r(b-a)+b)\)皆用 additively homomorphic
解密 \(E(r(b-a)+b)\)
若為 \(b==a\) ,則 \(a=b\)
反之為一隨機數
計算多項式 \(f(X)=\Pi(X-a_i)(i=1,...,k)=X^k+a_{k-1}X^{k-1}+...+a_0\)
計算 \(E(a_i)\) 並傳給 \(B\)
選擇隨機數 \(r_i (i=1,...,k)\)
計算 \(c_i=E(r_if(b_i)+b_i)\) 並傳給 \(A\)\(A\) 和 \(B\) 的 set 個數相等為 \(k\)
解密 \(E(r_if(b_i)+b_i)\)
看哪個對應到自己的 \(a_i\)\(f(b_i)=0\) 如果 \(b_i=a_j\)
input: \(E(b),E(b')\)
計算 \(\pi_{Mult}(E(1-b),E(b'))=E(c)\)
\(o_B\leftarrow_{rnd}\{0,1\}\)
\(E(c'):=\begin{cases}{blind(E(c))\text{ , if }o_b=0}\\ {blind(E(1-c))\text{ , otherwise}}\end{cases}\)
解密 \(E(c')\)
只有\(A\) 知道 \(c'\)
設 \(o_A=c'\)
\(A\) output \(o_A\)
\(B\) output \(o_B\)
paper based system 用電子計票
Goal
因 cryptography 難理解,難被大家信任
basic idea
operation
weakness