AES, Serpent ou Twofish en C exemple?
J'ai trouvé beaucoup d'implémentations de l'AES, Twofish et d'un Serpent en C. Mais je ne comprends pas vraiment les exemples. Je ne comprends que certains lorsqu'il est fourni avec des exemples d'inverser une matrice.
Quelqu'un peut-il m'indiquer un exemple ou .fichier c pour chiffrer/déchiffrer les données représentées par un char*
et un mot de passe?
polarssl.org/trac/browser/trunk/library/aes.c polarssl.org/trac/browser/trunk/include/polarssl/aes.h la
tout ce que je besoin est juste (char *) le cryptage, je veux juste obtenir quelques données dans mon application fichiers à l'aide de l'un de ces cryptages. quelque chose comme AESEncrypt(char *Data, int len, char *Mot, int KeySize); si possible, c'est tout
16 octets est le natif de longueur de bloc pour l'AES, Twofish, et le Serpent. Si vous avez trouvé une API qui vous donne ceci, alors vous avez besoin pour mettre en œuvre un mode de chiffrement autour d'elle. Le mode recommandé pour ceux algorithmes de chiffrement par bloc est de la SRC dans la plupart des cas. en.wikipedia.org/wiki/Block_cipher_modes_of_operation
mec, je veux juste chiffrer mes chaînes de caractères, il n'est pas essentiel pour l'étude, l'algorithme de chiffrement par bloc ou de chiffrement de flux, je veux juste chiffrer mes chaînes de caractères en c, Rijndael, Aes, Twofish, CBC, EBC tout ce qui permettra de le faire
ok, merci quand même
981 int aes_self_test( int verbose )
fonction contient le nécessaire exemple de code pour travailler avec.tout ce que je besoin est juste (char *) le cryptage, je veux juste obtenir quelques données dans mon application fichiers à l'aide de l'un de ces cryptages. quelque chose comme AESEncrypt(char *Data, int len, char *Mot, int KeySize); si possible, c'est tout
16 octets est le natif de longueur de bloc pour l'AES, Twofish, et le Serpent. Si vous avez trouvé une API qui vous donne ceci, alors vous avez besoin pour mettre en œuvre un mode de chiffrement autour d'elle. Le mode recommandé pour ceux algorithmes de chiffrement par bloc est de la SRC dans la plupart des cas. en.wikipedia.org/wiki/Block_cipher_modes_of_operation
mec, je veux juste chiffrer mes chaînes de caractères, il n'est pas essentiel pour l'étude, l'algorithme de chiffrement par bloc ou de chiffrement de flux, je veux juste chiffrer mes chaînes de caractères en c, Rijndael, Aes, Twofish, CBC, EBC tout ce qui permettra de le faire
ok, merci quand même
OriginalL'auteur killercode | 2011-01-14
Vous devez vous connecter pour publier un commentaire.
L'article de wikipédia en fait des liens vers un excellent tutoriel (par X-N20) écrit en C qui vous guide à travers les Mathématiques et fournit des implémentations C sur l'aller, ce qui est très utile pour comprendre le processus. Je recommande aussi la lecture sur finis champ de l'arithmétique.
Serpent et Twofish, ayant raté l'AES titre, ne sont pas si bien documenté autour de l'internet. Rappelez-vous cependant que chacun fournit des implémentations de référence.
Réellement les mettre en oeuvre vous-même qui nécessitent une étude de leurs notes respectives et, probablement, le code source de référence.
Noter que votre 20 milliards de commentaires tous un lien avec le fait que l'interface NIST spécifié pour l'AES était que chaque chiffrement de fournir un cryptage de 128 bits (16 octets) bloc d'entrée et une de 128 bits, 192 bits et 256 bits, la clé de blocs.
Afin de bien chiffrer de manière à résister à la cryptanalyse correctement, vous avez besoin d'un travail minutieux. Par exemple, si votre dernier bloc est manquant un peu d'octets nécessaires? Comment vous vous protégez en toute sécurité? De même, selon l'usage prévu il y a d'autres régimes, en particulier pour les grandes répétitive de données, conçu pour résister à la cryptanalyse où vous savez que les données chiffrées contient probablement dire que le contenu de
c:\windows
. Ce que les intervenants tentent d'entrer à l'est que pour toute l'utilisation du monde réel, pour être sûr, ces choses doivent être pris en compte.Modifier Depuis une autre question a surgi sur ce sujet, voici quelques liens:
crypto
.gpg
. Plus précisément, si vous êtes après AES, vous risquez de ne pas le trouver ici, mais vous trouverez de camélia et d'un serpent.Malheureusement, la cryptographie est difficile à mettre en œuvre en toute sécurité et pour la plupart des utilisations font partie des plus grands produits. Il n'y a pas beaucoup de cas, juste en chiffrant ce que vous appelleriez une chaîne - normalement, vous êtes en train de regarder le chiffrement octets de données. En fait, les algorithmes sont conçus à cette fin. Mais crypto++ pourrait être bon pour vous, comme d'autres l'ont suggéré. Mes liens vous aideront à comprendre la mise en œuvre, mais si vous voulez juste utiliser crypto++ n'est pas un mauvais début.
Je suis l'auteur de l'AES tutoriel. J'ai aussi fait une Twofish didacticiel, qui se trouve ici: rohitab.com/discuss/topic/36074-c-twofish
Ah bonjour! C'est un bon tutoriel. J'ai lié votre compte à côté de la mention de celui-ci, de sorte que c'est plus clair.
Tutoriel lien est cassé 🙁
OriginalL'auteur
Essayer de répondre à la -toujours sans réponse - question de
killercode
, voici ma tentative de réaliser la même chose:Télécharger ce TwoFish code (merci à Schneier et coll.): https://www.schneier.com/code/twofish-reference-c.zip
Utiliser ce code (à vos risques et périls bien sûr):
C'était ma tentative et il semble de très bonne.
C'est en utilisant le mode CBC.
Je suis ouvert aux suggestions, si quelqu'un a des.
Bien sûr, vous pourriez faire
MAX_BLK_CNT
une variable et d'augmenter en conséquence, pour être en mesure de chiffrer des données diverses longueurs. Bien que je ne suis pas sûr à 100% si c'est son utilisation normale.Humeur! 🙂
OriginalL'auteur NoOne
Télécharger OpenSSL/Mastic/GnuPG sources. Tous d'entre eux contient la source correspondant à l'algorithme de chiffrement. Aussi, chaque algorithme a une implémentation de référence en C, qui peuvent être facilement trouvés sur l'internet.
OriginalL'auteur Nickolay Olshevsky