Créer un logiciel de cryptagle decripter clee

Fermé
Programmeur C/C++/CSS/HTML/XML/BATCH - 17 avril 2009 à 18:50
 Sophocle - 17 avril 2009 à 21:26
Bonjour,
Je suis en train de créer une nouvelle clé de cryptage. J'aimerais un peu d'aide pour pouvoir trouver le code de déchiffrage :

La clé fonctionne comme telle :

" on posséde une chaine de nombre (ils peuvent representer les lettres, octets, bits, etc...). On les crypte de la façons suivante : ( nombre#a = non-chiffré, nombre#b = chiffré)
nombre1a.nombre2a.nombre3a.nombre4a.nombre5a
nombre1b.nombre2b.nombre3b.nombre4b.nombre5b

nombre1b=nombre1a
nombre2b=nombre1a * nombre 3a
nombre3b=nombre2a * nombre 4a
nombre4b=nombre3a * nombre 5a
nombre5b=nombre5a

J'ai cherché, et je cherche toujours l'operation qui me permeterait de trouver le nombre (exemple) 2a
A voir également:

4 réponses

Programmeur C/C++/CSS/HTML/XML/BATCH
17 avril 2009 à 19:34
Si vous ne comprenez pas mon problème, mon adresse mail :
donjon.dragon@ymail.com
0
J'ai du m'y reprendre à 2 fois avant de saisir ta demande, mais bon, ce n'est pas grave LoL...

Il suffit juste de réfléchir un peu, si j'ai bien tout saisit, tu aurais un nombre "x", qui correspondrait à la multiplication de 2 autres nombres "y" & "z".

Moi, je pense très fortement à RSA en voyant ça, et je me dit : FACTORISATION.
Le principe est simple, ton algorithme est tel que chaque nombre correspond à une lettre (si j'ai bien tout saisie), et tu multiplie ensuite ces nombres pour en créer de nouveaux (le cryptage).

Donc, mathématiquement, si tu souhaites décrypter cette nouvelle suite de nombres, il suffit de les prendres un à un, et de les factoriser.

Pléthore d'algorithme existe, personnellement j'aime bien la Crible Quadratique (Assez Simple à Comprendre), et les Courbes Elliptique (Assez Rapide & Puissant pour des Nombres pas trop grand). Donc pour résumer, ta fonction de décryptage sera tel qu'elle devra factoriser chaque nombre correspondant à tes [nombre"x"b].
0
Programmeur C/C++/CSS/HTML/XML/BATCH
17 avril 2009 à 19:55
c'est pa "exactement ça". Je vais céer un programme en C++ (j'ai pas besoin d'aide sur ça, ca devrait aller... Mais je souhaite faire ceci :

x = y * z;
y = ?

Pour crypter, aucun problème, mais ce qu'il me faudrais, c'est l'operation qui me permeterais de retranscrire l'opération >> de décrypter.

Il me faudrais JUSTE l'OPERATION de DECRYPTAGE
0
Heu, mouais lol....

Là c'est pas trop dur, si c'est juste la variable 'y' à retrouver, sachant que la formule de départ est x = yz, on a tout simplement y = x/z

C'es bon cette fois ? XD
0
Programmeur C/C++/CSS/HTML/XML/BATCH
17 avril 2009 à 20:00
non. Le logiciel doit être capable de décrypter la chaîne (nombres)(stocké dans un fichier texte) après la fermeture du programme :
Le Logiciel NE CONNAIT PLUS la variable "y"
0
Oki, heu...

En fait, je comprendrais mieux avec un algorithme clairement exposé devant les yeux, après je pense que je devrais trouver une solution =).
0
Programmeur C/C++/CSS/HTML/XML/BATCH
17 avril 2009 à 20:10
1 2 3
A a b c
B x y z

x= a
y= a * b
z= c

exemple :

a= 2 -> x= 2
b= 4 -> y= 6 (2 * 3)
c= 3 -> z= 3

on ne connait maintenent plus a, ni , ni c (enfin, a et b si... car a=x & b=z)

A combien est = y ? (operation)
0
Mwai, j'ai bien compris le principe cette fois-ci, beaucoup mieux même, et pour dire vrai, ma réponse de tout à l'heure était donc valide.

Tu me spécifie 3 variables tel que ::
a = 2
b = 4
c = 3

L'algorithme de Cryptage est donc ::
x = a
y = ac
z = c

Problème : Impossible de Ressortir 'y' !!

J'expose ma Façon de Faire


.::Test N°1::.
=========
Détail : Longueur de 4

A=2
B=3
C=4
D=5

X=2
Y=8
Z=15
W=5

Soit :
X=(A)=(2) => A
Y=(A*C)=(2*4) => Factorisation(B) = A & C
Z=(B*D)=(3*5) => Factorisation(Z) = B & D
W=(D)=(5) => D

Conclusion : On réussit à obtenir B & C par Factorisation Successive.

.::Test N°2::.
=========
Détail : Longueur de 3

A=1
B=2
C=3

X=1
Y=3
Z=3

Soit :
X=(A)=(1) => A
Y=(A*C)=(1*3) => Factorisation(Y) = A & C
Z=(C)=(3) => C

Conclusion : Il est impossible de ressortir la variable B car Jamais usé dans un Calcul !!

.::Test N°3::.
=========
Détail : Longueur de 5

A=1
B=2
C=3
D=4
E=5

Soit :
V=(A)=(A) => A
W=(A*C)=(1*3)=3 => Factorisation(W) = A & C
X=(B*D)=(2*4)=8 => Factorisation(X) = B & D
Y=(C*E)=(3*5)=15 => Factorisation(Y) = C & E
Z=(E)=(5) => E

Conclusion : On réussit à obtenir BCD par Factorisation Successive.

Sa ira cette fois ? ^^
0
Programmeur C/C++/CSS/HTML/XML/BATCH > Sophocle
17 avril 2009 à 21:10
ca m'a l'air d'aller... grand merci. Je regarderais la tête posée ces calculs . Je vous sonne s'il y à encore problème, d'acc ?
0
Sophocle > Programmeur C/C++/CSS/HTML/XML/BATCH
17 avril 2009 à 21:26
Ouais aucun problème =)
0