imeneimene
Messages postés61Date d'inscriptionmercredi 24 décembre 2008StatutMembreDernière intervention10 avril 2010
-
13 janv. 2009 à 15:40
Dorsin
Messages postés1Date d'inscriptionsamedi 10 mai 2014StatutMembreDernière intervention 1 mars 2018
-
1 mars 2018 à 14:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Dorsin
Messages postés1Date d'inscriptionsamedi 10 mai 2014StatutMembreDernière intervention 1 mars 2018 1 mars 2018 à 14:42
Ce gars est bon.... Merci beaucoup. Code efficace. Beaucoup de courage !!! ;)
heahel
Messages postés1Date d'inscriptionjeudi 13 décembre 2007StatutMembreDernière intervention26 avril 2010 26 avril 2010 à 15:04
Bonjour,
Personnellement je mets une très mauvaise note au code, en raison de l'utilisation de la classe Random.
En effet, la sécurité de RSA réside dans la difficulté de factoriser n = p*q.
Or Random ne garantit pas un choix totalement aléatoire de p et de q.
Ce chiffrement RSA n'est pas sûr, il s'agit plus d'un TP, à ne pas utiliser pour les transcation réellement sensible.
Je suis méchant c'est vrai mais l'auteur aurait bien du signaler, ceci afin d'éviter de voir ce genre de programme implémenté ailleurs.
A bon entendeur
Heahel le méchant ;)
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 5 mai 2009 à 17:36
Au contraire je suis content de voir que cela interesse et apporte un peu d'aide à certain. Si toi ou un autre avez des questions n'hesitez pas.
salrouge
Messages postés22Date d'inscriptionjeudi 5 août 2004StatutMembreDernière intervention 5 mai 2009 5 mai 2009 à 17:34
oui tu as raison
j'avais pas vu le test commenté dans la classe principale.
tout marche tres bien
je te félicite pour ce code.
merci
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 5 mai 2009 à 17:28
Ok je comprend mieu, je n'ai pas testé mais j'ai compris ce que tu veux dire car j'avais fait le même teste quand on m'a demandé de mettre une fenetre pour afficher le chiffré. Je confirme il n'est pas possible de déchiffrer a partir de la fenetre, par contre si tu veux une preuve que l'on peut dechiffrer tu as juste à mettre en commentaire la fenetre dans la classe principale.
salrouge
Messages postés22Date d'inscriptionjeudi 5 août 2004StatutMembreDernière intervention 5 mai 2009 5 mai 2009 à 17:22
je suis d'accord avec toi, mais je t'invite à faire le test inverse càd créer un bouton déchiffrer qui utilise la methode dechiffrer que tu as créée.
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 5 mai 2009 à 17:19
Je pense que tu dois avoir une erreur quelques part car je n'ai pas constaté d'erreur dans mon code jusqu'a maintenant.
salrouge
Messages postés22Date d'inscriptionjeudi 5 août 2004StatutMembreDernière intervention 5 mai 2009 5 mai 2009 à 17:17
j'y ai pensé aussi et j'ai appelé la fonction de déchiffrement avec comme parametre, le résultat du chiffrement du texte entré, sans passer par une zone de texte. mais ca n'a toujours pas marché
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 5 mai 2009 à 17:13
Salut, si le txtsortie c'est un élément fénêtré il est possible que les bytes ne soient pas conservés mais convertis pour être compatible avec l'affichage dans une fenetre, toutefois je ne connais presque pas les fenêtre en java.
salrouge
Messages postés22Date d'inscriptionjeudi 5 août 2004StatutMembreDernière intervention 5 mai 2009 5 mai 2009 à 13:57
bonjour
j'ai ajouté à ton code un btn déchiffrer, voici le code que j'ai ajouté
imeneimene
Messages postés61Date d'inscriptionmercredi 24 décembre 2008StatutMembreDernière intervention10 avril 2010 12 mars 2009 à 22:28
bonjour
le test est pour vérifier que e et w sont premier entre eux , je crois qu'iul faut ajouter un autre test genre :
while ((!this.p.gcd(q).toString().equals("1"))
Merci de me répondre
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 6 mars 2009 à 21:45
Salut,
while ((!this.e.gcd(w).toString().equals("1")) || (this.e.compareTo(w) != -1 )){ // e premier avec w et e < w
A bientot
imeneimene
Messages postés61Date d'inscriptionmercredi 24 décembre 2008StatutMembreDernière intervention10 avril 2010 6 mars 2009 à 17:45
Bonjour ,
dans le chiffrement RSA il faut que les deux chiffres p et q soient premiers entre eux , je crois qu'il faut faire un test sur le pgcd de q et p ....ai je raison?,
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 25 févr. 2009 à 21:07
Salut, non je crois pas renseigne tout sur l'algorithme d'euclide etendu pour en savoir plus.
J'ai pas étudié cette fonction je peux pas t'en dire plus.
imeneimene
Messages postés61Date d'inscriptionmercredi 24 décembre 2008StatutMembreDernière intervention10 avril 2010 25 févr. 2009 à 17:32
Bonjour ,
je veux savoir est ce que l'instruction :
this.d = this.e.modInverse(w);
veux dire que d=(e puiss -1) mod w;
merci de me répondre.
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 25 janv. 2009 à 18:45
Je ne vais pas vous faire un cours sur le chiffrement de données mais en gros le premier bout de code permet de grouper tout les bytes dans un tableau et si on a depacer le nombre de byte du message de depart alors on complete avec des 0.
Les deux fonctions convertissent un entier en 4 bytes et 4 bytes en un entier.
Et je rappel que j'ai mis ce code à un niveau initié et il y a une raison....
aminablonde
Messages postés2Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention25 janvier 2009 25 janv. 2009 à 18:27
Bonjour cibberrique,
je comprend pas l'utilité de ce fragment de code :
while ( i<mess.length){
for (int j = 0; j<this.blocsize;j++){
if (i+j<mess.length)
{
bloc[j] = mess[i+j];
}
else{
bloc[j] = 0;
je vois pas a quoi sa sert;
}
}
private int bytesToInt(byte b[]){
return (b[0] & 0xFF) << 24 |
(b[1] & 0xFF) << 16 |
(b[2] & 0xFF) << 8 |
(b[3] & 0xFF);
}
Merci de me répondre , c urgent
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 25 janv. 2009 à 16:36
Bonjour, comme je ne comprend pas exactement ta question je vais repondre aux deux possibilités que j'ai compris :
pour chiffrer en RSA tu fais : a^e mod n
sinon si c'est concernant le chiffrement que j'applique avec le graphique :
txtsortie.setText(new String(rsa.chiffrer(txtentree.getText().getBytes())));
le chiffrement ce fait sur une suite de byte concaténés pour former un grand nombre (inférieur à n)
Sinon je répéte on n'utilise pas RSA pour chiffrer des grandes quantités de données, donc on exclu le chiffrement de fichier ou de texte avec, RSA c'est bien pour chiffrer un condensé ou une clé privé par exemple.
aminablonde
Messages postés2Date d'inscriptiondimanche 25 janvier 2009StatutMembreDernière intervention25 janvier 2009 25 janv. 2009 à 14:26
Bonjour ,
moi aussi je veux réaliser un bouton pour déchiffrer le texte déja chiffré , qulk'un peux me dire comment on enregistre un texte dans un fichier et comment le récupérer aprg aussi une question pour le développeur du code , g pas bien compri comment t'as fait pr chiffrer le texte parceke le texte en caractères alors que le chiffrement se fait sur des entiers??
Merci de me répondre
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 17 janv. 2009 à 00:11
Salut, dans le code de la classe principale rajoute a la fin :
System.out.println(rsa.getPublicKey());
System.out.println(rsa.getPrivateKey());
p et q son des attributs privés de la classe l'utilisateur n'a pas besoin de les connaitres il ne servent que au moment de la creation des clé il ne sont donc pas conservés en mémoire, si tu les veux vraiment je te laisse t'amuser a modifier le code.
chinfine23
Messages postés3Date d'inscriptionlundi 22 décembre 2008StatutMembreDernière intervention25 janvier 2009 16 janv. 2009 à 21:26
salut tt le monde,c'est vraiment un code génial mais j'arrive pas à afficher les nombres p,q,clé publique et la clé privée,est ce qu'il yaune solution???
(sachant que je suis débutant en java........)
merci:chin_fine1985@hotmail.com
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 14 janv. 2009 à 20:34
Vous avez tout compris il faudrait sauvegarder le texte chiffrer dans un fichier pour pouvoir dechiffrer ensuite ce texte, et ce n'est pas le but de cette source, le but de cette source et de montrer comment fonctionne l'algorithme RSA.
Merci pour vos commentaires.
kari21
Messages postés2Date d'inscriptionmercredi 6 mai 2009StatutMembreDernière intervention 6 mai 2009 14 janv. 2009 à 20:31
bonjour , votre code et claire et fonctionne très bien mais j'ai une petite remarque !!! pourquoi ne pas réaliser un autre bouton déchiffrer pour déchiffrer le texte déjà chiffrer comme ça l'user pourra vérifier l'intégrité de son message bien sur en sauvegardant le texte chiffré affiché sur l'interface dans un tableau ou dans un fichier pour l'utiliser ????
imeneimene
Messages postés61Date d'inscriptionmercredi 24 décembre 2008StatutMembreDernière intervention10 avril 2010 13 janv. 2009 à 15:40
Bonjour ,
je trouve que votre code est hyper génial , simple et efficace , chapeau...
mais comme je suis débutante en JAVA , j'ai pas bien compris le fonctionnement de toutes les fonctions existantes , j'aimerais bien ( si tu peux bien sur) m'envoyer une explication complète sur la fonctions de chiffrement et de déchiffrement
tu peux aussi réaliser une interface pour permettre aux utilisateurs de faire entrer le mot a crypter ainsi qu'un affichage du texte crypté
Merci de me contacter sur l'adresse suivante : imeneannaba23@yahoo.fr
1 mars 2018 à 14:42
26 avril 2010 à 15:04
Personnellement je mets une très mauvaise note au code, en raison de l'utilisation de la classe Random.
En effet, la sécurité de RSA réside dans la difficulté de factoriser n = p*q.
Or Random ne garantit pas un choix totalement aléatoire de p et de q.
Ce chiffrement RSA n'est pas sûr, il s'agit plus d'un TP, à ne pas utiliser pour les transcation réellement sensible.
Je suis méchant c'est vrai mais l'auteur aurait bien du signaler, ceci afin d'éviter de voir ce genre de programme implémenté ailleurs.
A bon entendeur
Heahel le méchant ;)
5 mai 2009 à 17:36
5 mai 2009 à 17:34
j'avais pas vu le test commenté dans la classe principale.
tout marche tres bien
je te félicite pour ce code.
merci
5 mai 2009 à 17:28
5 mai 2009 à 17:22
5 mai 2009 à 17:19
5 mai 2009 à 17:17
5 mai 2009 à 17:13
5 mai 2009 à 13:57
j'ai ajouté à ton code un btn déchiffrer, voici le code que j'ai ajouté
btdechiffer=new JButton("Dechiffrer");
btdechiffer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
txtentree.setText(new String(rsa.dechiffrer(txtsortie.getText().getBytes())));
}
});
malheureusement le texte d'origine n'est plus retrouvé.
12 mars 2009 à 22:31
!this.e.gcd(w).toString().equals("1")
http://fr.wikipedia.org/wiki/Rivest_Shamir_Adleman
12 mars 2009 à 22:28
le test est pour vérifier que e et w sont premier entre eux , je crois qu'iul faut ajouter un autre test genre :
while ((!this.p.gcd(q).toString().equals("1"))
Merci de me répondre
6 mars 2009 à 21:45
while ((!this.e.gcd(w).toString().equals("1")) || (this.e.compareTo(w) != -1 )){ // e premier avec w et e < w
A bientot
6 mars 2009 à 17:45
dans le chiffrement RSA il faut que les deux chiffres p et q soient premiers entre eux , je crois qu'il faut faire un test sur le pgcd de q et p ....ai je raison?,
25 févr. 2009 à 21:07
J'ai pas étudié cette fonction je peux pas t'en dire plus.
25 févr. 2009 à 17:32
je veux savoir est ce que l'instruction :
this.d = this.e.modInverse(w);
veux dire que d=(e puiss -1) mod w;
merci de me répondre.
25 janv. 2009 à 18:45
Les deux fonctions convertissent un entier en 4 bytes et 4 bytes en un entier.
Et je rappel que j'ai mis ce code à un niveau initié et il y a une raison....
25 janv. 2009 à 18:27
je comprend pas l'utilité de ce fragment de code :
while ( i<mess.length){
for (int j = 0; j<this.blocsize;j++){
if (i+j<mess.length)
{
bloc[j] = mess[i+j];
}
else{
bloc[j] = 0;
je vois pas a quoi sa sert;
}
}
y'a aussi sa
private byte[] intToBytes(int i){
byte res[] = new byte[4];
res[0] = (byte)((i) >>> 24);
res[1] = (byte)((i) >>> 16);
res[2] = (byte)((i) >>> 8);
res[3] = (byte)((i));
return res;
}
private int bytesToInt(byte b[]){
return (b[0] & 0xFF) << 24 |
(b[1] & 0xFF) << 16 |
(b[2] & 0xFF) << 8 |
(b[3] & 0xFF);
}
Merci de me répondre , c urgent
25 janv. 2009 à 16:36
pour chiffrer en RSA tu fais : a^e mod n
sinon si c'est concernant le chiffrement que j'applique avec le graphique :
txtsortie.setText(new String(rsa.chiffrer(txtentree.getText().getBytes())));
le chiffrement ce fait sur une suite de byte concaténés pour former un grand nombre (inférieur à n)
Sinon je répéte on n'utilise pas RSA pour chiffrer des grandes quantités de données, donc on exclu le chiffrement de fichier ou de texte avec, RSA c'est bien pour chiffrer un condensé ou une clé privé par exemple.
25 janv. 2009 à 14:26
moi aussi je veux réaliser un bouton pour déchiffrer le texte déja chiffré , qulk'un peux me dire comment on enregistre un texte dans un fichier et comment le récupérer aprg aussi une question pour le développeur du code , g pas bien compri comment t'as fait pr chiffrer le texte parceke le texte en caractères alors que le chiffrement se fait sur des entiers??
Merci de me répondre
17 janv. 2009 à 00:11
System.out.println(rsa.getPublicKey());
System.out.println(rsa.getPrivateKey());
p et q son des attributs privés de la classe l'utilisateur n'a pas besoin de les connaitres il ne servent que au moment de la creation des clé il ne sont donc pas conservés en mémoire, si tu les veux vraiment je te laisse t'amuser a modifier le code.
16 janv. 2009 à 21:26
(sachant que je suis débutant en java........)
merci:chin_fine1985@hotmail.com
14 janv. 2009 à 20:34
Merci pour vos commentaires.
14 janv. 2009 à 20:31
13 janv. 2009 à 15:40
je trouve que votre code est hyper génial , simple et efficace , chapeau...
mais comme je suis débutante en JAVA , j'ai pas bien compris le fonctionnement de toutes les fonctions existantes , j'aimerais bien ( si tu peux bien sur) m'envoyer une explication complète sur la fonctions de chiffrement et de déchiffrement
tu peux aussi réaliser une interface pour permettre aux utilisateurs de faire entrer le mot a crypter ainsi qu'un affichage du texte crypté
Merci de me contacter sur l'adresse suivante : imeneannaba23@yahoo.fr