إجراءات الحماية: الإخفاء والتعمية وكود الزمن الثابت
نفّذ الإخفاء وتعمية النقاط والمقارنات ذات الزمن الثابت
إجراءات الحماية: الإخفاء والتعمية وكود الزمن الثابت درس مجاني في Cryptology Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cryptology Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
العائلات الثلاث للتدابير المضادة
تنقسم التدابير المضادة للقنوات الجانبية إلى ثلاث عائلات: التقنيع (عشوَنة القيم الوسيطة)، والتعمية (عشوَنة المدخلات والمخرجات)، والشيفرة بزمن ثابت (إزالة التوقيت المعتمد على البيانات).
التقنيع البولياني
طبّق XOR على كل قيمة وسيطة باستخدام قناع عشوائي جديد r. عالج القيمة المقنّعة x⊕r وأزل القناع في النهاية. وهكذا يعتمد أثر القدرة الآن على x⊕r بدلًا من x.
التقنيع الحسابي لعمليات الضرب
بالنسبة إلى العمليات الضربية، استخدم أقنعة ضربية: استبدل x بـ x·r mod p. يجب أن يكون مخطط التقنيع متوافقًا مع كل عملية جبرية في الخوارزمية.
تعمية RSA
قبل فك تشفير النص المشفر c، اختر قيمة عشوائية r واحسب c' = c·r^e mod n. فك تشفير c' للحصول على m·r mod n، ثم اقسم على r. لا ترى عملية الرفع إلى الأس الفعلية قيمة c الأصلية مطلقًا.
تعمية نقاط ECC
عشْوِن الإحداثيات الإسقاطية: بدلًا من النقطة الأفينية (x,y)، استخدم (λx : λy : λ) لقيمة عشوائية λ. يعمل الضرب القياسي على إحداثيات معشّاة، مما يغيّر آثار القدرة في كل مرة.
قواعد البرمجة بزمن ثابت
1. لا تستخدم فروعًا تعتمد على الأسرار. 2. لا تستخدم مؤشرات ذاكرة تعتمد على الأسرار. 3. لا تُنهِ التنفيذ مبكرًا. 4. استخدم العمليات ذات الزمن الثابت الموفرة من المنصة متى توفرت (مثل crypto_verify_32).
المقارنة بزمن ثابت في Python
لا تستخدم == أو hmac.compare_digest مع البايتات الخام في المسارات الحساسة للتوقيت. استخدم:
import hmac
def constant_time_compare(a: bytes, b: bytes) -> bool:
"""Uses HMAC double-HMAC trick for constant-time equality."""
# hmac.compare_digest is constant-time in CPython
return hmac.compare_digest(a, b)
# Example
secret = b"expected_mac_value"
received = b"attacker_provided__"
print(constant_time_compare(secret, received)) # False, but no timing leakمشكلات المصرّفات والبنى المعمارية
قد تحسّن المصرّفات الشيفرة ذات الزمن الثابت بطريقة تزيل خصائصها. استخدم عمليات تخزين volatile أو حواجز ذاكرة أو تعليمات التجميع المضمنة. توفر مصروفات C الخيار -fno-delete-null-pointer-checks، لكنها لا توفر ضمانًا عامًا للزمن الثابت.
التبديل والعمليات الوهمية
بدّل ترتيب عمليات البحث في S-box عشوائيًا، أو أدرج عمليات وهمية تستهلك القدرة من دون التأثير في النتيجة. يرفع ذلك مستوى صعوبة هجمات DPA، لكنه لا يزيل التسرب.
التدابير المضادة العتادية
تطبّق مسرّعات التشفير المخصصة (ARM TrustZone وSTM32 hardware AES) التقنيع داخل السيليكون. وتضيف تطبيقات ASIC تدريعًا معدنيًا وشبكة نشطة لاكتشاف المجسات الفيزيائية.
اختبار المعرفة
ما التدبير المضاد الذي يمنع هجمات توقيت RSA عبر عشوَنة النص المشفر قبل الرفع إلى الأس؟
مراجعة الدرس
يعشّي التقنيع القيم الوسيطة، وتعشّي التعمية مدخلات RSA/ECC، وتزيل الشيفرة بزمن ثابت الفروع المعتمدة على التوقيت. ويجمع مبدأ الدفاع متعدد الطبقات بين هذه الأساليب الثلاثة. وتطبّق مسرّعات العتاد هذه الأساليب داخل السيليكون لتوفير أقوى الضمانات.
تعلم Cryptology Academy مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 67
- الدروس
- 261
الأسئلة الشائعة
هل درس «إجراءات الحماية: الإخفاء والتعمية وكود الزمن الثابت» مجاني؟
نعم — نص درس «إجراءات الحماية: الإخفاء والتعمية وكود الزمن الثابت» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cryptology Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cryptology Academy 4 دروس في المجموع.
ماذا ستتعلم في «إجراءات الحماية: الإخفاء والتعمية وكود الزمن الثابت»؟
نفّذ الإخفاء وتعمية النقاط والمقارنات ذات الزمن الثابت تتمرن على Cryptology Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cryptology Academy؟
لا تُشترط خبرة سابقة. Cryptology Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «إجراءات الحماية: الإخفاء والتعمية وكود الزمن الثابت»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cryptology Academy هذا؟
نعم. كل درس في Cryptology Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- هجمات التوقيت: استخراج المفاتيح من زمن التنفيذ
- تحليل الطاقة: SPA وDPA
- القنوات الجانبية الكهرومغناطيسية والصوتية
- إجراءات الحماية: الإخفاء والتعمية وكود الزمن الثابت