
التشفير من تماثلات الحزم غير الخطية على الرسوم البيانية
تشفير ما بعد الكم قائم على الحُزَم عبر تبديلات الحقول المنتهية متجهة القيم
أولية تشفيرية مبنية على مسألة عكس تشكل الحُزَم غير الخطي (NL-SMIP): نظام متعدد الحدود بمعاملات سرية مقترنة بتماثل الحُزَم على البيانيات.
الورقة (الإصدار 3): ل. آلانيتز بينتوس, "تشفير آلانيتز الإصدار 3: تشفير ما بعد الكم قائم على الحُزَم عبر تبديلات الحقول المنتهية متجهة القيم", 2026.
الإصدار 2 أدخل σ_SPN لهزيمة هجوم التحجيم الذي كسر الإصدار 1. ومع ذلك، الإصدار 2 نفسه تم كسره بهجوم أكثر عمومية يجمع بين الاستيفاء متعدد الحدود وحساب أساس غروبنر: أي تشفير حتمي من الصيغة c = As + Bσ(As) مع σ من درجة متعددة الحدود محدودة يسمح بهجوم استرجاع المفتاح CPA. انظر القسم 3 من الورقة و experiments/02_cpa_attack_analysis.py.
الإصدار 3 يعالج هذا على المستوى الهيكلي:
| الميزة | v2 | v3 |
|---|---|---|
| التشفير | حتمي | احتمالي (nonce + PRG) |
| σ | SPN مكون-بمكون على F_p | متجه القيم: π_e(x) = x^e في F_{p^d} |
| المفتاح الثانوي | مصفوفة B_v ∈ GL(d, F_p) | عدد قياسي β_v ∈ F_{p^d}^* |
| فك التشفير | القوة الغاشمة على F_p^d | التعميل ذو المتغير الواحد في F_{p^d}[τ] |
| التجانس التفاضلي لـ σ | δ ≥ 2p (~34 لـ p=17) | δ ∈ {2, 4} (APN أو شبه APN) |
| هدف IND-CCA | غير قابل للتطبيق | تم تحقيقه عبر تحويل FO |
تم اختبار 14 تكوينًا شبه منتظم، تطابقت 14 تمامًا مع توقعات هيلبرت-بوانكاريه. لا توجد ثغرة MinRank بموجب النظرية 6.5 (حجة المركز). لم يتم اكتشاف مفاتيح ضعيفة في 69 تكوينًا.
يتم ترميز الرسائل كمقاطع عالمية لحزمة خلوية على بيان برتبة دورة β_1 ≥ 1. التشفير لكل عقدة:
r_v = PRG(nonce, v)
u_v = ι(A_v · s_v + r_v) ∈ F_{p^d}
w_v = β_v · u_v + (β_v − 1) · (L · u_v + 1)^e
c_v = ι^{-1}(w_v) − r_v
حيث A_v ∈ GL(d, F_p), β_v ∈ F_{p^d}^*, و L ∈ F_{p^d}^* عام. يتحلل فك التشفير إلى إيجاد جذور γ·τ^e + α·τ − (c′ + α) = 0 في F_{p^d}[τ] عبر كانتور-تسنهوس، ثم التصفية عبر الاتساق المتماثل في جميع العُقد غير الجذرية n − 1.
| المجموعة | d | log₂ p | n | e | |sk| | |pk| | |c| | الأمان | |---|---|---|---|---|---|---|---|---| | Demo | 2 | 4 | 4 | 17 | 30 B | 10 B | 16 B | غير آمن | | أكاديمي | 3 | 16 | 8 | 17 | 0.3 KB | 30 B | 96 B | ~80 بت كلاسيكي | | PQ-128 | 6 | 61 | 32 | 17 | 16 KB | 64 B | 1.5 KB | ≥128 بعد جروفر | | PQ-256 | 8 | 127 | 64 | 17 | 170 KB | 128 B | 8 KB | ≥256 بعد جروفر |
git clone https://github.com/QuantuSync/alaniz-cipher.git
cd alaniz-cipher
pip install -e .[test]
# Run the v2 demo (historical)
python -m alaniz.demo.demo_basic
# Run all tests
pytest tests/ -v
# Run v3 verification experiments
python experiments/07_semi_regularity.py
python experiments/08_weak_keys.py
python experiments/09_nonce_robustness.py
python experiments/10_centralizer.py
python experiments/11_kem_verification.py
from alaniz.core.field import FiniteField
from alaniz.core.graph import Graph
from alaniz.core.sheaf import Sheaf
from alaniz.crypto.protocol import ProtocolV3, PublicParamsV3
from alaniz.crypto.kem import KEM
Fp = FiniteField(17)
graph = Graph.cycle(4)
sheaf = Sheaf.random_with_cohomology(graph, dv=2, Fp=Fp)
proto = ProtocolV3(PublicParamsV3.generate(sheaf))
kem = KEM(proto)
sk = kem.keygen()
K, ct = kem.encaps(sk) # sender: random message + shared key
K_recv = kem.decaps(sk, ct) # receiver: same K if valid
assert K == K_recv
alaniz-cipher/
├── alaniz/
│ ├── core/
│ │ ├── field.py # حساب F_p (الإصدار 2، لا يزال مستخدمًا في v1/v2)
│ │ ├── field_ext.py # حساب F_{p^d} عبر galois (الإصدار 3)
│ │ ├── graph.py # طبولوجيا البيان (الأشجار، الدورات، إلخ.)
│ │ └── sheaf.py # حُزَم خلوية + قيود متماثلة
│ ├── crypto/
│ │ ├── sigma.py # خرائط σ: monomial_power (الإصدار 3), id_spn (الإصدار 2), cube/inverse (الإصدار 1)
│ │ ├── protocol.py # بروتوكول (الإصدار 2), ProtocolV3 (الإصدار 3)
│ │ ├── prg.py # SHAKE-256 PRG لاشتقاق nonce (الإصدار 3)
│ │ └── kem.py # فوجيساكي-أوكاموتو → IND-CCA KEM (الإصدار 3)
│ └── demo/
│ └── demo_basic.py # عرض توضيحي للإصدار 2 (تاريخي)
├── experiments/
│ ├── 01-06_*.py # تحليلات الإصدار 1 (تاريخي، ملحق ورقة الإصدار 2)
│ ├── 14_v2_redteam.py # فريق أحمر للإصدار 2 (تاريخي)
│ ├── 07_semi_regularity.py # الإصدار 3: التحقق من هيلبرت-بوانكاريه
│ ├── 08_weak_keys.py # الإصدار 3: مسح 69 تكوينًا للمفاتيح الضعيفة
│ ├── 09_nonce_robustness.py # الإصدار 3: النظرية 6.7
│ ├── 10_centralizer.py # الإصدار 3: النظرية 6.5
│ └── 11_kem_verification.py # الإصدار 3: اختبارات تجريبية لـ KEM IND-CCA
├── tests/
│ ├── test_protocol.py # اختبارات الإصدار 2 (مبقي للاختبار التراجعي)
│ └── test_protocol_v3.py # اختبارات الإصدار 3
├── pyproject.toml
└── README.md
الإصدار 1: تم كسره بواسطة هجوم التحجيم لـ Langa على σ_cube(λy) = λ³ σ_cube(y) (Alaniz 2026، الملحق أ من ورقة الإصدار 3). الاسترجاع في O(d) استعلام.
الإصدار 2: تم كسره بواسطة هجوم الاستيفاء متعدد الحدود + غروبنر ضد أي تشفير حتمي c = As + Bσ(As) بدرجة محدودة σ. بالنسبة لـ d=2, p=17، استرجاع كامل للمفتاح في 20 استعلام CPA وحوالي 5.7 ثانية من حساب SymPy عبر 10/10 حالات عشوائية. انظر experiments/02_cpa_attack_analysis.py والقسم 3 من الورقة.
كلا الصنفين v1 و v2 يظلان متاحين في هذا المستودع للتكاثر التاريخي. لأي استخدام جديد، استخدم ProtocolV3.
@misc{alaniz2026cipherv3,
author = {Alaniz Pintos, Lucas},
title = {The Alaniz Cipher v3: Sheaf-Based Post-Quantum Encryption
via Vector-Valued Finite Field Permutations},
year = {2026},
url = {https://github.com/QuantuSync/alaniz-cipher}
}
أ. رودريغيز لانغا (INECO) لتحليل التشفير للإصدار 1 الذي حفز مسار إعادة التصميم المؤدي إلى الإصدار 2 وفي النهاية إلى الإصدار 3.
Lucas Alaniz Pintos قسم المنتجات الذكية، INECO [email protected] ORCID: 0009-0008-5179-2534
MIT