5. char cp[50],cg[50];
printf("enter the frame string");
gets(cp);
printf("enter the gerearator");
gets(cg);
for(i=0;i<strlen(cg)-1;i++)
strcat(cp,"0");
for(i=0;i<strlen(cp);i++)
p[i]=cp[i]-'0';
for(i=0;i<strlen(cg);i++)
g[i]=cg[i]-'0';
printf("n");
i=0;
while(1)
{
j=0;
while(p[j]!=1)
j++;
if(j>=strlen(cp)-(strlen(cg)-1))
break;
k=0;
for(i=j;i<j+strlen(cg);i++,k++)
p[i]=p[i]^g[k];
}
i=0;
for(i=0;i<strlen(cp);i++)
if(p[i]!=0)
break;
if(i==strlen(cp))
{
printf("n no error n data received is: ");
for(i=0;i<strlen(cp)-(strlen(cg)-1);i++)
printf("%d",cp[i]-'0');
6. }
else
printf("error has occured ");
return 0;
}
5)RSA key generation:
Program:
#include<stdio.h>
int prime(int n);
int gcd(int a,int b);
int main()
{
int p,q,j,i,n,eq,e,d,m1,m2;
int c,c1;
printf("enter two prime numbers");
scanf("%d%d",&p,&q);
if(prime(p)||prime(q))
{
printf("numbers are not prime");
}
else
{
n=p*q;
eq=(p-1)*(q-1);
printf("euler values are");
for(i=2;i<eq;i++)
if(gcd(eq,i)==1)
printf("%d,",i);
printf("choose e value");
scanf("%d",&e);
for(i=0;i<eq;i++)
{
d=((i*eq)+1)%e;
7. if(d==0)
{
d=((i*eq)+1)/e;
break;
}
}
printf("d is :%d",d);
printf("public key is {%d,%d}",e,n);
printf("public key is {%d,%d}",d,n);
}
return 0;
}
int gcd(int a,int b)
{
if(b!=0)
return gcd(b,a%b);
else return a;
}
int prime(int n)
{
int i,x=0;
for(i=2;i<n;i++)
{
if(n%i==0)
x++;
}
if(x==0)
return 0;
else return 1;
}
6)RSA encryption:
#include<stdio.h>
8. #include<math.h>
int prime(int n);
int gcd(int a,int b);
int main()
{
int p,q,j,i,n,eq,e,d,m1,m2;
int c,c1;
printf("enter two prime numbers");
scanf("%d%d",&p,&q);
if(prime(p)||prime(q))
{
printf("numbers are not prime");
}
else
{
n=p*q;
eq=(p-1)*(q-1);
printf("euler values are");
for(i=2;i<eq;i++)
if(gcd(eq,i)==1)
printf("%d,",i);
printf("choose e value");
scanf("%d",&e);
for(i=0;i<eq;i++)
{
d=((i*eq)+1)%e;
if(d==0)
{
d=((i*eq)+1)/e;
break;
}
}
printf("d is :%d",d);
printf("public key is {%d,%d}",e,n);
9. printf("public key is {%d,%d}",d,n);
printf("enter the plain text");
scanf("%d",&m1);
c=fmod((pow(m1,e)),n);
printf("cipher text is %d",c);
}
return 0;
}
int gcd(int a,int b)
{
if(b!=0)
return gcd(b,a%b);
else return a;
}
int prime(int n)
{
int i,x=0;
for(i=2;i<n;i++)
{
if(n%i==0)
x++;
}
if(x==0)
return 0;
else return 1;
}
7)hirerchical:
Porgram:
#include<stdio.h>
#include<string.h>
struct full
{
char line[10],dest[10];
int hops;
10. }f[20];
int main()
{
int nv,min,minver,i,no;
char sv[2],temp;
printf("enter no of vertices");
scanf("%d",&no);
printf("enter source vertex");
scanf("%s",sv);
printf("Enter full table for source vertex %s",sv);
for(i=0;i<no;i++)
scanf("%s%s%d",f[i].dest,f[i].line,&f[i].hops);
printf("n HIERARCHICAL TABLE n");
for(i=0;i<no;)
{
if(sv[0]==f[i].dest[0])
{
printf("n%s%s%d",f[i].dest,f[i].line,f[i].hops);
i++;
}
else
{
temp=f[i].dest[0];
min=1000;
minver=0;
while(temp==f[i].dest[0])
{
if(min>f[i].hops)
{
min=f[i].hops;
minver=i;
}
11. i++;
}
printf("n %c%s%d",temp,f[minver].line,f[minver].hops);
}
}
return 0;
}
8)Distance Vector routing algorithm
Program:
#include<stdio.h>
#include<string.h>
void main()
{
int mat[10][10];
int n=8,sour,dest,small=1000,vnod[10]={1};
int v=0,count=0,visit=0,i,j,k;
printf("enter no of nodes");
scanf("%d",&n);
printf("enter the distances");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&mat[i][j]);
}
}
printf("enterc distance");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("enter source mode");
scanf("%d",&sour);
vnod[v++]=sour;