• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
22
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1.Pengenalan Kriptografi

Pengamanan komunikasi untuk mencegah pihak-pihak yang tidak berwenang dalam melakukan tindakan penyadapan terhadap data dan informasi yang dirasa sensitif, saat ini tidak hanya merupakan kebutuhan dari institusi militer ataupun pemerintah. Sektor bisnis dan bidang lainnya juga merasakan kebutuhan dalam bidang ini. Data yang sifatnya rahasia, otentifikasi informasi, dan keamanan file adalah beberapa elemen yang membutuhkan pengamanan pada komputer dan sistem komunikasi, dari modifikasi dan penyadapan oleh pihak-pihak yang tidak berwenang. Jika pengamanan untuk pengiriman dan penyimpanan data dapat disediakan, maka seluruh pesan dan data yang terlibat dalam komunikasi serta yang terdapat pada media penyimpanan akan seutuhnya aman. Salah satu sistem yang dapat melakukan ini adalah kriptografi. Sistem ini dapat menyembunyikan informasi dengan cara mengubahnya sebelum data tersebut disimpan pada unit penyimpanan yang tersedia [5].

Menezes (1996) dalam bukunya yang berjudul ”Handbook of Applied Cryptography”, menyatakan bahwa kriptografi merupakan suatu ilmu mengenai teknik matematis yang ditujukan pada aspek pengamanan data yang meliputi tingkat kepercayaan terhadap data tersebut, integritas data, otentikasi entitas data, otentifikasi terhadap keaslian data. Sedangkan Rhee (1994) dalam bukunya berjudul ”Cryptography And Secure Communication”, mendefenisikan kriptografi sebagai suatu ilmu mengenai kriptosistem dimana privasi dan otentikasi dari data dapat dijamin. Kurniawan (2004) dalam bukunya yang berjudul ”Kriptografi Keamanan Internet dan Jaringan Komunikasi”, menjelaskan bahwa kriptografi merupakan seni dan ilmu untuk menjaga keamanan pesan.

(2)

Pesan atau informasi yang dapat dibaca disebut sebagai plaintext. Plaintext

dinyatakan dengan M (message) atau P (plaintext). Pesan dapat berupa aliran bit, file teks, bitmap, aliran suara yang digitasi, gambar video digital dan sebagainya.

Teknik untuk membuat pesan menjadi tidak dapat dibaca disebut sebagai

enkripsi. Pesan yang tidak dapat dibaca tersebut disebut sebagai ciphertext. Proses yang merupakan kebalikan dari enkripsi disebut sebagai dekripsi. Jadi, enkripsi merupakan proses untuk mengubah pesan yang dapat dibaca (plaintext) menjadi suatu pesan yang tidak dapat dibaca (ciphertext). Sedangkan deskripsi merupakan suatu proses untuk mengembalikan pesan yang tidak dapat dibaca tadi (ciphertext), menjadi dapat dibaca kembali (plaintext). Secara matematis, proses umum enkripsi dijelaskan sebagai berikut:

E (P) = C

Jadi, proses enkripsi (E) plaintext (P) akan menghasilkan ciphertext C. Sedangkan proses umum deskripsi adalah sebagai berikut:

D (C) = P

Proses dekripsi (D) ciphertext (C), akan menghasilkan plaintext (P). Bagan di bawah ini akan menggambarkan lebih jelas lagi mengenai proses umum yang terjadi didalam kriptografi:

Plaintext Ciphertext Plaintext

Gambar 2.1 Proses umum dalam kriptografi (Sumber: Munir, 2006)

2.1.1 Sejarah dan Perkembangan Kriptografi

Kriptografi memiliki sejarah yang panjang dan mengagumkan. Penulisan rahasia ini dapat dilacak kembali ke 3000 tahun SM saat digunakan oleh bangsa Mesir. Mereka menggunakan hieroglyphcs untuk menyembunyikan tulisan dari mereka yang tidak diharapkan. Hieroglyphcs diturunkan dari bahasa Yunani hieroglyphica yang berarti ukiran rahasia. Hieroglyphs berevolusi menjadi hieratic, yaitu stylized script yang lebih mudah untuk digunakan [1].

(3)

Gambar 2.2 Jenis–jenis Hieroglyph (Sumber: Ariyus, 2008)

Sekitar 400 SM, kriptografi militer digunakan oleh bangsa Spartan dalam bentuk sepotong papirus atau perkamen dibungkus dengan batang kayu. Sistem ini disebut Scytale.

Gambar 2.3 Bentuk Scytale (Sumber: Ariyus, 2008)

Sekitar 50 SM, Julius Caesar, kaisar Roma, menggunakan cipher substitusi untuk mengirim pesan ke Marcus Tullius Cicero. Pada cipher ini, huruf-huruf apfabet disubstitusi dengan huruf-huruf yang lain pada alfabet yang sama. Karena hanya satu alfabet yang digunakan, cipher ini merupakan substitusi monoalfabetik. Cipher semacam ini mencakup penggeseran alfabet dengan 3 huruf dan mensubstitusikan huruf tersebut. Substitusi ini kadang dikenal dengan C3 (untuk Caesar menggeser 3 tempat).

2.1.2 Tujuan Kriptografi

Mengenai pengertian kriptografi, pada awal pembahasan telah dijelaskan bahwa kriptografi merupakan suatu ilmu mengenai teknik matematis yang ditujukan pada

(4)

aspek pengamanan data yang meliputi tingkat kepercayaan terhadap data tersebut, integritas data, dan otentifikasi terhadap keaslian data [5].

Untuk mencapai hal diatas, perlu ditetapkan suatu tujuan sebagai titik tolak dalam pengembangan ilmu kriptografi itu sendiri. Menurut Rhee (1994) tujuan dari kriptografi dapat memenuhi satu atau lebih dari hal-hal berikut ini:

1. Melakukan proteksi terhadap sistem komputer yang khusus ditujukan untuk pemrosesan dan penyimpanan data.

2. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk mengambil ataupun menghapus suatu informasi dari pesan-pesan yang dikirim melalui saluran terbuka.

3. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk memodifikasi data ataupun informasi pada saluran terbuka.

Sejalan dengan penjabaran dari Man Young Rhee, Menezes (1996) menjelaskan tujuan dari kriptografi dalam beberapa butir keterangan berikut ini:

a. Confidentiality.

Menjaga muatan informasi dari campur tangan pihak-pihak lain, selain yang memiliki otoritas.

b. Data Integrity.

Meyakinkan tidak terjadinya pengubahan data oleh pihak yang tidak memiliki otoritas. Untuk meyakinkan integritas dari suatu data, harus dapat dilakukan pendeteksian apakah data tersebut telah mengalami manipulasi. Manipulasi data meliputi penyisipan, penghapusan, dan pensubstitusian.

c. Authentification.

Fungsi untuk pemberian identifikasi. Fungsi ini diberikan baik kepada pengirim maupun kepada penerima informasi itu sendiri. Ke dua belah pihak yang ingin melakukan komunikasi sebaiknya dapat saling melakukan identifikasi. Informasi yang dikirimkan sebaiknya dapat dipastikan sumbernya, keasliannya, muatannya, waktu pembuatannya, dan lain-lain.

d. Non-Repudiation.

Mencegah suatu pihak yang menyangkal telah melakukan pengiriman pesan ataupun informasi.

(5)

2.2 Jenis-Jenis Algoritma Kriptografi

Terdapat 2 (dua) jenis algoritma kriptografi berdasarkan jenis kuncinya yaitu algoritma simetri (konvensional) dan algoritma asimetri (kunci publik). [5].

2.2.1 Algoritma Simetri

Algoritma simetri disebut juga sebagai algoritma konvensional adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Disebut konvensional karena algoritma yang biasa digunakan orang sejak berabad-abad yang lalu adalah algoritma jenis ini. Algoritma simetri sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan algoritma simetri tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkrip dan mendekrip pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan [8].

Kriptografi yang termasuk algoritma kunci simetri adalah OTP, DES, RC2, RC4, RC5, RC6, Message Digest (MD), IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rinjael (AES), Blowfish, GOST, AS, Kasumi, dan lain-lain.

Gambar 2.4 Kriptografi Simetris (Sumber: Munir, 2006)

Gambar 2.4 memperlihatkan kriptografi simetri yang biasa disebut juga sebagai kriptografi kunci konvensional. Pesan plaintext P, misalnya SAYA dikodekan (dienkrip) menjadi ciphertext 60oe menggunakan password (kunci K) TES. Untuk mengembalikan cipher 60oe menjadi SAYA dilakukan proses dekripsi dengan kunci yang sama yaitu TES. Karena kunci yang digunakan sama, disebut kriptografi kunci

(6)

simetri. Jenis ini telah digunakan berabad-abad lalu, dinamakan pula sebagai kriptografi konvensional.

Algoritma simetri dapat dibagi dalam 2 (dua) kategori. Jenis pertama beroperasi pada plaintext yang berupa satu bit tunggal pada satu waktu, yang disebut Stream Algorithms (algoritma aliran atau Stream Cipher). Jenis ke dua beroperasi pada

plaintext dalam grup bit-bit. Grup bit-bit ini disebut blok. Algoritmanya disebut sebagai algoritma blok atau kode rahasia blok.

2.2.2 Algoritma Asimetri

Algoritma asimetri (juga disebut algoritma kunci publik) didesain sedemikian sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Kunci dekripsi tidak dapat dihitung dari kunci enkripsi. Algoritma disebut kunci publik karena kunci enkripsi dapat dibuat publik yang berarti semua orang boleh mengetahuinya. Sembarang orang dapat menggunakan kunci enkripsi tersebut untuk mengenkrip pesan, namun hanya tertentu (calon penerima pesan dan sekaligus pemilik kunci dekripsi yang merupakan pasangan kunci publik) yang dapat melakukan dekripsi pada pesan tersebut [5].

Dalam sistem ini, kunci enkripsi sering disebut kunci publik, sementara kunci dekripsi sering disebut kunci privat. Kunci privat disebut kunci rahasia. Kriptografi yang termasuk dalam algoritma asimetri adalah ECC, LUC, RSA, EI Gamal dan DH.

Gambar 2.5 Kriptografi Asimetris (Sumber: Munir, 2006)

(7)

2.3 Pola Penyaringan Transmisi Data

Proteksi data/informasi dalam komunikasi komputer menjadi penting, karena nilai informasi itu sendiri dan meningkatnya penggunaan komputer di berbagai sektor. Melihat pada kenyataan semakin banyak data yang diproses dengan komputer dan dikirim melalui perangkat komunikasi elektronik sehingga ancaman terhadap pengamanan data akan semakin meningkat. Beberapa pola ancaman terhadap komunikasi data dalam komputer dapat diterangkan sebagai berikut:

2.3.1 Interruption

Interruption terjadi ketika data yang dikirimkan dari A tidak sampai pada orang yang berhak (B). Interruption merupakan pola penyerangan terhadap sifat availability

(ketersediaan data). Gambar 2.6 Interruption (Sumber: Kurniawan, 2004) 2.3.2 Interception

Serangan ini terjadi pihak ke tiga C berhasil membaca data yang dikirimkan.

Interception merupakan pola penyerangan terhadap sifat confidentially (kerahasiaan data). Gambar 2.7 Interception (Sumber: Kurniawan, 2004) A B A B C

(8)

2.3.3 Modification

Pada serangan ini pihak ke tiga C berhasil merubah pesan yang dikirimkan.

Modification merupakan pola penyerangan terhadap sifat integrity (keaslian data).

Gambar 2.8 Modification (Sumber: Kurniawan, 2004)

2.3.4 Fabrication

Pada serangan ini, penyerang berhasil mengirimkan data ke tujuan dengan memanfaatkan identitas orang lain. Fabrication merupakan pola penyerangan terhadap sifat authenticity.

Gambar 2.9 Fabrication (Sumber: Kurniawan, 2004)

Ancaman-ancaman seperti pada pembicaraan sebelumnya menjadi masalah terutama dengan semakin meningkatnya komunikasi data yang bersifat rahasia seperti pemindahan dana secara elektronik kepada dunia perbankan/pengiriman dokumen rahasia pada instansi pemerintah. Untuk mengantisipasi ancaman-ancaman tersebut perlu dilakukan usaha untuk melindungi data yang dikirim melalui saluran komunikasi salah satunya adalah dengan teknik enkripsi. Untuk masalah pengamanannya tergantung pada algoritma metode enkripsi tersebut dan juga kunci yang digunakan di dalamnya. A B C A B C

(9)

2.4 Teknik–Teknik Enkripsi dan Dekripsi

Enkripsi dan dekripsi diibaratkan seperti dua sisi mata uang. Pesan-pesan dibuat seolah-olah tidak bermakna dengan merubahnya menurut prosedur tertentu (enkripsi), dan dibuat bermakna kembali dengan menggunakan prosedur yang biasanya bersifat kebalikannya (dekripsi). Dalam dunia kriptografi, pesan yang akan dirahasiakan disebut plaintext, sedangkan bentuk pesan hasil proses enkripsi disebut ciphertext.

Berikut ini akan dicontohkan prosedur enkripsi dari masing-masing teknik dasar untuk melakukan pengacakan data terhadap plaintext yang sama, yaitu ”POLA PENYARINGAN TRANSMISI DATA” [3].

2.4.1 Substitusi

Langkah pertama teknik ini adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat sesuai dengan yang dikehendaki, dengan catatan penerima pesan memiliki tabel yang sama untuk keperluan dekripsi. Tabel substitusi dibuat secara acak, sehingga semakin sulit pemecahan ciphertext oleh orang yang tidak berhak.Tabel Substitusi dapat dilihat pada Tabel 2.1.

Tabel 2.1 Tabel Substitusi

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 . # B 1 F K Q G A T P J 6 H Y D 2 X 5 M V 7 C 8 4 1 9 N R E U 3 L S W . # O Z 0

(Sumber: Munir, 2004)

Tabel substitusi di atas dibuat secara acak. Tanda spasi akan diganti dengan tanda ”#”. Dengan menggunakan tabel tersebut, dari plaintext di atas akan dihasilkan

ciphertext ”X2HB0XQD9AMPNAD07MBDVYPVP0KB7B”. Dengan menggunakan tabel substitusi yang sama secara dengan arah terbalik, plaintext dapat diperoleh kembali ciphertext-nya [3].

(10)

2.4.2 Blocking

Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsikan secara independent. Plaintext yang dienkripsikan dengan menggunakan teknik blocking adalah:

Tabel 2.2 Enkripsi dengan blocking

P Y S Blok 1 O A T I Blok 2 L R R Blok 3 A I A D Blok 4 N N A Blok 5 P G S T Blok 6 E A M A Blok 7 N N I Blok 8 (Sumber: Munir, 2004)

Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini. Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur, dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan bloknya. Jadi

ciphertext yang dihasilkan dengan teknik adalah: ”PY SOATILRR AIAD NNAPPGSTEAMANNI”. Plaintext dapat pula ditulis secara horizontal dan

ciphertext-nya adalah hasil pembacaan secara vertikal.

2.5 Mode Operasi

mode operasi yang biasa digunakan dalam kriptografi ada 4 (macam). Mode-mode operasi ini bertujuan sama yaitu untuk mengatasi keamanan cara penyandian dan juga untuk mempermudah penyandian. Adapun mode tersebut [5]:

1. Mode Electronic Code Book (ECB) 2. Mode Cipher Blok Chaining (CBC)

(11)

3. Mode Cipher Feed Back (CFB) 4. Mode Output Feed Back (OFB)

2.5.1 Electronic Code Book (ECB)

Pada mode Electronic Code Book (ECB) ini, suatu blok cipher yang panjangnya dibagi dalam bentuk urutan binari menjadi satu blok tanpa mempengaruhi blok-blok lain. Satu blok terdiri dari 64 bit atau 128 bit. Setiap blok merupakan bagian dari pesan yang dienkripsi.

Mode ini merupakan suatu enkripsi yang sederhana, kerusakan satu blok data tidak mempengaruhi blok-blok lainnya. Pada dasarnya sifat yang paling mendasar dari mode ECB adalah blok plaintext yang sama akan dikodekan menjadi cipher yang sama. Secara matematis, enkripsi dengan mode ECB dinyatakan sebagai berikut [5]:

Ci = Ek (Pi)

dan dekripsi sebagai: Pi = DK (Ci)

2.5.2 Cipher Block Chaining (CBC)

Sistem mode Cipher Blok Chaining (CBC) adalah plaintext yang sama akan dienkripsi kedalam bentuk cipher yang berbeda, karena blok yang satu tidak berhubungan dengan blok yang lainnya. Pada mode CBC, input untuk enkripsi merupakan hasil dari XOR antara plaintext dengan ciphertext sebelumnya. Kunci digunakan pada setiap blok yang ada.

Untuk mendekripsi sebuah pesan, setiap blok cipher dari algoritma dekripsi merupakan hasil dari XOR dengan blok sebelumnya untuk mendapatkan blok dari

plaintext [5].

Bentuk formal dari hal di atas seperti : C1=Ek (IV ⊕ P1)

(12)

2.5.3 Cipher Feed Back (CFB)

Mode Cipher FeedBack (CFB) ini digunakan untuk melakukan enkripsi pada stream cipher, mode ini tidak memerlukan padding bit (bit tambahan) karena jumlah panjang blok sama dengan jumlah panjang plaintext yang ada. Mode CFB memiliki input 8 bit yang diproses setiap enkripsi dan ciphertext sebelumnya digunakan sebagai input dari algoritma enkripsi untuk menghasilkan algoritma yang diacak. Output diambil dari 8 bit paling kiri untuk dilakukan operasi XOR dengan plaintext dengan panjang 8 bit untuk dapat menghasilkan ciphertext yang berikutnya. Input dari enkripsi terdiri dari 8 bit yang digeser ke kiri sebanyak 8 bit. Karena terjadi penggeseran, kekosongan yang ada akan diisi oleh cipher sebelumnya. Input dari enkripsi pada awalnya adalah IV (initial value) [5].

2.5.4 Output Feed Back (OFB)

Mode Output Feed Back (OFB) tidak mempengaruhi blok yang lain walaupun terjadi error, satu bit yang error pada ciphertext hanya akan mempengaruhi satu bit plaintext

pada terjadinya proses dekripsi [5].

2.6 Keamanan Algoritma

Suatu algoritma dikatakan aman apabila algoritma itu memiliki keadaan seperti berikut [3]:

1. Jika harga untuk menjebol algoritma lebih besar daripada nilai informasi yang dibuka, maka algoritma aman. Misalkan diperlukan komputer senilai 1 juta dollar untuk menjebol algoritma senilai 100 ribu dollar, algoritma itu aman.

2. Jika waktu yang diperlukan untuk menjebol algoritma tersebut lebih lama daripada lamanya waktu yang diperlukan oleh informasi tersebut harus tetap aman, maka algoritma aman. Misalnya waktu untuk membobol sebuah kartu kredit 1 tahun, sedangkan sebelum setahun kartu tersebut sudah tidak berlaku lagi, algoritma itu aman.

3. Jika jumlah data yang dienkrip dengan kunci dan algoritma yang sama lebih sedikit dari jumlah data yang diperlukan untuk menembus algoritma tersebut,

(13)

maka algoritma itu aman. Misalkan diperlukan 100 ciphertext untuk menebak kunci yang digunakan untuk satu pesan, algoritma itu aman.

2.7 Tanda Tangan Digital

Tanda digital adalah mekanisme otentikasi yang mengijinkan pemilik pesan membubuhkan sebuah sandi pada pesannya yang bertindak sebagai tanda tangan. Tanda tangan dibentuk dengan mengambil nilai hash dari pesan dan mengenkripsi nilai hash pesan tersebut dengan kunci privat pemilik pesan [9].

Jika dalam proses pengiriman pesan saluran komunikasi yang digunakan sudah aman dan kunci hanya diketahui oleh pihak yang berhak, sekarang masalahnya siapa yang menjamin bahwa pesan yang dikirim memang berasal dari orang yang berhak. Atau bagaimana meyakinkan pihak yang akan menerima kiriman data bahwa memang benar-benar berasal dari pengirim aslinya. Untuk mengatasi validitas pengiriman tersebutlah digunakan teknologi Tanda Tangan Digital.

Tanda tangan digital berfungsi untuk melakukan validasi terhadap setiap data yang dikirim. Dalam pengiriman data, walaupun saluran komunikasi yang digunakan sudah sangat aman, tentu saja perlu diperhatikan validitasnya. Validitas tersebut berkaitan dengan pertanyaan apakah data yang sampai ke penerima dalam keadaan utuh dengan aslinya saat dikirim tanpa sedikitpun adanya gangguan-gangguan dari pihak lain. Tanda tangan digital menggunakan algoritma yang disebut dengan istilah

hashing algorithm. Fungsi tersebut akan menghasilkan sebuah kombinasi karakter yang unik yang disebut dengan Message Digest.

Keunikannya adalah jika di tengah perjalanan data mengalami modifikasi, penghapusan maupun di sadap diam-diam oleh hacker walaupun hanya 1 karakter saja, maka message digest yang berada si penerima akan berbeda dengan yang dikirimkan pada awalnya. Keunikan lainnya adalah message digest tersebut tidak bisa dikembalikan lagi ke dalam bentuk awal seperti sebelum disentuh dengan fungsi algoritma, sehingga disebutlah sebagai one-way hash [8].

(14)

Proses tanda tangan digital dapat ditunjukkan pada gambar di bawah ini.

Gambar 2.10 Diagram Proses Tanda Tangan Digital (Sumber: Munir, 2006 )

Mekanisme kerja untuk menghasilkan tanda tangan digital tersebut adalah sebagai berikut [10]:

1. Proses hashing algorithm akan mengambil nilai hash dari pesan yang akan dikirim dan menghasilkan message digest. Kemudian message digest

tersebut dienkripsi mengunakan kunci privat dan menghasilkan tanda tangan digital.

2. Kemudian tanda tangan digital tersebut dikirimkan bersama isi pesan tersebut.

3. Sesampainya di penerima, akan dilakukan proses hashing algorithm

terhadap pesan tersebut seperti yang dilakukan saat pengiriman. Dari proses tersebut menghasilkan message digest sekunder (MD’).

4. Secara paralel digital signature yang diterima tadi langsung didekripsi oleh kunci publik. Hasil dekripsi tersebut akan memunculkan message digest

yang serupa seperti message digest sebelum dienkripsi oleh pengirim pesan. Message digest disebut message digest primer (MD).

5. Proses selanjutnya adalah membandingkan message digest primer dengan

(15)

mengubah isi pesan, maka message digest sekunder akan berbeda dengan

message digest primer. Segera mekanisme tanda tangan digital tersebut akan menyampaikan peringatan bahwa telah terjadi pengubahan isi pesan.

Tanda tangan digital mampu memenuhi tiga dari empat aspek keamanan kriptografi, yaitu aspek integritas data, otentikasi, dan antipenyangkalan. Otentikasi dan integritas data dijelaskan sebagai berikut:

1. Apabila pesan M yang diterima sudah berubah, maka MD’ yang dihasilkan dari fungsi hash berbeda dengan MD semula. Ini berarti pesan tidak asli lagi. 2. Apabila pesan M tidak berasal dari orang yang sebenarnya, maka message

digest MD yang dihasilkan dari persamaan 3 berbeda dengan message digest MD’ yang dihasilkan pada proses verifikasi (hal ini karena kunci publik yang digunakan oleh penerima pesan tidak berkoresponden dengan kunci rahasia pengirim).

3. Bila MD = MD’, ini berarti pesan yang diterima adalah pesan yang asli dan orang yang mengirim dalah orang yang sebenarnya .

2.8 Fungsi Hash satu arah

Fungsi hash satu arah merupakan fungsi satu arah (one way function) yang dapat menghasilkan ciri (signature) dari data (berkas, stream). Perubahan satu bit saja akan mengubah keluaran hash secara drastis. Fungsi hash biasanya digunakan untuk menjamin integritas dan digital signature. Fungsi hash satu arah memiliki banyak nama diantaranya fungsi pembanding, fungsi penyusutan, intisari pesan, sidik jari,

message integrity check (MIC) atau pemeriksa keutuhan pesan dan manipulation detection code (MDC) atau pendeteksi penyelewengan kode [4].

Fungsi hash satu arah dibuat berdasarkan ide tentang fungsi pemampatan. Fungsi hash adalah sebuah fungsi atau persamaan matematika yang mengambil input dengan panjang variabel (pre image) dan mengubahnya menjadi panjang yang tetap (biasanya lebih pendek), keluarannya biasa disebut nilai hash. Metode fungsi hash

(16)

Apabila ingin melindungi data dari modifikasi yang tidak terdeteksi, dapat dihitung hasil fungsi hash dari data tersebut, selanjutnya dapat menghitung hasil fungsi hash lagi dan membandingkannya dengan hasil pertama apabila berbeda maka terjadi perubahan selama pengiriman. Masukan dari fungsi hash satu arah adalah blok pesan dan keluaran dari blok teks atau nilai hash sebelumnya ini sehingga secara garis besar, hash dari blok Mi adalah : hi = f(Mi,hi - 1)

Nilai hash ini bersama blok pesan berikutnya menjadi masukan berikutnya bagi fungsi pemampatan. Nilai hash keseluruhan adalah nilai hash dari blok paling akhir.

Pre-image sedapatnya mengandung beberapa binary yang menggambarkan panjang dari masukan pesan. Teknik ini digunakan untuk mengatasi masalah yang dapat terjadi bila pesan yang tidak sama mempunyai nilai hash yang sama. Metode ini disebut

MD-strengthening atau penguatan MD. Fungsi Hash satu arah dapat dilihat pada Gambar 2.10.

Gambar 2.11 Fungsi Hash Satu Arah (Sumber: Munir, 2006 )

Fungsi hash Kriptografis adalah fungsi hash yang memiliki beberapa sifat keamanan tambahan sehingga dapat dipakai untuk tujuan keamanan data. Umumnya digunakan untuk keperluan autentikasi dan integritas data. Fungsi hash adalah fungsi yang secara efisien mengubah string input dengan panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash.

Sifat-Sifat Fungsi Hash Kriptografi [7]:

a. Tahan preimej (Preimage resistant): bila diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk mendapatkan m dimana h = hash(m). b. Tahan preimej kedua (Second preimage resistant): bila diketahui input m1

maka sulit mencari input m2 (tidak sama dengan m1) yang menyebabkan

hash(m1) = hash(m2).

Fungsi Hash satu Arah M

hn

(17)

c. Tahan tumbukan (Collision-resistant): sulit mencari dua input berbeda m1 dan

m2 yang menyebabkan hash(m1) = hash(m2)

2.8.1 Cara Kerja SHA

Mula-mula pesan diberi tambahan untuk membuat panjangnya menjadi kelipatan 512 bit (L x 512). Jumlah bit data asal adalah K bit. Tambahkan bit ‘1’ kemudian tambahkan bit ‘0’ secukupnya sampai 64 bit kurangnya dari kelipatan 512(512-64=448), yang disebut juga sebagai kongruen dengan 448 (mod 512). Akhirnya tambahkan 64 bit yang menyatakan panjang pesan sebelum diberi tambahan. Pesan dibagi-bagi menjadi blok-blok berukuran 512 bit dan setiap blok diolah. Keluaran setiap blok digabungkan dengan keluaran blok berikutnya. Sehingga akhirnya diperoleh digest. Pengubahan satu huruf dapat menghasilkan cipher yang jauh berbeda.

Contoh enkripsi SHA:

Plainteks : “I heard you crying loud all the way accross the town” Cipherteks : eaeb1b86f6e41c1b40d7c288f6d7fbff3f948a6e

Menghilangkan huruf “d” pada kata “heard” Plainteks: “I hear you crying loud all the way accross the town” akan menghasilkan:

Cipherteks: d9aee3365c0ef380f4021fd618b4d4ea3ad9e5a4

Dari hasil cipherteks terakhir yang diperoleh terdapat perbedaan yang berarti pesan sudah diubah.

SHA-1 menerima masukkan berupa pesan dengan ukuran maksimum adalah 264 bit dan menghasilkan message digest yang panjangnya 160 bit, lebih panjang dari yang dihasilkan oleh MD5 yaitu 128 bit. Langkah-langkah proses SHA-1 secara garis besar adalah sebagai berikut [6] :

1. Penambahan bit-bit pengganjal (padding bits) 2. Penambahan nilai panjang pesan semula 3. Inisialisasi penyangga (buffer) MD

(18)

2.8.2 Fungsi Hash Satu Arah

Fungsi Hash satu arah (SHA-1) bertujuan untuk [4]: 1. Menjaga integritas data

a. Fungsi hash sangat peka terhadap perubahan 1 bit pada pesan, dimana jika pesan berubah 1 bit saja, maka nilai hash berubah sangat signifikan.

b. Membandingkan nilai hash baru dengan nilai hash lama. Jika sama, pesan masih asli. Jika tidak sama, maka pesan sudah dimodifikasi.

2. Menghemat waktu pengiriman.

Misal untuk memverifikasi sebuah salinan arsip dengan arsip asli. a. Salinan dokumen berada di tempat yang jauh dari basisdata arsip asli.

b. Daripada mengirim salinan arsip tersebut secara keseluruhan ke komputer pusat (yang membutuhkan waktu transmisi lama), lebih mangkus mengirimkan message digest-nya.

c. Jika message digest salinan arsip sama dengan message digest arsip asli, berarti salinan arsip tersebut sama dengan arsip master.

3. Menormalkan panjang data yang beraneka ragam.

a. Misalkan password panjangnya bebas (minimal 8 karakter)

b. Password disimpan di komputer host (server) untuk keperluan otentikasi pemakai komputer.

c. Password disimpan di dalam basisdata.

d. Untuk menyeragamkan panjang field password di dalam basisdata, password

disimpan dalam bentuk nilai hash (panjang nilai hash tetap).

2.9 Digital Signature Algorithm (DSA)

DSA menggunakan fungsi hash SHA (Secure Hash Algorithm) untuk mengubah pesan menjadi intisari pesan yang berukuran 160 bit. DSA dan algoritma tanda-tangan digital lainnya mempunyai tiga proses utama yaitu [2]:

1. Pembangkitan pasangan kunci (Key Pair Generation)

2. Pembangkitan tanda-tangan digital (Digital Signature Generation)

(19)

2.9.1 Parameter DSA

DSA dikembangkan dari algoritma ElGamal dimana mempunyai properti berupa parameter sebagai berikut [2].

1. p, adalah bilangan prima dengan panjang L bit, yang dalam hal ini 512 ≤ L ≤ 1024 dan L harus kelipatan 64. Parameter p bersifat publik dan dapat digunakan bersama oleh orang di dalam kelompok.

2. q, bilangan prima 160 bit, merupakan faktor dari p – 1. Dengan kata lain, (p – 1) mod q = 0. Parameter q bersifat publik.

3. mod p, yang dalam hal ini h < p – 1 sedemikian sehingga

q mod p > 1. Parameter g bersifat publik.

4. x, adalah bilangan bulat kurang dari q. Parameter x adalah kunci privat. 5. y = gxmod p , adalah kunci publik.

6. m, pesan yang akan diberi tandatangan.

Digital Signature Algorithm (DSA) merupakan varian dari skema tanda tangan ElGamal. Pada bulan Agustus 1991, NIST (The National Institute of Standard and Technology) mengumumkan bahwa algoritma tanda tangan digital DSA dijadikan sebagai standar dari Digital Signature Standard (DSS). Perbedaan mendasar dengan tanda tangan ElGamal adalah jumlah perhitungan eksponensial pada proses verifikasi dikurangi dari tiga menjadi dua. Perbedaan yang terpenting adalah banyaknya digit eksponen dibatasi 160 bit, tidak seperti tanda tangan ElGamal yang tidak dibatasi, tergantung pada pemilihan bilangan prima p, paling tidak sebesar 768 bit. DSA

menggunakan SHA (Secure Hash Algorithm) sebagai fungsi hash.

SHA akan mengubah pesan menjadi massage digest berukuran 160 bit. Seperti pada algoritma kriptografi kunci-publik, DSA menggunakan dua buah kunci, yaitu kunci publik dan kunci rahasia. Pembentukan tanda tangan digital menggunakan kunci rahasia pengirim, dan verifikasi tanda tangan menggunakan kunci publik pengirim [5].

(20)

2.9.2 Pembangkitan Kunci

Proses pembangkitan kunci pada DSA adalah sebagai berikut [3]: 1. Pilih bilangan prima q dengan 2159 < q < 2160.

Jelas bahwa q mempunyai panjang biner 160. 2. Pilih bilangan prima besar p dengan sifat:

2511+64t < p < 2512+64t untuk suatu t elemen {0,1,…,8}. Bilangan prima p yang telah dipilih harus membagi p – 1. 3. Pilih elemen primitif x mod p.

4. Hitung g = x(p-1)/q mod p.

5. Pilih bilangan acak a dalam {1,2,…,q-1}. 6. Hitung A = ga mod p.

7. Kunci publik (p,q,g,A) dan kunci rahasia a.

2.9.3 Pembangkitan Tanda Tangan

Diketahui kunci publik (p,q,g,A) dan kunci rahasia a [5]. (1) Hitung nilai hash h = h(m), dengan h dalam {1,2,…,q-1}. (2) Pilih bilangan acak k dalam {1,2,…,q-1}.

(3) Hitung r = (gk mod p) mod q. (4) Hitung s = k-1(h(m)+ar) mod q.

(5) Tanda tangan dari pesan m adalah (r,s).

2.9.4 Verifikasi

Akan diverifikasi tanda tangan (r,s) untuk pesan m. Diketahui kunci publik (p,q,g,A) dan fungsi hash yang digunakan adalah [5]:

1. Cek apakah memenuhi 1 ≤ r q-1 dan 1≤ sq-1. 2. Cek apakah

(21)

2.10 Flowchart

Flowchart program adalah bagan alir yang menggambarkan arus data dari program. Fungsi dari bagan alir ini adalah untuk memudahkan programmer di dalam perancangan program aplikasi. Simbol-simbol yang digunakan pada bagan flowchart

ini antara lain seperti pada Table 2.4.

Tabel 2.4 Simbol-simbol Flowchart Program

Simbol Fungsi

Terminator

Menunjukkan awal dan akhir suatu proses. Data

Digunakan untuk mewakili data input/output. Process

Digunakan untuk mewakili proses. Decision

Digunakan untuk suatu seleksi kondisi didalam program.

Predefined Process

Menunjukkan suatu operasi yang rinciannya ditunjukkan di tempat lain.

Preparation

Digunakan untuk memberi nilai awal variabel.

Flow Lines Symbol

Menunjukkan arah dari proses. Connector

Menunjukkan penghubung ke halaman yang sama. Menunjukkan penghubung ke halaman yang baru.

Adapun langkah-langkah dari pembuatan flowchart program adalah sebagai berikut:

1. Pemahaman masalah.

(22)

3. Tentukan input yang sesuai dengan data variabel yang telah disiapkan. 4. Tentukan bentuk proses pengolahan data input.

Gambar

Gambar 2.2 Jenis–jenis Hieroglyph  (Sumber: Ariyus, 2008)
Gambar 2.4 Kriptografi Simetris   (Sumber: Munir, 2006)
Tabel  2.2  Enkripsi dengan blocking
Gambar 2.10 Diagram Proses Tanda Tangan Digital  (Sumber: Munir, 2006 )
+3

Referensi

Dokumen terkait

Dalam pembelajaran kontekstual dengan teknik scaffolding guru lebih banyak menyampaikan sejumlah ide atau gagasan matematika, sedangkan dalam pembelajaran

Penentuan aktivitas enzimdan berat molekul protein kasar dari bakteri asal pantai papuma jember dilakukan dengan cara analisis zimografi.Analisis zimografi merupakan

Hasil survey menunjukkan bahwa di Desa Meuasah Kulam, Crak Mong dan Pulo Raya cocok untuk dikembangkan budidaya air payau dengan jenis biota kepiting bakau ( Scylla serrata ),

Perubahan aksesibilitas petani terhadap sumber teknologi, lokasi usahtani padi, jalan raya dan pasar input akan mempengaruhi peluang petani dalam mengadopsi

hal.. kemanusiaan adalah menghasilkan karya dalam memajukan iptek yang berguna untuk pembangunan dan kemanusiaan, ikut menanggulangi bencana alam, mencegah

Metode dalam memberikan asuhan ini dengan wawancara, observasi dan penatalaksanaan asuhan.Subjek dalam asuhan ini adalah Ny “W” G2P1A0 34 minggu kehamilan normal

Berdasarkan hasil analisis dan pembahasan, maka penelitian tentang “Faktor-Faktor yang Mempengaruhi Hasil Belajar Siswa Mata Pelajaran Seni Budaya di SMP N 2 Wonosari”

Tipe paling umum dari mesin ini adalah mesin pembakaran dalam putaran empat stroke yang membakar bensin. Pembakaran dimulai oleh sistem ignisi yang membakaran spark