des课程设计(5)

2019-08-28 23:26

8,0,13,3,4,14,7,5,11,10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13},{4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12},{13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8, 2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11}} ; pi=0; i=0;

for(h=0;h<8;h++) //将将48位K [48]转换为SI[8][6]二维数组 for(l=0;l<6;l++) si[h][l]=k[i++];

for(h=0;h<8;h++) //8个S盒变换 {

sh=2*si[h][0]+si[h][5];

sl=8*si[h][1]+4*si[h][2]+2*si[h][3]+si[h][4]; out=s[h][sh*16+sl]; change(out,num); for(ni=0;ni<4;ni++) p[pi++]=num[ni]; }}

d.P盒置换

S盒输出的32比特经过P盒置换,重新编排32比特的位置。下

图3-10为P盒置换过程。

图3-10

e.将扩张变换E和异或运算S函数P置换整合为F函数 F 函数输入为R[32]、 K[48] 输出为PO[32] //F 函数

void Feistel (int r [32],int k [48],int po [32]) {

int Ex[8][6]; int pi[32]; int re [48]; Extension (r,Ex); XorFun(Ex,k,re); FeiSFun(re,pi); FSPFun(pi,po);

}

f. 循环加密

前15轮加密过程相同为 L(i)==R(i-1);

R(i)=L(i-1)⊕F(R(i-1),K(i));(i=0.、1、2、3……15) 第16轮为

L(16)=L(15)⊕F(R(15),K(16)) R(16)=R(15); 代码:

for(d=1;d<16;d++) {

KeyProd( ms,d,key); //密钥产生函数 Feistel(R,key,rr); //F函数

LPXorFun(rr,L,R1); //异或函数 ArrayCopy (L,R); //数组复制函数 ArrayCopy (R,R1);

}

KeyProd( ms,16,key); /

Feistel(R,key,rr);

LPXorFun(rr,L,R1);

ArrayCopy (L,R1);

g.逆初始置换

DES算法进行完16轮运算之后,需要进行逆初始置换,逆初始置换正好为初始置换的逆,如一个矩阵进行初始置换之后输出,在进行依次逆初始置换的输出结果为初始矩阵。变换规则如下图3-11

代码:

//逆初始置换函数

Void IPRevFun (int L [32],int R [32],int re[64]) { int i,j; int tem [64];

int ip11 [64]= { 40, 8, 48, 16, 56, 24, 64, 32,

39, 7, 47, 15, 55, 23, 63, 31,

38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26,

33, 1, 41, 9, 49, 17, 57, 25 };

j=0;

for(i=0;i<32;i++) tem[j++]=L[i]; for(i=0;i<32;i++) tem[j++]=R[i]; for(i=0;i<64;i++) re[i]=tem[ip11[i]-1]; }

四、结果测试 加密测试结果如图:

解密测试结果如图:


des课程设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:阜城县第二中学逃生演练活动方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: