sistem kriptografi klasik berbasis substitusi
DESCRIPTION
TRANSCRIPT
TUGASDISAIN DAN ANALISIS KEAMANAN JARINGAN
“SISTEM KRIPTOGRAFI KLASIK BERBASIS SUBSTITUSI”
FANNY OKTAVIARTI1102651
3F2
PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER
FAKULTAS TEKNIKUNIVERSITAS NEGERI PADANG
1. Sandi Caesar
Metode penyandian ini dinamakan caesar chiper, setelah digunakan Julius Caesar
untuk berkomunikasi dengan para panglimanya. Dalam kriptografi, Caesar Chiper dikenal
dengan beberapa nama seperti: shift cipher, Caesar’s code atau Caesar shift. Caesar
Chiper merupakan teknik enkripsi yang paling sederhana dan banyak digunakan. Chiper ini
berjenis chiper substitusi, dimana setiap huruf pada plaintextnya digantikan dengan huruf
lain yang tetap pada posisi alfabet. Misalnya diketahui bahwa pergeseran = 3, maka huruf A
akan digantikan oleh huruf D, huruf B menjadi huruf E, dan seterusnya.
Cara kerja sandi ini dapat diilustrasikan dengan membariskan dua set alfabet; alfabet
sandi disusun dengan cara menggeser alfabet biasa ke kanan atau ke kiri dengan angka
tertentu (angka ini disebut kunci). Misalnya sandi Caesar dengan kunci 3, adalah sebagai
berikut:
Alfabet Biasa: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Alfabet Sandi: DEFGHIJKLMNOPQRSTUVWXYZABC
Untuk menyandikan sebuah pesan, cukup mencari setiap huruf yang hendak
disandikan di alfabet biasa, lalu tuliskan huruf yang sesuai pada alfabet sandi. Untuk
memecahkan sandi tersebut gunakan cara sebaliknya. Contoh penyandian sebuah pesan
adalah sebagai berikut.
Teks terang : kirim pasukan ke sayap kiri
Teks tersandi : NLULP SDVXNDQ NH VDBDS NLUL
Pada zaman dulu sandi Caesar ini terbukti cukup aman untuk melindungi pesan-pesan
rahasia, mungkin salah satunya karena musuh-musuhnya Julius Caesar mengira bahwa pesan
tersandi itu merupakan bahasa asing lain yang tidak mereka ketahui.
Pemecahan terhadap sandi Caesar ini mulai dapat dilakukan setelah pada abad ke 9
masehi seorang ilmuwan Arab, yang bernama Al-Kindi menemukan yang namanya analisis
frekuensi, yaitu analisis frekuensi kemunculan huruf huruf tertentu.
Secara matematis sandi Caesar ini dapat ditulis dengan:
En(x)=(x+n) mod 26
Dn(x)=(x-n) mod 26
Dimana A = 0,B=1,…,Z=25
n= nilai pergeseran
x= huruf yang akan disandi/dibuka
2. Sandi Substitusi
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.
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 Affine
Merupakan algoritma monoalphabetic substitution chiper, menggunakan metode
fungsi matematika tertentu untuk menyandikan karakter.
Algoritma Enkripsi
E(x) = (ax + b) mod m
Algortima Dekripsi
D(x) = a-1(x – b) mod m
Ketentuan:
a dan b adalah kunci sandi
m adalah jumlah seluruh karakter yang akan disandikan (dalam hal ini abjad 26).
a dan m harus coprime
Cara menentukkan a dan m coprime
1 = a . a-1 mod m
Contoh:
a = 5 dan m =26
5x = 1 mod 26
a-1 = 21
jadi a dan m coprime
a. Enkripsi
Disini kita meng-enkrispsi teks AFFINECIPHER a = 5 dan b = 8
plaintext: A F F I N E C I P H E R
x: 0 5 5 8 13 4 2 8 15 7 4 17
(5x+8) 8 33 33 48 73 28 18 48 83 43 28 93
(5x+8)
mod 268 7 7 22 21 2 18 22 5 17 2 15
ciphertext: I H H W V C S W F R C P
X disini adalah urutan alfabet dimulai dari nol.
b. Deskripsi
ciphertex
t:I H H W V C S W F R C P
y: 8 7 7 22 21 2 18 22 5 17 2 15
21(y-8): 0
-
2
1
-
2
1
29
4
27
3
-
12
6
21
0
29
4
-
6
3
18
9
-
12
6
14
7
(21(y-8))
mod 26:0 5 5 8 13 4 2 8
1
57 4 17
plaintext: A F F I N E C I P H E R
4. Sandi Vigenere
Sistem sandi ini pertama kali dipopulerkan oleh Blaise de Vigenère seorang diplomat
Perancis pada abad 15, sehingga disebutlah metode ini dengan sistem sandi Vigenère. Sistem
sandi Vigenère adalah sistem sandi substitusi multi-alfabet, yaitu sistem sandi Caesar tetapi
dengan pergeseran alfabet yang berlainan disesuaikan dengan kata kuncinya.
Yang dimaksud sistem sandi substitusi adalah menyandi dengan cara mengganti
huruf-huruf pesan/teks aslinya dengan huruf-huruf sandi. Sistem sandi Caesar dan Viginère
termasuk metode sistem sandi ini. Bahkan sistem sandi substitusi merupakan sistem sandi
yang dipakai pula dalam kriptografi modern, dengan variasi-variasi yang terus berkembang.
contoh :
kata kunci : MERAPI
pesan asli : SUKSES ADALAH PERMAINAN PIKIRAN
alfabet biasa :
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
alfabet sistem sandi Vigenère dengan kata kunci MERAPI :
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
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 D
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
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
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
sehingga
S dengan pergeseran M = E; U dengan pergeseran E = Y; K dengan pergeseran R = B; S
dengan pergeseran A = S; E dengan pergeseran P = T; S dengan pergeseran I = A; A dengan
pergeseran M = M; D dengan pergeseran E = H; dsb….. sampai N dengan pergeseran A = N
pesan tersandi : EYBSTA MHRLPP BIIMPQZEE PXSUVRN
Permainan menemukan pesan tersandi dengan sistem sandi Vigenère sangat menarik dan
menantang untuk dilakukan.
kata kunci : LOMBOK
pesan tersandi : MOZEIXR YAUO UPANBBG
kata kunci : BOROBUDUR
pesan tersandi : LFZCUI XHKVY JSNOD
5. Sandi Hill / hill Cipher
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 = Ciphertext
K = 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 Hill
Cipher, dengan kunci K yang merupakan matriks 2×2.
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 Cipher
Proses 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
6. Sandi One Time pad
Metode penyandian OTP merupakan salah satu variasi dari metode penyandian
substitusi dengan cara memberikan syarat-syarat khusus terhadap kunci yang digunakan yaitu
terbuat dari karakter / huruf yang acak (kunci acak atau pad), dan pengacakannya tidak
menggunakan rumus tertentu.
Jika kunci tersebut 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. Penggunaan kunci 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.
Untuk memudahkan pemahaman, bisa diperhatikan contoh berikut :
Kunci acak :
FGHJV KVLIH POKNH BESAG VMHBK BLQML OPUTT EXDFJ MIKNY GQDXS
EQOIK HYGFB MIUYW UIOVC FDWUM KJLOK BTYVG KJABH SVQCG NBCVG
FSJFJ HOSHZ VBQNZ BXCMS GDUFO GWZMF IPMSA BNAPD QWMOC PAJSB
MSGYQ KWNAY ZHALU
Pesan yang akan disandi :
DUNIA TELAH SEMAKIN DATAR MAKA BELILAH TV LAYAR DATAR
Algoritma : Teks sandi = Teks asli + Kunci
Proses :
Penjumlahan ini dengan bilangan modulus 26
K : F= 6 G= 7 H= 8 J=10 V=22 K=11 V=22 L=12 I= 9 H= 8 P=16 O=15 K=11
TA : D= 4 U=21 N=14 I= 9 A= 1 T=21 E= 5 L=12 A= 1 H= 8 S=19 E= 5 M=13
TS : J=10 B= 2 V=22 S=19 W=23 F= 6 B= 2 X=24 J=10 P=16 I= 9 T=20 X=24 DST
K : N H B E S A G V M H B K B L Q M L O P U T T E X D F J M I K N Y
TA : A K I N D A T A R M A K A B E L I L A H T V L A Y A R D A T A R
TS : O S K S W B A W E U C V C N V Y U A Q C N P Q Y C G B Q J E O Q
Teks sandi hasil penyandian :
JBVSW FBXJP ITXOS KSWBA WEUCV CNVYU AQCNP QYCGB QJEOQ
Metode penyandian OTP ini kekuatannya bertumpu pada keacakan kuncinya, sehingga kunci
yang digunakan untuk proses penyandian tersebut harus dilindungi dengan baik.
7. Sandi Rotor
Sandi rotor berprinsip pada sandi substitusi yang kuncinya berubah setiap saat dengan
menggunakan rotor. Hal yang harus disepakati antara pengenkripsi dan pedekripsi adalah
posisi awal rotor dan kunci-kunci substitusi yang digunakan.
Sandi rotor memiliki kunci-kunci substitusi yang terangkai dan terhubung dengan
sebuah rotor. Setiap huruf kemudian disubstitusikan dengan kunci substitusi yang dirujuk
oleh rotor. Misalnya digunakan rotor dengan 4 posis, sehingga posisi terus berputar dari
0,1,2,3 kemudian ke 0 lagi dan seterusnya. Ketika rotor berposisi di 0, digunakan kunci
substitusi 0, kemudian posisi 1 digunakan kunci substitusi 1, dan seterusnya.
Contoh:
Misalnya ada sebuah mesin rotor dengan 3 posisi dengan menggunakan 3 kunci
substitusi K0 = {C,D,E,A,B}, K1 = {B,E,A,C,D}, dan K2 = {E,A,D,B,C}. temukan teks
sandiuntuk teks asli “ BACADE’, jika posisi awal adalah 0.
Jawab:
Hasil substitusi per-karakter dengan mesin rotor diberikan oleh tabel berikut:
i Posisi rotor p [ i ] c [ i ]
0 0 B K0(B)=D
1 1 A K1(A)=B
2 2 C K2(C)=D
3 0 A K0(A)=C
4 1 D K1(D)=C
5 2 E K2(E)=C
8. Sandi Transposisi
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
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.
2. 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.
3. 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.
4. 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
5. 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