Bonjour à tous,
je suis à la recherche d'un algo (ou d'idée d'algos) pour signer un tableau de quelques octets (<128).
Le problème : cet algo doit pouvoir tourner sur un tout petit micro-contrôleur 8b à 8 MHz, et donc n'utiliser que des opérations sur des bytes (si possible) avec pas trop de multiplications (et encore moins de divisions ou de float !!!)
j'avais pensé à un truc tout bête genre une clef de 6 octets (6 octets, ça m'arrange) sur laquelle je XOR mes données, en pseudo-code/C :
Ou un truc dans le genre ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 fonction calcule_signature( byte data[], byte len_data ) { byte clef[6] = { ma clef secrète de 6 octets }; for( i=0 ; i<len_data ; i++ ) { clef[i%6] = clef[i%6] XOR data[i]; } return clef;
Je ne cherche pas un algo hyper pointu, mais pas non plus un algo qui est cassé en 2 minutes avec un freeware trouvé sur le net ...
Par avance, merci de vos lumières.
[Edit] autre idée : un tableau de 256 octets aléatoires (en dur dans le code) qui me sert de germe pour la clef de 6 octets :
C'est peut être déjà un poil mieux, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 fonction calcule_signature( byte data[], byte len_data ) { byte dico[256] = { dico aléatoire ... }; byte clef[6]; for( i=0 ; i<6 ; i++ ) { clef[i] = dico[ data[i] ]; } for( i=0 ; i<len_data ; i++ ) { clef[i%6] = clef[i%6] XOR data[i]; } return clef;![]()
Partager