2. Integritas Data
Data Integrity
, adalah layanan yang menjamin bahwa pesan masih asliutuh atau belum pernah dimanipulasi selama pengiriman. Manipulasi
data dapat berupa menyisipkan, menghapus dan menukar data tersebut.
3. Otentikasi
Authentication
, adalah layanan yang berhubungan dengan identifikasi baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi
entity authentication
maupun mengidentifikasi asal usul pesan
data origin authentication
. Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan asal usul pesan.
Otentikasi asal usul pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti asal usul pesan sudah tidak
benar.
4. Penyangkalan
Non-Repudiation
, adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan yaitu pengirim pesan telah menyangkal
melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. Menezes, et al. 2001 Schneier, 1996
2.3. Sistem Kriptografi
Cryptosystem
Sistem kriptografi
cryptosystem
sering disebut juga dengan sistem cipher
cipher system
adalah sistem yang terdiri dari algoritma enkripsi, algoritma dekripsi dan tiga komponen teks
plaintext
,
ciphertext
dan kunci Tilborg, et al., 2011
. Secara umum
ada dua jenis sistem kriptografi berbasis kunci: 1.
Sistem kriptografi simetris
Symmetric Cryptosystem
, sering disebut algoritma konvensional, adalah algoritma di mana kunci enkripsi dapat dihitung dari kunci
dekripsi dan sebaliknya, artinya kunci enkripsi sama dengan kunci dekripsi. Algoritma ini disebut juga algoritma
secret-key
, algoritma kunci tunggal, atau algoritma satu kunci mengharuskan pengirim dan penerima menyepakati kunci
yang sama sebelum mereka dapat berkomunikasi secara aman. Keamanan algoritma simetris terletak pada kunci, kebocoran kunci berarti siapa pun bisa
mengenkripsi dan mendekripsi pesan. Algoritma simetris dapat dibagi menjadi dua kategori, pertama, beroperasi pada
plaintext
satu bit atau kadang-kadang byte pada suatu waktu yang disebut algoritma aliran atau
stream cipher
. Beberapa lagi beroperasi pada
plaintext
dalam kelompok bit. Kelompok-
Universitas Sumatera Utara
kelompok bit yang disebut blok dan algoritmanya disebut algoritma blok atau
block cipher
. Contoh sistem ini adalah DES, Blowfish, RC5, GOST, dsb.
Enkripsi E
K
P = C Enkripsi
E
K
P = C Dekripsi
D
K
C = P Dekripsi
D
K
C = P Kunci privat K
Kunci Privat K
Plainteks P CipherteksC
Plainteks P
Gambar 2.2 Skema
symmetric cryptosystem
2. Sistem kriptografi kunci-publik
Public-key Cryptosystem
, sering disebut algoritma asimetris
asymmetric cryptosystem
, adalah algoritma di mana kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk
dekripsi. Selain itu, kunci dekripsi tidak dapat setidaknya dalam jumlah waktu yang wajar dihitung d
ari suatu kunci enkripsi. Algoritma ini disebut “kunci- publik” karena kunci enkripsi dapat dibuat publik yaitu pihak luar dapat
menggunakan kunci enkripsi untuk mengenkripsi pesan, tetapi hanya orang tertentu dengan kunci dekripsi yang sesuai dapat mendekripsi pesan. Dalam
sistem ini, kunci enkripsi disebut kunci publik, dan kunci dekripsi disebut kunci privat. Ada dua masalah matematika yang sering dijadikan dasar pembangkitan
sepasang kunci pada algortima kunci-publik, yaitu: a.
Pemfaktoran Diberikan bilangan bulat
n
. faktorkan
n
menjadi faktor primanya. Semakin besar
n
, semakin sulit memfaktorkannya butuh waktu sangat lama. Algoritma yang menggunakan prinsip ini adalah RSA.
b. Logaritma diskrit
Temukan
x
sedemikian sehingga sulit dihitung. Semakin
besar
a
,
b
dan
n
semakin sulit memfaktorkannya. Algoritma yang menggunakan prinsip ini adalah ElGamal dan DSA.Munir, 2006
Universitas Sumatera Utara
Enkripsi E
K1
P = C Enkripsi
E
K1
P = C Dekripsi
D
K2
C = P Dekripsi
D
K2
C = P Kunci Publik K1
Kunci Privat K2
Plainteks P CipherteksC
Plainteks P
Gambar 2.3 Skema
public-key cryptosystem
2.4.
Rivest Shamir Adleman
RSA
RSA adalah salah satu dari sistem kriptografi kunci-publik
public-key criptosystem
. Tahun 1978, Len Adleman, Ron Rivest dan Adi Shamir mempublikasikan sistem
RSA. Semula sistem ini dipatenkan di Amerika Serikat dan seharusnya masa paten habis tahun 2003, akan tetapi RSA Security melepaskan hak paten setelah 20
September 2000. RSA menjadi sistem kriptografi RSA kunci-publik yang terpopuler
karena merupakan sistem pertama yang sekaligus dapat digunakan untuk
confidentiality, key distribution
dan
digital signature
. Boleh dikatakan semua standar sistem kriptografi memperbolehkan penggunaan RSA, termasuk SSLTLS untuk
pengamanan http dan SSH
secure shell
Kromodimoeljo, 2009. Algoritma RSA
memiliki besaran-besaran sebagai berikut:
1.
p
dan
q
bilangan prima rahasia
2.
n
=
p
.
q
tidak rahasia 3.
ɸ
n
=
p
– 1
q
– 1 rahasia
4.
e
kunci enkripsi tidak rahasia
5.
d
kunci dekripsi rahasia
6.
m plaintext
rahasia 7.
c ciphertext
tidak rahasia
2.4.1. Pembangkitan kunci
Dalam membuat suatu sandi, RSA mempunyai cara kerja dalam membuat kunci publik dan kunci privat adalah sebagai berikut:
1. Pilih dua bilangan prima sembarang,
p
dan
q
. 2.
Hitung
n
=
p
.
q
sebaiknya
p
≠
q
, sebab jika
p
=
q
maka
n
=
p
2
sehingga
p
dapat diperoleh dengan menarik akar pangkat dua dari
n
.
Universitas Sumatera Utara
3. Hitung ɸ
n
=
p
– 1
q
– 1
.
4. Pilih kunci publik
e
, yang relatif prima terhadap ɸ
n
yaitu 1
e
ɸ
n
dan
gcd e
, ɸ
n
= 1.
5.
Bangkitkan kunci privat dengan menggunakan persamaan
e. d
≡ 1
mod
ɸ
n
. ………….………………………………………..1 0 ≤
d
≤
n
Sehingga hasil dari algoritma di atas adalah: a.
Kunci publik adalah pasangan
e
,
n
b. Kunci privat adalah pasangan
d
,
n
Contoh: Misalkan A akan membangkitkan kunci publik dan kunci privat miliknya. A
memilih
p
= 47 dan
q
= 71 keduanya prima. Selanjutnya A menghitung :
n
=
p. q
= 3337 dan ɸ
n
=
p
– 1
q
– 1 = 3220 A memilih kunci publik
e
= 79 karena relatif prima dengan 3320. A mengumumkan nilai
e
dan
n
. Selanjutnya A menghitung kunci dekripsi
d
, sehingga dituliskan berdasarkan persamaan:
79.
d
≡ 1
mod
3220 Dengan mencoba nilai-nilai
d
= 1, 2, 3, …, diperoleh nilai
d
memenuhi persamaan 1 yaitu 1019.
d
= 1 79.1
mod
3220 = 79
d
= 2 79.2
mod
3220 = 158
d
= 3 79.3
mod
3220 = 237
d
= 1019 79.1019
mod
3220 = 1 Kunci privat digunakan untuk mendekripsi pesan dan harus dirahasiakan A. Jadi,
perhitungan kunci ini menghasilkan pasangan kunci: a.
Kunci publik
e
= 79,
n
= 3337 b.
Kunci privat
d
= 1019,
n
= 3337 Pada RSA hanya diberikan kunci publik, yaitu modulus
n
dan
e
. Sedangkan kunci privat
d
dirahasiakan. Oleh sebab itu, keamanan algoritma
RSA
terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima
n
menjadi faktor primanya,
… …
Universitas Sumatera Utara
dalam hal ini
n
=
p. q
. Sekali
n
berhasil difaktorkan menjadi
p
dan
q
, maka ɸ
n
=
p
– 1
q
– 1 dapat dihitung. Selanjutnya, karena kunci enkrispi
e
diumumkan tidak rahasia, maka kunci dekripsi
d
dapat dihitung dari persamaan 1 kemudian dilakukan dekripsi
ciphertext c
menjadi
plaintext m
menggunakan persamaan 2. Untuk menjaga keamanan tersebut, ada beberapa hal yang perlu diperhatikan
dalam memilih
p
dan
q
: 1.
Nilai
p
harus cukup jauh dari nilai
q
. Sebaiknya panjang dari
p
harus berbeda beberapa digit dari
q
. 2.
Sebaiknya
gcd
p – 1, q – 1 tidak terlalu besar.
3. Sebaiknya
p
– 1 dan
q
– 1 mempunyai faktor prima yang besar. Kromodimoeljo, 2009
2.4.2. Proses enkripsi
Proses enkripsi pesan sebagai berikut: 1.
Ambil kunci publik penerima pesan e dan modulus n.
2. Nyatakan
plaintext m
menjadi blok-blok
m
1
,
m
2
, ..., sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0,
n
– 1].
3. Setiap blok m
i
dienkripsi menjadi blok c
i
dengan rumus
c
i
=
m
i
e
mod
n
………………………………………………..2
Contoh: Misalkan B mengirim pesan kepada A. Pesan
plaintext
yang akan dikirim ke A adalah
m
= BUDI B mengubah
m
ke dalam desimal pengkodean ASCII dan sistem akan memecah
m
menjadi blok yang lebih kecil dengan menyeragamkan masing-masing blok menjadi 3 digit dengan menambahkan digit semu biasanya 0 karena kode ASCII memiliki
panjang digit maksimal sebesar 3 digit:
m
1
= 066
m
2
= 085
m
3
= 068
m
4
= 073 Nilai-nilai
m
i
ini masih terletak di dalam selang [0, 3337-1] agar transformasi menjadi satu-ke-satu. B mengetahui kunci publik A adalah
e
= 79 dan
n
= 3337. B dapat mengenkripsi setiap blok
plaintext
sebagai berikut:
c
1
=
66
79
mod
3337 = 795
c
2
= 85
79
mod
3337 = 3048
c
3
= 68
79
mod
3337 = 2753
c
4
= 73
79
mod
3337 = 725
Universitas Sumatera Utara
Dalam penerapannya, untuk memudahkan sistem membagi
ciphertext
menjadi blok-blok yang mewakili tiap karakter maka ditambahkan digit semu biasanya 0
pada blok cipher sehingga tiap blok memiliki panjang yang sama sesuai ketetapan dalam hal ini panjangnya 4 digit. Jadi,
ciphertext
yang dihasilkan adalah
c
= 0795 3048 2753 0725
2.4.3. Proses dekripsi
Proses dekripsi pesan sebagai berikut:
1. Ambil kunci privat penerima pesan
d
, dan modulus
n
. Nyatakan
plaintext c
menjadi blok-blok
c
1
,
c
2
, ..., sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0,
]. 2.
Setiap blok m
i
dienkripsi menjadi blok
c
i
dengan rumus:
m
i
=
c
i d
mod
n
……………………………………………………….3
Contoh: Dengan kunci privat
d = 1019
, chiperteks yang telah dibagi menjadi blok- blok cipher yang sama panjang,
c
= 0795 3048 2753 0725, kembali diubah ke dalam
plaintext
: BUDI
m
1
= 795
1019
mod
3337 = 66
m
2
= 3048
1019
mod
3337 = 85
m
3
= 2753
1019
mod
3337 = 68
m
4
= 735
1019
mod
3337 = 73 Sehingga
plaintext
yang dihasilkan
m
= BUDI
2.5. Kriptanalisis