clock_setup.cpp

来自「MICKEY 2.0 STREAM CIPHER IMPLEMENTATION 」· C++ 代码 · 共 121 行

CPP
121
字号
#include<iostream.h>
#include "IV_LOAD.h"
#include "CLOCKS.h"
#include<stdio.h>

int R[100];
int S[100];
int Z[800];//keystream

void main (void)
{
int i=0;
cout<<"***********************--------------------------------************************\n";
cout<<"***********************| ' MICKEY 2.0 STREAM CIPHER ' |************************\n";
cout<<"***********************--------------------------------************************\n";
int IV[80];
for (i=0;i<80;i++)
IV[i]=0;
IV_LOAD(IV);//FUNCTION FOR LOADING INITIALIZATION VARIABLE FROM FILE

for (i=0;i<80;i++)
cout<<IV[i];
cout<<"------------------------------------"<<i<<" BITS ------------------------------------\n";

	cout<<endl;


int K[80];
for (i=0;i<80;i++)
K[i]=0;

SECRET_KEY_LOAD(K);//FUNCTION FOR LOADING SECRET KEY FROM FILE
for (i=0;i<80;i++)
cout<<K[i];
cout<<"------------------------------------"<<i<<" BITS ------------------------------------\n";

int mixing=1;

//INITIALIZE R & STO ZEROS(000000000000000000.......)
for(i=0;i<100;i++)
{ R[i]=0;	S[i]=0;
}

//LOAD IN , IV  -------  //ivLength=80
for(i=0;i<80;i++)
CLOCK_KG(R,S,mixing,IV[i]);

//LOAD IN , SECRET_KEY (K)  --------  //length K=80
for(i=0;i<80;i++)
CLOCK_KG(R,S,mixing,K[i]);

//PRE-CLOCK
for(i=0;i<100;i++)
CLOCK_KG(R,S,mixing,0);

for(i=0;i<800;i++)
{ Z[i]=0;
//cout<<Z[i]<<R[i]<<S[i]<<endl;
}

cout<<"\n\n\t\t\t     '800-BIT KEYSTREAM IS' \n"<<endl;
for(i=0;i<800;i++)
{
	Z[i]=R[0]^S[0];
	CLOCK_KG(R,S,0,0);
	cout<<Z[i];
}
cout<<endl;

int text[1200];
for(i=0;i<1200;i++)
text[i]=0;

TEXT_LOAD(text);//FUNCTION FOR LOADING PLAIN TEXT FROM FILE

int a[800],b[800];

//cout<<"\n\n\t\t'ORIGINAL TEXT IS' \n"<<endl;
for(i=0;i<800;i++)
{
	a[i]=text[i]^Z[i];//encoded binary
	
	b[i]=a[i]^Z[i];//decoded binary
   
}

char l[150]={'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0'};

bin_2_hex(l,a,sizeof(l),sizeof(a)/4);
cout<<"\n\n\t\t\t       'ENCODED TEXT IS' \n"<<endl;
for(i=0;i<100;i++)
cout<<l[i];
cout<<endl;

char n[150]={'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0',
			 '0','0','0','0','0','0','0','0','0','0'};

bin_2_hex(n,b,sizeof(n),sizeof(b)/4);
cout<<"\n\n\t\t\t      'DECODED TEXT IS' \n"<<endl;
for(i=0;i<100;i++)
cout<<n[i];
cout<<"\n\n\n";

}//PROGRAM ENDS HERE



⌨️ 快捷键说明

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