Random-Number-Generator

是否可以使用算法生成 OTP?

  • October 27, 2019

我是一名軟體開發人員,而不是密碼學家。

我喜歡完美保密的想法,並希望使用一次性密碼本 (OTP) 來加密/解密文件,例如 50Mb。有沒有辦法可以使用隨機數生成器和種子來執行此操作,而不是提前創建(非常大的)pad?

例如,如果我使用 CSPRNG 創建兩個數字,然後使用第一個數字播種(可預測的)PRNG,並使用第二個數字來確定序列中的哪個數字用作墊子中的第一個,這仍然會給出我完全保密?

這是密碼學中的標準概念,稱為流密碼。

它沒有提供“完美”的保密性,這是一個紅鯡魚,但它是如何進行密碼學的現代標準——例如,你的網路瀏覽器現在幾乎可以肯定地使用這個原理來與 crypto.stackexchange 對話.com Web 伺服器,使用 AES-GCM 或 ChaCha/Poly1305,它們是由流密碼建構的經過身份驗證的密碼。

更重要的是:使用經過身份驗證的密碼,這樣偽造者就無法在傳輸過程中修改您的消息,這有時——就像在 OpenPGP 的EFAIL中一樣——也會導致失去機密性

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