Cryptology Academy · Pelajaran

GCM & Penyulitan Disahkan

Tambahkan tag pengesahan pada penyulitan untuk mencegah pengubahan.

Pelajaran 4 daripada 413 langkah

GCM & Penyulitan Disahkan ialah pelajaran Cryptology Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cryptology Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cryptology Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

AES-GCM ialah piawaian emas untuk penyulitan disahkan. Ia menyediakan kerahsiaan DAN integriti dalam satu operasi, lalu mencegah pengusikan tanpa langkah HMAC yang berasingan.

Masalah Penyulitan Sahaja

Penyulitan menyediakan kerahsiaan tetapi BUKAN integriti. Penyerang yang memintas teks sifir AES-CBC boleh membalikkan bit dan mengubah teks biasa yang dinyahsulit tanpa mengetahui kunci.

AEAD: Penyulitan Disahkan dengan Data Berkaitan

Skema AEAD menghasilkan: teks sifir + teg pengesahan. Teg tersebut mengesahkan teks sifir DAN data berkaitan tidak disulitkan yang bersifat pilihan (AAD). Sebarang pengubahsuaian akan menjadikan teg tidak sah.

Seni Bina GCM

AES-GCM menggunakan: 1. AES-CTR untuk penyulitan 2. GHASH untuk pengesahan GHASH mengira MAC polinomial ke atas teks sifir + AAD menggunakan pendaraban dalam GF(2^128).

Gambaran Keseluruhan GHASH

GHASH(H, A, C) = cincangan AAD + teks sifir menggunakan subkunci H = AES(K, 0^128). Polinomial itu dinilai pada H dalam GF(2^128). Hasilnya dilakukan XOR dengan pembilang yang disulitkan untuk membentuk teg.

Masukan dan Keluaran AES-GCM

Masukan: kunci 128/192/256 bit, nilai sekali guna 96 bit, teks biasa, AAD pilihan Keluaran: teks sifir (panjang yang sama dengan teks biasa), teg pengesahan 128 bit Teg biasanya berukuran 16 bait. Pemendekan kepada kurang daripada 12 bait tidak disyorkan.

Keperluan Nilai Sekali Guna dalam GCM

GCM memerlukan nilai sekali guna yang unik bagi setiap penyulitan dengan kunci yang sama. Nilai sekali guna rawak 96 bit ialah piawaian. Selepas 2^32 mesej, kebarangkalian perlanggaran melebihi 1%. Pada ketika itu, tukar kunci.

Malapetaka Penggunaan Semula Nilai Sekali Guna GCM

Penggunaan semula (kunci, nilai sekali guna) dalam GCM: penyerang boleh mendapatkan semula subkunci GHASH H dan memalsukan mana-mana teks sifir dengan teg yang sah. Keadaan ini mematahkan sepenuhnya kerahsiaan dan integriti.

Kes Penggunaan Data Berkaitan (AAD)

AAD ialah metadata yang ingin anda sahkan tetapi tidak mahu sulitkan: - Pengepala HTTP: disahkan untuk mencegah serangan penghalaan respons - ID rekod pangkalan data: memastikan teks sifir dinyahsulit dalam baris yang betul - Versi protokol: mencegah serangan penurunan taraf

Contoh Penuh AES-GCM dalam Python

from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(256) nonce = os.urandom(12) aad = b'user_id=12345' aesgcm = AESGCM(key) ct = aesgcm.encrypt(nonce, b'secret', aad) pt = aesgcm.decrypt(nonce, ct, aad) # raises if tampered

Alternatif: ChaCha20-Poly1305

ChaCha20-Poly1305 ialah satu lagi skema AEAD utama. Ia digunakan dalam TLS 1.3 untuk peranti tanpa AES-NI (ARM/telefon mudah alih). Ia menyediakan keselamatan yang serupa dengan AES-GCM tetapi lebih pantas pada perisian tanpa pecutan perkakasan.

Semakan Pantas

Apakah yang dilindungi oleh teg pengesahan dalam AES-GCM?

Imbas Kembali

AES-GCM ialah pilihan lalai yang tepat untuk penyulitan disahkan. Seterusnya, kita mengkaji sifir aliran: daripada RC4 yang telah rosak kepada ChaCha20 moden.
Percuma untuk bermula

Pelajari Cryptology Academy dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
67
Pelajaran
261

Soalan Lazim

Adakah pelajaran “GCM & Penyulitan Disahkan” percuma?

Ya — teks penuh “GCM & Penyulitan Disahkan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cryptology Academy, tingkat taraf kepada CoddyKit PRO. Kursus Cryptology Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “GCM & Penyulitan Disahkan”?

Tambahkan tag pengesahan pada penyulitan untuk mencegah pengubahan. Anda berlatih Cryptology Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cryptology Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cryptology Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “GCM & Penyulitan Disahkan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Asas Sifir Blok & Padding
  2. ECB berbanding CBC: Corak & IV
  3. Mod CTR & Tingkah Laku Sifir Strim
  4. GCM & Penyulitan Disahkan
← Kembali ke Cryptology Academy