Kriptografi
KRIPTOGRAFI
Pendahuluan :
Kerahasiaan
(confidentiality)
Layanan yang
digunakan untuk
menjaga isi pesan
dari siapapun yang
tidak berhak untuk
membacanya.
Otentikasi (authentication)
Layanan yang untuk
mengidentifikasi
kebenaran pihak-pihak
yang berkomunikasi (user
authentication) dan untuk
mengidentifikasi
kebenaran sumber pesan
(data origin
authentication).
Apakah pesan yang
diterima benar-benar
berasal dari pengirim yang
benar?
Nirpenyangkalan (nonrepudiation)
Terminologi
Penyadap (eavesdropper): orang yang mencoba
menangkap pesan selama ditransmisikan.
Nama lain: enemy, adversary, intruder, interceptor, bad
guy
Ron Rivest (pakar kriptografi): cryptography is about
communication in the presence of adversaries
10
Terminologi
Kriptanalisis (cryptanalysis): ilmu dan seni untuk
memecahkan chiperteks menjadi plainteks tanpa
mengetahui kunci yang digunakan.
Pelakunya disebut kriptanalis
(Perancang algoritma kriptografi: kriptografer)
Kriptanalisis merupakan lawan kriptografi
11
Terminologi
Kriptologi (cryptology): studi mengenai kriptografi
dan kriptanalisis.
Kriptologi
Kriptografi
Kriptanalisis
Ilmudanseniuntukmenjaga
keamananpesan
Ilmudanseniuntuk
menmecahkancipherteks
12
Terminologi
Persamaan kriptografer dan kriptanalis:
Keduanya sama-sama menerjemahkan cipherteks
menjadi plainteks
13
Sejarah Kriptografi
Kriptografi mempunyai sejarah yang panjang.
Tercatat Bangsa Mesir 4000 tahun yang lalu
menggunakan hieroglyph yang tidak standard untuk
menulis pesan
14
Sejarah Kriptografi
Di Yunani, kriptografi sudah digunakan 400 BC
Alat yang digunakan: scytale
15
Sejarah Kriptografi
Sejarah lengkap kriptografi dapat ditemukan di
dalam buku David Kahn, The Codebreakers
Empat kelompok orang yang menggunakan dan
berkontribusi pada kriptografi:
1. Militer (termasuk intelijen dan mata-mata)
2. Korp diplomatik
3. Diarist
4. Lovers
16
Sejarah Kriptografi
Kriptografi juga digunakan untuk alasan keagamaan
untuk menjaga tulisan religius dari gangguan otoritas
politik atau budaya yang dominan saat itu.
Contoh: 666 atau Angka si Buruk Rupa (Number of
the Beast) di dalam Kitab Perjanjian Baru.
17
Sejarah Kriptografi
Di India, kriptografi digunakan oleh pencinta
(lovers) untuk berkomunikasi tanpa diketahui
orang.
Bukti ini ditemukan di dalam buku Kama Sutra
yang merekomendasikan wanita seharusnya
mempelajari seni memahami tulisan dengan
cipher
18
Sejarah Kriptografi
Tidak ditemukan catatan kriptografi di Cina
dan Jepang hingga abad 15.
Sejarah Kriptografi
Perang Dunia ke II, Pemerintah Nazi Jerman
membuat mesin enkripsi yang dinamakan
Enigma.
Enigma cipher berhasil dipecahkan oleh pihak
Sekutu.
Keberhasilan memecahkan Enigma sering
dikatakan sebagai faktor yang memperpendek
perang dunia ke-2
20
Enigma
21
Kriptanalisis
Sejarah kriptografi paralel dengan sejarah
kriptanalisis (cryptanalysis), yaitu bidang ilmu dan
seni untuk memecahkan cipherteks
Teknik kriptanalisis sudah ada sejak abad ke-9.
22
Kriptanalisis
Al-Kindi menulis buku tentang seni memecahkan kode,
buku yang berjudul Risalah fi Istikhraj al-Mu'amma
(Manuscript for the Deciphering Cryptographic
Messages)
Al-Kindi menemukan frekuensi perulangan huruf di
dalam Al-Quran. Teknik yang digunakan Al-Kindi kelak
dinamakan analisis frekuensi.
Yaitu teknik untuk memecahkan cipherteks berdasarkan
frekuensi kemunculan karakter di dalam pesan
23
Integrity
Availability
Authentication
Non-Repudiation
Algoritma Kriptografi :
Berdasarkan jenis kunci yang digunakan
o Algoritma Simetris
o Algoritma Asimetris
Asimetris
Stream Cipher
algoritma yang dalam operasinya bekerja dalam suatu pesan
berupa bit tunggal atau terkadang dalam suatu byte, jadi
format data berupa aliran dari bit untuk kemudian mengalami
proses enkripsi dan dekripsi.
Cryptography
Serangan Terhadap Kriptografi
Penyadap berusaha mendapatkan data yang digunakan untuk kegiatan
kriptanalisis
Kriptanalis berusaha mengungkapkan plainteks atau kunci dari data yang
disadap
Kriptanalis dapat juga menemukan kelemahan dari sistem kriptografi yang
pada akhirnya mengarah untuk menemukan kunci dan mengungkapkan
plainteks
Penyadapan dapat dilakukan melalui saluran kabel komunikasi dan saluran
wireless
Cryptography
Jenis-jenis serangan:
1. Exhaustive attach atau brute force attack
Percobaan yang dibuat untuk mengungkapkan plainteks atau kunci
dengan mencoba semua kemungkinan kunci (trial and error)
Diasumsikan kriptanalis:
Memiliki sebagian plainteks dan cipherteks yang bersesuaian
Caranya:
Plainteks yang diketahui dienkripsi dengan setiap kemungkinan
kunci, lalu hasilnya dibandingkan dengan cipherteks yang
bersesuaian
Jika hanya cipherteks yang tersedia, cipherteks tersebut didekripsi
dengan setiap kemungkinan kunci dan plainteks hasilnya diperiksa
apakah mengandung makna atau tidak
Serangan ini membutuhkan waktu yang sangat lama
Untuk menghindari serangan ini, gunakan kunci yang panjang dan tidak
mudah ditebak
Cryptography
Waktu yang diperlukan untuk exhaustive key search
(Sumber: William Stallings, Data and Computer Communication Fourth Edition)
Ukuran
Kunci
Jumlah Kemungkinan
Kunci
Lama waktu
untuk 106
percobaan per
detik
16 bit
216 = 65536
32.7 milidetik
0.0327
mikrodetik
32 bit
35.8 menit
2.15 milidetik
56 bit
1142 tahun
10.01 jam
128 bit
5.4 1024
tahun
Cryptography
Jenis-jenis serangan:
2. Analytical attach
Kriptanalis tidak mencoba semua kemungkinan kunci, tetapi
menganalisa kelemahan algoritma kriptografi untuk mengurangi
kemungkinan kunci yang tidak ada.
Analisa yang dilakukan dengan memecahkan persamaan-persamaan
matematika yang diperoleh dari definisi suatu algoritma kriptografi
Diasumsikan kriptanalis mengetahui algoritma kriptografi
Metode analytical attack biasanya lebih cepat menemukan kunci
dibandingkan dengan exhaustive attack.
Untuk menghindari serangan ini, kriptografer harus membuat algoritma
yang kompleks.
Cryptography
Memastikan keamanan dari algoritma kriptografi
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
Contoh:
Plainteks:
AWASI ASTERIX DAN TEMANNYA OBELIX
Cipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA
1. Cipher Substitusi
Vignere
Cipher
Plainteks
Ku
nci
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
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
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
A
C
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
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
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
D
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z
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
Gambar 4.2BujursangkarVignere
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.
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.
AES-128
AES-192
AES-256
PanjangKunci
(Nk words)
4
6
8
Catatan:1word=32bit
UkuranBlok
(Nb words)
4
4
4
JumlahPutaran
(Nr)
10
12
14
Garis besar Algoritma Rijndael yang beroperasi pada blok 128bit 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 (Sbox).
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.
s ta te a rra y
o u tp u t b y te s
in
in
in
in
12
0 ,0
0 ,1
0 ,2
0 ,3
o u t0
o u t4
o u t8
o u t1 2
in
in
in
in
13
1 ,0
1 ,1
1 ,2
1 ,3
o u t1
o u t5
o u t9
o u t1 3
in
in
in
10
in
14
2 ,0
2 ,1
2 ,2
2 ,3
o u t2
o u t6
o u t10
o u t1 4
in
in
in
11
in
15
3 ,0
3 ,1
3 ,2
3 ,3
o u t3
o u t7
o u t11
o u t1 5
RSA
ALGORITMA ASIMETRI
RSA
Ditemukan oleh tiga orang yaitu Ron Rivest, Adi Shamir, dan
Leonard Adleman yang kemudian disingkat menjadi RSA.
Termasuk algritma asimetri karena mempunyai dua kunci, yaitu
kunci publik dan kunci privat.
Algoritma kunci-publik yang paling terkenal dan paling banyak
aplikasinya.
Ditemukan oleh tiga peneliti dari MIT (Massachussets Institute of
Technology), yaitu Ron Rivest, Adi Shamir, dan Len Adleman, pada
tahun 1976.
Keamanan algoritma RSA terletak pada sulitnya memfaktorkan
bilangan yang besar menjadi faktor-faktor prima.
RSA
Pembangkitan pasangan kunci
1.
2.
3.
4.
RSA
Kunci Publik
Misalkan a = 47 dan b = 71 (keduanya prima), maka dapat dihitung:
n = a b = 3337
(n) = (a 1)(b 1) = 46 x 70 = 3220.
Pilih kunci publik e = 79 (yang relatif prima dengan 3220 karena pembagi
bersama terbesarnya adalah 1).
Hapus a dan b dan kunci publiknya adalah n=3337 dan e=79
Kunci Privat
Selanjutnya akan dihitung kunci privat d dengan kekongruenan:
e d 1 (mod m) = =>
1 ( k 3220)
d
79
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
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 masingmasing 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)
Yq
M D
512
128
M D
q + 1
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.