Top Banner
29

Dekripsi Data

Jan 17, 2023

Download

Documents

Adrian Lugojan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Dekripsi Data
Page 2: Dekripsi Data
Page 3: Dekripsi Data

MACAM­MACAM ALGORITMA KRIPTOGRAFI MODERNPada kriptografi modern terdapat berbagai macam algoritma, secara umum algorimta

kriptografi modern dibagi tiga bagian yaitu: 1. Algoritma Simetris adalah algoritma yangmenggunakan kunci yang sama untuk melakukan

enkripsi dan dekripsi. Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma:

• Data Encryption Standard (DES)

• Advance Encryption Standard (AES)

• International Data Encryption Algoritma (IDEA)

• A5

• RC4 2. Algoritma Asimetris adalah pasangan kunci kriptografi yang salah satunyadigunakan untuk proses enkripsi dan yang satu lagi digunakan untuk dekripsi. Beberapa contohalgoritma yang menerapkan asimetris diantaranya:

• Digital Signature logartihm (DSA)

• RSA

• Diffie­Hellman (DH)

• Elliptic Curve Cryptiography (ECC)

• Kripto Quantum 3. Fungsi Hash juga sering disebut fungsi Hash satu arah (One­WayFunction), message digest, fingerprint, fungsi kompresi, dan message authentication code(MAC), merupakan fungsi matematika yang mengambil masukan panjang variabel danmengubahnya ke dalam urutan biner dengan panjang yang tetap. Fungsi hash biasanyadiperlukan untuk membuat sidik jari dari suatu pesan. Sidik jari pada pesan merupakan suatutanda untuk mematikan bahwa pesan tersebut benar­benar dari sumber yang dipercaya

Algoritma DES (Data Encryption Standard)Standar enkripsi data (Data Encryption Standard – DES) merupakan algoritma yang

diadopsi oleh NIST (National Institute of Standard and Technology) sebagai standar pengolahan data Informasi Federal AS.

Secara umum DES terdiri dari 3 kelompok, yakni: 1. Pemrosesan kunci 2. Enkripsi Data 3.Dekripsi Data

Sejarah DES

Pada tahun 1960 hingga tahun 1971 IBM melakukan riset pada bidang kriptografi yang diberi nama Lucifer yang dipimpin oleh Horst Feistel. Proyek riset Lucifer merupakan cikal bakal adanya algoritma Data Encryption Standard (DES).

Pada tahun 1972, IBM mengembangkan proyek riset DES yang dulunya bernama Lucifer melalui tim kriptografinya dibawah kepemimpinan W.L. Tuchman. National Bureau of Standard (NBS) meminta National Security Agency (NSA) untuk melakukan evaluasi terhadap Algoritma

Page 4: Dekripsi Data

DES dan pada tahun 1976 Data Encryption Standard (DES) terpilih menjadi standar yang dipakai pemerintahan AS.

Page 5: Dekripsi Data
Page 6: Dekripsi Data

Algoritma DES

DES termasuk sistem kriptografi simetris dan tergolong dalam jenis blok kode yangberoperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bitcipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa­kunci(subkey).Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit. Skemaglobal dari algoritma DES adalah sebagai berikut: 1. Blok plainteks dipermutasi dengan matrikspermutasi awal (initial permutation atau IP), ditulis

dengan x0

= IP (x) = L0

R0

. 2. Hasil permutasi awal kemudian di­enciphering sebanyak 16 kaH (16 putaran). Setiap putaran

menggunakan kunci internal yang berbeda dengan perhitungan L

i R i . 3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial

permutation atau IP­1 ) menjadi blok cipherteks.

Dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R),yang masing­masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES.Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f.

Pada fungsi f, blok R dikombinasikan dengan kunci internal K i . Keluaran dari fungsi fdi­XOR­kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru

langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES.

Secara matematis, satu putaran DES dinyatakan sebagai

Li

=Ri­1 R

i

=Li­1

f(Ri­1,

Ki

Page 7: Dekripsi Data

)

Dimana, ⊕ merupakan exclusive­or dari dua. f merupakan suatu fungsi dan K1, K2, .... Kn adalah kunci. Ki merupakan permutasi K terdiri dari kunci skedul. Satu putaran DES merupakan model jaringan Feistel, dapat dilihat pada gambar berikut ini.Gambar Skema Global Algoritma DES

Initial Prmutation (IP)

Invers Initial Prmutation (IP­1)

Block Plaintext

Enchipering

Block Code

Page 8: Dekripsi Data
Page 9: Dekripsi Data

PROSES ENKRIPSI DAN DEKRIPSI ALGORTIMA DES

Pada algoritma DES proese enkripsi terhadap plaintext, terlebih dahulu dilakukanpermutasi awal (Initial Permutation) terhadap plaintext. Setiap blok plaintext mengalami 16 kaliputaran pengkodean dan pada akhir enkripsi dilakukan IP kembali. Satu kali putaran merupakanjaringan Fiestel (f). Pada saat dekripsi prosesnya sama dengan enkripsi, tetapi kunci yangdigunakan untuk awal dekripsi dimulai dari K16

...K1

. Matriks P, E, S­Boxes, IP, PC­1 dan PC­2 yang digunakan jugasama dengan pada saat enkripsi.

Gambar Putaran Pertama Algoritma DES

Li­1

Li­1

Ri­1

Ri­1

+

fK i

Page 10: Dekripsi Data
Page 11: Dekripsi Data

Proses enkripsi dimulai dengan mengubah pesan m menjadi biner dengan ukuran blok 64 bit.Kemudian terhadap pesan dalam biner diacak dengan menggunakan IP, kemudian pesan dibagi2 @ 32 bit Left dan Right. Untuk setiap putaran (round); terhadap Li dan Ri dilakukan pertukarandari kanan ke kiri. Sementara untuk mendapatkan Ri digunakan f dan dilakukan operasi XOR

dengan Li; kecuali putaran terakhir (round 16) dilakukan sebaliknya. Jadi L i

= Ri­1

dan R i

= Li­1

⊕ f(Ri­1

, K i ) ∀i = 1,2,...15. Sementara untuk i=16 dilakukan dengan cara sebaliknya yaitu L16

= L15

⊕ f(R15

, K16

) dan R16

= R15

. f adalah sebuah fungsi yang memetakan (map) string 32­bit ke string 32­bit yang dihitungdari kunci dan Ri­1

f(R15

,K16

L16

=R

Page 12: Dekripsi Data

15

)=P(S(E(R15

)⊕K16 ))

L15

=R14

L1

=R0

L2

=R1

⊕ f(R15

Gambar Enkripsi dengan Algoritma DES

L0

,K16

)

Chipertext

Plaintext

IP

f(R0

f(R1

R15

Page 13: Dekripsi Data

,K1

,K2

R1

R2

=L14

=L0

=L1

)=P(S(E(R0

)⊕K1

)=P(S(E(R1

)⊕K2

R16

⊕ f(R0

⊕ f(R1

⊕ f(R14

R0

=R15

Page 14: Dekripsi Data

,K1

,K2

,K15

)

)

)

))

))

Page 15: Dekripsi Data
Page 16: Dekripsi Data

di­expand menjadi 48 bit dengan menggunakan bit­selection table (matrix) E. Kemudian, lakukanoperasi XOR string 48­bit yang baru dengan K i . Lalu string hasil 48­bit dikompress menjadi 32bit dengan menggunakan S­Boxes. Kedelapan S­Boxes dirancang untuk memetakan string 6­bitmenjadi string 4­bit. Misalkan satu string 6­bit adalah matriks 4 x 16 [0..3, 0..15]. Bit pertama danke 6 diinterpretasikan sebagai string 2­bit untuk menghasilkan baris [0..3]; bit ke­2 sampai ke­5

diinterpretasikan sebagai string 4­bit untuk menghasilkan kolom [0..15].

Contoh, sebuah string 6­bit 101011 akan diinterpretasikan sebagai posisi array [3,5]. Elemen pada posisi tersebut adalah string 4­bit dalam bentuk biner. Jadi string 48­bit dianggap sebagai 8 blok masing­masing 6­bit; dengan transformasi menggunakan salah satu dari 8 S­Boxes akan menghasilkan 8 blok dengan panjang 4; sehingga diperoleh string 32­bit. Dengan menggunakan string 6­bit 101011 di atas sebagai input terhadap S2­Box yaitu baris ke­3 kolom ke­5 menghasilkan output = 15 (1111). Akhirnya, blok 32­bit ini dipermutasikan dengan P dan di­XOR­kan dengan L

i­1untuk menghasilkan R i . Secara singkat fungsi f dapat dituliskan sebagai: F(Ri­1

, K i ) = P(S(E(Ri­1

) ⊕K i )); yang diuraikan menjadi: 1. Expansikan R

i­1 2. XOR­kan Ri­1

yang telah di­expand dengan K i 3. Gunakan S­Box terhadap hasil langkah 2 untuk mengubahstring 48 bit jadi 32­bit 4. Gunakan permutasi P dan XOR­kan dengan L

i­1

untuk menghasilkan R i

Yang menjadi pertanyaan, adalah bagaimana kunci 48 bit pada setiap round dari 16 diperoleh? Untuk itu kita perlu memperhatikan / menggunakan PC­1, PC­2 dan The Key Schedule of Left Shift LS berikut:

Iterasi Ke 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

#LeftShift 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Pada setiap tahap, kunci 56­bit mula­mula digunakan untuk menghasilkan kunci 48­bit K i(i=1,2..16). Pada round pertama, keseluruhan kunci (56­bit) di­injeksikan ke string 64­bit, denganbit ke 8, 16, 24 dan seterusnya dianggap parity check; kemudian hasil tersebut diberikan kepadapermutasi 64­bit PC­1, yang juga membuang parity bit. Kemudian pada setiap tahap, kunci 56­bit

dipecah menjadi 2 bagian kiri dan kanan masing­masing 28­bit (Ci­1

Page 17: Dekripsi Data

dan Di­1

). Potongan 28 bit ini akan dilakukan shift left 1 kali atau 2 kali sehubungan dengan iterasi dan key schedule di atas. Penggabungan Ci­1

dan Di­1

kemudian mempunyai 48 bit yang dipilih dari PC­2.

Ada beberapa matriks yang digunakan yaitu: 1. IP (Initial Permutation), matriks 8 x 8 yangdigunakan pada awal dan akhir enkripsi dan dekripsi. 2. E (Expansion), matriks 8 x 6. 3. P(Permutation), matriks 8 x 4. 4. S­Boxes, terdiri dari 8 buah matriks berukuran 4 x 16. 5. PC­1(Key Permutation 1), matriks 8 x 7. 6. PC­2 (Key Permutation 2), matriks 8 x 6

CARA MENGHITUNG KUNCI

Pertama, bagian kanan Ri­1

kunci 56 bit

plaintext 64 bit

χDES

BENTUK KRIPTOSISTEM DES

= << K56

, M64

ciphertext 64 bit

, C64

, TDES

>>

transformasi DES

Page 18: Dekripsi Data
Page 19: Dekripsi Data

Left Shift

Left Shift

Left Shift

C15

C16

Co

C1

C2

Kunci Eksternal

Permutasi PC1

Gambar Proses Menghitung Kunci

Left Shift

Left Shift

Left Shift

D15

D16

Do

D1

D2

Permutasi PC2

Permutasi PC2

K

Page 20: Dekripsi Data

16

K1

Page 21: Dekripsi Data
Page 22: Dekripsi Data

TABEL MATRIK ALGORITMA DES

1. Initial Permutation

1 2 3 4 5 6 7 8 1 58 50 42 34 26 18 10 2 2 60 52 44 36 28 20 12 4 3 62 54 46 38 30 22 14 6 IP =4 64 56 48 40 32 24 16 8 5 57 49 41 33 25 17 9 1 6 59 51 43 35 27 19 11 3 7 61 53 45 37 29 21

13 5 8 63 55 47 39 31 23 15 7

2. Final Permutation (IP­1)

1 2 3 4 5 6 7 8 1 40 8 48 16 56 24 64 32 2 39 7 47 15 55 23 63 31 3 38 6 46 14 54 22 62 30 IP­1= 4 37 5 45 13 53 21 61 29 5 36 4 44 12 52 20 60 28 6 35 3 43 11 51 19 59 27 7 34 2 42 10 50

18 58 26 8 33 1 41 9 49 17 57 25

3. Expansion Function (E)

1 2 3 4 5 6 1 32 1 2 3 4 5

2 4 5 6 7 8 9 3 8 9 10 11 12 13 E= 4 12 13 14 15 16 17 5 16 17 18 19 20 21 6 20 21 22 23 24 257 24 25 26 27 28 29 8 28 29 30 31 32 1

4. Permutation P

1 2 3 4 1 16 7 20 21 2 29 12 28 17 3 1 15 23 26 P= 4 5 18 31 10 5 2 8 24 14 6 32 27 3 9 7 19 1330 6 8 22 11 4 25

Page 23: Dekripsi Data
Page 24: Dekripsi Data

5. S­Boxes (S1­S8) S1: Column Row 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S2: Column Row 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S3: Column Row 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 2 3 6 4 9 8 15 3 011 1 2 12 5 10 14 7 3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 S4: Column Row 0 1 2 3 4 5 6 7 8 910 11 12 13 14 15 0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 92 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 4

S5: Column Row 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

S6: Column Row 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

S7: Column Row 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

Page 25: Dekripsi Data
Page 26: Dekripsi Data

S8: Column Row 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

6. Key Permutation (PC­1)

1 2 3 4 5 6 7 1 57 49 41 33 25 17 9 2 1 58 50 42 34 26 18 3 10 2 59 51 43 35 27 PC­1= 4 19 11 360 52 44 36 5 63 55 47 39 31 23 15 6 7 62 54 46 38 30 22 7 14 6 61 53 45 37 29 8 21 13 5 28 20

12 4

7. Compression Key (PC­2)

1 2 3 4 5 6 1 14 17 11 24 1 5 2 3 28 15 6 21 10 3 23 19 12 4 26 8 PC­2= 4 16 7 27 20 13 2 5 4152 31 37 47 55 6 30 40 51 45 33 48 7 44 49 39 56 34 53 8 46 42 50 36 29 32

Page 27: Dekripsi Data
Page 28: Dekripsi Data

Contoh: Plaintext: computer Kunci: program Enkripsi: computer = 01100011 0110111101101101 01110000 01110101 01110100 01100101Bit Ke:

Bit Ke:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16i

12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234

12345678 90123456 78901234 56789012 34567890 12345678 90123456 78901234

01100011 01101111 01101101 01110000 01110101 01110100 01100101 01110010

11111111 10111000 01110110 01010111 00000000 11111111 00000110 10000011 00000000 11111111 00000110 10000011 10111011 10011001 11101001 11001100 10111011 10011001 11101001 11001100 10000011 11110101 10001100 10100011 10000011 11110101 10001100 10100011 00010001 11011011 11001111 11011100 00010001 11011011 11001111 11011100 10011010 11110110 01100010 01011001 10011010 11110110 01100010 01011001 00100111 10100001 00011011 01011101 00100111 10100001 00011011 01011101 10110110 11100110 11001011 11011010 10110110 11100110 11001011 11011010 00101011 00111100 00010000 10101110 00101011 00111100 00010000 10101110 00011000 11111111 00010001 01010010 00011000 11111111 00010001 01010010 01111101 00001100 10100001 00101111 01111101 00001100 10100001 00101111 00011100 10111110 11100110 11101110 00011100 10111110 11100110 11101110 00000110 10001101 00100001 01011101 00000110 10001101 00100001 01011101 00111011 10000010 00101110 01001011 00111011 10000010 00101110 01001011 00100000 11111001 00001101 11110001 00100000 11111001 00001101 11110001 01101110 01001001 10001101 00010000 01101110 01001001 10001101 00010000 11101000 10000011 01111000 01001100 01010010 10011000 11000001 01011010 11101000 10000011 01111000 01001100

00100100 01100001 00000010 10011011 01011001 10001000 11001111 10110100

c

Chipertext

o

Li

m

p

u

t

Page 29: Dekripsi Data

P­1

R i

e

r