Kriptografi Klasik dan Kriptografi Modern

Salah satu metode pengamanan yang dapat dilakukan untuk pengamanan pesan adalah dengan menggunakan kriptografi. Kriptografi telah digunakan selama berabad-abad oleh raja dan ratu di Eropa untuk memberi perintah terhadap pasukan perang mereka. Secara garis besar berdasarkan peralatan dan penerapannya kriptografi terbagi menjadi dua jenis kriptografi, yaitu klasik dan modern.

Kriptografi Klasik

Kriptografi klasik adalah kriptografi yang dalam pembuatannya maupun proses analisisnya sama sekali tidak melibatkan perangkat komputer atau perangkat teknologi mesin. Alat-alat yang digunakan berkutat pada pemanfaatan kertas, pena, batu, serta alat-alat lain yang tidak tergolong dalam perangkat mesin modern sama sekali.

1. Scytale

Metode scytale digunakan oleh bangsa Sparta sekitar tahun 475 S.M pada jaman Yunani kuno untuk memperkuat kekuatan militer mereka. Scytale terbuat dari tongkat dengan lembaran papyrus yang mengelilingi secara spiral di mana diameter tongkatlah yang menjadi kunci rahasia. Jadi walaupun pihak lawan memiliki pesan yang ada di lembaran papyrus tersebut, hanya orang yang memiliki diameter tongkat yang benarlah yang bisa membaca isi pesan.

Kriptografi Klasik Scytale

2. Caesar Cipher

Caesar cipher pertama kali digunakan oleh Julius Caesar untuk menaklukkan banyak bangsa-bangsa di Eropa. Teknik yang digunakan adalah menyubstitusikan alphabet secara berurutan dengan kunci berupa alphabet yang digeser sejumlah bilangan tertentu ke kanan.  

Kriptografi Klasik Caesar Cipher
Misalkan 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

Jika pergeseran huruf sejauh k, maka:

  • Enkripsi: ci = E(pi) = (pi + k) mod 26
  • Dekripsi: pi = D(ci) = (ci – k) mod 26
  • k = kunci rahasia

Untuk 256 karakter ASCII, maka:

  • Enkripsi: ci = E(pi) = (pi + k) mod 256
  • Dekripsi: pi = D(ci) = (ci – k) mod 256
  • k = kunci rahasia

Kelemahan Caesar cipher adalah mudah dipecahkan dengan exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci). 

Karakteristik Kriptografi Klasik

Kriptografi klasik dapat di karakteristikkan kedalam tiga area :

1. Tipe Operasi

Tipe operasi yang digunakan untuk merubah plainteks ke ciperteks. Terdapat dua prinsip umum untuk algoritma pengenkripsian yaitu substitusi (menukar bit, karakter, atau blok karakter dari plainteks dengan substitusi) dan transposisi (menyusun elemen-elemen plainteks). Pada area ini, seluruh operasi harus dapat dibalik dan tidak ada informasi yang hilang.

Cipher Subtitusi

Cipher abjad tunggal atau monoalphabetic cipher. Satu karakter di plainteks diganti dengan satu karakter yang bersesuaian. Jumlah kemungkinan susunan huruf-huruf cipherteks yang dapat dibuat adalah sebanyak :

26! = 403.291.461.126.605.635.584.000.000

Contoh: Caesar Cipher Polyalphabetic substitution cipher. 

Panjang kunci sepanjang plainteks. Jika kunci kurang dari plainteks, maka kunci di ulang sepanjang plainteks. Contoh Vigenere Cipher:

Cipher Subtitusi

Plainteks: SHE SELLS SEA SHELLS

+ Kunci : KEY KEYKE YKE YKEYKE

Cipherteks: CLC CIJVW QOE QRIJVW

Cipher Transposisi / Permutasi

Cipherteks diperoleh dengan mengubah posisinya. 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.

Cipher Transposisi / Permutasi


2. Jumlah Kunci yang Digunakan

Jumlah kunci yang digunakan. Terdapat dua sistem yaitu simetri atau enkripsi kunci rahasia (pengirim dan penerima menggunakan kunci yang sama) dan asimetri atau enkripsi kunci publik (pengirim dan penerima menggunakan kunci yang berbeda). Telah dijelaskan pada sub-bab sebelumnya.

3. Cara Proses Plaintext

Terdapat dua proses, cipher blok (adalah suatu fungsi pemetaan n-bit blok plainteks ke n-bit blok cipherteks) dan cipher stream (string plainteks dan menghasilkan string cipherteks, dimana pada suatu blok tertentu saling berhubungan dengan blok tertentu lainnya).

Cipher Blocking

Sistem enkripsi terkadang membagi plainteks menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian dienkripsikan secara independen. Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik ini. 

Contoh Reverse Cipher:

Misalkan plainteks adalah "FAKULTAS TEKNIK INFORMATIKA UMRAH"

Kunci baris 5, kolom 6; maka untuk melakukan enkripsi: 

Enkripsi :

Reverse Cipher

Cipherteks: (baca secara vertikal) FAIRAASKMUKTIAMUENTRLKFIATNOKH

Untuk melakukan dekripsi bagi panjang cipherteks dengan kunci kolom: 30/6 = 5, maka :

Reverse Cipher

Plainteks: (dibaca secara vertikal) FAKULTAS TEKNIK INFORMATIKA UMRAH

Ekspansi

Suatu metode sederhana untuk mengacak pesan adalah dengan “memelarkan” pesan itu dengan aturan tertentu. Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran -"an". Bila suatu kata dimulai dengan huruf vokal atau bilangan genap, ditambahkan akhiran "i". Proses enkripsi dengan cara ekspansi terhadap plainteks terjadi sebagai berikut :

Plainteks: 5 TEKNIK DASAR KRIPTOGRAFI Cipher: 5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN

Kriptografi Modern

Kriptografi modern menggunakan gagasan dasar yg sama seperti kriptografi klasik (permutasi & transposisi) tetapi penekanannya berbeda. Bila kriptografi klasik berorientasi pada karakter, kriptografi modern berorientasi pada bit, sehingga penyandiannya dengan menggunakan media komputer. Kriptografi modern tidak selalu berupa karakter, tetapi bisa berupa gambar atau video. 

Kategori algoritma (cipher) berbasis bit adalah sebagai berikut:

1. Stream Cipher (cipher aliran). 

Tipe ini beroperasi pada bit tunggal. Mengenkripsi plainteks menjadi chiperteks bit per bit (1 bit setiap kali transformasi) atau byte per byte (1 byte setiap kali transformasi) dengan kunci keystream. Diperkenalkan oleh Vernam melalui algoritmanya, Vernam Cipher. Vernam cipher diadopsi dari one-time pad cipher, yang dalam hal ini karakter diganti dengan bit (0 atau 1). 

Stream Cipher (cipher aliran).

Bit-bit kunci untuk enkripsi/dekripsi disebut keystream. Keystream dibangkitkan oleh keystream generator. Keystream di-XOR-kan dengan bit-bit plainteks, p1, p2, …, pn menghasilkan aliran bit-bit cipherteks:

ci = pi  ki

Di sisi penerima dibangkitkan keystream yang sama untuk mendekripsi aliran bit-bit cipherteks:

pi = ci  ki

keamanan sistem ini bergantung pada keystream generator.

Keystream generator diimplementasikan sebagai prosedur yang sama di sisi pengirim dan penerima pesan. Keystream generator dapat membangkitkan keystream berbasis bit per bit atau dalam bentuk blok-blok bit. Jika keystream berbentuk blok-blok bit, cipher blok dapat digunakan untuk untuk memperoleh cipher aliran.

Proses keystream generator

Contoh keysteam generator ada yang dikenal dengan Linear Feefback Shift Register (LFSR). LFSR terdiri dari dua bagian: register geser (n bit) dan fungsi umpan balik. 

2. Block Cipher

Bit-bit plainteks dibagi menjadi blok-blok bit dengan panjang sama, misalnya 64 bit. Panjang kunci enkripsi = panjang blok. Enkripsi dilakukan terhadap blok bit plainteks menggunakan bit-bit kunci. Algoritma enkripsi menghasilkan blok cipherteks yang panjangnya = blok plainteks.

Blok plainteks berukuran m bit:

P = (p1, p2, …, pm), pi ∊ {0, 1}

Blok cipherteks (C) berukuran m bit: 

C = (c1, c2, …, cm), ci ∊ {0, 1}

Block cipher memiliki 4 mode operasi. Mode operasi merupakan model yang berkaitan dengan cara blok dioperasikan.

  1. Electronic Code Block (ECB) 
  2. Cipher Block Chaining (CBC) 
  3. Cipher Feedback (CFB)
  4. Output Feedback (OFB)
Block Cipher

Post a Comment

0 Comments