KRIPTOGRAFI
DISUSUN OLEH :
Dosen pengampu:
Rusdi Efendi, S.T., M.Kom.
Sampai akhir tahun 1970, hanya ada sistem kriptografi kunci-simetri. Pengirim dan
penerima pesan memiliki kunci yang sama (K) untuk enkripsi dan dekripsi. Ide kriptografi
kunci-publik (public-key cryptography) muncul tahun 1976.
Kunci public dapat dikirim melalui saluran yang tidak perlu aman (unsecure channel).
Saluran yang tidak perlu aman ini mungkin sama dengan saluran yang digunakan untuk
mengirim cipherteks. Pihak lawan atau kriptanalis dapat menyadap cipherteks dan kunci
public, tetapi tidak dapat mendekripsi cipherteks karena ia tidak mengetahui kunci private.
a. Pemfaktoran
b. Logaritma Diskrit
Algoritma RSA dibuat oleh tiga orang peneliti dari MIT (Massachussets Institute of
Technology) pada tahun 1976, yaitu Ron Rivest, Adi Shamir dan Leonard Adleman. RSA
adalah salah satu teknik kriptografi dimana kunci untuk melakukan enkripsi berbeda dengan
kunci untuk melakukan dekripsi. Kunci untuk melakukan enkripsi disebut sebagai kunci
publik, sedangkan kunci untuk melakukan dekripsi disebut sebagai kunci privat. Orang yang
mempunyai kunci publik dapat melakukan enkripsi tetapi yang dalam melakukan dekripsi
hanyalah orang yang memiliki kunci privat. Kunci publik dapat dimiliki oleh sembarang
orang, tetapi kunci privat hanya dimiliki oleh orang tertentu saja.
c. Dihitung m = (p-1)(q-1)
d. Dipilih sebuah bilangan bulat sebagai kunci public, disebuat namanya e, yang relative
prima terhadap m. (e relative prima terhadap m artinya faktor pembagi terbesar
keduanya adalah 1, secara matematis disebut gcd (e,m) = 1. Untuk mencarinya dapat
menggunakan algoritma Euclid.
O(exp(√
Hingga saat ini belum ditemukan algoritma pemfaktoran bilangan bulat besar dalam
waktu polynomial. Fakta inilah yang membuat algoritma RSA dianggap masih aman untuk
saat ini. Semakin panjang bilangan bulatnya, maka semakin lama waktu yang dibutuhkan
untuk memfaktorkannya.
ALGORITMA PERTUKARAN KUNCI DIFFIE-HELMAN
a. Menentukan bilangan prima p, dan bilangan bulat tak nol yang kurang dari p yaitu g.
Bilangan p dan g dapat diketahui oleh orang lain (bersifat publik).
b. Menentukan sebarang bilangan bulat positif x untuk pengirim pesan, dan y untuk
penerima pesan. Bilangan x dan y tidak boleh diketahui oleh orang lain (private key).
Pengirim dan penerima mengetahui secret key yang nantinya akan digunakan sebagai
kunci untuk proses enkripsi dan dekripsi pada algoritma simetri dalam kriptografi (Abbadi,
dkk. 2016).
ALGORITMA ELGAMAL
Algoritma Elgamal adalah salah satu algoritma yang dapat digunakan untuk
melakukan enkripsi data sehingga data asli hanya dapat dibaca oleh seseorang yang memiliki
kunci enkripsi tersebut. Algoritma Elgamal dibuat oleh Tager ElGamal tahun 1984 yang
digunakan untuk enkripsi dan dekripsi text. Keamanan algoritma ini terletak pada sulitnya
menghitung logaritma diskrit.
a. Susun plainteks menjadi blok-blok m1, m2, …, (nilai setiap blok di dalam
sleang [0,p – 1].
a = gk mod p
b = ykm mod p
Enkripsi dilakukan dengan cara yang sama seperti algoritma knapsack sebelumnya.
Mula mula plainteks dipecah menjadi blok bit yang panjangnya sama dengan kardinalitas
barisan kunci publik. Kalikan setiap bit di dalam blok dengan elemen yang berkoresponden di
dalam barisan kunci public.
Dekripsi:
Dekripsi dilakukan dengan menggunakan kunci privat. Mula mula penerima pesan
menghitung n-1, yaitu balikan dari n modulo m, sehingga n · n-1 1 (mod m). Kalikan setiap
kriptogram dengan n-1, lalu nyatakan hasil kalinya sebagai perjumlahan elemen-elemen kunci
privat untuk memperoleh plainteks dengan menggunakan algoritma pencarian
superincreasing knapsack.
Sayangnya, algoritma knapsack dinyatakan sudah tidak aman, karena knapsack dapat
dipecahkan oleh pasangan kriptografer Shamir dan Zippel. Mereka merumuskan transformasi
yang memungkinkan mereka merekonstruksi superincreasing knapsack dari normal
knapsack.
ELLIPTIC CURVE CRYPTOGRTAPHY (ECC)
Fungsi hash adalah fungsi matematis yang mengubah nilai input numerik menjadi
nilai numerik yang terkompresi. Maksudnya bertujuan mengkompresi nilai numerik yang
diinputkan. Inputan fungsi hash mempunyai panjang yang beragam, namun outputan nilai
hash akan selalu mempunyai panjang yang tetap. Nilai yang dikembalikan oleh fungsi hash
disebut message digest atau hanya nilai hash.
Fungsi yang mengkompresi pesan (M) berukuran sembarang menjadi string (h) yang
berukuran fixed. Luaran (output) fungsi hash tersebut dinamakan pesan ringkas (message-
digest) atau nilai hash (hash value) Irreversible (tidak bisa dikembalikan menjadi pesan
semula).
Fungsi Hash Satu-Arah (one-way function)
Fungsi hash satu-arah 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. Fungsi ini
dapat menerima masukan string apa saja. Masukan fungsi hash adalah blok pesan (M) dan
keluaran dari hashing blok pesan sebelumnya:
hi = H(Mi, hi - 1)
Sifat sifat fungsi hash H adalah sebagai berikut:
a. Collision resistance : sangat sukar menemukan dua input a dan b sedemikian
sehingga H(a) = H(b)
b. Preimage resistance: untuk sembarang output y, sukar menemukan input a
sedemikian sehingga H(a) = y
c. Second preimage resistance – untuk input a dan output y = H(a), sukar
menemukan input kedua b sedemikian sehingga H(b) = y
Aplikasi Fungsi Hash Satu-Arah
a. Menjaga integritas pesan
b. Menghemat waktu Pengiriman
c. Menormalkan panjang data yang beraneka ragam
Kolisi
Kolisi (collision) adalah kondisi dua string sembarang yang memiliki nilai hash yang
sama. Adalnya kolisi menunjukkan fungsi hash tidak aman secara kriptografis.
ALGORITMA MD5
MD5 merupakan satu dari banyak seri algoritma message digest yang dirancang oleh
Professor Ronald Rivest dari MIT pada tahun 1992. Ketika analisis pada MD4
mengindikasikan ketidakamanan, Rivest merancang MD5 pada tahun 1991 sebagai pengganti
yang aman. MD5 mengolah blok 512 bit, dibagi kedalam 16 sub blok berukuran 32 bit.
Keluaran algoritma diset menjadi 4 blok yang masing-masing berukuran 32 bit yang setelah
digabungkan akan membentuk nilai hash 128 bit.
Langkah-langkah pembuatan message digest secara garis besar:
1. Penambahan bit-bit pengganjal (padding bits).
2. Penambahan nilai panjang pesan semula.
3. Inisialisasi penyangga (buffer) MD.
4. Pengolahan pesan dalam blok berukuran 512 bit.
Secara teori, menemukan kolisi pada fungsi hash sangatlah sulit dilakukan. Pada
awalnya penemu algoritma MD5 menganggap usaha tersebut hampir tidak mungkin
dilakukan karena membutuhkan waktu yang sangat lama. Tetapi, pada tahun 1996, Dobbertin
melaporkan penemuan kolisi pada algoritma MD5 meskipun kecacatan ini bukan kelemahan
yang fatal.
SECURE HASH ALGORITH (SHA)
SHA (Secure Hashing Algorithm) merupakan sebuah algortima yang digunakan untuk
kriptografi atau keamanan data. SHA adalah fungsi hash satu-arah yang dibuat oleh NIST dan
digunakan bersama DSS (Digital Signature Standard). Oleh NSA, SHA dinyatakan sebagai
standard fungsi hash satu-arah. SHA didasarkan pada MD4 yang dibuat oleh Ronald L. Rivest
dari MIT. Algoritma SHA menerima masukan berukuran maksimum 264 bit (2.147.483.648
gigabyte) dan menghasilkan message digest yang panjangnya 160 bit. Message digest dari
SHA lebih panjang dari message digest yang dihasilkan oleh MD5 (128 bit).
Sebutan SHA mengacu pada keluarga fungsi hash satu-arah SHA. SHA memiliki enam
varian, yaitu:
a. SHA-0 / SHA
b. SHA-1
c. SHA-224
d. SHA-256
e. SHA-384
f. SHA-512
Algoritma SHA-3 sendiri ditentukan oleh sebuah kompetisi dari National Institute of
Standards and Technology (NIST) yang diikuti banyak kriptografer (orang yang ahli dalam
kriptografi). Kompetisi diumumkan pad atahun 2007 dan berakhir pada oktober 2012 dengan
memilih pemenang. Pemenang dari kompetisi ini adalah Keccak. Keccak berbeda dari finalis
SHA3 lainnya dalam hal menggunakan konstruksi ‘spons’ (sponge construction). Jika desain
lainnya bergantung pada ‘fungsi kompreso’, Keccak menggunakan fungsi non-kompresi
untuk menyerap dan kemudian ‘memeras’ digest. Desain kecak berbedari dari pendekatan
yang ada. NIST merasa bahwa dalam kasus ini, yang berbeda adalah yang lebih baik.
MAC (message authentication code) adalah fungsi hash satu arah namun memiliki
secret key untuk membangkitkan nilai hash.
MAC = Ck(M)
MAC = nilai hash C = fungsi hash (atau algoritma MAC) K = kunci rahasia
Perbedaan MAC dengan fungsi hash 1 arah yang lain terletak pada kunci rahasianya.
Kegunaan MAC itu sendiri untuk otentikasi dokumen (file), dan menjaga integritas (keaslian)
isi arsip. Apabila terjadi perubahan maka MAC dapat mengatakan bahwa file tersebut sudah
mendapatkan tampering dari pihak ketiga.