-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEl Gamal dan Hillman.py
117 lines (117 loc) · 2.06 KB
/
El Gamal dan Hillman.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#no. 1
print("1.")
g=4
n=7
x=3
y=4
A=((g**x) % n)
B=((g**y) % n)
K=((B**x) % n)
Ka=((A**y) % n)
print("Hasil perhitungan no. 1 : ")
print("A = " + str(A))
print("B = " + str(B))
print("K = " + str(K))
print("K' = " + str(Ka))
if K == Ka :
print("Enkripsi dan Dekripsi Berhasil")
else :
print("Enkripsi dan Dekripsi Gagal")
print("")
#no. 2
print("2.")
g=653
n=5471
x=9
y=11
A=((g**x) % n)
B=((g**y) % n)
K=((B**x) % n)
Ka=((A**y) % n)
print("Hasil perhitungan no. 2 : ")
print("A = " + str(A))
print("B = " + str(B))
print("K = " + str(K))
print("K' = " + str(Ka))
if K == Ka :
print("Enkripsi dan Dekripsi Berhasil")
else :
print("Enkripsi dan Dekripsi Gagal")
print("")
#no. 3
print("3.")
#enkripsi
p=11
g=2
x=8
me=5
k=9
a=((g**k) % p)
y=((g**x) % p)
b=(((y**k)*me) % p)
#dekripsi
c=[a,b]
m=((c[1]*(c[0]**(p-1-x))) % p)
#hasil perhitungan
print("Hasil perhitungan no. 3 : ")
print("a = " + str(a))
print("b = " + str(b))
print("y = " + str(y))
print("c = " + str(c))
print("m = " + str(m))
if m == me :
print("Enkripsi dan Dekripsi Berhasil")
else :
print("Enkripsi dan Dekripsi Gagal")
print("")
#no. 4
print("4.")
#enkripsi
p=397
g=1
x=140
me=181
k=45
a=((g**k) % p)
y=((g**x) % p)
b=(((y**k)*me) % p)
#dekripsi
c=[a,b]
m=((c[1]*(c[0]**(p-1-x))) % p)
#hasil perhitungan
print("Hasil perhitungan no. 4 : ")
print("a = " + str(a))
print("b = " + str(b))
print("y = " + str(y))
print("c = " + str(c))
print("m = " + str(m))
if m == me :
print("Enkripsi dan Dekripsi Berhasil")
else :
print("Enkripsi dan Dekripsi Gagal")
print("")
#no. 4
print("5.")
#enkripsi
p=557
g=300
x=34
me=103
k=206
a=((g**k) % p)
y=((g**x) % p)
b=(((y**k)*me) % p)
#dekripsi
c=[a,b]
m=((c[1]*(c[0]**(p-1-x))) % p)
#hasil perhitungan
print("Hasil perhitungan no. 5 : ")
print("a = " + str(a))
print("b = " + str(b))
print("y = " + str(y))
print("c = " + str(c))
print("m = " + str(m))
if m == me :
print("Enkripsi dan Dekripsi Berhasil")
else :
print("Enkripsi dan Dekripsi Gagal")