📄 newddes.c
字号:
b_Bit60=b_Bit29;
b_Bit29=b_Bit30;
b_Bit30=b_Bit31;
b_Bit31=b_Bit32;
b_Bit32=b_Bit33;
b_Bit33=b_Bit34;
b_Bit34=b_Bit35;
b_Bit35=b_Bit36;
b_Bit36=b_Bit37;
b_Bit37=b_Bit38;
b_Bit38=b_Bit39;
b_Bit39=b_Bit40;
b_Bit40=b_Bit41;
b_Bit41=b_Bit42;
b_Bit42=b_Bit43;
b_Bit43=b_Bit44;
b_Bit44=b_Bit45;
b_Bit45=b_Bit46;
b_Bit46=b_Bit47;
b_Bit47=b_Bit48;
b_Bit48=b_Bit49;
b_Bit49=b_Bit50;
b_Bit50=b_Bit51;
b_Bit51=b_Bit52;
b_Bit52=b_Bit53;
b_Bit53=b_Bit54;
b_Bit54=b_Bit55;
b_Bit55=b_Bit56;
b_Bit56=b_Bit60;
}
/*********************压缩置换****************/
b_Temp1=b_Bit14;
b_Temp2=b_Bit17;
b_Temp3=b_Bit11;
b_Temp4=b_Bit24;
b_Temp5=b_Bit1;
b_Temp6=b_Bit5;
b_Temp7=b_Bit3;
b_Temp8=b_Bit28;
b_Temp9=b_Bit15;
b_Temp10=b_Bit6;
b_Temp11=b_Bit21;
b_Temp12=b_Bit10;
b_Temp13=b_Bit23;
b_Temp14=b_Bit19;
b_Temp15=b_Bit12;
b_Temp16=b_Bit4;
b_Temp17=b_Bit26;
b_Temp18=b_Bit8;
b_Temp19=b_Bit16;
b_Temp20=b_Bit7;
b_Temp21=b_Bit27;
b_Temp22=b_Bit20;
b_Temp23=b_Bit13;
b_Temp24=b_Bit2;
b_Temp25=b_Bit41;
b_Temp26=b_Bit52;
b_Temp27=b_Bit31;
b_Temp28=b_Bit37;
b_Temp29=b_Bit47;
b_Temp30=b_Bit55;
b_Temp31=b_Bit30;
b_Temp32=b_Bit40;
b_Temp33=b_Bit51;
b_Temp34=b_Bit45;
b_Temp35=b_Bit33;
b_Temp36=b_Bit48;
b_Temp37=b_Bit44;
b_Temp38=b_Bit49;
b_Temp39=b_Bit39;
b_Temp40=b_Bit56;
b_Temp41=b_Bit34;
b_Temp42=b_Bit53;
b_Temp43=b_Bit46;
b_Temp44=b_Bit42;
b_Temp45=b_Bit50;
b_Temp46=b_Bit36;
b_Temp47=b_Bit29;
b_Temp48=b_Bit32;
for(i=0;i<6;i++)
Childkey[k*6+i]=p_cCharToBit[i];
/*********************************************/
}
}
void ExpandPermutation(unsigned char *p_cExpaindPermutation,unsigned char *p_cRightInitData)
{
memcpy(p_cCharToBit,p_cRightInitData,4);
b_Bit1=b_Temp32;
b_Bit2=b_Temp1;
b_Bit3=b_Temp2;
b_Bit4=b_Temp3;
b_Bit5=b_Temp4;
b_Bit6=b_Temp5;
b_Bit7=b_Temp4;
b_Bit8=b_Temp5;
b_Bit9=b_Temp6;
b_Bit10=b_Temp7;
b_Bit11=b_Temp8;
b_Bit12=b_Temp9;
b_Bit13=b_Temp8;
b_Bit14=b_Temp9;
b_Bit15=b_Temp10;
b_Bit16=b_Temp11;
b_Bit17=b_Temp12;
b_Bit18=b_Temp13;
b_Bit19=b_Temp12;
b_Bit20=b_Temp13;
b_Bit21=b_Temp14;
b_Bit22=b_Temp15;
b_Bit23=b_Temp16;
b_Bit24=b_Temp17;
b_Bit25=b_Temp16;
b_Bit26=b_Temp17;
b_Bit27=b_Temp18;
b_Bit28=b_Temp19;
b_Bit29=b_Temp20;
b_Bit30=b_Temp21;
b_Bit31=b_Temp20;
b_Bit32=b_Temp21;
b_Bit33=b_Temp22;
b_Bit34=b_Temp23;
b_Bit35=b_Temp24;
b_Bit36=b_Temp25;
b_Bit37=b_Temp24;
b_Bit38=b_Temp25;
b_Bit39=b_Temp26;
b_Bit40=b_Temp27;
b_Bit41=b_Temp28;
b_Bit42=b_Temp29;
b_Bit43=b_Temp28;
b_Bit44=b_Temp29;
b_Bit45=b_Temp30;
b_Bit46=b_Temp31;
b_Bit47=b_Temp32;
b_Bit48=b_Temp1;
memcpy(p_cExpaindPermutation,p_cBitToChar,6);
}
void CompressPermutation(unsigned char *p_cCompressPermutation,unsigned char *p_cExpaindPermutation)
{
memcpy(p_cCharToBit,p_cExpaindPermutation,6);
p_cExpaindPermutation[0]=0;
if(b_Temp1)p_cExpaindPermutation[0]=32;
if(b_Temp6)p_cExpaindPermutation[0]+=16;
if(b_Temp2)p_cExpaindPermutation[0]+=8;
if(b_Temp3)p_cExpaindPermutation[0]+=4;
if(b_Temp4)p_cExpaindPermutation[0]+=2;
if(b_Temp5)p_cExpaindPermutation[0]+=1;
p_cExpaindPermutation[1]=si[0][p_cExpaindPermutation[0]];
p_cExpaindPermutation[0]=0;
if(b_Temp7)p_cExpaindPermutation[0]=32;
if(b_Temp12)p_cExpaindPermutation[0]+=16;
if(b_Temp8)p_cExpaindPermutation[0]+=8;
if(b_Temp9)p_cExpaindPermutation[0]+=4;
if(b_Temp10)p_cExpaindPermutation[0]+=2;
if(b_Temp11)p_cExpaindPermutation[0]+=1;
p_cExpaindPermutation[2]=si[1][p_cExpaindPermutation[0]];
p_cCompressPermutation[0]=p_cExpaindPermutation[1]*16+p_cExpaindPermutation[2];
p_cExpaindPermutation[0]=0;
if(b_Temp13)p_cExpaindPermutation[0]=32;
if(b_Temp18)p_cExpaindPermutation[0]+=16;
if(b_Temp14)p_cExpaindPermutation[0]+=8;
if(b_Temp15)p_cExpaindPermutation[0]+=4;
if(b_Temp16)p_cExpaindPermutation[0]+=2;
if(b_Temp17)p_cExpaindPermutation[0]+=1;
p_cExpaindPermutation[1]=si[2][p_cExpaindPermutation[0]];
p_cExpaindPermutation[0]=0;
if(b_Temp19)p_cExpaindPermutation[0]=32;
if(b_Temp24)p_cExpaindPermutation[0]+=16;
if(b_Temp20)p_cExpaindPermutation[0]+=8;
if(b_Temp21)p_cExpaindPermutation[0]+=4;
if(b_Temp22)p_cExpaindPermutation[0]+=2;
if(b_Temp23)p_cExpaindPermutation[0]+=1;
p_cExpaindPermutation[2]=si[3][p_cExpaindPermutation[0]];
p_cCompressPermutation[1]=p_cExpaindPermutation[1]*16+p_cExpaindPermutation[2];
p_cExpaindPermutation[0]=0;
if(b_Temp25)p_cExpaindPermutation[0]=32;
if(b_Temp30)p_cExpaindPermutation[0]+=16;
if(b_Temp26)p_cExpaindPermutation[0]+=8;
if(b_Temp27)p_cExpaindPermutation[0]+=4;
if(b_Temp28)p_cExpaindPermutation[0]+=2;
if(b_Temp29)p_cExpaindPermutation[0]+=1;
p_cExpaindPermutation[1]=si[4][p_cExpaindPermutation[0]];
p_cExpaindPermutation[0]=0;
if(b_Temp31)p_cExpaindPermutation[0]=32;
if(b_Temp36)p_cExpaindPermutation[0]+=16;
if(b_Temp32)p_cExpaindPermutation[0]+=8;
if(b_Temp33)p_cExpaindPermutation[0]+=4;
if(b_Temp34)p_cExpaindPermutation[0]+=2;
if(b_Temp35)p_cExpaindPermutation[0]+=1;
p_cExpaindPermutation[2]=si[5][p_cExpaindPermutation[0]];
p_cCompressPermutation[2]=p_cExpaindPermutation[1]*16+p_cExpaindPermutation[2];
p_cExpaindPermutation[0]=0;
if(b_Temp37)p_cExpaindPermutation[0]=32;
if(b_Temp42)p_cExpaindPermutation[0]+=16;
if(b_Temp38)p_cExpaindPermutation[0]+=8;
if(b_Temp39)p_cExpaindPermutation[0]+=4;
if(b_Temp40)p_cExpaindPermutation[0]+=2;
if(b_Temp41)p_cExpaindPermutation[0]+=1;
p_cExpaindPermutation[1]=si[6][p_cExpaindPermutation[0]];
p_cExpaindPermutation[0]=0;
if(b_Temp43)p_cExpaindPermutation[0]=32;
if(b_Temp48)p_cExpaindPermutation[0]+=16;
if(b_Temp44)p_cExpaindPermutation[0]+=8;
if(b_Temp45)p_cExpaindPermutation[0]+=4;
if(b_Temp46)p_cExpaindPermutation[0]+=2;
if(b_Temp47)p_cExpaindPermutation[0]+=1;
p_cExpaindPermutation[2]=si[7][p_cExpaindPermutation[0]];
p_cCompressPermutation[3]=p_cExpaindPermutation[1]*16+p_cExpaindPermutation[2];
}
void StraigthPermutation(unsigned char *p_cCompressPermutation)
{
memcpy(p_cCharToBit,p_cCompressPermutation,4);
b_Bit1=b_Temp16;
b_Bit2=b_Temp7;
b_Bit3=b_Temp20;
b_Bit4=b_Temp21;
b_Bit5=b_Temp29;
b_Bit6=b_Temp12;
b_Bit7=b_Temp28;
b_Bit8=b_Temp17;
b_Bit9=b_Temp1;
b_Bit10=b_Temp15;
b_Bit11=b_Temp23;
b_Bit12=b_Temp26;
b_Bit13=b_Temp5;
b_Bit14=b_Temp18;
b_Bit15=b_Temp31;
b_Bit16=b_Temp10;
b_Bit17=b_Temp2;
b_Bit18=b_Temp8;
b_Bit19=b_Temp24;
b_Bit20=b_Temp14;
b_Bit21=b_Temp32;
b_Bit22=b_Temp27;
b_Bit23=b_Temp3;
b_Bit24=b_Temp9;
b_Bit25=b_Temp19;
b_Bit26=b_Temp13;
b_Bit27=b_Temp30;
b_Bit28=b_Temp6;
b_Bit29=b_Temp22;
b_Bit30=b_Temp11;
b_Bit31=b_Temp4;
b_Bit32=b_Temp25;
memcpy(p_cCompressPermutation,p_cBitToChar,4);
}
void FinalPermutation(unsigned char *result,unsigned char *p_cRightInitData,unsigned char *p_cLeftInitData)
{
memcpy(p_cCharToBit,p_cRightInitData,4);
memcpy(&p_cCharToBit[4],p_cLeftInitData,4);
b_Bit1=b_Temp40;
b_Bit2=b_Temp8;
b_Bit3=b_Temp48;
b_Bit4=b_Temp16;
b_Bit5=b_Temp56;
b_Bit6=b_Temp24;
b_Bit7=b_Temp64;
b_Bit8=b_Temp32;
b_Bit9=b_Temp39;
b_Bit10=b_Temp7;
b_Bit11=b_Temp47;
b_Bit12=b_Temp15;
b_Bit13=b_Temp55;
b_Bit14=b_Temp23;
b_Bit15=b_Temp63;
b_Bit16=b_Temp31;
b_Bit17=b_Temp38;
b_Bit18=b_Temp6;
b_Bit19=b_Temp46;
b_Bit20=b_Temp14;
b_Bit21=b_Temp54;
b_Bit22=b_Temp22;
b_Bit23=b_Temp62;
b_Bit24=b_Temp30;
b_Bit25=b_Temp37;
b_Bit26=b_Temp5;
b_Bit27=b_Temp45;
b_Bit28=b_Temp13;
b_Bit29=b_Temp53;
b_Bit30=b_Temp21;
b_Bit31=b_Temp61;
b_Bit32=b_Temp29;
b_Bit33=b_Temp36;
b_Bit34=b_Temp4;
b_Bit35=b_Temp44;
b_Bit36=b_Temp12;
b_Bit37=b_Temp52;
b_Bit38=b_Temp20;
b_Bit39=b_Temp60;
b_Bit40=b_Temp28;
b_Bit41=b_Temp35;
b_Bit42=b_Temp3;
b_Bit43=b_Temp43;
b_Bit44=b_Temp11;
b_Bit45=b_Temp51;
b_Bit46=b_Temp19;
b_Bit47=b_Temp59;
b_Bit48=b_Temp27;
b_Bit49=b_Temp34;
b_Bit50=b_Temp2;
b_Bit51=b_Temp42;
b_Bit52=b_Temp10;
b_Bit53=b_Temp50;
b_Bit54=b_Temp18;
b_Bit55=b_Temp58;
b_Bit56=b_Temp26;
b_Bit57=b_Temp33;
b_Bit58=b_Temp1;
b_Bit59=b_Temp41;
b_Bit60=b_Temp9;
b_Bit61=b_Temp49;
b_Bit62=b_Temp17;
b_Bit63=b_Temp57;
b_Bit64=b_Temp25;
memcpy(result,p_cBitToChar,8);
}
//*******************end Des *******************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -