sistem kriptografi klasik berbasis substitusi

Upload: yeniseptiana

Post on 16-Oct-2015

130 views

Category:

Documents


1 download

TRANSCRIPT

TUGASDesain dan Analisis Keamanan Jaringan

SANDI-SANDI KRIPTOGRAFI KLASIK SUBSTITUSI

YENI SEPTIANA

1102640PEND.TEKNIK INFORMATIKA DAN KOMPUTER

FAKULTAS TEKNIK

UNIVERSITAS NEGERI PADANG

2014

SISTEM KRIPTOGRAFI KLASIK SUBSTITUSI1. Sandi Caesar Chipper

Dalam kriptografi, sandi Caesar, atau sandi geser, kode Caesar atau Geseran Caesar adalah salah satu teknik enkripsi paling sederhana dan paling terkenal. Sandi ini termasuk sandi substitusi dimana setiap huruf pada teks terang (plaintext) digantikan oleh huruf lain yang memiliki selisih posisi tertentu dalam alfabet. Nama Caesar diambil dari Julius Caesar, jenderal, konsul, dan diktator Romawi yang menggunakan sandi ini untuk berkomunikasi dengan para panglimanya.Model sandi ini memiliki 26 perbedaan sandi yang terdiri dari setiap huruf alfabet yang ada. ROT1 adalah salah satu model sandi Caesar Shift Cipher.Kegunaan sandi ini adalah untuk menguraikan pesan yang dirahasiakan. Sebagai ilustrasi, bila sandi G digunakan maka alfabet 'A' menjadi 'G', 'B' menjadi 'H', 'C' menjadi 'I', dan begitu seterusnya pada alfabet lainnya. Jika sandi Y digunakan maka 'A' menjadi 'Y', 'B' menjadi 'Z', 'C' menjadi 'A', dan seterusnya. Namun sandi ini tidak dipakai untuk melindungi suatu pesan rahasia kerajaan, karena waktu yang dihabiskan untuk memecahkan sandi tersebut sangatlah cepat dengan mencococokan setiap 26 kode sandi yang ada. Sandi ini dipakai untuk dasar menciptakan sandi yg lebih kompleks lagi. Sandi Caesar mengganti setiap huruf di teks terang (plaintext) dengan huruf yang berselisih angka tertentu dalam alfabet Tiap huruf alfabet digeser 3 huruf ke kanan.

pi : 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

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

Plainteks: AWASI ASTERIX DAN TEMANNYA OBELIX

Cipherteks: DZDVL DVWHULA GDQ WHPDQQBA REHOLA

2. Sandi SubstitusiMetode 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.

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 :

1) 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

2) 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

3) 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

4) 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

5) 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 :

1. Pada saat itu, digunakan untuk menekan biaya transmisi telegram;

2. Memudahkan dalam mengecek kesalahan saat ditransmisikan;

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

3. Sandi Transposisi

1) Cipher Transposisi (Transposition Ciphers)

Pada chiper transposisi, plainteks tetap sama, tetapi urutannya diubah. Dengan kata lain, algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Nama lain untuk metode ini adalah permutasi, karena transpose setiap karakter di dalam teks sama dengan mempermutasikan karakter-karakter tersebut.ContohPOLIT

EKNIK

TELKO

MBAND

UNG

Buatlah ekripsi dari POLITEKNIK TELKOM BANDUNG

Solusi

Untuk meng-enkripsi pesan, plainteks ditulis secara horizontal dengan lebar kolom tetap, misal selebar 5 karakter (kunci k = 5): (

Maka chiperteksnya dibaca secara vertikal menjadi: PETMUOKEBNLNLAGIIKNTKOD

4. Sandi Vigenere

a. Vignere Cipher

Termasuk ke dalam cipher abjad-majemuk (polyalpabetic substitution cipher ).

Algoritma tersebut baru dikenal luas 200 tahun kemudian yang oleh penemunya cipher tersebut kemudian dinamakan Vignere Cipher.

Vignere Cipher menggunakan Bujursangkar Vignere untuk melakukan enkripsi.

Setiap baris di dalam bujursangkar menyatakan huruf-huruf cipherteks yang diperoleh dengan Caesar Cipher (A = 0, B = 1, C = 2, ., Z = 25)

ABCDEFGHIJKLM

0123456789101112

NOPQRSTUVWXYZ

13141516171819202122232425

Dengan menggunakan bujur sangkar Vignere maka kita dapat menentukan ciperteks dari plainteks dengan menggunakan kunci tertentu. Jika kuncinya lebih pendek daripada plainteksnya maka tulis kunci tesebut secara berulang.Contoh:

Buatlah sandi (enkripsi) dengan dari kata POLTEK dengan Kunci HRO menggunakan Vignere Cipher!

Solusi:

Dari tiap-tiap huruf di plaintext, kita pasangkan satu-satu secara berurutan dengan kuncinya, karena kuncinya cuma 3 karakter, sedangkan plaintextnya lebih dari itu, berarti kuncinya kita ulang hingga sesuai dengan panjang plaintextnya.

PlaintextPOLTEK

KunciHROHRO

Proses berikutnya, kita ubah kunci nya jadi index hurufnya, yang nantinya akan kita tambahkan ke index plaintextnya (A=0, Z=25):

1PlaintextPOLTEK

2Index Palintext15141119410

3KunciHROHRO

4Index Kunci7171471714

5(Plaintext + Kunci) Mod 262252502124

6CiphertextWFZAVY

Jadi, kata enkripsi dari POLTEK dengan kunci HRO adalah WHFZAVY

Untuk mengecek bawa hasi; enkripsinya adalah benar maka lakukan proses Deskripsinya, yaitu

1CiphertextWFZAVY

2Index Ciphertext2252502124

3KunciHROHRO

4Index Kunci7171471714

5(Ciphertext - Kunci) Mod 2615141119410

6CiphertextPOLTEK

5. Sandi Afine

Merupakan algoritma monoalphabetic substitution chiper, menggunakan metode fungsi matematika tertentu untuk menyandikan karakter.

Algoritma EnkripsiE(x) = (ax + b) mod mAlgortima DekripsiD(x) = a-1(x b) mod mKetentuan:a dan b adalah kunci sandim adalah jumlah seluruh karakter yang akan disandikan (dalam hal ini abjad 26).a dan m harus coprimeCara menentukkan a dan m coprime1 = a . a-1 mod mContoh:a = 5 dan m =265x = 1 mod 26a-1 = 21jadi a dan m coprimea. Enkripsi

Disini kita meng-enkrispsi teks AFFINECIPHER a = 5 dan b = 8

plaintext:AFFINECIPHER

x:055813428157417

(5x+8)83333487328184883432893

(5x+8) mod 26877222121822517215

ciphertext:IHHWVCSWFRCP

X disini adalah urutan alfabet dimulai dari nol.

b. Deskripsiciphertext:IHHWVCSWFRCP

y:877222121822517215

21(y-8):0-21-21294273-126210294-63189-126147

(21(y-8)) mod 26:055813428157417

plaintext:AFFINECIPHER

6. Sandi Hill

Hill Cipher merupakan salah satu algoritma kriptografi kunci simetris. Algoritma Hill Cipher menggunakan matriks berukuran m x m sebagai kunci untuk melakukan enkripsi dan dekripsi. Dasar teori matriks yang digunakan dalam Hill Cipher antara lain adalah perkalian antar matriks dan melakukan invers pada matriks.Hill Cipher diciptakan oleh Lester S. Hill pada tahun 1929 [2]. Teknik kriptografi ini diciptakan dengan maksud untuk dapat menciptakan cipher (kode) yang tidak dapat dipecahkan menggunakan teknik analisis frekuensi. Hill Cipher tidak mengganti setiap abjad yang sama pada plaintext dengan abjad lainnya yang sama pada ciphertext karena menggunakan perkalian matriks pada dasar enkripsi dan dekripsinya.Hill Cipher yang merupakan polyalphabetic cipher dapat dikategorikan sebagai block cipher karena teks yang akan diproses akan dibagi menjadi blokblok dengan ukuran tertentu. Setiap karakter dalam satu blok akan saling mempengaruhi karakter lainnya dalam proses enkripsi dan dekripsinya, sehingga karakter yang sama tidak dipetakan menjadi karakter yang sama pula.Hill Cipher termasuk kepada algoritma kriptografi klasik yang sangat sulit dipecahkan oleh kriptanalis apabila dilakukan hanya dengan mengetahui berkas ciphertext saja. Namun, teknik ini dapat dipecahkan dengan cukup mudah apabila kriptanalis memiliki berkas ciphertext dan potongan berkas plaintext. Teknik kriptanalisis ini disebut known-plaintext attack.

Dasar Teknik Hill Cipher

Dasar dari teknik Hill Cipher adalah aritmatika modulo terhadap matriks. Dalam penerapannya, Hill Cipher menggunakan teknik perkalian matriks dan teknik invers terhadap matriks. Kunci pada Hill Cipher adalah matriks n x n dengan n merupakan ukuran blok. Matriks K yang menjadi kunci ini harus merupakan matriks yang invertible, yaitu memiliki inverse K-1 sehingga :

Kunci harus memiliki invers karena matriks K-1 tersebut adalah kunci yang digunakan untuk melakukan dekripsi.

Teknik Enkripsi pada Hill Cipher

Proses enkripsi pada Hill Cipher dilakukan per blok plaintext. Ukuran blok tersebut sama dengan ukuran matriks kunci. Sebelum membagi teks menjadi deretan blok-blok, plaintext terlebih dahulu dikonversi menjadi angka, masing-masing sehingga A=1, B=2, hingga Y=25. Z diberi nilai 0.

Tabel 1: Konversi Alfabet ke Angka dalam Hill Cipher

Secara matematis, proses enkripsi pada Hill Cipher adalah: C = K . P (2)

C = CiphertextK = Kunci

P = Plaintext Jika terdapat plaintext P: P = STRIKE NOW Maka plaintext tersebut dikonversi menjadi:

P = 19 20 18 9 11 5 14 15 23

Plaintext tersebut akan dienkripsi dengan teknik HillCipher, dengan kunci K yang merupakan matriks 22.

Karena matriks kunci K berukuran 2, maka plaintext dibagi menjadi blok yang masing-masing bloknya berukuran 2 karakter. Karena karakter terakhir tidak ada memiliki pasangan, maka diberi pasangan karakter yang sama yaitu W. P menjadi STRIKENOWW. Blok pertama dari plaintext P adalah :

Blok plaintext ini kemudian dienkripsi dengan kunci K melalui persamaan (2).

Hasil perhitungan menghasilkan angka yang tidak berkorespondensi dengan huruf-huruf, maka lakukan modulo 26 pada hasil tersebut. Sehingga, C1,2 menjadi:

Karakter yang berkorespondensi dengan 7 dan 20 adalah G dan T. maka S menjadi G dan T menjadi T. Setelah melakukan enkripsi semua blok pada plaintext P maka dihasilkan ciphertext C sebagai berikut:

P = STRIKENOW

C = 7 20 14 11 7 11 4 21 19 11

C = GTNKGKDUSK

Dari ciphertext yang dihasilkan terlihat bahwa Hill Cipher menghasilkan ciphertext yang tidak memiliki pola yang mirip dengan plaintextnya. Teknik Dekripsi pada Hill CipherProses dekripsi pada Hill Cipher pada dasarnya sama dengan proses enkripsinya. Namun matriks kunci harus dibalik (invers) terlebih dahulu. Secara matematis, proses dekripsi pada Hill Cipher dapat diturunkan dari persamaan (2).

Menjadi persamaan proses dekripsi:

Dengan menggunakan kunci

, maka proses dekripsi diawali dengan mencari invers dari matriks K. Mencari invers dapat dilakukan dengan menggunakan metode operasi baris (row operation) atau metode determinan [3]. Setelah melakukan perhitungan, didapat matriks K-1 yang merupakan invers dari matriks K, yaitu :

Kunci K-1 yang digunakan untuk melakukan dekripsi ini telah memenuhi persamaan (1) karena:

Ciphertext C = GTNKGKDUSK, akan didekripsi dengan menggunakan kunci dekripsi K-1 dengan persamaan (3). Proses dekripsi ini dilakukan blok per blok seperti pada proses enkripsi. Pertama-tama ubah huruf-huruf pada ciphertext menjadi urutan numerik.

C = 7 20 14 11 7 11 4 21 19 11

Proses dekripsi dilakukan sebagai berikut:

dan blok kedua:

Setelah semua blok selesai didekripsi, maka didapatkan hasil plaintext:

P = 19 20 18 9 11 5 14 15 23

P = STRIKENOW

7. Sandi One Time PadDalam dunia kriptografi dikenal sebuah metode penyandian yang sangat kuat sehingga tidak mudah dipecahkan, yaitu metodepenyandianOne Time Pad(OTP).Metode penyandian OTP pertama kali diperkenalkan oleh Gilbert Vernam dalam perang dunia pertama.MetodepenyandianOTP merupakan salah satu variasi darimetode penyandian substitusidengan cara memberikan syarat-syarat khusus terhadap kunci yang digunakan yaitu terbuat dari karakter / huruf yang acak (kunci acak ataupad), dan pengacakannya tidak menggunakan rumus tertentu. Jikakuncitersebut benar-benar acak, digunakan hanya sekali, serta terjaga kerahasiannya dengan baik, maka metode penyandian OTP ini sangat kuat dan tidak dapat dipecahkan.Dalam kriptografi klasik, yaitu kriptografi jaman dulu yang dikenal dengan sebutan kriptografi kertas dan pensil, teks sandi dari metode penyandian OTP ini diperoleh dengan menjumlahkan / mengurangkan teks aslinya terhadap kunci.Penggunaankunci ini hanya dan harus hanya sekali pakai. Sedangkan untuk mendapatkan kembali teks aslinya dilakukan pengurangan / penjumlahan teks sandi terhadap kunci tersebut, sebagai kebalikan dari proses menyandi.Untuk memudahkan dalam operasionalnya huruf-huruf diterjemahkan dahulu kedalam angka 1 sampai 26 dengan A = 1; B = 2; dst sampai Z = 26. Dan dalam perhitungan aljabarnya berupa bilangan modulus 26.Untukmemudahkanpemahaman, bisa diperhatikan contoh berikut :Kunci acak : FGHJV

Pesan yang akan disandi : DUNIA

Algoritma : Teks sandi = Teks asli + Kunci

Proses : Penjumlahan ini dengan bilangan modulus 26Kunci : F= 6 G= 7 H= 8 J=10 V =22Teks Asli/ Plaintext : D= 4 U=21 N=14 I= 9 A = 1Teks Sandi/Chippertext : (6 +4)=10=J (7+21-26)=2=B 22=V 19=S 23=WTeks sandi hasil penyandian : JBVSW

Metode penyandian OTP ini kekuatannya bertumpu pada keacakan kuncinya, sehingga kunci yang digunakan untuk proses penyandian tersebut harus dilindungi dengan baik.8. Sandi Rotor

Mesin Enigmaadalah sebuahmesin penyadi yang digunakan untuk mengeknripsikan dan mendekripsikanpesan rahasia.

KOMPONEN MESIN ENIGMAMesin Enigma terdiri dari 5 komponen utama, yaitu :

Rotor> bagian terpenting dari enigma. Berdiameter sekitar 10cm berupa piringan yang terbuat dari karet yang keras dengan deretan kuningan yang berisi pin pin yang menonjol yang berbentuk bundar. Sebuah rotor menunjukkan sebuah enkripsi yang sederhana, 1 huruf di enkripsi menjadi huruf lainnya. Hasil enkripsi akan menjadi lebih rumit jika menggunakan lebih dari 1 rotor. Penggerak Rotor> untuk menghindari chiper yang sederhana, beberapa rotor harus diputar berdasarkanpenekanan sebuah kunci. Hal ini dilakukan untuk memastikan kriptogram yang dibuat merupakan sebuah transformasi perputaran rotor yang menghasilkan poloponik chiper. Alat yang paling banyak digunakan untuk penggerakan rotor tersebut adalah mekanisme roda bergigi dan penggeraknya. Penggerak roda memutar rotor sebanyak 1 karakter ketika sebuah huruf diketikkan pada papan kunci. Reflector> digunakan untuk memstikan sebuah huruf tidak dikodekan pada dirinya sendiri dan untuk menjadikan mesin ini reversible (jika sebuah huruf dienkripsi, hasil enkripsi huruf tersebut adalah huruf semula). Reflector hanya terdiri dari 13 pasang huruf yang susunannya acak. Papan Steker>digunakan untuk menukar 2 buah huruf dan untuk meningkatkan keamanan dari pesan rahasia mesin enigma. Sebelum masuk ke proses penyandian, huruf yang telah ditentukan pertukarannya akan di ubah dipapan ini. Kotak Enigma> digunakan untuk menyimpan semua perlengkapan dari mesin ini. Biasanya kotak ini dapat menampung 10 buah rotor, papan steker, dan papan ketik.

CARA KERJA MESIN ENIGMAMesin enigma bekerja berdasarkan perputaran rotor rotor yang ada. Ketika sebuah huruf diketikkan di papan panel, urutan kerjanya :

a. Majukan rotor kanan sebanyak 1 huruf. Huruf yang diketikkan masuk ke rotor paling kanan dan pada rotor ini dicari padanan pada rotor kedua. Setelah itu masuk ke rotor kedua.

b. Pada rotor kedua, huruf hasil padanan dari rotor pertama dicari padanannya untuk rotor ketiga.

c. Pada rotor ketiga, dicari padanan untuk reflector.

d. Setelah masuk ke reflector, dicari pasangan huruf tersebut pada reflector, dan hasil pada reflector dikembalikan kepada rotor ketiga, kedua, kesatu, dan hasilnya menghasilkan huruf enkripsi.

REFERENSIhttp://atlasug.blogspot.com/2013/11/metode-enkripsi-one-time-pad-otp.htmlhttp://all-about-anime-world.blogspot.com/p/macam-macam-sandi.htmlhttp://phoenixcrimson.blogspot.com/2012/12/macam-macam-sandi.htmlhttps://maizarti.wordpress.com/category/desain-dan-analisis-keamanan-jaringan/