對(duì)稱加密算法:RC4
RC4密碼是Rivest發(fā)明的一種可變密鑰長(zhǎng)度的流式對(duì)稱密碼算法。RC4實(shí)際上是RSA公司的商業(yè)秘密,從未公開,但有一個(gè)匿名者對(duì)其實(shí)現(xiàn)進(jìn)行了討論,Rivest也默認(rèn)了該實(shí)現(xiàn),這一實(shí)現(xiàn)稱為“承認(rèn)的RC4(Alleged RC4,ARC4)”。ARC4是早期無線和TLS加密標(biāo)準(zhǔn),但由于短密鑰存在安全隱患,且最初的若干字節(jié)極易破解,已經(jīng)在TLS 1.2中被淘汰。
?
RC4沒有初始化向量,密鑰長(zhǎng)度為8~128字節(jié)可變。加密步驟如下:
(1)加密器內(nèi)部創(chuàng)建一個(gè)256字節(jié)狀態(tài),設(shè)初始值為0~255。
(2)根據(jù)密鑰,對(duì)狀態(tài)量進(jìn)行修改。
(3)不加密,生成若干個(gè)字節(jié),以消除初始字節(jié)的影響。
(4)根據(jù)輸入,生成一組加密字節(jié),并將加密字節(jié)和輸入異或,得到輸出密文。
?由于狀態(tài)量的存在,一個(gè)RC4加密器不能重復(fù)使用,只能創(chuàng)建新的實(shí)例。
Go語言實(shí)例如下:
標(biāo)簽: