163 lines
5.7 KiB
Markdown
163 lines
5.7 KiB
Markdown
|
|
# Post-Quantum с генезиса
|
|||
|
|
|
|||
|
|
**Квантово-устойчивая криптография с первого дня**
|
|||
|
|
**Montana Protocol v1.0**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Абстракт
|
|||
|
|
|
|||
|
|
Montana использует постквантовую криптографию (ML-DSA-65) с генезиса, а не как retrofit. Когда квантовые компьютеры станут угрозой, Montana уже будет защищена. Другие сети будут вынуждены делать хардфорк.
|
|||
|
|
|
|||
|
|
**Ключевое отличие:**
|
|||
|
|
```
|
|||
|
|
Bitcoin/Ethereum: ECDSA сейчас → хардфорк потом
|
|||
|
|
Montana: ML-DSA-65 с генезиса → уже защищены
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. Введение
|
|||
|
|
|
|||
|
|
### 1.1 Квантовая угроза
|
|||
|
|
|
|||
|
|
| Алгоритм | Уязвимость | Квантовая атака |
|
|||
|
|
|----------|------------|-----------------|
|
|||
|
|
| ECDSA (Bitcoin) | Да | Алгоритм Шора |
|
|||
|
|
| Ed25519 (Solana) | Да | Алгоритм Шора |
|
|||
|
|
| RSA | Да | Алгоритм Шора |
|
|||
|
|
| **ML-DSA-65** | **Нет** | **Решётки** |
|
|||
|
|
|
|||
|
|
### 1.2 Проблема retrofit
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Шаг 1: Квантовый компьютер появляется
|
|||
|
|
Шаг 2: Все ECDSA подписи уязвимы
|
|||
|
|
Шаг 3: Хардфорк для миграции ключей
|
|||
|
|
Шаг 4: Кто не мигрировал — потерял средства
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Montana избегает этого, начав с постквантовой криптографии.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Криптографические примитивы
|
|||
|
|
|
|||
|
|
### 2.1 Подписи: ML-DSA-65 ✅ РЕАЛИЗОВАНО
|
|||
|
|
|
|||
|
|
**Исходный код:** [node_crypto.py](../бот/node_crypto.py)
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from dilithium_py.ml_dsa import ML_DSA_65
|
|||
|
|
|
|||
|
|
# FIPS 204 — Module-Lattice-Based Digital Signature
|
|||
|
|
# Уровень безопасности: NIST Level 3 (128-bit post-quantum)
|
|||
|
|
# Размер приватного ключа: 4032 байт
|
|||
|
|
# Размер публичного ключа: 1952 байт
|
|||
|
|
# Размер подписи: 3309 байт
|
|||
|
|
|
|||
|
|
public_key, private_key = ML_DSA_65.keygen()
|
|||
|
|
signature = ML_DSA_65.sign(private_key, message)
|
|||
|
|
is_valid = ML_DSA_65.verify(public_key, message, signature)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Статус:** ✅ Полностью реализовано в Python
|
|||
|
|
|
|||
|
|
### 2.2 Шифрование: ML-KEM-768 ⏳ TODO
|
|||
|
|
|
|||
|
|
```rust
|
|||
|
|
// FIPS 203 — Module-Lattice-Based Key Encapsulation
|
|||
|
|
// Уровень безопасности: NIST Level 3
|
|||
|
|
// Планируется для Noise XX key exchange
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Статус:** ⏳ Не реализовано, запланировано
|
|||
|
|
|
|||
|
|
### 2.3 Гибридное шифрование: Noise XX ⏳ TODO
|
|||
|
|
|
|||
|
|
```rust
|
|||
|
|
// Noise XX + ML-KEM-768
|
|||
|
|
// Классический X25519 + постквантовый ML-KEM
|
|||
|
|
// Защита даже если один из них сломан
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Статус:** ⏳ Не реализовано, запланировано
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Текущее состояние реализации
|
|||
|
|
|
|||
|
|
### 3.1 Что реализовано ✅
|
|||
|
|
|
|||
|
|
| Компонент | Файл | Статус |
|
|||
|
|
|-----------|------|--------|
|
|||
|
|
| ML-DSA-65 keygen | [node_crypto.py](../бот/node_crypto.py) | ✅ Работает |
|
|||
|
|
| ML-DSA-65 sign | [node_crypto.py](../бот/node_crypto.py) | ✅ Работает |
|
|||
|
|
| ML-DSA-65 verify | [node_crypto.py](../бот/node_crypto.py) | ✅ Работает |
|
|||
|
|
| Криптографические адреса | [node_crypto.py](../бот/node_crypto.py) | ✅ Работает |
|
|||
|
|
| Presence Proof подписи | [time_bank.py](../бот/time_bank.py) | ✅ Работает |
|
|||
|
|
| Подписи агентов AI | [agent_crypto.py](../бот/agent_crypto.py) | ✅ Работает |
|
|||
|
|
| TLS 1.3 между узлами | [node_tls.py](../бот/node_tls.py) | ✅ Работает |
|
|||
|
|
|
|||
|
|
### 3.2 Что запланировано ⏳
|
|||
|
|
|
|||
|
|
| Компонент | Статус | Приоритет |
|
|||
|
|
|-----------|--------|-----------|
|
|||
|
|
| ML-KEM-768 key exchange | ⏳ TODO | Высокий |
|
|||
|
|
| Noise XX протокол | ⏳ TODO | Высокий |
|
|||
|
|
| Hybrid encryption | ⏳ TODO | Средний |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. Почему с генезиса?
|
|||
|
|
|
|||
|
|
### 4.1 Сравнение стратегий
|
|||
|
|
|
|||
|
|
| Стратегия | Сложность | Риск |
|
|||
|
|
|-----------|-----------|------|
|
|||
|
|
| Retrofit после угрозы | Хардфорк, миграция | Потеря средств |
|
|||
|
|
| Retrofit заранее | Хардфорк, миграция | Сложность координации |
|
|||
|
|
| **С генезиса** | **Нет миграции** | **Нет риска** |
|
|||
|
|
|
|||
|
|
### 4.2 Harvest Now, Decrypt Later
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Злоумышленник сегодня:
|
|||
|
|
1. Перехватывает зашифрованный трафик
|
|||
|
|
2. Хранит на диске
|
|||
|
|
3. Ждёт квантовый компьютер
|
|||
|
|
4. Расшифровывает всё
|
|||
|
|
|
|||
|
|
Montana защищена от этой атаки с первого дня.
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. Научная новизна
|
|||
|
|
|
|||
|
|
1. **Post-quantum с генезиса** — не retrofit, а изначальный дизайн
|
|||
|
|
2. **ML-DSA-65 подписи** — FIPS 204 стандарт, NIST Level 3
|
|||
|
|
3. **Криптографические адреса** — независимость от IP
|
|||
|
|
4. **Domain separation** — разные ключи для разных целей
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 6. Ссылки
|
|||
|
|
|
|||
|
|
| Документ | Ссылка |
|
|||
|
|
|----------|--------|
|
|||
|
|
| ML-DSA-65 код | [node_crypto.py](../бот/node_crypto.py) |
|
|||
|
|
| Presence Proof | [time_bank.py](../бот/time_bank.py) |
|
|||
|
|
| FIPS 204 (ML-DSA) | [NIST](https://csrc.nist.gov/publications/detail/fips/204/final) |
|
|||
|
|
| FIPS 203 (ML-KEM) | [NIST](https://csrc.nist.gov/publications/detail/fips/203/final) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Alejandro Montana
|
|||
|
|
Montana Protocol v1.0
|
|||
|
|
Январь 2026
|
|||
|
|
|
|||
|
|
github.com/efir369999/junomontanaagibot
|
|||
|
|
```
|