Abad
ke-5 SM - Digunakannya kriptografi oleh Jendral Spartan untuk bertukar
pesan rahasia menggunakan pita sempit membungkus perkamen sekitar staf
silinder dikenal sebagai scytale, kemudian menyalin pesan mereka pada
papirus. Pesan hanya dapat dibaca saat papirus adalah ulang luka di
sekitar scytale ketebalan yang sama. Ini adalah penggunaan yang tercatat
paling awal apa yang sekarang dikenal sebagai cipher transposisi.Abad ke-2 SM - Sejarawan Polybius Yunani mengembangkan salah satu yang paling awal tercatat yaitu cipher substitusi dengan mengganti huruf-huruf alfabet, disusun dalam Polybius persegi, dengan angka.
Abad ke-1 SM - jenderal Romawi menggunakan cipher pergeseran sederhana, di mana setiap huruf dari pesan plaintext akan bergeser jumlah tetap huruf dalam alfabet untuk menghasilkan ciphertext. Sandi kemudian dikenal sebagai sandi Caesar setelah Julius Caesar, yang konon lebih suka pergeseran dari tiga huruf.
Abad ke-9 - matematikawan Islam Yaqūb bin Yusuf Abu Ishaq al-Kindi menerbitkan buku teks pertama memecahkan kode, A Manuscript on Deciphering Cryptographic Messages. Al-Kindi memperkenalkan buku klasifikasi cipher, polyalphabetic sandi, dan analisis frekuensi, teknik penting yang digunakan dalam memecahkan cipher substitusi. Analisis frekuensi menggunakan frekuensi relatif simbol dalam pesan berkode untuk mengungkapkan apa huruf alfabet.Algoritma kriptografi klasik berbasis karakter
nMenggunakan pena dan kertas saja, belum ada komputernTermasuk ke dalam kriptografi kunci-simetrinTiga alasan mempelajari algoritma klasik:
nContoh: Caesar Cipher
nTiap huruf alfabet digeser 3 huruf ke kanan
nContoh:
Cipher Substitusi
1. Memahami konsep dasar kriptografi.2. Dasar algoritma kriptografi modern. 3. Memahami kelemahan sistem cipher.Algoritma kriptografi klasik:1. Cipher Substitusi (Substitution Ciphers) 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 Z2.Cipher Transposisi (Transposition Ciphers) ci : DE F G H I J K L M N O P Q R S T U V W X Y Z A B C Plainteks : AWASI
ASTERIX DAN TEMANNYA OBELIX Cipherteks : DZDVL DVWHULA GDQ WHPDQQBA REHOLAnAtau membuang semua spasi:
nTujuannya agar kriptanalisis menjadi lebih sulit
DZDV LDVW HULA GDQW HPDQ QBAR EHOL A
DZDVLDVWHULAGDQWHPDQQBAREHOLA nMisalkan A = 0, B = 1, …, Z = 25, maka secara matematis caesar cipher dirumuskan sebagai berikut: Enkripsi: ci = E(pi) = (pi + 3) mod 26 Dekripsi: pi = D(ci) = (ci – 3) mod 26 nJika pergeseran huruf sejauh k, maka: Enkripsi: ci = E(pi) = (pi + k) mod 26 Dekripsi: pi = D(ci) = (ci – k) mod 26
k = kunci rahasia
nUntuk 256 karakter ASCII, maka: Enkripsi: ci = E(pi) = (pi + k) mod 256 Dekripsi: pi = D(ci) = (ci – k) mod 256
k = kunci rahasia
/*
Program enkripsi file dengan
Caesar cipher */
#include <stdio.h>
main(int argc, char *argv[])
{
FILE *Fin, *Fout;
char p, c;
int k;
Fin = fopen(argv[1], "rb");
if (Fin == NULL)
printf("Kesalahan dalam membuka %s sebagai berkas masukan/n", argv[1]);
Fout = fopen(argv[2], "wb");
printf("\nEnkripsi %s menjadi %s ...\n", argv[1], argv[2]);
printf("\n");
printf("k : ");
scanf("%d", &k);
while ((p = getc(Fin)) != EOF)
{
c = (p + k) % 256;
putc(c, Fout);
}
fclose(Fin);
fclose(Fout);
} /*
Program dekripsi file dengan
Caesar cipher */
#include <stdio.h>
main(int argc, char *argv[])
{
FILE *Fin, *Fout;
char p, c;
int n, i, k;
Fin = fopen(argv[1], "rb");
if (Fin == NULL)
printf("Kesalahan dalam membuka %s sebagai berkas masukan/n", argv[1]);
Fout = fopen(argv[2], "wb");
printf("\nDekripsi %s menjadi %s ...\n", argv[1], argv[2]);
printf("\n");
printf("k : ");
scanf("%d", &k);
while ((c = getc(Fin)) != EOF)
{
p = (c - k) % 256;
putc(p, Fout);
}
fclose(Fin);
fclose(Fout);
}
Kelemahan:
Caesar cipher mudah dipecahkan dengan exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci).
Contoh: kriptogram XMZVH
PHHW PH DIWHU WKH WRJD SDUWBKEY1 oggv og chvgt vjg vqic rctva
2 nffu nf bgufs uif uphb qbsuz
3 meet me after the toga party4 Ldds ld zesdq sgd snfz ozqsx
5 kccr kc ydrcp rfc rmey nyprw
6 …21 ummb um inbmz bpm bwoi xizbg
22 tlla tl hmaly aol avnh whyaf
23 skkz sk glzkx znk zumg vgxze
24 rjjy rj fkyjw ymj ytlf ufwyd
25 qiix qi ejxiv xli xske tevxc
nDi dalam sistem operasi Unix, ROT13 adalah fungsi menggunakan Caesar cipher dengan pergeseran k = 13
Jika kasusnya demikian, maka lakukan dekripsi terhadap potongan cipherteks lain tetapi cukup menggunakan k = 4 dan k = 11 agar dapat disimpulkan kunci yang benar.
nContoh: ROT13(ROTATE) = EBGNGR
nNama “ROT13” berasal dari net.jokes
(hhtp://groups.google.com/group/net.jokes) (tahun 1980)
nROT13 biasanya digunakan di dalam forum online untuk menyandikan jawaban teka-teki, kuis, canda, dsb
nEnkripsi arsip dua kali dengan ROT13 menghasilkan pesan semula:
P = ROT13(ROT13(P))
sebab ROT13(ROT13(x)) = ROT26(x) = x
nJadi dekripsi cukup dilakukan dengan mengenkripsi cipherteks kembali dengan ROT13


Tidak ada komentar:
Posting Komentar