DES的一些资料

DES
(DATA ENCRYPTION STANDARD)

目录



1、 Data Encryption Standard, https://en.wikipedia.org/wiki/Data_Encryption_Standard
2、 DATA ENCRYPTION STANDARD (DES),http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf
3、
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
从代码到实现int m[65],m1[65],k[65],i,k0[57],C[57]; int C0[29],D0[29],C1[29],D1[29],C2[29],D2[29],C3[29],D3[29],C4[29],D4[29],C5[29],D5[29],C6[29],D6[29],C7[29],D7[29],C8[29],D8[29],C9[29],D9[29],C10[29],D10[29],C11[29],D11[29],C12[29],D12[29],C13[29],D13[29],C14[29],D14[29],C15[29],D15[29],C16[29],D16[29]; int ip[65]={58,50,42,34,26,18,10,2, 60,52,44,36,28,20,12,4, 62,54,46,38,30,22,14,6, 64,56,48,40,32,24,16,8, 57,49,41,33,25,17,9,1, 59,51,43,35,27,19,11,3, 61,53,45,37,29,21,13,5, 63,55,47,39,31,23,15,7}; int PC_1[57]={57,49,41,33,25,17,9, 1,58,50,42,34,26,18, 10,2,59,51,43,35,27, 19,11,3,60,52,44,36, 63,55,47,39,31,23,15, 7,62,54,46,38,30,22, 14,6,61,53,45,37,29, 21,13,5,28,20,12,4}; int PC_2[49]={14,17,11,24,1,5, 3,28,15,6,21,10, 23,19,12,4,26,8, 16,7,27,20,13,2, 41,52,31,37,47,55, 30,40,51,45,33,48, 44,49,39,56,34,53, 46,42,50,36,29,32}; Mingwenerjinzhi(); MIYAOERJINZHI(); fp=fopen("明文二进制表示.dat","r"); for(i=1;i<=64;i++) fscanf(fp,"%d\n",&m[i]); fclose(fp); fp=fopen("密钥二进制表示.dat","r"); for(i=1;i<=64;i++) fscanf(fp,"%d\n",&k[i]); fclose(fp); for(i=1;i<=64;i++) m1[i]=m[ip[i-1]]; for(i=1;i<33;i++) L0[i]=m1[i];//明文左侧的初始化 for(i=33;i<=64;i++) R0[i-32]=m1[i];//明文右侧的初始化 for(i=1;i<57;i++)//生成子密钥 k0[i]=k[PC_1[i-1]]; for(i=1;i<29;i++) C0[i]=k0[i]; for(i=29;i<=56;i++) D0[i-28]=k0[i]; for(i=1;i<28;i++)//循环左移一位 { C1[i]=C0[i+1]; D1[i]=D0[i+1]; } C1[28]=C0[1]; D1[28]=D0[1]; for(i=1;i<=28;i++) { C[i]=C1[i]; C[i+28]=D1[i]; } for(i=1;i<=48;i++) K1[i]=C[PC_2[i-1]];//生成子密钥k1 for(i=1;i<28;i++) //循环左移一位 { C2[i]=C1[i+1]; D2[i]=D1[i+1]; } C2[28]=C1[1]; D2[28]=D1[1]; for(i=1;i<=28;i++) { C[i]=C2[i]; C[i+28]=D2[i]; } for(i=1;i<=48;i++) K2[i]=C[PC_2[i-1]];//生成子密钥k2 for(i=1;i<27;i++)//循环左移两位 { C3[i]=C2[i+2]; D3[i]=D2[i+2]; } C3[27]=C2[1]; D3[27]=D2[1]; C3[28]=C2[2]; D3[28]=D2[2]; for(i=1;i<=28;i++) { C[i]=C3[i]; C[i+28]=D3[i];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值