Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Advanced Encryption Standard

Presentasi serupa


Presentasi berjudul: "Advanced Encryption Standard"— Transcript presentasi:

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


Download ppt "Advanced Encryption Standard"

Presentasi serupa


Iklan oleh Google