Anda di halaman 1dari 79

Keamanan Komputer

Kriptografi

KRIPTOGRAFI
Pendahuluan :

Kriptografi adalah suatu ilmu yang mempelajari


bagaimana cara menjaga agar data atau pesan
tetap aman saat dikirimkan, dari pengirim ke
penerima tanpa mengalami gangguan dari pihak
ketiga
Hal ini seiring dengan semakin berkembangnya
teknologi jaringan komputer dan internet
Semakin banyaknya aplikasi yang muncul
memanfaatkan teknologi jaringan
Beberapa aplikasi tersebut menuntut tingkat aplikasi
pengiriman data yang aman

Kehidupan kita saat ini dikelilingi oleh kriptografi,


mulai:
ATM tempat mengambil uang,
Telepon genggam (HP),
Komputer di lab/kantor,
Internet,
Gedung-gedung bisnis,
sampai ke pangkalan militer
3

Layanan yang Disediakan Kriptografi


1.

Kerahasiaan
(confidentiality)
Layanan yang
digunakan untuk
menjaga isi pesan
dari siapapun yang
tidak berhak untuk
membacanya.

Dia bisa ikut menerima pesan tapi tidak mengerti


Sumber: Tutun Juhana (EL)
4

Layanan yang Disediakan Kriptografi


2.

Integritas data (data


integrity)
Layanan yang menjamin
bahwa pesan masih
asli/utuh atau belum
pernah dimanipulasi
selama pengiriman.
Apakah pesan yang
diterima masih asli atau
tidak mengalami
perubahan (modifikasi)?.
5

Layanan yang Disediakan Kriptografi


3.

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?

He can claim that he is A


6

Layanan yang Disediakan Kriptografi


4.

Nirpenyangkalan (nonrepudiation)

Layanan untuk mencegah


entitas yang
berkomunikasi melakukan
penyangkalan, yaitu
pengirim pesan
menyangkal melakukan
pengiriman atau penerima
pesan menyangkal telah
menerima pesan.

Proses Utama pada Kriptografi :


Enkripsi
adalah proses dimana informasi/data yang hendak
dikirim diubah menjadi bentuk yang hampir tidak
dikenali sebagai informasi awalnya dengan
menggunakan algoritma tertentu
Dekripsi
adalah kebalikan dari enkripsi yaitu mengubah kembali
bentuk tersamar tersebut menjadi informasi awal

Istilah dalam Kriptografi :


Berikut adalah istilah-istilah yang digunakan dalam
bidang kriptografi :
Plaintext (M) adalah pesan yang hendak
dikirimkan (berisi data asli).
Ciphertext (C) adalah pesan ter-enkrip (tersandi)
yang merupakan hasil enkripsi.
Enkripsi (fungsi E) adalah proses pengubahan
plaintext menjadi ciphertext.
Dekripsi (fungsi D) adalah kebalikan dari enkripsi
yakni mengubah ciphertext menjadi plaintext,
sehingga berupa data awal/asli.
Kunci adalah suatu bilangan yang dirahasiakan yang
digunakan dalam proses enkripsi dan dekripsi.

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

Perbedaan kriptografer dan kriptanalis:


Kriptografer bekerja atas legitimasi pengirim atau
penerima pesan
Kriptanalis bekerja tanpa legitimasi pengirim atau
penerima pesan

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.

Pada Abad ke-17, sejarah kriptografi pernah


mencatat korban di Inggris.

Queen Mary of Scotland, dipancung


setelah pesan rahasianya dari balik
penjara (pesan terenkripsi yang
isinya rencana membunuh Ratu
Elizabeth I) pada Abad Pertengahan
berhasil dipecahkan oleh Thomas
Phelippes, seorang pemecah kode.
Queen Mary
19

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.

Dikemukakan pertama kali oleh seorang ilmuwan


Arab pada Abad IX bernama Abu Yusuf Yaqub
Ibnu Ishaq Ibnu As-Sabbah Ibnu 'Omran Ibnu
Ismail Al-Kindi, atau yang lebih dikenal sebagai
Al-Kindi.

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

Prinsip yang mendasari kriptografi yakni:


Confidentiality

Integrity
Availability
Authentication
Non-Repudiation

Algoritma Kriptografi :
Berdasarkan jenis kunci yang digunakan
o Algoritma Simetris
o Algoritma Asimetris

Berdasarkan besar data yang diolah :


o Algoritma Block Cipher
o Algoritma Stream Cipher

Berdasarkan jenis kunci yang digunakan :


Algoritma Simetris
Algoritma simetris (symmetric algorithm) adalah suatu
algoritma dimana kunci enkripsi yang digunakan sama
dengan kunci dekripsi sehingga algoritma ini disebut
juga sebagai single-key algorithm.

Berdasarkan jenis kunci yang digunakan :


Kelebihan algoritma simetris :
Kecepatan operasi lebih tinggi bila dibandingkan

dengan algoritma asimetrik.


Karena kecepatannya yang cukup tinggi, maka dapat
digunakan pada sistem real-time

Kelemahan algoritma simetris :


Untuk tiap pengiriman pesan dengan pengguna yang
berbeda dibutuhkan kunci yang berbeda juga,
sehingga akan terjadi kesulitan dalam manajemen
kunci tersebut.
Permasalahan dalam pengiriman kunci itu sendiri yang
disebut key distribution problem

Berdasarkan jenis kunci yang digunakan :


Algoritma

Asimetris

Algoritma asimetris (asymmetric algorithm) adalah suatu


algoritma dimana kunci enkripsi yang digunakan tidak sama
dengan kunci dekripsi. Pada algoritma ini menggunakan
dua kunci yakni kunci publik (public key) dan kunci privat
(private key). Kunci publik disebarkan secara umum
sedangkan kunci privat disimpan secara rahasia oleh si
pengguna. Walau kunci publik telah diketahui namun akan
sangat sukar mengetahui kunci privat yang digunakan.

Berdasarkan jenis kunci yang digunakan :


Kelebihan algoritma asimetris :
Masalah keamanan pada distribusi kunci dapat lebih baik
Masalah manajemen kunci yang lebih baik karena
jumlah kunci yang lebih sedikit

Kelemahan algoritma asimetris :


Kecepatan yang lebih rendah bila dibandingkan dengan
algoritma simetris
Untuk tingkat keamanan sama, kunci yang
digunakan lebih panjang dibandingkan dengan
algoritma simetris.

Berdasarkan besar data yang diolah :


Block Cipher
algoritma kriptografi ini bekerja pada suatu data yang
berbentuk blok/kelompok data dengan panjang data tertentu
(dalam beberapa byte), jadi dalam sekali proses enkripsi atau
dekripsi data yang masuk mempunyai ukuran yang sama.

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

Lama waktu untuk


1012 percobaan
per detik

16 bit

216 = 65536

32.7 milidetik

0.0327
mikrodetik

32 bit

212 = 4.3 X 109

35.8 menit

2.15 milidetik

56 bit

256 = 7.2 X 1016

1142 tahun

10.01 jam

128 bit

2128 = 4.3 X 101

5.4 1024
tahun

5.4 1018 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

Algoritma harus dievaluasi oleh pakar


Algoritma yang tertutup (tidak dibuka kepada publik) dianggap tidak aman
Membuat algoritma yang aman tidak mudah
Code maker VS code breaker akan terus berlangsung

Algoritma Kriptografi Klasik

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

1. Cipher Substitusi - Caesar Cipher


Tiap huruf alfabet digeser 3 huruf ke kanan
pi : 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
ci : 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

Contoh:
Plainteks:
AWASI ASTERIX DAN TEMANNYA OBELIX
Cipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA

1. Cipher Substitusi - Caesar Cipher


Dalam praktek, cipherteks dikelompokkan ke dalam
kelompok n-huruf, misalnya kelompok 4-huruf:
DZDV LDVW HULA GDQW HPDQ QBAR EHOL A
Atau membuang semua spasi:
DZDVLDVWHULAGDQWHPDQQBAREHOLA
Tujuannya agar kriptanalisis menjadi lebih sulit

1. Cipher Substitusi - Vignere Cipher


Termasuk ke dalam cipher abjad-majemuk (polyalpabetic
substitution cipher ).
Algoritma tersebut baru dikenal luas 200 tahun
kemudian yang oleh penemunya cipher tersebut
kemudian dinamakan Vignere Cipher.
Vignere Cipher menggunakan Bujursangkar Vignere
untuk melakukan enkripsi.
Setiap baris di dalam bujursangkar menyatakan hurufhuruf cipherteks yang diperoleh dengan Caesar Cipher.

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

1. Cipher Substitusi - Vignere Cipher

Contoh penerapan Vignere Cipher :


Plainteks : THIS PLAINTEXT
Kunci
: sony sonysonys
Cipherteks : LVVQ HZNGFHRVL
Jika panjang kunci lebih pendek daripada panjang plainteks,
maka kunci diulang secara periodik. Dalam hal ini Kunci
sony diulang sebanyak panjang plaintext-nya
Pada dasarnya, setiap enkripsi huruf adalah Caesar cipher
dengan kunci yang berbeda-beda.
c(T) = (T + s) mod 26 = L
T = 20 dan s= 19 (20+19)%26=13 L
c(H) = (H + o) mod 26 = V, dst

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.

2. Cipher Transposisi (Contoh)


Contoh: Misalkan plainteks adalah
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
Enkripsi:
POLITEK
NIKELEK
TRONIKA
NEGERIS
URABAYA
Cipherteks: (baca secara vertikal)
PNTNUOIRERLKOGAIENEBTLIRAEEKIYKKASA
PNTN UOIR ERLK OGAI ENEB TLIR AEEK IYKK ASA

Algoritma Kriptografi Modern

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.

Algoritma Enkripsi dengan rangkaian bit

Pesan (dalam bentuk rangkaian bit) dipecah


menajdi beberapa blok
Contoh: Plainteks 100111010110
Bila dibagi menjadi blok 4-bit
1001 1101 0110
maka setiap blok menyatakan 0 sampai 15:
9
13
6

Algoritma Enkripsi dengan rangkaian bit

Bila plainteks dibagi menjadi blok 3-bit:


100
111 010
110
maka setiap blok menyatakan 0 sampai
7:
4
7
2
6

Jenis Algoritma Kriptografi


Algoritma Simetri
a. Blok Chiper : DES, IDEA, AES
b. Stream Chiper : OTP, A5 dan RC4
Algoritma Asimetri : RSA, DH, ECC, DSA
Fungsi Hash : MD5, SHA1
Dalam presentasi kami menggunakan
Algoritma AES, RSA dan MD5

AES (Advanced Encryption Standard)


ALGORITMA SIMETRI : BLOK CHIPER

AES (Advanced Encryption Standard)


DES dianggap sudah tidak aman.
Perlu diusulkan standard algoritma baru sebagai
pengganti DES.
National Institute of Standards and Technology (NIST)
mengusulkan kepada Pemerintah Federal AS untuk
sebuah standard kriptografi kriptografi yang baru.
NIST mengadakan lomba membuat standard algoritma
kriptografi yang baru. Standard tersebut kelak diberi
nama Advanced Encryption Standard (AES).

AES (Advanced Encryption Standard)


Pada bulan Oktober 2000, NIST
mengumumkan untuk memilih Rijndael
(dibaca: Rhine-doll)
Pada bulan November 2001, Rijndael
ditetapkan sebagai AES
Diharapkan Rijndael menjadi standard
kriptografi yang dominan paling sedikit
selama 10 tahun.

AES (Advanced Encryption Standard)


Tidak seperti DES yang berorientasi bit, Rijndael beroperasi
dalam orientasi byte.
Setiap putaran mengunakan kunci internal yang berbeda (disebut
round key).
Enciphering melibatkan operasi substitusi dan permutasi.
Karena AES menetapkan panjang kunci adalah 128, 192, dan
256, maka dikenal AES-128, AES-192, dan AES-256

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

AES (Advanced Encryption Standard)

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.

Final round: proses untuk putaran terakhir:


SubBytes
ShiftRows
AddRoundKey

AES (Advanced Encryption Standard)

AES (Advanced Encryption Standard)


Selama kalkulasi plainteks menjadi cipherteks, status
sekarang dari data disimpan di dalam array of bytes dua
dimensi, state, yang berukuran NROWS NCOLS.
Untuk blok data 128-bit, ukuran state adalah 4 4.
Elemen array state diacu sebagai S[r,c], 0 r < 4 dan 0 c <
Nb (Nb adalah panjang blok dibagi 32.
Pada AES-128, Nb = 128/32 = 4)
in p u t b y t e s

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

AES (Advanced Encryption Standard)

Contoh: (elemen state dan kunci dalam notasi HEX)

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.

Pilih dua bilangan prima, a dan b (rahasia)


Hitung n = a b. Besaran n tidak perlu dirahasiakan.
Hitung (n) = (a 1)(b 1).
Pilih sebuah bilangan bulat untuk kunci publik, sebut namanya
e, yang relatif prima terhadap (n) .
5. Hitung kunci dekripsi, d, melalui ed 1 (mod m) atau d e-1
mod ((n) )

Hasil dari algoritma di atas:


-

Kunci publik adalah pasangan (e, n)


Kunci privat adalah pasangan (d, n)

Catatan: n tidak bersifat rahasia, namun ia diperlukan


pada perhitungan enkripsi/dekripsi

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

Dengan mencoba nilai-nilai k = 1, 2, 3, , diperoleh nilai d yang bulat


adalah 1019. Ini adalah kunci privat (untuk dekripsi).

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

Kekuatan dan Keamanan RSA


Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam
memfaktorkan bilangan non prima menjadi faktor primanya, yang
dalam hal ini n = a b.
Sekali n berhasil difaktorkan menjadi a dan b, maka (n) = (a 1)(b
1) dapat dihitung. Selanjutnya, karena kunci enkripsi e diumumkan
(tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan
ed 1 (mod n).
Penemu algoritma RSA menyarankan nilai a dan b panjangnya lebih
dari 100 digit. Dengan demikian hasil kali n = a b akan berukuran
lebih dari 200 digit.
Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor
bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar
tahun! (dengan asumsi bahwa algoritma pemfaktoran yang
digunakan adalah algoritma yang tercepat saat ini dan komputer
yang dipakai mempunyai kecepatan 1 milidetik).

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

ABCD f F ( ABCD, Yq , T [1..16])

Yq :blok 512-bit ke-q dari


pesan + bit-bit
pengganjal + 64 bit nilai
panjang pesan semula
Fungsi-fungsi fF, fG, fH,
dan fI masing-masing
berisi 16 kali operasi
dasar terhadap masukan,
setiap operasi dasar
menggunakan elemen
Tabel T

ABCD f G ( ABCD, Yq , T [17..32])

ABCD f H ( ABCD, Yq , T [33..48])

ABCD f I ( ABCD, Yq , T [49..64])

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.

Anda mungkin juga menyukai