PRESENT - Enkripsi Blok Sangat Ringan (terjemahan dari PRESENT asli: Sandi Blok Sangat Ringan)

Halo, Habr! Ini adalah terjemahan dari artikel asli “PRESENT: An Ultra-Light Block Cipher” oleh Robert B. Weide Bogdanov, Lender, Paar, Poshman, Robshav, Seurin dan Wikkelsoy.


anotasi


Dengan diperkenalkannya AES, kebutuhan untuk algoritma cipher blok baru telah anjlok, karena dalam kebanyakan kasus AES adalah solusi yang bagus. Namun, meskipun mudah diimplementasikan, AES tidak cocok untuk lingkungan yang sangat terbatas seperti tag dan pembaca RFID . Artikel ini akan menjelaskan algoritma enkripsi blok ultra-ringan PRESENT. Selama pengembangan algoritma ini, efisiensi implementasi dalam besi dan keandalan enkripsi diperhitungkan. Akibatnya, hasil dari persyaratan sistem dapat dibandingkan dengan cipher stream kompak terkemuka saat ini.

1. Perkenalan


Kursus utama dalam TI abad ini adalah pengembangan perangkat komputasi kecil, yang digunakan tidak hanya dalam produk konsumen, tetapi juga membentuk bagian integral - dan tidak terlihat - dari lingkungan - infrastruktur komunikasi. Telah terungkap bahwa implementasi semacam itu menciptakan serangkaian ancaman keamanan yang sangat spesifik. Pada saat yang sama, solusi kriptografi yang tersedia, bahkan yang primitif, sering tidak cocok untuk digunakan di lingkungan yang sangat terbatas sumber daya.

Pada artikel ini, kami menawarkan algoritma cipher blok baru yang dioptimalkan untuk perangkat keras, yang dikembangkan dengan ukuran dan batasan daya semaksimal mungkin. Pada saat yang sama, kami mencoba menghindari kompromi data. Untuk mencapai hal ini, kami mengambil keuntungan dari pengalaman DES dan menambah propertiUlar telah menunjukkan kinerja luar biasa dalam perangkat keras.

Mungkin ada baiknya menjelaskan mengapa kami memutuskan untuk mengembangkan block cipher baru, karena fakta yang diterima secara umum adalah bahwa stream cipher berpotensi lebih kompak. Memang, pada awalnya kami melakukan upaya untuk memahami desain cipher stream kompak dalam proses bekerja pada proyek eSTREAM , serta beberapa asumsi menjanjikan lainnya yang tampaknya bertindak cepat. Tetapi kami memperhatikan beberapa alasan mengapa kami memilih block cipher. Pertama, enkripsi blok bersifat universal dan primitif, dan ketika digunakan dalam mode enkripsi, yaitu menggunakan blok yang sudah terenkripsi untuk mengenkripsi berikut, kami mendapatkan streaming streaming. Kedua, dan, mungkin, terutama, seluk-beluk prinsip operasi cipher blok tampaknya lebih baik dipelajari daripada prinsip-prinsip operasi algoritma enkripsi aliran. Misalnya, meskipun ada teori yang luas berdasarkan penggunaan register geser dengan umpan balik linier , tidaklah mudah untuk menggabungkan blok-blok ini sedemikian rupa untuk mendapatkan penawaran yang aman. Kami berasumsi bahwa block cipher yang dirancang dengan rapi mungkin lebih aman daripada stream cipher yang baru dibuat. Dengan demikian, kami menemukan bahwa blok cipher yang membutuhkan sumber daya besi sebanyak cipher aliran kompak bisa sangat menarik.

Penting untuk dicatat bahwa ketika membuat algoritma cipher blok baru, terutama dengan kinerja yang menarik, kami tidak hanya mengejar inovasi. Sebaliknya, pengembangan dan implementasi cipher berjalan beriringan, mengungkapkan beberapa batasan mendasar dan batasan yang melekat. Misalnya, tingkat keamanan tertentu memberlakukan batasan pada kunci minimum dan panjang blokir. Bahkan memproses keadaan 64-bit dengan kunci 80-bit membatasi ukuran perangkat minimum. Anda juga dapat melihat bahwa perwujudan dalam perangkat keras - terutama kekompakan implementasi perangkat keras - berkontribusi terhadap pengulangan. Bahkan perubahan kecil dapat mempengaruhi volume perangkat. Namun, cryptanalyst juga menghargai pengulangan dan mencari struktur matematika yang mudah berkembang biak di banyak putaran.Jadi, berapa banyak struktur berulang yang dapat digunakan tanpa mengganggu keamanan sistem?

Jadi, artikel ini akan menjelaskan PRESENT blok cipher kompak. Setelah tinjauan singkat dari literatur yang ada, kami merancang sisa artikel dalam bentuk standar. Kode dijelaskan di bagian 3, di bagian 4 keputusan desain dijelaskan. Di bagian 5 kami akan mempertimbangkan keamanan, sementara bagian 6 akan berisi analisis kinerja yang terperinci. Pekerjaan ini berakhir dengan kesimpulan kami.

2. Karya yang ada


Sementara volume pekerjaan yang ditujukan untuk kriptografi murah terus meningkat, jumlah artikel yang ditujukan untuk cipher super ringan sangat kecil. Memindahkan fokus ke perangkat protokol, kami tidak akan lagi merujuk pada protokol komunikasi dan identifikasi yang murah. Salah satu pekerjaan paling luas tentang implementasi kompak saat ini terkait dengan proyek eSTREAM. Sebagai bagian dari satu bagian dari proyek ini, stream cipher baru yang diadaptasi untuk implementasi efektif dalam perangkat keras diusulkan. Dalam perjalanan pekerjaan ini, kandidat yang menjanjikan diuraikan. Sejauh ini, rasio ini merupakan perkiraan, tetapi mengikuti dari brosur implementasi bahwa cipher kompak dari proyek eSTREAM akan membutuhkan sekitar 1300-2600 GE (setara Gate) .

Di antara cipher blok, salah satu yang dikenal luas, yaitu DES, dibuat dengan mempertimbangkan efisiensi peralatan. Mengingat keadaan semikonduktor yang sangat terbatas pada awal 1970-an, tidak mengherankan bahwa DES memiliki sifat implementasi yang sangat kompetitif. Selama pengembangan, 3000GE dihabiskan untuk DES, dan setelah serialisasi, jumlah ini turun menjadi 2300GE. Namun, panjang kunci DES membatasi kegunaannya dalam banyak aplikasi dan mengarah pada fakta bahwa modifikasi khusus dikembangkan atas dasar, misalnya, dengan peningkatan kekuatan kriptografi atau kunci yang diperluas.

Mengenai cipher blok modern, artikel ini menyediakan analisis menyeluruh AES berbiaya rendah. Namun, implementasinya membutuhkan sekitar 3.600 GE, yang merupakan konsekuensi tidak langsung dari desain denda untuk prosesor 8- dan 32-bit. Persyaratan sistem <a href = " TEA tidak diketahui, tetapi menurut perkiraan mereka membutuhkan sekitar 2100 GE. Ada 4 solusi lagi yang dirancang untuk peralatan murah: mCRYPTON (memiliki eksekusi tepat 2949 GE), HIGHT (sekitar 3000 GE), SEA (sekitar 2280 GE) dan CGEN (juga sekitar 2280 GE), terlepas dari kenyataan bahwa yang terakhir tidak dipahami sebagai cipher blok.

3. Blokir PROGRAM Cipher


PRESENT adalah kasus khusus dari jaringan SP dan terdiri dari 31 putaran. Panjang blok adalah 64 bit, dan tombol didukung dalam 2 versi, 80- dan 128-bit. Tingkat perlindungan ini harus cukup untuk aplikasi dengan keamanan rendah yang biasanya digunakan untuk penyebaran berdasarkan tag, dan di samping itu, yang lebih penting, PRESENT sebagian besar bertepatan dengan fitur desainnya dengan stream cipher dari proyek eSTREAM, dipertajam untuk implementasi efektif dalam perangkat keras, yang memungkinkan kami untuk membandingkan secara memadai mereka.
Persyaratan keamanan dan properti operasional versi 128-bit disediakan dalam lampiran artikel asli.

Masing-masing dari 31 putaran terdiri dari operasi XOR untuk memasukkan kunci K i untuk 1 ≤ i ≤ 32, di mana K 32 digunakan untuk"Bleaching" kunci , permutasi bitwise linier dan lapisan substitusi non-linear (atau, lebih sederhana, meningkatkan kekuatan enkripsi). Lapisan non-linear menggunakan 4-bit S-blok yang terpisah , yang diterapkan secara paralel 16 kali dalam setiap putaran. Cipher yang dijelaskan oleh pseudo-code ditunjukkan pada gambar:



Sekarang setiap tahap ditentukan secara bergantian. Pembenaran desain diberikan di Bagian 4, dan bit diberi nomor di mana-mana dari awal, dimulai dengan yang benar di blok atau kata.

Menambahkan kunci bulat (addRoundKey). Tombol bulat K i = k i 63 ... k i 0 , di mana 1 ≤ i ≤ 32, serta keadaan saat ini b 63 ... b 0. Menambahkan kunci putaran ke keadaan saat ini terjadi modulo 2 (b j = b j ⊕ k i j , di mana 0 ≤ j ≤ 63).

S-Box Layer (sBoxlayer). S-blok yang digunakan dalam PRESENT map blok 4-bit ke blok 4-bit. Tindakan blok ini dalam sistem bilangan heksadesimal ditunjukkan pada tabel berikut:



Untuk lapisan S-blok, status saat ini b 63 ... b 0 adalah 16 kata 4-bit w 15 ... w 0 , di mana w i = b 4 * i + 3 || b 4 * i + 2 || b 4 * i + 1 || b 4 * i untuk 0 ≤ i ≤ 15. Output frame S [w i] mengembalikan nilai negara yang diperbarui dengan cara yang jelas.

Lapisan permutasi (pLayer). Permutasi bitwise digunakan PRESENT didefinisikan dalam tabel berikut (keadaan bit i digeser ke posisi P (i)):



Konversi Kunci ( Jadwal kunci ). PRESENT dapat menggunakan kunci 80-dan 128-bit, namun, kami akan fokus pada versi 80-bit. Kunci yang disediakan oleh pengguna disimpan dalam register kunci K, direpresentasikan sebagai k 79 k 78 ... k 0 . Pada putaran ke-i, kunci putaran 64-bit K i = k 63 k 62 ... k 0, terdiri dari 64 bit kiri dari isi register K. yang sekarang. Jadi, pada putaran ke-i kita memiliki:
K i = k 63 k 62 ... k 0 = k 79 k 78 ... k 16 .

Setelah membongkar kunci bulat K i, register kunci K = k 79 k 78 ... k 0 diperbarui sebagai berikut:
1. [k 79 k 78 ... k 1 k 0 ] = [k 18 k 17 ... k 20 k 19 ]
2. [k 79 k78 k 77 k 76 ] = S [k 79 k 78 k 77 k 76 ]
3. [k 19 k 18 k 17 k 16 k 15 ] = [k 19 k 18 k 17 k 16 k 15 ] ⊕ round_counter

Karena itu, daftar tombolnya digeser 61 posisi ke kiri, 4 bit paling kiri melewati blok-S dan round_counter nilai i ditambahkan modulo 2 dengan bit k 19 k 18 k 17 k 17 k 16 k 15dari K dengan bit paling tidak signifikan dari round_counter ke kanan.



Konversi kunci untuk algoritma 128-bit dapat ditemukan dalam lampiran ke artikel asli.

4. Fitur desain PRESENT


Selain implementasi yang aman dan efisien, pencapaian utama PRESENT adalah kesederhanaannya. oleh karena itu, tidak mengherankan bahwa proyek serupa diadopsi dalam keadaan lain, dan bahkan digunakan sebagai buku teks untuk siswa. Di bagian ini, kami akan membenarkan keputusan yang kami buat saat merancang PRESENT. Namun, pertama-tama, kami menjelaskan persyaratan aplikasi yang diharapkan.

4.1. Tujuan dan lingkungan aplikasi


Ketika merancang cipher blok yang dapat diterapkan di lingkungan dengan batasan ketat, penting untuk dipahami bahwa kami tidak membuat block cipher yang pasti akan berlaku dalam banyak situasi - ada AES untuk ini. Sebaliknya, kami ditujukan untuk aplikasi yang sangat spesifik yang AES tidak cocok. Hal tersebut di atas menentukan karakteristik berikut.

  • Cipher akan diimplementasikan "dalam perangkat keras"
  • Aplikasi hanya akan diperlukan untuk menyesuaikan tingkat keamanan. Oleh karena itu, kunci 80-bit akan menjadi solusi yang kuat. Perhatikan bahwa pengembang stream cipher proyek eSTREAM mematuhi posisi yang sama.
  • Aplikasi tidak memerlukan enkripsi data dalam jumlah besar. Dengan demikian, suatu implementasi dapat dioptimalkan untuk kinerja atau ruang tanpa membuat terlalu banyak perubahan.
  • , . , ( ).
  • , , , , , .
  • , , (encryption-only mode). , - (challenge-response) , , , , .

Berdasarkan pertimbangan tersebut, kami memutuskan untuk membuat PRESENT sebagai cipher blok 64-bit dengan kunci 80-bit. Enkripsi dan dekripsi, dalam hal ini, memiliki persyaratan fisik yang kira-kira sama. Dengan kemampuan untuk mendukung enkripsi dan dekripsi, PRESENT akan lebih kompak daripada hanya mendukung enkripsi AES. Dan dalam kasus eksekusi enkripsi saja, cipher kami akan sepenuhnya super mudah. Sub-kunci enkripsi akan dihitung saat bepergian.

Ada banyak contoh dalam literatur serangan kompromi antara waktu, tanggal dan memori , atau serangan menggunakan paradoks ulang tahunsaat mengenkripsi data dalam jumlah besar. Namun, serangan ini hanya bergantung pada parameter sandi dan tidak menggunakan struktur internal. Tujuan kami adalah menjadikan serangan ini yang terbaik yang bisa mereka gunakan terhadap kami. Serangan saluran pihak ketiga dan serangan pemecah chip langsung mengancam PRESENT sebanyak primitif kriptografis lainnya . Namun, untuk kemungkinan aplikasi, persyaratan keamanan moderat membuat manfaat bagi penyerang dalam praktiknya sangat terbatas. Dalam penilaian risiko, ancaman semacam itu tidak dianggap sebagai faktor yang signifikan.

4.2. Lapisan permutasi


Saat memilih lapisan pencampuran utama, perhatian kami pada efisiensi perangkat keras memerlukan lapisan linier, yang dapat diimplementasikan dengan jumlah minimum elemen kontrol (misalnya, transistor). ini mengarah ke permutasi bitwise. Memperhatikan kesederhanaan, kami memilih permutasi bitwise biasa, yang membantu untuk melakukan analisis keamanan yang transparan (lihat bagian 5).

4.3. S-blok.


Pada PRESENT, kami menggunakan blok-S terpisah yang menerjemahkan 4 bit menjadi 4 bit (F 4 2 → F 4 2 ). Ini adalah konsekuensi langsung dari keinginan kami untuk efisiensi perangkat keras, dan penerapan blok-S seperti itu biasanya jauh lebih kompak daripada blok-S 8-bit. Karena kami menggunakan permutasi bitmap untuk lapisan difusi linier, teknologi difusi mirip AES bukanlah pilihan untuk sandi kami. Oleh karena itu, kami menempatkan beberapa kondisi tambahan pada blok-S untuk mengurangi apa yang disebut "efek longsor" . Lebih tepatnya, blok-S untuk PRESENT memenuhi kondisi berikut, di mana kami menyatakan koefisien Fourier S oleh

S W b (a) = β (-1) <b, S (x)> + <a, x> , x∈F 42

1. Untuk setiap bias input tidak-nol tetap ∆ I ∈ F 4 2 dan bias input tidak-nol tetap ∆ O ∈ F 4 2 di dalam blok-S, kita memerlukan
# {x ∈ F 4 2 | S (x) + S (x + ∆ I ) = ∆ O } ≤ 4.

2. Untuk setiap perbedaan input bukan-nol tetap ∆ I ∈ F 4 2 dan setiap perbedaan output bukan nol tetap ∆ O ∈ F 4 2 sedemikian rupa sehingga wt (∆ I ) = wt (∆ O ) = 1 , kami memiliki
{x ∈ F 4 2| S (x) + S (x + ∆ I ) = ∆ O } = ∅

3. Untuk semua bukan nol a ∈ F 4 2 dan semua bukan nol b ∈ F 4 menyatakan bahwa | S W b (a) | ≤ 8
4. Untuk semua bukan nol a ∈ F 4 2 dan semua bukan nol b ∈ F 4 sedemikian rupa sehingga wt (a) = wt (b) = 1, S W b (a) = ± memegang 4.

Seperti akan jelas dari bagian 5, kondisi ini memastikan bahwa PRESENT tahan terhadap serangan diferensial dan linear. Menggunakan klasifikasi semua 4-bit S-blok memenuhi kondisi di atas, kami telah memilih S-blok, yang sangat cocok untuk implementasi perangkat keras yang efisien.

5. Analisis Keamanan


Sekarang kami akan mempresentasikan hasil analisis keamanan PRESENT.

Analisis diferensial dan linear


Kriptanalisis diferensial dan linier adalah beberapa metode paling ampuh yang tersedia untuk kriptanalisis. Untuk mengukur resistensi PRESENT terhadap diferensial dan linear kriptanalisis, kami menetapkan batas bawah pada jumlah yang disebut blok-S aktif yang berpartisipasi dalam karakteristik diferensial (atau linier).

Kriptanalisis diferensial


Kasus diferensial pembacaan sandi dicakup oleh teorema berikut.

Teorema 1. Karakteristik diferensial lima sirkuit PRESENT memiliki setidaknya 10 blok-S aktif.

Teorema 1 dibuktikan dalam Lampiran 3 dari artikel asli, dan kami melanjutkan pengamatan. Kami membagi 16 blok-S menjadi 4 grup:



Angka-angka pada input (di atas) menunjukkan jumlah blok-S pada langkah sebelumnya, dan pada output (di bagian bawah) - pada catatan berikutnya

Perhatikan bahwa:

  1. Bit input ke blok S berasal dari 4 blok S berbeda dari kelompok yang sama.
  2. Bit input untuk kelompok empat blok s berasal dari 16 blok s berbeda.
  3. Empat bit output dari blok-S tertentu dimasukkan dalam empat blok-S yang berbeda, yang masing-masing milik kelompok S-blok yang terpisah di babak berikutnya.
  4. Bit output dari s-blok dalam kelompok yang berbeda pergi ke s-blok yang berbeda.

Menurut Teorema 1, setiap karakteristik diferensial untuk lebih dari 25 putaran PRESENT harus memiliki setidaknya 5 × 10 = 50 blok-S aktif. Probabilitas diferensial maksimum dari blok S PRESENT adalah 2 -2 , dan oleh karena itu probabilitas karakteristik diferensial 25-putaran tunggal terbatas pada 2 -100. Metode lanjutan memungkinkan cryptanalyst untuk menghapus putaran eksternal dari cipher untuk menggunakan karakteristik yang lebih pendek, namun, bahkan jika kita membiarkan penyerang untuk menghapus enam putaran dari cipher, yang merupakan situasi yang belum pernah terjadi sebelumnya, data yang diperlukan untuk menggunakan karakteristik diferensial 25 putaran yang tersisa akan melebihi jumlah yang tersedia. Dengan demikian, batas keamanan lebih dari dapat diandalkan. Namun, kami secara praktis mengkonfirmasi bahwa batas jumlah S-blok aktif dalam Teorema 1 ketat.

Konfirmasi praktis


Kita dapat mendefinisikan karakteristik yang mencakup sepuluh blok S selama lima putaran. Karakteristik iteratif dua putaran berikutnya mencakup dua blok-S per putaran dan bertahan dengan probabilitas 2–25 untuk lima putaran.

Karakteristik yang lebih kompleks dimiliki dengan probabilitas 2 -21 untuk 5 putaran.

Meskipun probabilitas karakteristik kedua ini sangat dekat dengan batas 2 -20Itu tidak berulang dan memiliki sedikit nilai praktis. Sebagai gantinya, kami secara eksperimental mengkonfirmasi kemungkinan diferensial iteratif dua putaran. Dalam percobaan dengan lebih dari 100 sub-kunci independen menggunakan 223 pasangan plaintext yang dipilih, probabilitas yang diamati diprediksi. Ini tampaknya menunjukkan bahwa untuk karakteristik khusus ini tidak ada perbedaan signifikan secara bersamaan. Namun, menentukan sejauh mana efek diferensial adalah tugas yang kompleks dan memakan waktu, meskipun analisis awal kami sangat menggembirakan.

Kriptanalisis Linier


Kasus kriptanalisis PRESENT linier dipertimbangkan dalam teorema berikut, di mana kami menganalisis perkiraan linier terbaik ke empat putaran PRESENT.

Teorema 2. Biarkan E 4R menjadi perpindahan linear maksimum dari pendekatan empat putaran menggunakan PRESENT. Kemudian E 4R2-7 .
Bukti teorema tersebut terkandung dalam Lampiran 4 artikel asli. Kemudian untuk 28 putaran perpindahan maksimum adalah
2 6 × E 4R 7 = 2 6 × (2 -7 ) 7 = 2 -43

Oleh karena itu, dengan asumsi bahwa seorang cryptanalyst hanya membutuhkan sekitar 28 dari 31 putaran PRESENT untuk memulai serangan pemulihan kunci, sebuah cryptanalysis linier dari sebuah cipher akan membutuhkan sekitar 2 84 plaintext / ciphertext yang dikenal. Persyaratan data tersebut melebihi teks yang tersedia.

Beberapa serangan diferensial / linier tingkat lanjut


Struktur PRESENT memungkinkan kita untuk mempertimbangkan beberapa bentuk serangan yang berbeda. Namun, tidak satupun dari mereka menyebabkan serangan yang membutuhkan lebih sedikit teks daripada batas bawah persyaratan teks untuk kriptanalisis linier. Di antara serangan dibedakan, kami menganggap satu yang menggunakan perbedaan palindrom, karena perbedaan simetris bertahan dengan kemungkinan satu (selalu) di atas lapisan difusi, dan beberapa versi lanjutan dari serangan diferensial-linear. Meskipun serangan itu tampaknya menjanjikan untuk beberapa putaran, mereka dengan cepat kehilangan nilai praktisnya dan tidak mungkin berguna dalam kriptanalisis PRESENT. Kami juga menemukan bahwa kriptanalisis diferensial terpotong cenderung memiliki nilai terbatas, meskipun dua putaran berikutnya.

Ekspansi terpotong dilakukan dengan probabilitas satu.

Bahkan ketika digunakan untuk mengurangi panjang karakteristik diferensial yang sudah diidentifikasi, persyaratan data tetap berlebihan. Ekspansi peringkat dilakukan dengan probabilitas satu.

5.2. Serangan struktural


Serangan struktural, seperti cryptanalysis terintegrasi dan analisis bottleneck, sangat cocok untuk menganalisis cipher seperti AES. Cipher semacam itu memiliki struktur seperti kata yang kuat, di mana kata-katanya biasanya byte, tetapi konstruksi representasi hampir sepenuhnya bitwise, dan meskipun operasi permutasi agak teratur, pengembangan dan distribusi struktur kata terganggu oleh operasi bitwise yang digunakan dalam cipher.

5.3. Serangan aljabar


Serangan aljabar digunakan untuk keberhasilan jika diterapkan untuk streaming sandi, daripada untuk memblokir. Namun, struktur PRESENT yang sederhana berarti bahwa mereka layak mendapatkan pelajaran yang serius. Blok S PRESENT dijelaskan oleh 21 persamaan kuadrat untuk delapan variabel bit input / output di atas field G (2). Ini tidak mengherankan, karena diketahui bahwa empat-bit S-block dapat dijelaskan oleh setidaknya 21 persamaan tersebut. Kemudian seluruh sandi dapat dijelaskan dengan persamaan kuadrat e = n × 21 dalam variabel v = n × 8, di mana n adalah jumlah S-blok dalam enkripsi dan algoritma transformasi kunci.

Untuk PRESENT, kita memiliki n = (31 × 16) + 31 sehingga seluruh sistem terdiri dari 11.067 persamaan kuadrat dalam 4.216 variabel. Masalah umum penyelesaian sistem persamaan kuadrat multidimensi adalah NP-hard. Namun, sistem yang diperoleh untuk cipher blok sangat jarang, karena mereka terdiri dari n sistem kecil yang dihubungkan oleh lapisan linear sederhana. Namun, tidak jelas apakah fakta ini dapat digunakan dalam apa yang disebut serangan aljabar. Beberapa metode khusus telah diusulkan, seperti XL dan XSL, meskipun kekurangan telah ditemukan di kedua metode. Alih-alih, satu-satunya hasil praktis pada kriptanalisis aljabar cipher blok diperoleh dengan menerapkan algoritma Buchberger dan F4 .sebagai bagian dari Magma. Pemodelan pada versi skala kecil AES menunjukkan bahwa untuk semua kecuali jaringan SP terkecil , kesulitan dengan cepat muncul dalam kompleksitas waktu dan memori. Hal yang sama berlaku untuk PRESENT.

Konfirmasi praktis.Kami melakukan simulasi pada versi skala kecil menggunakan algoritma F4 di Magma. Ketika ada satu blok-S, yaitu blok yang sangat kecil dengan ukuran empat bit, maka Magma dapat menyelesaikan sistem persamaan yang dihasilkan dalam banyak putaran. Namun, dengan meningkatnya ukuran blok dan blok-S, bersama dengan varian yang sesuai dari lapisan difusi linier, sistem persamaan segera menjadi terlalu besar. Bahkan ketika mempertimbangkan sistem yang terdiri dari tujuh S-blok, yaitu, memiliki ukuran blok 28 bit, kami tidak dapat dalam waktu yang wajar untuk mendapatkan solusi untuk versi cipher pendek yang melewati dua putaran. Analisis kami menunjukkan bahwa serangan aljabar tidak mungkin menimbulkan ancaman bagi PRESENT.

5.4. Serangan konversi utama


Karena tidak ada pedoman yang ditetapkan untuk pengembangan transformasi kunci, ada berbagai macam proyek dan berbagai serangan berdasarkan karakteristik proyek. Serangan paling efektif berada di bawah judul umum serangan pada kunci terkait dan serangan geser , dan keduanya didasarkan pada pembangunan hubungan yang dapat diidentifikasi antara set sub-kunci yang berbeda. Untuk mengatasi ancaman ini, kami menggunakan penghitung putaran-tergantung, sehingga set sub-kunci tidak dapat dengan mudah "digeser", dan kami menggunakan operasi non-linear untuk mencampur konten register kunci K. Secara khusus:

  • semua bit dalam register kunci adalah fungsi non-linear dari kunci 80-bit yang disediakan oleh pengguna untuk putaran 21,
  • bahwa setiap bit dalam register kunci setelah putaran 21 bergantung pada setidaknya empat bit kunci yang disediakan pengguna, dan
  • pada saat kita mendapatkan K 32 , enam bit adalah ekspresi derajat dua dari 80 bit kunci yang disediakan pengguna, 24 bit adalah derajat tiga, sedangkan bit yang tersisa adalah fungsi derajat enam atau derajat sembilan bit kunci yang disediakan pengguna.

Kami percaya bahwa properti ini cukup untuk menahan serangan kunci berdasarkan konversi kunci.

6. Produktivitas "besi"


Kami menerapkan PRESENT-80 dalam VHDL dan mengadaptasinya untuk Virtual Silicon Cell Library (VST) standar berdasarkan pada UMC L180 0,18 μ 1P6M Logic. Kami menggunakan Mentor Graphics Modelsim SE PLUS 5.8 c untuk simulasi dan Synopsys Design Compilerversion Y-2006.06 untuk sintesis dan pemodelan konsumsi daya. Nilai tipikal untuk pengecoran digunakan (1,8 Volt untuk tegangan inti dan 25 ° C untuk suhu), dan model pemuatan kawat yang diusulkan digunakan untuk memodelkan daya. Harap dicatat bahwa simulasi semacam itu ditujukan untuk struktur sekitar 10.000 GE, sehingga hasil daya akan menjadi pesimistis untuk struktur yang jauh lebih kecil. Pada gambar



Jalur data yang diperlihatkan adalah PRESENT-80 yang dioptimalkan ruang tanpa kemungkinan dekripsi (khusus enkripsi), yang melakukan satu putaran per siklus, yaitu jalur data memiliki lebar 64-bit. Harap dicatat bahwa pada tahap desain PRESENT, kami menggunakan S-blok yang sama 16 kali alih-alih memiliki 16 S-blok yang berbeda, dan ini memfasilitasi serialisasi lebih lanjut dari proyek, yaitu dengan saluran data 4-bit. Implementasi kami membutuhkan siklus 32 jam untuk mengenkripsi plaintext 64-bit dengan kunci 80-bit, membutuhkan 1570 GE dan memiliki konsumsi daya 5 mW dalam modulasi.



Persyaratan spasial SAAT INI

Sebagian besar area ditempati oleh pemicu untuk menyimpan status kunci dan data, diikuti oleh S-layer dan departemen penguncian XOR. Permutasi bit permutasi sederhana akan meningkatkan area hanya ketika implementasi mencapai tahap tempat & rute. Perhatikan bahwa tujuan utama implementasi kami adalah sejumlah kecil perangkat keras, namun, kami juga mensintesis proses yang dioptimalkan untuk daya. Untuk tambahan 53 GE, kami mencapai konsumsi energi hanya 3,3 μW, dan 128 saat ini akan menempati area perkiraan 1886 GE. Selain ukurannya yang sangat kecil, PRESENT memiliki throughput yang cukup tinggi, memberikan energi yang baik per bit. Perbandingan dengan cipher lainnya diberikan dalam tabel:



7. Kesimpulan


Pada artikel ini, kami menggambarkan cipher blok PRESENT yang baru. Tujuan kami adalah cipher ultralight, yang memberikan tingkat keamanan yang sepadan dengan ukuran blok 64-bit dan kunci 80-bit. Sebagai hasilnya, PRESENT memiliki persyaratan implementasi yang serupa dengan banyak cipher stream kompak. Karena itu, kami percaya bahwa ini adalah kepentingan teoretis dan praktis. Seperti semua proposal baru, kami tidak mendorong penyebaran segera PRESENT, tetapi mendesak analisisnya.

Pengakuan


Pekerjaan yang disajikan dalam dokumen ini sebagian didukung oleh Komisi Eropa melalui STREP UbiSec & Sens dari EU Framework Program 6 untuk Penelitian dan Pengembangan (www.ist-ubisecsens.org). Pendapat dan kesimpulan yang terkandung dalam dokumen ini adalah dari penulis dan tidak boleh diartikan sebagai kebijakan resmi atau dukungan yang diungkapkan atau didukung oleh proyek UbiSec & Sens atau Komisi Eropa.

Source: https://habr.com/ru/post/undefined/


All Articles