LAPORAN TUGAS AKHIR

ANALISIS SISTEM KEAMANAN DATA DENGAN MENGGUNAKAN METODE DES DAN METODE GOST

Mata Kuliah Keamanan Sistem Lanjut (EC 7010)
Dosen : Dr. Ir. Budi Rahardjo

Oleh:

BUDI SETIADI
NIM 23203071

BIDANG KHUSUS KENDALI & SISTEM CERDAS
PROGRAM  MAGISTER TEKNIK ELEKTRO
INSTITUT TEKNOLOGI BANDUNG
2004

ANALISIS SISTEM KEAMANAN DATA DENGAN 
MENGGUNAKAN METODE DES DAN METODE GOST

Abstrak

Sistem keamanan data dan kerahasiaan data merupakan salah satu aspek penting dalam perkembangan dunia telekomunikasi, khususnya komunikasi yang menggunakan komputer dan terhubung ke jaringan. Dalam tugas akhir ini akan dibahas analisis kriptografi yang ditekankan pada penggabungan metode DES dan metode GOST untuk mengenkripsi dan mendekripsi file.

1.	Pendahuluan
Pemakaian teknologi komputer sebagai salah satu aplikasi dari teknologi informasi sudah menjadi suatu kebutuhan, karena banyak pekerjaan yang dapat diselesaikan dengan cepat, akurat, dan efisien. Dengan berkembangnya teknik telekomunikasi dan sistem pengolahan data yang berkaitan erat dengan komunikasi antar pengguna komputer yang satu dengan komputer yang lain yang berfungsi untuk menyalurkan data sehingga masalah keamanan merupakan salah satu aspek penting dari suatu sistem informasi. 
Dalam komunikasi data terdapat sebuah metode pengamanan data yang dikenal dengan nama kriptografi. Kriptografi merupakan salah satu metode pengamanan data yang dapat digunakan untuk menjaga kerahasiaan data, keaslian data, serta keaslian pengirim. Metode ini bertujuan agar informasi yang bersifat rahasia yang dikirim melalui telekomunikasi umum seperti LAN atau internet, tidak dapat diketahui atau dimanfaatkan oleh orang yang tidak berkepentingan atau yang tidak berhak menerimanya. Kriptografi biasanya dalam bentuk enkripsi. Proses enkripsi merupakan proses untuk meng-encode data dalam bentuk yang haya dapat dibaca oleh sistem yang mempunyai kunci untuk membaca data tersebut. Proses enkripsi dapat dengan menggunakan software atau hardware. Hasil enkripsi disebut cipher. Cipher kemudian didekripsi dengan device dan kunci yang sama tipenya (sama softwarenya serta sama kuncinya).
Dalam kriptografi terdapat berbagai macam sistem sandi yang tujuan penggunaan dan tingkat kerahasiaannya berbeda sesuai dengan permintaan user, tetapi dalam prakteknya user menginginkan kemudahan-kemudahan seperti: kerahasian data, kecepatan, ketepatan, maupun biaya yang murah. Hal ini merupakan sebuah kendala dalam membuat suatu sistem kriptografi.
Kenyataan dalam proses pengamanan data dengan metode kriptografi sering kali dibutuhkan waktu yang relatif lebih lama dibandingkan tanpa menggunakan metode kriptografi. Oleh karena itu, diusahakan membuat sistem sandi yang lebih cepat dalam proses kriptografi tanpa mengabaikan kaidah kerahasiaan yang ingin dicapai dan hanya membutuhkan biaya yang murah.
Dalam pengamanan data tidak hanya sebatas data tersebut tidak dapat dibaca orang lain, tetapi juga bagaimana agar data tersebut tidak dapat diubah atau dimodifikasi, sehingga dibutuhkan suatu cara untuk memastikan keaslian dari data yang dikirim tersebut.

2.	Keamanan Data
Secara umum data dikategorikan menjadi dua, yaitu data yang bersifat rahasia dan data yang tidak bersifat rahasia. Data yang tidak bersifat rahasia biasanya tidak akan terlalu diperhatikan. Yang sangat perlu diperhatikan adalah data yang bersifat rahasia, dimana setiap informasi yang ada didalamnya akan sangat berharga bagi pihak yang membutuhkan karena data tersebut dapat dengan mudah digandakan. Untuk mendapatkan informasi didalamnya, biasanya dilakukan berbagai cara yang tidak sah.

Keamanan data biasanya terkait hal-hal berikut:
a.	Fisik, dalam hal ini pihak yang tidak berwenang terhadap data berusaha mendapatkan data dengan melakukan kegiatan sabotase atau penghancuran tempat penyimpanan data.
b.	Organisasi, dalam hal ini pihak yang tidak berwenang untuk mendapatkan data melalui kelalaian atau kebocoran anggota yang menangani data tersebut.
c.	Ancaman dari luar, dalam hal ini pihak yang tidak berwenang berusaha untuk mendapatkan data melalui media komunikasi dan juga melakukan pencurian data yang tersimpan di dalam komputer.
Fungsi keamanan komputer adalah menjaga tiga karakteristik, yaitu:
a.	Secrecy, adalah isi dari program komputer hanya dapat diakses oleh orang yang berhak. Tipe yang termasuk di sini adalah reading, viewing, printing, atau hanya yang mengetahui keberadaan sebuah objek.
b.	Integrity, adalah isi dari komputer yang dapat dimodifikasi oleh orang yang berhak, yang termasuk disini adalah writing, changing status, deleting, dan creating.
c.	Availability, adalah isi dari komputer yang tersedia untuk beberapa kelompok yang diberi hak.
Data yang aman adalah data yang memenuhi ketiga karakteristik keamanan data tersebut.
Melihat pada kenyataan semakin banyak data yang diproses dengan komputer dan dikirim melalui perangkat komunikasi elektronik, maka ancaman terhadap pengamanan data akan semakin meningkat. Beberapa pola ancaman terhadap komunikasi data dalam komputer dapat diterangkan sebagai berikut:
a.	Interruption, terjadi bila data yang dikirimkan dari A tidak sampai pada orang yang berhak B. Interruption merupakan pola penyerangan terhadap sifat availability (ketersedian data). Contohnya adalah kerusakan pada hardware, kegagalan operating system sehingga sistem tidak dapat menemukan file yang dicari.

 B
 A

Gambar 1. Interruption

b.	Interception, terjadi bila pihak ketiga C berhasil membaca data yang dikirimkan. Interception merupakan pola penyerangan terhadap sifat confidentiality/secrecy (kerahasian data), contohnya adalah penggandaan program atau file data yang tidak terlihat, atau pencurian data pada jaringan dengan cara wireteapping.

 B
 A

 C

Gambar 2. Interception
c.	Modification, pada serangan modification pihak ketiga C berhasil merubah pesan yang dikirimkan. Modification merupakan pola penyerangan terhadap sifat integrity (keaslian data).
 A
 B

 C

Gambar 3. Modification
d.	Fabrication, pada serangan fabrication penyerang berhasil mengirimkan data ke tujuan dengan memanfaatkan identitas orang lain. Fabrication merupakan pola penyerangan terhadap sifat authenticity (autentifikasi data).
 B
 A

 C

Gambar 4. Fabrication
Untuk mengantisipasi ancaman-ancaman tersebut di atas perlu dilakukan usaha untuk melindungi data yang dikirim melalui saluran komunikasi, salah satu usaha tersebut adalah dengan menyandikan informasi yang ada pada data yang akan dikirim. Penyembunyian informasi yang ada dalam suatu bentuk tertentu yang tidak dapat dimengerti pihak lain (yang tidak berkepentingan) merupakan bagian kriptografi.

3.	Konsep Dasar Kriptografi
Cryptography adalah studi teknik matematika yang berhubungan dengan aspek-aspek pengamanan informasi seperti data confidentiality/secrecy, data integrity, dan data authentication.
Cryptographic algorithm adalah fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Umumnya terdapat dua fungsi yang berhubungan yaitu satu untuk enkripsi dan satu lagi untuk dekripsi.
Enkripsi merupakan proses pengkodean sebuah pesan sehingga isi dari pesan tersebut tidak diketahui. Dekripsi adalah proses kebalikan dari enkripsi yaitu mentranformasi pesan yang dienkripsi kembali menjadi bentuk semula. Sebuah sistem enkripsi dan dekripsi disebut cryptosystem. Bentuk asli dari sebuah pesan disebut dengan plaintext dan bentuk asli yang dienkripsi disebut chipertext.

 Plaintext                              Ciphertext                                Plaintext

Dekripsi
Enkripsi

Gambar 5. Enkripsi dan Dekripsi

Plaintext dinotasikan dinotasikan dengan M (Message), yang dapat berupa bit tream, file text, digitized voice stream, digital video image atau lebih singkatnya M adalah data binary.
Ciphertext dinotasikan dengan C, juga berupa data binary yang kadang-kadang mempunyai ukuran yang sama dengan M, lebih kecil dari M atau lebih besar dari M.
Fungsi enkripsi E, berfungsi untuk mengubah M menjadi C, dalam matematika dinotasikan dengan: 
E(M) = C.
Fungsi dekripsi D, berfungsi untuk mengubah C menjadi M, dalam matematika dinotasikan dengan: 
D(C) = M.
Apabila fungsi enkripsi E ditambahkan sebuah kunci K maka notasi matematikanya menjadi EK(M) = C dan untuk fungsi dekripsi D maka notasi matematikanya menjadi DK(C) = M.

Dekripsi
Enkripsi
Kunci

   Plaintext                              Ciphertext                              Plaintext

Gambar 6. Enkripsi dan Dekripsi dengan sebuah kunci

Terdapat dua tipe algoritma kriptografi yang berbasis kunci yaitu symmetric/single key algorythms dan asymmetric/public key algoritm.
Symmetric algorithm yang sering disebut juga dengan conventional algorithm dimana kunci dekripsi dapat dihitung dari kunci enkripsi atau sebaliknya. Pada umumnya, symmetric algorithm menggunakan kunci enkripsi dan dekripsi yang sama. Algoritma ini juga dikenal dengan nama secret-key algorithm, single-key algorithm atau one-key algorithm.
Pengirim dan penerima pesan sebelumnya telah menyepakati kunci yang akan digunakan. Kekuatan dari symmetric algorithm tergantung pada kunci yang dimasukan. Enkripsi dan dekripsi dalam symmetric algorithm dinotasikan sebagai berikut:
EK(M) = C
DK(C) = M
Algoritma symmetric dapat dibagi menjadi dua kategori, beberapa diantaranya bekerja pada plintext satu bit tunggal setiap waktu, ini yang disebut sebagai stream algorithm atau stream cipher. Sedangkan yang lainnya bekerja pada plaintext dalam kelompok-kelompok bit. Kelompok bit disebut blocks, dan algoritmanya disebut block algorithm atau block cipher.
Public key algorithm juga sering disebut dengan asymmetric algorithm, didesain sedemikian rupa sehingga kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Disebut dengan public key karena kunci enkripsi dapat dibuat umum, orang asing sekalipun dapat menggunakan kunci enkripsi untuk mengenkripsi pesan tersebut. Dalam sistem ini, kunci enkripsi sering disebut juga sebagai public key, dan kunci dekripsi disebut juga sebagai private key. Private key sering juga sebagai secret key. Enkripsi dengan menggunakan public key K dinotasikan sebagai: 
EK(M) = C.
Walaupun public key dan private key berbeda, pendekripsian dengan private key yang sesuai dinotasikan dengan: 
DK(C) = M.

   Plaintext                              Ciphertext                              Plaintext

Kunci dekripsi
DK
Kunci enkripsi
EK
Dekripsi
Enkripsi

Gambar 7. Enkripsi dan Dekripsi dengan dua kunci

3	Teknik-Teknik Dasar Kriptografi
Berikut ini adalah 3 teknik dasar kriptografi yang akan digunakan dalam metode DES dan GOST.
a.	Teknik subtitusi
Langkah pertama dari teknik ini adalah membuat satu tabel subtitusi. Tabel subtitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan dekripsi. Bila tabel subtitusi dibuat secara acak, akan semakin sulit pemecahan ciphertext oleh pihak yang tidak berhak.

  A  	B	C	D	E	
E	D	C	B	A	
Gambar 8. Enkripsi dengan Teknik Subtitusi
Tabel subtitusi di atas dibuat secara acak. Huruf”A” akan diganti huruf “E”.
a.	Teknik blok (blocking)
Sistem enkripsi kadang membagi plintext menjadi blok-blok yang terdiri atas beberapa karakter yang kemudian dienkripsikan secara independen (masing-masing). Contoh plaintext yang dienkripsikan dengan menggunakan teknik blocking adalah:
E	P	K	I	Blok 1	
N	S	R		Blok 2	
K	I	I		Blok 3	
R	D	P		Blok 4	
I	E	S			
Gambar 9. Enkripsi dengan Teknik Blok (Blocking)
Dengan menggunakan teknik blok  dipilih jumlah lajur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini. 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 bloknya. Jadi  ciphertext  yang dihasilkan dengan teknik ini adalah “EPEKINSR KII RDP IES”. Palintext  dapat pula ditulis secara horizontal dan  ciphertext-nya adalah hasil pembacaan secara vertikal.
a.	Teknik permutasi atau teknik transposisi
Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu. Prinsipnya dalah berlawanan dengan teknik subtitusi. Dalam teknik subtitusi, karakter berada posisi yang tetap tetapi identitasnya yang diacak. Pada teknik permutasi, identitas karakternya tetap, namun posisinya yang diacak.sebelum dilakukan permutasi, umumnya plaintext dibagi menjadi blok-blok dengan panjang yang sama. Contoh:

Plaintext
1	2	3	4	

1	2	3	4	
Ciphertext
Gambar 10. Permutasi
3.	Algoritma DES dan GOST
Algoritma DES
 DES (data encrytion standard) mengenkrip plaintext  sebesar 64 bit (8 byte) dengan panjang kunci sekitar 56 bit (7 byte), sebanyak 16 putaran. Data 64 bit akan disubtitusi terlebih dahulu dengan permutasi IP (initial permutation). IP digunakan sebelum putaran pertama dari 16 putaran, dan mensubtitusi blok input dengan ketentuan sebagai berikut:

IP =	58, 50, 42, 34, 26, 18, 10, 2, 
60, 52, 44, 36, 28, 20, 12, 4,
	62, 54, 46, 38, 30, 22, 14, 6,
64, 56, 48, 40, 32, 24, 16, 8,
	57, 49, 41, 33, 25, 17,  9,  1, 
59, 51, 43, 35, 27, 19, 11, 3,
	61, 53, 45, 37, 29, 21, 13, 5, 
63, 55, 47, 39, 31, 23, 15, 7.

Sebagai contoh IP akan memindahkan bit ke-58 dari plaintext menjadi bit ke-1, bit ke-50 menjadi bit ke-2, bit ke-43 menjadi bit ke-3, dan seterusnya.
IP (initial permutation) dan final permutation  atau invers IP tidak mempengaruhi keamanan dari DES. Tujuan utamanya yaitu hanya untuk memudahkan dalam memanggil data plaintext  atau data  ciphertext  ke dalam chip DES yang berbentuk potongan-potongan byte dalam software/program komputer.
Plaintext  yang telah disubtitusi akan dipecah menjadi dua bagian sebesar 32 bit kiri L dan 32 bit kanan R. pada setiap putarannya data kiri akan menjadi data kanan, data kanan akan dilakukan operasi data kiri di-Xor-kan dengan fungsi f.
Li=Ri-1
Ri=Li-1 Xor f(Ri-1,Ki)   
Kemudian dilanjutkan dengan melakukan subtitusi final permutation atau invers IP  (IPinv). Ipinv merupakan invers  dari IP dan digambarkan dengan ketentuan sebagai berikut:

Ipinv =	40, 8, 48, 16, 56, 24, 64, 32, 
39, 7, 47, 15, 55, 23, 63, 31,
	38, 6, 46, 14, 54, 22, 62, 30, 
37, 5, 45, 13, 53, 21, 61, 29,
	36, 4, 44, 12, 52, 20, 60, 28, 
35, 3, 43, 11, 51, 19, 59, 27,
	34, 2, 42, 10, 50, 18, 58, 26, 
33, 1, 41,  9,  49, 17, 57, 25. 	
dalam putaran terakhirnya, blok R16L16 tidak terjadi pertukaran tetapi blok ini menjadi input untuk IPinv.

Untuk lebih jelasnya, gambar proses enkripsinya sebagai berikut:
OUTPUT
INVERSE INITIAL PERMUTATION
 K1
L0
R0
PERMUTED INPUT

INPUT

PRE-OUPUT
f
L16=R15
R16=L15(+)f (R,K15)16
 (+)
 Kn
 K2
R15=L14(+)f (R,K14)15
L15=R14
f
 (+)
 (+)