Public-Key

可以將具有公共索引的模冪運算視為安全排列嗎?

  • June 25, 2021

安全排列可用於 Sponge 和 Duplex 構造,以建構散列函式和加密。為了在公鑰密碼學中潛在地使用它們,需要一些算術屬性。

可以將具有公共索引的模冪運算視為安全排列嗎?有哪些公開攻擊可用?是否存在被證明不安全的結構?

可以將具有公共索引的模冪運算視為安全排列嗎?

我假設排列思想是 $ f_{(n,e)}:\ x\mapsto x^e\bmod n $ 奇怪的 $ n>2 $ , 奇怪的 $ e>1 $ , 和 $ x $ 在集合中 $ {0,1,\ldots n-2,n-1} $ 少一些子集 $ {0,1,n-1} $ .

$ f_{(n,e)} $ 是一個排列,當 $ n $ 是無平方的,並且 $ e $ 與 $ \varphi(n) $ .

什麼時候 $ n $ 有 $ k $ (不同的)主要因素, $ f $ 有 $ 3^k $ 靜止點:任意 $ x $ 和 $ x\bmod p\in{0,1,p-1} $ 對於每個素數 $ p $ 劃分 $ n $ . 那總是包括 $ 0 $ , $ 1 $ , 和 $ n-1 $ ,這就是我們可能想要刪除它們的原因。

如果 $ 2^i+3 $ 是素數(即對於 $ i $ 在A057732中),和 $ e $ 與 $ 2^i+2 $ , 然後 $ g_{(i,e)}:\ x\mapsto((x+2)^e-2)\bmod(2^i+3) $ 是一個排列 $ [0,2^i) $ (它很容易映射到 $ i $ -bit 位串),去除了三個明顯的固定點。我們可能還想要 $ e>i $ ,並且可能想要 $ e $ 低漢明權重。該構造可能有用的範例: $ (i,e)=(30,65) $ , 或者 $ (i,e)=(784,1025) $ . 後者是一個 98 字節的排列,評估起來相當快。在一些加密環境中有很好的硬體支持。

當因式分解時,排列很容易可逆 $ n $ 是公開的:我們像在 RSA 中那樣做,更糟的是 $ \log_2(n)/\log_2(e) $ 比直接排列更昂貴。

那安全嗎?這取決於使用情況。它擁有 $ f_{(n,e)}(x)f_{(n,e)}(y)\bmod n=f_{(n,e)}(x,y\bmod n) $ , 這使得排列 $ f_{(n,e)} $ 非常特別,並且有模擬屬性 $ g_{(i,e)} $ . 因此,在這些的所有案例中,我們沒有一個很好的隨機排列替代品,但是當在一些對稱加密原語中與 XOR 結合幾輪時,這可能會做到。

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