KRIPTOGRAFI KUNCI UMU1

Embed Size (px)

Citation preview

KRIPTOGRAFI KUNCI UMUM (PUBLIC KEY CRYTOGRAPHY)(A) Kaedah Diffie-Hellman

Sejarah Kaedah Pertukaran kunci Diffie-Hellman

Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi pada 1976 apabila Whitfield Diffie dan Martin Hellman menerbitkan New Directions in Cryptography yang memperkenalkan hasil penemuan mereka iaitu pertukaran kunci Diffie-Hellman. Karya ini menjelaskan konsep revolusi kriptografi kunci umum dan juga memberikan kaedah baru untuk pertukaran kunci. Kaedah ini amat dipengaruhi oleh karya-karya Ralph Merkle dalam bidang distribusi kunci umum. Sedangkan John Gill juga turut memberi sumbangan dalam penciptaan kaedah ini dengan menyarankan aplikasi masalah logaritma diskrit.

Pengenalan Pertukaran Kunci Diffie-Hellman

Pertukaran kunci Diffie-Hellman adalah protokol kriptografi yang memungkinkan kedua-dua pihak yang bertukar informasi, walaupun mereka tidak mengenal satu sama lainnya, dapat mencipta sebuah kunci rahsia bersama melalui sebuah rangkaian komunikasi yang tidak aman dan tidak dipercayai sekalipun. Kunci ini kemudian dapat digunakan untuk mengenkripsi mesej dengan menggunakan kunci cipher simetris. Tujuan utama penggunaan kaedah Diffie-Hellman ini adalah untuk menjana kunci rahsia yang sama bagi kedua-dua penghantar dan penerima dan seterusnya menggunakannya untuk mengenkripsikan mesej.

Proses Pertukaran Kunci Diffie-Hellman

Secara umumnya, kaedah pertukaran kunci Diffie-Hellman boleh digambarkan melalui skema diagram yang berikut:

Rajah 1: Kaedah Diffie-Hellman

Menurut Rajah 1, Alice dan Bob digunakan untuk menunjukkan pertukaran kunci Diffie-Hellman. Matlamat proses ini adalah untuk Alice dan Bob bersetuju dengan rahsia yang dikongsi bersama di mana pihak ketiga, Eve tidak dapat mengenal pasti rahsia tersebut. Rahsia yang dikongsi tersebut akan digunakan oleh Alice dan Bob untuk menjana kunci rahsia secara berasingan bagi algoritma enkripsi simetri yang akan digunakan untuk mengenkripsi aliran data di antara mereka.

Rajah 2: Proses Pertukaran Kunci Diffie-Hellman

Berdasarkan Rajah 2, Alice dan Bob terlebih dahulu mengendalikan suatu proses yang dikenali sebagai persetujuan kunci (key agreement), di mana kedua-dua pihak sepakat untuk menggunakan kunci yang dipersetujui bersama.

Dalam proses ini, kunci yang diketahui umum adalah parameter dan parameter . Parameter adalah nombor perdana yang dipilih secara rawak manakala parameter ialah akar primitif (primitive root) daripada . Parameter dikenali sebagai generator dan merupakan sebuah integer yang kurang daripada , dengan syarat bagi setiap nombor di antara dan , akan wujudnya .

Selepas proses persetujuan kunci parameter dan , maka Alice akan memilih sebuah nombor interger secara rawak sebagai nombor rahsianya dan mengirakan untuk memperoleh kunci umumnya. Dengan cara yang sama, Bob juga memilih nombor rahsia secara rawak dan mengirakan dan memperoleh kunci umumnya.

Bagi pertukaran kunci, Alice dan Bob akan bertukar kunci umum yang diperolehi antara satu sama lain. Seterusnya, Alice mengira kunci rahsianya dengan kunci umum yang diberikan oleh Bob iaitu manakala Bob menggunakan kunci umum Alice untuk mengirakan kunci rahsianya iaitu .

Walaupun kedua-dua pihak mempunyai nombor rahsia yang berbeza iaitu a dan b, namun Law of algebra menentukan bahawa , dan ini menjelaskan bahawa Alice dan Bob mempunyai nilai kunci rahsia, yang sama. yang diperolehi ini adalah kunci yang dapat digunakan oleh Alice dan Bob untuk mengenkripsi dan mendekripsi mesej mereka. Perlu diingati bahawa hanya nilai dan perlu dirahsiakan. Tentu sahaja dengan menggunakan nilai dan yang besar, maka akan memperolehi nilai kunci rahsia yang lebih sulit untuk dipecahkan oleh pihak ketiga.

Rumusan proses pertukaran kunci Diffie-Hellman boleh dijelaskan dalam Jadual 1 yang berikut:

ProsesParameter

Alice dan Bob bersetuju pada dua kunci nombor dan . ialah nombor perdana yang besar.

ialah generator, akar primitif , kurang daripada

Alice memilih nombor rahsia, Nombor rahsia Alice =

Bob memilih nombor rahsia, Nombor rahsia Bob=

Alice mengira kunci umumnya Kunci umum Alice =

Bob mengira kunci umumnya Kunci umum Bob =

Alice dan Bob bertukar kunci umum mereka dan menggunakannya untuk menjana kunci rahsia yang sama.Alice mengetahui dan Bob mengetahui dan

Alice mengirakan kunci rahsianya

.

Bob mengirakan kunci rahsianya

.

Menurut Law of Algebra, kunci rahsia Alice, adalah sama dengan kunci rahsia Bob, . Sekarang Alice dan Bob mengetahui nilai kunci yang sama.

Contoh Pengiraan Algoritma Pertukaran Kunci Diffie-Hellman

NoProses Pengiraan Pertukaran Kunci Diffie-Hellman

1Alice dan Bob bersetuju menggunakan dan .

2Alice memilih nombor rahsia,

3Bob memilih nombor rahsia,

4Alice mengira kunci umumnya

5Bob mengira kunci umumnya

6Alice dan Bob bertukar kunci umum mereka dan menggunakannya untuk menjana kunci rahsia yang sama.

7Alice mengirakan kunci rahsianya .

8Bob mengirakan kunci rahsianya .

9Menurut Law of Algebra, kunci rahsia Alice, adalah sama dengan kunci rahsia Bob, . .

Aplikasi Kaedah Diffie-Hellman

Kaedah Diffie-Hellman banyak memainkan peranan penting dalam protokol rangkaian laman web seperti Secure Socket Layer (SSL), Secure Shell (SSH) dan Protokol Internet Security (IPSec).

SSL adalah teknologi keselamatan piawai yang dibangunkan oleh Netscape pada tahun 1994 untuk menubuhkan satu rantai yang dienkrpsi di antara pelayan web (web server) dan pelayar (browser). SSL adalah berkaitan dengan enkripsi di mana ia menggunakan sijil (certificates), pertukaran kunci umum dan kunci rahsia serta persetujuan kunci Diffie-Hellman bagi membekalkan pertukaran kunci, pengesahan (authentication) dan integrity dengan Message Authentication Code (MAC).

SSH adalah protokol keselamatan rangkaian yang biasanya untuk log masuk dalam Internet. Dalam SSH, dua pihak memulakan perbualan dengan berunding mengenai parameter seperti pilihan bagi enkipsi dan penentuan nombor rawak. Rahsia yang dikongsi bersama dikirakan dengan aplikasi kaedah Diffie-Hellman. Fungsi rahsia yang dikongsi bersama tersebut adalah digunakan untuk memperoleh satu kunci enkripsi bagi algortima enkripsi simetri.

IPSec pula merupakan lanjutan daripada Internet Protokol (IP) yang diperkenalkan oleh Internet Engineering Task Force (IETF) bagi membantu dalam mengkonfigurasikan saluran komunikasi antara pelbagai mesin. IPSec menggunakan kaedah Diffie-Hellman dan kritografi simetri untuk mewujudkan identiti, pilihan algoritma dan rahsia yang dikongsi bersama.

Kekuatan Kaedah Diffie-Hellman

Kelemahan Kaedah Diffie-Hellman

Algoritma kaedah Diffie-Hellman mempunyai satu kelemhan yang besar dalam bentuk Serangan Man-In-The-Middle. Dalam serangan tersebut, pihak ketiga yang berniat jahat iaitu Eve, mendapatkan kunci umum Alice dan menghantarkan kunci umum sendiri kepada Bob. Apabila Bob menghantar kunci umumnya, Eve mengganggu dan menggantikan nilai dengan kunci umum sendiri dan kemudiannya menghantar kepada Alice. Dengan ini, Alice telah mencapai persetujuan kunci rahsia yang sama dengan Eve dan bukannya Bob. Dalam keadaan ini, Eve dapat mendekripsikan mesej yang dihantar oleh Alice atau Bob dan kemudian membaca atau mengubahsuainya sebelum mengenkripsi semula dengan kunci yang sesuai dan menghantar kepada pihak yang lain.

Bagi mengatasi masalah di atas, suatu proses pengesahan (authentication) amat diperlukan bagi memastikan bahawa Alice menghantar mesej kepada Bob dan penerima mesej mestilah Bob dan bukannya Eve dan di sebaliknya. Selain itu, adalah penting untuk membuangkan kunci selepas penggunaan agar kunci jangka penjang tidak akan didedahkan umum dan mengakibatkan timbulnya masalah pada masa akan datang.

Antara kelemahan kaedah Diffie-Hellman yang dapat dikenal pasti ialah algoritma yang digunakan bukan digunakan untuk mengenkripsi mesej manakala ia hanya digunakan untuk memperolehi kunci rahsia sahaja. Dengan ini menunjukkan kekurangan dari segi pengesahan (authentication).

(B) Algoritma Rivest-Shamir-Adlemen (RSA) Sejarah Algoritma RSARSA adalah salah satu contoh kriptografi yang menerapkan konsep kunci umum. Algoritma ini pertama kali dipublikasikan ditahun 1977 oleh Ron Rivest, Adi Shamir dan Leonard Adleman dari Massachusetts Institute of Technology (MIT). Nama RSA sendiri adalah singkatan dari nama belakang mereka bertiga (Rivest Shamir Adleman).Pengenalan Algoritma RSA

RSA adalah salah satu teknik kriptografi yang menggunakan algoritma asimetrik di mana kunci untuk melakukan enkripsi berbeza dengan kunci untuk melakukan dekripsi. Kunci untuk melakukan enkripsi disebut sebagai kunci umum, sedangkan kunci untuk melakukan dekripsi disebut sebagai kunci rahsia. Pihak yang mempunyai kunci umum dapat melakukan enkripsi tetapi hanya pihak yang memiliki kunci rahsia sahaja yang boleh melakukan dekripsi. Kunci umum boleh dimiliki oleh sebarang pihak, namun begitu kunci rahsia hanya boleh dimiliki oleh pihak yang tertentu sahaja. Panjang kunci dalam bit dapat diatur, dengan semakin panjang bit maka semakin sukar untuk dipecahkan kerana sulitnya memfaktorkan dua bilangan yang sangat besar tersebut, tetapi juga semakin lama pada proses dekripsinya. Proses dalam Algoritma RSA

Terdapat tiga tahap dalam algoritma RSA iaitu penjanaan pasangan kunci, enkripsi dan dekripsi.

i. Penjanaan pasangan kunci

Langkah-langkah melakukan penjanaan pasangan kunci adalah seperti berikut:

1. Pilih dua nombor perdana secara rawak, dan , di mana panjangnya lebih dari 100 digit. Nombor perdana dan ini perlu dirahsiakan.

2. Kirakan . Nilai disebarkan umum.

3. Kirakan . Sebaik sahaja dikirakan, dan boleh dihapuskan agar mengelakkan diketahui oleh orang lain.

4. Pilih sebuah nombor perdana untuk kunci umum, dengan syarat serta merupakan perdana relatif terhadap Ini bermaksud faktor pembahagi terbesar keduanya adalah 1, secara matematik disebut . Algoritma Euclid digunakan untuk mencari 5. Kirakan kunci rahsia, dengan syarat dan sedemikian agar . Bagi mencari nilai yang sesuai, algoritma Extended Euclid digunakan. Nilai perlu dirahsiakan. Melalui proses di atas hasilnya kunci umum iaitu pasangan kunci dan kunci rahsia iaitu ii. Enkripsi

Langkah-langkah melakukan enkripsi adalah seperti berikut:

1. Plaintext dinyatakan menjadi blok-blok sedemikian sehingga setiap blok mewakili nilai di dalam selang

(harus dipenuhi syarat bahawa nilai harus terletak dalam himpunan nilai untuk menjamin hasil perhitungan tidak berada di luar him-punan)2. Setiap blok dienkripsikan menjadi blok dengan rumus berikut:

iii. Dekripsi

Setiap blok ciphertext , didekripsikan kembali menjadi blok , dengan rumus berikut:

Contoh Pengiraan Algoritma RSANoProses Pengiraan Algoritma RSA

Tahap 1: Penjanaan Pasangan Kunci

1Pilih dua nombor perdana secara rawak, dan .

2Kirakan .

3Kirakan .

4Pilih sebuah nombor perdana untuk kunci umum, dengan syarat serta merupakan perdana relatif terhadap

5Kirakan kunci rahsia, dengan syarat dan sedemikian agar

Dengan Algoritma Extended Euclid:

Kunci Umum = ( , Kunci Rahsia = (

Tahap 2: Enkripsi

1.