Inhal Praktikum Kriptografi 2022 #1

Page 1

HAMI ZANHI BATULLAH NI M. 1 90001 801 5

PROGRAM STUDII NFORMATI KA FAKUL TASTEKNOLOGII NDUSTRI UNI VERSI TASAHMADDAHLAN TAHUN2022




Nama NIM Praktikum Kriptografi

: Hamizan Hibatullah : 1900018015 : Kamis, 13.50

KEGIATAN PRAKTIKUM 2

2.6 LANGKAH PRAKTIKUM Aturan Penilaian (Total Skor: 100): No CPL CPMK Pertanyaan 1. CPL-03 CPMK-01 Selesaikan Langkah praktikum 1–9

Dokumen Pendukung Skor Hasil praktikum Langkah 1-9

Algoritma Vigenere Chipper Fungsi Enkripsi Begin Function encryption(string t) for i = 0, j = 0 to t.length() - 1 char c = t[i] if (c >= 'a' and c <= 'z') c = c + 'A' - 'a' else if (c < 'A' or c > 'Z') continue output = output + (c + k[j] ) % 26 + 'A' j = (j + 1) % k.length() return output End Fungsi Dekripsi Begin Function decryption(string t) for i = 0, j = 0 to t.length() - 1 char c = t[i] if (c >= 'a' and c <= 'z') c = c + 'A' - 'a' else if (c < 'A' or c > 'Z') continue output =output + (c - k[j] + 26) % 26 + 'A' j = (j + 1) % k.length() return output End


Source Code #include <iostream> #include <string> using namespace std; class Vig { public: string k; Vig(string k) { for (int i = 0; i < k.size(); ++i) { if (k[i] >= 'A' && k[i] <= 'Z') this->k += k[i]; else if (k[i] >= 'a' && k[i] <= 'z') this->k += k[i] + 'A' - 'a'; } } string encryption(string t) { string output; for (int i = 0, j = 0; i < t.length(); ++i) { char c = t[i]; if (c >= 'a' && c <= 'z') c += 'A' - 'a'; else if (c < 'A' || c > 'Z') continue; output += (c + k[j] - 2 * 'A') % 26 + 'A'; //added 'A' to bring it in range of ASCII alphabet [ 65-90 | A-Z ] j = (j + 1) % k.length(); } return output; } string decryption(string t) { string output; for (int i = 0, j = 0; i < t.length(); ++i) { char c = t[i]; if (c >= 'a' && c <= 'z') c += 'A' - 'a'; else if (c < 'A' || c > 'Z') continue; output += (c - k[j] + 26) % 26 + 'A';//added 'A' to bring it in range of ASCII alphabet [ 65-90 | A-Z ] j = (j + 1) % k.length(); } return output; } }; int main() { Vig v("UAD"); string ori ="Ihsan Fadhilah"; string encrypt = v.encryption(ori); string decrypt = v.decryption(encrypt); cout << "Original Message: "<<ori<< endl; cout << "Encrypted Message: " << encrypt << endl; cout << "Decrypted Message: " << decrypt << endl; }



Buatlah sebuah enkripsi dan deksripsi secara manual dengan menggunakan metode vigenere chipper: Plaintext Keyboard A=1 B=2 C=3 D=4 E=5

: UDAH DIEM DI RUMAH AJA NGGAK USAH KEMANA MANA : REBAHAN F =6 G =7 H =8 I =9 J =10

P U D A H K R E B A

K = 11 L = 12 M = 13 N = 14 O = 15

P = 16 Q = 17 R = 18 S = 19 T = 20

D I E M H A N R

U = 21 V = 22 W = 23 X = 24 Y = 25 D I E B

Z = 26

R U M A H A H A N R

Ciphertext: [U+R] [D+E] [A+B] [H+A] [D+H] [I+A] [E+N]

= [21 + 18] = [4 + 5] = [1 +2] = [8 + 1] = [4 + 8] = [9 + 1] = [5 + 14]

= 39 =9 =3 =9 = 12 = 10 = 19

= 39 – 26 = 9 MOD 26 = 3 MOD 26 = 9 MOD 26 = 12 MOD 26 = 10 MOD 26 = 19 MOD 26

Maka didapatkan Ciphertext MICI LJSE IK SCNOZ FLB VHUSP WTII YWRCOI NOFF

= 13 =9 =3 =9 = 12 = 10 = 19

=M =I =C =I =L = J =S

A J A E B A

N G G A K H A N R E






HAMIZAN HIBATULLAH NIM. 1900018015

PRAKTIKUM KRIPTOGRAFI – KAMIS, 13.30


LANGKAH 1 : PEMBENTUKAN KUNCI ALGORITMA ELGAMAL Misalkan A membangkitkan pasangan kunci dengan memilih bilangan : p = 2903 G=5 X = 1751 Kemudian p, g, x digunakan untuk menghitung y : Y = gx mod p Y = 5(1751) mod 2903 = 771 Kunci Publik A Y = 771

G=5

P = 2903

Kunci Private A x = 1751

P = 2903


LANGKAH 2 : PERHITUNGAN ENKRIPSI ALGORITMA ELGAMAL

Misalkan B ingin mengirim plainteks “hello android” kepada A, kemudian setiap karakter plainteks tersebut diubah kedalam bentuk ASCII sehingga menghasilkan sebagai berikut: Plainteks ASCII h

e

l

l

o

014

101

108

108

111

32

a

n

d

r

o

i

d

97

110

100

114

111

105

100


LANGKAH 3 : PERHITUNGAN DEKRIPSI ALGORITMA ELGAMAL

A mendekripsikan cipherteks dari B dengan melakukan perhitungan dengan rumus sebagai berikut : Mi = bi.ai p-1-xmod p Lihat lagi Langkah-Langkah untuk menghitung dekripsi di atas…. Setelah mendapatkan nilai mi, masing-masing nilai m hasil dekripsi menjadi kode ASCII diubah Kembali menjadi karakter. Dengan hasil sebagai berikut: 014, 101, 108, 108, 111, 32, 97, 110, 100, 114, 111, 105, 100


Kemudian kode ASCII tersebut dibuah menjadi plainteks dengan hasil sebagai beriktu: I

Mi

Ki

Y=148k mod 383

δ=295k.m mod 383

1

104

319

197

158

2

101

259

122

2

3

108

105

85

300

4

108

105

379

336

5

111

267

340

250

6

32

279

269

98

8

97

190

339

99

9

100

60

168

292

10

114

87

37

113

11

111

360

38

367

12

105

139

356

345

13

100

48

144

8


Nama NIM Kriptografi

: Hamizan Hibatullah : 1900018015 : Kamis, 13.30 – 15.00

POSTEST PRAKTIKUM 4

4.5 PRE-TEST Jawablah pertanyaan berikut (Total Skor: 100): No CPL 1. CPL-03

CPMK CPMK-01

Pertanyaan Silahkan enkripsi dan dekripsi menggunakan algoritma el gamal dan tentukan chipertextnya. Plaintext : TEKNIK P=267 G=11 X=13

Diketahui : Plaintext : TEKNIK p = 267 g = 11 x = 13 K (acak) = 3,4,5,6,7,8

Menghitung nilai y : y = gx mod p y = 1113 mod 267 y = 146

Maka, kunci Publik A adalah : (y, g, p) = 146, 11, 267 Dan kunci Privat A adalah : (x, p) = 13, 267

Langkah II : Perhitungan Enkripsi Plaintext : TEKNIK - Mengubah plaintext menjadi bentuk ASCII : T=84, E=69, K=75, N=78, I=73, K=75 - Hitung a dengan rumus gki mod p :a1 = 113 mod 267 = 263 a2 = 114 mod 267

Skor 50


= 223 a3 = 115 mod 267 = 50 a4 = 116 mod 267 = 16 a5 = 117 mod 267 = 176 a6 = 118 mod 267 = 67 - Hitung b dengan rumus yki.m mod p :b1 = 1463.84 mod 267 = 258 b2 = 1464.69 mod 267 = 84 b3 = 1465.75 mod 267 = 201 b4 = 1466.78 mod 267 = 210 b5 = 1467.73 mod 267 = 242 b6 = 1468.75 mod 267 = 21

Kar (m)

ASCII K (acak)

a=11k mod 267

y=146k.m mod 267

Ciphertext (a,b)

T

84

3

263

258

(263, 258)

E

69

4

223

84

(223, 84)

K

75

5

50

201

(50, 201)

N

78

6

16

210

(16, 210)

I

73

7

176

242

(176, 242)

K

75

8

67

21

(67, 21)


Mencari nilai m : Cipher (a,b) = (263, 258) m

= (b*(ax)-1) mod p = (b*(ap-1-x mod 267)) mod p = (258*(263267-1-13 mod 267)) mod 267 = 84

Cipher (a,b) = (223, 84) m

= (b*(ax)-1) mod p = (b*(ap-1-x mod 267)) mod p = (84*(223267-1-13 mod 267)) mod 267 = 84

Cipher (a,b) = (50, 201) m

= (b*(ax)-1) mod p = (b*(ap-1-x mod 267)) mod p = (201*(50267-1-13 mod 267)) mod 267 = 75

Cipher (a,b) = (16, 210) m

= (b*(ax)-1) mod p = (b*(ap-1-x mod 267)) mod p = (210*(16267-1-13 mod 267)) mod 267 = 78

Cipher (a,b) = (176, 242) m

= (b*(ax)-1) mod p = (b*(ap-1-x mod 267)) mod p = (242*(176267-1-13 mod 267)) mod 267 = 73


Cipher (a,b) = (67, 21) m

= (b*(ax)-1) mod p = (b*(ap-1-x mod 267)) mod p = (21*(67267-1-13 mod 267)) mod 267 = 75

Ciphertext (a,b)

m = b*(ax)-1 mod p

Kar (m)

(263, 258)

84

T

(223, 84)

69

E

(50, 201)

75

K

(16, 210)

78

N

(176, 242)

73

I

(67, 21)

75

K




Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.