Algorithm-Design

在執行時創建加密算法

  • November 14, 2019

是否有可能創建一個程序來創建加密算法(即加密或散列),使用其他算法的眾所周知的元素,就像算法“重用”系統,如 Feistel 的結構?也就是說,最終決定使用結合了 Rijndael KeySchedule 和 Pseudo-Hadamard Transform 的算法。所有這些都正確地應用了香農的擴散和混淆概念。

這樣做的目的是在通信期間反復更改密碼系統,因此,如果您想對消息進行密碼分析,則必須對幾種不同的算法進行密碼分析。以這種方式,也將獲得一種 PFS(完美前向保密)。

編輯:我並沒有提議通過默默無聞來使用安全性,實際上我認為新密碼系統的協商是公開的,就像 TLS 中密碼系統的協商是公開的一樣,只有密鑰是機密的(共享使用眾所周知的密鑰分發算法,如 DH 或 RSA)。另一方面,我知道前向保密的定義,這就是我說“一種”的原因。我指的是攻擊者在之前的算法中發現漏洞的場景,但是由於目前正在使用的另一個完全不同,密碼分析現在不同,並且在被破壞的算法之前和之後傳輸的資訊將保持不洩露,類似於PFS 的概念。

關於使用已經使用的算法(因此在理論上證明了它們的安全性),我不打算創建一個在全球範圍內(甚至是小規模)採用的新系統,我只是嘗試創建一個類似的系統的可能性因此,例如,發現 AES 是無效的,並沒有公開自採用 AES(或任何其他算法)以來進行的所有通信。我的意思是,我提出了不信任單一算法的可能性,並且考慮到存在無限通信的問題,解決方案將是生成無限算法。

這並沒有增加新的安全性,而只是改變了它。

加密算法經過仔細研究。嗯…我沒有說得足夠強調。加密算法經過仔細研究。那裡。這樣更好。

在設計算法時,會有各種各樣的細微差別。一個著名的例子是 DES 中的一些 S-Box,它們是在分類環境中開發的。許多人認為它們是 NSA 的後門。幾年後,差分密碼分析被“發現”,突然我們發現這些 S-Box 是阻止這種攻擊的東西(因此 NSA 已經清楚地知道這些攻擊有一段時間了)。這不是“通過組合正確的位而變得幸運”的事情。是經過深思熟慮的。

因此,您的混合搭配算法可破解的可能性遠遠大於任何仔細研究過的算法。大得多。它基本上保證了專門的攻擊者會破壞你的算法。你買的東西是匿名的。通過使用公開接受的算法,您正在使用一種可以為攻擊者破解提供巨大價值的算法。如果他們可以訪問您的小秘密,他們也可以訪問銀行大型機之類的東西。

所以你讓自己在對抗一個相當堅定的攻擊者時變得更弱,同時讓自己在對抗像一個國家這樣非常強大的攻擊者時變得更強大。還是你?

最後一個要處理的問題是您正在混合和匹配已知的算法片段,並且從您的評論中您選擇的片段是公開的。正如我之前所說,這些算法經過仔細研究。這也意味著這些算法必須針對的攻擊也是眾所周知的。因此,您需要做的就是確定您使用的是哪種基本模式,列出針對它的已知攻擊列表,並找出哪些攻擊有效。這讓你處於一個奇怪的角落,人工智慧實際上可能有足夠的數據以足夠方便的形式提供給它,以進行加密。

這將是一個高技能的攻擊者能夠做到的事情,所以你並沒有真正解決任何問題。

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