Search

Abstrak
Keamanan pertukaran kunci simetris antara klien dan server merupakan tantangan utama dalam membangun sistem komunikasi yang aman, terutama pada platform website. Penelitian ini mengusulkan solusi hybrid dengan memanfaatkan enkripsi asimetris RSA untuk mengamankan pertukaran kunci simetris AES antara klien dan server. RSA digunakan untuk mengenkripsi kunci AES yang dihasilkan oleh klien, sementara AES digunakan untuk enkripsi data selanjutnya karena efisiensinya. Kajian ini menganalisis keamanan proses pertukaran kunci, performa sistem, dan skalabilitasnya dalam skenario pengguna yang meningkat. Hasil penelitian menunjukkan bahwa kombinasi RSA dan AES mampu memberikan tingkat keamanan yang tinggi dengan overhead komputasi yang dapat diterima, serta skalabilitas yang baik untuk aplikasi website.

Kata Kunci : Enkripsi Asimetris, RSA, AES, Pertukaran Kunci, Keamanan Website, Skalabilitas.

I. Pendahuluan
A. Latar Belakang

Dalam komunikasi digital, terutama pada platform website, keamanan pertukaran data antara klien dan server menjadi prioritas utama. Enkripsi simetris seperti Advanced Encryption Standard (AES) sering digunakan karena kecepatan dan efisiensinya dalam mengenkripsi data dalam jumlah besar. Namun, pertukaran kunci simetris antara klien dan server rentan terhadap serangan man-in-the-middle (MITM) jika tidak diamankan dengan baik. Untuk mengatasi masalah ini, enkripsi asimetris seperti RSA dapat digunakan untuk mengamankan proses pertukaran kunci simetris.

B. Rumusan Masalah
  1. Bagaimana cara mengamankan pertukaran kunci simetris AES antara klien dan server menggunakan enkripsi asimetris RSA?

  2. Bagaimana performa dan skalabilitas sistem yang menggabungkan RSA dan AES dalam konteks website?

C. Tujuan Penelitian
  1. Merancang sistem yang mengamankan pertukaran kunci AES menggunakan RSA.

  2. Mengevaluasi keamanan, performa, dan skalabilitas sistem yang diusulkan.

D. Kontribusi Penelitian

Penelitian ini memberikan solusi hybrid yang menggabungkan keunggulan enkripsi asimetris RSA dan enkripsi simetris AES untuk mengamankan pertukaran kunci simetris pada website. Selain itu, kajian ini memberikan analisis mendalam tentang keamanan dan skalabilitas sistem.

II. Landasan Teori
A. Enkripsi Asimetris (RSA)
1. Konsep Dasar

Enkripsi asimetris, juga dikenal sebagai kriptografi kunci publik, menggunakan sepasang kunci yang berbeda untuk enkripsi dan dekripsi. RSA (Rivest-Shamir-Adleman) adalah salah satu algoritma enkripsi asimetris yang paling banyak digunakan. Algoritma ini bekerja dengan memanfaatkan sifat matematis dari bilangan prima besar.

2. Algoritma RSA

Algoritma RSA terdiri dari tiga tahap utama: generasi kuncienkripsi, dan dekripsi.

a. Generasi Kunci
  1. Pilih dua bilangan prima besar, p dan .

  2. Hitung n = p × q. Nilai  digunakan sebagai modulus untuk kunci publik dan privat.

  3. Hitung ϕ(n) = (p−1) (q−1), di mana ϕ(n) adalah fungsi totient Euler.

  4. Pilih bilangan bulat e yang relatif prima terhadap ϕ(n). Nilai  akan menjadi bagian dari kunci publik.

  5. Hitung  sebagai invers modular dari e modulo  ϕ(n), yaitu . Nilai  akan menjadi bagian dari kunci privat.

  6. Kunci publik adalah pasangan (e, n), dan kunci privat adalah pasangan .

b. Enkripsi

Untuk mengenkripsi pesan , gunakan kunci publik :

di mana  adalah ciphertext.

c. Dekripsi

Untuk mendekripsi ciphertext , gunakan kunci privat :

M =

di mana M adalah pesan asli.

3. Keamanan RSA

Keamanan RSA didasarkan pada kesulitan memfaktorkan bilangan besar menjadi faktor primanya. Misalnya, memfaktorkan bilangan 2048-bit memerlukan sumber daya komputasi yang sangat besar, sehingga membuat RSA aman terhadap serangan brute-force.

4. Aplikasi RSA

RSA sering digunakan untuk:

  • Mengamankan pertukaran kunci simetris.

  • Tanda tangan digital.

  • Autentikasi.

B. Enkripsi Simetris (AES)
1. Konsep Dasar

Enkripsi simetris menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. AES (Advanced Encryption Standard) adalah standar enkripsi simetris yang diadopsi oleh pemerintah Amerika Serikat dan digunakan secara global.

2. Algoritma AES

AES adalah algoritma blok cipher yang bekerja pada blok data 128 bit dengan panjang kunci 128, 192, atau 256 bit. Proses enkripsi dan dekripsi AES terdiri dari beberapa tahap:

a. SubBytes

Setiap byte dalam blok data diganti menggunakan tabel substitusi (S-box) yang telah ditentukan.

b. ShiftRows

Baris dalam blok data digeser secara siklis. Baris pertama tidak digeser, baris kedua digeser satu byte, baris ketiga dua byte, dan baris keempat tiga byte.

c. MixColumns

Setiap kolom dalam blok data diubah menggunakan operasi matriks linear.

d. AddRoundKey

Blok data di-XOR dengan kunci round yang dihasilkan dari kunci utama.

e. Round Key Expansion

Kunci utama diperluas menjadi serangkaian kunci round menggunakan algoritma tertentu.

3. Mode Operasi AES

AES dapat diimplementasikan dalam beberapa mode operasi, seperti:

  • ECB (Electronic Codebook): Setiap blok data dienkripsi secara independen.

  • CBC (Cipher Block Chaining): Setiap blok data dienkripsi dengan mempertimbangkan blok sebelumnya, meningkatkan keamanan.

  • GCM (Galois/Counter Mode): Menggabungkan enkripsi dan autentikasi, sering digunakan dalam aplikasi real-time.

4. Keamanan AES

AES dianggap aman terhadap serangan brute-force, terutama dengan panjang kunci 256 bit. AES juga efisien dalam hal penggunaan sumber daya komputasi.

C. Pertukaran Kunci
1. Masalah Pertukaran Kunci

Pertukaran kunci simetris antara klien dan server rentan terhadap serangan MITM jika tidak diamankan. Tanpa mekanisme yang aman, penyerang dapat menyadap kunci simetris dan mengakses data yang dienkripsi.

2. Solusi Hybrid

Solusi hybrid menggabungkan keunggulan enkripsi asimetris dan simetris:

  • Enkripsi asimetris (RSA) digunakan untuk mengamankan pertukaran kunci simetris (AES).

  • Enkripsi simetris (AES) digunakan untuk mengenkripsi data selanjutnya.

3. Protokol Pertukaran Kunci

Beberapa protokol yang digunakan untuk pertukaran kunci aman meliputi:

  • Diffie-Hellman: Protokol pertukaran kunci yang memungkinkan dua pihak untuk menghasilkan kunci rahasia bersama melalui saluran yang tidak aman.

  • RSA Key Exchange: Menggunakan RSA untuk mengenkripsi kunci simetris yang akan dipertukarkan.

III. Metodologi
A. Desain Sistem

Sistem yang diusulkan terdiri dari dua tahap utama:

  1. Pertukaran Kunci Aman:

    • Server menghasilkan pasangan kunci RSA (kunci publik dan kunci privat).

    • Klien menghasilkan kunci AES acak.

    • Klien mengenkripsi kunci AES menggunakan kunci publik server.

    • Server mendekripsi kunci AES menggunakan kunci privatnya.

  2. Enkripsi Data:

    • Setelah kunci AES berhasil dipertukarkan, semua komunikasi selanjutnya dienkripsi menggunakan AES.

B. Implementasi
1. Generasi Kunci RSA
  • Langkah 1: Server menghasilkan dua bilangan prima besar p dan q menggunakan algoritma primality test seperti Miller-Rabin.

  • Langkah 2: Hitung n =  dan .

  • Langkah 3: Pilih bilangan bulat e yang relatif prima terhadap . Biasanya,  digunakan karena efisiensinya.

  • Langkah 4: Hitung sebagai invers modular dari  modulo .

  • Langkah 5: Simpan kunci publik dan kunci privat .

2. Pertukaran Kunci AES
  • Langkah 1: Klien menghasilkan kunci AES 256-bit secara acak menggunakan generator bilangan acak yang aman (CSPRNG).

  • Langkah 2: Klien mengenkripsi kunci AES menggunakan kunci publik server dengan rumus:

    C=

    di mana  adalah kunci AES dan  adalah ciphertext.

  • Langkah 3: Klien mengirim ciphertext  ke server melalui saluran komunikasi.

  • Langkah 4: Server mendekripsi ciphertext  menggunakan kunci privatnya dengan rumus:

    KAES=Cd mod  n

    untuk mendapatkan kunci AES asli.

3. Enkripsi Data dengan AES
  • Langkah 1: Klien dan server menggunakan kunci AES yang telah dipertukarkan untuk mengenkripsi dan mendekripsi data.

  • Langkah 2: Data dienkripsi menggunakan mode operasi AES-GCM, yang menggabungkan enkripsi dan autentikasi.

  • Langkah 3: Setiap blok data dienkripsi dengan kunci AES, dan tag autentikasi dihasilkan untuk memastikan integritas data.

C. Evaluasi Keamanan

Keamanan sistem dievaluasi berdasarkan:

  1. Kerentanan terhadap Serangan MITM: RSA memastikan bahwa hanya server yang dapat mendekripsi kunci AES.

  2. Kekuatan Kriptografi: Panjang kunci RSA 2048 bit dan AES 256 bit dianggap aman terhadap serangan brute-force.

  3. Integritas Data: Mode operasi AES-GCM memastikan bahwa data tidak diubah selama transmisi.

D. Evaluasi Skalabilitas

Skalabilitas sistem diukur berdasarkan:

  1. Kemori dan CPU Usage: Overhead komputasi RSA hanya terjadi pada tahap pertukaran kunci.

  2. Kemampuan Menangani Banyak Pengguna: AES digunakan untuk enkripsi data selanjutnya, sehingga sistem dapat menangani banyak pengguna secara bersamaan.

  3. Latensi: Waktu yang dibutuhkan untuk pertukaran kunci dan enkripsi data diukur untuk memastikan performa yang optimal.

IV. Hasil dan Pembahasan
A. Keamanan Pertukaran Kunci

Penggunaan RSA untuk mengamankan pertukaran kunci AES terbukti efektif dalam mencegah serangan MITM. Kunci AES yang dienkripsi dengan RSA hanya dapat didekripsi oleh server yang memiliki kunci privat, sehingga memastikan kerahasiaan kunci simetris.

B. Performa Sistem
  1. Overhead Komputasi RSA: RSA memerlukan sumber daya komputasi yang signifikan, terutama untuk panjang kunci yang besar. Namun, overhead ini hanya terjadi pada tahap pertukaran kunci.

  2. Efisiensi AES: AES menunjukkan performa yang sangat baik dalam mengenkripsi dan mendekripsi data, bahkan dalam skenario dengan banyak pengguna.

C. Skalabilitas Sistem

Sistem yang diusulkan menunjukkan skalabilitas yang baik karena:

  1. RSA hanya digunakan pada tahap awal pertukaran kunci.

  2. AES digunakan untuk enkripsi data selanjutnya, yang sangat efisien dan dapat diskalakan.

D. Keterbatasan
  1. Overhead RSA: Pada perangkat dengan kemampuan terbatas, penggunaan RSA dapat menyebabkan penundaan pada tahap pertukaran kunci.

  2. Manajemen Kunci: Pengelolaan kunci RSA dan AES memerlukan infrastruktur yang baik untuk memastikan keamanan jangka panjang.

V. Kesimpulan

Penelitian ini menunjukkan bahwa kombinasi enkripsi asimetris RSA dan enkripsi simetris AES dapat memberikan solusi yang aman dan skalabel untuk pertukaran kunci simetris pada website. Implementasi ini cocok untuk aplikasi yang memerlukan keamanan tinggi tanpa mengorbankan performa sistem secara signifikan. Rekomendasi untuk penelitian selanjutnya adalah mengoptimalkan penggunaan RSA pada perangkat dengan sumber daya terbatas dan mengintegrasikan sistem dengan protokol keamanan seperti TLS.

Daftar Pustaka

[1] W. Stallings, Cryptography and Network Security: Principles and Practice, 7th ed. Pearson, 2017.
[2] NIST, "Advanced Encryption Standard (AES)," FIPS PUB 197, 2001.
[3] R. Rivest, A. Shamir, and L. Adleman, "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems," Communications of the ACM, vol. 21, no. 2, pp. 120–126, 1978.
[4] A. Menezes, P. van Oorschot, and S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996.
[5] T. Dierks and C. Allen, "The TLS Protocol Version 1.0," RFC 2246, 1999.
[6] OpenSSL Project, "OpenSSL: Cryptography and SSL/TLS Toolkit," [Online]. Available: https://www.openssl.org/.
[7] D. Boneh, "Twenty Years of Attacks on the RSA Cryptosystem," Notices of the AMS, vol. 46, no. 2, pp. 203–213, 1999.