Simulator Algoritma Diffie-Hellman

Basic Diffie-Hellman

Introduksi

Misalkan Alice dan Bob hendak berkomunikasi satu sama lain melalui Internet. Komunikasi mereka akan dienkripsi menggunakan sebuah algoritma enkripsi simetris (semisal AES, Blowfish, atau GOST Magma). Maka, Alice dan Bob harus mempertukarkan kunci simetris tersebut secara aman.

Untuk mempertukarkan kunci simetris tersebut, mereka menggunakan algoritma pertukaran kunci Diffie-Hellman. Algoritma ini membangkitkan kunci secara acak dan menggunakan kunci ephemereal, yakni kunci sementara yang digunakan hanya satu kali.


Langkah-langkah algoritma Diffie-Hellman yakni:

1. Alice dan Bob memilih kunci publik yang terdiri dari modulus p dan base g. Adapun p berupa bilangan prima dan g berupa bilangan bulat bukan nol yang lebih kecil dari p.

2. Alice memilih kunci privat a, lalu menghitung A = g^a mod p. Kemudian Alice mengirim A sebagai kunci ephemereal-nya kepada Bob.

3. Bob memilih kunci privat b, lalu menghitung B = g^b mod p. Kemudian Bob mengirim B sebagai kunci ephemereal-nya kepada Alice.

4. Alice menghitung secret s = B^a mod p.

5. Bob menghitung secret s = A^b mod p.

6. Alice dan Bob kini mengetahui nilai s yang sama. Orang lain tidak dapat mengetahui nilai s tanpa terlebih dahulu mengetahui nilai a atau b.


Sekarang, Alice dan Bob dapat menggunakan s sebagai kunci algoritma enkripsi simetris untuk mengamankan komunikasi mereka selanjutnya.


Simulator
Karena keterbatasan mesin, terdapat batasan nilai maksimal untuk p, g, a, dan b.
1. Pilih modulus p dan base g.
p
Nilai p maksimal 99991.
g
Nilai g maksimal 99990.
2. Alice memilih bilangan rahasia a sebagai kunci privat, lalu menghitung A sebagai kunci ephemereal yang diberikan kepada Bob.
a
Nilai a yang diizinkan yakni antara 1 s.d. 10.
A = g^a mod p
A
3. Bob memilih bilangan rahasia b sebagai kunci privat, lalu menghitung B sebagai kunci ephemereal yang diberikan kepada Alice.
b
Nilai b yang diizinkan yakni antara 1 s.d. 10.
B = g^b mod p
B
4. Alice menghitung secret s.
s = B^a mod p
s
5. Bob menghitung secret s.
s = A^b mod p
s
6. Alice dan Bob kini mengetahui nilai s yang sama, yang dapat digunakan sebagai kunci algoritma enkripsi simetris untuk mengamankan komunikasi mereka selanjutnya.
s =