Rabu, 08 April 2009

Dasar-dasar keamanan sistem informasi


Dasar-dasar keamanan sistem informasi

Kriptografi (cryptography) berasal dari bahasa Yunani, terdiri dari dua suku kata yaitu kripto dan graphia. Kripto artinya menyembunyikan, sedangkan graphia artinya tulisan. Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data (Menezes, Oorschot and Vanstone, 1996). Tetapi tidak semua aspek keamanan informasi dapat diselesaikan dengan kriptografi.

Kriptografi dapat pula diartikan sebagai ilmu atau seni untuk menjaga keamanan pesan. Ketika suatu pesan dikirim dari suatu tempat ke tempat lain, isi pesan tersebut mungkin dapat disadap oleh pihak lain yang tidak berhak untuk mengetahui isi pesan tersebut. Untuk menjaga pesan, maka pesan tersebut dapat diubah menjadi suatu kode yang tidak dapat dimengerti oleh pihak lain.

Enkripsi adalah sebuah proses penyandian yang melakukan perubahan sebuah kode (pesan) dari yang bisa dimengerti (plainteks) menjadi sebuah kode yang tidak bisa dimengerti (cipherteks). Sedangkan proses kebalikannya untuk mengubah cipherteks menjadi plainteks disebut dekripsi. Proses enkripsi dan dekripsi memerlukan suatu mekanisme dan kunci tertentu.

Kriptoanalisis (cryptanalysis) adalah kebalikan dari kriptografi, yaitu suatu ilmu untuk memecahkan mekanisme kriptografi dengan cara mendapatkan kunci dari cipherteks yang digunakan untuk mendapatkan plainteks. Kriptologi (cryptology) adalah ilmu yang mencakup kriptografi dan kriptoanalisis.

Kriptografi(ilmu persandian)

Secara luas, persandian juga dikenal dengan sebutan kriptologi. Istilah kriptologi berasal dari bahasa latin yang terdiri dari “kriptos” yang berarti tersembunyi (rahasia) dan “logos” yang berarti ilmu. Jadi kriptologi adalah ilmu atau seni yang mempelajari semua aspek tulisan rahasia.

Kriptologi dibagi menjadi 2 (dua), yaitu kriptografi dan kriptoanalisis. Kriptografi adalah cara (sistem, metode) yang mengolah tata tulisan dalam berita sehingga menjadi tata tulisan yang berlainan dan tidak bermakna (incoherent). Sedangkan kriptoanalisis adalah usaha mendapatkan teks terang dari suatu teks sandi yang tidak diketahui sistem serta kunci-kunci-nya.

Menurut buku “Pengantar Kriptologi” (Sumarkidjo, 1972), kata kriptologi mempunyai 2 (dua) pengertian, yaitu:

(1) Kriptologi sebagai ilmu, yang mempelajari semua aspek dalam tulisan rahasia. Ilmu persandian ini dibedakan menjadi 2 (dua) kelompok dasar:

  • Sistem steganografi, meliputi sistem-sistem yang secara katawiyah menyembunyikan berita, seperti di dalam gumpalan lilin, dengan tanda-tanda tertentu, di dalam teks berita lain, “dihilangkan” dengan tinta rahasia, dan lain sebagainya. Steganografi terbagi menjadi 3 (tiga) jenis:
    1. Linguistis: Semagram, Open Code
    2. Teknologis: Secret (invisible) inks, Micro-photography
    3. Concealments
  • Sistem kriptografik, meliputi sistem-sistem yang mengolah tata tulisan dalam berita sehingga menjadi tata tulisan yang berlainan dan tidak bermakna (incoherent). Sistem ini dibedakan menjadi 2 (dua):
    1. Cipher: Transposisi dan Substitusi
    2. Code: Placode (Plain Code) dan Encicode (Enciphered Code)

(2) Kriptologi sebagai kegiatan, yang berkaitan dengan fungsinya di dalam kegiatan intelejen pada umumnya. Kegiatan intelejen pada umumnya terdiri dari kegiatan penyelidikan dan pengamanan. Kegiatan penyelidikan meliputi Direction Finding dan Interception, Traffic Analysis dan Cryptanalysis, sedangkan kegiatan pengamanan terhadap tindakan dari kegiatan penyelidikan tersebut adalah Transmission Security, Traffic Security dan Crypt Security.

Kriptologi merupakan suatu ilmu yang mempelajari komunikasi rahasia. Kriptologi meliputi 2 (dua) bidang yang berlawanan. Pengamanan informasi (information security) meliputi semua metode, termasuk enkripsi, untuk mencegah pihak yang tidak berwenang untuk mendapatkan atau mengubah informasi yang dikomunikasikan dan memastikan berita tersebut berasal dari pihak yang menandatanganinya. Intelejen Sinyal (Signal Intelligence) meliputi semua metode untuk mendapatkan informasi yang dikomunikasikan (seperti penyadapan berita; pengupasan kode; hacking atau pengaksesan secara ilegal ke sebuah komputer; atau menganalisis lalu lintas berita). (ENCYCLOPEDIA – AMERICANA)

Tujuan Kriptografi

Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek keamanan informasi, yaitu:

  1. Kerahasiaan, adalah aspek yang berhubungan dengan penjagaan isi informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka informasi yang telah dienkripsi.
  2. Integritas data, adalah aspek yang berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
  3. Autentikasi, adalah aspek yang berhubungan dengan identifikasi atau pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
  4. Non-repudiation (menolak penyangkalan), adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman suatu informasi oleh yang mengirimkan, atau harus dapat membuktikan bahwa suatu pesan berasal dari seseorang, apabila ia menyangkal mengirim informasi tersebut.



Cryptographic system (cryptosystem)

Suatu cryptosystem terdiri dari sebuah algoritma, seluruh kemungkinan plaintext, ciphertext dan kunci-kunci. Secara umum cryptosystem dapat digolongkan menjadi dua buah, yaitu :

1. Symmetric Cryptosystem

Dalam symmetric cryptosystem ini, kunci yang digunakan untuk proses enkripsi dan dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat pula diturunkan dari kunci yang lainnya. Kunci-kunci ini harus dirahasiakan. Oleh karena itulah sistem ini sering disebut sebagai secret-key ciphersystem. Jumlah kunci yang dibutuhkan umumnya adalah :

nC2 = n . (n-1)
--------
2

dengan n menyatakan banyaknya pengguna.
Contoh dari sistem ini adalah Data Encryption Standard (DES), Blowfish, IDEA.

2. Assymmetric Cryptosystem

Dalam assymmetric cryptosystem ini digunakan dua buah kunci. Satu kunci yang disebut kunci publik (public key) dapat dipublikasikan, sedang kunci yang lain yang disebut kunci privat (private key) harus dirahasiakan. Proses menggunakan sistem ini dapat diterangkan secara sederhana sebagai berikut : bila A ingin mengirimkan pesan kepada B, A dapat menyandikan pesannya dengan menggunakan kunci publik B, dan bila B ingin membaca surat tersebut, ia perlu mendekripsikan surat itu dengan kunci privatnya. Dengan demikian kedua belah pihak dapat menjamin asal surat serta keaslian surat tersebut, karena adanya mekanisme ini. Contoh sistem ini antara lain RSA Scheme dan Merkle-Hellman Scheme.

Setiap cryptosytem yang baik harus memiliki karakteristik sebagai berikut :

  • Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada kerahasiaan algoritma yang digunakan.
  • Cryptosystem yang baik memiliki ruang kunci (keyspace) yang besar.
  • Cryptosystem yang baik akan menghasilkan ciphertext yang terlihat acak dalam seluruh tes statistik yang dilakukan terhadapnya.
  • Cryptosystem yang baik mampu menahan seluruh serangan yang telah dikenal sebelumnya

Namun demikian perlu diperhatikan bahwa bila suatu cryptosystem berhasil memenuhi seluruh karateristik di atas belum tentu ia merupakan sistem yang baik. Banyak cryptosystem lemah yang terlihat baik pada awalnya. Kadang kala untuk menunjukkan bahwa suatu cryptosystem kuat atau baik dapat dilakukan dengan menggunakan pembuktian matematika.

Hingga saat ini masih banyak orang yang menggunakan cryptosystem yang relatif mudah dibuka, alasannya adalah mereka tidak mengetahui sistem lain yang lebih baik serta kadang kala terdapat motivasi yang kurang untuk menginvestasikan seluruh usaha yang diperlukan untuk membuka suatu sistem.

Kriptografi klasik terbagi menjadi dua kategori utama, yaitu metode penyandian substitusi dan metode penyandian trasposisi.

Metode penyandian substitusi

Bentuk penyandian kriptografi klasik berupa teks (huruf/karakter) dengan menggunakan alat tulis berupa kertas dan pensil. Namun bila menggunakan mesin sandi, biasanya mesin tersebut masih sangat sederhana.

Sesuai dengan namanya, pada awalnya, metode penyandian substitusi adalah penyandian dengan cara mengganti huruf/karakter teks aslinya ke huruf/karakter lain sebagai teks sandinya, baik setiap satu huruf/karakter atau setiap kelompok huruf/karakter atau bisa juga kombinasi dari itu.

Kemudian dalam perkembangannya, dalam metode penyandian substitusi modern, digunakan sebuah program aplikasi tertentu dimana teks asli yang berbentuk kumpulan karakter dalam sebuah file digital diganti dengan kumpulan karakter lain secara digital pula sehingga menghasilkan file sandi yang siap dikomunikasikan.

Untuk membaca teks aslinya kembali dari teks sandi, cukup dengan membalik prosesnya. Terdapat berbagai macam metode penyandian substitusi, diantaranya adalah :

  1. Metode Penyandian Substitusi Sederhana
  2. Metode Penyandian Caesar
  3. Metode Penyandian Vigenére
  4. Metode Penyandian Hill
  5. Metode Penyandian OTP

Metode Penyandian Substitusi Sederhana

Metode penyandian substitusi sederhana ini termasuk dalam kriptografi klasik. Metode ini dilakukan dengan mengganti setiap huruf dari teks asli dengan huruf lain sebagai huruf sandi yang telah didefinisikan sebelumnya oleh algoritma kunci.

Dalam metode penyandian substitusi sederhana, deretan alfabetiknya bisa berupa deretan dari A sampai Z yang disebut deret langsung, ataupun kebalikannya dari Z ke A yang disebut deret inversi (kebalikan), namun dapat pula berupa deretan acak berkunci ataupun tidak berkunci.

Untuk memudahkan dalam mengoperasikan penyandiannya, deretan huruf tersebut dapat dibuatkan kedalam sebuah tabel, ataupun dengan matematika aljabar modulus 26, tergantung algoritma kunci yang ditentukan.

1. Huruf asli : 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

Huruf sebagai kunci sandi :

2. Deret langsung : M N O P Q R S T U V W X Y Z A B C D E F G H I J K L

3. Deret inversi : F E D C B A Z Y X W V U T S R Q P O N M L K J I H G

4. Deret acak tidak berkunci : Q P A L Z M O W K S N X I E J D B C V F H R U Y T G

5. Deret acak berkunci (BATIK TULIS) : B A T I K U L S C D E F G H J M N O P Q R V W X Y Z

6. Deret acak berkunci inversi (WAYANG GOLEK) : Z X V U T S R Q P M J I H F D C B K E L O G N Y A W

Untuk mempermudah pemahaman dapat diperhatikan contoh berikut :

Teks asli :

SEMUA HAL BESAR DIAWALI DARI SEBUAH IMPIAN

Algoritma : Deret inversi dengan kunci A = F

Hasil teks sandi : NBTLF YFUEB NFOCX FJFUX CFOXN BELFY XTQXF SXXXX

Algoritma : Deret acak berkunci (BATIK TULIS)

Hasil teks sandi : PKGRB SBFAK PBOIC BWBFC IBOCP KARBS CGMCB HXXXX

Teks sandi umumnya ditulis dalam bentuk grup-grup kata sandi yang masing-masing grup terdiri dari 4 atau 5 huruf. Teknik penulisan seperti ini dilakukan dengan pertimbangan :

- Pada saat itu, digunakan untuk menekan biaya transmisi telegram;

- Memudahkan dalam mengecek kesalahan saat ditransmisikan;

- Menghilangkan karakteristik kata-kata dari teks aslinya.

Bila teks sandinya berakhir tidak genap 4 atau 5 huruf, maka digunakan huruf-huruf sebagai pelengkapnya. Dalam contoh, teks sandi digenapi dengan huruf XXXX. Namun dalam prakteknya penggenapan huruf ini bisa dengan huruf apa saja, terutama huruf yang jarang dipakai.

Metode penyandian transposisi

Metode penyandian transposisi adalah metode penyandian dengan cara mengubah letak dari teks pesan yang akan disandikan. Dan untuk membaca pesan aslinya kembali, cukup dengan mengembalikan letak dari pesan tersebut berdasarkan kunci dan algoritma pergeseran huruf yang telah disepakati.

Terdapat beberapa algoritma dalam metode penyandian transposisi yaitu :

  1. Penyandian transposisi rail fence
  2. Penyandian transposisi route
  3. Penyandian transposisi kolom
  4. Penyandian transposisi ganda
  5. Penyandian transposisi Myszkowski

Penyandian Transposisi Rail Fence

Rail Fence atau bisa juga disebut alur pagar adalah bentuk penyandian transposisi dengan cara menuliskan huruf-huruf teks asli secara turun naik dalam sebuah pagar imajiner. Teks sandinya dibaca secara baris per baris.

Lebih mudahnya dapat dilihat dari contoh berikut :

Teks pesan asli :

TENTUKAN PRIORITAS ANDA SEBAB KITA TIDAK DAPAT MENGERJAKAN SEMUANYA X.

Algoritma : 5 baris

Proses :

T - - - - - - - P - - - - - - - S - - - - - - - A - - - -

- E - - - - - N – R - - - - - A – A - - - - - B – B - - -

- - N - - - A - - - I - - - T - - - N - - - E - - - K - -

- - - T – K - - - - - O – I - - - - - D – S - - - - - I -

- - - - U - - - - - - - R - - - - - - - A - - - - - - - T - DST

Hasil penyandian (teks sandi) :

TPSAD MKNEN RAABB IATEA AAYNA ITNEK TKANJ NUATK OIDSI ADPGR SMXUR ATAEE

Penyandian Transposisi Route

Penyandian transposisi dengan metode route hampir sama dengan metode Rail Fence. Penyandian Transposisi Route dilakukan dengan cara menuliskan teks asli secara kolom dari atas kebawah dalam sebuah kisi-kisi imajiner dengan ukuran yang telah disepakati. Teks sandinya dibaca dengan arah (route) sesuai perjanjian, misalnya dibaca secara (1) spiral dengan arah jarum jam, mulai dari kiri atas atau (2) secara ular tangga, mulai dari kanan bawah dan lain-lain cara pembacaannya.

Penyandian route memiliki banyak sekali variasi algoritma pembacaan teks-nya. Namun tidak semua algoritma tersebut memberikan hasil teks sandi yang memenuhi standar “aman”. Beberapa algoritma tidak mengacak teks asli dengan sempurna, sehingga akan memberikan celah yang dapat dengan mudah dipecahkan oleh seorang kriptoanalisa.

Penyandian transposisi route yang terkenal adalah Union Route yang digunakan oleh tentara Amerika selama perang sipil.

Contoh penyandian transposisi route :

Teks pesan asli :

TENTUKAN PRIORITAS ANDA SEBAB KITA TIDAK DAPAT MENGERJAKAN SEMUANYA X.

Algoritma : 5 baris, spiral arah jarum jam mulai dari kanan bawah.

Proses :

T K I A A B T D M R N A

E A O S S K I A E J S N

N N R A E I D P N A E Y

T P I N B T A A G K M A

U R T D A A K T E A U X

Hasil penyandian (teks sandi) :

XUAET KAADT RUTNE TKIAA BTDMR NANYA MKGAA TBNIP NAOSS KIAEJ SEANP DIEAR

Penyandian Transposisi Kolom

Penyandian Transposisi Kolom dituliskan secara baris (biasa) dengan panjang yang telah ditentukan sebagai kunci-nya. Teks sandi-nya dibaca secara kolom demi kolom dengan pengacakan melalui permutasian angka kuncinya. Panjang baris dan permutasian kolomnya disebut sebagai “kata kunci”.

Dalam prosesnya, kata kunci tersebut didefinisikan dahulu dengan angka sesuai urutan abjad. Sedangkan proses untuk mengembalikan ke teks sandi ke teks aslinya dilakukan langkah kebalikan darinya.

Lebih mudahnya dapat dilihat dalam contoh berikut :

Teks pesan asli :

TENTUKAN PRIORITAS ANDA SEBAB KITA TIDAK DAPAT MENGERJAKAN SEMUANYA X.

Kata kunci : PELIKAN yang berarti 7 kolom

Proses :

PELIKAN didefinisikan sesuai urutan abjad menjadi 7 2 5 3 4 1 6

7 2 5 3 4 1 6

T E N T U K A

N P R I O R I

T A S A N D A

S E B A B K I

T A T I D A K

D A P A T M E

N G E R J A K

A N S E M U A

N Y A X

Hasil penyandian (teks sandi) :

KRDKA MAUEP AEAAG NYTIA AIARE XUONB DTJMN RSBTP ESAAI AIKEK ATNTS TDNAN

Penyandian Transposisi Ganda

Penyandian transposisi ganda adalah metode penyandian transposisi kolom yang dilakukan dua kali. Dua kali proses penyandian ini dilakukan untuk mempersulit upaya pemecahan teks sandi transposisi kolom yang biasanya dapat dengan mudah dilakukan dengan metode anagram.

Proses penyandian yang kedua ini bisa menggunakan kunci yang sama atau dua kunci yang berbeda.

Sebagai contoh ditetapkan kunci kedua yang berbeda yaitu GERHANA; terhadap teks sandi pertama : KRDKA MAUEP AEAAG NYTIA AIARE XUONB DTJMN RSBTP ESAAI AIKEK ATNTS TDNAN

Proses :

GERHANA didefinisikan sesuai urutan abjad menjadi 4 3 7 5 1 6 2

4 3 7 5 1 6 2

K R D K A M A

U E P A E A A

G N Y T I A A

I A R E X U O

N B D T J M N

R S B T P E S

A A I A I K E

K A T N T S T

D N A N

Hasil penyandian (teks sandi) :

AEIXJ PITAA AONSE TRENA BSAAN KUGIN RAKDK ATETT ANNMA AUMEK SDPYR DBITA

Selama perang dunia I dan II, metode penyandian transposisi ganda ini digunakan oleh beberapa negara sebagai metode penyandian terhadap pesan-pesan rahasia yang dikomunikasikan.

Penyandian Transposisi Myszkowski

Émile Victor Théodore Myszkowski di tahun 1902 memperkenalkan variasi dari metode penyandian transposisi kolom, yang dibedakan dalam pendefinisian dan permutasian kata kunci-nya.

Dalam metode penyandian transposisi kolom, kata kunci misalnya BOROBUDUR di definisikan menjadi 1 4 6 5 2 8 3 9 7; sedangkan dalam metode Myszkowski menjadi 1 3 4 3 1 5 2 5 4

Teks sandinya dibaca secara urutan nomor kolom, bila nomor urut kolomnya sama dibaca secara bersamaan dimulai dari sebelah kiri.

Lebih mudahnya dapat dilihat dalam contoh berikut :

Teks pesan asli :

TENTUKAN PRIORITAS ANDA SEBAB KITA TIDAK DAPAT MENGERJAKAN SEMUANYA X.

Kata kunci : BOROBUDUR yang berarti 9 kolom

Proses :

BOROBUDUR didefinisikan sesuai urutan abjad menjadi 1 3 4 3 1 5 2 5 4

1 3 4 3 1 5 2 5 4

T E N T U K A N P

R I O R I T A S A

N D A S E B A B K

I T A T I D A K D

A P A T M E N G E

R J A K A N S E M

U A N Y A X

Hasil penyandian (teks sandi) :

TURIN EIIAM RAUAA AAANS ETIRD STTPT JKNYN POAAK ADAEA MNKNT SBBDK EGNEX

Untuk mempersulit pemecahan sandi oleh para kriptoanalisa, maka biasanya metode penyandian transposisi dikombinasikan dengan metode penyandian substitusi

Metode untuk menghasilkan chipertext

Cipher Aliran (Stream Chiper)

· Chiper aliran merupakan salah satu tipe algoritma kriptografi kriptografi simetri.

· Chiper aliran mengenkripsikan plainteks menjadi chiperteks bit per bit (1 bit setiap kali transformasi).

Catatan: Variasi chiper aliran lainnya adalah mengenkripsikan plainteks menjadi chiperteks karakter per karakter atau kata per kata, misalnya pada Vigenere Cipher dan one-time pad chiper.

· Cipher aliran pertama kali diperkenalkan oleh Vernam melalui algoritmanya yang dikenal dengan nama Vernam Cipher.

Vernam cipher diadopsi dari one-time pad cipher, yang dalam hal ini karakter diganti dengan bit (0 atau 1). Cipherteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit plainteks dengan satu bit kunci:

ci = (pi + ki) mod 2 (6.3)

yang dalam hal ini,

pi : bit plainteks

ki : bit kunci

ci : bit cipherteks

· Plainteks diperoleh dengan melakukan penjumlahan modulo 2 satu bit cipherteks dengan satu bit kunci:

pi = (ciki) mod 2 (6.4)

· Dengan kata lain, Vernam cipher adalah versi lain dari one-time pad cipher

· Oleh karena operasi penjumlahan modulo 2 identik dengan operasi bit dengan operator XOR, maka persaman (6.3) dapat ditulis sebagai

ci = pi Å ki (6.5)

dan proses deksripsi menggunakan persamaan

pi = ci Å ki (6.6)

· Pada cipher aliran, bit hanya mempunyai dua buah nilai, sehingga proses enkripsi hanya menyebabkan dua keadaan pada bit tersebut: berubah atau tidak berubah. Dua keadaan tersebut ditentukan oleh kunci enkripsi yang disebut aliran-bit-kunci (keystream).

· Aliran-bit-kunci dibangkitkan dari sebuah pembangkit yang dinamakan pembangkit aliran-bit-kunci (keystream generator). Aliran-bit-kunci (sering dinamakan running key) di-XOR-kan dengan aliran bit-bit plainteks, p1, p2, …, pi, untuk menghasilkan aliran bit-bit cipherteks:

ci = pi Å ki

· Di sisi penerima, bit-bit cipherteks di-XOR-kan dengan aliran-bit-kunci yang sama untuk menghasilkan bit-bit plainteks:

pi = ci Å ki

karena

ci Å ki = (pi Å ki) Å ki = pi Å (ki Å ki) = pi Å 0 = pi

Catatlah bahwa proses enkripsi dua kali berturut-turut menghasilkan kembali plainteks semula


Contoh: Misalkan plainteks adalah

1100101

dan aliran-bit-kunci adalah

1000110

maka cipherteks yang dihasilkan adalah

0100011

yang mana diperoleh dengan meng-XOR-kan bit-bit plainteks dengan bit-bit aliran-kunci pada posisi yang berkoresponden.

· Keamanan sistem cipher aliran bergantung seluruhnya pada pembangkit aliran-bit-kunci. Jika pembangkit mengeluarkan aliran-bit-kunci yang seluruhnya nol, maka cipherteks sama dengan plainteks, dan proses enkripsi menjadi tidak artinya.

· Jika pembangkit mengeluarkan aliran-bit-kunci dengan pola 16-bit yang berulang, maka algoritma enkripsinya menjadi sama seperti enkripsi dengan XOR sederhana yang memiliki tingkat kemanan yang tidak berarti.

· Jika pembangkit mengeluarkan aliran-bit-kunci yang benar-benar acak (truly random), maka algoritma enkripsinya sama dengan one-time pad dengan tingkat keamanan yang sempurna. Pada kasus ini, aliran-bit-kunci sama panjangnya dengan panjang plainteks, dan kita mendapatkan cipher aliran sebagai unbreakable cipher.

· Tingkat keamanan cipher aliran terletak antara algoritma XOR sederhana dengan one-time pad. Semakin acak keluaran yang dihasilkan oleh pembangkit aliran-bit-kunci, semakin sulit kriptanalis memecahkan cipherteks.

Pembangkit aliran-bit-kunci (Keystream Generator)

· Pembangkit bit-aliran-kunci dapat membangkitkan bit-aliran-kunci berbasis bit per bit atau dalam bentuk blok-blok bit. Untuk yang terakhir ini, cipher blok dapat digunakan untuk untuk memperoleh cipher aliran.

· Untuk alasan praktis, pembangkit bit-aliran-kunci diimplementasikan sebagai prosedur algoritmik, sehingga bit-aliran-kunci dapat dibangkitkan secara simultan oleh pengirim dan penerima pesan.

· Prosedur algoritmik tersebut menerima masukan sebuah kunci U. Keluaran dari prosedur merupakan fungsi dari U (lihat Gambar 6.2). Pembangkit harus menghasilkan bit-aliran-kunci yang kuat secara kriptografi.

· Karena pengirim dan penerima harus menghasilkan bit-aliran-kunci yang sama , maka keduanya harus memiliki kunci U yang sama. Kunci U ini harus dijaga kerahasiaanya.

· Cipher aliran menggunakan kunci U yang relatif pendek untuk membangkitkan bit-aliran-kunci yang panjang.

Contoh: Misalkan U adalah kunci empat-bit yang dipilih sembarang, kecuali 0000. Bit-aliran-kunci yang dibangkitkan akan berulang setiap 15 bit. Misalkan

U = 1111

Barisan bit-bit aliran-kunci diperoleh dengan meng-XOR-kan bit pertama dengan bit terakhir dari empat bit sebelumnya, sehingga menghasilkan:

111101011001000

dan akan berulang setiap 15 bit.

Secara umum, jika panjang kunci U adalah n bit, maka bit-aliran-kunci tidak akan berulang sampai 2n – 1 bit.

· Karena U adalah besaran yang konstan, maka bit-aliran-kunci yang dihasilkan pada setiap lelaran tidak berubah jika bergantung hanya pada U.

· Ini berarti pembangkit bit-aliran-kunci tidak boleh mulai dengan kondisi awal yang sama supaya tidak menghasilkan kembali bit-aliran-kunci yang sama pada setiap lelaran.

Oleh karena itu, beberapa pembangkit bit-aliran-kunci menggunakan besaran vektor inisialisasi atau umpan (seed), disimbolkan dengan Z, agar diperoleh kondisi awal yang berbeda pada setiap lelaran

· Dengan demikian, bit-aliran-kunci K dapat dinyatakan sebagai hasil dari fungsi g dengan parameter kunci U dan masukan umpan Z:

K = gK(Z)

sehingga proses enkripsi dan dekripsi didefinisikan sebagai

C = P Å K = P Å gK(Z)

P = C Å K = C Å gK(Z)

· Nilai Z yang berbeda-beda pada setiap lelaran menghasilkan bit-aliran-kunci yang berbeda pula.

· Merancang pembangkit bit-aliran-kunci yang bagus cukup sulit karena membutuhkan pengujian statistik untuk menjamin bahwa keluaran dari pembangkit tersebut sangat mendekati barisan acak yang sebenarnya.

Serangan Terhadap Cipher Aliran

· Serangan yang dapat dilakukan oleh kriptanalis terhadap cipher aliran adalah:

1. Known-plaintext attack

Misalkan kriptanalis memiliki potongan plainteks (P) dan cipherteks (C) yang berkoresponden, maka ia dapat menemukan bagian bit-aliran-kunci (K) yang berkoresponden dengan meng-XOR-kan bit-bit plainteks dan cipherteks:

P Å C = P Å (P Å K) = (P Å P) Å K = 0 Å K = K

2. Ciphertext-only attack

Misalkan kriptanalis memiliki dua potongan cipherteks berbeda (C1 dan C2) yang dienkripsi dengan bit-aliran-kunci yang sama. Ia meng-XOR-kan kedua cipherteks tersebut dan memperoleh dua buah plainteks yang ter-XOR satu sama lain:

C1 Å C2 = (P1 Å K ) Å (P2 Å K)

= (P1 Å P2 ) Å (K Å K)

= (P1 Å P2 ) Å 0

= (P1 Å P2 )

P1 dan P2 dapat diperoleh dengan mudah. Selanjutnya, XOR-kan salah satu plainteks dengan cipherteksnya untuk memperoleh bit-aliran-kunci K yang berkoresponden:

P1 Å C1 = P1 Å (P1 Å K) = K

· Pesan dari dua serangan di atas adalah: pengguna cipher aliran harus mempunyai bit-aliran-kunci yang tidak dapat diprediksi sehingga mengetahui sebagian dari bit-aliran-kunci tidak memungkinkan kriptanalis dapat mendeduksi bagian sisanya.

Aplikasi Cipher Aliran

· Cipher aliran cocok untuk mengenkripsikan aliran data yang terus menerus melalui saluran komunikasi, misalnya:

1. Mengenkripsikan data pada saluran yang menghubungkan antara dua buah komputer.

2. Mengenkripiskan suara digital pada jaringan telepon mobile GSM.

Alasannya, jika bit cipherteks yang diterima mengandung kesalahan, maka hal ini hanya menghasilkan satu bit kesalahan pada waktu dekripsi, karena tiap bit plainteks ditentukan hanya oleh satu bit cipherteks. Kondisi ini tidak benar untuk cipher blok karena jika satu bit cipherteks yang diterima mengandung kesalahan, maka kesalahan ini akan merambat pada seluruh blok bit plainteks hasil dekripsi (error propagation).





1 Komentar:

Pada 28 April 2009 pukul 11.25 , Anonymous Anonim mengatakan...

wah lengkap banget jenis-jenis kriptografinya :)

 

Posting Komentar

Berlangganan Posting Komentar [Atom]

<< Beranda