void craetekey(int *key,int *zikey)
{
int i,j,m;
int Key[56];
int lside[28],rside[28],lsideo[28],rsideo[28];
for(i=0;i<56;i++)
{
Key[i]=key[PC_1[i]-1];
}
for(i=0;i<16;i++)
{
for(j=0;j<56;j++)
{
if(j<28)
{lside[j]=Key[j];}
else
{rside[j-28]=Key[j];}
}
xuhuanyiwei(lside,rside,i);
for(j=0;j<56;j++)
{
if(j<28)
{Key[j]=lside[j];}
else
{Key[j]=rside[j-28];}
}
for(m=0;m<48;m++)
{
zikey[48*i+m]=Key[PC_2[m]-1];
}
}
}
void xuhuanyiwei(int *ls,int *rs,int flag)
{
int lso[28],rso[28];
int n;
for(n=0;n<28;n++)
{
lso[(n-yiwei[flag])%28]=ls[n];
rso[(n-yiwei[flag])%28]=rs[n];
}
for(n=0;n<28;n++)
{
ls[n]=lso[n];
rs[n]=rso[n];
}
}