Anda di halaman 1dari 66

Kriptografi Lanjut

(DES, AES, RSA)


S1 Teknik Informatika
Sejarah DES
• Algoritma DES dikembangkan di IBM dibawah
kepemimpinan W.L. Tuchman pada tahun 1972. Algoritma
ini didasarkan pada algoritma Lucifer yang dibuat oleh Horst
Feistel.

• Algoritma ini telah disetujui oleh National Bureau of


Standard (NBS) setelah penilaian kekuatannya oleh National
Security Agency (NSA) Amerika Serikat.

2
3
4
5
6
Permutasi Awal

7
Pembangkitan Kunci Internal

8
9
10
11
12
Proses pembangkitan
kunci-kunci internal

13
Enciphering
Proses enciphering terhadap blok plainteks dilakukan setelah permutasi
awal. Setiap blok plainteks mengalami 16 kali putaran enciphering
Setiap putaran enciphering merupakan jaringan Feistel yang secara
matematis dinyatakan sebagai

14
15
16
17
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
00 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
01 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
10 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
11 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
00 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
01 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
10 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
11 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
00 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
01 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
10 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
11 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
00 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
01 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
18
11 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
00 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
01 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 15
10 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
00 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
01 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
10 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
11 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
00 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
01 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
10 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
11 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
00 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
01 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
10 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
19
11 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
20
21
22
Mode DES

23
Keamanan DES

24
25
26
27
28
29
TUGAS 1
Misalnya ditetapkan teks asli P = (16 hex awal hasil konversi karakter
ascii dari nama anda berhuruf kapital) dan kunci K = (16 hex hasil
konversi desimal dari NIM anda, jika hasilnya kurang dari 16 karakter
hex, diulang sebanyak sampai menghasilkan total 16 karakter) sebagai
masukan untuk algoritma enkripsi DES, tentukan nilai teks sandi yang
dihasilkan (cipher text)?

30
Advanced Encryption
Standard (AES)
Panjang Kunci dan Ukuran Blok Rijndael
• Rijndael mendukung panjang kunci 128 bit sampai 256 bitdengan step
32 bit. Panjang kunci dan ukuran blok dapatdipilih secara independen.

• Setiap blok dienkripsi dalam sejumlah putaran tertentu, sebagaimana


halnya pada DES.

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
TUGAS 2
Dengan menggunakan teknik enkripsi AES-128, enkripsilah:
• Plainteks/State = 16 karakter pertama nama lengkap Anda
• Cipherkey = 16 digit perulangan NIM Anda

*contoh Plainteks, misal Nama: Munir, maka Plainteks anda adalah MunirMunirMunirM, jika ada spasi, maka spasi
juga merupakan bagian dari Plainteks.
**contoh Cipherkey, misal NIM: 100533402580, maka Cipherkey anda adalah 1005334025801005
***Tugas diselesaikan dengan perhitungan manual, boleh dibantu dengan software apapun.
****Kerjakan dan jelaskan hasil dari perhitungan terhadap seluruh tahapan enkripsi AES.

55
KRIPTOGRAFI
ALGORITMA RSA
PENDAHULUAN

 RSA termasuk algoritma kriptografi kunci-publik.


 Dibuat oleh tiga orang (1976), yaitu Ron Rivest, Adi Shamir, dan Leonard Adleman

 Kunci privat diperoleh melalui pemfaktoran.


 Parameter pada algoritma kriptografi adalah sebagai berikut:

Besaran Sifat
p dan q adalah bilangan prima rahasia

n=p.q tidak rahasia

f(n) = (p – 1)(q – 1) rahasia

e (kunci enkripsi) tidak rahasia

d (kunci dekripsi) rahasia

m (plainteks) rahasia

c (cipherteks) tidak rahasia


RUMUSAN ALGORITMA RSA

 Algoritma RSA didasarkan pada teorema Euler yang menyatakan bahwa:

af(n) º 1 (mod n)(1)


-) a harus relatif prima terhadap n
-) f(n) = n(1 – 1/p1)(1 – 1/p2) … (1 – 1/pr), dimana p1, p2, …, pr adalah faktor prima dari n.
 f(n) adalah fungsi yang menentukan berapa banyak dari bilangan-bilangan 1, 2, 3, …, n yang relatif
prima terhadap n.
 Berdasarkan sifat ak º bk (mod n) untuk k bilangan bulat ≥ 1, maka persamaan (1) ditulis:

(1) akf(n) º 1k (mod n)  (2) akf(n) º 1 (mod n) (2)


 Bila a diganti dengan m, maka persamaan (2) menjadi:

mkf(n) º 1 (mod n) (3)


 Berdasarkan sifat ac º bc (mod n), maka bila persamaan (3) dikali dengan m menjadi:

mkf(n)+1 º m (mod n), dimana m relatif prima dengan n. (4)


RUMUSAN ALGORITMA RSA

 Misalkan e dan d dipilih sedemikian sehingga:

(1) e . d º 1 (mod f(n))  (2) e . d = kf(n) + 1 (5)


 Sulihkan (5) ke dalam persamaan (4) menjadi:

(1) m e . d º m (mod n)  (2) (m e)d º m (mod n) (6)


yang artinya, perpangkatan m dengan e diikuti dengan perpangkatan dengan d menghasilkan kembali
m semula.
 Berdasarkan persamaan (6), maka enkripsi dan dekripsi dirumuskan sebagai:

Ee(m) = c º me mod n (7)

Dd(c) = m º cd mod n (8)

 Karena e . d = d . e, maka enkripsi diikuti dengan dekripsi ekivalen dengan dekripsi diikuti enkripsi:

Dd(Ee(m)) = Ee(Dd(m)) º md mod n (9)


RUMUSAN MEMBANGIKTKAN
PASANGAN KUNCI ALGORITMA RSA
 Pilih dua buah bilangan prima sembarang, p dan q.
 Hitung n = p . q

 sebaiknya p ¹ q, sebab jika p = q maka n = p2 sehingga p dapat diperoleh dengan menarik akar
pangkat dua dari n
 Hitung f(n) = (p – 1)(q – 1)
 Pilih kunci publik, e, yang relatif prima terhadap f(n).
 Bangkitkan kunci privat dengan menggunakan persamaan (5), yaitu:

(1) e . d º 1 (mod f(n))  (2) e . d = kf(n) + 1


 Sehingga d dapat dihitung: (10)
 Hasilnya, Kunci publik adalah pasangan (e, n) & Kunci privat adalah pasangan (d, n)
RUMUSAN MEMBANGIKTKAN
PASANGAN KUNCI ALGORITMA RSA

Contoh Soal:
Misalkan A (Komputer Pengirim) akan membangkitkan kunci publik dan kunci privat miliknya.
A memilih p = 47 dan q = 71 (keduanya prima).

 hitung:
n = p . q = 3337
f(n)= (p – 1)(q – 1) = 3220.

 A memilih kunci publik e = 79, karena 79 relatif prima dengan 3220.


 A mengumumkan nilai e dan n.
RUMUSAN MEMBANGIKTKAN
PASANGAN KUNCI ALGORITMA RSA
 Selanjutnya A menghitung kunci dekripsi d dengan menggunakan persamaan (10)

 Dengan mencoba nilai-nilai k = 1, 2, 3, …, diperoleh nilai d yang bulat adalah 1019. Ini adalah kunci
privat untuk mendekripsi pesan. Kunci ini harus dirahasiakan oleh A.
 Sehingga didapatkan:
Kunci publik: (79, 3337)
Kunci privat: (1019, 3337)
ALGORITMA ENKRIPSI/DEKRIPSI
KRIPTOGRAFI RSA
 Enkripsi
1. Ambil kunci publik penerima pesan, e, dan modulus n.
2. Nyatakan plainteks m menjadi blok-blok m1, m2, …, sedemikian sehingga setiap blok
merepresentasikan nilai di dalam selang [0, n – 1].
3. Setiap blok mi dienkripsi menjadi blok ci dengan rumus:
ci = mie mod n
 Dekripsi
Setiap blok cipherteks ci didekripsi kembali menjadi blok mi dengan rumus:
mi = cid mod n
ALGORITMA ENKRIPSI/DEKRIPSI
KRIPTOGRAFI RSA
Contoh Soal:
Misalkan B mengirim pesan kepada A. Pesan (plainteks) yang akan dikirim oleh A adalah:
 m = HARI INI  (ada 8 karakteri ASCII)  ASCII to DEC = 72 65 82 73 32 73 78 73
 B memecah m menjadi blok yang lebih kecil, misalnya m dipecah menjadi enam blok yang
berukuran 3 digit:
m1 = 726 m3 = 733 m5 = 787
m2 = 582 m4 = 273 m6 = 003
 Nilai-nilai mi ini masih terletak di dalam selang [0, 3337 – 1] agar transformasi menjadi 1-ke-1.
 B mengetahui kunci publik A adalah e = 79 dan n = 3337.
 A dapat mengenkripsisikan setiap blok plainteks sebagai berikut:
c1 = 72679 mod 3337 = 215; c3 = 73379 mod 3337 = 1743; c5 = 78779 mod 3337 = 1731;
c2 = 58279 mod 3337 = 776; c4 = 27379 mod 3337 = 933; c6 = 00379 mod 3337 = 158
Jadi, Cipherteks yang dihasilkan adalah c = 215 776 1743 933 1731 158
ALGORITMA ENKRIPSI/DEKRIPSI
KRIPTOGRAFI RSA
Contoh Soal:
 Dekripsi dilakukan dengan menggunakan kunci privat d = 1019
 Blok-blok cipherteks didekripsikan sebagai berikut:
m1 = 2151019 mod 3337 = 726; m3 = 17431019 mod 3337 = 733; m5 = 1731 1019 mod 3337 = 787;
m2 = 7761019 mod 3337 = 582; m4 = 933 1019 mod 3337 = 273; m6 = 158 1019 mod 3337 = 3
 sehingga m = 726 582 733 273 787 3
J A L A N N YA K R I P TO G RA F I RSA PA DA S I S T E M KO M P U T E R

TUGAS 3 (ANALYSIS)

A Siapa yang membuat Public & Private Key?


1. A  send  B
B Bagaimana distribusi kunci-nya?

A Bagaimana proses enkripsinya?


2. Enkripsi
B Rumus yang digunakan?

A Bagaimana proses dekripsinya?


3. Dekripsi
B Rumus yang digunakan?

66

Anda mungkin juga menyukai