Algoritma Kriptografi Modern

Kriptografi ilmu yang mempelajari teknik - teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data. Secara umum, kriptografi terdiri atas dua buah bagian utama yaitu bagian enkripsi dan bagian dekripsi. Enkripsi adalah proses transformasi informasi atau plaintext menjadi bentuk lain sehingga isi pesan yang sebenarnya tidak dapat dipahami atau sering disebut ciphertext, hal ini dimaksudkan agar informasi tetap terlindung dari pihak yang tidak berhak menerima. Sedangkan dekripsi adalah proses kebalikan enkripsi, yaitu transformasi data ke data bentuk semula Gambaran umum proses enkripsi dan dekripsi ditunjukkan oleh gambar berikut.

Gambar 1. Proses enkripsi dan deskripsi

Algoritma kriptografi modern umumnya beroperasi dalam mode bit ketimbang mode karakter (seperti yang dilakukan pada cipher substitusi atau cipher transposisi dari algoritma kriptografi klasik).Operasi dalam mode bit berarti semua data dan informasi (baik kunci, plainteks, maupun cipherteks) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1. Algoritma enkripsi dan dekripsi memproses semua data dan informasi dalam bentuk rangkaian bit. Rangkaian bit yang menyatakan plainteks dienkripsi menjadi cipherteks dalam bentuk rangkaian bit, demikian sebaliknya.

Enkripsi modern berbeda dengan enkripsi konvensional. Enkripsi modern sudah menggunkan komputer untuk pengoperasiannya, berfungsi untuk mengamankan data baik yang ditransfer melalui jaringan komputer mauapun yang bukan. Hal ini sangat berguna untuk melindungi privacy , data integrity, authentication dan non-repudiation. Perkembangan algoritma kriptografi modern berbasis bit didorong oleh penggunaan komputer digital yang merepresentasikan data dalam bentuk biner.

Macam-macam Algoritma kriptografi modern

Kriptografi modern merupakan suatu perbaikan yang mengacu pada kriptografi klasik. Pada kriptogarfi modern terdapat berbagai macam algoritma yang dimaksudkan untuk mengamankan informasi yang dikirim melalui jaringan komputer. Algoritma kriptografi modern terdiri dari tiga bagian:

1. Algoritma Simetris

Algoritma simetris adalah algoritma yang menggunakan kunci yang sama untuk enkripsi dan dekripsinya. Algoritma kriprografi simetris sering disebut algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu. Kelebihan dari algoritma kriprografi simetris adalah waktu proses untuk enkripsi dan dekripsi relatif cepat. Hal ini disebabkan efesiensi yang terjadi pada pembangkit kunci. Karena prosesnya relative cepat maka algoritma ini tepat untuk digunakan pada sistem komunikasi digital secara real timeseperti GSM.

Contoh Alice ingin mengirim pesan x dengan aman menggunakan saluran umum kepada Bob. Alice menggunakan kunci xƠ yang sebelumnya telah disepakati antara Alice dan Bob. Untuk mengirim pesan e xƠ (x) kepada Bob, dia akan deskripsi teks kode yang diterima dengan kunci yang sama dengan yang digunakan untuk memperoleh akses ke pesan yang diterima. Begitu juga sebaliknya.

Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma di bawah ini:

  1. Data Encryption Standard (DES)
  2. Advance Encryption Standard (AES)
  3. International Data Encryption Algoritma (IDEA)
  4. A5
  5. RC4

1. A

2. Algoritma Asimetris

Algoritma Asimetris adalah pasangan kunci kriptografi yang salah satunya digunakan untuk proses enkripsi dan satu lagi lagi deskripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsi suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia itu, yang dalam hal ini kunci rahasia, untuk melakukan pembongkaran terhadap kode yang dikirim untuknya. Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dari nama penemunya, yakni Rivest, Shamir dan Adleman).

3. Algoritma Hibrida

Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci, yaitu kunci rahasia (simetri) – yang disebut juga session key (kunci sesi) – untuk enkripsidata dan pasangan kunci rahasia – kunci publik untuk pemberian tanda tangan digital serta melindungi kunci simetri.

Gambar 3. Algoritma Hibrida

Algoritma kriptografi yang beroperasi dalam mode bit dapat dikelompokkan menjadi dua kategori:

1. Cipher aliran (stream cipher)

Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk bit tunggal, yang dalam hal ini rangkaian bit dienkripsikan/didekripsikan bit per bit. Stream chiper atau stream encryption merupakan suatu teknik enkripsi data dengan cara melakukan transformasi dari tiap bit secara terpisah berdasarkan posisi tiap bit dalam aliran data yang biasanya dikendalikan menggunakan operasi XOR. Enkripsi aliran data merupakan hasil dari operasi XOR antara setiap bit plaintext dengan setiap bit kuncinya. Pada stream chiper bila terjadi kesalahan selama transmisi maka kesalahan pada teks enkripsi penerima akan terjadi tepat di tempat kesalahan tersebut terjadi. Dalam praktek pertimbangan kesalahan yang mungkin terjadi sangatlah penting untuk penentuan teknik enkripsi yang akan digunakan.

2. Cipher blok (block cipher)

Algoritma kriptografi beroperasi pada plainteks/cipherteks dalam bentuk blok bit, yang dalam hal ini rangkaian bit dibagi menjadi blok-blok bit yang panjangnya sudah ditentukan sebelumnya.

Misalnya panjang blok adalah 64 bit, maka itu berarti algoritma enkripsi memperlakukan 8 karakter setiap kali penyandian (1 karakter = 8 bit dalam pengkodean ASCII).

Rangkaian bit

* Rangkaian bit yang dipecah menjadi blok-blok bit dapat ditulis dalam sejumlah cara bergantung pada panjang blok.

Contoh: Plainteks 100111010110 dibagi menjadi blok bit yang panjangnya 4 menjadi

1001 1101 0110

Setiap blok menyatakan bilangan bulat dari 0 sampai 15, yaitu 9 13 6

Bila plainteks dibagi menjadi blok-blok yang berukuran 3 bit, maka rangkaian bit di atas menjadi:

100 111 010 110

Setiap blok menyatakan bilangan bulat dari 0 sampai 7, yaitu 4 7 2 6

Bila panjang rangkaian bit tidak habis dibagi dengan ukuran blok yang ditetapkan, maka blok yang terakhir ditambah dengan bit-bit semu yang disebut padding bits.

Misalnya rangkaian bit di atas dibagi menjadi blok 5-bit menjadi

10011 10101 00010

Blok yang terakhir telah ditambahkan 3 bit 0 di bagian awal (dicetak tebal) agar ukurannya menjadi 5 bit. Padding bits dapat mengakibatkan ukuran plainteks hasil dekripsi lebih besar daripada ukuran plainteks semula.

* Cara lain untuk menyatakan rangkaian bit adalah dengan notasi heksadesimal (HEX). Rangkaian bit dibagi menjadi blok yang berukuran 4 bit dengan representasi dalam HEX adalah: 0000 = 0 0001 = 1 0010 = 2 0011 = 3

0100 = 4 0101 = 5 0011 = 6 0111 = 7

1000 = 8 1011 = 9 1010 = A 1011 = B

1100 = C 1101 = D 1101 = E 1111 = F

Misalnya, plainteks 100111010110 dibagi menjadi blok bit yang panjangnya 4 menjadi

1001 1101 0110

yang dalam notasi HEX adalah 9 D 6

Operator XOR

* Operator biner yang sering digunakan dalam cipher yang yang beroperasi dalam mode bit adalah XOR atau exclusive-or.

* Notasi matematis untuk opeartor XOR adalah (dalam Bahas C, operator XOR dilambangkan dengan ^).

* Operator XOR diperasikan pada dua bit dengan aturan sebagai berikut:

0 0 = 0

0 1 = 1

1 0 = 1

1 1 = 0

* Operator XOR identik dengan penjumlahan modulo 2.

Misalkan a, b, dan c adalah peubah Boolean. Hukum-hukum yang terkait dengan operator XOR:

(i) a a=0

(ii) a b = b a (Hukum komutatif)

(iii) a (b c) = (a b) c (Hukum asosiatif)

* Jika dua rangkaian dioperasikan dengan XOR, maka operasinya dilakukan dengan meng-XOR-kan setiap bit yang berkoresponden dari kedua ramngkaian bit tersebut.

Contoh: 10011 11001 = 01010

yang dalam hal ini, hasilnya diperoleh sebagai berikut:

1 0 0 1 1

1 1 0 0 1

1 1 0 1 0 0 1 0 1 1

0 1 0 1 0

* Algoritma enkripsi sederhana yang menggunakan XOR adalah dengan meng-XOR-kan plainteks (P) dengan kunci (K) menghasilkan cipherteks:

C = P K (6.1)

Karena meng-XOR-kan nilai yang sama dua kali menghasilkan nilai semula, maka proses dekripsi menggunakan persamaan:

P = C K (6.2)

Contoh: plainteks 01100101 (karakter ‘e’)

kunci 00110101 (karakter ‘5’)

cipherteks 01010000 (karakter ‘P’)

kunci 00110101 (karakter ‘5’)

plainteks 01100101 (karakter ‘e’)

* Program komersil yang berbasis DOS atau Macintosh menggunakan algoritma XOR sederhana ini. Sayangnya, algoritma XOR sederhana tidak aman karena cipherteksnya mudah dipecahkan.

Cara memecahkannya adalah sebagai berikut (asumsi: panjang kunci adalah sejumlah kecil byte):

Ø Cari panjang kunci dengan prosedur counting coincidence sbb: XOR-kan cipherteks terhadap dirinya sendiri setelah digeser sejumlah byte, dan hitung jumlah byte yang sama. Jika pergeseran itu kelipatan dari panjang kunci (yang tidak diketahui), maka 6% dari byte akan sama. Jika tidak, maka 0.4% akan sama. Angka persentase ini disebut index of coincidence. Pergeseran terkecil mengindikasikan panjang kunci yang dicari.

Ø Geser cipherteks sejauh panjang kunci dan XOR-kan dengan dirinya sendiri. Operasi ini menghasilkan plainteks yang ter-XOR dengan plainteks yang digeser sejauh panjang kunci tersebut.Cari panjang kunci dengan prosedur counting coincidence sbb: XOR-kan cipherteks terhadap dirinya sendiri setelah digeser sejumlah byte, dan hitung jumlah byte yang sama. Jika pergeseran itu kelipatan dari panjang kunci (yang tidak diketahui), maka 6% dari byte akan sama. Jika tidak, maka 0.4% akan sama. Angka persentase ini disebut index of coincidence. Pergeseran terkecil mengindikasikan panjang kunci yang dicari.

Ø Geser cipherteks sejauh panjang kunci dan XOR-kan dengan dirinya sendiri. Operasi ini menghasilkan plainteks yang ter-XOR dengan plainteks yang digeser sejauh panjang kunci tersebut.

REFERENSI:

1. http://books.google.co.id/books?id=3SSTJONEmX0C&pg=PA108&lpg=PA108&dq=kriptografi+modern+simetris&source=bl&ots=ufJHtclFsA&sig=V4UdPiKHi

2. http://www.ittelkom.ac.id/library/index.php?view=article&catid=15:pemrosesan-sinyal&id=100:algoritma-kriptografi-simetris&option=com_content&Itemi

3. http://118.98.212.211/pustakamaya/files/disk1/2/ict-100-1001--edifaisal-90-8-07-algor-n.pdf

4. http://swelandiah.staff.gunadarma.ac.id/Downloads/files/16338/Bab+2+Kripto.ppt

4 komentar:

denBoedhi mengatakan...

gw lagi bingung nih mbak...suruh bikin encrypt pakai XOR...bisa kasih conto programmnya ga....maklum background ane manajemen....

Budi

partitur musik klasik mengatakan...

makasih sudah membantu nayri referensi tugas kuliah

Rwang Inspirasi mengatakan...

ane beri referensi menarik yang berhubungan dengan stream cipher gan :)

http://zonangopi.blogspot.com/2016/02/aplikasi-sistem-keamanan-basis-data-dengan-teknik-kriptografi-rc4-stream-cipher.html

Arfian Hidayat mengatakan...

ini referensi yang bisa saya berikan, semoga membantu
http://arfianhidayat.com/algoritma-kriptografi-vigenere-cipher

Posting Komentar

Silahkan berkomentar apa saja ttg blogku.
Please jangan anonim**