Allo ! J'voudrais faire une mini crypteur de mot de passe basique en
C++. exemple, toute les lettre de l'alphabet pourrais etre changer par
un autre caratere. Si vous pouvez me donner un piste sa serait gentil.
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
Marc
Y a + efficace et au moins aussi simple Tu cryptes avec une clé l'ensemble du jeu de caractères...
Par ex si ta clé est "amdt" et ta phrase "phrase secrète" tu procède comme suit
phrase secrète amdtamdtamdt
'p'->'p'+'a' 'h'->'h'+'m' 'r'->'r'+'d' 'a'->'a'+'t' 's'->'s'+'a' etc.. pour savoir ce qu'il faut additionner, numero_char % taille_cle pour décrypter, tu fais l'iverse... Je te laisse le soin de régler quelques problèmes d'implémentation liés au fait que 200+200 ne fait pas 400 sur un char. Mais tu peux contourner facilement ce problème avec des conversions de type char en int par exemple... Bon courage
Y a + efficace et au moins aussi simple
Tu cryptes avec une clé l'ensemble du jeu de caractères...
Par ex si ta clé est "amdt"
et ta phrase "phrase secrète"
tu procède comme suit
phrase secrète
amdtamdtamdt
'p'->'p'+'a'
'h'->'h'+'m'
'r'->'r'+'d'
'a'->'a'+'t'
's'->'s'+'a'
etc..
pour savoir ce qu'il faut additionner, numero_char % taille_cle
pour décrypter, tu fais l'iverse...
Je te laisse le soin de régler quelques problèmes d'implémentation liés au
fait que 200+200 ne fait pas 400 sur un char. Mais tu peux contourner
facilement ce problème avec des conversions de type char en int par
exemple...
Bon courage
Y a + efficace et au moins aussi simple Tu cryptes avec une clé l'ensemble du jeu de caractères...
Par ex si ta clé est "amdt" et ta phrase "phrase secrète" tu procède comme suit
phrase secrète amdtamdtamdt
'p'->'p'+'a' 'h'->'h'+'m' 'r'->'r'+'d' 'a'->'a'+'t' 's'->'s'+'a' etc.. pour savoir ce qu'il faut additionner, numero_char % taille_cle pour décrypter, tu fais l'iverse... Je te laisse le soin de régler quelques problèmes d'implémentation liés au fait que 200+200 ne fait pas 400 sur un char. Mais tu peux contourner facilement ce problème avec des conversions de type char en int par exemple... Bon courage
Mathieu Peyréga
Y a + efficace et au moins aussi simple Tu cryptes avec une clé l'ensemble du jeu de caractères...
Par ex si ta clé est "amdt" et ta phrase "phrase secrète" tu procède comme suit
phrase secrète amdtamdtamdt
'p'->'p'+'a' 'h'->'h'+'m' 'r'->'r'+'d' 'a'->'a'+'t' 's'->'s'+'a' etc.. pour savoir ce qu'il faut additionner, numero_char % taille_cle pour décrypter, tu fais l'iverse... Je te laisse le soin de régler quelques problèmes d'implémentation liés au fait que 200+200 ne fait pas 400 sur un char. Mais tu peux contourner facilement ce problème avec des conversions de type char en int par exemple... Bon courage
Un poil plus compliqué mais beaucoup plus efficace : se servir de la "phrase secrète" pour initialiser un BON générateur de nombres pseudo-aléatoires. Il y en a dans la lib boost : www.boost.org ou encore là : http://www.eskimo.com/~weidai/cryptlib.html (en passant, cette dernière lib fait évidemment beaucoup plus que ça et à peut ptrès tout ce dont on peut avoir besoin)
Et puis appliquer la méthode que tu donnes avec des données issues du générateur aléatoire. Ca évite de répeter la phrase secrète ce qui doit pouvoir éventuellement faire apparaitre des choses statistiquement et laisser place a des attaques subtiles...
Enfin bon, tout ça est un peu voir complètement HS ici... et je crois que la question initiale portait sur un mécanisme simple... sans autres contraites.
Cela dit, pour ne pas être complètement HS, les deux libs que je cite sont "du bon C++" il me semble.
Cordialement
Mathieu -- http://matioupi.free.fr/
Y a + efficace et au moins aussi simple
Tu cryptes avec une clé l'ensemble du jeu de caractères...
Par ex si ta clé est "amdt"
et ta phrase "phrase secrète"
tu procède comme suit
phrase secrète
amdtamdtamdt
'p'->'p'+'a'
'h'->'h'+'m'
'r'->'r'+'d'
'a'->'a'+'t'
's'->'s'+'a'
etc..
pour savoir ce qu'il faut additionner, numero_char % taille_cle
pour décrypter, tu fais l'iverse...
Je te laisse le soin de régler quelques problèmes d'implémentation liés au
fait que 200+200 ne fait pas 400 sur un char. Mais tu peux contourner
facilement ce problème avec des conversions de type char en int par
exemple...
Bon courage
Un poil plus compliqué mais beaucoup plus efficace :
se servir de la "phrase secrète" pour initialiser un BON générateur de
nombres pseudo-aléatoires. Il y en a dans la lib boost : www.boost.org
ou encore là : http://www.eskimo.com/~weidai/cryptlib.html
(en passant, cette dernière lib fait évidemment beaucoup plus que ça et
à peut ptrès tout ce dont on peut avoir besoin)
Et puis appliquer la méthode que tu donnes avec des données issues du
générateur aléatoire. Ca évite de répeter la phrase secrète ce qui doit
pouvoir éventuellement faire apparaitre des choses statistiquement et
laisser place a des attaques subtiles...
Enfin bon, tout ça est un peu voir complètement HS ici... et je crois
que la question initiale portait sur un mécanisme simple... sans autres
contraites.
Cela dit, pour ne pas être complètement HS, les deux libs que je cite
sont "du bon C++" il me semble.
Y a + efficace et au moins aussi simple Tu cryptes avec une clé l'ensemble du jeu de caractères...
Par ex si ta clé est "amdt" et ta phrase "phrase secrète" tu procède comme suit
phrase secrète amdtamdtamdt
'p'->'p'+'a' 'h'->'h'+'m' 'r'->'r'+'d' 'a'->'a'+'t' 's'->'s'+'a' etc.. pour savoir ce qu'il faut additionner, numero_char % taille_cle pour décrypter, tu fais l'iverse... Je te laisse le soin de régler quelques problèmes d'implémentation liés au fait que 200+200 ne fait pas 400 sur un char. Mais tu peux contourner facilement ce problème avec des conversions de type char en int par exemple... Bon courage
Un poil plus compliqué mais beaucoup plus efficace : se servir de la "phrase secrète" pour initialiser un BON générateur de nombres pseudo-aléatoires. Il y en a dans la lib boost : www.boost.org ou encore là : http://www.eskimo.com/~weidai/cryptlib.html (en passant, cette dernière lib fait évidemment beaucoup plus que ça et à peut ptrès tout ce dont on peut avoir besoin)
Et puis appliquer la méthode que tu donnes avec des données issues du générateur aléatoire. Ca évite de répeter la phrase secrète ce qui doit pouvoir éventuellement faire apparaitre des choses statistiquement et laisser place a des attaques subtiles...
Enfin bon, tout ça est un peu voir complètement HS ici... et je crois que la question initiale portait sur un mécanisme simple... sans autres contraites.
Cela dit, pour ne pas être complètement HS, les deux libs que je cite sont "du bon C++" il me semble.
Cordialement
Mathieu -- http://matioupi.free.fr/
Matthieu Moy
"Marc" writes:
Y a + efficace et au moins aussi simple Tu cryptes avec une clé l'ensemble du jeu de caractères...
Attention à ne pas utiliser cet algo pour de la vraie crypto quand même : Si l'attaquant connait une partie du message à décrypter, il casse la clé.
-- Matthieu
"Marc" <metrica@free.fr> writes:
Y a + efficace et au moins aussi simple
Tu cryptes avec une clé l'ensemble du jeu de caractères...
Attention à ne pas utiliser cet algo pour de la vraie crypto quand
même : Si l'attaquant connait une partie du message à décrypter, il
casse la clé.
Y a + efficace et au moins aussi simple Tu cryptes avec une clé l'ensemble du jeu de caractères...
Attention à ne pas utiliser cet algo pour de la vraie crypto quand même : Si l'attaquant connait une partie du message à décrypter, il casse la clé.
-- Matthieu
Marc
Attention à ne pas utiliser cet algo pour de la vraie crypto quand même : Si l'attaquant connait une partie du message à décrypter, il casse la clé.
sur un simple mot de passe, c'est quand même pas facile à casser. Le problème, c'est qu'un mot de passe crypté reste un mot de passe, ça dépend d'où on se place. Si "jojo" est remplacé par "chd!", quelle affaire !
Attention à ne pas utiliser cet algo pour de la vraie crypto quand
même : Si l'attaquant connait une partie du message à décrypter, il
casse la clé.
sur un simple mot de passe, c'est quand même pas facile à casser.
Le problème, c'est qu'un mot de passe crypté reste un mot de passe, ça
dépend d'où on se place.
Si "jojo" est remplacé par "chd!", quelle affaire !
Attention à ne pas utiliser cet algo pour de la vraie crypto quand même : Si l'attaquant connait une partie du message à décrypter, il casse la clé.
sur un simple mot de passe, c'est quand même pas facile à casser. Le problème, c'est qu'un mot de passe crypté reste un mot de passe, ça dépend d'où on se place. Si "jojo" est remplacé par "chd!", quelle affaire !
Fabien LE LEZ
On Wed, 27 Oct 2004 19:08:08 -0400, Penguin_X :
J'voudrais faire une mini crypteur de mot de passe basique en C++.
Un crypteur avec possibilité de décryptage ou un crypteur à sens unique ? Pour le crypteur à sens unique, et pour une sécurité modérée, j'ai une encapsulation d'un générateur de hash MD5 quelque part, je peux te l'expédier si tu veux. Cet algo n'a plus tellement d'intérêt depuis que MD5 n'est plus totalement à sens unique, mais pour un petit bidouillage, ça peut servir.
Sinon, pour divers algorithmes de cryptage, à sens unique ou non, je t'invite à aller voir fr.comp.algorithmes.
-- ;-)
On Wed, 27 Oct 2004 19:08:08 -0400, Penguin_X
<theshadowman21@hotmail.com>:
J'voudrais faire une mini crypteur de mot de passe basique en
C++.
Un crypteur avec possibilité de décryptage ou un crypteur à sens
unique ?
Pour le crypteur à sens unique, et pour une sécurité modérée, j'ai une
encapsulation d'un générateur de hash MD5 quelque part, je peux te
l'expédier si tu veux. Cet algo n'a plus tellement d'intérêt depuis
que MD5 n'est plus totalement à sens unique, mais pour un petit
bidouillage, ça peut servir.
Sinon, pour divers algorithmes de cryptage, à sens unique ou non, je
t'invite à aller voir fr.comp.algorithmes.
J'voudrais faire une mini crypteur de mot de passe basique en C++.
Un crypteur avec possibilité de décryptage ou un crypteur à sens unique ? Pour le crypteur à sens unique, et pour une sécurité modérée, j'ai une encapsulation d'un générateur de hash MD5 quelque part, je peux te l'expédier si tu veux. Cet algo n'a plus tellement d'intérêt depuis que MD5 n'est plus totalement à sens unique, mais pour un petit bidouillage, ça peut servir.
Sinon, pour divers algorithmes de cryptage, à sens unique ou non, je t'invite à aller voir fr.comp.algorithmes.
-- ;-)
kanze
"Marc" wrote in message news:<4180d86c$0$29511$...
Attention à ne pas utiliser cet algo pour de la vraie crypto quand même : Si l'attaquant connait une partie du message à décrypter, il casse la clé.
sur un simple mot de passe, c'est quand même pas facile à casser. Le problème, c'est qu'un mot de passe crypté reste un mot de passe, ça dépend d'où on se place. Si "jojo" est remplacé par "chd!", quelle affaire !
En fait, le problème avec cette solution, c'est que tu as deux mots de passe -- celui de l'utilisateur, et celui qui a servi de l'encryption. Une fois un trouvé, l'autre se trouve facilement. Donc :
- Je me crée un mot de passe, disons « kanze ». Je l'encrypte, et je vois ce que ça donne. Du coup, je peux en rétrouver celui de l'algorithme, et par la suite, tous les autres mots de passe de l'utilisateur.
- J'analyse (en désassemblant) le code qui encrypte, et j'y trouve le mot de passe.
Dans les deux cas, j'ai facilement des entrées dans le système.
Moi, j'avoue que je ne chercherais pas à réinventer la roue. Il existe des algorithmes, déjà tous codés, d'encryption sécure. (Du fait que j'ai une implémentation de MD5 dans mes tiroirs, je me baserais probablement sur lui, même s'il a des faiblesses connues. Altérnativement, on utilise le mot de passe de l'utilisateur comme mot de passe d'encryption d'un texte connu -- c'est ce que Unix fait, par exemple, en encryptant avec un DES modifié.)
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
"Marc" <metrica@free.fr> wrote in message
news:<4180d86c$0$29511$626a14ce@news.free.fr>...
Attention à ne pas utiliser cet algo pour de la vraie crypto quand
même : Si l'attaquant connait une partie du message à décrypter, il
casse la clé.
sur un simple mot de passe, c'est quand même pas facile à casser. Le
problème, c'est qu'un mot de passe crypté reste un mot de passe, ça
dépend d'où on se place.
Si "jojo" est remplacé par "chd!", quelle affaire !
En fait, le problème avec cette solution, c'est que tu as deux mots de
passe -- celui de l'utilisateur, et celui qui a servi de l'encryption.
Une fois un trouvé, l'autre se trouve facilement. Donc :
- Je me crée un mot de passe, disons « kanze ». Je l'encrypte, et je
vois ce que ça donne. Du coup, je peux en rétrouver celui de
l'algorithme, et par la suite, tous les autres mots de passe de
l'utilisateur.
- J'analyse (en désassemblant) le code qui encrypte, et j'y trouve le
mot de passe.
Dans les deux cas, j'ai facilement des entrées dans le système.
Moi, j'avoue que je ne chercherais pas à réinventer la roue. Il existe
des algorithmes, déjà tous codés, d'encryption sécure. (Du fait que j'ai
une implémentation de MD5 dans mes tiroirs, je me baserais probablement
sur lui, même s'il a des faiblesses connues. Altérnativement, on utilise
le mot de passe de l'utilisateur comme mot de passe d'encryption d'un
texte connu -- c'est ce que Unix fait, par exemple, en encryptant avec
un DES modifié.)
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
"Marc" wrote in message news:<4180d86c$0$29511$...
Attention à ne pas utiliser cet algo pour de la vraie crypto quand même : Si l'attaquant connait une partie du message à décrypter, il casse la clé.
sur un simple mot de passe, c'est quand même pas facile à casser. Le problème, c'est qu'un mot de passe crypté reste un mot de passe, ça dépend d'où on se place. Si "jojo" est remplacé par "chd!", quelle affaire !
En fait, le problème avec cette solution, c'est que tu as deux mots de passe -- celui de l'utilisateur, et celui qui a servi de l'encryption. Une fois un trouvé, l'autre se trouve facilement. Donc :
- Je me crée un mot de passe, disons « kanze ». Je l'encrypte, et je vois ce que ça donne. Du coup, je peux en rétrouver celui de l'algorithme, et par la suite, tous les autres mots de passe de l'utilisateur.
- J'analyse (en désassemblant) le code qui encrypte, et j'y trouve le mot de passe.
Dans les deux cas, j'ai facilement des entrées dans le système.
Moi, j'avoue que je ne chercherais pas à réinventer la roue. Il existe des algorithmes, déjà tous codés, d'encryption sécure. (Du fait que j'ai une implémentation de MD5 dans mes tiroirs, je me baserais probablement sur lui, même s'il a des faiblesses connues. Altérnativement, on utilise le mot de passe de l'utilisateur comme mot de passe d'encryption d'un texte connu -- c'est ce que Unix fait, par exemple, en encryptant avec un DES modifié.)
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
kanze
Fabien LE LEZ wrote in message news:...
On Wed, 27 Oct 2004 19:08:08 -0400, Penguin_X :
J'voudrais faire une mini crypteur de mot de passe basique en C++.
Un crypteur avec possibilité de décryptage ou un crypteur à sens unique ?
Pour le crypteur à sens unique, et pour une sécurité modérée, j'ai une encapsulation d'un générateur de hash MD5 quelque part, je peux te l'expédier si tu veux. Cet algo n'a plus tellement d'intérêt depuis que MD5 n'est plus totalement à sens unique, mais pour un petit bidouillage, ça peut servir.
Où est-ce que tu as vu qu'il n'est pas à sens unique. Tout ce que j'ai vu, c'est qu'on sait créer plusieurs messages avec la même signature. Pour une signature donnée, je ne crois pas qu'on sait rétrouver le message original, ni rétrouver un message quelconque qui a cette signature. (Je me base sur http://www.cryptography.com/cnews/hash.html.)
Sinon, pour divers algorithmes de cryptage, à sens unique ou non, je t'invite à aller voir fr.comp.algorithmes.
Pour l'instant, SHA-1 semble le plus indiqué. Mais comme toi, c'est MD-5 que j'ai dans mon tiroir, et pour la plupart d'applications, il suffit. (Où il ne suffit pas, évidemment, c'est pour la certification des programmes ou des documents téléchargés par le reseau.)
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Fabien LE LEZ <gramster@gramster.com> wrote in message
news:<46o1o0te54k9cfhj4jl3dcjgv6s2cc5r5g@4ax.com>...
On Wed, 27 Oct 2004 19:08:08 -0400, Penguin_X
<theshadowman21@hotmail.com>:
J'voudrais faire une mini crypteur de mot de passe basique en
C++.
Un crypteur avec possibilité de décryptage ou un crypteur à sens
unique ?
Pour le crypteur à sens unique, et pour une sécurité modérée, j'ai une
encapsulation d'un générateur de hash MD5 quelque part, je peux te
l'expédier si tu veux. Cet algo n'a plus tellement d'intérêt depuis
que MD5 n'est plus totalement à sens unique, mais pour un petit
bidouillage, ça peut servir.
Où est-ce que tu as vu qu'il n'est pas à sens unique. Tout ce que j'ai
vu, c'est qu'on sait créer plusieurs messages avec la même signature.
Pour une signature donnée, je ne crois pas qu'on sait rétrouver le
message original, ni rétrouver un message quelconque qui a cette
signature. (Je me base sur http://www.cryptography.com/cnews/hash.html.)
Sinon, pour divers algorithmes de cryptage, à sens unique ou non, je
t'invite à aller voir fr.comp.algorithmes.
Pour l'instant, SHA-1 semble le plus indiqué. Mais comme toi, c'est MD-5
que j'ai dans mon tiroir, et pour la plupart d'applications, il suffit.
(Où il ne suffit pas, évidemment, c'est pour la certification des
programmes ou des documents téléchargés par le reseau.)
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
J'voudrais faire une mini crypteur de mot de passe basique en C++.
Un crypteur avec possibilité de décryptage ou un crypteur à sens unique ?
Pour le crypteur à sens unique, et pour une sécurité modérée, j'ai une encapsulation d'un générateur de hash MD5 quelque part, je peux te l'expédier si tu veux. Cet algo n'a plus tellement d'intérêt depuis que MD5 n'est plus totalement à sens unique, mais pour un petit bidouillage, ça peut servir.
Où est-ce que tu as vu qu'il n'est pas à sens unique. Tout ce que j'ai vu, c'est qu'on sait créer plusieurs messages avec la même signature. Pour une signature donnée, je ne crois pas qu'on sait rétrouver le message original, ni rétrouver un message quelconque qui a cette signature. (Je me base sur http://www.cryptography.com/cnews/hash.html.)
Sinon, pour divers algorithmes de cryptage, à sens unique ou non, je t'invite à aller voir fr.comp.algorithmes.
Pour l'instant, SHA-1 semble le plus indiqué. Mais comme toi, c'est MD-5 que j'ai dans mon tiroir, et pour la plupart d'applications, il suffit. (Où il ne suffit pas, évidemment, c'est pour la certification des programmes ou des documents téléchargés par le reseau.)
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Fabien LE LEZ
On 29 Oct 2004 00:56:22 -0700, :
[MD5]
Où est-ce que tu as vu qu'il n'est pas à sens unique. Tout ce que j'ai vu, c'est qu'on sait créer plusieurs messages avec la même signature.
Ici, le message est un mot de passe, donc rarement de longueur supérieure à celle d'un hash MD5. Plus précisément, il y a moins de mots de passes possibles que de hashs MD5. Par conséquent, si tu trouves un mot de passe ayant le même MD5 que le mot de passe "secret", il est fort probable que ces deux mots de passent soient identiques.
Note : il y a eu une ou deux discussions là-dessus sur fr.comp.securite.
-- ;-)
On 29 Oct 2004 00:56:22 -0700, kanze@gabi-soft.fr:
[MD5]
Où est-ce que tu as vu qu'il n'est pas à sens unique. Tout ce que j'ai
vu, c'est qu'on sait créer plusieurs messages avec la même signature.
Ici, le message est un mot de passe, donc rarement de longueur
supérieure à celle d'un hash MD5. Plus précisément, il y a moins de
mots de passes possibles que de hashs MD5.
Par conséquent, si tu trouves un mot de passe ayant le même MD5 que le
mot de passe "secret", il est fort probable que ces deux mots de
passent soient identiques.
Note : il y a eu une ou deux discussions là-dessus sur
fr.comp.securite.
Où est-ce que tu as vu qu'il n'est pas à sens unique. Tout ce que j'ai vu, c'est qu'on sait créer plusieurs messages avec la même signature.
Ici, le message est un mot de passe, donc rarement de longueur supérieure à celle d'un hash MD5. Plus précisément, il y a moins de mots de passes possibles que de hashs MD5. Par conséquent, si tu trouves un mot de passe ayant le même MD5 que le mot de passe "secret", il est fort probable que ces deux mots de passent soient identiques.
Note : il y a eu une ou deux discussions là-dessus sur fr.comp.securite.