<<

MAKALAH IF5054 - KRIPTOGRAFI STUDI MENGENAI MQV (Menezes-Qu-Vanstone)

Oleh: Yosep Kurniawan – 13503059

PROGRAM STUDI TEKNIK INFORMATIKA SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2006

STUDI MENGENAI MQV (Menezes-Qu-Vanstone) Yosep Kurniawan – NIM : 13503059 Program Studi Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail : [email protected]

Abstrak

Makalah ini membahas tentang studi mengenai MQV (Menezes-Qu-Vanstone). MQV adalah sebuah protokol kriptografi untuk konfirmasi pertukaran kunci berdasarkan skema Diffie-Hellman. Tidak seperti Diffie-Hellman, MQV menyediakan perlindungan terhadap serangan yang aktif. Secara umum, protokol ini dapat diubah untuk dapat bekerja pada sebuah kelompok terbatas yang berubah-ubah dan secara khusus untuk kelompok atau lebih dikenal dengan ECMQV. MQV pertama kali diusulkan oleh Menezes, Qu dan Vanstone pada tahun 1995, lalu diperbaiki oleh Law dan Solinas pada tahun 1998. MQV ini dimasukkan ke dalam standar kunci-publik IEEE P1363. MQV dipatenkan oleh Certicom.

Kata kunci: MQV, Menezes, Diffie-Hellman, Certicom, elliptic curve.

1. Pendahuluan Para kriptografer selalu berusaha untuk menemukan suatu algoritma yang handal dan Banyak sistem saat ini membutuhkan sulit untuk dipecahkan atau bahkan tidak dapat algoritma kriptografi yang handal untuk dipecahkan oleh kriptanalis. Selain dalam melindungi integritas dan kerahasiaan dari mengenkripsi isi dari pesan, perlu pula data. Algoritma simertri seperti Advanced diperhatikan protokol pertukaran kunci yang Standard (AES) 128-bit dapat digunakan oleh pengirim dan penerima. memberi perlindungan yang kuat untuk lebih Protokol pertukaran kunci ini banyak dari tahun 2036. Namun demikian, untuk digunakan antara lain untuk membangkitkan menggunakan algoritma ini dibutuhkan rangkaian bilangan acak, otentikasi pengirim pengadaan pertukaran kunci sebelumnya. atau penerima, dll. Sebagai contoh pada

aplikasi e-mail saat ini, telah banyak vendor e- Walaupun kunci dapat ditukarkan secara mail yang memiliki fitur untuk mengotentikasi manual dengan menggunakan jasa kurir, pengirim. Hal ini penting mengingat peredaran namun hal ini tidak lagi dapat dipraktekkan virus maupun spam melalui e-mail kian hari apabila jumlah pengguna sistem berkembang kian meningkat. dan sistem juga berkembang. Oleh karena itu, algoritma kriptografi juga perlu didukung dengan skema pertukaran kunci. 2. Protokol Kriptografi

Protokol adalah aturan yang berisi rangkaian Skema pertukaran kunci adalah suatu teknik langkah-langkah, yang melibatkan dua atau yang digunakan oleh sekelompok orang yang lebih orang, yang dibuat untuk menyelesaikan ingin menggunakan komunikasi yang aman di suatu kegiatan. Protokol kriptografi adalah mana kedua belah pihak yang berkomunikasis protokol yang menggunakan kriptografi. Orang juga berkontribusi dalam pengadaan kunci yang berpartisipasi dalam protokol kriptografi rahasia bersama tersebut. Kunci rahasia memerlukan protokol tersebut misalnya untuk bersama ini digunakan untuk menurunkan berbagi komponen rahasia untuk menghitung kunci simetri, yang kemudian digunakan untuk sebuah nilai, membangkitkan rangkaian membuat saluran komunikasi yang aman. bilangan acak, meyakinkan identitas orang Metode dengan membangkitkan kunci rahasia lainnya (otentikasi), dan sebagainya. bersama ini dikenal dengan skema pertukaran kunci dan skema ini sangat berguna untuk aplikasi di mana kelompok-kelompoknya DLC (Discrete Logarithmic ) mempertukarkan data dalam waktu yang real- time. Skema pertukaran kunci harus menjamin terdiri dari FCC (Finite Field Cryptography) bahwa tidak ada orang ketiga (yang tidak dan ECC (Elliptic Curve Cryptography). DLC membutuhkan pasangan kunci publik dan diinginkan oleh sistem) yang akan mendapatkan kunci rahasia bersama tersebut. kunci privat sebagai bagian dari parameter nilai awal. Pengguna dari parameter domain sebelum menggunakannya harus menjamin a dan b = field yang mendefinisikan persamaan bahwa parameter tersebut adalah valid. kurva Meskipun parameter domain adalah informasi SEED = bit string (opsional) yang bersifat publik, mereka sebaiknya mengatur hal ini agar pasangan kunci dan G = titik pembangkitan bilangan prima pada kumpulan domain parameter ini dapat kurva, xG dan yG. dipertahankan oleh semua pengguna pasangan n = orde titik G kunci tersebut. Parameter domain mungkin tetap sama untuk periode waktu tertentu, dan h = kofaktor, nilainya sama dengan orde kurva satu kumpulan domain parameter dapat dibagi n. digunakan untuk beberapa skema pertukaran kunci. 2.1 Pembangkitan Parameter Domain FCC Berikut adalah tabel yang menunjukkan tingkat keamanan penggunaan kunci ECC Parameter domain untuk skema FCC memiliki bentuk: Bits of Bit length of Bit length of Security subgroup order q field order p (p, q, g, [SEED, pgenCounter]) 80 160 65536 dengan 112 224 65536 p = bilangan prima (besar) 128 256 65536 q = bilangan prima, q < p 192 384 65536 g = fungsi pembangkit q 256 512 65536 SEED dan pgenCounter = nilai yang digunakan untuk membangkitkan dan memvalidasi p dan q Sama seperti pembangkitan parameter domain FCC, pada pembangkitan parameter domain ECC juga memberikan jaminan keamanan Berikut adalah tabel yang menunjukkan bahwa yang lebih untuk kunci ECC yang lebih kunci FFC yang lebih panjang akan panjang, tetapi membutuhkan waktu dan memberikan jaminan keamanan yang lebih “ruang” untuk menggunakannya. Untuk namun membutuhkan waktu dan “ruang” untuk mendapatkan perkiraan yang masuk akal dalam menggunakannya. memecahkan kunci dibutuhkan secara 80 112 128 192 256 Bits of Bit length of Bit length of berurutan 2 , 2 , 2 , 2 , 2 operasi. Security subgroup order q field order p 80 160 1024 Dalam pengaturan parameter domain, setiap 112 224 2048 bagian dari kumpulan parameter domain harus dilindungi dari modifikasi dan pengubahan 128 256 3072 sampai dengan kumpulan parameter tersebut rusak atau sampai dengan kumpulan tersebut 192 384 8192 tidak digunakan lagi. Setiap pasangan kunci 256 512 15360 privat – kunci publik seharusnya memiliki kumpulan parameter domain yang spesifik seperti contohnya pada sertifikat kunci publik. 2.2 Pembangkitan Parameter Domain ECC Parameter domain untuk skema ECC memiliki 2.3 Proses Validasi Kunci Publik bentuk: 2.3.1 Proses Validasi FFC Full Public (q, FR, a, b, [SEED], G, n, h) Validasi FFC full public key tidak memerlukan dengan pengetahuan mengenai kunci privat yang q = ukuran field, dapat berupa bilangan prima berasosiasi sehingga hal ini dapat dilakukan ganjil atau 2m, di mana m adalah bilangan kapan pun oleh semua orang. Metode ini prima ganjil sebaiknya digunakan dengan kunci publik FFC yang bersifat statis dan berlangsung sementara. FR = basis awal [28]

Masukan: apakah berada dalam jangkauan yang tidak valid dalam grup EC. 1. (p, q, g [, seed, pgenCounter]: kumpulan parameter domain FCC 2. Lakukan pengujian apakah xQ’ dan yQ’ yang valid. adalah bilangan bulat dalam selang [0, p-1] dalam kasus q = p adalah sebuah 2. y: salah satu calon FCC public key. bilangan prima ganjil, atau xQ’ dan yQ’ adalah bit string dengan panjang m bits dalam kasus q = 2m. Proses: 3. Jika q=p adalah bilangan prima ganjil,

1. Lakukan pengujian apakah lakukan pengujian apakah 2 ≤ y ≤ p-2 2 3 (yQ’) ≡ (xQ’) + axQ’ + b (mod p) Hal ini dilakukan untuk memastikan Jika q=2m, lakukan pengujian apakah bahwa kunci memiliki representasi 2 3 2 yang unik, benar dan berada dalam (yQ’) + xQ’yQ’ = (xQ’) + a(xQ’) + b jangkauan dari field. berada dalam GF(2m). 2. Lakukan pengujian apakah Hal ini dilakukan untuk memastikan yq = 1 (mod p) apakah kunci publik berada dalam urutan yang benar dalam grup EC. Hal ini dilakukan untuk memastikan bahwa kunci memiliki urutan yang 4. Lakukan pengujian apakah benar dalam subgroup. nQ’ = O

Hal ini dilakukan untuk memastikan Keluaran: bahwa kunci publik memiliki urutan yang benar. Selama pengecekan 1, Jika ada salah satu dari pengecekan di atas pastikan bahwa kunci publik berada yang gagal, maka keluaran akan tidak dalam jangkauan yang benar dari EC valid. Sebaliknya, jika berhasil, maka subgroup. keluarannya adalah validasi penuh berhasil. Keluaran: 2.3.2 Proses Validasi ECC Full Public Key Jika ada salah satu dari pengecekan di atas yang gagal, maka keluaran akan tidak Proses ini mengecek semua properti aritmetika valid. Sebaliknya, jika berhasil, maka dari calon ECC public key. Validasi ECC full keluarannya adalah validasi penuh public key tidak memerlukan pengetahuan berhasil. mengenai kunci privat yang berasosiasi sehingga hal ini dapat dilakukan kapan pun oleh semua orang. Metode ini sebaiknya digunakan dengan kunci publik ECC yang 2.3.3 Proses Validasi ECC Partial Public Key bersifat statis dan berlangsung sementara. [28] Proses ini mengecek beberapa tapi tidak seluruh properti aritmetika dari calon ECC public key. ECC partial public key Masukan: mengabaikan validasi keanggotaan subgroup, dan biasanya proses yang dibutuhkan lebih 1. (q, FR, a, b, [SEED, ] G, n h): cepat daripada validasi ECC full public key. kumpulan parameter domain ECC Validasi ECC full public key tidak memerlukan yang valid. pengetahuan mengenai kunci privat yang 2. Q’ = (xQ’, yQ’): salah satu calon ECC berasosiasi sehingga hal ini dapat dilakukan public key. kapan pun oleh semua orang. Metode ini sebaiknya digunakan dengan kunci publik ECC

yang bersifat statis dan berlangsung sementara. Proses: [28] 1. Lakukan pengujian apakah Q’ bukan titik tak terhingga O. Hal ini untuk

menguji sebagian dari kunci publik

Masukan: beberapa skema pertukaran kunci yang selanjutnya akan dibahas: 1. (q, FR, a, b, [SEED, ] G, n h): kumpulan parameter domain ECC 1. Primitif FFC Diffie-Hellman: Primitif yang valid. ini sebaiknya digunakan untuk skema dhHybrid1, dhEphem, 2. Q’ = (x , y ): salah satu calon ECC Q’ Q’ dhHybridOneFlow, dhOneFlow dan public key. dhStatic yang berdasarkan finite field cryptography dan algoritma Diffie- Hellman. Proses: 2. Primitif ECC Cofactor Diffie- 1. Lakukan pengujian apakah Q’ bukan Hellman: merupakan modifikasi dari titik tak terhingga O. Hal ini untuk primitif Diffie-Hellman. Primitif ini menguji sebagian dari kunci publik sebaiknya digunakan untuk skema apakah berada dalam jangkauan yang Full Unified Model, Ephemeral tidak valid dalam grup EC. Unified Model, One-Pass Unified

2. Lakukan pengujian apakah xQ’ dan yQ’ Model, One-Pass Diffie-Hellman, dan adalah bilangan bulat dalam selang [0, Static Unified Model yang p-1] dalam kasus q = p adalah sebuah berdasarkan elliptic curve bilangan prima ganjil, atau xQ’ dan yQ’ cryptography dan algoritma Diffie- adalah bit string dengan panjang m Hellman. m bits dalam kasus q = 2 . 3. Primitif FFC MQV: Primitif ini 3. Jika q=p adalah bilangan prima ganjil, sebaiknya digunakan untuk skema lakukan pengujian apakah MQV2 dan MQV1 yang berdasarkan 2 3 finite field cryptography dan (yQ’) ≡ (xQ’) + axQ’ + b (mod p) algoritma MQV. m Jika q=2 , lakukan pengujian apakah 4. Primitif ECC MQV: Primitif ini 2 3 2 sebaiknya digunakan untuk skema (yQ’) + xQ’yQ’ = (xQ’) + a(xQ’) + b Full MQV dan One-Pass MQV yang m berada dalam GF(2 ). berdasarkan elliptic curve Hal ini dilakukan untuk memastikan cryptography dan algoritma MQV. apakah kunci publik berada dalam urutan yang benar dalam grup EC. 2.4.1 Primitif Diffie-Hellman Catatan: Karena urutan kunci publik tidak diverifikasi, maka tidak ada 2.4.1.1 Primitif Finite Field Cryptography pengecekan apakah kunci publik (FFC) Diffie-Hellman berada dalam EC subgroup. Rahasia Z dihitung dengan menggunakan parameter domain (p, q, g [, SEED, pgenCounter]), kunci publik kelompok dan Keluaran: kunci privat. Primitif ini digunakan pada Jika ada salah satu dari pengecekan di atas skema dhHybrid1, dhEphem, yang gagal, maka keluaran akan tidak dhHybridOneFlow, dhOneFlow dan dhStatic. valid. Sebaliknya, jika berhasil, maka Asumsikan bahwa kelompok A adalah keluarannya adalah validasi sebagian kelompok yang melakukan perhitungan, dan berhasil. kelompok B adalah kelompok lainnya yang terkait pada pertukaran kunci. Catatan: kelompok A dapat berperan sebagai initiator U 2.4 Primitif Discrete Logarithmic atau responder V. Cryptography Primitif untuk melakukan perhitungan pada Masukan: penyebaran kunci didefinisikan pada ANSI X9.42 dan X9.63. Primitif adalah sebuah 1. (p, q, g [, SEED, pgenCounter]): proses sederhana yang didefinisikan untuk parameter domain. memfasilitasi implementasi pada subrutin 2. xA: kunci privat. perangkat keras atau pada subrutin perangkat lunak. Setiap skema pertukaran kunci 3. yB: kunci publik kelompok lain membutuhkan satu primitif. Berikut adalah (kelompok B). Proses: memilikinya. Asumsikan bahwa kelompok A adalah kelompok yang melakukan perhitungan, xA 1. Z = y mod p dan kelompok B adalah kelompok lainnya B yang terkait pada pertukaran kunci. Catatan: 2. Jika Z = 1, keluaran = “Gagal”. kelompok A dapat berperan sebagai initiator U atau responder V. 3. Jika tidak, keluaran = Z.

Masukan: Keluaran: 1. (p, q, g [, SEED, pgenCounter]): Z atau “Gagal”. parameter domain.

2. xA: kunci privat statis. 2.4.1.2 Primitif Elliptic Curve Cryptography 3. yB: kunci publik statis kelompok (ECC) Cofactor Diffie-Hellman (CDH) lainnya (kelompok B). Rahasia Z dihitung dengan menggunakan 4. r : kunci privat kedua. parameter domain (q, FR, a, b, [SEED,] G, n, A h), kunci publik kelompok, dan kunci privat. 5. tA: kunci publik kedua. Primitif ini digunakan pada skema Full Unified 6. tB: kunci publik kedua milik Model, Ephemeral Unified Model, One-Pass kelompok lain. Unified Model, One-Pass Diffie-Hellman, dan Static Unified Model. Asumsikan bahwa kelompok A adalah kelompok yang melakukan Proses: perhitungan, dan kelompok B adalah kelompok lainnya yang terkait pada pertukaran kunci. 1. w = ║q║/ 2. Catatan: kelompok A dapat berperan sebagai 2. T = (t mod 2w) + 2w. initiator U atau responder V. A A 3. S = (r + T x ) mod q. A A A A 4. T = (t mod 2w) + 2w. Masukan: B B S 1. (q, FR, a, b, [SEED,] G, n, h): TB A Z = ( t y )mod p. parameter domain. 5. ( B ( B ))

2. dA: kunci privat. 6. Jika Z = 1, keluaran = “Gagal”.

3. QB: kunci publik kelompok lain 7. Jika tidak, keluaran = Z. (kelompok B). Keluaran: Proses: Z atau “Gagal”. 1. Lakukan perhitungan titik P = hdAQB. 2. Jika P = O, keluaran = “Gagal”. 2.4.2.1.1 Finite Field Cryptography MQV2 3. Z = xP di mana xP adalah koordinat x Skema MQV2 adalah salah satu skema yang dari titik P. menggunakan primitif FFC MQV. Pada skema ini, setiap kelompok memiliki pasangan kunci statis dan pasangan kunci sementara. Keluaran: Asumsikan bahwa kelompok A adalah Z atau “Gagal”. kelompok yang melakukan perhitungan, dan kelompok B adalah kelompok lainnya yang terkait pada pertukaran kunci. Catatan: 2.4.2 Primitif Menezes-Qu-Vanstone (MQV) kelompok A dapat berperan sebagai initiator U atau responder V. 2.4.2.1 Primitif Finite Field Cryptography (FFC) MQV Rahasia Z dihitung dengan menggunakan Pada skema ini, masukan keempat dan kelima parameter domain (p, q, g [, SEED, (kunci privat dan kunci publik kedua) pada pgenCounter]), kunci publik kelompok dan masukan FFC MQV menjadi pasangan kunci kunci privat dan kunci publik kelompok yang sementara, kunci privat dan kunci publik sementara (rA dan tA), sedangkan masukan 5. Qe, A: kunci publik kedua. keenam (kunci publik kedua milik kelompok lain) menjadi kunci publik sementara 6. Qe, B: kunci publik kedua kelompok kelompok lain (tB). lain (kelompok B).

2.4.2.1.2 Finite Field Cryptography MQV1 Proses:

Skema MQV1 adalah salah satu skema yang 1. implicitsigA = (de, A + avf(Qe, A) dS, A) menggunakan primitif FFC MQV. Pada skema mod n. ini, initiator memiliki pasangan kunci statis dan sebuah pasangan kunci sementara, 2. P = h(implicitsigA)(Qe, B + avf(Qe, B) sedangkan responder hanya memiliki pasangan QS, B). kunci statis. One-Pass MQV (bentuk store and 3. Jika P = O, keluaran = “Gagal”. forward) menggunakan primitif MQV dengan menggunakan pasangan kunci statis responder 4. Z = xP, di mana xP adalah koordinat x sebagai pasangan kunci kedua responder dari P. (responder tidak memiliki pasangan kunci sementara). Keluaran:

Z atau “Gagal”. Initiator menggunakan kunci publik statis responder sebagai kunci publik kedua. Sebagai contoh, masukan keenam pada algoritma FFC 2.4.2.2.1 Elliptic Curve Cryptography Full MQV menjadi kunci publik statis kelompok MQV lain (yA). Skema ECC Full MQV adalah salah satu

skema yang menggunakan primitif ECC MQV. Responder menggunakan kunci privat statis Pada skema ini, setiap kelompok memiliki miliknya sebagai kunci privat kedua. Sebagai pasangan kunci statis dan pasangan kunci contoh, masukan keempat menjadi kunci privat sementara. Asumsikan bahwa kelompok A statis responder xA dan masukan kelima adalah kelompok yang melakukan perhitungan, menjadi kunci publik statis responder (yA). dan kelompok B adalah kelompok lainnya yang terkait pada pertukaran kunci. Catatan: kelompok A dapat berperan sebagai initiator U 2.4.2.2 Primitif Elliptic Curve Cryptography atau responder V. (ECC) MQV Rahasia Z dihitung dengan menggunakan Pada skema ini, pasangan kunci kedua milik parameter domain (q, FR, a, b, [SEED,] G, n, kelompok yang melakukan perhitungan h), kunci publik kelompok, dan kunci privat menjadi pasangan kunci sementara kelompok dan kunci publik kelompok yang memilikinya. yang melakukan perhitungan dan pasangan Versi ECC MQV menggunakan kofaktor h kunci kedua milik kelompok lain menjadi dalam perhitungannya. Asumsikan bahwa pasangan kunci sementara kelompok lain. kelompok A adalah kelompok yang melakukan perhitungan, dan kelompok B adalah kelompok lainnya yang terkait pada pertukaran kunci. 2.4.2.2.2 Elliptic Curve Cryptography One- Catatan: kelompok A dapat berperan sebagai Pass MQV initiator U atau responder V. Skema ECC One-Pass MQV adalah salah satu

skema yang menggunakan primitif ECC MQV. Masukan: Pada skema ini, initiator memiliki pasangan kunci statis dan pasangan kunci sementara, 1. (q, FR, a, b, [SEED,] G, n, h): sedangkan responder hanya memiliki pasangan parameter domain. kunci statis. setiap kelompok memiliki

2. dS, A: kunci privat statis. pasangan kunci statis dan pasangan kunci sementara. One-Pass MQV (bentuk store and 3. QS, B: kunci publik statis kelompok forward) menggunakan primitif MQV dengan lain (kelompok B). menggunakan pasangan kunci statis responder sebagai pasangan kunci kedua responder 4. de, A: kunci privat kedua. (responder tidak memiliki kunci sementara) Initiator menggunakan kunci publik statis dari kunci sesi sebelumnya yang responder sebagai kunci publik kedua dibangkitkan oleh entitas yang baik responder. Sebagai contoh, masukan keenam tidak berpengaruh. pada algoritma ECC MQV menjadi kunci publik statis kelompok lain (QS, B). 3. key-compromise impersonation. Andaikan kunci privat jangka panjang

A telah diketahui. Dalam keadaan ini, Responder menggunakan kunci privat statis lawan dapat menirukan A, karena miliknya sebagai kunci privat keduanya. nilai kunci privat A digunakan untuk Sebagai contoh, masukan keempat menjadi mengidentifikasi A. Sebuah protokol kunci privat statis responder dS, A dan masukan diharapkan dapat menangani kelima menjadi kunci publik statis responder kelemahan ini dan entitas selain A (QS, A). tidak dapat menirukan A.

4. unknown key-share. 3. MQV Entitas A tidak dapat dipaksa untuk melakukan pertukaran kunci dengan MQV (Menezes-Qu-Vanstone) adalah sebuah entitas B tanpa sepengetahuan A. algoritma untuk konfirmasi pertukaran kunci Sebagai contoh, A mempercayai berdasarkan skema Diffie-Hellman. Tidak bahwa kunci diberikan kepada sebuah seperti Diffie-Hellman, MQV menyediakan entitas C bukan B dan B yang perlindungan terhadap serangan yang aktif. sebenarnya percaya bahwa ia sedang Secara umum, protokol ini dapat diubah untuk bertukar kunci dengan A. dapat bekerja pada sebuah kelompok terbatas yang berubah-ubah dan secara khusus untuk 5. key-control. kelompok elliptic curve atau lebih dikenal Tidak ada entitas baik A maupun B dengan ECMQV. yang mampu memaksa kunci sesi untuk memiliki nilai yang telah Terdapat dua jenis protokol pertukaran kunci dipilih terlebih dahulu. secara umum, yaitu authenticated key agreement (AK) protocol dan authenticated 6. identity assurance key agreement with key confirmation (AKC) Setiap kelompok memiliki jaminan protocol. Protokol pertukaran kunci yang terhadap identitasnya. menyediakan fitur autentikasi kunci secara implisit kepada kedua belah entitas yang MQV pertama kali diusulkan oleh Menezes, terkait disebut sebagai authenticated key Qu dan Vanstone pada tahun 1995, lalu agreement (AK) protocol, sedangkan protokol diperbaiki oleh Law dan Solinas pada tahun pertukaran kunci yang menyediakan fitur 1998. MQV ini dimasukkan ke dalam standar autentikasi kunci secara eksplisit kepada kedua kunci-publik IEEE P1363. MQV dipatenkan belah entitas yang terkait disebut sebagai oleh Certicom. authenticated key agreement with key confirmation (AKC) protocol. IEEE P1363 adalah sebuah standar dari Institute of Electrical and Electronic Engineers Terdapat beberapa atribut keamanan yang (IEEE) untuk kriptografi kunci-publik. Standar sebaiknya terdapat pada dua jenis algoritma ini mencakup spesifikasi sebagai berikut: pertukaran kunci di atas, yaitu a. Kriptografi kunci publik tradisional 1. known-key security. (P1363-2000 dan P1363A-2004) termasuk Setiap protokol pertukaran kunci yang tanda tangan digital dan pengadaan kunci digunakan antara entitas A dan B menggunakan beberapa pendekatan harus menghasilkan kunci yang unik matematis, seperti: dan rahasia, seperti kunci sesi. 1. Pemfaktoran bilangan (RSA). Protokol juga harus dapat tetap 2. Logaritma Diskrit (Diffie-Hellman, memiliki tujuannya dalam DSA). menghadapi lawan yang telah 3. Elliptic Curve mempelajari beberapa kunci sesi. (MQV). b. Pola geometris berdasarkan enkripsi dan 2. (perfect) forward secrecy. tanda tangan digital (NTRUEncrypt dan Jika kunci privat jangka panjang dari NTRUSign) kriptografi kunci-publik satu atau lebih entitas (P1363.1). membahayakan, maka kerahasiaan c. Sandi lewat berdasarkan kriptografi kunci- 1. Interaktif (MQV2) – simetris publik (P1363.2). 2. Store and Forward (MQV1) – 1. Pertukaran kunci dengan otentikasi asimetris sandi lewat (contoh: EKE, SPEKE, SRP). 2. Skema untuk mendapatkan kunci MQV2 dengan otentikasi sandi lewat Berikut adalah skema pertukaran kunci (contoh: Ford dan Kaliski). MQV2: d. Kriptografi kunci-publik berdasarkan identitas dan pasangan-pasangan (Asumsi: Kelompok U adalah kelompok (P1363.3) (proyek disetujui bulan initiator dan kelompok V adalah kelompok September 2005). responder)

Certicom Corporation adalah sebuah sebuah perusahaan di bidang kriptografi yang Kelompok U Kelompok V ditemukan oleh Dr. Scott Vanstone pada tahun Data statis 1. Parameter 1. Parameter 1985. Arsitektur pengamanan Certicom terdiri domain (p,q, domain (p,q, g) dari kumpulan penyedia perangkat lunak g) 2. Kunci privat kriptografi yang modular dan portable. 2. Kunci privat statis, xV Penyedia perangkat lunak yang terdapat pada statis, xU 3. Kunci publik arsitektur ini menyediakan validasi FIPS 140-2 3. Kunci publik statis, yV dan memenuhi pedoman National Security statis, yU Agency (NSA) untuk ECC dan layanan Data 1. Parameter 1. Parameter pengamanan seperti SSL, IPSec, PKI, DRM, sementara domain (p,q, domain (p,q, g) dan Embedded Trust Services (ETS). Board g) 2. Kunci privat Support Packages (BSP) memungkinkan 2. Kunci privat sementara, rV fungsional kriptografi diterapkan pada sementara, rU 3. Kunci publik perangkat keras. Solusi yang komprehensif ini 3. Kunci sementara, tV didesain secara spesifik untuk memenuhi sementara kebutuhan pasar seperti komunikasi statis, tU pemerintahan, mobilitas, DRM dan akses Masukan (p, q, g), xU, yV, (p, q, g), xV, yU, rV, kondisional, dan perangkat lunak enterprise. rU, tU, tV tV, tU Gambar berikut menunjukkan arsitektur w = ||q|| / 2 w = ||q|| / 2 w w pengamanan Certicom. tU’ = (tU mod 2 ) tV’ = (tV mod 2 ) + + 2w 2w

SU = (rU + tU’ xU) SV = (rV + tV’ xV) mod q mod q w w tV’ = (tV mod 2 ) tU’ = (tU mod 2 ) + + 2w 2w ZMQV = ((tV (yV ^ ZMQV = ((tU (yU ^ tV’)) ^ SU) mod p tU’)) ^ SV) mod p Keluaran ZZ = oct(ZMQV) ZZ = oct(ZMQV) Penurunan Menggunakan Menggunakan Kunci fungsi untuk fungsi untuk menurunkan kunci menurunkan kunci menggunakan ZZ, menggunakan ZZ, Arsitektur Pengamanan Certicom panjang kunci dan panjang kunci dan informasi lainnya informasi lainnya NSA mengadopsi 26 paten ECC yang dikeluarkan Certicom untuk komunikasi MQV1 pemerintah yang rahasia dan komunikasi yang tidak rahasia tapi sensitif. Pelanggan Certicom Kedua kelompok memberikan jumlah meliputi General Dynamics, Motorola, Oracle, informasi yang berbeda: Research In Motion dan Unisys. 1. Initiator (U) memberikan dua pasang kunci – statis dan sementara. Seperti telah dijelaskan sebelumnya, bahwa 2. Responder (V) memberikan sebuah algoritma MQV merupakan variasi dari pasang kunci – statis. algoritma Diffie-Hellman dan terdapat 2 bentuk MQV, yaitu:

Berikut adalah skema pertukaran kunci mana x adalah sebuah bilangan dan X adalah MQV1: titik pada kurva elliptic. Kelompok U Kelompok V Bank membangkitkan kunci sesi (Y, y) dari Data statis 1. Parameter 1. Parameter hasil pembangkitan bilangan acak dengan y domain (p,q, g) domain (p,q, g) sebagai umpannya, lalu menghitung Y = yP.

2. Kunci privat 2. Kunci privat P adalah titik pembangkitan pada kurva statis, x statis, x U V elliptic. 3. Kunci publik 3. Kunci publik

statis, yU statis, yV Kemudian Alice mengirimkan X kepada Bank Data 1. Parameter N/A dan Bank mengirimkan Y kepada Alice. Alice sementara domain (p,q, g) menerima Y dari Bank, lalu menghitung xY = 2. Kunci privat xyP. Bank menerima X dari Alice, lalu sementara, rU menghitung yX = yxP. 3. Kunci sementara Sekarang mereka telah memiliki kunci rahasia statis, tU xyP. Masukan (p, q, g), xU, yV, (p, q, g), xV, yU, tU, rU, tU, w w w w tU’ = (tU mod 2 ) yV’ = (yV mod 2 ) Pada algoritma pertukaran kunci Diffie- + 2w + 2w Hellman ini, masih terdapat kelemahan, yaitu SU = (rU + tU’ xU) SV = (rV + yV’ xV) Alice dan Bank tidak memiliki sesi yang benar mod q mod q aman, karena kunci publik dan kunci privat w w yV’ = (yV mod 2 ) tU’ = (tU mod 2 ) + dibangkitkan on the fly, tidak ada autentikasi + 2w 2w terhadap pengguna yang menjamin tidak adanya penyamaran entitas. MQV menjawab ZMQV = (yV (yV ^ ZMQV = ((tU (yU ^ permasalahan ini. yV’)) ^ SU mod p tU’)) ^ SV) mod p Keluaran ZZ = oct(ZMQV) ZZ = oct(ZMQV) Penurunan Menggunakan Menggunakan Kunci fungsi untuk fungsi untuk MQV menurunkan kunci menurunkan kunci Dibandingkan dengan algoritma pertukaran menggunakan ZZ, menggunakan ZZ, kunci Diffie-Hellman, MQV mampu panjang kunci dan panjang kunci dan mengatasi unknown key-share attack yang informasi lainnya informasi lainnya merupakan salah satu atribut yang diharapkan dimiliki pada algoritma pertukaran kunci yang telah dijelaskan sebelumnya. Selain itu, MQV Perbandingan Diffie-Hellman dan MQV juga memiliki atribut key-compromise Diffie-Hellman impersonation. Kedua atribut ini tidak ditemukan pada algoritma pertukaran kunci Diffie-Hellman. Dengan demikian, protokol kriptografi yang menggunakan algoritma pertukaran kunci MQV dapat memiliki proses autentikasi yang lebih kuat dan memastikan entitas lawan tidak mampu untuk menyamar sebagai kelompok ketiga dari entitas-entitas yang melakukan pertukaran kunci.

MQV juga memiliki atribut lainnya yang Skema Pertukaran Kunci Diffie-Hellman memberikan nilai tambah pada protokol ini, antara lain yaitu biaya komunikasi yang Keterangan: rendah, role-symmetric, tidak interaktif dan Alice dan Bank menyepakati untuk tidak menggunakan enkripsi atau time- menggunakan Diffie-Hellman. stamping.

Alice membangkitkan kunci sesi (X, x) dari Sebagai hasilnya, MQV memiliki semua hasil pembangkitan bilangan acak dengan x atribut keamanan yang diinginkan dalam sebagai umpannya, lalu menghitung X = xP di pertukaran kunci. Selain itu, jika perhitungan dilakukan dengan menggunakan elliptic curve cryptography, MQV menawarkan performansi Bank juga memiliki pasangan kunci (B, b), di yang menguntungkan yang signifikan mana B adalah kunci publik bank dan b adalah dibandingkan skema pertukaran kunci yang kunci privat bank. lain. Hal ini menyebabkan pengembangan protokol keamanan dan sistem yang membutuhkan skema pertukaran kunci yang Alice membangkitkan kunci sesi (X, x) dari efisien dan terautentikasi menjadi ideal apabila hasil pembangkitan bilangan acak dengan x menggunakan skema ini. sebagai umpannya, lalu menghitung X = xP di mana x adalah sebuah bilangan dan X adalah

titik pada kurva elliptic. Berikut adalah gambar yang menunjukkan Bank membangkitkan kunci sesi (Y, y) dari skema pertukaran kunci MQV secara umum. hasil pembangkitan bilangan acak dengan y sebagai umpannya, lalu menghitung Y = yP. P adalah titik pembangkitan pada kurva elliptic.

Kemudian Alice mengirimkan X kepada Bank dan Bank mengirimkan Y kepada Alice. Asumsi: Alice telah memiliki kunci publik Bank dan Bank telah memiliki kunci publik Alice. Kunci publik telah diterima dengan cara Skema Pertukaran Kunci MQV yang terjamin.

Keterangan: 4. Kesimpulan Alice menghitung S (disebut sebagai implicit MQV memiliki semua atribut keamanan untuk signature): algoritma pertukaran kunci. Protokol S = (x + Xa) mod n kriptografi yang menggunakan algoritma MQV A sebagai algoritma pertukaran kuncinya akan , di mana n adalah orde dari pembangkitan titik memberikan autentikasi yang kuat dan MQV P. dapat menjamin bahwa tidak ada entitas lawan yang dapat menyamar sebagai kelompok ketiga dari entitas-entitas yang melakukan pertukaran Bank menghitung SB dengan cara yang sama: kunci.

SB = (y + Y b) mod n MQV terbagi menjadi dua bentuk, interaktif (MQV2) dan store and forward (MQV1). Alice dan Bank menghitung K: MQV2 melibatkan dua kelompok (initiator [U] dan responder [V]), di mana kedua kelompok K = hSA(Y + Y B) tersebut memiliki pasangan kunci yang sama, yaitu pasangan kunci statis dan pasangan kunci = hSB(X + X A) sementara. , di mana h adalah kofaktor yang didefinisikan pada P1363. MQV1 melibatkan satu kelompok (initiator [U]), di mana kelompok ini memiliki kedua pasangan kunci, yaitu pasangan kunci statis X (atau Y ) merepresentasikan L bit pertama dan pasangan kunci sementara. Sedangkan dari komponen pertama dari titik X (atau Y), di kelompok responder [V] hanya memiliki

⎡([log2 n]+1)⎤ pasangan kunci pasangan kunci statis saja. mana L = ⎢ ⎥ ⎣ 2 ⎦ Alice memiliki pasangan kunci (A, a), di mana Pada primitif MQV, initiator [U] dan A adalah kunci publiknya dan a adalah kunci responder [V] hanya memiliki pasangan kunci privatnya. statis.

Skema Diffie-Hellman yang sederhana, menyebabkan ketahanan MQV tidak memiliki beberapa kekurangan yang utama dapat dipenuhi. dalam hal kemananan. MQV yang merupakan pengembangan dari skema Diffie-Hellman mampu mengatasi cacat yang terdapat pada 5. Prime-order checks skema Diffie-Hellman, tapi MQV dapat membuat protokol yang menggunakan skema MQV membutuhkan pengecekan orde prima oleh setiap peer-nya. ini menjadi tidak efisien. Jika protokol keamanan yang diinginkan adalah sebuah Pengecekan ini menambah biaya protokol yang memiliki performansi yang secara eksponensial untuk setiap peer dan mempengaruhi performansi MQV signifikan, maka MQV masih dapat digunakan. secara signifikan.

Berikut adalah beberapa kelemahan lain yang dimiliki primitif MQV. Skema ECMQV dengan perhitungan elliptic curve cryptography akan memberikan 1. Group representation attack performansi yang menguntungkan dan dapat menjadikan ECMQV sebagai algoritma Keamanan MQV sangat rentan dalam pertukaran kunci yang lebih baik dibandingkan hal representasi elemen-elemen grup algoritma pertukaran kunci yang lain yang ada dalam protokol. MQV membutuhkan saat ini. Alasan utama yang menyebabkan representasi grup yang memiliki ECMQV menjadi algoritma pertukaran kunci batasan tertentu untuk membuktikan yang baik adalah karena ukuran kunci yang bahwa MQV aman. digunakan lebih kecil dan perhitungan yang dilakukan lebih cepat. 2. Unknown Key-Share (UKS) attack Meskipun MQV diakui dapat Hal-hal di atas membuat MQV sangat cocok mengatasi hal ini, namun Kaliski untuk lingkungan yang penuh dengan batasan menunjukkan bahwa MQV dengan seperti kartu cerdas, mobile devices dan bukti yang dimilikinya masih gagal RFIDs. dalam menghadapi serangan ini. Dan

meskipun dengan menambahkan key confirmation yang berarti Namun demikian, secara umum, dalam menambahkan pesan ketiga dalam menentukan skema mana yang akan dipilih, protokol ini, MQV masih tetap maka perlu dipertimbangkan pula atribut mana dikatakan gagal dalam menghadapi yang penting dalam tingkat keamanan pada serangan ini. Permasalahannya adalah sistem yang akan menggunakan protokol atau MQV gagal apabila penyerang dapat skema pertukaran kunci tersebut. mempelajari status sesi sementara.

Dalam memilih skema mana yang akan 3. Lack of Perfect Forward Secrecy diimplementasikan, pertimbangan mengenai (PFS) skema pertukaran kunci yang akan dipakai menjadi salah satu langkah yang harus dilalui MQV tidak menyediakan atribut dalam mengimplementasikan protokol Perfect Forward Secrecy. Hal ini keamanan dalam sebuah sistem. Selain itu, adalah turunan dari keterbatasan perlu juga diperhatikan pembobotan atribut autentikasi secara implisit yang keamanan yang dibutuhkan oleh sistem. dimiliki protokol 2-pesan yang berdasarkan autentikasi kunci publik. Sebenarnya tidak ada protokol yang dapat menyediakan Perfect Forward Setelah itu, langkah selanjutnya adalah pemilihan primitif. Saat ini, dua primitif untuk Secrecy. pertukaran kunci yang dapat menjadi bahan pertimbangan adalah algoritma Diffie-Hellman atau MQV. Kemudian, metode perhitungannya 4. Key-compromise impersonation juga menjadi salah satu faktor yang (KCI) attack mempengaruhi performansi dari sebuah skema. Karena MQV rentan terhadap Metode perhitungan yang dapat digunakan serangan autentikasi yang utama adalah Discrete Logarithmic Cryptography (DLC) atau Elliptic Curve Cryptography (ECC). Setelah melihat protokol HMQV, ternyata beberapa kelemahan yang disebutkan pada artikel HMQV: A High-Performance Secure Setiap langkah yang dipilih harus Diffie-Hellman Protocol [9], dibantah pada dipertimbangkan berdasarkan atribut artikel Another Look At HMQV [10]. Pada keamanan yang berbeda-beda di setiap sistem artikel [10] dikatakan bahwa tidak seluruh keamanan dan bagaimana performansi yang kelemahan tersebut adalah benar. Berikut diinginkan dari atribut tersebut. Secara umum, adalah tiga serangan yang tidak dapat menggunakan ECC dan MQV adalah pilihan dinyatakan sebagai serangan pada MQV. yang terbaik untuk mendapatkan hasil yang terbaik dalam melakukan trade-off performansi 1. Ketahanan terhadap basic keamanan. impersonation attack. Beberapa implementasi dari MQV mungkin lemah karena kurangnya Tabel pada halaman selanjutnya (Tabel Acuan pilihan representasi. Sebagai contoh, Pemilihan Primitif) dapat dijadikan sebagai apabila representasi yang dipilih acuan dalam memilih primitif yang akan adalah representasi di mana l least- digunakan. significant bit dari semua koordinat x dari elliptic curve adalah konstan, maka MQV akan gagal menghadapi Untuk mengatasi kelemahan yang dimiliki impersonation attack. Penelitian ini MQV, terdapat sebuah pengembangan dari mengilustrasikan MQV tidak dapat MQV yang disebut HMQV (Hash MQV). dinyatakan aman terhadap kelompok generic prime-order, tapi hal ini sulit untuk dikatakan sebagai sebuah Perhitungan kunci sesi pada HMQV berbeda serangan. dengan MQV, di mana nilai kunci statis sementara dan kunci publik sementara melibatkan hashing terhadap nilai Diffie- 2. Prime-order testing dan performansi Hellman (X dan Y) dan identitas dari setiap eksponensial. peer. Hal ini bukanlah serangan, melainkan

sebuah peninjauan bahwa validasi Dari deskripsi ini dapat dilihat bahwa HMQV dari kunci publik sementara mempertahankan performansi MQV yang membutuhkan biaya mahal yang menonjol dan dalam waktu yang sama, HMQV eksponensial. mengatasi semua atribut keamanan yang menjadi kelemahan MQV. 3. Validasi dari kunci publik jangka panjang HMQV dibuktikan dalam model acak oracle, Hal ini juga bukanlah sebuah dan dalam asumsi Computational Diffie- serangan, melainkan sebuah Hellman bahwa protokol ini aman dalam peninjauan bahwa validasi kunci model keamanan Canetti-Krawczyk. Protokol publik statis membutuhkan tambahan HMQV ini tahan terhadap serangan pada certification authorities. penyamaran, known-key attack, dan unknown key-share attack. Dari tujuh kelemahan dan serangan terhadap protokol MQV yang dinyatakan dalam [9], Untuk aplikasi yang membutuhkan full Perfect dapat disimpulkan bahwa tiga serangan Forward Secrecy (PFS), HMQV menyediakan pertama adalah bukan serangan dan apa yang varian dari HMQV dengan tiga pesan yang diimplementasikan pada protokol HMQV menambahkan pesan ketiga dan sebuah adalah tidak benar dan kesalahan ini menuju perhitungan MAC. Varian ini menjamin kepada cacat yang fatal dari protokol HMQV. aplikasi memiliki full PFS. Varian ini disebut HMQV-C. Protokol ini menyediakan key Tiga serangan berikutnya adalah sebagai confirmation untuk kedua kelompok yang berikut. terkait. 1. Ketahanan terhadap Key-Compromise 3. Ketahanan terhadap unknown key- Impersonation Attacks share attacks Baik MQV maupun HMQV gagal Sebagai bahan acuan, telah dikatakan untuk menghadapi serangan ini. sebelumnya bahwa pada protokol Penelitian ini dapat digunakan untuk MQV perlu dimasukkan identitas dari membenarkan bahwa kunci sesi kelompok dalam fungsi penurunan sebaiknya diturunkan dengan kunci. melakukan perhitungan hash dari Tiga serangan ini bergantung pada kemampuan kunci rahasia yang telah lawan dalam mempelajari informasi rahasia. dibangkitkan. Serangan yang terakhir adalah perfect forward

secrecy. Hal ini telah diteliti pada artikel [9] 2. Ketahanan terhadap penyingkapan bahwa tidak ada protokol pertukaran kunci Diffie-Hellman eksponen. two-pass yang dapat mencapai “full” forward secrecy. Serangan ini merupakan sebuah Jika lawan dapat mengetahui salah penelitian yang umum bahwa hanya bentuk satu kunci privat sementara (x atau y), yang terbatas dari perfect forward secrecy maka baik MQV maupun HMQV-1 yang dapat dicapai oleh two-pass protocol. juga akan gagal terhadap serangan ini.

Tabel Acuan Pemilihan Primitif

DAFTAR PUSTAKA 09_Alg_990218/SECG-X509-Alg- 990218.PPT - ECC X.509 Certificate

[1] http://en.wikipedia.org/wiki/MQV. Tanggal Format Discussion akses: 16 Oktober 2006 pukul 09:25. Tanggal akses: 16 Oktober 2006 pukul

[2] Kaliski, Burt. (2000). Unknown Key Share 09:20 Attacks and the MQV Protocol. RSA Euro 2000. http://www.rsasecurity.com/rsalabs/staff/b [9] Krawczyk, Hugo. 2005. HMQV: A High- ios/bkaliski/publications/-uks/kaliski- Performance mqv-uks--2000e.ppt. Tanggal akses: 16 Secure* Diffie-Hellman Protocol. IBM Oktober 2006 pukul 09:20 Research. Dapat diakses di http://eprint.iacr.org/2005/176. [3] http://www.rsasecurity.com/rsalabs/node.a [10] Menezes, Alfred. 2005. Another Look At sp?id=2248 - What is Diffie-Hellman Hmqv. Waterloo: University of Waterloo. Dapat diakses di Tanggal akses: 16 Oktober 2006 pukul http://eprint.iacr.org/2005/205. 09:20 [11] Munir, Rinaldi. 2006. Bahan Kuliah [4] IF5054 Kriptografi. Departemen Teknik Informatika, Institut Teknologi Bandung. http://www.strongsec.com/zhw/KSy_Cryp

to.pdf [12] Guidelines on Algorithms Usage and Key Tanggal akses: 16 Oktober 2006 pukul Management. 09:20 http://www.ecbs.org/Download/TR406V4 0.pdf. Tanggal akses: 16 Oktober 2006

pukul 09:20 [5] http://www.randombit.net/pipermail/botan-

devel/2005-June/000064.html [13] http://www.world-knowledge- Tanggal akses: 16 Oktober 2006 pukul encyclopedia.com/?t=MQV. Tanggal akses: 7 November 2006 pukul 11:02 09:20

[14] [6] http://www.answers.com/topic/cryptograp http://www.cs.bu.edu/~reyzin/teaching/f06 hic-protocol. Tanggal akses: 7 November 2006 pukul 11:02 cs538/notes-7.ps

Tanggal akses: 16 Oktober 2006 pukul 09:20 [15] http://www.answers.com/topic/mqv-1. Tanggal akses: 7 November 2006 pukul 11:02 [7] http://csrc.nist.gov/encryption/kms/p1363. [16] http://www.answers.com/topic/certicom. ppt Tanggal akses: 7 November 2006 pukul 11:02 Tanggal akses: 16 Oktober 2006 pukul

09:20 [17] http://experts.about.com/e/m/mq/mqv.htm. [8] Tanggal akses: 7 November 2006 pukul 11:02 http://www.secg.org/collateral/SECG_X5 [18] [28] Recommendation on Key Establishment http://experts.about.com/e/c/ce/certicom.ht Schemes Draft 2.0. January 2003. NIST. m. Tanggal akses: 7 November 2006

pukul 11:02 [29]

http://www.cacr.math.uwaterloo.ca/techre [19] ports/1998/corr98-05.pdf. Tanggal akses: http://experts.about.com/e/i/ie/ieee_p1363. 13 November 2006 pukul 9:28 htm. Tanggal akses: 7 November 2006 pukul 11:02

[20] http://csrc.nist.gov/encryption/kms/x942.p df - ANSI X9.42 Agreement of Symmetric Keys Using Discrete Logarithm. Tanggal akses: 13 November 2006 pukul 9:28

[21] http://csrc.nist.gov/encryption/kms/objecti ves.pdf - Workshop for the Development of a Federal Key Management Standard. Tanggal akses: 13 November 2006 pukul 9:28

[22] http://www.certicom.com/index.php?actio n=res,cc_index. Tanggal akses: 7 November 2006 pukul 11:02

[23] http://www.certicom.com/index.php?actio n=res,ecc_faq. Tanggal akses: 7 November 2006 pukul 11:02

[24] http://www.cacr.math.uwaterloo.ca/techre ports/1998/corr98-05.pdf. Tanggal akses: 7 November 2006 pukul 11:02

[25] http://www.certicom.com/download/aid- 89/C&C_vol1_iss1.pdf. Tanggal akses: 7 November 2006 pukul 11:02

[26] http://www.certicom.com/download/aid- 90/C&C_vol1_iss2.pdf. Tanggal akses: 7 November 2006 pukul 11:02

[27] http://www.certicom.com/download/aid- 325/c&c_vol1_iss4.pdf. Tanggal akses: 7 November 2006 pukul 11:02