begin process at 2010 03 16 12:49:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

 > DETERMINATION DE CLÉ RSA

DETERMINATION DE CLÉ RSA


 Information sur la source

Note :
Aucune note
Catégorie :Sécurité & Cryptage Classé sous :clé, rsa, cryptage, clef, clépublique Niveau :Initié Date de création :23/02/2003 Date de mise à jour :23/02/2003 10:43:31 Vu :4 689

Auteur : Sensei01

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

ce code permet de déterminer des valeurs de N ainsi que des clefs publiques et privées adaptées.
vous pouvez utiliser ce code afin d'obtenir des clefs pour l'autre source que j'ai mis sur ce site :
cryptage a clé publique

Source

  • #include <iostream.h>
  • #include <stdlib.h>
  • #include <stdio.h>
  • #include <math.h>
  • int verif_premier (unsigned long int data);
  • void main()
  • {
  • int i=1,a=1,b=1,c=1,k=0;
  • unsigned long int n,nb1,nb2,nb3,ea,da,phin,tmp2;
  • double tmp1;
  • while(a==1)
  • {
  • printf("\ntaper un premier nombre premier :");
  • scanf("%ld",&nb1);
  • a=verif_premier(nb1);
  • }
  • while(b==1)
  • {
  • printf("\ntaper un deuxieme nombre premier :");
  • scanf("%ld",&nb2);
  • b=verif_premier(nb2);
  • }
  • while(c==1)
  • {
  • printf("\ntaper un troixieme nombre premier :");
  • scanf("%ld",&nb3);
  • c=verif_premier(nb3);
  • }
  • n = nb1*nb2*nb3;
  • phin = (nb1-1)*(nb2-1)*(nb3-1);
  • printf("\nphin est : %ld",phin);
  • printf("\n\ntaper EA premier avec phin:");
  • while(i==1)
  • {
  • scanf("%ld",&ea);
  • if(phin % ea == 0)
  • {i=1;printf("\nEA n'est pas premier avec phin, tapez un autre ea :");}
  • else {i=0;}
  • }
  • for(k=1;k<phin;k++)
  • {
  • tmp1 = ((1+(k*phin*1.0))/ea) ;
  • tmp2 = (unsigned long int) tmp1;
  • if ((tmp1-tmp2)==0)
  • {break;}
  • }
  • da = tmp2;
  • //printf("\nN est : %ld, phin est : %ld, Ea est : %ld, Da est : %ld, k est : %d \n\n",n,phin,ea,da,k);
  • printf("\n N est : %ld, Ea est : %ld, Da est : %ld\n\n",n,ea,da);
  • system("PAUSE");
  • }
  • int verif_premier (unsigned long int data)
  • {
  • double tmp;
  • unsigned long int tmp2;
  • int val;
  • for(int j=2;j<data;j++)
  • {
  • tmp = ((data*1.0)/j);
  • tmp2 = (unsigned long int) tmp;
  • if ((tmp-tmp2)==0)
  • {
  • val=1;
  • printf("ce nombre n'est pas premier!");
  • break;
  • }
  • else {val=0;}
  • }
  • return (val);
  • }
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

int verif_premier (unsigned long int data);

void main()
    {
    int i=1,a=1,b=1,c=1,k=0;
    unsigned long int n,nb1,nb2,nb3,ea,da,phin,tmp2;
    double tmp1;
    while(a==1)
               {
               printf("\ntaper un premier nombre premier :");
               scanf("%ld",&nb1);
               a=verif_premier(nb1);
               }
    while(b==1)
               {
               printf("\ntaper un deuxieme nombre premier :");
               scanf("%ld",&nb2);
               b=verif_premier(nb2);
               }
    while(c==1)
               {
               printf("\ntaper un troixieme nombre premier :");
               scanf("%ld",&nb3);
               c=verif_premier(nb3);
               }
    n = nb1*nb2*nb3;
    phin = (nb1-1)*(nb2-1)*(nb3-1);
    printf("\nphin est : %ld",phin);
    printf("\n\ntaper EA premier avec phin:");
    while(i==1)
               {
               scanf("%ld",&ea);
               if(phin % ea == 0)
                      {i=1;printf("\nEA n'est pas premier avec phin, tapez un autre ea :");}
               else   {i=0;}
               }
    for(k=1;k<phin;k++)
               {
               tmp1 = ((1+(k*phin*1.0))/ea) ;
               tmp2 = (unsigned long int) tmp1;
               if ((tmp1-tmp2)==0)
                  {break;}
               }
    da = tmp2;
    //printf("\nN est : %ld, phin est : %ld, Ea est : %ld, Da est : %ld, k est : %d  \n\n",n,phin,ea,da,k);
    printf("\n N est : %ld, Ea est : %ld, Da est : %ld\n\n",n,ea,da);
    system("PAUSE");

    }

int verif_premier (unsigned long int data)
    {
    double tmp;
    unsigned long int tmp2;
    int val;
    for(int j=2;j<data;j++)
            {
            tmp = ((data*1.0)/j);
            tmp2 = (unsigned long int) tmp;
            if ((tmp-tmp2)==0)
               {
               val=1;
               printf("ce nombre n'est pas premier!");
               break;
               }
            else {val=0;}
            }
    return (val);
    }



 Sources du même auteur

CRYPTAGE A CLÉ PUBLIQUE

 Sources de la même categorie

Source avec Zip Source avec une capture CRYPTEUR-DÉCRYPTEUR-IP par antho974
Source avec Zip Source avec une capture ELGAMALCIPHER par CHAR As Human
Source avec Zip CRYPTER-DECRYPTER EN UTILISANT L'ALGORITHME DE CESAR par Antoinejdu44
Source avec Zip CRYPT-O-MATIC "DARKCHOCOLATE" par FrancoisGauthier
Source avec Zip CREEP SECURITY ALGORITHM par nanonavich

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture AUTO DESTRUCTION EXE par f_l_a_s_h_b_a_c_k
Source avec Zip CRYPTAGE/DÉCRYPTAGE/CASSAGE DE CLÉ VIGENÈRE par psyckachu
Source avec Zip Source avec une capture SECUREVAULT : APPLICATION POUR CRYPTER VOS FICHIERS AVEC AES... par steelbox
Source avec Zip Source avec une capture CRYPTAGE DE FICHIER EN XOR, INTERFACE WIN32 (DEV-CPP) par neoreturn
Source avec Zip TABLE DE HASHAGE [TS ENVTS] par magic_Nono

Commentaires et avis

Commentaire de kjus le 23/02/2003 22:01:40

salut,
Juste quelques conseils pour améliorer le code :
-Pour tester la primalité de ton nombre (data), il suffit de tester les division de 2 à racine de data inclus. (#include &lt;math.h&gt;, sqrt(data) );
- je vois que pour convertir data en float, tu multiplies par 1.0. tu peux faire static_cast&lt;float&gt; (data) pour la convertir en float le temps de la division.
- Au lieu de diviser en float, puis de reconvertir en long, il vaut mieux faire le test :
if (data % j ==0) {
val=1;
printf("..");
break;
}
- En C++, utiliser le type bool (false ou true) rend le prgm plus clair (je pense pour la valeur de retour de verif_premier).
raph
  

Commentaire de tavernier le 24/02/2003 12:28:59

pour tester la primalité.
Ton code regarde tout d'abord s'il est divisible par deux (donc s'il est pair). Si la boucle continue, c'est qu'il ne l'est pas, donc il ne peut etre divisible par aucun nombre pair (tu testes pourtant tous les nombes inférieurs a data).
Personnellement à la place de j++, je mettrais j==2?j++:j+=2;

Voila
julien

Commentaire de Sensei01 le 24/02/2003 18:36:46

c vrai, ce code n'est pas idéal, mais je l'ai tapé en vitesse car j'en avais besoin.
....

Commentaire de coucou747 le 04/07/2004 19:31:02

pour la boucle de 2 a la racine carrée, vous n'avez pas besoin de la librairie math.h
de 2 a racine de b
for (a=2, a*a&lt;b+1; a++){
    if (b%a==0){
      nombre qui n'est pas premier
   }
}

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Le cryptage par MD5 de RSA [ par LSRS ] Salut tout le monde...J'ai un très grand problème avec l'algorithme de hachage MD5 qui réprésente le squelette de mon stage d'été... Je n'arrive pas à cryptage RSA [ par moicmoi ] Bon je me doute que je vais passer pour un boulet mais j'aurai besoin avant jeudi d'un code source du cryptage RSA en LANGAGE C. Mais un code tout si Cryptage RSA [ par ritchie00 ] Salut,Qqun saurait où je peux trouver une API C++ de chiffrement/dechiffrement RSA, qui marcherait avec des certificats et des tailles de clés paramét nombre de bits pour un cryptage RSA [ par vodkapomme43 ] Bonjour,J'ai juste une petite question: &#224; partir de combien de bits peut-on dire que le cryptage RSA est assez s&#251;r (pas cassable facilement) CRyptage RSA 2048 [ par clem0338 ] Bonjour, j'ai lu dans le forum et dans les sources qu'il existe une librairie pour les des calcules sur des "grand nombre" (GMP, PARI, ...) j'aimerais cryptage avec 3 clefs [ par logant83 ] Bonjour; voila enfaite j'aimerai savoir si vous savez comment je pourrai faire pour crypter une chaine de caractère avec une base 64 mais crypter cett Longueur clé cryptage et longueur mot de passe [ par daniel50171 ] Bonsoir à tous,J'ai lu la réponse de Alexander à un internaute qui soutenait, que selon son prof d'informatique, un mot de passe crypté en AES 128 bit cryptage a clé symétrique (DES, AES ou bien triples DES .. etc) [ par aefmaaradji ] Bonjour,je veut savoir si il existe des application dans le C++/CLI .net qui fait le cryptage a clé symétrique ou bien si vous avez une information su Clef d'activation [ par Gadji ] Bonjour, J'aimerai limiter l'utilisation de mon programme à une personne par clé mais je ne sais pas comment faire.En fait, une clef serait associé à [CS]Correction d'un titre de thème du forum. [ par CptPingu ] Bonjour. L'un des thèmes du forum est nommé: [i]"Compression, Split & Cryptage"[/i]. Je ne sais pas si je suis le premier à être choqué par cette app


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales