#include #include #include #include #include #include // OVOAP Version 7E4: Feistel Cipher variant: runs on 64-bit fixed blocks #define ROUNDS 4 #define VALSIZE 4 #define HALFSIZE 4 #define BLOCKSIZE 8 #define KSIZE 124 #define KEYSIZE 128 #define NSIZE 32 // ith key definition: byte index to rotate to //unsigned char KEYI[ROUNDS];// starting byte index (wraping) of each KEYi (0-255) //unsigned char KEY[KSIZE]; unsigned char* KEY; unsigned char* KEYI; void randomize(unsigned char buf[], int len, int max) { int i; for(i=0;i1) s = atoi(argv[1]); printf("using random seed %d\n",s); srand(s); // seed random number generator unsigned char key[KEYSIZE]; genkey(key); // randomize(KEY,KSIZE,256); // randomize(KEYI,ROUNDS,KSIZE); // generates keys KEY = key; KEYI = key+KSIZE; char *msg = "abcdefg"; "xyzzy20"; unsigned char m[VALSIZE*2]; unsigned char m2[VALSIZE*2]; memcpy(m,msg,strlen(msg)+1); unsigned char c[VALSIZE*2]; // ciphertext crypt1(m,c,0); crypt1(c,m2,1); for(i=0;i