Toolonit
  1. الرئيسية
  2. التشفير
  3. تشفير / فك التشفير
  4. ChaCha20

تشفير ChaCha20 وفك تشفيره

شفّر النصوص وفكّ تشفيرها بـ ChaCha20-Poly1305 أو بـ ChaCha20 العادي.

التشفير باستخدام

ستحتاج إليها مرة أخرى لفك التشفير. لا يغادر أي شيء تكتبه هذه الصفحة.

عدد تكرارات PBKDF2

القيمة الافتراضية في OpenSSL هي 10,000. ويصلح أي عدد: فالعدد الأكبر يجعل تخمين كلمة المرور أبطأ؛ ويحتاج فك التشفير إلى العدد نفسه.

النمط

موثَّق: تُكتشف كلمة المرور أو المفتاح الخاطئ، وأي تغيير في النص.

صيغة المخرجات
المكافئ في OpenSSL

لا يستطيع الأمر enc في OpenSSL قراءة ChaCha20-Poly1305. فك تشفيره هنا، أو برمجيًا باستخدام مكتبة تشفير: الوسم ذو 16 بايت يلي النص المشفّر.

خوارزمية ChaCha20-Poly1305 (RFC 8439) هي التشفير المُصادَق المستخدم في TLS 1.3 وWireGuard: فهي تشفّر النص وتكتشف أيضًا أي تعديل عليه أو أي كلمة مرور خاطئة. شفّر النصوص هنا بكلمة مرور أو بمفتاحك الخاص بطول 256 بت وnonce من 12 بايت، أو الصق نصًا مشفّرًا بصيغة Base64 أو hex لفك تشفيره. مع كلمة المرور يُشتق المفتاح وnonce بـ PBKDF2-HMAC-SHA256 مع ملح عشوائي كما في openssl enc -pbkdf2، وتتكون المخرجات من Salted__ ثم الملح ثم النص المشفّر ثم وسم Poly1305 ذي الـ 16 بايت. ويتوفر هنا أيضًا ChaCha20 العادي، بلا وسم، بترتيب chacha20 في OpenSSL. لا يغادر نصك ولا كلمات المرور ولا المفاتيح جهازك: فالأداة تعمل في متصفحك، مجانًا ودون تسجيل.

طريقة تشفير النصوص بـ ChaCha20-Poly1305

  1. اختر «تشفير» أو «فك التشفير». اكتب النص المراد تشفيره، أو الصق نص Base64 أو hex المراد فك تشفيره، وستُكتشف صيغته تلقائيًا.
  2. أدخل كلمة مرور (يُنشئ زر «توليد» كلمة مرور قوية)، أو انتقل إلى وضع «المفتاح وIV (hex)» وأدخل مفتاحًا من 64 خانة وnonce من 24 خانة أو ولّدهما (أو IV من 32 خانة لـ ChaCha20 العادي).
  3. أبقِ على ChaCha20-Poly1305، أو اختر ChaCha20 للتوافق مع openssl enc -chacha20. ولفك التشفير استخدم النمط وكلمة المرور وعدد التكرارات نفسها التي شُفّر بها النص.
  4. انسخ النتيجة أو نزّلها، أو اضغط «تبديل» لنقلها إلى خانة الإدخال وفك تشفيرها من جديد للتحقق.

الميزات

  • ChaCha20-Poly1305 وفق RFC 8439: مفتاح 256 بت وnonce من 12 بايت ووسم من 16 بايت
  • ChaCha20 العادي بترتيب OpenSSL: IV من 16 بايت يتكوّن من عدّاد من 4 بايت بترتيب little-endian وnonce من 12 بايت
  • وضع كلمة المرور: المفتاح وnonce مشتقان بـ PBKDF2-HMAC-SHA256 مع ملح عشوائي، بعد ترويسة Salted__ الخاصة بـ openssl enc -pbkdf2
  • وضع «المفتاح وIV»: مفتاح وnonce بصيغة hex من عندك، أو بقيم عشوائية من زر «توليد»
  • مع Poly1305 تؤدي كلمة المرور أو المفتاح الخاطئ، أو تغيير حرف واحد، إلى فشل فك التشفير بدل إخراج بيانات مشوّهة
  • بلا حشو: طول النص المشفّر يساوي طول النص، يُضاف إليه وسم من 16 بايت مع Poly1305
  • أمر openssl enc -chacha20 لـ ChaCha20 العادي

هل تبقى بياناتي خاصة؟

نعم. يعمل ChaCha20 بتقنية WebAssembly داخل متصفحك، ويتولى Web Crypto في المتصفح تقوية كلمة المرور. لا يُرفع أي شيء تكتبه، سواء النص أو كلمة المرور أو المفتاح أو nonce، ولا يُحفظ.

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

ChaCha20-Poly1305 أم ChaCha20 العادي؟

ChaCha20-Poly1305، وهو الافتراضي، لكل استخدام جديد: فوسم Poly1305 يجعل فك التشفير يفشل إذا تغيّر حرف واحد أو كانت كلمة المرور خاطئة. أما ChaCha20 العادي فيكتفي بالتشفير، فيعطي المفتاح الخاطئ بايتات غير مقروءة بدل رسالة خطأ، لذا لا تستخدمه إلا للتوافق مع نظام يعتمد عليه، مثل openssl enc -chacha20.

هل يستطيع OpenSSL فك تشفيره؟

ChaCha20 العادي نعم: echo 'U2FsdGVkX1…' | openssl enc -d -chacha20 -pbkdf2 -iter 10000 -a -A في وضع كلمة المرور، أو -K <المفتاح بـ hex> -iv <IV بـ hex> بدل -pbkdf2 -iter في وضع «المفتاح وIV». أما ChaCha20-Poly1305 فلا، إذ يرفض openssl enc خوارزميات AEAD. اقرأه هنا أو برمجيًا: ففي وضع «المفتاح وIV» تكون المخرجات هي النص المشفّر يليه وسم من 16 بايت، بلا ترويسة.

ماذا يحدث إذا أُعيد استخدام nonce؟

رسالتان مشفّرتان بالمفتاح وnonce نفسيهما تكشفان ناتج XOR لنصّيهما، وتسمحان للمهاجم بتزوير وسوم Poly1305. في وضع كلمة المرور لا يمكن أن تقع في هذا الخطأ: فكل عملية تشفير تختار ملحًا عشوائيًا جديدًا، فيكون المفتاح وnonce والمخرجات جديدة في كل مرة. أما في وضع «المفتاح وIV» فاضغط «توليد» لإنشاء nonce جديد قبل كل رسالة.

هل ChaCha20 آمن بقدر AES؟

نعم. ChaCha20-Poly1305 وAES-GCM كلاهما من خوارزميات TLS 1.3 القياسية ولا يوجد هجوم عملي على أي منهما، وغالبًا ما يكون ChaCha20 أسرع على الهواتف التي لا تملك تسريعًا عتاديًا لـ AES. ونقطة الضعف هي كلمة المرور: استخدم كلمة مرور طويلة وعشوائية، وإعداد 600,000 تكرار حين تتحكم في الطرفين.

هل تدعم الأداة XChaCha20-Poly1305؟

لا. XChaCha20، وهو النسخة ذات nonce من 24 بايت الموجودة في libsodium، بناء مختلف، لذا لا يمكن فك تشفير نصوصه هنا. تقبل هذه الصفحة nonce من 12 بايت وفق RFC 8439، وIV من 16 بايت لـ chacha20 في OpenSSL. ولتشفير ملف بدل نص، تستخدم أداة «تشفير الملفات» ChaCha20-Poly1305 بصيغة age.

أدوات ذات صلة