# 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:

**Notes**July 17, 2022#### C program for drawing a Circle using Midpoint Circle Algorithm - CGMT

Category:

**Practical Files**July 16, 2022#### EHVACDC unit 4

Category:

**Notes**July 17, 2022#### Stld notes

Category:

**Notes**July 16, 2022#### BBA Business Ethics and CSR Notes Unit 4

Category:

**Notes**July 17, 2022#### CN Computer Networks Formatted Practical File

Category:

**Practical Files**July 16, 2022#### Communication System Lab File (Hand Written)

Category:

**Practical Files**July 16, 2022#### Analog electronics (1and2)

Category:

**Notes**July 17, 2022#### IPU Project Management Notes Unit 2 PDF

Category:

**Notes**July 17, 2022#### Bresenham Circle Drawing Program in C

Category:

**Practical Files**July 16, 2022