RSA C Program
Category: Practical Files
Subject: Information Security
// C program for RSA asymmetric cryptographic
// algorithm. For demonstration values are
// relatively small compared to practical
// application
#include<stdio.h>
#include<math.h>
// Returns gcd of a and b
int gcd(int a, int h)
{
int temp;
while (1)
{
temp = a%h;
if (temp == 0)
return h;
a = h;
h = temp;
}
}
// Code to demonstrate RSA algorithm
int main()
{
// Two random prime numbers
double p = 3;
double q = 7;
// First part of public key:
double n = p*q;
// Finding other part of public key.
// e stands for encrypt
double e = 2;
double phi = (p-1)*(q-1);
while (e < phi)
{
// e must be co-prime to phi and
// smaller than phi.
if (gcd(e, phi)==1)
break;
else
e++;
}
// Private key (d stands for decrypt)
// choosing d such that it satisfies
// d*e = 1 + k * totient
int k = 2; // A constant value
double d = (1 + (k*phi))/e;
// Message to be encrypted
double msg = 20;
printf("Message data = %lf", msg);
// Encryption c = (msg ^ e) % n
double c = pow(msg, e);
c = fmod(c, n);
printf("\nEncrypted data = %lf", c);
// Decryption m = (c ^ d) % n
double m = pow(c, d);
m = fmod(m, n);
printf("\nOriginal Message Sent = %lf", m);
return 0;
}
Last Updated: June 19, 2019
Related
Advance Control System Unit 2
Category: NotesJuly 17, 2022
C program for drawing a Circle using Midpoint Circle Algorithm - CGMT
Category: Practical FilesJuly 16, 2022
EHVACDC unit 4
Category: NotesJuly 17, 2022
Stld notes
Category: NotesJuly 16, 2022
BBA Business Ethics and CSR Notes Unit 4
Category: NotesJuly 17, 2022
CN Computer Networks Formatted Practical File
Category: Practical FilesJuly 16, 2022
Communication System Lab File (Hand Written)
Category: Practical FilesJuly 16, 2022
Analog electronics (1and2)
Category: NotesJuly 17, 2022
IPU Project Management Notes Unit 2 PDF
Category: NotesJuly 17, 2022
Bresenham Circle Drawing Program in C
Category: Practical FilesJuly 16, 2022