Crypter avec aes 256 bits ( advanced encryption standard )

Soyez le premier à donner votre avis sur cette source.

Vue 35 715 fois - Téléchargée 3 608 fois

Description

Voici le fameux AES 256 bits ( algorithme Rijndael ). Réputé inviolable, il est très sûr.

Je l'ai trouvé sur le site américain nist.gov. Cependant, ce code n'est pas de Nist mais de Phil Fresle de la société Frez Systems Limited. Un grand merci à l'auteur.

La clé est bien une clé de 256 bits (cf l'entête de la class)

Si vous souhaitez plus d'infos sur l'algorithme et si vous êtes fort en math, alors allez voir là :
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

Pour vous donnez une idée de son niveau de sécurité, j'ai trouvé ceci :
"À titre indicatif, pour casser un AES aujourd'hui, et en admettant que l'on sache réaliser une machine capable de casser un DES* en une seconde, il faudrait 2 puissance 128 secondes pour venir à bout d'un AES ce qui nous donne environ 150 milliards d'années. Lorsque l'on sait que notre univers à un âge évalué à 20 milliards d'années, on voit le niveau de sécurité qui peut être atteint."
  • DES : algorithme d'un haut niveau de sécurité


L'algo est dans une classe, j'y ai rajouté deux fonctions pour simplifier le cryptage et décryptage. J'ai rajouté une form l'essayer. J'ai aussi mis dans le zip les fichiers d'origine, et il y a de l'asp.

Source / Exemple :


'Pour crypter :
    Dim AES As New CRijndael
    RésultatCrypté = AES.JustCrypter(TexteÀCrypter, MotDePasse)
'décrypter :
    Dim AES As New CRijndael
    RésultatDécrypté = AES.JustDécrypter(RésultatCrypté, MotDePasse)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Hum... la nuance me dépasse...

http://dictionnaire.reverso.net/francais-definition/crypter

Amicalement,
Us.
Messages postés
2
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
16 novembre 2007

Salut,

Merci pour cette source.
juste pour information et pour mes pauvres oreilles :
Crypter c'est mal
ont dit chiffrer où déchiffrer et décrypter lorsque l'on ne connais pas la clef.

Cordialement
TruCkY
Messages postés
38
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
30 août 2009

Au temps pour moi, je n'avais pas vu qu'on pouvait spécifier la taille des blocs et de la clé avec gkey(). En mode 256/128, les sorties correspondent bien aux valeurs du NIST. Le mode 256/256 est supporté par Rijndael mais n'a pas été retenu par AES.
Messages postés
38
Date d'inscription
dimanche 20 mars 2005
Statut
Membre
Dernière intervention
30 août 2009

Bonjour,

Très bon code.
Il me semble toutefois qu'il y a quelques problèmes.

Tout d'abord, la fonction EncryptData insère 4 octets en tête avant le cryptage afin de spécifier la longueur du message. Et si la longueur de résultat, n'est pas un multiple de 32, on comble avec des zéros... Il me semble que cela affaiblit le cryptage... Ne faudrait-il pas mieux combler avec des octets aléatoires ?

Ensuite, la routine de cryptage Encrypt() travaille sur des blocs de 256 bits, alors que dans la spécification officielle, c'est seulement 128 bit. Et lorsqu'on regarde le résultat de cette méthode seule, les sorties ne correspondent pas du tout à celles de l'algo officiel, même si on se limite aux 128 premiers bits.

Exemple
Plain text : CE DA C1 5C 4B 2F 9D 71 4C A7 FF 2E AA 0B 9B 47 DB 48 B5 BE 65 18 36 A9 99 DF FF 36 7D D3 7D ED
Clé : 5D 28 E6 BB C1 0E 3A F2 C7 43 0C 67 E6 AB C3 B7 D7 6E F4 F0 04 9F 7B 51 3E 1C CB 52 AE B5 82 E4
Crypté : 79 55 B1 46 E2 3A B3 F0 81 C5 58 80 99 4C E2 2D 78 1C 76 54 1F E7 2F A4 E3 31 4D 20 10 15 DB C0

128 premiers bits obtenus avec la même clé et l'algo officiel :
11 a7 d1 db 55 7b 60 61 b1 02 d8 e0 ba cc 05 0b

S'agit-il d'erreurs, ou est-ce une version de Rijndael non conforme au standard mais correcte ?
Messages postés
4
Date d'inscription
lundi 11 décembre 2006
Statut
Membre
Dernière intervention
13 novembre 2010

Bon code pour des petites chaines de caracteresCryter. Je l'ai tester pour crypter un petit fichier de 600ko et malheureusement la fonction ne suit plus. Je suis tombé sur une ActiveX qui est un peu semblable a ta fonction mais qui convertis sur une base 64. Le resultat es surprenant et fonctionne sans souci avec des fichier volumineux mis en buffer(fichier de 17Mo). voici le lien : http://www.example-code.com/vb/encryptstringsinvb6.asp
En esperant que cela peut aider à amméliorer ta fonction.
Afficher les 35 commentaires

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.