Determination de clé rsa

Contenu du snippet

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 / Exemple :


#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);
    }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (Sensei01)