RC4演算法根據密鑰生成密碼流,再使用密碼流對明文進行逐位元組的異或操作,生成密文。
我的疑惑是,只要通信雙方的密鑰一定,那生成的密碼流豈不也是一定的,這樣,豈不是無法抵御“已知明文攻擊”,因為只要知道一組足夠長的明文和對應的密文,就可以通過異或運算得到密碼流,雖然無法知道原始密鑰,但只要知道了密碼流,就可以對密文進行解密了。
uj5u.com熱心網友回復:
找了個在線計算RC4加密的網站試了下,似乎確實可以這樣破解(網站地址:http://tool.chacuo.net/cryptrc4)我輸入的密鑰是:123456(ASCII字符)
第一組明文:abcdefg(ASCII字符,對應的HEX是"61 62 63 64 65 66 67")
網站輸出的密文:YZodA0FVcg==(Base64編碼,轉為HEX是“61 9A 1D 03 41 55 72”)
將密文"61 9A 1D 03 41 55 72"與明文異或得到密碼流“00 F8 7E 67 24 33 15”
然后密鑰不變,選取另一組明文:1234567(ASCII字符,對應的HEX是"31 32 33 34 35 36 37")
使用網站進行加密,得到:McpNUxEFIg==(Base64編碼,轉為HEX是“31 CA 4D 53 11 05 22”)
然后使用剛才計算得到的密碼流“00 F8 7E 67 24 33 15”與密文“31 CA 4D 53 11 05 22”進行異或運算,成功得到明文"31 32 33 34 35 36 37"
將其與密碼流“00 F8 7E 67 24 33 15”
uj5u.com熱心網友回復:
學習一下,哪種加密更加安全呢轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/96816.html
標籤:網絡通信
下一篇:請教各位大神~~~
