Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Криптография в блокчейне | Отложенное шифровани...

Avatar for DeFrens community DeFrens community
June 19, 2025
3

Криптография в блокчейне | Отложенное шифрование, ген алгоритмы и функциональное программирование в Web3, храним данные в вычислениях

Отложенное шифрование в Web3: применение генетических алгоритмов и функционального программирования для построения систем шифрования с высокой энтропией ключа. Обзор классических методов (AES, Base64), концепция emoji-ключей, идемпотентных ГА, вычислительного брутфорса через эволюцию и преимуществ такой архитектуры для децентрализованного хранения и защиты данных.

Спикер: Марат Зимнуров, руководитель группы разработки в Avito.tech, ассистент кафедры ИТиЦЭ в ИГХТУ

Avatar for DeFrens community

DeFrens community

June 19, 2025
Tweet

More Decks by DeFrens community

Transcript

  1. Москва | 2025 2 Руководитель группы разработки в Avito.tech Марат

    Зимнуров github: https://github.com/the-homeless-god tg: https://github.com/the_homeless_god • ex-worker: Microsoft, Adjust, Roadmunk, Xsolla, Tproger, Kontur, EPAM Anywhere, Akvelon • project: digitable.ru • role: lead full-stack engineer | team/tech/dev lead engineer • education: ассистент кафедры ИТиЦЭ в ИГХТУ linkedin: https://www.linkedin.com/in/marat-z/ • fun of: bsd, wow hc, genetic algorithms, functional programming habr: https://habr.com/ru/users/the_homeless_god/
  2. Москва | 2025 4 От Цезаря до AES: Как развивалось

    шифрование Шифр Цезаря DES AES Base64
  3. Москва | 2025 5 AES: Почему его взлом стоит $3.5

    млрд Почему взлом невозможен: • Даже квантовые компьютеры не взломают AES-256 до 2030+. • Стоимость атаки: $3.5 млрд (оценка NIST). больше, чем атомов во Вселенной 256 бит Ключ 10¹⁷⁷ вариантов
  4. Москва | 2025 6 Base64 — «шифрование» для бедных Это

    кодирование, а не шифрование (нет ключа). Зачем нужно: • Передача бинарных данных через текстовые протоколы (HTTP, JSON). Пример: echo "hello" | base64 → aGVsbG8K
  5. Москва | 2025 7 Шифрование в блокчейне 1.Данные в блокчейне

    открыты (прозрачность > приватность). 1.Шифруют только: • Приватные ключи (AES-256 в кошельках). • Транзакции в приватных сетях (Zcash, Monero). 1.Base64 тут: Для кодирования данных в смарт-контрактах.
  6. Москва | 2025 9 🔐 Emoji как ключи 👩 Alice

    👨 Bob emoji-ключ 🐦🍕🎲 Проблема: Shared Secret в env — это уязвимость. Решение: Emoji-ключи + генетический алгоритм для поиска сессии
  7. Москва | 2025 10 Telegram, Jitsi и Matrix: Почему 🦄🍣⚡

    — это новый AES 👩 Alice 👨 Bob emoji-ключ 🐦🍕🎲 Шифрование [110101...]
  8. Москва | 2025 12 Генетические алгоритмы как конфиг для брутфорса

    Генетические алгоритмы (ГА) — это “умный” брутфорс, где перебор оптимизируется через эволюцию. Пример: Взлом AES не полным перебором, а через “скрещивание” перспективных ключей.
  9. Москва | 2025 14 Идемпотентные генетические алгоритмы: Проблема: Как гарантировать,

    что генетический алгоритм: • Даст одинаковый результат при одинаковых входных данных. • Не мутирует состояние на бекенде. Решение: ФП + строгие параметры ГА. Настройка → Шифрование → Гарантии GA (params) → AlwaysSameOutput
  10. Москва | 2025 Вы знаете AES, но GA — это

    “криптография с эволюцией”: • Ключ = параметры ГА (популяция, мутация). • Шифрование = итеративный GA, где результат — это N-ое поколение. GA + ФП = Отложенное шифрование без боли Параметры ГА seed: Int -- Фиксирует случайность populationSize: Int -- Число кандидатов mutationRate: Float -- Вероятность мутации fitnessFn: Gene → Float -- Критерий "качества" гена Инициализация Создать N случайных генов (на основе seed) Эволюция (поколения) 1. Селекция: -- Отбор топ-10% генов по fitnessFn filter (population, fitnessFn) 2. Кроссовер: -- Скрещивание родителей map (parents → crossover(parent1, parent2)) 3. Мутация: -- Случайные изменения map (genes → mutate(gene, mutationRate, seed)) Условие остановки generations ≥ maxGenerations? → ✅ Результат 15
  11. Москва | 2025 encrypt(data) = GA(params, data, generations=n) (для тех,

    кто не в теме) 👍 GA как функция 👩 Alice 👨 Bob populationSize, mutationRate, crossoverType, seed. 16
  12. Москва | 2025 Энтропия ключа ≥ 256 бит: Размер популяции

    = 1 000 000 ключей. Длина каждого ключа = 256 бит. Итоговая сложность: log₂(1 000 000 × 2²⁵⁶) ≈ 256 бит. AES vs. GA: Кто кого? AES-256 GA + ФП Стойкость 10¹⁷⁷ вариантов Зависит от params Гибкость Фиксированный Настраиваемый (популяция,мутации) Идемпотентность Да Да (если seed фиксирован) Применение Банки, VPN Web3, P2P, отложенное шифрование Когда GA лучше? • Нужен контроль над процессом (например, остановка на N-ом поколении). • Данные зависят от контекста (сетевые задержки, TTL). Когда AES лучше? • Требуется стандартизированная защита (например, платежи). А что если я хочу чтобы GA соответствовал AES-256 ? Fitness-функция: Пример: fitness(key) = (SHA3(key) == target_hash). Параметры алгоритма: seed, mutation_rate, crossover_type — часть ключа. Пример: params = {seed: 42, mutation: "flip_0.1%", crossover: "SHA3-based"}. 17
  13. Москва | 2025 GA сокращает пространство за счет «эволюции», а

    не грубой силы Как GA все находит? 👩 Alice 👨 Bob 🧬 Функция + Параметры Эволюция 🗝 Ключ на N- поколении Почему нельзя взломать: 🔢 Ключ на выходе: Миллиард символов (но это не строка, а результат вычислений). 🧩 Функция: Уникальна для сессии (можно встроить подпись). ⏳ Ленивость: Ключ "материализуется" только при необходимости. 18
  14. Москва | 2025 20 Мега крутое с генетическим алгоритмом Любое

    другое шифрование 🧬 Эволюция ключей через поколения 🔢 Жесткие мат. алгоритмы 🔄 Кастомизация под задачу ⚖ Стандартизировано 🚀 0.1 мс (AES) / 🐢 10 мс (RSA) ⏳ 1-5 сек (100k итераций) 🧩 Параметры = ключ 🔐 Секретный ключ / 🔄 Пары ключей
  15. Москва | 2025 1. GA— это конфиг + генератор, а

    не «волшебная коробка». 1. Сложность взлома: Зависит от параметров (например, seed=42 → предсказуемо). 1. Для Web3: GA + ФП = Децентрализованное доверие. Что запомнить? 21
  16. Москва | 2025 Москва | 2025 22 @the_homeless_god /the-homeless-god Руководитель

    группы разработки Марат Зимнуров Вы можете хранить ваши данные в отложенных вычислениях Генетические алгоритмы - это функции, не знаешь параметров, то и не знаешь результат Ваши функции сохраняют ссылочную прозрачность – ваши результаты однозначны Нельзя просто так взломать то, что генерируют тысячи поколений по заданному маршруту, потому что вместо ключей – вы передаете алгоритм