Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
alaniz-cipher — Шифрование на основе нелинейных пучковых морфизмов над графами | Kitploit
Инструменты/GitHubGitHub/quantusync/alaniz-cipher
Статический анализИнструменты шифрования/дешифрованияКриптографияСтатьи и ИсследованияОбучение и Образование
GitHubquantusync/alaniz-cipher

alaniz-cipher

Шифрование на основе нелинейных пучковых морфизмов над графами

Репозиторий
513 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Шифр Alaniz (v3)

Постквантовое шифрование на основе пучков с помощью векторнозначных перестановок над конечным полем

Криптографический примитив, основанный на задаче обращения нелинейного морфизма пучков (NL-SMIP): полиномиальная система с секретными коэффициентами, связанными когомологиями пучков на графах.

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

Что изменилось в v3

Версия 2 ввела σ_SPN для защиты от атаки масштабированием, которая взломала v1. Однако v2 сама взламывается более общей атакой, сочетающей полиномиальную интерполяцию с вычислением базисов Грёбнера: любое детерминированное шифрование вида c = As + Bσ(As) с σ ограниченной полиномиальной степени допускает атаку восстановления ключа в модели CPA. См. раздел 3 статьи и experiments/02_cpa_attack_analysis.py.

Версия 3 решает эту проблему на структурном уровне:

Особенностьv2v3
ШифрованиеДетерминированноеВероятностное (нонс + ПСГ)
σПокомпонентный 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. Поузловое шифрование:

root@kitploit:~
r_v = ПСГ(нонс, 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| | Стойкость | |---|---|---|---|---|---|---|---|---| | Демонстрационный | 2 | 4 | 4 | 17 | 30 Б | 10 Б | 16 Б | небезопасный | | Академический | 3 | 16 | 8 | 17 | 0,3 КБ | 30 Б | 96 Б | ~80 бит классическая | | PQ-128 | 6 | 61 | 32 | 17 | 16 КБ | 64 Б | 1,5 КБ | ≥128 после Гровера | | PQ-256 | 8 | 127 | 64 | 17 | 170 КБ | 128 Б | 8 КБ | ≥256 после Гровера |

Быстрый старт

root@kitploit:~
git clone https://github.com/QuantuSync/alaniz-cipher.git
cd alaniz-cipher
pip install -e .[test]

# Запуск демонстрации v2 (историческая)
python -m alaniz.demo.demo_basic

# Запуск всех тестов
pytest tests/ -v

# Запуск экспериментов проверки v3
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

Минимальный пример 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)     # отправитель: случайное сообщение + общий ключ
K_recv   = kem.decaps(sk, ct) # получатель: тот же K, если корректно
assert K == K_recv

Структура проекта

root@kitploit:~
alaniz-cipher/
├── alaniz/
│   ├── core/
│   │   ├── field.py        # Арифметика F_p (v2, всё ещё используется v1/v2)
│   │   ├── field_ext.py    # Арифметика F_{p^d} через galois (v3)
│   │   ├── graph.py        # Топологии графов (деревья, циклы и т.д.)
│   │   └── sheaf.py        # Клеточные пучки + когомологические ограничения
│   ├── crypto/
│   │   ├── sigma.py        # σ-отображения: monomial_power (v3), id_spn (v2), cube/inverse (v1)
│   │   ├── protocol.py     # Protocol (v2), ProtocolV3 (v3)
│   │   ├── prg.py          # ПСГ на основе SHAKE-256 для вывода нонса (v3)
│   │   └── kem.py          # Fujisaki-Okamoto → IND-CCA KEM (v3)
│   └── demo/
│       └── demo_basic.py   # Демонстрация v2 (историческая)
├── experiments/
│   ├── 01-06_*.py          # Анализ v1 (исторический, приложение к статье v2)
│   ├── 14_v2_redteam.py    # Красная команда v2 (исторический)
│   ├── 07_semi_regularity.py    # v3: проверка Гильберта–Пуанкаре
│   ├── 08_weak_keys.py          # v3: поиск слабых ключей в 69 конфигурациях
│   ├── 09_nonce_robustness.py   # v3: теорема 6.7
│   ├── 10_centralizer.py        # v3: теорема 6.5
│   └── 11_kem_verification.py   # v3: эмпирические тесты IND-CCA KEM
├── tests/
│   ├── test_protocol.py      # Тесты v2 (сохранены для регрессии)
│   └── test_protocol_v3.py   # Тесты v3
├── pyproject.toml
└── README.md

v1 и v2: исторический статус

v1: Взломана масштабирующей атакой Ланги на σ_cube(λy) = λ³ σ_cube(y) (Alaniz 2026, приложение A статьи v3). Восстановление за O(d) запросов.

v2: Взломана атакой полиномиальной интерполяции + Грёбнера против любого детерминированного 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.

Цитирование

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

Благодарности

A. Rodríguez Langa (INECO) за криптоанализ v1, который послужил толчком к перепроектированию, приведшему к v2 и, в конечном счёте, к v3.

Автор

Lucas Alaniz Pintos Отдел интеллектуальных продуктов, INECO [email protected] ORCID: 0009-0008-5179-2534

Лицензия

MIT

Скачать инструмент