[] Как в системах, построенных на технологии блокчейн, осуществлять операции с ценностями, не разглашая их содержание?
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Последние годы в мире активно развивается технология блокчейн, которая представляет собой распределенную архитектуру, состоящую из множества равноправных «узлов». «Узлы» в свою очередь осуществляют обмен информацией в виде транзакций, содержащих информацию как о движении ценностей, так и о выполнении смарт-контрактов. При этом сама технология обеспечивает группировку этих транзакций в блоки, выработку консенсусов с целью включения блоков в существующие последовательности, выбор единственно верной цепочки блоков (блокчейн) и обеспечение распространения верной цепочки блоков между всеми «узлами».
Технология блокчейн позволяет обеспечить наличие в каждом «узле» корректной цепочки блоков, что также можно назвать технологией распределенного реестра.
По сути блокчейн или цепочка блоков представляет собой непрерывно актуализируемый реестр, хранящий в открытом виде всю информацию о транзакциях (движении ценностей и операций с ними) и позволяющий проследить полную историю возникновения и передачи ценностей между участниками. В единстве с наличием в каждом «узле» корректной цепочки блоков это позволяет обеспечить для участников системы неизменность и прозрачность содержащейся в таком распределенном реестре информации.
При этом нужно учитывать, что далеко не каждый участник, использующий функциональность технологии распределенного реестра, хочет афишировать состав, качество и количество своих ценностей, операции, проводимые с ними, или участников таких операций. Для решения задачи по обеспечению конфиденциальности указанной информации в различных системах, основанных на технологии распределенного реестра, можно рассмотреть применение технологии, использующей Протокол с нулевым разглашением секрета.
А что же в банковской сфере? С точки зрения АО «Россельхозбанк» технология распределенных реестров с реализацией Протокола с нулевым разглашением секрета может быть полезной при организации электронного взаимодействия между банками.
Указанное решение обладает следующим набором преимуществ:
— хранение информации о ценностях и операциях с ними без разглашения содержимого такой информации (конфиденциальность);
— высокая скорость проведения операций;
— относительная простота при реализации масштабируемости системы на основе технологии распределенного реестра в зависимости от потребностей участников;
— высокая отказоустойчивость при осуществлении хранения информации.
Предлагаем подробнее остановиться на решении, предполагающем использование Протокола с нулевым разглашением секрета, так как по нашему мнению именно этот ключевой элемент определяет потенциал применения технологии распределенного реестра в банковской сфере.
Особенности использования Протокола с нулевым разглашением секрета
Протокол с нулевым разглашением секрета является протоколом строгой аутентификации. В его работе используется пара открытого и закрытого ключа, а используется он для аутентификации пользователей без разглашения какой-либо секретной информации. Подобные протоколы применимы для обеспечения информационной безопасности во многих сферах современных информационных технологий. Помимо этого существуют варианты использования протоколов с нулевым разглашением секрета для построения механизма электронной подписи либо для повышения её криптостойкости перед атаками злоумышленников.
Протоколы с нулевым разглашением секрета принадлежат к протоколам с открытым ключом. Протокол построен на повторении раундов, включающих определенные действия. В процессе его работы раунд выполняется за 3 шага. Первые 2 шага в качестве входных значений используют случайные значения. Сторона, которую проверяют, называется «Доказывающий», а сторона, которая проверяет называется «Проверяющий».
Шаги раунда:
1. Доказывающий производит генерацию одноразового секретного ключа, а также одноразового открытого ключа, который затем отправляет Проверяющему;
2. Проверяющий получает одноразовый открытый ключ от Доказывающего и затем производит генерацию случайного бита, который затем посылает Доказывающему;
3. Доказывающий получает бит информации и производит над ним вычисления.
Получившийся результат Доказывающий отправляет Проверяющему для проверки.
Во всех раундах проверки вероятность правильного ответа равна 50 %, то есть в каждом раунде Доказывающий может обладать знанием истины с вероятностью 50 %.
Чтобы добиться нужной точности, следует увеличивать количество таких раундов, тем самым достигнув необходимой вероятности, при который Доказывающий будет считаться авторизованным.
Основными проблемами при использовании протоколов с нулевым разглашением секрета являются:
1. Требуемая длина открытого ключа;
2. Уверенность в том, что секрет не был разглашен каким-то другим способом.
Рассмотрим теоретическую составляющую нескольких протоколов с нулевым разглашением секрета и составим сравнительную таблицу их характеристик.
Протокол zkSNARKs
zkSNARKs означает «неинтерактивный аргумент знания с нулевым разглашением».
Эта форма криптографии, которая позволяет человеку доказать, что он является владельцем определенного набора данных, не обязательно раскрывая его. Эта система включает только две стороны: проводников и верификаторов. Проводник доказывает, что определенный элемент, информация или слово существуют и правильны, не раскрывая, что это за элемент или информация. В этом смысл нулевого знания. Процесс, который включили в доказательство и утверждение информации является быстрым и может быть подтвержден в доли секунды даже для программ с большими объемами данных.
Для работы протокол должен удовлетворять основным требованиям нулевого разглашения секрета.
Например, был создан смарт-контракт. Пользователь сможет получить платеж, если сделает определенные действия. Что делать, если пользователь не хочет раскрывать детали, потому что они являются конфиденциальными и секретными для конкурентов?
Для этого используется протокол с нулевым разглашением zkSNARKs, который доказывает, что шаги были исполнены согласно условиям смарт-контракта, не раскрывая, что это за действия. Он может просто показать часть процесса, не показывая весь процесс, и доказать, что пользователь честен.
zkSNARKs состоит из 3 алгоритмов: G, P и V.
Генератор (C — программа, λ – input, которая не должна раскрываться (конфиденциально)):
(pk,vk) = G(λ,C)
Доказывающий (x – общедоступный input, w – секретное заявление, которое нужно доказать, но не рассказывать):
π = P(pk,x,w) – доказательство prf
Проверяющий:
V(vk,x,π) == (∃ w s.t.C(x,w)) – true или false
G является генератором ключей, принимающим input λ (который не должен раскрываться ни при каких обстоятельствах) и программу C. Затем генерируется два общедоступных ключа: ключ проверки pk (для пруфера) и доказательный ключ vk (для верификатора). Эти ключи являются доступными для любой из заинтересованных сторон.
P — это тот, кто будет использовать 3 элемента в качестве входных данных. Проверяющий ключ pk, случайный input x, который является общедоступным, и заявление, которое нужно доказать, но не рассказывать, что это на самом деле. Назовем этого оператора «w». Алгоритм P порождает доказательство prf такое, что: prf = P (pk,x,w).
Алгоритм верификатора V возвращает логическую переменную. Логическая переменная имеет только два варианта: она может быть TRUE (правда) или FALSE (ложь). Итак, верификатор принимает ключ, input X и доказательство prf в качестве входных данных, таких как: V(vk,x,prf). А затем определяет, правда это или ложь.
Стоит отметить, что параметр λ, используемый в генераторе, иногда затрудняет использование zkSNARKs в реальных приложениях. Причина этого в том, что любой, кто знает этот параметр, может генерировать поддельные доказательства. Поэтому необходимо, чтобы значение λ было конфиденциальным.
Таким образом, запуск генератора должен являться безопасным процессом, защищенным от того, чтобы кто-то мог узнать или украсть параметр λ.
Протокол zkSTARKs
В zkSTARKs отсутствует фаза внешней доверенной установки, и используемая случайность является общедоступной информацией. Публичное использование случайности исключительно важно для общественности, чтобы доверять системам с нулевым знанием, иначе могущественный объект мог бы оказать свое влияние, чтобы получить параметры настройки и генерировать ложные доказательства. Поскольку не существует сторонней фазы доверительной настройки и вместо нее используется общедоступная проверяемая случайность, системы zkSTARKs создают проверяемое доверие.
zkSTARKs не полагаются на пары закрытых и открытых ключей (такие как ECDSA), но полагаются на хеширование для интерактивных решений, устойчивое к столкновениям,, и случайную модель оракула (которая обычно используется вместо общих криптографических хеш-функций, где для вывода оракула требуются строгие предположения о случайности) для неинтерактивных доказательств (zknSTARKs, n = неинтерактивный), поэтому zkSTARKs могут быть устойчивы к атакам квантовых компьютеров.
Протокол zkSTARKs является масштабируемым, прозрачным, имеет универсальное применение и может быть устойчивым к квантовым воздействиям. Это позволяет создать доверие к технологии, поскольку поддается проверке. Есть много областей, которые могут быть улучшены с помощью таких технологий, как zkSTARKs, где требуется доверие и существуют большие стимулы для обмана, например:
— системы голосования;
— выполнение вычисления и проверка его результатов, таких как прошлые транзакции в распределённых реестрах;
— безопасная проверка информации, например, для подтверждения личности или учетных данных.
Можно выделить четыре категории, связанные с масштабируемостью (результаты, полученные из документа zkSTARKs):
1. Сложность арифметической схемы (в системах zkSNARK и zkSTARK код для создания программ zk написан таким образом, чтобы они могли разбить на схемы, а затем вычислить – фактически сложность схемы выше ее вычислительной эффективности;
2. Сложность связи (по мере роста объема вычислений растет и сложность связи zkSNARK линейным способом, в отличие от zkSTARKs, который растет незначительно с ростом размера вычислений);
3. Доказательная сложность (zkSTARKs по сравнению с zkSNARK примерно в 10 раз быстрее, чем размер вычислений);
4. Сложность верификатора (По мере роста объема вычислений zkSTARKs растут лишь незначительно по сравнению с zkSNARK, которые имеют тенденцию к линейному росту, что является существенным преимуществом zkSTARKs по сравнению с zkSNARK, когда дело доходит до установки времени).
Протокол zkSTARKs планировали использовать в Ethereum в проверяемых вычислениях и потенциально безопасных / анонимных транзакциях, а также в приложениях Dapps, где важна конфиденциальность, таких как веб-браузер Brave, использующий токен Basic Attention.
Существует новая компания под названием StarkWare Industries, которая стремится решить некоторые проблемы с использованием ZK-STARK (одной из которых является размер доказательства), а также коммерциализировать технологию, которая может быть использована во многих отраслях, включая реализации систем распределённых реестров.
Технология Bulletproofs
Подразделение разработок распределённых реестров банка ING экспериментирует с технологией Bulletproofs (в переводе с англ. — «пуленепробиваемый»), которая ориентирована на конфиденциальность и основана на современных криптографических алгоритмах.
Технология Bulletproofs основана на работах Джонатана Бутла (Jonathan Bootle) и других авторов от 2016 года, посвященных повышению эффективности использования дискретного логарифмирования, которое лежит в основе доказательства с нулевым разглашением. и представляет собой более эффективную форму этого самого доказательства.
Важно, что Bulletproofs имеет встроенную поддержку открытых ключей и обязательств Педерсена (криптографический примитив, который позволяет зафиксировать какое-либо выбранное значение, сохраняя его скрытым для других, с возможностью позже раскрыть зафиксированное значение). Это дает нам возможность реализовать доказательства диапазона на общих принципах нулевого разглашения без осуществления тяжелых машинных расчетов эллиптических кривых.
Доказательства Bulletproofs представлены в гораздо более общем виде, нежели доказательства диапазона и могут использоваться для произвольных утверждений с нулевым знанием. По своей эффективности технология сопоставима с zkSNARKs или zkSTARKs, но имеет встроенную поддержку открытых ключей на эллиптической кривой и обязательств Педерсена (поэтому, как правило, отсутствует необходимость осуществлять вычисления эллиптической кривой внутри проверенной программы). Также, в отличие от zkSNARKs, доказательства Bulletproofs имеют полный 128-битный уровень криптостойкости в соответствии со стандартными предположениями без использования «доверенной установки». И, в отличие от zkSTARKs, они достаточно быстры, чтобы можно было доказывать и проверять разумные по масштабу задачи на обычном вычислительном оборудовании.
По сравнению с технологией ZKP, которая требует больших вычислительных мощностей, технология Bulletproofs примерно в 10 раз быстрее, так как позволяет проводить транзакции без обмена платежными данными.
Ключевые пункты по данной технологии (протоколу):
— в основе технологии Bulletproofs лежат общие принципы доказательства с нулевым разглашением (как и в zkSNARKs);
— технология может использоваться для расширения многосторонних протоколов, таких как мультиподписи или условные платежи с нулевым знанием;
— Bulletproofs предоставляет гораздо более эффективную версию доказательств диапазона конфиденциальных транзакций (при использовании пакетной верификации скорость проверки увеличивается более чем в 23 раза);
— такие доказательства диапазона могут быть объединены внутри транзакции, при этом её размер будет расти логарифмически;
— при должном агрегировании, таком как Provisions, пакетная верификация дает более чем 120-кратный прирост скорости по сравнению с прежними доказательствами.
Сравнительная таблица характеристик протоколов
Составим сравнительную таблицу с характеристиками рассмотренных протоколов с нулевым разглашением секрета
Выводы
1. zk-SNARKs и zk-STARKs имеют множество областей применения, в том числе для целей реализации простых электронных подписей, а также создания систем электронного документооборота, предполагающего обеспечение конфиденциальности информации.
2. В целом, протоколы с нулевым разглашением являются очень перспективными и становятся более практичными для использования в системах на основе технологии распределенного реестра. На данный момент каждая реализация по-своему выделяется, однако, все они требуют ресурсов, и существует необходимость в эффективных решениях с нулевым диапазоном знаний.
3. Одним из недостатков, на наш взгляд, выступает отсутствие реализации Протокола с нулевым разглашением секрета, использующего отечественные криптографические алгоритмы и средства криптографической защиты информации, что является существенным ограничением для применения протокола (к примеру, для обработки информации, защищаемой в соответствии с законодательством Российской Федерации).
Список литературы
1. ГОСТ 34.13-2018 Информационная технология (ИТ). Криптографическая защита информации. Режимы работы блочных шифров // docs.cntd.ru URL: docs.cntd.ru/document/1200161709 (дата обращения: 31.05.2020);
2. Recommendation for Key Management Part 1: General // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf (дата обращения: 11.05.2020);
3. ГОСТ Р ИСО/МЭК 12207-2010 // docs.cntd.ru/ URL: docs.cntd.ru/document/gost-r-iso-mek-12207-2010 (дата обращения: 11.05.2020);
4. Recommendation for Cryptographic Key Generation // nvlpubs.nist.gov/ URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r1.pdf (дата обращения: 11.05.2020);
5. Recommendation for Key Management Part 2 – Best Practices for Key Management Organizations // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt2r1.pdf (дата обращения: 11.05.2020);
6. Security Requirements for Cryptographic Modules // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf (дата обращения: 11.05.2020);
7. Payment Card Industry (PCI) Data Security Standard // pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf?agreement=true&time=1589494129851 (дата обращения: 11.05.2020);
8. Управление ключами шифрования и безопасность сети // intuit.ru URL: www.intuit.ru/studies/courses/553/409/info (дата обращения: 11.05.2020).
9. Базовые конструкции протоколов распределения ключей // cryptowiki.net/ URL: cryptowiki.net/index.php?title=Базовые_конструкции_протоколов_распределения_ключей (дата обращения: 11.05.2020);
10. Kerberos_(protocol) // en.wikipedia.org URL: en.wikipedia.org/wiki/Kerberos_(protocol) (дата обращения: 11.05.2020)
11. RFC5280 — Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile;
12. Recommendation for Key Management Part 3: Application-Specific Key Management Guidance // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57Pt3r1.pdf (дата обращения: 11.05.2020);
13. Blockchain reference architecture // ibm.com URL: www.ibm.com/cloud/architecture/files/blockchain-architecture-diagram.pdf (дата обращения: 24.05.2020).
14. Key management // cloud.ibm.com URL: cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-security (дата обращения: 24.05.2020);
15. Воронов, Д. С. Обзор требований безопасности для криптографических модулей / Д. С. Воронов. — Текст: непосредственный // Молодой ученый. — 2016. — № 1 (105). — С. 141-143. — URL: moluch.ru/archive/105/24663 (дата обращения: 31.05.2020).
16. CKMS – Система управления криптографическими ключами // www.cryptomathic.com URL: www.cryptomathic.com/hubfs/Documents/Product_Sheets/Cryptomathic_CKMS_-_Product_Sheet.pdf (дата обращения: 31.05.2020);
17. Аппаратные модули безопасности HSM // www.croc.ru URL: www.croc.ru/promo/insafety/design/hardware-security-module (дата обращения: 31.05.2020);
18. Функционально технические требования к HSM // cbr.ru URL: cbr.ru/Content/Document/File/104755/FT_35.pdf (дата обращения: 30.05.2020);
19. AWS Key Management Service // aws.amazon.com URL: aws.amazon.com/ru/kms (дата обращения: 30.05.2020);
20. Руководящий документ. Безопасность информационных технологий. Критерии оценки безопасности информационных технологий // zakonbase.ru URL: zakonbase.ru/content/part/1250444 (дата обращения: 31.05.2020);
21. Diffie Hellman Protocol // mathworld.wolfram.com URL: mathworld.wolfram.com/Diffie-HellmanProtocol.html (дата обращения: 31.05.2020);
22. STS Protocol // archive.dimacs.rutgers.edu URL: archive.dimacs.rutgers.edu/Workshops/Security/program2/boyd/node13.html (дата обращения: 31.05.2020);
23. The Needham-Schroeder Protocol // www.cs.utexas.edu URL: www.cs.utexas.edu/~byoung/cs361/lecture60.pdf (дата обращения: 31.05.2020);
24. Otway Rees protocol // www.lsv.fr URL: www.lsv.fr/Software/spore/otwayRees.pdf (дата обращения: 31.05.2020);
25. Payment Card Industry (PCI) PTS HSM Security Requirements // www.pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PTS_HSM_Technical_FAQs_v3_May_2018.pdf (дата обращения: 31.05.2020);
26. Что такое zk-SNARK? // z.cash/ru URL: z.cash/ru/technology/zksnarks (дата обращения: 31.05.2020);
27. Что такое zk-SNARKs и zk-STARKs? // academy.binance.com/ru URL: academy.binance.com/ru/blockchain/zk-snarks-and-zk-starks-explained (дата обращения: 31.05.2020);
28. Bulletproofs: Short Proofs for Confidential Transactions and More // web.stanford.edu URL: web.stanford.edu/~buenz/pubs/bulletproofs.pdf (дата обращения: 31.05.2020);
29. Что такое технология распределенного реестра Автор Татьяна Чепкова // beincrypto.ru URL: beincrypto.ru/learn/chto-takoe-tehnologiya-raspredelennogo-reestra (дата обращения: 31.05.2020);
30. 12 консенсус-протоколов для распределенных систем // dou.ua URL: dou.ua/lenta/articles/12-konsensus-protocols (дата обращения: 31.05.2020);
31. СТ РК ISO/IEC 11770-1-2017. Информационные технологии Методы обеспечения безопасности Менеджмент ключей Часть 1 СТРУКТУРА // www.egfntd.kz URL: www.egfntd.kz/rus/tv/391980.html?sw_gr=-1&sw_str=&sw_sec=24 (дата обращения: 31.05.2020);
32. Consensus algorithm // whatis.techtarget.com URL: clck.ru/Nvade (дата обращения: 31.05.2020);
33. Introduction to Zero Knowledge Proof: The protocol of next generation Blockchain // medium.com URL: medium.com/@kotsbtechcdac/introduction-to-zero-knowledge-proof-the-protocol-of-next-generation-blockchain-305b2fc7f8e5 (дата обращения: 31.05.2020).
===========
Источник:
habr.com
===========
Похожие новости:
- [] Открыт прием заявок на акселератор технологических стартапов от РСХБ и Сколково
- [Машинное обучение, Искусственный интеллект] Модерация изображений: уроки этикета от Data Scientist’a, часть 2
- [] 22-я Российская агропромышленная выставка «Золотая Осень – 2020»
- [Децентрализованные сети, Криптография, Распределённые системы, Криптовалюты] Можно ли генерировать случайные числа, если мы не доверяем друг другу? Часть 2
- [] Цифровая экосистема Россельхозбанка вышла в финал международного конкурса Eye on Innovation Award
- [Java] Делаем динамический отчет средствами JPA Criteria.Api
- [Java, Микросервисы] Что такое Vertx, и почему он подходит для РСХБ
- [Исследования и прогнозы в IT, Квантовые технологии, Криптография, Физика] Физики из Германии нашли способ объединить квантовую криптографию с полупроводниковыми технологиями
- [Информационная безопасность, Программирование, CTF] Мамкины хацкеры или мой путь в CTF
- [Usability, Дизайн, Веб-дизайн, Дизайн мобильных приложений] UXD — Реальность и будущее в дизайне или человек во главе всего
Теги для поиска: #_kriptografija (криптография), #_konfidentsialnost (конфиденциальность), #_blog_kompanii_rosselhozbank (
Блог компании Россельхозбанк
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 22:36
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Последние годы в мире активно развивается технология блокчейн, которая представляет собой распределенную архитектуру, состоящую из множества равноправных «узлов». «Узлы» в свою очередь осуществляют обмен информацией в виде транзакций, содержащих информацию как о движении ценностей, так и о выполнении смарт-контрактов. При этом сама технология обеспечивает группировку этих транзакций в блоки, выработку консенсусов с целью включения блоков в существующие последовательности, выбор единственно верной цепочки блоков (блокчейн) и обеспечение распространения верной цепочки блоков между всеми «узлами». Технология блокчейн позволяет обеспечить наличие в каждом «узле» корректной цепочки блоков, что также можно назвать технологией распределенного реестра. По сути блокчейн или цепочка блоков представляет собой непрерывно актуализируемый реестр, хранящий в открытом виде всю информацию о транзакциях (движении ценностей и операций с ними) и позволяющий проследить полную историю возникновения и передачи ценностей между участниками. В единстве с наличием в каждом «узле» корректной цепочки блоков это позволяет обеспечить для участников системы неизменность и прозрачность содержащейся в таком распределенном реестре информации. При этом нужно учитывать, что далеко не каждый участник, использующий функциональность технологии распределенного реестра, хочет афишировать состав, качество и количество своих ценностей, операции, проводимые с ними, или участников таких операций. Для решения задачи по обеспечению конфиденциальности указанной информации в различных системах, основанных на технологии распределенного реестра, можно рассмотреть применение технологии, использующей Протокол с нулевым разглашением секрета. А что же в банковской сфере? С точки зрения АО «Россельхозбанк» технология распределенных реестров с реализацией Протокола с нулевым разглашением секрета может быть полезной при организации электронного взаимодействия между банками. Указанное решение обладает следующим набором преимуществ: — хранение информации о ценностях и операциях с ними без разглашения содержимого такой информации (конфиденциальность); — высокая скорость проведения операций; — относительная простота при реализации масштабируемости системы на основе технологии распределенного реестра в зависимости от потребностей участников; — высокая отказоустойчивость при осуществлении хранения информации. Предлагаем подробнее остановиться на решении, предполагающем использование Протокола с нулевым разглашением секрета, так как по нашему мнению именно этот ключевой элемент определяет потенциал применения технологии распределенного реестра в банковской сфере. Особенности использования Протокола с нулевым разглашением секрета Протокол с нулевым разглашением секрета является протоколом строгой аутентификации. В его работе используется пара открытого и закрытого ключа, а используется он для аутентификации пользователей без разглашения какой-либо секретной информации. Подобные протоколы применимы для обеспечения информационной безопасности во многих сферах современных информационных технологий. Помимо этого существуют варианты использования протоколов с нулевым разглашением секрета для построения механизма электронной подписи либо для повышения её криптостойкости перед атаками злоумышленников. Протоколы с нулевым разглашением секрета принадлежат к протоколам с открытым ключом. Протокол построен на повторении раундов, включающих определенные действия. В процессе его работы раунд выполняется за 3 шага. Первые 2 шага в качестве входных значений используют случайные значения. Сторона, которую проверяют, называется «Доказывающий», а сторона, которая проверяет называется «Проверяющий». Шаги раунда: 1. Доказывающий производит генерацию одноразового секретного ключа, а также одноразового открытого ключа, который затем отправляет Проверяющему; 2. Проверяющий получает одноразовый открытый ключ от Доказывающего и затем производит генерацию случайного бита, который затем посылает Доказывающему; 3. Доказывающий получает бит информации и производит над ним вычисления. Получившийся результат Доказывающий отправляет Проверяющему для проверки. Во всех раундах проверки вероятность правильного ответа равна 50 %, то есть в каждом раунде Доказывающий может обладать знанием истины с вероятностью 50 %. Чтобы добиться нужной точности, следует увеличивать количество таких раундов, тем самым достигнув необходимой вероятности, при который Доказывающий будет считаться авторизованным. Основными проблемами при использовании протоколов с нулевым разглашением секрета являются: 1. Требуемая длина открытого ключа; 2. Уверенность в том, что секрет не был разглашен каким-то другим способом. Рассмотрим теоретическую составляющую нескольких протоколов с нулевым разглашением секрета и составим сравнительную таблицу их характеристик. Протокол zkSNARKs zkSNARKs означает «неинтерактивный аргумент знания с нулевым разглашением». Эта форма криптографии, которая позволяет человеку доказать, что он является владельцем определенного набора данных, не обязательно раскрывая его. Эта система включает только две стороны: проводников и верификаторов. Проводник доказывает, что определенный элемент, информация или слово существуют и правильны, не раскрывая, что это за элемент или информация. В этом смысл нулевого знания. Процесс, который включили в доказательство и утверждение информации является быстрым и может быть подтвержден в доли секунды даже для программ с большими объемами данных. Для работы протокол должен удовлетворять основным требованиям нулевого разглашения секрета. Например, был создан смарт-контракт. Пользователь сможет получить платеж, если сделает определенные действия. Что делать, если пользователь не хочет раскрывать детали, потому что они являются конфиденциальными и секретными для конкурентов? Для этого используется протокол с нулевым разглашением zkSNARKs, который доказывает, что шаги были исполнены согласно условиям смарт-контракта, не раскрывая, что это за действия. Он может просто показать часть процесса, не показывая весь процесс, и доказать, что пользователь честен. zkSNARKs состоит из 3 алгоритмов: G, P и V. Генератор (C — программа, λ – input, которая не должна раскрываться (конфиденциально)): (pk,vk) = G(λ,C) Доказывающий (x – общедоступный input, w – секретное заявление, которое нужно доказать, но не рассказывать): π = P(pk,x,w) – доказательство prf Проверяющий: V(vk,x,π) == (∃ w s.t.C(x,w)) – true или false G является генератором ключей, принимающим input λ (который не должен раскрываться ни при каких обстоятельствах) и программу C. Затем генерируется два общедоступных ключа: ключ проверки pk (для пруфера) и доказательный ключ vk (для верификатора). Эти ключи являются доступными для любой из заинтересованных сторон. P — это тот, кто будет использовать 3 элемента в качестве входных данных. Проверяющий ключ pk, случайный input x, который является общедоступным, и заявление, которое нужно доказать, но не рассказывать, что это на самом деле. Назовем этого оператора «w». Алгоритм P порождает доказательство prf такое, что: prf = P (pk,x,w). Алгоритм верификатора V возвращает логическую переменную. Логическая переменная имеет только два варианта: она может быть TRUE (правда) или FALSE (ложь). Итак, верификатор принимает ключ, input X и доказательство prf в качестве входных данных, таких как: V(vk,x,prf). А затем определяет, правда это или ложь. Стоит отметить, что параметр λ, используемый в генераторе, иногда затрудняет использование zkSNARKs в реальных приложениях. Причина этого в том, что любой, кто знает этот параметр, может генерировать поддельные доказательства. Поэтому необходимо, чтобы значение λ было конфиденциальным. Таким образом, запуск генератора должен являться безопасным процессом, защищенным от того, чтобы кто-то мог узнать или украсть параметр λ. Протокол zkSTARKs В zkSTARKs отсутствует фаза внешней доверенной установки, и используемая случайность является общедоступной информацией. Публичное использование случайности исключительно важно для общественности, чтобы доверять системам с нулевым знанием, иначе могущественный объект мог бы оказать свое влияние, чтобы получить параметры настройки и генерировать ложные доказательства. Поскольку не существует сторонней фазы доверительной настройки и вместо нее используется общедоступная проверяемая случайность, системы zkSTARKs создают проверяемое доверие. zkSTARKs не полагаются на пары закрытых и открытых ключей (такие как ECDSA), но полагаются на хеширование для интерактивных решений, устойчивое к столкновениям,, и случайную модель оракула (которая обычно используется вместо общих криптографических хеш-функций, где для вывода оракула требуются строгие предположения о случайности) для неинтерактивных доказательств (zknSTARKs, n = неинтерактивный), поэтому zkSTARKs могут быть устойчивы к атакам квантовых компьютеров. Протокол zkSTARKs является масштабируемым, прозрачным, имеет универсальное применение и может быть устойчивым к квантовым воздействиям. Это позволяет создать доверие к технологии, поскольку поддается проверке. Есть много областей, которые могут быть улучшены с помощью таких технологий, как zkSTARKs, где требуется доверие и существуют большие стимулы для обмана, например: — системы голосования; — выполнение вычисления и проверка его результатов, таких как прошлые транзакции в распределённых реестрах; — безопасная проверка информации, например, для подтверждения личности или учетных данных. Можно выделить четыре категории, связанные с масштабируемостью (результаты, полученные из документа zkSTARKs): 1. Сложность арифметической схемы (в системах zkSNARK и zkSTARK код для создания программ zk написан таким образом, чтобы они могли разбить на схемы, а затем вычислить – фактически сложность схемы выше ее вычислительной эффективности; 2. Сложность связи (по мере роста объема вычислений растет и сложность связи zkSNARK линейным способом, в отличие от zkSTARKs, который растет незначительно с ростом размера вычислений); 3. Доказательная сложность (zkSTARKs по сравнению с zkSNARK примерно в 10 раз быстрее, чем размер вычислений); 4. Сложность верификатора (По мере роста объема вычислений zkSTARKs растут лишь незначительно по сравнению с zkSNARK, которые имеют тенденцию к линейному росту, что является существенным преимуществом zkSTARKs по сравнению с zkSNARK, когда дело доходит до установки времени). Протокол zkSTARKs планировали использовать в Ethereum в проверяемых вычислениях и потенциально безопасных / анонимных транзакциях, а также в приложениях Dapps, где важна конфиденциальность, таких как веб-браузер Brave, использующий токен Basic Attention. Существует новая компания под названием StarkWare Industries, которая стремится решить некоторые проблемы с использованием ZK-STARK (одной из которых является размер доказательства), а также коммерциализировать технологию, которая может быть использована во многих отраслях, включая реализации систем распределённых реестров. Технология Bulletproofs Подразделение разработок распределённых реестров банка ING экспериментирует с технологией Bulletproofs (в переводе с англ. — «пуленепробиваемый»), которая ориентирована на конфиденциальность и основана на современных криптографических алгоритмах. Технология Bulletproofs основана на работах Джонатана Бутла (Jonathan Bootle) и других авторов от 2016 года, посвященных повышению эффективности использования дискретного логарифмирования, которое лежит в основе доказательства с нулевым разглашением. и представляет собой более эффективную форму этого самого доказательства. Важно, что Bulletproofs имеет встроенную поддержку открытых ключей и обязательств Педерсена (криптографический примитив, который позволяет зафиксировать какое-либо выбранное значение, сохраняя его скрытым для других, с возможностью позже раскрыть зафиксированное значение). Это дает нам возможность реализовать доказательства диапазона на общих принципах нулевого разглашения без осуществления тяжелых машинных расчетов эллиптических кривых. Доказательства Bulletproofs представлены в гораздо более общем виде, нежели доказательства диапазона и могут использоваться для произвольных утверждений с нулевым знанием. По своей эффективности технология сопоставима с zkSNARKs или zkSTARKs, но имеет встроенную поддержку открытых ключей на эллиптической кривой и обязательств Педерсена (поэтому, как правило, отсутствует необходимость осуществлять вычисления эллиптической кривой внутри проверенной программы). Также, в отличие от zkSNARKs, доказательства Bulletproofs имеют полный 128-битный уровень криптостойкости в соответствии со стандартными предположениями без использования «доверенной установки». И, в отличие от zkSTARKs, они достаточно быстры, чтобы можно было доказывать и проверять разумные по масштабу задачи на обычном вычислительном оборудовании. По сравнению с технологией ZKP, которая требует больших вычислительных мощностей, технология Bulletproofs примерно в 10 раз быстрее, так как позволяет проводить транзакции без обмена платежными данными. Ключевые пункты по данной технологии (протоколу): — в основе технологии Bulletproofs лежат общие принципы доказательства с нулевым разглашением (как и в zkSNARKs); — технология может использоваться для расширения многосторонних протоколов, таких как мультиподписи или условные платежи с нулевым знанием; — Bulletproofs предоставляет гораздо более эффективную версию доказательств диапазона конфиденциальных транзакций (при использовании пакетной верификации скорость проверки увеличивается более чем в 23 раза); — такие доказательства диапазона могут быть объединены внутри транзакции, при этом её размер будет расти логарифмически; — при должном агрегировании, таком как Provisions, пакетная верификация дает более чем 120-кратный прирост скорости по сравнению с прежними доказательствами. Сравнительная таблица характеристик протоколов Составим сравнительную таблицу с характеристиками рассмотренных протоколов с нулевым разглашением секрета Выводы 1. zk-SNARKs и zk-STARKs имеют множество областей применения, в том числе для целей реализации простых электронных подписей, а также создания систем электронного документооборота, предполагающего обеспечение конфиденциальности информации. 2. В целом, протоколы с нулевым разглашением являются очень перспективными и становятся более практичными для использования в системах на основе технологии распределенного реестра. На данный момент каждая реализация по-своему выделяется, однако, все они требуют ресурсов, и существует необходимость в эффективных решениях с нулевым диапазоном знаний. 3. Одним из недостатков, на наш взгляд, выступает отсутствие реализации Протокола с нулевым разглашением секрета, использующего отечественные криптографические алгоритмы и средства криптографической защиты информации, что является существенным ограничением для применения протокола (к примеру, для обработки информации, защищаемой в соответствии с законодательством Российской Федерации). Список литературы 1. ГОСТ 34.13-2018 Информационная технология (ИТ). Криптографическая защита информации. Режимы работы блочных шифров // docs.cntd.ru URL: docs.cntd.ru/document/1200161709 (дата обращения: 31.05.2020); 2. Recommendation for Key Management Part 1: General // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf (дата обращения: 11.05.2020); 3. ГОСТ Р ИСО/МЭК 12207-2010 // docs.cntd.ru/ URL: docs.cntd.ru/document/gost-r-iso-mek-12207-2010 (дата обращения: 11.05.2020); 4. Recommendation for Cryptographic Key Generation // nvlpubs.nist.gov/ URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r1.pdf (дата обращения: 11.05.2020); 5. Recommendation for Key Management Part 2 – Best Practices for Key Management Organizations // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt2r1.pdf (дата обращения: 11.05.2020); 6. Security Requirements for Cryptographic Modules // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf (дата обращения: 11.05.2020); 7. Payment Card Industry (PCI) Data Security Standard // pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf?agreement=true&time=1589494129851 (дата обращения: 11.05.2020); 8. Управление ключами шифрования и безопасность сети // intuit.ru URL: www.intuit.ru/studies/courses/553/409/info (дата обращения: 11.05.2020). 9. Базовые конструкции протоколов распределения ключей // cryptowiki.net/ URL: cryptowiki.net/index.php?title=Базовые_конструкции_протоколов_распределения_ключей (дата обращения: 11.05.2020); 10. Kerberos_(protocol) // en.wikipedia.org URL: en.wikipedia.org/wiki/Kerberos_(protocol) (дата обращения: 11.05.2020) 11. RFC5280 — Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile; 12. Recommendation for Key Management Part 3: Application-Specific Key Management Guidance // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57Pt3r1.pdf (дата обращения: 11.05.2020); 13. Blockchain reference architecture // ibm.com URL: www.ibm.com/cloud/architecture/files/blockchain-architecture-diagram.pdf (дата обращения: 24.05.2020). 14. Key management // cloud.ibm.com URL: cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-security (дата обращения: 24.05.2020); 15. Воронов, Д. С. Обзор требований безопасности для криптографических модулей / Д. С. Воронов. — Текст: непосредственный // Молодой ученый. — 2016. — № 1 (105). — С. 141-143. — URL: moluch.ru/archive/105/24663 (дата обращения: 31.05.2020). 16. CKMS – Система управления криптографическими ключами // www.cryptomathic.com URL: www.cryptomathic.com/hubfs/Documents/Product_Sheets/Cryptomathic_CKMS_-_Product_Sheet.pdf (дата обращения: 31.05.2020); 17. Аппаратные модули безопасности HSM // www.croc.ru URL: www.croc.ru/promo/insafety/design/hardware-security-module (дата обращения: 31.05.2020); 18. Функционально технические требования к HSM // cbr.ru URL: cbr.ru/Content/Document/File/104755/FT_35.pdf (дата обращения: 30.05.2020); 19. AWS Key Management Service // aws.amazon.com URL: aws.amazon.com/ru/kms (дата обращения: 30.05.2020); 20. Руководящий документ. Безопасность информационных технологий. Критерии оценки безопасности информационных технологий // zakonbase.ru URL: zakonbase.ru/content/part/1250444 (дата обращения: 31.05.2020); 21. Diffie Hellman Protocol // mathworld.wolfram.com URL: mathworld.wolfram.com/Diffie-HellmanProtocol.html (дата обращения: 31.05.2020); 22. STS Protocol // archive.dimacs.rutgers.edu URL: archive.dimacs.rutgers.edu/Workshops/Security/program2/boyd/node13.html (дата обращения: 31.05.2020); 23. The Needham-Schroeder Protocol // www.cs.utexas.edu URL: www.cs.utexas.edu/~byoung/cs361/lecture60.pdf (дата обращения: 31.05.2020); 24. Otway Rees protocol // www.lsv.fr URL: www.lsv.fr/Software/spore/otwayRees.pdf (дата обращения: 31.05.2020); 25. Payment Card Industry (PCI) PTS HSM Security Requirements // www.pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PTS_HSM_Technical_FAQs_v3_May_2018.pdf (дата обращения: 31.05.2020); 26. Что такое zk-SNARK? // z.cash/ru URL: z.cash/ru/technology/zksnarks (дата обращения: 31.05.2020); 27. Что такое zk-SNARKs и zk-STARKs? // academy.binance.com/ru URL: academy.binance.com/ru/blockchain/zk-snarks-and-zk-starks-explained (дата обращения: 31.05.2020); 28. Bulletproofs: Short Proofs for Confidential Transactions and More // web.stanford.edu URL: web.stanford.edu/~buenz/pubs/bulletproofs.pdf (дата обращения: 31.05.2020); 29. Что такое технология распределенного реестра Автор Татьяна Чепкова // beincrypto.ru URL: beincrypto.ru/learn/chto-takoe-tehnologiya-raspredelennogo-reestra (дата обращения: 31.05.2020); 30. 12 консенсус-протоколов для распределенных систем // dou.ua URL: dou.ua/lenta/articles/12-konsensus-protocols (дата обращения: 31.05.2020); 31. СТ РК ISO/IEC 11770-1-2017. Информационные технологии Методы обеспечения безопасности Менеджмент ключей Часть 1 СТРУКТУРА // www.egfntd.kz URL: www.egfntd.kz/rus/tv/391980.html?sw_gr=-1&sw_str=&sw_sec=24 (дата обращения: 31.05.2020); 32. Consensus algorithm // whatis.techtarget.com URL: clck.ru/Nvade (дата обращения: 31.05.2020); 33. Introduction to Zero Knowledge Proof: The protocol of next generation Blockchain // medium.com URL: medium.com/@kotsbtechcdac/introduction-to-zero-knowledge-proof-the-protocol-of-next-generation-blockchain-305b2fc7f8e5 (дата обращения: 31.05.2020). =========== Источник: habr.com =========== Похожие новости:
Блог компании Россельхозбанк ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 22:36
Часовой пояс: UTC + 5