Anda di halaman 1dari 22

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.

Universitas Sumatera Utara


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 Enkrips Ciphertext Dekripsi 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].

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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.

Universitas Sumatera Utara


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

Universitas Sumatera Utara


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)

Universitas Sumatera Utara


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).

A B

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).

A B

Gambar 2.7 Interception


(Sumber: Kurniawan, 2004)

Universitas Sumatera Utara


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).

A
B

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.

A B

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.

Universitas Sumatera Utara


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].

Universitas Sumatera Utara


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-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)

Universitas Sumatera Utara


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)
P1= Dk(C1) ⊕ IV

Universitas Sumatera Utara


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,

Universitas Sumatera Utara


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].

Universitas Sumatera Utara


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
message digest sekunder. Jika saja saat diperjalanan ada hacker yang

Universitas Sumatera Utara


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
satu arah adalah berfungsi melindungi data dari modifikasi.

Universitas Sumatera Utara


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.

M
Fungsi Hash satu Arah h1
hn

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).

Universitas Sumatera Utara


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
4. Pengelolaan pesan dalam blok berukuran 512 bit.

Universitas Sumatera Utara


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)
3. Verifikasi tanda-tangan digital (Digital Signature Verification)

Universitas Sumatera Utara


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 = gx mod 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].

Universitas Sumatera Utara


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≤ s≤ q-1.
2. Cek apakah

3. Jika memenuhi (1) dan (2), maka proses verifikasi berhasil.

Universitas Sumatera Utara


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.
2. Tentukan data (variabel) yang dibutuhkan.

Universitas Sumatera Utara


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

Universitas Sumatera Utara

Anda mungkin juga menyukai