26 Juli 2013 Tugas Akhir – KI091391 1 IMPLEMENTASI ALGORITMA RIJNDAEL DENGAN MENGGUNAKAN KUNCI ENKRIPSI YANG BERUKURAN MELEBIHI 256 BIT (Kata kunci: Advanced Encryption Standard, Algoritma Rijndael, cipher key, enkripsi) PRESENTASI TUGAS AKHIR – KI091391 Penyusun Tugas Akhir : Gracius Cagar Gunawan (NRP : 5109100168) Dosen Pembimbing : Ahmad Saikhu, S.Si., M.T. Rully Soelaiman, S.Kom., M.Kom.
30
Embed
IMPLEMENTASI ALGORITMA RIJNDAEL DENGAN … · 26 Juli 2013 Tugas Akhir – KI091391 . 1 . IMPLEMENTASI ALGORITMA RIJNDAEL DENGAN MENGGUNAKAN KUNCI ENKRIPSI YANG BERUKURAN MELEBIHI
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
26 Juli 2013 Tugas Akhir – KI091391 1
IMPLEMENTASI ALGORITMA RIJNDAEL DENGAN MENGGUNAKAN KUNCI ENKRIPSI YANG
Tujuan dari tugas akhir ini adalah membuat sebuah perangkat lunak yang dapat melakukan enkripsi Rijndael menggunakan kunci enkripsi yang berukuran 32 bit sampai dengan 64 kilobit.
26 Juli 2013 Tugas Akhir – KI091391 6
TUJUAN
Data = masukan yang akan dienkripsi
State = keadaan data saat dalam proses enkripsi AES
Word = 4 byte
Nb = ukuran data dalam satuan word, pada AES, Nb = 4
Nk = ukuran cipher key dalam satuan word
Nr = banyaknya Transformasi Round yang akan dijalankan, pada AES, Nr = Nk+6
26 Juli 2013 Tugas Akhir – KI091391 7
AES
26 Juli 2013 Tugas Akhir – KI091391 8
AES
Data dan cipher key Key expansion Add round key i = 1
Round i++ = Nr-1 Final round Cipher text
Y
N
Data dibentuk dalam matriks 4xNb yang nomor barisnya adalah 0 sampai 3 dan nomor kolomnya adalah 0 sampai Nb-1.
Pengisian data dilakukan dengan cara memenuhi sebuah kolom terlebih dahulu dan dimulai dari kolom ke-0 baris ke-0.
26 Juli 2013 Tugas Akhir – KI091391 9
DATA DAN CIPHER KEY
00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff
00 44 88 cc 11 55 99 dd 22 66 aa ee 33 77 bb ff
Cipher key dibentuk dalam matriks 4xNk yang nomor barisnya adalah 0 sampai 3 dan nomor kolomnya adalah 0 sampai Nk-1.
Cara pengisian matriks cipher key sama dengan cara pengisian matriks data.
Expanded Key 14 24 bf 37 6d fc 09 1a 68 79 79 c2 de cc e9 3c 36
Inverse AES merupakan algoritma dekripsi untuk cipher text keluaran AES.
Struktur dari inverse AES hampir sama dengan AES.
26 Juli 2013 Tugas Akhir – KI091391 21
INVERSE AES
26 Juli 2013 Tugas Akhir – KI091391 22
PERBEDAAN INVERSE AES DENGAN AES
Add round key pertama
Inverse round
• Inverse shift rows
• Inverse sub bytes
• Add round key
• Inverse mix columns
Inverse final round
• Inverse shift rows
• Inverse sub bytes
• Add round key
Add round key pertama pada inverse AES menggunakan expanded key bagian ke-Nr
𝑏7𝑏6𝑏5𝑏4𝑏3𝑏2𝑏1𝑏0
=
0 10 0
0 11 0
1 00 1
0 10 0
0 01 0
1 00 1
0 11 0
0 01 0
0 01 0
1 00 1
0 11 0
0 01 0
0 10 0
0 11 0
1 00 1
0 10 0
𝑏`7𝑏`6𝑏`5𝑏`4𝑏`3𝑏`2𝑏`1𝑏`0
+
01100011
Expanded key yang digunakan pada setiap round dimulai dengan expanded key bagian ke Nr-1 sampai dengan bagian ke-1
𝑏0,𝑗𝑏1,𝑗𝑏2,𝑗𝑏3,𝑗
=
0𝑥0𝐸 0𝑥0𝐵0𝑥09 0𝑥0𝐸
0𝑥0𝐷 0𝑥090𝑥0𝐵 0𝑥0𝐷
0𝑥0𝐷 0𝑥090𝑥0𝐵 0𝑥0𝐷
0𝑥0𝐸 0𝑥0𝐵0𝑥09 0𝑥0𝐸
𝑏`0,𝑗𝑏`1,𝑗𝑏`2,𝑗𝑏`3,𝑗
Expanded key yang digunakan oleh inverse final round adalah bagian ke-0
26 Juli 2013 Tugas Akhir – KI091391 23
ECB
00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff
00 44 88 cc 11 55 99 dd 22 66 aa ee 33 77 bb ff
00 44 88 cc 11 55 99 dd 22 66 aa ee 33 77 bb ff
8e 51 ea 4b a2 67 fc 49 b7 45 49 60 ca bf 90 89
8e 51 ea 4b a2 67 fc 49 b7 45 49 60 ca bf 90 89
8e 51 ea 4b a2 67 fc 49 b7 45 49 60 ca bf 90 89 8e 51 ea 4b a2 67 fc 49 b7 45 49 60 ca bf 90 89
Key expansion tidak diletakkan dalam AES, tetapi dalam ECB.
RCon dan sub byte diimplementasikan sebagai sebuah larik.
26 Juli 2013 Tugas Akhir – KI091391 24
DESAIN APLIKASI
1. Uji kebenaran enkripsi : pengumpulan di SPOJ
2. Uji kebenaran dekripsi : setelah dekripsi = sebelum enkripsi
3. Uji kecepatan : pengaruh Nb dan Nk
SKENARIO UJI COBA
26 Juli 2013 Tugas Akhir – KI091391 25
SKENARIO 1 DAN 2
26 Juli 2013 Tugas Akhir – KI091391 26
SKENARIO 3
26 Juli 2013 Tugas Akhir – KI091391 27
Percobaan Ukuran Cipher Key (byte) Waktu (milidetik)
1 1024 296
2 2048 592
3 3072 873
4 4096 1170
5 5120 1450
6 6144 1731
7 7168 2028
8 8192 2293
9 9216 2589
10 10240 2886
Percobaan Ukuran Data (byte) Waktu (milidetik)
1 65536 327
2 131072 624
3 196608 905
4 262144 1216
5 327680 1544
6 393216 1825
7 458752 2106
8 524288 2449
9 589824 2730
10 655360 3010
Ukuran cipher key tetap : 4096 bit
Ukuran data tetap : 262144 bit
Algoritma Rijndael dapat menerima ukuran cipher key yang lebih besar daripada 256 bit dan kebenaran enkripsi terjamin ketika ukuran cipher key kurang dari atau sama dengan 64 kbit.
Kecepatan enkripsi AES dipengaruhi secara linear oleh besar data dan besar cipher key sehingga kompleksitas waktunya adalah
Q(Nb*Nk) .
Penambahan cipher key lebih berefek terhadap waktu proses daripada penambahan data.
KESIMPULAN
26 Juli 2013 Tugas Akhir – KI091391 28
Algoritma enkripsi yang memiliki blok masukan yang besar dibutuhkan agar tingkat keamanan terhadap dictionary attack juga lebih terjamin.
Dengan alasan optimasi memori, dibutuhkan fungsi key schedule yang dapat digunakan pada berbagai macam ukuran cipher key agar expanded key tidak perlu disimpan dalam memori.