Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Advanced Encryption Standard
Antonius C.P.
2
Bagaimana AES diciptakan?
Kompetisi AES Dimulai pada January 1997 oleh NIST Kerjasama 4 tahun antara U.S. Government Private Industry Academia Untuk apa? Menggantikan3DES Menyediakan algoritma enkripsi publik tak terklasifikasi, royalty-free, dan worldwide Antonius C.P. - AES
3
The Finalists MARS (menggunakan Feistel network)
IBM RC6 (menggunakan Feistel network) RSA Laboratories Rijndael (menggunakan SPN) Joan Daemen (Proton World International) and Vincent Rijmen (Katholieke Universiteit Leuven) Serpent (menggunakan SPN) Ross Anderson (University of Cambridge), Eli Biham (Technion), and Lars Knudsen (University of California San Diego) Twofish (menggunakan Feistel network) Bruce Schneier, John Kelsey, and Niels Ferguson (Counterpane, Inc.), Doug Whiting (Hi/fn, Inc.), David Wagner (University of California Berkeley), and Chris Hall (Princeton University) Antonius C.P. - AES
4
Kriteria Evaluasi (sesuai urutan prioritas)
Security Resistance to cryptanalysis, soundness of math, randomness of output, etc. Cost Computational efficiency (speed) Memory requirements Algorithm / Implementation Characteristics Flexibility, hardware and software suitability, algorithm simplicity Antonius C.P. - AES
5
Pemenang: Rijndael AES mengadopsi sebuah subset Rijndael
Rijndael mendukung lebih banyak blok dan ukuran kunci Antonius C.P. - AES
6
Rounds AES adalah sebuah cipher non-Feistel yang mengenkripsi dan mendekripsi blok data 128 bits. Menggunakan 10, 12, atau 14 rounds. Ukuran kunci bisa 128, 192, atau 256 bit, tergantung banyaknya ronde. Antonius C.P. - AES
7
Desain Umum enkripsi AES
Antonius C.P. - AES
8
Unit data yang digunakan dalam AES
Antonius C.P. - AES
9
Transformasi block-to-state dan state-to-block
Antonius C.P. - AES
10
Finite Fields AES menggunakan field hingga GF(28)
AES menggunakan transformasi aljabar pada field GF(28) dengan irreducible polynomials (x8 + x4 + x3+ x + 1) AES menggunakan field hingga GF(28) b7x7 + b6x6 + b5x5 + b4x4 + b3x3 + b2x2 + b1x + b0 {b7, b6, b5, b4, b3, b2, b1, b0} Notasi byte notation utk elemen: x6 + x5 + x + 1 { } – binary {63} – hex Field ini memiliki operasi aritmatika tersendiri: Penjumlahan Perkalian Antonius C.P. - AES
11
Aritmatika Field Hingga
Penjumlahan (XOR) (x6 + x4 + x2 + x + 1) + (x7 + x + 1) = x7 + x6 + x4 + x2 { } { } = { } {57} {83} = {d4} Perkalian sedikit lebih rumit Antonius C.P. - AES
12
Perkalian Field Hingga ()
(x6 + x4 + x2 + x +1) (x7 + x +1) = x13 + x11 + x9 + x8 + x7 + x7 + x5 + x3 + x2 + x + x6 + x4 + x2 + x +1 = x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 +1 dan x13 + x11 + x9 + x8 + x6 + x5 + x4 + x3 +1 modulo ( x8 + x4 + x3 + x +1) = x7 + x6 +1. Saling meniadakan Irreducible Polynomial Antonius C.P. - AES
13
Parameter-parameter AES
Nb – banyaknya kolom dalam State Untuk AES, Nb = 4 Nk – banyaknya 32-bit words dalam Key Untuk AES, Nk = 4, 6, atau 8 Nr – banyaknya ronde (function of Nb and Nk) Untuk AES, Nr = 10, 12, atau 14 Also known as block size Antonius C.P. - AES
14
Metode AES Konversi ke state array Transformasi (dan inversnya)
SubBytes - substitusi ShiftRows - permutasi MixColumns AddRoundKey Key Expansion Antonius C.P. - AES
15
AES-128 Antonius C.P. - AES
16
Struktur setiap ronde Antonius C.P. - AES
17
Konversi ke State Array
Input block: 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 S0,0 S0,1 S0,2 S0,3 S1,0 S1,1 S1,2 S1,3 S2,0 S2,1 S2,2 S2,3 S3,0 S3,1 S3,2 S3,3 = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Antonius C.P. - AES
18
Merubah plaintext ke state
Antonius C.P. - AES
19
Transformasi Untuk meningkatkan security, AES menggunakan 4 tipe transformasi: substitution, permutation, mixing, and key-adding. Antonius C.P. - AES
20
SubBytes Substitution Transformasi pertama, SubBytes, digunakan pada proses enkripsi. Untuk mensubstitusi sebuah byte, kita menginterpretasikan byte sebagai dua digit hexadecimal. Note Operasi SubBytes melibatkan 16 byte-to-byte transformation yang independen. Antonius C.P. - AES
21
Transformasi SubBytes
Antonius C.P. - AES
22
S-box Antonius C.P. - AES
23
S-box Antonius C.P. - AES
24
S-box InvSubBytes Antonius C.P. - AES
25
S-box InvSubBytes (Continued) Antonius C.P. - AES
26
Ganti setiap byte pada state array dengan nilai dari S-Box yang sesuai
00 44 88 CC 11 55 99 DD 22 66 AA EE 33 77 BB FF 55 Antonius C.P. - AES
27
Contoh SubBytes transformation Antonius C.P. - AES
28
ShiftRows InvShiftRows
Permutasi ShiftRows InvShiftRows Pada dekripsi, transformasi ini disebut InvShiftRows dan arah pergeseran adalah ke kanan. Antonius C.P. - AES
29
Tiga baris terakhir digeser ke kiri secara siklik.
Antonius C.P. - AES
30
Contoh ShiftRows transformation Antonius C.P. - AES
31
Mixing MixColumns Kita memerlukan transformasi antar byte yang merubah bit-bit di dalam sebuah byte, berdasarkan bit-bit pada bytes tetangga. Kita perlu mencamurkan byte-byte untuk mencapai diffusion pada level bit. Mixing bytes menggunakan perkalian matriks Antonius C.P. - AES
32
Constant matriks yang digunakan dalam MixColumns dan InvMixColumns
Antonius C.P. - AES
33
MixColumns Transformasi MixColumns beroperasi pada level kolom; Operasi ini mentransformasikan setiap kolom pada state kepada sebuah kolom baru. MixColumns transformation Antonius C.P. - AES
34
MixColumns dan InvMixColumns merupakan invers satu sama lain.
Ttansformasi InvMixColumns pada dasarnya sama dengan transformasi MixColumns. Note MixColumns dan InvMixColumns merupakan invers satu sama lain. Antonius C.P. - AES
35
Aplikasikan MixColumn pada setiap kolom
S’0,c = ({02} S0,c) ({03} S1,c) S2,c S3,c S’1,c = S0,c ({02} S1,c) ({03} S2,c) S3,c S’2,c = S0,c S1,c ({02} S2,c ) ({03} S3,c) S’3,c = ({03} S0,c) S1,c S2,c ({02} S3,c MixColumns() S0,1 S1,1 S2,1 S3,1 S’0,1 S’1,1 S’2,1 S’3,1 S0,0 S0,1 S0,2 S0,3 S1,0 S1,1 S1,2 S1,3 S2,0 S2,1 S2,2 S2,3 S3,0 S3,1 S3,2 S3,3 S’0,0 S’0,1 S’0,2 S’0,3 S’1,0 S’1,1 S’1,2 S’1,3 S’2,0 S’2,1 S’2,2 S’2,3 S’3,0 S’3,1 S’3,2 S’3,3 Antonius C.P. - AES
36
Contoh The MixColumns transformation Antonius C.P. - AES
37
AddRoundKey adalah invers pada dirinya sendiri
Key Adding AddRoundKey AddRoundKey memproses satu kolom pada satu waktu. AddRoundKey menambahkan sebuah round key word dengan setiap kolom matriks state; operasi pada AddRoundKey adalah penjumlahan matriks. Note AddRoundKey adalah invers pada dirinya sendiri Antonius C.P. - AES
38
AddRoundKey XOR setiap byte dari round key dengan corresponding byte pada state array XOR S0,1 S1,1 S2,1 S3,1 S0,0 S0,1 S0,2 S0,3 S1,0 S1,1 S1,2 S1,3 S2,0 S2,1 S2,2 S2,3 S3,0 S3,1 S3,2 S3,3 S’0,1 S’1,1 S’2,1 S’3,1 R0,1 R1,1 R2,1 R3,1 S’0,0 S’0,1 S’0,2 S’0,3 S’1,0 S’1,1 S’1,2 S’1,3 S’2,0 S’2,1 S’2,2 S’2,3 S’3,0 S’3,1 S’3,2 S’3,3 R0,0 R0,1 R0,2 R0,3 R1,0 R1,1 R1,2 R1,3 R2,0 R2,1 R2,2 R2,3 R3,0 R3,1 R3,2 R3,3 Antonius C.P. - AES
39
AddRoundKey transformation
Antonius C.P. - AES
40
Key Expansion Untuk membangun round key untuk setiap ronde, AES menggunakan sebuah proses key-expansion. Jika banyaknya ronde adalah Nr , routine key-expansion membangun Nr + 1 round key 128-bit dari sebuah cipher key128-bit. Antonius C.P. - AES
41
Key Expansion Antonius C.P. - AES
42
Key expansion pada AES Antonius C.P. - AES
43
Antonius C.P. - AES
44
Contoh Misal 128-bit cipher key adalah (24 75 A2 B E AA 54 87)16. Antonius C.P. - AES
45
Setiap round key dalam AES tergantung pada round key sebelumnya
Setiap round key dalam AES tergantung pada round key sebelumnya. Ketergantungan ini adalah nonlinear karena transformasi SubWord. Penjumlahan konstan ronde juga menjamin bahwa setiap round key akan berbeda dengan yang sebelumnya. Dua himpunan round keys dapat dibangun dari dua cipher keys yang berbeda hanya dalam satu bit saja. Antonius C.P. - AES
46
Contoh Antonius C.P. - AES
47
Konsep kunci lemah seperti pada DES tidak berlaku pada AES
Konsep kunci lemah seperti pada DES tidak berlaku pada AES. Misal, asumsikan semua bit pada cipher key adalah 0. Berikut adalah words pada beberapa ronde: Words pada pre-round dan round pertama semuanya sama. Pada round kedua, word pertama sama dengan yang ketiga; yang kedua sama dengan yang keempat. Akan tetapi, setelah round kedua, setiap word berbeda. Antonius C.P. - AES
48
Encryption byte state[4,Nb] state = in AddRoundKey(state, keySchedule[0, Nb-1]) for round = 1 step 1 to Nr–1 { SubBytes(state) ShiftRows(state) MixColumns(state) AddRoundKey(state, keySchedule[round*Nb, (round+1)*Nb-1]) } AddRoundKey(state, keySchedule[Nr*Nb, (Nr+1)*Nb-1]) out = state Mencegah penyerang untuk mengenkripsi atau mendekripsi tanpa kunci. First and last operations involve the key Antonius C.P. - AES
49
Decryption byte state[4,Nb] state = in
AddRoundKey(state, keySchedule[Nr*Nb, (Nr+1)*Nb-1]) for round = Nr-1 step -1 downto 1 { InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, keySchedule[round*Nb, (round+1)*Nb-1]) InvMixColumns(state) } AddRoundKey(state, keySchedule[0, Nb-1]) out = state Antonius C.P. - AES
50
Encrypt and Decrypt Encryption AddRoundKey SubBytes ShiftRows
MixColumns Decryption InvShiftRows InvSubBytes InvMixColumns Antonius C.P. - AES
51
Ciphers AES menggunakan empat tipe transformasi untuk enkripsi dan dekripsi.. Secara standar, algoritma enkripsi digunakan sebagai cipher dan algoritma dekripsi sebagai invers dari cipher. Antonius C.P. - AES
52
Ciphers dan inverse ciphers pada desain asli
Antonius C.P. - AES
53
Cipher dan reverse cipher pada desain alternatif
Antonius C.P. - AES
54
Contoh Contoh blok ciphertext yang dibangun dari sebuah blok plaintext menggunakan cipher key yang diseleksi secara random. Antonius C.P. - AES
55
Contoh (lanjutan) Antonius C.P. - AES
56
Contoh (lanjutan) Antonius C.P. - AES
57
Contoh {lanjutan} Antonius C.P. - AES
58
Entri state pada ronde 7, dalam Contoh sebelumnya
Antonius C.P. - AES
59
Contoh Contoh hasil enkripsi terhadap plaintext semuanya 0, menggunakan cipher key yang digunakan pada Contoh sebelumnya. Antonius C.P. - AES
60
Contoh Ubah satu bit pada plaintext dan bandingkan hasilnya. Jelas bahwa hasil enkripsi menunjukkan efek diffusion dan confusion. Perubahan satu bit plaintext berpengaruh pada banyak bit ciphertext. Antonius C.P. - AES
61
Efek penggunakan cipher key yang semua bitnya adalah 0.
Contoh Efek penggunakan cipher key yang semua bitnya adalah 0. Antonius C.P. - AES
62
Security AES didesain setelah DES. Hampir semua serangan yang dikenal dalam DES telah diujikan pada AES. Brute-Force Attack AES lebih tangguh dibandingkan DES karena ukuran kunci yang lebih panjang. Statistical Attacks Berbagai tes gagal melakukan statistical analysis terhadap ciphertext. Differential and Linear Attacks Belum ada differential dan linear attacks pada AES. Antonius C.P. - AES
63
Implementation AES dapat diimplementasikan pada software dan hardware. Implementasi dapat menggunakan proses atau routine dari tabel lookup yang menggunakan sebuah well-defined struktur aljabar. Antonius C.P. - AES
64
Simplicity dan Cost Algoritma yang digunakan dalam AES sangat sederhana sehingga dapat diimplementasikan dengan mudah menggunakan processor yang murah dan memori minimal. Antonius C.P. - AES
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.