Randomness

使用 Ishai-Sahai-Wagner 方案的安全邏輯與

  • July 27, 2016

我想嘗試實現一個安全的和這裡描述的方式: https ://eprint.iacr.org/2010/441.pdf

它說有兩個位 a 和 b 並且它們已被分成 d+1 份。我怎樣才能分裂一點?我想沒有比一點更原子的東西了,不是嗎?你能給我一個關於如何做到這一點的例子嗎?我的意思是我可以這樣說,例如:

讓 $ d $ 是 4. 假設 $ a $ = 1,那麼我可以將其拆分為以下 4 份: $ a_1 = 1, a_2 = 1, a_3 = 1, a_4 = 0 $ 因為那時它認為 $ 1 \mathbin{\oplus}1\mathbin{\oplus}1\mathbin{\oplus}0 = 1 = a $ . 這是什麼意思 $ d $ 分享?我假設這些份額是隨機值?

我嘗試了安全 AND 的第一個實現,如下所示:

void SecAND(char a, char b, char* arr, char* brr)
{
 int i; int j;
 int d = 4;
 int r[4][4];
 int c[4];
 for(i = 0; i < d; i++)
 {
     for(j = i+1; j < d; j++)
     {
         srand(time(NULL));
         int rij = rand() % 2;
         r[i][j] = rij;
     }
 }

 for(i = 0; i < d; i++)
 {
     for(j = i+1; j < d; j++)
     {
         r[j][i] = (r[i][j]^(arr[i]*brr[j]))^(arr[j]*brr[i]);
     }
 }

 for(i = 0; i < d; i++)
 {
     c[i] = (arr[i]*brr[i]);

     for(j = 0; j < d; j++)
     {
         if(j != i)
         {
             c[i] = c[i] ^r[i][j];
         }
     }
 }

}

這可能是正確的嗎?

“分裂成 $ d + 1 $ 在引言中提到了秘密共享方案並提到了門檻值屬性。因此,這個特定的 IACR 預印本並不是秘密共享的最佳來源。我建議從 Shamir 秘密共享算法開始。

用於實現安全與門的 ISW 算法: ISW 算法

為了擁有安全的與門,您應該計算編碼 $ c=\sum_{i,j} a_i b_j $ 如下:

$ c=a_i b_j \oplus z_{ij} $

那 $ z_{ij} $ 為了 $ i<j $ 是隨機的並且對於 $ i>j $ 是:

$ z_{ij}=(z_{ji} \oplus a_i b_j)\oplus a_j b_i $

例如,下圖是具有 2 個輸入共享 (s=2) 的與門: s=2

或下圖是 s=3 輸入份額的與門: s=3

注:圖片來源:https ://eprint.iacr.org/2015/719

引用自:https://crypto.stackexchange.com/questions/37917