Perkuliahan6 (Kamis, 23 Oktober 2020)
- Perkuliahan6 (23 Oktober 2020),
- Matakuliah: Keamanan Sistem Komputer C31040319
Kriptografi
Kriptografi
(cryptography) berasal dari bahasa Yunani, terdiri dari dua
suku kata yaitu kripto dan graphia. Kripto artinya menyembunyikan, sedangkan
graphia artinya tulisan. Kriptografi adalah ilmu yang mempelajari teknik-teknik
matematika yang berhubungan dengan aspek keamanan informasi, seperti
kerahasiaan data, keabsahan data, integritas data, serta autentikasi data
.Tetapi tidak semua aspek keamanan informasi dapat diselesaikan dengan
kriptografi.
Kriptografi dapat pula diartikan sebagai ilmu
atau seni untuk menjaga keamanan pesan. Pada prinsipnya, Kriptografi memiliki 4
komponen utama yaitu:
·
Plaintext, yaitu pesan yang dapat dibaca
·
Ciphertext, yaitu pesan acak yang tidka dapat
dibaca
·
Key, yaitu kunci untuk melakukan teknik
kriptografi
·
Algorithm, yaitu metode untuk melakukan
enkrispi dan dekripsi
Ada empat tujuan dari ilmu kriptografi, yaitu :
·
Confidelity (kerahasiaan) yaitu layanan agar
isi pesan yang dikirimkan tetap rahasia dan tidak diketahui oleh pihak lain (kecuali
pihak pengirim, pihak penerima / pihak-pihak memiliki ijin). Umumnya hal ini
dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah
data hingga menjadi sulit untuk dibaca dan dipahami.
·
Data integrity (keutuhan data) yaitu layanan
yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau
penambahan) data yang tidak sah (oleh pihak lain).
·
Authentication
(keotentikan) yaitu layanan
yang berhubungan dengan identifikasi. Baik otentikasi
pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian
data/informasi.
·
Non-repudiasi, yang berarti begitu pesan
terkirim, maka tidak akan dapat dibatalkan.
Kemudian, proses yang akan dibahas dalam
artikel ini meliputi 2 proses dasar pada Kriptografi yaitu:
·
Enkripsi (Encryption)
·
Dekripsi (Decryption)
Dengan key yang digunakan sama untuk kedua
proses diatas. Penggunakan key yang sama untuk kedua proses enkripsi dan
dekripsi ini disebut juga dengan Secret Key, Shared Key atau Symetric Key
Cryptosystems.Berikut adalah ilustrasi 4 komponen dan 2 proses yang digunakan
dalam teknik kriptografi.
Enkripsi
Proses utama dalam suatu algoritma kriptografi
adalah enkripsi dan dekripsi. Enkripsi (Encryption) adalah sebuah proses
menjadikan pesan yang dapat dibaca (plaintext) menjadi pesan acak yang tidak
dapat dibaca (ciphertext). Pada metode ECB (Elekctronic Codebook), sebuah blok
pada plaintext dienkripsi ke dalam sebuah blok ciphertext dengan panjang blok
yang sama.
Blok cipher memiliki sifat bhahwa setiap blok
harus memiliki panjang yang sama (misalnya 128 bit). Namun apabila pesan yang
dienkripsi memiliki panjang blok terakhir tidak tepat 128 bit, maka diperlukan
mekanisme padding, yaitu penambahan bit-bit dummies untuk menggenapi menjadi
panjang blok yang sesuai; biasanya padding dilakukan pada blok terakhir
plaintext.
Padding bada blok terakhir bisa dilakukan
dengan berbagai macam cara, misalnya dengan penambahan bit-bit tertentu. Salah
satu contoh penerapan padding dengan cara menambahkan jumlah total padding
sebagai byte terakhir pada blok terakhir plaintext. Misalnya panjang blok adalah
128 bit (16 byte) dan pada blok terakhir terdiri dari 88 bit (11 byte) sehingga
jumlah padding yang diperlukan adalah 5 byte, yaitu dengan menambahkan angka
nol sebanyak 4 byte, kemudian menambahkan angka 5 sebanyak satu byte. Cara lain
dapat juga menggunakan penambahan karakter end-of-file pada byte terakhir lalu
diberi padding setelahnya.
Berikut adalah contoh enkripsi yang digunakan
oleh Julius Caesar, yaitu dengan mengganti masing-masing huruf dengan 3 huruf
selanjutnya (disebut juga Additive/Substitution Cipher):
Plaintext Ciphertext
rumah
xasgn
motor
suzux
kompor
qusvux
dst…
Dekripsi
Dekripsi merupakan proses kebalikan dari
enkripsi dimana proses ini akan mengubah ciphertext menjadi plaintext dengan
menggunakan algortima 'pembalik' dan key yang sama. Untuk menghilangkan padding
yang diberikan pada saat proses enkripsi, dilakukan berdasarkan informasi
jumlah padding yaitu angka pada byte terakhir. Contoh:
Ciphertext Plaintext
xasgn
rumah
suzux
motor
qusvux
kompor
dst
Contoh
Kriptografi Substitution :
UTRTGZ UTRTGZ FTLT ETEN
LTTM DNMXKFXGNGZ LXGWN
IHFHUN INFHUNTB TLUNBZPR RHSIBRB
AHR ALYAUSHR
AHR AIYOUPUKHYRHU
KHU ZLSHSB TIUNLTIHSPRHU PUNHAHURB
RLWHKHTB
TLTIBHARB NLTLAHY
TLTIBHARB ILYNLAHY
HSSHO
HRB PUNPU TLUNLTIHSPRHU RLZHKHYHURB
HRB PUNPU TLULAHWRHU ABQPHURB
IHODH
OHUFH RHB FHUN RBABQB
OHUFH RHB WLUFLSHTHARB
YVIIHUH HHAPUH MPKKBUFH ROHZHUHA DHMPS
HROUPHAP OHZHUHAHD DHXPUUH
HKGHIHUUHHY
RHBSHO KBUPH KHU HROPYHARB
Kriptografi Substitution di atas asalnya dari :
Bayang-bayang masa lalu
saat kutermenung sendu
baying-bayangmu mengusik kalbuku
tak tertolak
tak terhindarkan
dan selalu mengembalikan ingatanku
kepadamu
membuatku gemetar
membuatku bergetar
Allah…
aku ingin mengembalikan kesadaranku
aku ingin menetapkan tujuanku
bahwa
hanya Kau yang kutuju
hanya Kau penyelamatku
robbana aatina fiddunya khasanat wafil
akhoirati hasanataw waqinna
adzabannaar
Kaulah dunia dan akhiratku
Untuk contoh
Kriptografi Substitution ini memakai metode Caesar Cipher dengan geser 7 huruf.
Berikut tabel Caesar Cipher geser 7 huruf :
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 |
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 |
1.1.3
Teknik Kriptografi
Pada umumnya terdapat dua teknik yang digunakan
dalam kriptografi, yakni: kunci simetrik dan kunci asimetrik (public-key).
a.
Kunci Simetrik
Skema enkripsi akan disebut symmetric-key
apabila pasangan kunci untuk proses enkripsi dan dekripsinya sama. Pada skema
enkripsi kunci simetrik dibedakan lagi menjadi dua kelas, yaitu block-cipher
dan stream-cipher.
Block-cipher adalah skema enkripsi yang akan
membagi-bagi plaintext yang akan dikirimkan menjadi sting-string (disebut blok)
dengan panjang t, dan mengenkripsinya per-blok. Pada umumnya block-cipher
memproses plaintext dengan blok yang relatif panjang lebih dari 64 bit dengan
tujuan untuk mempersulit penggunaan pola-pola serangan yang ada untuk
membongkar kunci. Sedangkan skema stream cipher pada dasarnya juga block-cipher,
hanya dengan panjang bloknya adalah satu bit.
·
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 setiap pengiriman pesan dengan pengguna yang berbeda
dibutuhkan kuncu yang berbeda juga, sehingga akan terjadi kesulitan dalam
manajemen kunci tersebut, biasa disebut key distribution problem.
b.
Kunci Asimetrik
Skema ini adalah algoritma yang menggunakan
kunci yang berbeda untuk proses enkripsi dan dekripsinya. Skema ini disebut
juga sebagai sistem kriptografi Public-key karena kunci untuk enkripsi dibuat
secara umum (public-key) atau dapat diketahui oleh siapa saja, tetapi untuk
proses dekripsinya yang dibuat satu saja, yakini hanya oleh yang berwenang
untuk mendekripsinya (disebut private-key),.
Kelebihan Algoritma Asimetris :
·
Masalah keamanan pada distribusi kunci dapat
lebih baik
·
Masalah manajemen kunci 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.
c.
Kriptografi Block Cipher
Block cipher merupakan sebuah fungsi yang
memetakan n-bit blok plaintext ke n-bit blok ciphertext, dengan n adalah
panjang blok. Blok cipher umumnya memproses plaintext ke dalam blok-blok yang
cukup besar (≥
64).
d.
Cipher Berulang
Pada teknik cipher berulang (iterated cipher),
blok plaintext mengalami pengulangan fungsi transformasi beberapa kali untuk
mendapatkan blok ciphertext. Fungsi transformasi pada umumnya merupakan
gabungan proses subtitusi, permutasi, kompresi, atau ekspansi terhadap blok
plaintext. Sebuah kunci pada setiap putaran akan dikombinasikan dengan
plaintext. Parameter dalam cipher ini adalah jumlah putaran r, besar blok n dan
besar kunci k. Sub-kunci Ki pada setiap putaran diperoleh dari penurunan kunci
input K.
e.
Feistel Cipher
Feistel cipher beroperasi terhadap panjang blok
data tetap sepanjang n (genap), kemudian membagi 2 blok tersebut dengan panjang
masing-masing n/2, yang dinotasikan dengan L dan R. Feistel cipher menerapkan
metode cipher berulang dengan masukan pada putaran ke-I yang didapat dari
keluaran sebelumnya, yang secara matematis dapat dinyatakan sebagai berikut :
Li=Ri-1
Ri=Li-1 f(Ri-1,Ki); i=1,2,3,…,r
Ki adalah kunci untuk putaran ke-i dan f adalah
fungsi transformasi.
Blok plaintext adalah gabungan L dan R awal
atau secara formal plaintext dinyatakan dengan (Lo, Ro). Sedangkan blok
ciphertext didapatkan dari L dan R hasil putaran terakhir setelah terlebih
dahulu dipertukarkan atau dinyatakan dengan (Rr, Lr).
f.
Avalanche
Pada blok cipher perubahan satu buah bit dapat
menghasilkan perubahan lebih dari satu bit setelah satu putaran, lebih banyak
lagi bit berubah untuk putaran berikutnya. Hasil perubahan tersebut dinamakan
sebagai avalanche effect. Sebuah algoritma kriptografi memenuhi kriteria
avalanche effect apabila satu buah bit input mengalami perubahan, maka
probabilitas semua bit berubah adalah setengahnya.
Avalanche effect merupakan salah satu
karakteristik yang menjadi acuan untuk menentukan baik atau tidaknya sebuah
algoritma kriptografi.
Metode Operasi
Ada beberapa metode operasi yang digunakan
dalam kriptografi, seperti :
a.
Electronic codebook (ECB)
Pada metode ini blok-blok plaintext (x) yang
identik (yang menggunakan kunci sama) akan menghasilkan ciphertext (c) yang
identik pula, yang secara matematis dapat dinyatakan :
Enkripsi : cj EK(xj); 1 j t
Dekripsi : xj EK-1(cj); 1 j t
b.
Cipher block chaining (CBC)
Pada prosesnya, koded ini melibatkan penggunaan
initializing vector (IV) yang menyebabkan blok-blok ciphertext yang identik
apabila dienkripsi menggunakan kunci dan IV yang sama. Berubahnya IV, kunci
atau blok plaintext pertama akan menghasilkan ciphertext yang berbeda. Secara
matematis dapat dinyatakan :
Enkripsi : co IV, untuk 1 j t, cj EK(cj-1 xj)
c.
Cipher feedback (CFB)
Jika pada metode CBC, plaintext sebesar n bit
diproses dalam sekali waktu (menggunakan sebuah n bit cipher blok), beberapa
aplikasi mengharuskan r bit plaintext untuk dienkripsi terlebih dahulu dan
ditransmisikan bebas delay, untuk r < n (biasanya r = 1 atau r = 8); dalam
kasus ini CBF digunakan. Dalam metode ini juga melibatkan penggunaan
initializing vector (IV).
d.
Output feedback (OFB)
metode operasi ini digunakan apabila kesalahan
propagasi sama sekali harus dihindari. Hampir mirip dengan CFB, dan juga
memungkinkan enkripsi menggunakan besar blok yang berfariasi.
Kunci Lemah dan Kunci Setengah Lemah
Dalam kriptografi dikenal istilah kunci lemah
(weak-key) dan kunci setengah lemah (semi weak-key). Kunci lemah adalah kunci
yang apabila mengenkripsi suatu plaintext kemudian dienkripsi lagi menggunakna
kunci yang sama, maka ciphertextnya adalah plaintext itu sendiri. Sedangkan
yang disebut dengan kunci setengah lemah adalah sepasang kunci yang memiliki
sifat jika sebuah plaintext dienkripsi dengan suatu kunci, akan dapat
dienkripsi dengan kunci yang lain.
1.Blocking
Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsika secara independen. Plaintext yangg dienkripsikan dengan menggunakan teknik blocking adalah :
contohnya adalah sebagai berikut
P : 5 Teknik Dasar Kriptografi
Teknik Dasar Kriptografi Terbagi 5 Jenis, yaitu :
1. Substitusi
2. Blocking
3. Permutasi
4. Ekspansi
5. Pemampatan
1. SUBSTITUSI
Dalam kriptografi, sandi substitusi adalah jenis metode
enkripsi dimana setiap satuan pada teks terang digantikan oleh teks tersandi
dengan sistem yang teratur. Metode penyandian substitusi telah dipakai dari
zaman dulu (kriptografi klasik) hingga kini (kriptografi modern),
Langkah pertama adalah membuat suatu tabel substitusi. Tabel
substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan
memiliki tabel yang sama untuk keperluan decrypt. Bila tabel
substitusi dibuat secara acak, akan semakin sulit pemecahan ciphertext
oleh orang yang tidak berhak.
Metode ini dilakukan dengan mengganti setiap huruf dari teks
asli dengan huruf lain sebagai huruf sandi yang telah didefinisikan sebelumnya
oleh algoritma kunci.
Contoh:
Metode Penyandian Substitusi Sederhana
- Caesar Cipher
2. BLOCKING
Sistem enkripsi ini terkadang membagi plaintext menjadi
beberapa blok yang terdiri dari beberapa karakter, kemudian di enkripsikan
secara independen.
Caranya :
Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur, dan
dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertext-nya
adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan
blok-nya.
Contoh :
3. PERMUTASI
Salah satu teknik enkripsi yang terpenting adalah permutasi
atau sering juga disebut transposisi. Teknik ini memindahkan atau merotasikan
karakter dengan aturan tertentu. Prinsipnya adalah berlawanan dengan teknik
substitusi. Dalam teknik substitusi, karakter berada pada posisi yang tetap
tapi identitasnya yang diacak. Pada teknik permutasi, identitas karakternya
tetap, namun posisinya yang diacak.
Caranya
Sebelum dilakukan permutasi, umumnya plaintext terlebih dahulu dibagi menjadi
blok-blok dengan panjang yang sama.
Plaintext akan dibagi menjadi blok-blok yang terdiri dari 6
karakter, dengan aturan permutasi, sebagai berikut :
Dengan menggunakan aturan diatas, maka proses enkripsi
dengan permutasi dari plaintext adalah sebagai berikut :
4. EKSPANSI
Suatu metode sederhana untuk mengacak pesan adalah dengan
memelarkan pesan itu dengan aturan tertentu. Salah satu contoh penggunaan
teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang
menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran “an”.
Jika suatu kata dimulai dengan huruf vokal atau bilangan genap, ditambahkan
akhiran “i”.
Contoh :
5. PEMAMPATAN
Mengurangi panjang pesan atau jumlah bloknya dengan cara
lain untuk menyembunyikan isi pesan.
Contoh sederhana ini menggunakan cara menghilangkan setiap
karakter ke-tiga secara berurutan. Karakter-karakter yang dihilangkan disatukan
kembali dan disusulkan sebagai “lampiran” dari pesan utama, dengan diawali oleh
suatu karakter khusus, dalam contoh ini menggunakan “ * “.
Contoh :
Komentar
Posting Komentar