📄 file.txt
字号:
发信人: Marslv (梦幻人生), 信区: Program
标 题: RC5算法(转)
发信站: BBS汕头大学郁金香站 (Sun Oct 22 00:33:08 2000), 转信
标 题: RC5算法
发信站: 逸仙时空 Yat-sen Channel (Sat Apr 22 00:11:30 2000), 站内信件
我最常用的分组算法之一,使用最大长度为256字节的变长密码。
RC5接受两个参数r:循环的次数,b:以word计算密码长度。
初始化子密钥数组S[2*r+2]:
定义P=0xb7e15163,Q=0x9e3779b9
S[0]=p,S[i]=(S[i+1]+Q) mod power(2,w);
i=j=0;A=B=0;
循环3*max(2*r+2,b)次以下步骤:
A=S[i]=rol((S[i]+A+B),3)
B=K[j]=rol((K[j]+A+B),(A+B));
i=(i+1) mod 2*r+2
j=(j+1) mod b
加密算法:
对长度为2words的明文M[2]作以下变换,得到密文C[2]
C[0]=M[0]+S[0];C[1]=M[1]+S[1];
For i=1 to r
C[0]=rol((C[0] xor C[1]),C[1])+S[2*i]
C[1]=rol((C[1] XOR C[0]),M[0])+S[2*i+1]
解密算法:
对长度为2words的密文C[2]作以下变换,得到明文M[2]
For i=r downto 1
C[1]=ror((C[1]-S[2*i+1],C[0]) xor C[0]
C[0]=ror((C[0]-S[2*i],C[1]) xor C[1]
EndFor
M[1]=C[1]-S[1]
M[0]=C[0]-S[0] 张迎平
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -