Password-Based Key Derivation Function 2 دالة اشتقاق حتمية بمعلمات تشمل المدخل والملح وعدد التكرارات والدالة شبه العشوائية وطول الناتج. يحدد BIP39 إعدادًا معينًا من PBKDF2-HMAC-SHA512، وليس جميع استخدامات PBKDF2 الممكنة.
المدخل المسمّى password هو عبارة الكلمات بصيغة UTF-8 NFKD. الملح هو mnemonic + passphrase وبصيغة UTF-8 NFKD أيضًا؛ وتُضاف قيمة فارغة عند غياب passphrase. يتطلب BIP39 استخدام HMAC-SHA512 و2048 تكرارًا وناتجًا بطول 64 بايت، أي 512 بت. [BIP39 — Mnemonic generation and seed conversion]
ينشئ PBKDF2 أول ناتج وسيط من مدخل كلمة المرور والملح وفهرس كتلة الناتج. ثم يحسب النتائج الوسيطة التالية بتطبيق الدالة شبه العشوائية نفسها على الناتج السابق، ويجمع القيم بعملية XOR. مع HMAC-SHA512 يبلغ طول الكتلة 64 بايت، لذا يحتاج BIP39 كتلة واحدة. لا يكفي تطبيق SHA-512 على النص 2048 مرة ببساطة. [RFC8018 — PBKDF2 construction] [BIP39 — Mnemonic generation and seed conversion]
المدخلات المطبّعة والمعلمات المتطابقة تنتج البذرة نفسها. زيادة 2048 تكرارًا اعتباطيًا أو تغيير الدالة أثناء الاستعادة لا يحسّن أمان المحفظة الموجودة؛ إذ لا يعود الناتج مطابقًا لاشتقاق BIP39 المحدد. وترجمة الكلمات إلى قائمة أخرى ليست تعديلًا محايدًا أيضًا. [BIP39 — Mnemonic generation and seed conversion]
تزيد التكرارات العمل لكل محاولة، لكنها لا تضيف عشوائية سرية مستقلة. يستطيع مهاجم يملك الكلمات وبيانات مقارنة المحفظة تجربة passphrase ضعيفة دون اتصال. لذلك لا يعني الناتج بطول 512 بت حماية تعادل إنتروبيا من 512 بت، والعدد 2048 ليس توصية عامة للأنظمة الجديدة. [RFC8018 — PBKDF2 construction] [BIP39 — Mnemonic generation and seed conversion]
يساعد BIP39 checksum على اكتشاف أخطاء الكلمات قبل استخدامها. تحويل PBKDF2 نفسه منفصل عن توليد العبارة وفحصها؛ ولا يثبت أن passphrase تخص المحفظة المطلوبة. يمكن بعد ذلك أن تستخدم BIP32 أو طرق حتمية أخرى البذرة في خطوة لاحقة. [BIP39 — Mnemonic generation and seed conversion]
تحدد متجهات BIP39 العامة الإنتروبيا والكلمات والبذرة المتوقعة مع passphrase الاختبارية TREZOR. يجب أن يعيد التنفيذ الصحيح الناتج كاملًا ويلتزم بـ NFKD. لا يجوز أن تكون هذه المدخلات المعروفة نسخة شخصية لأموال؛ كما أن تطابق الاختبار وحده لا يثبت أمان التطبيق كله. [BIP39 — Mnemonic generation and seed conversion]
للحصول على صورة أوضح، اقرأ هذا المدخل مع BIP 39, BIP39 passphrase, Seed Generation, HD Wallet. تشير إلى هذا المدخل أيضًا BIP39 passphrase.