Hash

雜湊函式和一次性密碼一樣安全?

  • March 3, 2022

我們知道一次性密本可作為加密某些數據的密碼被證明是安全的。是否有與雜湊函式相同的算法?我們能得到一個可證明安全的雜湊函式嗎?也許有一些荒謬的屬性,比如一次性便箋得到了它們(真的很大的密鑰長度,完全隨機的密鑰)?

是否存在“理論上完美”的雜湊函式,即使它不切實際?

是的。

“隨機函式預言機”通常用於描述密碼攻擊,作為一種不切實際但理論上理想的散列函式。(一) (二)

64位隨機函式oracle的一種實現:

  1. 任何人都可以在卡片上寫下任何文字並將其交給 Carole——一個 oracle (c)的字謎——然後等待她的回應。
  2. 如果 Carole 的文件中還沒有確切的文本,Carole 會翻轉 64 美分來獲得一個新的隨機數,並將該 64 位數字寫在卡片的背面。然後卡羅爾複製了那個號碼。
  3. 如果 Carole 在她的檔案中已經有了確切的文本,她會撕毀並扔掉新卡(背面是空白的),並複制舊卡背面的號碼。
  4. Carole 將卡片(正面是她剛剛得到的文本,背面是 64 位數字)歸檔在她的文件中,以備日後檢索。
  5. 卡羅爾將複製的號碼交還給最初給她發簡訊的人。
  6. Carole 不允許除她自己以外的任何人偷看她的文件。
  7. Carole 從不告訴任何人她看到的簡訊——她只分發號碼,並且只分發給剛剛給她的簡訊與該號碼相關的簡訊的人。
  8. Carole 甚至沒有透露這是否是一個新生成的新號碼,或者是否有人已經提供了這個確切的文本,而這是她的文件中已經附加到該舊文本的號碼的另一個副本。

(“隨機置換預言機”通常用於描述密碼攻擊,作為一種不切實際但理論上理想的分組密碼。“隨機置換預言機”可以從“隨機函式預言機”建構。(d)。)

OTP 需要 1) 隨機密鑰材料,只要要加密的消息 2) 不得重複使用密鑰材料或任何部分,永遠 3) 通信者之間密鑰材料的安全傳輸 4) 任何人都不會知道任何密鑰材料。即便如此,OTP 也只能保證沒有其他加密會更難破解。並不是說消息永遠無法恢復。

  1. 隨機——出於加密目的,隨機非常非常困難,也非常非常棘手。我們不知道該怎麼做,儘管我們認為有些方案非常好。有很多測試,但非隨機的方法比測試多得多。

  2. 不重複使用——重複使用使 OTP 變得毫無價值。俄羅斯人在二戰中做了一些重用,而 NSA 最終能夠讀取一些使用重用密鑰材料加密的流量。參見維諾納項目。

  3. 安全傳輸——沒有人解決了節點之間任意長的材料的安全傳輸。有施樂機器,磁碟複印機,拇指驅動複印機,……加上盜竊(有時可以被掩蓋,讓發件人做出非常糟糕和完全不安全的假設),

  4. 永遠不會暴露關鍵材料——這需要在未來對材料的安全性進行一定程度的故障安全控制。人類與這種事情並不完全兼容。

但是,良好的雜湊算法(我們不確定我們的任何算法是否足夠好,記錄不佳)可以聲稱在輸入合適的輸入時產生不可預測的(因此是隨機的)字元串。可悲的是,它們是確定性的。提供雜湊算法 abcd… 不止一次,您將得到相同的雜湊。這意味著雜湊算法的不可預測性取決於其輸入的不可預測性。不是好事,人就是人。但是,如果您使用一些 CSRNG 作為輸入,為什麼還要使用雜湊算法呢?如果 CSRNG 有缺陷,那麼您生成的散列的隨機性也會有缺陷。

但即使你愚蠢地揮手解決了這些問題,幾乎所有的雜湊算法都會產生一個較短的位串。比如說,128 位,或 256 位,或類似的。因此,您可以發送一條消息,使用其中一個雜湊作為 OTP 密鑰材料,長度為 128 或 256 位。

我不會在實踐中打擾,也不會為了理論研究而用十英尺的桿子觸摸它。太多的偶然性,太依賴於任何人無法控制的事情,……

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