Deterministic RNG مولّد أعداد شبه عشوائية: يحسب القيم بطريقة محددة، بدلاً من قياس ظاهرة فيزيائية عشوائية جديدة لكل قيمة. يبدأ بمدخل يسمى seed، ويحتفظ بحالة داخلية، أي المعلومات اللازمة للحساب التالي. تكرار العملية كاملة بالمدخلات نفسها يعيد النتائج نفسها، وهذا مفيد للاختبارات. لكن المولّد الآمن تشفيرياً يحتاج أيضاً إلى تصميم مناسب وإنتروبيا كافية، أي قدر من عدم اليقين بشأن المدخلات من منظور المهاجم.
تخيّل إيقاف حساب مؤقتاً وحفظ ذاكرته. إذا استُؤنف من النقطة نفسها مع المدخلات اللاحقة نفسها، فقد يتابع بالطريقة نفسها. تصف NIST SP 800-90A هذه المولّدات باسم DRBG. وتهم الخوارزمية والإعدادات وترتيب الطلبات جميعاً. إضافة إنتروبيا جديدة، وتسمى reseeding، تغيّر الحالة. لذلك لا يكفي تطابق seed وحده لضمان تطابق مخرجات برامج مختلفة. [1]
حتى برنامج محاكاة بسيط يستطيع إنتاج أعداد تبدو عشوائية، لكن هذا لا يكفي لحماية محفظة. تحذر RFC 4086 من إمكان توقع بعض هذه التسلسلات رغم نجاحها في الاختبارات الإحصائية. ينبغي أن يبقى المولّد القوي تشفيرياً غير قابل للتوقع عملياً بعد انكشاف جزء من مخرجاته. المهم هو التصميم وجودة البيانات الأولية وسريتها، لا كلمة «حتمي» وحدها. [2]
عند البحث عن خطأ، يفيد تكرار الحالة نفسها بدقة. لذلك تعيد الدالة randombytes_buf_deterministic() في libsodium التسلسل نفسه عند استخدام seed نفسها. يستطيع المطوّر نشر النتيجة المتوقعة ليتحقق منها الآخرون. ولهذا السبب تحديداً لا تصلح seed اختبار منشورة لمحفظة حقيقية: يمكن لأي شخص أن يحسب منها «السر» نفسه. [3]
تستخدم BIP32 قابلية تكرار مشابهة لاشتقاق المفاتيح، لكنها ليست العملية نفسها المستخدمة لتوليد بيانات عشوائية عامة. فهي تنشئ شجرة مفاتيح من seed واحدة، ويحدد مسار الاشتقاق الفرع المستخدم. لذلك تتيح seed والمسار نفسيهما استرجاع المفاتيح نفسها. لكن اشتقاق عنوان إضافي لا يضيف بذاته إنتروبيا جديدة ومستقلة إلى السر الأصلي. [4]
في BIP39، كلمات الاستعادة، المسماة mnemonic، ليست سوى جزء من المدخلات. تجمع PBKDF2 بينها وبين passphrase، وهي سر إضافي اختياري، لحساب seed المستخدمة في الاشتقاق اللاحق. تؤدي passphrase مختلفة إلى نتيجة مختلفة حتى لو بقيت الكلمات كما هي. لذا تتطلب استعادة المفاتيح نفسها جميع المدخلات الأصلية وطريقة الاشتقاق المناسبة؛ تطابق الكلمات وحده لا يكفي. [5]
يثبت التوقيع الرقمي أن صاحب المفتاح السري المعني أجاز المعاملة. تصف RFC 6979 حساب القيمة المساعدة k اللازمة للتوقيع من ذلك المفتاح والرسالة الموقّعة. فلا تحتاج هذه الخطوة إلى قيمة عشوائية جديدة في كل مرة. لكن ذلك لا يلغي ضرورة العشوائية الجيدة عند إنشاء المفتاح أول مرة. إجراء توقيع صحيح لا يصلح مفتاحاً كان تخمينه ممكناً منذ البداية. [6]
استعادة المفاتيح نفسها عبر BIP32 أمر مطلوب، أما تكرار قيم كان يفترض أن تكون جديدة عن غير قصد فليس كذلك. تحفظ لقطة الآلة الافتراضية حالة الحاسوب، بما فيها الذاكرة. وكما تحذر libsodium، قد تعيد استعادتها حالة المولّد ومخرجاته أيضاً. لذلك لا يصح افتراض أن كل نسخة عاملة من بيئة منسوخة ستبدأ تلقائياً بإنشاء أسرار مستقلة. [3] [4]
يقارن المطوّر النتيجة بمتجه اختبار، أي مدخل معروف مع مخرج متوقع. يبين التطابق أن البرنامج يحسب ذلك المثال بصورة صحيحة، لكنه لا يثبت جودة الإنتروبيا التي يحصل عليها الجهاز الفعلي. تتناول NIST SP 800-90A الآليات ومتطلبات مدخلاتها بصورة منفصلة. وتهم أيضاً نسخة البرنامج وإعداداته وتجديد الإنتروبيا؛ فلا يكفي وصف Deterministic RNG وحده للحكم على أمان المحفظة. [1]
للحصول على صورة أوضح، اقرأ هذا المدخل مع CSPRNG, Random Number Generator, HD Wallet, Seed Generation. تشير إلى هذا المدخل أيضًا CSPRNG, COLDCARD RNG Incident (2026).