Je viens d'implementer un petit algorithme de chiffrage symetrique par blocs
de 128 bits et j'aimerais savoir ce que vous en pensez.
1 - une cle de 128 bits est generee a partir d'une fonction f() respectant les
contraintes suivantes:
a) soit k la cle, il doit etre difficile de trouver le resultat de f(k)
b) soit c le resultat, il doit etre difficile de trouver k a partir de c
c) il doit etre difficile de trouver un k' tel que f(k) == f(k')
d) un bit modifie dans k altere considerablement c
2 - seize sous cle sont calcules a partir de c, la premiere etant le resultat
de la cle initiale dans f(), la seconde le resultat de la premiere dans f()
et ainsi de suite. si les contraintes de f() sont respectees, on dispose
alors de 17 clees de 128 bits et toute modification de la cle fournie par
l'utilisateur entraine la creation de 17 nouvelles cles entierement
differentes.
3 - les seizes sous clees sont passees dans un fonction f1 qui en calcule un
condense entier de 32 bits (j'ai repris une fonction de hashage decrite
par le nist que j'ai legerement modifiee).
4 - pour chacun des blocs, je chiffre a l'aide de ma premiere clee dans un
tableau polyalphabetique, puis a l'aide de chacune des sous cles dans
un tableau polyalphabetique ayant subit un decalage relatif au condense
de la cle.
j'ai implemente l'algorithme en grande partie a l'exception de f qui doit etre
reecrite car elle ne fait que simuler les contraintes mais ne les assures
aucunement. il fonctionne pour l'instant uniquement en mode ECB et CBC, je n'
ai pas encore implemente CFB et OFB comme je le desirais.
des exemples de fichiers chiffres sont disponibles par ici:
http://etud.epita.fr/~chehad_g/projects/dpa/
et je pourrais fournir les sources si necessaire d'ici quelques jours (j'ai
besoin de deux jours de dodo et j'ai du nettoyage a faire dedans parceque c'
est un peu crade).
voila, si quelqu'un a des commentaires je serais ravi de les entendre, mon
mail est chehad_g -> epitech.net
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
depressed
2 - seize sous cle sont calcules a partir de c, la premiere etant le resultat de la cle initiale dans f(), la seconde le resultat de la premiere dans f() et ainsi de suite. si les contraintes de f() sont respectees, on dispose alors de 17 clees de 128 bits et toute modification de la cle fournie par l'utilisateur entraine la creation de 17 nouvelles cles entierement differentes.
j'ai legerement modifie cette partie depuis mon precedent post. en fait la cle initiale, k0, est ecrasee par le resultat de f(k15) pour assurer qu'en cas de faiblesses de f, il soit relativement difficile d'obtenir une relation entre la cle initiale et k0.
4 - pour chacun des blocs, je chiffre a l'aide de ma premiere clee dans un tableau polyalphabetique, puis a l'aide de chacune des sous cles dans un tableau polyalphabetique ayant subit un decalage relatif au condense de la cle.
la encore, la suppression du resultat de f(k) fait que je n'ai plus de passe sur le tableau polyalphabetique de base avec comme cle f(k), je n'utilise que les sous cle sur des tableaux polyalphabetiques decales.
j'ai implemente l'algorithme en grande partie a l'exception de f qui doit etre reecrite car elle ne fait que simuler les contraintes mais ne les assures aucunement. il fonctionne pour l'instant uniquement en mode ECB et CBC, je n' ai pas encore implemente CFB et OFB comme je le desirais. des exemples de fichiers chiffres sont disponibles par ici:
http://etud.epita.fr/~chehad_g/projects/dpa/
la page a ete updatee avec la sortie de la moulinette generant les sous cle, cela peut vous permettre d'evaluer la qualite des sous cle en fonction de la cle fournie par l'utilisateur. les exemples precedents ne prennent pas encore en compte le changement, je metterais a jour des que possible.
les sources du modes ECB sont disponibles: http://etud.epita.fr/~chehad_g/cgi-bin/cvsweb.cgi/private/dpa-128/
j'ai pas eu le courage de nettoyer CBC encore parceque je suis trop creve :)
2 - seize sous cle sont calcules a partir de c, la premiere etant le resultat
de la cle initiale dans f(), la seconde le resultat de la premiere dans f()
et ainsi de suite. si les contraintes de f() sont respectees, on dispose
alors de 17 clees de 128 bits et toute modification de la cle fournie par
l'utilisateur entraine la creation de 17 nouvelles cles entierement
differentes.
j'ai legerement modifie cette partie depuis mon precedent post. en fait la
cle initiale, k0, est ecrasee par le resultat de f(k15) pour assurer qu'en
cas de faiblesses de f, il soit relativement difficile d'obtenir une
relation entre la cle initiale et k0.
4 - pour chacun des blocs, je chiffre a l'aide de ma premiere clee dans un
tableau polyalphabetique, puis a l'aide de chacune des sous cles dans
un tableau polyalphabetique ayant subit un decalage relatif au condense
de la cle.
la encore, la suppression du resultat de f(k) fait que je n'ai plus de passe
sur le tableau polyalphabetique de base avec comme cle f(k), je n'utilise que
les sous cle sur des tableaux polyalphabetiques decales.
j'ai implemente l'algorithme en grande partie a l'exception de f qui doit etre
reecrite car elle ne fait que simuler les contraintes mais ne les assures
aucunement. il fonctionne pour l'instant uniquement en mode ECB et CBC, je n'
ai pas encore implemente CFB et OFB comme je le desirais.
des exemples de fichiers chiffres sont disponibles par ici:
http://etud.epita.fr/~chehad_g/projects/dpa/
la page a ete updatee avec la sortie de la moulinette generant les sous cle,
cela peut vous permettre d'evaluer la qualite des sous cle en fonction de la
cle fournie par l'utilisateur. les exemples precedents ne prennent pas encore
en compte le changement, je metterais a jour des que possible.
les sources du modes ECB sont disponibles:
http://etud.epita.fr/~chehad_g/cgi-bin/cvsweb.cgi/private/dpa-128/
j'ai pas eu le courage de nettoyer CBC encore parceque je suis trop creve :)
2 - seize sous cle sont calcules a partir de c, la premiere etant le resultat de la cle initiale dans f(), la seconde le resultat de la premiere dans f() et ainsi de suite. si les contraintes de f() sont respectees, on dispose alors de 17 clees de 128 bits et toute modification de la cle fournie par l'utilisateur entraine la creation de 17 nouvelles cles entierement differentes.
j'ai legerement modifie cette partie depuis mon precedent post. en fait la cle initiale, k0, est ecrasee par le resultat de f(k15) pour assurer qu'en cas de faiblesses de f, il soit relativement difficile d'obtenir une relation entre la cle initiale et k0.
4 - pour chacun des blocs, je chiffre a l'aide de ma premiere clee dans un tableau polyalphabetique, puis a l'aide de chacune des sous cles dans un tableau polyalphabetique ayant subit un decalage relatif au condense de la cle.
la encore, la suppression du resultat de f(k) fait que je n'ai plus de passe sur le tableau polyalphabetique de base avec comme cle f(k), je n'utilise que les sous cle sur des tableaux polyalphabetiques decales.
j'ai implemente l'algorithme en grande partie a l'exception de f qui doit etre reecrite car elle ne fait que simuler les contraintes mais ne les assures aucunement. il fonctionne pour l'instant uniquement en mode ECB et CBC, je n' ai pas encore implemente CFB et OFB comme je le desirais. des exemples de fichiers chiffres sont disponibles par ici:
http://etud.epita.fr/~chehad_g/projects/dpa/
la page a ete updatee avec la sortie de la moulinette generant les sous cle, cela peut vous permettre d'evaluer la qualite des sous cle en fonction de la cle fournie par l'utilisateur. les exemples precedents ne prennent pas encore en compte le changement, je metterais a jour des que possible.
les sources du modes ECB sont disponibles: http://etud.epita.fr/~chehad_g/cgi-bin/cvsweb.cgi/private/dpa-128/
j'ai pas eu le courage de nettoyer CBC encore parceque je suis trop creve :)
depressed
(depressed) wrote in message news:...
la page a ete updatee avec la sortie de la moulinette generant les sous cle, cela peut vous permettre d'evaluer la qualite des sous cle en fonction de la cle fournie par l'utilisateur. les exemples precedents ne prennent pas encore en compte le changement, je metterais a jour des que possible.
les sources du modes ECB sont disponibles: http://etud.epita.fr/~chehad_g/cgi-bin/cvsweb.cgi/private/dpa-128/
j'ai pas eu le courage de nettoyer CBC encore parceque je suis trop creve :)
j'ai conscience que je poste peut etre dans le vent, mais je continues des fois que quelqu'un tombe sur ce thread un jour lointain ;)
voila, les sources du mode CBC sont disponibles.
depressed@programmer.net (depressed) wrote in message news:<573e2224.0405241101.22ca99cc@posting.google.com>...
la page a ete updatee avec la sortie de la moulinette generant les sous cle,
cela peut vous permettre d'evaluer la qualite des sous cle en fonction de la
cle fournie par l'utilisateur. les exemples precedents ne prennent pas encore
en compte le changement, je metterais a jour des que possible.
les sources du modes ECB sont disponibles:
http://etud.epita.fr/~chehad_g/cgi-bin/cvsweb.cgi/private/dpa-128/
j'ai pas eu le courage de nettoyer CBC encore parceque je suis trop creve :)
j'ai conscience que je poste peut etre dans le vent, mais je continues des fois
que quelqu'un tombe sur ce thread un jour lointain ;)
la page a ete updatee avec la sortie de la moulinette generant les sous cle, cela peut vous permettre d'evaluer la qualite des sous cle en fonction de la cle fournie par l'utilisateur. les exemples precedents ne prennent pas encore en compte le changement, je metterais a jour des que possible.
les sources du modes ECB sont disponibles: http://etud.epita.fr/~chehad_g/cgi-bin/cvsweb.cgi/private/dpa-128/
j'ai pas eu le courage de nettoyer CBC encore parceque je suis trop creve :)
j'ai conscience que je poste peut etre dans le vent, mais je continues des fois que quelqu'un tombe sur ce thread un jour lointain ;)