Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
alaniz-cipher — Crittografia da Morfismi di Fascio Non Lineari su Grafi | Kitploit
Strumenti/GitHubGitHub/quantusync/alaniz-cipher
Analisi StaticaStrumenti di Crittografia/DecrittografiaCrittografiaPaper e RicercaApprendimento e Formazione
GitHubquantusync/alaniz-cipher

alaniz-cipher

Crittografia da Morfismi di Fascio Non Lineari su Grafi

Vedi Repository
513 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Il cifrario Alaniz (v3)

Crittografia post-quantistica basata su fasci tramite permutazioni vettoriali su campi finiti

Una primitiva crittografica basata sul problema di inversione di morfismi di fasci non lineari (NL-SMIP): un sistema polinomiale con coefficienti segreti accoppiati tramite coomologia di fasci su grafi.

Articolo (v3): L. Alaniz Pintos, "The Alaniz Cipher v3: Sheaf-Based Post-Quantum Encryption via Vector-Valued Finite Field Permutations", 2026.

Cosa è cambiato nella v3

La versione 2 ha introdotto σ_SPN per sconfiggere l'attacco di scaling che ha rotto la v1. Tuttavia, la v2 è a sua volta rotta da un attacco più generale che combina interpolazione polinomiale e calcolo di basi di Gröbner: qualsiasi crittografia deterministica della forma c = As + Bσ(As) con σ di grado polinomiale limitato ammette un attacco CPA di recupero della chiave. Vedi l'articolo Sezione 3 e experiments/02_cpa_attack_analysis.py.

La versione 3 affronta questo problema a livello strutturale:

Caratteristicav2v3
CrittografiaDeterministicaProbabilistica (nonce + PRG)
σSPN componente per componente su F_pVettoriale: π_e(x) = x^e in F_{p^d}
Chiave secondariaMatrice B_v ∈ GL(d, F_p)Scalare β_v ∈ F_{p^d}^*
DecifraturaForza bruta su F_p^dFattorizzazione univariata in F_{p^d}[τ]
Uniformità differenziale di σδ ≥ 2p (~34 per p=17)δ ∈ {2, 4} (APN o quasi-APN)
Obiettivo IND-CCANon applicabileRaggiunto tramite trasformata FO

14 configurazioni di semi-regolarità testate, 14 corrispondono esattamente alle previsioni di Hilbert-Poincaré. Nessuna vulnerabilità MinRank secondo il Teorema 6.5 (argomento del centralizzatore). Nessuna chiave debole rilevata in 69 configurazioni.

Panoramica

I messaggi sono codificati come sezioni globali di un fascio cellulare su un grafo con rango ciclico β_1 ≥ 1. Crittografia per nodo:

root@kitploit:~
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

dove A_v ∈ GL(d, F_p), β_v ∈ F_{p^d}^* e L ∈ F_{p^d}^* è pubblico. La decifratura si riduce a trovare radici di γ·τ^e + α·τ − (c′ + α) = 0 in F_{p^d}[τ] tramite Cantor-Zassenhaus, quindi filtrare tramite la consistenza coomologica in tutti i vertici n − 1 non radice.

Set di parametri

| Set | d | log₂ p | n | e | |sk| | |pk| | |c| | Sicurezza | |---|---|---|---|---|---|---|---|---| | Demo | 2 | 4 | 4 | 17 | 30 B | 10 B | 16 B | non sicuro | | Accademico | 3 | 16 | 8 | 17 | 0.3 KB | 30 B | 96 B | ~80 bit classici | | PQ-128 | 6 | 61 | 32 | 17 | 16 KB | 64 B | 1.5 KB | ≥128 post-Grover | | PQ-256 | 8 | 127 | 64 | 17 | 170 KB | 128 B | 8 KB | ≥256 post-Grover |

Avvio rapido

root@kitploit:~
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

Esempio minimale v3

root@kitploit:~
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

Struttura del progetto

root@kitploit:~
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 e v2: Stato storico

v1: Rotto dall'attacco di scaling di Langa su σ_cube(λy) = λ³ σ_cube(y) (Alaniz 2026, Appendice A dell'articolo v3). Recupero in O(d) query.

v2: Rotto da un attacco di interpolazione polinomiale + Gröbner contro qualsiasi crittografia deterministica c = As + Bσ(As) con σ di grado limitato. Per d=2, p=17, recupero completo della chiave in 20 query CPA e ~5.7s di calcolo SymPy su 10/10 istanze casuali. Vedi experiments/02_cpa_attack_analysis.py e l'articolo Sezione 3.

Le classi v1 e v2 rimangono accessibili in questo repository per riproducibilità storica. Per qualsiasi nuovo uso, utilizza ProtocolV3.

Citazione

root@kitploit:~
@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}
}

Ringraziamenti

A. Rodríguez Langa (INECO) per la crittanalisi della v1 che ha motivato il percorso di riprogettazione che ha portato alla v2 e infine alla v3.

Autore

Lucas Alaniz Pintos Divisione Smart Products, INECO [email protected] ORCID: 0009-0008-5179-2534

Licenza

MIT

Scarica lo strumento