Cryptanalysis

將分組密碼與(偽)OTP 相結合

  • December 17, 2015

OTP 的缺點之一是它可能需要一個不方便的長密鑰。除此之外,它不提供數據認證。因此,我一直在研究一個算法構想,希望比OTP更強大、更高效:

  1. 使用分組密碼加密明文(具有強雪崩效應和強偽隨機輸出的東西。)
  2. 使用具有隨機長度的隨機填充加密密文的隨機部分。

我希望我的想法比 OTP 有以下優勢:

  • 它需要一個由三部分組成的短密鑰:一個用於分組密碼,一個告訴使用 OTP 的哪一部分,以及 OTP 本身。與實際 OTP 的密鑰長度相比,它非常小,但我認為這是值得的。
  • 它提供數據認證(由於使用了分組密碼)。

因此,這個想法是建立在這樣一個事實之上的:每一個密文位都需要解密,甚至破解一個分組密碼加密。由於某些未知部分被 OTP 鎖定,如果沒有密鑰,就不可能獲得塊密文的每一點。

除此之外,我認為額外的安全性可能來自無法辨識用 OTP 加密的部分這一事實,因為分組密碼輸出是(更好:必須是)偽隨機的。Bruteforce 似乎遙不可及,因為有比 OTP 更多的可能機會(這是因為攻擊者不知道 OTP 的使用位置)。

TL;博士

總而言之,您可以說我有將分組密碼與(偽)OTP 相結合的想法,試圖從該組合中獲得安全性和數據身份驗證。有什麼明顯的錯誤嗎?我可能遺漏了一些關鍵方面?是否有任何特定的安全問題?

這有很多問題。對於初學者來說,分組密碼並不意味著身份驗證。常見的分組密碼模式,如 CTR、CBC 和(上帝保佑)ECB 只提供純加密。如果要進行身份驗證,請查看 GCM 塊密碼。AES-GCM 可能是更好的方法。

您說它建立在解密數據時每一位都很重要的想法之上,但這根本不是真的。(據我所知)很難讓分組密碼依賴密文的一位來成功解密。你能得到的最好的事情是讓分組密碼依賴於之前的每一位,這意味著你可以很好地解密數據的前半部分,而忽略後半部分。

如果你有一個有效的 OTP,你為什麼要使用分組密碼?只需對其進行數字簽名或使用 MAC 即可對其進行身份驗證。除此之外,OTP 提供了完美的保密性。(不要被愚弄,這是為了完美的 OTP,幾乎不可能正確地做到這一點)

如果您對 OTP 和分組密碼組合一無所知,那麼我建議在 GCM 模式下使用 AES 作為分組密碼,然後使用新生成的 OTP(或為加密使用而生成的現有 OTP 的刪除部分)。

但是,僅 AES-GCM 就可以滿足您的需求,而無需 OTP。考慮到使用真正的 OTP 是多麼困難,堅持使用 AES 可能更安全。

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