NAMA:Diva Agustara
NIM :C2055201002
Berikut adalah skema alur algoritma (flowchart) untuk Cipher Feedback (CFB):
1. Inisialisasi:
- Masukkan kunci enkripsi.
- Tentukan ukuran blok dan ukuran vektor inisialisasi (IV).
- Inisialisasi vektor enkripsi (IV) dengan nilai acak.
2. Enkripsi:
- Bagi teks terang menjadi blok-blok dengan ukuran yang ditentukan.
- XOR-kan blok teks terang dengan vektor enkripsi (IV) untuk menghasilkan blok chiperteks.
- Enkripsi blok chiperteks menggunakan algoritma kunci simetris (misalnya AES) dengan
kunci yang sama.
3. Perubahan IV:
- Gunakan blok chiperteks yang dihasilkan sebagai vektor enkripsi untuk blok berikutnya.
4. Ulangi langkah 2 dan 3 untuk semua blok teks terang.
Misalkan kita memiliki teks terang "HELLO" yang akan dienkripsi menggunakan CFB dengan
ukuran blok 8 bit dan kunci enkripsi "KEY". Berikut adalah contoh enkripsi menggunakan CFB:
1. Inisialisasi:
- Kunci enkripsi: "KEY"
- Ukuran blok: 8 bit
- IV (vektor inisialisasi): 10101010 (nilai acak)
2. Enkripsi:
- Blok 1 ("HELLO") XOR dengan IV: 01001000 XOR 10101010 = 11100010
- Enkripsi blok chiperteks (11100010) menggunakan algoritma kunci simetris dengan kunci
"KEY" menghasilkan chiperteks (misalnya 10010011).
3. Perubahan IV:
- Gunakan chiperteks (10010011) sebagai vektor enkripsi untuk blok berikutnya.
1. Terdapat overhead pada panjang chiperteks yang dihasilkan karena setiap blok chiperteks
harus memasukkan vektor enkripsi yang sama.
2. Ketergantungan pada urutan blok. Jika ada kesalahan dalam pengiriman atau kehilangan blok
data dalam aliran, hal ini dapat menyebabkan kesalahan dalam dekripsi selanjutnya.
Kelebihan dari Cipher Feedback (CFB) meliputi:
1. Kemampuan untuk mengenkripsi dan mendekripsi data dalam bentuk yang lebih kecil dari
ukuran blok yang digunakan oleh algoritma kunci simetris.
2. Mampu mengenkripsi data secara streaming, sehingga tidak perlu menunggu hingga seluruh
blok data tersedia sebelum proses enkripsi dapat dimulai.
3. Pemberian vektor inisialisasi yang berbeda dapat menghasilkan chiperteks yang berbeda
secara keseleruhan
[16/5 12.12] DivaAgustara: Output feedback adalah salah satu metode pengendalian (control)
dalam sistem kontrol. Cara kerja output feedback melibatkan pengukuran output sistem dan
menggunakan informasi ini untuk menghasilkan sinyal kendali yang mempengaruhi masukan
sistem.
Berikut adalah skema alur algoritma (flowchart) umum dari metode output feedback:
```
+-------------------+
| |
| Baca Referensi +-----------------+
| | |
+------+------------+ |
| |
v |
+---------------+ |
| | |
| Baca Output | |
| Sistem +---------------------+
| | |
+-------+-------+ |
| |
v |
+----------------+ |
| | |
| Hitung Selisih | |
| +--------------------+
+--------+-------+
|
v
+-------------------+
| |
| Hitung Sinyal |
| Kendali |
| |
+--------+----------+
|
v
+-------------------+
| |
| Terapkan Sinyal |
| Kendali |
| |
+-------------------+
```
1. Inisialisasi:
- Masukkan kunci enkripsi.
- Tentukan ukuran blok dan nilai inisialisasi (nonce).
- Inisialisasi counter (CTR) dengan nilai inisialisasi (nonce) dan tambahan counter yang
berurutan.
2. Enkripsi:
- Increment nilai counter.
- Enkripsi nilai counter yang diinkremen menggunakan algoritma kunci simetris (misalnya
AES) dengan kunci yang sama.
- XOR-kan blok teks terang dengan blok chiperteks yang dihasilkan untuk menghasilkan blok
chiperteks.
- Ulangi langkah 2 dan 3 untuk semua blok teks terang.
Misalkan kita memiliki teks terang "HELLO" yang akan dienkripsi menggunakan CTR dengan
ukuran blok 8 bit, kunci enkripsi "KEY", dan nilai inisialisasi (nonce) 10101010. Berikut adalah
contoh enkripsi menggunakan CTR:
1. Inisialisasi:
- Kunci enkripsi: "KEY"
- Ukuran blok: 8 bit
- Nilai inisialisasi (nonce): 10101010
2. Enkripsi:
- Counter awal: 10101010
- Enkripsi counter (10101010) menggunakan algoritma kunci simetris dengan kunci "KEY"
menghasilkan chiperteks acak (misalnya 11001100).
- Blok 1 ("HELLO") XOR dengan chiperteks acak (11001100) menghasilkan blok chiperteks
terenkripsi (misalnya 01100110).
- Increment counter ke nilai berikutnya (misalnya 10101011).
1. Tidak memberikan integritas data, artinya tidak dapat mendeteksi apakah ada perubahan atau
manipulasi pada chiperteks.
2. Sensitif terhadap pengulangan counter atau nilai inisialisasi yang sama. Jika ada pengulangan,
keamanan dapat terancam dan dapat memungkinkan serangan pada sistem enkripsi.
1. Kemampuan untuk mengenkripsi dan mendekripsi data dalam bentuk yang lebih kecil dari
ukuran blok yang digunakan oleh algoritma kunci simetris.
2. Pemberian nilai inisialisasi (nonce) yang berbeda dapat menghasilkan chiperteks yang berbeda
secara keseluruhan, sehingga tidak ada pola yang terlihat dalam enkripsi.
3. Mampu mengenkripsi data secara streaming, sehingga tidak perlu menunggu hingga seluruh
blok data tersedia sebelum proses enkripsi dapat dimulai.
4. Blowfish:
Blowfish adalah algoritma block cipher yang dikembangkan oleh Bruce Schneier pada tahun
1993. Algoritma ini mengenkripsi blok data dengan ukuran 64 bit menggunakan kunci dengan
panjang 32 hingga 448 bit. Blowfish terkenal karena kecepatan enkripsi dan dekripsinya yang
tinggi, serta keamanan yang cukup baik.
5. Twofish:
Twofish adalah algoritma block cipher yang juga dikembangkan oleh Bruce Schneier.
Algoritma ini adalah penerus Blowfish dan dirancang untuk mengatasi beberapa kekurangan
Blowfish. Twofish mengenkripsi blok data dengan ukuran 128 bit menggunakan kunci dengan
panjang 128, 192, atau 256 bit. Twofish merupakan salah satu finalis dalam kompetisi AES.
6. Serpent:
Serpent adalah algoritma block cipher yang juga merupakan finalis dalam kompetisi AES.
Algoritma ini mengenkripsi blok data dengan ukuran 128 bit menggunakan kunci dengan
panjang 128, 192, atau 256 bit. Serpent didesain untuk memberikan keamanan yang tinggi serta
mengutamakan ketahanan terhadap serangan kriptanalisis.
Algoritma-algoritma block cipher ini memainkan peran penting dalam mengamankan data dan
informasi dalam komunikasi dan penyimpanan digital. Keamanan mereka bergantung pada
panjang kunci yang digunakan, struktur dan mekanisme substitusi-permutasi yang kompleks,
serta jumlah putaran transformasi yang dijalankan.