What algorithms were implemented in this code? Also include 20 outputs from code
ID: 3581088 • Letter: W
Question
What algorithms were implemented in this code?
Also include 20 outputs from code.
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
long int p, q, n, t, flag, e[100], d[100], temp[100], j, m[100], en[100], i;
char msg[100];
int prime(long int);
void ce();
long int cd(long int);
void encrypt();
void decrypt();
int prime(long int pr)
{
int i;
j = sqrt(pr);
for (i = 2; i <= j; i++)
{
if (pr % i == 0)
return 0;
}
return 1;
}
int main()
{
cout << " ENTER FIRST PRIME NUMBER ";
cin >> p;
flag = prime(p);
if (flag == 0)
{
cout << " WRONG INPUT ";
exit(1);
}
cout << " ENTER ANOTHER PRIME NUMBER ";
cin >> q;
flag = prime(q);
if (flag == 0 || p == q)
{
cout << " WRONG INPUT ";
exit(1);
}
cout << " ENTER MESSAGE ";
fflush(stdin);
cin >> msg;
for (i = 0; msg[i] != NULL; i++)
m[i] = msg[i];
n = p * q;
t = (p - 1) * (q - 1);
ce();
cout << " POSSIBLE VALUES OF e AND d ARE ";
for (i = 0; i < j - 1; i++)
cout << e[i] << " " << d[i] << " ";
encrypt();
decrypt();
return 0;
}
void ce()
{
int k;
k = 0;
for (i = 2; i < t; i++)
{
if (t % i == 0)
continue;
flag = prime(i);
if (flag == 1 && i != p && i != q)
{
e[k] = i;
flag = cd(e[k]);
if (flag > 0)
{
d[k] = flag;
k++;
}
if (k == 99)
break;
}
}
}
long int cd(long int x)
{
long int k = 1;
while (1)
{
k = k + t;
if (k % x == 0)
return (k / x);
}
}
void encrypt()
{
long int pt, ct, key = e[0], k, len;
i = 0;
len = strlen(msg);
while (i != len)
{
pt = m[i];
pt = pt - 96;
k = 1;
for (j = 0; j < key; j++)
{
k = k * pt;
k = k % n;
}
temp[i] = k;
ct = k + 96;
en[i] = ct;
i++;
}
en[i] = -1;
cout << " THE ENCRYPTED MESSAGE IS ";
for (i = 0; en[i] != -1; i++)
printf("%c", en[i]);
}
void decrypt()
{
long int pt, ct, key = d[0], k;
i = 0;
while (en[i] != -1)
{
ct = temp[i];
k = 1;
for (j = 0; j < key; j++)
{
k = k * ct;
k = k % n;
}
pt = k + 96;
m[i] = pt;
i++;
}
m[i] = -1;
cout << " THE DECRYPTED MESSAGE IS ";
for (i = 0; m[i] != -1; i++)
printf("%c", m[i]);
}
Explanation / Answer
In the given program RSA algorithm of cryptography were implemented.
20 outputs from code :
ENTER FIRST PRIME NUMBER
41
ENTER ANOTHER PRIME NUMBER
53
ENTER MESSAGE
hello
POSSIBLE VALUES OF e AND d ARE
3 1387
7 1783
11 1891
17 1713
19 219
23 1447
29 789
31 671
37 1293
43 387
47 1903
59 1939
61 341
67 683
71 791
73 57
79 79
83 827
89 1449
97 193
101 1421
103 727
THE ENCRYPTED MESSAGE IS
`
THE DECRYPTED MESSAGE IS
hello
-----------------------------------------------
ENTER FIRST PRIME NUMBER
59
ENTER ANOTHER PRIME NUMBER
61
ENTER MESSAGE
world
POSSIBLE VALUES OF e AND d ARE
7 2983
11 2531
13 2677
17 1433
19 1099
23 1967
31 3031
37 1693
41 2801
43 2347
47 1703
53 197
67 883
71 3431
73 3337
79 2599
83 587
89 3089
97 3193
101 3101
103 3007
107 683
THE ENCRYPTED MESSAGE IS
V!$
THE DECRYPTED MESSAGE IS
world
----------------------------------------
ENTER FIRST PRIME NUMBER
3
ENTER ANOTHER PRIME NUMBER
5
ENTER MESSAGE
w
POSSIBLE VALUES OF e AND d ARE
7 7
THE ENCRYPTED MESSAGE IS
b
THE DECRYPTED MESSAGE IS
h
------------------------------------------
ENTER FIRST PRIME NUMBER
7
ENTER ANOTHER PRIME NUMBER
9
WRONG INPUT
------------------------------------
ENTER FIRST PRIME NUMBER
4
WRONG INPUT
------------------------------------
ENTER FIRST PRIME NUMBER
5
ENTER ANOTHER PRIME NUMBER
5
WRONG INPUT
--------------------------------------
ENTER FIRST PRIME NUMBER
43
ENTER ANOTHER PRIME NUMBER
43
WRONG INPUT
-------------------------------------------
ENTER FIRST PRIME NUMBER
5
ENTER ANOTHER PRIME NUMBER
5
WRONG INPUT
--------------------------------------
ENTER FIRST PRIME NUMBER
0
ENTER ANOTHER PRIME NUMBER
1
ENTER MESSAGE
dd
POSSIBLE VALUES OF e AND d ARE
THE ENCRYPTED MESSAGE IS
aa
THE DECRYPTED MESSAGE IS
aa
---------------------------------------------
ENTER FIRST PRIME NUMBER
91
WRONG INPUT
--------------------------------------------
ENTER FIRST PRIME NUMBER
94
WRONG INPUT
--------------------------------------------
ENTER FIRST PRIME NUMBER
79
ENTER ANOTHER PRIME NUMBER
83
ENTER MESSAGE
coding
POSSIBLE VALUES OF e AND d ARE
5 5117
7 3655
11 1163
17 1505
19 3703
23 3059
29 1985
31 619
37 2593
43 595
47 4763
53 3017
59 2927
61 3565
67 5155
71 5315
73 5257
89 3737
97 5341
101 3293
103 4471
107 3467
THE ENCRYPTED MESSAGE IS
S(`
THE DECRYPTED MESSAGE IS
coding
----------------------------------------
ENTER FIRST PRIME NUMBER
79
ENTER ANOTHER PRIME NUMBER
83
ENTER MESSAGE
coding
POSSIBLE VALUES OF e AND d ARE
5 5117
7 3655
11 1163
17 1505
19 3703
23 3059
29 1985
31 619
37 2593
43 595
47 4763
53 3017
59 2927
61 3565
67 5155
71 5315
73 5257
89 3737
97 5341
101 3293
103 4471
107 3467
THE ENCRYPTED MESSAGE IS
S(`
THE DECRYPTED MESSAGE IS
coding
---------------------------------------
ENTER FIRST PRIME NUMBER
83
ENTER ANOTHER PRIME NUMBER
31
ENTER MESSAGE
why
POSSIBLE VALUES OF e AND d ARE
7 703
11 671
13 757
17 1013
19 259
23 107
29 509
37 133
43 1087
47 2303
53 557
59 959
61 121
67 2203
71 1871
73 337
79 1339
89 1769
97 913
101 341
103 1027
107 23
THE ENCRYPTED MESSAGE IS
u
THE DECRYPTED MESSAGE IS
why
----------------------------------------
ENTER FIRST PRIME NUMBER
13
ENTER ANOTHER PRIME NUMBER
17
ENTER MESSAGE
qw
POSSIBLE VALUES OF e AND d ARE
5 77
7 55
11 35
19 91
23 167
29 53
31 31
37 109
41 89
43 67
47 143
53 29
THE ENCRYPTED MESSAGE IS
THE DECRYPTED MESSAGE IS
qw
------------------------------------
ENTER FIRST PRIME NUMBER
13
ENTER ANOTHER PRIME NUMBER
17
ENTER MESSAGE
qr
POSSIBLE VALUES OF e AND d ARE
5 77
7 55
11 35
19 91
23 167
29 53
31 31
37 109
41 89
43 67
47 143
53 29
THE ENCRYPTED MESSAGE IS
THE DECRYPTED MESSAGE IS
qr
----------------------------------------
ENTER FIRST PRIME NUMBER
87
WRONG INPUT
---------------------------------------
ENTER FIRST PRIME NUMBER
84
WRONG INPUT
---------------------------------------
ENTER FIRST PRIME NUMBER
23
ENTER ANOTHER PRIME NUMBER
29
ENTER MESSAGE
qwerty
POSSIBLE VALUES OF e AND d ARE
3 411
5 493
13 237
17 145
19 227
31 159
37 333
41 601
43 43
47 367
53 93
59 355
61 101
67 331
71 295
73 481
79 39
83 475
89 353
97 489
101 61
103 311
THE ENCRYPTED MESSAGE IS
TP|
THE DECRYPTED MESSAGE IS
qwerty
----------------------------------
ENTER FIRST PRIME NUMBER
555555555555
WRONG INPUT
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.