求CFB加密算法代码

Sammi52 2010-10-26 10:49:35
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);
这两个式子也不合理。
...全文
364 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
三岁、就很帅 2010-11-09
  • 打赏
  • 举报
回复
你再UP 就没的UP了 偶帮你UPUP 来点分~
benxiaohai_zhlj 2010-11-09
  • 打赏
  • 举报
回复
Ci = XOR( Ci, Lef(Oi));Si = A(Si-1, Ci);
我感觉应该为:
Ci = XOR( Pi, Lef(Oi));Si = A(Si-1, Ci);
benxiaohai_zhlj 2010-11-09
  • 打赏
  • 举报
回复
还是先研究明白CFB模式的工作原理再说吧!CFB是一种密码的工作模式。
加密时,加密算法的输入是64比特的移位寄存器,其初值为某个初始初始向量IV
加密算法输出的最左边的j比特与明文的第一个单元P1进行异或运算,产生出密文的第1个单元C1,并传送该单元。然后将移位寄存器的内容左移j位,并将C1送入移位寄存器的最右边j位(最低有效位)。这一过程继续到明文的所有单元都被加密
Sammi52 2010-11-02
  • 打赏
  • 举报
回复
Up Up Up Up Up

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧