View
163
Download
2
Category
Preview:
Citation preview
Mengapa kriptografi modern ?
Klasik mudah dipecahkan
Agar tidak dapat dipecahkan :
a. kunci harus acak
(peluang sama)
b. panjang kunci = panjang plaintext
Prinsip Kriptografi Modern
Mode bit (kriptografi klasik karakter)
kunci, plainteks, cipherteks bit
operasi bit xor
Pesan bit biner dipecah menjadi beberapa blok
Contoh: Plainteks 100111010110
blok 4-bit
1001 1101 0110
maka setiap blok menyatakan 0 sampai 15:
9 13 6
blok 3-bit:
100 111 010 110
maka setiap blok menyatakan 0 - 7:
4 7 2 6
blok 5-bit:
10011 10101 00010
Pesan kode Hex:
0000 = 0 0001 = 1 0010 = 2 0011 = 3
0100 = 4 0101 = 5 0011 = 6 0111 = 7
1000 = 8 1011 = 9 1010 = A 1011 = B
1100 = C 1101 = D 1101 = E 1111 = F
Contoh: plainteks 100111010110 blok 4-bit:
1001 1101 0110
9 D 6
Notasi:
Operasi:
0 0 = 0 0 1 = 1
1 0 = 1 1 1 = 0
Operasi XOR = penjumlahan modulo 2:
0 0 = 0 0 + 0 (mod 2) = 0
0 1 = 1 0 + 1 (mod 2) = 1
1 0 = 1 0 + 1 (mod 2) = 1
1 1 = 1 1 + 1 (mod 2) = 0
Jika dua rangkaian dioperasikan dengan XOR, maka
operasinya dilakukan dengan meng-XOR-kan setiap bit yang
berkoresponden dari kedua rangkaian bit tersebut.
Contoh: 10011 11001 = 01010
yang dalam hal ini, hasilnya diperoleh sebagai berikut:
1 0 0 1 1
1 1 0 0 1
1 1 0 1 0 0 1 0 1 1
0 1 0 1 0
Enkripsi dengan XOR
Enkripsi: C = P K
Dekripsi: P = C K
Cth:
plaintext (‘a’) = 97= 01100001
key (‘A’) = 65 = 01000001
00100000 32
01000001
01100001
Prinsip awalnya mirip dengan Vigenere Cipher
Kategori Algoritma (cipher) Berbasis Bit
1. Cipher Aliran (Stream Cipher)
- beroperasi pada bit tunggal
- enkripsi/dekripsi bit per bit
2. Cipher Blok (Block Cipher)
- beroperasi pada blok bit
(contoh: 64-bit/blok = 8 karakter/blok)
- enkripsi/dekripsi blok per blok
Keystream
Generator
Keystream
Generator
ki
ki
pi
pi
ci
Enkripsi Dekripsi
Keystream Keystream
Plainteks PlainteksCipherteks
Pengirim Penerima
Bit-bit kunci keystream
Keystream keystream generator.
Pengirim:
Keystream di-XOR-kan dengan bit-bit plainteks, p1, p2, …, menghasilkan aliran bit-bit cipherteks:
ci = pi ki
Penerima:
Dibangkitkan keystream yang sama untuk mendekripsi :
pi = ci ki
Cipher Blok (Block Cipher
Bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang sama, misalnya 64 bit.
Panjang kunci enkripsi = panjang blok
Enkripsi dilakukan terhadap blok bit plainteks menggunakan bit-bit kunci
Algoritma enkripsi menghasilkan blok cipherteks yang panjangnya = blok plainteks.
Blok plainteks berukuran m bit:
P = (p1, p2, …, pm), pi {0, 1}
Blok cipherteks (C) berukuran m bit:
C = (c1, c2, …, cm), ci {0, 1}
Contoh sandi blok
Pemetaan sandi blok n = 3 dengan kunci
pemetaan (52370614)
Teks asli Teks sandi
000 101
001 010
010 011
011 111
100 000
101 110
110 001
111 100
Komponen sandi blok modern
Boks permutasi biasa = ukuran masukan
dan keluaran adalah sama. Contoh boks
permutasi P10.
P10
3 5 2 7 4 10 1 9 8 6
Boks permutasi kompresi = Ukuran
masukan lebih besar dari pada ukuran
keluaran
Contoh :
P8
6 3 7 4 8 5 10 9
Boks permutasi eskpansi = Ukuran
masukan lebih kecil daripada ukuran
keluaran. Beberapa bit masukan
terpetakan pada dua atau lebih bit
keluaran
Contoh :
E / P
4 1 2 3 2 3 4 1
Boks Substitusi
S0
0 1 2 3
0 1 0 3 2
1 3 2 1 0
2 0 2 1 3
3 3 1 3 2
S1
0 1 2 3
0 0 1 2 3
1 2 0 1 3
2 3 0 1 0
3 2 1 0 3
x1 dan x4 baris sedangkan x2 dan x3 kolom
Operasi SWAP
Pada sistem sandi DES disetiap ronde
selalu dilakukan operasi swap yaitu
penukaran nilai separuh kanan dan
separuh .kiri sebuah rangkaian bit.
Pembangkit Kunci Ronde DES
1. Kunci berukuran 10 bit menjadi masukan boks
permutasi P10. misalkan K=(1001101110),
maka P10(k)=(0101101110).
2. Pisahkan P10(k) menjadi 2 biner yang
berukuran 5 bit. Melanjutkan langkah 1
didapatkan split (0101101110) =
(01011)(01110).
3. Lakukan shift left 1 bit, sehingga menjadi
(10110)(11100)
4. Gabungkan lagi hasil shift left dan boks
permutasi P8, hasil keluaran P8 adalah kunci
ronde 1 K1.maka didapat (11111000)
5. Lakukan shift left 2 bit
(01011)(01110)=(11010)(10011).
6. Gabungkan dan lakukan boks permutasi P8
dan hasilnya akan menjadi kunci ronde 2 K2.
K2=P8(1101010011)=(10010011).
Contoh Enkripsi DES sederhana
Jika teks asli x=(10101100) dan kunci adalah
K=(1001101110), apa hasil enkripsi x dengan
DES sederhana?
Jawab :
Berikut ini adaah langkah-langkah untuk
mengenkripsi x dengan DES-sederhana:
1. Teks asli x menjadi masukan boks permutasi
IP(10101100)=(01110010).
2. Ronde 1 . Ronde 1 untuk masukan sandi
produk fk1 adalah(01110010)dan kunci ronde
K1=(11111000).
a. 4 bit sebelah kanan masukan fk1(LSB) adalah
(0010) dikenakan boks permutasi ekspansi
menjadi E/P (0010)=(00010100).
b. Lakukan operasi eksklusif OR K1 dan E/P.
Hasilnya (11101100).
c. Keluaran XOR, 4 bit sebelah kiri dikenakan
boks substitusi S0, sehingga hasilnya 3 (11),
dan 4 bit sebelah kanan dikenakan S1
sehingga hasilnya 1 (01).
d. Lakukan boks permutasi P4 terhadap
gabungan S0 dan S1, sehingga hasilnya (1101)
e. Lakukan operasi XOR keluaran P4 dengan 4 bit
sebelah kiri masukan fk1, sehingga hasilnya
(1010).
f. Jadi keluaran sandi produk fk1 adalah
(10100010).
3. Lakukan operasi swap fk1, hasilnya (00101010).
4. Ronde 2, lakukan hal yang sama seperti Ronde
1, hanya saja masukan fk2 adalah (00101010)
dan kunci ronde K2=(10010011), keluaran fk2
adalah (11001010).
5. Lakukan boks permutasi balik IP-1 fk2, sehingga
hasil teks sandi adalah (01011100).
Recommended