關於RC4中key的問題
我計劃開發更安全的 RC4 算法版本。由於我不是加密專家,我希望您能幫助我找到以下問題的答案:
- 鍵數組(T)的值是否必須在此範圍內
[0-255]
?如果答案是“是”,你能解釋一下為什麼嗎?- 為什麼他們使用
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。