code de Cryptage en Matlab
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 :oops: :
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:
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:
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?? :roll:
merci de votre réponse