Minggu, 09 Mei 2010

TUGAS KEAMANAN KOMPUTER PERTEMUAN 5

1. SHA-1

Pada awalnya, algoritma SHA-1 ini dianggap cukup aman karena satu-satunya cara untuk mencari kolisi (collision) adalah dengan menggunakan serangan brute-force yang memiliki kompleksitas operasi sebesar 280, yang dengan super komputer yang ada sekalipun hanya mampu dicari dalam hitungan jutaan tahun. Adapun percobaan serangan terhadap SHA-1 lainnya memang ada yang mampu mencari kolisi dengan kompleksitas kurang 280 tetapi hal tersebut dilakukan terhadap versi yang dikurangi (reduced-version) dari SHA-1, yaitu putarannya hanya ada 53. Pada bulan Februari 2005, tiga orang peneliti dari Cina, Xiaoyun Wang, Yiqun Lisa Yin, dan Hongbo Yu, mempublikasikan bahwa mereka dapat mencari kolisi dalam fungsi SHA-1 versi penuh (full version) dalam operasi dengan kompleksitas 269. Angka tersebut sebenarnya angka yang masih besar karena untuk melakukannya akan membutuhkan waktu 170.000 tahun dengan menggunakan komputer yang tercepat saat ini. Akan tetapi, hal ini cukup menjadi pembicaraan hangat dunia dalam dunia kriptografi. Metode yang dilakukan oleh para peneliti tersebut adalah dengan menggunakan metode yang berdasarkan metode yang sebelumnya telah digunakan untuk mencari kolisi terhadap fungsi-fungsi hash yang lain seperti MD5 dan

SHA-0, tentunya dengan berbagai perbaikan

Fungsi Hash

Fungsi hash adalah fungsi yang menerima masukan string yang panjangnya sembarang dan

mengonversinya menjadi string keluaran yang panjangnya tetap. Persamaan fungsi hash dapat dinyatakan sebagai berikut:

h = H(M)

2. X.509

X.509 didefinisikan sebagai kerangka kerja (framework) untuk pengadaan servis autentikasi, dengan direktori X.500 kepada pengguananya. Direktori mungkin menyediakan repository dari sertifikat kunci public. Setiap sertifikat mengandung kunci public dari pengguna dan diberi tanda dengan kunci privat yang dipercaya sebagai kewenangan sertifikat. Dalam penambahan, X.509 menyediakan alternative protocol autentikasi yang berdasar atas penggunaan sertifikat dengan kunci public.


X.509 merupakan standar yang penting karena struktur dari sertifikat dan protocol autentikasi tersedia dalam X.509 yang digunakan dalam berbagai macam hubungan. Sebagai contoh, format sertifikat X.509 digunakan dalam S/MIME, kemanan IP, dan SSL/TLS serta SET.

X.509 telah mulai dirintis pada tahun 1988. Standar dari bebarapa pembahasan mengenai keamanan telah didokumentasikan dalam [IANS90] dan [MITC90]; perbaikan ini telah mulai dilakukan sejak tahun 1993. Versi ketiga pada tahun 1995 dan diperbarui pada tahun 2000.

X.509 berdasar atas penggunaan dari kunci public kriptography dan tanda tangan digital. Standarnya tidak mengatur masalah spesifikasi mengenai algoritma yang digunakan tetapi disarankan menggunakan RSA. Skema Tanda tangan digital ini seperti menggunakan fungsi hash. Lagi – lagi tidak ada standarnya dalam pengguanaan atas spesifikasi fungsi hash yang digunakan. Pada tahun 1988 anjuran mencakup deskripsi mengenai saran penggunaan algoritma; algoritma ini telah diganti sejak tahun 1993. gambar 1 memperlihatkan generasi dari sertifikat menggunakan kunci public.

Gambar 1. generasi sertifikat menggunakan kunci public.

Dalam otentikasi dikenal tiga macam otentikasi yaitu :

1. Pesan

2. Entity

3. Data origin

Dalam X.509 ini dapat memberikan otentikasi dari ketiga macam otentikasi diatas. Mengenai bagaiamana X.509 dapat memenuhi ketiganya dapat dibahas dalam bab 2

SERTIFIKAT

Inti dari skema X.509 adalah sertifikat kunci public yang berasosiasi dengan setiap pengguna. Sertifikat pengguna dianggap dibuat oleh seseorang yang dipercaya sebagai ahli sertifikat, CA (certification authority) dan disimpan dalam direktori oleh CA atau oleh pengguna. Direktori penyedia (directory server) tidak bertanggung jawab atas pembuatan kunci publik atau fungsi dari penyedia sertifikat; direktori (directory serve) hanya menyediakan lokasi yang mudah diakses guna pengguna unutk mendapatkan sertifikat. Gambar 2 menunjukan format umum sertifikat yang terdiri dari beberapa elemen :

  • Version: pembeda atas format sertifikat yang digunakan; format awal yang digunakan adalah versi 1. Jika terdapat Issuer Unique Identifier atau Subject Unique Identifier, seharusnya versi 2. jika tersedia extensions satu atau lebih, versinya seharusnya versi 3.
  • Serial number: merupakan bilangan bulat, unik sesuai dengan keputusan CA, hal itu tidak bersifait ambigu yang bersama dengan sertifikat ini.
  • Signature algorithm identifier: algoritma yang digunakan untuk menandai sertifikatnya, selalu digabung dengan parameter yang lainnya. Karena informasi ini diulang dalam lingkup penanda (the Signature field) pada bagian akhir dari sertifikat, lingkup ini kecil, jika apapun kegunaan.
  • Issuer name: Nama X.500 sebagai CA yang membuat dan menandai sertifikat ini.
  • Period of validity: Mengandung dua tanggal : awal dan akhir mas berlakunya sertifikat.
  • Subject name: Nama dari pengguna sertifikat ini. Dalam hal ini sertifikat menandai kunci publik dari pengguna yang berhubungan dengan kunci privat
  • Subject’s public-key information: Kunci publik pengguna, ditambah algoritma penanda, kunci yang digunakan selalu digabungkan dengan parameter lainya.
  • Issuer unique identifier: pilihan bit string yang digunkan untuk mengindentifikasi hasil CA yang unik dalam X.500 nama merupakan sebagai wujud yang berbeda (different entities).
  • Subject unique identifier: pilihan bit string yang digunakan untuk mengidentifikasi subjek yang unik dalam X.500 nama merupakan sebagai wujud yang berbeda (different entities).
  • Extensions: sebuah satuan satu atau lebih extention. Extention ditambahkan pada versi ke-3 dan dibicarakan selanjutnya.
  • Signature: menutupi semua isi sertifikat; ini mengandung nilai hash bagian lainnya, dienkripsi dengan kunci privat CA. ini menagndung pengidentifikasi algoritma penanda (the signature algorithm identifier)
  • 3.RSA

    RSA di bidang kriptografi adalah sebuah algoritma pada enkripsi public key. RSA merupakan algoritma pertama yang cocok untuk digital signature seperti halnya ekripsi, dan salah satu yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamnkan dengan menggunakan kunci yang cukup panjang.
    Operasional
    Pembangkitan Kunci
    Semisal Alice berkeinginan untuk mengizinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private message) melalui media transmisi yang tidak aman (insecure). Alice melakukan langkah-langkah berikut untuk membuat pasangan kunci public key dan private key:
    1. Pilih dua bilangan prima p ≠ q secara acak dan terpisah untuk tiap-tiap p dan q. Hitung N = p q. N hasil perkalian dari p dikalikan dengan q.
    2. Hitung φ = (p-1)(q-1).
    3. Pilih bilangan bulat (integer) antara satu dan φ (1 < e < φ) yang juga merupakan coprime dari φ.
    4. Hitung d hingga d e ≡ 1 (mod φ).
    • bilangan prima dapat diuji probabilitasnya menggunakan Fermat's little theorem- a^(n-1) mod n = 1 jika n adalah bilangan prima, diuji dengan beberapa nilai a menghasilkan kemungkinan yang tinggi bahwa n ialah bilangan prima. Carmichael numbers (angka-angka Carmichael) dapat melalui pengujian dari seluruh a, tetapi hal ini sangatlah langka.
    • langkah 3 dan 4 dapat dihasilkan dengan algoritma extended Euclidean; lihat juga aritmetika modular.
    • langkah 4 dapat dihasilkan dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)/e menghasilkan bilangan bulat, kemudian menggunakan nilai dari d (mod (p-1)(q-1));
    • langkah 2 PKCS#1 v2.1 menggunakan &lamda; = lcm(p-1, q-1) selain daripada φ = (p-1)(q-1)).
    Pada public key terdiri atas:
    • N, modulus yang digunakan.
    • e, eksponen publik (sering juga disebut eksponen enkripsi).
    Pada private key terdiri atas:
    • N, modulus yang digunakan, digunakan pula pada public key.
    • d, eksponen pribadi (sering juga disebut eksponen dekripsi), yang harus dijaga kerahasiaannya.
    Biasanya, berbeda dari bentuk private key (termasuk parameter CRT):
    • p dan q, bilangan prima dari pembangkitan kunci.
    • d mod (p-1) dan d mod (q-1) (dikenal sebagai dmp1 dan dmq1).
    • (1/q) mod p (dikenal sebagai iqmp).
    Bentuk ini membuat proses dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT). Dalam bentuk ini, seluruh bagian dari private key harus dijaga kerahasiaannya.
    Alice mengirimkan public key kepada Bob, dan tetap merahasiakan private key yang digunakan. p dan q sangat sensitif dikarenakan merupakan faktorial dari N, dan membuat perhitungan dari d menghasilkan e. Jika p dan q tidak disimpan dalam bentuk CRT dari private key, maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan kunci.
    Proses enkripsi pesan
    Misalkan Bob ingin mengirim pesan m ke Alice. Bob mengubah m menjadi angka n < N, menggunakan protokol yang sebelumnya telah disepakati dan dikenal sebagai padding scheme.
    Maka Bob memiliki n dan mengetahui N dan e, yang telah diumumkan oleh Alice. Bob kemudian menghitung ciphertext c yang terkait pada n:

    Perhitungan tersebut dapat diselesaikan dengan cepat menggunakan metode exponentiation by squaring. Bob kemudian mengirimkan c kepada Alice.
    Proses dekripsi pesan
    Alice menerima c dari Bob, dan mengetahui private key yang digunakan oleh Alice sendiri. Alice kemudian memulihkan n dari c dengan langkah-langkah berikut:

    Perhitungan diatas akan menghasilkan n, dengan begitu Alice dapat mengembalikan pesan semula m. Prosedur dekripsi bekerja karena
    .
    Kemudian, dikarenakan ed ≡ 1 (mod p-1) dan ed ≡ 1 (mod q-1), hasil dari Fermat's little theorem.

    dan

    Dikarenakan p dan q merupakan bilangan prima yang berbeda, mengaplikasikan Chinese remainder theorem akan menghasilkan dua macam kongruen
    .
    serta
    .
    Contoh proses
    Berikut ini merupakan contoh dari enkripsi RSA dan dekripsinya. Parameter yang digunakan disini berupa bilangan kecil.
    Kita membuat
    p = 61 — bilangan prima pertama (harus dijaga kerahasiannya atau dihapus secara hati-hati)
    q = 53 — bilangan prima kedua (harus dijaga kerahasiannya atau dihapus secara hati-hati)
    N = pq = 3233 — modulus (diberikan kepada publik)
    e = 17 — eksponen publik (diberikan kepada publik)
    d = 2753 — eksponen pribadi (dijaga kerahasiannya)
    Public key yang digunakan adalah (e,N). Private key yang digunakan adalah d. Fungsi pada enkripsi ialah:
    encrypt(n) = ne mod N = n17 mod 3233
    dimana n adalah plaintext Fungsi dekripsi ialah:
    decrypt(c) = cd mod N = c2753 mod 3233
    dimana c adalah ciphertext
    Untuk melakukan enkripsi plaintext bernilai "123", perhitungan yang dilakukan
    encrypt(123) = 12317 mod 3233 = 855
    Untuk melakukan dekripsi ciphertext bernilai "855" perhitungan yang dilakukan
    decrypt(855) = 8552753 mod 3233 = 123
    Kedua perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply algorithm pada modular exponentiation.
    4. CAST-128
    CAST adalah suatu prosedur perancangan untuk algoritma enkripsi simetris. Dekembangkan pada tahun 1997 oleh Carlisle Adams dan Stafford Tavares dari Entrust Technologies Salah satu algoritma spesifik yang dikembangkan dalam CAST adalah CAST ‐128, yang didefinisikan dalam RFC 2144. Dibuat dengan panjang kunci mulai dari 40 bit sampai 128 bit dengan kenaikan 8 bit (40, 48, 56,…..,128). CAST menggunakan S‐Boxes tetap, tetapi lebih besar dibandingkan dengan DES. S‐Boxesnya dirancang sangat linier dan tahan terhap
    5. IDEA
    IDEA (The International Data Encryption Algorithm) merupakan sebuah Block Chiper Simetrik yang dikembangkan oleh Xuejia Lai dan James Massey dari SFIT (Swiss Federal Institute of Technology) pada tahun 1991. IDEA menggunakan sebuah key 128 bit. IDEA mempunyai perbedaan dengan DES dalam dua hal, yaitu fungsi Round dan fungsi Sub Key Generation
    Kapasitas untuk menciptakan dan memahami arti dari IDEA dianggap penting dan melukiskan corak manusia. Dalam pengertian umum, suatu IDEA [muncul] sebagai suatu refleks, secara spontan, bahkan tanpa berpikir.
    6. ELGAMAL
    Algoritma ElGamal merupakan algoritma enkripsi kunci asimetris untuk kriptografi kunci publik yang didasari kesepakatan kunci Diffie-Hellman. Hal ini diusulkan oleh Taher Elgamal pada tahun 1984. Algoritma ElGamal digunakan pada perangkat lunak GNU Privacy Guard, yang merupakan versi dari PGP, dan kriptosistem lainnya. Digital Signature Algorithm(DSA) merupakan varian dari skema tanda tangan digital ElGamal, dan tidak sama dengan algoritma ElGamal. ElGamal merupakan skema tanda tangan digital berbasis logaritma diskrit. ElGamal terdiri dari tiga komponen, yaitu pembangkit kunci (key generator), algoritma enkripsi, dan algoritma dekripsi
    7. DSS
    U.S. Diplomatic Security Service (DSS) adalah lengan tangan pelaksanaan hukum yang pemerintah pusat Departemen Amerika Serikat. Mayoritas tentang Agen Khusus nya adalah anggota Jasa/Layanan asing dan agen pelaksanaan hukum pemerintah pusat pada waktu yang sama, membuatnya unik. Kantor Keamanan Diplomatik, biasanya lebih dikenal sebagai Keamanan Diplomatik, atau DS, adalah organisasi induk yang Melayani Keamanan diplomatik. Kedua-Duanya terminologi, DSS atau DS, dapat digunakan dengan mempertukarkan Deparlu AS dengan para agen untuk mengacu pada DSS. DSS adalah tersusun dari agen pelaksanaan hukum pemerintah pusat, yang terdiri dari Agen Pemerintah pusat Amerika Serikat yang mengamanatkan untuk melayani luar negeri dan domestically.
    8. MD5
    Message Digest 5 (MD-5) adalah salah satu penggunaan fungsi hash satu arah yang paling banyak digunakan. MD-5 merupakan fungsi hash kelima yang dirancang oleh Ron Rivest dan didefinisikan pada RFC 1321[10]. MD-5 merupakan pengembangan dari MD-4 dimana terjadi penambahan satu ronde[1,3,10]. MD-5 memproses teks masukan ke dalam blok-blok bit sebanyak 512 bit, kemudian dibagi ke dalam 32 bit sub blok sebanyak 16 buah. Keluaran dari MD-5 berupa 4 buah blok yang masing-masing 32 bit yang mana akan menjadi 128 bit yang biasa disebut nilai hash[3,10]. Pada Gambar 3.1 terlihat simpul utama dari MD- 5. Simpul utama MD5 mempunyai blok pesan dengan panjang 512 bit yang masuk ke dalam 4 buah ronde. Hasil keluaran dari MD-5 adalah berupa 128 bit dari byte terendah A dan tertinggi byte D.
    9.RC2/40
    yang membutuhkan 40 bit material kunci pada saat algoritma dijalankan satu kali dengan nilai counter sama dengan 1 dan bit yang paling dari 40 bit tersebut digunakan sebagai kunci.
    10. 3DES
    3DES (Triple Data Encryption Standard) merupakan salah satu algoritma simetris pada kriptografi yang digunakan untuk mengamankan data dengan cara menyandikan data. Proses yang dilakukan dalam penyandian datanya, yaitu proses enkripsi dan proses dekripsi. Algoritma 3DES adalah suatu algoritma pengembangan dari algoritma DES (Data Encryption Standard). Perbedaan DES dengan 3DES terletak pada panjangnya kunci yang digunakan. Pada DES menggunakan satu kunci yang panjangnya 56-bit, sedangkan pada 3DES menggunakan 3 kunci yang panjangnya 168- bit (masing-masing panjangnya 56-bit). Pada 3DES, 3 kunci yang digunakan bisa bersifat saling bebas (K1 ≠ K2 ≠ K3) atau hanya dua buah kunci yang saling bebas dan satu kunci lainnya sama dengan kunci pertama (K1 ≠ K2 dan K3 = K1). Karena tingkat kerahasiaan algoritma 3DES terletak pada panjangnya kunci yang digunakan, maka penggunaan algoritma 3DES dianggap lebih aman dibandingkan dengan algoritma DES.

Tidak ada komentar:

Posting Komentar