مولد أرقام عشوائية زائفة آمن تشفيرياً

مولد الأرقام العشوائية الزائفة الآمن تشفيرياً ( CSPRNG ) أو مولد الأرقام العشوائية الزائفة المشفر ( CPRNG ) هو مولد أرقام عشوائية زائفة (PRNG) يتميز بخصائص تجعله مناسباً للاستخدام في علم التشفير . ويُشار إليه أيضاً باسم مولد الأرقام العشوائية المشفر ( CRNG ).

خلفية

تتطلب معظم تطبيقات التشفير أرقامًا عشوائية ، على سبيل المثال:

تختلف "جودة" العشوائية المطلوبة لهذه التطبيقات. على سبيل المثال، لا يتطلب إنشاء قيمة عشوائية (nonce) في بعض البروتوكولات سوى التفرد. من ناحية أخرى، يتطلب توليد مفتاح رئيسي جودة أعلى، مثل مستوى أعلى من الإنتروبيا . وفي حالة التشفير لمرة واحدة ، لا يتحقق الضمان النظري للمعلومات للسرية التامة إلا إذا كانت مادة المفتاح من مصدر عشوائي حقيقي ذي إنتروبيا عالية، وبالتالي فإن أي نوع من مولدات الأرقام شبه العشوائية غير كافٍ.

من الناحية المثالية، يعتمد توليد الأرقام العشوائية في مولدات الأرقام العشوائية المشفرة (CSPRNGs) على إنتروبيا مُستمدة من مصدر عالي الجودة، عادةً ما يكون واجهة برمجة تطبيقات العشوائية لنظام التشغيل . مع ذلك، وُجدت ارتباطات غير متوقعة في العديد من هذه العمليات التي تبدو مستقلة. من وجهة نظر نظرية المعلومات، فإن مقدار العشوائية، أي الإنتروبيا التي يمكن توليدها، يساوي الإنتروبيا التي يوفرها النظام. لكن في بعض الأحيان، في التطبيقات العملية، نحتاج إلى أرقام ذات عشوائية أكبر مما توفره الإنتروبيا المتاحة. كما أن عمليات استخراج العشوائية من نظام قيد التشغيل بطيئة في الواقع العملي. في مثل هذه الحالات، يمكن استخدام مولد الأرقام العشوائية المشفرة (CSPRNG). إذ يُمكنه "توسيع" نطاق الإنتروبيا المتاحة لتشمل عددًا أكبر من البتات.

متطلبات

تُلبى متطلبات مولد الأرقام العشوائية الزائفة العادي أيضًا بواسطة مولد الأرقام العشوائية الزائفة الآمن تشفيرياً، ولكن العكس غير صحيح. تنقسم متطلبات مولد الأرقام العشوائية الزائفة الآمن تشفيرياً إلى مجموعتين:

  1. يجتازون اختبارات العشوائية الإحصائية :
    • يجب أن يفي كل مولد أرقام عشوائية مشفرة (CSPRNG) باختبار البت التالي . أي، بالنظر إلى أول k بت من تسلسل عشوائي، لا توجد خوارزمية ذات وقت متعدد الحدود يمكنها التنبؤ بالبت ( k + 1) باحتمالية نجاح أفضل من 50% بشكل ملحوظ. [ 1 ]
    • أثبت أندرو ياو في عام 1982 أن المولد الذي يجتاز اختبار البت التالي سيجتاز جميع الاختبارات الإحصائية الأخرى للعشوائية التي تتم في زمن متعدد الحدود. بعبارة أخرى، لا يمكن لأي خوارزمية تعمل في زمن متعدد الحدود أن تميز بين مخرجات مولد الأرقام العشوائية والعشوائية الحقيقية. [ 2 ]
    • بدلاً من تعقيد الوقت متعدد الحدود، يُستخدم مقياس آخر عمليًا وهو العدد المطلق للعمليات اللازمة لكي يميز المُميّز بين الناتج والعشوائية الحقيقية. ومن خلال عدد العمليات، يمكن أيضًا تحديد مستوى أمان (بتات الأمان) لمولد أرقام عشوائية زائفة مُشفرة (CSPRNG) ضد هجمات التمييز. [ 3 ] [ 4 ]
  2. إنها تصمد بشكل جيد في مواجهة الهجمات الخطيرة، حتى عندما يصبح جزء من حالتها الأولية أو حالة التشغيل متاحًا للمهاجم: [ 5 ]
    • ينبغي أن يكون كل مولد أرقام عشوائية مشفر (CSPRNG) قادرًا على مقاومة "هجمات اختراق الحالة". [ 5 ] : 4 في حال الكشف عن جزء من حالته أو كلها (أو تخمينها بشكل صحيح)، يجب أن يكون من المستحيل إعادة بناء سلسلة الأرقام العشوائية قبل الكشف. بالإضافة إلى ذلك، إذا كان هناك مُدخل إنتروبيا أثناء التشغيل، فيجب أن يكون من غير العملي استخدام معرفة حالة المُدخل للتنبؤ بالحالات المستقبلية لحالة مولد الأرقام العشوائية المشفر.
    • على سبيل المثال، إذا كان مولد الأرقام العشوائية الزائفة قيد الدراسة يُنتج مخرجات عن طريق حساب بتات العدد باي بالتسلسل، بدءًا من نقطة غير معروفة في التمثيل الثنائي، فقد يُحقق اختبار البت التالي، وبالتالي يكون عشوائيًا إحصائيًا، حيث يُفترض أن باي عدد طبيعي . مع ذلك، فإن هذه الخوارزمية ليست آمنة تشفيريًا؛ إذ سيتمكن المهاجم الذي يُحدد بت باي المستخدم حاليًا (أي حالة الخوارزمية) من حساب جميع البتات السابقة أيضًا.

معظم مولدات الأرقام العشوائية الزائفة غير مناسبة للاستخدام كمولدات أرقام عشوائية زائفة محوسبة، وستفشل في كلا الحالتين:

  1. على الرغم من أن معظم مولدات الأرقام العشوائية الزائفة (PRNGs) تبدو عشوائية في مختلف الاختبارات الإحصائية، إلا أنها لا تصمد أمام الهندسة العكسية المُحكمة. قد تُكتشف اختبارات إحصائية مُخصصة مُصممة خصيصًا لمولدات الأرقام العشوائية الزائفة، تُظهر أن الأرقام العشوائية ليست عشوائية حقًا. في الوقت نفسه، ولأن مولدات الأرقام العشوائية الزائفة المشفرة (CSPRNGs) مُصممة لمقاومة جميع الاختبارات الإحصائية (ويُعتقد أنها آمنة من هذه الناحية إلى حين اكتشاف اختبار يُثبت ذلك)، يُمكن لمولد الأرقام العشوائية الزائفة المشفرة أن يحل محل أي مولد أرقام عشوائية حقيقي في أي تطبيق غير تشفيري.
  2. بالنسبة لمعظم مولدات الأرقام العشوائية الزائفة، عند الكشف عن حالتها، يمكن التنبؤ بجميع الأرقام العشوائية السابقة، مما يسمح للمهاجم بقراءة جميع الرسائل السابقة، بالإضافة إلى الرسائل المستقبلية. صُممت مولدات الأرقام العشوائية الزائفة المشفرة خصيصًا لمقاومة هذا النوع من تحليل الشفرات .

التعريفات

في السياق التقاربي ، عائلة من الدوال القابلة للحساب في زمن متعدد الحدود الحتميجيك:{0،1}ك{0،1}ص(ك){\displaystyle G_{k}\colon \{{\texttt {0}},{\texttt {1}}\}^{k}\to \{{\texttt {0}},{\texttt {1}}\}^{p(k)}}بالنسبة لبعض كثيرات الحدود p ، يكون مولد أرقام شبه عشوائية (PRNG، أو PRG في بعض المراجع)، إذا كان يمدد طول مدخلاته (ص(ك)>ك{\displaystyle p(k)>k}لأي قيمة لـ k )، وإذا كان ناتجها غير قابل للتمييز حسابيًا عن العشوائية الحقيقية، أي لأي خوارزمية احتمالية متعددة الحدود A ، والتي تُخرج 1 أو 0 كمميز،

|بروx{0،1}ك[أ(جي(x))=1]-برور{0،1}ص(ك)[أ(ر)=1]|<μ(ك)\displaystyle \left|\Pr _{x\gets \{{\texttt {0}},{\texttt {1}}\}^{k}}[A(G(x))=1]-\Pr _{r\gets \{{\texttt {0}},{\texttt {1}}\}^{p(k)}}[A(r)=1]\right|<\mu (k)}

لبعض الوظائف المهملةμ{\displaystyle \mu }[ 6 ] (الترميز )xX{\displaystyle x\gets X}يعني ذلك أن x يتم اختياره عشوائياً وبشكل منتظم من المجموعة X.

يوجد توصيف مكافئ: لأي عائلة من الدوالجيك:{0،1}ك{0،1}ص(ك){\displaystyle G_{k}\colon \{{\texttt {0}},{\texttt {1}}\}^{k}\to \{{\texttt {0}},{\texttt {1}}\}^{p(k)}}، يكون G مولد أرقام عشوائية زائفة إذا وفقط إذا لم يكن من الممكن التنبؤ بالبتة التالية الناتجة عن G بواسطة خوارزمية زمنية متعددة الحدود. [ 7 ]

مولد أرقام عشوائية زائفة آمن للأمام بطول كتلةت(ك){\displaystyle t(k)}هو مولد أرقام عشوائية زائفةجيك:{0،1}ك{0،1}ك×{0،1}ت(ك){\displaystyle G_{k}\colon \{{\texttt {0}},{\texttt {1}}\}^{k}\to \{{\texttt {0}},{\texttt {1}}\}^{k}\times \{{\texttt {0}},{\texttt {1}}\}^{t(k)}}، حيث سلسلة الإدخالsأنا{\displaystyle s_{i}}يمثل الطول k الحالة الحالية في الفترة i ، ويكون الناتج (sأنا+1{\displaystyle s_{i+1}}،yأنا{\displaystyle y_{i}}) يتكون من الحالة التاليةsأنا+1{\displaystyle s_{i+1}}وكتلة الإخراج شبه العشوائيyأنا{\displaystyle y_{i}}من الفترة i ، التي تصمد أمام امتدادات تسوية الحالة بالمعنى التالي. إذا كانت الحالة الأوليةs1{\displaystyle s_{1}}يتم اختيارها بشكل عشوائي منتظم من{0،1}ك{\displaystyle \{{\texttt {0}},{\texttt {1}}\}^{k}}ثم لأي قيمة لـ i ، يكون التسلسل(y1،y2،...،yأنا،sأنا+1){\displaystyle (y_{1},y_{2},\dots ,y_{i},s_{i+1})}يجب أن يكون غير قابل للتمييز حسابيًا عن(ر1،ر2،...،رأنا،sأنا+1){\displaystyle (r_{1},r_{2},\dots ,r_{i},s_{i+1})}، حيثرأنا{\displaystyle r_{i}}يتم اختيارهم بشكل عشوائي منتظم من{0،1}ت(ك){\displaystyle \{{\texttt {0}},{\texttt {1}}\}^{t(k)}}[ 8 ]

أي مولد أرقام عشوائية زائفةجي:{0،1}ك{0،1}ص(ك){\displaystyle G\colon \{{\texttt {0}},{\texttt {1}}\}^{k}\to \{{\texttt {0}},{\texttt {1}}\}^{p(k)}}يمكن تحويلها إلى مولد أرقام عشوائية آمنة للأمام بطول كتلةص(ك)-ك{\displaystyle p(k)-k}عن طريق تقسيم مخرجاته إلى الحالة التالية والمخرجات الفعلية. ويتم ذلك عن طريق ضبطجي(s)=جي0(s)جي1(s){\displaystyle G(s)=G_{\texttt {0}}(s)\Vert G_{\texttt {1}}(s)}، حيث|جي0(s)|=|s|=ك{\displaystyle |G_{\texttt {0}}(s)|=|s|=k}و|جي1(s)|=ص(ك)-ك{\displaystyle |G_{\texttt {1}}(s)|=p(k)-k}إذاً، فإن G عبارة عن مولد أرقام عشوائية زائفة آمن للأمام معجي0{\displaystyle G_{\texttt {0}}}باعتبارها الولاية التالية وجي1{\displaystyle G_{\texttt {1}}}باعتبارها كتلة الإخراج شبه العشوائي للفترة الحالية.

استخلاص الإنتروبيا

أثبت سانثا وفازيراني أنه يمكن دمج عدة تدفقات بتية ذات عشوائية ضعيفة لإنتاج تدفق بتي شبه عشوائي عالي الجودة. [ 9 ] وفي وقت سابق، اقترح جون فون نيومان خوارزمية بسيطة يمكنها إزالة قدر كبير من التحيز في أي تدفق بتي. [ 10 ]

تصاميم

تنقسم تصميمات مولدات الأرقام العشوائية المشفرة إلى فئتين:

  1. تصاميم تعتمد على أساسيات التشفير مثل الشفرات والتجزئة التشفيرية
  2. تصاميم مبنية على مسائل رياضية يُعتقد أنها صعبة

تصاميم تعتمد على أساسيات التشفير

  • يمكن تحويل خوارزمية تشفير الكتلة الآمنة إلى مولد أرقام عشوائية آمنة مشفرة (CSPRNG) عن طريق تشغيلها في وضع العداد باستخدام، على سبيل المثال، بنية خاصة يطلق عليها المعهد الوطني للمعايير والتكنولوجيا (NIST) في معيار SP 800-90A اسم CTR_DBRG . يستخدم CTR_DBRG عادةً معيار التشفير المتقدم (AES).
    • يُستخدم AES- CTR_DRBG غالبًا كمولد أرقام عشوائية في الأنظمة التي تستخدم تشفير AES. [ 11 ] [ 12 ]
    • يقوم نظام NIST CTR_DRBG بمسح المفتاح بعد إخراج العشوائية المطلوبة عن طريق تشغيل دورات إضافية. يُعدّ هذا تبذيرًا للموارد من منظور الأداء، ولكنه لا يُسبب مشاكل فورية تتعلق بسرية التشفير. مع ذلك، وإدراكًا لتأثيرات الأداء، توصي NIST بواجهة "AES-CTR-DRBG مُوسّعة" لمشاريعها المُقدّمة لمشروع التشفير ما بعد الكمومي . تسمح هذه الواجهة بتوليد مجموعات متعددة من العشوائية دون مسحها، ولا يتم المسح إلا عندما يُشير المستخدم صراحةً إلى انتهاء الطلبات. نتيجةً لذلك، قد يبقى المفتاح في الذاكرة لفترة طويلة إذا أُسيء استخدام "الواجهة المُوسّعة". تقوم مولدات الأرقام العشوائية الأحدث ذات "المسح السريع للمفتاح" بمسح المفتاح مع العشوائية بمجرد طلبها. [ 13 ]
  • يمكن تحويل تشفير التدفق إلى مولد أرقام عشوائية مشفرة (CSPRNG). وقد تم ذلك باستخدام RC4 و ISAAC و ChaCha20 ، على سبيل المثال لا الحصر.
  • قد تكون التجزئة الآمنة تشفيرياً أساساً لمولد أرقام عشوائية آمن تشفيرياً جيد، باستخدام، على سبيل المثال، بنية يطلق عليها المعهد الوطني للمعايير والتكنولوجيا اسم Hash DRBG .
  • يمكن استخدام عنصر HMAC الأساسي كأساس لـ CSPRNG، على سبيل المثال، كجزء من البنية التي يطلق عليها NIST اسم HMAC DRBG .

التصاميم القائمة على نظرية الأعداد

  • تعتمد خوارزمية بلوم بلوم شوب على برهان أمني يستند إلى صعوبة مسألة الباقي التربيعي . ولأن الطريقة الوحيدة المعروفة لحل هذه المسألة هي تحليل المعامل، يُعتبر عمومًا أن صعوبة تحليل الأعداد الصحيحة توفر برهانًا أمنيًا مشروطًا لخوارزمية بلوم بلوم شوب. مع ذلك، فإن الخوارزمية غير فعالة للغاية، وبالتالي غير عملية إلا في حال الحاجة إلى مستوى عالٍ جدًا من الأمان.
  • تتمتع خوارزمية بلوم-ميكالي ببرهان أمني يعتمد على صعوبة مشكلة اللوغاريتم المنفصل، ولكنها أيضًا غير فعالة للغاية.
  • كتب دانيال براون من شركة سيرتيكوم برهانًا أمنيًا عام 2006 لخوارزمية Dual EC DRBG ، استنادًا إلى افتراض صعوبة فرضية ديفي-هيلمان القرارية ، ومسألة اللوغاريتم x ، ومسألة النقطة المقتطعة . ويفترض برهان 2006 صراحةً أن طول الإخراج (عدد البتات المُقدمة لكل تكرار) أقل من معيار Dual_EC_DRBG، وأن قيمتي P و Q في معيار Dual_EC_DRBG (اللتين كُشف عام 2013 أنهما على الأرجح مُخترقتان من قِبل وكالة الأمن القومي الأمريكية) قد استُبدلتا بقيم غير مُخترقة.

مخططات عملية

لا تقتصر مخططات مولدات الأرقام العشوائية المشفرة "العملية" على خوارزمية توليد الأرقام العشوائية المشفرة فحسب، بل تشمل أيضًا طريقة لتهيئة هذه الخوارزمية (" البذرة ") مع الحفاظ على سرية البذرة. وقد تم تعريف عدد من هذه المخططات، بما في ذلك:

  • تطبيقات /dev/random في الأنظمة الشبيهة بنظام يونكس.
    • يستخدم برنامج Yarrow ، الذي يحاول تقييم الجودة العشوائية لمدخلات البذور، خوارزميتي SHA-1 و3DES داخليًا. استُخدم Yarrow في نظام macOS وأنظمة تشغيل Apple الأخرى حتى ديسمبر 2019 تقريبًا، ثم انتقل إلى Fortuna.
    • فورتونا ، خليفة يارو، لا تحاول تقييم جودة البيانات المدخلة من حيث العشوائية؛ فهي تستخدم SHA-256 وأي خوارزمية تشفير كتلية جيدة. تُستخدم فورتونا في نظام FreeBSD. وقد اعتمدتها آبل في معظم أنظمة تشغيلها، إن لم يكن جميعها، بدءًا من ديسمبر 2019 تقريبًا.
    • يستخدم مولد الأرقام العشوائية المشفرة في نواة لينكس خوارزمية ChaCha20 لتوليد البيانات، [ 14 ] وخوارزمية BLAKE2s لاستيعاب الإنتروبيا. [ 15 ]
  • arc4random ، مولد أرقام عشوائية آمنة (CSPRNG) في أنظمة شبيهة بنظام يونكس، يستخدم /dev/random لتوليد الأرقام العشوائية. يعتمد في الأصل على RC4 ، ولكن جميع التطبيقات الرئيسية تستخدم الآن ChaCha20 . [ 16 ] [ 17 ] [ 18 ]
  • CryptGenRandom ، جزء من CryptoAPI من مايكروسوفت ، متوفر على نظام ويندوز. تستخدم الإصدارات المختلفة من ويندوز تطبيقات مختلفة.
  • معيار ANSI X9.17 ( إدارة مفاتيح المؤسسات المالية (للبيع بالجملة) )، والذي تم اعتماده أيضًا كمعيار FIPS . يأخذ هذا المعيار كمدخل حزمة مفاتيح TDEA ( خيار التشفير 2 ) k وقيمة ابتدائية لـ s، وهي عبارة عن بذرة عشوائية 64 بت . [ 19 ] في كل مرة يُطلب فيها رقم عشوائي، يتم تنفيذ الخطوات التالية:
    1. احصل على التاريخ/الوقت الحالي D بأقصى دقة ممكنة.
    2. احسب قيمة مؤقتة t = TDEA k ( D ) .
    3. احسب القيمة العشوائية x = TDEA k ( st ) ، حيث ⊕ تشير إلى عملية أو الحصرية الثنائية .
    4. قم بتحديث البذرة s = TDEA k ( xt ) .

من الواضح أن هذه التقنية قابلة للتعميم بسهولة على أي خوارزمية تشفير كتلية؛ وقد تم اقتراح خوارزمية AES . [ 20 ] إذا تم تسريب المفتاح k ، يمكن التنبؤ بتدفق X9.17 بالكامل؛ ويُذكر هذا الضعف كسبب لإنشاء خوارزمية Yarrow. [ 21 ]

جميع المخططات المذكورة أعلاه، باستثناء X9.17، تمزج حالة مولد الأرقام العشوائية المشفرة (CSPRNG) مع مصدر إضافي للإنتروبيا. ولذلك، فهي ليست مولدات أرقام عشوائية "خالصة"، بمعنى أن الناتج لا يتحدد كليًا بحالتها الأولية. تهدف هذه الإضافة إلى منع الهجمات حتى في حال اختراق الحالة الأولية. [ أ ]

المعايير

تم توحيد معايير العديد من مولدات الأرقام العشوائية المشفرة (CSPRNGs). على سبيل المثال:

يحتوي هذا المعيار المسحوب على أربعة مولدات أرقام عشوائية زائفة. اثنان منها غير مثيرين للجدل ومثبتان: مولدات أرقام عشوائية زائفة محصورة تسمى Hash_DRBG [ 24 ] وHMAC_DRBG. [ 25 ]

يعتمد مولد الأرقام العشوائية الزائفة الثالث في هذا المعيار، CTR DRBG ، على تشفير كتلي يعمل في وضع العداد . يتميز بتصميم غير مثير للجدل، ولكنه أثبت أنه أضعف من حيث تمييز الهجمات، مقارنةً بمستوى أمان التشفير الكتلي الأساسي عندما يكون عدد البتات الناتجة من هذا المولد أكبر من اثنين مرفوعًا لقوة حجم كتلة التشفير الكتلي الأساسي بالبتات. [ 26 ]

عندما يساوي الحد الأقصى لعدد البتات الناتجة من مولد الأرقام العشوائية الزائفة هذا حجم الكتلة 2^3 ، فإن الناتج يحقق مستوى الأمان المتوقع رياضيًا والذي يُفترض أن يولده حجم المفتاح، ولكن يتبين أن الناتج لا يمكن تمييزه عن مولد أرقام عشوائية حقيقي. [ 26 ] وعندما يكون الحد الأقصى لعدد البتات الناتجة من مولد الأرقام العشوائية الزائفة هذا أقل من ذلك، يتم تحقيق مستوى الأمان المتوقع ويبدو الناتج غير قابل للتمييز عن مولد أرقام عشوائية حقيقي. [ 26 ]

يُشار في المراجعة التالية إلى أن قوة الأمان المزعومة لـ CTR_DRBG تعتمد على الحد من العدد الإجمالي لطلبات الإنشاء والبتات المقدمة لكل طلب إنشاء.

يُطلق على مولد الأرقام العشوائية الزائفة الرابع والأخير في هذا المعيار اسم Dual EC DRBG . وقد ثبت أنه غير آمن تشفيرياً، ويُعتقد أنه يحتوي على ثغرة أمنية من نوع kleptographic تابعة لوكالة الأمن القومي الأمريكية. [ 27 ]

  • NIST SP 800-90A Rev.1
هذا في الأساس هو NIST SP 800-90A مع إزالة Dual_EC_DRBG، وهو بديل للمعيار المسحوب.
  • ANSI X9.17-1985 الملحق ج
  • ANSI X9.31-1998 الملحق أ.2.4
  • ANSI X9.62-1998 الملحق أ.4، تم إلغاؤه بواسطة ANSI X9.62-2005، الملحق د (HMAC_DRBG)

يحتفظ المعهد الوطني للمعايير والتكنولوجيا (NIST) بمرجع جيد . [ 28 ]

توجد أيضاً معايير للاختبار الإحصائي لتصميمات مولدات الأرقام العشوائية المشفرة الجديدة:

  • مجموعة اختبارات إحصائية لمولدات الأرقام العشوائية وشبه العشوائية ، منشور خاص من المعهد الوطني للمعايير والتكنولوجيا 800-22. [ 29 ]

ثغرات أمنية

باب خلفي خفي من نوع "كليبتوغرافي" تابع لوكالة الأمن القومي الأمريكية في مولد الأرقام العشوائية الزائفة Dual_EC_DRBG

ذكرت صحيفتا الغارديان ونيويورك تايمز في عام 2013 أن وكالة الأمن القومي الأمريكية (NSA) أدخلت ثغرة أمنية في مولد الأرقام العشوائية الزائفة (PRNG) الخاص بمعيار NIST SP 800-90A ، مما يسمح لها بفك تشفير المواد المشفرة باستخدام خوارزمية Dual EC DRBG بسهولة . وأشارت الصحيفتان [ 30 ] [ 31 ] إلى أنه، كما اشتبه خبراء الأمن المستقلون منذ فترة طويلة [ 32 ] ، كانت وكالة الأمن القومي تُدخل ثغرات في معيار CSPRNG 800-90؛ وقد تأكد ذلك لأول مرة من خلال إحدى الوثائق السرية للغاية التي سربها إدوارد سنودن إلىصحيفة الغارديان . عملت وكالة الأمن القومي سرًا للحصول على موافقة على نسختها الخاصة من مسودة معيار الأمن الصادر عن NIST للاستخدام العالمي في عام 2006. وتنص الوثيقة المسربة على أنه "في نهاية المطاف، أصبحت وكالة الأمن القومي هي الجهة الوحيدة المسؤولة عن التحرير". على الرغم من الاحتمالية المعروفة لوجود ثغرة أمنية في برنامج Dual_EC_DRBG، بالإضافة إلى عيوب أخرى معروفة، استمرت عدة شركات، مثل RSA Security، في استخدام هذا البرنامج حتى تم تأكيد وجود الثغرة الأمنية في عام 2013. [ 33 ] وقد تلقت RSA Security مبلغ 10 ملايين دولار من وكالة الأمن القومي الأمريكية (NSA) مقابل ذلك. [ 34 ]

هجوم جامعة هونغ كونغ

في 23 أكتوبر 2017، كشف كل من شانان كوهني ، وماثيو غرين ، وناديا هينينجر ، خبراء التشفير في جامعة بنسلفانيا وجامعة جونز هوبكنز ، عن تفاصيل هجوم DUHK (لا تستخدم مفاتيح مُضمنة في الكود) على بروتوكول WPA2، حيث يستخدم مُصنّعو الأجهزة مفتاحًا أوليًا مُضمنًا في الكود لخوارزمية ANSI X9.31 RNG، مُشيرين إلى أنه "بإمكان المُهاجم استخدام أسلوب التجربة والخطأ لفك تشفير البيانات المُشفّرة لاكتشاف بقية مُعاملات التشفير واستنتاج مفتاح التشفير الرئيسي المُستخدم لتشفير جلسات الويب أو اتصالات الشبكة الخاصة الافتراضية (VPN)". [ 35 ] [ 36 ]

آلة التشفير اليابانية الأرجوانية

خلال الحرب العالمية الثانية ، استخدمت اليابان آلة تشفير للاتصالات الدبلوماسية؛ وتمكنت الولايات المتحدة من فك تشفيرها وقراءة رسائلها ، ويرجع ذلك في الغالب إلى أن "القيم الرئيسية" المستخدمة لم تكن عشوائية بما فيه الكفاية. [ 37 ]

مراجع

  1. تم التشكيك في استخدام مزج الإنتروبيا بعد تهيئة CSPRNG بواسطة دانيال ج. بيرنشتاين . [ 22 ]
  1. ↑ كاتز ، جوناثان؛ ليندل، يهودا (2008). مقدمة في التشفير الحديث . مطبعة CRC. ص 70. ISBN  978-1584885511.
  2. أندرو تشي-تشيه ياو . نظرية وتطبيقات دوال الباب الخلفي . مؤرشف في 15 سبتمبر 2019 على موقع Wayback Machine . في وقائع الندوة الثالثة والعشرين لمعهد مهندسي الكهرباء والإلكترونيات حول أسس علوم الحاسوب، 1982.
  3. ستانكوفسكي، بول (2010). "المميزات الجشعة وكاشفات عدم العشوائية". التقدم في علم التشفير - إندو كريبت 2010. سلسلة محاضرات في علوم الحاسوب. المجلد 6498. الصفحات 210-226 . doi : 10.1007/978-3-642-17401-8_16 . ISBN   978-3-642-17400-1.
  4. أوماسون، جان فيليب (veorq) (12 نوفمبر 2015). "تعليق على: تغيير Siphash لاستخدام أحد المتغيرات الأسرع للخوارزمية (Siphash13، Highwayhash) · المشكلة رقم 29754 · rust-lang/rust" . GitHub . مؤرشف من الأصل في 28 فبراير 2024. تم الاسترجاع في 28 فبراير 2024. مصمم SipHash هنا، لم أغير رأيي بشأن SipHash-1-3 :-) [...] هناك "مميز" في 4 جولات [...]، أو ببساطة تحيز إحصائي يظهر عند وجود نمط اختلاف محدد في مدخلات تسلسل الجولات الأربع. لكن لا يمكنك إدخال هذا النمط في SipHash-1-3 لأنك لا تتحكم في جميع الحالات. وحتى لو تمكنت من إدخال هذا النمط، فلن يكون التحيز قابلاً للاستغلال على أي حال. 
  5. 1 2 كيلسي، جون؛ شناير، بروس؛ فاغنر، ديفيد؛ هول، كريس (1998). "هجمات تحليل الشفرات على مولدات الأرقام العشوائية الزائفة". التشفير السريع للبرمجيات (PDF) . برلين، هايدلبرغ: سبرينغر برلين هايدلبرغ. doi : 10.1007/3-540-69710-1_12 . ISBN 978-3-540-64265-7ISSN 0302-9743 . مؤرشف (PDF) من الأصل بتاريخ 27 أغسطس 2023. تم الاطلاع عليه بتاريخ 11 سبتمبر 2023 . 
  6. غولدريتش، أوديد (2001)، أسس التشفير 1: الأدوات الأساسية ، كامبريدج: مطبعة جامعة كامبريدج، ISBN 978-0-511-54689-1، تعريف 3.3.1.
  7. غولدريتش، أوديد (2001)، أسس التشفير 1: الأدوات الأساسية ، كامبريدج: مطبعة جامعة كامبريدج، ISBN 978-0-511-54689-1، النظرية 3.3.7.
  8. دوديس، يفغيني، ملاحظات المحاضرة 5 من مقدمة في علم التشفير (ملف PDF) ، مؤرشف (ملف PDF) من الأصل في 5 مارس 2016 ، تم استرجاعه في 3 يناير 2016، تعريف 4.
  9. ميكلوس سانثا، أوميش ف. فازيراني (24 أكتوبر 1984). "توليد متواليات شبه عشوائية من مصادر عشوائية قليلاً" (ملف PDF) . وقائع الندوة الخامسة والعشرين لمعهد مهندسي الكهرباء والإلكترونيات حول أسس علوم الحاسوب . جامعة كاليفورنيا . الصفحات 434-440 . ISBN  0-8186-0591-Xتمت أرشفة الملف (PDF) من النسخة الأصلية بتاريخ 10 سبتمبر 2006. تم الاطلاع عليه بتاريخ 29 نوفمبر 2006 .
  10. جون فون نيومان (1963-03-01). "تقنيات متنوعة للاستخدام مع الأرقام العشوائية". الأعمال الكاملة لجون فون نيومان . دار بيرغامون للنشر . الصفحات 768-770 . ISBN  0-08-009566-6.{{cite book}}عدم توافق رقم ISBN / التاريخ ( مساعدة )
  11. ^ كلايدرماخر، ديفيد. كلايدرماخر، مايك (2012). أمن الأنظمة المدمجة: طرق عملية لتطوير البرمجيات والأنظمة الآمنة والمأمونة . إلسفير. ص. 256. ردمك  9780123868862.
  12. كوكس، جورج؛ دايك، تشارلز؛ جونستون، دي جيه (2011). "مولد الأرقام العشوائية الرقمية من إنتل (DRNG)" (ملف PDF) .
  13. بيرنشتاين، دانيال ج. "23 يوليو 2017: مولدات الأرقام العشوائية ذات مسح المفاتيح السريع: محاولة لتنظيف عدة فوضى في آن واحد. #rng #forwardsecrecy #urandom #cascade #hmac #rekeying #proofs" . مؤرشف من الأصل في 24 مارس 2024. تم الاسترجاع في 27 مارس 2024 .
  14. "تعديل ملف random.c على GitHub" . GitHub. 2 يوليو 2016. مؤرشف من الأصل في 19 سبتمبر 2023. تم الاطلاع عليه في 28 مارس 2017 .
  15. "مولد الأرقام العشوائية في لينكس 5.17 يشهد تحسناً في السرعة، ويتحول من SHA1 إلى BLAKE2s - فورونيكس" . www.phoronix.com . مؤرشف من الأصل بتاريخ 3 ديسمبر 2024. تم الاطلاع عليه بتاريخ 4 مارس 2024 .
  16. "سجل CVS لملف arc4random.c" . CVS. 1 أكتوبر 2013. مؤرشف من الأصل في 19 سبتمبر 2023. تم الاطلاع عليه في 28 مارس 2017 .
  17. "سجل CVS لملف arc4random.c" . CVS. ١٦ نوفمبر ٢٠١٤. مؤرشف من الأصل في ٢٩ مارس ٢٠١٧. تم الاطلاع عليه في ٢٨ مارس ٢٠١٧ .
  18. "ملاحظات إصدار FreeBSD 12.0-RELEASE: مكتبات وقت التشغيل وواجهة برمجة التطبيقات" . FreeBSD.org . 5 مارس 2019. مؤرشف من الأصل في 21 ديسمبر 2019. تم الاطلاع عليه في 24 أغسطس 2019 .
  19. مينيز، ألفريد ؛ فان أورشوت، بول ؛ فانستون، سكوت (1996). "الفصل 5: البتات والمتتاليات شبه العشوائية" (ملف PDF) . دليل التشفير التطبيقي . مطبعة CRC. مؤرشف من الأصل بتاريخ 16 فبراير 2012. تم الاطلاع عليه بتاريخ 5 يونيو 2009 .
  20. يونغ، آدم؛ يونغ، موتي (1 فبراير 2004). التشفير الخبيث: كشف علم الفيروسات المشفرة . جون وايلي وأولاده . القسم 3.5.1. ISBN 978-0-7645-4975-5أُرشف من المصدر الأصلي بتاريخ 27-05-2009 . تم الاطلاع عليه بتاريخ 16-06-2010 .
  21. كيلسي، جون؛ شناير، بروس؛ فيرغسون، نيلز (أغسطس 1999). "يارو-160: ملاحظات حول تصميم وتحليل مولد الأرقام العشوائية الزائفة المشفرة يارو" (ملف PDF) . ورشة العمل السنوية السادسة حول مجالات مختارة في علم التشفير . سلسلة محاضرات في علوم الحاسوب. المجلد 1758. الصفحات 13-33 . doi : 10.1007/3-540-46513-8_2 . ISBN   978-3-540-67185-5تمت أرشفة الملف (PDF) من النسخة الأصلية بتاريخ 20 مارس 2024. تم الاطلاع عليه بتاريخ 20 مارس 2024 .
  22. دانيال ج. بيرنشتاين (5 فبراير 2014). "cr.yp.to: 2014.02.05: هجمات الإنتروبيا!" . مؤرشف من الأصل في 5 فبراير 2014. تم الاطلاع عليه في 4 مارس 2024. هل هناك أي حجة جدية تُبرر إضافة إنتروبيا جديدة باستمرار؟ تزعم صفحة دليل /dev/urandom في لينكس أنه بدون إنتروبيا جديدة، يكون المستخدم "نظريًا عرضة لهجوم تشفيري"، ولكن (كما ذكرتُ في مناسبات مختلفة) هذه حجة سخيفة.
  23. "FIPS 186-4" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 27-12-2016 . تم الاطلاع عليه بتاريخ 30-07-2016 .
  24. كان، ويلسون (4 سبتمبر 2007). "تحليل الافتراضات الأساسية في معايير NIST DRBGs" (ملف PDF) . مؤرشف (ملف PDF) من الأصل في 2 فبراير 2017. تم الاطلاع عليه في 19 نوفمبر 2016 .
  25. يي، كاثرين كينرو (أبريل 2016). "مولد الأرقام العشوائية الزائفة سيئ السمعة: التحقق الرسمي من مولد الأرقام العشوائية الزائفة HMAC-DRBG" (ملف PDF) . مؤرشف (PDF) من الأصل في 20 نوفمبر 2016. تم الاطلاع عليه في 19 نوفمبر 2016 .
  26. 1 2 3 كامبانيا، ماثيو ج. (1 نوفمبر 2006). "حدود الأمان لمولد البتات العشوائية الحتمي القائم على دفتر رموز المعهد الوطني للمعايير والتكنولوجيا" (ملف PDF) . مؤرشف (ملف PDF) من الأصل في 2 فبراير 2017. تم الاطلاع عليه في 19 نوفمبر 2016 .
  27. بيرلروث، نيكول (10 سبتمبر/أيلول 2013). "الحكومة تعلن عن خطوات لاستعادة الثقة في معايير التشفير" . صحيفة نيويورك تايمز . مؤرشف من الأصل في 12 يوليو/تموز 2014. تم الاطلاع عليه في 19 نوفمبر/تشرين الثاني 2016 .
  28. قسم أمن الحاسوب، مختبر تكنولوجيا المعلومات (24 مايو 2016). "رقم عشوائي" . مركز أبحاث أمن الحاسوب | المعهد الوطني للمعايير والتكنولوجيا . مؤرشف من الأصل في 2 فبراير 2015. تم الاطلاع عليه في 26 نوفمبر 2014 .
  29. روخين، أندرو؛ سوتو، خوان؛ نيشفاتال، جيمس؛ سميد، مايلز؛ باركر، إيلين؛ لي، ستيفان؛ ليفنسون، مارك؛ فانجيل، مارك؛ بانكس، ديفيد؛ هيكرت، ن.؛ دراي، جيمس؛ فو، سان؛ باشام، لورانس (30 أبريل 2010). "مجموعة اختبارات إحصائية لمولدات الأرقام العشوائية وشبه العشوائية للتطبيقات التشفيرية" . المعهد الوطني للمعايير والتكنولوجيا (NIST ). doi : 10.6028/NIST.SP.800-22r1a . مؤرشف من الأصل في 26 مايو 2023. تم الاسترجاع في 23 مايو 2023 - عبر csrc.nist.gov.
  30. بورجر، جيمس؛ غرينوالد، غلين (6 سبتمبر 2013). "كُشِفَ: كيف تُخِلّ وكالات التجسس الأمريكية والبريطانية بخصوصية الإنترنت وأمنه" . صحيفة الغارديان . مؤرشف من الأصل في 18 سبتمبر 2013. تم الاطلاع عليه في 7 سبتمبر 2013 .
  31. بيرلروث، نيكول (5 سبتمبر 2013). "وكالة الأمن القومي قادرة على إحباط الضمانات الأساسية للخصوصية على الإنترنت" . صحيفة نيويورك تايمز . مؤرشف من الأصل في 8 سبتمبر 2013. تم الاطلاع عليه في 7 سبتمبر 2013 .
  32. شناير، بروس (15 نوفمبر 2007). "هل وضعت وكالة الأمن القومي بابًا خلفيًا سريًا في معيار التشفير الجديد؟" . مجلة وايرد . مؤرشف من الأصل في 24 أكتوبر 2012. تم الاطلاع عليه في 7 سبتمبر 2013 .
  33. غرين، ماثيو (20 سبتمبر 2013). "شركة RSA تحذر المطورين من استخدام منتجاتها" . بعض الأفكار حول هندسة التشفير . مؤرشف من الأصل في 10 أكتوبر 2013. تم الاطلاع عليه في 23 سبتمبر 2013 .
  34. مين، جوزيف (20 ديسمبر 2013). "حصري: عقد سري يربط وكالة الأمن القومي الأمريكية برائد صناعة الأمن" . رويترز . مؤرشف من الأصل في 24 سبتمبر 2015. تم الاطلاع عليه في 10 يوليو 2021 .
  35. شانان كوهني ؛ ماثيو د. غرين ؛ نادية هينينجر . "هجمات استعادة الحالة العملية ضد تطبيقات مولد الأرقام العشوائية القديمة" (ملف PDF) . duhkattack.com . مؤرشف (PDF) من الأصل بتاريخ 5 نوفمبر 2017. تم الاطلاع عليه بتاريخ 27 أكتوبر 2017 .
  36. "هجوم تشفير على جامعة دوق هونغ كونغ يستعيد مفاتيح التشفير ويكشف اتصالات VPN" . slashdot.org . 25 أكتوبر 2017. مؤرشف من الأصل في 4 أكتوبر 2018. تم الاطلاع عليه في 25 أكتوبر 2017 .
  37. بالسيوناس، ماريوس (18 مارس 2004). "آلة اليابان الأرجوانية" (ملف PDF) . جامعة ديبول . مؤرشف من الأصل (ملف PDF) بتاريخ 30 مارس 2025. تاريخ الاسترجاع: 7 أكتوبر 2025 .