Apakah menyalurkan aliran acak MT19937 ke SHA512 membuat status MT tidak dapat dipulihkan dalam praktik?

Dec 05 2020

Sudah diketahui umum bahwa keadaan twister Mersenne cukup mudah dipulihkan setelah Anda mengamati sampel yang cukup. Tapi apa yang terjadi jika kita menyalurkan blok keluar dari MT ke SHA512 dan memberikan ini sebagai output.

Karena tidak ada bukti matematis bahwa SHA512 tidak dapat dibalik, mungkin tidak akan ada cara untuk membuktikan bahwa pemulihan status MT dalam skenario ini tidak mungkin.

  1. Apakah ada cara praktis yang nyata untuk mendapatkan status MT dalam pengaturan ini dan karenanya dapat memprediksi blok berikutnya?
  2. Atau mungkin prediksi entah bagaimana mungkin tanpa pemulihan negara?
  3. Saya telah membaca bahwa ada desain CSPRNG yang menggunakan generator MT secara internal. Apakah mereka bekerja seperti ini, cukup ambil aliran MT dan obfuscasikannya dengan cara tertentu atau apakah mereka sama sekali berbeda?

Terima kasih!

Jawaban

4 MaartenBodewes Dec 05 2020 at 20:09

Masalah utamanya adalah ukuran benih MT. MT memiliki status yang cukup besar, tetapi seed umumnya hanya berupa word 32 bit$w$. Lihat di sini untuk informasi lebih lanjut.

SHA pada output tidak akan melindungi Anda dari serangan brute force terhadap benih; seorang penyerang dapat mencoba dan membuat aliran dan melakukan perhitungan SHA dan membandingkan.

Jadi Anda perlu entah bagaimana memperluas ukuran benih dan menginisialisasi status. Kondisinya cukup besar dan MT memiliki periode yang besar, sehingga pipa ledeng sudah ada. Jika Anda kemudian dapat hanya menyebutnya MT adalah pertanyaan berikutnya yang jelas.


  1. Apakah ada cara praktis yang nyata untuk mendapatkan status MT dalam pengaturan ini dan karenanya dapat memprediksi blok berikutnya?

Ya, sebagai keadaan awal berasal dari biji yang umumnya kecil.

  1. Atau mungkin prediksi entah bagaimana mungkin tanpa pemulihan negara?

Saya tidak melihat itu terjadi, tetapi jika Anda dapat memulihkan keadaan awal, Anda tidak perlu pergi ke sana.

  1. Saya telah membaca bahwa ada desain CSPRNG yang menggunakan generator MT secara internal. Apakah mereka bekerja seperti ini, cukup ambil aliran MT dan obfuscasikannya dengan cara tertentu atau apakah mereka sama sekali berbeda?

Saya belum pernah mendengar tentang mereka, tetapi jika mereka tidak mengizinkan benih yang besar sebagai masukan, maka mereka dalam masalah.


Pertanyaan terakhir adalah apakah Anda memperoleh sesuatu setelah Anda selesai. Ada banyak DRBG yang didasarkan pada fungsi hash, dan menambahkan PRNG yang cepat di backend mungkin tidak masuk akal. Negara yang besar juga tidak akan cocok dengan banyak kriptografer dan pengembang perangkat lunak / perangkat keras yang aman.