Algo de cryptage avec clef 128 bits

Description

Voici un algo de cryptage avec clef 128 bits
Il s'agit d'un algo à blocs par tour

On lit le message à coder par paquet de 128 bits (16 caractères)

On fait 16 tours et à chaque tour on décalle la clef de 8 bits (1 caractère)
On fait un xor de la clef sur le bloc
Comme faire un xor ne suffit pas (faire 16 xor reviendrai à faire le même xor sur chacun des éléments du message) je décalle les bits à chaque tour.
Le principe du décallage est simple : j'extrait des valeurs de la clef par paque de 2 bits (un nombre de 0 à 3) et je décalle les bits correspondants dans la colonne ou dans la ligne par le nombre d'octets correspondant à la valeur trouvée (ouf, je l'ai écrit).

A la fin des cycle, je transforme la clef en fonction de la valeur en clair du message pour les blocs suivants.
---> En discutant avec des hackers j'ai pensé à un système de clef plus puissant : il s'agirait de faire évoluer la clef inititiale au moins deux fois selon un calcul simple puis de la faire évoluer par la suite entre chaque bloc selon un calcul (matriciel ?) de la forme U(n)=U(n-2)*U(n-1). Ceci aurait pour avantage que le cassage d'un seul bloc ne permette pas à un pirate de décoder d'autres parties du message

Conclusion :


Je n'ai pas encore cherché à casser mon système, mais j'ai déjà repéré une stratégie d'attaque sur le message lui-même.
Ce système de cryptage utilsie un maximum de fonctions informatiques pour interdire de poser une équation mathématique.
Une des faiblesses potentielles de l'algorithme est que les bits ne sont pas mélangés à une autre position relative dans un bit que leurs position de départ.
La force par contre, c'est que la modification d'un seul bit de la clef modifie tous les bits du message crypté.
Le premier bloc contient la taille du message un peu bordélisé, mais ma fonction de bordélisation est probablement attaquable, il faut que j'y retravaille.
Enfin, pour bien faire, il faudrait que ma classe dérive de la classe de cryptage symétrique du .NET

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.