Encryption
異或密碼偽隨機密鑰強度
當使用與明文長度相等的偽隨機密鑰實現 XOR 密碼時,從 1000 或 5000 個可能字元的池中提取的密鑰之間的潛在密鑰強度是否存在顯著差異?(也就是說,密鑰中的每個字元都可以是多達五千個可能的字元中的任何一個)或者這不太可能成為簡單 XOR 的整體安全性的決定因素?
編輯: 如果我原來的措辭模棱兩可,我深表歉意。我希望它有所改進。(字元池 = 一組不同的字元,可以從中生成密鑰。)
為了嘗試回答這個問題,我必須做出一些合理的假設。為了完美的安全性,我們要求密鑰流是真正隨機的,並且從不重複使用(OTP,香農)。
我決定在這裡添加一個簡短的答案:停止!無論如何,絕對不需要使用簡化的字元集 - 您可以使用隨機數生成器生成隨機字節,然後將明文視為一系列字節而不是字元。
現在,我認為您打算遵守不重用要求,這給我們留下了一個問題,即當我的數據不夠隨機時會發生什麼? 首先,讓我們試著弄清楚 1000 個字元池的含義。為了執行異或密碼,我們以某種方式將字元串轉換為位串,使用多種字元編碼中的一種。有 $ 2^8=256 $ 一個字節中的位,所以我推斷字元是指每個字元被編碼為兩個字節(如果你不需要非常奇怪的字元,這大致是UTF-16的工作方式),這意味著總共有 $ 2^{16}=65536 $ 可能的字元。
現在,你怎麼選 $ 1000 $ ,或者確實 $ 5000 $ 從他們?如果它們不是從全部選項中隨機抽取的,那麼您可能會洩露一些非常重要的資訊。例如,如果您的集合基於“常見”字元,那麼由於字元集的構造方式,某些位更有可能在您的字元集合中設置/不設置。
如果您設法完全隨機地對它們進行採樣,那麼至少您會在一次幼稚的攻擊中失敗,因為只有 $ 1/5 $ 要檢查的值。