91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 67KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2021-09-09
  • 語言: C/C++
  • 標簽: SPN??

資源簡介

密碼學作業2(分組密碼與高級加密標準) C語言實現SPN線性密碼分析

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?????
#include???
#define?T?1000

int?K[5][16]x[16]y[16];
int?s[16]={1441312151183106125907}; //s盒
int?s_1[16]={1434811210157139611205}; //s盒的逆
int?p[16]={0481215913261014371115}; //p盒
int?p_1[16]={0481215913261014371115};??//p盒的逆

void?Key() //密鑰????
{???
????int?ij;
int?t[32]={0011?1010?1001?0100?1101?0110?0011?1111};???
????for(i=0;i<5;i++)
????????for(j=0;j<16;j++)?
K[i][j]=t[i*4+j];???
}???
void?untwistKey() //解密用到的輪密鑰????
{???
????int?ijt[5][16];???
????for(i=0;i<5;i++)???
????????for(j=0;j<16;j++)?
t[i][j]=K[i][j];???
for(i=0;i<5;i++)
{???
if(i==0||i==4)
{???
for(j=0;j<16;j++)?
K[i][j]=t[4-i][j];???
}???
else
{???
for(j=0;j<16;j++)?
K[i][j]=t[4-i][p_1[j]];???
}???
}???
}???
int?decimal(int?b[]int?len) //二進制轉換為十進制?
{???
????int?i=0s=0;???
????while(i {
s=s*2+b[i];?
i++;
}???
????return?s;???
}???
void?bit(int?decint?*bitint?&len) //十進制轉換為二進制??
{???
len=0;
????int?it[8];
????while(dec!=0)
{???
????????t[len]=dec%2;????
????????len++;????
????????dec=dec/2;???
????}???
????for(i=0;i bit[i]=t[len-1-i];???
}???
void?SPN(int?*inputint?*output) //SPN代換-置換算法??
{???
????int?ijrlendectemp[4];????
????int?*w=new?int[16]*u=new?int[16]*v=new?int[16];???
????for(i=0;i<16;i++)?w[i]=input[i];???
????for(r=0;r<3;r++)
{???
????????for(i=0;i<16;i++)?u[i]=(w[i]+K[r][i])%2;???
????????for(i=0;i<4;i++)
{???
????????????for(j=0;j<4;j++)?temp[j]=u[4*i+j];???
????????????dec=decimal(temp4);???
????????????bit(s[dec]templen);???
????????????for(j=0;j<4-len;j++)?v[4*i+j]=0;???
????????????for(j=4-len;j<4;j++)?v[4*i+j]=temp[j-4+len];???
????????}???
????????for(i=0;i<16;i++)?w[i]=v[p[i]];???
????}???
????for(i=0;i<16;i++)?u[i]=(w[i]+K[3][i])%2;???
????for(i=0;i<4;i++)
{???
????????for(j=0;j<4;j++)?temp[j]=u[4*i+j];???
????????dec=decimal(temp4);???
????????bit(s[dec]templen);???
????????for(j=0;j<4-len;j++)?v[4*i+j]=0;???
????????for(j=4-len;j<4;j++)?v[4*i+j]=temp[j-4+len];???
????}???
????for(i=0;i<16;i++)?output[i]=(v[i]+K[4][i])%2;???
}?

void?out(int?*inputint?*outputint?flag=0)???//輸出明-密文對或密-明文對????
{???
????int?i;???
????if(flag==0) printf(“明文:“);???
????else?printf(“密文:“);???
????for(i=0;i<16;i++)
{???
????????if(i>0&&i%4==0)?printf(“?“);????
????????printf(“%d“input[i]);???
????}???
????printf(“\n“);???
????if(flag==0)?printf(“密文:“);???
????else?printf(“明文:“);???
????for(i=0;i<16;i++)
{???
????????if(i>0&&i%4==0)?printf(“?“);????
????????printf(“%d“output[i]);???
????}???
????printf(“\n“);???
}?
void?Randtext() //隨機生成T個二進制明文?
{???
????int?ij;???
????srand((unsigned)time(NULL)); //保證每次運行得到不同明文????
????for(i=0;i {???
????????for(j=0;j<16;j++)?x[j]=rand()%2;???
????????S

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-03-28?14:08??SPN線性密碼分析\
?????目錄???????????0??2012-03-28?14:08??SPN線性密碼分析\實現教材SPN方案\
?????文件???????52176??2012-03-28?14:01??SPN線性密碼分析\實現教材SPN方案\out.txt
?????文件????????4129??2012-03-28?14:04??SPN線性密碼分析\實現教材SPN方案\教材SPN方案.cpp
?????文件??????????59??2012-03-28?14:07??SPN線性密碼分析\實現教材SPN方案\說明.txt
?????目錄???????????0??2012-03-28?14:08??SPN線性密碼分析\實現教材SPN線性密碼分析\
?????文件??????288006??2012-03-28?13:27??SPN線性密碼分析\實現教材SPN線性密碼分析\in.txt
?????文件????????2028??2012-04-15?17:00??SPN線性密碼分析\實現教材SPN線性密碼分析\SPN線性密碼分析.cpp
?????文件?????????118??2012-03-28?14:10??SPN線性密碼分析\實現教材SPN線性密碼分析\說明.txt

評論

共有 條評論