⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key_gen.c

📁 本人基于William Stalling的《密码学与网络安全》实现的128位DES加密算法
💻 C
📖 第 1 页 / 共 4 页
字号:
	tempkey.k18=tempkey.k20;   tempkey.k46=tempkey.k48;
	tempkey.k19=tempkey.k21;   tempkey.k47=tempkey.k49;
	tempkey.k20=tempkey.k22;   tempkey.k48=tempkey.k50;
	tempkey.k21=tempkey.k23;   tempkey.k49=tempkey.k51;
	tempkey.k22=tempkey.k24;   tempkey.k50=tempkey.k52;
	tempkey.k23=tempkey.k25;   tempkey.k51=tempkey.k53;
	tempkey.k24=tempkey.k26;   tempkey.k52=tempkey.k54;
	tempkey.k25=tempkey.k27;   tempkey.k53=tempkey.k55;
	tempkey.k26=templ1;        tempkey.k54=tempr1;
	tempkey.k27=templ2;        tempkey.k55=tempr2;

	/*Permuted choice 2(for key 3)*/
	subkey3.k0=tempkey.k13; subkey3.k1=tempkey.k16; subkey3.k2=tempkey.k10;
    subkey3.k3=tempkey.k23; subkey3.k4=tempkey.k0;  subkey3.k5=tempkey.k4;
	subkey3.k6=tempkey.k2;  subkey3.k7=tempkey.k27; subkey3.k8=tempkey.k14;
	subkey3.k9=tempkey.k5;  subkey3.k10=tempkey.k20;subkey3.k11=tempkey.k9;
	subkey3.k12=tempkey.k22;subkey3.k13=tempkey.k18;subkey3.k14=tempkey.k11;
	subkey3.k15=tempkey.k3; subkey3.k16=tempkey.k25;subkey3.k17=tempkey.k7;
    subkey3.k18=tempkey.k15;subkey3.k19=tempkey.k6; subkey3.k20=tempkey.k26;
	subkey3.k21=tempkey.k19;subkey3.k22=tempkey.k12;subkey3.k23=tempkey.k1;
	subkey3.k24=tempkey.k40;subkey3.k25=tempkey.k51;subkey3.k26=tempkey.k30;
	subkey3.k27=tempkey.k36;subkey3.k28=tempkey.k46;subkey3.k29=tempkey.k54;
	subkey3.k30=tempkey.k29;subkey3.k31=tempkey.k39;subkey3.k32=tempkey.k50;
    subkey3.k33=tempkey.k44;subkey3.k34=tempkey.k32;subkey3.k35=tempkey.k47;
	subkey3.k36=tempkey.k43;subkey3.k37=tempkey.k48;subkey3.k38=tempkey.k38;
	subkey3.k39=tempkey.k55;subkey3.k40=tempkey.k33;subkey3.k41=tempkey.k52;
	subkey3.k42=tempkey.k45;subkey3.k43=tempkey.k41;subkey3.k44=tempkey.k49;
	subkey3.k45=tempkey.k35;subkey3.k46=tempkey.k28;subkey3.k47=tempkey.k31;

/*********************************************/
/****************Key4 generation**************/
/*********************************************/

	/*Left shift of the both parts(for key4)*/
	templ1=tempkey.k0;         tempr1=tempkey.k28;
	templ2=tempkey.k1;         tempr2=tempkey.k29;
	tempkey.k0=tempkey.k2;     tempkey.k28=tempkey.k30;
	tempkey.k1=tempkey.k3;     tempkey.k29=tempkey.k31;
	tempkey.k2=tempkey.k4;     tempkey.k30=tempkey.k32;
	tempkey.k3=tempkey.k5;     tempkey.k31=tempkey.k33;
	tempkey.k4=tempkey.k6;     tempkey.k32=tempkey.k34;
	tempkey.k5=tempkey.k7;     tempkey.k33=tempkey.k35;
	tempkey.k6=tempkey.k8;     tempkey.k34=tempkey.k36;
	tempkey.k7=tempkey.k9;     tempkey.k35=tempkey.k37;
	tempkey.k8=tempkey.k10;    tempkey.k36=tempkey.k38;
	tempkey.k9=tempkey.k11;    tempkey.k37=tempkey.k39;
	tempkey.k10=tempkey.k12;   tempkey.k38=tempkey.k40;
	tempkey.k11=tempkey.k13;   tempkey.k39=tempkey.k41;
	tempkey.k12=tempkey.k14;   tempkey.k40=tempkey.k42;
	tempkey.k13=tempkey.k15;   tempkey.k41=tempkey.k43;
	tempkey.k14=tempkey.k16;   tempkey.k42=tempkey.k44;
	tempkey.k15=tempkey.k17;   tempkey.k43=tempkey.k45;
	tempkey.k16=tempkey.k18;   tempkey.k44=tempkey.k46;
	tempkey.k17=tempkey.k19;   tempkey.k45=tempkey.k47;
	tempkey.k18=tempkey.k20;   tempkey.k46=tempkey.k48;
	tempkey.k19=tempkey.k21;   tempkey.k47=tempkey.k49;
	tempkey.k20=tempkey.k22;   tempkey.k48=tempkey.k50;
	tempkey.k21=tempkey.k23;   tempkey.k49=tempkey.k51;
	tempkey.k22=tempkey.k24;   tempkey.k50=tempkey.k52;
	tempkey.k23=tempkey.k25;   tempkey.k51=tempkey.k53;
	tempkey.k24=tempkey.k26;   tempkey.k52=tempkey.k54;
	tempkey.k25=tempkey.k27;   tempkey.k53=tempkey.k55;
	tempkey.k26=templ1;        tempkey.k54=tempr1;
	tempkey.k27=templ2;        tempkey.k55=tempr2;

	/*Permuted choice 2(for key 4)*/
	subkey4.k0=tempkey.k13; subkey4.k1=tempkey.k16; subkey4.k2=tempkey.k10;
    subkey4.k3=tempkey.k23; subkey4.k4=tempkey.k0;  subkey4.k5=tempkey.k4;
	subkey4.k6=tempkey.k2;  subkey4.k7=tempkey.k27; subkey4.k8=tempkey.k14;
	subkey4.k9=tempkey.k5;  subkey4.k10=tempkey.k20;subkey4.k11=tempkey.k9;
	subkey4.k12=tempkey.k22;subkey4.k13=tempkey.k18;subkey4.k14=tempkey.k11;
	subkey4.k15=tempkey.k3; subkey4.k16=tempkey.k25;subkey4.k17=tempkey.k7;
    subkey4.k18=tempkey.k15;subkey4.k19=tempkey.k6; subkey4.k20=tempkey.k26;
	subkey4.k21=tempkey.k19;subkey4.k22=tempkey.k12;subkey4.k23=tempkey.k1;
	subkey4.k24=tempkey.k40;subkey4.k25=tempkey.k51;subkey4.k26=tempkey.k30;
	subkey4.k27=tempkey.k36;subkey4.k28=tempkey.k46;subkey4.k29=tempkey.k54;
	subkey4.k30=tempkey.k29;subkey4.k31=tempkey.k39;subkey4.k32=tempkey.k50;
    subkey4.k33=tempkey.k44;subkey4.k34=tempkey.k32;subkey4.k35=tempkey.k47;
	subkey4.k36=tempkey.k43;subkey4.k37=tempkey.k48;subkey4.k38=tempkey.k38;
	subkey4.k39=tempkey.k55;subkey4.k40=tempkey.k33;subkey4.k41=tempkey.k52;
	subkey4.k42=tempkey.k45;subkey4.k43=tempkey.k41;subkey4.k44=tempkey.k49;
	subkey4.k45=tempkey.k35;subkey4.k46=tempkey.k28;subkey4.k47=tempkey.k31;

/*********************************************/
/****************Key5 generation**************/
/*********************************************/

	/*Left shift of the both parts(for key5)*/
	templ1=tempkey.k0;         tempr1=tempkey.k28;
	templ2=tempkey.k1;         tempr2=tempkey.k29;
	tempkey.k0=tempkey.k2;     tempkey.k28=tempkey.k30;
	tempkey.k1=tempkey.k3;     tempkey.k29=tempkey.k31;
	tempkey.k2=tempkey.k4;     tempkey.k30=tempkey.k32;
	tempkey.k3=tempkey.k5;     tempkey.k31=tempkey.k33;
	tempkey.k4=tempkey.k6;     tempkey.k32=tempkey.k34;
	tempkey.k5=tempkey.k7;     tempkey.k33=tempkey.k35;
	tempkey.k6=tempkey.k8;     tempkey.k34=tempkey.k36;
	tempkey.k7=tempkey.k9;     tempkey.k35=tempkey.k37;
	tempkey.k8=tempkey.k10;    tempkey.k36=tempkey.k38;
	tempkey.k9=tempkey.k11;    tempkey.k37=tempkey.k39;
	tempkey.k10=tempkey.k12;   tempkey.k38=tempkey.k40;
	tempkey.k11=tempkey.k13;   tempkey.k39=tempkey.k41;
	tempkey.k12=tempkey.k14;   tempkey.k40=tempkey.k42;
	tempkey.k13=tempkey.k15;   tempkey.k41=tempkey.k43;
	tempkey.k14=tempkey.k16;   tempkey.k42=tempkey.k44;
	tempkey.k15=tempkey.k17;   tempkey.k43=tempkey.k45;
	tempkey.k16=tempkey.k18;   tempkey.k44=tempkey.k46;
	tempkey.k17=tempkey.k19;   tempkey.k45=tempkey.k47;
	tempkey.k18=tempkey.k20;   tempkey.k46=tempkey.k48;
	tempkey.k19=tempkey.k21;   tempkey.k47=tempkey.k49;
	tempkey.k20=tempkey.k22;   tempkey.k48=tempkey.k50;
	tempkey.k21=tempkey.k23;   tempkey.k49=tempkey.k51;
	tempkey.k22=tempkey.k24;   tempkey.k50=tempkey.k52;
	tempkey.k23=tempkey.k25;   tempkey.k51=tempkey.k53;
	tempkey.k24=tempkey.k26;   tempkey.k52=tempkey.k54;
	tempkey.k25=tempkey.k27;   tempkey.k53=tempkey.k55;
	tempkey.k26=templ1;        tempkey.k54=tempr1;
	tempkey.k27=templ2;        tempkey.k55=tempr2;

	/*Permuted choice 2(for key 5)*/
	subkey5.k0=tempkey.k13; subkey5.k1=tempkey.k16; subkey5.k2=tempkey.k10;
    subkey5.k3=tempkey.k23; subkey5.k4=tempkey.k0;  subkey5.k5=tempkey.k4;
	subkey5.k6=tempkey.k2;  subkey5.k7=tempkey.k27; subkey5.k8=tempkey.k14;
	subkey5.k9=tempkey.k5;  subkey5.k10=tempkey.k20;subkey5.k11=tempkey.k9;
	subkey5.k12=tempkey.k22;subkey5.k13=tempkey.k18;subkey5.k14=tempkey.k11;
	subkey5.k15=tempkey.k3; subkey5.k16=tempkey.k25;subkey5.k17=tempkey.k7;
    subkey5.k18=tempkey.k15;subkey5.k19=tempkey.k6; subkey5.k20=tempkey.k26;
	subkey5.k21=tempkey.k19;subkey5.k22=tempkey.k12;subkey5.k23=tempkey.k1;
	subkey5.k24=tempkey.k40;subkey5.k25=tempkey.k51;subkey5.k26=tempkey.k30;
	subkey5.k27=tempkey.k36;subkey5.k28=tempkey.k46;subkey5.k29=tempkey.k54;
	subkey5.k30=tempkey.k29;subkey5.k31=tempkey.k39;subkey5.k32=tempkey.k50;
    subkey5.k33=tempkey.k44;subkey5.k34=tempkey.k32;subkey5.k35=tempkey.k47;
	subkey5.k36=tempkey.k43;subkey5.k37=tempkey.k48;subkey5.k38=tempkey.k38;
	subkey5.k39=tempkey.k55;subkey5.k40=tempkey.k33;subkey5.k41=tempkey.k52;
	subkey5.k42=tempkey.k45;subkey5.k43=tempkey.k41;subkey5.k44=tempkey.k49;
	subkey5.k45=tempkey.k35;subkey5.k46=tempkey.k28;subkey5.k47=tempkey.k31;
 

/*********************************************/
/****************Key6 generation**************/
/*********************************************/

	/*Left shift of the both parts(for key6)*/
	templ1=tempkey.k0;         tempr1=tempkey.k28;
	templ2=tempkey.k1;         tempr2=tempkey.k29;
	tempkey.k0=tempkey.k2;     tempkey.k28=tempkey.k30;
	tempkey.k1=tempkey.k3;     tempkey.k29=tempkey.k31;
	tempkey.k2=tempkey.k4;     tempkey.k30=tempkey.k32;
	tempkey.k3=tempkey.k5;     tempkey.k31=tempkey.k33;
	tempkey.k4=tempkey.k6;     tempkey.k32=tempkey.k34;
	tempkey.k5=tempkey.k7;     tempkey.k33=tempkey.k35;
	tempkey.k6=tempkey.k8;     tempkey.k34=tempkey.k36;
	tempkey.k7=tempkey.k9;     tempkey.k35=tempkey.k37;
	tempkey.k8=tempkey.k10;    tempkey.k36=tempkey.k38;
	tempkey.k9=tempkey.k11;    tempkey.k37=tempkey.k39;
	tempkey.k10=tempkey.k12;   tempkey.k38=tempkey.k40;
	tempkey.k11=tempkey.k13;   tempkey.k39=tempkey.k41;
	tempkey.k12=tempkey.k14;   tempkey.k40=tempkey.k42;
	tempkey.k13=tempkey.k15;   tempkey.k41=tempkey.k43;
	tempkey.k14=tempkey.k16;   tempkey.k42=tempkey.k44;
	tempkey.k15=tempkey.k17;   tempkey.k43=tempkey.k45;
	tempkey.k16=tempkey.k18;   tempkey.k44=tempkey.k46;
	tempkey.k17=tempkey.k19;   tempkey.k45=tempkey.k47;
	tempkey.k18=tempkey.k20;   tempkey.k46=tempkey.k48;
	tempkey.k19=tempkey.k21;   tempkey.k47=tempkey.k49;
	tempkey.k20=tempkey.k22;   tempkey.k48=tempkey.k50;
	tempkey.k21=tempkey.k23;   tempkey.k49=tempkey.k51;
	tempkey.k22=tempkey.k24;   tempkey.k50=tempkey.k52;
	tempkey.k23=tempkey.k25;   tempkey.k51=tempkey.k53;
	tempkey.k24=tempkey.k26;   tempkey.k52=tempkey.k54;
	tempkey.k25=tempkey.k27;   tempkey.k53=tempkey.k55;
	tempkey.k26=templ1;        tempkey.k54=tempr1;
	tempkey.k27=templ2;        tempkey.k55=tempr2;

	/*Permuted choice 2(for key 6)*/
	subkey6.k0=tempkey.k13; subkey6.k1=tempkey.k16; subkey6.k2=tempkey.k10;
    subkey6.k3=tempkey.k23; subkey6.k4=tempkey.k0;  subkey6.k5=tempkey.k4;
	subkey6.k6=tempkey.k2;  subkey6.k7=tempkey.k27; subkey6.k8=tempkey.k14;
	subkey6.k9=tempkey.k5;  subkey6.k10=tempkey.k20;subkey6.k11=tempkey.k9;
	subkey6.k12=tempkey.k22;subkey6.k13=tempkey.k18;subkey6.k14=tempkey.k11;
	subkey6.k15=tempkey.k3; subkey6.k16=tempkey.k25;subkey6.k17=tempkey.k7;
    subkey6.k18=tempkey.k15;subkey6.k19=tempkey.k6; subkey6.k20=tempkey.k26;
	subkey6.k21=tempkey.k19;subkey6.k22=tempkey.k12;subkey6.k23=tempkey.k1;
	subkey6.k24=tempkey.k40;subkey6.k25=tempkey.k51;subkey6.k26=tempkey.k30;
	subkey6.k27=tempkey.k36;subkey6.k28=tempkey.k46;subkey6.k29=tempkey.k54;
	subkey6.k30=tempkey.k29;subkey6.k31=tempkey.k39;subkey6.k32=tempkey.k50;
    subkey6.k33=tempkey.k44;subkey6.k34=tempkey.k32;subkey6.k35=tempkey.k47;
	subkey6.k36=tempkey.k43;subkey6.k37=tempkey.k48;subkey6.k38=tempkey.k38;
	subkey6.k39=tempkey.k55;subkey6.k40=tempkey.k33;subkey6.k41=tempkey.k52;
	subkey6.k42=tempkey.k45;subkey6.k43=tempkey.k41;subkey6.k44=tempkey.k49;
	subkey6.k45=tempkey.k35;subkey6.k46=tempkey.k28;subkey6.k47=tempkey.k31;
   

/*********************************************/
/****************Key7 generation**************/
/*********************************************/

	/*Left shift of the both parts(for key7)*/
	templ1=tempkey.k0;         tempr1=tempkey.k28;
	templ2=tempkey.k1;         tempr2=tempkey.k29;
	tempkey.k0=tempkey.k2;     tempkey.k28=tempkey.k30;
	tempkey.k1=tempkey.k3;     tempkey.k29=tempkey.k31;
	tempkey.k2=tempkey.k4;     tempkey.k30=tempkey.k32;
	tempkey.k3=tempkey.k5;     tempkey.k31=tempkey.k33;
	tempkey.k4=tempkey.k6;     tempkey.k32=tempkey.k34;
	tempkey.k5=tempkey.k7;     tempkey.k33=tempkey.k35;
	tempkey.k6=tempkey.k8;     tempkey.k34=tempkey.k36;
	tempkey.k7=tempkey.k9;     tempkey.k35=tempkey.k37;
	tempkey.k8=tempkey.k10;    tempkey.k36=tempkey.k38;
	tempkey.k9=tempkey.k11;    tempkey.k37=tempkey.k39;
	tempkey.k10=tempkey.k12;   tempkey.k38=tempkey.k40;
	tempkey.k11=tempkey.k13;   tempkey.k39=tempkey.k41;
	tempkey.k12=tempkey.k14;   tempkey.k40=tempkey.k42;
	tempkey.k13=tempkey.k15;   tempkey.k41=tempkey.k43;
	tempkey.k14=tempkey.k16;   tempkey.k42=tempkey.k44;
	tempkey.k15=tempkey.k17;   tempkey.k43=tempkey.k45;
	tempkey.k16=tempkey.k18;   tempkey.k44=tempkey.k46;
	tempkey.k17=tempkey.k19;   tempkey.k45=tempkey.k47;
	tempkey.k18=tempkey.k20;   tempkey.k46=tempkey.k48;
	tempkey.k19=tempkey.k21;   tempkey.k47=tempkey.k49;
	tempkey.k20=tempkey.k22;   tempkey.k48=tempkey.k50;
	tempkey.k21=tempkey.k23;   tempkey.k49=tempkey.k51;
	tempkey.k22=tempkey.k24;   tempkey.k50=tempkey.k52;
	tempkey.k23=tempkey.k25;   tempkey.k51=tempkey.k53;
	tempkey.k24=tempkey.k26;   tempkey.k52=tempkey.k54;
	tempkey.k25=tempkey.k27;   tempkey.k53=tempkey.k55;
	tempkey.k26=templ1;        tempkey.k54=tempr1;
	tempkey.k27=templ2;        tempkey.k55=tempr2;

	/*Permuted choice 2(for key 7)*/
	subkey7.k0=tempkey.k13; subkey7.k1=tempkey.k16; subkey7.k2=tempkey.k10;
    subkey7.k3=tempkey.k23; subkey7.k4=tempkey.k0;  subkey7.k5=tempkey.k4;
	subkey7.k6=tempkey.k2;  subkey7.k7=tempkey.k27; subkey7.k8=tempkey.k14;
	subkey7.k9=tempkey.k5;  subkey7.k10=tempkey.k20;subkey7.k11=tempkey.k9;
	subkey7.k12=tempkey.k22;subkey7.k13=tempkey.k18;subkey7.k14=tempkey.k11;
	subkey7.k15=tempkey.k3; subkey7.k16=tempkey.k25;subkey7.k17=tempkey.k7;
    subkey7.k18=tempkey.k15;subkey7.k19=tempkey.k6; subkey7.k20=tempkey.k26;
	subkey7.k21=tempkey.k19;subkey7.k22=tempkey.k12;subkey7.k23=tempkey.k1;
	subkey7.k24=tempkey.k40;subkey7.k25=tempkey.k51;subkey7.k26=tempkey.k30;
	subkey7.k27=tempkey.k36;subkey7.k28=tempkey.k46;subkey7.k29=tempkey.k54;
	subkey7.k30=tempkey.k29;subkey7.k31=tempkey.k39;subkey7.k32=tempkey.k50;
    subkey7.k33=tempkey.k44;subkey7.k34=tempkey.k32;subkey7.k35=tempkey.k47;
	subkey7.k36=tempkey.k43;subkey7.k37=tempkey.k48;subkey7.k38=tempkey.k38;
	subkey7.k39=tempkey.k55;subkey7.k40=tempkey.k33;subkey7.k41=tempkey.k52;
	subkey7.k42=tempkey.k45;subkey7.k43=tempkey.k41;subkey7.k44=tempkey.k49;
	subkey7.k45=tempkey.k35;subkey7.k46=tempkey.k28;subkey7.k47=tempkey.k31;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -