Tester un algo de cryptage fait maison
Résolu
parano-yak
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en train de mettre au point un algo de cryptage (projet pour mes études).
C'est un système de crypto à clé privée (donc il suffit de connaitre un morceau de la clé de cryptage pour pouvoir décrypter une partie des données).
Ce que j'aimerais savoir, c'est : existe-t-il des méthodes qui permettent de tester la sécurité de mon algorithme ?
Comment puis-je savoir dans quelles conditions mes méthodes sont-elles sûre ?
Comment savoir où peuvent se trouver les vulnérabilités ?
Et tant qu'on y est : pour une utilisation privée, quelles sont les démarches à effectuer pour une exploitation légale de cet algo ?
J'ai cru comprendre qu'il fallait déposer ses clés... Si oui, où faut-il les donner ?
Merci d'avance.
Je suis en train de mettre au point un algo de cryptage (projet pour mes études).
C'est un système de crypto à clé privée (donc il suffit de connaitre un morceau de la clé de cryptage pour pouvoir décrypter une partie des données).
Ce que j'aimerais savoir, c'est : existe-t-il des méthodes qui permettent de tester la sécurité de mon algorithme ?
Comment puis-je savoir dans quelles conditions mes méthodes sont-elles sûre ?
Comment savoir où peuvent se trouver les vulnérabilités ?
Et tant qu'on y est : pour une utilisation privée, quelles sont les démarches à effectuer pour une exploitation légale de cet algo ?
J'ai cru comprendre qu'il fallait déposer ses clés... Si oui, où faut-il les donner ?
Merci d'avance.
A voir également:
- Tester un algo de cryptage fait maison
- Google maps localisation maison - Guide
- Flash drive tester - Télécharger - Divers Utilitaires
- Engrais pour fraisier fait maison - Guide
- Tester son pc - Guide
- Tester composant pc - Guide
7 réponses
Merci pour la réponse !
L'algo final n'est pas encore écrit, pour le moment, je n'ai que des bases : un chiffrement par substitution mais où chaque caractère est code d'une manière différente des précédents.
En gros, au lieu de remplacer toujours le a par t, le b par d, le c par m, ... pour le premier caractère le a se code en i, mais pour le deuxième le a est transformé en g, et pour le troisième il se change en m.
De plus, pour rendre le calcul plus complexe, j'envisage de modifier les fréquences de changement de tables : les 2 premiers avec la colonne 1, les 3 suivants avec la colonne 2, le suivant avec la 3, ...
Donc sur la base c'est comme un cryptage par substitution, mais l'analyse basée sur la fréquence d'apparition des lettre ne peut pas être utilisée (sauf si on a un très long message, des tables courtes, et que l'on connais les fréquences de changement de colonne) puisque le e en première position n'a pas la même signification que le e en 5ème position.
Après, comme je travail sur un programme, les tables sont en fait calculées à partir de nombres aléatoires (chaque colonne à donc une équation mathématique différente, actuellement il s'agit juste d'un cryptage RSA de la table ASCII avec des clés différentes à chaque colonne) et chaque caractère de la table ASCII est utilisé, donc l'espace ou les caractères accentués ont aussi un sens.
J'envisage également d'ajouter un calcul simple après la substitution (genre y=(x+3)%256) pour rajouter une couche dans le codage.
Alors, quelqu'un se sent assez fou pour se lancer dans une cryptanalyse ?
L'algo final n'est pas encore écrit, pour le moment, je n'ai que des bases : un chiffrement par substitution mais où chaque caractère est code d'une manière différente des précédents.
En gros, au lieu de remplacer toujours le a par t, le b par d, le c par m, ... pour le premier caractère le a se code en i, mais pour le deuxième le a est transformé en g, et pour le troisième il se change en m.
De plus, pour rendre le calcul plus complexe, j'envisage de modifier les fréquences de changement de tables : les 2 premiers avec la colonne 1, les 3 suivants avec la colonne 2, le suivant avec la 3, ...
Donc sur la base c'est comme un cryptage par substitution, mais l'analyse basée sur la fréquence d'apparition des lettre ne peut pas être utilisée (sauf si on a un très long message, des tables courtes, et que l'on connais les fréquences de changement de colonne) puisque le e en première position n'a pas la même signification que le e en 5ème position.
Après, comme je travail sur un programme, les tables sont en fait calculées à partir de nombres aléatoires (chaque colonne à donc une équation mathématique différente, actuellement il s'agit juste d'un cryptage RSA de la table ASCII avec des clés différentes à chaque colonne) et chaque caractère de la table ASCII est utilisé, donc l'espace ou les caractères accentués ont aussi un sens.
J'envisage également d'ajouter un calcul simple après la substitution (genre y=(x+3)%256) pour rajouter une couche dans le codage.
Alors, quelqu'un se sent assez fou pour se lancer dans une cryptanalyse ?
Ok !
Merci à tous pour vos réponses, elle m'ont beaucoup aidé.
> Pour un projet d'école, ton chiffrement est tout à fait valable, et même très bien
T'avait raison : 18.5 / 20 (perdu des points parce que le programme nécessitait des très grosses tables, c'est pas bon pour les performances)...
Par contre, si ça ressemble trop à Enigma, je vais pas tenter d'aller plus loin que ça : un système de chiffrement cassé durant la seconde guerre mondiale, j'imagine que ça doit pas être super fiable (juste assez pour avoir une bonne note).
Mais au moins je sais que je peux m'en servir légalement si besoin, et qu'il n'est peut-être pas assez sécurisé pour les domaines critiques...
Au moins, j'aurais validé ma deuxième année d'école d'ingénieur, c'est déjà ça ^^
Merci beaucoup !
Merci à tous pour vos réponses, elle m'ont beaucoup aidé.
> Pour un projet d'école, ton chiffrement est tout à fait valable, et même très bien
T'avait raison : 18.5 / 20 (perdu des points parce que le programme nécessitait des très grosses tables, c'est pas bon pour les performances)...
Par contre, si ça ressemble trop à Enigma, je vais pas tenter d'aller plus loin que ça : un système de chiffrement cassé durant la seconde guerre mondiale, j'imagine que ça doit pas être super fiable (juste assez pour avoir une bonne note).
Mais au moins je sais que je peux m'en servir légalement si besoin, et qu'il n'est peut-être pas assez sécurisé pour les domaines critiques...
Au moins, j'aurais validé ma deuxième année d'école d'ingénieur, c'est déjà ça ^^
Merci beaucoup !
Bonjour,
Le meilleur moyen de tester la sécurité de ton algo est de le mettre aux yeux de tous. En général, il faudrait qu'il soit analysé par des mathématiciens.
Le meilleur moyen de tester la sécurité de ton algo est de le mettre aux yeux de tous. En général, il faudrait qu'il soit analysé par des mathématiciens.
Ton chiffrement me fait penser à celui utilisé dans la machine Enigma, qui a été cassé ^^.
De plus, ce n'est pas en rajoutant des couches que cela augmente la qualité du chiffrement.
Mais bon, ce n'est qu'un projet, et tu ne pourras pas trouver une méthode de bonne qualité comme celui Rijndael.
Pour un projet d'école, ton chiffrement est tout à fait valable, et même très bien ;-))).
De plus, ce n'est pas en rajoutant des couches que cela augmente la qualité du chiffrement.
Mais bon, ce n'est qu'un projet, et tu ne pourras pas trouver une méthode de bonne qualité comme celui Rijndael.
Pour un projet d'école, ton chiffrement est tout à fait valable, et même très bien ;-))).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut parmi les méthodes de chiffrement simples à mettre en œuvre tu trouveras celle-ci https://fr.wikipedia.org/wiki/Chiffre_de_Beale qui est redoutablement efficace et si tu veux te régaler, un bouquin incontournable, Histoire des codes secrets (coll. Livres de poche)
Avec l'informatique, tous les chiffrements de type substitution sont mis à mal à moins d'utiliser une clé de taille aussi grande que le texte à chiffrer (théorème de Shannon) et de ne plus la réutiliser (masque jetable). Ce qui n'est pas très pratique. Aujourd'hui, on utilise plutôt la puissance des ordinateurs au service des mathématiques pour chiffrer, comme la difficulté à factoriser un grand produit de deux nombres premier (RSA), ou le problème du logarithme discret, ...