Anda di halaman 1dari 16

TUGAS RESUME

KRIPTOGRAFI

DISUSUN OLEH :

NAMA : Aisyah Amalia A. F.


NPM : G1A019026
KELAS : A

Dosen pengampu:
Rusdi Efendi, S.T., M.Kom.

PROGRAM STUDI INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS BENGKULU
2021
KUNCI PUBLIK

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.

Pengirim dan penerima mempunyai sepasang kunci:

- Kunci public (e) : untuk mengenkripsi pesan

- Kunci private (d) : untuk mendekripsi pesan

Kunci publik,e Kunci privat,d

Plainteks, m Chipertaks,c Plainteks,m


Enkripsi Dekripsi
Ee(m)=c Dd(c)=m

Kriptografi kunci-nirsimetri (asymmetric-key cryptography) karena kunci enkripsi


tidak sama dengan kunci dekripsi. Istrilah “public” muncul karena kunci untuk enkripsi
diumumkan kepada public (tidak rahasia), misalnya disimpan di dalam repository yang dapat
diakses oleh public. Hanya kunci private yang rahasia, hanya pemilik kunci private
mengetahui kuncinya sendiri.

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.

Keuntungan kriptografi kunci-publik:

- Tidak diperlukan pengiriman kunci privat

- Jumah kunci dapat ditekan

Kriptografi kunci-publik didasarkan pada fakta:

- Komputasi untuk enkripsi/dekripsi pesan mudah dilakukan


- Secara komputasi hampir tidak mungkin (infeasible) menurunkan kunci private
bila diketahui kunci public.

Algoritma kriptografi kunci-publik didasarkan pada persoalan integer klasik sebagai


berikut:

a. Pemfaktoran

b. Logaritma Diskrit

c. Elliptic Curve Discrete Logarithm Problem (ECDLP)

Aplikasi kriptografi kunci public

a. Kunci persetujuan (Key Agreetment)

b. Kerahasiaan Data (Data Encryption)

c. Tanda Tangan Digital (Digital Signature)


ALGORITMA RSA

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.

a. Untuk pembangkitan pasangan kunci RSA, digunakan algoritma sebagai


berikut:Dipilih dua buah bilangan prima sebarang yang besar, p dan 1. Nilai p dan q
harus dirahasiakan

b. Dihitung n = p x q. Besaran n tidak perlu dirahasiakan.

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.

e. Dihitung kunci private, disebut namanya d sedemikian agar (d x e) mod m = 1. Untuk


mencari nilai d yang sesuai dapat juga menggunakan algoritma Extended Euclid.

Maka hasil dari algoritma tersebut diperoleh:

 Nilai Public adalah pasangan (e,n)

 Nilai Private adalah pasangan (e,m)

Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan


bilangan bulat n faktor faktor prima (p dan q), yang dalam hal ini n = p x q. Sekali n berhasil
difaktorkan menjadi p dan q, maka (n) = (p – 1) x (q – 1) dapat dihitung. Selanjutnya,
karena kunci enkripsi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari
kekongruenen ed  1 (mod  (n)).
Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit.
Dengan demikian hasil kali n = p x q akan berukuran lebih dari 200 digit. Usaha untuk
mencari faktor bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun,
sedangkan untuk bilangan 500 digit membutuhkan waktu 1025 tahun (dengan asumsi bahwa
algoritma pemfaktoran yang digunakan adalah agoritma yang tercepat saat ini dan computer
yang dipakai mempunyai kecepatan 1 milidetik).

Algoritma pemfaktoran yang tercepat saat ini memiliki kompleksitas:

O(exp(√

Untuk bilangan bulat n sepanjang b-bit.

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

Algoritma Diffie-Hellman merupakan algoritma pertukaran kunci yang dapat


digunakan untuk membangkitkan kunci yang akan digunakan oleh pengirim data tersandi
dengan penerima data tersandi. Algoritma Diffie-Hellman tidak digunakan untuk melakukan
poses enkripsi dan deskripsi, melainkan untuk mendapatkan kunci rahasia (secret key) pada
proses enkripsi dan dekripsi. Kunci rahasia (secret key) dapat sebarkan secara bebas tanpa
harus khawatir akan keamanannya. Kelebihan dari algoritma Diffie-Hellman yakni tidak
terjadi proses pertukaran kunci enkripsi dan kunci dekripsi antara pengirim dan penerima
pesan, sehingga seorang peretas akan kesulitan untuk mendapatkan kunci enkripsi maupun
kunci dekripsi tersebut.

Algoritma Diffie-Hellman diperkenalkan pertama kali oleh Whitfield Diffie dan


Martin Hellman. Adapun langkah-langkah dalam melakukan pertukaran dan pembangkitan
kunci menggunakan algoritma Diffie-Hellman adalah sebagai berikut:

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

c. Pengirim menghitung A = gx mod p dan penerima menghitung B = gy mod p.

d. Bilangan A dan B merupakan shared key yang kemudian ditukarkan, A diberikan ke


penerima dan B diberikan ke pengirim e. Pengirim menghitung KA = Bx mod p dan
penerima menghitung KB = Ay mod p.

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.

Besaran-besaran atau properti yang digunakan di dalam algoritma Elgamal adalah:

1. P = bilangan prima (tidak rahasia, publik)


2. g = akar primitif dari p (tidak rahasia, publik)
3. x = bilangan acak (rahasia, kunci privat)
4. y = gx mod p (tidak rahasia, kunci publik)
5. m = plainteks (rahasia)
6. a dan b = chiperteks (tidak rahasia)
Prosedur enkripsi pada Algoritma Elgamal:

a. Susun plainteks menjadi blok-blok m1, m2, …, (nilai setiap blok di dalam
sleang [0,p – 1].

b. Pilih bilangan acak k, yang dalam hal ini 1 ≤ k ≤ p – 2.

c. Setiap blok m dienkripsi dengan rumus

a = gk mod p

b = ykm mod p

Padangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran


cipherteks dua kali ukuran plainteksnya.

Prosedur dekripsi pada Algoritma Elgamal

a. Gunakan kunci private untuk menghitung (ax)-1 = ap-1-x mod p

b. Hitung plainteks m dengan persamaan:

m = b/ax mod p = b(ax)-1mod p


ALGORITMA KRIPTOGRAFI KNAPSACK

Algoritma Kriptografi Knapsack merupakan salah satu algoritma kriptografi kunci-


publik awal yang ditemukan oleh Ralph Merkle dan Martin Hellman pada 1978. Disebut juga
algoritma Merkle-Hellman. Algortima ini didasarkan pada persoalan Knapsack Problem.

Algoritma superincreasing knapsack adalah algoritma yang lemah, karena cipherteks


dapat didekripsi menjadi plainteksnya secara mudah dalam waktu lanjar. Algoritma non-
superincreasing knapsack atau normal knapsack adalah kelompok algoritma knapsack yang
sulit (dari segi komputasi) karena membutuhkan waktu dalam orde eksponensial untuk
memecahkannya. Namun, superincreasing knapsack dapat dimodifikasi menjadi non
superincreasing knapsack dengan menggunakan kunci publik (untuk enkripsi) dan kunci
privat (untuk dekripsi). Kunci publik merupakan barisan non-superincreasing sedangkan
kunci privat tetap merupakan barisan superincreasing. Modifikasi ini ditemukan oleh Martin
Hellman dan Ralph Merkle.

Prosedur membuat kunci public dan private:

a. Tentukan barisan superincreasing.


b. Kalikan setiap elemen di dalam barisan tersebut dengan n (mod m)
c. Hasil perkalian akan menjadi kunci public sedangkan barisan superincreasing
semula menjadi kunci privat.
Enkripsi:

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)

Elliptic Curve Cryptography (ECC) adalah salah satu pendekatan algoritma


kriptografi kunci public berdasarkan pada struktur aljabar dari kurva ellips pada daerah finite.
Penggunaan kurva elips dalam kriptografi dicetuskanoleh Neal Koblitz dan victor S. Miller
pada tahun 1985. Kurva elips juga digunakan pada beberapa algoritmapemaktoran integer
yang juga memiliki aplikasinya dalam kriptografi, seperti Lenstra Elliptic Curve
Factorization. Algoritma kunci publik berdasarkan pada variasi perhitungan matematis yang
terbilang sangat sulit dipecahkan tanpa pengetahuan tertentu mengenai bagaimana
perhitungan tersebut dibuat. Kurva ellips dapat ditulis dengan perhitungan matematis sebagai
berikut:
y2 = x3 + ax + b
Dalam kriptografi kunci asimetris, harus ditentukan terlebih dahulu nilai parameter
yang akan digunakan dan telah disepakati oleh pihak yang akan berkomunikasi. Parameter
yang digunakan dalam ECC yaitu nilai a dan b, bilangan prima p dalam persamaan kurva
eliptik bidang terbatas serta titik generator G yang dipilih dari kurva eliptik.
Konsep aljabar abstrak dibagi menjadi dua,yaitu Grup (group) dan Medan (field).
Grup atau group sendiri adalah sistem aljabar yang terdiri dari sebuah himpunan G dan
sebuah operasi biner *. Sehingga untuk semua elemen a, b, dan c di dalam G berlaku aksioma
berikut:
a. Closure: a * b harus berada di dalam G
b. Asosiatif: a * (b * c) = (a * b) * c
c. Elemen netral: terdapat e ∑ G sedemikian sehingga a * e = e * a = a
d. Elemen invers: terdapat a’  G sedemikian sehingga a * a’ = a’ * a = e
Medan atau field adalah himpunan elemen (disimbolkan dengan F) dengan dua
operasi biner biasanya disebut perjumlahan (+) dan perkalian (·). Sebuah struktur aljabar <F,
+, ·> disebut medan jika dan hanya jika:
a. <F, +> adalah grup abelian
b. <F – {0}, ·> adalah grup abelian
c. Operasi · menyebar terhadap operasi + (sifat distributif)
Jadi, sebuah medan memenuhi aksioma: closure, komutatid, asosiatif, dan distributive.
Dalam fisika, grup digunakan untuk merepresentasikan operasi simetri, dan
penggunaan teori grup dapat menyederhanakan persamaan diferensial. Dalam teori ukuran,
persyaratan simetri lokal dapat digunakan untuk menyimpulkan persamaan yang menjelaskan
suatu sistem. Grup yang mendeskripsikan kesimetrian tersebut adalah grup Lie, dan studi
tentang grup Lie dan aljabar Lie mengungkapkan banyak hal tentang sistem fisik; misalnya,
jumlah pembawa gaya dalam sebuah teori sama dengan dimensi aljabar Lie, dan boson ini
berinteraksi dengan gaya yang dimediasi jika aljabar Lie nonabelian.
Setelah mengetahui teori aljabar kita dapat masuk ke kurva eliptik dan terapkan
aljabar teori. Yang dipakai dalam kurva eliptik ini untuk memahami ECC adalah
penjumlahan titik pada kurva eliptik, penggandaan titik, peleleran titik, dan perkalian titik.
Sebelum terjun ke ECC dengan berbekan teori algoritma dasar dan kurva eliptic. Kita harus
memahami ECDLP terlebih dahulu. Algoritma yang dating sebelum ECC dan menjadi dasar
dari ECC. Perumusan ECDPL adalah Diberikan P dan Q adalah dua buah titik di kurva
eliptik, carilah integer k sedemikian sehingga Q = kP.
Setelah memahami baik kurva eliptik, ECDLP dan Teori bilangan aljabar, saatnya
memahami ECC. Dan ECC ini dipakai dengan menggabungkannya dengan algoritma lain
sebersi algoritma Elgamal, Digital Signature dan Diffie-Hellman, demi mengubah pandangan
terhadap RSA. Meski begitu, RSA tetap dipakai dan ECC memiliki tempatnya sendiri seperti
di piranti komunikasi nirkabel, smart cards, dan web server yang membutuhkan penanganan
banyak sesi enkripsi. Setiap aplikasi yang membutuhkan keamanan namun cukup susah
melakukan komputasi pasti cocok dengan ECC.
FUNGSI HASH

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

Langkah-langkah pembuatan message digest dengan SHA-1:


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.
SECURE HASH ALGORITH 3 (SHA-3)
KECCAK

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.

a. Fase Penyerapan (absorbing)


Untuk setiap blok masukan Pi berukuran r-bit, XOR-kan dengan r-bit pertama dari
state S, lalu hasilnya dimasukkan ke dalam fungsi permutasi f untuk menghasilkan
state baru S. Bila semua blok masukan selesai diproses, konstruksi spons beralih ke
fase pemerasan (squeezing).

b. Fase pemerasan (squeezing)


Message digest akan disimpan di dalam Z. Inisialisasi Z dengan string kosong (null
string). Selagi panjang Z belum sama dengan d, r-bit pertama dari state S
disambungkan (append) ke Z. Jika panjang Z masih belum sama dengan d, masukkan
ke dalam fungsi permutasi f menghasilkan state baru S.
MESSAGE AUTHENTICATION CODE (MAC)

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.

Anda mungkin juga menyukai