Bonjour tous,

j'ai un programme de chiffrement RC5 écrit en C et j'essai de le traduire en Matlab
et comme je suis débutant, j'ai trouvé quelques difficultés :

la 1ère étape consiste à insérer une clé K constituée de b octets avec b=16 et de la copier dans un tableau L
(L est de longueur C WORD (WORD = 4 octets)et donc C= 8*b/32 =4) en utilisant l'algorithme suivant écrit en C:

Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
void RC5_SETUP(unsigned char *K) /* secret input key K[0...b-1]      
{  WORD i, j, k, u=w/8, A, B, L[c]; 
   /* Initialize L */
   for (i=b-1,L[c-1]=0; i!=-1; i--) L[i/u] = (L[i/u]<<8)+K[i];
avec
<< : opération de décalage à gauche avec rotation
+: addition de mots binaire (addition modulo 2 puissance w)
u=w/8 : nombre d’octets par WORD et en supposant que "i/u" est arrondi à l’entier inférieur : PartieEntiere(i:U)

En Matlab,j'ai écrit ce code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
c = 4 ;
b = 16 ;
w = 32; %taille du bloc;
u = w/8 ;
r = 12; %Nombre de rondes;
%t= 2*(r+1);
%S(t);
k=0;
key = ([1, 5, 9, 13, 6, 10, 14, 2,  11, 15, 3, 7, 16, 4, 8, 12]);
K= fi(key);
L(4)=uint32(0);
for i=b-1:-1:0
    L(floor(i/u)) =  bitrol(fi(L(floor(i/u))),8) + K(i);
end
voila mes problèmes:
je ne sais pas est ce que "+" que j'ai utilisé fait l'addition modulo 2 puissance "w"
la compilation me donne erreur au niveau de bitrol!!!!
Pouvez vous m'aider svp??
merci de votre réponse