You are on page 1of 3

#include<stdio.

h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int p,j,q,d,n,z,i,s,m1,e,b,x[30];
unsigned long int m;
long long int l1,l5,c[30];
double l2,l6;
float l;
char p1[30],k1;
int td;
//cleardev();
printf("enter two prime numbers:");
scanf("%d%d",&p,&q);
n=p*q;
z=(p-1)*(q-1);
printf("enter value of e:\n");
scanf("%d",&e);
for(j=1;j<=z;j++)
{
td=((e*j)-1)%z;
if(td==0)
{
d=j;
break;
}
}
printf("\n n=%d z=%d e=%d d=%d",n,z,e,d);
//
getchar();
printf("\nencryption");
printf("\nenter plain text");
scanf("%s",&p1);
for(i=0;i<strlen(p1);i++)
{
b=(int)p1[i];
if(b>65)
{
s=p1[i]-96;
x[i]=1;
}
else

//

s=p1[i]-64;
x[i]=0;
}
printf("%d--",s);
l1=pow(s,e);
printf("%ld--",l1);
c[i]=(l1%n);
printf("%ld\n",c[i]);
}
printf("\n decryption\n");
for(i=0;i<strlen(p1);i++)
{
printf("%ld--",c[i]);
l2=pow(c[i],d);
l5=l2/n;
l6=l5*n;
m=(long int)(l2-l6);
m1=(int)m;
printf("%ld--",m1);
printf("%d--",m1);
if(x[i]==1)
k1=m1+96;
else
k1=m1+64;
printf("%c\n",k1);
}
getchar();
}

OUTPUT:
enter two prime numbers:3
11
enter value of e:
3
n=33 z=20 e=3 d=7
encryption
enter plain text
hello
8--512--17
5--125--26
12--1728--12
12--1728--12
15--3375--9
decryption
17--8--8--h
26--5--5--e
12--12--12--l
12--12--12--l
9--15--15--o

You might also like