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

📄 nd.cpp

📁 s盒差分分布表
💻 CPP
字号:
#include<iostream.h>
#include<malloc.h>
#include<math.h>
 
void PIs(int  S[16][4]);

int  Yihuo(int   ,int  );
 
void OutputOrNot(int A[16][4] );
void main()
{    
	
	 for(int k=0;k<16;k++){	
		 int X[16][4]={
			 {0,0,0,0},{0,0,0,1},{0,0,1,0},{0,0,1,1},
			 {0,1,0,0},{0,1,0,1},{0,1,1,0},{0,1,1,1},
			 {1,0,0,0},{1,0,0,1},{1,0,1,0},{1,0,1,1},
			 {1,1,0,0},{1,1,0,1},{1,1,1,0},{1,1,1,1}
			 
		 };
		 int X2[16][4];
	 int Y[16][4];
  for(int i=0;i<16;i++) 
  for(int j=0;j<4;j++)
	 
	  

 X2[i][j]=Yihuo(X[i][j],X[k][j]);
  PIs(X);
 PIs(X2);

 for(  i=0;i<16;i++) 
	 for( int j=0;j<4;j++)
 Y[i][j]=Yihuo(X[i][j],X2[i][j]);
     OutputOrNot(Y);
	 }
}

////异或////////

int   Yihuo(int w  ,int k )
{   int A ;
	 
	 A = w^k ;
	 
return A;	

}

//////////////S盒//////
void  PIs(int  S[16][4])
{
	int temp;
	int pi[4] ;
	for(int i=0;i<16;i++){
	  for (int j=0;j<4;j++){pi[j]= S [i][j] ; } 
	    temp=pi[0]*8+pi[1]*4+pi[2]*2+pi[3] ; 
  	   switch(temp)
	   {case 0 : pi[0] =1;pi[1] =1;pi[2] =1;pi[3] =0;break;
	   case 1 : pi[0] =0;pi[1] =1;pi[2] =0;pi[3] =0;break;
	   case 2 : pi[0] =1;pi[1] =1;pi[2] =0;pi[3] =1;break;
	   case 3 : pi[0] =0;pi[1] =0;pi[2] =0;pi[3] =1;break;
	   case 4 : pi[0] =0;pi[1] =0;pi[2] =1;pi[3] =0;break;
	   case 5 : pi[0] =1;pi[1] =1;pi[2] =1;pi[3] =1;break;
	   case 6 : pi[0] =1;pi[1] =0;pi[2] =1;pi[3] =1;break;
	   case 7 : pi[0] =1;pi[1] =0;pi[2] =0;pi[3] =0;break;
	   case 8 : pi[0] =0;pi[1] =0;pi[2] =1;pi[3] =1;break;
	   case 9 : pi[0] =1;pi[1] =0;pi[2] =1;pi[3] =0;break;
	   case 10 : pi[0] =0;pi[1] =1;pi[2] =1;pi[3] =0;break;
	   case 11 : pi[0] =1;pi[1] =1;pi[2] =0;pi[3] =0;break;
	   case 12 : pi[0] =0;pi[1] =1;pi[2] =0;pi[3] =1;break;
	   case 13 : pi[0] =1;pi[1] =0;pi[2] =0;pi[3] =1;break;
	   case 14 : pi[0] =0;pi[1] =0;pi[2] =0;pi[3] =0;break;
		case 15 : pi[0] =0;pi[1] =1;pi[2] =1;pi[3] =1;break;
	   }
	   for(int k=0;k<4;k++){S[i][k]=pi[k];}
	
	}
 

}


void OutputOrNot(int A[16][4] )
{
	int temp;
	int pi[4] ;
	int S[16]={0} ;
	for(int i=0;i<16;i++){
		for (int j=0;j<4;j++){pi[j]= A[i][j] ; } 
	    temp=pi[0]*8+pi[1]*4+pi[2]*2+pi[3] ; 
	   S[temp]++;
	}
	
	for(  i=0;i<16;i++)	cout<<S[i]<<"  ";
	cout<<endl;
}








 
 

⌨️ 快捷键说明

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