第一個排列ķķk素數作為單向函式?
讓 $ a_1 $ 通過 $ a_k $ 是第一個的一些排列 $ k $ 素數。讓 $ n \in [1,k!] $ 是一個參數,通過採用 $ n $ 排序列表或其他一些簡單機制中的排列。
然後定義 $ f(n,k)=a_1^{p_1}+a_2^{p_2}+\ldots+a_k^{p_k} $ , 在哪裡 $ p_i $ 是個 $ i $ 素數,和 $ a_i $ 是由表示的素數的排列 $ n $ .
例如 $ f(5,4)=2^2+7^3+3^5+5^7=78715 $ .
我推測所有這些總和可能是不同的。假設這是真的,這似乎可以作為一個使用適當高值的雙射單向函式 $ k $ 和一個有效的隨機排列。
對於非常小的 $ k $ (取決於 $ 20 $ 左右), $ f(n,k) $ 總和分散得很遠,單個術語幾乎沒有重疊的機會,因此很容易貪婪地找到正確的輸入。除此之外,它很快變得更加困難。除非有一些我看不到的整潔的解決方案,找到 $ f^{-1}(f(n,k)) $ 一旦擴展到 $ k>1000 $ 或更多,而 $ f(n,k) $ 計算到非常大的值是微不足道的。因此,我的問題:
可以 $ f(n,k) $ 可以想像做一個合適的單向函式嗎?
特別是,我正在尋找有關是否有可能有效找到的方法的建議 $ f^{-1}(f(n,k)) $ 畢竟,還有是否 $ f $ 看起來它具有其他屬性,使其成為此目的的強或差選擇。
就目前而言,這是一個難以評估且效率低下的提案。
首先密鑰大小是有效的 $ \log n!=O(n (\log n-1)) $ 但最大值(為恆等排列獲得)是 $ \sum_{i\leq k} p_i^{p_i} $ 大於
$$ (n \log n)^{n \log n}=O(e^{n (\log n)^2}). $$
您需要查看減少模數,以便擴大整數以使其有效。
雖然可能需要可解的丟番圖方程類型(對於主要參數)才能使原始函式發生碰撞,但這些事情幾乎不可能證明。我不是專家,但我知道即使是幾個學期也沒有這樣的結果。
一旦你做了一個模組化的減少,所有的賭注都沒有了。
在計算上,您可能無法檢查前 20 個左右的素數是否沒有碰撞。
一個想法是檢查固定函式集的值的差異 $ k $ 給,因為有二次方的差異,他們更有可能重複。如果發生這種情況,這意味著您可能能夠找到會產生碰撞的模組化歸約。