Kecepatan hash

Hash berkecepatan tinggi berdasarkan algoritma kriptografi baru


Sayangnya, matematikawan kurang berpengalaman dalam seluk-beluk pemrograman, mereka menciptakan sesuatu, dan kemudian programmer harus mengimplementasikan ini dalam kode program. Jauh dari selalu memungkinkan untuk mengimplementasikan algoritma mereka secara efektif.

Hal ini terutama terbukti dalam kriptografi simetris Rusia terbaru, Striborg dan Grasshopper ... Tidak mungkin untuk mengimplementasikan algoritma ini secara efektif dalam kode program x86 / 64, diperlukan prosesor kripto khusus.

Kami melakukan yang sebaliknya dan melihat apa yang terjadi.

Seorang programmer yang tahu bagaimana prosesor x86 / 64 modern bekerja akan mengembangkan algoritma enkripsi simetris yang paling efisien, dan membiarkan matematikawan, seperti di masa lalu yang baik, melakukan pekerjaan utama mereka - cryptanalysis dari solusi yang dihasilkan.

Mengingat bahwa "Yang terbaik adalah musuh yang baik", kami mengambil yang "baik" sebagai dasarnya - GOST 28147-89. Kemudian, sesuai dengan prinsip medis "Jangan membahayakan", kami akan mengusahakannya menggunakan metode komputasi multithreaded.

Berikut ini telah dilakukan:

  • Ukuran kunci bertambah menjadi 256 byte.
  • Ukuran blok data yang ditingkatkan menjadi 256 byte.
  • Operasi substitusi digantikan oleh operasi permutasi.
  • Dalam pergeseran siklik, operasi kelompok bit pembalik diimplementasikan.
  • Entri kunci dibuat dalam bentuk permutasi bit.
  • Jaringan Feistel dimodifikasi menjadi jaringan cincin delapan segmen.
  • Mode gamming dengan umpan balik digunakan, dalam dua melewati data terenkripsi.
  • Bagian dibuat dengan permutasi yang berbeda dan dering menggesernya dengan tombol yang sama.
  • Sebelum enkripsi, redundansi dihapus dari teks terenkripsi menggunakan kompresor.

Implementasi tes


Algoritme diimplementasikan, dan hal pertama yang diuji adalah parameter statistiknya ketika membuat urutan pseudo-acak (kompresor dimatikan), berikut tampilannya:

gambar

Ini adalah hasil tes NIST khas dari konversi kripto baru. Hasil pengujian pada sembarang kunci acak dan populasi awal selalu cocok dengan parameter statistik dari urutan acak.

Parameter statistik yang diperoleh dalam percobaan tentang norma-norma cipher blok 8-byte untuk cipher blok dengan ukuran blok 256 byte adalah fantastis.

Itu sama dengan, misalnya, melempar koin 12 kali dan mendapatkan setetes "elang" dan "kacang", untuk mengharuskan mati, juga dilemparkan 12 kali, pastikan jatuh di setiap wajah dua kali ...

Secara teori ini hanya mungkin dengan entropi diferensial yang sangat tinggi antara blok yang berdekatan dan mencirikan tingkat kerumitan cipher blok.

Parameter gamma ini diperoleh dalam satu putaran konversi. Algoritma memiliki kekhasan - kecepatan gamming tergantung pada kinerja RAM dan cache, dan bukan pada kecepatan prosesor.

Roulette Rusia, 2018 dan penerapannya


Baru-baru ini, algoritma kriptografi telah mulai menerima nama nyaring, seperti "Magma", "Belalang", "Stribog", kami akan melanjutkan tradisi ini.

Kami akan menyebut cipher blok ini "Russian Roulette" atau RU2 singkatnya, untuk menghormati generator Rusia murni pertama dari urutan biner acak, - sebuah drum berputar revolver ...

Nah, di samping itu, konversi kripto didasarkan pada rotasi (pergeseran cincin) dari urutan biner. Hanya ada 192 perubahan eksplisit dalam putaran seperti itu.
Jadi analogi langsung dengan drum revolver sudah jelas.

Sebelumnya, ketika menerapkan metode implementasi paralel GOST 28147-89 pada register XMM / YMM, saya harus menjelaskannya sepenuhnya, karena telah lulus sertifikasi FSB resmi.
Sekarang situasinya berbeda, tidak ada pejabat yang diasumsikan. Oleh karena itu, tidak akan ada deskripsi terperinci tentang algoritma "Roulette Rusia", ini adalah semacam perlindungan hak cipta. Singkatnya, algoritma "Russian Roulette" akan menjadi hak milik sejauh ini dan karenanya penunjukan penuhnya akan menjadi Russian Roulette, 2018 atau RU2 untuk pendek.

Algoritme enkripsi yang ditutup dari penelitian adalah omong kosong, tentu saja, karena tidak ada kepercayaan pada kekuatan enkripsi.

Tapi tidak ada yang mencegah menggunakan algoritma RU2 untuk mengubah teks terenkripsi menjadi urutan yang memenuhi persyaratan pseudo- randomness .

Kemudian, urutan pseudo-acak yang dihasilkan dapat dienkripsi dengan algoritma yang terkenal dan "dapat diandalkan", pada kenyataannya, semua sistem kriptografi yang serius dibangun.
Sementara itu, Roulette Rusia digunakan untuk hashing berkecepatan tinggi dengan ukuran arbitrer dari hasil fungsi hash. Ini penting dalam tugas cadangan dan integritas.
Umpan balik gamma standar berubah menjadi fungsi Hash jika Anda melakukan operan kedua pada data terenkripsi. Begitulah algoritma RU2 awalnya diimplementasikan.
Umpan balik double gamma belum pernah dianggap sebagai varian dari implementasi fungsi hash, tampaknya karena kecepatan operasi yang rendah, meskipun memiliki parameter konvolusi yang lebih andal. Ini berlaku terutama untuk efek longsoran salju, ia bertindak tidak hanya pada putaran konvolusi berikutnya, tetapi juga pada yang sebelumnya.

Selain itu, karakteristik fungsi hash yang diperoleh diperiksa dengan andal oleh uji statistik, karena semua ciphertext yang diterima, yang merupakan gamma pseudorandom yang andal, menjadi hash.

Dari gamut ini, potongan acak dapat dipotong untuk menyimpan nilai fungsi hash. Sekarang blok 1024-byte digunakan, itu jauh lebih dapat diandalkan daripada blok 64-byte dalam standar SHA3-512 yang paling "canggih".

Hashing RU2 melindungi data dari tampilan / modifikasi, tetapi sampai cryptographers yakin tentang kekokohan algoritma, kami akan mempertimbangkannya kata sandi perlindungan data untuk membatasi akses.

Implementasi praktis dari RU2


Algoritme Roulette Rusia dibangun ke dalam duplikator forensik dari drive HDD dan SDD. Algoritma digunakan di sana untuk membuat cadangan diferensial, kontrol integritas, pembatasan akses berbasis kata sandi, dan kompresi informasi.

Kompresor untuk menghilangkan redundansi telah dijelaskan sebelumnya dalam artikel “ Algoritma Kompresi Data Berkecepatan Tinggi Baru” , hashing digunakan untuk mengonfirmasi integritas data yang disalin, dan dalam hal memasukkan kata sandi, juga untuk “perlindungan kata sandi” dump yang diterima dari tampilan / modifikasi.

Berikut adalah karakteristik kecepatan dari RU2 yang diperoleh dalam pekerjaan nyata untuk membuat cadangan diferensial:

gambar

Kecepatan salin dibatasi oleh parameter pembaca, drive SSD yang terhubung melalui jembatan USB 3.0-SATA tidak dapat memberikan kecepatan baca yang tinggi.

Pada kecepatan aliran input 360 megabyte / detik. Algoritma RU2 memuat prosesor hanya 5% dengan frekuensi operasi berkurang 1,4 Gigahertz. Ini memberikan kompresi informasi, hashing dan enkripsi (perlindungan kata sandi) dari dump.

Sistem hashing tradisional tidak dapat memberikan kinerja seperti itu. Untuk perbandingan, inilah cara sistem hash yang terintegrasi dengan Acronis bekerja saat membuat cadangan diferensial dari drive yang sama:

gambar

Prosesor hash aliran data input pada kecepatan 340 MegaBytes / detik., Dan pada saat yang sama beroperasi pada frekuensi 3,8 GigaHertz dan dimuat pada 28%.

Jika kami menghitung ulang hasil yang diperoleh dalam parameter batas untuk prosesor dual-core yang beroperasi pada frekuensi 3,8 GigaHertz, maka sistem hash Acronis dapat memberikan throughput sebesar 1,4 GigaBytes / detik.

Jauh lebih penuh dengan tugas (hashing + kompresi + perlindungan kata sandi), algoritma Roulette Rusia memberikan kecepatan 21 Gigabytes / detik.

Dengan kata lain, hashing RU2 bekerja lebih cepat daripada hashing standar yang diterapkan di Acronis.

Selain itu, Russian Roulette memberikan tingkat pembuatan nomor pseudorandom 12 Gigabytes per detik. Ini adalah generator urutan pseudo-acak tercepat yang diketahui yang memenuhi persyaratan tes NIST resmi.

Pembuatan angka acak, hashing, proteksi kata sandi, sementara ini sudah cukup untuk Roulette Rusia.

"... Tapi bagaimana dengan kriptografi?, - dan kemudian kriptografi ...."

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


All Articles