buku kriptografi

Upload: lahendro

Post on 07-Aug-2018

363 views

Category:

Documents


16 download

TRANSCRIPT

  • 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

    [email protected]

  • 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