#include <stdio.h>
main()
{
int x,y,z,round,bin[64],binkey[64],ip[64],kp[64],left[28],right[28];
int kosong,kosong1,kosong2,empty,empty1,empty2,gabung[56],kiri[32],kanan[32];
int cp[48],key1[48],key2[48],key3[48],key4[48],key5[48],key6[48],key7[48];
int key8[48],key9[48],key10[48],key11[48],key12[48],key13[48],key14[48],key15[48],key16[48];
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,ep[48],counter,xor[48];
int sementara[8],binsbox[32],pbox[32],rikson[32],gultom[32],ga[64],fp[64],cipher[64];
char plain[8],key[8];
int sbox1[4][16]={
14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,
0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,
4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,
15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13};
int sbox2[4][16]={
15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,
3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,
0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,
13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9};
int sbox3[4][16]={
10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,
13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,
13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,
1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12};
int sbox4[4][16]={
7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,
13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,
10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,
3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14};
int sbox5[4][16]={
2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,
14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,16,
4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,
11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3};
int sbox6[4][16]={
12,1,10,15,9,2,6,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};
int sbox7[4][16]={
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};
int sbox8[4][16]={
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};
clrscr();
for(x=0;x<=5;x++){
sleep(1);
printf(“\7″);
gotoxy(20,10);printf(“ =============================\n”);
gotoxy(20,11);printf(“|| ||\n”);
gotoxy(20,12);printf(“|| NESYA STEFANI ||\n”);
gotoxy(20,13);printf(“|| PROGRAM ENKRIPSI ||\n”);
gotoxy(20,14);printf(“|| DES ||\n”);
gotoxy(20,15);printf(“|| ||\n”);
gotoxy(20,16);printf(“ =============================\n”);
sleep(1);
clrscr();
}
/* INPUT PLAINTEXT */
printf(“Masukkan Plainteks:\n”);
for(x=0;x<=7;x++) {
plain[x]=getch();
putchar(plain[x]);
}
plain[8]=NULL;
clrscr();
for(x=0;x<=7;x++)
printf(” %d “,plain[x]);
sleep(1);
clrscr();
bin[0] =(plain[0]>>7)&1; bin[8] =(plain[1]>>7)&1;
bin[1] =(plain[0]>>6)&1; bin[9] =(plain[1]>>6)&1;
bin[2] =(plain[0]>>5)&1; bin[10]=(plain[1]>>5)&1;
bin[3] =(plain[0]>>4)&1; bin[11]=(plain[1]>>4)&1;
bin[4] =(plain[0]>>3)&1; bin[12]=(plain[1]>>3)&1;
bin[5] =(plain[0]>>2)&1; bin[13]=(plain[1]>>2)&1;
bin[6] =(plain[0]>>1)&1; bin[14]=(plain[1]>>1)&1;
bin[7] = plain[0]&1; bin[15]= plain[1]&1;
bin[16]=(plain[2]>>7)&1; bin[24]=(plain[3]>>7)&1;
bin[17]=(plain[2]>>6)&1; bin[25]=(plain[3]>>6)&1;
bin[18]=(plain[2]>>5)&1; bin[26]=(plain[3]>>5)&1;
bin[19]=(plain[2]>>4)&1; bin[27]=(plain[3]>>4)&1;
bin[20]=(plain[2]>>3)&1; bin[28]=(plain[3]>>3)&1;
bin[21]=(plain[2]>>2)&1; bin[29]=(plain[3]>>2)&1;
bin[22]=(plain[2]>>1)&1; bin[30]=(plain[3]>>1)&1;
bin[23]= plain[2]&1; bin[31]= plain[3]&1;
bin[32]=(plain[4]>>7)&1; bin[40]=(plain[5]>>7)&1;
bin[33]=(plain[4]>>6)&1; bin[41]=(plain[5]>>6)&1;
bin[34]=(plain[4]>>5)&1; bin[42]=(plain[5]>>5)&1;
bin[35]=(plain[4]>>4)&1; bin[43]=(plain[5]>>4)&1;
bin[36]=(plain[4]>>3)&1; bin[44]=(plain[5]>>3)&1;
bin[37]=(plain[4]>>2)&1; bin[45]=(plain[5]>>2)&1;
bin[38]=(plain[4]>>1)&1; bin[46]=(plain[5]>>1)&1;
bin[39]= plain[4]&1; bin[47]= plain[5]&1;
bin[48]=(plain[6]>>7)&1; bin[56]=(plain[7]>>7)&1;
bin[49]=(plain[6]>>6)&1; bin[57]=(plain[7]>>6)&1;
bin[50]=(plain[6]>>5)&1; bin[58]=(plain[7]>>5)&1;
bin[51]=(plain[6]>>4)&1; bin[59]=(plain[7]>>4)&1;
bin[52]=(plain[6]>>3)&1; bin[60]=(plain[7]>>3)&1;
bin[53]=(plain[6]>>2)&1; bin[61]=(plain[7]>>2)&1;
bin[54]=(plain[6]>>1)&1; bin[62]=(plain[7]>>1)&1;
bin[55]= plain[6]&1; bin[63]= plain[7]&1;
printf(“NILAI BINARI PLAINTEKS YANG ANDA MASUKKAN ADALAH :\n”);
for(x=0;x<=63;x++)
printf(“%d”,bin[x]);
sleep(1);
clrscr();
ip[0]=bin[57]; ip[8] =bin[59]; ip[16]=bin[61]; ip[24]=bin[63];
ip[1]=bin[49]; ip[9] =bin[51]; ip[17]=bin[53]; ip[25]=bin[55];
ip[2]=bin[41]; ip[10]=bin[43]; ip[18]=bin[45]; ip[26]=bin[47];
ip[3]=bin[33]; ip[11]=bin[35]; ip[19]=bin[37]; ip[27]=bin[39];
ip[4]=bin[25]; ip[12]=bin[27]; ip[20]=bin[29]; ip[28]=bin[31];
ip[5]=bin[17]; ip[13]=bin[19]; ip[21]=bin[21]; ip[29]=bin[23];
ip[6]=bin[9]; ip[14]=bin[11]; ip[22]=bin[13]; ip[30]=bin[15];
ip[7]=bin[1]; ip[15]=bin[3]; ip[23]=bin[5]; ip[31]=bin[7];
ip[32]=bin[56]; ip[40]=bin[58]; ip[48]=bin[60]; ip[56]=bin[62];
ip[33]=bin[48]; ip[41]=bin[50]; ip[49]=bin[52]; ip[57]=bin[54];
ip[34]=bin[40]; ip[42]=bin[42]; ip[50]=bin[44]; ip[58]=bin[46];
ip[35]=bin[32]; ip[43]=bin[34]; ip[51]=bin[36]; ip[59]=bin[38];
ip[36]=bin[24]; ip[44]=bin[26]; ip[52]=bin[28]; ip[60]=bin[30];
ip[37]=bin[16]; ip[45]=bin[18]; ip[53]=bin[20]; ip[61]=bin[22];
ip[38]=bin[8]; ip[46]=bin[10]; ip[54]=bin[12]; ip[62]=bin[14];
ip[39]=bin[0]; ip[47]=bin[2]; ip[55]=bin[4]; ip[63]=bin[6];
printf(“IP :\n”);
for(x=0;x<=63;x++)
printf(“%d”,ip[x]);
sleep(1);
clrscr();
/* INPUT KEY */
printf(“masukkan kunci Anda:\n”);
for(x=0;x<=7;x++) {
key[x]=getch();
putchar(key[x]);
}
key[8]=NULL;
clrscr();
printf(“KEY :\n”);
for(x=0;x<=7;x++)
printf(“%d”,key[x]);
sleep(1);
clrscr();
binkey[0] =(key[0]>>7)&1; binkey[32]=(key[4]>>6)&1;
binkey[1] =(key[0]>>5)&1; binkey[33]=(key[4]>>4)&1;
binkey[2] =(key[0]>>3)&1; binkey[34]=(key[4]>>2)&1;
binkey[3] =(key[0]>>7)&1; binkey[35]=(key[4]>>6)&1;
binkey[4] =(key[0]>>5)&1; binkey[36]=(key[4]>>4)&1;
binkey[5] =(key[0]>>3)&1; binkey[37]=(key[4]>>2)&1;
binkey[6] =(key[0]>>1)&1; binkey[38]=(key[4]>>2)&1;
binkey[7] = key[0]&1; binkey[39]= key[4]&1;
binkey[8] =(key[1]>>7)&1; binkey[40]=(key[5]>>6)&1;
binkey[9] =(key[1]>>5)&1; binkey[41]=(key[5]>>4)&1;
binkey[10]=(key[1]>>3)&1; binkey[42]=(key[5]>>2)&1;
binkey[11]=(key[1]>>7)&1; binkey[43]=(key[5]>>6)&1;
binkey[12]=(key[1]>>5)&1; binkey[44]=(key[5]>>4)&1;
binkey[13]=(key[1]>>3)&1; binkey[45]=(key[5]>>2)&1;
binkey[14]=(key[1]>>1)&1; binkey[46]=(key[5]>>1)&1;
binkey[15]= key[1]&1; binkey[47]= key[5]&1;
binkey[16]=(key[2]>>7)&1; binkey[48]=(key[6]>>6)&1;
binkey[17]=(key[2]>>5)&1; binkey[49]=(key[6]>>4)&1;
binkey[18]=(key[2]>>3)&1; binkey[50]=(key[6]>>2)&1;
binkey[19]=(key[2]>>1)&1; binkey[51]=(key[6]>>7)&1;
binkey[20]=(key[2]>>5)&1; binkey[52]=(key[6]>>4)&1;
binkey[21]=(key[2]>>3)&1; binkey[53]=(key[6]>>2)&1;
binkey[22]=(key[2]>>1)&1; binkey[54]=(key[6]>>6)&1;
binkey[23]= key[2]&1; binkey[55]= key[6]&1;
binkey[24]=(key[3]>>7)&1; binkey[56]=(key[7]>>6)&1;
binkey[25]=(key[3]>>5)&1; binkey[57]=(key[7]>>4)&1;
binkey[26]=(key[3]>>3)&1; binkey[58]=(key[7]>>2)&1;
binkey[27]=(key[3]>>1)&1; binkey[59]=(key[7]>>1)&1;
binkey[28]=(key[3]>>7)&1; binkey[60]=(key[7]>>6)&1;
binkey[29]=(key[3]>>5)&1; binkey[61]=(key[7]>>4)&1;
binkey[30]=(key[3]>>3)&1; binkey[62]=(key[7]>>2)&1;
binkey[31]= key[3]&1; binkey[63]= key[7]&1;
printf(“BINARY KEY :\n”);
for(x=0;x<=63;x++)
printf(“%d”,binkey[x]);
sleep(1);
clrscr();
kp[0] =binkey[56]; kp[14]=binkey[9]; kp[28]=binkey[62]; kp[42]=binkey[13];
kp[1] =binkey[48]; kp[15]=binkey[1]; kp[29]=binkey[54]; kp[43]=binkey[5];
kp[2] =binkey[40]; kp[16]=binkey[58]; kp[30]=binkey[46]; kp[44]=binkey[60];
kp[3] =binkey[33]; kp[17]=binkey[50]; kp[31]=binkey[38]; kp[45]=binkey[52];
kp[4] =binkey[25]; kp[18]=binkey[42]; kp[32]=binkey[30]; kp[46]=binkey[44];
kp[5] =binkey[16]; kp[19]=binkey[34]; kp[33]=binkey[22]; kp[47]=binkey[36];
kp[6] =binkey[8]; kp[20]=binkey[26]; kp[34]=binkey[14]; kp[48]=binkey[28];
kp[7] =binkey[0]; kp[21]=binkey[18]; kp[35]=binkey[6]; kp[49]=binkey[20];
kp[8] =binkey[57]; kp[22]=binkey[10]; kp[36]=binkey[61]; kp[50]=binkey[12];
kp[9] =binkey[49]; kp[23]=binkey[2]; kp[37]=binkey[53]; kp[51]=binkey[4];
kp[10]=binkey[41]; kp[24]=binkey[59]; kp[38]=binkey[45]; kp[52]=binkey[27];
kp[11]=binkey[33]; kp[25]=binkey[51]; kp[39]=binkey[37]; kp[53]=binkey[19];
kp[12]=binkey[25]; kp[26]=binkey[43]; kp[40]=binkey[29]; kp[54]=binkey[11];
kp[13]=binkey[17]; kp[27]=binkey[35]; kp[41]=binkey[21]; kp[55]=binkey[3];
printf(“KP :\n”);
for(x=0;x<=55;x++)
printf(“%d”,kp[x]);
sleep(1);
clrscr();
for(x=0;x<=27;x++){
left[x] =kp[x];
right[x]=kp[x+28];
}
printf(“BAGI DUA\n”);
printf(“KIRI : “);
for(x=0;x<=27;x++)
printf(“%d”,left[x]);
printf(“\nKANAN : “);
for(x=0;x<=27;x++)
printf(“%d”,right[x]);
sleep(1);
clrscr();
round=1;
looping:
printf(“ROUND : %d”,round);
sleep(2);
clrscr();
if(round==1||round==2||round==9||round==16){
kosong=left[0];
empty=right[0];
for(x=0;x<=26;x++){
left[x]=left[x+1];
right[x]=right[x+1];
}
left[27]=kosong;
right[27]=empty;
}
else {
kosong1=left[0];
kosong2=left[1];
empty1=right[0];
empty2=right[1];
for(x=0;x<=25;x++){
left[x]=left[x+2];
right[x]=right[x+2];
}
left[26]=kosong1;
left[27]=kosong2;
right[26]=empty1;
right[27]=empty2;
}
printf(“SHIFT\n”);
printf(“KIRI SEKARANG :”);
for(x=0;x<=27;x++)
printf(“%d”,left[x]);
printf(“\nKANAN SEKARANG :”);
for(x=0;x<=27;x++)
printf(“%d”,right[x]);
sleep(1);
clrscr();
for(x=0;x<=27;x++){
gabung[x]=left[x];
gabung[x+28]=right[x];
}
printf(“GABUNG\n”);
for(x=0;x<=55;x++)
printf(“%d”,gabung[x]);
sleep(1);
clrscr();
cp[0] =gabung[13]; cp[12]=gabung[22]; cp[24]=gabung[40]; cp[36]=gabung[43];
cp[1] =gabung[16]; cp[13]=gabung[18]; cp[25]=gabung[51]; cp[37]=gabung[48];
cp[2] =gabung[10]; cp[14]=gabung[11]; cp[26]=gabung[30]; cp[38]=gabung[38];
cp[3] =gabung[23]; cp[15]=gabung[3]; cp[27]=gabung[36]; cp[39]=gabung[55];
cp[4] =gabung[0]; cp[16]=gabung[25]; cp[28]=gabung[46]; cp[40]=gabung[33];
cp[5] =gabung[4]; cp[17]=gabung[7]; cp[29]=gabung[55]; cp[41]=gabung[52];
cp[6] =gabung[2]; cp[18]=gabung[15]; cp[30]=gabung[29]; cp[42]=gabung[45];
cp[7] =gabung[27]; cp[19]=gabung[6]; cp[31]=gabung[39]; cp[43]=gabung[41];
cp[8] =gabung[14]; cp[20]=gabung[26]; cp[32]=gabung[50]; cp[44]=gabung[49];
cp[9] =gabung[5]; cp[21]=gabung[19]; cp[33]=gabung[44]; cp[45]=gabung[35];
cp[10]=gabung[20]; cp[22]=gabung[12]; cp[34]=gabung[32]; cp[46]=gabung[28];
cp[11]=gabung[9]; cp[23]=gabung[1]; cp[35]=gabung[47]; cp[47]=gabung[31];
printf(“CP :\n”);
for(x=0;x<=47;x++)
printf(“%d”,cp[x]);
sleep(1);
clrscr();
for(x=0;x<=47;x++){
if(round==1) key1[x]=cp[x];
if(round==2) key2[x]=cp[x];
if(round==3) key3[x]=cp[x];
if(round==4) key4[x]=cp[x];
if(round==5) key5[x]=cp[x];
if(round==6) key6[x]=cp[x];
if(round==7) key7[x]=cp[x];
if(round==8) key8[x]=cp[x];
if(round==9) key9[x]=cp[x];
if(round==10) key10[x]=cp[x];
if(round==11) key11[x]=cp[x];
if(round==12) key12[x]=cp[x];
if(round==13) key13[x]=cp[x];
if(round==14) key14[x]=cp[x];
if(round==15) key15[x]=cp[x];
if(round==16) key16[x]=cp[x];
}
round++;
if(round==17) goto next;
else goto looping;
next:
for(x=0;x<=31;x++){
kiri[x]=ip[x];
kanan[x]=ip[x+32];
}
printf(“IP DIBAGI DUA\n”);
printf(“KIRI:\n”);
for(x=0;x<=31;x++)
printf(“%d”,kiri[x]);
printf(“\nKANAN:\n”);
for(x=0;x<=31;x++)
printf(“%d”,kanan[x]);
sleep(1);
clrscr();
counter=1;
back:
printf(“COUNTER : %d”,counter);
sleep(1);
clrscr();
ep[0] =kanan[31]; ep[12]=kanan[7]; ep[24]=kanan[15]; ep[36]=kanan[23];
ep[1] =kanan[0]; ep[13]=kanan[8]; ep[25]=kanan[16]; ep[37]=kanan[24];
ep[2] =kanan[1]; ep[14]=kanan[9]; ep[26]=kanan[17]; ep[38]=kanan[25];
ep[3] =kanan[2]; ep[15]=kanan[10]; ep[27]=kanan[18]; ep[39]=kanan[26];
ep[4] =kanan[3]; ep[16]=kanan[11]; ep[28]=kanan[19]; ep[40]=kanan[27];
ep[5] =kanan[4]; ep[17]=kanan[12]; ep[29]=kanan[20]; ep[41]=kanan[28];
ep[6] =kanan[3]; ep[18]=kanan[11]; ep[30]=kanan[19]; ep[42]=kanan[27];
ep[7] =kanan[4]; ep[19]=kanan[12]; ep[31]=kanan[20]; ep[43]=kanan[28];
ep[8] =kanan[5]; ep[20]=kanan[13]; ep[32]=kanan[21]; ep[44]=kanan[29];
ep[9] =kanan[6]; ep[21]=kanan[14]; ep[33]=kanan[22]; ep[45]=kanan[30];
ep[10]=kanan[7]; ep[22]=kanan[15]; ep[34]=kanan[23]; ep[46]=kanan[31];
ep[11]=kanan[8]; ep[23]=kanan[16]; ep[35]=kanan[24]; ep[47]=kanan[0];
printf(“EP:\n”);
for(x=0;x<=47;x++)
printf(“%d”,ep[x]);
sleep(1);
clrscr();
for(x=0;x<=47;x++){
if(counter==1)
xor[x]=ep[x]^key1[x];
if(counter==2)
xor[x]=ep[x]^key2[x];
if(counter==3)
xor[x]=ep[x]^key3[x];
if(counter==4)
xor[x]=ep[x]^key4[x];
if(counter==5)
xor[x]=ep[x]^key5[x];
if(counter==6)
xor[x]=ep[x]^key6[x];
if(counter==7)
xor[x]=ep[x]^key7[x];
if(counter==8)
xor[x]=ep[x]^key8[x];
if(counter==9)
xor[x]=ep[x]^key9[x];
if(counter==10)
xor[x]=ep[x]^key10[x];
if(counter==11)
xor[x]=ep[x]^key11[x];
if(counter==12)
xor[x]=ep[x]^key12[x];
if(counter==13)
xor[x]=ep[x]^key13[x];
if(counter==14)
xor[x]=ep[x]^key14[x];
if(counter==15)
xor[x]=ep[x]^key15[x];
if(counter==16)
xor[x]=ep[x]^key16[x];
}
a=(xor[0]<<1)^xor[5];
b=(xor[1]<<3)^(xor[2]<<2)^(xor[3]<<1)^xor[4];
c=(xor[6]<<1)^xor[11];
d=(xor[7]<<3)^(xor[8]<<2)^(xor[9]<<1)^xor[10];
e=(xor[12]<<1)^xor[17];
f=(xor[11]<<3)^(xor[12]<<2)^(xor[13]<<1)^xor[14];
g=(xor[18]<<1)^xor[23];
h=(xor[19]<<3)^(xor[20]<<2)^(xor[21]<<1)^xor[22];
i=(xor[24]<<1)^xor[29];
j=(xor[25]<<3)^(xor[26]<<2)^(xor[27]<<1)^xor[28];
k=(xor[30]<<1)^xor[35];
l=(xor[31]<<3)^(xor[32]<<2)^(xor[33]<<1)^xor[34];
m=(xor[36]<<1)^xor[41];
n=(xor[37]<<3)^(xor[38]<<2)^(xor[39]<<1)^xor[40];
o=(xor[42]<<1)^xor[47];
p=(xor[43]<<3)^(xor[44]<<2)^(xor[45]<<1)^xor[46];
printf(“\nA = %d”,a);
printf(“\nB = %d”,b);
printf(“\nC = %d”,c);
printf(“\nD = %d”,d);
printf(“\nE = %d”,e);
printf(“\nF = %d”,f);
printf(“\nG = %d”,g);
printf(“\nH = %d”,h);
printf(“\nI = %d”,i);
printf(“\nJ = %d”,j);
printf(“\nK = %d”,k);
printf(“\nL = %d”,l);
printf(“\nM = %d”,m);
printf(“\nN = %d”,n);
printf(“\nO = %d”,o);
printf(“\nP = %d”,p);
sleep(1);
clrscr();
sementara[0]=sbox1[a][b];
sementara[1]=sbox2[c][d];
sementara[2]=sbox3[e][f];
sementara[3]=sbox4[g][h];
sementara[4]=sbox5[i][j];
sementara[5]=sbox6[k][l];
sementara[6]=sbox7[m][n];
sementara[7]=sbox8[o][p];
printf(“NILAI OUTPUT DARI SBOX\n”);
printf(“sbox1 OUTPUT : %d\n”,sementara[0]);
printf(“sbox2 OUTPUT : %d\n”,sementara[1]);
printf(“sbox3 OUTPUT : %d\n”,sementara[2]);
printf(“sbox4 OUTPUT : %d\n”,sementara[3]);
printf(“sbox5 OUTPUT : %d\n”,sementara[4]);
printf(“sbox6 OUTPUT : %d\n”,sementara[5]);
printf(“sbox7 OUTPUT : %d\n”,sementara[6]);
printf(“sbox8 OUTPUT : %d\n”,sementara[7]);
sleep(1);
clrscr();
binsbox[0] =(sementara[1]>>3)&1;
binsbox[1] =(sementara[1]>>2)&1;
binsbox[2] =(sementara[1]>>1)&1;
binsbox[3] =sementara [1]&1;
binsbox[4] =(sementara[2]>>3)&1;
binsbox[5] =(sementara[2]>>2)&1;
binsbox[6] =(sementara[2]>>1)&1;
binsbox[7] =sementara [2]&1;
binsbox[8] =(sementara[3]>>3)&1;
binsbox[9] =(sementara[3]>>2)&1;
binsbox[10]=(sementara[3]>>1)&1;
binsbox[11]=sementara [3]&1;
binsbox[12]=(sementara[4]>>3)&1;
binsbox[13]=(sementara[4]>>2)&1;
binsbox[14]=(sementara[4]>>1)&1;
binsbox[15]=sementara [4]&1;
binsbox[16]=(sementara[5]>>3)&1;
binsbox[17]=(sementara[5]>>2)&1;
binsbox[18]=(sementara[5]>>1)&1;
binsbox[19]=sementara [5]&1;
binsbox[20]=(sementara[6]>>3)&1;
binsbox[21]=(sementara[6]>>2)&1;
binsbox[22]=(sementara[6]>>1)&1;
binsbox[23]=sementara [6]&1;
binsbox[24]=(sementara[7]>>3)&1;
binsbox[25]=(sementara[7]>>2)&1;
binsbox[26]=(sementara[7]>>1)&1;
binsbox[27]=sementara [7]&1;
binsbox[28]=(sementara[8]>>3)&1;
binsbox[29]=(sementara[8]>>2)&1;
binsbox[30]=(sementara[8]>>1)&1;
binsbox[31]=sementara [8]&1;
printf(“BINARI KELUARAN DARI SBOX:\n”);
for(x=0;x<=31;x++)
printf(“%d”,binsbox[x]);
sleep(1);
clrscr();
pbox[0] =binsbox[15]; pbox[16]=binsbox[1];
pbox[1] =binsbox[6]; pbox[17]=binsbox[7];
pbox[2] =binsbox[19]; pbox[18]=binsbox[23];
pbox[3] =binsbox[20]; pbox[19]=binsbox[13];
pbox[4] =binsbox[28]; pbox[20]=binsbox[31];
pbox[5] =binsbox[11]; pbox[21]=binsbox[26];
pbox[6] =binsbox[27]; pbox[22]=binsbox[2];
pbox[7] =binsbox[16]; pbox[23]=binsbox[8];
pbox[8] =binsbox[0]; pbox[24]=binsbox[18];
pbox[9] =binsbox[14]; pbox[25]=binsbox[12];
pbox[10]=binsbox[22]; pbox[26]=binsbox[29];
pbox[11]=binsbox[25]; pbox[27]=binsbox[5];
pbox[12]=binsbox[4]; pbox[28]=binsbox[21];
pbox[13]=binsbox[17]; pbox[29]=binsbox[10];
pbox[14]=binsbox[30]; pbox[30]=binsbox[3];
pbox[15]=binsbox[9]; pbox[31]=binsbox[24];
printf(“PBOX :\n”);
for(x=0;x<=31;x++)
printf(“%d”,pbox[x]);
sleep(1);
clrscr();
for(x=0;x<=31;x++){
rikson[x]=kiri[x];
gultom[x]=kanan[x];
kiri[x]=gultom[x];
kanan[x]=rikson[x]^pbox[x];
}
printf(“XOR LALU TUKAR KIRI DENGAN KANAN\n”);
printf(“KIRI SEKARANG :\n”);
for(x=0;x<=31;x++)
printf(“%d”,kiri[x]);
printf(“\nKANAN SEKARANG :\n”);
for(x=0;x<=31;x++)
printf(“%d”,kanan[x]);
sleep(1);
clrscr();
counter++;
if(counter==17) goto lanjut;
else
goto back;
lanjut:
for(x=0;x<=31;x++){
ga[x]=kiri[x];
ga[x+32]=kanan[x];
}
printf(“GABUNG SEMUA\n”);
for(x=0;x<=63;x++)
printf(“%d”,ga[x]);
sleep(1);
clrscr();
fp[0] =ga[39]; fp[16]=ga[37]; fp[32]=ga[35]; fp[48]=ga[33];
fp[1] =ga[7]; fp[17]=ga[5]; fp[33]=ga[3]; fp[49]=ga[1];
fp[2] =ga[47]; fp[18]=ga[45]; fp[34]=ga[43]; fp[50]=ga[41];
fp[3] =ga[15]; fp[19]=ga[13]; fp[35]=ga[11]; fp[51]=ga[9];
fp[4] =ga[55]; fp[20]=ga[53]; fp[36]=ga[51]; fp[52]=ga[49];
fp[5] =ga[23]; fp[21]=ga[21]; fp[37]=ga[19]; fp[53]=ga[17];
fp[6] =ga[63]; fp[22]=ga[61]; fp[38]=ga[59]; fp[54]=ga[57];
fp[7] =ga[31]; fp[23]=ga[29]; fp[39]=ga[27]; fp[55]=ga[25];
fp[8] =ga[38]; fp[24]=ga[36]; fp[40]=ga[34]; fp[56]=ga[32];
fp[9] =ga[6]; fp[25]=ga[4]; fp[41]=ga[2]; fp[57]=ga[0];
fp[10]=ga[46]; fp[26]=ga[44]; fp[42]=ga[42]; fp[58]=ga[40];
fp[11]=ga[14]; fp[27]=ga[12]; fp[43]=ga[10]; fp[59]=ga[8];
fp[12]=ga[54]; fp[28]=ga[52]; fp[44]=ga[50]; fp[60]=ga[48];
fp[13]=ga[22]; fp[29]=ga[20]; fp[45]=ga[18]; fp[61]=ga[16];
fp[14]=ga[62]; fp[30]=ga[60]; fp[46]=ga[58]; fp[62]=ga[56];
fp[15]=ga[30]; fp[31]=ga[28]; fp[47]=ga[26]; fp[63]=ga[24];
printf(“FP:\n”);
for(x=0;x<=63;x++)
printf(“%d”,fp[x]);
sleep(1);
clrscr();
cipher[0]=(fp[0 ]<<7)^(fp[1 ]<<6)^(fp[2 ]<<5)^(fp[3 ]<<4)^(fp[4 ]<<3)^(fp[5 ]<<2)^(fp[6 ]<<1)^fp[7 ];
cipher[1]=(fp[8 ]<<7)^(fp[9 ]<<6)^(fp[10]<<5)^(fp[11]<<4)^(fp[12]<<3)^(fp[13]<<2)^(fp[14]<<1)^fp[15];
cipher[2]=(fp[16]<<7)^(fp[17]<<6)^(fp[18]<<5)^(fp[19]<<4)^(fp[20]<<3)^(fp[21]<<2)^(fp[22]<<1)^fp[23];
cipher[3]=(fp[24]<<7)^(fp[25]<<6)^(fp[26]<<5)^(fp[27]<<4)^(fp[28]<<3)^(fp[29]<<2)^(fp[30]<<1)^fp[31];
cipher[4]=(fp[32]<<7)^(fp[33]<<6)^(fp[34]<<5)^(fp[35]<<4)^(fp[36]<<3)^(fp[37]<<2)^(fp[38]<<1)^fp[39];
cipher[5]=(fp[40]<<7)^(fp[41]<<6)^(fp[42]<<5)^(fp[43]<<4)^(fp[44]<<3)^(fp[45]<<2)^(fp[46]<<1)^fp[47];
cipher[6]=(fp[48]<<7)^(fp[49]<<6)^(fp[50]<<5)^(fp[51]<<4)^(fp[52]<<3)^(fp[53]<<2)^(fp[54]<<1)^fp[55];
cipher[7]=(fp[56]<<7)^(fp[57]<<6)^(fp[58]<<5)^(fp[59]<<4)^(fp[60]<<3)^(fp[61]<<2)^(fp[62]<<1)^fp[63];
printf(“TEKS SANDI :”);
for(x=0;x<=7;x++)
printf(“%d “,cipher[x]);
getch();
}