是否有任何返回第一個輸入的加密循環函式?
我想使用返回初始輸入或與之相關的東西(如其雜湊)的加密函式,該函式應該像加密某些數據或其雜湊一樣工作,然後加密數據的輸出,並再次加密它,然後循環繼續特定數量的迭代,最後它可以在迭代後產生第一個輸入,這意味著在循環結束時它將解密原始輸入。
假設我們可以在加密中需要時使用任何不同的密鑰或相同的密鑰,並且該函式只能以一種方式執行,它不能是可逆的,所以我不能從後循環執行這個過程,最後它應該返回第一個輸入或通過檢查它的雜湊或類似的東西來與其第一個輸入相關的東西。
我的意思是可逆的,它只能從 data1 到 data2 到 data3 等等.. 直到 data(x-1) 到 datax 然後再到 data1,我不希望它也像 data1 到 datax 一樣從後面去data(x-1) 以此類推,直到 data2 再次變為 data1。
要求
- 一些“特定數量的迭代(..)產生第一個輸入”
- “該功能只能以一種方式進行;它不能可逆”
不兼容(除非 1 的迭代需要秘密/密鑰,並且在嘗試反轉 2 期間該秘密不可用,問題並未暗示)。
因此無法獲得所詢問的內容。
參數:對於任何公共函式 $ f $ 來自和到某個具有屬性 1 的域,以及任何 $ y $ 在域中,我們可以找到解決方案 $ x $ 至 $ y=f(x) $ 經過
- 讓 $ x=y $ 和 $ z=f(y) $
- 儘管 $ z\ne y $
- 讓 $ x=z $ 和 $ z=f(z) $
- 輸出 $ x $ 並停止
這將循環一些有限的次數(最多是特定的迭代次數,並且總是其除數)。
注意:這個問題不是很精確,並且給“或其雜湊”留下了一些餘地;因此,事情並不像上面那麼清楚。但是我找不到與該問題相匹配的精確問題陳述,並且通過類似的論點證明這不是不可能的。
如果問題被修改並變得精確,我準備修改該答案,例如區分需要秘密的操作和不需要的操作,或以其他方式限制要求以防止我描述的不可能。
每個具有固定域的加密雜湊都是這樣的。
IE,經過太多次迭代 x = hash(x) 後,就會到達原來的 x。問題是,對於強散列,所述循環中的迭代次數是未知的,並且可能非常長(在找到循環之前進行大量迭代)。