Недавно (20 июня 2019 года) на Cryptology ePrint Archive была опубликована статья "SoK of Used Cryptography in Blockchain". Данный пост - тридцать шестой в запланированной серии, содержащей любительский перевод этой статьи.
Систематизация знаний по используемой криптографии в блокчейне
(перевод с английского
статьи
Mayank Raikwar, Danilo Gligoroski and Katina Kralevska
SoK of Used Cryptography in Blockchain
Cryptology ePrint Archive, Report 2019/735
https://eprint.iacr.org/2019/735)
Аннотация
(перевод аннотации здесь)
1 Введение (перевод введения здесь)
1.1 Наш вклад (перевод здесь)
2 Методология исследования (перевод здесь)
3 Основные понятия блокчейна
3.1 Криптографическая хэш-функция (перевод здесь)
3.2 Механизмы консенсуса (перевод здесь)
3.3 Сетевая инфраструктура (перевод здесь)
3.4 Типы блокчейна (перевод здесь)
4 Проблемы в блокчейн
4.1 Безопасность и приватность (перевод здесь)
4.2 Проблемы масштабируемости (перевод здесь)
4.3 Форкинг (перевод здесь)
4.4 Производительность (перевод здесь)
4.5 Энергопотребление (перевод здесь)
4.6 Инфраструктурные зависимости (перевод здесь)
5. Обзор используемых криптографических понятий в блокчейне
5.1 Схема подписи (перевод здесь)
5.2 Доказательства с нулевым разглашением (перевод здесь)
5.3 Контроль доступа (перевод здесь)
5.4 Схема шифрования (перевод здесь)
5.5 Безопасные многосторонние вычисления (перевод здесь)
5.6 Разделение секрета (перевод здесь)
5.7 Схема обязательств (перевод здесь)
5.8 Аккумулятор (перевод здесь)
5.9 Забывчивая передача (перевод здесь)
5.10 Забывчивая оперативная память (перевод здесь)
5.11 Доказательство возможности восстановления (POR) (перевод здесь)
5.12 Постквантовая криптография (перевод здесь)
5.13 Низкоресурсная (легковесная) криптография (перевод здесь)
5.14 Верифицируемая случайная функция (VRF) (перевод здесь)
5.15 Обфускация (перевод здесь)
6 Перспективные, но еще не использованные криптографические примитивы в блокчейне
6.1 Множественная (коллективная) подпись (перевод здесь)
6.2 Шифрование на основе идентификационных данных (IBE) (перевод здесь)
6.3 Верифицируемая функция задержки (VDF) (перевод здесь)
6.4 Получение скрытой информации (PIR) (перевод здесь)
6.5 Децентрализованная авторизация (перевод здесь)
6.6 White-box криптография
White-box атака — это модель угрозы, при которой злоумышленник полностью видит внутренний поток данных и может изменять данные и код. White-box криптография [183] направлена на решение проблемы реализации криптографического алгоритма в программном обеспечении таким образом, чтобы криптографические активы оставались безопасными даже при white-box атаках. White-box криптографическая реализация должна противостоять black-box атакам (злоумышленник имеет доступ только к вводу и выводу алгоритма), grey-box (побочный канал), а также white-box атакам. White-box криптография — это способ реализации криптографических алгоритмов, таких как RSA и AES, так что ключи остаются скрытыми все время, даже во время выполнения. В некоторых white-box реализациях ключ встроен в код и дополнительно скрыт для использования в криптографическом алгоритме. В блокчейне его можно использовать для сокрытия секретного ключа внутри смарт-контракта, и этот ключ можно разблокировать при выполнении смарт-контракта, а затем использовать его для создания подписи.
White-box криптография может быть организована в блокчейне для установления доверия и конфиденциальности активов. Как и в блокчейне, секреты ключа и начального числа являются единой точкой компромисса; это очень уязвимые и выгодные цели при хранении в памяти. Для безопасного хранения ключа его можно запутать с помощью white-box криптографии и в дальнейшем использовать для шифрования/дешифрования. Реализация white-box криптографии должна быть достаточно надежной, чтобы упростить хранение ключей в блокчейне. Она использовалась для самозащиты во время выполнения в надежном блокчейн-инспирированном реестре [123], и может продвигаться в других приложениях и сервисах блокчейна.