Pengenalan
Semua data dan maklumat yang bergerak dalam rangkaian mesti dipelihara dan
dikawal utk memastikan integriti dan keselamatan.
Integriti ~ merujuk kepada data yg diterima adalah sama dengan data yang dihantar.
Keselamatan ~ merujuk kepada data yang dihantar selamat daripada intipan
termasuk juga keselamatan data drp perbuatan yg tidak disengajakan.
Keselamatan Data
Data dan rangkaian perlu dikawal daripada:
Pengesahan (Authentication)
Ia diperlukan oleh hos komputer atau peranti tertentu utk mengesahkan identity
sebelum memasuki sesuatu sistem.
Contoh: password (nombor pin) yg digunakan bersama2 dengan kad ATM atau kad
pintar.
Dalam kaedah ini, dengan bertanyakan password, sistem komputer juga akan
bertanyakan soalan yang bersangkutan dengan agen (pengguna).
Contoh: soalan seperti tarikh lahir, nama ibu, nombor kad pengenalan dll.
Jenis-jenis Password
Salah satu kaedah yg praktikal utk memelihara data adalah dengan menukarkannya
ke dalam bentuk rahsia di mana penerima yg sah sahaja dapat memahaminya.
Penyulitan (Encryption) ~ pengirim menukarkan mesej asal ke bentuk rahsia dan
menghantarkan ke penerima.
Penyahsulitan (Decryption) ~ menterbalikkan kembali proses penyulitan supaya
mesej ditukar kedalam bentuk yang asal.
Pengirim menggunakan algorithma penyulitan dan kunci utk menukarkan data asal
(plaintext) ke dalam bentuk data yg disulitkan (cipher text)
Penerima menggunakan algorithma penyahsulitan dan kunci utk menukarkan
cipher text kembali ke data asal (plaintext).
proses yang lain. Setiap unsur matrix A[S,X] merupakan set hak pencapaian (access
rights) yang dimiliki oleh S kepada X.(Fig. 14.6, pg. 435, Nutt)Setiap pencapaian
memerlukan langkah tersebut:
Subjek S memulakan capaian jenis a kepada objek
X
Sistem perlindungan membuktikan (authenticate) S dan menjana (S, a, X) untuk S.
Identiti S tidak boleh disamar sebab ia dijana oleh sistem.
Pengawas (monitor) objek
X merujuk kepada A[S,X] untuk menentukan sama ada a A[S,X]. Jika ya, pencapaian
dibenarkan. Jika tidak, pencapaian ditolak.(Fig. 14.7, pg. 436, Fig. 14.8, pg. 437,
Nutt)Model Sistem Perlindungan tersebut boleh digunakan untuk menyelesaikan berbagai
masalah yang dikemukakan:
Penyamaran (masquerading): Satu tandatangan
(signature) yang tidak boleh dipalsukan (forged), (S, a, X) dijana supaya subjek S dapat
melakukan capaian a ke atas X. Pengawas akan pastikan bahawa proses lain tidak dapat
menyamarkan S sebab proses lain tidak mempunyai tandatangan yang betul.
Pengurungan dan Peruntukan hak (confinement and rights allocation): Peruntukan hak
boleh dikawal secara menghadkan pemindahan hak capaian (access rights transfer) dari
satu proses ke proses yang lain. Namun, pengurungan mungkin gagal sekiranya sesuatu
subjek (proses) yang mempunyai hak baca juga mempunyai ingatan (memory), sebab
proses tersebut boleh menyalurkan maklumat kepada proses lain.
Perkongsian
parameter (parameter sharing): Penjaga get (gatekeeper) boleh dicipta oleh sesuatu
subjek pemilik untuk menjaga objek yang dilindung. Semua pencapaian ke objek tersebut
mesti melalui penjaga get supaya menjamin keselamatannya.
Kuda Troy (Trojan
horse): masalah ini sukar diselesaikan sebab satu set peraturan berdasarkan polisi
tertentu yang menghalang kuda troy daripada mengamalkan hak proses lain tidak
semestinya memenuhi keperluan polisi-polisi lain.
Perlaksanaan Pengesahan Kuasa Dalaman
Perlaksanaan sistem pengesahan kuasa dalaman yang berkesan dan tidak
memerlukan pemprosesan yang berlebihan adalah penting. Sekiranya maklumat mesti
selamat, maka kos pemprosesan mungkin tidak merupakan masalah, tetapi pencapaian
sumber semasa perlaksanaan proses yang biasa harus dilakukan secepat mungkin
supaya menjamin prestasi sistem tersebut.
Domain Perlindungan
Sesuatu sistem boleh dibahagikan kepada beberapa domain perlindungan. Yang
terasas sekali ialah dua domain, iaitu mod penyelia (supervisor mode) dan mod pengguna
(user mode). Dalam sistem yang menggunakan reka bentuk gelang (ring architecture),
terdapat berbagai gelang R0 ke RN yang mempunyai hak pencapaian (access rights) yang
semakin terhad. Proses sistem pengendalian dilakukan dalam gelang R 0 manakala proses
pengguna dilakukan dalam beberapa gelang yang tertinggi sekali.Setiap kali pencapaian
proses dalam gelang yang lebih rendah diperlukan, penjaga get digunakan untuk
mengawas perlaksanaan panggilan tersebut. Penukaran domain berlaku setiap kali proses
melintas gelang perlindungan.
Matrix Pencapaian
Matrix pencapaian biasanya merupakan matrix jarang (sparse matrix) sebab sesuatu
proses hanya mencapai beberapa objek atau subjek sahaja. Oleh sebab itu, senarai (lists)
digunakan untuk menyimpan unsur matrix tersebut. Sekiranya terdapat matrix yang padat
(dense matrix), senarai tersebut akan menjadi sangat panjang.
MODEN KRIPTOGRAFI
Kriptografi modern menggunakan gagasan dasar yang sama seperti kriptografi klasik
(permutasi dan transposisi) tetapi penekanannya adalah berbeza. Pada kriptografi klasik,
kriptografer menggunakan algoritma yang sederhana, yang memungkinkan cipherteks
dapat dipecahkan dangan mudah (melalui penggunaan statistik, terkaan, intuisi, dsb).
Algoritma kriptografi modern dibuat sedemikian kompleks sedemikian sehingga kriptanalis
sangat sulit memecahkan cipherteks tanpa mengetahui kunci.
Algoritma kriptografi modern umumnya beroperasi dalam mode bit dan mode karakter.
Operasi dalam mode bit bererti semua data dan informasi (baik kunci, plainteks, atau
cipherteks) dinyatakan dalam rangkaian (string) bit binary, 0 dan 1. Algoritma enkripsi dan
dekripsi memproses semua data dan informasi dalam bentuk rangkaian bit. Rangkaian bit
yang menyatakan plainteks dienkripsi menjadi cipherteks dalam bentuk rangkaian bit,
demikian sebaliknya.
Kategori Cipher Kunci-Simetri
Algoritma kunci-simetri mengacu pada metode enkripsi yang dalam hal ini pengirim
maupun penerima memiliki kunci yang sama. Algoritma kunci-simetri modern beroperasi
dalam mode bit dan dapat dikelompokkan menjadi dua kategori:
1. Cipher aliran (stream cipher)
Algoritma kiptografi beroperasi pada plainteks/cipherteks dalam bentuk bit tunggal, yang
dalam hal ini rangkaian bit dienkripsikan/didekripsikan bit per bit. Cipher aliran
mengenkripsi satu bit setiap kali.
Algoritma-algoritma sandi kunci-simetris
Beberapa contoh algoritma yang menggunakan kunci simetri:
Blowfish
Twofish
MARS
IDEA
Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk blok bit, yang
dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan
sebelumnya. Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi
memerlukan 8 karakter setiap kali enkripsi (1 karakter = 8 bit dalam pengkodean ASCII).
Cipher blok mengenkripsi satu blok bit setiap kali.
Pada cipher blok, rangkaian bit-bit plainteks dibagi menjadi blok-blok bit dengan
panjang sama, biasanya 64 bit (tapi adakalanya lebih). Algoritma enkripsi
menghasilkan blok cipherteks yang pada kebanyakan sistem kriptografi simetri
berukuran sama dengan blok plainteks.
Dengan blok cipher, blok plainteks yang sama akan dienkripsi menjadi blok
cipherteks yang sama bila digunakan kunci yang sama pula. Ini berbeda
dengancipher aliran dimana bit-bit plainteks yang sama akan dienkripsi menjadi bitbit cipherteks yang berbeda setiap kali dienkripsi.
Misalkan blok plainteks (P) yang berukuran m bit dinyatakan sebagai vektor
EK(P) = C
untuk enkripsi, dan
DK(C) = P
Fungsi E haruslah fungsi yang berkoresponden satu-ke-satu, sehingga
E-1 = D
Skema enkripsi dan dekripsi dengan cipher blok digambarkan pada Gambar 1.
Enkripsi: Dekripsi:
Blok Plainteks P Blok Cipherteks CA
P = (p1, p2, , pm) C = (c1, c2, , cm)
Kunci K E Kunci K D
Blok Cipherteks C Blok Plainteks P
C = (c1, c2, , cm) P = (p1, p2, , pm)
Block-Cipher
Untuk menambah kehandalan model algoritma sandi ini, dikembangkan pula beberapa
tipe proses enkripsi, yaitu :
Tahan preimej (Preimage resistant): bila diketahui nilai hash h maka sulit (secara
komputasi tidak layak) untuk mendapatkan m dimana h = hash(m).
Tahan preimej kedua (Second preimage resistant): bila diketahui input m1 maka sulit
mencari input m2 (tidak sama dengan m1) yang menyebabkan hash(m1) = hash(m2).
Tahan tumbukan (Collision-resistant): sulit mencari dua input berbeda m1 dan
m2 yang menyebabkan hash(m1) = hash(m2)
Keseluruhan point dari kriptografi adalah menjaga kerahasiaan plainteks atau kunci
(atau keduanya) dari penyadap (eavesdropper) atau kriptanalis (cryptanalyst).
Kriptanalis berusaha memecahkan cipherteks dengan suatu serangan terhadap
sistem kriptografi.
Serangan (attack)
Serangan: setiap usaha (attempt) atau percubaan yang dilakukan oleh kriptanalis
untuk menemukan kunci atau menemukan plainteks dari cipherteksnya.
Asumsi: kriptanalis mengetahui algoritma kriptografi yang digunakan
Prinsip Kerckhoff: Semua algoritma kriptografi harus publik; hanya kunci yang
rahsia. Satu-satunya keamanan terletak pada kunci!
Jenis-jenis Serangan
l Berdasarkan keterlibatan penyerang dalam komunikasi
1. Serangan pasif (passive attack)
- penyerang tidak terlibat dalam komunikasi antara pengirim dan penerima
- penyerang hanya melakukan penyadapan untuk memperoleh data atau
informasi sebanyak-banyaknya
2. Serangan Active (active attack)
Jenis-jenis Serangan
2. Analytical attack
Cipher Klasik.
Sejarah Cipher pena dan kertas pada waktu lampau sering disebut sebagai cipher klasik.
Contoh:
- Cipher transposisi (Anagram) atau pengacakan huruf pada sebuah kata.
Misal, kata DAUN MUDA ditransposisi menjadi MANA DUDU atau MADU ADUN.
2.
Ini adalah algoritma kriptografi yang mula-mula digunakan oleh kaisar Romawi, Julius Caesar
(sehingga dinamakan juga caesar chiper), untuk menyandikan pesan yang ia kirim kepada
para gubernurnya. Setiap huruf digeser maju sebanyak tiga huruf. Dan untuk mendekripsi
cipherteks cukup dengan menggeser mundur sebanyak tiga huruf.
Misalnya, tiap huruf disubstitusi dengan huruf ketiga berikutnya dari susunan abjad. Dalam
hal ini kuncinya adalah jumlah pergeseran huruf (yaitu key = 3).
Tabel substitusi: (A = D)
pl : 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:
DAUN MUDA disamarkan menjadi: GDXQ PXGD
3.
Sandi geser (shift cipher) merupakan generalisasi dari Sandi Caesar, iatu tidak membatasi
pergeseran sebanyak tiga huruf. Jadi ada sebanyak 26 kunci pergeseran yang bisa digunakan.
Khusus untuk K = 13 sering disebut dengan Sandi ROT-13. Kata ROT-13 diambil dr bhs Inggris
yg artinya adalah Rotate by 13. Sebenernya ini mirip Caesar Chiper, bahkan sangat mirip! klo
misalnya di Caesar Cipher kita bebas menentukan key nya, nah di ROT-13 tu key-nya adalah
13, jadi abjad di geser 13 digit. jadi tidak ada key untuk cipher ini.
Plaintext A BCDEFGHIJKLMNOPQRSTUVWXYZ
Ciphertext N OPQRSTUVWXYZABCDEFGHIJKLM
4.
Sandi Permutasi sering juga disebut dengan sandi transposisi, sebab metode enkripsi yang
digunakan tidak seperti pada algoritma sandi pada umumnya, tetapi dengan mengganti
urutan huruf pada plainteks. Ada banyak metode dan variasi sandi transposisi. Berikut ini
diberikan beberapa contohnya.
Contoh. Diberikan plainteks BELAJAR SANDI ITU MUDAH. Selanjutnya tulis plainteks secara
horizontal dengan lebar kolom tetap, misalkan lebarnya 5, dalam hal ini kuncinya adalah 5.
Diperoleh:
BELAJ
ARSAN
DIITU
MUDAH
5. cipher feedback(CFB)
Pada mode cipher feedback, data dienkripsikan dalam unit yang lebih kecil daripada ukuran
blok, misalnya dienkripsikan satu karakter setiap kalinya (ini disebut CFB 8-bit). Unit yang
dienkripsikan dapat berupa bit per bit (jadi seperti cipher aliran), 2 bit, dan seterusnya.
Secara umum, CFB n-bit mengenkripsi plainteks sebanyak n bit setiap kalinya, yang mana n
<= ukuran blok. Dengan kata lain, CFB mengenkripsikan cipher blok seperti pada cipher
aliran.
Mode CFB membutuhkan sebuah antrian (queue) yang berukuran sama dengan ukuran blok
masukan. Tinjau mode CFB 8-bit yang bekerja pada blok cipher berukuran 64-bit (setara
dengan 8 byte). Algoritma enkripsi dengan mode CFB adalah sbb (lihat Gambar 1):
1. Antrian diisi dengan IV (initialiazation vector) seperti pada mode CBC.
2. Enkripsikan antrian dengan kunci K. Delapan bit paling kiri dari hasil enkripsi berlaku
sebagai keystream yang kemudian di-XOR-kan dengan karakter 8-bit dari plainteks menjadi
karakter 8-bit pertama dari cipherteks. Karakter cipherteks ini dikirim (pada aplikasi
komunikasi data) atau disimpan (pada aplikasi penyimpanan data). Salinan (copy) dari
karakter cipherteks ini juga dimasukkan ke dalam antrian (menempati 8 posisi bit paling
kanan antrian), dan semua bit bit-bit lainnya di antrian digeser ke kiri menggantikan 8 bit
pertama yang sudah digunakan.
3. Karakter plainteks berikutnya dienkripsikan dengan cara yang sama seperti pada langkah
2.
4. Dekripsi dilakukan sebagai kebalikan dari proses enkripsi.