RSS

Kriptografi Klasik

Kriptografi (cryptography) berasal dari bahasa Yunani yaitu cryptos artinya rahasia (secret) dan graphein artinya tulisan (writing). Jadi kriptografi berarti tulisan rahasia (secret writing). Kriptografi tidak hanya ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, nirpenyangkalan, otentikasi tetapi juga sekumpulan teknik yang berguna.

Algoritma kriptografi klasik:
1.    Chiper Substitusi (Substitution Chipers)
2.    Chiper Transposisi (Transposition Chipers)

Chiper Substitusi

·       Ini adalah algoritma kriptografi yang mula-mula digunakan oleh kaisar Romawi, Julius Caesar (sehingga dinamakan juga caesar chiper), untuk menyandikan pesan yang ia kirim kepada para gubernurnya.

·       Caranya adalah dengan mengganti (menyulih atau mensubstitusi) setiap karakter dengan karakter lain dalam susunan abjad (alfabet).

·       Misalnya, tiap huruf disubstitusi dengan  huruf ketiga berikutnya dari susunan akjad. Dalam hal ini kuncinya adalah jumlah pergeseran huruf (yaitu k = 3). 


Tabel substitusi:

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 1. Pesan
                   AWASI ASTERIX DAN TEMANNYA OBELIX
disamarkan (enskripsi) menjadi

                   DZDVL DVWHULA GDQ WHPDQQBA REHOLA

Penerima pesan men-dekripsi chiperteks dengan menggunakan tabel substitusi, sehingga chiperteks

DZDVL DVWHULA GDQ WHPDQQBA REHOLA

dapat dikembalikan menjadi plainteks semula:

AWASI ASTERIX DAN TEMANNYA OBELIX


·       Dengan mengkodekan setiap huruf abjad dengan integer sebagai berikut: A = 0, B = 1, …, Z = 25, maka secara matematis caesar chiper menyandikan plainteks pi menjadi ci dengan aturan:

ci = E(pi) = (pi + 3) mod 26                                        (1)

dan dekripsi chiperteks ci menjadi pi dengan aturan:
 
          pi = D(ci) = (ci – 3) mod 26                                        (2)


·       Karena hanya ada 26 huruf abjad, maka pergeseran huruf yang mungkin dilakukan adalah dari 0 sampai 25. Secara umum, untuk pergeseran huruf sejauh k (dalam hal ini k adalah kunci enkripsi dan deksripsi), fungsi enkripsi adalah

ci = E(pi) = (pi + k) mod 26                                         (3)

dan fungsi dekripsi adalah

pi = D(ci) = (ci k) mod 26                                         (4)


Catatan:
1.    Pergeseran 0 sama dengan pergeseran 26 (susunan huruf tidak berubah)
2.    Pergeseran lain untuk k > 25 dapat juga dilakukan namun hasilnya akan kongruen dengan bilangan bulat dalam modulo 26. Misalnya k = 37 kongruen dengan 11 dalam modulo 26, atau 37 º 11 (mod 26).
3.    Karena ada operasi penjumlahan dalam persamaan (3) dan (4), maka caesar chiper kadang-kadang dinamakan juga additive chiper.

Kriptanalisis Terhadap Caesar Chiper

Caesar chiper mudah dipecahkan dengan metode exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci).

Contoh 2. Misalkan kriptanalis menemukan potongan chiperteks (disebut juga cryptogram) XMZVH. Diandaikan kriptanalis mengetahui bahwa plainteks disusun dalam Bahasa Inggris dan algoritma kriptografi yang digunakan adalah caesar chiper. Untuk memperoleh plainteks, lakukan dekripsi mulai dari kunci yang terbesar, 25, sampai kunci yang terkecil, 1. Periksa apakah dekripsi menghasilkan pesan yang mempunyai makna (lihat Tabel 1).


Tabel 1. Contoh exhaustive key search terhadap chiperteks XMZVH

Kunci (k)
chipering
‘Pesan’ hasil dekripsi
Kunci (k)
chipering
‘Pesan’ hasil dekripsi
Kunci (k)
chipering
‘Pesan’ hasil dekripsi
0
25
24
23
22
21
20
19
18
XMZVH
YNAWI
ZOBXJ
APCYK
BQDZL
CREAM
DSFBN
ETGCO
FUHDP
17
16
15
14
13
12
11
10
9
GVIEQ
HWJFR
IXKGS
JYLHT
KZMIU
LANJV
MBOKW
NCPLX
ODQMY
8
7
6
5
4
3
2
1
PERNZ
QFSOA
RGTPB
SHUQC
TIVRD
UJWSE
VKXTF
WLYUG


Dari Tabel 1, kata dalam Bahasa Inggris yang potensial menjadi plainteks adalah CREAM dengan menggunakan k = 21. Kunci ini digunakan untuk mendekripsikan chiperteks lainnya.



·       Kadang-kadang satu kunci yang potensial menghasilkan pesan yang bermakna tidak selalu satu buah. Untuk itu, kita membutuhkan informasi lainnya, misalnya konteks pesan tersebut atau mencoba mendekripsi potongan chiperteks lain untuk memperoleh kunci yang benar.

Contoh 3. Misalkan potongan chiperteks  HSPPW menghasilkan dua kemungkinan kunci yang potensial, yaitu k = 4 menghasilkan pesan DOLLS dan k = 11 menghasilkan WHEEL. Lakukan deksripsi terhadap potongan chiperteks lain tetapi hanya menggunakan k = 4 dan k = 11 (tidak perlu exhaustive key search) agar dapat disimpulkan kunci yang benar.


·       Cara lain yang digunakan untuk memecahkan chiperteks adalah dengan statistik, yaitu dengan menggunakan tabel kemunculan karakter, yang membantu mengidentifikasi karakter plainteks yang berkoresponden dengan karakter di dalam chiperteks (akan dijelaskan kemudian).


Jenis-jenis Chiper Subsbtitusi

a.    Chiper abjad-tunggal (monoalphabetic chiper atau chiper substitusi sederhana - simple substitution chiper)
Satu karakter di plainteks diganti dengan satu karakter yang bersesuaian. Jadi, fungsi chipering-nya adalah fungsi satu-ke-satu.

Jika plainteks terdiri dari huruf-huruf abjad, maka jumlah kemungkinan susunan huruf-huruf chiperteks yang dapat dibuat adalah sebanyak

     26! = 403.291.461.126.605.635.584.000.000

Caesar chiper adalah kasus khusus dari  chiper abjad tunggal di mana susunan huruf chiperteks diperoleh dengan menggeser huruf-huruf alfabet sejauh 3 karakter.

     ROT13 adalah program enkripsi sederhana yang ditemukan pada sistem UNIX. ROT13 menggunakan chiper abjad-tunggal dengan pergeseran k = 13 (jadi, huruf A diganti dengan N, B diganti dengan O, dan seterusnya).

Enkripsi arsip dua kali dengan ROT13 menghasilkan arsip semula:

     P = ROT13(ROT13(P))


b.     Chiper substitusi homofonik (Homophonic substitution chiper)
Seperti chiper abjad-tunggal, kecuali bahwa setiap karakter di dalam plainteks dapat dipetakan ke dalam salah satu dari karakter chiperteks yang mungkin. Misalnya huruf A dapat berkoresponden dengan 7, 9, atau 16, huruf B dapat berkoresponden dengan 5, 10, atau 23 dan seterusnya.

    Fungsi chipering-nya memetakan satu-ke-banyak (one-to-many).

Chiper substitusi homofonik digunakan pertama kali pada tahun 1401 oleh wanita bangsawan Mantua.

Chiper substitusi homofonik lebih sulit dipecahkan daripada  chiper abjad-tunggal. Namun, dengan known-plaintext attack, chiper ini dapat dipecahkan, sedangkan dengan chipertext-only attack lebih sulit.

c.           Chiper abjad-majemuk (Polyalpabetic substitution chiper )
Merupakan chiper substitusi-ganda (multiple-substitution chiper) yang melibatkan penggunaan kunci berbeda.

Chiper abjad-majemuk dibuat dari sejumlah chiper abjad-tunggal, masing-masing dengan kunci yang berbeda.

Kebanyakan chiper abjad-majemuk adalah chiper substitusi periodik yang didasarkan pada periode m.

Misalkan plainteks P adalah

            P = p1p2pmpm+1p2m

maka chiperteks hasil enkripsi adalah

       Ek(P) = f1(p1) f2(p2) … fm(pm) fm+1(pm+1) … f2m(p2m) …

yang dalam hal ini pi adalah huruf-huruf di dalam plainteks.

Untuk m = 1, chiper-nya ekivalen dengan chiper abjad-tunggal.

Contoh chiper substitusi periodik adalah chiper Vigenere yang ditemukan oleh kriptologi Perancis, Blaise de Vigenere pada abad 16. Misalkan K adalah deretan kunci

            K = k1 k2km

yang dalam hal ini ki untuk 1 £ i £ m menyatakan jumlah pergeseran pada huruf ke-i. Maka, karakter chiperteks yi(p) adalah

          yi(p) = (p + ki) mod n                                                   (5)

Misalkan periode m = 20, maka 20 karakter pertama dienkripsi dengan persamaan (5), dimana setiap karakter ke-i menggunakan kunci ki. Untuk 20 karakter berikutnya, kembali menggunakan pola enkripsi yang sama.

Chiper abjad-majemuk ditemukan pertama kali oleh Leon Battista pada tahun 1568. Metode ini digunakan oleh tentara AS selama Perang Sipil Amerika.

Meskipun chiper abjad-majemuk dapat dipecahkan dengan mudah (dengan bantuan komputer), namun anehnya banyak program keamanan komputer (computer security) yang menggunakan chiper jenis ini.


d.          Chiper substitusi poligram (Polygram substitution chiper )
Blok karakter disubstitusi dengan blok chiperteks. Misalnya ABA diganti dengan RTQ, ABB diganti dengan SLL, dan lain-lain.

Playfair chiper, ditemukan pada tahun 1854, termasuk ke dalam chiper substitusi poligram dan digunakan oleh negara Inggris selama Perang Dunia I.



 
2.  Chiper Transposisi

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


Contoh 4. Misalkan plainteks adalah

                   DEPARTEMEN TEKNIK INFORMATIKA ITB

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

                   DEPART
         EMENTE
         KNIKIN
         FORMAT
         IKAITB

maka chiperteksnya dibaca secara vertikal menjadi

          DEKFIEMNOKPEIRAANKMIRTIATTENTB

Untuk mendekripsi pesan, kita membagi panjang chiperteks dengan kunci. Pada contoh ini, kita membagi 30 dengan 6 untuk mendapatkan 5.

Algoritma dekripsi identik dengan algoritma enkripsi. Jadi, untuk contoh ini, kita menulis chiperteks dalam baris-baris selebar 5 karakter menjadi:

DEKFI
EMNOK
PEIRA
ANKMI
RTIAT
TENTB
Dengan membaca setiap kolom kita memperoleh pesan semula:

DEPARTEMEN TEKNIK INFORMATIKA ITB


Variasi dari metode transposisi lainnya ditunjukkan pada Contoh 5 dan Contoh 6.


Contoh 5. Misalkan plainteks adalah

          ITB GANESHA SEPULUH

Plainteks diblok atas delapan karakter. Kemudian, pada tiap blok, karakter pertama dan karakter terakhir dipertukarkan, demikian juga karakter pertengahan:



1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
I
T
B
G
A
N
E
S
H
A

S
E
P
U
L
U
H







E
T
B
G

A
N
I
U
H
A
S

E
P
S

U
H




L
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8

maka chiperteksnya adalah

ETBG ANIUHAS EPS UH    L

Dekripsi dilakukan dengan cara yang sama, yaitu chiperteks  diblok atas delapan karakter. Kemudian, pada tiap blok, karakter pertama dan karakter terakhir dipertukarkan, demikian juga karakter pertengahan.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comments:

Post a Comment