CRYPTAGE REVERSIBLE

cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 - 5 juil. 2011 à 15:45
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 5 août 2011 à 10:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53351-cryptage-reversible

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 août 2011 à 10:41
En pratique, la sécurité en crypto, ça passe par des phrases de tests et d'études, le secret ne suffit pas.

Parfois, la complexité des problèmes de cryptanalyse ne sont pas connus (ou pas prouvés) mais vu le nombre de scientifiques qui bossent sur ces themes, on peut quand meme avoir confiance.

C'est connu, il vous suffit de chercher un livre de théorie des codes pour le voir.
LeFauve42 Messages postés 239 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 20 avril 2009
12 juil. 2011 à 11:08
Effectivement, la securite basee sur "un algo de cryptage secret" est tres anecdotique...
C'est tout au plus bon si tu veux cacher des trucs a ta petite soeur, mais aucune agence de securite gouvernementale ne sera stoppee plus de quelques heures (dans le meilleur des cas) avec ce genre d'approche.

Il vaut mieux utiliser un algo connu dont la complexite peut etre demontree mathematiquement.

De plus, pour un mot de passe, il vaut mieux utiliser un algo de Hash non reversible.
Neo_Ryu Messages postés 21 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 6 juin 2011
11 juil. 2011 à 14:56
Bonjour, déjà merci de partager ta source Mokost ! ^^
Je viens de voir ta source et n'ai pas le temps en ce moment de faire tout des tests pour en connaître sa sécurité (je vois que tu te base sur du MD5 et une table, as tu vérifier aussi que l'analyse fréquentielle d'un long texte n'indique rien ?), mais quoi qu'il en soit, c'est grâce au partage des uns et des autres que de nouvelles idées peuvent germer ! En cela ta source est donc forcément intéressante et peu aider, des débutants en cryptographie par exemple, à mettre au point leur algorithme ! ^^

Je vois que coucou747 accours toujours aussi vite quand un script fait mention de cryptage dans le titre lol ^^ Certes la clé de cryptage est une chose essentielle pour la sécurité, mais n'oublions pas que sans algo derrière, la tache est bien plus ardue pour en deviner le calcul (pas impossible certes, mais tout le monde n'est pas expert en cryptographie ou codage ;) ). Et puis ca me rappel ce petit débat que tu avais eu il y a quelques temps sur une source qui ce disais indéchiffrable (de souvenir c’était encapsulé en 3 parties). ;)
destinyfr Messages postés 106 Date d'inscription samedi 19 mai 2007 Statut Membre Dernière intervention 13 avril 2009
7 juil. 2011 à 23:50
Je n'ai pas encore eu le temps de trop regarder la source, je reprendrai seulement les commentaires du dessus.

Le pirate sait certes comment fonctionne ton algo, mais c'est pas pour autant qu'il arrivera à le casser. Par exemple, l'algorithme RSA est bien connu, seulement quand tu tapes sur des nombres premiers assez grands, tu as plus personne qui est capable de le casser.

Tu as testé un grand nombre de combinaisons pour savoir s'il y a deux fois la même sortie pour deux entrées différentes ?
Mokost Messages postés 48 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 29 mars 2010
7 juil. 2011 à 19:28
Ne sommes nous pas d'accord que si tu partage ton algorithme tu perds en sécurité ? Puisque tu décris la façon dont il fonctionne. Bien sûr comme je l'ai dit s'il n'a pas les mêmes tableau que toi il n'aura jamais le bon résultat mais il n'empêche que le pirate potentiel sait comment le cryptage fonctionne.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
6 juil. 2011 à 14:39
Bonjour, quand tu dis :
"En principe un algorithme de cryptage ne doit pas être partagé"

c'est faux, la sécurité d'un algo de cryptage ne doit pas dépendre d'un secret sur l'algo, mais de la taille de la clée de cryptage.
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
5 juil. 2011 à 15:57
J'ai fait une petite erreur le while sans les accolades {}, c'était bon :)
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
5 juil. 2011 à 15:45
Salut @Mokost,
Merci pour cet exemple de code.
Mais il y a quelques erreurs.

Dans la méthode getRandTable, tu n'as pas initialisé la variable $r;
Donc, Notice: Undefined variable $r, deux fois sur la ligne du while et une fois dans le return.
De plus, la condition de ton while ne pouvait fonctionner correctement car, tu n'avais pas mis d’accolade {}.
Donc, que $r était ou pas égal à $avoid et $avoid2, c'était toujours égal.

J'ai réécrit la méthode comme ceci :

private function getRandTable($avoid=-1,$avoid2=-1)
{
if (! isset($r)) $r = null;

while($r==$avoid || $r==$avoid2) {
$r = rand(0,$this->MaxTable);
}

return $r;
}

Pour la suite, tout va bien mais :),
Tu as écrit ce code en objet, mais on voit que tu ne la maîtrises pas totalement.
Exemple, dans le constructeur, tu vérifies que $blocksize en paramètre est <0 || >6.
Cette sécurité ne sert à rien car, $BlockSize est public et donc, si je fais ceci :
$crypt = new Crypter(false,15,6);
$crypt->BlockSize = 7;
:), ta condition ne sert à rien.

Ce qui est perturbant à la lecture de ton code, c'est que tu as codé en objet mais par moitié php4 et php5.
Pareil, la nomenclature des fonctions et des variables doit toujours commencer par une minuscule.

Et pour finir tu devrais commenter toutes tes fonctions comme proposé sur phpDocumentor :
http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.pkg.html
Rejoignez-nous