it-swarm-id.com

Apa perbedaan antara MAC vs hash

Apa perbedaan antara kedua algoritma?
Satu perbedaan yang saya tahu, adalah bahwa MAC dikunci dan hash tidak.

32
user1157

Untuk membuatnya sederhana: biasanya MAC adalah nilai Hash yang dienkripsi dengan kunci rahasia. Sebagai contoh, penyerang dapat memalsukan pesan dan menghitung hash baru, tetapi ia tidak dapat melakukannya jika sistem membutuhkan hash untuk dienkripsi dengan kunci rahasia.

7
Aleksandr Reznik

A fungsi hash kriptografis adalah fungsi hash yang sepenuhnya publik, deterministik yang setiap orang dapat menghitung atas input yang berubah-ubah. Dibutuhkan sebagai input urutan bit (setiap urutan bit; beberapa fungsi hash secara resmi terbatas pada input, katakanlah, kurang 264 bit, alias "2 jutaan terabyte") dan menampilkan nilai dalam ruang yang agak kecil, biasanya urutan bit dengan ukuran tetap (mis. selalu 160 bit dengan fungsi hash standar SHA-1 ). Fungsi hash kriptografi yang baik menghormati beberapa kondisi yang bermuara pada, secara informal, sehingga mencampur data input dengan sangat teliti sehingga kami tidak dapat mengetahuinya setelah itu.

A kode otentikasi pesan adalah algoritma yang mengambil sebagai input pesan dan kunci rahasia dan menghasilkan output berukuran tetap yang nanti bisa diverifikasi untuk mencocokkan pesan; verifikasi juga memerlukan kunci rahasia yang sama. Berlawanan dengan fungsi hash di mana semuanya diketahui dan penyerang bertempur melawan matematika, MAC masuk akal dalam model di mana ada entitas dengan pengetahuan rahasia. Apa yang kami harapkan dari MAC yang baik adalah ketidakmampuan: itu tidak layak untuk menghitung pesan pasangan + nilai MAC yang berhasil memverifikasi dengan kunci yang diberikan [~ # ~] k [~ # ~] tanpa mengetahui [~ # ~] k [~ # ~] persis dan secara keseluruhan.

Fungsi hash dan MAC adalah jenis algoritma yang berbeda dengan properti yang berbeda dan digunakan dalam situasi yang sangat berbeda.

Beberapa Algoritma MAC (tapi tentu saja tidak semuanya) dapat dianggap sebagai "fungsi hash dengan kunci" tetapi ini adalah pandangan yang membatasi. HMAC adalah konstruksi MAC yang terkenal, yang dibangun di atas fungsi hash yang mendasarinya dengan cara yang cerdas. Memang, sifat dan model keamanan untuk fungsi hash dan MAC cukup berbeda satu sama lain sehingga menampar fungsi hash dan kunci bersama tidak selalu menghasilkan MAC yang aman, bahkan jika fungsi hash adalah aman (lihat serangan ekstensi panjang yang menggambarkan titik itu).

Sampai batas tertentu, kita dapat menyatakan bahwa algoritma MAC yang dapat beroperasi dengan aman tanpa IV harus memperlihatkan beberapa sifat seperti hash (itulah alasan saya menyukai HMAC: tanpa IV, jauh lebih sulit untuk membuatnya salah ketika mengimplementasikannya). Namun, Iblis ada dalam rinciannya.

34
Thomas Pornin

Mereka adalah dua primitif yang sama sekali berbeda. MAC digunakan untuk otentikasi pesan, dan merupakan primitif dengan kunci simetris. Fungsi hash dapat digunakan untuk banyak tujuan, dan tidak memiliki input kunci khusus. MAC adalah akronim dari "kode otentikasi pesan".

Jangan bingung dengan kenyataan bahwa beberapa algoritma MAC (mis., SHA1-HMAC) berfungsi dengan menggunakan fungsi hash sebagai subrutin. Mereka adalah binatang yang sangat berbeda.

  • Beberapa contoh algoritma MAC: CMAC, SHA1-HMAC, MD5-HMAC, UMAC, Poly1305-AES.
  • Beberapa contoh fungsi hash kriptografis: SHA256, SHA1, MD5.
13
D.W.

Menemukan jawaban ini langsung dari forum lain.

Jenis-jenis primitif kriptografi ini dapat dibedakan berdasarkan tujuan keamanan yang mereka penuhi (dalam protokol sederhana "menambahkan pesan"):

Integritas: Bisakah penerima yakin bahwa pesan belum dimodifikasi secara tidak sengaja?

Otentikasi: Bisakah penerima yakin bahwa pesan tersebut berasal dari pengirim?

Non-repudiation: Jika penerima menyampaikan pesan dan bukti kepada pihak ketiga, dapatkah pihak ketiga yakin bahwa pesan tersebut berasal dari pengirim? (Harap dicatat bahwa saya berbicara tentang non-repudiation dalam arti kriptografis, bukan dalam pengertian hukum.) Juga penting adalah pertanyaan ini:

Kunci: Apakah primitif memerlukan kunci rahasia bersama, atau keypairs publik-swasta? Saya pikir jawaban singkatnya paling baik dijelaskan dengan tabel:

Cryptographic primitive | Hash |    MAC    | Digital
Security Goal           |      |           | signature
------------------------+------+-----------+-------------
Integrity               |  Yes |    Yes    |   Yes
Authentication          |  No  |    Yes    |   Yes
Non-repudiation         |  No  |    No     |   Yes
------------------------+------+-----------+-------------
Kind of keys            | none | symmetric | asymmetric
                        |      |    keys   |    keys

Harap ingat bahwa otentikasi tanpa kepercayaan pada kunci yang digunakan tidak berguna. Untuk tanda tangan digital, penerima harus yakin bahwa kunci verifikasi sebenarnya milik pengirim. Untuk MAC, penerima harus yakin bahwa kunci simetris bersama hanya dibagikan dengan pengirim.

Klik di sini untuk info lebih lanjut

2
kayle