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:
avec
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];
<< : 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:
voila mes problèmes:
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
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
Partager