Upload
lahendro
View
387
Download
16
Embed Size (px)
Citation preview
8/20/2019 Buku Kriptografi
1/457
Sentot Kromodimoeljo
TEORI&APLIKASIKRIPTOGRAFI
101111
111101
100001
011110
SPK IT
Consulting
8/20/2019 Buku Kriptografi
2/457
8/20/2019 Buku Kriptografi
3/457
Teori dan Aplikasi Kriptografi
Sentot Kromodimoeljo
Desember 2009
8/20/2019 Buku Kriptografi
4/457
ii
Teori dan Aplikasi KriptografiPenulis: Sentot KromodimoeljoDesember 2009ISBN 978-602-96233-0-7453 halaman, 14.85 x 21 cm
Penerbit: SPK IT Consultingc2009 SPK IT Consulting. Dilarang mereproduksi buku ini sebagian atau
seluruhnya tanpa izin dari SPK IT Consulting.
Typesetting menggunakan LATEX.
Sentot KromodimoeljoConsultant, SPK IT ConsultingInformation Technology, Cryptography, Mathematical Logic
8/20/2019 Buku Kriptografi
5/457
iii
Untuk anak-anakku yang tercinta, Kelsey dan Zakrie.
8/20/2019 Buku Kriptografi
6/457
iv
8/20/2019 Buku Kriptografi
7/457
Kata Pengantar
Sangat banyak buku dalam bahasa Indonesia mengenai ilmu dan teknologikomputer yang telah diterbitkan, namun hampir semua bersifat kontemporer.Buku kontemporer memang berharga dan diperlukan, tetapi untuk pembacayang ingin belajar teori ilmu komputer secara mendalam, diperlukan buku yangdapat memberi motivasi dan arahan untuk studi lanjut.
Buku ini mencoba menjelaskan teori dan praktek kriptografi dan ditujukanterutama kepada pembaca yang ingin memperdalam pengetahuannya menge-nai kriptografi. Banyak orang yang enggan membaca buku yang berisi mate-matika karena presentasi matematika biasanya hambar tanpa motivasi. Krip-tografi tidak bisa dipisahkan dari matematika, jadi buku ini juga berisi ma-tematika, akan tetapi penulis mencoba menggunakan bahasa yang sederhana
dan memberi motivasi dan penjelasan untuk setiap rumus matematika agarmudah dipahami dan tidak membosankan. Memang untuk mendalami ilmukriptografi tidak ada jalan pintas dan diperlukan ketekunan yang luar biasa.Tetapi buku ini dapat juga dibaca untuk mendapatkan pengetahuan superficial mengenai ilmu kriptografi, dengan melewatkan atau membaca secara sepintassaja bagian-bagian yang sukar matematikanya. Tentunya teori tanpa aplikasiadalah sia-sia, oleh sebab itu aplikasi kriptografi juga dibahas.
Mudah-mudahan buku ini berguna bagi pembaca yang ingin memperdalampengetahuan di bidang kriptografi. Kalau ada kesalahan dalam buku ini, mo-
hon maaf sebelumnya. Selamat membaca!
Sentot Kromodimoeljo.
v
8/20/2019 Buku Kriptografi
8/457
vi KATA PENGANTAR
8/20/2019 Buku Kriptografi
9/457
Terima kasih
Penulis ingin mengucapkan terima kasih yang sebesarnya kepada Dr. LaksanaTri Handoko dari Pusat Penelitian Fisika LIPI, Prof. Chan Basaruddin, Dr.Lim Yohanes Stefanus dan Dr. Setiadi Yazid dari Fakultas Ilmu Komputer UI,dan Dr. Budi Susilo Soepandji dari Departemen Pertahanan, atas komentar,saran dan dukungannya.
Penulis juga ingin mengucapkan terima kasih yang sebesarnya kepada semuateman di KINDO 21 atas komentar, saran dan dukungan yang telah diberikan,terutama kepada Kemal Surianegara, Neni Sintawardani, Arnold Soetrisnanto,E.T. Sari, Ardi Sutedja, Hartojo Wignjowijoto, Hidayat Brata dan YandriSusanto.
vii
8/20/2019 Buku Kriptografi
10/457
viii TERIMA KASIH
8/20/2019 Buku Kriptografi
11/457
Daftar Isi
Kata Pengantar v
Terima kasih vii
1 Pendahuluan 1
2 Konsep-konsep Dasar 5
2.1 Konsep Acak . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 One-Time Pad . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Cryptanalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Known Plaintext Attack . . . . . . . . . . . . . . . . . . 92.3.2 Analisa Statistik . . . . . . . . . . . . . . . . . . . . . . 11
2.3.3 Brute Force Search . . . . . . . . . . . . . . . . . . . . . 13
2.4 Manajemen Kunci . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Operasi dasar . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.6 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Matematika I - Aritmatika Modular 19
3.1 Group, Monoid, Ring dan Field . . . . . . . . . . . . . . . . . . 19
3.2 Prinsip Induksi . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 GCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4 Algoritma Euclid . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5 Aritmatika Modular . . . . . . . . . . . . . . . . . . . . . . . . 30
3.6 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4 Kriptografi Simetris Sederhana 37
4.1 Enkripsi Affine . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Transformasi Digraph . . . . . . . . . . . . . . . . . . . . . . . 414.3 Matrik Enkripsi . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.4 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
ix
8/20/2019 Buku Kriptografi
12/457
x DAFTAR ISI
5 Matematika II - Polynomial Field 51
5.1 Integral Domain . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.2 Homomorphism dan Ideal . . . . . . . . . . . . . . . . . . . . . 53
5.3 Principal Ideal Domain . . . . . . . . . . . . . . . . . . . . . . . 61
5.4 Prime Ideal dan Maximal Ideal . . . . . . . . . . . . . . . . . . 635.5 Polynomial Ring . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.6 Euclidean Domain . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.7 Polynomial Field . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.8 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6 Kriptografi Stream Cipher 79
6.1 RC4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.2 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
7 Kriptografi Block Cipher 91
7.1 DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.2 Mode Operasi DES . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.3 3DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.4 AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.5 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8 Analisa Block Cipher 113
8.1 Differential Cryptanalysis . . . . . . . . . . . . . . . . . . . . . 115
8.1.1 Analisa 1 Putaran . . . . . . . . . . . . . . . . . . . . . 116
8.1.2 Mekanisme n-round Characteristic . . . . . . . . . . . . 118
8.1.3 Penggunaan n-round Characteristic . . . . . . . . . . . 123
8.1.4 Differential Cryptanalysis DES . . . . . . . . . . . . . . 124
8.2 Linear Cryptanalysis . . . . . . . . . . . . . . . . . . . . . . . . 125
8.2.1 Perkiraan Linear untuk S-boxes . . . . . . . . . . . . . . 1268.2.2 Perkiraan Linear untuk DES . . . . . . . . . . . . . . . 127
8.2.3 Known Plaintext Attack DES . . . . . . . . . . . . . . . 130
8.3 Pelajaran dari Cryptanalysis DES . . . . . . . . . . . . . . . . 131
8.4 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9 Cryptographically Secure Hashing 133
9.1 MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.2 SHA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1419.3 Hash Message Authentication Code . . . . . . . . . . . . . . . . 144
9.4 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
8/20/2019 Buku Kriptografi
13/457
DAFTAR ISI xi
10 Matematika III - Dasar untuk PKC 14710.1 Fermat’s Little Theorem . . . . . . . . . . . . . . . . . . . . . . 14710.2 Chinese Remainder Theorem . . . . . . . . . . . . . . . . . . . 14810.3 Fungsi Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15010.4 Group of Units . . . . . . . . . . . . . . . . . . . . . . . . . . . 15310.5 Homomorphism Theorem . . . . . . . . . . . . . . . . . . . . . 15910.6 Field Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . 16510.7 Finite Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17010.8 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
11 Matematika IV - Kuadrat 17911.1 Quadratic Residue . . . . . . . . . . . . . . . . . . . . . . . . . 17911.2 Akar Kuadrat Modulo Bilangan Ganjil . . . . . . . . . . . . . . 194
11.3 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
12 Matematika V - Algebraic Number 19912.1 Ruang Vektor dan Module . . . . . . . . . . . . . . . . . . . . . 19912.2 Separable Field Extension . . . . . . . . . . . . . . . . . . . . . 20112.3 Norm, Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20612.4 Algebraic Number Theory . . . . . . . . . . . . . . . . . . . . . 21312.5 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
13 Matematika VI - Test Bilangan Prima 23313.1 Pseudoprime dan Bilangan Carmichael . . . . . . . . . . . . . . 23313.2 Metode Solovay-Strassen . . . . . . . . . . . . . . . . . . . . . . 23913.3 Metode Miller-Rabin . . . . . . . . . . . . . . . . . . . . . . . . 24113.4 Test Deterministik . . . . . . . . . . . . . . . . . . . . . . . . . 25113.5 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
14 Matematika VII - Penguraian Bilangan Bulat 25314.1 Metode Rho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
14.2 Fermat Factorization . . . . . . . . . . . . . . . . . . . . . . . . 25814.3 Metode Dixon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25914.4 Metode Continued Fraction . . . . . . . . . . . . . . . . . . . . 26314.5 Metode Quadratic Sieve . . . . . . . . . . . . . . . . . . . . . . 27214.6 Metode Number Field Sieve . . . . . . . . . . . . . . . . . . . . 27714.7 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
15 Matematika VIII - Logaritma Diskrit 28915.1 Metode Silver-Pohlig-Hellman . . . . . . . . . . . . . . . . . . . 289
15.2 Metode Baby Steps - Giant Steps . . . . . . . . . . . . . . . . . 29215.3 Metode Index Calculus . . . . . . . . . . . . . . . . . . . . . . . 29315.4 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
8/20/2019 Buku Kriptografi
14/457
xii DAFTAR ISI
16 Kriptografi Public Key 297
16.1 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
16.2 Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
16.3 DSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
16.4 ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30416.5 Knapsack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
16.6 Zero-Knowledge Protocol . . . . . . . . . . . . . . . . . . . . . 309
16.7 Penggunaan Kriptografi Public Key . . . . . . . . . . . . . . . 313
16.8 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
17 Kriptografi Elliptic Curve 315
17.1 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
18 Quantum Key Distribution 323
18.1 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
19 Kebutuhan Akan Kriptografi 329
19.1 Informasi Sensitif . . . . . . . . . . . . . . . . . . . . . . . . . . 329
19.2 Mencegah Penyadapan . . . . . . . . . . . . . . . . . . . . . . . 331
19.3 Mencegah Penyamaran . . . . . . . . . . . . . . . . . . . . . . . 333
19.4 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
20 Aplikasi - Pengamanan Sesi 335
20.1 SSL/TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
20.1.1 Standard SSL/TLS . . . . . . . . . . . . . . . . . . . . . 336
20.1.2 Penggunaan SSL/TLS . . . . . . . . . . . . . . . . . . . 339
20.2 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
20.2.1 Standard SSH . . . . . . . . . . . . . . . . . . . . . . . . 341
20.2.2 Penggunaan SSH . . . . . . . . . . . . . . . . . . . . . . 342
20.3 IPsec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34320.3.1 Standard IPsec . . . . . . . . . . . . . . . . . . . . . . . 344
20.3.2 Penggunaan IPsec . . . . . . . . . . . . . . . . . . . . . 350
20.4 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
21 Aplikasi - Pengamanan Email 353
21.1 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
22 Aplikasi - Authentication 35722.1 Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
22.2 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
8/20/2019 Buku Kriptografi
15/457
DAFTAR ISI xiii
23 Aplikasi - PKI 36123.1 PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36223.2 X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36423.3 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
24 Aplikasi - Cryptographic Library 37124.1 OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37224.2 RSA BSafe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37324.3 Cryptlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37424.4 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
25 Analisa Protokol Kriptografi 38525.1 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
26 Kendala Penggunaan Kriptografi 39926.1 Manajemen Kunci . . . . . . . . . . . . . . . . . . . . . . . . . 39926.2 Sistem Terlalu Rumit . . . . . . . . . . . . . . . . . . . . . . . 40026.3 Sistem Tidak Sesuai Kebutuhan . . . . . . . . . . . . . . . . . 40126.4 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
27 Masa Depan Kriptografi 40327.1 Perkembangan Matematika . . . . . . . . . . . . . . . . . . . . 40327.2 Perkembangan Hardware . . . . . . . . . . . . . . . . . . . . . . 404
27.3 Quantum Computing . . . . . . . . . . . . . . . . . . . . . . . . 40527.4 Ringkasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
A Daftar Notasi, Singkatan dan Istilah 411
B Tabel untuk cipher f DES 417
C Tabel S-box AES 421
D Tabel untuk algoritma MD5 423
8/20/2019 Buku Kriptografi
16/457
xiv DAFTAR ISI
8/20/2019 Buku Kriptografi
17/457
Daftar Gambar
2.1 Proses enkripsi dan dekripsi . . . . . . . . . . . . . . . . . . . . 5
6.1 Linear feedback shift register . . . . . . . . . . . . . . . . . . . 806.2 Kombinasi non-linear LFSR . . . . . . . . . . . . . . . . . . . . 81
7.1 Enkripsi DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 937.2 Algoritma Key Schedule DES . . . . . . . . . . . . . . . . . . . 957.3 Fungsi Cipher f . . . . . . . . . . . . . . . . . . . . . . . . . . . 987.4 DES dengan mode ECB . . . . . . . . . . . . . . . . . . . . . . 997.5 DES dengan mode CBC . . . . . . . . . . . . . . . . . . . . . . 1007.6 DES dengan mode CFB . . . . . . . . . . . . . . . . . . . . . . 101
7.7 DES dengan mode OFB . . . . . . . . . . . . . . . . . . . . . . 1017.8 Enkripsi dan Dekripsi 3DES . . . . . . . . . . . . . . . . . . . . 1027.9 Enkripsi AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.1 1 Putaran DES . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138.2 2 Putaran DES . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
18.1 Contoh Sesi Protokol Bennett-Brassard . . . . . . . . . . . . . 327
xv
8/20/2019 Buku Kriptografi
18/457
xvi DAFTAR GAMBAR
8/20/2019 Buku Kriptografi
19/457
Daftar Tabel
2.1 Proses enkripsi one-time pad . . . . . . . . . . . . . . . . . . . 72.2 Proses dekripsi one-time pad . . . . . . . . . . . . . . . . . . . 72.3 Tabel operasi xor . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4 Enkripsi dengan Caesar cipher . . . . . . . . . . . . . . . . . . 102.5 Hasil analisa frekuensi . . . . . . . . . . . . . . . . . . . . . . . 122.6 Mencoba semua kemungkinan kunci Caesar cipher . . . . . . . 152.7 Tabel untuk S1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.8 Tabel Initial Permutation . . . . . . . . . . . . . . . . . . . . . 18
3.1 Contoh aritmatika modulo 7 . . . . . . . . . . . . . . . . . . . . 31
4.1 Tabel untuk contoh enkripsi affine . . . . . . . . . . . . . . . . 384.2 Enkripsi dengan affine transformation . . . . . . . . . . . . . . 394.3 Tabel untuk contoh enkripsi digraph . . . . . . . . . . . . . . . 424.4 Pasangan digraph menurut urutan frekuensi penggunaan . . . . 43
5.1 Tabel Notasi Logika Matematika . . . . . . . . . . . . . . . . . 52
6.1 Vernam Cipher . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.1 Tabel Initial Permutation . . . . . . . . . . . . . . . . . . . . . 947.2 Tabel Inverse Initial Permutation . . . . . . . . . . . . . . . . . 957.3 Tabel Permuted Choice 1 . . . . . . . . . . . . . . . . . . . . . 967.4 Tabel Shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977.5 Tabel Permuted Choice 2 . . . . . . . . . . . . . . . . . . . . . 987.6 Tabel untuk Jumlah Putaran . . . . . . . . . . . . . . . . . . . 1057.7 Index bit dan byte AES . . . . . . . . . . . . . . . . . . . . . . 1057.8 Input, State dan Output . . . . . . . . . . . . . . . . . . . . . . 1067.9 ShiftRows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.1 Bits kunci untuk 0x34 → 0xd dan ekspansi (0x35, 0x01). . . . . 1178.2 Bits kunci untuk 0x34 → 0x3 dan ekspansi (0x21, 0x15). . . . . 118
xvii
8/20/2019 Buku Kriptografi
20/457
xviii DAFTAR TABEL
8.3 Tabel parsial distribusi XOR output untuk S1 . . . . . . . . . . 1198.4 Hasil Differential Cryptanalysis DES . . . . . . . . . . . . . . . 1258.5 Tingkat kesuksesan algoritma 1 . . . . . . . . . . . . . . . . . . 1298.6 Tingkat kesuksesan algoritma 2 . . . . . . . . . . . . . . . . . . 131
9.1 4 Varian SHA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
14.1 Tabel Quadratic Sieve untuk n = 1042387 . . . . . . . . . . . . 276
17.1 Perbedaan Diffie-Hellman dengan versi elliptic curve . . . . . . 31917.2 Perbedaan ElGamal dengan versi elliptic curve . . . . . . . . . 31917.3 Besar kunci untuk kekuatan yang sama . . . . . . . . . . . . . 32117.4 Waktu untuk berbagai operasi . . . . . . . . . . . . . . . . . . 322
20.1 Format paket AH . . . . . . . . . . . . . . . . . . . . . . . . . . 34520.2 Format paket ESP . . . . . . . . . . . . . . . . . . . . . . . . . 346
21.1 Perbedaan S/MIME dengan OpenPGP . . . . . . . . . . . . . . 354
B.1 Tabel Transformasi Expansi E . . . . . . . . . . . . . . . . . . . 417B.2 Tabel Permutasi P . . . . . . . . . . . . . . . . . . . . . . . . . 417B.3 Kalkulasi Indeks Baris Untuk S1-S8 . . . . . . . . . . . . . . . 418B.4 Kalkulasi Indeks Kolom Untuk S1-S8 . . . . . . . . . . . . . . . 419
B.5 Tabel untuk S1-S8 . . . . . . . . . . . . . . . . . . . . . . . . . 420
C.1 Tabel S-box AES . . . . . . . . . . . . . . . . . . . . . . . . . . 421C.2 Tabel Inverse S-box AES . . . . . . . . . . . . . . . . . . . . . . 422
D.1 Tabel untuk hashing MD5 . . . . . . . . . . . . . . . . . . . . . 423
8/20/2019 Buku Kriptografi
21/457
Bab 1
Pendahuluan
Di jaman Romawi kuno, Julius Caesar telah menggunakan teknik kriptografiyang dijuluki Caesar cipher untuk mengirim pesan secara rahasia, meskipunteknik yang digunakannya sangat tidak memadai untuk ukuran kini. Casanovamenggunakan pengetahuan mengenai kriptografi untuk mengelabui Madamed’Urf́e (ia mengatakan kepada Madame d’Urf́e bahwa sesosok jin memberitahu kunci rahasia Madame d’Urfé kepadanya, padahal ia berhasil memecahkankunci rahasia berdasarkan pengetahuannya mengenai kriptografi), sehingga ia
mampu mengontrol kehidupan Madame d’Urf́e secara total. Sewaktu perangdunia kedua, pihak sekutu berhasil memecahkan kode mesin kriptografi Jer-man, Enigma; keberhasilan yang sangat membantu pihak sekutu dalam meme-nangkan perang1. Sejarah kriptografi penuh dengan intrik dan banyak orangmelihat kriptografi sebagai sesuatu yang penuh dengan misteri.
Juga banyak orang yang menganggap pengetahuan dan penggunaan krip-tografi sebagai perbuatan subversif, bahkan Amerika Serikat pernah memper-lakukan kriptografi sebagai senjata yang tidak dapat diekspor secara bebas,meskipun sekarang peraturan sudah diperlunak. Di satu sisi pemerintah AS
tidak menginginkan warganya dan pihak lain menggunakan kriptografi untukberbagai macam keperluan, di sisi lain kriptografi sangat diperlukan dalamaplikasi pengamanan teknologi informasi seperti transaksi perbankan. Ada be-berapa negara, baik negara belum maju yang memiliki pemerintahan represif maupun negara barat yang “liberal”, yang melarang atau membatasi penggu-naan kriptografi.
Pro dan kontra penggunaan kriptografi tidak akan dibahas dalam buku ini.Tujuan buku ini adalah untuk mengungkap tabir misteri yang menutupi ilmukriptografi. Ini dilakukan dengan memperkenalkan berbagai konsep dasar krip-
1Setelah perang berahir, konon pihak sekutu menjual mesin Enigma ke beberapa negaraberkembang tanpa memberi tahu bahwa kode sudah dipecahkan.
1
8/20/2019 Buku Kriptografi
22/457
2 BAB 1. PENDAHULUAN
tografi, penjelasan mengenai teori matematika dan teknik-teknik kriptografi,contoh-contoh aplikasi kriptografi, diskusi mengenai kendala aplikasi kripto-grafi, dan diskusi mengenai masa depan kriptografi.
Konsep-konsep dasar kriptografi sangat perlu untuk dipahami, karena tanpakonsep dasar, segala macam teori matematika tidak ada gunanya. Berbagaikonsep yang akan dibahas antara lain: konsep acak, one-time pad , cryptanaly-sis , berbagai operasi dasar untuk kriptografi, dan manajemen kunci.
Berbagai teknik enkripsi klasik akan dibahas, mulai dari yang sederhanaseperti transformasi linear dan transformasi affine , sampai dengan stream ci-pher dan block cipher . Teknik enkripsi yang lemah dibahas bukan untuk di-implementasi, tetapi agar pembaca dapat lebih memahami apa kelemahannyadan bagaimana teknik enkripsi yang lebih tangguh menanggulanginya. Teknik-teknik yang digunakan untuk mencari atau mengeksploitasi kelemahan enkripsi
antara lain analisa frekuensi, differential cryptanalysis dan linear cryptanalysis .Matematika yang digunakan untuk transformasi enkripsi juga akan dibahas se-cara rinci sebelum pembahasan teknik enkripsi, akan tetapi pembahasan teoriprobabilitas dan statistika hanya sebatas penggunaan.
Buku ini tidak merekomendasikan penggunaan stream cipher karena sangatmudah untuk menggunakannya secara tidak aman. Algoritma RC4 jelas me-rupakan algoritma yang lemah. Semua ini akan dibahas di bab 6.
Cryptographically secure hashing juga akan dibahas di buku ini, termasukMD5 dan SHA. Sebagai contoh analisa kekuatan algoritma hashing , differential
cryptanalysis terhadap MD5 akan dibahas.Teknik-teknik kriptografi public key yang dibahas termasuk yang berbasis
pada sukarnya penguraian bilangan yang sangat besar (contohnya RSA), yangberbasis pada sukarnya komputasi logaritma diskrit (contohnya ElGamal), dan juga yang menggunakan elliptic curve menggantikan finite field . Teknik yangbersifat probabilistik, yaitu zero-knowledge protocol , dan algoritma Merkle-Hellman untuk enkripsi knapsack dengan kelemahannya, juga akan dibahas.Untuk memberi gambaran mengenai sukarnya penguraian dan komputasi lo-
garitma diskrit, berbagai teknik penguraian dan komputasi logaritma diskritdibahas.
Algoritma Euclid, Fermat’s Little Theorem dan Chinese Remainder Theo-rem adalah 3 topik sangat penting dan umum yang wajib dikuasai oleh setiapmurid kriptografi atau ilmu komputer. Sebaliknya, bab mengenai algebraic number dan bagian yang membahas metode number field sieve berisi bahantingkat sangat lanjut dan khusus, jadi mungkin sebaiknya tidak digunakan da-lam mata kuliah tingkat awal.
Quantum key distribution juga akan dibahas. Jika quantum key distribution
menjadi sesuatu yang praktis, maka enkripsi one-time pad juga akan menjadisesuatu yang praktis. Namun quantum key distribution bersifat point-to-point secara fisik, jadi aplikasinya terbatas.
8/20/2019 Buku Kriptografi
23/457
3
Berbagai aplikasi kriptografi akan dibahas, termasuk aplikasi untuk penga-manan sesi, aplikasi pengamanan email , aplikasi authentication , public key in- frastructure dan cryptographic library .
Kendala aplikasi kriptografi terutama disebabkan oleh kurangnya pema-haman mengenai kriptografi sehingga banyak terjadi penggunaan kriptografi
dengan cara yang salah, terutama dalam hal key management . Penggunaankriptografi harus dengan cara yang benar, dan implementasi harus dengan telitidan hati-hati. Kalau tidak, akibatnya adalah kriptografi yang mudah untukdipecahkan. Penggunaan kriptografi secara benar bukan sesuatu yang mudahdan sejarah penggunaan kriptografi menunjukkan bahwa kesalahan tidak hanyadilakukan oleh mereka yang “gagap teknologi.” Perusahaan besar dibidangteknologi informasi seperti Microsoft dan Netscape juga pernah melakukanimplementasi yang tidak aman seperti enkripsi password yang sangat mudahuntuk dipecahkan. Pakar-pakar protokol komunikasi juga telah sering mem-buat kesalahan, sebagai contoh versi pertama dari pengamanan Wi-Fi (pro-tokol komunikasi nirkabel) yaitu WEP menggunakan stream cipher RC4 secaratidak aman (lihat bab 6). Selain masalah sulitnya manajemen kunci, rumitnyasistem dan sistem yang tidak sesuai kebutuhan menjadi kendala penggunaankriptografi.
Cara kerja protokol yang digunakan untuk sistem pengamanan dengan krip-tografi sangat menentukan keamanan sistem. Oleh sebab itu suatu metode un-tuk menganalisa protokol kriptografi akan dibahas. Metode ini menggunakan
pendekatan logika klasik.Masa depan kriptografi akan dipengaruhi oleh perkembangan matematika,terutama dalam hal algoritma, dan juga akan dipengaruhi oleh perkembangandi bidang hardware . Potensi quantum computing juga berperan sangat besar: jika quantum computer dapat direalisir maka teknik kriptografi yang digunakansekarang tidak akan berfungsi efektif karena kunci akan dapat dengan mudahdipecahkan.
8/20/2019 Buku Kriptografi
24/457
4 BAB 1. PENDAHULUAN
8/20/2019 Buku Kriptografi
25/457
Bab 2
Konsep-konsep Dasar
Apakah sebenarnya kriptografi itu? Kriptografi adalah ilmu mengenai teknikenkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesu-atu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi. De-kripsi menggunakan kunci dekripsi mendapatkan kembali data asli. Prosesenkripsi dilakukan menggunakan suatu algoritma dengan beberapa parameter.Biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang mengandalkankerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia terletak dibeberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter.Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan(parameter menjadi ekuivalen dengan kunci).
Dalam kriptografi klasik, teknik enkripsi yang digunakan adalah enkripsisimetris dimana kunci dekripsi sama dengan kunci enkripsi. Untuk public key cryptography , diperlukan teknik enkripsi asimetris dimana kunci dekripsitidak sama dengan kunci enkripsi. Enkripsi, dekripsi dan pembuatan kunciuntuk teknik enkripsi asimetris memerlukan komputasi yang lebih intensif di-bandingkan enkripsi simetris, karena enkripsi asimetris menggunakan bilangan-
bilangan yang sangat besar. Namun, walaupun enkripsi asimetris lebih “ma-hal” dibandingkan enkripsi simetris, public key cryptography sangat bergunauntuk key management dan digital signature .
Gambar 2.1: Proses enkripsi dan dekripsi
Gambar diatas menunjukkan efek dari proses enkripsi dan proses dekripsi.
5
8/20/2019 Buku Kriptografi
26/457
6 BAB 2. KONSEP-KONSEP DASAR
Secara garis besar, proses enkripsi adalah proses pengacakan “naskah asli”(plaintext ) menjadi “naskah acak” (ciphertext ) yang “sulit untuk dibaca” olehseseorang yang tidak mempunyai kunci dekripsi. Yang dimaksud dengan “sulituntuk dibaca” disini adalah probabilitas mendapat kembali naskah asli olehseseorang yang tidak mempunyai kunci dekripsi dalam waktu yang tidak terlalu
lama adalah sangat kecil. Jadi suatu proses enkripsi yang baik menghasilkannaskah acak yang memerlukan waktu yang lama (contohnya satu juta tahun)1
untuk didekripsi oleh seseorang yang tidak mempunyai kunci dekripsi. Satucara untuk mendapatkan kembali naskah asli tentunya dengan menerka kuncidekripsi, jadi proses menerka kunci dekripsi harus menjadi sesuatu yang sulit.Tentunya naskah acak harus dapat didekripsi oleh seseorang yang mempunyaikunci dekripsi untuk mendapatkan kembali naskah asli.
Walaupun awalnya kriptografi digunakan untuk merahasiakan naskah teks,
kini kriptografi digunakan untuk data apa saja yang berbentuk digital.
2.1 Konsep Acak
Yang dimaksud dengan sifat acak (randomness ) dalam kriptografi adalah sifatbebas dari kecenderungan sehingga tidak mudah untuk diterka. Dari segi ma-tematika, jika suatu variabel dianggap bersifat acak, maka teori probabilitasdapat digunakan untuk memprediksi “kelakuan” dari variabel tersebut, antara
lain variabel akan memenuhi beberapa kriteria statistik. Metode statistikadapat digunakan, berdasarkan apa yang sudah terjadi, untuk menilai apakahvariabel memenuhi kriteria statistik untuk variabel acak. Akan tetapi jika kri-teria statistik terpenuhi, belum tentu variabel benar acak, karena sesuatu yangdeterministik seperti pseudo-random number generator dapat memenuhi kri-teria statistik untuk variabel acak. Jadi kriteria statistik bukan merupakandefinisi untuk variabel acak.
Sifat acak memang tidak dapat didefinisikan secara matematis, sebab sesu-atu yang mempunyai definisi matematis sudah tidak bersifat acak. Apalagi jika
definisi berupa rumus yang dapat digunakan untuk kalkulasi, yang didefinisikanbukan saja mudah diterka tetapi tidak perlu diterka.
Sifat acak dapat dikaitkan dengan urutan events , dimana event berikutnyadalam suatu urutan tidak mudah untuk diterka berdasarkan apa yang sudahlalu. Sifat ini diperlukan dalam pembuatan kunci (key generation ) supaya kuncidekripsi tidak mudah untuk diterka.
Sifat acak juga dikaitkan dengan tidak adanya korelasi (atau korelasi yangmendekati nol). Dalam kriptografi, tidak diinginkan adanya korelasi antaranaskah asli dengan naskah acak atau kunci dengan naskah acak. Ini untuk
1Dalam kriptografi, waktu yang dimaksud adalah rerata waktu, ada kemungkinan waktulebih singkat dan ada kemungkinan waktu lebih lama.
8/20/2019 Buku Kriptografi
27/457
2.2. ONE-TIME PAD 7
mempersulit analisa seperti analisa frekuensi ( frequency analysis ) atau analisalebih canggih seperti linear cryptanalysis atau differential cryptanalysis .
Meskipun tidak sebenarnya acak, sesuatu yang pseudo-random berguna dandigunakan dalam kriptografi, tetapi harus dikombinasikan dengan sesuatu yangbenar acak. Sebagai contoh, pseudo-random number generator dikombinasikandengan sumber entropi yang benar acak sebagai seed , untuk mendapatkan sesu-atu yang praktis bersifat random number generator .
2.2 One-Time Pad
Secara teoritis, teknik one-time pad merupakan teknik enkripsi yang sempurna(perfect encryption ) asalkan proses pembuatan kunci benar acak.
10010111001011101001 naskah asli01001110001101001101 kunci11011001000110100100 naskah acak
Tabel 2.1: Proses enkripsi one-time pad
Dengan one-time pad , operasi exclusive or (xor) dilakukan pada naskah asli
dan kunci secara bitwise seperti dalam tabel 2.1. Operasi xor menghasilkan0 jika argumen sama (0 dengan 0 atau 1 dengan 1) dan menghasilkan 1 jikaargumen berbeda (0 dengan 1 atau 1 dengan 0). Jadi bit pertama naskahasli (1) dengan bit pertama kunci (0) menghasilkan bit pertama naskah acak(1), bit kedua naskah asli (0) dengan bit kedua kunci (1) menghasilkan bitkedua naskah acak (1), bit ketiga naskah asli (0) dengan bit ketiga kunci (0)menghasilkan bit ketiga naskah acak (0), dan seterusnya.
11011001000110100100 naskah acak
01001110001101001101 kunci10010111001011101001 naskah asli
Tabel 2.2: Proses dekripsi one-time pad
Proses dekripsi sama dengan enkripsi tetapi xor dilakukan pada naskahacak, dengan kunci yang sama (kunci dekripsi sama dengan kunci enkripsi).Setiap bit dalam kunci jika dioperasikan terhadap bit dalam naskah asli (seperti
dalam proses enkripsi) kemudian dioperasikan lagi terhadap hasil operasi per-tama (seperti dalam proses dekripsi) akan mendapatkan kembali bit naskahasli. Ini adalah konsekuensi sifat aljabar operasi xor.
8/20/2019 Buku Kriptografi
28/457
8 BAB 2. KONSEP-KONSEP DASAR
bit naskah bit kunci bit hasil operasi0 0 01 0 10 1 11 1 0
Tabel 2.3: Tabel operasi xor
Tabel 2.3 memperlihatkan operasi xor yang digunakan oleh one-time pad .Nilai 0 untuk bit kunci mempertahankan nilai bit naskah yang dioperasikan, jadi dua kali mempertahankan akan tetap mempertahankan nilai bit naskah
asli. Nilai 1 untuk bit kunci menghasilkan negasi bit naskah yang dioperasikan, jadi dua kali negasi akan mendapatkan nilai bit semula yaitu nilai bit naskahasli. Alhasil, nilai apapun untuk bit kunci akan mendapatkan kembali nilai bitnaskah asli jika dioperasikan dua kali. Operasi exclusive or sangat berperandalam kriptografi: semua algoritma enkripsi simetris modern menggunakanoperasi exclusive or . Simbol ⊕ kerap digunakan sebagai notasi untuk exclusive or .
Ketangguhan enkripsi one-time pad tergantung pada keacakan kunci yangdigunakan. Key management menjadi sangat penting dan merupakan kele-mahan one-time pad yang membuatnya tidak layak untuk penggunaan skalabesar2. Besar kunci harus menyamai besar naskah asli, dan kunci tidak bolehdiguna-ulang. Selain masalah key generation , masalah key distribution menjadikendala penggunaan skala besar enkripsi one-time pad .
Secara historis, enkripsi one-time pad digunakan oleh misi diplomatik berba-gai negara di masa lalu untuk komunikasi rahasia. Semacam buku kode yangdibuat secara acak dan tidak boleh diguna-ulang harus dibawa oleh kurir yangdipercaya untuk didistribusikan ke perwakilan diplomatik negara yang bersang-
kutan. Setiap pengiriman naskah rahasia, kunci sebesar naskah rahasia diambildari buku kode untuk mengenkripsi naskah. Kunci yang sudah digunakan un-tuk enkripsi tidak boleh digunakan lagi untuk enkripsi selanjutnya.
One-time pad dapat digunakan untuk komunikasi sangat rahasia denganvolume yang tidak terlalu besar, namun untuk penggunaan skala besar dalamsuatu sistem teknologi informasi, one-time pad tidak praktis. Walaupun tidakdigunakan secara langsung, konsep one-time pad “ditiru” dalam teknik enkripsistream cipher (lihat bab 6).
2Situasi ini dapat berubah jika quantum key distribution menjadi sesuatu yang praktis.
8/20/2019 Buku Kriptografi
29/457
2.3. CRYPTANALYSIS 9
2.3 Cryptanalysis
Cryptanalysis adalah teknik untuk mencoba memecahkan enkripsi, biasanyadengan mencari kunci enkripsi. Ada tiga kategori teknik pencarian kunci yangbiasanya digunakan untuk kriptografi klasik yaitu
• known plaintext attack ,
• analisa statistik, dan
• brute force search .
Kombinasi dari teknik-teknik diatas juga kerap digunakan. Biasanya minimalpemecah mempunyai akses ke naskah acak, dan kadang juga mengetahui naskah
aslinya. Kita akan bahas ketiga teknik tersebut.Algoritma enkripsi klasik yang baik adalah algoritma yang tahan terhadap
known plaintext attack dan analisa frekuensi sehingga pencarian kunci harusdilakukan dengan brute force search . Tentunya kunci enkripsi harus cukupbesar agar brute force search tidak efektif.
Berbeda dengan kriptografi klasik, kriptografi public key mengandalkan kea-manannya pada sukarnya komputasi untuk mendapatkan kunci rahasia, yaitu
• penguraian bilangan bulat yang besar, atau
• komputasi logaritma diskrit untuk finite field yang besar.
Jadi pemecahan kunci untuk kriptografi public key difokuskan pada teknik-teknik untuk mempercepat kedua komputasi tersebut. Kita akan bahas peng-uraian bilangan bulat di bab 14 dan logaritma diskrit di bab 15.
2.3.1 Known Plaintext Attack
.
Known plaintext attack adalah teknik pencarian kunci enkripsi berdasarkanpengetahuan mengenai pasangan naskah asli - naskah acak. kita akan gunakanCaesar cipher sebagai contoh dari enkripsi yang rentan terhadap known plain-text attack .
Julius Caesar menukar setiap huruf dalam naskah asli dengan huruf laindalam naskah acak. Besar atau kecil huruf dipertahankan dalam naskah acak(huruf besar ditukar dengan huruf besar, huruf kecil ditukar dengan huruf ke-
cil). Spasi, titik, koma dan tanda lainnya tidak ditukar.Caesar cipher adalah jenis enkripsi yang disebut simple substitution cipher
dimana setiap huruf dalam naskah asli ditukar dengan huruf lain dalam naskah
8/20/2019 Buku Kriptografi
30/457
10 BAB 2. KONSEP-KONSEP DASAR
acak. Julius Caesar menukar huruf dengan cara shift transformation . Rumusumum untuk shift transformation adalah:
C =
P + b jika P + b < nP + b
−n jika P + b
≥ n
(2.1)
dimana:C adalah kode bilangan karakter acak,P adalah kode bilangan karakter asli,b adalah besarnya shift ,n adalah besarnya perbendaharaan karakter (dengan kode 0 sampai n − 1).
Jadi rumus untuk enkripsi sesuai dengan relasi ekuivalen:
C ≡ P + b (mod n). (2.2)Rumus untuk dekripsi juga sesuai dengan relasi ekuivalen 2.2:
P =
C − b jika C ≥ bC − b + n jika C < b. (2.3)
Julius Caesar sendiri menggunakan huruf “A” sampai “Z” (dengan kode0 sampai 25) sebagai perbendaharaan karakter untuk enkripsi (karakter se-lain huruf tidak dienkripsi), dan menggunakan parameter b = 3 menghasilkan
rumus enkripsi
C =
P + 3 jika P
8/20/2019 Buku Kriptografi
31/457
2.3. CRYPTANALYSIS 11
contoh, jika pasangan dalam tabel 2.4 diketahui, kita dapat menggunakan pa-sangan huruf acak - huruf asli berdasarkan posisi, misalnya “M” dengan “J”.Ini akan segera mendapatkan b = (12 − 9) mod 26 = 3.
Known plaintext attack terhadap enkripsi Caesar cipher adalah contoh at-tack yang bersifat deterministik dimana jika pasangan (atau beberapa pa-sangan) naskah asli - naskah acak diketahui maka kunci dapat ditemukan de-ngan pasti. Jika tidak hati-hati, enkripsi one-time pad juga sangat rentanterhadap known plaintext attack yang bersifat deterministik. Operasi exclu-sive or terhadap naskah asli dan naskah acak langsung mendapatkan kunci.Oleh karena itu kunci untuk one-time pad tidak boleh diguna-ulang (itulahmaksud nama one-time pad : hanya digunakan satu kali). Efek serupa berlakuuntuk enkripsi yang “meniru” one-time pad seperti stream cipher (dimana ope-rasi exclusive or terhadap naskah acak dan naskah asli langsung mendapatkan
keystream ), jadi penggunaan stream cipher harus dengan sangat hati-hati.Tidak semua known plaintext attack bersifat deterministik. Linear crypt-analysis (lihat bagian 8.2) menggunakan known plaintext attack tetapi secaraprobabilistik.
Tingkat kesukaran known-plaintext attack tergantung pada rumus yang di-gunakan untuk enkripsi. Semakin rumit rumus yang digunakan, semakin sukaruntuk melakukan known-plaintext attack . Rumus yang bersifat linear masihtergolong sederhana dan dianggap rentan terhadap known-plaintext attack . Se-makin non-linear dan semakin banyak parameter yang digunakan untuk rumus,
semakin sulit untuk mengkalkulasi kunci berdasarkan rumus. Ini akan semakin jelas dengan pembahasan berbagai macam enkripsi di bab-bab selanjutnya.
2.3.2 Analisa Statistik
Kecuali one-time pad , semua algoritma enkripsi sebelum Data Encryption Stan-dard (DES) rentan terhadap analisa statistik. Sebagai contoh, mari kita li-hat bagaimana enkripsi dengan cara shift transformation seperti Caesar cipher rentan terhadap analisa statistik yang sederhana yaitu analisa frekuensi.
Enkripsi dengan cara shift transformation sangat rentan terhadap analisafrekuensi sebagai berikut: dengan rumus enkripsi
C ≡ P + b (mod n),
jika n diketahui dan sepasang C dan P dapat diterka dengan akurat, makaparameter b (kunci) dapat dicari. Setiap “pencarian” b dapat dicoba cukupdengan sepasang nilai untuk C dan P . Pasangan nilai yang patut dicoba ada-lah pasangan yang sesuai dengan statistik frekuensi penggunaan. Sebagai con-
toh, menggunakan naskah acak dalam tabel 2.4, huruf “D” dan “Q” adalahyang terbanyak digunakan dalam naskah acak. Karena dalam bahasa Indone-sia, huruf “A” adalah huruf dengan statistik penggunaan terbesar, jika naskah
8/20/2019 Buku Kriptografi
32/457
12 BAB 2. KONSEP-KONSEP DASAR
asli dalam bahasa Indonesia, maka besar kemungkinan huruf “D” atau “Q”merupakan huruf acak untuk “A”. Jadi besar kemungkinan, jika kita menggu-nakan kode untuk “D” atau “Q” sebagai nilai C dan kode untuk “A” sebagainilai P , rumus enkripsi akan menghasilkan nilai b yang benar. Jadi kita cobadua kemungkinan: pasangan “D-A” (yang menghasilkan b = 3) dan pasangan
“Q-A” (yang menghasilkan b = 16). Hasil yang dicari adalah nilai b yang jikadigunakan untuk mendekripsi naskah acak akan menghasilkan naskah asli yang“masuk akal.”
Pasangan Kode Kode Nilai b Hasil DekripsiAcak Asli
D-A 3 0 b = 3 Jangan rahasiakan pesan ini!Q-A 16 0 b = 16 Wnatna enunfvnxna crfna vav!
Tabel 2.5: Hasil analisa frekuensi
Berdasarkan hasil analisa frekuensi, yang “masuk akal” hanya b = 3 denganhasil dekripsi “Jangan rahasiakan pesan ini!”, jadi kita dapat cukup yakinbahwa parameter b = 3.
Analisa frekuensi diatas didasarkan pada pengetahuan bahwa naskah asliadalah dalam bahasa Indonesia dimana huruf “A” mempunyai statistik fre-kuensi penggunaan terbesar3. Tentunya naskah asli tidak akan selalu mempu-
nyai statistik yang mirip dengan data empiris. Tetapi secara umum, semakinpanjang naskah yang digunakan untuk analisa, semakin besar kemungkinanstatistik penggunaan akan mirip dengan data empiris, yang berarti semakin be-sar kemungkinan analisa frekuensi akan sukses. Dalam contoh diatas, statistikpenggunaan huruf “A” cukup mirip dengan data empiris, jadi analisa frekuensiberhasil.
Untuk shift transformation , karena rumus transformasi sangat sederhanahanya dengan satu parameter, setiap percobaan cukup dengan menggunakansatu persamaan. Strategi pencarian yang baik adalah dengan mencoba pa-sangan yang mempunyai frekuensi penggunaan yang besar (huruf acak yangfrekuensinya besar dalam naskah acak dipasangkan dengan huruf asli yangfrekuensinya juga besar menurut data empiris). Semakin besar frekuensi terbe-sar dalam data empiris, secara umum berarti semakin besar redundancy darisegi teori informasi, yang akan mempermudah analisa frekuensi.
Jika rumus transformasi lebih rumit dengan lebih dari satu parameter, makasetiap percobaan harus dilakukan dengan lebih dari satu persamaan, denganbanyaknya persamaan yang dibutuhkan sedikitnya sama dengan banyaknya
parameter yang harus dicari.3Untuk bahasa Inggris, frekuensi terbesar adalah untuk huruf “E” dan statistik penggu-
naan untuk semua huruf cukup diketahui berdasarkan pengamatan empiris.
8/20/2019 Buku Kriptografi
33/457
2.3. CRYPTANALYSIS 13
Untuk sukses dalam analisa frekuensi, dibutuhkan pengetahuan empiris me-ngenai statistik penggunaan huruf, naskah acak yang dapat dianalisa haruscukup besar, rumus atau seminimnya jenis enkripsi harus diketahui (jika ru-mus tidak diketahui tetapi jenis enkripsi diketahui berupa simple substitution ,setiap huruf acak harus dipasangkan dengan huruf asli). Untuk analisa fre-
kuensi yang rumit, penggunaan komputer sangat membantu.Pada umumnya, semakin besar data yang digunakan sebagai dasar, baik
untuk probabilitas a priori seperti frekuensi penggunaan huruf, maupun yangbersifat a posteriori yaitu naskah acak, semakin pasti (tidak tentatif) hasil per-cobaan kalkulasi. Sebagai contoh, untuk shift transformation dengan perben-daharaan 26 huruf dan naskah dalam bahasa Inggris, analisa frekuensi dengannaskah acak sebesar 50 karakter atau lebih akan mendapatkan hasil dengankepastian mendekati 100 persen, berdasarkan pengetahuan a priori mengenai
penggunaan huruf dalam bahasa Inggris.Secara umum, enkripsi yang rentan terhadap known plaintext attack yangdeterministik juga rentan terhadap analisa frekuensi, jika data empiris menge-nai statistik naskah asli diketahui. Ini karena analisa frekuensi dapat dipandangsebagai suatu known plaintext attack yang probabilistik, dimana pasangan nas-kah asli - naskah acak diterka atau diperkirakan berdasarkan data empiris.
Analisa frekuensi lebih mudah dilakukan pada substitution cipher diban-dingkan dengan block cipher . Enigma berhasil dipecahkan oleh pihak sekutumenggunakan analisa frekuensi karena enkripsi yang digunakan Enigma adalah
substitution cipher , meskipun jenisnya adalah polyalphabetic (pertukaran huruf berubah terus). Analisa frekuensi terhadap polyalphabetic substitution cipher memang jauh lebih sukar dibandingkan dengan analisa frekuensi terhadap sim-ple substitution cipher , tetapi jauh lebih mudah dibandingkan analisa frekuensiterhadap block cipher . Fakta ini serta beberapa kelemahan Enigma lainnya,seperti tidak pernah menukar huruf dengan huruf yang sama, berhasil dieks-ploitasi oleh pihak sekutu dibawah pimpinan Alan Turing.
Analisa frekuensi merupakan contoh dari analisa statistik yang tergolongsederhana. Kita akan bahas analisa statistik yang lebih canggih yaitu linear
cryptanalysis dan differential cryptanalysis di bab 8 setelah kita bahas block cipher .
2.3.3 Brute Force Search
Satu dari kriteria sistem enkripsi yang baik adalah bahwa dekripsi tanpa kuncihanya dapat dipecahkan dengan cara brute force search dimana semua ke-mungkinan kunci harus dicoba. Tentunya jumlah kemungkinan kunci harus
cukup besar sehingga diperlukan waktu yang sangat lama untuk mencoba se-mua kunci. Jika jumlah kunci yang harus dicoba kurang besar, maka sistemenkripsi rentan terhadap analisa brute force search .
8/20/2019 Buku Kriptografi
34/457
14 BAB 2. KONSEP-KONSEP DASAR
Besarnya kunci enkripsi (jumlah bit dalam kunci enkripsi) menentukan jum-lah kemungkinan kunci yang harus dicoba dalam brute force search . Untukkunci sebesar n bits , jumlah kemungkinan kunci adalah 2n dan rerata, kunciakan ditemukan setelah kita mencoba 2n−1 kemungkinan (setengah dari se-mua kemungkinan). Jadi enkripsi rentan terhadap brute force search jika 2n
kemungkinan kunci dapat dicoba dalam waktu yang tidak terlalu lama. Ten-tunya selain tergantung pada jumlah kemungkinan kunci yang harus dicoba,waktu yang diperlukan juga tergantung pada kemampuan hardware yang digu-nakan. Juga batas “waktu yang tidak terlalu lama” tergantung pada aplikasi,apakah kurang dari 1 bulan, kurang dari 5 tahun, kurang dari 1000 tahun, atauada batas waktu lain.
Caesar cipher , selain dapat dipecahkan dengan analisa frekuensi atau known plaintext attack , dapat juga dipecahkan dengan brute force search karena se-
mua kemungkinan kunci (b = 1 sampai dengan b = 25) dapat dicoba dalamwaktu yang tidak terlalu lama. Kita gunakan contoh naskah acak yang digu-nakan dalam analisa frekuensi (lihat 2.3.2), yaitu “Mdqjdq udkdvldndq shvdq lql!”.
Tabel 2.6 memperlihatkan hasil brute force search terhadap naskah acakCaesar cipher . Dari semua kemungkinan kunci, hanya b = 3 yang “masukakal.” Karena jumlah kemungkinan kunci cukup kecil, brute force search dapatdilakukan tanpa menggunakan komputer. Jika jumlah kunci yang harus dicobasangat besar, komputer dapat digunakan untuk membantu analisa.
Besar kunci enkripsi ikut menentukan sukses dari brute force search . De-ngan kemajuan dibidang hardware untuk melakukan brute force search (hard-ware khusus dapat dibuat untuk melakukan brute force search terhadap kunciblock cipher ), enkripsi block cipher dengan besar kunci 56 bit (jadi ada 256 ke-mungkinan) kini dapat dipecahkan dalam waktu yang tidak terlalu lama (kira-kira puluhan menit) dengan hardware seharga 1 juta USD. Dengan hardwareyang lebih banyak, waktu yang diperlukan menjadi semakin singkat denganperbandingan waktu inverse proportional terhadap harga. Untuk keamanan,sebaiknya enkripsi block cipher menggunakan kunci minimum 128 bit. Data
Encryption Standard (DES) hanya menggunakan 56 bit untuk kunci, jadi se-baiknya diganti dengan 3DES atau block cipher lain seperti CAST, AES danBlowfish.
2.4 Manajemen Kunci
Aspek manajemen kunci sangat penting dalam aplikasi kriptografi. Mana- jemen kunci yang tidak baik dapat berakibat fatal. Konon4, di masa perang
dingin, pihak Uni Soviet “kecurian” rahasia penting oleh pihak Amerika Serikat
4Tidak diverifikasi oleh penulis.
8/20/2019 Buku Kriptografi
35/457
2.4. MANAJEMEN KUNCI 15
Nilai b Hasil Dekripsib = 1 Lcpicp tcjcukcmcp rgucp kpk!b = 2 Kbohbo sbibtjblbo qftbo joj!b = 3 Jangan rahasiakan pesan ini!b = 4 Izmfzm qzgzrhzjzm odrzm hmh!b = 5 Hyleyl pyfyqgyiyl ncqyl glg!b = 6 Gxkdxk oxexpfxhxk mbpxk fkf!b = 7 Fwjcwj nwdwoewgwj laowj eje!b = 8 Evibvi mvcvndvfvi kznvi did!b = 9 Duhauh lubumcueuh jymuh chc!
b = 10 Ctgztg ktatlbtdtg ixltg bgb!b = 11 Bsfysf jszskascsf hwksf afa!b = 12 Arexre iryrjzrbre gvjre zez!
b = 13 Zqdwqd hqxqiyqaqd fuiqd ydy!b = 14 Ypcvpc gpwphxpzpc ethpc xcx!b = 15 Xobuob fovogwoyob dsgob wbw!b = 16 Wnatna enunfvnxna crfna vav!b = 17 Vmzsmz dmtmeumwmz bqemz uzu!b = 18 Ulyrly clsldtlvly apdly tyt!b = 19 Tkxqkx bkrkcskukx zockx sxs!b = 20 Sjwpjw ajqjbrjtjw ynbjw rwr!b = 21 Rivoiv zipiaqisiv xmaiv qvq!b = 22 Qhunhu yhohzphrhu wlzhu pup!b = 23 Pgtmgt xgngyogqgt vkygt oto!b = 24 Ofslfs wfmfxnfpfs ujxfs nsn!b = 25 Nerker velewmeoer tiwer mrm!
Tabel 2.6: Mencoba semua kemungkinan kunci Caesar cipher
akibat masalah dalam manajemen kunci. Ternyata pihak Uni Soviet, karenamasalah kurangnya dana, mengguna-ulang kode untuk enkripsi one-time pad .Pihak Amerika Serikat berhasil menggunakan kesalahan ini untuk memecahkansebagian komunikasi rahasia pihak Uni Soviet.
Proses pembuatan kunci sangat penting dan sebaiknya proses ini benaracak. Sumber acak (entropi) dapat diambil dari proses fisika acak sepertiproses radio-aktif. Sumber acak dapat juga diambil dari berbagai kejadian(events ) yang muncul secara acak. Operating system seperti unix mengguna-kan kombinasi system events termasuk interrupts sebagai sumber entropi5, yang
5Dalam suatu operating system biasanya pembuatan entropi menggunakan kombinasi daribanyak sumber agar entropi yang cukup besar didapatkan dalam jangka waktu yang cukup
8/20/2019 Buku Kriptografi
36/457
16 BAB 2. KONSEP-KONSEP DASAR
kemudian dikombinasikan dengan algoritma pseudo-random number generator menjadi random number generator . Aplikasi kriptografi dapat menggunakanrandom number generator yang disediakan operating system untuk pembuatankunci, akan tetapi sebaiknya ini dilakukan hanya jika random number generator yang disediakan cukup acak.
Distribusi kunci secara aman juga penting untuk keperluan pengamanankomunikasi. Sebagai contoh, untuk komunikasi yang diamankan dengan en-kripsi simetris, tentunya kedua mitra dalam komunikasi harus menggunakankunci yang sama. Kunci ini dapat dibuat oleh satu pihak dan dikirim secaraaman ke mitra komunikasi. Pengiriman kunci dapat dilakukan out-of-band yaitu menggunakan jalur khusus diluar jalur normal komunikasi, atau dilaku-kan in-band melalui jalur normal menggunakan sarana public key cryptography .Alternatif dari pengiriman kunci adalah key agreement , dimana kedua mitra
berpartisipasi membuat kunci tanpa dapat diketahui oleh pihak ketiga. Key agreement juga menggunakan sarana public key cryptography .
Penyimpanan kunci jelas sangat penting untuk pengamanan sistem enkripsisecara menyeluruh. Kunci yang disimpan secara sembrono akan mudah untuk“dicuri” oleh pihak yang tidak diinginkan. Solusi untuk penyimpanan kunciberaneka ragam, mulai dari penggunaan hardware khusus dimana semua proseskriptografi dilakukan didalam hardware khusus dan kunci enkripsi disimpandan tidak dapat keluar dari hardware, sampai dengan penyimpanan dalam file yang dienkripsi menggunakan password atau passphrase . Karena praktis,
metode terahir sangat populer, yang berarti pengamanan password menjadipenting.
Pengamanan password juga mempunyai beberapa masalah, dari masalahmanusia seperti menulis password di secarik kertas yang ditempelkan ke mejakerja, sampai dengan masalah sistem seperti program yang menyimpan pass-word dalam bentuk teks.
Pada dasarnya masalah akses terhadap sesuatu yang penting seperti kuncienkripsi menjadi masalah authentication dan tren saat ini mengarah pada mul-tiple factor authentication . Kebenaran identititas seseorang atau sesuatu dinilai
dari gabungan berbagai atribut yang cukup unik seperti sidik jari, pengetahuanpassword, dan kepemilikan sesuatu yang unik lainnya.
2.5 Operasi dasar
Operasi terpenting terhadap unit data dalam kriptografi adalah exclusive or (xor), seperti yang digunakan dalam enkripsi one-time pad . Operasi xor sa-ngat mudah implementasinya dalam hardware, dan prosesor komputer biasanyamemiliki instruksi untuk melakukan bitwise xor.
singkat.
8/20/2019 Buku Kriptografi
37/457
2.5. OPERASI DASAR 17
Jika one-time pad dapat digunakan dalam skala besar, maka enkripsi hanyamemerlukan operasi xor. Akan tetapi, one-time pad tidak praktis untuk peng-gunaan skala besar, oleh sebab itu diperlukan operasi lainnya yaitu substitusidan permutasi.
Substitusi adalah proses penukaran unit data secara utuh, seperti yang di-
lakukan dalam Caesar cipher dimana huruf ditukar dengan huruf. Operasiini membuat efek confusion (pembingungan) terhadap analisa statistik. Spe-sifikasi dan implementasi operasi ini dapat dilakukan menggunakan tabel jikatabel tidak terlalu besar, dengan nilai yang hendak ditukar digunakan sebagaiindeks tabel, dan nilai dalam tabel digunakan sebagai nilai penukar. Contohdari operasi substitusi menggunakan tabel adalah operasi substitusi S1 yangdigunakan algoritma DES, seperti terlihat pada tabel 2.7. Tabel mempunyai 4baris (dengan indeks 0, 1, 2, 3) dan 16 kolom (dengan indeks 0 sampai dengan15). Input 6 bit digunakan sebagai indeks baris dan kolom, dengan bit 1 danbit 6 menentukan indeks baris dan bit 2 sampai dengan bit 5 menentukan in-deks kolom. Sebagai contoh, jika input 6 bit adalah 011011, maka indeks barisadalah 1 (karena bit 1, 6 mempunyai nilai 01), dan indeks kolom adalah 13(karena bit 2, 3, 4, 5 mempunyai nilai 1101). Dengan input 011011, S1 akanmenghasilkan 4 bit 0101 karena baris 1 kolom 13 dalam tabel S1 mempunyainilai 5, yang dalam notasi biner 4 bit adalah 0101.
S1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Tabel 2.7: Tabel untuk S1
Jika tabel terlalu besar, biasanya operasi substitusi mempunyai rumus un-
tuk mengkalkulasi nilai tukar, seperti rumus enkripsi Caesar cipher dan rumusuntuk S-box AES. Caesar cipher dan S-box untuk AES, meskipun mempunyairumus yang elegan, dapat juga diimplementasikan menggunakan tabel karenatabel tidak terlalu besar. Akan tetapi, S-boxes untuk DES tidak memilikirumus yang elegan, jadi biasanya diimplementasikan menggunakan tabel.
Permutasi adalah proses penukaran posisi dalam unit data. Operasi inimembuat efek diffusion (pembauran) yang mempersulit analisa statistik. Ope-rasi ini dapat diimplementasikan dalam hardware secara efisien. Spesifikasioperasi permutasi dan implementasi dengan software biasanya dilakukan meng-
gunakan tabel. Posisi awal komponen data digunakan sebagai indeks tabel, dannilai dalam tabel digunakan sebagai posisi ahir komponen data. Operasi per-mutasi bersifat bijective map dimana tidak ada komponen data yang hilang
8/20/2019 Buku Kriptografi
38/457
18 BAB 2. KONSEP-KONSEP DASAR
dan tidak ada komponen data yang digandakan. Dalam kriptografi, komponendata dalam operasi permutasi biasanya berupa bit. Contoh operasi permutasiadalah Initial Permutation yang digunakan algoritma DES, seperti terlihat da-lam tabel 2.8. Posisi ahir bit digunakan sebagai indeks tabel, jadi nilai outputbit n sama dengan nilai input bit T (n) dimana T (n) adalah nilai komponen
n dalam tabel. Sebagai contoh, nilai output bit 1 sama dengan nilai inputbit 58, karena komponen pertama dalam tabel mempunyai nilai 58. Permu-tasi bit dapat diimplementasikan dalam hardware secara efisien karena hanyadibutuhkan koneksi antara posisi awal bit dengan posisi ahir bit. Jadi untukInitial Permutation hanya diperlukan 64 koneksi, dengan bit 58 input menjadibit 1 output, bit 50 input menjadi bit 2 output, dan seterusnya.
IP
58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7
Tabel 2.8: Tabel Initial Permutation
2.6 Ringkasan
Dalam bab ini, pembaca telah diperkenalkan dengan konsep enkripsi dan de-kripsi meskipun hanya secara garis besar. Pembaca juga diperkenalkan dengankonsep acak, suatu konsep yang sangat penting dalam kriptografi. Teknik en-kripsi one-time pad merupakan teknik enkripsi “sempurna” dari segi teoritis,meskipun dalam prakteknya banyak kendala penggunaannya. Kita melihat ba-gaimana analisa statistik dapat dipergunakan untuk memecahkan enkripsi yangkurang kuat. Pemecahan enkripsi juga dapat dipermudah jika kita mengetahuinaskah asli atau bagian dari naskah asli. Selain analisa statistik, pemecahanenkripsi juga dapat dilakukan dengan brute force search jika ruang pencarianrelatif tidak terlalu besar. Tidak kalah pentingnya dalam kriptografi adalahmasalah manajemen kunci, karena jika tidak hati-hati kunci dapat jatuh ke
tangan pihak yang tidak diinginkan. Yang terahir, pembaca diperkenalkan de-ngan operasi dasar yang banyak digunakan dalam kriptografi. Konsep-konsepyang diperkenalkan dalam bab ini akan digunakan pada bab-bab selanjutnya.
8/20/2019 Buku Kriptografi
39/457
Bab 3
Matematika I - Aritmatika
ModularAritmatika modular sangat berperan dalam kriptografi karena banyak digu-nakan dalam algoritma enkripsi, baik untuk enkripsi simetris maupun untukpublic key cryptography . Dalam aritmatika modular, konsep gcd digunakanantara lain untuk operasi inverse . Gcd dapat dikalkulasi secara efisien meng-gunakan algoritma Euclid, algoritma sangat penting yang telah berusia lebih
dari 2000 tahun. Bab ini menjelaskan gcd, algoritma Euclid dan aritmatikamodular. Akan tetapi, sebelum itu, kita definisikan terlebih dahulu beber-apa struktur aljabar yang banyak digunakan dalam aritmatika, yaitu group,monoid , ring dan field .
3.1 Group, Monoid, Ring dan Field
Definisi 1 (Group) Suatu group G dengan operasi biner
∗ adalah suatu him-
punan dengan struktur aljabar sebagai berikut:
• Jika a, b ∈ G maka (a ∗ b) ∈ G (closure).• a ∗ (b ∗ c) = (a ∗ b) ∗ c (associativity).• Terdapat elemen e ∈ G dimana a ∗ e = a = e ∗ a untuk setiap a ∈ G
(identity).
• Untuk setiap a
∈ G terdapat b
∈ G dengan a
∗b = e = b
∗a (inverse).
Untuk commutative group (dinamakan juga Abelian group), terdapat satu syarat lagi:
19
8/20/2019 Buku Kriptografi
40/457
20 BAB 3. MATEMATIKA I - ARITMATIKA MODULAR
• a ∗ b = b ∗ a (commutativity).
Sebagai contoh, pertambahan dengan bilangan bulat adalah Abelian group de-ngan himpunan semua bilangan bulat, operasi biner +, identity 0, dan −asebagai inverse untuk a.
Definisi 2 (Monoid) Suatu monoid G dengan operasi biner ∗ adalah suatu himpunan dengan struktur aljabar sebagai berikut:
• Jika a, b ∈ G maka (a ∗ b) ∈ G (closure).• a ∗ (b ∗ c) = (a ∗ b) ∗ c (associativity).• Terdapat elemen e ∈ G dimana a ∗ e = a = e ∗ a untuk setiap a ∈ G
(identity).
Untuk commutative monoid (dinamakan juga Abelian monoid), terdapat satu syarat lagi:
• a ∗ b = b ∗ a (commutativity).
Sebagai contoh, perkalian dengan bilangan bulat adalah Abelian monoid denganhimpunan semua bilangan bulat, operasi biner perkalian ·, dan identity 1.
Definisi 3 (Ring) Suatu ring R dengan operasi + dan · dan elemen 0 dan 1adalah suatu himpunan dengan struktur aljabar sebagai berikut:• R dengan operasi + mempunyai struktur Abelian group dengan identity
0.
• R dengan operasi · mempunyai struktur Abelian monoid dengan identity 1.
• a
·(b + c) = (a
·b) + (a
·c) (distributivity).
Jadi yang dimaksud dengan ring dalam buku ini adalah commutative ring with identity . Operasi a · b kerap disingkat menjadi ab. Sebagai contoh dari ring adalah aritmatika bilangan bulat dengan pertambahan dan perkalian. SimbolZ digunakan sebagai notasi untuk himpunan semua bilangan bulat. Simbol Ndigunakan sebagai notasi untuk himpunan semua bilangan bulat non-negatif (disebut juga bilangan natural). Walaupun N bukan ring (karena inverse per-tambahan tidak berlaku), N dengan prinsip well-ordering sangat berguna da-lam pembuktian yang membutuhkan prinsip induksi.
Definisi 4 (Field) Suatu field F adalah suatu ring dimana setiap 0 = a ∈ F mempunyai inverse perkalian a−1 dengan a · a−1 = 1.
8/20/2019 Buku Kriptografi
41/457
3.2. PRINSIP INDUKSI 21
Jadi suatu field adalah suatu ring R dimana R \{0} dengan operasi · memben-tuk Abelian group. Contoh dari field adalah aritmatika bilangan nyata dimanasemua bilangan kecuali 0 memiliki inverse perkalian. Aritmatika bilangan ra-sional juga merupakan contoh dari field . Simbol yang digunakan sebagai notasiuntuk himpunan semua bilangan nyata adalah R, sedangkan simbol yang di-
gunakan sebagai notasi untuk himpunan semua bilangan rasional adalah Q.Tentunya R dan Q juga merupakan ring , akan tetapi Z bukan field karenainverse perkalian tidak berlaku untuk bilangan bulat.
3.2 Prinsip Induksi
Banyak teorema dalam aljabar yang pembuktiannya membutuhkan prinsip in-duksi. Prinsip induksi berlaku pada proposisi mengenai bilangan natural (bi-
langan bulat non-negatif), tetapi dapat juga digeneralisasi sehingga berlakuuntuk proposisi mengenai bilangan ordinal. Dalam buku ini, kita cukup meng-gunakan prinsip induksi pada bilangan natural.
Teorema 1 (Prinsip Induksi) Jika P merepresentasikan proposisi menge-nai bilangan natural, kita gunakan notasi “ P (n)” untuk merepresentasikan “proposisi P berlaku untuk bilangan natural n.” Jika kita dapat buktikan bahwa:
(i) P (0), dan
(ii) P (n) =⇒ P (n + 1) untuk setiap n ∈ N.Maka P (n) berlaku untuk setiap bilangan n ∈ N.Secara informal sangat masuk akal mengapa prinsip induksi berlaku. Kitaumpamakan bahwa kita dapat buktikan (i) dan (ii). Dari (i) kita dapat buk-tikan P (0). Dari P (0) dan (ii) kita dapat buktikan P (1), dan langkah inidapat diulang m kali untuk membuktikan P (m). Karena kita dapat membuk-tikan P (m) untuk sembarang m
∈ N, maka seharusnya P (n) berlaku untuk
setiap n ∈ N. Akan tetapi secara matematis pembuktiannya agak sedikit lebihrumit karena melibatkan himpunan infinite yaitu N. Kita tidak akan mem-bahas pembuktian matematis yang formal karena membutuhkan pembahasanfondasi matematika.
P (0) diatas kerap disebut sebagai base case . Selain base case P (0), prinsipinduksi dapat juga digunakan dengan base case P (k) dimana k adalah bilangannatural bukan 0. Hasilnya adalah pembuktian P (n) untuk setiap n ∈ N dimanan ≥ k. Langkah induksi juga kerap dirumuskan sebagai berikut:
P (n − 1) =⇒ P (n) untuk setiap n > 0 atau n > k,dimana n ∈ N.
8/20/2019 Buku Kriptografi
42/457
22 BAB 3. MATEMATIKA I - ARITMATIKA MODULAR
Selain teorema 1, ada dua bentuk lain dari prinsip induksi yang seringdigunakan. Bentuk alternatif pertama adalah sebagai berikut (notasi ∀ berarti“untuk setiap”):
Teorema 2 Jika kita dapat buktikan bahwa:
(i) P (0), dan
(ii) ∀n ∈ N : (∀m ≤ n : P (m)) =⇒ P (n + 1).Maka ∀n ∈ N : P (n) berlaku.Prinsip induksi sebagaimana dalam teorema 2 disebut juga strong induction principle . Perbedaan antara kedua prinsip hanya terletak pada step case : de-ngan strong induction kita dapat menggunakan lebih banyak asumsi dalammembuktikan P (n + 1). Meskipun prinsip strong induction sepertinya meng-hasilkan mekanisme yang lebih ampuh, kita dapat buktikan bahwa sebenarnyakedua prinsip ekuivalen. Untuk menunjukkan bahwa P (n) dapat dibuktikanmenggunakan strong induction jika P (n) dapat dibuktikan menggunakan in-duksi (teorema 1) sangat mudah: pada step case , kita cukup melakukan in-stansiasi m = n. Untuk membuktikan sebaliknya, kita perlu membuktikanbahwa step case induksi dapat ditransformasi menjadi menjadi step case untukstrong induction . Kita gunakan notasi:
Q(n) = ∀
m ≤
n : P (m).
Jadi kita perlu membuktikan Q(n) dengan asumsi P (n). Kita buktikan inimenggunakan induksi. Untuk base case cukup mudah karena
Q(0) = ∀m ≤ 0 : P (m)= P (0).
Untuk step case kita perlu buktikan:
Q(n) =⇒ Q(n + 1).Karena Q(n) = ∀m ≤ n : P (m) dan P (n) =⇒ P (n + 1), maka
Q(n) =⇒ P (n + 1).Dari Q(n) dan P (n + 1) kita dapatkan Q(n + 1) dan selesailah pembuktiankita.
Bentuk alternatif kedua dari prinsip induksi adalah prinsip well-ordering sebagai berikut:
Teorema 3 Jika M adalah subset non-kosong dari N maka M mempunyai elemen terkecil (least element).
8/20/2019 Buku Kriptografi
43/457
3.3. GCD 23
Kita buktikan kontrapositif dari prinsip ini, yaitu jika M tidak mempunyaielemen terkecil maka M adalah himpunan kosong. Untuk membuktikan bahwaM adalah himpunan kosong, kita buktikan bahwa n /∈ M untuk setiap n ∈ N.Kita buktikan ini menggunakan prinsip strong induction . Untuk base case sangat mudah karena jika 0
∈ M maka 0 adalah elemen terkecil dalam M , jadi
0 /∈ M . Untuk step case , kita umpamakan ∀m ≤ n : m /∈ M dan kita harustunjukkan bahwa (n + 1) /∈ M . Jika (n + 1) ∈ M maka n + 1 adalah elementerkecil dalam M karena setiap bilangan natural yang lebih kecil dari n + 1tidak berada dalam M . Jadi (n + 1) /∈ M dan selesailah pembuktian kita.
3.3 GCD
Kita mulai penjelasan gcd dengan teorema mengenai pembagian:
Teorema 4 (Pembagian) Untuk setiap pasangan bilangan bulat a dan b de-ngan b > 0, terdapat pasangan unik bilangan bulat q dan r yang mematuhi persamaan:
a = qb + r dengan 0 ≤ r < b. (3.1)Teorema ini dapat dibuktikan menggunakan prinsip well ordering (teorema 3).Untuk itu kita gunakan dua himpunan “standard” yaitu:
• Z, himpunan dari semua bilangan bulat (integers ).
• N, himpunan dari semua bilangan bulat non-negatif (natural numbers ).Pertama, kita buat:
S = {a − nb|n ∈ Z} = {a, a + b, a − b, a + 2b, a − 2b , . . .},S + = S ∩ N = {a ∈ S |a ≥ 0}.
Jadi S merupakan himpunan semua bilangan bulat yang berbeda kelipatan bdari a. Karena sebagian dari elemen himpunan S adalah bilangan bulat non-
negatif, S + merupakan subset non-kosong dari N. Jadi kita dapat gunakanprinsip well-ordering , yang mengatakan bahwa S + mempunyai elemen terkecil,sebut saja r, yang berdasarkan definisi S , mempunyai bentuk r = a−qb denganq berupa bilangan bulat. Ini membuktikan bahwa untuk sepasang a dan bdengan b > 0, terdapat pasangan q dan r yang mematuhi persamaan
a = qb + r.
Karena r ∈ S +, maka 0 ≤ r. Karena r adalah elemen terkecil S +, maka r < b,sebab konsekuensi r
≥ b adalah S + mempunyai elemen r
−b yang lebih kecil
dari r, sesuatu yang tidak mungkin apabila r adalah elemen terkecil. Jadi
0 ≤ r < b.
8/20/2019 Buku Kriptografi
44/457
24 BAB 3. MATEMATIKA I - ARITMATIKA MODULAR
Untuk menunjukkan bahwa pasangan q dan r unik, kita umpamakan bahwa
a = qb + r
= q b + r
dengan0 ≤ r < b dan 0 ≤ r < b,
jadi r−r = (q −q )b. Jika q = q maka |q −q | ≥ 1, yang berarti |r−r| ≥ |b| = b,sesuatu yang tidak mungkin karena 0 ≤ r < b dan 0 ≤ r < b berarti perbedaanantara r dan r lebih kecil dari b. Oleh karena itu q = q dan akibatnya r = r.
Teorema mengenai pembagian diatas menjadi dasar dari konsep residue untuk bilangan bulat sebagai berikut. Membagi persamaan 3.1 dengan b, kitadapatkan:
ab
= q + rb
dengan 0 ≤ rb
0. Bagaimana dengan b < 0? Untuk
b
8/20/2019 Buku Kriptografi
45/457
3.4. ALGORITMA EUCLID 25
Definisi 5 (GCD) Jika d|a dan d|b maka d adalah pembagi persekutuan (com-mon divisor) dari a dan b. Untuk setiap pasangan bilangan bulat a dan b kecuali jika a = b = 0, pembagi persekutuan terbesar (greatest common divisor atau gcd) dari a dan b adalah bilangan bulat unik d dimana:
1. d merupakan pembagi persekutuan dari a dan b,
2. jika c merupakan pembagi persekutuan dari a dan b, maka c ≤ d.Dalam beberapa cabang matematika yang lebih abstrak, syarat 2 diubah de-ngan c|d menggantikan c ≤ d sehingga d dan −d keduanya merupakan gcd(a, b).Menurut teori abstrak mengenai struktur ring , jika d merupakan gcd(a, b) danu adalah sebuah unit 1 dalam struktur ring , maka ud juga merupakan gcd(a, b), jadi gcd belum tentu unik jadi bukan merupakan fungsi. Untuk bilangan bulat,
kita gunakan versi diatas agar gcd unik dan positif. Kita akan gunakan gcdversi abstrak dalam pembahasan beberapa konsep dalam teori ring .
3.4 Algoritma Euclid
Satu cara untuk mendapatkan gcd(a, b) adalah dengan membuat daftar semuafaktor dari a, membuat daftar semua faktor dari b, dan kemudian mencarifaktor terbesar yang ada dalam kedua daftar. Akan tetapi, untuk bilanganyang sangat besar, membuat daftar faktor bukanlah sesuatu yang mudah. Adacara yang jauh lebih efisien untuk mendapatkan gcd(a, b) yaitu dengan meng-gunakan algoritma Euclid (Euclidean algorithm ), yang seperti halnya denganChinese Remainder Theorem merupakan algoritma penting yang berusia lebihdari 2000 tahun.
Teorema yang digunakan sebagai dasar dari algoritma Euclid adalah sebagaiberikut:
Teorema 6 (Algoritma Euclid)
Jika a = qb + r maka gcd(a, b) = gcd(b, r).Untuk meyakinkan kita sendiri bahwa teorema diatas benar, kita tahu bahwa jika a = qb+r maka setiap pembagi persekutuan b dan r juga membagi qb+r =a. Juga, karena r = a − qb, setiap pembagi persekutuan a dan b juga membagir. Akibatnya setiap pembagi persekutuan a dan b juga merupakan pembagipersekutuan b dan r, dan setiap pembagi persekutuan b dan r juga merupakanpembagi persekutuan a dan b, jadi gcd(a, b) = gcd(b, r).
Algoritma Euclid menggunakan rumus diatas secara berulang untuk men-
dapatkan gcd, yaitu dengan memperkecil kedua bilangan yang dijadikan pa-tokan untuk gcd setiap kali mengulang, tanpa merubah nilai gcd itu sendiri.
1Untuk struktur ring bilangan bulat, ada dua unit : 1 dan −1.
8/20/2019 Buku Kriptografi
46/457
26 BAB 3. MATEMATIKA I - ARITMATIKA MODULAR
Hasil dari komputasi gcd didapat saat kedua patokan untuk gcd tidak dapatdiperkecil lagi.
Untuk melakukan komputasi d = gcd(a, b), pertama dilakukan preprocess-ing sebagai berikut:
1. Jika a = 0 maka d = |b| dan jika b = 0 maka d = |a| (gcd tidak dapatdikomputasi jika a = b = 0).
2. Karena gcd(a, b) = gcd(−a, b) = gcd(a, −b) = gcd(−a, −b), kita dapatmentransformasi komputasi menjadi d = gcd(|a|, |b|), jadi kedua bilanganmenjadi positif.
3. Karena gcd(a, b) = gcd(b, a), kita dapat saling tukar a dan b jika a < b,dengan hasil a ≥ b.
4. Jika a = b maka d = a.
Setelah preprocessing , jika a = 0, b = 0, dan a = b, maka komputasi sudahdirubah menjadi d = gcd(a, b) dengan a > b > 0.
Langkah berikutnya adalah membagi a dengan b menggunakan algoritmapembagian, mendapatkan quotient q 1 dan residue r1 (gcd(a, b) = gcd(b, r1)berdasarkan teorema 6):
a = q 1b + r1 dengan 0 ≤ r1 < b.Jika r1 = 0 maka b membagi a, jadi d = b dan kita selesai. Jika r1 = 0 kita bagib dengan r1 mendapatkan quotient q 2 dan residue r2 (gcd(a, b) = gcd(r1, r2)):
b = q 2r1 + r2 dengan 0 ≤ r2 < r1.Jika r2 = 0 maka r1 membagi b, jadi d = r1 dan kita selesai. Jika r2 = 0 kitateruskan (gcd(a, b) = gcd(r2, r3)):
r1 = q 3r2 + r3 dengan 0 ≤ r3 < r2,dan seterusnya jika r3 = 0, sampai kita dapatkan rn = 0 (sampai dengan lang-kah ini kita mengetahui bahwa gcd(a, b) = gcd(rn−2, rn−1) = gcd(rn−1, rn)):
rn−2 = q nrn−1 + rn dengan rn = 0.
Dengan rn = 0, kita tahu bahwa rn−1 membagi rn−2, jadi d = rn−1 dan kitaselesai. Tidak terlalu sulit untuk melihat bahwa algoritma Euclid akan berhentipada suatu rn dengan n ≥ 0, karena tidak mungkin terdapat deretan
r1 > r2 > r3 > . . .
yang tidak berhenti (dimana setiap ri merupakan bilangan bulat positif).
8/20/2019 Buku Kriptografi
47/457
3.4. ALGORITMA EUCLID 27
Sebagai contoh, mari kita kalkulasi gcd(1485, 1745) = gcd(1745, 1485):
1745 = 1 · 1485 + 2601485 = 5 · 260 + 185
260 = 1
·185 + 75
185 = 2 · 75 + 3575 = 2 · 35 + 535 = 7 · 5 + 0.
Jadi gcd(1485, 1745) = 5.Sebagai konsekuensi dari algoritma Euclid, kita dapatkan gcd(a, b) sebagai
kombinasi linear dari a dan b:
Teorema 7 Untuk setiap pasangan bilangan bulat a dan b, kecuali a = b = 0,
terdapat pasangan bilangan bulat u dan v yang mematuhi:
gcd(a, b) = au + bv.
Pasangan u dan v dapat kita cari menggunakan persamaan-persamaan yangdigunakan dalam algoritma Euclid. Menggunakan contoh diatas:
5 = 75 − 2 · 35= 75 − 2 · (185 − 2 · 75)= −2 · 185 + 5 · 75= −2 · 185 + 5 · (260 − 185)= 5 · 260 − 7 · 185= 5 · 260 − 7 · (1485 − 5 · 260)= −7 · 1485 + 40 · 260= −7 · 1485 + 40 · (1745 − 1485)= −47 · 1485 + 40 · 1745.
Kita dapatkan pasangan u =
−47 dan v = 40 sebagai solusi. Pasangan u dan v
tidak unik karena kita bisa tambahkan atau kurangkan kombinasi linear a danb yang mempunyai nilai 0 tanpa mempengaruhi nilai d. Jadi jika ua + vb = 0dengan u = 0 atau v = 0 (contohnya u = b dan v = −a), kita dapatkand = (u + u)a + (v + v)b dengan u + u = u atau v + v = v (pasangan u + udan v + v tidak sama dengan pasangan u dan v). Sebagai contoh:
5 = 1698 · 1485 + (−1445) · 1745
Algoritma Euclid dapat direvisi agar sekaligus mendapatkan pasangan u
dan v disamping mendapatkan gcd d. Algoritma yang sudah direvisi disebut juga extended Euclidean algorithm . Untuk a,b > 0, extended Euclidean algo-rithm mencari d = gcd(a, b), u dan v dengan d = au + bv. Agar yakin bahwa
8/20/2019 Buku Kriptografi
48/457
28 BAB 3. MATEMATIKA I - ARITMATIKA MODULAR
algoritma benar, kita gunakan konsep loop invariant , yaitu suatu proposisi yangberlaku pada setiap putaran. Loop invariant yang digunakan adalah
gcd(a, b) = gcd(A, B), A = au + bv dan B = as + bt.
Langkah-langkah untuk algoritma adalah sebagai berikut:
1. A ← a, B ← b, u ← 1, v ← 0, s ← 0, t ← 1.2. q ← A div B.3. r ← A − qB.4. A ← B, B ← r, U ← u, U ← v.5. u
← s, v
← t, s
← U
−qs,t
← V
−qt.
6. Jika B = 0 kita ulangi dari langkah 2.7. d ← A dan kita selesai.
Operasi div adalah operasi pembagian dibulatkan kebawah. Setelah langkah 1,loop invariant berlaku karena A = a, B = b, u = 1, v = 0, s = 0, t = 1 berarti
gcd(a, b) = gcd(A, B),
au + bv = a · 1 + b · 0 = a = A, danas + bt = a · 0 + b · 1 = b = B.
Kita harus tunjukkan bahwa jika loop invariant berlaku pada langkah 2, loopinvariant juga berlaku pada langkah 6. Untuk keperluan ini, kita gunakannotasi A, B, u, v, s, t sebagai nilai A, B,u, v, s, t pada saat langkah 2 dimulai.Langkah 2 dan 3 mendapatkan quotient q dan residue r, jadi A = qB + r.Menggunakan teorema 6, kita dapatkan
gcd(a, b) = gcd(A, B) = gcd(B, r).
Langkah 4 membuat A = B dan B = r, jadi
gcd(a, b) = gcd(B, r) = gcd(A, B)
setelah langkah 5 (langkah 5 tidak mengubah A dan B). Jadi gcd(a, b) =gcd(A, B) berlaku pada langkah 6.
A = B (dari langkah 4)
= as + bt (dari loop invariant pada langkah 2)
= au + bv (karena langkah 5 membuat u = s dan v = t).
8/20/2019 Buku Kriptografi
49/457
3.4. ALGORITMA EUCLID 29
Jadi au + bv = A berlaku pada langkah 6.
B = r (dari langkah 4)
= A − qB = au + bv
−qB (dari loop invariant pada langkah 2)
= au + bv − q (as + bt) (dari loop invariant pada langkah 2)= a(u − qs) + b(v − qt)= as + bt (langkah 5 membuat s = u − qs dan t = v − qt).
Jadi as + bt = B berlaku pada langkah 6. Akibatnya seluruh loop invariant berlaku pada langkah 6. Pada langkah 7, kita dapatkan B = 0 jadi
gcd(a, b) = gcd(A, B) = gcd(A, 0) = A = d
dand = A = au + bv.
Jadi algoritma benar mengkalkulasi d = gcd(a, b) dan mendapatkan u, v dengand = au + bv.
Teorema 8 Untuk setiap pasangan bilangan bulat a dan b kecuali a = b = 0dengan d = gcd(a, b) dan bilangan bulat c, persamaan:
c = ax + by dengan (x, y
∈ Z)
mempunyai solusi jika dan hanya jika ( ⇐⇒) c merupakan kelipatan d.Untuk membuktikan bahwa c harus merupakan kelipatan d, kita gunakan
fakta bahwa d membagi a dan b, alhasil d membagi c = ax + by. Untukmembuktikan bahwa setiap kelipatan d (sebut saja c = de dengan e bilanganbulat apa saja) merupakan solusi, teorema 7 memberikan d = au + bv untuksepasang bilangan bulat u dan v, akibatnya c = de = aue + bve, jadi denganx = ue dan y = ve kita dapatkan c = ax + by.
Definisi 6 (Koprima) Sepasang bilangan bulat a dan b disebut koprima (co-prime atau relatively prime) jika gcd(a, b) = 1.
Teorema 9 Sepasang bilangan bulat a dan b koprima jika dan hanya jika ( ⇐⇒) ada pasangan bilangan bulat x dan y yang mematuhi persamaan:
ax + by = 1.
Untuk membuktikan bahwa ada pasangan bilangan bulat x dan y dimana per-samaan ax +by = 1 berlaku jika a dan b koprima, cukup menggunakan teorema
7 dengan u = x dan v = y. Untuk membuktikan bahwa jika ax + by = 1 berartia dan b koprima, kita gunakan teorema 8 dengan c = 1, jadi karena d harusmembagi c, maka d = 1, yang berarti a dan b koprima.
8/20/2019 Buku Kriptografi
50/457
30 BAB 3. MATEMATIKA I - ARITMATIKA MODULAR
3.5 Aritmatika Modular
Saat membahas analisa statistik (lihat 2.3.2), contoh Caesar cipher digunakandengan enkripsi dan dekripsi yang rumusnya bersifat aritmatika. Aritmatikaadalah matematika pertambahan dan