Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
alaniz-cipher — Chiffrement à partir de Morphismes de Faisceaux Non Linéaires sur des Graphes | Kitploit
Outils/GitHubGitHub/quantusync/alaniz-cipher
Analyse StatiqueOutils de Chiffrement/DéchiffrementCryptographieArticles et RechercheApprentissage et Éducation
GitHubquantusync/alaniz-cipher

alaniz-cipher

Chiffrement à partir de Morphismes de Faisceaux Non Linéaires sur des Graphes

Voir le dépôt
51il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Le chiffre Alaniz (v3)

Chiffrement post-quantique basé sur les faisceaux via permutations vectorielles sur les corps finis

Une primitive cryptographique basée sur le problème d'inversion de morphisme de faisceau non linéaire (NL-SMIP) : un système polynomial avec des coefficients secrets couplés par la cohomologie des faisceaux sur des graphes.

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

Ce qui a changé dans la v3

La version 2 a introduit σ_SPN pour contrer l'attaque par mise à l'échelle qui a cassé la v1. Cependant, la v2 est elle-même cassée par une attaque plus générale combinant l'interpolation polynomiale avec le calcul de bases de Gröbner : tout chiffrement déterministe de la forme c = As + Bσ(As) avec σ de degré polynomial borné admet une attaque CPA de récupération de clé. Voir la section 3 de l'article et experiments/02_cpa_attack_analysis.py.

La version 3 répond à ce problème au niveau structurel :

Fonctionnalitév2v3
ChiffrementDéterministeProbabiliste (nonce + PRG)
σSPN par composante sur F_pVectoriel : π_e(x) = x^e dans F_{p^d}
Clé secondaireMatrice B_v ∈ GL(d, F_p)Scalaire β_v ∈ F_{p^d}^*
DéchiffrementForce brute sur F_p^dFactorisation univariée dans F_{p^d}[τ]
Uniformité différentielle de σδ ≥ 2p (~34 pour p=17)δ ∈ {2, 4} (APN ou presque APN)
Cible IND-CCANon applicableAtteinte via transformation FO

14 configurations de semi-régularité testées, 14 correspondent exactement aux prédictions de Hilbert-Poincaré. Aucune vulnérabilité MinRank d'après le théorème 6.5 (argument du centralisateur). Aucune clé faible détectée dans 69 configurations.

Aperçu

Les messages sont encodés comme des sections globales d'un faisceau cellulaire sur un graphe de rang cyclique β_1 ≥ 1. Chiffrement par nœud :

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

où A_v ∈ GL(d, F_p), β_v ∈ F_{p^d}^* et L ∈ F_{p^d}^* est public. Le déchiffrement se réduit à trouver les racines de γ·τ^e + α·τ − (c′ + α) = 0 dans F_{p^d}[τ] via Cantor-Zassenhaus, puis à filtrer par la cohérence cohomologique à tous les n − 1 sommets non racines.

Ensembles de paramètres

| Ensemble | d | log₂ p | n | e | |sk| | |pk| | |c| | Sécurité | |---|---|---|---|---|---|---|---|---| | Démo | 2 | 4 | 4 | 17 | 30 B | 10 B | 16 B | non sécurisé | | Académique | 3 | 16 | 8 | 17 | 0.3 KB | 30 B | 96 B | ~80 bits classique | | 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 |

Démarrage rapide

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

Exemple minimal 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

Structure du projet

root@kitploit:~
alaniz-cipher/
├── alaniz/
│   ├── core/
│   │   ├── field.py        # Arithmétique F_p (v2, toujours utilisée par v1/v2)
│   │   ├── field_ext.py    # Arithmétique F_{p^d} via galois (v3)
│   │   ├── graph.py        # Topologies de graphes (arbres, cycles, etc.)
│   │   └── sheaf.py        # Faisceaux cellulaires + contraintes de cohomologie
│   ├── crypto/
│   │   ├── sigma.py        # Applications σ : monomial_power (v3), id_spn (v2), cube/inverse (v1)
│   │   ├── protocol.py     # Protocole (v2), ProtocolV3 (v3)
│   │   ├── prg.py          # PRG SHAKE-256 pour dérivation de nonce (v3)
│   │   └── kem.py          # Fujisaki-Okamoto → KEM IND-CCA (v3)
│   └── demo/
│       └── demo_basic.py   # Démo v2 (historique)
├── experiments/
│   ├── 01-06_*.py          # Analyses v1 (historique, annexe v2 de l'article)
│   ├── 14_v2_redteam.py    # Red team v2 (historique)
│   ├── 07_semi_regularity.py    # v3 : vérification Hilbert-Poincaré
│   ├── 08_weak_keys.py          # v3 : balayage clé faible 69 configurations
│   ├── 09_nonce_robustness.py   # v3 : Théorème 6.7
│   ├── 10_centralizer.py        # v3 : Théorème 6.5
│   └── 11_kem_verification.py   # v3 : tests empiriques KEM IND-CCA
├── tests/
│   ├── test_protocol.py      # Tests v2 (conservés pour régression)
│   └── test_protocol_v3.py   # Tests v3
├── pyproject.toml
└── README.md

v1 et v2 : Statut historique

v1 : Cassée par l'attaque par mise à l'échelle de Langa sur σ_cube(λy) = λ³ σ_cube(y) (Alaniz 2026, annexe A de l'article v3). Récupération en O(d) requêtes.

v2 : Cassée par l'attaque par interpolation polynomiale + Gröbner contre tout chiffrement déterministe c = As + Bσ(As) avec σ de degré borné. Pour d=2, p=17, récupération complète de clé en 20 requêtes CPA et ~5,7 s de calcul SymPy sur 10/10 instances aléatoires. Voir experiments/02_cpa_attack_analysis.py et la section 3 de l'article.

Les classes v1 et v2 restent accessibles dans ce dépôt pour reproductibilité historique. Pour toute nouvelle utilisation, utilisez ProtocolV3.

Citation

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}
}

Remerciements

A. Rodríguez Langa (INECO) pour la cryptanalyse de la v1 qui a motivé le chemin de refonte menant à la v2 puis à la v3.

Auteur

Lucas Alaniz Pintos Division des produits intelligents, INECO [email protected] ORCID: 0009-0008-5179-2534

Licence

MIT

Télécharger l’outil