un algo de HASH ultra simple ?
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 :
Code:
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; |
Ou un truc dans le genre ...
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 ... :aie:
Par avance, merci de vos lumières. :ccool:
[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 :
Code:
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; |
C'est peut être déjà un poil mieux, non ? :oops: