Enkripsi AES: Solusi Ampuh Amankan Data Gambar

Anggara Putra Meldyantono

Sosial Media


2 orang menyukai ini
Suka

Summary

Portofolio ini bertujuan untuk menunjukkan bagaimana penerapan algoritma enkripsi AES dapat digunakan untuk melindungi data gambar. Dalam dunia yang semakin terhubung, keamanan data sangat penting, termasuk gambar pribadi atau profesional yang dapat dimanfaatkan untuk tujuan yang tidak semestinya. Enkripsi AES memberikan solusi dengan tingkat keamanan tinggi dan efisiensi yang baik dalam mengamankan gambar.

Description

"Pemanfaatan Enkripsi AES untuk Mengamankan Data Gambar Secara Efektif"

 

 

Nama Anggota Kelompok 2:

  1. Java Dewangga
  2. Anggara Putra Meldyantono
  3. M. Sirajuth Thayyib 
  4. Muhamad Pagah Hadi Prabawa
  5. Dafa Arya Wijaya
  6. Ardila Asri Suryandari

 

 

Deskripsi Singkat:

Portofolio ini bertujuan untuk menunjukkan bagaimana penerapan algoritma enkripsi AES dapat digunakan untuk melindungi data gambar. Dalam dunia yang semakin terhubung, keamanan data sangat penting, termasuk gambar pribadi atau profesional yang dapat dimanfaatkan untuk tujuan yang tidak semestinya. Enkripsi AES memberikan solusi dengan tingkat keamanan tinggi dan efisiensi yang baik dalam mengamankan gambar.

1. Pengertian AES (Advanced Encryption Standard):

AES atau Advanced Encryption Standard adalah sebuah algoritma enkripsi yang digunakan untuk mengamankan data digital. AES bekerja dengan mengubah data asli menjadi bentuk yang tidak dapat dipahami (ciphertext) menggunakan kunci rahasia. Hanya pihak yang memiliki kunci tersebut yang dapat mengembalikan data ke bentuk aslinya (plaintext).

Mengapa AES Digunakan?

  1. Keamanan Tinggi: AES diakui secara luas sebagai salah satu algoritma enkripsi teraman di dunia. Ini digunakan oleh pemerintah, organisasi, dan perusahaan untuk melindungi data penting.
  2. Efisiensi: Meskipun sangat aman, AES juga dirancang untuk memproses data dengan cepat sehingga cocok untuk berbagai aplikasi, termasuk enkripsi gambar.
  3. Fleksibilitas: AES mendukung berbagai panjang kunci (128-bit, 192-bit, dan 256-bit), yang memungkinkan tingkat keamanan berbeda sesuai kebutuhan.

Cara Kerja Singkat AES:

  1. Data asli (misalnya gambar) dipecah menjadi blok-blok kecil.
  2. Setiap blok dienkripsi dengan cara mencampurkan data menggunakan kunci rahasia dan proses matematika yang kompleks.
  3. Data hasil enkripsi hanya dapat didekripsi menggunakan kunci rahasia yang sama.

Analogi Sederhana:
Bayangkan Anda mengunci sebuah kotak dengan kunci khusus (kunci enkripsi). Ketika kotak dikunci, tidak ada yang bisa membuka dan melihat isi di dalamnya kecuali mereka memiliki kunci yang sama. Inilah prinsip dasar dari AES dalam melindungi data.

Manfaat Penggunaan AES pada Data Gambar

  1. Untuk Meningkatkan Keamanan Dokumen atau Gambar Digital:
    Enkripsi AES melindungi gambar digital dari akses tidak sah, memastikan data hanya dapat diakses oleh pihak yang memiliki otoritas.
  2. Untuk Menjaga Privasi Gambar yang Bersifat Sensitif:
    Data gambar yang bersifat pribadi atau rahasia, seperti foto pribadi atau dokumen visual penting, tetap terlindungi dari potensi ancaman seperti pencurian data atau pelanggaran privasi.
  3. Untuk Menjaga Keamanan dalam Bertukar Informasi Berbentuk Gambar Digital:
    Saat berbagi gambar melalui jaringan, AES memberikan perlindungan tambahan untuk memastikan data tidak diintersep atau dimodifikasi oleh pihak yang tidak bertanggung jawab.

2. Tujuan:

  • Melindungi data gambar dengan metode enkripsi simetris AES.
  • Menyediakan mekanisme yang aman untuk penyimpanan dan transmisi data gambar.
  • Mengilustrasikan cara kerja AES dalam konteks gambar.

3. Langkah-langkah yang Diambil:

  • Mengubah gambar ke dalam format byte array.
  • Melakukan enkripsi gambar menggunakan AES.
  • Menyimpan data gambar dalam bentuk terenkripsi.
  • Mendekripsi gambar dan mengembalikannya ke format aslinya.

 

4. Kode Program:

a. Kode Enkripsi Gambar menggunakan AES

Fetching data dengan menggunakan endpoint /encrypt untuk mengirim gambar yang akan dienkripsi

Persiapan Data Gambar:

  • Gambar yang ingin diamankan pertama-tama dibaca dalam bentuk file binary (byte) menggunakan fungsi pembacaan file. Dalam konteks ini, gambar dibaca sebagai array byte sehingga bisa diproses lebih lanjut.

Pemilihan Kunci dan Inisialisasi Cipher:

  • Algoritma AES memerlukan kunci rahasia (secret key) yang akan digunakan untuk enkripsi dan dekripsi. Kunci ini dihasilkan secara acak menggunakan fungsi get_random_bytes(16), yang menghasilkan kunci dengan panjang 16 byte (128-bit) yang cukup aman untuk enkripsi standar.
  • Cipher yang digunakan dalam contoh ini adalah AES.MODE_CBC (Cipher Block Chaining), yang merupakan salah satu mode operasi AES. Mode CBC memerlukan IV (Initialization Vector) yang dihasilkan secara acak untuk setiap enkripsi agar hasil enkripsi tidak dapat diprediksi meskipun menggunakan kunci yang sama.

Enkripsi Data Gambar:

  • Setelah gambar dibaca dan cipher diinisialisasi, gambar yang masih berupa byte-array akan dienkripsi dengan AES menggunakan kunci dan IV yang telah dihasilkan. Proses enkripsi ini memastikan bahwa gambar tersebut diubah menjadi bentuk yang tidak dapat dibaca atau dipahami tanpa proses dekripsi yang tepat.
  • Penyimpanan dalam Format .txt:
    Setelah proses enkripsi selesai, data gambar yang sudah terenkripsi akan disimpan dalam file teks (format .txt). Ini dilakukan dengan cara menyimpan hasil enkripsi (ciphertext) bersama dengan IV yang digunakan dalam proses enkripsi. Penyimpanan IV bersama dengan ciphertext sangat penting karena IV diperlukan untuk mendekripsi data dan memulihkan gambar aslinya.
    File terenkripsi tersebut akan disimpan dalam format .txt agar lebih mudah dibagikan atau disimpan dalam bentuk teks, meskipun data yang terkandung di dalamnya adalah data yang telah dienkripsi.
  • Pentingnya Penyimpanan IV: IV disertakan dalam file .txt bersama dengan ciphertext, yang memungkinkan dekripsi yang tepat di masa depan. Ini menghindari kemungkinan terjadinya error atau kegagalan saat proses dekripsi karena kehilangan informasi tentang IV yang digunakan.

b. Kode Dekripsi Gambar menggunakan AES

Fetching data menggunakan Endpoint /decrypt untuk mengirim file .txt ke Backend untuk dilakukan Decryption

Membaca Data Enkripsi:

  • Untuk mendekripsi gambar, kita memerlukan file terenkripsi yang sebelumnya telah disimpan. Pada file tersebut, IV yang digunakan untuk enkripsi disimpan di awal, diikuti oleh ciphertext (data gambar yang sudah dienkripsi).
  • IV dipisahkan dari ciphertext saat membaca file, karena IV dan ciphertext memiliki peran yang berbeda dalam proses dekripsi.

Mendekripsi Gambar:

  • Dengan kunci yang sama yang digunakan untuk enkripsi dan IV yang dibaca dari file, kita menginisialisasi cipher untuk dekripsi menggunakan AES.MODE_CBC. Cipher ini akan mengubah ciphertext kembali menjadi bentuk yang dapat dibaca.
  • Setelah dekripsi dilakukan, hasilnya adalah byte-array yang berisi data gambar asli. Namun, data ini masih dipadukan dengan padding untuk menyesuaikan ukuran blok AES. Oleh karena itu, sebelum gambar dapat digunakan kembali, padding tersebut harus dihapus dengan fungsi unpad.
  • unpad() berfungsi untuk memastikan bahwa data yang telah didekripsi bisa kembali ke bentuk aslinya, dengan menghilangkan byte padding yang ditambahkan selama proses enkripsi.

Menyimpan Gambar yang Terdekripsi:

  • Gambar yang sudah didekripsi dan telah dibersihkan dari padding akhirnya disimpan dalam format gambar yang dapat dibaca, seperti format JPEG atau PNG.

5. Penjelasan:

  • Enkripsi: Gambar dibaca dalam format byte dan kemudian dienkripsi menggunakan algoritma AES dalam mode CBC (Cipher Block Chaining). Data gambar yang telah dienkripsi disimpan bersama dengan IV (Initialization Vector) yang diperlukan untuk dekripsi.

     
  • Dekripsi: Saat mendekripsi, IV yang disertakan dalam file dienkripsi dibaca dan digunakan untuk memulihkan data gambar ke bentuk aslinya.

     

6. Backend:

  • Kode NodeJS sebagai Backend Server

Berfungsi untuk mengambil data dari Frontend dan memproses di bagian Backend kemudian memberi respon balik dengan mendownload otomatis melalui Frontend web

  • Kode JWT (JSON Web Token) 

  • Kode Multer

Berfungsi untuk tempat menampung sementara untuk pemrosesan file

  • Endpoint Encrypt Basic

  • Endpoint Decrypt Basic

  • Endpoint Encrypt 256

  • Endpoint Decrypt 256

7. Hasil:

  • Gambar yang telah terenkripsi dan terdekripsi dapat dibandingkan untuk memastikan proses enkripsi dan dekripsi berjalan dengan benar.

    Gambar asli 

Gambar setelah enkripsi 

Gambar setelah dekripsi

7. Tantangan yang Dihadapi:

  • Manajemen kunci: Kunci enkripsi harus disimpan dengan aman, karena tanpa kunci yang benar, gambar tidak dapat didekripsi.
  • Pengelolaan besar file gambar: Gambar berukuran besar memerlukan lebih banyak waktu dan ruang untuk diproses.

8. Kesimpulan:

  • AES adalah solusi yang efisien dan aman untuk mengamankan data gambar.
  • Penting untuk mengelola kunci dengan hati-hati untuk menjaga keamanan data.
  • Enkripsi AES dapat diterapkan pada berbagai jenis data digital, termasuk gambar, untuk memberikan lapisan perlindungan yang kuat terhadap ancaman siber.

9. Refleksi Pribadi:

  • Selama pengerjaan portofolio ini, kami memahami lebih dalam tentang bagaimana enkripsi simetris bekerja, serta bagaimana gambar yang tampaknya sederhana dapat dilindungi melalui mekanisme enkripsi yang canggih.
  • Kami berencana untuk memperdalam pemahaman kami mengenai penggunaan enkripsi pada jenis data lainnya dan mengeksplorasi potensi kombinasi teknik keamanan lainnya.

 

Berikut link Project Capstone Kelompok 2
https://github.com/Anggara085/ProjectCapstoneCyberSecurity-main.git

 

Informasi Course Terkait
  Kategori: Cyber Security
  Course: Cyber Security