RSS

PGP

PGP adalah suatu metode enkripsi informasi yang bersifat rahasia sehingga jangan  sampai diketahui oleh orang lain yang tidak berhak. Informasi ini bias berupa E-mail  yang sifatnya rahasia, nomor kode kartu  kredit, atau pengiriman dokumen rahasia  perusahaan melalui Internet. PGP menggunakan metode kriptografi yang disebut  “public key encryption”: yaitu suatu metode kriptografi yang sangat sophisticated.  Adapun prinsip kerja dari PGP adalah sebagai berikut : 
1. PGP menggunakan teknik yang disebut  public kec encryption dengan dua  kode. Kode-kode ini berhubungan secara intrinstik, namun tidak mungkin  untuk memecahkan satu sama lain, 
2. Ketika dibuat satu kunci, maka secara  otomatis akan dihasilkan sepanjang  kunci,yaitu kunci publik dan kunci rahasia, 
3. PGP menggunakan dua kunci,  Pertama, kunci untuk proses enkripsi (kunci publik). Disebut kunci publik karena kunci yang digunakan untuk enkripsi ini  akan diberitahukan kepada umum. Orang yang akan mengirimkan e-mail  rahasia kepada kita harus mengetahui kunci publik ini. Kedua,  kunci untuk  proses deskripsi (kunci pribadi). Disebut kunci pribadi karena kunci ini hanya  diketahui oleh kita sendiri. 
4. Karena dengan conventional crypto, di saat terjadi transfer informasi kunci,  diperlukan suatu  secure channel. Jika kita memiliki suatu  secure channel,  mengapa masih menggunakan crypto? Dengan public key system, tidak akan  menjadi masalah siapa  yang melihat  kunci milik kita, karena kunci yang  dilihat orang lain adalah yang digunakan hanya untuk enkripsi dan hanya  pemiliknya saja yang mengetahui kunci rahasia tersebut.

Pretty Good Privacy (PGP) adalah salah satu software pengaman kriptografi yang  cukup tinggi performansinya. PGP yang dikembangkan oleh Phillip Zimmerman ini  memiliki 2 versi yaitu “USA version” dan International version”. PGP versi USA  hanya digunakan di wilayah USA dan warga negara USA yang menggunakan  algoritma RSA dalam enkripsimnya. Sedangkan versi International menggunakan  algoritma MPILIB yang dapat digunakan oleh siapa saja. 
PGP dibuat berdasarkan pada konsep  Public Key Cryptografy. Kriptografi  mempunyai konsep secara umum, jika seseorang hendak mengirmkan e-mail yang  bersifat rahasia, maka si pengirim  dapat mengkodekannya (enkripsi) menggunakan  suatu algoritma tertentu yang hanya si pengirim mail yang tahu.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

SSL

SSL merupakan salah satu metode enkripsi dalam komunikasi data yang dibuat oleh Netscape Communication Corporation. Sebagaimana yang dijelaskan dalam SSL Protocol Internet Draft (The SSL Protocol, Version 3.0 oleh ALAN O. FREIER dan PAUL C. KOCHER, dapat Anda buka di http://home.netscape.com/eng/ssl3/ssl-toc.html.

SSL adalah Protokol berlapis. Dalam tiap lapisannya, sebuah data terdiri dari panjang, deskripsi dan isi. SSL mengambil data untuk dikirimkan, dipecahkan kedalam blok-blok yang teratur, kemudian dikompres jika perlu, menerapkan MAC, dienkripsi, dan hasilnya dikirimkan. Di tempat tujuan, data didekripsi, verifikasi, dekompres, dan disusun kembali. Hasilnya dikirimkan ke klien di atasnya. (terjemahan bebas).
SSL hanya mengenkripsikan data yang dikirim lewat http. Bagaimana SSL berjalan dapat digambarkan sebagai berikut :
  • Pada saat koneksi mulai berjalan, klien dan server membuat dan mempertukarkan kunci rahasia, yang dipergunakan untuk mengenkripsi data yang akan dikomunikasikan. Meskipun sesi antara klien dan server diintip pihak lain, namun data yang terlihat sulit untuk dibaca karena sudah dienkripsi.
  • SSL mendukung kriptografi public key, sehingga server dapat melakukan autentikasi dengan metode yang sudah dikenal umum seperti RSA dan Digital Signature Standard (DSS).
  • SSL dapat melakukan verifikasi integritas sesi yang sedang berjalan dengan menggunakan algoritma digest seperti MD5 dan SHA. Hal ini menghindarkan pembajakan suatu sesi.


Secure Socket Layer (SSL) adalah protokol yang digunakan untuk berkomunikasi lewat internet secara aman. Teknologi SSL menggunakan konsep teknologi kriptografi kunci publik untuk bisa mencapai komunikasi yang aman ini antara server dan pengunjungnya. Kedua pihak yang berkomunikasi ini (server dan pengunjungnya) saling mengirimkan data yang disamarkan dan untuk membacanya digunakan sandi dan kunci yang hanya dimiliki kedua pihak yang berkomunikasi tersebut, sehingga pihak lain yang mencoba menyadap data yang dikirim tersebut tidak akan bisa membacanya karena sandi dan kunci yang dibutuhkan tersebut hanya dimiliki oleh kedua pihak yang berkomunikasi tadi.
Secara sederhana, komunikasi internet dengan SSL ini bisa dilihat dengan cara akses alamat URL-nya yang diawali dengan "https://" (misalnya https://www.namadomainanda.com), sedangkan yang tanpa SSL alamatnya hanya http biasa (misalnya http://www.namadomainanda.com).

Bagaimana SSL Bekerja

I. Memesan dan memasang sertifikat SSL

Supaya situs anda bisa diakses dengan aman, anda perlu memesan sertifikat SSL, informasi ini bisa anda baca di artikel "Sebelum Memesan SSL".

II. Bagaimana pengunjung berkomunikasi dengan server lewat SSL

Sebagai ilustrasi,mari kita lihat gambar berikut:
Cara Kerja SSL
  1. Seorang pengunjung mengakses ke situs yang sudah terpasang sertifikat SSL lewat saluran (port) yang aman dengan browser-nya (Internet Explorer, Mozilla Firefox, Opera, Safari, dsb), biasanya port 443. Koneksi aman ini ditandai dengan cara mengakses alamat https://(misalnya https://www.namadomainanda.com)
  2. Server/situs akan mengirim kunci publik sertifikat SSL yang dimilikinya ke pengunjung tadi. Saat browser pengunjung menerimanya, browser akan memeriksa validitas kunci publik tersebut, apakah:
    • kunci publik sertifikat itu masih berlaku atau belum kadaluarsa,
    • kunci publik sertifikat itu benar-benar berlaku untuk situs atau domain yang diakses (misalnya www.namadomainanda.com tadi),
    • kunci publik sertifikat itu juga ada dalam database sertifikat yang tersimpan dalam browser.
  3. Jika kunci publik sertifikat tadi bisa terverifikasi oleh browser pengunjung, maka browser akan mengirimkan kunci publik miliknya ke server atau situs yang diakses.
  4. Dengan kunci publik yang dikirim browser pengunjung tadi dan kunci privat yang dimiliki server akan digunakan server untuk membuat sandi untuk mengirim data ke pengunjung. Browser pengunjung akan membuka sandi tersebut dan membaca data yang dikirim. Sandi yang dikirim tadi merupakan sandi yang unik dan hanya berlaku satu kali dan hanya bisa dibaca oleh browser yang tadi memintanya, sehingga pihak lain tidak bisa membacanya. Dan selanjutnya setiap data yang diminta atau dikirim antara pengunjung dan server akan melalui proses ini.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

MD-5


Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file.
MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Pada tahun 1996, sebuah kecacatan ditemukan dalam desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan menggunakan algoritma lain, seperti SHA-1 (klaim terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.

Sejarah dan kriptoanalisis

MD5 adalah salah satu dari serangkaian algortima message digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest, 1994). Saat kerja analitik menunjukkan bahwa pendahulu MD5 — MD4 — mulai tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans Dobbertin).
Pada tahun 1993, den Boer dan Bosselaers memberikan awal, bahkan terbatas, hasil dari penemuan pseudo-collision dari fungsi kompresi MD5. Dua vektor inisialisasi berbeda I dan Jdengan beda 4-bit di antara keduanya.
MD5compress(I,X) = MD5compress(J,X)
Pada tahun 1996 Dobbertin mengumumkan sebuah kerusakan pada fungsi kompresi MD5. Dikarenakan hal ini bukanlah serangan terhadap fungsi hash MD5 sepenuhnya, hal ini menyebabkan para pengguna kriptografi menganjurkan pengganti seperti WHIRLPOOL, SHA-1 atau RIPEMD-160.
Ukuran dari hash — 128-bit — cukup kecil untuk terjadinya serangan brute force birthday attack. MD5CRK adalah proyek distribusi mulai Maret 2004 dengan tujuan untuk menunjukka kelemahan dari MD5 dengan menemukan kerusakan kompresi menggunakan brute force attack.
Bagaimanapun juga, MD5CRK berhenti pada tanggal 17 Agustus 2004, saat kerusakan ''hash'' pada MD5 diumumkan oleh Xiaoyun Wang, Dengguo Feng, Xuejia Lai dan Hongbo Yu. Serangan analitik mereka dikabarkan hanya memerlukan satu jam dengan menggunakan IBM P690 cluster.
Pada tanggal 1 Maret 2005, Arjen Lenstra, Xiaoyun Wang, and Benne de Weger mendemontrasikan kunstruksi dari dua buah sertifikat X.509 dengan public key yang berbeda danhash MD5 yang sama, hasil dari demontrasi menunjukkan adanya kerusakan. Konstruksi tersebut melibatkan private key untuk kedua public key tersebut. Dan beberapa hari setelahnya, Vlastimil Klima menjabarkan dan mengembangkan algortima, mampu membuat kerusakan Md5 dalam beberapa jam dengan menggunakan sebuah komputer notebook. Hal ini menyebabkan MD5 tidak bebas dari kerusakan.
Dikarenakan MD5 hanya menggunakan satu langkah pada data, jika dua buah awalan dengan hash yang sama dapat dibangun, sebuah akhiran yang umum dapat ditambahkan pada keduanya untuk membuat kerusakan lebih masuk akal. Dan dikarenakan teknik penemuan kerusakan mengijinkan pendahuluan kondisi hash menjadi arbitari tertentu, sebuah kerusakan dapat ditemukan dengan awalan apapun. Proses tersebut memerlukan pembangkitan dua buah file perusak sebagai file templat, dengan menggunakan blok 128-byte dari tatanan data pada 64-byte batasan, file-file tersebut dapat mengubah dengan bebas dengan menggunakan algoritma penemuan kerusakan.


Efek nyata dari kriptoanalisis

Saat ini dapat diketahui, dengan beberapa jam kerja, bagaimana proses pembangkitan kerusakan MD5. Yaitu dengan membangkitkan dua byte string dengan hash yang sama. Dikarenakan terdapat bilangan yang terbatas pada keluaran MD5 (2128), tetapi terdapat bilangan yang tak terbatas sebagai masukannya, hal ini harus dipahami sebelum kerusakan dapat ditimbulkan, tapi hal ini telah diyakini benar bahwa menemukannya adalah hal yang sulit.
Sebagai hasilnya bahwa hash MD5 dari informasi tertentu tidak dapat lagi mengenalinya secara berbeda. Jika ditunjukkan informasi dari sebuah public keyhash MD5 tidak mengenalinya secata berbeda jika terdapat public key selanjutnya yang mempunyai hash MD5 yang sama.
Bagaimanapun juga, penyerangan tersebut memerlukan kemampuan untuk memilih kedua pesan kerusakan. Kedua pesan tersebut tidak dengan mudah untuk memberikan serangan preimage, menemukan pesan dengan hash MD5 yang sudah ditentukan, ataupun serangan preimage kedua, menemukan pesan dengan hash MD5 yang sama sebagai pesan yang diinginkan.
Hash MD5 lama, yang dibuat sebelum serangan-serangan tersebut diungkap, masih dinilai aman untuk saat ini. Khususnya pada digital signature lama masih dianggap layak pakai. Seorang user boleh saja tidak ingin membangkitkan atau mempercayai signature baru menggunakan MD5 jika masih ada kemungkinan kecil pada teks (kerusakan dilakukan dengan melibatkan pelompatan beberapa bit pada bagian 128-byte pada masukan hash) akan memberikan perubahan yang berarti.
Penjaminan ini berdasar pada posisi saat ini dari kriptoanalisis. Situasi bisa saja berubah secara tiba-tiba, tetapi menemukan kerusakan dengan beberapa data yang belum-ada adalah permasalahan yang lebih susah lagi, dan akan selalu butuh waktu untuk terjadinya sebuah transisi.


Pengujian Integritas

Ringkasan MD5 digunakan secara luas dalam dunia perangkat lunak untuk menyediakan semacam jaminan bahwa file yang diambil belum terdapat perubahan. Seorang user dapat membandingkan MD5 sum yang dipublikasikan dengan checksum dari file yang diambil. Dengan asumsi bahwa checksum yang dipublikasikan dapat dipercaya akan keasliannya, seorang user dapat secara yakin bahwa dile tersebut adalah file yang sama dengan file yang dirilis oleh para developer, jaminan perlindungan dari Trojan Horse dan virus komputer yang ditambahkan pada perangkat lunak. Bagaimanapun juga, seringkali kasus yangterjadi bahwa checksum yang dipublikasikan tidak dapat dipercaya (sebagai contoh, checksum didapat dari channel atau lokasi yang sama dengan tempat mengambil file), dalam hal ini MD5 hanya mampu melakukan error-checking. MD5 akan mengenali file yang didownload tidak sempurna, cacat atau tidak lengkap.


Algoritma

Gambar 1. Satu operasi MD5 — MD5 terdiri atas 64 operasi, dikelompokkan dalam empat putaran dari 16 operasi.F adalah fungsi nonlinear; satu fungsi digunakan pada tiap-tiap putaran. Mi menujukkan blok 32-bit dari masukan pesan, dan Ki menunjukkan konstanta 32-bit, berbeda untuk tiap-tiap operasi.
geser kiri s menunjukkan perputaran bit kiri oleh ss bervariasi untuk tiap-tiap operasi. tambahan menunjukan tambahan modulo 232. MD5 memproses variasi panjang pesan kedalam keluaran 128-bit dengan panjang yang tetap. Pesan masukan dipecah menjadi dua gumpalan blok 512-bit; Pesan ditata sehingga panjang pesan dapat dibagi 512. Penataan bekerja sebagai berikut: bit tunggal pertama, 1, diletakkan pada akhir pedan. Proses ini diikuti dengan serangkaian nol (0) yang diperlukan agar panjang pesan lebih dari 64-bit dan kurang dari kelipatan 512. Bit-bit sisa diisi dengan 64-bit integer untuk menunjukkan panjang pesan yang asli. Sebuah pesan selalu ditata setidaknya dengan 1-bit tunggal, seperti jika panjang pesan adalah kelipatan 512 dikurangi 64-bit untuk informasi panjang (panjang mod(512) = 448), sebuah blok baru dari 512-bit ditambahkan dengan 1-bit diikuti dengan 447 bit-bit nol (0) diikuti dengan panjang 64-bit.
Algoritma MD5 yang utama beroperasi pada kondisi 128-bit, dibagi menjadi empat word 32-bit, menunjukkan ABC dan D. Operasi tersebut di inisialisasi dijaga untuk tetap konstan. Algoritma utama kemudian beroperasi pada masing-masing blok pesan 512-bit, masing-masing blok melakukan pengubahan terhadap kondisi.Pemrosesan blok pesan terdiri atas empat tahap, batasan putaran; tiap putasan membuat 16 operasi serupa berdasar pada fungsi non-linear F, tambahan modular, dan rotasi ke kiri. Gambar satu mengilustrasikan satu operasi dalam putaran. Ada empat macam kemungkinan fungsi F, berbeda dari yang digunakan pada tiap-tiap putaran:
F(X,Y,Z) = (X\wedge{Y}) \vee (\neg{X} \wedge{Z})
G(X,Y,Z) = (X\wedge{Z}) \vee (Y \wedge \neg{Z})
H(X,Y,Z) = X \oplus Y \oplus Z
I(X,Y,Z) = Y \oplus (X \vee \neg{Z})
\oplus, \wedge, \vee, \neg menunjukkan operasi logikan XOR, AND, OR dan NOT.


Pseudocode

Pseudocode pada algoritma MD5 adalah sebagai berikut.

//Catatan: Seluruh variable pada unsigned integer 32-bit dan dan wrap modulo 2^32 saat melakukan perhitungan

//Mendefinisikan r sebagai berikut
var int[64] r, k
r[ 0..15] := {7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22}
r[16..31] := {5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20}
r[32..47] := {4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23}
r[48..63] := {6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21}

//Menggunakan bagian fraksional biner dari integral sinus sebagai konstanta:
for i from 0 to 63
    k[i] := floor(abs(sin(i + 1)) × 2^32)

//Inisialisasi variabel:
var int h0 := 0x67452301
var int h1 := 0xEFCDAB89
var int h2 := 0x98BADCFE
var int h3 := 0x10325476

//Pemrosesan awal:
append "1" bit to message
append "0" bits until message length in bits ≡ 448 (mod 512)
append bit length of message as 64-bit little-endian integer to message

//Pengolahan pesan paada kondisi gumpalan 512-bit:
for each 512-bit chunk of message
    break chunk into sixteen 32-bit little-endian words w(i), 0 ≤ i ≤ 15

    //Inisialisasi nilai hash pada gumpalan ini:
    var int a := h0
    var int b := h1
    var int c := h2
    var int d := h3

    //Kalang utama:
    for i from 0 to 63
        if 0 ≤ i ≤ 15 then
            f := (b and c) or ((not b) and d)
            g := i
        else if 16 ≤ i ≤ 31
            f := (d and b) or ((not d) and c)
            g := (5×i + 1) mod 16
        else if 32 ≤ i ≤ 47
            f := b xor c xor d
            g := (3×i + 5) mod 16
        else if 48 ≤ i ≤ 63
            f := c xor (b or (not d))
            g := (7×i) mod 16
 
        temp := d
        d := c
        c := b
        b := ((a + f + k(i) + w(g)) leftrotate r(i)) + b
        a := temp

    //Tambahkan hash dari gumpalan sebagai hasil:
    h0 := h0 + a
    h1 := h1 + b 
    h2 := h2 + c
    h3 := h3 + d

var int digest := h0 append h1 append h2 append h3 //(diwujudkan dalam little-endian)
Catatan: Meskipun rumusan dari yang tertera pada RFC 1321, berikut ini sering digunakan untuk meningkatkan efisiensi:
(0  ≤ i ≤ 15): f := d xor (b and (c xor d))
(16 ≤ i ≤ 31): f := c xor (d and (b xor c))


Hash-hash
 MD5

Hash-hash MD5 sepanjang 128-bit (16-byte), yang dikenal juga sebagai ringkasan pesan, secara tipikal ditampilkan dalam bilangan heksadesimal 32-digit. Berikut ini merupakan contoh pesan ASCII sepanjang 43-byte sebagai masukan dan hash MD5 terkait:
MD5("The quick brown fox jumps over the lazy dog") = 9e107d9d372bb6826bd81d3542a419d6
Bahkan perubahan yang kecil pada pesan akan (dengan probabilitas lebih) menghasilkan hash yang benar-benar berbeda, misalnya pada kata "dog", huruf d diganti menjadi c:
MD5("The quick brown fox jumps over the lazy cog") = 1055d3e698d289f2af8663725127bd4b
Hash dari panjang-nol ialah:
MD5("") = d41d8cd98f00b204e9800998ecf8427e

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Asimetris Kriptografi


Sistem asimetris akan jauh lebih cepat dan lebih mudah daripada kunci simetris. Bagaimana kok lebih mudah? sebetulnya sama saja, cuma langkah yang dibutuhkan tidak akan lebih panjang, sehingga lebih efisien, sehingga lebih menghemat waktu, sehingga dengan kata lain, jauh lebih mudah dioperasikan.
Sebetulnya, sistem Asimetris dan Simetris akan mempunyai panjang prosedur yang sama. Namun, sejak kunci Asimetris mendukung teknik Tanda Tangan Digital (ttd), maka banyak langkah dari kunci simetris yang dapat dikolapskan.
Ini langkah yang anda harus lakukan:
  1. Mengambil kunci publik Alice dari sumber tertentu (Website, KDC, dll)
  2. Verifikasi kunci Publik tersebut dengan kunci Publik-nya sendiri. Jika tidak terverifikasi, batalkan saja!
  3. Enkrips ‘kunci’ yang akan dikirim dengan publik key-nya Alice
  4. Alice mendekripsi dengan kunci privatenya dan mendapatkan kembali ‘kunci’ yang dapat anda dan Alice gunakan untuk berkomunikasi.
So simple bukan? Ini lah rahasianya, terdapat verifikasi kunci! Dalam algoritma simetris, anda perlu kunci lain untuk memverifikasi otentikasi sebuah kunci. Disini, kunci publik Alice harus sudah ditandatangani oleh kunci private alice, hal ini akan mengakibatkan kunci publik tersebut dapat diverifikasi oleh kunci Publik. Hasil verifikasi kunci publik dengan kunci publik harus terverifikasi, jika tidak, maka kunci publik tersebut tidak ditandatangani oleh ‘kunci kembar’-nya, yakni kunci private yang sepasang dengannya, yang mencerminkan, bahwa anda harus menghentikan langkah saat itu juga!
Namun, jika kunci sudah terverifikasi, anda setidaknya harus yakin 79% bahwa kunci tersebut benar milik Alice!


Algoritma simetris, sering juga disebut dengan algoritma kunci publik atausandi kunci publik, menggunakan dua jenis kunci, yaitu kunci publik (public key) dan kunci rahasia (secret key). Kunci publik merupakan kunci yang digunakan untuk mengenkripsi pesan. Sedangkan kunci rahasia digunakan untuk mendekripsi pesan.
Kunci publik bersifat umum, artinya kunci ini tidak dirahasiakan sehingga dapat dilihat oleh siapa saja. Sedangkan kunci rahasia adalah kunci yang dirahasiakan dan hanya orang-orang tertentu saja yang boleh mengetahuinya. Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan kepada siapa saja yang melakukan pertukaran informasi meskipun di antara mereka tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu maupun saling tidak mengenal satu sama lainnya.


Algoritma asimetris pertama kali dipublikasikan oleh Diffie dan Hellman pada tahun 1976 dalam papernya yang berjudul “New Directions in Cryptography”.Contoh dari algoritma asimetris adalah RSA, ElGamal, McEliece, LUC dan DSA (Digital Signature Algorithm).

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Simetris Kriptografi

Algoritma kunci rahasia atau sandi kunci rahasia. Adalah algoritma kriptografi yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Algoritma ini mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka saling berkomunikasi. Keamanan algoritma simetris tergantung pada kunci, membocorkan kunci berarti bahwa orang lain dapat mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, kunci harus tetap dirahasiakan.
Sifat kunci yang seperti ini membuat pengirim harus selalu memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman atau memastikan bahwa seseorang yang ditunjuk membawa kunci untuk dipertukarkan adalah orang yang dapat dipercaya. Masalahnya akan menjadi rumit apabila komunikasi dilakukan secara bersama-sama oleh sebanyak n pengguna dan setiap dua pihak yang melakukan pertukaran kunci, maka akan terdapat sebanyak (n-1)/2 kunci rahasia yang harus dipertukarkan secara aman.

Gambar Kriptografi simetris
Contoh dari algoritma kriptografi simetris adalah Cipher Permutasi, Cipher Substitusi, Cipher Hill, OTP, RC6, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi, DES dan IDEA.
Pada skema kunci-simetris, digunakan sebuah kunci rahasia yang sama untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem kunci-asimentris digunakan sepasang kunci yang berbeda, umumnya disebut kunci publik(public key) dan kunci pribadi (private key), digunakan untuk proses enkripsi dan proses dekripsinya. Bila elemen teks terang dienkripsi dengan menggunakan kunci pribadi maka elemen teks sandi yang dihasilkannya hanya bisa didekripsikan dengan menggunakan pasangan kunci pribadinya. Begitu juga sebaliknya, jika kunci pribadi digunakan untuk proses enkripsi maka proses dekripsi harus menggunakan kunci publik pasangannya.
Algoritma kunci simetris memiliki beberapa kelebihan dan kekurangan, yakni:
Kelebihan :
  1. Waktu proses untuk enkripsi dan dekripsi relatif cepat, hal ini disebabkan karena efisiensi yang terjadi pada pembangkit kunci.
  2. Karena cepatnya proses enkripsi dan dekripsi, maka algoritma ini dapat digunakan pada sistem secara real-time seperti saluran telepon digital.
Kekurangan :
  1. Untuk tiap pasang pengguna dibutuhkan sebuah kunci yang berbeda, sedangkan sangat sulit untuk menyimpan dan mengingat kunci yang banyak secara aman, sehingga akan menimbulkan kesulitan dalam hal manajemen kunci.
  2. Perlu adanya kesepakatan untuk jalur yang khusus untuk kunci, hal ini akan menimbulkan masalah yang baru karena tidak mudah u menentukan jalur yang aman untuk kunci, masalah ini sering disebut dengan “Key Distribution Problem”.
  3. Apabila kunci sampai hilang atau dapat ditebak maka kriptosistem ini tidak aman lagi.
Skema ini berdasarkan jumlah data per proses dan alur pengolahan data didalamnya dibedakan menjadi dua kelas, yaitu block-cipher dan stream-cipher.
  1. Block-Cipher
Block-cipher adalah skema algoritma sandi yang akan membagi-bagi teks terang yang akan dikirimkan dengan ukuran tertentu (disebut blok) dengan panjang t, dan setiap blok dienkripsi dengan menggunakan kunci yang sama. Pada umumnya, block-cipher memproses teks terang dengan blok yang relatif panjang lebih dari 64 bit, untuk mempersulit penggunaan pola-pola serangan yang ada untuk membongkar kunci. Untuk menambah kehandalan model algoritma sandi ini, dikembangkan pula beberapa tipe proses enkripsi, yaitu :
  1. Stream-Cipher
Stream-cipher adalah algoritma sandi yang mengenkripsi data persatuan data, seperti bit, byte, nible atau per lima bit(saat data yang di enkripsi berupa data Boudout). Setiap mengenkripsi satu satuan data di gunakan kunci yang merupakan hasil pembangkitan dari kunci sebelum.
Contoh algoritma yang menggunakan kunci simetris:
  1. 1. Data Encryption Standard (DES)
Data encryption standar (DES) yang diadopsi oleh NIST (Nasional Institue Of Standar and Technolog) sebagai standar pegolahan informasi federal As.
Data encryption standar (DES) terbagi menjadi tiga kelompok:
  1. Proses Kunci
  2. Enkripsi data 64 bit
  3. Deskripsi data 64 bit
Secara umum skema Data encryption standar (DES) memiliki dua fungsi input yaitu:
  1. Plaintext untuk dienkripsi dengan panjang 64 bit
  2. Kunci dengan panjang 56 bit
  3. 2. Triple Data Encryption Standar (3DES)
Memiliki perbedaan yang kecil dengan Data encryption standar (DES).3DES lebih aman dibandingkan dengan Data encryption standar (DES), 3DES merupakan pengembangan dari DES algoritma.3DES menerapkan Data Encryption Standard (DES) algoritma cipher tiga kali untuk setiap blok data.
  1. 3. Interational Data Encryption Algorithm (IDEA)
Algoritma IDEA bias digunakan untuk enkripsi dan deskripsi sebagaimana algoritma enkripsi lainnya. IDEA mengguakan confution dan diffution berbeda dengan DES yang menggunakan permutasi dan subsitusi.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

Enigma


A.    Pengertian dan Sejarah Kriptografi
Kriptografi (cryptography) berasal dari bahasa Yunani yaitu cryptos artinya rahasia (secret) dan graphein artinya tulisan (writing). Jadi kriptografi berarti tulisan rahasia (secret writing). Kriptografi tidak hanya ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, nirpenyangkalan, otentikasi tetapi juga sekumpulan teknik yang berguna.
Kriptografi adalah ilmu dan seni untuk menjaga keamanan  pesan
(Cryptography is the art and science of keeping messages secure)
Kata “seni” di dalam definisi di atas berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara-cara unik  tersebut mungkin berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia pesan mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” di dalam  “cryptography” itu sendiri sudah menyiratkan sebuah seni).


B.    Pengertian dan Sejarah Mesin Enigma
Mesin Enigma adalah sebuah mesin penyandi yang digunakan untuk mengenkripsikan dan mendekripsikan pesan rahasia. Enigma dipatenkan oleh insinyur Jerman Arthur Scherbius, dan awalnya digunakan untuk tujuan komersial, namun nantinya terkenal karena digunakan oleh tentara dan pemerintah Jerman Nazi sebelum dan selama Perang Dunia II. Secara teknis, mesin Enigma termasuk keluarga mesin rotorelektromekanik, yang memiliki berbagai model. Nama Enigma diambil dari kata Latin aenigma, yang artinya teka-teki.
Versi Enigma yang paling terkenal adalah yang digunakan oleh Wehrmacht (tentara Jerman Nazi). Mesin ini, mulai digunakan oleh Nazi pada 1928, pada awalnya dianggap sebagai mesin kriptografi teraman di dunia, namun akhirnya dapat dipecahkan oleh pihak Sekutu, sehingga mesin ini justru merugikan pihak Nazi. Metode pemecahan (dekripsi) mesin ini pertama kali ditemukan di tahun 1932 oleh kriptografer Polandiadari Biuro Szyfrów (Kantor Sandi), Marian Rejewski, Jerzy Różycki dan Henryk Zygalski. Namun pada 1939 Jerman mendisain ulang Enigma sehingga metode tersebut tidak dapat digunakan lagi. Berkat informasi dari Polandia, akhirnya Britania dan Perancis berhasil membuat mesin pemecah Enigma baru ini, yang diberi nama bombe. Informasi yang didapat Sekutu dari pemecahan Enigma disebut ULTRA, yang terbukti amat penting bagi kemenangan Sekutu pada Perang Dunia II. Menurut para ahli, PD II berakhir dua tahun lebih cepat berkat pemecahan Enigma ini.
C.     Desain dan Mekanisme Enigma
Desain enigma versi militer yang banyak dipakai oleh angkatan bersenjata Nazi terdiri dari bagian- bagian sebagai berikut :

Dengan bagian yang paling penting adalah rotor, karena rotorlah mekanisme utama dalam pengenkripsian yang dilakukan :

Adapun bagian-bagian dari rotor tersebut dengan penomoran sesuai dengan gambar di atas adalah : 
1.      nger notches,
2.      alphabet ring,
3.      shaft,
4.      catch,
5.      core containing cross-wirings,
6.      spring loaded contacts,
7.      discs,
8.      carry notch.

D.    Cara Kerja Enigma 
Enkripsi yang dilakukan enigma sebenarnya adalah substitusi, di mana sebuah huruf digantikan dengan tepat sebuah huruf juga, hanya saja substitusi dilakukan beberapa kali. Dan walau hanya dengan substitusi, sebuah pesan akan sulit sekali didekripsi jika tidak dengan alat yang sama, dengan pengaturan posisi yang sama, tipe substitusi yang sama, dan kode kunci yang sama. 
Dan semua substitusi tersebut dilakukan dengan wiring (sambungan listrik melalui kawat).

Arti dari wiring tersebut adalah jika misal A pada left rotor terhubung dengan D pada middle rotor, maka jika A pada left rotor teraliri listrik, maka D pada middle rotor akan teraliri listrik juga.   Sedangkan secara sederhana cara kerja dari mekanisme wiring tersebut adalah wiring tersebut menunjukkan subsitusi dari tombol yang ditekan, yang dilakukan dengan cara memasang lampu. Jadi misal sesuai contoh di atas jika tombol / saklar A ditekan, maka lampu D akan menyala. Kemudian hal tersebut dilakukan ulang namun dengan mengganti rotor yang sedang digunakan.   Kemudian dilakukan pergeseran pada rotor setiap kali ada tombol yang ditekan. Begitu seterusnya selama pesan diketik.
Dan dengan adanya reflector jalannya arus dapat dibalikkan dari right rotor ke left rotor, yang efeknya adalah kemungkinan yang meningkat 26 kali dari substitusi huruf. Relector ini menyebabkan Enigma tidak perlu mengubah state jika sedang ingin mengenkripsi sebuah pesan ataukah ingin mendekripsikannya.  Namun Reflector ini menyebabkan kelemahan pada mesin Enigma ini, di mana terjadi resiprok, di mana jika misal huruf M dienkripsikan menjadi T, maka huruf T akan dienkripsikan menjadi huruf M pada rotor yang sama, dan sebuah huruf tidak akan mungkin bisa dienkripsi menjadi dirinya sendiri.

Sedangkan rotor untuk enigma ada beberapa, walaupun yang dapat dipakai dalah satu waktu pada satu enigma adalah 3 buarh saja, yang diberi nama L (left), M (middle), dan R (right). Sedangkan jenis-jenis rotor yang ada diberi nama rotor I, rotor II, rotor III, dan seterusnya.  Di bawah ini adalah beberapa jenis rotor yang pernah digunakan oleh enigma :

Rotor  ABCDEFGHIJKLMNOPQRSTUVWXYZ
I   EKMFLGDQVZNTOWYHXUSPAIBRCJ
II   AJDKSIRUXBLHWTMCQGZNPYFVOE
III   BDFHJLCPRTXVZNYEIWGAKMUSQO
IV   ESOVPZJAYQUIRHXLNFTGKDCMWB
V   VZBRGITYUPSDNHLXAWMJQOFECK
VI   JPGVOUMFYQBENHZRDKASXLICTW
VII   NZJHGRCXMYSWBOUFAIVLPEKQDT
VIII  FKQHTLXOCBJSPDZRAMEWNIUYGV

Pada setiap rotor tersebut dikenal adanya istilah Turnover, yaitu posisi di mana sebuah rotor mulai bergerak menggeser rotor di sampingnya. Rotor R akan selalu bergerak 1 huruf setiap kali tombol ditekan., dan jika turnover dari rotor R tersebut adalah S, maka rotor R tersebut akan menggeser rotor M sejauh 1 huruf jika sudah mencapai posisi turnovernya (posisi di huruf S). Setiap jenis rotor mempunyai turnover masing-masing.  Adapun peran besar juga disumbangkan oleh plugboard. Plugboard sendiri adalah sebuah papan yang mengganti arus dari huruf awal ke huruf yang diinginkan dengan cara meneruskan arus tersebut dengan kabel. Seperti yang terlihat di Gambar 2, di situ terlihat bahwa huruf A dihubungkan dengan huruf  J, dan huruf S dihubungkan dengan huruf Q, jadi semua A, akan menjadi J, dan sebaliknya demikian juga, semua huruf J akan berubah menjadi huruf A. Hal tersebut juga terjadi antara huruf S dan huruf Q.

Enkripsi Pada Enigma 
Sebenarnya yang terjadi pada enigma pada sebuah enkripsi yang dia lakukan adalah sebuah permutasi panjang :  
Dengan R adalah right rotor, M adalah middle rotor, L adalah left rotor, P adalah plugboard, dan U adalah reflector. Dan E adalah hasil enkripsinya.   Dan semuanya itu ditentukan oleh ketetapan yang ditentukan Jerman berbeda-beda untuk setiap jaringan yang ada dan untuk setiap harinya. Dan kesemuanya itu ditentukan Jerman dengan cara memberikan sebuah buku sebagai
standar untuk masing-masing operator. Adapun hal-hal yang diatur adalah : pilihan rotor dan peletakan posisi dari rotor-rotor tersebut, pemilihan huruf awal dari setiap rotornya, posisi plug pada plugboard, dan tipe reflector yang digunakan. 
Misal pada suatu hari standar yang disebarkan oleh kurir-kurir Jerman ke setiap operator enigma mereka adalah sebagai berikut   
25
I III V
B M X
DM OA MR IS NE IL KI UN
Maka kode tersebut dikeluarkan pada tanggal 30 pada bulan itu, kemudian rotor yang digunakan untuk left rotor adalah I, untuk middle rotor adalah III, dan kemudian untuk right rotor adalah V. Dan baris berikutnya adalah posisi awal untuk masing-masing rotor, jadi B adalah posisi awal dari rotor I, M adalah posisi awal dari rotor kemudian baris terakhir menentukan huruf-huruf apa saja yang perlu disambungkan pada plugboard. Jadi untuk contoh ini huruf D dihubungkan dengan M, huruf O disambungkan dengan A, dan seterusnya.

E.     Pemecahan Kode Mesin Enigma 
Kode hasil enkripsi mesin enigma yang telah serumit itu dan bahkan diklaim oleh Jerman tidak mungkin dipecahkan tersebut ternyata tetap saja mempunyai kelemahan-kelemahan yang pada akhirnya berakhir pada terpecahkannya kode enkripsi tersebut oleh pihak musuh. 
Kelemahan tersebut antara lain : 
1. Fakta bahwa sebuah huruf tidak dapat dipetakan ke huruf itu sendiri, contohnya misal huruf ‘A’ sebagai input tidak mungkin menghasilkan huruf ‘A’ juga; sebagai output.
2. Operator harus melakukan setting untuk mendapatkan initial value. Di mana di kasus- kasus tertentu, hal tersebut dapat terprediksi, dan kesalahan yang umum dilakukan oleh operator-operator tersebut adalah dalam memilih nilai yang dapat dengan mudah diprediksi sebagai initial value.
3. Penyandian bersifat resiprok, jadi bila huruf ‘A’ disandikan menjadi huruf ‘Z’, maka huruf ‘Z’ akan disandikan menjadi huruf ‘A’.
4. Kunci pesan dikirimkan 2 kali.
5. Posisi turnover pada setiap rotor unik, sehingga memungkinkan untuk ditebak rotor mana saya yang digunakan.

·       Metode Permutasi Marian Rejewski
Marian Rejewksi adalah seorang matematikawan asal Polandia yang memang ditugaskan untuk memecahkan kode enigma. Saat itu Rejewski bisa mendapatkan pesan-pesan terenkripsi Jerman dengan menyadap sinyal komunikasi radio tentara Jerman. Sampai akhirnya dia berhasil mendapatkan 6 buah pesan terenkripsi pada hari yang berbeda. Dan dapat disusun dalam persamaan permutasi sebagai berikut :
Dengan S adalah permutasi yang berasal dari plugboard, H adalah permutasi yang berasal dari hubungan antara socket pada plugboard dengan mesin, T adalah permutasi rotor, dan kemudian yang terakhir, Q adalah permutasi sederhana
yang memetakan sebuah huruf menjadi huruf berikutnya.  Persamaan yang terdiri dari 6 persamaan dan 4 buah permutasi yang tidak diketahui tersebut tidak dapat terpecahkan, sampai pada saatnya Rejewksi berhasil mendapat bantuan berupa tabel kunci harian untuk bulan September dan Oktober 1932. Yang kemudian memberi petunjuk pada Rejewksi dalam memecahkan kode enigma.
·       Metode Grill
Metode ini adalah metode yang merupakan kelangsungan dari penemuan Rejewski. Yang mendekripsi pesan berdasarkan persamaan permutasi yang telah ditemukan oleh oleh Rejewski, dan akhirnya dengan mengetahui kebiasaan bahwa 3 huruf pertama kunci biasanya diset berjauhan oleh operator, akhirnya keenam persamaan permutasi tersebut dapat terpecahkan.   Adapun urutan dari hal-hal yang dapat
dipecahkan oleh Metode ini adalah pilihan roda
kanan, kombinasi dari plugboard, baru kemudian posisi dari roda tengah dan kiri. Yang kesemuanya ini didapatkan dari percobaan ribuan kalo yang dilakukan untuk memecahkan kode enigma ini. 
·       Metode Lembar Berlubang Zygalski
Metode ini berdasar fakta bahwa dari semua kemungkinan posisi rotor, 40% pasti permutasi AD. Yang kemudian berkahir dengan ditemukannya posisi roda pada setiap siklus. Namun pada akhirnya metode ini tidak berhasil untuk digunakan, karena banyaknya waktu dan biaya yang dibutuhkan untuk membuat kertas berlubang untuk setiap kombinasi roda. 
·       Metode Katalog Karakteristik 
Metode ini didasarkan pada fakta bahwa permutasi AD, BE, dan CF tidak ditentukan oleh kombinasi plugboard, dan hanya ditentukan oleh posisi-posisi roda rotor yang digunakan. Yang kemudian dapat dimodelkan dalah bentuk permutasi disjungtif :
.
·         Bombe
Alat yang dibuat oleh Alan Turing dari Inggris ini dirancang supaya walau Jerman mengubah standar operasi mereka, dengan teknik-teknik yang sudah ditemukan, tetap dapat memecahkan kode dari mesin enigma.  Hal yang mendasari kerja bombe adalah sifat yang disebabkan oleh reflector pada mesin enigma, di mana terjadi enkripsi yang resiprok, yang kemudian berhasil diturunkan sehingga posisi dari roda-roda tersebut dapat ditebak dengan memperhitungkan hal tersebut, hanya saja waktu yang diperlukan cukup lama jika dilakukan secara manual seperto sebelum- sebelumnya.   Maka dibuatlah bombe sebagai alat mekanik untuk mengotomatisasi pekerjaan tersebut. 

Kesimpulan
Enigma adalah sebuah mesin enkripsi yang hanya menggunakan substitusi, namun karena dilakukan dalam sebuah rangkaian dan dengan bermacam-macam cara setiap substitusi dilakukan, maka enkripsi yang dihasilkan sangatlah bagus, bahkan sampe pihak Jerman waktu itu meyakini bahwa kode tersebut tidak mungkin dipecahkan oleh siapapun.  Dan akhirnya kode tersebut dapat dipecahkan, walaupun dengan memakan waktu yang sangat lama dan usaha yang luar biasa. Jadi dapat disimpulkan bahwa semua teknik enkripsi dapat dikuak, dan kode hasil enkripsi tentu saja dapat dipecahkan. Tidak ada kode enkripsi yang tidak dapat dipecahkan.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS