什麼是 RC4 加密?(工作原理、用途、優點和缺點)
什麼是 RC4?
RC4 代表 Rivest 密碼 4。Ron Rivest 於 1987 年發明了 RC4,它是一種流密碼。由於 RC4 是一種流密碼,因此它以位元為單位加密資料位元組。由於其速度和簡單性,RC4 是所有流密碼中使用最廣泛的流密碼。
雖然 RC4 以其易用性和軟體速度而聞名,但人們發現它存在一些弱點,使其不安全。當輸出金鑰流的開頭未被破壞,或使用非隨機或連結金鑰時,它極易受到攻擊。特別是 RC4 的使用導致了相對不安全的協議,例如 WEP。
截至 2015 年,一些國家密碼學機構被懷疑能夠在 TLS 協議中使用 RC4 時破解 RC4。網際網路工程任務組釋出的 RFC 7465 禁止在 TLS 中使用 RC4,Mozilla 和 Microsoft 也釋出了類似的建議。
RC4 的工作原理
RC4 建立一個偽隨機位元流(金鑰流)。這些,就像任何其他流密碼一樣,可以透過使用逐位異或將其與明文組合來用於加密。解密使用相同的過程(因為異或是一種對稱運算)。
該密碼使用一個秘密的內部狀態,該狀態分為兩個部分來生成金鑰流 -
256 個可用位元組中的每一個都被置換。
兩個索引指標(每個 8 位)。
金鑰排程演算法(KSA)已知使用可變長度金鑰初始化置換,通常在 40 到 256 位之間。然後,偽隨機生成技術生成位元流。
對於加密 -
使用者輸入明文和金鑰。
對於輸入的金鑰,加密引擎使用 KSA 和 PRGA 演算法建立金鑰流。
明文與生成的金鑰流進行異或運算。由於 RC4 是一種流密碼,因此使用逐位元組異或生成密文。
此密文現在以加密形式傳送到預期接收者。
對於解密 -
對密文使用相同的逐位元組異或技術進行解密。
RC4 的用途
多年來,RC4 越來越受歡迎,並已成為商業應用中的標準。它以簡單、快速和廉價的加密技術而聞名。
RC4 的主要優點是易於實現和使用,以及其操作和部署速度。它能夠高效快速地處理大型資料流。在記憶體使用方面,RC4 流密碼也效率很高。
然而,由於近年來證明了缺陷和網路攻擊,人們呼籲停止使用 RC4 加密演算法。還發現了其他缺點,例如無法使用小型資料流以及在實施新系統之前需要進行額外調查。
網際網路工程任務組 (IETF) 於 2015 年禁止在 TLS 協議中使用 RC4。由於威脅漏洞,Microsoft 和 Mozilla 也釋出了限制使用 RC4 的建議。有許多基於 RC4 的生態系統,例如 WEP、WPA、BitTorrent 協議加密、Microsoft 點對點加密等。
RC4A 是 RC4 的更強大的變體。RC4A+ 是 RC4 的修改版本,具有更復雜的 3 階段金鑰排程,比基本 RC4 長 1.7 倍。
使用 RC4 加密的優點和缺點
以下是使用 RC4 加密的優點 -
使用 RC4 流密碼很容易。
與其他密碼相比,RC4 的操作速度很快。
RC4 流密碼具有很高的編碼強度,並且易於構建。
RC4 流密碼不需要額外的記憶體。
以下是使用 RC4 加密的缺點 -
如果 RC4 未與強大的 MAC 一起使用,則加密容易受到位元翻轉攻擊。
無法使用 RC4 流密碼進行身份驗證。
在向 RC4 演算法新增新系統之前,需要進行更多研究。
RC4 流密碼不能用於小型資料流。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP