
مصنوعات تحليل تشفير قابلة لإعادة الإنتاج لهجمات استرداد المفتاح الواحد على AES بعدد جولات مخفّض، بما في ذلك استرداد المفتاح عبر الصندوق الأسود، وبحث DDT-Gray، وذواكر التخزين المؤقت لـ S-box، والبراهين الرسمية بلغة Lean.
الكود المصدري لكل تجربة مذكورة في الورقة. ولا يتم تضمين أي مخرجات قياس أو جدول مُجهز مسبقًا: كل برنامج يطبع أو يكتب نتائجه الخاصة، لذلك يمكن إعادة توليد كل رقم من الصفر.
تعتمد ادعاءات استرداد المفتاح في الورقة على 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 عند استخدام ملف ترويسة محلي). الاستخدام موثق في تعليق الترويسة
لكل ملف.
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،
)، الجسر على آثار AES حقيقية ()،
سلوك الحدي ()، عشوائية المفتاح الخطأ
()، التكتل / الإنتروبيا التصادمية ()،
انعكاس جدول المفاتيح وراء CompleteKey ()، و
عرض الإيجابية الكاذبة لبادئة البصمة ().
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).
| المسار | الفحوصات | الموقع في الورقة |
|---|
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 | الملحق: الحد الأدنى |
verify_Imn.pytest_bridge_aes.py0^{-1}test_zeroinv.pytest_wrongkey.pytest_clumping*.pykeysched_solve.pyfp_concat_demo.py