You are on page 1of 4

Algorithme A5-2

//déclaration des variables et des fonctions//

Kc[64] bits ;

NT[22]bits ;

T []<-inialiser(T []) ;

LSFR1 [19] ;

LSFR2 [22] ;

LSFR3 [23] ;

Saut<-int ;

B<-XOR(b1,b2) ;

Xor3<-xor(b1,b2,b3) ;

T[]<-decal-d(T[],saut) ;

M1<-majorité(a1,a2,a3) ;

M2<-majorité(b1,b2,b3) ;

M3<-majorité(c1,c2,c3) ;

//initialisation des registres//

LSFR1[]<- initialiser(LSFR1[]) ;

LSFR2[]<- initialiser(LSFR2[]) ;

LSFR3[]<- initialiser(LSFR3[]) ;

//insertion de la clé Kc dans les registres//

For (i=0,i<63,i++){

LSFR1[0]<-XOR(LSFR1[0],kc[i];

LSFR2[0]<-XOR(LSFR2[0],kc[i];

LSFR3[0]<-XOR(LSFR3[0],kc[i];

LSFR1[]<-décal-d (LSFR1[],saut);

LSFR2[]<-décal-d (LSFR2[],saut);

LSFR3[]<-décal-d (LSFR3[],saut);
//insertion du numéro de trame NT dans les registres//

For (i=0,i<21,i++){

LSFR1[0]<-XOR(LSFR1[0],NT[i];

LSFR2[0]<-XOR(LSFR2[0],NT[i];

LSFR3[0]<-XOR(LSFR3[0],NT[i];

LSFR1[]<-décal-d (LSFR1[],saut);

LSFR2[]<-décal-d (LSFR2[],saut);

LSFR3[]<-décal-d (LSFR3[],saut);

//100 itérations en vide//

For (i=0,i<99,i++){

c1<-LSFR[8] ;

c2<-LSFR[10] ;

c3<-LSFR[10] ;

M1<-majorité(b1,b2,b3) ;

M2<-majorité(b1,b2,b3) ;

M3<-majorité(b1,b2,b3) ;

If(c1=m1)

LSFR1[0]<- xor(xor(xor(LSFR1[18],LSFR1[17]),LSFR1[16]),LSFR1[13]) ;

LSFR1[0]<-décal-d(LSFR1[],saut) ;

else

LSFR1[0]<- xor(xor(xor(LSFR1[18],LSFR1[17]),LSFR1[16]),LSFR1[7]) ;

If(c2=m2)

LSFR2[0]<-xor (LSFR2[21] ,LSFR2[20]) ;

LSFR2[0]<-décal-d(LSFR2[],saut) ;

else

LSFR2[0]<-xor(LSFR2[21] ,LSFR2[20]) ;

If(c3=m3)
LSFR3[0]<- xor(xor(xor(LSFR3[22] ,LSFR3[21]), LSFR3[20]),LSFR3[7]);

LSFR3[0]<-décal-d(LSFR3[],saut) ;

else

LSFR3[0]<- xor(xor(xor(LSFR3[22] ,LSFR3[21]), LSFR3[20]),LSFR3[7]);

//228 itérations pour générer le Key Stream //

S<-xor3( LSFR1[19] ,LSFR2[21], LSFR3[22])

For (i=0,i<227,i++){

c1<-LSFR[8] ;

c2<-LSFR[10] ;

c3<-LSFR[10] ;

M1<-majorité(b1,b2,b3) ;

M2<-majorité(b1,b2,b3) ;

M3<-majorité(b1,b2,b3) ;

If(c1=m1)

LSFR1[0]<- xor(xor(xor (LSFR1[18],LSFR1[17]),LSFR1[16]),LSFR1[13]) ;

LSFR1[0]<-décal-d(LSFR1[],saut) ;

else

LSFR1[0]<- xor(xor(xor (LSFR1[18] ,LSFR1[17]), LSFR1[16]), LSFR1[13]) ;

If(c2=m2)

LSFR2[0]<- xor (LSFR2[21] ,LSFR2[20]) ;

LSFR2[0]<-décal-d(LSFR2[],saut) ;

else

LSFR2[0]<- xor (LSFR2[21] ,LSFR2[20]) ;

If(c3=m3)

LSFR3[0]<- xor(xor(xor(LSFR3[22] ,LSFR3[21]), LSFR3[20]),LSFR3[7]) ;

LSFR3[0]<-décal-d(LSFR3[],saut) ;

else
LSFR3[0]<- xor(xor(xor(LSFR3[22] ,LSFR3[21]), LSFR3[20]),LSFR3[7]) ;

Cipher <- xor (S,I);

You might also like