Encryption

關於RC4中key的問題

  • July 22, 2015

我計劃開發更安全的 RC4 算法版本。由於我不是加密專家,我希望您能幫助我找到以下問題的答案:

  1. 鍵數組(T)的值是否必須在此範圍內[0-255]?如果答案是“是”,你能解釋一下為什麼嗎?
  2. 為什麼他們使用s[t]生成密鑰而不是t在 RC4 中定義為數組的密鑰數組?
Output = S[(S[i] + S[j]) mod N];

鍵數組(T)的值是否必須在這個範圍內

$$ 0-255 $$如果是,你能說明原因嗎?

是的。RC4 對字節進行操作。一個 8 位(1 字節)的數字有 256 個可能的值,範圍從 0 到 255。RC4 將密鑰視為字節數組,因此根據定義,密鑰數組中的每個條目都在 0 到 255 的範圍內。

他們為什麼使用 s

$$ t $$生成密鑰而不是在 RC4 中定義為 t 數組的密鑰數組?

如果沒有看到您所指的 RC4 程式碼,很難說出您的意思。 $ S $ 是一個鍵控排列(其中鍵是 $ T $ ) 0-255 範圍內的字節數。T 數組可能不包含所有字節,因為它是由使用者生成的。因此,為了使作為密鑰流輸出的值可以是整個字節值範圍,他們必須使用 $ S $ 代替 $ T $ .

我想開發更安全的RC4算法

Bruce Schneier曾經指出:“我再次重複我從 NSA 內部聽到的說法:‘攻擊總是會變得更好;它們永遠不會變得更糟。’ "

關於 RC4 攻擊的最新消息是這樣說的:“研究人員表示,唯一可靠的對策是完全停止使用 RC4 ”(強調補充)

近年來已經發表了許多針對 RC4 的攻擊,而且它們只會越來越好許多人正在從舊系統中完全刪除 RC4。

重要

我想指出一些我希望你不要跳過的東西。當今設計的任何類型的系統都應該以非特定於密碼的方式設計。換句話說,如果你真的希望你的系統“更安全”,你應該設計成理論上可以支持任何密碼的方式。這樣,如果一個密碼被破壞,您的系統可以輕鬆地適應一個沒有被破壞的新密碼。如果您願意分享有關您的系統的更多詳細資訊,我認為我們可以幫助您以一種可行的方式設計它。這可能意味著使用現有的標準,或者只是稍微修改一個標準以滿足您的需求。

我計劃開發更安全的 RC4 算法版本。因為我不是加密專家…

永遠不要推出自己的加密貨幣,尤其是如果你不是該主題的專家。有很多陷阱,從實現錯誤到側通道攻擊。只需使用現有的安全算法加密庫,如 AES。

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