0Pricing
Cryptology Academy · درس

ChaCha20-Poly1305 AEAD في TLS 1.3

تعرّف على نشر ChaCha20 كـ AEAD في TLS الحديث

ChaCha20-Poly1305 AEAD في TLS 1.3 درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

مرحبًا

يجمع ChaCha20-Poly1305 بين تشفير التدفق ChaCha20 و‏MAC‏ Poly1305 لإنشاء مجموعة تشفير AEAD‏ آمنة تُستخدم في TLS 1.3 وWireGuard وتطبيقات الأجهزة المحمولة.

نظرة عامة على Poly1305 MAC

Poly1305 هو MAC للاستخدام مرة واحدة، صمّمه Bernstein. وهو يتحقق من صحة الرسالة باستخدام تقييم متعدد الحدود فوق العدد الأولي 2^130-5. ويعني الاستخدام لمرة واحدة أن كل استخدام يتطلب مفتاحًا جديدًا بطول 32 بايت.

أمان Poly1305

يحقق Poly1305 مستوى أمان قدره 128 بت إذا لم يُعَد استخدام المفتاح مطلقًا. ويُشتق مفتاح MAC جديد لكل رسالة من تدفق مفاتيح ChaCha20. وهذا المزيج مثبت أمانه رياضيًا.

بنية ChaCha20-Poly1305

1. توليد تدفق مفاتيح بطول 64 بايت من كتلة ChaCha20 رقم 0 2. أول 32 بايت = مفتاح Poly1305 3. تجاهل آخر 32 بايت 4. تشفير النص الصريح باستخدام كتل ChaCha20‏ 1 و2 و3... 5. حساب MAC‏ Poly1305 على AAD + النص المشفر

بنية RFC 8439

تنسيق الناتج: النص المشفر || الوسم (16 بايت) مدخلات MAC:‏ AAD || pad1 || النص المشفر || pad2 || len(AAD) || len(ciphertext) الحشو: إضافة أصفار للوصول إلى محاذاة 16 بايت. تُرمّز الأطوال كأعداد صحيحة من 64 بت بترتيب little-endian.

مجموعات التشفير في TLS 1.3

مجموعات التشفير الإلزامية في TLS 1.3: - TLS_AES_256_GCM_SHA384 - TLS_AES_128_GCM_SHA256 - TLS_CHACHA20_POLY1305_SHA256 يُفضَّل CHACHA20_POLY1305 للعملاء الذين لا يملكون تسريعًا عتاديًا لـ AES.

يستخدم WireGuard‏ ChaCha20-Poly1305

يستخدم WireGuard‏ ChaCha20Poly1305 حصريًا لتشفير جميع الأنفاق. لا توجد مفاوضة على الخوارزمية — بل خوارزمية واحدة خضعت لتحليل مستفيض. تقلل هذه البساطة مساحة الهجوم بدرجة كبيرة.

secretbox في libsodium

تستخدم الدالة crypto_secretbox_easy() في libsodium‏ XSalsa20-Poly1305 (نسخة ذات nonce ممتدة): ciphertext = crypto_secretbox_easy(message, nonce, key) واجهة برمجة عالية المستوى: تعمل بشكل صحيح مباشرةً من دون الحاجة إلى اختيار المعلمات.

الأداء على الأجهزة المحمولة

غالبًا ما تفتقر أجهزة Android وiOS إلى AES-NI. أظهر تحليل أجرته Google عام 2014 أن ChaCha20-Poly1305 كان أسرع بثلاث مرات من AES-GCM على ARM. ولهذا أوجبته Google في Android وChrome.

التنفيذ في Python

from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305 import os key = ChaCha20Poly1305.generate_key() nonce = os.urandom(12) aad = b'header_data' cipher = ChaCha20Poly1305(key) ct = cipher.encrypt(nonce, b'plaintext', aad) pt = cipher.decrypt(nonce, ct, aad)

مقارنة: AES-GCM وChaCha20-Poly1305

‏AES-GCM: أسرع مع AES-NI، وnonce بطول 96 بت، وإمكانية تزوير وسم GCM عند إعادة استخدام nonce. ‏ChaCha20-Poly1305: أسرع من دون عتاد مخصص، وnonce بطول 96 بت، ومفتاح Poly1305 جديد لكل رسالة. كلاهما ممتاز. استخدم AES-GCM على الخوادم، وChaCha20-Poly1305 على الأجهزة المحمولة.

تحقق سريع

في ChaCha20-Poly1305، كيف يُولَّد مفتاح Poly1305؟

مراجعة

يُعد ChaCha20-Poly1305 خيار AEAD المحسّن للأجهزة المحمولة. بعد ذلك سندرس تبادل مفاتيح Diffie-Hellman — وكيف ينشئ طرفان سرًا مشتركًا عبر قناة غير آمنة.

الأسئلة الشائعة

هل درس «ChaCha20-Poly1305 AEAD في TLS 1.3» مجاني؟

نعم — نص درس «ChaCha20-Poly1305 AEAD في TLS 1.3» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.

ماذا ستتعلم في «ChaCha20-Poly1305 AEAD في TLS 1.3»؟

تعرّف على نشر ChaCha20 كـ AEAD في TLS الحديث تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟

لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «ChaCha20-Poly1305 AEAD في TLS 1.3»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟

نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مفاهيم تشفير التدفق وPRNG
  2. RC4: التصميم ونقاط الضعف وهجمات WEP
  3. تصميم Salsa20 وChaCha20
  4. ChaCha20-Poly1305 AEAD في TLS 1.3
← العودة إلى Cryptology Academy