求CFB加密算法代码
CFB算法代码,从网上搜到关于CFB算法,根据说明编写了程式(实际我对CFB算法说明还是不太明白),但是算出来的结果总是不对,那位高人有做过CFB算法的,发代码出来看看。
定义:
Enc(X,Y)是加密函数
Dec(X,Y)是解密函数
Key是加密密钥;
Pi ( i = 0,1…n)是明文块,大小为64bit;
Ci ( i = 0,1…n)是密文块,大小为64bit;
Si ( i = 0,1…n),大小为8bit,n个连续的Si组成加密位移寄存器,一般n=8;
Oi = Enc(Key, Si);
Lef(x) 为取数据x的最左8个bit位;
A(x,y)为合并x左移8位,空位用y填充
CFB加密算法可表示为:
S0 = IV;
Oi = Enc(Key, Si);
Ci = XOR( Ci, Lef(Oi));
Si = A(Si-1, Ci);
CFB解密算法可表示为:
S0 = IV;
Oi = Enc(Key, Si);
Ci = XOR( Ci, Lef(Oi));
Si = A(Si-1, Ci);
我觉得以上表示有问题,明文都没用到,Ci = XOR( Ci, Lef(Oi));Si = A(Si-1, Ci);
这两个式子也不合理。