Selasa, 14 April 2009

SISTEM KEAMANAN DATA

Enkripsi Untuk Keamanan Data Pada Jaringan
Oleh : Muhammad Mursodo

Salah satu hal yang penting dalam komunikasi menggunakan computer untuk menjamin kerahasian data adalah enkripsi. Enkripsi dalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah sistem pengkodean menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata dari informasi atau yang merupakan bagian dari informasi yang dikirim. Sebuah chiper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unitelligible). Karena teknik cipher merupakan suatu sistem yang telah siap untuk di automasi, maka teknik ini digunakan dalam sistem keamanan komputer dan network.

Pada bagian selanjutnya kita akan membahas berbagai macam teknik enkripsi yang biasa digunakan dalam sistem sekuriti dari sistem komputer dan network.

A. Enkripsi Konvensional.

Proses enkripsi ini dapat digambarkan sebagai berikut :

Plain teks -> Algoritma Enkripsi -> Cipher teks ->Algoritma Dekrispsi -> Plain teks
User A | | User B
|----------------------Kunci (Key) --------------------|
Gambar 1

Informasi asal yang dapat di mengerti di simbolkan oleh Plain teks, yang kemudian oleh algoritma Enkripsi diterjemahkan menjadi informasi yang tidak dapat untuk dimengerti yang disimbolkan dengan cipher teks. Proses enkripsi terdiri dari dua yaitu algoritma dan kunci. Kunci biasanya merupakan suatu string bit yang pendek yang mengontrol algoritma. Algoritma enkripsi akan menghasilkan hasil yang berbeda tergantung pada kunci yang digunakan. Mengubah kunci dari enkripsi akan mengubah output dari algortima enkripsi.

Sekali cipher teks telah dihasilkan, kemudian ditransmisikan. Pada bagian penerima selanjutnya cipher teks yang diterima diubah kembali ke plain teks dengan algoritma dan dan kunci yang sama.

Keamanan dari enkripsi konvensional bergantung pada beberapa faktor. Pertama algoritma enkripsi harus cukup kuat sehingga menjadikan sangat sulit untuk mendekripsi cipher teks dengan dasar cipher teks tersebut. Lebih jauh dari itu keamanan dari algoritma enkripsi konvensional bergantung pada kerahasian dari kuncinya bukan algoritmanya. Yaitu dengan asumsi bahwa adalah sangat tidak praktis untuk mendekripsikan informasi dengan dasar cipher teks dan pengetahuan tentang algoritma diskripsi / enkripsi. Atau dengan kata lain, kita tidak perlu menjaga kerahasiaan dari algoritma tetapi cukup dengan kerahasiaan kuncinya.

Enkripsi Untuk Keamanan Data Pada Jaringan
Oleh : Muhammad Mursodo

Manfaat dari konvensional enkripsi algoritma adalah kemudahan dalam penggunaan secara luas. Dengan kenyataan bahwa algoritma ini tidak perlu dijaga kerahasiaannya dengan maksud bahwa pembuat dapat dan mampu membuat suatu implementasi dalam bentuk chip dengan harga yang murah. Chips ini dapat tersedia secara luas dan disediakan pula untuk beberapa jenis produk. Dengan penggunaan dari enkripsi konvensional, prinsip keamanan adalah menjadi menjaga keamanan dari kunci.

Model enkripsi yang digunakan secara luas adalah model yang didasarkan pada data encrytion standard (DES), yang diambil oleh Biro standart nasional US pada tahun 1977. Untuk DES data di enkripsi dalam 64 bit block dengan menggunakan 56 bit kunci. Dengan menggunakan kunci ini, 64 data input diubah dengan suatu urutan dari metode menjadi 64 bit output. Proses yang yang sama dengan kunci yang sama digunakan untuk mengubah kembali enkripsi.

B. Enkripsi Public-Key

Salah satu yang menjadi kesulitan utama dari enkripsi konvensional adalah perlunya untuk mendistribusikan kunci yang digunakan dalam keadaan aman. Sebuah cara yang tepat telah diketemukan untuk mengatasi kelemahan ini dengan suatu model enkripsi yang secara mengejutkan tidak memerlukan sebuah kunci untuk didistribusikan. Metode ini dikenal dengan nama enkripsi public-key dan pertama kali diperkenalkan pada tahun 1976.

Plain teks -> Algoritma Enkripsi -> Cipher teks -> Algoritma Dekrispsi -> Plain teks
User A | | User B
Private Key B ----|
|----------------------Kunci (Key) --------------------|
Gambar 2

Algoritma tersebut seperti yang digambarkan pada gambar diatas. Untuk enkripsi konvensional, kunci yang digunakan pada prosen enkripsi dan dekripsi adalah sama. Tetapi ini bukanlah kondisi sesungguhnya yang diperlukan. Namun adalah dimungkinkan untuk membangun suatu algoritma yang menggunakan satu kunci untuk enkripsi dan pasangannya, kunci yang berbeda, untuk dekripsi. Lebih jauh lagi adalah mungkin untuk menciptakan suatu algoritma yang mana pengetahuan tentang algoritma enkripsi ditambah kunci enkripsi tidak cukup untuk menentukan kunci dekrispi. Sehingga teknik berikut ini akan dapat dilakukan :

Enkripsi Untuk Keamanan Data Pada Jaringan
Oleh : Muhammad Mursodo

  1. Masing - masing dari sistem dalam network akan menciptakan sepasang kunci yang digunakan untuk enkripsi dan dekripsi dari informasi yang diterima.
  2. Masing - masing dari sistem akan menerbitkan kunci enkripsinya ( public key ) dengan memasang dalam register umum atau file, sedang pasangannya tetap dijaga sebagai kunci pribadi ( private key ).
  3. Jika A ingin mengisim pesan kepada B, maka A akan mengenkripsi pesannya dengan kunci publik dari B.
  4. Ketika B menerima pesan dari A maka B akan menggunakan kunci privatenya untuk mendeskripsi pesan dari A.

Seperti yang kita lihat, public-key memecahkan masalah pendistribusian karena tidak diperlukan suatu kunci untuk didistribusikan. Semua partisipan mempunyai akses ke kunci publik ( public key ) dan kunci pribadi dihasilkan secara lokal oleh setiap partisipan sehingga tidak perlu untuk didistribusikan. Selama sistem mengontrol masing - masing private key dengan baik maka komunikasi menjadi komunikasi yang aman. Setiap sistem mengubah private key pasangannya public key akan menggantikan public key yang lama. Yang menjadi kelemahan dari metode enkripsi publik key adalah jika dibandingkan dengan metode enkripsi konvensional algoritma enkripsi ini mempunyai algoritma yang lebih komplek. Sehingga untuk perbandingan ukuran dan harga dari hardware, metode publik key akan menghasilkan performance yang lebih rendah. Tabel berikut ini akan memperlihatkan berbagai aspek penting dari enkripsi konvensional dan public key.

Enkripsi Konvensional
Yang dibutuhkan untuk bekerja :

  1. Algoritma yang sama dengan kunci yang sama dapat digunakan untuk proses dekripsi - enkripsi.
  2. Pengirim dan penerima harus membagi algoritma dan kunci yang sama.

Yang dibutuhkan untuk keamanan :

  1. Kunci harus dirahasiakan.
  2. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
  3. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunc.

Enkripsi Public Key
Yang dibutuhkan untuk bekerja :

  1. Algoritma yang digunakan untuk enkripsi dan dekripsi dengan sepasang kunci, satu untuk enkripsi satu untuk dekripsi.
  2. Pengirim dan penerima harus mempunyai sepasang kunci yang cocok.

Yang dibutuhkan untuk keamanan :

  1. Salah satu dari kunci harus dirahasiakan.
  2. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
  3. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunci.

Keamanan data dan E-mail (1)

Jaringan komputer dan internet saat ini sudah merupakan kebutuhan yang sangat vital dan diyakini bahwa dengan jaringan komputer banyak sumberdaya yang bisa dihemat, seperti dana, tenaga, dan lain-lain . Selain itu, dengan jaringan komputer dan internet lalulintas data berjalan sangat cepat, tepat dan akurat tanpa ada batas ruang dan waktu.

Penggunaan e-mail, sharing dan transfer data baik kabel, serat optik maupun VSAT dengan teknologi VPN (Virtual Private Network) sudah merupakan lazim dilakukan oleh hampir semua perusahaan saat ini, dengan demikian sangat diperlukan sistem keamanan jaringan yang benar-benar handal dan bisa menghalau berbagai gangguan keamanan data e-mail dalam server Anda.

Saat ini banyak tidak sedikit program antivirus baik baru maupun antivirus lama yang terus diupdate kemampuannya. Berbagai perusahaan antivirus seperti Mc Affee, AVG, dan lain-lain terus berupaya menciptakan inovasi baru agar program antivirus mereka mampu menangkal dan membasmi spam, warm dan virus. Selain perusahaan khususnya pembuatan program antivirus, kepedulian Microsoft sebagai perusahaan raksasa sistem operasi, aplikasi dan bahasa pemrograman, ternyata juga sangat konsen terhadap sistem keamanan data dan e-mail dari gangguan warm, spam dan virus ini.

Salah satu kepedulian Microsoft terhadap warm, spam dan virus ini dibuktikan dengan kehadirannya Microsoft Forefront. Microsoft ForeFront ini hadir berupa Microsoft Forefront Client Security, Microsoft Forefront Security for Exchange Server dan Microsoft Forefront Security for SharePoint. Microsoft Forefront Client Security memberikan perlindungan terhadap malware pada komputer dan sistem operasi yang mudah dioperasikan pengguna. Microsoft Forefront Security for Exchange Server bertugas melindungi e-mail server perusahaan dari berbagai jenis virus, spam dan sejenisnya. Sedangkan Microsoft Forefront Security for SharePoint, menawarkan penggabungan beberapa fitur scanning virus untuk melindungi data perusahaan secara komprehensif, khususnya pada data-data penting dan rahasia.

Microsoft Forefront dan Microsoft System Center merupakan dua produk terkini dan merupakan solusi security yang komprehensif. Produk security yang komprehensif dari hulu ke hilir yang tidak hanya dilengkapi dengan dua atau tiga fungsi scanning, melainkan delapan fitur scanning yang secara simultan dan terus-menerus melindungi infrastruktur TI, dengan tetap menjaga keseimbangan antara reliability dan performance.

Microsoft Forefront bekerja menangani security, Microsoft System Center menawarkan fungsi membantu seorang administrator dalam melakukan monitoring dan pengelolaan server secara proaktif. Aplikasi ini menyederhanakan proses yang sebelumnya harus dilakukan seorang administrator menggunakan beberapa aplikasi, dengan hanya satu aplikasi.

KEAMANAN DATA DAN METODA ENKRIPSI

Aspek keamanan data sebenarya meliputi banyak hal yang saling berkaitan, tetapi khusus dalam tulisan ini penulis akan membahas tentang metoda enkripsi dan keamanan proteksi data pada beberapa program-program aplikasi umum. Hampir semua program aplikasi seperti MS Word, WordPerfect, Excel, PKZip menyediakan fasilitas proteksi data dengan pem-password-an, tapi sebenarnya fasilitas ini mudah untuk dibongkar. Bahkan program khusus proteksi data seperti Norton Diskreet (mungkin sekarang sudah jarang digunakan) yang memproteksi data dengan metoda DES ataupun metoda "proprietary" yang lebih cepat, sebenarnya sangat tidak aman. Metoda DES yang digunakan mempunyai kesalahan dalam implementasinya yang sangat mengurangi keefektipan dari metoda tersebut. Walaupun dapat menerima password sampai 40 karakter, karakter ini kemudian diubah menjadi huruf besar semua dan kemudian di-reduce menjadi 8 karakter. Hal ini menyebabkan pengurangan yang sangat besar terhadap kemungkinan jumlah kunci enkripsi, sehingga tidak hanya terbatasnya jumlah password yang mungkin, tetapi juga ada sejumlah besar kunci yang equivalen yang dapat digunakan untuk mendekrip file. Sebagai contoh file yang dienkrip dengan kunci 'xxxxxxx' dapat didekrip dengan 'xxxxxx', 'xxxxyy', 'yyyyxx'. PC Tools (mungkin ini juga sudah sulit ditemukan) adalah contoh lain paket software yang menyediakan fasilitas proteksi data yang sangat tidak aman. Implementasi DES pada program ini mengurangi 'round' pada DES yang seharusnya 16 menjadi 2, yang membuatnya sangat mudah untuk dibongkar.

Beberapa program akan secara otomatis membongkar proteksi program aplikasi seperti MS Word, Excel, Word Perfect, PKZip 2.x, Quattro Pro, dll dengan sangat mudah, bahkan ada program yang menambahkan 'delay loop' sehingga seolah-olah program tersebut sedang bekerja keras membongkar password. Salah satu perusahaan tersebut adalah Access Data (http://www.accessdata.com), mereka membuat software yang dapat membongkar WordPerfect (versi 4.2-6.1, enkripsi 'regular' atau 'enhanced', Microsoft Word (versi 2.0-6.1), Microsoft Excel (semua versi termasuk versi Macintosh), Lotus 1-2-3 (semua versi), Quattro Pro, Paradox, Pkzip, Norton's Diskreet (baik metoda DES maupun 'proprietary'), Novell NetWare (versions 3.x-4.x), dll. Access Data menyediakan program demo yang dapat memecahkan password sampai 10 karakter. Untuk mendapatkannya coba ftp site-nya di ftp.accessdata.com pada directory /pub/demo. Penulis sendiri telah mencoba program demo pembongkar passwordnya (untuk WordPerfect) yang jalan pada Windows 95, tetapi sayang hanya dapat menampilkan jumlah karakter yang digunakan pada password kita. Penulis juga telah melihat ada program lokal berbasis DOS yang dapat membongkar password Word 6.0/7.0. Alasan utama kurang baiknya proteksi dari program-program diatas adalah mungkin untuk mendapatkan izin ekspor dari pemerintah Amerika Serikat dengan mudah, karena di sana untuk mengekspor program enkripsi yang kuat memerlukan izin yang ketat dari pemerintah. Dan mengekspor program enkripsi sama dengan mengekspor amunisi sehingga sangat dibatasi bahkan dikenai hukuman bagi yang melanggarnya. Contoh klasik adalah apa yang menimpa Philip Zimmermann yang diadili karena program PGP yang ia buat dan menyebar ke seluruh dunia.

Untuk proteksi data yang cukup penting tidak ada jalan lain selain menggunakan program khusus proteksi/enkripsi data. Saat ini telah banyak beredar program khusus proteksi data baik freeware, shareware, maupun komersial yang sangat baik. Pada umumnya program tersebut tidak hanya menyediakan satu metoda saja, tetapi beberapa jenis sehingga kita dapat memilih yang menurut kita paling aman. Contoh program tesebut yang penulis ketahui seperti :

  • BFA 97 (Blowfish Advanced 97) yang menyediakan metoda ekripsi : Blowfish, Idea, Triple DES, GOST, Cobra128, PC-1 (RC4 compatible), dan Twofish. Program demo dari paket ini menyediakan pem-password-an hanya sampai 5 huruf. Selain itu paket ini menyediakan fasilitas 'disk key' yaitu kunci pada disket, sehingga kita tidak perlu mengingat-ingat password. Tetapi dengan cara 'disk key' ini ada masalah yaitu bila disketnya rusak atau hilang maka kita akan kehilangan semua data kita.
  • Kremlin yang menyediakan proteksi data Blowfish, Idea, DES/Triple DES, dll.
  • F-Secure yang menyedikan metoda proteksi Blowfish, RSA, DES/Triple DES dan RC4. Produk ini dirancang untuk sistem jaringan.
  • Cryptext merupakan freeware, extension Windows 95/NT shell yang yang menggunakan RC4 untuk mengenkripsi file yang menggunakan kunci 160 bit yang dihasilkan dari digest SHA terhadap password yang kita masukkan.
  • PGP, merupakan program enkripsi sistem kunci publik (asimetrik) dan biasanya digunakan untuk untuk enkripsi e-mail, tetapi dapat juga digunakan untuk enkripsi konvensional (simetrik). PGP menggunakan RSA sebagai sistem kunci publik dan Idea sebagai metoda enkripsi simetrik dan MD5 untuk message digest. PGP merupakan freeware tersedia untuk DOS (versi 2.6.x, tersedia beserta source programnya) dan Windows 95/NT (versi 5.x).
  • Pegwit, seperti PGP merupakan program ekripsi sistem kunci publik, walaupun masih sangat sederhana (versi 8.71). Pegwit menggunakan Elliptic Curve untuk sistem kunci public dan Square untuk enkripsi simetrik dan SHA-1 untuk message digest. Pegwit tersedia untuk DOS (16 dan 32 bit) dan menyertakan juga source programnya.
  • Selain itu juga terdapat program untuk enkripsi 'on the fly'/'real time' yang dapat mengenkripsi harddisk, partisi, atau suatu direktori tertentu secara transparan. Dengan cara ini kita tidak perlu memilih satu persatu file yang akan kita enkrip, tetapi program yang akan melaksanakannya. Salah satu contoh jenis ini adalah Norton Your Eyes Only, yang menggunakan metoda enkripsi Blowfish. Contoh lain adalah ScramDisk (versi 2.02) yang dapat digunakan untuk Windows 95/98, program ini merupakan program bebas dan tersedia beserta source programnya (http://www.hertreg.ac.uk/ss/). Scramdisk menyediakan beberapa metoda enkripsi seperti Blowfish, Tea, Idea, DES, SquareWindows NT bahkan sudah menyediakan fasilitas mengenkrip , Misty dan Triple DES 168 bit. Microsoft 5.0 yang akan datang direktori dengan menggunakan metoda DES.

Lalu bagaimana dengan program enkripsi produk lokal ?. Sampai saat ini penulis memperhatikan telah banyak program proteksi data yang telah diterbitkan pada majalah Mikrodata ataupun Antivirus, tetapi jarang sekali yang cukup baik sehingga dapat dipercaya untuk melindungi data yang cukup penting. Sebagai contoh penulis akan membahas program Multilevel Random Encryption versi 1.4 (pada Antivirus no. 5) yang menurut penulisnya menggunakan proteksi ganda dengan triple covery (?) dengan langkah-langkah overdosis (?), mempunyai kelebihan dan sekuritas tinggi (?), kunci covery dapat diganti sesuka anda, sehingga pembuat MRE sendiri tidak dapat memecahkanya (?). Lalu coba kita analisa bersama-sama, program ini mempunyai satu kunci yang di-hard coded di tubuh program kemudian satu kunci lagi yang dipilih secara random dari random generator standar, yang fatalnya kunci ini juga disimpan didalam hasil enkripsi. Plaintext dioperasikan (XOR) dengan kedua kunci ini dan data dibolak balik dalam 6 byte blok menghasilkan ciphertext. Dengan mengengkrip data dengan kunci yang sama saja sudah jelas akan dihasilkan data yang sama, contohnya karakter ASCII 52 akan menjadi karakter ASCII 235, maka dibagian manapun pada data karakter ASCII 52 akan tetap menjadi karakter ASCII 235, ini merupakan suatu cara untuk membongkar file hasil enkripsi. Kesalahan fatal lain adalah menyertakan password pada data hasil enkripsi sehingga dengan mudah dapat dicari passwordnya. Sehingga dengan logika sangat sederhana saja sudah dapat membongkar program ini. Penulis juga telah membuat program yang sangat sederhana untuk mencari password dari data yang telah diproteksi dengan program ini, seperti dapat dilihat pada listing (MREBR.PAS) dalam mrebr.zip.

Terlepas dari aman atau tidak, penulis sangat menghargai kreatifitas programmer-programmer di negara kita, sehingga penulis selalu tertarik jika ada artikel tentang program proteksi data di majalah ini, meskipun (sekali lagi) sangat jarang metoda-metoda tersebut dapat memberikan proteksi yang baik terhadap data kita. Meskipun hanya sebagai kegiatan sampingan, saat ini penulis telah mengumpulkan beberapa metoda enkripsi yang sudah diakui keampuhannya (kebanyakan sumbernya dalam bahasa C) dan mem 'port' nya ke dalam bahasa Pascal/Delphi dan bila redaksi Antivirus berkenan maka penulis akan membahasnya pada beberapa tulisan yang akan datang. Alasan penulis mem-port ke Delphi karena kebanyakan rutin-rutin tersebut ditulis dengan bahasa C dan sedikit sekali dari rutin-rutin yang tersedia bagi programmer Delphi. Walaupun paling tidak ada satu site (TSM Inc, http://crypto-central.com/index.html) yang menyediakan komponen cryptography (Blowfish, DES, RC6, Twofish, RSA, Eliptic Curve, SHA) untuk Delphi/C++ Builder, tetapi komponen tersebut tidak disertai source dan bila ingin disertai source harus membelinya dengan harga kurang lebih US $100 per komponen. Metoda-metoda yang telah berhasil di-port diantaranya yang klasik seperti DES dan modifikasinya Triple DES, metoda-metoda yang lebih modern seperti GOST (Russian DES), Blowfish, RC2, RC4, RC5, Idea, Safer, MDS-SHS, Square. Juga penulis masih dalam proses mem-port metoda mutakhir yang ikut kontes AES (Advances Encryption Standard) yang akan digunakan sebagai standar pada dekade mendatang, seperti Twofish, RC6, Safer+ dan Mars. (Sebagai informasi sampai tanggal 20 Agustus 1998 ada 15 kandidat, yaitu : Cast-256, Crypton, Deal, DFC, E2, Frog, HPC, Loki97, Magenta, Mars, RC6, Rijndael, Safer+, Serpent dan Twofish). Selain itu ada metoda 'secure hash' seperti MD5 dan SHA, 'secure pseudo random number generator' seperti pada PGP (ANSI X9.17), peggunaan SHA-1 untuk random number generator dan George Marsaglia's the mother of all random number generators . Juga mungkin suatu saat metoda public key cryptosystem, tetapi penulis tidak terlalu yakin akan hal ini sebab metoda ini cukup rumit dan memerlukan kode program yang cukup panjang, karena melibatkan perhitungan dengan bilangan integer yang sangat besar. Meskipun demikian paling tidak penulis telah mem-port salah satu metoda publik key ini yaitu Elliptic Curve (Elliptic Curve Crypto version 2.1 dari Mike Rosing), meskipun belum sempat di-debug dan dites, karena kemudian penulis menemukan sistem yang lebih lengkap yaitu pada Pegwit 8.71 oleh George Barwood. Dan terakhir penulis juga menemukan rutin-rutin enkripsi yang ditulis oleh David Barton (http://sunsite.icm.edu.pl/delphi/ atau http://web.ukonline.co.uk/david.w32/delphi.html) tetapi rutin-rutin ini tampaknya kurang dioptimasi dengan baik sehingga performancenya kurang baik (cek site tersebut mungkin sudah ada perbaikan), bahkan untuk rutin Blowfish sangat lambat. Sebagai perbandingan penulis mengadakan test kecepatan, yang dilakukan pada Pentium Pro 200 dengan RAM 64MB dan sistem operasi Windows NT 4.0 (SR3), untuk mengenkrip 5MB data (kecuali Blowfish dari David Barton 1 MB) yang dikompile dengan Delphi 4.0 dan hasilnya dapat dilihat pada tabel dibawah ini :

Metoda

Rutin Penulis

Rutin Barton

Faktor

( x )

( Kbytes/detik)

Blowfish

6063,06

26,33

230,3

IDEA

1458,44

913,91

1,6

RC2

1867,76

640,37

2,9

RC4

9416,20

6429,49

1,5

RC5

5760,37

1907,91

3,0

RC6

4291,85

812,30

5,3

GOST

3524,44

-

-

Safer

1234,77

-

-

Skipjack

-

497,45

-

Dari tabel di atas terlihat performance dari metoda-metoda ekripsi yang telah di-port ke dalam Delphi rata-rata cukup baik bila di-optimize dengan benar, bahkan ada diantaranya yang lebih cepat (dicompile dengan Delphi 3.0, dengan directive {$O+;$R-;$Q-}) dibandingkan rutin C-nya yang dicompile dengan Borland C/C++ 5.2 (BCC32 dari Borland C++ Builder, dengan option optimize for speed,-O2), contohnya adalah Blowfish dan RC4. Faktor penting dalam optimasi dengan Delphi 32 bit (Delphi 2.x, 3.x, 4.0 tampaknya menggunakan metoda optimasi yang sama) adalah penggunaan variabel 32 bit (Integer/LongInt/LongWord), karena tampaknya Delphi ini dioptimasikan untuk operasi 32 bit. Contohnya adalah rutin Idea yang menggunakan beberapa variabel Word (16 bit) dalam proses ciphernya, ketika penulis mengganti variabel-variabel ini dengan Integer dan me-mask beberapa operasi yang perlu sehingga hasilnya masih dalam kisaran Word, akan meningkatkan performance kurang lebih 40%. Demikian juga dengan RC4 yang dalam tabel permutasinya menggunakan type Byte (8 bit) penulis mengganti dengan Integer, kecepatannya meningkat drastis. Walaupun demikian, dengan cara ini terjadi peningkatkan overhead penggunaan memori, seperti pada RC4 dari tabel 256 byte menjadi 256*4 = 1024 byte. Tetapi karena kita memakainya untuk implementasi software saja dan saat ini harga memori cukup murah jadi tidak terlalu menjadi masalah. Faktor lain dalam optimasi adalah menghindari pemanggilan fungsi/procedure dalam blok enkripsi utama, karena pemanggilan fungsi/procedure akan menyebabkan overhead yang sangat besar. Hal lain yang perlu dihidari adalah penggunaan loop (for, while, repeat) sehingga memungkinkan kode program dieksekusi secara paralel, terutama pada prosesor superscalar seperti Pentium atau yang lebih baru. Hal utama yang perlu diperhatikan dalam melakukan optimasi adalah selalu membandingkan hasilnya dengan 'test vector' baku yang biasanya disertakan oleh pembuatnya, dengan demikian kita yakin bahwa implementasi kita terhadap metoda cipher tersebut adalah benar.

Dari pengamatan penulis kekuatan dari metoda-metoda enkripsi adalah pada kunci (dari password yang kita masukkan) sehingga walaupun algoritma metoda tersebut telah tersebar luas orang tidak akan dapat membongkar data tanpa kunci yang tepat. Walaupun tentunya untuk menemukan metoda tersebut diperlukan teori matematika yang cukup rumit. Tetapi intinya disini ialah bagaimana kita mengimplementasikan metoda-metoda yang telah diakui keampuhannya tersebut didalam aplikasi kita sehingga dapat meningkatkan keamanan dari aplikasi yang kita buat.

Memang untuk membuat suatu metoda enkripsi yang sangat kuat (tidak dapat dibongkar) adalah cukup sulit. Ada satu peraturan tidak tertulis dalam dunia cryptography bahwa untuk dapat membuat metoda enkripsi yang baik orang harus menjadi cryptanalysis (menganalisa suatu metoda enkripsi atau mungkin membongkarnya) terlebih dahulu. Salah satu contohnya adalah Bruce Schneier pengarang buku Applied Crypthography yang telah menciptakan metoda Blowfish dan yang terbaru Twofish. Bruce Schneier (dan sejawatnya di Counterpane) telah banyak menganalisa metoda-metoda seperti 3-Way, Cast, Cmea, RC2, RC5, Tea, Orix, dll dan terbukti metoda yang ia buat yaitu Blowfish (yang operasi ciphernya cukup sederhana bila dibandingkan dengan DES misalnya) sampai saat ini dianggap salah satu yang terbaik dan tidak bisa dibongkar dan juga sangat cepat. Bahkan untuk menciptakan Twofish ia dan timnya di Counterpane menghabiskan waktu ribuan jam untuk menganalisanya dan sampai saat-saat terakhir batas waktu penyerahan untuk AES (15 Juni 1998) ia terus menganalisisnya dan menurutnya sampai saat inipun ia masih terus menganalisis Twofish untuk menemukan kelemahannya.

Tidak ada komentar:

Posting Komentar