• Tidak ada hasil yang ditemukan

PRESENTASI TUGAS AKHIR KI091391

N/A
N/A
Protected

Academic year: 2022

Membagikan "PRESENTASI TUGAS AKHIR KI091391"

Copied!
30
0
0

Teks penuh

(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.

(2)

AGENDA

Pendahuluan

• Latar Belakang

• Rumusan Masalah

• Batasan Masalah

• Tujuan

Dasar Teori

Advanced Encryption Standard (AES)

Inverse AES

Electronic Codebook (ECB)

Desain

Aplikasi Uji Coba dan Evaluasi

• Skenario Uji Coba

• Kesimpulan

• Saran

(3)

 AES dan hubungannya dengan Algoritma Rijndael

 Perkembangan teknologi berdasarkan Hukum Moore

LATAR BELAKANG

(4)

 Dapatkah fungsi key expansion pada Algoritma Rijndael menerima cipher key yang berukuran melebihi 256 bit?

 Bagaimana implementasinya?

 Bagaimana kecepatannya?

RUMUSAN MASALAH

(5)

 Kebenaran dari proses enkripsi adalah berdasarkan www.spoj.com/problems/AES64KE.

Ukuran cipher key dan data dibatasi hingga 64 kilobit.

Ukuran cipher key dan data selalu merupakan kelipatan 128 bit.

 Kebenaran dari proses dekripsi adalah berdasarkan kembalinya informasi semula yang telah terenkripsi.

BATASAN MASALAH

(6)

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.

TUJUAN

(7)

 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

AES

(8)

AES

Data dan

cipher key Key expansion Add round key i = 1

Round i++ = Nr-1

Final round Cipher text

Y

N

(9)

 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.

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

(10)

 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.

DATA DAN CIPHER KEY

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

00 04 08 0c 10 14 18 1c 01 05 09 0d 11 15 19 1d 02 06 0a 0e 12 16 1a 1e 03 07 0b 0f 13 17 1b 1f

(11)

 Key expansion yang digunakan adalah key expansion pada Algoritma Rijndael.

 Key expansion menambahkan ukuran matriks cipher key dari 4*Nk manjadi matriks expanded key (W) yang berukuran 4*(Nb*(Nr+1)).

 Expanded key terdiri dari Nr+1 bagian dimulai dari bagian ke-0 sampai bagian ke-Nr dengan setiap bagian berupa matriks 4xNb.

 Kegunaan expanded key adalah sebagai matriks penjumlah dalam proses add round key.

RIJNDAEL KEY EXPANSION

(12)

 Bagian awal dari expanded key merupakan cipher key itu sendiri.

Expanded Key 0 00 04 08 0c

01 05 09 0d 02 06 0a 0e 03 07 0b 0f Cipher Key

00 04 08 0c 10 14 18 1c 01 05 09 0d 11 15 19 1d 02 06 0a 0e 12 16 1a 1e 03 07 0b 0f 13 17 1b 1f

Expanded Key 1 10 14 18 1c

11 15 19 1d 12 16 1a 1e 13 17 1b 1f

RIJNDAEL KEY EXPANSION

(13)

 Untuk selanjutnya, asumsikan i mewakili baris dan j mewakili kolom.

 Jika j merupakan kelipatan dari Nk, maka

W[0][j] = W[0][j-Nk] ⨁ sub_byte(W[1][j-1]) ⨁ RCon(j/Nk)

Untuk i = 1 sampai 3, W[i][j] = W[i][j-Nk] ⨁ sub_byte(W[(i+1)%4][j-1])

Expanded Key 2 a5 a1 a9 a5

73 76 7f 72 c2 c4 ce c0 9f 98 93 9c Cipher Key

00 04 08 0c 10 14 18 1c 01 05 09 0d 11 15 19 1d 02 06 0a 0e 12 16 1a 1e 03 07 0b 0f 13 17 1b 1f

Expanded Key 1 10 14 18 1c

11 15 19 1d 12 16 1a 1e 13 17 1b 1f

SubByte(1d) = a4, RCon(110) = 00 SubByte(1e) = 72

SubByte(1f) = c0

RIJNDAEL KEY EXPANSION

(14)

 Khusus untuk Nk>6, ketika j modulo Nk bernilai 4,

W[i][j] = W[i][j-Nk] ⨁ sub_byte(W[i][j-1])

Expanded Key 2 a5 a1 a9 a5

73 76 7f 72 c2 c4 ce c0 9f 98 93 9c Expanded Key 1

10 14 18 1c 11 15 19 1d 12 16 1a 1e 13 17 1b 1f

SubByte(a5) = 06 SubByte(72) = 40 SubByte(c0) = ba

Expanded Key 3 16 02 1a 06

51 44 5d 40 a8 be a4 ba cd da c1 de

RIJNDAEL KEY EXPANSION

(15)

 Selain itu,

W[i][j] = W[i][j-Nk] ⨁ W[i][j-1]

Expanded Key 2 a5 a1 a9 a5

73 76 7f 72 c2 c4 ce c0 9f 98 93 9c Expanded Key 0

00 04 08 0c 01 05 09 0d 02 06 0a 0e 03 07 0b 0f

RIJNDAEL KEY EXPANSION

(16)

 RCon merupakan fungsi perpangkatan dua dengan satu kurangnya dari masukannya dengan satu kurangnya dari nol adalah 255.

 Perpangkatan pada RCon dilakukan pada polinomial GF(28) dengan m(x) = x8 + x4 + x3 + x + 1.

RCON

RCon(1210)

= x11 % (x8 + x4 + x3 + x + 1)

= x7 + x6 + x4 + x3

= d8

(17)

 Sub byte adalah transformasi linear terhadap invers dari byte masukan berdasarkan persamaan:

SUB BYTE

𝑏`7 𝑏`6 𝑏`5 𝑏`4 𝑏`3 𝑏`2 𝑏`1 𝑏`0

= 1 1

0 1 1 1 0 0 1 1

0 0 1 1 0 1

1 0

1 1 0 0 1 1 0 0

1 1 1 0 1 0 1 1

1 1 0 0 1 1 0 0

1 1 1 0 1 1

1 1

0 1 1 1 0 0 1 1

0 0 1 1 0 1

𝑏7 𝑏6 𝑏5 𝑏4 𝑏3 𝑏2 𝑏1 𝑏0

+ 0 1 10 00 1 1

SubByte(1d) = ?

(1d)-1 = 40 = 010000002

1 0 10 01 0 0

= 1 1

0 1 1 1 0 0 1 1

0 0 1 1 0 1

1 0

1 1 0 0 1 1 0 0

1 1 1 0 1 0 1 1

1 1 0 0 1 1 0 0

1 1 1 0 1 1

1 1

0 1 1 1 0 0 1 1

0 0 1 1 0 1

0 1 00 00 0 0

+ 0 1 10 00 1 1

SubByte(1d) = 101001002 = a4

(18)

 Add round key merupakan penjumlahan state dengan bagian tertentu dari expanded key.

 Add round key yang dilakukan pertama kali menjumlahkan state dengan expanded key bagian ke-0.

ADD ROUND KEY

State

00 40 80 c0 10 50 90 d0 20 60 a0 e0 30 70 b0 f0 State

00 44 88 cc 11 55 99 dd 22 66 aa ee 33 77 bb ff

Expanded Key 0 00 04 08 0c

01 05 09 0d 02 06 0a 0e 03 07 0b 0f

(19)

Round

Sub bytes Shift rows Mix columns Add round key

Sub bytes adalah transformasi sub byte untuk setiap byte pada state

00 40 80 c0 10 50 90 d0 20 60 a0 e0 30 70 b0 f0

63 09 cd ba ca 53 60 70 b7 d0 e0 e1 04 51 e7 8c Shift rows adalah penggeseran setiap baris pada state seperti:

63 09 cd ba ca 53 60 70 b7 d0 e0 e1 04 51 e7 8c

63 09 cd ba 53 60 70 ca e0 e1 b7 d0 8c 04 51 e7

Mix columns didefinsikan sebagai transformasi mix column untuk setiap kolom pada state

melalui persamaan:

𝑏`0,𝑗 𝑏`1,𝑗 𝑏`2,𝑗 𝑏`3,𝑗

=

0𝑥02 0𝑥03

0𝑥01 0𝑥02 0𝑥01 0𝑥01 0𝑥03 0𝑥01 0𝑥01 0𝑥01

0𝑥03 0𝑥01 0𝑥02 0𝑥03 0𝑥01 0𝑥02

𝑏0,𝑗 𝑏1,𝑗 𝑏2,𝑗 𝑏3,𝑗

63 09 cd ba 53 60 70 ca e0 e1 b7 d0 8c 04 51 e7

5f 57 f7 1d 72 f5 be b9 64 bc 3b f9 15 92 29 1a

Add round key yang dilakukan pada round

ke-i menjumlahkan state dengan expanded key pada bagian i.

4f 43 ef 01 63 e0 a7 a4 76 aa 21 e7 5f 57 f7 1d

72 f5 be b9 64 bc 3b f9 15 92 29 1a

Expanded Key 1 10 14 18 1c

11 15 19 1d 12 16 1a 1e 13 17 1b 1f

(20)

Final Round

Sub bytes Shift rows Add round key

62 99 c9 23 7b 9d 45 f5 ce 5a ec 6d b9 aa f4 a5

aa ee dd 26 21 5e 6e e6 8b be ce 3c 56 ac bf 06

aa ee dd 26 5e 6e e6 21 ce 3c 8b be 06 56 ac bf

8e 51 ea 4b a2 67 fc 49 b7 45 49 60

Expanded Key 14 24 bf 37 6d

fc 09 1a 68 79 79 c2 de cc e9 3c 36

(21)

 Inverse AES merupakan algoritma dekripsi untuk cipher text keluaran AES.

 Struktur dari inverse AES hampir sama dengan AES.

INVERSE AES

(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 1 1 0 1 0

0 1 0 1 0 0

0 01 0 1 0 0 1 0 1

1 0 0 0 0 0 1 0

1 0 1 0 0 1 0 1

1 0 0 0 1 0

0 1

0 0 0 1 1 0 1 0

0 1 0 1 0 0

𝑏`7 𝑏`6 𝑏`5 𝑏`4 𝑏`3 𝑏`2 𝑏`1 𝑏`0

+ 0 11 0 00 11

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𝑥09 0𝑥0𝐵 0𝑥0𝐷 0𝑥0𝐷 0𝑥09

0𝑥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

(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

(24)

 Key expansion tidak diletakkan dalam AES, tetapi dalam ECB.

 RCon dan sub byte diimplementasikan sebagai sebuah larik.

DESAIN APLIKASI

(25)

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)

SKENARIO 1 DAN 2

(27)

SKENARIO 3

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

(28)

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

(29)

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.

SARAN

(30)

TERIMA KASIH

Referensi

Dokumen terkait

Penyebab interferensi morfologi bahasa Mandailing yang ditemui dalam karangan siswa kelas VIII MTS Baharuddin Kecamatan Batang Angkola Kabupaten Tapanuli Selatan

Kejahatan dunia maya (cyber crime) sebagai kejahatan yang relatif baru. memiliki ciri-ciri

Jika perawat merasa bahwa mereka memiliki peluang untuk mendapatkan pelatihan dan pengembangan, maka tidak hanya membantu memastikan bahwa perawat memiliki keterampilan

Dapatan analisis MANOVA menunjukkan terdapat perbezaan yang signifikan dalam tahap kecerdasan emosi, kecerdasan spiritual, perapatan dengan ibu bapa, perapatan dengan rakan sebaya,

1. Peserta didik belum terlibat dalam proses pembelajaran, sehingga materi yang diberikan menjadi sulit dipahami oleh siswa dan mengakibatkan hasil belajar

Berdasarkan hasil penelitian dan pembahasan dapat diambil simpulan terdapat perubahan yang bermakna pada tingkat skala nyeri pasien rematik (osteoartritis) sebelum

Oleh yang demikian, kajian ini menunjukkan bahawa kaunselor Muslim di sekolah menengah daerah Klang sentiasa menitikberatkan pendekatan pencegahan berbentuk hubungan dengan

Sarung tangan yang kuat, tahan bahan kimia yang sesuai dengan standar yang disahkan, harus dipakai setiap saat bila menangani produk kimia, jika penilaian risiko menunjukkan,