Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
alaniz-cipher — 그래프 상의 비선형 층 사상으로부터의 암호화 | Kitploit
도구/GitHubGitHub/quantusync/alaniz-cipher
Static AnalysisEncryption/Decryption ToolsCryptographyPapers & ResearchLearning & Education
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는 v1을 무너뜨린 스케일링 공격을 막기 위해 σ_SPN을 도입했습니다. 그러나 v2는 그 자체로 다항식 보간과 Gröbner 기저 계산을 결합한 더 일반적인 공격에 의해 무너집니다: c = As + Bσ(As) 형태의 결정론적 암호화는 σ가 유계 다항식 차수를 가지면 CPA 키 복구 공격에 취약합니다. 논문 섹션 3 및 experiments/02_cpa_attack_analysis.py 참조.

버전 3은 구조적 수준에서 이 문제를 해결합니다:

기능v2v3
암호화결정론적확률론적 (nonce + 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개의 반정규성 구성 테스트, 모두 힐베르트-푸앵카레 예측과 정확히 일치. 정리 6.5(중심화 인수)에 의한 MinRank 취약점 없음. 69개 구성에서 약한 키가 감지되지 않음.

개요

메시지는 사이클 랭크 β_1 ≥ 1을 가진 그래프 위의 세포 층의 전역 단면으로 인코딩됩니다. 노드별 암호화:

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

여기서 A_v ∈ GL(d, F_p), β_v ∈ F_{p^d}^*, 그리고 L ∈ F_{p^d}^*는 공개입니다. 복호화는 Cantor-Zassenhaus를 통해 F_{p^d}[τ]에서 γ·τ^e + α·τ − (c′ + α) = 0의 근을 찾은 후, 모든 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 포스트-그로버 |

빠른 시작

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     # 프로토콜 (v2), ProtocolV3 (v3)
│   │   ├── prg.py          # nonce 유도를 위한 SHAKE-256 PRG (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: KEM IND-CCA 실증 테스트
├── tests/
│   ├── test_protocol.py      # v2 테스트 (회귀 테스트용 유지)
│   └── test_protocol_v3.py   # v3 테스트
├── pyproject.toml
└── README.md

v1 및 v2: 역사적 상태

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을 사용하십시오.

인용

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

감사의 말

v1의 암호 분석을 수행하고 v2, 그리고 궁극적으로 v3로 이어지는 재설계 경로에 동기를 부여한 A. Rodríguez Langa (INECO)에게 감사드립니다.

저자

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

라이선스

MIT

도구 다운로드