Aes

OTP 會在 5 種條件下提供量子電阻嗎?

  • September 5, 2021

我們已經有了量子計算,但是當量子計算商業化時,許多但不是所有的加密算法都會出現問題。

One-Time-Pad 或 OTP 是唯一真正的數學牢不可破的加密方案,因為它提供熵安全性。問題是當使用量子電腦進行密碼分析時,OTP 是否會提供保護。

讓我們看看這個例子:

AES256 仍然被認為是完整的。儘管有針對 AES 的攻擊,例如 biclique 攻擊,但它仍然被認為足夠難。Biclique 不會立即融化 AES。AES 的問題更多的是在使用中。例如,創建一個密鑰並且多年不更改它,或者使用使密鑰可預測的密鑰生成協議。如果有人從時間字元串生成密鑰,這將導致理論安全性非常高但實際安全性被破壞的可怕情況。在正常生活中,這種情況時有發生。所以不是它本身的算法被破壞,而是它被使用的環境。OTP 可以防止這些情況,因為它為每條消息使用一個新的唯一密碼流。密鑰不能洩漏,因為根本沒有密鑰。

現在讓我們看看 OTP 的屬性和條件。我將一些明顯的條件分開處理。讓我們簡稱它們為 Ox 條件:

Condition 1: The key stream must be truly random.
Condition 2: The random key stream should be free of anomalies 
Condition 3: The random key stream must be unpredictable.
Condition 4: The key distribution must be proven secure
Condition 5: If any deterministic algorithm is used, it should not be possible to influence the output.

條件 1意味著您必須擁有真數生成器 (TRNG)。這聽起來比實際上更難。您可以使用會產生經過認證的噪音的光、健康或半導體製造一個,但它永遠不會通過 NIST 認證。(但這顯然不是你想要的)如果它真的是隨機的,或者不是,可以測量和認證。

如果您已認證噪音,您還沒有完成。這是隨機的,任何事情都可能發生。在一個非常糟糕的日子裡,你可能會有一個像“00 00 00 00 00 FF FF FF FF FF”這樣的密碼流,這完全是巧合。如果您是依賴它的間諜,那可能會破壞您的秘密,您的一天甚至您的生活。條件 2規定您必須監控異常情況,如果發生這種情況並進行處理。

條件 3比條件 1 和 2 更重要。您可以擁有完美的隨機雜訊認證,並在其上貼上金色標籤,但如果它仍然可以預測,它將使您的安全性被遺忘。例如,當“完美噪音”循環播放時,就會發生這種情況。賭場的賭博機使用這個技巧。一些賭博機已經被破解,因為一個聰明的人發現了隨機模式中的循環。您應該始終生成自己的隨機密鑰流。沒有人應該給你。Google 數字生成器或 ERNIE 肯定會產生經過認證的隨機雜訊,但誰會得到哪種隨機雜訊?如果第二方知道隨機雜訊,它是可以預測的,這會導致完全的安全妥協。請記住,它始終是您的噪音,並且只是您的噪音。

條件 4是真正的麻煩開始的地方。大量的密鑰流數據必須安全地分發給解密消息的客戶端。可以使用 1Gb 的預共享密鑰流數據建構應用程序,但這是非常不切實際的。我們有量子電阻的聖杯,但由於這種非常不切實際的條件,它沒有被使用。這是完美 OTP 的主要缺點。

現在我們正在討論真正的問題。

因為條件 4 太不切實際了,軟體開發人員使用了一種叫做“縮放熵”的東西。這就是所有麻煩開始的地方。如果我有一個函式 f(x) 具有像橢圓曲線這樣的非常混亂的行為,我可以將混亂的結果轉換為散列並將該散列用作密鑰流。然後值 x 會產生一大堆“噪音”。x 的密鑰值必須與客戶端共享,他得到相同的雜訊並可以解密消息。當然,這與任何真正的隨機生成器相去甚遠,並且違反條件 1。值 x 可以是 256 位密鑰。它將以一種確定的方式產生一個雜訊矩陣,密碼分析甚至可能無法檢測到其中的任何缺陷。但除了條件 1 之外,它也會失敗條件 3,這是可以預測的,因為攻擊者可能對使用什麼輸入值以及何時使用有線索。FinalCrypt 可能會做類似的事情。我不知道它們是如何產生隨機雜訊的,但它可能是一個函式。

如果 OTP 密鑰流數據的新雜訊通過量子糾纏發送給兩個參與者,它將通過條件 4。這根本不是一種非常實用也不是非常經濟有效的方式,因為產生糾纏粒子的設備需要鈮酸鋰和高度複雜的設備。但我可以向你保證,OTP 將在不久的將來以這種方式使用,因為 OTP 的力量是不可替代的。

現在我們來到條件 5。如果 2 個參與者想要使用 OTP 並且需要具有相同的密鑰流,則他們需要具有確定性的東西來產生相同的密鑰流。最好有兩個同步的實數發生器。但由於只有上帝在玩熵,這不是我們可以輕易建立的……函式是大多數人能想出的下一個最好的東西。NSA 的基於橢圓曲線的“隨機”生成器像所有其他偽數生成器一樣愉快地失敗了條件 5。幸運的是,加密社區明白這一點,不會再容忍這種情況了。

OTP 的可用性對我們的未來非常重要。因為沒有 OTP,我們又回到了 AES。AES 本身沒有問題,但是將 AES 密鑰保留一段時間有問題。硬體可能會通過使用側通道洩漏此密鑰的部分內容。然後強 AES 加密變得很弱,無法被破解。請理解,這些側通道是無法檢測到的,這正是人們害怕使用華為設備的原因。通過以特定順序交換 IP 數據包或通過引入傳輸錯誤(無論如何都會通過 CRC 機制糾正)來考慮一個非常隱藏的側通道。這就是OTP的力量。硬體側渠道變得徒勞。

因此,建構滿足條件 5 的算法很重要。這裡提出的主要問題是:

OTP 會在 5 種條件下提供量子電阻嗎?什麼算法可以滿足條件5?

=================更新=======================

首先感謝您的所有答案!這裡有一個小更新:

如果滿足條件 5,則它是流密碼,而不是 OTP。正是出於這個原因,在這個論壇上提出了這個問題。

很多人一直在思考這個問題。如果流密碼不包括 OTP,那麼像 FinalCrypt(參見finalcrypt.org)這樣的產品將不存在。Finalcrypt 似乎做的是使用某種流密碼(或分組密碼)。但它對您加密的每個文件都使用隨機雜訊。是的,這也意味著您擁有與加密文件相同大小的密鑰流數據。那麼它既是流密碼又是 OTP 嗎?根據 Finalcrypt:是的。它會遵守還是打破條件 5?這很難說,因為不清楚密碼流是如何創建的。

我不想放大這個產品。我要理論討論。是否存在隨機且無窮無盡的雜訊源?兩個通信參與者都可以使用相同的密鑰流嗎?由於顯而易見的原因,這不可能是一個函式。而且它不能是偽數生成器。

這個問題出奇地難,需要開箱即用的思考,因為許多實現不滿足條件 5 或 3。但這是否會使它們全部喪失資格?一個錯誤的例子是 NSA 數字生成器,它有一條已知的橢圓曲線,已知點 P 和 Q。(我最喜歡的解釋在這裡)這打破了條件 5 和 3。這種方法以及所有其他類似的方法都不能經受住考驗。如果有一種方法,那麼所有條件都得到滿足應該是無可爭辯的。無篡改,毫無疑問。

這些可能不是數學解決方案,但可能是物理/數學組合解決方案,甚至更多學科。在問這個問題之前,做了一些調查。我不期待一個現成的答案,但我會尊重每個人的答案。

這聽起來比實際上更難。您可以使用會產生經過認證的噪音的光、健康或半導體製造一個,但它永遠不會通過 NIST 認證。(但這顯然不是你想要的)如果它真的是隨機的,或者不是,可以測量和認證。

僅從硬體中獲得“真正的隨機數生成器”實際上非常困難,通常至少需要應用某種白化。否則,您的隨機數中可能會有很多熵,但分佈很可能會偏離。

甚至 NIST 也沒有指定認證 TRNG 的方法。

在一個非常糟糕的日子裡,你可能會有一個像“00 00 00 00 00 FF FF FF FF FF”這樣的密碼流,這完全是巧合。那可能會破壞你的秘密。

那是 80 位數據,並且有很多“看起來不隨機”的模式。找出這些是非常棘手的,如果密文看起來不是隨機的,那麼攻擊者仍然必須猜測為什麼會這樣。監控 RNG 當然是個好主意,但這種模式匹配可能不是。

但我可以向你保證,在不久的將來,當它商業化時,OTP 將完全以這種方式使用,因為 OTP 的力量是不可替代的。

我認為情況並非如此。目前,對稱密鑰密碼學似乎足夠強大,可以承受 QC。真正的問題在於對稱密碼學的密鑰管理。量子糾纏似乎只會讓這部分變得更難。

將 OTP 稱為“不可替代”當然是胡說八道——我們目前正在使用大量沒有完美安全性的加密技術,我們相處得很好,謝謝。

如果 2 個參與者想要使用 OTP 並且需要具有相同的密鑰流,則他們需要具有確定性的東西來產生相同的密鑰流。最好有兩個同步的實數發生器。

您只是在描述流密碼。不多也不少。

請理解,這些側通道是無法檢測到的,這正是人們害怕使用華為設備的原因。

這是一個未經證實的說法,與您的問題無關。

OTP 會在 5 種條件下提供量子電阻嗎?什麼算法可以滿足條件5?

不,因為您根本不是在描述 OTP,而是在描述流密碼。許多流密碼被認為是安全的,但有些甚至在面對經典密碼分析(RC4、A5/1 等)時也不安全。許多其他在經典中被認為是安全的預計只會面對 Grover 的算法。在這種情況下,256 位密鑰仍將提供 128 位安全性(在最壞的情況下)。

OTP 作為一種理論結構,仍然是安全的。QC 無法撤銷完美的安全性。如果可以,那就不完美了。

正如評論另一個答案中所解釋的,“如果使用任何確定性算法”,如問題條件 5 中所述,那麼密碼系統不是一次性密碼,而是密碼;如果加密是通過與明文無關的密鑰流進行異或運算,則為流密碼。

當我們使用密碼時,我們失去了 OTP 的無條件安全性。這是經典電腦和量子電腦都面臨的問題。

這個問題被標記為 AES,我將假設一個基於 AES 的流密碼,例如 AES-CTR。當正確實施時,當密文的數量遠低於可能塊數的平方根時,這被認為可以抵抗安全級別等於密鑰寬度(128、192 或 256 位)的經典電腦,即 $ \sqrt{2^{128}}=2^{64} $ 塊(因此很多exbibytes)。

抵抗可用於密碼分析的假設量子電腦(NSA 術語中的加密相關量子電腦)可能需要堅持使用更高的密鑰大小(256 位),因為Grover 的算法可能允許破解 $ n $ 位加密與 $ 2^{n/2} $ 努力。

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