Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 08-10-2017 10:07:07
- Mathix
- Membre
- Inscription : 08-10-2017
- Messages : 6
Petit challenge (test d'une méthode de chiffrement)
Bonjour à tous !
Je suis novice dans le domaine de la cryptographie, et j'ai récemment "créer" un petit système de chiffrement. Je voudrais bien connaître ses limites, c'est pourquoi je viens ici (au passage je suis super impressionné par vos talents de cryptographe :o).
Voici donc une chaine de 235 caractères chiffrée :
Je ne sais pas du tout si elle sera à votre taille, peut être (surement) que la technique que j'ai utilisé existe déjà et je n'en savais rien.
Si nécessaire je vous donnerai des indices ou d'autres chaines chiffrés.
Dans tout les cas merci de m'avoir accorder un peu de votre temps.
Bonne journée à vous !
Dernière modification par Mathix (08-10-2017 11:33:55)
Hors ligne
#2 09-10-2017 11:20:49
- Rossignol
- Membre
- Inscription : 19-06-2015
- Messages : 290
Re : Petit challenge (test d'une méthode de chiffrement)
Bonjour Mathix,
Pour évaluer un système cryptographique, il faut connaître l'algorithme de chiffrement-déchiffrement. D'après le principe de Kerckhoffs, tout le secret doit être dans la clé et non dans l'algorithme.
Si votre système n'a pas de clé, c'est-à-dire si la clé est l'algorithme, alors vous êtes seul à pouvoir l'utiliser et toute fuite est fatale au système : tous les textes chiffrés sont vulnérables d'un coup. Le plus sûr est de supprimer tout document ou programme relatifs à ce système, ce qui rend son usage malcommode !
Le fait que personne ne puisse décrypter votre message ne prouve absolument rien quant à la sécurité du système.
Statistiquement, il y a peu de répétitions (2987 2 fois, 27163 3 fois, 27252 2 fois).
En tirant au hasard $235$ entiers de l'intervalle $[0, 28868]$, la probabilité d'avoir deux entiers identiques est $0.615$ : ces répétitions peuvent donc être le fruit du hasard.
PS. Il n'était pas nécessaire de lancer un script pour appeler la page un grand nombre de fois par seconde dans le but d'augmenter le nombre de vues. Ça n'apporte rien :-)
@+
Hors ligne
#3 09-10-2017 18:07:23
- Mathix
- Membre
- Inscription : 08-10-2017
- Messages : 6
Re : Petit challenge (test d'une méthode de chiffrement)
Bonjour Rossignol,
Ok, je vais voir dans la semaine si j'ai le temps entre les cours de publier l'algorithme ou de vous expliquer la méthode de cryptage afin que vous puissiez évaluer la sécurité du système.
Effectivement c'est le fruit du hasard que ces répétitions aient lieues, enfin je suppose d'après mon algorithme.
Pour le petit script, je l'ai retrouvé dans un vieux dossier de mon disque portable et je me suis un peu amusé :D
PS : c'est bien une clef de cryptage que j'utilise
Merci de votre réponse ! À bientôt !
Dernière modification par Mathix (09-10-2017 18:08:18)
Hors ligne
#4 11-10-2017 11:16:35
- Mathix
- Membre
- Inscription : 08-10-2017
- Messages : 6
Re : Petit challenge (test d'une méthode de chiffrement)
Bonjour,
Indice :
La clef utilisée est une clef de 35 caractères. Cette première clef me permet d'obtenir une seconde clef de plus de 29000 caractères totalement indépendante de la première.
Et voici l'algorithme en langage naturel (enfin à peu près) :
Variables :
ap, bp, counter : entiers
url, TxtACrypter, Wdoc, sortie : chaine
elmt : liste de chainesDébut :
Lire url;
Wdoc = Texte contenu sur le site urlPour chaque caracteres dans TxtACrypter
ap = Nombre aléatoire entre 200 et (longueur_de_Wdoc - 1001)
bp = Nombre aléatoire entre 0 et 1000
'On sectionne une partie du document web afin de pouvoir obtenir un index aléatoire pour un caractère
elmt = {Optenir le texte de Wdoc depuis le caractère n°ap jusqu'au n°bp, ap}
Flag e:
'Si la partie sectionnée contient le caractère a crypter on écrit son index
Si elmt(0) contiens caracteres :sortie += (index du char(caracteres) dans elmt(0) + Integer(elmt(1))) & "espace"
counter = 0'Sinon si counter < 40 on récupère une nouvelle section
SinonSi counter < 40counter += 1
Aller au flag e
'Si counter >= 40 on regarde si le caractère existe dans le document web, si c'est le cas on ajoute son index
SinonSi Wdoc contiens le char (caracteres)sortie += index du char(caracteres) dans Wdoc & "espace"
'Si counter >=40 et que le caractère n'existe pas dans le document, on ajoute un index nul
Sinon
sortie += "000000 "
Fin Si;
Fin Pour;
Afficher sortie;
Fin Algorithme;
J’espère que c'est compréhensible, je peux aussi vous donner l'algorithme de décryptage si vous voulez mais je suppose qu'il est assez simple de deviner comment il fonctionne maintenant.
NB : j'ai créé ce système uniquement pour un cryptage/décryptage à cours terme, par exemple pour des messages instantanés ou mails, non pas pour des fichiers qui seront stockés longtemps (pour des raisons évidentes).
Merci encore et bonne journée !
Dernière modification par Mathix (11-10-2017 15:00:03)
Hors ligne
#5 13-10-2017 19:14:51
- Mathix
- Membre
- Inscription : 08-10-2017
- Messages : 6
Re : Petit challenge (test d'une méthode de chiffrement)
Bonsoir,
Je me suis aperçu que la clef (le site) que j'ai choisi pour le message du début à changé, c'était peut-être peu judicieux d'avoir utilisé une page Wikipédia ^^.
J'ai donc re-chiffré cette même chaine à l'aide d'une clef qui cette fois ne risque pas d'être modifier (du moins pas dans les 3 prochains mois je pense) :
Je m'excuse si cela change la donne de vos recherches !
Encore merci et bonne soirée !
Dernière modification par Mathix (13-10-2017 19:16:14)
Hors ligne
#6 14-10-2017 17:05:07
- gielev
- Membre
- Inscription : 08-03-2007
- Messages : 407
Re : Petit challenge (test d'une méthode de chiffrement)
Bonsoir,
Je me suis aperçu que la clef (le site) que j'ai choisi pour le message du début à changé, c'était peut-être peu judicieux d'avoir utilisé une page Wikipédia ^^.
Ce qui démontre la "faiblesse" du système.
Autant utiliser une clé aussi longue que le texte, prise dans un ouvrage écrit qui ne changera pas, ce sera plus efficace car indéchiffrable.
gielev (qui n'a pas perdu de temps à chercher)
Dernière modification par gielev (14-10-2017 17:05:50)
Hors ligne
#7 14-10-2017 21:03:25
- Mathix
- Membre
- Inscription : 08-10-2017
- Messages : 6
Re : Petit challenge (test d'une méthode de chiffrement)
Bonsoir gielev,
Comme je l'ai dit :
J'ai créé ce système uniquement pour un cryptage/décryptage à cours terme, par exemple pour des messages instantanés ou mails
Ce n'est donc pas vraiment une faiblesse, au contraire, les personnes qui tenteront de trouver la clef de chiffrage seront désavantagés.
Utiliser votre méthode de chiffrage compliquerait tout. Un URL est facile a transmettre (et banal sur les réseaux sociaux), contrairement a un texte qui devra en plus entièrement être retranscrit dans l'algorithme de déchiffrage.
Ensuite étant donné la taille du texte, les utilisateurs ne pourront pas se permettre de le changer régulièrement, ce qui au bout d'une longue utilisation va compromettre la clef (je suppose).
Dernière modification par Mathix (14-10-2017 23:44:19)
Hors ligne
#8 16-10-2017 12:57:41
- Rossignol
- Membre
- Inscription : 19-06-2015
- Messages : 290
Re : Petit challenge (test d'une méthode de chiffrement)
Bonjour à tous,
Si j'ai bien compris, votre système cryptographique utilise une substitution homophonique (plus précisément, une variante informatique du chiffre du livre).
On remplace un caractère du clair par l'indice d'un même caractère du texte de référence. Je suppose que les caractères autorisés sont les majuscules, les minuscules, les caractères accentués, les signes de ponctuation, l'espace.
Si la clé est l'url, il n'est pas facile de changer la clé. Il faut trouver une page web qui ne change pas trop vite, qui soit en français et qui soit assez longue.
Un URL est facile a transmettre (et banal sur les réseaux sociaux),
Vous mésestimez le problème d'échange des clés : si vous échangez l'url en clair autant ne pas chiffrer du tout :-)
La première page utilisée ne convenait pas : elle a changé vite et elle ne contenait pas un caractère du message puisque le chiffré contient un code 0000000 (sûrement un caractère rare en français). Pour le déchiffrement, on fait comment ?
La deuxième page a tous les caractères voulus, mais elle est plus courte (les codes sont entre 235 et 9410). En conséquence, il y a plus de répétitions : 6803, 4991, 7210, 626, 6391, 2166, 8341, 8030, 8044. La plupart de ces codes doivent correspondre au caractère le plus fréquent dans un texte : l'espace.
Si on a suffisamment de cryptos, une attaque statistique est possible : on détermine les codes de l'espace ce qui permet de sectionner le message en mots. On peut alors conjecturer des mots probables et déchiffrer de proche en proche en s'aidant des statistiques de la langue.
Ce travail est facilité si on connait le vocabulaire utilisé, si les débuts ou les fins des messages sont standards...etc.
Ce système est à peu près sûr si le volume des messages reste bien en dessous la taille du texte de la page web utilisée.
@+
Hors ligne
#9 21-10-2017 14:30:24
- Mathix
- Membre
- Inscription : 08-10-2017
- Messages : 6
Re : Petit challenge (test d'une méthode de chiffrement)
Bonjour Rossignol,
Tout d'abord merci de vous être intéressé à mon crypto, cependant j'ai remarqué que vous aviez mal compris certains points de mon système.
Je suppose que les caractères autorisés sont les majuscules, les minuscules, les caractères accentués, les signes de ponctuation, l'espace.
En réalité je ne filtre pas les caractères, ils sont tous autorisés.
Si la clé est l'url, il n'est pas facile de changer la clé. Il faut trouver une page web qui ne change pas trop vite, qui soit en français et qui soit assez longue.
Je ne sais pas si c'est vraiment nécessaire que la page soit en français, par exemple pour le second crypto j'ai utilisé une page en latin.
Je pense qu'une page d'une taille de 6000 caractères en ASCII est le minimum requis.
La première page utilisée ne convenait pas : elle a changé vite et elle ne contenait pas un caractère du message puisque le chiffré contient un code 0000000 (sûrement un caractère rare en français). Pour le déchiffrement, on fait comment ?
Elle ne convenait pas dans ce cas précis mais pour une communication directe c'est très largement suffisant, effectivement elle ne contenait pas le caractère @, le déchiffrement rien de plus simple recherche du X ième caractère sur la page web (X = numéro correspondant au caractère)
La deuxième page a tous les caractères voulus, mais elle est plus courte (les codes sont entre 235 et 9410). En conséquence, il y a plus de répétitions : 6803, 4991, 7210, 626, 6391, 2166, 8341, 8030, 8044. La plupart de ces codes doivent correspondre au caractère le plus fréquent dans un texte : l'espace.
Effectivement les répétitions sont les principaux problèmes de ce système. Par contre les codes ne correspondent pas forcément au caractère le plus fréquent dans un texte, mais je pense que c'est les caractères les plus fréquents dans le texte à chiffrer et le moins présent sur le site web utilisé.
4991 -> espace
7210 -> B
626 -> t
6391 -> espace
2166 -> é
8341 -> 9
8030 -> e
8044 -> s
Ce système est à peu près sûr si le volume des messages reste bien en dessous la taille du texte de la page web utilisée.
Oui cela restera une méthode pour chiffrer des conversations.
Encore merci pour votre intérêt !
Bonne journée !
Hors ligne