
cryptography-research-demo — Updated!
مصنوعات تحليل تشفير قابلة لإعادة الإنتاج لهجمات استرداد المفتاح الواحد على AES بعدد جولات مخفّض، بما في ذلك استرداد المفتاح عبر الصندوق الأسود، وبحث DDT-Gray، وذواكر التخزين المؤقت لـ S-box، والبراهين الرسمية بلغة Lean.
ملحقات بحث "المزيد من هجمات استرداد المفتاح الأحادي على AES ذي الجولات المقلّصة"
الكود المصدري لكل تجربة مذكورة في الورقة. ولا يتم تضمين أي مخرجات قياس أو جدول مُجهز مسبقًا: كل برنامج يطبع أو يكتب نتائجه الخاصة، لذلك يمكن إعادة توليد كل رقم من الصفر.
تعتمد ادعاءات استرداد المفتاح في الورقة على experiments/؛ أما c/ وpython/ و
rust/ فتتحقق من المكونات الفردية (المتطابقات، الثوابت، حقائق DDT
وصحة الذاكرة المؤقتة وإحصائيات العشوائية) وليست هجمات.
experiments/
انظر experiments/README.md.
sr7226-e2e/— استرداد كامل للمفتاح في الصندوق الأسود على AES SR(7,2,2,6) (حالة 2x2، كلمات 6 بت، مفتاح 24 بت) مع الجدول الكامل غير المتصل، عبر ثلاثة متغيرات على قاعدة كود واحدة: نسختنا، وDerbez–Fouque–Jean مع تحسينات تعداد الجدول لدينا، وDerbez–Fouque–Jean كما نُشر.aes128-measured/— هجوم AES-128 الحقيقي ذو السبع جولات بوحدة واحدة في كل مرة: إدخالات حقيقية للجدول غير المتصل (جدول جزئي)، دورات لكل مرشح عبر الإنترنت للمتغيرات الثلاثة، ومقامات AES، ومعدلات الإيجابية الكاذبة والتغطية للبصمة المرتبة، والإسقاط إلى العدد الكامل.
c/
ملف واحد أو مكتفٍ بذاته لكل مجلد؛ قم بالبناء باستخدام
gcc -O3 -march=native -fopenmp -o <bin> <file.c> -lm (أضف المجلد
كخيار -I عند استخدام ملف ترويسة محلي). الاستخدام موثق في تعليق الترويسة
لكل ملف.
| المسار | الفحوصات | الموقع في الورقة |
|---|---|---|
clump.c, chi_clump.c | الإنتروبيا التصادمية لبصمتي I_{m,n} وχ★ | خصائص البصمة؛ الملحق: الإنتروبيا التصادمية |
wrongkey.c | عشوائية المفتاح الخطأ، مسح شامل لـ k_6 عبر 2^32 | الملحق: عشوائية المفتاح الخطأ |
fp_solve.c | حل DDT وتعداد بتات التفرع المستخدمة في بناء الجدول | §DDT-Gray |
bridge-consistency/bc_impl_{a,b}.c, bc_truehit.c | تطبيقان مستقلان لإحصاء القبول الخاطئ لاتساق الجسر | الخوارزمية: BridgeConsistency |
ddt-gray/ddt_gray_*.c | مسير Gray المراعي لـ DDT: المسار التدريجي يعادل إعادة الحساب الباردة، التكلفة المطفأة لمربع S، التوقيت | §DDT-Gray، الملحق: DDT-Gray |
sb-cache/sbc_repro.c | قابلية فصل XOR خلف مخابئ W/UU لمربعات S؛ الصيغة المغلقة c_iSB | § مخابئ S-box |
mobius-honest/honest_online.c | الجانب المباشر مع |K_on| = 8: إعادة بناء مجموعة δ من k_{-1} فقط، ومعدل بقاء المفتاح الخطأ | § ليمات المكونات |
mobius-honest/honest_rebound.c, degen_analysis.c, saes_imn.c | فحوصات خط أنابيب للارتداد غير المتصل ولمطابقة I_{m,n} على AES صغير الحجم؛ الاختصارات ذات المفتاح المعروف موثقة في كل ترويسة — هذه فحوصات خط أنابيب، وليست استردادات مفاتيح | § ليمات المكونات، الملحق: الحالات المنحطة |
floor/verify_ls_fp.c, floor/verify_incompat.c, floor/a1_floor.py | أرضية البحث لـ |K_on| = 8: dim LS(fp) ∈ {0,8} وT ≥ 2^88.67 | الملحق: الحد الأدنى |
python/
بايثون 3. python/a1/ يعتمد على المكتبة القياسية فقط؛ بينما تتطلب سكربتات
الاختبار العلوية وfigures/ وexperiments/aes128-measured/phi/ مكتبات
numpy وscipy وmatplotlib (pip install -r requirements.txt،
بإصدارات محددة تم التحقق منها). يصف python/a1/README.md التنفيذ
المرجعي متعدد الطبقات (gf256.py، aes7r.py، chi_canon.py،
prop2.py، المتجهات الذهبية في test_vectors.py). سكربتات المستوى العلوي
هي فحوصات لادعاء واحد: ثوابت الجسر (test_invariants.py،
verify_Imn.py)، الجسر على آثار AES حقيقية (test_bridge_aes.py)،
سلوك 0^{-1} الحدي (test_zeroinv.py)، عشوائية المفتاح الخطأ
(test_wrongkey.py)، التكتل / الإنتروبيا التصادمية (test_clumping*.py)،
انعكاس جدول المفاتيح وراء CompleteKey (keysched_solve.py)، و
عرض الإيجابية الكاذبة لبادئة البصمة (fp_concat_demo.py).
rust/
نفّذ cargo build --release، ثم ./target/release/repro <exp> [args]؛ كل
تشغيلة تضيف كتلة بطابع زمني تحت rust/results/. قائمة التجارب
وما يتحقق منه كل منها موجودة في rust/src/main.rs: تغطي e1–e13
متطابقة الجسر، وحقائق الزمرة والمشارك، والجسر الصادق على آثار AES-128
الحقيقية، وعشوائية المفتاح الخطأ، والإنتروبيا التصادمية، وثبات χ★، وطيف DDT،
وسلامة AES، وتوقيت كل إدخال، وخط أنابيب SR(7,4,4,4).