PGP Tool

تعلّم · 7 دقيقة قراءة

Argon2id مقابل PBKDF2: أيّ دالة اشتقاق مفاتيح يجب أن تستخدم؟

كلتاهما تمدّان كلمة مرور إلى مفتاح تشفير، لكنهما تكلّفان المهاجمين مبالغ مختلفة جداً.

حين تشفّر شيئاً بعبارة مرور، تكون العبارة ذاتها قصيرة جداً للاستخدام مباشرةً كمفتاح AES. تأخذ الـ KDF عبارة المرور وتمدّها — بتنفيذ آلاف العمليات لتحويلها إلى مفتاح بطول 256 بتاً، مع جعل القوة الغاشمة مكلفة.

PBKDF2 — الخيار الكلاسيكي الموثوق

جرى توحيد PBKDF2 عام 2000 وهو موجود في كل مكان — TLS وFileVault وOpenPGP. يُكرّر HMAC-SHA-256 عدداً قابلاً للضبط من المرات. المزيد من التكرارات = أبطأ للمهاجمين.

ضعف PBKDF2: إنه رخيص على الأجهزة المتخصصة. يمكن لوحدة معالجة الرسومات (GPU) تنفيذ آلاف التكرارات بالتوازي. ومهاجم يمتلك مزرعة صغيرة من GPU يستطيع المرور عبر التخمينات بسرعات أعلى بأوامر من المرتبة مقارنةً بوحدة المعالجة المركزية.

Argon2id — المعيار الحديث

فاز Argon2 بـ Password Hashing Competition عام 2015: إنه كثيف الذاكرة. يتطلب كل تكرار كتلة كبيرة من RAM. يمكن لـ GPU بسعة 4 جيجابايت تشغيل 4 هجمات في وقت واحد بدلاً من 4000 — تنتقل نسبة التكلفة لصالح المدافع.

Argon2id هو المتغير الموصى به — يجمع بين Argon2i (مقاوم للقنوات الجانبية) وArgon2d (أسرع). هو الافتراضي في libsodium وBitwarden و1Password وOpenPGP منذ 2024.

متى تستخدم أيّهما

  • استخدم Argon2id لأي تشفير جديد. تكلفة المكتبة صغيرة (~250 كيلوبايت WASM) ومكسب الأمان حقيقي.
  • استخدم PBKDF2 حين تحتاج إلى أقصى قدر من التوافق — عملاء PGP القديمة، أدوات الأرشفة، الأجهزة المدمجة.
  • يستخدم هذا التطبيق Argon2id للتشفيرات الجديدة ويتراجع إلى PBKDF2 للنصوص المشفرة القديمة.

أرقام عملية

على جهاز كمبيوتر محمول حديث، يستغرق Argon2id (m=65536 KiB, t=3, p=1) نحو 200 مللي ثانية. وحدة GPU تشغّل PBKDF2-SHA256 بـ 200k تكرار تُنتج ~50 مليون تخمين/ثانية. نفس GPU مع Argon2id و64 ميجابايت ذاكرة تُنتج ~100 تخمين/ثانية. ستة أوامر مرتبة من المزايا للمدافع.