Sistem Keamanan Tek. Informasi
Data Encryption Standard (DES)
Sistem pada keamanan data dan kerahasiaan data
merupakan salah satu aspek penting dalam perkembangan kemajuan teknologi
informasi namun yang cukup disayangkan adalah ketidakseimbangan antara setiap
perkembangan suatu teknologi yang tidak diiringi dengan perkembangan pada
sistem keamanannya itu sendiri, dengan demikian cukup banyak sistem-sistem yang
masih lemah dan harus ditingkatkan keamanannya. Oleh karena itu pengamanan data
yang sifatnya rahasia haruslah benar-benar diperhatikan.Untuk mengatasi masalah
tersebut maka diperlukan suatu aplikasi pengamanan data yang dapat mencegah dan
mengamankan data-data yang kita miliki dari orang-orang yang tidak berhak
mengaksesnya. Salah satunya adalah metode algoritma kriptografi simteris,
karena algoritma ini menggunakan kunci yang sama pada saat melakukan proses
enkripsi dan dekripsi sehingga data yang kita miliki akan sulit untuk
dimengerti maknanya dan untuk proses enkripsi data yang sangat besar akan
sangat cepat. Algoritma kriptografi (cipher) yang digunakan adalah DES.
DES (Data Encryption Standard)
Algoritma enkripsi yang paling banyak digunakan didunia adalah
DES (Data Encryption Standard) yang diadopsi oleh NIST (National
Institute of Standard and Technology) sebagai standard pengolahan informasi
Federal AS.
DES merupakan keamanan dasar yang dipublikasikan sejak 15
Januari 1977 dan sering digunakan dimana-mana, oleh karena itu ada kemungkinan
DES akan tetap dilanjutkan penelitiannya sehingga menjadi suatu sistem enkripsi
yang kuat dari segi keamanan data, sistem akses control dan password.
Gambar dibawah adalah
gambar dari konsep dasar metode DES. Data dienkrip dalam blok-blok 64 bit
menggunakan kunci 56 bit. DES mentransformasikan input 64 bit dalam beberapa
tahap enkripsi ke dalam output 64 bit. Dengan tahapan dan kunci yang sama, DES
digunakan untuk membalik enkripsi (biasa disebut dengan proses dekripsi).
Illustrasi Metode DES
Misalkan suatu plaintext M = 0123456789ABCDEF, M dalam
format heksadesimal (basis 16). Apabila ditulis dalam format biner M merupakan
blok Dalam format biner pesan M dan kunci K dinyatakan sebagai berikut :
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010
1011 1100
1101 1110 1111
K = 0001 0011 0011 0100 0101 0111 0111 1001 1001 1011 1011
1100 1101
1111 1111 0001
Tahapan algoritma DES
Tahap 1 : Membuat 16 sub-kunci masing-masing panjangnya
48-bit
Kunci 64-bit dipermutasikan menurut Hasil permutasinya dapat
dilihat sebagai berikut :
K = 00010011 00110100 01010111 01111001 10011011 10111100
11011111
11110001
K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111
0001111
Selanjutnya hasil permutasi ini dipecah menjadi dua bagian,
yakni bagian kiri C0 dan bagian kanan D0 yang masing-masing panjang 28 bit,
yaitu :
C0 = 1111000 0110011 0010101 0101111
D0 = 0101010 1011001 1001111 0001111
Berdasarkan C0 dan D0 tersebut dibuat 16 blok Cn dan Dn, 1 ≤ n
≤ 16. Setiap pasangan blok Cn dan Dn dibentuk dari pasangan blok sebelumnya
Cn-1 dan Dn- 1, n = 1, 2, ..., 16, dengan menggunakan schedule “left
shift” seperti pada tabel 2.3.
Sebagai contoh dari pasangan C0 dan D0 diperoleh :
C0 = 1111000011001100101010101111
D0 = 0101010101100110011110001111
C1 = 1110000110011001010101011111
D1 = 1010101011001100111100011110
................................................................
C16= 1111000011001100101010101111
D16=
0101010101100110011110001111
Untuk membentuk kunci Kn, 1 ≤ n
≤ 16, dioperasikan tabel permutasi dari tiap pasangan CnDn. Setiap pasangan
yang mempunyai 56 bit hanya dipilih 48 bit dengan tabel permutasi 2.4.
Contoh hasil permutasi untuk 16
kunci pertama tiap pasangan adalah sebagai berikut :
C1D1 = 1110000 1100110 0101010
1011111 1010101 0110011 0011110 0011110
K1 = 000110 110000 001011
101111 111111 000111 000001 110010
C2D2 = 1100001 1001100 1010101
0111111 0101010 1100110 0111100 0111101
K2 = 011110 011010 111011
011001 110110 111100 100111 100101
..............................................................................................................
K15 = 101111 111001 000110
001101 001111 010011 111100 001010
K16 = 110010 110011 110110
001011 000011 100001 011111 110101
Tahap 2 : Encode setiap
64-bit blok data
IP (Initial Permutation)
dari 64 bit pesan M. Berdasarkan tabel 2.1 Initial Permutation susunan M
menjadi sebagai berikut :
M = 0000 0001 0010 0011 0100
0101 0110 0111 1000 1001 1010 1011 1100
1101 1110 1111
IP = 1100 1100 0000 0000 1100
1100 1111 1111 1111 0000 1010 1010 1111
0000 1010 1010
Hasil permutasi dibagi dua,
yaitu bagian kiri L0 32 bit, dan bagian kanan R0 32 bit, yaitu :
L0 = 1100 1100 0000 0000 1100
1100 1111 1111
R0 = 1111 0000 1010 1010 1111
0000 1010 1010
Selanjutnya melalui proses
iterasi 16 kali, untuk 1 ≤ n ≤ 16, fungsi f yang mengoperasikan dua blok data
32 bit dan kunci Kn dari 48 bit untuk menghasilkan data blok 32 bit. Untuk n
berjalan dari 1 sampai dengan 16 dihitung :
Ln = Rn-1
Rn = Ln-1 f(Rn-1, Kn)
Hasil dari perhitungan ini
adalah blok final untuk n = 16, yaitu L16R16. Sebagai contoh untuk n = 1,
diperoleh :
K1 = 000110 110000 001011
101111 111111 000111 000001 110010
L1 = R0 = 1111 0000 1010 1010
1111 0000 1010 1010
R1 = L0 f(R0, K1)
Untuk menghitung fungsi f,
terlebih dahulu ekspansikan tiap blok Rn-1 dari 32 bit menjadi 48 bit dengan
tabel 2.5. Sebagai contoh hasil perhitungan E(R0) dari R0 adalah sebagai
berikut :
R0 = 1111 0000 1010 1010 1111
0000 1010 1010
E(R0) = 011110 100001 010101 010101
011110 100001 010101 010101
Dan hasil dari perhitungan
fungsi f adalah sebagai berikut :
K1 = 000110 110000 001011
101111 111111 000111 000001 110010
E(R0) = 011110 100001 010101
010101 011110 100001 010101 010101
K1 E(R0) = 011000 010001
011110 111010 100001 100110 010100 100111
Hasil dari 48 bit atau 8 group
dengan 6 bit per group disubtitusikan dengan S-Box (tabel 2.6). Misalkan hasil
dari 48 bit ditulis dalam bentuk :
Kn E(Rn-1) = B1B2B3B4B5B6B7B8
dimana setiap Bi adalah group 6
bit.
Selanjutnya hitung :
S1(B1)S2(B2)S3(B3) S4(B4)
S5(B5) S6(B6) S7(B7)S8(B8)
dimana Si(Bi) adalah output
dari S-Box ke –i.
Sebagai contoh untuk putaran
pertama output S-Box diperoleh sebagai berikut
K E(R0) = 011000 010001 011110
111010 100001 100110 010100 100111
S1(B1)S2(B2)S3(B3) S4(B4) S5(B5) S6(B6) S7(B7)S8(B8) =0101
1100 1000 0010 1011 0101 1001 0111
Langkah terakhir dari perhitungan fungsi f adalah permutasi P
dari output S-Box untuk mendapatkan nilai akhir f :
f = P(S1(B1)S2(B2)... S8(B8))
Sebagai contoh hasil dari permutasi P dari tabel 2.7 didapat output
32 bit sebagai berikut :
S1(B1)S2(B2)S3(B3) S4(B4) S5(B5) S6(B6) S7(B7)S8(B8) =
0101 1100 1000 0010 1011 0101 1001 0111
f = 0010 0011 0100 1010 1010 1001 1011 1011 f(R0, K1)
R1 = L0 f(R0, K1) = 1100 1100 0000 0000 1100 1100 1111 1111
0010 0011 0100 1010 1010 1001 1011 1011 = 1110 1111 0100 1010 0110 0101 0100
0100
Untuk putaran berikutnya di dapat L2 = R1, dan harus dihitung
R2 = L1 f(R1,K2), diperoleh blok L16 dan R16 urutannya ditukar dan
dipermutasikan dengan final permutation IP-1 (inverse dari IP).
Sebagai contoh misalkan pada putaran ke -16 diperoleh :
L16 = 0100 0011 0100 0010 0011 0010 0011 0100
R16 = 00001010 0100 1100 1101 1001 1001 0101
Dibalik urutannya menjadi sebagai berikut :
R16L16 =00001010 01001100 11011001 10010101 01000011 01000010
00110010 00110100
Kemudian dipermutasikan dengan IP-1 diperoleh sebagai berikut
: 85E813540F0AB405. Dengan demikian hasil enkripsi M = 0123456789ABCDEF adalah
cipher teks C = 85E813540F0AB405. Proses dekripsi akan mengembalikan C =
85E813540F0AB405 menjadi M = 0123456789ABCDEF.
RSA
Algoritma RSA merupakan salah satu algoritma public
key yang populer dipakai dan bahkan masih dipakai hingga saat ini. Kekuatan
algoritma ini terletak pada proses eksponensial, dan pemfaktoran bilangan
menjadi 2 bilangan prima yang hingga kini perlu waktu yang lama untuk melakukan
pemfaktorannya.
Algoritma ini dinamakan sesuai dengan nama penemunya, Ron Rivest, Adi Shamir dan Adleman(Rivest-Shamir-Adleman) yang dipublikasikan pada tahun 1977 di MIT, menjawab tantangan yang diberikan algoritma pertukaran kunci Diffie Hellman.
Algoritma ini dinamakan sesuai dengan nama penemunya, Ron Rivest, Adi Shamir dan Adleman(Rivest-Shamir-Adleman) yang dipublikasikan pada tahun 1977 di MIT, menjawab tantangan yang diberikan algoritma pertukaran kunci Diffie Hellman.
Skema RSA sendiri mengadopsi dari skema block
cipher, dimana sebelum dilakukan enkripsi, plainteks yang ada dibagi – bagi
menjadi blok – blok dengan panjang yang sama, dimana plainteks dan
cipherteksnya berupa integer(bilangan bulat) antara 1 hingga n, dimana n
berukuran biasanya sebesar 1024 bit, dan panjang bloknya sendiri berukuran
lebih kecil atau sama dengan log(n) +1 dengan basis 2. Fungsi enkripsi dan
dekripsinya dijabarkan dalam fungsi berikut :
C = Me mod n ( fungsi enkripsi
)
M = Cd mod n (fungsi dekripsi)
C = Cipherteks
M = Message / Plainteks
e = kunci publik
d= kunci privat
n = modulo pembagi(akan dijelaskan lebih lanjut )
Kedua pihak harus mengetahui nilai e dan nilai n
ini, dan salah satu pihak harus memilki d untuk melakukan dekripsi terhadap
hasil enkripsi dengan menggunakan public key e. Penggunaan algoritma ini harus
memenuhi kriteria berikut :
1. Memungkinkan untuk mencari nilai e, d, n
sedemikian rupa sehingga Med mod n = M untuk semua M < n.
2. Relatif mudah untuk menghitung nilai Me mod n dan Cd mod n untuk semua nilai M < n.
3. Tidak memungkinkan mencari nilai d jika diberikan nilai n dan e.
2. Relatif mudah untuk menghitung nilai Me mod n dan Cd mod n untuk semua nilai M < n.
3. Tidak memungkinkan mencari nilai d jika diberikan nilai n dan e.
Keamanan algoritma RSA terletak pada tingkat
kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang
dalam hal ini r = p ´ q.
Sekali r berhasil difaktorkan menjadi p dan q,
maka f(r) = (p – 1) (q – 1) dapat
dihitung. Selanjutnya, karena kunci enkrispi PK diumumkan (tidak rahasia),
maka kunci dekripsi SK dapat dihitung
dari persamaan PK × SK º 1 (mod f(r)).
Penemu algoritma RSA menyarankan nilai p dan q
panjangnya lebih dari 100 digit. Dengan demikian hasil kali r = p ´ q akan
berukuran lebih dari 200 digit. Menurut Rivest dan kawan-kawan, uasaha 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).
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 f(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).
PGP
Pada awalnya PGP
ditujukan untuk mengamankan pengiriman pesan / email, tapi sekarang ini PGP
juga dapat digunakan untuk mengamankan berbagai file dan program pada komputer
personal (PC).
PGP diciptakan oleh
Zimmermann pada akhir tahun 1980, dalam proses penciptaan PGP Zimmermann
melakukan usaha-usaha sebagai berikut :
§ Memilih
algoritma kriptografi kunci asimetris / publik (Public Key Crytography)
terbaik yang ada (IDEA, RSA) dan MD5 (sebagai fungsi hash) sebagai
komponen dasar pembentuk PGP.
§ Mengintegrasikan
algoritma-algoritma kriptografi ini ke dalam aplikasi PGP.
§ Membuat
paket dan dokumentasinya serta dapat diakses secara gratis melalui
internet, bulletin board dan jaringan komersial semacam AOL
(America On Line).
§ Tersedia
gratis ke seluruh dunia dalam berbagai versi yang dapat berjalan dalam
berbagai operating system / platform termasuk DOS, Windows,
UNIX, Machintosh dan masih banyak lagi lainnya.
§ PGP
tidak dikembangkan atau dikontrol oleh organisasi tertentu maupun oleh
pemerintah, sehingga aplikasi PGP menjadi lebih menarik digunakan.
Cara Kerja Program PGP
Program PGP melakukan
lima operasi utama yaitu :
§ Otentikasi
Selain mengenkripsi
pesan / email dan file, PGP juga dapat memberi tandatangan digital. Adapun
tujuan dari proses tersebut adalah sebagai otentikasi dari pesan / file yang
bertujuan untuk memastikan / mengecek apakah file tersebut masih asli atau sudah
dirubah oleh orang lain atau bisa juga sudah terserang oleh virus ataupun
trojan.Misalnya ada pesan M ditanda tangani A menghasilkan F
Dari gambar terlihat
bahwa pesan (P) dimasukkan kedalam fungsi MD5 yang menghasilkan sidik jari (F).
Sidik jari tersebut adalah identitas pesan. Sidik jari (F) ditanda tangani oleh
pengirim (sumber S) menggunakan kunci privat KPriv S .
Ingat bahwa kunci
yang digunakan untuk menandatangani adalah kunci privat pengirim bukan
penerima. Hasil tanda tangan pesan P adalah SIGN. P dan SIGN akan digunakan
pada bagian enkripsi dibawah ini.
§ Kerahasiaan
PGP menggunakan
algoritma IDEA (International Data Encryption Algorithm) dengan kunci
128 bit untuk menyandikan data (pesan / file) dan menggunakan mode Chiper Fedd
Back (CFB) dengan menggunakan vector awal (Initialization Vector IV)
nol. Hal yang perlu diperhatikan adalah distribusi kunci dalam PGP, setiap
kunci konvensional hanya digunakan sekali. Artinya setiap kali ada pesan yang
akan dienkrip dibangkitkan kunci baru 128 bit secara acak. Meskipun dalam
dokumentasi kunci ini disebut sebagai kunci rahasia / simetri.
Karena digunakan Cuma sekali maka kunci simetri ini
digabungkan dengan pesan yang sudah dienkrip dengan kunci tersebut kemudian
dikirim bersama-sama. Dan untuk melindunginya, kunci simetri tersebut dienkrip
dengan kunci publik penerima.
Pesan
P digabungkan dengan tanda tangan pesan SIGN, dikompres untuk mengurangi
karakter berulang sehingga lebih mempersulit cryptanalyst untuk
membongkar chipernya. Kompresi juga dimaksudkan untuk mengurangi
ukuran file sebagai akibat membesarnya file akibat operasi BASE-64.
Hasil kompresi PI
dienkrip oleh fungsi IDEA dengan kunci simetri KSIM sehingga menghasilkan
cipher. Kemudian KSIM ini dienkrip oleh RSA (nama penemu algoritma tersebut Ron
Rivest, Adi Shamir and Leonard Adleman) supaya dapat dikirimkan ke tujuan.
Kunci yang digunakan untuk mengenkrip KSIM adalah KPUB hasil keluarannya adalah CKSIM.
§ Kompresi
PGP mengkompres pesan
setelah ditanda tangan tapi sebelum diengkripsi.
Adapun alasannya
sebagai berikut :
1.
Lebih disukai menandatangani pesan yang belum di
kompres sehingga kita tidak perlu menyimpan pesan dalam keadaan terkompres
untuk pengecekan tanda tangan.
2.
Algoritma kompresi tidak deterministic (hasil kompresi
dengan pesan yang sama oleh software yang berbeda menghasilkan kompresan yang
berbeda)
3.
Enkripsi pesan yang dilakukan setelah kompres
bertujuan untuk memperkuat keamanan kriptografi.Hal itu dikarenakan pesan yang
telah dikompres memiliki sedikit redundansi disbanding plaintext aslinya,
sehingga analisis chipernya menjadi lebih sulit.
§ Kompatibilitas
e-mail
Ketika PGP digunakan,
paling sedikit satu blok yang dikirim dienkrip. Jika hanya layanan tanda tangan
yang digunakan, maka message digest dienskrip (dengan kunci
privat RSA pengirim). Dan bila layanan keamanan, pesan ditambah tanda tangan
(jika ada) dienkrip (dengan kunci IDEA sekali pakai), jadi sebagian atau
seluruh blok yang dihasilkan PGP teridiri dari aliran sejumlah okte 8-bit.
Namun terdapat system email yang hanya mengijinkan penggunaan blok yang terdiri
dari teks ASCI. Untuk mengakomodasi batasan itu, PGP memberikan layanan untuk
mengkonversi aliran okte 8-bit menjadi karakter ASCI yang dapat dicetak. Teknik
yang digunakan untuk tujuan ini adalah konversi radix 64 (setiap grup yang
terdiri dari tiga octet biner (24 bit) dipetakan menjadi empat karakter ASCI
(32bit)).
§ Segmentasi.
Fasilitas email
sering membatasi maksimum panjang maksimum pesan. Contohnya banyak fasilitas di
internet hanya dapat menerima pesan maksimal panjangnnya 50.000 octets.
Untuk mengakomodasi hal tersebut PGP secara automatis melakukan subdivides pesan
yang besar kedalam segment yang besarnya cukup untuk dikirim via email.
Segmentasi tersebut dijalankan setelah semua proses dijalankan termasuk proses
konversi radix 64. Untunglah, kunci simetri dan bagian tanda tangan pesan
relative kompak, ditambah pesan sudah dikompres.
Kunci – kunci
Kriptografi
PGP menggunakan empat
macam jenis kunci sebagai berikut :
§ Kunci
konvensional simetri satu waktu (one time key).
Algoritma
kriptografi yang digunakan adalah IDEA dan digunakan untuk mengenkrip pesan
untuk dikirmkan. Setiap kunci simetri hanya digunakan sekali dan dibangkitkan
secara acak.
§ Kunci
Publik.
Algoritma
kriptografi yang digunakan adalah RSA dan digunakan untuk mengenkrip kunci
simetri untuk dikirimkan bersama pesan. Pegirim dan penerima harus mendapatkan
kunci publik rekan-rekannya.
§ Kunci
Pribadi.
Algoritma
kriptografi yang digunakan adalah RSA dan digunakan untuk mengenkrip sidik jari
pesan untuk membentuk tanda tangan digital. Kunci privat ini hanya boleh
diketahui oleh pemiliknya.
§ Kunci
Turunan Passphrase.
Algoritma
kriptografi yang digunakan adalah IDEA dan digunakan untuk mengenkrip kunci
privat yang disimpan oleh pemilik kunci privat.
Comments
Post a Comment