Hrot, compression codée de fichier par clef 128bits

Description

HRot est une idée que j'ai depuis longtemps et avec le nombre de sources
proposant des methodes de "cryptage" de fichier je me suis dis, allez poste la
de toute façon ... :)

comment fonctionne HRot ?

HRot n'est pas réellement un algorythme de "cryptage" mais plutot une methode
d'encodage faisant appel a certains principe existant ou propre a lui meme.

HRot fonctionne selon le schéma suivant :

Donnée --> Compression --> Generation d'un clef MD5 selon le mots de passe --> Encodage avec la clef MD5

l'encodage est assé complexe et est fait pour etre assé resistant au brute force.
Deja il est presque impossible de tester toute les clefs 128 bits existante (3,4e+38 solutions possible)
et l'encodage ne suis pas une suite logique lineaire.

En premier lieu, nous compressons la donnée brute avec ZLib puis nous generons une clef MD5 a partir du mots de passe.

Une fois que l'on a generer la clef (celle ci est sotckée dans un tableau de 16 octet (indice 0..15)).

Puis on selectionne un indice de depart selon la valeur resultante de ce calcul :

I = (Key[0] xor Key[8]) mod 16;

ensuite a chaque iteration du buffer a encoder il se passe la chose suivante :

Si la valeur de la clef d'indice I a une valeur paire :
l'octet est egal a l'inversion de lui même soustrait de la valeur de la clef d'indice I decalée de I modulo 5 bits vers la gauche suivis d'un ou exclusif avec la valeur de la clef d'indice I.

O = not ( (O - (Key[I] shl (I mod 5))) xor Key[I] )

Si la valeur de la clef d'indice I a une valeur impaire :

l'octet est egal a l'inversion de lui même additionné a la valeur de la clef d'indice I decalée de I modulo 5 bits vers la droite suivis d'un ou exclusif avec la valeur de la clef d'indice I.

O = not ( (O + (Key[I] shr (I mod 5))) xor Key[I] )

L'indice suivant sera calculer de la maniere suivante :

I = (I + 7) mod 16

Ce brouillage devrait etre suffisement efficace pour proteger la donnée.

remarque importante : HRot ne supporte pas les mots de passe trop simple, vous devez obligatoirement lui fournir
un mots de passe d'au moins 3 lettres et 3 chiffres.

Conclusion :


Vous trouverez ZLib et TinyHash dans le zip, pas besoin de les installer.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.