哪些論文描述了密碼算法背後的基本原理
我正在嘗試向自己介紹加密雜湊和加密。我正在尋找各種原始論文,以描述他們為什麼選擇某些數字、它們是否相關以及為什麼選擇某些算法特徵背後的靈感。但是到目前為止我發現的每一篇論文都是這樣的,它只是描述了像百科全書元數據這樣的算法。我在哪裡可以找到骨頭上的肉,他們為什麼選擇某些功能?
我假設從早期的算法(如 SHA1)開始可能會更好,因為它們可以更詳細地指定推理。但是當他們使用更新的(和安全的)算法時,他們只是引用舊算法來解釋決策背後的含義。
我正在尋找諸如 SHA256 或其他安全算法之類的東西,但也許更簡單的非安全算法是更好的開始。例如,為什麼SHA1 算法使用 5 個素數?為什麼不是 4、8 或非素數?
Before processing any blocks, the H's are initialized as follows: in hex, H0 = 67452301 H1 = EFCDAB89 H2 = 98BADCFE H3 = 10325476 H4 = C3D2E1F0.
就是這麼說的。
首先,我理解您的問題以及隨之而來的挫敗感,這並不少見。我會警告你,從我的角度來看,沒有一個簡單的答案可以提供快速的滿足感。但讓我試著為你指出正確的方向。
對於一個簡單的開始路徑,我將為您指出 Jean-Philippe Aumasson 的書,“Serious Cryptography”,第 6 章第 111 頁有一個關於“建構雜湊函式”的部分,但也請注意,在此之前的部分討論了雜湊函式。如果您閱讀“建構散列函式”部分,您將不會真正得到我認為您正在尋找的答案(即為什麼要使用這些常量?),但是您會得到一些構造的線索。
查看散列函式需要提供的特性(即抗原像性、抗第二原像性和抗碰撞性),您會看到散列函式試圖實現的目標。除非您研究對這些目標的攻擊,以及功能的深度安全證明,否則您將無法回答您提出的問題。他們不是簡單的問題。
我會推薦兩篇論文。Bellare、Kilian 和 Rogaway “密碼塊連結消息驗證碼的安全性”為 MAC、PRF 和 PRP 提供了一種形式,這對於您更深入地理解至關重要。此外,Bellare、Canetti 和 Krawczyk “Pseudorandom Functions Revisited: The Cascade Construction and its Concrete Security”討論了散列函式中使用的迭代構造。這些將為您提供一些用於構造散列函式(恕我直言)的正式基礎。我認為對於深入到密碼學這一更深層次絕對基礎的另一篇論文是 Bellare、Desai、Jokipii 和 Rogaway “對稱加密的具體安全處理”
一旦你真正使用了這些論文,並且掌握了用於證明安全性的模擬遊戲,以及你需要呈現的攻擊,某些事情就會變得更加透明。此外,您將能夠更清晰地閱讀一些關於算法的證明和攻擊。
然後我會推荐一些關於隨機 Oracle 模型的閱讀,該模型通常用於使用雜湊函式的證明,然後查看有關 SHA3 競賽的論文。我認為閱讀關於 SHA3 的論文和關於散列函式的論文真的很有啟發性——我會推荐一篇,儘管我不會聲稱它是最好的(Ozgul Kucuk “密碼散列函式的設計和分析”,2012 年)。
這些參考資料應該讓您開始獲取所需知識的旅程,這樣您就可以回答您提出的問題。我希望你覺得這個方向有用。