hehehee

Rabu, 01 Desember 2010

syaraf manusia

JARINGAN SYARAF MANUSIA
Struktur sangat kompleks
Kemampuan luar biasa
Terdiri dari neuron dan penghubung
Mampu mengenali pola, melakukan perhitungan dan
mengontrol tubuh dengan kecepatan yang lebih tinggi
dari komputer digital
Otak mempunyai struktur yang menakjubkan karena
kemampuannya membentuk sendiri aturan/aturan atau pola
berdasarkan pengalaman
Jumlah dan kemampuanya berkembang seiring pertumbuhan
fisik manusia

kriptografi


KRIPTOGRAFI
Kriptografi telah dikenal dan dipakai cukup lama sejak kurang lebih tahun 1900
sebelum masehi pada prasasti-prasasti kuburan. Kriptografi sendiri berasal dari kata
“Crypto” yanng berarti rahasia dan “graphy” yang berarti tulisan. Jadi, dapat dikatakan
kriptografi adalah tulisan yang tersembunyi. Dengan adanya tulisan yang tersembunyi ini,
orang-orang yang tidak mengetahui bagaimana tulisan tersebut disembunyikan tidak akan
mengetahui bagaimana cara membaca maupun menerjemahkan tulisan tersebut. William
Stallings mendefinisikan kriptografi sebagai “the art and science of keeping messages
secure”.
Kriptografi menjadi dasar bagi keamanan komputer dan jaringan karena yang
menjadi pokok dari fungsi komputer dan jaringan adalah data ataupun informasi.
Komputer dan jaringannya menjadi sarana bagi distribusi data dan informasi, maka data
dan informasi tersebut harus diamankan agar hanya orang-orang yang berhak
mengaksesnya yang dapat mengetahui maupun menggunakan data tersebut. Salah satu
cara yang paling banyak digunakan dalam mengamankan data adalah dengan kriptografi.
Data-data tersebut diamankan dengan sedemikian rupa oleh pengirim sehingga orang
lalin tidak dapat mengenali data tersebut. Hal ini lebih dikenal dengan nama proses
enkripsi. Data atau pesan yang asli sering disebut sebagai plaintext dan data yang telah
dienkripsi disebut sebagai chipertext ata menurut terminologi yang lebih tepat enchiper.
Data yang telah dienkripsi disebut chipertext karena data asli (plaintext) telah mengalami
proses di dalam sebuah algoritma kriptografi atau lebih dikenal dengan nama chiper.
Kebalikannya, proses merubah pesan yang telah dienkripsi (chipertext) menjadi pesan
asli (plaintext) disebut sebagai proses dekripsi atau dechiper.
Perkembangan kriptografi memang sangat pesat. Para ahli kriptografi
(cryptographers) terus menerus menciptakan algoritma-algoritma kriptografi yang baru.
Hal ini dikarenakan pula semakin banyak orang-orang ahli yang mampu memecahkan
kode-kode chipertext ke dalam plaintext. Orang-orang ahli semacam ini sering disebut
sebagai cryptoanalysis. Ketika suatu algoritma kripografi sudah dapat dipecahkan, maka
diperlukan algoritma-algoritma baru yang lebih handal agar keamanan data tetap terjaga.
Hal ini menyebabkan kriptografi tak akan pernah berhenti berkembang.
Algoritma-algoritma kriptografi dapat dibedakan menjadi dua macam, yaitu :
simetrik dan asimetrik. Algoritma simetrik (model enkripsi konvensional) adalah
algoritma yang menggunakan satu kunci untuk proses enkripsi dan dekripsi data.
Sedangkan algoritma asimetrik (model enkripsi kunci publik) menggunakan kunci yang
berbeda dalam proses enkripsi dan dekripsi pesan. Pada bab ini kita akan lebih fokus ke
dalam model kriptografi simetrik atau konvensional dan model asimetrik akan dibahas
pada bab berikutnya.
2.1. Enkripsi Konvensional
Enkripsi konvensional sering disebut juga enkripsi simetrik atau enkripsi kunci
tunggal. Hal ini disebabkan karena enkripsi model ini menggunakan satu kunci yang
sama untuk proses enkripsi maupun proses dekripsi. Gambar di bawah ini
mengilustrasikan kinerja dari proses enkripsi konvensional.
Proses enkripsi terdiri dari sebuah algoritma dan sebuah kunci. Kunci adalah
sebuah nilai yang terlepas dari pesan asli (plaintext) dan mengontrol algoritma yang
dipakai. Penerapan algoritma akan menghasilkan output yang berbeda sesuai dengan
kunci yang digunakan. Merubah kunci berarti juga merubah output dari algoritma yang
dipakai. Setelah chipertext dihasilkan, chipertext tersebut dapat diubah kembali menjadi
pesan asli dengan algoritma dekripsi dan dengan kunci yang sama seperti yang digunakan
pada saat enkripsi.
Keamanan dari enkripsi konvensional ini terdiri dari beberapa faktor. Pertama,
algoritma enkripsi harus benar-benar teruji, sehingga tidak dimungkinkan untuk
mendekripsi sebuah pesan hanya dalam bentuk chipertext. Kedua, keamanan enkripsi
konvensional juga ditentukan oleh kerahasiaan kunci yang digunakan., bukan kerahasiaan
algoritma yang digunakan. Jadi, kita juga harus yakin bahwa dekripsi tidak
dimungkinkan hanya dengan mengetahui ciphertext dan algoritma yang dipakai tanpa
mengetahu kunci rahasia yang digunakan. Dengan kata lain, kita tidak perlu menjaga
kerahasiaan dari algoritma yang dipakai untuk enkripsi, melainkan harus menjaga
kerahasiaan dari kunci yang digunakan.
Bentuk umum enkripsi konvensional dapat dilihat dari contoh berikut. User A
akan mengenkripsi plaintext X = [X1,X2,….,XM] (M elemen dari X merupakan huruf dari
alphabet pesan) dengan kunci K = [K1,K2,…,KJ]. Dengan pesan X dan kunci K tersebut
akan dihasilkan chipertext Y = [Y1,Y2,…,YN]. Maka, kita dapat menuliskan rumus :
Y = EK(X)
Selanjutnya, chipertext tersebut dikirimkan ke user B. User B akan mendekripsi
chipertext tersebut agar menjadi pesan asli dengan algoritma dekripsi dan kunci yang
sama seperti yang digunakan pada saat enkripsi. Hal ini dapat dirumuskan sebagai
berikut:
X = DK(Y)
Musuh yang mendapatkan chipertext Y tetapi tidak mengetahui K maupun X harus
menemukan kembali K maupun X atau keduanya agar dapat mengetahui pesan aslinya.
Jika musuh tersebut hanya mengetahui sebagian dari pesan, maka dia harus
mengasumsikan K maupun X. Proses enkripsi, dekripsi dan cryptoanalysis dapat
digambarkan sebagai berikut :
Proses dari seorang cryptoanalyst untuk mengetahui plaintext dari chipertext yang
diketahuinya tergantung dari skema enkripsi dan informasi yang diketahui oleh
cryptoanalyst tersebut. Berbagai kemungkinan cryptoanalysist berdasarkan informasi
yang dimilikinya dapat dilihat dari tabel di bawah ini.
2.2 Teknik Enkripsi Klasik
Pada sesi ini, kita akan melihat beberapa contoh yang dapat dikategorikan sebagai
teknik enkripsi klasik. Meskipun teknik ini tidak lagi diterapkan di aplikasi keamanan
jaringan modern, pengetahuan tentang teknik-teknik ini akan sangat membantu kita untuk
meningkatkan ketertarikan akan kriptografi.
2.2.1. Steganografi
Sebuah pesan asli dapat disembunyikan dalam beberapa hal. Metode steganografi
ini mencoba menyembunyikan pesan ke dalam sesuatu yang lain, misalnya
menyembunyikan sebuah pesan di dalam pesan lain sehingga pesan asli tidak terlihat
secara langsung. Teknik-teknik steganografi telah banyak digunakan pada masa lalu, dan
di bawah ini kita dapat melihat beberapa contoh metode steganografi.
• Character Marking : Huruf-huruf dalam pesan ditulis atau dicetak menggunakan
pensil. Hasilnya, pesan tidak terlihat kecuali jika kertas pesan tersebut diletakkan
dibawah cahaya yang terang.
• Invisible Ink : Beberapa substansi dapat digunakan untuk menulis pesan tetapi
tidak meninggalkan jejak di kertas sampai panas atau bahan kimia tertentu dipakai
pada kertas.
• Pin punctures : beberapa tusukan pin-pin kecil pada kertas secara biasa tidak akan
kelihatan sampai kertas diletakkan pada sudut tertentu dengan cahaya terang.
• Typewriter correction ribbon : Penggunaan black ribbon untuk pengetikkan juga
dapat menyembunyikan pesan dan kemudian pesan harus dibaca dibawah cahaya
yang kuat.
Meskipun teknik-teknik tersebut kelihatan kuno, namun pada saat lalu, teknik ini
cukup manjur digunakan untuk menyembunyikan pesan. Contoh lain adalah
menyembunyikan pesan di dalam sebuah gambar atau foto.
Steganografi mempunyai banyak kekurangan jika dibandingkan dengan penggunaan
metode enkripsi. Jika teknik steganografi ini bocor atau diketahui orang lain, teknik yang
dipakai seakan sudah tidak berguna lagi. Salah satu contoh penggunaan teknik
steganografi dapat dilihat dari pesan berikut.
2.2.2. Teknik Substitusi
Teknik substitusi adalah sebuah teknik enkripsi yang menggunakan metode
pertukaran huruf pada plaintext dengan huruf lainnya atau dengan angka atau dengan
simbol tertentu. Jika plaintext dilihat sebagai sebuah urutan angka biner, maka substitusi
dilakukan dengan menukar patern bit plaintext dengan patern bit chipertext. Di bawah ini
ada beberapa contoh teknik substitusi
2.2.2.1. Caesar Cipher
Teknik enkripsi substitusi yang pertama kali dikenal dan paling sederhana
ditemukan oleh Julius Caesar. Metode yang digunakan dalam caesar chiper ini adalah
dengan mempertukarkan setiap huruf dari plaintext dengan huruf lain dengan interval 3
huruf dari huruf palintext. Sebagai contoh dapat dilihat di bawah ini :
Plain : meet me after the tofa party
Cipher : PHHW PH DIWHU WKH WRJD SDUWB
Model pertukaran dari metode ini adalah melingkar, artinya jika huruf plaintextnya
adalah Z maka chipertextnya adalah A. Kita dapat mendefinisikan transformasinya
sebagai berikut :
Plain : 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
Chiper : 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
Teknik semacam ini sangat memungkinkan cryptoanalyst untuk melakukan
pemecahan kode chipertext dengan mudah dengan mencoba 25 kunci yang
memungkinkan. Metode yang dapat dipakai oleh cryptoanalyst dengan mencoba seluruh
kemungkinan yang ada ini sering disebut metode brute-force. Tiga karakteristik dari
teknik caesar chiper yang memungkinkan brute-force cryptoanalysis adalah :
• Algoritma enkripsi dan dekripsi telah diketahui
• Hanya ada 25 kemungkinan kunci yang dapat dicoba
• Bahasa dari plaintext diketahui dan mudah dikenali.

2.2.2.2. Monoalphabetic Cipher
Dengan hanya 25 kemungkinan kunci, caesar chiper dapat dikatakan tidaklah
aman. Dengan penambahan interval kunci dapat menambah juga keamanan dari
ciphertext yang dihasilkan. Kembali kita lihat sebentar model caesar chiper yang telah
kita pelajari sebelumnya.
Plain : 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
Chiper : 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
Pengembangan dari caesar cipher adalah dengan memungkinkan adanya
permutasi dari ke-26 huruf alphabet yang ada. Maka, akan ada 26! Kemungkinan.
Bagaimanapun juga jika cryptoanalyst dapat mengetahui bentuk alami dari plaintext,
kemudian cryptoanalyst dapat mengeksploitasi susunan bahasa yang digunakan. Sebagai
contoh dari teknik ini adalah dengan melihat bagaimana seorang cryptoanalyst mencoba
memecahkan chipertext berikut :
Pada langkah awal, frekwensi relatif dari huruf-huruf tersebut dapat ditentukan
dan dibandingan dengan frekwensi distribusi standar untuk bahasa Inggris, seperti pada
tabel berikut ini :
Kemudian, frekwensi relatif dapat ditetapkan dalam persentase seperti di bawah ini :
Dengan membandingkan frekwensi relatif dan tabel distribusi standar, sedikit kelihatan
bahwa huruf P dan Z ekuivalen dengan huruf e dan t, tapi belum dapat ditentukan
pasangan yang tepat dari keduanya. Huruf S,U,O,M dan H mempunyai frekuensi relatif
yang tinggi dan mungkin ekuivalen dengan r,n,i,o,a,s. Huruf dengan frekwensi relatif
terendah, yaitu A,B,G,Y,I,J kelihatannya sesuai dengan w,v,b,k,x,q,j,z.
Dari point ini, ada banyak cara yang dapat dilakukan untuk melanjutkan proses
cryptoanalysis. Salah satu cara yang lebih efektif adalah dengan melihat frekuensi dari
kombinasi dua buah huruf. Hal ini sering kita sebut sebagai digraph. Secara umum,
digraph yang paling sering kita temui dalam bahasa Inggris adalah th. Di dalam
chipertext yang kita miliki, digraph yang sering kita temui adalah ZW (muncul tiga kali).
Jadi, kita dapat memasangkan Z dengan t dan W dengan h. Kemudian, dengan hipotesis
yang lebih seksama kita dapat memasangkan P dengan e. Sekarang kita dapat
menerjemahkan urutan ZWP dengan “the”. Maka, sejau ini kita telah memasangkan
beberapa huruf, sehingga dapat tersusun sebagai berikut :
Dari percobaan tersebut kita telah mengidentifikasi 4 huruf, tetapi telah menjadi
pesan yang mulai sedikit jelas. Dengan analisa yang lebih lanjut dan menggunakan
metode trial and error, kita dapat membentuk pesan yang utuh dengan tidak lupa
menambahkan spasi sehingga menjadi berikut :
Teknik monoalphabetic ini cukup mudah untuk dipecahkan karena teknik ini
menggambarkan frekuensi dari data asli. Langkah yang diambil untuk dapat
meningkatkan keamanan adalah dengan menerapkan lebih dari satu substitusi untuk huruf
tunggal. Hal ini sering disebut sebagai homophone. Sebagai contoh, huruf e dapat kita
substitusikan dengan simbol chiper yang berbeda, misalnya 16,17,18 atau 21.
2.2.2.3. Mulltiple Letter Encryption
Metode yang paling dikenal dari teknik ini adalah Playfair. Teknik Playfair
memperlakukan digraph sebagai satu unit dan menerjemahkan unit tersebut kedalam
digrap ciphertext. Algoritma Playfair adalah algoritma yang didasarkan pada penggunaan
matrix huruf berbasis 5x5 yang disusun dengan mengunakan kata kunci. Sebagai contoh :
Di dalam kasus ini, kata kuncinya adalah monarchy. Matrix dibentuk dengan
memasukkan kata kunci tersebut (tanpa duplikasi) dari kiri ke kanan dan dari atas ke
bawah, dan kemudian mengisi sisa elemen matrix yang kosong dengan sisa huruf alfabet
secara terurut. Huruf I dan J dihitung sebagai satu elemen matrix. Plaintext dienkripsi dua
huruf sekaligus dengan aturan sebagai berikut :
1. Huruf dari Plaintext yang terulang dipisahkan dengan huruf lain seperti X, jadi
jika plaintextnya ballon maka akan dimasukkan sebagai ba lx lo on.
2. Huruf-huruf dari plaintext yang masuk di dalam satu baris digantikan dengan
huruf ke kanan, dengan elemen pertama dari baris secara sirkular diikuti dengan
yang terakhir. Sebagai contoh, ar dienkripsi menjadi RM
3. Huruf yang berada pada satu kolom digantikan dengan huruf dibawahnya, dengan
elemen teratas dari baris secara sirkular diikuti dengan yang terakhir. Sebagai
contoh, mu dienkripsi sebagai CM.
4. Selain itu, setiap huruf plaintext digantikan dengan huruf yang berada di barisnya
sendiri dan di kolomnya diisi oleh huruf palaintext yang lain. Jadi, hs menjadi BP
dan ea menjadi IM (atau JM sesuai dengan keinginan).
2.2.2.4. Polyalphabetic Chipers
Metode lain yang dapat digunakan untuk memperbaiki kinerja dari teknik
monoalphabetic sederhana adalah dengan menggunakan substitusi monoalphabetic yang
berbeda sebagai satu proses di dalam plaintext. Pendekatan semacam ini disebut sebagai
polyalphabetic cipher. Semua teknik polyalpahbetic mempunyai beberapa karakteristik
umum :
1. Sekumpulan aturan substitusi monoalphabetic yang terkait digunakan
2. Sebuah kunci menentukan bagian aturan mana yang dipilih untuk transformasi
Teknik yang paling dikenal dan paling sederhana adalah Vigenere Cipher. Di
dalam skema ini, sekumpulan aturan substitusi monoalphabetic yang terdiri dari 26 caesar
cipher digunakan, dengan perubahan dari 0 sampai dengan 25. Setiap cipher ditunjukkan
dengan sebuah huruf kunci, yang merupakan huruf chipertext yang menggantikan hurufhuruf
plaintext. Jadi, caesar cipher dengan perubahan 3 ditunjukkan dengan huruf
kunci d.
Masing-masing dari 26 cipher disusun secara horisontal dan alphabet normal
disusun secara vertikal. Proses dari enkripsi sangatlah sederhana, yaitu jika huruf kunci
adalah x dan huruf plaintext adalah y, maka huruf ciphertect adalah intersepsi dari baris
dengan label x dan kolom dengan label y.
Untuk mengenkripsi sebuah pesan, sebuah kunci dibutuhkan seusai dengan
jumlah huruf dari plaintext. Biasanya, kunci tersebut merupakan kata-kata kunci yang
diulang-ulang sesuai dengan panjang plaintext. Sebagai contoh kata kuncinya adalah
deceptive dan pesannya adalah “we are discovered save yourself”.
Proses dekripsi juga cukup sederhana. Huruf kunci kembali menunjukkan baris.
Posisi dari huruf ciphertext pada baris tersebut menentukan kolom, dan huruf
palintextnya terletak di kolom paling atas.
Kekuatan dari cipher ini adalah adanya banyak huruf ciphertext untuk setiap huruf
plaintext, satu untuk setiap huruf unik dari huruf kunci. Jadi, informasi frekuensi huruf
menjadi tidak jelas.
2.2.2.5. Transposition Techniques
Seluruh teknik yang telah dipelajari di atas mengikutsertakan substitusi simbol
ciphertext untuk sebuah simbol dari plaintext. Metode yang berbeda didapat dengan
adanya permutasi singkat untuk huruf-huruf plaintext. Teknik ini disebut sebagai
transposition cipher.
Teknik yang paling sederhana adalah teknik rail fence, dimana plaintext ditulis
dengan urutan kolom dan dibaca sebagai urutan baris. Sebagai contoh untuk
mengenkripsi pesan “meet me after the toga party” dengan metode rail fence dengan
kedalaman 2, kita dapat menuliskan sebagai :
mematrhtgpry
etefeteoaat
Pesan yang telah dienkripsi adalah :
MEMATRHTGPRYETEFETEOAAT
Metode ini cukup mudah dipeccahkan. Skema yang lebih kompleks adalah
dengan menuliskan pesan sebagai sebuah kotak, baris demi baris, dan membaca pesan itu
kolom demi kolom, tetapi dengan permutasi dari urutan kolom. Urutan kolom kemudian
menjadi kunci dari algoritma.
Key : 4 3 1 2 5 6 7
Plaintext : a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
Ciphertext : TTNAAPTMTSUOAODWCOIXKNLYPETZ
Transposisi yang murni juga mudah dikenali karena mempunyai frekuensi huruf
yang sama dengan plaintext. Transposition cipher dapat dibuat lebih aman secara
signifikan dengan melakukan lebih dari satu level permutasi. Hasilnya adalah lebih
permutasi yang lebih kompleks dan sulit untuk direkonstruksi menjadi plaintext.
Key : 4 3 1 2 5 6 7
Input : t t n a a p t
m t s u o a o
d w c o i x k
n l y p e t z
Output : NSCYAUOPTTWLTMDNAOIEPAXTTOKZ
2.2.2.5. Mesin Rotor
Salah satu contoh yang terkenal pada saat perang dunia kedua adalah mesin rotor
Enigma. Mesin rotor Enigma merupakan sebuah alat enkripsi dan dekripsi mekanik.
Mesin ini terdiri dari beberapa rotor dan kabel yang saling menyilang yang menyebabkan
substitusi alfabet yang selalu berubah, sehingga Enigma mengimplementasikan
polyalphabetic cipher.
2.3. Data Encryption Standard (DES)
Skema enkripsi yang paling umum digunakan saat ini adalah Data encryption
Standard (DES). DES diadopsi pada tahun 1977 oleh National Bureau of Standards, atau
sekarang disebut sebagai National Institute of Standards and Technology (NIST), sebagai
Federal Information Processing Standard 46 (FIPS PUB 46). Di dalam DES, data
dienkripsi di dalam 64 bit blok dengan menggunakan 56 bit kunci. Algoritma DES
mengubah 64 bit input di dalam berbagai langkah menjadi 64 bit output. Langkah yang
sama, dengan kunci yang sama, digunakan untuk mendekripsi ciphertext yang dihasilkan.
Pada tahun 1960, IBM memulai sebuah proyek di dalam kriptografi komputer
yang dipimpin oleh Horst Feistel. Proyek ini selesai pada tahu 1971 dengan
pengembangan algoritma yang disebut sebagai LUCIFER [FEIS73], yang dijual kepada
Lloyd’s of London untuk digunakan pada sistem penyaluran uang tunai, yang juga
dikembangkan oleh IBM. LUCIFER adalah blok cipher yang beroperasi pada 64 bit blok,
dengan menggunakan ukuran kunci 128 bit. Karena hasil yang menjanjikan, IBM
kemudian mengembangkan sistem ini secara komersial. Usaha ini dipimpin oleh Walter
tuchman dan Carl Meyer, dan tidak hanya melibatkan IBM saja, tetapi juga konsultan
luar dan nasehat yang bersifat teknikal dari NSA. Hasilnya, muncul LUCIFER versi baru
yang lebih tahan terhadap cryptoanalyst tetapi dengan mengurangi ukuran kunci menjadi
56 bit sehingga dapat diimplementasikan pada sistem dengan prosesor tunggal.
Sementara itu, National Bureau of Standards (NBS) pada tahun 1973
mengeluarkan permintaan untuk standard chiper nasional. IBM mengirimkan hasil dari
proye Tuchman-Meyer. Ini adalah algoritma terbaik yang diajukan dan diadopsi sebagai
Data Encryption Standard.
DES bekerja dalam model bit , atau angka biner 0 dan 1. Setiap kelompok dari 4
bit membentuk hexadesimal, atau bilangan berbasis 16. Anka biner 0001 membentuk
angka hexa 1, dan seterusnya. DES bekerja dengan mengenkripsi setiap group yang
terdiri dari 64 bit data. Untuk melakukan enkripsi, DES membutuhkan kunci yang juga
mempunyai ukuran 64 bit, namun dalam prakteknya bit ke 8 dari setiap kelompok 8 bit
diabaikan, sehingga ukuran kunci menjadi 56 bit. Sebagai contoh, jika kita ingin
mengenkripsi pesan “8787878787878787" dengan kunci “0E329232EA6D0D73”, maka
akan dihasilkan ciphertext "0000000000000000”. Jika ciphertext tersebut didekripsi
dengan menggunakan kunci yang sama, maka outputnya adalah pesan asli.
Bagaimana DES bekerja secara detail?
DES adalah sebuah “block cipher”, artinya, DES bekerja dalam plaintext dengan
ukuran yang telah diberikan (64 bit) dan mengembalikan ciphertext dengan ukuran yang
sama pula. Cara kerja dari DES secara umum dapat dilihat dalam gambar berikut :
Untuk dapat lebih mudah memahami prinsip kerja DES, kita dapat mengambil contoh
jika kita akan mengenkripsi plaintext M = 0123456789ABCDEF, dimana M adalah
dalam format hexadesimal, maka kita dapat menuliskan M di dalam format angka biner.
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
L = 0000 0001 0010 0011 0100 0101 0110 0111
R = 1000 1001 1010 1011 1100 1101 1110 1111
Bit pertama dari M adalah 0 dan bit terakhir adalah 1 dengan membaca dari kiri ke kanan.
Jika kita mempunyai kunci K = 133457799BBCDFF1, maka kita juga harus
menuliskannya di dalam format angka biner sebagai berikut :
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
Langkah 1 : Menciptakan 16 anak kunci, dan setiap anak kunci berukuran 48 bit
Ke-64 bit kunci yang telah ditentukan dipermutasikan sesuai dengan tabel PC-1. Elemen
pertama dari tabel tersebut adalah 57, artinya, bit ke-57 dari kunci menjadi bit pertama
dari kunci yang telah dipermutasikan (K+). Bit ke 49 menjadi bit kedua pada K+ dan
seterusnya sampai bit ke-4 dari kunci dipermutasikan menjadi bit terakhir pada K+. Ingat
bahwa hanya 56 bit kunci yang akan muncul di dalam kunci yang telah dipermutasi.
PC-1
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
Sebagai contoh : dari kunci 64 bit yang asli :
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
Kita mendapat kunci permutasi 56 bit :
K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
Selanjutnya bagi dua kunci permutasi tersebut menjadi C0 dan D0, dimana setiap bagian
mempunyai ukuran 28 bit
C0 = 1111000 0110011 0010101 0101111
D0 = 0101010 1011001 1001111 0001111
Setelah C0 didefinisikan, sekarang kita dapat membuat 16 blok Cn dan Dn, 1<=n<=16.
Setiap pasang dari blok Cn dan Dn dibentuk dari pasangan Cn-1 dan Dn-1, secara berulang
untuk n = 1,2,…,16 menggunakan aturan “left shift” dari blok sebelumnya. Untuk
melakukan metode “left shift”, pindahkan setiap bit ke kiri kecuali bit pertama yang akan
berpindah ke bit terakhir.
Iteration Number of
Number Left Shifts
1 1
2 1
3 2
4 2
5 2
6 2
7 2
8 2
9 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1
Ini berarti, misalnya C3 dan D3 dihasilkan dari C2 dan D2 berturut-turut, dengan
pergeseran ke kiri dua langkah, dan seterusnya.
C0 = 1111000011001100101010101111
D0 = 0101010101100110011110001111
C1 = 1110000110011001010101011111
D1 = 1010101011001100111100011110
C2 = 1100001100110010101010111111
D2 = 0101010110011001111000111101
C3 = 0000110011001010101011111111
D3 = 0101011001100111100011110101
C4 = 0011001100101010101111111100
D4 = 0101100110011110001111010101
C5 = 1100110010101010111111110000
D5 = 0110011001111000111101010101
C6 = 0011001010101011111111000011
D6 = 1001100111100011110101010101
C7 = 1100101010101111111100001100
D7 = 0110011110001111010101010110
C8 = 0010101010111111110000110011
D8 = 1001111000111101010101011001
C9 = 0101010101111111100001100110
D9 = 0011110001111010101010110011
C10 = 0101010111111110000110011001
D10 = 1111000111101010101011001100
C11 = 0101011111111000011001100101
D11 = 1100011110101010101100110011
C12 = 0101111111100001100110010101
D12 = 0001111010101010110011001111
C13 = 0111111110000110011001010101
D13 = 0111101010101011001100111100
C14 = 1111111000011001100101010101
D14 = 1110101010101100110011110001
C15 = 1111100001100110010101010111
D15 = 1010101010110011001111000111
C16 = 1111000011001100101010101111
D16 = 0101010101100110011110001111
Kini kita membentuk kunci Kn, untuk 1<=n<=16, dengan menerapkan permutasi sesuai
dengan petunjuk tabel untuk setiap gabungan antara Cn dan Dn. Setiap pasang
mempunyai ukuran 56 bit, tetapi permutasi ini hanya akan menggunakan 48 bit
diantaranya.
PC-2
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
Sebagai contoh, kita mempunyai
C1D1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110
Setelah permutasi PC-2 menjadi :
K1 = 000110 110000 001011 101111 111111 000111 000001 110010
Untuk yang lain dapat dibentuk sebagai berikut :
K2 = 011110 011010 111011 011001 110110 111100 100111 100101
K3 = 010101 011111 110010 001010 010000 101100 111110 011001
K4 = 011100 101010 110111 010110 110110 110011 010100 011101
K5 = 011111 001110 110000 000111 111010 110101 001110 101000
K6 = 011000 111010 010100 111110 010100 000111 101100 101111
K7 = 111011 001000 010010 110111 111101 100001 100010 111100
K8 = 111101 111000 101000 111010 110000 010011 101111 111011
K9 = 111000 001101 101111 101011 111011 011110 011110 000001
K10 = 101100 011111 001101 000111 101110 100100 011001 001111
K11 = 001000 010101 111111 010011 110111 101101 001110 000110
K12 = 011101 010111 000111 110101 100101 000110 011111 101001
K13 = 100101 111100 010111 010001 111110 101011 101001 000001
K14 = 010111 110100 001110 110111 111100 101110 011100 111010
K15 = 101111 111001 000110 001101 001111 010011 111100 001010
K16 = 110010 110011 110110 001011 000011 100001 011111 110101
Langkah 2 : Enkripsi setiap 64 bit blok plaintext
Langkah yang harus kita lakukan adalah menyusun 64 bit data plaintext M sesuai dengan
tabel Initial Permutation di bawah ini.
IP
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
Dengan permutasi plaintext M sesuai dengan tabel IP tersebut kita dapatkan :
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010
Selanjutnya kita bagi blok IP tersebut menjadi dua bagian L0 dan R0 dengan masingmasing
mempunyai ukuran 32 bit.
L0 = 1100 1100 0000 0000 1100 1100 1111 1111
R0 = 1111 0000 1010 1010 1111 0000 1010 1010
Kita lanjutkan dengan melakukan 16 iterasi untuk 1<=n<=16, dengan menerapkan fungsi
f yang mengoperasikan dua blok data dari masing-masing 32 bit dan kunci 48 bit Kn
untuk menghasilkan 32 bit data. Rumus yang digunakan adalah :
Ln = Rn-1
Rn = Ln-1 + f(Rn-1,Kn)
Catatan : tanda + menunjukkan operasi penambahan XOR (bit demi bit dengan modulo
2)
Sebagai contoh untuk n=1 kita dapatkan :
K1 = 000110 110000 001011 101111 111111 000111 000001 110010
L1 = R0 = 1111 0000 1010 1010 1111 0000 1010 1010
R1 = L0 + f(R0,K1)
Untuk menghitung f, pertama kita harus mengembangkan setiap blok Rn-1 dari 32 bit
menjadi 48 bit. Untuk melakukan hal ini, kita membutuhkan fungsi selection table E
E BIT-SELECTION TABLE
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
Contoh : kita menghitung E(R0) dari R0 sebagai berikut
R0 = 1111 0000 1010 1010 1111 0000 1010 1010
E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101
Selanjutnya, untuk perhitungan f, kita lakukan operasi XOR pada E(Rn-1) dengan kunci
Kn :
Kn + E(Rn-1)
Sebagai contoh untuk K1, E(R0) :
K1 = 000110 110000 001011 101111 111111 000111 000001 110010
E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101
K1+E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111
Kita belum selesai dalam perhitungan f, selanjutnya kita lakukan sebuah operasi pada
setiap grup yang terdiri dari 6 bit. Kita gunakan setiap grup tersebut sebagai alamat pada
tabel “S-boxes”. Dari hasil sebelumnya kita tentukan :
Kn + E(Rn-1) =B1B2B3B4B5B6B7B8
Dimana setiap Bi terdiri dari 6 bit, maka kita dapat menghitung :
S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8)
dengan Si(Bi) menunjukkan keluaran dari S box ke-I
S1
Column Number
Row
No. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
Jika B adalah 6 bit blok, maka S1(B) ditentukan sebagai berikut :
Bit pertama dan terakhir dari B mewakili bilangan desimal 0-3 (00-11). Anggap bilangan
ini sebagai i. 4 bit tengah lainnya mewakili bilangan desimal 0-15 (0000-1111) dan
anggap bilangan ini sebagai j. Dengan demikian kita dapat melihat i sebagai baris dan j
sebagai kolom. Sebagai contoh jika input B = 011011, maka i = 01 = 1 dan j = 1101 =13.
Pada baris 1 dan kolom 13 kita dapatkan nilai 5, jadi outputnya adalah 0101.
Tabel S1,…,S8 adalah sebagai berikut :
S1
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S3
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S4
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S5
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S6
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S7
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S8
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
Contoh untuk perhitungan pertama :
K1 + E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111.
S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = 0101 1100 1000 0010 1011 0101 1001 0111
Tahap terakhir dalam perhitungan f adalah dengan melakukan permutasi P dari output
tersebut.
f = P(S1(B1)S2(B2)...S8(B8))
Dengan tabel permutasi P sebagai berikut :
P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
Contoh :
S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = 0101 1100 1000 0010 1011 0101
1001 0111
we get
f = 0010 0011 0100 1010 1010 1001 1011 1011
R1 = L0 + f(R0 , K1 )
= 1100 1100 0000 0000 1100 1100 1111 1111
+ 0010 0011 0100 1010 1010 1001 1011 1011
= 1110 1111 0100 1010 0110 0101 0100 0100
Selanjutnya kita harus menghitung L2 = R1 dan kemudian menghitung R2 = L1+ f(R1,K2)
dan seterusnya sampai iterasi ke-16 sehingga pada iterasi terakhir kita sudah mempunyai
L16 dan R16. Kemudian kita balik urutannya menjadi R16L16.
Dan menerapkan permutasi terakhir IP-1 dengan tabel berikut :
IP-1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
Contoh : jika kita telah menyelesaikan ke 16 iterasi, kita dapatkan L16 dan R16
L16 = 0100 0011 0100 0010 0011 0010 0011 0100
R16 = 0000 1010 0100 1100 1101 1001 1001 0101
Selanjutnya kita balik dan terapkan permutasi akhir :
R16L16 = 00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100
IP-1 = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101
Di dalam bilangan hexa kita dapatkan 85E813540F0AB405 dan ini merupakan chipertext
dari plaintext M = 0123456789ABCDEF dengan nama C = 85E813540F0AB405.
Untuk proses dekripsi kita dapat membalik proses enkripsi tersebut dengan kunci yang
sama.
Mode Operasi DES
Algoritma DES mengubah 64 bit plintext menjadi 64 bit chipertext. Ada 4 model
operasi DES jika dilihat dari implementasinya ke dalam aplikasi.
Electronic Codebook (EBC)
Model operasi EBC adalah implementasi DES yang paling sederhana. Setiap 64
bit plaintext dikodekan sendiri-sendiri menjadi chipertext dengan kunci yang sama. Jadi,
jika plaintext terdiri dari 128 bit, maka setiap 64 bit akan dikodekan secara terpisah.
Model semacam ini biasa diimplementasikan pada aplikasi yang terkait dengan transmisi
data tunggal atau data yang tidak terlalu besar seperti transmisi kunci. Jadi, jika anda
ingin mentransmisikan kunci untuk enkripsi atau dekripsi, anda dapat menggunakan
model operasi ECB ini.
Chiper Block Chaining (CBC)
Model ini mempunyai mekanisme yang sedikit berbeda dengan ECB. Di dalam
model ini, data tetap dibagi menjadi beberapa blok, masing-masing 64 bit. Perbedaannya
adalah input dari algoritma DES adalah hasil operasi XOR dari chipertext yang telah
dihasilkan sebelumnya dengan plaintext yang akan dienkripsi. Untuk enkripsi pada 64 bit
blok pertama diperlukan vektor inisialisasi yang digunakan untuk operasi XOR dengan
plaintext yang akan dienkripsi. Maka, baik pengirim maupun penerima harus mengetahui
nila vektor inisialisasi untuk dapat melakukan enkripsi maupun dekripsi. Aplikasi yang
biasa diimplentasikan adalah aplikasi transmisi data yang berbasis blok atau aplikasi
otentifikasi.
Chiper Feedback (CFB)
Model ini tidak perlu menunggu pembagian data menjadi beberapa blok yang
berukuran 64 bit, sehingga dapat diimplementasikan secara real time. Model ini
menggunakan metode enkripsi untuk beberapa karakter dari plaintext. Karakter-karakter
pada plaintext dapat dienkripsi dan ditransmisikan secara langsung dengan menggunakan
stream chiper yang berorientasi karakter. Model ini sering diimplementasikan di dalam
aplikasi transmisi yang berorientasi pada stream atau juga pada aplikasi otentifikasi.
Output Feedback (OFB)
Model ini mempunyai struktur yang sama dengan model EFB, tetapi input dari
algoritma adalah output dari algoritma DES sebelumnya. Model ini dapat
diimplementasikan pada aplikasi transmisi yang berorientasi pada stream yang berada
pada chanel yang sibuk atau padat (satelit, dsb).
Triple DES
Triple DES adalah pengembangan dari algoritma DES. Pada dasarnya algoritma
yang digunakan adalah sama, hanya dikembangkan dengan menggunakan dua kunci yang
berukuran 56 bit. Kunci pertama digunakan untuk enkripsi pesan dan kunci kedua
digunakan untuk dekripsi pesan. Perkembangan yang lain adalah Triple DES ini
melakukan enkripsi dengan implementasi algoritma DES sebanyak 3 kali.

Rabu, 03 November 2010

keceriaan waktu mendapat pembagian
pokoe mak nyusssssssss........