Amankan MAC saat musuh memiliki oracle verifikasi

8

Sebuah kode otentikasi pesan (MAC) didefinisikan oleh tiga algoritma yang efisien , yang memenuhi berikut (definisi diambil dari bagian 4.3 dari Katz -Lindell book ):(Gen,MAC,Verif)

  • Pada input , algoritma menghasilkan kunci .1nGenkn
  • Pada input dihasilkan oleh , dan beberapa pesan , algoritma menghasilkan tag . Kami menulis .kGenm{0,1}MACttMACk(m)
  • Pada input tiga , algoritma menghasilkan bit tunggal . Kami menulis b V e r i f k ( m , t ) .(k,m,t)VerifbbVerifk(m,t)

Diperlukan bahwa untuk semua k keluaran oleh Gen dan semua m{0,1} , kami memiliki Verifk(m,MACk(m))=1 .

Persyaratan keamanan didefinisikan melalui percobaan berikut, antara penantang dan musuh A :

  1. kGen(1n) .
  2. (m,t)AMACk()(1n) .
  3. Biarkan Q menunjukkan himpunan semua pertanyaan yang diminta A ke oracle-nya.
  4. Output percobaan didefinisikan menjadi 1 jika dan hanya jika:
    • Verifk(m,t)=1, dan
    • mQ .

MAC dianggap aman jika probabilitas bahwa hasil percobaan 1 diabaikan dalam n .


Eksperimen di atas menyerupai eksperimen "plaintext terpilih" terhadap skema enkripsi simetris, di mana musuh dapat memperoleh ciphertext yang sesuai dengan pesan pilihannya. Dalam serangan yang lebih kuat, yang disebut serangan "ciphertext yang dipilih", musuh juga diizinkan mengakses oracle dekripsi.

Jadi, pertanyaan saya adalah:

Apa yang terjadi jika kita mengizinkan musuh MAC juga mengakses oracle verifikasi? Dengan kata lain, bagaimana jika jalur 2 percobaan diganti dengan yang berikut:

.(m,t)AMACk(),  Verifk(,)(1n)

Perhatikan bahwa dalam percobaan baru, hanya mencakup kueri A yang diminta dari oracle M A C k .QAMACk

MS Dousti
sumber
1
Untuk referensi di masa mendatang: Lihat Kekuatan Kueri Verifikasi dalam Otentikasi Pesan dan Enkripsi terotentikasi untuk diskusi lebih lanjut.
MS Dousti

Jawaban:

6

Jika ada kode otentikasi pesan aman sesuai dengan salah satu definisi,
maka ada sistem yang definisi buku mengklasifikasikan sebagai
kode otentikasi pesan aman dan definisi Anda diklasifikasikan sebagai tidak aman.

Membiarkan Gen,MAC,Verif amankan menurut definisi mana pun. Karena definisi buku
lebih lemah dari definisi Anda, maka definisi tersebut secara khusus aman menurut definisi buku.
Memperbaiki beberapa efisien-komputasi dan efisien-invertable coding dari
pasangan memerintahkan, misalnya, concatenating efisien-komputasi dan
efisien-dibalik representasi prefix bebas dari masuknya kiri ke entri yang tepat.
Biarkan Bekerja dengan memasangkan output MAC k dengan string kosong. Biarkan Verif kMACkMACk
Terima jika dan hanya jika [[ Verif k akan menerima pesan dan entri kiri tag] dan [entri kanan input adalah awalan k ]].VerifkVerifk
k Gen,MAC,Verif jelas efisien dan memenuhi persyaratan. Karena [memasangkan tag dengan string kosong untuk]
dan [mengambil entri kiri dari output], musuh yang layak menyerang
definisi buku tentang keamananGen,MAC,Veriftidak dapat memiliki probabilitas yang tidak dapat diabaikan
untuk melanggar definisi keamanan buku iniGen,MAC,Verif,
definisi buku juga mengklasifikasikanGen,MAC,Verifsebagai kode otentikasi pesan aman.
Namun, setelah musuh mendapatkan setiap valid pasangan pesan-tag untuk ,k2(length(k)+1)
pertanyaan adaptif ke Cukup untuk belajar kVerifkk, yang akan memungkinkan pemalsuan pada pesan apa pun.
Jadi definisi Anda mengklasifikasikanGen,MAC,Verif tidak aman. QED



Versi unforgeability yang kuat dari kedua definisi itu setara.


(Versi "strong unforgeability" diperoleh dengan mengganti dengan set Q + yang diberikan dalam kalimat saya berikutnya, dan yang diperlukan untuk membuat konstruksi enkripsi-lalu-mac memberikan integritas ciphertext dan menjadi IND-CCA2.)Q
Q+

Inisialisasi Q+ sebagai set kosong, dan taruh m,t ke setiap kali MAC k mengeluarkan t pada kueri m . Tentukan query untukmencobajika dan hanya jika mengirimkan keQ+
MACktm

Verifk sepasang yang sudah dimasukkan Q+.
Tetapkan permintaan untuk mencoba lebih awal jika dan hanya jika ia mencoba dan
tidak datang setelah permintaan mencoba ituVerifkditerima.


BMACk()(1n,q,j)berinteraksi dengan sebagai berikut:A

Menggunakan kurang dari bit acak, pilihjr{1,2,3,...,q2,q1,q}hampir seragam.
"Forward" semua 'sAMACk() pertanyaan ke MACk()dan berikan
output oracle itu (aktual) ke , beri 0 sebagai output pada pertama hingga rA0 mencoba kueri, dan memberikan 1 sebagai output darir1
1Verifkpada pertanyaan untuk itu yang tidak mencoba.
JikaAMACk(),Verifk(,)(1n)membuat -th queri mencoba, lalu menampilkan apa itu queri. Jikar
AMACk(),Verifk(,)(1n)memberikan output, lalu memberikan output yang sama.


Dengan keacakan semuanya diperbaiki, jikaAMACk(),Verifk(,)(1n) membuat persis r1kueri yang mencoba lebih awal dan berhasil dalam versi eksperimen yang tidak dapat dikalahkan yang kuat, lalu
BA,MACk()(1n,q,j) berhasil dalam percobaan buku versi unforgeability kuat.

Oleh karena itu adalah pengurangan garis lurus yang konstruktif dari keberhasilan dalam versi ketakberantaraan yang kuat dari percobaan Anda dengan probabilitas setidaknya ϵ dengan cara yang membuat kurang dari q kueri yang mencoba lebih awal, untuk berhasil dalam versi yang tidak dapat dikalahkan yang kuat dari eksperimen buku dengan probabilitas lebih besar dariBϵ
q
(1qq2^j)ϵ.
menggunakan kurang dariBj
q
MACk
MACkini menanggapi permintaan itu], dan hanya memiliki kompleksitas tambahan sepele di luar itu.

Verifk






Komunitas
sumber