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.
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.

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

Popular posts from this blog

Sistem cerdas parkir

makalah TOU "BOKUMI"