Senin, 25 Juni 2012

CARA KERJA BENTUK-BENTUK ENKRIPSI


1. CAESAR CHIPER
Caesar Chiper merupakan salah satu model dari bentuk Kriptografi Simetris atau konvensional. Yang dimaksud dengan Symetric Cryptography atau Kriptografi Simetris yaitu kunci yang digunakan untuk melakukan enkripsi dan dekripsi adalah sama. Cara kerja caesar chiper yaitu subsitusi setiap huruf plain text dengan huruf yang telah dirotasi selama dalam bentuk huruf.

Pada sandi Caesar, setiap huruf teks terang digantikan dengan huruf lain yang memiliki perbedaan tertentu pada urutan alfabet. Misalnya pada sandi Caesar dengan geseran 3, A menjadi D, B menjadi E and dan seterusnya. Sandi Vigenère terdiri dari beberapa sandi Caesar dengan nilai geseran yang berbeda.
Untuk menyandikan suatu pesan, digunakan sebuah tabel alfabet yang disebut tabel Vigenère (gambar). Tabel Vigenère berisi alfabet yang dituliskan dalam 26 baris, masing-masing baris digeser satu urutan ke kiri dari baris sebelumnya, membentuk ke-26 kemungkinan sandi Caesar. Setiap huruf disandikan dengan menggunakan baris yang berbeda-beda, sesuai kata kunci yang diulang

Misalnya, teks terang yang hendak disandikan adalah perintah "Serbu Berlin" :
serbuberlin

Sedangkan kata kunci antara pengirim dan tujuan adalah "Pizza"
"PIZZA" diulang sehingga jumlah hurufnya sama banyak dengan teks terang:
PIZZAPIZZAP

Huruf pertama pada teks terang, S, disandikan dengan menggunakan baris berjudul P, huruf pertama pada kata kunci. Pada baris P dan kolom S di tabel Vigenère, terdapat huruf H. Demikian pula untuk huruf kedua, digunakan huruf yang terletak pada baris I (huruf kedua kata kunci) dan kolom E (huruf kedua teks terang), yaitu huruf M. Proses ini dijalankan terus sehingga,
Teks terang :    Serbuberlin
Kata kunci :    PIZZAPIZZAP
Teks bersandi :    HMQAUQMQKIC

Proses sebalinya (disebut dekripsi), dilakukan dengan mencari huruf teks bersandi pada baris berjudul huruf dari kata kunci. Misalnya, pada contoh di atas, untuk huruf pertama, kita mencari huruf H (huruf pertama teks tersandi) pada baris P (huruf pertama pada kata kunci), yang terdapat pada kolom S, sehingga huruf pertama adalah S. Lalu M terdapat pada baris I di kolom E, sehingga diketahui huruf kedua teks terang adalah E, dan seterusnya hingga didapat perintah "serbuberlin".
Enkripsi (penyandian) dengan sandi Vigenère juga dapat dituliskan secara matematis, dengan menggunakan penjumlahan dan operasi modulus, yaitu:

atau C = P + K kalau jumlah dibawah 26 & - 26 kalau hasil jumlah di atas 26
dan dekripsi,

atau P = C - K kalau hasilnya positif & + 26 kalau hasil pengurangan minus
Keterangan :  adalah huruf ke-i pada teks tersandi,  adalah huruf ke-i pada teks terang,  adalah huruf ke-i pada kata kunci, dan  adalah operasi modulus (sisa pembagian).
Perhitungan Sandi Vigenere
Rumus enkripsi vigenere cipher :

atau
Ci = ( Pi + Ki ) – 26 kalau hasil penjumlahan Pi dan Ki lebih dari 26

Rumus dekripsi vigenere cipher :

atau
Pi = ( Ci – Ki ) + 26 kalau hasil pengurangan Ci dengan Ki minus

Dimana :
Ci = nilai desimal karakter ciphertext ke-i
Pi = nilai desimal karakter plaintext ke-i
Ki = nilai desimal karakter kunci ke-i

Nilai desimal karakter :
A=0 B=1 C=2 ... Z=25

Sebagai contoh, jika plaintext adalah STIKOMBALI dan kunci adalah KAMPUS maka proses enkripsi yang terjadi adalah sebagai berikut :
Plaintext : STIKOMBALI
Key : KAMPUSKAMP
Ciphertext : CTUZIELAXX

Pada contoh diatas kata kunci KAMPUS diulang sedemikian rupa hingga panjang kunci sama dengan panjang plainteksnya. Jika dihitung dengan rumus enkripsi vigenere  plainteks huruf pertama S (yang memiliki nilai Pi=18) akan dilakukan pergeseran dengan huruf K (yang memiliki Ki=10) maka prosesnya sebagai berikut :
 Ci = ( Pi + Ki ) mod 26
    = (18 + 10) mod 26
    = 28 mod 26
    = 2  
Ci=2 maka huruf ciphertext dengan nilai 2 adalah C . Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada setiap huruf hingga semua plainteks telah terenkripsi menjadi ciphertext. Setelah semua huruf terenkripsi maka proses dekripsinya dapat dihitung sebagai berikut :
 Pi = ( Ci – Ki ) + 26
    = ( 2 – 10 ) + 26
    = –8 + 26
    = 18
Pi=18 maka huruf plainteks dengan nilai 18 adalah S. Begitu seterusnya dilakukan pergeseran sesuai dengan kunci pada setiap huruf hingga semua ciphertext telah terdekripsi menjadi plainteks.


2. LETTER MAP

Standar Letter Map menggunakan tabel korespondensi yang dipilih secara sembarang, misalnya:
Huruf asli : a b c d e f g h i j …
Huruf sandi : q w e e r t y u i o …
Jika dikirimkan berita asli “baca”, akan menjadi “wqeq”. Ketentuan ini tidak mutlak, aturan sandi bisa berubah-ubah tergantung dari orang yang mengirimnya.


3. TRANSPOSITION CIPHER
Cipher transposisi dapat disebut juga sebagai cipher permutasi karena sebenarnya metode cipher  transposisi ini mempermutasikan karakter-karakter
plainteks, yaitu dengan menyusun ulang urutan  karakter dalam pesan. Contoh paling sederhana penggunaan cipher transposisi adalah dengan membalikkan karakter-karakter dalam suatu kata. Misalkan kata KRIPTOGRAFI dienkripsi menjadi IFARGOTPRIK, ini adalah contoh paling sederhana. Sedangkan contoh cipher transposisi yang lebih rumit sebagai berikut :

Misalkan kita mempunyai plainteks
INI PESAN RAHASIA
Untuk meng-enkripsi pesan, plainteks ditulis secara horizontal dengan lebar kolom tetap, missal selebar 5
karakter (kunci k = 5)
I N I P E
S A N R A
H A S I A
maka cipherteksnya dibaca secara vertikal menjadi:
ISHNAAINSPRIEAA


4.    DATA ENCRYPTION STANDAR (DES)

•    DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok.
•    DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit.
Permutasi Awal
Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal (initial permutation atau IP). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan bit-biit di dalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks permutasi awal berikut ini:

58    50    42    34    26    18    10    2    60    52    44    36    28    20    12    4
62    54    46    38    30    22    14    6    64    56    48    40    32    24    16    8
57    49    41    33    25    17    9    1    59    51    43    35    27    19    11    3
61    53    45    37    29    21    13    5    63    55    47    39    31    23    15    7

Cara membaca tabel/matriks di atas: dua entry ujung kiri atas (58 dan 50) berarti:
    “pindahkan bit ke-58 ke posisi bit 1”
    “pindahkan bit ke-50 ke posisi bit 2”, dst


5. TRIPLE DES

Triple DES merupakan varian pengembangan dari DES (Data Encryption Standar) – sebelumnya disebut sebagai “multiple DES”  dikarenakan pada dasarnya triple DES hanyalah penggunaan DES secara berulang; dalam hal ini pengulangannya dilakukan tiga kali. Triple DES umumnya disebut jugadengan singkatan TDES atau dengan istilah 3DES. Secara umum triple DES dirumuskan sebagai berikut:

Enkripsi : (C) O = EK3(DK2(EK1(P)))
Dekripsi : (P)O = DK3(EK2(DK1(C)))

Keterangan:
P = plaintext
C = ciphertext
E = enkripsi
D = dekripsi
Ki = kunci ke-i

Varian di atas umumnya disebut dengan mode EEE (dikarenakan menggunakan tiga kali proses enkripsi). Namun, kemudian dilakukan sebuah penyederhanaan terhadap varian tersebut sehingga melahirkan mode baru yang disebut sebagai EDE (enkripsidekripsi- enkripsi), dengan adanya penyisipan fungsi dekripsi. Penggunaan tiga kali DES pada triple DES diharapkan dapat meningkatkan keamanan dikarenakan juga adanya penggunaan kunci yang lebih panjang yaitu kunci dengan ukuran 168 bit (tiga kali ukuran DES, 56 bit). Pada penggunaan triple DES dengan mode EDE dapat dilakukan dengan menggunakan 3 kunci, 2 kunci ataupun hanya menggunakan 1 kunci. Berikut blok diagram triple DES :

Penggunaan triple DES dengan 1 kunci merupakan bentuk penyederhanaan yang  menggunakan kunci k = k1 = k2 = k3.
Menyangkut keamanan dalam penggunaan triple DES, masih memungkinkan terjadi penyerangan dengan menggunakan sekitar 232 known-plaintexts, 2113 langkah, 290 pemecahan DES, dan 288 kapasitas memori. Tentu saja untuk melakukan hal tersebut akan membutuhkan biaya yang sangat besar.


6. RIVEST CODE 2 (RC2) DAN RIVEST CODE 4 (RC4)

RIVEST CODE 2 (RC2)

RC2 merupakan cipher blok yang dirancang pada tahun 1987 untuk Lotus Corporation untuk digunakan dalam perangkat lunak Lotus Notes mereka. Ini adalah cipher Feistel dengan 18 putaran dan ukuran blok 64-bit. Rincian dalam RFC 2268.
Cipher ini diberi wewenang untuk ekspor berdasarkan hukum AS kemudian saat ini, menyediakan ukuran kunci dibatasi sampai 40 bit.
Proses dekripsi dilakukan penerima terhadap data yang sudah dalam bentuk ciphertext. Proses ini dapat dilakukan dengan algoritma sebagai berikut :
for i= r downto 1 do
B=((B – S [2 * i + 1]) >>> A)  A;
A=((A – S [2 * i]) >>> B)  B;
B= B- S[1];
A= A – S[0];
Data-data dari ciphertext dikembangkan menjadi dua bagian A dan B selanjutnya di lakukan pengurangan dengan hasil key ekspansi dan dirotasi sebanyak r sambil dilakukan operasi EX-OR terhadap data tersebut. Tahap akhir untuk mendapatkan plaintext adalah dengan melakukan kembali proses pengurangan ke masing-masing bagian dengan hasil key ekspansi. Data-data ini kemudian digabungkan kembali membentuk plaintext sesuai dengan yang dikirimkan pengirim atau data awal sebelum proses enkripsi.

RIVEST CODE 4 (RC4)

RC4 merupakan stream cipher yang sangat luas dipergunakan.
Desain memiliki parameter ukuran, versi 8-bit adalah digunakan secara luas. Ini menghasilkan pseudo-acak data satu byte pada suatu waktu dan mempertahankan keadaan 256-byte internal. Operasi menggabungkan adalah XOR. Kuncinya dapat ukuran sampai dengan ukuran negara, 256 byte atau 2048 bit untuk versi 8-bit.

RC4 cukup mudah untuk mengimplementasikan dalam perangkat lunak dan sangat banyak digunakan. Hal ini digunakan (paling tidak sebagai salah satu opsi) dalam protokol internet seperti TLS (RFC 2246) untuk web browsing aman dan SSH (RFC 4251) untuk login remote. Hal ini juga digunakan dalam jaringan nirkabel WEP, di Microsoft PPTP dan dalam banyak aplikasi lainnya.

Desain itu eksklusif sampai sebuah posting internet yang mengungkapkan kerja internal cipher. Versi diposting kadang-kadang berlabel ARC4 untuk "RC4 Dugaan".


7. International Data Encryption Algorithm (IDEA)

International Data Encryption Algorithm (IDEA) adalah algoritma yang dikembangkan oleh Dr X. Lai dan Prof J. Massey di Swiss pada awal 1990 untuk menggantikan standar DES. Menggunakan tombol yang sama untuk enkripsi dan dekripsi, seperti DES beroperasi pada tanggal 8 byte pada suatu waktu. Tidak seperti DES meskipun menggunakan kunci 128-bit. Panjang kunci ini tidak memungkinkan untuk istirahat oleh hanya mencoba setiap kunci, dan tidak ada cara lain serangan dikenal. Ini adalah algorighm cepat, dan juga telah diimplementasikan dalam chipset perangkat keras, membuatnya lebih cepat.


8. SKIPJACK
Standard spesifikasi penggunaan algoritma SKIPJACK di implementasikan pada peralatan elektronik (seperti chip elektronik dengan skala besar) peralatan elektronik tersebut mengandung modul cryptograph yang di integrasikan pada product chip telekomunikasi.
Persetujuan implementasi telah di otorisasi Organizations for Integration into Security Equipment Peralatan tersebut harus di validasi oleh The National Institute of Standards and Technology (NIST) yaitu suatu Institut Teknologi Dan Standard Nasional Amerika Serikat dengan standard FIPS 140-1.
Plaintext
Transmitted Data
Gambar 2. Frame enkripsi
Spesifikasi algoritma SKIPJACK mempunyai ketentuan fungsi sebagai berikut :

Data Encryption : Session key harus menggunakan panjang key 80 bits untuk melakukan encryption plain text dengan menggunakan mode operasi salah satu dari yang dispesifikasikan pada FIPS-81: ECB, CBC, OFB(64), CFB (1, 8, 16, 32, 64).
Data Encryption : Session key (80 bits) digunakan untuk encrypt data, juga digunakan sebagai decrypt hasil dari ciphertext.
Materi berikut ini menyediakan detail masalah Skipjack dan algoritma KEA. Algoritma ini mendukung single chip cryptoprocessors seperti CLIPPER (hanya Skipjack), CAPSTONE, KEYSTONE, REGENT, KRYPTON, dan FORTEZZA dan PC Card FORTEZZA Plus, dan juga produk lain yang masih famili FORTEZZA.

Algoritma
Materi ini mendiskusikan algoritma berikut :
SKIPJACK Codebook encryptor/ Algoritma Decryptor
KEA Algoritma Pertukaran Kunci

A. Mode operasi SKIPJACK.
B. SKIPJACK adalah sebuah utilizasi codebook 64 bit dari sebuah cryptovariable 80 bit. Mode operasi ini adalah bagian dari deskripsi FIPS-81 dari mode operasi untuk DES. Cakupannya meliputi :
Mode Output Feed-Back (OFB) 64 bit
Mode Cipher Feed-Back (CFB) 64 bit/32 bit/16 bit/8 bit
Codebook 64 bit
Cipher-Block Chaining (CBC) 64 bit

Spesifikasi SKIPJACK

4.1. Notasi dan Terminologi :
v” Set dari semua nilai n-bit
word: Sebuah element dari v16 ; bernilai 16-bit.
Byte: sebuah elemen dari v8 ; bernilai 8-bit.
Permutasi vn : Sebuah invertible(satu-ke-satu dan selanjutnya) fungsi dari Vn ke Vn. Nilai permutasi didalam vn, nilainya tidak dalam bits.
X Å Y Nilai exclusive –OR dari X dan Y
X || Y X serangkai dengan Y. Lihat X, Y merupakan bytes, kemudian X || Y = X x 28 + Y adalah sebuah word. Selanjutnya, X adalah high-order byte, dan Y adalah low-order byte.

4.2. Struktur Dasar: SKIPJACK encrypts 4-word (Contoh: 8-byte) data blok pengganti antara dua langkah aturan (A dan B) yang diperlihatkan seperti dibawah ini.

Langkah dari aturan A seperti berikut :
4.2.1. G permutasi W1,
4.2.2. w1 yang baru adalah xor dari keluaran G, sebuah counter, dan w4
4.2.3. words w2 dan w3 pindah satu register ke kanan; contoh menjadi w3, dan w4 berurutan.
4.2.4. w2 yang baru adalah keluaran G
4.2.5. Counter adalah hasil dari kenaikan

Aturan B cara kerjanya sama.

4.3. Langkah-langkah Persamaan Peraturan.
Persamaan dibawah ini, superscript dari langkah-langkah angka.

Aturan A Aturan B

w1k+1 = Gk(w1k) Å w4k Å counterk w1k+1 = w4k

w2k+1 = Gk(w1k) w 2k+1 = Gk-1 (w1k)

w3k+1 = w2k w3k+1 = w1k Å w2k Å counterk

w4k+1 = w3k w1k+1 = Gk(w1k) Å w4k Å counterk


DECRYPT

Aturan A-1 Aturan B-1

w1k-1 = [Gk-1]-1 (w2k) w1k-1 = [Gk-1] (w2k)

w2k-1 = w3k w2k-1 = [Gk-1]-1 (w2k) Å w3k Å counterk-1
w3k-1 = w4k w3k-1 = w4k
w4k-1 = w1k Å w2k Å counterk-1 w4k-1 = w1k