• Tidak ada hasil yang ditemukan

BAB II

LANDASAN TEORI

2.1 Kriptografi

Kriptografi adalah ilmu dan seni yang mempelajari teknik–teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Pada mulanya kriptografi bertujuan untuk merahasiakan pesan. Kata „seni‟ pada definisi di atas, berasal dari fakta sejarah bahwa pada masa awal–awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara– cara unik tersebut mungkin berbeda–beda pada setiap pelaku kriptografi sehingga setiap penulisan pesan rahasia mempunyai nilai estetika tersendiri. Sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” pada “cryptography” itu sendiri sudah menyiratkan sebuah seni).

Berikut ini adalah penjelasan mengenai aspek keamanan yang disediakan oleh kriptografi tersebut:

Kerahasiaan (confidentiality)

Layanan yang digunakan untuk menjaga isi pesan dari siapa pun yang tidak berhak untuk membacanya. Di dalam kriptografi, layanan ini umumnya direalisasikan dengan cara menyandikan pesan menjadi bentuk yang tidak dapat dimengerti.

7

Integritas data (data integrity)

Layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan: "Apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?". Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain ke dalam pesan yang sebenarnya.

Otentikasi (authentication)

Layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan: "Apakah pesan yang diterima benar-benar berasal dari pengirim yang benar-benar?". Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan.

8

Nirpenyangkalan (non-repudiation)

Layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. Nirpenyangkalan tampak dalam kalimat berikut: "Saya menyangkal telah mengirim pesan ini termasuk isinya".[6]

2.1.1 Konsep Tandatangan Digital

Sejak berabad-abad lamanya, tanda tangan digunakan untuk membuktikan otentikasi dokumen kertas (misalnya surat, piagam, ijazah, buku, karya seni, dan sebagainya). Tanda-tangan mempunyai karakteristik sebagai berikut

 Tanda-tangan adalah bukti yang otentik.

 Tanda tangan tidak dapat dilupakan.

 Tanda-tangan tidak dapat dipindah untuk digunakan ulang.

 Dokumen yang telah ditandatangani tidak dapat diubah.

 Tanda-tangan tidak dapat disangkal (repudiation).

Fungsi tanda tangan pada dokumen kertas juga diterapkan untuk otentikasi pada data digital seperti pesan yang dikirim melalui saluran komunikasi dan dokumen elektronis yang disimpan di dalam memori komputer. Tanda tangan pada data digital ini dinamakan tanda-tangan digital (digital signature). Yang dimaksud dengan tanda-tangan digital bukanlah tanda tangan yang di digitisasi dengan alat scanner, tetapi suatu

9 nilai kriptografis yang bergantung pada pesan dan pengirim pesan (Hal ini kontras dengan tanda tangan pada dokumen kertas yang bergantung hanya pada pengirim dan selalu sama untuk semua dokumen). Dengan tanda-tangan digital, maka integritas data dapat dijamin, disamping itu ia juga digunakan untuk membuktikan asal pesan (keabsahan pengirim), dan nirpenyangkalan. Menandatangani pesan dapat dilakukan dengan salah satu dari dua cara:

Enkripsi pesan

Mengenkripsi pesan dengan sendirinya juga menyediakan ukuran otentikasi. Pesan yang terenkripsi sudah menyatakan bahwa pesan tersebut telah ditandatangani.

Tanda tangan digital dengan fungsi hash (hash function)

Tanda-tangan digital dibangkitkan dari hash terhadap pesan. Nilai hash adalah kode ringkas dari pesan. Tanda tangan digital berlaku seperti tanda-tangan pada dokumen kertas. Tanda-tangan digital ditambahkan (append) pada pesan.

2.1.2 Fungsi Hash

Di dalam kriptografi terdapat sebuah fungsi yang sesuai untuk aplikasi keamanan seperti otentikasi dan integritas pesan. Fungsi tersebut adalah fungsi hash (kadang-kadang dinamakan juga fungsi hash kriptografi). Fungsi hash adalah fungsi yang menerima masukan string yang panjangnya sebarang dan mengkonversinya menjadi string keluaran yang

10 panjangnya tetap (fixed) (umumnya berukuran jauh lebih kecil daripada ukuran string semula). Fungsi hash dapat menerima masukan string apa saja. Jika string menyatakan pesan (message), maka sebarang pesan M berukuran bebas dikompresi oleh fungsi hash H melalui persamaan

) (M H h

Keluaran fungsi hash disebut juga nilai hash (hash-value) atau pesan-ringkas (message digest). Pada persamaan di atas, h adalah nilai hash atau message digest dari fungsi H untuk masukan M. Dengan kata lain, fungsi hash mengkompresi sembarang pesan yang berukuran berapa saja menjadi message digest yang ukurannya selalu tetap (dan lebih pendek dari panjang pesan semula). Gambar 2.1 memperlihatkan contoh dua buah pesan dengan panjang yang berbeda-beda setelah di hash menghasilkan pesan ringkas yang panjangnya tetap (dalam contoh ini pesan ringkas dinyatakan dalam kode heksadesimal yang panjangnya 128 bit. Satu karakter heksadesimal = 4 bit). Nama lain fungsi hash adalah: fungsi kompresi/kontraksi (compression function), cetak-jari (fingerprint), cryptographic checksum, message integrity check (MIC) dan manipulation detection code (MDC).

masukan Nilai hash

Gambar 2.1 input dan output fungsi hash

aa6df57fb6fe377d80b4a257b4a92cba Halo Fungsi hash

Nomor teleponku 08122113451

Fungsi hash 09c88f0b91d74b292 e6f89587ab63921

11 Aplikasi fungsi hash antara lain untuk memverifikasi kesamaan salinan suatu arsip dengan arsip aslinya yang tersimpan di dalam sebuah basis data terpusat. Dari pada mengirim salinan arsip tersebut secara keseluruhan ke komputer pusat (yang membutuhkan waktu transmisi lama dan ongkos yang mahal), lebih efisien mengirimkan message digest-nya saja. Jika message digest salinan arsip sama dengan message digest arsip asli, berarti salinan arsip tersebut sama dengan arsip di dalam basis data.

2.1.3 Fungsi Hash Satu Arah

Fungsi hash satu-arah (One-way Hash) adalah fungsi hash yang bekerja dalam satu arah: pesan yang sudah diubah menjadi message digest tidak dapat dikembalikan lagi menjadi pesan semula. Dua pesan yang berbeda akan selalu menghasilkan nilai hash yang berbeda pula. Sifat-sifat fungsi hash satu-arah adalah sebagai berikut [5]:

 Fungsi H dapat diterapkan pada blok data berukuran berapa saja.

H menghasilkan nilai (h) dengan panjang tetap (fixed-length output).

H(x) mudah dihitung untuk setiap nilai x yang diberikan.

 Untuk setiap h yang diberikan, tidak mungkin menemukan x sedemikian sehingga H(x) = h. Itulah sebabnya fungsi H dikatakan fungsi hash satu-arah (oneway hash function).

 Untuk setiap h yang diberikan, tidak mungkin mencari y ≠ x sedemikian sehingga H(x)H(y).

12

 Tidak mungkin (secara komputasi) mencari pasangan x dan y sedemikian sehingga H(x)H(y)

Keenam sifat di atas penting sebab sebuah fungsi hash seharusnya berlaku seperti fungsi acak (randomize). Sebuah fungsi hash dianggap tidak aman jika secara komputasi dimungkinkan menemukan pesan yang bersesuaian dengan pesan ringkasnya, dan terjadi kolisi (collision), yaitu terdapat beberapa pesan berbeda yang mempunyai pesan ringkas yang sama.

Fungsi hash bekerja secara iteratif. Masukan fungsi hash adalah blok pesan (M) dan keluaran dari hashing blok pesan sebelumnya,

) ,

( 1

H Mi hi h

Fungsi Hash adalah Publik (tidak dirahasiakan) dan keamanannya terletak pada sifat satu arahnya. Ada beberapa fungsi hash satu-arah yang sudah dibuat orang, antara lain: MD2, MD4 MD5, Secure Hash Function (SHA), RIPMEND, WHIRPOOL, dan lain–lain. Fungsi Hash yang banyak digunakan didalam kriptografi adalah MD5 dan SHA.

2.1.4 Fungsi Hash MD 5

Fungsi hash MD5 adalah fungsi hash satu-arah yang dibuat oleh Ronald Rivest pada tahun 1991. Fungsi hash MD5 merupakan perbaikan dari MD4 setelah MD4 berhasil diserang oleh kriptanalis. Algoritma MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan message digest yang panjangnya 128 bit. Langkah–langkah

13 pembuatan message digest MD5 secara garis besar adalah mengolah masukan yang berupa blok 512 bit, dibagi kedalam 16 sub blok berukuran 32-bit. Keluaran algoritma diset menjadi 4 blok yang masing–masing berukuran 32-bit, dan setelah digabungkan akan membentuk nilai Hash 128 bit.[1]

Gambar 2.2 Pengolahan Pesan dalam Blok 512

2.1.5 Penandatanganan dan Verifikasi Tanda-tangan Digital Dengan MD5 Penandatanganan pesan dengan cara mengenkripsinya selalu memberikan dua fungsi yang berbeda: kerahasiaan pesan dan otentikasi. Sistem kriptografi kunci-publik sangat cocok untuk pemberian tandatangan digital dengan menggunakan fungsi hash. [6]

14 2.1.5.1 Pemberian Tanda-tangan Digital

Langkah–langkah pemberian tandatangan digital

 Pengirim pesan mula-mula menghitung message digest MD (dengan mentransformasikan pesan M dengan menggunakan fungsi hash MD5)

Message digest MD dienkripsi dengan algoritma kriptografi kunci-publik dan menggunakan kunci rahasia (SK) si pengirim. Hasil enkripsi inilah yang dinamakan dengan tanda-tangan digital S,

 Tandatangan digital S dilekatkan ke pesan M (dengan cara menyambung/append ) S, lalu keduanya dikirim melalui saluran komunikasi. Dalam hal ini, kita katakan bahwa pesan M sudah ditandatangani oleh pengirim dengan tanda-tangan digital S.

2.1.5.2 Verifikasi Tandatangan Digital

Langkah–langkah Verifikasi tandatangan digital

Tanda-tangan digital S didekripsi dengan menggunakan kunci publik (PK) pengirim pesan, menghasilkan message digest semula, dengan persamaansebagai berikut:

MD = DPK(S)

Penerima kemudian mengubah pesan M menjadi message digest MD menggunakan fungsi hash satu-arah yang sama dengan fungsi hash yang digunakan oleh pengirim.

15

Jika MD = MD’ berarti tanda-tangan yang diterima otentik dan berasal dari pengirim yang benar.

penandatanganan dan pemverifikasian tanda-tangan digital yang menggunakan fungsi Hash MD5 ditunjukkan pada pada gambar berikut.

Gambar 2.3 Proses Penandatanganan dan Ferifikasi Pesan 2.2 Dasar–dasar Matematika Untuk MD 5

Peranan matematika sangat penting dalam membangun dan mengembangkan algoritma kriptografi khususnya untuk algoritma kriptografi MD5. Berikut adalah beberapa teorema yang mendukung terhadap proses hashing pada algoritma MD5.

16 2.2.1 Fungsi Satu Arah

Didalam kriptografi terdapat fungsi yang penting, yaitu fungsi satu arah (ona-way function) fungsi satu arah didefinisikan sebagai berikut.

Fungsi f dari yang memetakan himpunan A ke himpunan B dikatakan fungsi satu-arah jika f(x) “mudah” dihitung untuk semua xA tetapi “sangat sukar” atau bahkan “hampir tidak mungkin secara komputasi” menemukan inversnya, yaitu menemukan x sedemikian sehingga f(x) = y untuk semua y anggota jelajah f.

Contoh:

Misalkan X = {1,2,3,4………10} didefinisikan fungsi f pada X sedemikian sehingga f(x) = f(x)3xmod11untuk semua x anggota X, jelas kita mudah menghitung f(1) = 3, f(2) = 9, f(3) = 5, f(4) = 4, f(5) = 1, f(6) = 3, f(7) = 9, f(8) = 5, f(9) = 4, f(10) = 1. tetapi, sangat sukar menemukan x sedemikian sehingga f(x)=4. Pekerjaan menemukan x semakin sukar lagi jika bilangan yang digunakan adalah bilangan yang besar.

2.2.2 Relasi Keterbagian Definisi 2.2.2

Diberikan suatu bilangan bulat a, b dengan a

0. Bilangan a dikatakan membagi habis bilangan b (a divides b) ditulis a | b, jika dan hanya jika ada bilangan bulat k sedemikian sehingga b = ka.[3]

17 Jika a | b dan k adalah bilangan bulat dengan b = ka maka k disebut hasil bagi (quotient) dari b oleh a. Dapat juga disebut bahwa k adalah faktor dari b yang menjadi komplemen dari a. Jadi a dan k merupakan komplementer dari b.

Berikut beberapa sifat dari operasi pembagian, dengan asumsi bahwa 0

a .

Algoritma Pembagian

Teorema 2.2.2.a (Grimaldi,1999) Untuk semua a,b maka

a) [(| ) (| )ab ba]a b b) [(a|b)(b|c)]a|c

c) a|ba|bx untuk setiap x

d) [(a|b)(a|c)]a|(bxcy);x,y Bukti:

a). Karena |a b dan |b a maka ada bilangan bulat k dan m sedemikian sehingga bka dan amb. Jadi

( ) ( ).

a mkamka Karena a0 persamaan ini terpenuhi hanya jika mk1. Untuk m dan k bilangan bulat, persamaan ini terpenuhi hanya jika m k  1. Jadi a  b

b). Jika a|bdan b|cmaka menurut definisi 2.2.1 ada bilangan bulat k dan m sedemikian sehingga bka dan cmb. Oleh

18 karena bka maka cm( )kaatau ( )c mka sedemikian sehingga a|c

c). Jika a|b maka ada bilangan bulat k sedemikian sehingga

ka

b. Jika persamaan ini dikali dengan x maka atau ().Jadi |

bxkax bxkxa abx.

d). Jika a|bdan a|cmaka bka dan cma untuk suatu k

dan m bialngan bulat sehingga

( ) ( )

bxc y kax mayakx m(  y). Kita dapatkan )

(

| bx cy

a.

Misalkan a dan b adalah dua buah bilangan bulat dengan 0

b , maka a dibagi oleh b kita mendapatkan hasil bagi (quotient) dan sisa pembagian (remainder). Hal ini dinyatakan dalam teorema berikut ini yang dikenal dengan nama Algoritma Pembagian.

Teorema 2.2.2.b (Algoritma Pembagian)

Jika a dan b suatu bilangan bulat dengan b > 0 , maka ada bilangan bulat q dan r yang tunggal sedemikian sehingga

r bq

19 Bukti:

Jika b| maka a a bq r  dengan r = 0. Andaikan b tidak

membagi a. Untuk himpunan S a tbt Z  { | }, akan dibuktikan S memuat bilangan bulat positif. Jika a0dan t0ditulis

.

a a ob  Jadi aSdan dengan demikian S memuat bilangan

positif. Jika a0, ambil ta1 maka kita dapatkan ( 1)

a tb a a b    a(1 b b) . Karena b1 maka (1 b) 0 sehingga (1a  b) 0. Karena b0 maka a tb 0. Dalam hal ini kita dapatkan S memuat bilangan bulat positif . Sehingga merupakkan The Well Ordering Property (WOP), S memliki unsur positif terkecil andaikan itu r. Akan dibuktikan rb.

Jika rb maka a(q1)bb|a. Hal ini kontradiksi

dengan pernyataan bahwa b tidak membagi a.

Jika rb maka rbcuntuk cZ dan S b q a c c b r qb a(1).

Hal ini kontradiksi dengan pernyataan bahwa r adalah element terkecil dari S, oleh karena itu rb. Untuk membuktikan ketunggalan q dan r, andaikan aq1br1, untuk 0r1b dan

, 2 2b r q a  untuk 0r2b. Maka b r r q q b r b q r b q11221221,

20 karena 0r1,r2b. Hal ini terpenuhi hanya jika q1 q2 0 atau

1 2kitadapatkan1 2

qqr r. Jadi hasil bagi dan sisa adalah unik.

2.2.3 Aritmetika Modulo

Aritmetika modulo (modular arithmetic) memainkan peranan yang penting dalam komputasi integer, khususnya pada aplikasi kriptografi. Operator yang digunakan pada aritmetika modulo adalah mod. Operator mod memberikan sisa pembagian. Misalnya 23 dibagi 5 memberikan hasil 4 dan sisa 3, sehingga kita tulis 23 mod 5 = 3.

Definisi 2.2.3.1

Misalkan a adalah bilangan bulat dan m, q adalah bilangan bulat . Operasi a mod m ( dibaca a modulo m ) menghasilkan sisa pembagian a oleh m. Dengan kata lain a mod m = r Jika dan hanya jika a = mq + r, dengan 0rm [10].

Definisi 2.2.3.2 (Kekongruenan)

Misalkan a dan b adalah bilangan bulat dan m adalah bilangan bulat positif. Jika m membagi a – b, maka a dikatakan kongruen terhadap b modulo m ditulisab(modm). Bilangan bulat m disebut sebagai

21 Sifat-sifat Dasar Kekongruenan

Teorema 2.2.3.2.a

Misalkan m adalah bilangan bulat positif. Ambil sebarang bilangan bulat a, b dan c. Maka

(i) aa(modm)

(ii) Jika ab(modm)maka ba(modm)

(iii) Jika ab(modm) dan bc(modm)maka ac(modm) Teorema 2.2.3.2.b

Misalkan m adalah bilangan bulat positif.

1. Jika ab(modm) dan c adalah sembarang bilangan bulat maka

(i) (ac)(bc)(modm) (ii) acbc(modm)

(iii) apbp(modm) untuk suatu bilangan bulat tak ngatif p.

2. Jika ab(modm)dan cd(modm), maka (i) (ac)(bd)(mom) (ii) acbd(modm)

Dokumen terkait