Programma criptazione

di il
4 risposte

Programma criptazione

Buonasera io stavo provando a sviluppare un programma in c che criptasse un messaggio con il metodo RSA...solamente che dopo aver inserito il numero e inizia a calcolare e va in loop (nel punto con while (r=1)) e vorrei sapere qual'è l'errore.Grazie.
Ecco il programma:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char*argv[])
{
int p,q,n,d,e,z,i,c,x,r,y;
char vet[10];
printf("Inserire il messaggio di 10 caratteri\n");
for(i=0;i<10;i++)
{
scanf("%c", &vet);
}

do
{
printf("Inserire i numeri primi positivi p e q\n");
scanf("%d%d", &p, &q);
}
while(p<=0 && q<=0);
n=p*q;
z=(p-1)*(q-1);
printf("Inserire un esponente pubblico tale che esso sia minore di %d e tale che il MCD tra e ed %d sia 1\n", n, z);
scanf("%d", &e);
i=0;
while(r=1)
{
i++;
d=i;
y=(e*d);
r=y%z;
}
printf("n e' %d\n", n);
printf("L'esponente privato e' %d\n", d);
printf("Chiave pubblica (%d,%d)\n", n, e);
printf("Chiave privata (%d,%d)\n", n, d);
printf("\n");
printf("Ecco il messaggio cifrato:\n\n", c);
for(i=0;i=10;i++)
{
c=(vet^e)+z;
printf("%d-", c);
}



printf("\n");
system("PAUSE");
return 0;
}

4 Risposte

  • Re: Programma criptazione

    È proprio l' = l'errore
  • Re: Programma criptazione

    Distinto giudice
    mi oppongo alla sentenza in quanto il vero colpevole E'
    while(p<=0 && q<=0);
    in quanto sono valori di input che non vengono modificati lasciando sempre vera la condizione del while su citato.
    per quanto riguarda il mio cliente
    while(r=1)
    lo dobbiamo scaggionare perchè non viene mai eseguito!
    in quanto r prima di entrare nella while incriminata non è mai = 1! di conseguenza il ciclo non viene eseguito.
    tuttalpiù lo possiamo "incriminare" per sfaticatezza o perchè dorme sul lavoro!
    ma questa è un altra storia.
    spero che ti sia stato d'aiuto e che ti sei divertito a leggere la risposta.
  • Re: Programma criptazione

    A parte il fatto che di un avvocato che scrive "scaggionare" non mi fiderei molto (probabilmente è un azzeccagarbugli...), quel do...while con p e q
    
    do
    {
       printf("Inserire i numeri primi positivi p e q\n");
       scanf("%d%d", &p, &q);
    } while(p<=0 && q<=0);
    
    anche se non del tutto corretto, comunque, con due valori positivi di p e q non va affatto in loop. I valori vengono modificati, eccome, con la scanf, quindi non si sa a che cosa ti riferisci ...

    Per la while r, non hai neanche notato che è scritto r=1 (con un solo segno = e non con ==) e quindi entra nel ciclo e non esce mai.

    Una ulteriore attenzione la porrei all'operatore ^ utilizzato come in BASIC ... ma in C significa altro ...

    Comunque, la carriera di avvocato 'informatico' non mi pare faccia per te ...
  • Re: Programma criptazione

    Grazie dell'aiuto!
    Tutte le sante volte che faccio programmi quando danno errori passo anche ore intere a riguardarli ma non trovo mai questi errorini del cavolo!!
Devi accedere o registrarti per scrivere nel forum
4 risposte