Je cherche un programme de cryptage RSA

ficam1 -  
nabil_joeseph Messages postés 9 Statut Membre -
salut
j ai besoin d un progaramme (c/c++)de cryptage et decryptage qui utilise la methode RSA et je vous en serai tres reconnaissant si la clé est codée sur 128bits et merci bp

14 réponses

  1. karim1506
     
    bonjour,package myrsa;
    import java.io.*;
    import java.math.*;
    import javax.crypto.*;
    import java.security.*;
    import java.security.spec.*;
    import java.security.interfaces.*;
    import java.math.BigInteger;

    /**
    * Cette classe propose des méthodes permettant de crypter et décrypter des
    * messages avec l'algorithme RSA. Le message doit cependant être plus petit
    * que KEY_SIZE.
    */

    /**
    *
    * @author kerim
    */
    public class MyRsa {public final static int KEY_SIZE = 1024; // [512..2048]

    private RSAPublicKey publicKey;
    private RSAPrivateKey privateKey;

    public MyRsa() {
    }

    public RSAPublicKey getPublicKey() {
    return publicKey;
    }

    public byte[] getPublicKeyInBytes() {
    return publicKey.getEncoded();
    }

    public RSAPrivateKey getPrivateKey() {
    return privateKey;
    }

    public byte[] getPrivateKeyInBytes() {
    return privateKey.getEncoded();
    }

    public void setPublicKey(RSAPublicKey publicKey) {
    this.publicKey = publicKey;
    }

    public void setPublicKey(byte[] publicKeyData) {
    try {
    X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKeyData);
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    publicKey = (RSAPublicKey)keyFactory.generatePublic(publicKeySpec);
    }
    catch (Exception e) {System.out.println(e);}
    }

    public void setPrivateKey(RSAPrivateKey privateKey) {
    this.privateKey = privateKey;
    }

    public void setPrivateKey(byte[] privateKeyData) {
    try {
    PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyData);
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    privateKey = (RSAPrivateKey)keyFactory.generatePrivate(privateKeySpec);
    }
    catch (Exception e) {System.out.println(e);}
    }

    public void generateKeyPair() {
    try {
    KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
    keyPairGen.initialize(KEY_SIZE, new SecureRandom());
    KeyPair kp = keyPairGen.generateKeyPair();
    publicKey = (RSAPublicKey)kp.getPublic();
    privateKey = (RSAPrivateKey)kp.getPrivate();

    }
    catch (Exception e) {System.out.println(e);}
    }

    public byte[] crypt(byte[] plaintext) {
    return crypt(new BigInteger(addOneByte(plaintext))).toByteArray();

    }

    public byte[] crypt(String plaintext) {
    return crypt(plaintext.getBytes());
    }

    public byte[] decryptInBytes(byte[] ciphertext) {
    return removeOneByte(decrypt(new BigInteger(ciphertext)).toByteArray());
    }

    public String decryptInString(byte[] ciphertext) {
    return new String(decryptInBytes(ciphertext));
    }

    /**
    * Cette méthode permet de tester le bon fonctionnement des autres.
    */
    public static void main(String[] args) {
    String plaintext = "issam";
    System.out.println("plaintext = " + plaintext);
    MyRsa rsa = new MyRsa();
    rsa.generateKeyPair();

    byte[] publicKey = rsa.getPublicKeyInBytes();
    byte[] privateKey = rsa.getPrivateKeyInBytes();

    byte[] ciphertext = rsa.crypt(plaintext);

    System.out.println("ciphertext = " + new BigInteger(ciphertext));

    // rsa.setPublicKey(publicKey);
    // rsa.setPrivateKey(privateKey);
    String plaintext2 = rsa.decryptInString(ciphertext);
    System.out.println("plaintext2 = " + plaintext2);
    if (!plaintext2.equals(plaintext)) System.out.println("Error: plaintext2 != plaintext");
    }

    private BigInteger crypt(BigInteger plaintext) {
    return plaintext.modPow(publicKey.getPublicExponent(), publicKey.getModulus());
    }

    private BigInteger decrypt(BigInteger ciphertext) {
    return ciphertext.modPow(privateKey.getPrivateExponent(), privateKey.getModulus());
    }

    /**
    * Ajoute un byte de valeur 1 au début du message afin d'éviter que ce dernier
    * ne corresponde pas à un nombre négatif lorsqu'il sera transformé en
    * BigInteger.
    */
    private static byte[] addOneByte(byte[] input) {
    byte[] result = new byte[input.length+1];
    result[0] = 1;
    for (int i = 0; i < input.length; i++) {
    result[i+1] = input[i];
    }
    return result;
    }

    /**
    * Retire le byte ajouté par la méthode addOneByte.
    */
    private static byte[] removeOneByte(byte[] input) {
    byte[] result = new byte[input.length-1];
    for (int i = 0; i < result.length; i++) {
    result[i] = input[i+1];
    }
    return result;
    }}
    11
    1. hamza_bba
       
      salut karim

      merci beacoup pour votre programme qui ça marche trés bien

      just pouvez vous m'envoyer qlq commentre sur votre programme pour je puisse compendre comment ça marche

      bonne journée
      0
    2. Davidlouiz Messages postés 3 Statut Membre 1
       
      Tu peux utiliser la bibliothèque RSA en C++, tout simplement.
      0
    3. riadh
       
      comment lire le contenue du fichier texte"texte crypte"et l'afficher dans un texte box puis l'include dans un image,enfin faire l'extraction du texte crypte(mel image).
      0
    4. ckhem
       
      Bonjour,
      je veux implémenter une attaque sur RSA, et je n sais comme le faire.
      est ce que tu peux m'aider.
      Merci
      0
    5. nabil_joeseph Messages postés 9 Statut Membre
       
      mais ta pas citer comment ton generateur de clés RSA fonctionne
      0
  2. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Hello.

    Je pense que tu trouvera ce qu'il te faut dans la librairie OpenSSL.
    Les sources sont disponibles et elle contient l'algo RSA.

    http://www.openssl.org/
    2
  3. sylvain
     
    Je cbherche un programme de cryptage et de décryptage RSA en langage java
    2
  4. lamiah
     
    salut
    moi aussi je travail sur le RSA , j ai programmer algoritme mais je trove toujour des difficulter pour le decryptage , defois il crypte tres bien defois non , je ne sais pas ou est il le probleme
    SVP aider moi
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lamiah
     
    salut
    moi aussi je cherche le meme programme , bon j'ai programmaer l'algorithme RSA en c++ , mais il ne decrypte pas correctement (defois)
    SVP aider moi
    1
    1. Nora
       
      salut,

      en quoi souhaites-tu l'implémenté ? j'en ai un en C sur NT mais il faut savoir qu'il est très nul également... au fait c'est celui du site en mieux.
      0
  7. mitzic Messages postés 6 Statut Membre 2
     
    salut
    je travaille actuellement sur le cryptage par rsa.
    Je suis proche de le réaliser.
    dans deux ou trois jours je le méttrai en ligne.
    c'est un code en c.
    bon courage
    1
    1. ced
       
      Salut,
      Je cherche moi aussi a décrypter du texte (j'ai la clef privée sur 2048 bits, mot de passe et clef publique avec un algo RSA), mais je n'arrive pas a trouver un utilitaire sympa pour faire ça simplement.
      T'as pu finir ton progr en C? si oui, t'es prets partager les sources et l'exe?

      Je sais que le post date un peu, mais un petit coup de main serait bienvenue
      Merci,
      Ced.
      0
    2. i.techk
       
      salut je cherche une librairie ou solution Java gratuite pour crypter en RSA
      j'ai vu ton post d'il y a quelques années sur commentcamarche, je me permet de te contacter pour te demander de l'aide ou des conseils

      je sais que t'avais fait le programme en C mais merci d'avance pour toute aide
      0
  8. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Dis moi il m'intéresse ton programme rsa, mais je voulais savoir comment tu as fait pour générer des grands nombres premiers et quelle biblio tu as utilisé pour les gérer. Si tu le mets éffectivement en ligne, bah si tu peux dire ou ce serait sympa : )
    1
    1. baresi
       
      je cherche un programme en language C qui realise le RSA
      et la signature
      merci
      0
  9. asmai Messages postés 1 Statut Membre 1
     
    salut
    j ai besoin d un progaramme (c ou bien java)de cryptage et decryptage avec l'algorithme RSA pour completer mon projet de fin d'etude.
    et merci...
    1
  10. simson56
     
    salut a tous
    il ya un bon tuto sur ca c'est sur http://www.siteduzero.com/tutoriel-3-2170-la-cryptographie-asymetrique-rsa.html
    1
  11. ahmed
     
    svp ,je cherche un programme de cryptage RSA en java
    1
    1. hicham bouras
       
      Je cherche une application de cryptage et de décryptage RSA en langage java
      0
    2. Saah
       
      Je cherche une application de cryptage qui converti une lettre en chiffre compliqué.... en langage c++
      0
  12. ckhem
     
    Salut à tous,

    je cherche à implémenter des attaques sur RSA, est ce que quelqu'un à déjà réaliser ça.

    Merci
    1
  13. hannougr Messages postés 18 Statut Membre 1
     
    salut ;

    supposons qu'on veux crypter/decrypter un fichier!!! comment on procéde dans ce cas?
    quelles sont les modifications à faire dans le prog MyRSA proposé ci dessus?

    merci
    1
  14. sarrita
     
    merci
    je vous 1 programme de cryptage de un fichier basé sur la chiffrement par décalage merci et je veux la réponse plus vite stp
    0
    1. pacorabanix
       
      Bonjour, votre message est hors sujet, et peu respectueux, veuillez lire la charte svp avant de poster.
      bonne soirée
      0