Kriptografi modern

28
Kriptografi Modern

Transcript of Kriptografi modern

Kriptografi Modern

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

Hukum-hukum yang terkait dengan

operator XOR:

(i) a a = 0

(ii) a b = b a

(iii) a (b c) = (a b) c

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

Contoh:

Plainteks: 1100101

Keystream: 1000110

Cipherteks: 0100011

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.

Enkripsi DES sederhana

IP

2 6 3 1 4 8 5 7

P4

2 4 3 1

IP-1

4 1 3 5 7 2 8 6

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