#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define P2C 0 /* 평문을 암호로 */
#define C2P 1 /* 암호를 평문으로 */
void keyGenerate();
void desMain(int, char *);
void Ip_Transposition(int, char *);
int Ip_l_Transposition(int, int *);
void fk_fuction(int, int, int *);
void fuc_switch(int, int *);
int convert_10(int *);
int *convert_binary(int, int);
void helpText();
//fk_fuction counter 전역변수
int fk_count=1;
//KEY PRODUCT사용순열
int P_10[10]={3,5,2,7,4,10,1,9,8,6};
int P_8[8]={6,3,7,4,8,5,10,9};
int P_4[4]={2,4,3,1};
//실제 암호화 과정에 사용될 순열 및 SBOX
int MAT_IP[8]={2,6,3,1,4,8,5,7};
int MAT_IP_l[8]={4,1,3,5,7,2,8,6};
int MAT_EXP[8]={4,1,2,3,2,3,4,1};
int MAT_SBOX[2][4][4]={{{0,1,3,2},{1,3,2,0},{0,1,2,3},{2,1,0,2}},
{{0,1,2,3},{2,0,1,3},{3,0,1,0},{2,1,0,3}}};
//KEY 생성을 위한 10bit-key
int KEY_10[10]={1,0,1,0,0,0,0,0,1,0};
int KEY[2][8];