Standar Enkripsi Lanjutan: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan
k Membatalkan 1 suntingan oleh Radenzkun (bicara) ke revisi terakhir oleh 203.78.121.144(Tw)
Tag: Pembatalan
(23 revisi perantara oleh 14 pengguna tidak ditampilkan)
Baris 1:
{{kotak info metode enkripsi
{{judul asing}}
| nama = Advanced Encryption Standard{{break}}(Rijndael)
[[Berkas:AES-SubBytes.svg|280px|thumb|AES]]
| gambar = AES-SubBytes.svg
Dalam [[kriptografi]], '''Advanced Encryption Standard''' ('''AES''') merupakan standar [[enkripsi]] dengan kunci-simetris yang diadopsi oleh pemerintah Amerika Serikat. Standar ini terdiri atas 3 blok [[cipher]], yaitu [[AES-128]], [[AES-192]] and [[AES-256]], yang diadopsi dari koleksi yang lebih besar yang awalnya diterbitkan sebagai '''[[Rijndael]].''' Masing-masing cipher memiliki ukuran 128-[[bit]], dengan ukuran kunci masing-masing 128, 192, dan 256 bit. AES telah dianalisis secara luas dan sekarang digunakan di seluruh dunia, seperti halnya dengan pendahulunya, [[Data Encryption Standard|Data Encryption Standard (DES)]].
| takarir = Langkah {{mono|SubBytes}}, salah satu dari empat langkah dalam satu ronde AES
| pendesain = [[Vincent Rijmen]], [[Joan Daemen]]
| tanggal publikasi = 1998
| seri =
| turunan dari = [[Square (penyandian)|Square]]
| penerus = [[Anubis (penyandian)|Anubis]], [[Grand Cru (penyandian)|Grand Cru]], [[Kalyna (penyandian)|Kalyna]]
| terkait =
| sertifikasi = Pemenang AES, [[CRYPTREC]], [[NESSIE]], [[Badan Keamanan Nasional|NSA]]
| ukuran digest =
| ukuran kunci = 128, 192 atau 256 bit<ref name="keysize" group="catatan">Ukuran kunci 128, 160, 192, 224, dan 256 bit didukung oleh algoritme Rijndael. Namun, hanya ukuran kunci 128, 192, dan 256 bit yang dinyatakan dalam standar AES.</ref>
| klaim keamanan =
| ukuran blok = 128 bit<ref name="blocksize" group="catatan">Ukuran blok 128, 160, 192, 224, dan 256 bit didukung oleh algoritme Rijndael untuk tiap ukuran kunci. Namun, hanya ukuran blok 128 bit yang dinyatakan dalam standar AES.</ref>
| ukuran status =
| struktur = [[Jaringan substitusi–permutasi]]
| ronde = 10, 12 atau 14 (tergantung ukuran kunci)
| analisis = Serangan-serangan yang lebih cepat secara komputasi daripada [[serangan brutal]] telah dipublikasikan. Namun, sampai 2013, belum ada yang layak secara komputasi.<ref name="aesbc">{{cite web |url=http://research.microsoft.com/en-us/projects/cryptanalysis/aesbc.pdf |title=Biclique Cryptanalysis of the Full AES |access-date=1 Mei 2019 |url-status=dead |archive-url=https://web.archive.org/web/20160306104007/http://research.microsoft.com/en-us/projects/cryptanalysis/aesbc.pdf |archive-date=6 Maret 2016}}</ref>{{break}}
Untuk AES-128, kuncinya bisa dipecahkan dengan kompleksitas 2<sup>126,1</sup> menggunakan [[serangan biclique]]. Untuk serangan biclique pada AES-192 dan AES-256, kompleksitasnya 2<sup>189,7</sup> dan 2<sup>254,4</sup>. [[Serangan kunci terkait]] dapat memecahkan AES-192 dan AES-256 dengan kompleksitas 2<sup>99,5</sup> dan 2<sup>176</sup>, baik waktu dan data.<ref name="relkey">Alex Biryukov and Dmitry Khovratovich, ''Related-key Cryptanalysis of the Full AES-192 and AES-256'', {{cite web |url=http://eprint.iacr.org/2009/317 |title=Archived copy |access-date=2010-02-16 |url-status=live |archiveurl=https://web.archive.org/web/20090928014006/http://eprint.iacr.org/2009/317 |archive-date=2009-09-28 |at=Table 1}}</ref>
}}
Dalam [[kriptografi]], '''Standar Enkripsi Lanjutan''' ({{lang-en|Advanced Encryption Standard}}, disingkat '''AES''') merupakan standar [[enkripsi]] dengan kunci simetris yang diadopsi oleh Pemerintah Amerika Serikat. Standar ini terdiri dari tiga [[penyandian blok]], yaitu AES-128, AES-192, dan AES-256, yang diadopsi dari koleksi yang lebih besar yang awalnya diterbitkan sebagai '''Rijndael'''. Tiap-tiap penyandian memiliki ukuran blok 128 [[bit]] dengan ukuran kunci masing-masing 128, 192, dan 256 bit. AES telah dianalisis secara luas dan sekarang digunakan di seluruh dunia, seperti halnya dengan pendahulunya, [[Standar Enkripsi Data]] (DES).
 
AES diumumkan oleh [[National Institute of Standards and Technology|Badan Nasional Standar dan Teknologi]] (NIST) sebagai [[Federal Information Processing Standard|Standar Pengolahan Informasi Federal]] Publikasi 197 (FIPS 197) pada tanggal [[26 November]] [[2001]] setelah proses standardisasi selama 5 tahun. Selama proses seleksi AES, ada lima belas desain enkripsi yang diajukan dan dievaluasi sebelum Rijndael terpilih sebagai yang paling cocok. AES efektif menjadi standar Pemerintah Federal Amerika Serikat pada tanggal [[26 Mei]] [[2002]] setelah persetujuan dari Menteri Perdagangan. AES tersedia dalam berbagai paket enkripsi yang berbeda. AES merupakan standar pertama yang dapat diakses publik dan dipakai oleh [[Badan Keamanan Nasional|NSA]] untuk informasi rahasia.
 
Rijndael dikembangkan oleh dua [[kriptografer]] [[Belgia]], [[Joan Daemen]] dan [[Vincent Rijmen]], dan diajukan oleh mereka untuk proses seleksi AES. Rijndael ({{IPA-nl|ˈrɛindaːl}}) adalah permainan kata dari kedua nama penemu.
AES diumumkan oleh [[National Institute of Standards and Technology|Institut Nasional Standar dan Teknologi (NIST)]] sebagai [[Federal Information Processing Standard|Standar Pemrosesan Informasi Federal (FIPS)]] publikasi 197 (FIPS 197) pada tanggal [[26 November]] [[2001]] setelah proses standardisasi selama 5 tahun, di mana ada 15 desain enkripsi yang disajikan dan dievaluasi, sebelum Rijndael terpilih sebagai yang paling cocok. AES efektif menjadi standar pemerintah Federal pada tanggal [[26 Mei]] [[2002]] setelah persetujuan dari Menteri Perdagangan. AES tersedia dalam berbagai paket enkripsi yang berbeda. AES merupakan standar yang pertama yang dapat diakses publik dan sandi-terbuka yang disetujui oleh [[National Security Agency|NSA]] untuk informasi rahasia.
 
== Penjelasan algoritme ==
AES didesain berdasarkan [[jaringan substitusi–permutasi]] dan dapat dijalankan dengan efisien dalam [[perangkat lunak]] dan keras.<ref>{{cite web |url=http://www.schneier.com/paper-twofish-final.pdf |title=The Twofish Team's Final Comments on AES Selection |display-authors=7 |author=Bruce Schneier |author2=John Kelsey |author3=Doug Whiting |author4=David Wagner |author5=Chris Hall |author6=Niels Ferguson |author7=Tadayoshi Kohno |author8=Mike Stay |date=Mei 2000 |url-status=live |archive-url=https://web.archive.org/web/20100102041117/http://schneier.com/paper-twofish-final.pdf |archive-date=2 Januari 2010}}</ref> AES berbeda dengan DES karena AES tidak menggunakan [[Sandi Feistel|jaringan Feistel]]. AES adalah variasi dari Rijndael dengan ukuran blok tetap 128 bit dan ukuran kunci 128, 192, atau 256 bit. Sebaliknya, Rijndael sendiri didesain dengan ukuran blok dan kunci kelipatan 32 bit dengan minimum 128 bit dan maksimum 256 bit.
 
AES menggunakan matriks 4 × 4 dengan urutan bita sesuai kolom-lalu-baris (ke bawah, lalu ke kanan). Matriks ini disebut "status" (''state'').<ref group="catatan">Variasi Rijndael dengan blok besar dapat menambah jumlah kolom, tetapi selalu memiliki empat baris.</ref>
Rijndael dikembangkan oleh dua [[kriptografer]] [[Belgia]], [[Joan Daemen]] dan [[Vincent Rijmen]], dan diajukan oleh mereka untuk proses seleksi AES. Rijndael (diucapkan [rɛinda ː l]) adalah permainan kata dari kedua nama penemu.
 
Misalkan, 16 bita data, <math>b_0, b_1, ..., b_{15}</math>, digambarkan dalam matriks dua dimensi sebagai berikut.
: <math>
\begin{bmatrix}
b_0 & b_4 & b_8 & b_{12} \\
b_1 & b_5 & b_9 & b_{13} \\
b_2 & b_6 & b_{10} & b_{14} \\
b_3 & b_7 & b_{11} & b_{15}
\end{bmatrix}
</math>
 
Jumlah ronde yang dijalankan dalam AES bergantung pada ukuran kunci yang dipakai.
[[Berkas:AES-ShiftRows.svg|thumb|Proses shift dalam AES]]
{| class=wikitable
|+
! Ukuran blok
! Ukuran kunci
! Jumlah putaran
|-
| rowspan=3 | 128 bit
| 128 bit
| 10 putaran
|-
| 192 bit
| 12 putaran
|-
| 256 bit
| 14 putaran
|}
 
Tiap ronde terdiri dari beberapa langkah, termasuk yang menggunakan kunci enkripsi. Inversi langkah (kebalikannya) dipakai untuk melakukan dekripsi dengan kunci yang sama (simetris).
Ada 10, 12, atau 14 putaran (round) dalam AES. Jumlah kitaran ini sesuai dengan ukuran kunci yang digunakan.
 
=== Gambaran umum algoritme ===
Setiap kitaran mengandungi:
# {{mono|KeyExpansion}}, kunci ronde diturunkan dari kunci penyandian melalui [[penjadwalan kunci AES]]. AES membutuhkan kunci ronde 128 bit untuk tiap ronde ditambah satu.
* Penggantian Byte yang sama seperti DES
# Penambahan kunci ronde awalan:
* Peralihan = Pertukaran baris
## {{mono|AddRoundKey}}, tiap bita digabung dengan satu bita dari kunci ronde dengan operasi XOR.
* Campur Jalur = Peralihan Kiri & XOR Bit-bit.
# Selama 9, 11, atau 13 ronde:
* Penambahan Subkunci = XOR Bagian Kunci dengan Keputusan Kitaran
## {{mono|SubBytes}}, substitusi nonlinear yang tiap bitanya ditukar dengan lainnya sesuai tabel acuan.
## {{mono|ShiftRows}}, penukaran posisi yang tiga baris terakhirnya digeser beberapa kali.
## {{mono|MixColumns}}, pencampuran linear yang bekerja pada tiap kolom "status", yaitu kombinasi keempat bita dalam tiap kolom.
## {{mono|AddRoundKey}}
# Ronde terakhir (ronde ke-10, 12, atau 14):
## {{mono|SubBytes}}
## {{mono|ShiftRows}}
## {{mono|AddRoundKey}}
 
=== {{anchor|SubBytes}} Langkah {{mono|SubBytes}} (penukaran bita) ===
== Pranala Luar ==
[[Gambar:AES-SubBytes.svg|right|320px|thumbnail|Dalam langkah {{mono|SubBytes}}, tiap bita "status" ditukar dengan nilai lain pada tabel 8 bit tetap [[Kotak-S Rijndael|''S'']]; {{math|''b<sub>ij</sub>'' {{=}} ''S(a<sub>ij</sub>)''}}.]]
* [http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf FIPS PUB 197: Standar resmi AES] ([[Portable Document Format|PDF]] file)
{{utama|Kotak-S Rijndael}}
Dalam langkah {{mono|SubBytes}}, tiap bita <math>a_{i, j}</math> "status" ditukar dengan {{mono|SubBytes}} <math>S(a_{i, j})</math> dengan [[Kotak-S Rijndael|kotak substitusi 8 bit]]. Langkah ini memberi sifat nonlinear dalam penyandian ini. Kotak-S yang dipakai berasal dari inversi perkalian dalam {{math|[[Medan berhingga|GF]](2<sup>8</sup>)}} yang dikenal memiliki sifat nonlinear. Untuk menghindari serangan berdasarkan sifat aljabar sederhana, kotak-S dibangun dengan menggabungkan fungsi inversi dan [[transformasi afin]]. Kotak-S juga dipilih untuk menghindari titik tetap (sehingga tiada nilai yang dipetakan ke nilai yang sama), yaitu <math>S(a_{i, j}) \neq a_{i, j}</math>, dan juga lawan titik tetap apa pun, yaitu <math>S(a_{i, j}) \oplus a_{i, j} \neq \text{FF}_{16}</math>. Ketika melakukan dekripsi, langkah {{mono|InverseSubBytes}} (kebalikan dari {{mono|SubBytes}}) dipakai yang harus mencari inversi transformasi afin dan kemudian mencari inversi perkaliannya.
 
=== {{anchor|ShiftRows}} Langkah {{mono|ShiftRows}} (pergeseran baris) ===
[[Gambar:AES-ShiftRows.svg|right|320px|thumbnail|Dalam langkah {{mono|ShiftRows}}, bita-bita tiap baris digeser (diputar) ke kiri. Banyak pergeseran bertambah untuk tiap baris.]]
Langkah {{mono|ShiftRows}} mengubah tiap baris. Untuk AES, baris pertama dibiarkan. Tiap bita pada baris kedua digeser sekali. Begitu pula untuk baris ketiga dan keempat. Baris ketiga digeser dua kali dan baris keempat digeser tiga kali.<ref group="catatan">Variasi Rijndael dengan ukuran blok besar memiliki banyak pergeseran yang berbeda.</ref> Langkah ini dijalankan agar tiap kolom tidak dienkripsi sendiri-sendiri. hai
 
=== {{anchor|MixColumns}} Langkah {{mono|MixColumns}} (pencampuran kolom) ===
{{komputer-stub}}
[[Gambar:AES-MixColumns.svg|right|320px|thumbnail|Dalam langkah {{mono|MixColumns}}, tiap kolom "status" dikali dengan suku banyak tetap <math>c(x)</math>.]]
{{utama|MixColumns Rijndael}}
Dalam langkah {{mono|MixColumns}}, empat bita dalam tiap kolom "status" digabung dengan transformasi linear terbalikkan. Fungsi {{mono|MixColumns}} menerima empat bita input dan mengeluarkan empat bita yang tiap bita inputnya saling memengaruhi. Fungsi ini bersama dengan {{mono|ShiftRows}} memberikan [[Pengacakan dan penghamburan|penghamburan]] dalam penyandian.
 
Dalam langkah ini, tiap kolom ditransformasikan dengan matriks tetap sebagai berikut.
[[Kategori:Algoritma kriptografi]]
 
: <math>\begin{bmatrix} b_{0, j} \\ b_{1, j} \\ b_{2, j} \\ b_{3, j} \end{bmatrix} =
\begin{bmatrix}
2 & 3 & 1 & 1 \\
1 & 2 & 3 & 1 \\
1 & 1 & 2 & 3 \\
3 & 1 & 1 & 2
\end{bmatrix}
\begin{bmatrix} a_{0, j} \\ a_{1, j} \\ a_{2, j} \\ a_{3, j} \end{bmatrix},
\qquad 0 \le j \le 3</math>
 
=== {{anchor|AddRoundKey}} Langkah {{mono|AddRoundKey}} (penambahan kunci ronde) ===
[[Gambar:AES-AddRoundKey.svg|right|320px|thumbnail|Dalam langkah {{mono|AddRoundKey}}, tiap bita "status" digabung dengan bita pada subkunci ronde saat itu dengan operasi XOR (⊕).]]
Dalam langkah {{mono|AddRoundKey}}, subkunci digabung dengan "status". Untuk tiap ronde, sebuah subkunci dibuat dari kunci utama dengan [[penjadwalan kunci AES]]. Tiap subkunci berukuran sama dengan "status". Subkunci ditambahkan dengan menggabungkan tiap bita "status" dengan bita yang seletak pada subkunci dengan operasi XOR.
 
=== Optimasi penyandian ===
Pada sistem berukuran 32 bit atau lebih, eksekusi dapat dipercepat dengan menggabungkan langkah {{mono|SubBytes}} dan {{mono|ShiftRows}} dengan {{mono|MixColumns}} dengan mengubahnya menjadi tabel-tabel acuan. Cara ini membutuhkan empat tabel dengan 256 entri 32 bit (sekitar 4096 bita). Sebuah ronde dapat dijalankan dengan 16 operasi pencarian tabel dan 12 operasi XOR 32 bit ditambah dengan 4 operasi XOR 32 bit pada langkah {{mono|AddRoundKey}}.<ref>{{cite conference |url= |title=Efficient Software Implementation of AES on 32-Bit Platforms |author1=Bertoni G. |author2=Breveglieri L. |author3=Fragneto P. |author4=Macchetti M. |author5=Marchesin S. |date=17 Februari 2003 |conference=Cryptographic Hardware and Embedded Systems |editor=Kaliski B.S., Koç .K., Paar C. |volume=2523 |book-title=Lecture Notes in Computer Science |publisher=Springer |doi=10.1007/3-540-36400-5_13}}</ref> Cara lainnya, operasi pencarian tabel dapat dilakukan dengan satu tabel dengan 256 entri 32 bit (sekitar 1024 bita) yang diikuti dengan operasi rotasi sirkular.
 
Dengan pendekatan berorientasi bita, dapat dilakukan penggabungan {{mono|SubBytes}}, {{mono|ShiftRows}}, dan {{mono|MixColumns}} ke dalam operasi ronde tunggal.<ref>{{cite web |url=https://code.google.com/p/byte-oriented-aes |title=byte-oriented-aes – A public domain byte-oriented implementation of AES in C – Google Project Hosting |access-date=23 Desember 2012 |url-status=live |archive-url=https://web.archive.org/web/20130720155538/http://code.google.com/p/byte-oriented-aes/ |archive-date=20 Juli 2013}}</ref>
 
== Kinerja ==
Kecepatan tinggi dan penggunaan memori rendah menjadi penilaian dalam proses seleksi AES. Sebagai [[Algoritma|algoritme]] terpilih, AES berjalan dengan baik dalam beragam [[perangkat keras]], dari [[kartu pintar]] 8 bit hingga komputer kinerja tinggi.
 
Pada [[Pentium Pro]], enkripsi AES membutuhkan 18 siklus per bita<ref>{{cite web |url=http://www.schneier.com/paper-aes-performance.pdf |title=Performance Comparisons of the AES submissions |last1=Schneier |first1=Bruce |last2=Kelsey |first2=John |last3=Whiting |first3=Doug |last4=Wagner |first4=David |last5=Hall |first5=Chris |last6=Ferguson |first6=Niels |date=1 Februari 1999 |access-date=28 Desember 2010 |url-status=live |archive-url=https://web.archive.org/web/20110622084238/http://www.schneier.com/paper-aes-performance.pdf |archive-date=22 Juni 2011}}</ref> atau setara dengan 11&nbsp;Mbit/s untuk prosesor 200&nbsp;MHz. Pada [[Pentium M]] 1,7&nbsp;GHz, kelajuannya sekitar 60&nbsp;Mbit/s.
 
Pada Intel Core i3/i5/i7 dan AMD [[Ryzen]] yang mendukung [[set instruksi AES|set instruksi AES-NI]], kelajuannya bisa mencapai beberapa GB/s (bahkan lebih dari 10&nbsp;GB/s).<ref>{{cite web |url=https://www.vortez.net/articles_pages/amd_ryzen_7_1700x_review,7.html |title=AMD Ryzen 7 1700X Review}}</ref>
 
== Catatan kaki ==
<references group="catatan" />
 
== Referensi ==
{{reflist}}
 
== Pranala luar ==
*{{cite web |url=http://embeddedsw.net/Cipher_Reference_Home.html |title=256bit key – 128bit block – AES |date= |work=Cryptography – 256 bit Ciphers: Reference source code and submissions to international cryptographic designs contests |publisher=EmbeddedSW}}
*{{cite journal |title=Advanced Encryption Standard (AES) |date=26 November 2001 |journal=Federal Information Processing Standards |id=197 |url=http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf |doi=10.6028/NIST.FIPS.197}}
*{{cite web |url=https://webstore.iec.ch/preview/info_isoiec18033-3%7Bed2.0%7Den.pdf |title=Part 3: Block ciphers |date=2010-12-15 |work=Information technology – Security techniques – Encryption algorithms |publisher=ISO |edition=2nd |id=ISO/IEC 18033-3:2010(E)}}
 
{{kriptografi blok}}
 
[[Kategori:Standar Enkripsi Lanjutan| ]]
[[Kategori:Algoritme kriptografi]]