Криптография в дипломе: как превратить хеш-функции и ЭЦП в защищаемую ВКР
Поддомен: Cybersecurity · Роль: специалист по информационной безопасности
Свежая статья «Крипта с нуля. Разбираемся с алгоритмами в основе криптовалют» (Xakep, 24.03.2026) снимает главный барьер для студента: она объясняет, что криптовалюта — это не «магия с картинками», а стек примитивов. Хеш‑функция превращает транзакцию в отпечаток фиксированной длины, асимметричная пара ключей отделяет подпись от шифрования, цифровая подпись доказывает авторство и целостность без нотариуса. Для выпускника ИТ это прямая заготовка темы: любой из этих примитивов можно развернуть в полноценную ВКР — с проектированием, реализацией прототипа и измеримыми метриками. Ниже — как собрать работу, которую комиссия не сможет назвать «рефератом по блокчейну».
Вопросы, которые задаёт почти каждый студент
Мне нужно писать свою криптографию?
Нет, и это важно зафиксировать в главе 1. Реализовывать SHA‑256 или ECDSA самостоятельно — грубая ошибка, прямо противоречащая рекомендациям OWASP Cryptographic Storage Cheat Sheet. Ваш вклад — интеграция, выбор параметров, оценка производительности и стойкости в прикладном сценарии.
Где брать данные для экспериментов?
Генерируйте синтетику собственным скриптом: N сообщений случайной длины, замер подписи и верификации. Для реалистичности добавьте JSON‑транзакции из открытых датасетов (например, эмулируйте структуру Bitcoin‑транзакций). Числа должны быть воспроизводимы — приложите seed.
Как считать «эффективность»?
Через ISO/IEC 25010: производительность (подписей в секунду, latency p95), надёжность (доля успешных верификаций), безопасность (соответствие ключевым длинам ГОСТ Р 34.10‑2012 и рекомендациям NIST). Не путайте «быстро» и «безопасно» — обе оси обязательны.
Что делать, если научрук просит «свою схему»?
Возьмите композицию: Merkle‑дерево для пакетной проверки целостности + ЭЦП на корне. Это модификация существующих примитивов, а не изобретение шифра, и она прекрасно защищается.
Три темы ВКР, готовые к защите
-
1. Сравнительный анализ алгоритмов ЭЦП (ECDSA P‑256 и ГОСТ Р 34.10‑2012) для прикладных систем.
Актуальность: статья показывает, что цифровая подпись — фундамент доверия в блокчейне; в РФ параллельно действует национальный стандарт, и выбор между ним и зарубежной кривой — реальная инженерная задача.
Цель: получить количественное сравнение по скорости, размеру подписи и требованиям к ключам.
Задачи: разбор математики обеих схем; реализация тестового стенда; замеры на трёх конфигурациях; выводы о применимости.
Структура: Гл.1 — теория хеш‑функций и ЭЦП; Гл.2 — стенд и методика замеров; Гл.3 — результаты, графики, рекомендации. -
2. Разработка сервиса контроля целостности документов на Merkle‑деревьях.
Актуальность: идея «отпечатка» из статьи масштабируется на пакет файлов; Merkle‑дерево даёт логарифмическую проверку включения.
Цель: REST‑сервис, который по хеш‑корню и proof подтверждает наличие файла без выгрузки всего архива.
Задачи: проектирование API; реализация; нагрузочное тестирование; анализ атак (подмена листа, second preimage).
Структура: Гл.1 — анализ; Гл.2 — C4‑диаграммы и код; Гл.3 — тесты по OWASP и метрики. -
3. Модель учебного блокчейна с оценкой качества по ISO/IEC 25010.
Актуальность: статья объясняет связку «хеш + подпись + цепочка»; ваш вклад — измеримая модель качества для учебных платформ.
Цель: прототип на 3–5 узлов с метриками TPS, времени финализации и потребления памяти.
Задачи: спецификация требований по ГОСТ 34; реализация консенсуса (PoW или упрощённый BFT); эксперименты; оценка по восьми характеристикам ISO/IEC 25010.
Структура: Гл.1 — теория; Гл.2 —архитектура и UML; Гл.3 — эксперименты и выводы.
Как разложить материал статьи по главам
Глава 1: теория без переписанной Википедии
Не пересказывайте статью — стройте таблицу соответствий «примитив → задача → стандарт». Хеш‑функции (SHA‑2/SHA‑3, ГОСТ Р 34.11‑2012) — обеспечение целостности; асимметричный ключ — аутентификация; ЭЦП — неотказуемость. Схему «два ключа вместо одного» оформите как UML class diagram: классы KeyPair, Signature, Verifier. Это уже поднимает работу над уровнем реферата.
Глава 2: проектирование и код
Стройте C4: контекст (пользователь → сервис подписи → хранилище), контейнеры (API, крипто‑модуль, БД), компоненты. Ниже — минимальный стенд для замеров, который можно вставить в приложение ВКР целиком.
import hashlib, time, statistics
from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.hazmat.primitives import hashes
# Ключ и сообщения
key = ec.generate_private_key(ec.SECP256R1())
payloads = [f"tx-{i}-{i*37}".encode() for i in range(2000)]
# Замер подписи и верификации
sign_lat, verify_lat = [], []
pub = key.public_key()
for msg in payloads:
digest = hashlib.sha256(msg).digest() # хеш-отпечаток
t0 = time.perf_counter()
sig = key.sign(digest, ec.ECDSA(hashes.SHA256()))
sign_lat.append((time.perf_counter() - t0) * 1000)
t1 = time.perf_counter()
pub.verify(sig, digest, ec.ECDSA(hashes.SHA256()))
verify_lat.append((time.perf_counter() - t1) * 1000)
print(f"sign p50={statistics.median(sign_lat):.3f} ms "
f"p95={sorted(sign_lat)[int(len(sign_lat)*0.95)]:.3f} ms")
print(f"verify p50={statistics.median(verify_lat):.3f} ms")
print(f"throughput={1000/statistics.median(sign_lat):.0f} sign/s")
Такой скрипт — это уже воспроизводимый эксперимент с p50/p95, а не «пример работы алгоритма». Те же метрики снимайте для ГОСТ Р 34.10‑2012 через библиотеку pygost и явно укажите версию, ОС и CPU в таблице окружения.
Глава 3: метрики и валидация
| Метрика | Единица | Инструмент | Куда в ВКР |
|---|---|---|---|
| Подписей в секунду | sign/s | свой бенчмарк | Гл.3, табл. сравнения |
| Latency p50/p95 | мс | перцентили | Гл.3, график |
| Размер подписи | байт | len(sig) | Гл.1, сравнение схем |
| Время финализации блока | с | логи узла / OpenTelemetry | Гл.3, дашборд |
| Доля успешных верификаций | % | CI-тесты | Гл.3, отчёт |
Для распределённых сценариев оберните узлы в экспортёры OpenTelemetry — это даёт честные трейсы и снимает вопрос «откуда цифры». Скрин дашборда идёт в приложение, метрики — в основной текст.
Что проверить перед сдачей
- Задачи в введении совпадают с выводами по главам и с пунктами заключения.
- Все криптопримитивы привязаны к конкретному стандарту (ГОСТ Р 34.10‑2012, ГОСТ Р 34.11‑2012, SHA‑256) — без «примерно так».
- Схемы в C4/UML имеют подписи, а не висят «для красоты».
- Метрики получены на зафиксированном окружении: версия Python, ОС, CPU.
- Список литературы: минимум 3 источника из научных журналов и 1 действующий стандарт.
- Приложение содержит код, логи и seed экспериментов — воспроизводимость.
- Оформление по ГОСТ 34 и нормоконтролю кафедры: поля, шрифты, нумерация рисунков.
Типичные ошибки студентов
Ошибка 1. «Своя крипта». Студент пишет собственный шифр по мотивам статьи и считает это научной новизной. Комиссия по ИБ разберёт это за минуту. Правильно: использовать проверенные примитивы, а новизну искать в схеме применения.
Ошибка 2. Метрики без методики. В тексте есть «работает быстро», но нет p95, размера выборки и окружения. Достаточно одного замечания рецензента — и защита превращается в спор. Всегда фиксируйте протокол эксперимента.
Ошибка 3. Игнор модели угроз. Работа про цифровую подпись без описания атак (подмена ключа, MITM, атака на генератор случайных чисел) выглядит поверхностной. Добавьте раздел по OWASP и явно ограничьте область — что ваша система защищает, а что нет.
Чему вы научитесь
- Различать хеширование, шифрование и ЭЦП — и не смешивать их в ТЗ.
- Проектировать схемы доверия на основе Merkle‑дерева и корневой подписи.
- Снимать воспроизводимые метрики производительности (throughput, p95, память).
- Обосновывать выбор между ECDSA и ГОСТ Р 34.10‑2012 в прикладной задаче.
- Оформлять главы ВКР так, чтобы каждая задача из введения имела измеримый результат.
Если тема сформулирована, но непонятно, как свести теорию, код и метрики в одну работу, — начните с бесплатной консультации. Эксперты помогут разложить ВКР по главам, подскажут, какие эксперименты действительно нужны, и оценят объём: в среднем это около 120 часов работы, которые можно распределить с сопровождением, не дожидаясь последнего месяца.
Источник: Крипта с нуля. Разбираемся с алгоритмами в основе криптовалют (опубликовано 2026-03-24)