Proyek Mini Kriptografi

DES: Enkripsi, Dekripsi, dan Jadwal Kunci

Aplikasi ini mendemonstrasikan proses DES yang dibutuhkan untuk presentasi: enkripsi, dekripsi, pembentukan 16 kunci ronde, urutan kunci pada kedua proses, pengujian dengan vektor uji, validasi masukan, dan ukuran ruang kunci efektif DES.

Vektor wajib

Vektor uji standar DES

Plaintext (teks asli)
0123456789ABCDEF
Kunci DES
133457799BBCDFF1
Ciphertext yang diharapkan
85E813540F0AB405
01

Enkripsi dan dekripsi DES

Operasi DES menggunakan library CryptoJS sebagai implementasi referensi. Mode HEX menggunakan ECB tanpa padding agar sesuai dengan vektor uji standar. Mode teks menggunakan UTF-8 dan PKCS#7 agar pesan biasa dapat dienkripsi.

Teks asli menjadi teks sandi

Enkripsi DES

16 karakter heksadesimal, total 64 bit termasuk posisi paritas.

Ciphertext (teks sandi) dalam HEX
Belum ada hasil enkripsi.
Teks sandi kembali menjadi teks asli

Dekripsi DES

Gunakan kunci yang sama dengan proses enkripsi.

Ciphertext harus berisi blok DES lengkap, yaitu 16 karakter HEX per blok 64 bit.

Plaintext (teks asli)
Belum ada hasil dekripsi.
02

Jadwal Kunci DES

Bagian ini menunjukkan tahap yang diwajibkan pada tugas: kunci 64 bit, PC-1, kunci 56 bit, C0 dan D0, pergeseran kiri tiap ronde, lalu PC-2 untuk menghasilkan K1 sampai K16.

Masukkan satu kunci, lihat seluruh ronde

Generator kunci ronde

Kunci 64 bit Belum dihitung
PC-1 menghasilkan 56 bit Belum dihitung
C0, 28 bit Belum dihitung
D0, 28 bit Belum dihitung

Ronde Pergeseran kiri Cᵢ, 28 bit Dᵢ, 28 bit PC-2 menghasilkan Kᵢ, 48 bit
Belum ada jadwal kunci. Masukkan kunci lalu tekan “Buat jadwal kunci”.

Urutan kunci saat enkripsi

K1 digunakan lebih dulu, kemudian berurutan sampai K16.

Urutan kunci saat dekripsi

Kunci ronde yang sama digunakan dalam urutan terbalik.

03

Kasus Uji

Uji pertama memakai vektor uji standar DES yang diwajibkan. Tiga pengujian lain memeriksa dekripsi serta dua vektor uji tambahan.

Hasil aplikasi dibandingkan dengan hasil yang diharapkan

Verifikasi implementasi

Belum dijalankan.
# Kasus uji Algoritma Masukan Hasil aplikasi Hasil yang diharapkan Status
Belum ada hasil. Tekan “Jalankan semua uji”.
04

Validasi input

Masukan yang salah tidak menyebabkan aplikasi berhenti. Sistem menolak data yang tidak sesuai dan menjelaskan bagian yang perlu diperbaiki.

Masukan kosong
Plaintext, ciphertext, atau kunci harus diisi sebelum proses dijalankan.
Kunci DES tidak valid
Kunci harus tepat 16 karakter heksadesimal.
Ciphertext tidak lengkap
Mode HEX hanya menerima blok 64 bit lengkap.
Hasil teks tidak valid
Jika byte hasil dekripsi bukan UTF-8 yang valid, aplikasi meminta pengguna memeriksa kunci atau memakai mode HEX.
05

Fitur keamanan: ruang kunci DES

Sesuai instruksi tugas, bagian ini tidak melakukan brute force. Tujuannya menunjukkan besarnya ruang kunci DES dan membedakan kunci 64 bit yang dimasukkan dari ukuran efektif 56 bit.

Mengapa efektifnya 56 bit?

Kunci yang dimasukkan
64 bit
Posisi paritas
8 bit
Ukuran kunci efektif
56 bit
Kemungkinan kunci efektif, 256
72,057,594,037,927,936

DES dipakai di aplikasi ini untuk demonstrasi pembelajaran. Untuk sistem modern yang menyimpan data sensitif, DES sudah tidak dianggap memadai.

Perhitungan skala, bukan serangan brute force

Kalkulator ruang kunci

Kecepatan asumsi
Belum dihitung
Kasus terburuk, semua 256 kunci
Belum dihitung
Kasus rata-rata, setengah ruang kunci
Belum dihitung
06

Urutan demo saat presentasi

Urutan ini mencakup seluruh bagian wajib tanpa perlu berpindah-pindah halaman.

  1. 1
    Uji enkripsi standar.

    Muat plaintext 0123456789ABCDEF dan kunci 133457799BBCDFF1. Pastikan hasilnya 85E813540F0AB405.

  2. 2
    Dekripsi hasilnya.

    Gunakan kunci yang sama dan tunjukkan plaintext kembali ke nilai awal.

  3. 3
    Buka jadwal kunci.

    Jelaskan PC-1, C0/D0, pergeseran kiri tiap ronde, PC-2, serta K1 sampai K16.

  4. 4
    Bandingkan urutan kunci.

    Enkripsi memakai K1 sampai K16. Dekripsi memakai K16 sampai K1.

  5. 5
    Jalankan kasus uji.

    Tunjukkan hasil aplikasi, hasil yang diharapkan, serta status PASS atau FAIL.

  6. 6
    Tunjukkan validasi.

    Kurangi satu karakter pada kunci atau masukkan karakter non-HEX dan tunjukkan pesan kesalahan.

  7. 7
    Tutup dengan keamanan DES.

    Jelaskan kunci masukan 64 bit, 8 bit paritas, 56 bit efektif, dan total 256 kemungkinan kunci.