Sniffing to Eavesdrop Packet yang merupakan data seperti Akses HTTP, Email dll, yang melewati transmisi wireless gelombang dapat dengan mudah juga ditangkap dan dianalisa oleh attacker dengan menggunakan aplikasi “Packet Sniffer”
Deniel Of service attack Inilah serangan yang paling ditakutkan oleh para Admin. Denial Of service memang relatif sulit untuk dicegah. Serangan ini dapat menimbulkan downtime pada jaringan. Tool gratisan seperti Wireless LANJack dan hunter_killer mampu melakukan serangan ini. Serangan ini bisa saja diarahkan pada user biasa agar user tersebut tidak bisa terkoneksi dengan suatu access point. Tujuannya tak lain adalah supaya tidak ada pengguna yang bisa menggunakan layanan jaringan Karena adanya kekacauan lalulintas data (penolakan layanan). Serangan jenis ini yaitu dengan membanjiri/flooding yang mengakibatkan sinyal wireless berbenturan dan menghasilkan packet-packet yang rusak. Seorang penyusup bisa saja mengelabui Extensible Authentication Protocol (EAP) untuk melakukan serangan DoS terhadap suatu server. Aksi ini dibarengi dengan melakukan flooding data. Dengan demikian maka tidak ada satu pun user yang bisa melakukan koneksi dengan layanan jaringan.
Man in the middle attack “Man-in-the-middle”. Sebenarnya ini adalah sebutan bagi sang penyusup. Serangan Man-in-the-Middle dilakukan dengan mengelabui koneksi VPN antara komputer pengguna resmi dan access point dengan cara memasukkan komputer lain di antara keduanya sebagai pancingan. Jenis serangan ini hampir sama dengan jenis serangan pada jaringan kabel. Program yang digunakan juga sama, kecuali perangkat wirelessnya. Dengan menggunakan sebuah program, penyusup mampu memosisikan diri di antara lalu lintas komunikasi data dalam jaringan nirkabel. Serangan seperti ini mudah dilakukan dengan bantuan software yang tepat, misalnya saja Wireless LANJack atau AirJack. Akan tetapi serangan jenis ini juga relatif mudah dicegah dengan IDS yang handal yang mampu memonitoring 24 jam sehari.
Rogue/Unauthorized Access Point Rogue AP ini merupakan ancaman karena adanya AP liar yang dipasang oleh orang yang ingin Menyebarkan/memancarkan lagi tranmisi wireless dengan cara illegal/tanpa izin, yang menyebabkan penyerang dapat menyusup di jaringan melalui AP rogue ini.
Access Point yang dikonfigurasi tidak benar Hal ini sangat banyak terjadi karena kurangnya pemahaman dalam mengkonfigurasi system keamanan AP.
Network Injection Apabila sebuah access point terhubung dengan jaringan yang tidak terfilter secara baik, maka penyusup berpotensi untuk melakukan aksi boardcast – seperti spanning tree (802.1D), OSPF, RIP, dan HSRP. Dalam kondisi ini, maka semua perangkat jaringan akan sibuk dan tidak mampu lagi bekerja sebagaimana mestinya. Routing attack juga termasuk dalam serangan jenis ini. Sang penyusup bisa melakukan hal ini dengan mudah menggunakan program seperti IRPAS, yang dipergunakan untuk melakukan injeksi data pada update routing di jaringan, mengubah gateway, atau menghapus table routing yang ada.
Kegiatan yang mengancam keamanan jaringan wireless tersebut di atas dilakukan dengan cara-cara yang dikenal dengan nama Warchalking, WarDriving, WarFlying, WarSpamming, WarSpying dll. Banyaknya Access Point/Base Station yang dibangun yang seiring dengan mulai murahnya biaya berlangganan koneksi internet maka kegiatan-kegiatan hacking ytersebut di atas, biasa diterapkan untuk mendapatkan akses internet secara illegal yang tentunya tanpa perlu membayar alias gratis.
• Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahun 1972. Algoritma ini didasarkan pada algoritma LUCIFER yang dibuat oleh Horst Feistel.
• Algoritma ini telah disetujui oleh National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA) Amerika Serikat.
Tinjauan Umum
• 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.
• Skema global dari algoritma DES adalah sebagai berikut (lihat Gambar 1): 1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP). 2. Hasil permutasi awal kemudian di-enciphering- sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda. 3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1 ) menjadi blok cipherteks.
Plainteks
IP
16 kali Enciphering
IP-1
Cipherteks
Gambar 1. Skema Global Algoritma DES
• Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES.
• Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dai fungsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES.
Secara matematis, satu putaran DES dinyatakan sebagai
Li = Ri – 1 Ri = Li – 1 f(Ri – 1, Ki)
Gambar 2 memperlihatkan skema algoritma DES yang lebih rinci.
Gambar 2. Algoritma Enkripsi dengan DS • Catatlah bahwa satu putaran DES merupakan model jaringan Feistel (lihat Gambar 3).
Gambar 3. Jaringan Feistel untuk satu putaran DES
• Perlu dicatat dari Gambar 2 bahwa jika (L16, R16) merupakan keluaran dari putaran ke-16, maka (R16, L16) merupakan pra-cipherteks (pre-ciphertext) dari enciphering ini. Cipherteks yang sebenarnya diperoleh dengan melakukan permutasi awal balikan, IP-1, terhadap blok pra-cipherteks.
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:
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 Pembangkitan Kunci Internal
• Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, yaitu K1, K2, …, K16. Kunci-kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi.
• Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci eksternal panjangnya 64 bit atau 8 karakter.
• Misalkan kunci eksternal yang tersusun dari 64 bit adalah K. Kunci eksternal ini menjadi masukan untuk permutasi dengan menggunakan matriks permutasi kompresi PC-1 sebagai berikut:
Dalam permutasi ini, tiap bit kedelapan (parity bit) dari delapan byte kunci diabaikan. Hasil permutasinya adalah sepanjang 56 bit, sehingga dapat dikatakan panjang kunci DES adalah 56 bit.
Selanjutnya, 56 bit ini dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit, yang masing-masing disimpan di dalam C0 dan D0:
C0: berisi bit-bit dari K pada posisi 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
D0: berisi bit-bit dari K pada posisi 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
Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua bit bergantung pada tiap putaran. Operasi pergeseran bersifat wrapping atau round-shift. Jumlah pergeseran pada setiap putaran ditunjukkan pada Tabel 1 sbb:
Tabel 1. Jumlah pergeseran bit pada setiap putaran
Jadi, setiap kunci internal Ki mempunyai panjang 48 bit.
Proses pembangkitan kunci-kunci internal ditunjukkan pada Gambar 4.
• Bila jumlah pergeseran bit-bit pada Tabel 1 dijumlahkan semuanya, maka jumlah seluruhnya sama dengan 28, yang sama dengan jumlah bit pada Ci dan Di. Karena itu, setelah putaran ke-16 akan didapatkan kembali C16 = C0 dan D16 = D0.
Gambar 4. Proses pembangkitan kunci-kunci internal DES
Enciphering
• Proses enciphering terhadap blok plainteks dilakukan setelah permutasi awal (lihat Gambar 1). Setiap blok plainteks mengalami 16 kali putaran enciphering (lihat Gambar 2). Setiap putaran enciphering merupakan jaringan Feistel yang secara matematis dinyatakan sebagai
Li = Ri – 1 Ri = Li – 1 f(Ri – 1, Ki)
Diagram komputasi fungsi f diperlihatkan pada Gambar 5.
Gambar 5. Rincian komputasi fungsi f • E adalah fungsi ekspansi yang memperluas blok Ri – 1 yang panjangnya 32-bit menjadi blok 48 bit. Fungsi ekspansi direalisasikan dengan matriks permutasi ekspansi sbb:
• Selanjutnya, hasil ekpansi, yaitu E(Ri – 1), yang panjangnya 48 bit di-XOR-kan dengan Ki yang panjangnya 48 bit menghasilkan vektor A yang panjangnya 48-bit:
E(Ri – 1) Ki = A
• Vektor A dikelompokkan menjadi 8 kelompok, masing-masing 6 bit, dan menjadi masukan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan delapan buah kotak-S (S-box), S1 sampai S8. Setiap kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6-bit pertama menggunakan S1, kelompok 6-bit kedua menggunakan S2, dan seterusnya. (cara pensubstitusian dengan kotak-S sudah dijelaskan pada materi “Prinsip-prinsip Perancangan Cipher Blok”)
• Keluaran proses substitusi adalah vektor B yang panjangnya 48 bit. Vektor B menjadi masukan untuk proses permutasi. Tujuan permutasi adalah untuk mengacak hasil proses substitusi kotak-S. Permutasi dilakukan dengan menggunakan matriks permutasi P (P-box) sbb:
• Bit-bit P(B) merupakan keluaran dari fungsi f. • Akhirnya, bit-bit P(B) di-XOR-kan dengan Li – 1 untuk mendapatkan Ri (lihat Gambar 6): Ri = Li – 1 P(B)
• Jadi, keluaran dari putaran ke-i adalah (Li, Ri) = (Ri – 1 , Li – 1 P(B))
Gambar 6. Skema perolehan Ri Permutasi Terakhir (Inverse Initial Permutation)
• Permutasi terakhir dilakukan setelah 16 kali putaran terhadap gabungan blok kiri dan blok kanan.
• Proses permutasi menggunakan matriks permutasi awal balikan (inverse initial permutation atau IP-1 ) sbb:
• Proses dekripsi terhadap cipherteks merupakan kebalikan dari proses enkripsi. DES menggunakan algoritma yang sama untuk proses enkripsi dan dekripsi. Jika pada proses enkripsi urutan kunci internal yang digunakan adalah K1, K2, …, K16, maka pada proses dekripsi urutan kunci yang digunakan adalah K16, K15, …, K1.
• Untuk tiap putaran 16, 15, …, 1, keluaran pada setiap putaran deciphering adalah
Li = Ri – 1 Ri = Li – 1 f(Ri – 1, Ki)
yang dalam hal ini, (R16, L16) adalah blok masukan awal untuk deciphering. Blok (R16, L16) diperoleh dengan mempermutasikan cipherteks dengan matriks permutasi IP-1. Pra-keluaran dari deciphering adalah adalah (L0, R0). Dengan permutasi awal IP akan didapatkan kembali blok plainteks semula.
• Tinjau kembali proses pembangkitan kunci internal pada Gambar 4. Selama deciphering, K16 dihasilkan dari (C16, D16) dengan permutasi PC-2. Tentu saja (C16, D16) tidak dapat diperoleh langsung pada permulaan deciphering. Tetapi karena (C16, D16) = (C0, D0), maka K16 dapat dihasilkan dari (C0, D0) tanpa perlu lagi melakukan pergeseran bit. Catatlah bahwa (C0, D0) yang merupakan bit-bit dari kunci eksternal K yang diberikan pengguna pada waktu dekripsi.
• Selanjutnya, K15 dihasilkan dari (C15, D15) yang mana (C15, D15) diperoleh dengan menggeser C16 (yang sama dengan C0) dan D16 (yang sama dengan C0) satu bit ke kanan. Sisanya, K14 sampai K1 dihasilkan dari (C14, D14) sampai (C1, D1). Catatlah bahwa (Ci – 1, Di – 1) diperoleh dengan menggeser Ci dan Di dengan cara yang sama seperti pada Tabel 1, tetapi pergeseran kiri (left shift) diganti menjadi pergeseran kanan (right shift).
Mode DES
• DES dapat dioperasikan dengan mode ECB, CBC, OFB, dan CFB. Namun karena kesederhanaannya, mode ECB lebih sering digunakan pada paket program komersil meskipun sangat rentan terhadap serangan.
• Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus daripada mode EBC. Mode CBC hanya kadang-kadang saja digunakan.
Implementasi Hardware dan Software DES
• DES sudah diimplementasikan dalam bentuk perangkat keras. • Dalam bentuk perangkat keras, DES diimplementasikan di dalam chip. Setiap detik chip ini dapat mengenkripsikan 16,8 juta blok (atau 1 gigabit per detik). • Implementasi DES ke dalam perangkat lunak dapat melakukan enkripsi 32.000 blok per detik (pada komputer mainframe IBM 3090).
Keamanan DES
• Isu-isu yang menjadi perdebatan kontroversial menyangkut keamanan DES: 1. Panjang kunci 2. Jumlah putaran 3. Kotak-S
Panjang kunci
• Panjang kunci eksternal DES hanya 64 bit atau 8 karakter, itupun yang dipakai hanya 56 bit. Pada rancangan awal, panjang kunci yang diusulkan IBM adalah 128 bit, tetapi atas permintaan NSA, panjang kunci diperkecil menjadi 56 bit. Alasan pengurangan tidak diumumkan.
• Tetapi, dengan panjang kunci 56 bit akan terdapat 256 atau 72.057.594.037.927.936 kemungkinan kunci. Jika diasumsikan serangan exhaustive key search dengan menggunakan prosesor paralel mencoba setengah dari jumlah kemungkinan kunci itu, maka dalam satu detik dapat dikerjakan satu juta serangan. Jadi seluruhnya diperlukan 1142 tahun untuk menemukan kunci yang benar.
• Tahun 1998, Electronic Frontier Foundation (EFE) merancang dan membuat perangkat keras khusus untuk menemukan kunci DES secara exhaustive search key dengan biaya $250.000 dan diharapkan dapat menemukan kunci selama 5 hari. Tahun 1999, kombinasi perangkat keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari. Jumlah putaran
• Sebenarnya, delapan putaran sudah cukup untuk membuat cipherteks sebagai fungsi acak dari setiap bit plainteks dan setiap bit cipherteks. Jadi, mengapa harus 16 kali putaran? • Dari penelitian, DES dengan jumlah putaran yang kurang dari 16 ternyata dapat dipecahkan dengan known-plaintext attack lebih mangkus daripada dengan brute force attack.
Kotak-S
• Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa memilih konstanta-konstanta di dalam kotak itu.
Kunci Lemah dan Kunci Setengah Lemah
• DES mempunyai beberapa kunci lemah (weak key). Kunci lemah menyebabkan kunci-kunci internal pada setiap putaran sama (K1 = K2 = … = K16). Akibatnya, enkripsi dua kali berturut-turut terhadap plainteks menghasilkan kembali plainteks semula.
• Kunci lemah terjadi bila bit-bit di dalam Ci dan Di semuanya 0 atau 1, atau setengah dari kunci seluruh bitnya 1 dan setengah lagi seluruhnya 0.
• Kunci eksternal (dalam notasi HEX) yang menyebabkan terjadinya kunci lemah adalah (ingat bahwa setiap bit kedelapan adalah bit paritas).
• Selain kunci lemah, DES juga mempunyai sejumlah pasangan kunci setengah-lemah (semiweak key). Pasangan kunci setengah- lemah mengenkripsikan plainteks menjadi cipherteks yang sama. Sehingga, satu kunci dalam pasangan itu dapat mendekripsi pesan yang dienkripsi oleh kunci yang lain di dalam pasangan itu.
• Kunci setengah-lemah terjadi bila: 1. Register C dan D berisi bit-bit dengan pola 0101…0101 atau 1010…1010 2. Register yang lain (C atau D) berisi bit-bit dengan pola 0000…0000, 1111…1111, 0101…0101, atau 1010…1010
• Ada 6 pasang kunci setengah lemah (dalam notasi HEX): a. 01FE 01FE 01FE 01FE dan FE01 FE01 FE01 FE01 b. 1FE0 1FE0 0EF1 0EF1 dan E01F E01F F10E F10E c. 01E0 01E0 01F1 01F1 dan E001 E001 F101 F101 d. 1FFE 1FFE 0EFE 0EFE dan FE1F FE1F FE0E FE0E e. 011F 011F 010E 010E dan 1F01 1F01 0E01 0E01 f. E0FE E0FE F1FE F1FE dan FEE0 FEE0 FEF1 FEF1
Enkripsi
Di bidang kriptografi, enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan Telepon bergerak dan ATM pada bank.
Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer.
Secara singkat, proses enkripsi adalah proses mengubah teks terang menjadi teks tersandi.
Ciphers
Sebuah cipher adalah sebuah algoritma untuk menampilkan enkripsi dan kebalikannya dekripsi, serangkaian langkah yang terdefinisi yang diikuti sebagai prosedur. Alternatif lain ialah encipherment. Informasi yang asli disebuh sebagai plaintext, dan bentuk yang sudah dienkripsi disebut sebagai chiphertext. Pesan chipertext berisi seluruh informasi dari pesan plaintext, tetapi tidak dalam format yang didapat dibaca manusia ataupun komputer tanpa menggunakan mekasnisme yang tepat untuk melakukan dekripsi.
Cipher pada biasanya memiliki parameter dari sebagian dari informasi utama, disebut sebagai kunci. Prosedur enkripsi sangat bervariasi tergantung pada kunci yang akan mengubah rincian dari operasi algoritma. Tanpa menggunakan kunci, chiper tidak dapat digunakan untuk dienkirpsi ataupun didekripsi.
Cipher versus code
Pada penggunaan non teknis, sebuah secret code merupakan hal yang sama dengan cipher. Berdasar pada diskusi secara teknis, bagaimanapun juga, code dan cipher dijelaskan dengan dua konsep. Code bekerja pada tingkat pemahaman, yaitu, kata atau frasa diubah menjadi sesuatu yang lain. Cipher, dilain pihak, bekerja pada tingkat yang lebih rendah, yaitu, pada tingkat masing-masing huruf, sekelompok huruf, pada skema yang modern, pada tiap-tiap bit. Beberapa sistem menggunakan baik code dan cipher dalam sistem yang sama, menggunakan superencipherment untuk meningkatkan keamanan.
Menurut sejarahnya, kriptografi dipisah menjadi dikotomi code dan cipher, dan penggunaan code memiliki terminologi sendiri, hal yang sama pun juga terjadi pada cipher: "encoding, codetext, decoding" dan lain sebagainya. Bagaimanapun juga, code memiliki berbagai macam cara untuk dikembalikan, termasuk kerapuhan terhadap kriptoanalisis dan kesulitan untuk mengatur daftar kode yang susah. Oleh karena itu, code tidak lagi digunakan pada kriptografi modern, dan cipher menjadi teknik yang lebih dominan.
Tipe-tipe cipher
ADa banyak sekali variasi pada tipe enkripsi yang berbeda. Algoritma yang digunakan pada awal sejarah kriptografi sudah sangat berbeda dengan metode modern, dan cipher modern dan diklasifikasikan berdasar pada bagaimana cipher tersebut beroperasi dan cipher tersebut menggunakan sebuah atau dua buah kunci.
Sejarah Cipher pena dan kertas pada waktu lampau sering disebut sebagai cipher klasik. Cipher klasik termasuk juga cipher pengganti dan cipher transposisi. Pada awal abad 20, mesin-mesin yang lebih mutakhir digunakan untuk kepentingan enkripsi, mesin rotor, merupkan skema awal yang lebih kompleks.
Metode enkripsi dibagi menjadi algoritma symmetric key dan algoritma asymmetric key. pada algoritma symmetric key (misalkan, DES dan AES), pengirim dan penerima harus memiliki kunci yang digunakan bersama dan dijaga kerahasiaanya. Pengirim menggunkan kunci ini untuk enkripsi dan penerima menggunakan kunci yang sama untuk dekripsi. Pada algoritma asymmetric key (misalkan, RSA), terdapat dua kunci terpisah, sebuah public key diterbitkan dan membolehkan siapapun pengirimnya untuk melakukan enkripsi, sedangkan sebuah private key dijaga kerahasiannya oleh penerima dan digunakan untuk melakukan dekripsi.
Cipher symmetric key dapat dibedakan dalam dua tipe, tergantung pada bagaimana cipher tersebut bekerja pada blok simbol pada ukuran yang tetap (block ciphers), atau pada aliran simbol terus-menerus (stream ciphers).
4. Sistem Chiper Klasik
(Algoritma Kriptografi yang Bersejarah)
Sebelum komputer ada, kriptografi dilakukan dengan algoritma berbasis karakter.
Algoritma yang digunakan termasuk ke dalam sistem kriptografi simetri dan digunakan jauh sebelum sistem kriptografi kunci publik ditemukan.
Terdapat sejumlah algoritma yang tercatat dalam sejarah kriptografi (sehingga dinamakan algoritma kriptografi klasik), namun sekarang algoritma tersebut sudah usang karena ia sangat mudah dipecahkan.
Tiga alasan mempelajari algoritma kriptografi klasik:
1.Untuk memberikan pemahaman konsep dasar kriptografi.
2.Dasar dari algoritma kriptografi modern.
3.Dapat memahami potensi-potensi kelemahan sistem chiper.
Algoritma kriptografi klasik:
1.Chiper Substitusi (Substitution Chipers)
2.Chiper Transposisi (Transposition Chipers)
1. Chiper Substitusi
·Ini adalah algoritma kriptografi yang mula-mula digunakan oleh kaisar Romawi, Julius Caesar (sehingga dinamakan juga caesar chiper), untuk menyandikan pesan yang ia kirim kepada para gubernurnya.
·Caranya adalah dengan mengganti (menyulih atau mensubstitusi) setiap karakter dengan karakter lain dalam susunan abjad (alfabet).
·Misalnya, tiap huruf disubstitusi denganhuruf ketiga berikutnya dari susunan akjad. Dalam hal ini kuncinya adalah jumlah pergeseran huruf (yaitu k = 3).
Tabel substitusi:
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 Z
ci : 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
Contoh 1. Pesan
AWASI ASTERIX DAN TEMANNYA OBELIX
disamarkan (enskripsi) menjadi
DZDVL DVWHULA GDQ WHPDQQBA REHOLA
Penerima pesan men-dekripsi chiperteks dengan menggunakan tabel substitusi, sehingga chiperteks
DZDVL DVWHULA GDQ WHPDQQBA REHOLA
dapat dikembalikan menjadi plainteks semula:
AWASI ASTERIX DAN TEMANNYA OBELIX
·Dengan mengkodekan setiap huruf abjad dengan integer sebagai berikut: A = 0, B = 1, …, Z = 25, maka secara matematis caesar chiper menyandikan plainteks pi menjadi ci dengan aturan:
ci= E(pi) = (pi+ 3) mod 26(1)
dan dekripsi chiperteks ci menjadi pi dengan aturan:
pi = D(ci) = (ci– 3) mod 26(2)
·Karena hanya ada 26 huruf abjad, maka pergeseran huruf yang mungkin dilakukan adalah dari 0 sampai 25. Secara umum, untuk pergeseran huruf sejauh k (dalam hal ini k adalah kunci enkripsi dan deksripsi), fungsi enkripsi adalah
ci= E(pi) = (pi+ k) mod 26(3)
dan fungsi dekripsi adalah
pi = D(ci) = (ci– k) mod 26(4)
Catatan:
1.Pergeseran 0 sama dengan pergeseran 26 (susunan huruf tidak berubah)
2.Pergeseran lain untuk k > 25 dapat juga dilakukan namun hasilnya akan kongruen dengan bilangan bulat dalam modulo 26. Misalnya k = 37 kongruen dengan 11 dalam modulo 26, atau 37 º 11 (mod 26).
3.Karena ada operasi penjumlahan dalam persamaan (3) dan (4), maka caesar chiper kadang-kadang dinamakan juga additive chiper.
Kriptanalisis Terhadap Caesar Chiper
Caesar chiper mudah dipecahkan dengan metode exhaustive key search karena jumlah kuncinya sangat sedikit (hanya ada 26 kunci).
Contoh 2. Misalkan kriptanalis menemukan potongan chiperteks (disebut juga cryptogram) XMZVH. Diandaikan kriptanalis mengetahui bahwa plainteks disusun dalam Bahasa Inggris dan algoritma kriptografi yang digunakan adalah caesar chiper. Untuk memperoleh plainteks, lakukan dekripsi mulai dari kunci yang terbesar, 25, sampai kunci yang terkecil, 1. Periksa apakah dekripsi menghasilkan pesan yang mempunyai makna (lihat Tabel 1).
Tabel 1. Contoh exhaustive key search terhadap chiperteks XMZVH
Kunci (k)
chipering
‘Pesan’ hasil dekripsi
Kunci (k)
chipering
‘Pesan’ hasil dekripsi
Kunci (k)
chipering
‘Pesan’ hasil dekripsi
0
25
24
23
22
21
20
19
18
XMZVH
YNAWI
ZOBXJ
APCYK
BQDZL
CREAM
DSFBN
ETGCO
FUHDP
17
16
15
14
13
12
11
10
9
GVIEQ
HWJFR
IXKGS
JYLHT
KZMIU
LANJV
MBOKW
NCPLX
ODQMY
8
7
6
5
4
3
2
1
PERNZ
QFSOA
RGTPB
SHUQC
TIVRD
UJWSE
VKXTF
WLYUG
Dari Tabel 1, kata dalam Bahasa Inggris yang potensial menjadi plainteks adalah CREAM dengan menggunakan k = 21. Kunci ini digunakan untuk mendekripsikan chiperteks lainnya.
·Kadang-kadang satu kunci yang potensial menghasilkan pesan yang bermakna tidak selalu satu buah. Untuk itu, kita membutuhkan informasi lainnya, misalnya konteks pesan tersebut atau mencoba mendekripsi potongan chiperteks lain untuk memperoleh kunci yang benar.
Contoh 3. Misalkan potongan chiperteksHSPPW menghasilkan dua kemungkinan kunci yang potensial, yaitu k = 4 menghasilkan pesan DOLLS dan k = 11 menghasilkan WHEEL. Lakukan deksripsi terhadap potongan chiperteks lain tetapi hanya menggunakan k = 4 dan k = 11 (tidak perlu exhaustive key search) agar dapat disimpulkan kunci yang benar.
·Cara lain yang digunakan untuk memecahkan chiperteks adalah dengan statistik, yaitu dengan menggunakan tabel kemunculan karakter, yang membantu mengidentifikasi karakter plainteks yang berkoresponden dengan karakter di dalam chiperteks (akan dijelaskan kemudian).
Satu karakter di plainteks diganti dengan satu karakter yang bersesuaian. Jadi, fungsi chipering-nya adalah fungsi satu-ke-satu.
Jika plainteks terdiri dari huruf-huruf abjad, maka jumlah kemungkinan susunan huruf-huruf chiperteks yang dapat dibuat adalah sebanyak
26! = 403.291.461.126.605.635.584.000.000
Caesar chiper adalah kasus khusus darichiper abjad tunggal di mana susunan huruf chiperteks diperoleh dengan menggeser huruf-huruf alfabet sejauh 3 karakter.
ROT13 adalah program enkripsi sederhana yang ditemukan pada sistem UNIX. ROT13 menggunakan chiper abjad-tunggal dengan pergeseran k = 13 (jadi, huruf A diganti dengan N, B diganti dengan O, dan seterusnya).
Enkripsi arsip dua kali dengan ROT13 menghasilkan arsip semula:
Seperti chiper abjad-tunggal, kecuali bahwa setiap karakter di dalam plainteks dapat dipetakan ke dalam salah satu dari karakter chiperteks yang mungkin. Misalnya huruf A dapat berkoresponden dengan 7, 9, atau 16, huruf B dapat berkoresponden dengan 5, 10, atau 23 dan seterusnya.
Fungsi chipering-nya memetakan satu-ke-banyak (one-to-many).
Chiper substitusi homofonik digunakan pertama kali pada tahun 1401 oleh wanita bangsawan Mantua.
Chiper substitusi homofonik lebih sulit dipecahkan daripada chiper abjad-tunggal. Namun, dengan known-plaintext attack, chiper ini dapat dipecahkan, sedangkan dengan chipertext-only attack lebih sulit.
yang dalam hal ini pi adalah huruf-huruf di dalam plainteks.
Untuk m = 1, chiper-nya ekivalen dengan chiper abjad-tunggal.
Contoh chiper substitusi periodik adalah chiper Vigenere yang ditemukan oleh kriptologi Perancis, Blaise de Vigenere pada abad 16. Misalkan K adalah deretan kunci
K = k1k2 … km
yang dalam hal ini ki untuk 1 £i£m menyatakan jumlah pergeseran pada huruf ke-i. Maka, karakter chiperteks yi(p) adalah
yi(p) = (p + ki) mod n(5)
Misalkan periode m = 20, maka 20 karakter pertama dienkripsi dengan persamaan (5), dimana setiap karakter ke-i menggunakan kunci ki. Untuk 20 karakter berikutnya, kembali menggunakan pola enkripsi yang sama.
Chiper abjad-majemuk ditemukan pertama kali oleh Leon Battista pada tahun 1568. Metode ini digunakan oleh tentara AS selama Perang Sipil Amerika.
Meskipun chiper abjad-majemuk dapat dipecahkan dengan mudah (dengan bantuan komputer), namun anehnya banyak program keamanan komputer (computer security) yang menggunakan chiper jenis ini.
Blok karakter disubstitusi dengan blok chiperteks. Misalnya ABA diganti dengan RTQ, ABB diganti dengan SLL, dan lain-lain.
Playfair chiper, ditemukan pada tahun 1854, termasuk ke dalam chiper substitusi poligram dan digunakan oleh negara Inggris selama Perang Dunia I.
2.Chiper Transposisi
·Pada chiper transposisi, plainteks tetap sama, tetapi urutannya diubah. 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.
Contoh 4. Misalkan plainteks adalah
DEPARTEMEN TEKNIK INFORMATIKA ITB
Untuk meng-enkripsi pesan, plainteks ditulis secara horizontal dengan lebar kolom tetap, misal selebar 6 karakter (kunci k = 6):
DEPART
EMENTE
KNIKIN
FORMAT
IKAITB
maka chiperteksnya dibaca secara vertikal menjadi
DEKFIEMNOKPEIRAANKMIRTIATTENTB
Untuk mendekripsi pesan, kita membagi panjang chiperteks dengan kunci. Pada contoh ini, kita membagi 30 dengan 6 untuk mendapatkan 5.
Algoritma dekripsi identik dengan algoritma enkripsi. Jadi, untuk contoh ini, kita menulis chiperteks dalam baris-baris selebar 5 karakter menjadi:
DEKFI
EMNOK
PEIRA
ANKMI
RTIAT
TENTB
Dengan membaca setiap kolom kita memperoleh pesan semula:
DEPARTEMEN TEKNIK INFORMATIKA ITB
Variasi dari metode transposisi lainnya ditunjukkan pada Contoh 5 dan Contoh 6.
Contoh 5. Misalkan plainteks adalah
ITB GANESHA SEPULUH
Plainteks diblok atas delapan karakter. Kemudian, pada tiap blok, karakter pertama dan karakter terakhir dipertukarkan, demikian juga karakter pertengahan:
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
I
T
B
G
A
N
E
S
H
A
S
E
P
U
L
U
H
E
T
B
G
A
N
I
U
H
A
S
E
P
S
U
H
L
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
maka chiperteksnya adalah
ETBG ANIUHAS EPS UHL
Dekripsi dilakukan dengan cara yang sama, yaitu chiperteksdiblok atas delapan karakter. Kemudian, pada tiap blok, karakter pertama dan karakter terakhir dipertukarkan, demikian juga karakter pertengahan.
Contoh 6. Misalkan plainteks adalah
CRYPTOGRAPHY AND DATA SECURITY
Plainteks disusun menjadi 3 baris (k = 3) seperti di bawah ini:
C TAAA EI
RP O R P YNDTSCRT
YGH DAU Y
maka chiperteksnya adalah
CTAAAEIRPORPYNDTSCRTYGHDAUY
·Kriptografi dengan alat scytale yang digunakan oleh tentara Sparta pada zaman Yunani termasuk ke dalam chiper transposisi.
Lebih Jauh Dengan Chiper Abjad-tunggal
·Seperti sudah disebutkan sebelum ini, metode chiper abjad-tunggal mengganti setiap huruf di dalam abjad dengan sebuah huruf lain dalam abjad yang sama.
·Jumlah kunci di dalam chiper abjad-tunggal sama dengan jumlah cara menyusun 26 huruf abjad tersebut, yaitu sebanyak
26! = 403.291.461.126.605.635.584.000.000
Ini berarti terdapat 26! buah kunci untuk menyusun huruf-huruf alfabet ke dalam tabel substitusi.
·Contohnya, susunan guruf-huruf untuk chiperteks diperoleh dengan menyusun huruf-huruf abjad secara acak seperti tabel substitusi berikut:
Tabel substitusi:
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 Z
ci : D I Q M T B Z S Y K V O F E R J A U W P X H L C N G
·Satu cara untuk membangkitkan kunci adalah dengan sebuah kalimat yang mudah diingat.
Misal kuncinya adalah
we hope you enjoy this book
Dari kunci tersebut, buang perulangan huruf sehingga menjadi
wehopyunjtisbk
lalu sambung dengan huruf-huruf lain yang tidak terdapat di dalam kalimat tersebut sehingga menjadi
W E H O P Y U N J T I S B K A C D F G L M Q R V X Z
Dengan demikian, tabel substitusi yang diperoleh adalah
Tabel substitusi:
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 Z
ci : W E H O P Y U N J T I S B K A C D F G L M Q R V X Z
Menerka Plainteks dari Chiperteks
·Kadang-kadang kriptanalis melakukan terkaan untuk mengurangi jumlah kunci yang mungkin ada.
·Terkaan juga dilakukan kriptanalis untuk memperoleh sebanyak mungkin plainteks dari potongan chiperteks yang disadap. Plainteks yang diperoleh dari hasil terkaan ini biasanya digunakan dalam known-plaintext attack.
·Asumsi yang digunakan: kriptanalis mengetahui bahwa pesan ditulis dalam Bahasa Inggris dan algoritma kriptografi yang digunakan adalah chiper abjad-tunggal.
Contoh kasus 1: Kriptanalis mempunyai potongan chiperteks
G WR W RWL
Karena hanya ada dua kata yang panjangnya satu huruf dalam Bahasa Inggris (yaitu I dan A), maka G mungkin menyatakan huruf A dan W menyatakan huruf I, atau sebaliknya.
Kemungkinan G adalah huruf A dapat dieliminasi, maka diapstikan G = I, sehingga dengan cepat kriptanalis menyimpulkan bahwa potongan chiperteks tersebut adalah
I AM A MA*
Dengan pengetahuan Bahasa Inggris, karakter terakhir (*) hampir dipastikan adalah huruf N, sehingga kalimatnya menjadi
I AM A MAN
Hasil ini mengurangi jumlah kunci dari 26! menjadi 22!
Contoh kasus 2: Kriptanalis mempunyai potongan chiperteks
HKC
Tidak banyak informasi yang dapat disimpulkan dari cryptogram di atas. Namun kriptanalis dapat mengurangi beberapa kemungkinan kunci, karena –sebagai contoh– tidak mungkin Z diganti dengan H, Q dengan K, dan K dengan C.
Namun, jumlah kemungkinan kunci yang tersisa tetap masih besar. Jika pesan yang dikirim memang hanya tiga huruf, maka exhaustive key search akan menghasilkan kata dengan tiga huruf berbeda yang potensial sebagai plainteks.
Contoh kasus 3: Kriptanalis mempunyai potongan chiperteks
HATTPT
Dalam hal ini, kriptanalis dapat membatasi jumlah kemungkinan huruf plainteks yang dipetakan menjadi T.
Kriptanalis mungkin mendeduksi bahwa salah satu dari T atau P merepresentasikan huruf vokal. Kemungkinan plainteksnya adalah CHEESE, MISSES, dan CANNON.
Contoh kasus 4: Kriptanalis mempunyai potongan chiperteks
HATTPT
dan diketahui informasi bahwa pesan tersebut adalah nama negara. Dengan cepat kriptanalis menyimpulkan bahwa polygram tesrebut adalah GREECE.
Dalam hal ini, kriptanalis dapat membatasi jumlah kemungkinan huruf plainteks yang dipetakan menjadi T.
Kriptanalis mungkin mendeduksi bahwa salah satu dari T atau P merepresentasikan huruf vokal. Kemungkinan plainteksnya adalah CHEESE, MISSES, dan CANNON.
Metode Statistik dalam Kriptanalisis
·Metode yang paling umum digunakan dalam memecahkan chiperteks adalah menggunakan statistik.
·Dalam hal ini, kriptanalis menggunakan tabel frekuensi kemunculan huruf-huruf dalam teks bahasa Inggris. Tabel 2 memperlihatkan frekuensi kemunculan huruf-huruf abjad yang diambil dari sampel yang mencapai 300.000 karakter di dalam sejumlah novel dan suratkabar.
·Tabel 2 di atas pada mulanya dipublikasikan di dalam Chiper-Systems: The Protection of Communications dan dikompilasi oleh H. J. Beker dan F.C. Piper
·Terdapat sejumlah tabel frekuensi sejenis yang dipublikasikan oleh pengarang lain, namun secara umum persentase kemunculan tersebut konsisten pada sejumlah tabel.
·Bila chiper abjad-tunggal digunakan untuk meng-engkripsi pesan, maka kemunculan huruf-huruf di dalam plainteks tercermin pada tabel 2 di atas. Misalnya bila di dalam chiper abjad-tunggal huruf R menggantikan huruf E, maka frekuensi R di dalam chiperteks sama dengan frekuensi E di dalam plainteksnya.
Contoh 7. Misalnya terdapat chiperteks yang panjang sebagai berikut:
Histogram yang memperlihatkan frekuensi kemunculan relatif huruf-huruf di dalam chiperteks diperlihatkan di bawah ini:
Dengan membandingkan Tabel 2 dengan histogram tersebut, kriptanalis beralasan menerka bahwa H berkoresponden dengan E dan bahwa W berkoresponden dengan T.
Encryption Skipjack pada Clipper Chip sebuah keamanan Yang paling rahasia Pada Pengiriman Data
A. Pengantar
1.Pendahuluan Skipjack.
Salah satu hal yang penting dalam komunikasi menggunakan komputer untuk menjamin kerahasiaan data adalah enkripsi. Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode yang biasa dimengerti menjadi sebuah kode yang tidak biasa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai kode atau chipper. Sebuah chipper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unintelligible). Karena teknik chipper merupakan suatu system yang telah siap untuk di automasi, maka teknik ini digunakan dalam system keamanan komputer dan network.
Skipjack sebagai salah satu chipper merupakan suatu encryption algoritma yang dikembangkan oleh National Security Agency Badan Keamanan Nasional Amerika Serikat( NSA) untuk Clipper Chip. Tidakbanyak diketahui algoritma Skipjack ini, karena itu algoritma Skipjack digolongkanrahasia oleh pemerintah Amerika Serikat.
Algoritma Skipjack diketahui suatu algoritma symmetric, yang menggunakan 80-bit kunci dan mempunyai 32 putaran untuk memproses setiap masing-masing encrypt atau decrypt operasi. Clipper-Chip adalah suatu chip komersil dibuat oleh NSA untuk encryption, dan menggunakan Algoritma Skipjack. AT&T mempunyai rencana untuk menggunakan Clipper Chip untuk encrypted jalur suara telpon.
2.Menjaminkah Skipjack?
Sejauh yang diketahui, NSA tengah menggunakan Skipjack ke encrypt messaging sistemnya, sehingga dirasakan algoritma itu aman. Skipjack menggunakan 80-bit kunci, yang berarti ada 2^80 ( kira-kira 10^24) atau lebih dari 1 kunci mungkin trilyun trilyun untuk digunakan!! Maknanya, diperkirakan lebih dari 400 milyar tahun tiap-tiap kunci algoritma untuk dapat dipecahkan!
Untuk memberi suatu perspektif lebih baik, jika kita mengasumsikan penggunaan 100,000 RISC komputer, masing-masing dengan kemampuan menjalankan motor sekitar 100,000 encryptions per detik, akan diperkirakansekitar 4 juta tahun suatu kode dapat dipatahkan.
Pengembang Skipjack memperkirakan bahwa biaya daya proses untuk memecahkan algoritma skipjack dibagi duauntuk tiap-tiap delapan belas bulan, dan berdasarkan padaitu algoritma Skipjack akan membutuhkan sedikitnya 36 tahun baru dapat dipatahkan. Oleh karena itu, NSA percaya bahwa tidak ada resiko Skipjack dapat dirusakkan di dalam 30-40 tahun kedepan. Di samping itu, kekuatan Skipjack mampu melawan terhadap suatu serangan cryptanalytic. Untuk itu algoritma Skipjack harus mengarah kepada algoritma yang cryptographic dengan sepenuhnya ditetapkan dan digolongkan RAHASIA.
Gambar 1. Urutan proses pengiriman data
Algoritma yang crytographicmempunyai karakteristik seperti berikut:
2. Berfungsi serupa dengan DES ( yaitu., pada dasarnya suatu 64-bit kode membukukan perubahan bentuk yang dapat digunakan pada tempat yang sama dengan empat mode operasi ketika ditetapkan untuk DES di dalam FIPS 81);
3. Mampu memproses dengan 32 putaran encrypt/decrypt pada operasi tunggal;
Chip Clipper pada Algoritma skipjack berisi single-key 64-bit blok encryption algoritma. Algoritmanya menggunakan 80 kunci bit ( bandingkan dengan DES hanya 56 kunci bit) dan mempunyai 32 putaran yang berebut ( bandingkan dengan DES hanya 16 putaran), algoritma ini mendukung 4 mode operasi DES. Algoritma mengambil 32 thick clock, dan di dalam Codebook Elektronik ( ECB) mode berjalan pada 12 Mbits per detik.
Dengan penjelasan seperti diatas, Skipjack dapat dikatakan sangat dipercaya atau sangat menjamin.
3. Spesifikasi Algoritma 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
XOR
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 singlechip cryptoprocessors seperti CLIPPER (hanya Skipjack), CAPSTONE, KEYSTONE, REGENT, KRYPTON, dan FORTEZZA dan PC Card FORTEZZA Plus, dan juga produk lain yang masih famili FORTEZZA.
3.1. Algoritma
Materi ini mendiskusikan algoritma berikut:
SKIPJACK Codebook encryptor/ Algoritma Decryptor
KEAAlgoritma Pertukaran Kunci
Mode operasi SKIPJACK.
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
Codebook64 bit
Cipher-Block Chaining (CBC)64 bit
Gambar 3. Mode Diagram Output Feed-Back
Gambar 4. Mode Diagram Cipher Feed-Back
Gambar 5. Mode Diagram Codebook
Gambar 6. Mode Diagram Cipher-Bloch Chaining
4.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 Vnke Vn. Nilai permutasi didalam vn, nilainya tidak dalam bits.
X Ã…YNilai exclusive –OR dari X dan Y
X ||YX 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.
Gambar 7. Langkah-langkah aturan SKIPJACK.
4.3.Langkah-langkah Persamaan Peraturan.
Persamaan dibawah ini, superscript dari langkah-langkah angka.
4.4.1.Melakukan encripsi: Masukan adalah wi0, 1£i£ 4(contoh k = 0 untuk langkah awal). Counter di 1. Langkah menurut aturan A dengan 8 langkah, kemudian berubah ke aturan B dan langkahnya lebih dari 8 langkah. Hasil dengan aturan A dengan 8 langkah, kemudian melengkapi encryption dengan 8 langkah dengan aturan B. Counter increment satu kali pada masing-masing langkah. Keluarannya adalah wi32 , 1£i£ 4 .
4.4.2.Untuk mendecrypt: Masukan adalah wi32, 1£i£ 4 , (contoh k=32 untuk memulai langkah). Mulai counter di langkah 32. Langkah menurut aturan B-1 untuk langkah ke delapan, kemudian berubah ke aturan A-1 dan langkah lebih dari 8 kali.
4.4.3.Hasil aturan B-1 untuk 8 langkah selanjutnya, kemudian dilengkapi decrypsinya dengan 8 langkah pada aturan A-1. Counter decrement satu kali setelah setiap langkah. Keluarannya adalah wi0, 1£i£ 4 .
4.5.Permutasi - G.
Cryptovariable-dependent pemutasi G di v16 adalah empat putaran struktur Feistel. Fungsi putaran adalah mencampur tabel byte-substitusi (permutasi di v8), yang disebut dengan F-tabel. Masing-masing putaran dari G juga gabungan sebuah byte dari cryptovariable. Ada dua karakteristik dari fungsi seperti dibawah ini.
4.5.1.Dengan rekursif (system matematika): Gk (w = g1 || g2) = g5 || g6 dimana g1 = F(g I-1 Ã… cv4k + i-3) Ã…gi-2 adalah (4k + i – 3)thbyte didalam penjadwalan criptovariable. Lalu,
g3 = F (g2Ã… cv4k)Ã…g1
g4 = F (g3Ã… cv4k+1) Ã…g2
g5 = F (g4Ã… cv4k+2) Ã…g3
g6 = F (g5Ã… cv4k+3) Ã…g4
Biasanya untuk kebalikannya, [Gk]-1(w = g5|| g6 =g1 || g2 dimana gi-2 = F (gi-1Ã… cv4k + I - 3) Ã… gi.
4.5.2.Skemanya:
Gambar 8. Diagram Permutasi – G
4.6.Penjadwalan Cryptovariable.
Criptovariable panjangnya 10 bytes (labelnya dari 0 sampai 9) dan digunakan untuk pemakaian biasa. Lalu penjadwalan subscript diberikan dalam definisi permutasi-G yang diinterpretasikan mod-10.
4.7.F-Tabel:
F-tabel pada SKIPJACK diberikan pada notasi hexadesimal. Order index yang tertinggi 4 bit dari masukan baris dan order terendahindex 4 bits pada kolom. Untuk contoh, F(7a) = d6
5.Spesifikasi KEA.
KEA adalah algoritma pertukaran kunci. Semua kalkulasi menggunakan modulus utama 1024-bit. Nilai modulus ini umumnya berhubungan dengan spesifikasi DSS. KEA dasarnya dengan utilizasi protokol Diffie-Helman yang mengurangi nilai akhir dengan sebuah kunci 80 bit.
Operasi KEA menggunakan panjang eksponen 160 bits. Penggunaan eksponen pada KEA oleh pemakai mengunakan komponen spesifik yang rahasia. KEA menyediakan pengamanan setaraf dengan yang disediakan oleh SKIPJACK. Order operasinya 280.
KEA mengharuskan pemakai memvalidasi penerimaan nilai public dari yang lain, tetapi tidak spesifik dalam melakukannya. Alat ini musti menyediakan order data seperti dibawah ini untuk implementasi algoritma pertukaran kunci (KEA).
p modulus utamanya1024-bit yang menetapkan field dimana p =p1023 p1022 ……p0.
q160 bit pembagi utama dari p – 1 untuk mengecek komponen public q = q159 q158 …….. q0
g1024-bit dasar untuk eksponensiasi. Sebuah elemen order q didalam group perkalian dari mod p.
g = g1023 g1022 ……g0
x160-bit angka rahasia yang dipilih oleh pemakai (0
x = x159 x158 …x0
Y1024-bit nilai corresponden public dan nilai private x
Y = gx mod p = Y1023 Y1022 ……… Y0
Pad80-bit nilai pengisi
pad = pad79 pad78 …… pad0
= 72f1a87e92824198abObhex
r 160-bit angka random
r = r159 r158
Sebuah sinyal syarat untuk penentuan dari inisiator dan penerimaan dari sebuah perubahan tidak begitu penting. Sebuah gambaran dari proses berikut. Untuk dua pemakai A dan B, subscript A dan B digunakan untuk penanda “owner” dari nilai yang seharusnya.
a.Pertukaran A dan B atau isi dari sebuah direktori sertifikat dari terminal terjauh. Dari sertifikat, nilai public Y dari terminal lain dapat berisi sepanjang identifikasi pemakai tergabung dan ada informasi lain.
b.Masing-masing validasi alat kunci public Y ditentukan dan termasuk kunci public yang valid didalam jaringan. Jika validasi sah, proses terhenti. Jika terjadi validasi cek silahkan lakukan langkah c.
c.Masing-masing alat pertukaran merupakan komponen random. Alat A umumnya 160-bit dari angka random private rA dan pengiriman versi angka public seperti berikut:
RA = grA mod p
Alat B umumnya 160-bit rB dan mengirimkan
RB= grA mod p
Masing-masing komponen random public panjangnya 1024-bit
d.Setelah menerima komponen random public dan terakhir kunci public, masing-masing alat mengecek verifikasi kedua penerimaan nilai order q.
Alat A akan menghitung dan memverifikasi:
1 < RB, YB <>
(RB)q º 1 mod p dan (YB)q º 1 mod p
Alat B akan menghitung dan memverifikasi:
1 < RA, YA <>
(RA)q º 1 mod p dan (YA)q º 1 mod p
Jika verifikasi dicek, lanjutkan langkah e. Bila ada verifikasi yang pasti, stop.
e.Alat A akan memegang YB dan menghitung nilai tAB. Alat akan menghitung ekuivalen nilai tBAyang digunakan menerima komponen random.
tAB= (YB)rAmod p = g x B rAmod p
tBA= (RA)xBmod p = g rA x Bmod p = g x B rAmod p
f. Masing-masing alat penghitung u dengan cara yang sama harus menghitungt.
uBA = (YA) rB mod p = g xArB mod p
uAB = (RA) rB mod p = grBxA mod p = g xArB mod p
g.Masing-masing alat menghitung w untukmeyakinkan pengecekan:
w =(t + u) mod p¹ 0
Jika pase pengecekan selesai, lanjutkan langkah h, kalau tidak stop.
h.Hasil ini dibagi dalam dua seksi:
v1 = (w)mod 280 v2 = (w)mod 280
2 (1024-80)2 (1024-160)
Contoh, jika angka bit didalam w adalah w1023, …….w0 dari MSB ke LSB, kemudian v1= w1023 …..w944 dan v2= w943 ….w864
i.Kuncinya adalah:
Key = 216(Ev1Ã… pad (Ev1 Ã… pad [v2mod 2 64])]
216
Ã… [(Ev1Ã…pad [ v2mod 2 64]) Ã… (v2 mod 2 16
216
248
Catatan bahwa fungsi ini mewakili encrypsi dari v2 dengan v1 dengan isi XOR.
Gambarnya seperti berikut:
Gambar 9. Diagram Formasi Kunci
Sebuah ringkasan pertukaran KEA diantara alat A dan B seperti dibawah ini:
Alat A:Alat B:
p,q,gkeadaan kedua alatp,q,g
xAkunci private masing-masing alatxB
YAY = gx mod pYB
YBYA
Isi alat public yang lain melalui
Sertifikat atau kiriman dalam msg
rAA dan B umumnya angka randomrB
RAR = gr mod pRB
RBRA
Pertukaran angka random public
Check semua nilai yang diterima
tAB= (YB) rA mod p hitung t = g rAxB mod ptBA= (RA) xB mod p
uAB= (RB) xA mod phitung u = g xArB mod puBA= (YA) rB mod p
w = (tAB + uAB) mod phitung w dan check w¹0w = (tBA + uBA) mod p
v1, v2kutipan v1 dan v2 dari wv1, v2
Keyform kunci dari v1, v2, blokKey
6.Aplikasi E-Mail dari KEA
Untuk aplikasi E-Mail dimana penerima tidak berperan didalam formasi kunci, kontribusi penerima ke pertukaran random ditempatkan dengan kunci publik dari penerima. Berikut, A sedang mengirim dan B sedang menerima pesan E-Mail. Pertama sekali mulai dengan formasi dari pesan E-Mail.
1. Mengirim E-Mail.
a.Alat A isi dari sebuah direktori atau sebuah cache local sertifikat dari sebuah terminal yang jauh. Dari sertifikat, nilai public YB dari terminal B dapat berisi sepanjang identifikasi pemakai tergabung dan ada informasi lainnya.
b.Alat B validasi kunci publik YB yang ditentukan didalam kunci publik yang pemakainya sudah valid di jaringan. Jika validasi ada yang pasti, lanjutkan ke langkah c.
c.Alat A kemudian diverifikasi:
1 <>B <>B )q º 1 mod p
Jika mengecheck verifikasi, lanjutkan ke langkah d. Bila ada verifikasi yang pasti, berhenti.
d.Alat A umumnya angka random rA dan hitungan RA yang ditempatkan didalam paket pesan yang dikirim ke terminal yang jauh.
RA = grA mod p
Komponen random ini panjangnya 1024 bit.
e.Alat A kemudian menerima YB dan hitung nilai tAB.
tAB = (YB) rA mod p = g rAxB mod p = g xAxB mod p
f.Alat A menghitung:
uAB = (YB)xA mod p = gxBxAmod p = g xAxB mod p
g.Alat A kemudian menghitung w dan meyakinkan pengecekan :
w = (tAB + uAB) mod p ¹ 0
Jika pengecdsxekannya sah, lanjutkan langkah h. jika tidak berhenti.
h.Hasil ini dipotong dalam dua seksi;
v1 = (w)mod 280 v2 =(w)mod 280
2 (1024 - 80) 2(1024 - 160)
contoh, jika angka bits didalam w seperti w1023 …….w0 dari MSB ke LSB, kemudianv1 = w1023 ….w944dan v2 = w943 ……w864
i.Kunci
Kunci = 216 [Ev1 Ã… pad(Ev1 Ã… pad[v2mod 264])]
216
Ã… [((Ev1 Ã… pad[v2mod 264])]
216Ã…( v2mod 216)]
248
Catatan bahwa fungsi ini mewakili enkripsi dari v2 dengan v1 XOR yang diblok.
Gambarnya,
Gambar 10. Diagram Formasi kunci
2. Menerima E-Mail
a.Alat B berisi sertifikat dari terminal jauh, A, menerima pesan E-Mail. Dari sertifikat, nilai public YA dari terminal A yang dapat berisi sepanjang pemakai teridentifikasi dalam gabungan dan ada informasi yang lain.
b.Alat B memvalidasi kunci publik dari YA ditentukan masuk didalam kunci publik dari pemakai yang valid didalam jaringan. Jika validasi pasti/sah, proses dihentikan. Jika masih terjadi pengecekan, lanjutkan langkah c.
c.Alat B menerima komponen random yang dihasilkan dari A.
RA =grA mod p
Komponen random panjangnya 1024 bit.
d.Alat B akan menghitung dan memverifikasi:
1 < RA, YA < p
(RA)qº 1 mod p dan (YA)qº 1 mod q
Jika verifikasi dicek, lanjutkan langkah e.
e.Alat B akan diberikan RA dan menghitung nilai tBA
tBA = (RA)xBmod p = grAxB mod p
f.Alat B menghitung:
uBA = (YA)xBmod p = gxAxB mod p
g.Alat B menghitung w dan cek untuk meyakinkan bahwa:
w = (tBA + uBA) mod p¹ 0
jika ini untuk mengecek nilai, lanjutkan pada langkah h. Jika tidak stop.
h.Untuk mencari hasil dibagi dalam dua seksi
v1 = (w)mod 280 v2 = (w)mod 280
2 (1024-80)2 (1024-160)
Contoh, jika angka bit didalam w adalah w1023, …….w0 dari MSB ke LSB, kemudian v1= w1023 …..w944 dan v2= w943 ….w864
i.Kunci:
Kunci = 216 [Ev1 Ã…pad(Ev1 Ã…pad[v2mod 264])]
216
Ã… [((Ev1 Ã…pad[v2mod 264])]
216Ã…( v2mod 216)]
248
Catatan bahwa fungsi ini mewakili enkripsi dari v2 dengan v1 XOR yang diblok.
Gambarnya,
Gambar 9. Diagram Formasi kunci
B. ANNEX – Tes Vector
Semua nilai adalah heksadesimal. Data ini tidak termasuk atau ditentukan oleh banyak antar muka biasa. Informasi biasanya dengan Most Significant Bit/Byte/Word ke sebelah kiri. X menggambarkan “don’t care”.
SKIPJACK – MODE CODEBOOK
Plaintext input : 33221100ddccbbaa
Cryptovariable: 00998877665544332211
Langkah lanjutan:
w1w2w3w4
033221100ddccbbaa
1b0040baf1100ddcc
2e6883b460baf1100
33c762d753b460baf
44c4547ee2d753b46
5b949820a47ee2d75
6f0e3dd90820a47ee
7f9b9be50dd90820a
8d79b5599be50dd90
9dd901e0b820bbe50
10be504c52c391820b
11820b7f51f209c391
12c391f9c2fd56f209
13f20925ff3a5efd56
14fd5665dad7f83a5e
153a5e69d99883d7f8
16d7f8899053979883
179c00049289905397
189fdccc5904928990
193731beb2cc590492
207afb7e78beb2cc59
217759bb157e7dbeb2
22fb6445c0bb157e7d
236f7f111545c0bb15
2465a7deaa111545c0
2545c0e0f9bb141115
2611153913a523bb14
27bb148ee6281da523
28a523bfe235ee281d
29281d0d841adc35ee
3035eee6f125871adc
311adc60eed3002587
322587cae27a12d300
Keluaran Ciphertext : 2587cae27a12d300
Algoritma pertukaran kunci (KEA)
p = 9d4c6e6d42ea91c828d67d49 94a9f01b 8e5b5b730d0faae7bd569dd1
Cryptography telah berkembang sejak lama, ketika orang menginginkan informasi yang ia kirimkan tidak dapat “dibaca” oleh pihak tak berkepentingan.Cryptography secara tradisional dikenal dengan dua mekanisme, yaitu kunci privat dan kunci publik. Sesuai dengan materi yang penulis buat maka enkripsi Skipjack termasuk dalam kunci privat berupa DES (data encryption standard). Enkripsi secara konvensional tergantung pada beberapa factor:
1.Algoritma enkripsi harus cukup kuat sehingga menjadikan sangat sulit untuk mendekripsikan chipper teks yang diterima dengan chipper teks tersebut terutama oleh orang yang tidak berkepentingan dengan pesan kita.
2.Keamanan dari algoritma enkripsi bergantung pada kerahasiaan dari kuncinya bukan algoritmanya.
Mengingat enkripsi dengan Skipjack secara matematis sangat terjamin, untuk itu dalam bekerja dengan enkripsi ini diperlukan kesepakatan bagi pemegangnya agar aman harus:
1.Kunci harus dirahasiakan.
2.Adalah tidak mungkin atau sangat tidak praktis untuk menterjemahkan informasi yang telah dienkripsi.
3.Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untuk menentukan kunci.
Dengan demikian apabila kita ingin menekuni bidang enkripsi ini, diperlukan pengetahuan khusus agar kita dapat mengelola dengan baik enkripsi chipper text dari pesan-pesan yang memang perlu dirahasiakan.