Algoritma Kriptografi Klasik
Pada algoritma klasik, diterapkan teknik enkripsi konvensional (simetris). Algoritma ini merupakan algoritma kriptografi yang biasa digunakan orang sejak berabad-abad yang lalu. Dua teknik dasar yang biasa digunakan, yaitu :
1. Teknik Subsitusi
2. Teknik Transposisi
1. Teknik Subsitusi
Subsitusi adalah penggantian setiap karakter plaintext dengan karakter lain. Beberapa istilah yang mungkin perlu diingat adalah :
a. Monoalfabet : Setiap karakter ciphertext mengganti satu macam karakter plaintext tertentu.
b. Polyalfabet : Setiap karakter ciphertext dapat mengganti lebih dari satu karakter plaintext.
c. Monograf / unilateral : Satu enkripsi dilakukan terhadap satu karakter plaintext.
d. Polygraf / multilateral : Satu enkripsi dilakukan terhadap lebih dari satu karakter plaintext sekaligus.
Cipher subsitusi paling tua yang dikenal adalah subsitusi yang dilakukan Julius Caesar. Beberapa teknik subsitusi yang pernah dilakukan, antara lain : [KUR04]
a. Subsitusi deret campuran kata kunci yaitu subsitusi yang kata kuncinya didapat dari mengumpulkan karakter yang sama dari sebuah plaintext dan pada ciphertextnya ditambahkan semua sisa karakter dalam abjad.
b.bSubsitusi monomer-dinome-trinome. Monome berarti setiap satu karakter plaintext akan disubsitusi oleh satu karakter ciphertext, dinome disubsitusi dua karakter ciphertext, tridome disubsitusi tiga karakter ciphertext. Jadi sistem ini adalah campuran dari ketiga sistem dasar.
c. Subsitusi multilateral variant. Subsitusi ini masih termasuk jenis monoalfabet yang dalam mensubsitusi memanfaatkan huruf abjad a,b,c,…,z yang disusun dalam matrik 5 X 5.
d. Subsitusi digrafik. Pada sistem ini, setiap huruf plaintext akan disubsitusi oleh dua huruf ciphertext. Pola huruf cipher text diambil dari sebuah matrik 26 X 26 yang berasal dari 26 abjad yang memiliki pola khusus.
e. Subsitusi persegi panjang. Sistem digrafik terlalu memerlukan matrik yang besar. Untuk memperkecil matrik dengan keamanan yang setara dapat digunakan sistem empat persegi.
f. Subsitusi kode playfair. Kode rahasia multi huruf yang paling terkenal adalah playfair. Playfair menggunakan 676 digraf. Selama waktu yang lama, kode ini dianggap tak dapat dipecahkan. Playfair dijadikan sistem standar oleh tentara Inggris dalam PD I dan masih digunakan secara luas oleh tentara Amerika dan sekutu selama PD II. Sistem ini menggunakan matrik 5 X 5.
g. Subsitusi Polialfabet periodik. Dalam sistem polialfabet, setiap ciphertext dapat memiliki banyak kemungkinan plaintext. Dan sistem periodik itu sendiri dikarenakan adanya kunci yang berulang. Jenis polialfabet klasik yang terkenal adalah Vigenere.
h. Enigma. Merupakan mesin kriptografi yang digunakan oleh tentara NAZI Hitler pada masa PD II. Mesin ini menggunakan rotor. Enigma menggunakan tiga rotor untuk melakukan subsitusi. Tiga rotor berarti tiga kali subsitusi.
2. Teknik Transposisi ( Permutasi )
Beberapa model kriptografi yang menggunakan teknik transposisi, antara lain :
1. Algoritma transposisi kolom dengan kunci numerik. Teknik ini menggunakan permutasi karakter. Kunci dapat diperoleh dari kata yang mudah dibaca dan kemudian dikodekan menjadi bilangan.
2. Masukan plaintext pola zig-zag, keluaran ciphertext berupa baris.
3. Masukan pola segitiga, keluaran berupa kolom, dibaca dari atas kebawah.
4. Masukan berpola spiral, dari luar kedalam, keluaran berupa kolom dibaca dari atas ke bawah.
5. Dimasukan secara diagonal dari kiri bawah ke kanan atas, keluaran baris.
6. Masukan spiral dari dalam ke luar, keluaran diagonal bergantian.
Kombinasi subsitusi dan transposisi yang komplek menjadi dasar pembentukan algoritma-algoritma kriptografi modern. Salah satu algoritma klasik yang menggunakan kedua teknik ini adalah VIC yang tidak memerlukan komputer dalam penggunaannya.
kode kaisar
Pada algoritma klasik, diterapkan teknik enkripsi konvensional (simetris). Algoritma ini merupakan algoritma kriptografi yang biasa digunakan orang sejak berabad-abad yang lalu. Dua teknik dasar yang biasa digunakan, yaitu :
1. Teknik Subsitusi
2. Teknik Transposisi
1. Teknik Subsitusi
Subsitusi adalah penggantian setiap karakter plaintext dengan karakter lain. Beberapa istilah yang mungkin perlu diingat adalah :
a. Monoalfabet : Setiap karakter ciphertext mengganti satu macam karakter plaintext tertentu.
b. Polyalfabet : Setiap karakter ciphertext dapat mengganti lebih dari satu karakter plaintext.
c. Monograf / unilateral : Satu enkripsi dilakukan terhadap satu karakter plaintext.
d. Polygraf / multilateral : Satu enkripsi dilakukan terhadap lebih dari satu karakter plaintext sekaligus.
Cipher subsitusi paling tua yang dikenal adalah subsitusi yang dilakukan Julius Caesar. Beberapa teknik subsitusi yang pernah dilakukan, antara lain : [KUR04]
a. Subsitusi deret campuran kata kunci yaitu subsitusi yang kata kuncinya didapat dari mengumpulkan karakter yang sama dari sebuah plaintext dan pada ciphertextnya ditambahkan semua sisa karakter dalam abjad.
b.bSubsitusi monomer-dinome-trinome. Monome berarti setiap satu karakter plaintext akan disubsitusi oleh satu karakter ciphertext, dinome disubsitusi dua karakter ciphertext, tridome disubsitusi tiga karakter ciphertext. Jadi sistem ini adalah campuran dari ketiga sistem dasar.
c. Subsitusi multilateral variant. Subsitusi ini masih termasuk jenis monoalfabet yang dalam mensubsitusi memanfaatkan huruf abjad a,b,c,…,z yang disusun dalam matrik 5 X 5.
d. Subsitusi digrafik. Pada sistem ini, setiap huruf plaintext akan disubsitusi oleh dua huruf ciphertext. Pola huruf cipher text diambil dari sebuah matrik 26 X 26 yang berasal dari 26 abjad yang memiliki pola khusus.
e. Subsitusi persegi panjang. Sistem digrafik terlalu memerlukan matrik yang besar. Untuk memperkecil matrik dengan keamanan yang setara dapat digunakan sistem empat persegi.
f. Subsitusi kode playfair. Kode rahasia multi huruf yang paling terkenal adalah playfair. Playfair menggunakan 676 digraf. Selama waktu yang lama, kode ini dianggap tak dapat dipecahkan. Playfair dijadikan sistem standar oleh tentara Inggris dalam PD I dan masih digunakan secara luas oleh tentara Amerika dan sekutu selama PD II. Sistem ini menggunakan matrik 5 X 5.
g. Subsitusi Polialfabet periodik. Dalam sistem polialfabet, setiap ciphertext dapat memiliki banyak kemungkinan plaintext. Dan sistem periodik itu sendiri dikarenakan adanya kunci yang berulang. Jenis polialfabet klasik yang terkenal adalah Vigenere.
h. Enigma. Merupakan mesin kriptografi yang digunakan oleh tentara NAZI Hitler pada masa PD II. Mesin ini menggunakan rotor. Enigma menggunakan tiga rotor untuk melakukan subsitusi. Tiga rotor berarti tiga kali subsitusi.
2. Teknik Transposisi ( Permutasi )
Beberapa model kriptografi yang menggunakan teknik transposisi, antara lain :
1. Algoritma transposisi kolom dengan kunci numerik. Teknik ini menggunakan permutasi karakter. Kunci dapat diperoleh dari kata yang mudah dibaca dan kemudian dikodekan menjadi bilangan.
2. Masukan plaintext pola zig-zag, keluaran ciphertext berupa baris.
3. Masukan pola segitiga, keluaran berupa kolom, dibaca dari atas kebawah.
4. Masukan berpola spiral, dari luar kedalam, keluaran berupa kolom dibaca dari atas ke bawah.
5. Dimasukan secara diagonal dari kiri bawah ke kanan atas, keluaran baris.
6. Masukan spiral dari dalam ke luar, keluaran diagonal bergantian.
Kombinasi subsitusi dan transposisi yang komplek menjadi dasar pembentukan algoritma-algoritma kriptografi modern. Salah satu algoritma klasik yang menggunakan kedua teknik ini adalah VIC yang tidak memerlukan komputer dalam penggunaannya.
kode kaisar
Pada perkembangan selanjutnya kode kaisar ini mengalami pengembangan gagasan pada pembuatan kunci. Gagasan kunci ini disebut polyalphabetic. Kunci ini dapat berupa apa saja, seperti nama, alamat, kantor, dan lain-lain yang penting masih menggunkan karakter alphabet.
Penggunaan kunci pada kode kaisar ini tidak boleh adanya pengulangan huruf, seperti ‘DODISPUTRA’ akan menjadi ‘DOISPUTRA’. Kita langsung mempraktikan saja, misalkan plaintext yang diberikan ‘NINJA ASASSIN MEMANG KEREN’ dengan kunci ‘DODIS PUTRA’.
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 O I S P U T R A B C E F G H J K L M N Q V W X Y Z
Plaintext : NINJA ASASSIN MEMANG KEREN
Kunc : DODIS PUTRA
Chipertext : GIGB DDMD MMAG FPFD GTCP LPG
Kode HILL
Kode Hill atau lebih dikenal dengan Hill cipher merupakan salah satu algoritma kriptografi kunci simetris dan merupakan salah satu kripto polyalphabetic. Hill cipher diciptakan oleh Lester S. Hill pada tahun 1929 .
Teknik kriptografi ini diciptakan dengan maksud untuk dapat menciptakan cipher yang tidak dapat dipecahkan menggunakan teknik analisis frekuensi. Berbeda dengan caesar cipher, hill cipher tidak mengganti setiap abjad yang sama pada plainteks dengan abjad lainnya yang sama pada cipherteks karena menggunakan perkalian matriks pada dasar enkripsi dan dekripsinya.
Hill cipher merupakan penerapan aritmatika modulo pada kriptografi. Teknik kriptografi ini enggunakan sebuah matriks persegi sebagai kunci 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.
Karena menggunakan matriks sebagai kunci, Hill cipher merupakan algoritma kriptografi kunci simetris yang sulit dipecahkan, karena teknik kriptanalisis seperti analisis frekuensi tidak dapat diterapkan dengan mudah untuk memecahkan algoritma ini. Hill cipher sangat sulit dipecahkan jika kriptanalis hanya memiliki ciphertext saja (chipertext-only), namun dapat dipecahkan dengan mudah jika kriptanalis memiliki ciphertext dan potongan dari plaintext-nya (known-plaintext).
Perhitungan Matematis 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. Jika matriks kunci kita sebut dengan K, maka matriks K adalah sebagai berikut :
Matriks K yang menjadi kunci ini harus merupakan matriks yang invertible, yaitu memiliki multiplicative inverse K-1 sehingga :
K . K-1 = 1
Ingat ! Kunci harus memiliki invers karena matriks K-1 tersebut adalah kunci yang digunakan untuk melakukan dekripsi.
K . K-1 = 1
Ingat ! Kunci harus memiliki invers karena matriks K-1 tersebut adalah kunci yang digunakan untuk melakukan dekripsi.
Cara Enkripsi
Dengan mengkodekan atau mengubah setiap huruf abjad dengan integer sebagai berikut: A = 0, B = 1, …, Z = 25
Dengan mengkodekan atau mengubah setiap huruf abjad dengan integer sebagai berikut: A = 0, B = 1, …, Z = 25
maka secara matematis, proses enkripsi pada hill cipher adalah:
C = K . P mod 26
C = Cipherteks | K = Kunci | P = Plainteks
C = Cipherteks | K = Kunci | P = Plainteks
Proses enkripsi pada hill cipher dilakukan per blok plainteks. Ukuran blok tersebut sama dengan ukuran matriks kuncinya. Perhatikan contoh dibawah ini!
P = D O D I S P U T R A ,dikodekan/diintegerkan menjadi
P = 3 14 3 8 18 15 20 19 17 0
P = D O D I S P U T R A ,dikodekan/diintegerkan menjadi
P = 3 14 3 8 18 15 20 19 17 0
Karena matriks kunci K berukuran 2, maka plainteks dibagi menjadi blok yang masing-masing bloknya berukuran 2 karakter. Blok pertama dari plainteks P1,2 =[3;14] kemudian dienkripsi dengan kunci K dengan persamaan C = K . P mod 26. Karena perkalian tersebut menghasilkan lebih dari angka 25 maka dilakukan modulo 26 pada hasil yang lebih dari 25.
Karakter yang berkorespondensi dengan 21 dan 9 adalah V dan J. Setelah melakukan enkripsi semua blok pada plainteks P maka dihasilkan cipherteks C sebagai berikut:
P = D O D I S P U T R A
C = V J R N P W L U R X
Cipherteks yang dihasilkan oleh enkripsi hill chiper atau kode hill menghasilkan cipherteks yang tidak memiliki pola yang mirip dengan plainteks atau pesan aslinya.
P = D O D I S P U T R A
C = V J R N P W L U R X
Cipherteks yang dihasilkan oleh enkripsi hill chiper atau kode hill menghasilkan cipherteks yang tidak memiliki pola yang mirip dengan plainteks atau pesan aslinya.
- Metode Blok
Metode ini melakukan enkripsi menggunakan blok dengan membagi text asli/ plaintext menjadi blok-blok dengan setiap blok mengandung beberapa karakter biasanya 3 atau lebih per blok tergantung perjanjian. Data yang digunkan adalah contoh 2 diatas:
Plaintext : NINJ AASA SSIN MEMA NGKE RENX
K1 K2 K1 K2 K1 K2
Chipertext : GIGB BBIB MMAG RLRB GTCP HLEX
K1 K2 K1 K2 K1 K2
Untuk mengurangi kekurangan huruf digunakan huruf X atau yang lain sesuai perjanjian.
- Motode Zig Zag
Pendistribusian dengan metode ini dilakukan dengan menukarkan huruf asli dengan huruf yang sudah memakai kunci K1 dan mencari huruf yang sama pada K2 dan K3, sehingga huruf yang menjadi teks kode/ chipertext adalah huruf dari persamaan C=K3 dan sebaliknya. Untuk menggunakan metode ini sebaiknya mempunyai 3 kunci atau lebih. Lebih jelasnya lihat contoh dibawah ini.
P1 : 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
K1 : D O I S P U T R A B C E F G H J K L M N Q V W X Y Z
Huruf N pada P1 dikodekan ke K1 menjadi G --> K1 ke K2
P2 : 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
K2 : N O T B A R E G C D F H I J K L M P Q S U V W X Y Z
Huruf G pada K2 dikodekan ke P2 menjadi H --> K2 ke K3
P3 : 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
K3 : L O M B K I S A N D C E F G H J P Q R T U V W X Y Z
Huruf H pada K3 dikodekan ke P3 menjadi O --> C = K3, begitu seterusnya untuk huruf alphabet yang akan dikodekan.
Plaintext : NINJA ASASSIN MEMANG KEREN
Chipertext : OLOJPPRPRRLOESEPOKFSQSO
ijin ngopi gan buat dipelajari di rumah. mkaasih
BalasHapusKalo di dijadiiin source code gimana ya gan?
BalasHapus