Je répond à la question, bien qu'elle ne m'était pas adressée ;-)
J'ai cassé ton algorithme. Le code source est ici, il suffit de le lancer
en ligne de commande :
https://sekur.sbgodin.fr/svn/cena/tags/cena10avr2012-cryptanalyse-base/
C'est encore brutal, ça nécessite 125688 demandes de chiffrement, mais ça
marche... Je vais en faire une version ne nécessitant qu'une seule
demande de chiffrement.
Cependant, pour continuer je voudrais te demander deux choses.
A/ Que le code source de la "lib_cena_v03.php" soit publié sous licence
libre (GPLv3, ou GPLv2, etc...). Condition nécessaire. Je libérerai mon
code à la suite, afin de pouvoir publier mes résultats sans contrainte.
B/ Qu'on fasse un test de cryptanalyse en grandeur réelle :
1/ Tu génères une clé avec la "lib_cena_v03.php", strictement la
version que j'ai utilisée. Tu conserveras secrète cette clé dans un
premier temps.
2/ Tu prends un fichier texte, à garder secret dans un premier temps,
en français courant, avec la ponctuation habituelle, que tu chiffres avec
la clé générée. Le français ne facilite pas vraiment le déchiffrement
mais évite d'employer des caractères non-ISO.
3/ Tu chiffres le fichier que je t'enverrai, spécialement conçu pour
l'occasion, avec la même clé générée. Tu publies le chiffré sur ton site
ainsi qu'une archive chiffrée (GnuPg) contenant le clair, la clé et le
chiffré. Tu publies également l'archive, mais tu gardes la clé de
l'archive au secret.
À ce stade, je ne dispose que du clair que j'ai généré, du chiffré que tu
as obtenu à partir de mon clair ainsi que ton texte chiffré.
4/ Si tout va bien de mon côté, je publie la version déchiffrée de ton
texte et tu publies ensuite la clé de chiffrement GnuPg pour que tout un
chacun puisse vérifier en ouvrant l'archive chiffrée qui contient le
clair, la clé et le chiffré.
Si tu as bien suivi, je pense être capable de casser ton algorithme avec
une attaque de type "clair choisi". En te fournissant un fichier à
chiffrer, je peux déduire la clé en confrontant le clair et le chiffré.
La preuve du décryptage sera fournie par le déchiffrement de ton fichier
chiffré que tu as rendu public ainsi que par la vérification du résultat
grâce au contenu de l'archive chiffrée avec Gnupg.
Liens utiles:
* Site contenant l'implémentation de référence
http://dimooz.free.fr/void/cena/index.php
* Site de l'algorithme CENA
http://dimooz.free.fr/void/cena/principe.php
* La preuve de concept de la cryptanalyse (ne changera pas)
https://sekur.sbgodin.fr/svn/cena/tags/cena10avr2012-cryptanalyse-base/
* Mes travaux (en changement constant, en développement)
https://sekur.sbgodin.fr/svn/cena/trunk/
* TortoiseSVN, pour télécharger confortablement mes codes sources
http://tortoisesvn.net/downloads.html
La prochaine étape sera peut-être ensuite le cassage via une attaque
"chiffré seul". Cependant, la faiblesse de l'algorithme est démontrée.
Cordialement à tous,
--
Christophe HENRY
FR EO EN -
http://www.sbgodin.fr