[ create a new paste ] login | about

Link: http://codepad.org/6UcolZWm    [ raw code | output | fork ]

C, pasted on Sep 12:
// v2.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include <emmintrin.h>
#include <time.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/timeb.h>
#include <stdio.h>

#define N 256
#define K  6
unsigned char h3[K][N];
//unsigned char gf[N]={0,1,2,4,8,9,11,15,7,14,5,10,13,3,6,12};
//unsigned char fg[N]={0,1,2,13,3,10,14,8,4,5,11,6,15,12,9,7};
unsigned char gf[N]={0,1,2,4,8,16,32,64,128,29,58,116,232,205,135,19,38,76,152,45,90,180,117,234,201,143,3,6,12,24,48,96,192,157,39,78,156,37,74,148,53,106,212,181,119,238,193,159,35,70,140,5,10,20,40,80,160,93,186,105,210,185,111,222,161,95,190,97,194,153,47,94,188,101,202,137,15,30,60,120,240,253,231,211,187,107,214,177,127,254,225,223,163,91,182,113,226,217,175,67,134,17,34,68,136,13,26,52,104,208,189,103,206,129,31,62,124,248,237,199,147,59,118,236,197,151,51,102,204,133,23,46,92,184,109,218,169,79,158,33,66,132,21,42,84,168,77,154,41,82,164,85,170,73,146,57,114,228,213,183,115,230,209,191,99,198,145,63,126,252,229,215,179,123,246,241,255,227,219,171,75,150,49,98,196,149,55,110,220,165,87,174,65,130,25,50,100,200,141,7,14,28,56,112,224,221,167,83,166,81,162,89,178,121,242,249,239,195,155,43,86,172,69,138,9,18,36,72,144,61,122,244,245,247,243,251,235,203,139,11,22,44,88,176,125,250,233,207,131,27,54,108,216,173,71,142};
unsigned char fg[N]={0,1,2,26,3,51,27,199,4,224,52,239,28,105,200,76,5,101,225,15,53,142,240,130,29,194,106,249,201,9,77,114,6,139,102,48,226,37,16,34,54,148,143,219,241,19,131,70,30,182,195,126,107,40,250,186,202,155,10,121,78,229,115,167,7,192,140,99,103,222,49,254,227,153,38,180,17,146,35,137,55,209,149,207,144,151,220,190,242,211,20,93,132,57,71,65,31,67,183,164,196,73,127,111,108,59,41,85,251,134,187,62,203,95,156,160,11,22,122,44,79,213,230,173,116,244,168,88,8,113,193,248,141,129,100,14,104,75,223,238,50,198,255,25,228,166,154,120,39,185,181,125,18,69,147,218,36,33,138,47,56,64,210,92,150,189,208,206,145,136,152,179,221,253,191,98,243,87,212,172,21,43,94,159,133,61,58,84,72,110,66,163,32,46,68,217,184,124,165,119,197,24,74,237,128,13,112,247,109,162,60,83,42,158,86,171,252,97,135,178,188,205,63,91,204,90,96,177,157,170,161,82,12,246,23,236,123,118,45,216,80,175,214,234,231,232,174,233,117,215,245,235,169,81,89,176};
unsigned char g[K+1]={1,0,0,0,1,0,1}; //={130, 160, 130, 193, 130, 211, 130, 241, 130, 160, 130, 169, 130, 241, 130, 196};
unsigned char f[N]={131, 94, 131, 129, 131, 84, 131, 140, 131, 139, 131, 95, 131, 67, 131, 96};

int q[2]={0,0};
int q2[2]={0,0};
int q3[2]={0,0};

int r[K+1]={0,0,0,0,0,0,0};
//int g[7]={1,0,0,0,1,0,1};
int vv[4]={0,0,0,0};
int v[N]={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,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};



extern void genkey(char str[16]);


void ff(){
  int i,j;
  
  for(i=0;i<N;i++){
    for(j=0;j<N;j++){
      if(gf[j]==i)
        printf("%u,",j);
      
    }
  }
  
}


int mlt(int x, int y){

    if(x==0||y==0)
        return 0;
  
  return ((x+y-2)%(N-1))+1;
}


int mltn(int n,int x){
  int i,j;
  
  i=x;
    for(j=0;j<n-1;j++)
      i=mlt(i,x);
  
  return i;
}



int dv(int x,int y){
  
  if(x==0)
    return 0;
  
  return ((x-y+(N-1))%(N-1))+1;
}


void lk(){
unsigned int o=0,x,a,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,c[7],d[2];
int i,j,read_size;
unsigned char e[6]={0,0,0,0,0,1}, s[6]={0,0,0,0,0,0};
unsigned char r[7]={0,0,0,0,0,0,0};
//unsigned char v[16]={1,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0};

char str[N];

for(x=0;x<N;x++){


a=gf[mlt(mlt(mlt(fg[x],fg[x]),mlt(fg[x],fg[x])),mlt(fg[x],fg[x]))]^gf[mlt(fg[x],fg[x])]^1;
  
/*=begin
a128=gf[mltn(128,fg[x])]
a64=gf[mltn(64,fg[x])]
a32=gf[mltn(32,fg[x])]
a16=gf[mltn(16,fg[x])]
a15=gf[mlt(g[15],mltn(15,fg[x]))]
a14=gf[mlt(g[14],mltn(14,fg[x]))]
a13=gf[mlt(g[13],mltn(13,fg[x]))]
a12=gf[mlt(g[12],mltn(12,fg[x]))]
a11=gf[mlt(g[11],mltn(11,fg[x]))]
a10=gf[mlt(g[10],mltn(10,fg[x]))]
a9=gf[mlt(g[9],mltn(9,fg[x]))]
a8=gf[mlt(g[8],mltn(8,fg[x]))]
a7=gf[mlt(g[7],mltn(7,fg[x]))]
a6=gf[mlt(g[6],mltn(6,fg[x]))]
a5=gf[mlt(mlt(mlt(fg[x],fg[x]),mlt(fg[x],fg[x])),mlt(g[5],fg[x]))]
a4=gf[mlt(mlt(mlt(fg[x],fg[x]),mlt(fg[x],fg[x])),g[4])];
a3=gf[mlt(mlt(fg[x],fg[x]),mlt(fg[x],g[3]))];
a2=gf[mlt(mlt(fg[x],fg[x]),g[2])];
a=gf[mlt(fg[x],g[1])]^g[0];
a=a^a2^a3^a4^a5^a6^a7^a8^a9^a10^a11^a12^a13^a14^a15^a16
#^a32^a64^a128;
=end
*/
  if(a==0){
  printf("trace 0\n");
  exit(1);
  }
/*
  print a," "
  for j in 0..15
    b=gf[mlt(mlt(fg[j],fg[j]),fg[j])]^gf[fg[j]]^1^a;
    if(b==0)
     print "j=",j,"\n"
    end
  end
*/

//c=[1^a,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,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,1,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,1]
//c=[1^a,0,0,0,0,0,0,0,0,0,g[1],g[2],g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15],g[16],g[17],g[18],g[19],g[20],g[21],g[22],g[23],g[24],g[25],g[26],g[27],g[28],g[29],g[30],g[31],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
//c=[g[0]^a,g[1],g[2],g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15],1];
//c=[g[0]^a,g[1],g[2],g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1];
  c[0]=1^a;
  c[1]=0;
  c[2]=1;
  c[3]=0;
  c[4]=0;
  c[5]=0;
  c[6]=1;
  
d[0]=x;
d[1]=1;
//e=[0,0,0,0,0,1]
  //for(i=0;i<7;i++)
  //r[i]=0;
//#e=[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,00,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,00,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]
//#r=[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,0,0,0,0,0,0,0,0,0,0,0]
e[5]=1;

 
i=K;
  
  while(i>0){
  r[i]=gf[mlt(fg[d[1]],fg[e[i-1]])];
  r[i-1]=gf[mlt(fg[d[0]],fg[e[i-1]])];
//#print r[i]," r",i," ",r[i-1]," ",e[i-1],"\n"
	j=K;
    while(j>-1){
    c[j]=r[j]^gf[fg[c[j]]];
//    print c[j]," c"
    j=j-1;
    }
//#  print "\n"
  r[i]=c[i];
    r[0]=c[0];
    if(i-2>-1){
    e[i-2]=c[i-1];
  //  printf("e %d\n",e[i-2]);
    }
i=i-1;
  }

  for(i=0;i<K;i++){
  h3[i][x]=gf[mlt(fg[e[K-1-i]],dv(1,fg[a]))];
    if(x==5)
      printf("e=%d %d\n",e[K-1-i],a);
  }

//#print x," "
}

//#exit()
for(i=0;i<K;i++){
  for(j=0;j<N;j++){
    printf("%d,",h3[i][j]);
  }
  printf("\n");
}
     
}

int main(){
  int i,j,k,read_size,oo,pp,qq;
  unsigned long cc,a,x;
  unsigned char s[6]={0,0,0,0,0,0},xx[3]={0,0,0},b[3]={0,0,0},bb[3]={0,0,0},c[3]={0,0,0},buf[6],buf2[6];
  unsigned char v1=0,v2=1,v3[2]={0,0},v4[3]={0,0,0},v5[4]={0,0,0,0},p4[4]={0,0,0,0},p3[4]={0,0,0,0},p[4]={0,0,0,0};
  FILE *fp,*fq,*fr;
  unsigned long long int ull,w;

  
  lk();
  fp=fopen("3","rb");
  fq=fopen("test.v2","wb");
  fr=fopen("v2.out","wb");
  printf("初期値を入れて下さい");
  scanf("%u",&x);
  srand(x);

  w=281474976710655;
    k=rand()%256;
//printf("s=%d\n",s[0]);
//    printf("%u ",k);
    oo=(k+45)%256;
    pp=(k+123)%256;
    qq=(k+234)%256;
  while((read_size=fread(buf,1,6,fp))>0){
      i=0;
    //  fread(buf,1,3,fp);
 //printf("!");

  //  if(k>50){
    v[oo]=rand()%256;
    v[pp]=rand()%256;
    v[qq]=rand()%256;
      for(j=0;j<K;j++){
        for(i=0;i<N;i++){
          if(v[i]!=0){
            s[j]^=gf[mlt(fg[v[i]],fg[h3[j][i]])];
          }
        }
        //   printf("%d ", s[j]);
      }

    buf[0]^=s[0];
    buf[3]^=s[3];
    buf[1]^=s[1];
    buf[4]^=s[4];
    buf[2]^=s[2];
    buf[5]^=s[5];
    fwrite(buf,1,6,fq);  
  
  }
  fclose(fr);
//printf("\n");


  return 0;

}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
e=1 209
e=5 209
e=17 209
e=85 209
e=29 209
e=105 209
1,1,78,35,153,113,231,250,32,63,147,215,178,47,52,72,79,165,94,17,191,243,187,46,28,132,91,60,118,152,40,242,62,67,206,132,239,5,174,77,155,115,69,102,235,3,186,140,220,173,101,95,75,161,31,159,166,203,132,233,199,245,125,210,116,60,241,229,11,214,253,52,179,52,142,115,78,176,78,79,126,33,216,102,121,141,227,232,57,149,60,237,3,77,224,79,51,156,115,147,255,17,91,66,54,147,41,90,133,168,195,81,138,3,72,201,61,200,17,197,102,136,77,139,91,72,6,12,5,156,190,229,170,152,236,252,161,71,109,254,121,127,40,106,40,31,220,214,57,251,159,63,152,153,204,166,122,153,63,110,141,159,220,166,87,5,66,31,28,226,94,196,201,149,157,37,28,207,135,21,56,158,208,13,94,108,54,213,11,161,228,73,229,66,181,183,175,234,9,125,187,182,65,245,57,180,50,238,240,117,54,22,131,173,214,215,121,230,107,111,215,69,187,201,156,86,76,45,173,83,120,30,39,2,97,4,209,219,184,16,20,80,7,218,149,141,245,69,11,125,194,134,148,53,58,29,
0,1,156,101,94,168,104,220,29,218,215,146,11,246,5,159,132,39,53,62,249,147,194,16,61,120,141,94,97,3,23,188,147,203,121,220,55,177,167,171,38,10,208,225,172,119,220,199,195,171,232,87,96,68,104,245,146,169,164,103,100,221,68,36,76,135,105,205,214,10,133,13,42,8,37,187,5,184,153,152,69,163,168,60,17,91,132,28,132,66,217,162,228,56,45,28,114,34,177,12,124,123,43,54,34,219,220,136,197,234,41,19,229,147,102,98,11,155,69,63,221,185,147,57,166,249,25,62,186,41,4,209,37,77,69,49,63,101,17,94,64,48,20,95,3,201,214,221,130,99,72,156,78,79,45,229,58,17,70,247,173,189,21,119,187,11,163,161,225,244,69,52,125,49,138,109,220,60,18,186,69,75,56,128,112,160,10,44,80,123,69,210,28,149,189,147,3,77,184,52,143,248,58,121,6,157,5,156,220,98,40,97,39,57,215,214,81,2,43,11,68,215,77,31,11,40,206,50,146,59,11,213,238,207,254,139,24,53,227,86,92,61,228,129,115,246,164,7,134,112,93,120,83,147,175,196,
0,1,37,175,101,50,109,46,232,68,69,79,116,234,54,118,168,109,29,133,232,32,10,109,2,76,35,161,232,39,167,149,151,147,105,251,114,236,172,178,153,7,108,20,167,111,222,220,233,13,167,210,79,21,34,209,134,78,183,244,152,219,195,79,234,221,141,103,220,152,227,68,31,114,202,128,97,234,68,146,180,238,74,24,125,176,13,218,102,113,124,159,157,4,254,58,55,126,135,174,160,250,225,13,81,235,144,220,199,114,120,15,248,242,6,177,27,11,127,162,12,152,182,188,194,112,26,56,95,16,50,146,227,45,190,50,19,154,194,20,160,72,10,254,173,165,11,153,244,91,170,115,10,221,198,92,238,184,55,201,20,123,226,218,247,179,119,135,243,103,237,48,81,171,213,244,241,99,150,61,88,69,53,145,240,124,208,153,51,6,192,69,245,122,227,253,81,135,212,18,172,66,211,25,146,238,209,6,106,254,129,82,137,93,1,1,221,175,175,230,78,147,166,224,110,42,83,124,80,78,84,11,160,203,103,155,85,228,172,75,89,41,62,223,218,164,194,255,239,209,193,186,147,14,55,136,
0,1,74,236,137,250,115,202,19,94,152,147,74,102,25,200,82,243,247,42,161,154,156,128,48,162,73,93,178,212,6,181,23,4,115,6,51,183,235,250,118,223,158,38,174,240,130,2,90,96,168,149,176,150,226,163,193,165,126,226,113,85,15,35,24,132,231,81,78,11,18,17,107,20,103,110,211,126,79,78,137,173,55,251,92,158,153,153,129,140,218,33,99,105,183,202,239,243,100,67,108,111,239,249,185,148,205,76,31,39,58,79,161,20,49,233,8,16,81,173,26,122,194,125,98,174,152,39,188,248,92,77,111,154,198,166,237,172,78,78,13,252,5,129,18,67,79,220,135,117,30,24,153,152,160,182,240,198,194,47,104,235,140,36,102,13,108,43,236,233,135,166,246,255,91,101,209,54,79,168,64,29,184,153,178,255,145,170,200,169,217,133,128,90,125,212,79,79,167,127,209,191,114,241,3,93,152,152,82,54,179,244,124,242,214,215,28,25,245,211,69,153,19,148,218,245,159,37,89,224,70,95,97,72,184,141,152,45,58,66,78,97,101,153,189,51,44,73,30,59,78,37,157,143,45,201,
1,0,218,10,135,68,208,182,184,171,10,147,237,219,170,4,6,221,102,245,195,110,225,97,166,173,95,176,146,20,108,128,228,199,238,78,13,55,194,167,106,248,202,149,20,172,120,210,154,31,222,15,253,247,254,234,105,180,103,6,116,48,42,32,58,34,93,239,68,11,101,119,19,233,167,20,13,10,153,152,251,134,160,81,35,16,126,236,122,133,174,25,54,115,221,209,218,114,159,211,81,124,234,109,72,74,61,75,85,151,167,220,254,153,175,109,186,203,152,175,162,230,153,109,238,227,147,55,125,161,39,123,146,194,241,80,13,114,111,178,235,24,164,37,224,2,146,220,51,92,157,118,78,79,244,6,68,81,226,18,50,232,212,201,227,79,50,227,244,209,152,234,232,238,145,192,78,50,220,172,62,155,244,69,160,135,188,46,198,91,53,213,113,29,21,179,240,250,55,218,255,129,124,135,112,45,183,243,242,7,194,172,103,209,1,1,177,168,12,127,69,221,165,76,79,232,89,84,99,190,41,83,27,193,88,223,147,114,144,150,11,124,103,69,254,175,66,82,137,141,11,160,136,56,14,26,
0,0,169,30,38,73,218,37,169,154,68,68,168,6,226,60,96,140,226,233,135,101,202,100,235,174,229,235,67,185,188,59,209,2,77,231,137,69,211,11,182,29,239,41,74,11,81,133,255,53,2,28,110,76,211,166,16,241,147,154,127,4,2,179,38,74,100,105,221,221,59,212,44,42,176,245,59,200,68,146,39,20,224,115,174,57,92,93,239,187,162,96,51,239,90,36,198,69,61,233,82,220,82,125,120,226,135,29,77,4,79,27,156,191,173,74,194,4,33,132,157,237,181,5,115,198,192,152,108,255,36,198,148,100,45,194,166,122,24,25,48,36,82,185,255,6
Segmentation fault


Create a new paste based on this one


Comments: