Algoritma Kriptografi Klasik


 Algoritma Kriptografi Klasik
 Pendahuluan
 Algoritma kriptografi klasik berbasis karakter
 Menggunakan pena dan kertas saja, belum ada komputer
 Termasuk ke dalam kriptografi kunci-simetri
 Algoritma kriptografi klasik:
– Cipher Substitusi (Substitution Ciphers)
– Cipher Transposisi (Transposition Ciphers)
 1. Cipher Substitusi
 Monoalfabet : setiap karakter chipertext menggantikan satu macam karakter plaintext
 Polyalfabet : setiap karakter chipertext menggantikan lebih dari satu macam karakter plaintext
 Monograf /unilateral: satu enkripsi dilakukan terhadap satu karakter plaintext
 Polygraf /multilateral: satu enkripsi dilakukan terhadap lebih dari satu karakter plaintext
 1. Cipher Substitusi – Caesar Cipher
 Tiap huruf alfabet digeser 3 huruf ke kanan
pi : 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
ci : D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
 Contoh:
Plainteks: AWASI ASTERIX DAN TEMANNYA OBELIX
Cipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA
 1. Cipher Substitusi – Caesar Cipher
 Dalam praktek, cipherteks dikelompokkan ke dalam kelompok n-huruf, misalnya kelompok 4-huruf:
DZDV LDVW HULA GDQW HPDQ QBAR EHOL A
 Atau membuang semua spasi:
DZDVLDVWHULAGDQWHPDQQBAREHOLA
 Tujuannya agar kriptanalisis menjadi lebih sulit
 1. Cipher Substitusi – Vigènere Cipher
 Termasuk ke dalam cipher abjad-majemuk (polyalpabetic substitution cipher ).
 Algoritma tersebut baru dikenal luas 200 tahun kemudian yang oleh penemunya cipher tersebut kemudian dinamakan Vigènere Cipher.
 Vigènere Cipher menggunakan Bujursangkar Vigènere untuk melakukan enkripsi.
 Setiap baris di dalam bujursangkar menyatakan huruf-huruf cipherteks yang diperoleh dengan Caesar Cipher.
 1. Cipher Substitusi – Vigènere Cipher
 1. Cipher Substitusi – Vigènere Cipher
 Contoh penerapan Vigènere Cipher :
Plainteks : THIS PLAINTEXT
Kunci : sony sonysonys
Cipherteks : LVVQ HZNGFHRVL
 Jika panjang kunci lebih pendek daripada panjang plainteks, maka kunci diulang secara periodik. Dalam hal ini Kunci “sony” diulang sebanyak panjang plaintext-nya
 Pada dasarnya, setiap enkripsi huruf adalah Caesar cipher dengan kunci yang berbeda-beda.
c(‘T’) = (‘T’ + ‘s’) mod 26 = L
T = 20 dan s= 19 à (20+19)%26=13 à L
c(‘H’) = (‘H’ + ‘o’) mod 26 = V, dst
 2. Cipher Transposisi
 Cipherteks diperoleh dengan mengubah posisi huruf di dalam plainteks.
 Dengan kata lain, algoritma ini melakukan transpose terhadap rangkaian huruf di dalam plainteks.
 Nama lain untuk metode ini adalah permutasi, karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karakter tersebut.
 2. Cipher Transposisi (Contoh)
Contoh: Misalkan plainteks adalah
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

Enkripsi:
POLITEK
NIKELEK
TRONIKA
NEGERIS
URABAYA

Cipherteks: (baca secara vertikal)
PNTNUOIRERLKOGAIENEBTLIRAEEKIYKKASA
PNTN UOIR ERLK OGAI ENEB TLIR AEEK IYKK ASA
 Algoritma Kriptografi Modern
 Pendahuluan
 Beroperasi dalam mode bit (algoritma kriptografi klasik beroperasi dalam mode karakter)
 kunci, plainteks, cipherteks, diproses dalam rangkaian bit
 operasi bit xor paling banyak digunakan
 Pendahuluan
 Tetap menggunakan gagasan pada algoritma klasik: substitusi dan transposisi, tetapi lebih rumit (sangat sulit dipecahkan)
 Perkembangan algoritma kriptografi modern didorong oleh penggunaan komputer digital untuk keamanan pesan.
 Komputer digital merepresentasikan data dalam biner.
 Algoritma Enkripsi dengan rangkaian bit
 Pesan (dalam bentuk rangkaian bit) dipecah menajdi beberapa blok
 Contoh: Plainteks 100111010110
Bila dibagi menjadi blok 4-bit
1001 1101 0110
maka setiap blok menyatakan 0 sampai 15:
9 13 6
 Algoritma Enkripsi dengan rangkaian bit
Bila plainteks dibagi menjadi blok 3-bit:
100 111 010 110

maka setiap blok menyatakan 0 sampai 7:
4 7 2 6
 Jenis Algoritma Kriptografi
 Algoritma Simetri
a. Blok Chiper : DES, IDEA, AES
b. Stream Chiper : OTP, A5 dan RC4
 Algoritma Asimetri : RSA, DH, ECC, DSA
 Fungsi Hash : MD5, SHA1
 Dalam presentasi kami menggunakan Algoritma AES, RSA dan MD5

AES (Advanced Encryption Standard)
 ALGORITMA SIMETRI : BLOK CHIPER
 AES (Advanced Encryption Standard)
 DES dianggap sudah tidak aman.
 Perlu diusulkan standard algoritma baru sebagai pengganti DES.
 National Institute of Standards and Technology (NIST) mengusulkan kepada Pemerintah Federal AS untuk sebuah standard kriptografi kriptografi yang baru.
 NIST mengadakan lomba membuat standard algoritma kriptografi yang baru. Standard tersebut kelak diberi nama Advanced Encryption Standard (AES).
 AES (Advanced Encryption Standard)
 Pada bulan Oktober 2000, NIST mengumumkan untuk memilih Rijndael (dibaca: Rhine-doll)
 Pada bulan November 2001, Rijndael ditetapkan sebagai AES
 Diharapkan Rijndael menjadi standard kriptografi yang dominan paling sedikit selama 10 tahun.
 AES (Advanced Encryption Standard)
 Tidak seperti DES yang berorientasi bit, Rijndael beroperasi dalam orientasi byte.
 Setiap putaran mengunakan kunci internal yang berbeda (disebut round key).
 Enciphering melibatkan operasi substitusi dan permutasi.
 Karena AES menetapkan panjang kunci adalah 128, 192, dan 256, maka dikenal AES-128, AES-192, dan AES-256
 AES (Advanced Encryption Standard)
 Garis besar Algoritma Rijndael yang beroperasi pada blok 128-bit dengan kunci 128-bit adalah sebagai berikut (di luar proses pembangkitan round key):
– AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga initial round.
– Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah:
 SubBytes: substitusi byte dengan menggunakan tabel substitusi (S-box).
 ShiftRows: pergeseran baris-baris array state secara wrapping.
 MixColumns: mengacak data di masing-masing kolom array state.
 AddRoundKey: melakukan XOR antara state sekarang round key.
– Final round: proses untuk putaran terakhir:
 SubBytes
 ShiftRows
 AddRoundKey
 AES (Advanced Encryption Standard)
 AES (Advanced Encryption Standard)
 Selama kalkulasi plainteks menjadi cipherteks, status sekarang dari data disimpan di dalam array of bytes dua dimensi, state, yang berukuran NROWS ´ NCOLS.
 Untuk blok data 128-bit, ukuran state adalah 4 ´ 4.
 Elemen array state diacu sebagai S[r,c], 0 £ r < 4 dan 0 £ c
Dengan mencoba nilai-nilai k = 1, 2, 3, …, diperoleh nilai d yang bulat adalah 1019. Ini adalah kunci privat (untuk dekripsi).
 RSA
 Misalkan plainteks M = HARI INI
atau dalam ASCII: 7265827332737873

Pecah M menjadi blok yang lebih kecil (misal 3 digit):
m1 = 726 m4 = 273
m2 = 582 m5 = 787
m3 = 733 m6 = 003
(Perhatikan, mi masih terletak di dalam antara 0 sampai n – 1)
 RSA
 Enkripsi setiap blok:
c1 = 72679 mod 3337 = 215
c2 = 58279 mod 3337 = 776, dst
Chiperteks C = 215 776 1743 933 1731 158.

 Dekripsi (menggunakan kunci privat d = 1019)
m1 = 2151019 mod 3337 = 726
m2 = 7761019 mod 3337 = 582 dst untuk sisi blok lainnya
Plainteks M = 7265827332737873 yang dalam ASCII karakternya adalah HARI INI.
 RSA
 Kekuatan dan Keamanan RSA
– Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini n = a ´ b.
– Sekali n berhasil difaktorkan menjadi a dan b, maka f(n) = (a – 1)´(b – 1) dapat dihitung. Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan ed º 1 (mod n).
– Penemu algoritma RSA menyarankan nilai a dan b panjangnya lebih dari 100 digit. Dengan demikian hasil kali n = a ´ b akan berukuran lebih dari 200 digit.
– Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun! (dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik).
 Algoritma MD5
 FUNGSI HASH
 MD5
 MD5 adalah fungsi hash satu-arah yang dibuat oleh Ron Rivest.
 MD5 merupakan perbaikan dari MD4 setelah MD4 berhasil diserang oleh kriptanalis.
 Algoritma MD5 menerima masukan berupa pesan dengan ukuran sembarang dan menghasilkan message digest yang panjangnya 128 bit.
 Dengan panjang message digest 128 bit, maka secara brute force dibutuhkan percobaan sebanyak 2128 kali untuk menemukan dua buah pesan atau lebih yang mempunyai message digest yang sama.
 MD5 (Algoritma)
 Penambahan Bit-bit Pengganjal
– Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512.
– Jika panjang pesan 448 bit, maka pesan tersebut ditambah dengan 512 bit menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512.
– Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0
 MD5 (Algoritma)
 Penambahan Nilai Panjang Pesan
– Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula.
– Jika panjang pesan > 264 maka yang diambil adalah panjangnya dalam modulo 264. Dengan kata lain, jika panjang pesan semula adalah K bit, maka 64 bit yang ditambahkan menyatakan K modulo 264.
– Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi kelipatan 512 bit
 MD5 (Algoritma)
 Inisialisai Penyangga MD
– MD5 membutuhkan 4 buah penyangga (buffer) yang masing-masing panjangnya 32 bit. Total panjang penyangga adalah 4 ´ 32 = 128 bit. Keempat penyangga ini menampung hasil antara dan hasil akhir.
– Keempat penyangga ini diberi nama A, B, C, dan D. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut:
A = 01234567
B = 89ABCDEF
C = FEDCBA98
D = 76543210
 MD5 (Algoritma)
 Pengolahan Pesan dalam Blok Berukuran 512 bit
– Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit (Y0 sampai YL – 1).
– Setiap blok 512-bit diproses bersama dengan penyangga MD menjadi keluaran 128-bit, dan ini disebut proses HMD5
 MD5 (Algoritma)
 MD5 (Algoritma)
 MD5 (Algoritma)
 MD5 (Algoritma)
 Putaran 1 : 16 kali operasi dasar dengan g(b,c,d) = F(b,c,d)
 MD5 (Algoritma)
 Putaran 2 : 16 kali operasi dasar dengan g(b,c,d) = G(b,c,d)
 MD5 (Algoritma)
 Putaran 3 : 16 kali operasi dasar dengan g(b,c,d) = H(b,c,d)
 MD5 (Algoritma)
 Putaran 4 : 16 kali operasi dasar dengan g(b,c,d) = I(b,c,d)
 MD5 (Algoritma)
 Setelah putaran keempat, a, b, c, dan d ditambahkan ke A, B, C, dan D, dan selanjutnya algoritma memproses untuk blok data berikutnya (Yq+1).
 Keluaran akhir dari algoritma MD5 adalah hasil penyambungan bit-bit di A, B, C, dan D.

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s