
ग्राफ पर अरेखीय शीफ मॉर्फिज्म से एन्क्रिप्शन
शीफ-आधारित पोस्ट-क्वांटम एन्क्रिप्शन वेक्टर-मूल्यवान परिमित क्षेत्र क्रमपरिवर्तन के माध्यम से
एक क्रिप्टोग्राफिक प्रिमिटिव जो नॉनलाइनियर शीफ मॉर्फिज्म इनवर्जन प्रॉब्लम (NL-SMIP) पर आधारित है: एक बहुपद प्रणाली जिसमें गुप्त गुणांक ग्राफ पर शीफ कोहोमोलॉजी द्वारा युग्मित होते हैं।
पेपर (v3): L. Alaniz Pintos, "The Alaniz Cipher v3: Sheaf-Based Post-Quantum Encryption via Vector-Valued Finite Field Permutations", 2026.
संस्करण 2 ने σ_SPN पेश किया ताकि स्केलिंग हमले को हराया जा सके जिसने v1 को तोड़ा था। हालाँकि, v2 स्वयं एक अधिक सामान्य हमले से टूट गया है जो बहुपद अंतर्वेशन को Gröbner आधार गणना के साथ जोड़ता है: c = As + Bσ(As) रूप का कोई भी नियतात्मक एन्क्रिप्शन जिसमें σ परिमित बहुपद डिग्री का होता है, एक CPA कुंजी-पुनर्प्राप्ति हमले को स्वीकार करता है। पेपर की धारा 3 और experiments/02_cpa_attack_analysis.py देखें।
संस्करण 3 इस संरचनात्मक स्तर पर संबोधित करता है:
| विशेषता | v2 | v3 |
|---|---|---|
| एन्क्रिप्शन | नियतात्मक | प्रायिक (नॉन्स + PRG) |
| σ | F_p पर घटक-वार SPN | वेक्टर-मूल्यवान: π_e(x) = x^e in F_{p^d} |
| द्वितीयक कुंजी | मैट्रिक्स B_v ∈ GL(d, F_p) | अदिश β_v ∈ F_{p^d}^* |
| डिक्रिप्शन | F_p^d पर ब्रूट फ़ोर्स | F_{p^d}[τ] में एकचर गुणनखंडन |
| σ की विभेदी एकरूपता | δ ≥ 2p (p=17 के लिए ~34) | δ ∈ {2, 4} (APN या लगभग-APN) |
| IND-CCA लक्ष्य | लागू नहीं | FO रूपांतरण के माध्यम से प्राप्त |
14 अर्ध-नियमितता कॉन्फ़िगरेशन का परीक्षण किया गया, 14 हिल्बर्ट-पोंकारे भविष्यवाणियों से बिल्कुल मेल खाते हैं। प्रमेय 6.5 (केंद्रीकरण तर्क) द्वारा कोई MinRank भेद्यता नहीं। 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}[τ] में Cantor-Zassenhaus के माध्यम से खोजने तक सीमित हो जाता है, फिर सभी n − 1 गैर-मूल शीर्षों पर कोहोमोलॉजिकल सुसंगतता के माध्यम से फ़िल्टर करना।
| सेट | d | log₂ p | n | e | |sk| | |pk| | |c| | सुरक्षा | |---|---|---|---|---|---|---|---|---| | डेमो | 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 arithmetic (v2, still used by v1/v2)
│ │ ├── field_ext.py # F_{p^d} arithmetic via galois (v3)
│ │ ├── graph.py # Graph topologies (trees, cycles, etc.)
│ │ └── sheaf.py # Cellular sheaves + cohomology constraints
│ ├── crypto/
│ │ ├── sigma.py # σ maps: monomial_power (v3), id_spn (v2), cube/inverse (v1)
│ │ ├── protocol.py # Protocol (v2), ProtocolV3 (v3)
│ │ ├── prg.py # SHAKE-256 PRG for nonce derivation (v3)
│ │ └── kem.py # Fujisaki-Okamoto → IND-CCA KEM (v3)
│ └── demo/
│ └── demo_basic.py # v2 demo (historical)
├── experiments/
│ ├── 01-06_*.py # v1 analyses (historical, paper v2 Appendix)
│ ├── 14_v2_redteam.py # v2 red team (historical)
│ ├── 07_semi_regularity.py # v3: Hilbert-Poincaré verification
│ ├── 08_weak_keys.py # v3: 69-config weak-key sweep
│ ├── 09_nonce_robustness.py # v3: Theorem 6.7
│ ├── 10_centralizer.py # v3: Theorem 6.5
│ └── 11_kem_verification.py # v3: KEM IND-CCA empirical tests
├── tests/
│ ├── test_protocol.py # v2 tests (kept for regression)
│ └── test_protocol_v3.py # v3 tests
├── pyproject.toml
└── README.md
v1: σ_cube(λy) = λ³ σ_cube(y) पर Langa के स्केलिंग हमले द्वारा टूटा (Alaniz 2026, पेपर v3 का परिशिष्ट A)। O(d) प्रश्नों में पुनर्प्राप्ति।
v2: सीमित-डिग्री σ के साथ किसी भी नियतात्मक c = As + Bσ(As) के विरुद्ध बहुपद अंतर्वेशन + Gröbner हमले द्वारा टूटा। 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}
}
A. Rodríguez Langa (INECO) को v1 के क्रिप्टैनालिसिस के लिए धन्यवाद, जिसने v2 और अंततः v3 तक ले जाने वाले पुनर्डिज़ाइन पथ को प्रेरित किया।
लुकास एलनिज़ पिंटोस स्मार्ट प्रोडक्ट्स डिवीज़न, INECO [email protected] ORCID: 0009-0008-5179-2534
MIT