Permutation

Even-Mansour Cipher:用於對隨機排列進行採樣的高效算法

  • April 11, 2022

我對 Even-Mansour 密碼的理解如下:

  • 我們畫一個隨機排列 $ P $ 從所有排列的集合 $ P: {0,1}^n \rightarrow {0,1}^n $ . 這種排列是公開的。
  • 我們生成兩個隨機密鑰 $ k_1, k_2 \in {0,1}^n $ .
  • 加密消息 $ m \in {0,1}^n $ , 我們計算 $ E_{k_1, k_2} = P(m \oplus k_1) \oplus k_2 $ .

存在什麼樣的算法可以讓我們有效地採樣(和表示)排列 $ P $ 從所有排列的集合中 $ n $ 位串到 $ n $ 位串?

Even-Mansour 是一個證明安全結果的理論模型。需要對以下排列進行採樣 $ n $ 位,說 $ n=128, $ 因為由此產生的空間 $ N=2^n $ 對象太大而無法儲存或操作。這類似於在現代密碼學中沒有人在 OTP 模式中使用純隨機的等分佈和 iid 比特序列作為密鑰流的事實。它太慢了。

然而,下面的算法給出了一個隨機排列 $ {1,2,\ldots, N}. $ 這裡沒有聲稱最佳效率。

小列表隨機排列程式碼

**輸入:**列表 $ A=[1,2,\ldots, N] $ 的 $ N=2^n $ 項目。

**任務:**置換中的值 $ A $ 隨機。

讓 $ S:={u: u \in A}. $ 讓 $ B:=A $

對於每個 $ i=1,\ldots,N $

$ \quad $ 選擇一個隨機整數 $ j \in S $

$ \quad $ 更改數組 $ B $ 通過 $ B[j]:=A[i] $

$ \quad $ 消除 $ j $ 從集合 $ S $

結束 這個算法選擇 $ N, $ 然後 $ N-1 $ , 然後 $ N-2 $ 等對像一致並且可以以相等的可能性生成每個排列,因為它使 $ N! $ 選擇。 **輸出:**列表 $ A $ 現在是隨機的。

有更有效的隨機排列採樣方法,例如參見 Jens Gustedt,“隨機排列的有效採樣”,離散算法雜誌,卷。6, Issue 1, 2006. 也看看 Fisher-Yates shuffle 和 Knuth Shuffle,google 是你的朋友。

下面的算法並沒有完全到達那裡,感謝@kelalaka 的更正

**輸入:**列表 $ A={1,2,\ldots, N} $ 的 $ N=2^n $ 項目。

**任務:**置換中的值 $ A $ 隨機。

對於每個 $ i=0,\ldots,N-1 $

$ \quad $ 選擇一個隨機整數 $ j $ 和 $ i<j<N. $

$ \quad $ 交換條目 $ A[i] $ 和 $ A[j]. $

結束

**輸出:**列表 $ A $ 現在是隨機的。

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