Kamis, 26 Juni 2008

Enkripsi RC4 part 1

Algoritma RC4

RC4 merupakan stream cipher yang didesain oleh Rivest untuk RSA Data Security
(sekarang RSA Security) pada 1987. RC4 menggunakan panjang variabel kunci dari
1 s.d 256 byte untuk menginisialisasi state table. State table digunakan untuk
pengurutan menghasilkan byte pseudo-random yang kemudian menjadi stream pseudo-random. Setelah di-XOR dengan plaintext sehingga didapatkan ciphertext. Tiap elemen pada state table di swap sedikitnya sekali. Kunci RC4 sering dibatasi sampai
40 bit, tetapi dimungkinkan untuk mengunakan kunci 128 bit. RC4 memiliki kemampuan penggunaan kunci antara 1 sampai 2048 bit.

Panjang kunci merupakan faktor utama dalam sekuritas data. RC4 dapat memiliki
kunci sampai dengan 128 bit. Protokol keamanan SSL (Secure Socket Layer) pada
Netscape Navigator menggunakan algoritma RC4 40-bit untuk enkripsi simetrisnya.
Tahun 1995, Damien Doligez menjebolnya menggunakan 120 komputer Unix yang terhubung pada jaringan dalam waktu 8 hari. Dengan cara seperti ini (Brute Force Attack), dijamin bahwa dalam 15 hari kunci itu pasti ditemukan.

Algoritma RC4 memiliki dua fase, setup kunci dan pengenkripsian. Setup untuk
kunci adalah fase pertama dan yang paling sulit dalam algoritma ini. Dalam setup
N-bit kunci (N merupakan panjang dari kunci), kunci enkripsi digunakan untuk
menghasilkan variabel enkripsi yang menggunakan dua buah array, state dan kunci,
dan sejumlah-N hasil dari operasi penggabungan. Operasi penggabungan ini terdiri
dari pemindahan(swapping) byte, operasi modulo, dan rumus lain. Operasi modulo
merupakan proses yang menghasilkan nilai sisa dari satu pembagian. Sebagai contoh,
11 dibagi 4 adalah 2 dengan sisa pembagian 3; begitu juga jika tujuh modulo empat maka
akan dihasilkan nilai tiga.

Dahulu, variabel enkripsi dihasikan dari setup kunci dimana kunci akan di XOR-kan
dengan plain text untuk menghasilkan teks yang sudah terenkripsi. XOR merupakan
operasi logik yang membandingkan dua bit biner. Jika bernilai beda maka akan
dihasilkan nilai 1. Jika kedua bit sama maka hasilnya adalah 0. Kemudian penerima
pesan akan mendekripnya dngan meng XOR-kan kembali dengan kunci yang sama agar
dihasilkan pesan dari plain text tersebut.

Untuk menunjukan cara kerja dari algoritma RC4, berikut akan dijelaskan dengan
menggunakan empat-bit kunci, agar terlihat sederhana.

Buat array state Si berukuran 4 byte, yang memiliki nilai 0 sampai dengan 3
Si = 0 1 2 3
S0 S1 S2 S3

Buat array kunci Ki berukuran 4 byte, yang memiliki nilai pengulangan dari
kunci untuk memuat keseluruhan isi array. (sebagai contoh 1 dan 7)
Ki = 1 7 1 7
K0 K1 K2 K3

Untuk operasi penggabungan akan digunakan variabel i dan f untuk meng-index
array Si dan Ki . Pertama inisialisasikan i dan f dengan nilai 0. operasi penggabungan
merupakan iterasi dari formula ( f + Si + Ki ) mod 4 diikuti penggantian(swap)
nilai Si dan Sf.

Iterasi pertama
for i = 0 ( 0 + 0 + 1 ) mod 4 = 1 = f
f S0 K0

Swap S0 dengan S1
Si = 1 0 2 3
S0 S1 S2 S3

Iterasi kedua
for i = 1 ( 1 + 0 + 7 ) mod 4 = 0 = f
f S1 K1


Swap S1 dengan S0
Si = 0 1 2 3
S0 S1 S2 S3

Iterasi ketiga
for i = 2 ( 0 + 2 + 1 ) mod 4 = 3 = f
f S2 K2

Swap S2 dengan S3
Si = 0 1 3 2
S0 S1 S2 S3

Iterasi keempat
for i = 3 ( 3 + 0 + 7 ) mod 4 = 2= f
f S3 K3

Swap S3 dengan S2
Si = 0 1 2 3
S0 S1 S2 S3

Tentukan nilai byte acak untuk enkripsi. Inisialisasi ulang i dan f menjadi
0, set i menjadi (i + 1) mod 4 dan set f menjadi (f + Si) mod 4. Lalu swap Si
dan Sf.

Set t menjadi (Si + Sf) mod 4, nilai acak untuk enkripsi adalah St
( 0 + 1) mod 4 = 1 = i
i
( 0 + 2 ) mod 4 = 2 = f
f Si

Swap S1 dengan S2
Si = 1 0 2 3
S0 S1 S2 S3
t = 3 ( 0 + 2 ) mod 4 = 2= f
S1 S2

S2 = 2

Dua (nilai biner = 00000010), variabel enkripsi ini lalu di XOR-kan dengan
plain text untuk menghasilkan ciphertext. Sebagai contoh akan digunakan pesan
“HI”.
H I
0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1
XOR 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0
0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1

::bersambung…

mesin penerjemah,.^


Mesin-mesin penerjemah dari bahasa Inggris ke Indonesia merupakan salah satu bidang riset dari komputasi linguistik.
Penelitian mengenai komputasi linguistik dilakukan oleh BPPT dengan proyeknya yaitu Multilingual Machine Translation System (MMTS), yang menghasilkan Kamus Elektronik Bahasa Indonesia (KEBI) dengan kemampuan pencarian akar kata dan padanannya dalam bahasa Inggris. Penelitian sejenis juga dilakukan oleh Pusat Ilmu Komputer Universitas Indonesia.
Berbagai metode proses penerjemahan akan dikaji dalam penelitian ini, tidak hanya dibatasi pada tata bahasa bebas konteks (contex-free grammar), tetapi juga akan membahas semantik bahasa (context sensitive). Algoritma yang dihasilkan dari kajian ini akan diimplementasikan ke dalam suatu perangkat lunak berbasis web.
Hasil pengujian menunjukkan bahwa sistem mampu menerjemahkan 5 macam pewaktuan tata bahasa Inggris, yaitu bentuk lampau, telah selesai dikerjakan, sekarang, sedang dikerjakan, dan bentuk masa datang. Beberapa kalimat majemuk, kalimat majemuk bertingkat, dan kalimat tanya juga berhasil diterjemahkan. Perbandingan dengan perangkat lunak lain di pasaran menunjukkan sistem lebih mampu menangani masalah context sensitive.

Public Key Cryptography dan Fungsi Satu Arah

Public key cryptography (lawan dari symmetric key cryptography) bekerja berdasarkan fungsi satu arah. Fungsi yang dapat dengan mudah dikalkulasi akan tetapi sangat sulit untuk dibalik/invers atau reverse tanpa informasi yang mendetail. Salah satu contoh adalah faktorisasi; biasanya akan sulit untuk memfaktorkan bilangan yang besar, akan tetapi mudah untuk melakukan faktorisasi. Contohnya, akan sangat sulit untuk memfaktorkan 4399 daripada memverifikasi bahwa 53 x 83 = 4399. Public key cryptography menggunakan sifat-sifat asimetrik ini untuk membuat fungsi satu arah, sebuah fungsi dimana semua orang dapat melakukan satu operasi (enkripsi atau verifikasi sign) akan tetapi sangat sulit untuk menginvers operasi (dekripsi atau membuat sign) tanpa informasi yang selengkap-lengkapnya.
Public key cryptography dilakukan dengan menggabungkan secara kriptografi dua buah kunci yang berhubungan yang kita sebut sebagai pasangan kunci publik dan kunci privat. Kedua kunci tersebut dibuat pada waktu yang bersamaan dan berhubungan secara matematis. Secara matematis, kunci privat dibutuhkan untuk melakukan operasi invers terhadap kunci public dan kunci publik dibutuhkan untuk melakukan operasi invers terhadap operasi yang dilakukan oleh kunci privat.
Jika kunci publik didistribusikan secara luas, dan kunci privat disimpan di tempat yang tersembunyi maka akan diperoleh fungsi dari banyak ke satu. Semua orang dapat menggunakan kunci publik untuk melakukan operasi kriptografi akan tetapi hanya orang yang memegang kunci privat yang dapat melakukan invers terhadap data yang telah terenkripsi tersebut. Selain itu dapat juga diperoleh fungsi dari satu ke banyak, yaitu pada saat orang yang memegang kunci privat melakukan operasi enkripsi maka semua orang yang memiliki kunci publik dapat melakukan invers terhadap data hasil enkripsi tersebut

^^

Public Key Crypography

Kriptografi merupakan kumpulan teknik untuk mengenkode data dan pesan sedemikian sehingga data dan pesan tersebut dapat disimpan dan ditransmisikan dengan aman. Berikut ini beberapa terminologi dasar dari kriptografi serta hal-hal yang berkaitan dengan terminologi tersebut,

· Kriptografi dapat digunakan untuk meningkatkan keamanan komunikasi meskipun komunikasi tersebut dilakukan dengan media komunikasi yang sangat tidak aman (misalnya Internet). Kita juga dapat menggunakan kriptografi untuk melakukan enkripsi file-file sensitif kita, sehingga orang lain tidak dapat mengartikan data-data yang ada
· Kriptografi dapat digunakan untuk memberikan jaminan integritas data serta menjaga kerahasiaan
· Dengan menggunakan kriptografi, maka sangat mungkin untuk meverifikasi asal data dan pesan yang ada menggunakan digital signature
· Pada saat menggunakan metoda kriptografi, hanya kunci sesi yang harus tetap dijaga kerahasiannya. Algoritma, ukuran kunci dan format file dapat dibaca oleh siapapun tanpa mempengaruhi keamanan.

Kriptografi memungkinkan beberapa operasi atau proses terhadap data. Dua buah operasi dasar adalah enkripsi (dengan dekripsi sebagai proses balikannya) dan signing (dengan verifikasi dari signature sebagai proses balikannya). Enkripsi analog dengan memasukkan surat kedalam sebuah amplop sedangkan dekripsi analog dengan membuang amplop dan mengambil data. Signature analog dengan pemberian tanda-tangan terhadap sebuah dokumen dan penanda bahwa dokumen tersebut tidak berubah dari aslinya.

Daftar Blog Saya

Entri Populer