如何在RC4中生成键串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在RC4中生成键串相关的知识,希望对你有一定的参考价值。
我正在学习RC4,目前正在尝试使用初始排列数组S的知识解密密文。但是,我们如何生成KeyStreak?就像我说的那样,我已经有了初始排列数组S,并使用数组S生成KeyStreak。
但是,我不确定我是否做得正确。我正在使用以下算法:
plen = 256;
while (plen>0){
i=(i+1) mod 256
j=(j+S[i]) mod 256
swap (S[i], S[j])
K = S[S[i]+S[j] mod 256]
K[i]= K
plen = plen-1;
这会生成我的按键。我做对了吗?我不确定while循环,是否应该为所有256个元素运行?我看到过仅在纯文本长度上运行它的实现,但是我不知道纯文本及其长度,只是密文。
谢谢
答案
这有点像一个编程问题,但是既然您问过:-)您似乎wiki page(它作为RC4是我最喜欢的RNG):-
i := 0
j := 0
while GeneratingOutput:
i := (i + 1) mod 256
j := (j + S[i]) mod 256
swap values of S[i] and S[j]
K := S[(S[i] + S[j]) mod 256]
output K
endwhile
这是在称为流密码的结构中使用的RNG。这意味着您需要在密文长度上按字节处理密文。因此,while GeneratingOutput == true
为len(ciphertext)
。容易。
肉:目前,加密社区不建议使用RC4。在输出流中发现短期偏差意味着可以通过观察足够的短消息在几分钟之内破坏加密。
以上是关于如何在RC4中生成键串的主要内容,如果未能解决你的问题,请参考以下文章
Android:将片段和弹出窗口的点击事件中生成的变量传递给活动的方法