Блокчейн. Цихилов. Блокчейн (Цихилов). Копирование, воспроизведение и иное использование электронной книги, ее частей
![]()
|
Помимо стандартной цифровой подписи, в различных реализациях блокчейн-проектов применяются некоторые экзотические ее формы. Например, «слепая подпись», которую еще называют «доказательством с нулевым разглашением». Алгоритм слепой подписи прост: один участник системы шифрует свое сообщение и посылает его другому участнику, который является доверенным узлом (доверенным для некоторого множества других узлов) в системе. Этот доверенный участник ставит свою подпись на зашифрованном сообщении, при этом фактически не имея понятия о его содержимом. После чего подписанное сообщение возвращается его исходному отправителю, который обратно дешифрует его, оставляя только подпись доверенного узла. Это можно было бы сравнить с ситуацией, когда доверенный участник получает заклеенный конверт, внутри которого, помимо листа с сообщением, находится также и копировальный лист. Получатель, не вскрывая конверт, ставит на него свою подпись, которая через копировальный лист автоматически отпечатывается на листе с сообщением. По возвращении конверта отправителю тот изымает из него подписанное сообщение, достигнув таким образом желаемого — получить подпись доверенного узла, не разглашая ему само сообщение. Подобную операцию можно провести и чисто математически, используя протоколы асимметричной криптографии, например, при помощи алгоритма факторизации RSA. Для чего используются такие замысловатые приемы? На самом деле вариантов предостаточно. В качестве примера приведем систему тайного голосования на выборах. Чтобы получить бюллетень, избиратель должен быть идентифицирован сотрудником избирательной комиссии, который не должен видеть, каким образом проголосует избиратель. Использование технологии слепой подписи гарантирует, что бюллетени получат только идентифицированные избиратели, имеющие право голоса. В результате можно говорить о доверии к результатам выборов, поскольку в обществе присутствует доверие к сотрудникам избирательных комиссий. По аналогичному принципу работает и система электронного голосования, где проверяющий узел подписывает сообщение от идентифицированного им избирателя (содержащее зашифрованную информацию о его выборе), после чего возвращает ему подписанное сообщение. Подпись в данном случае означает, что факт права участия избирателя в голосовании был проверен доверенным узлом сети. Избиратель, получив подписанное сообщение, отправляет его на адрес специального счетчика, который учитывает его как легитимный голос за одного из кандидатов. Подобные алгоритмы уже используются в ряде стран на выборах в различные органы власти — от муниципальных структур до национальных парламентов. Самой известной страной, использующей интернет-голосование на базе национальных идентификационных карт, является Эстония, которая впервые применила эту процедуру на парламентских выборах 2007 года. Еще одним интересным способом формирования ЭЦП является так называемая «кольцевая подпись». Еще в XVII столетии британские военные, подавая различные петиции с жалобами своему начальству, подписывали ее вокруг текста самого заявления. Столь необычная форма подписи использовалась для того, чтобы невозможно было выявить первого подписанта, которого командование всегда квалифицировало как главного зачинщика. Впоследствии этот способ переняли и американские военные, в частности, в конце XIX века во время войны с Испанией на Кубе. Когда появились электронные системы, позволяющие подписывать различные блоки данных, одновременно возникла необходимость в некоторых случаях маскировать конкретного подписанта в списке прочих потенциальных кандидатов. Для этого был разработан специальный математический алгоритм, формирующий определенный набор публичных ключей, связанных с различными участниками системы. Большая часть самих задействованных участников сети обычно даже не подозревает, что их открытый ключ мог быть использован для формирования кольцевой подписи. В полученном таким образом наборе открытых ключей только один из них имеет в паре соответствующий ему секретный ключ, поскольку им оперирует, собственно, сам подписант, пожелавший остаться для всех остальных неизвестным. Сама кольцевая подпись формируется путем подачи на вход алгоритма набора открытых ключей (одного своего и многих чужих), собственного секретного ключа и самого подписываемого сообщения. После чего подписант получает на выходе строку данных кольцевой подписи. Эту подпись любой другой участник системы может проверить специальным алгоритмом, который использует все те же данные, за исключением, разумеется, секретного ключа, поскольку он может быть известен только лишь самому подписанту. Алгоритмы формирования кольцевой подписи обычно применяются в блокчейн-системах для дополнительной анонимизации в случае, если изначальной технологически заложенной секретности ее пользователям недостаточно. Подобные криптовалютные проекты мы еще будем рассматривать в разделе, посвященном проблематике анонимности в блокчейн. Наконец, существует система консолидации электронных подписей от различных участников, которая называется «мультиподпись». Бывают ситуации, когда возникает необходимость управлять цифровыми активами на базе принятия решения несколькими участниками системы одновременно. Например, имеется некий электронный счет, на котором лежит существенная денежная сумма, принадлежащая группе участников или даже юридическому лицу. Правилами системы задается общее количество управляющих счетом, а также процентное значение веса подписи каждого из них. Как вариант предполагается, что любой перевод с данного счета должен быть подтвержден не менее чем 60% весового участия всех управляющих. В случае трех управляющих с равным весом подписи (у каждого по 33,3%) необходимо не менее двух участников, которые бы поставили свою электронную подпись под транзакцией, пересылающей денежные средства (33,3% × 2 = 66,6% > 60% — пороговое условие считается выполненным). Подобная практика в блокчейн-системах обусловлена технологической невозможностью отозвать совершенные транзакции. Поэтому каждое решение по переводу значительных сумм, находящихся в коллективном владении, должно исключать возможность злоупотреблений со стороны какого-то конкретного лица, допущенного к управлению счетом. Мультиподпись может быть реализована в блокчейн-проектах различными математическими методами на базе алгоритмов асимметричной криптографии. Идентифицирующий и охранительный функционал электронной подписи открывает широчайшие возможности для ее использования в повседневной практике, в первую очередь юридической и деловой. В настоящее время цифровая электронная подпись нашла применение как средство удаленной идентификации контрагентов при заключении различных соглашений — от учреждения новых предприятий до приобретения крупных активов, в том числе объектов недвижимости. В ряде государств цифровая электронная подпись юридически приравнена к обычной. Достаточно часто технология ЭЦП, а точнее, алгоритм мультиподписи используется в так называемых «эскроу-сервисах». Подобные услуги необходимы для заключения важных сделок, к которым привлекается третья арбитражная сторона, гарантирующая своей подписью надлежащее исполнение обязательств контрагентами по сделке. Значительное распространение различные алгоритмы формирования ЭЦП получили именно в блокчейн-средах. Являясь краеугольным камнем всего технологического процесса, цифровые подписи гарантируют пользователям распределенной сети права собственности на криптоактивы, осуществляя защиту целостности помещаемой в систему информации. Безусловно, вопросы безопасности и неуязвимости к взломам этого метода защиты информации всегда выходят на первый план. В предыдущей главе отмечалось, что первый предложенный алгоритм шифрования с открытым ключом (алгоритм Диффи– Хеллмана) не имел возможности формирования цифровой подписи. Однако последующие за ним алгоритмы факторизации или дискретного логарифмирования, включая эллиптическую криптографию, как нельзя лучше подходят для этой цели. Тем не менее не следует пребывать в уверенности, что даже столь криптостойкие алгоритмы, как ECDSA, ожидает безоблачное будущее, поскольку ученые готовят для всего криптографического мира сюрприз в виде так называемых квантовых компьютеров. Именно этот тип нетривиальных вычислительных устройств может создать серьезную угрозу всем популярным алгоритмам шифрования. Что же представляет собой такое явление, как квантовый компьютер, и почему криптографическим алгоритмам следует его опасаться? КВАНТОВЫЕ ВЫЧИСЛЕНИЯ Возможности взлома криптографических алгоритмов, а именно — попытки восстановить секретный ключ из открытого, всегда были ограничены вычислительной мощностью компьютеров. Производительность процессоров с годами постоянно росла, но вместе с ней также росла и криптостойкость алгоритмов. Иными словами, задача взлома с каждым днем пропорционально усложнялась, и казалось, что этой гонке не будет конца. Однако за последние годы перед технологами, производящими электронные компоненты на интегральных схемах, в первую очередь микропроцессоры, начали явственно очерчиваться физические пределы дальнейшего уменьшения размера транзистора как базового элемента электронной схемы. По состоянию на 2018 год позднейшие разработки в области полупровод никовых технологий позволяют массово создавать микропроцессоры на базе 10-нанометрового технологического процесса. По крайней мере, компания Samsung уже использует эту технологию в своих смартфонах, в то время как компания Intel все еще продолжает делать процессоры для персональных компьютеров по технологии 14 нм. В любом случае технология изготовления транзистора постепенно приближается к атомным размерностям, при том, что одного атома явно недостаточно, чтобы из него сделать транзистор. Последние новости из мира науки сообщают, что ученым удалось создать транзистор всего из семи атомов, и уменьшать это число далее уже едва ли возможно. Дело в том, что размер одного атома кремния оценивают в 0,2 нанометра, но одновременно с этим считается, что из-за физических ограничений минимально возможный размер затвора кремниевого транзистора составляет 5 нанометров. О чем это говорит? О том, что небезызвестный закон Мура, согласно которому производительность процессоров удваивается каждые 18 месяцев, практически достиг своего физического предела. Что, в свою очередь, отразится на максимально возможной вычислительной мощности компьютеров, которая также перестанет пропорционально увеличиваться, как это происходило ранее. В результате прогресс во взломе криптостойких алгоритмов шифрования постепенно сойдет на нет, и все текущие проекты, построенные на базе этих алгоритмов, смогут наконец почувствовать себя в безопасности. Однако так ли это на самом деле? Если классическая технология создания компьютеров упирается в свой предел развития, значит, следует искать решения по дальнейшему увеличению производительности в принципиально новых научно-технологических направлениях. Наиболее перспективной областью в части поиска возможностей для существенного роста производительности вычислений в настоящий момент считаются так называемые квантовые компьютеры. Квантовые компьютеры — это вычислительные устройства, существенно отличающиеся от привычной для нас архитектуры двоичной логики. В классическом представлении мельчайшая ячейка памяти, называемая битом, может принимать устойчивые значения либо нуля, либо единицы. В квантовом же компьютере биты имеют квантовую природу и называются «кубитами». В роли таких кубитов могут выступать, например, направления спинов субатомных частиц, а также различные состояния внешних электронов или фотонов. Чтобы не углубляться в основы квантовой механики, мы не станем подробно рассматривать физическое устройство квантового компьютера, а отметим лишь некоторые свойства, отличающие его от компьютера классического. В 1931 году австрийский физик Эрвин Шредингер предложил мысленный эксперимент, в котором он помещал условного кота в стальную камеру, где находилось устройство с радиоактивным атомным ядром, а также колба с ядовитым газом. По условиям эксперимента атомное ядро в течение часа может ожидать распад с вероятностью 50%. Если это происходит, то срабатывает механизм, разбивающий колбу, после чего кот погибает. Но если распад ядра все же не случился, тогда кот остается цел и невредим. Смысл этого эксперимента в том, что внешний наблюдатель никогда точно не знает, распалось ли ядро и жив ли кот, до тех пор, пока не откроет сам ящик, а до этого момента считается, что кот и жив, и мертв одновременно. Понятно, что ни одна сущность в нашем мире не может находиться в двух разных состояниях в один и тот же момент времени. Поэтому правильнее было бы сказать, что кот находится в так называемом состоянии «суперпозиции», в котором все возможные варианты состояния принимаются с различной степенью вероятности. При этом сумма вероятностей всех возможных состояний обязательно должна быть равна 100%. То же самое можно отнести и к принципу работы кубита квантового компьютера — он таким же образом может находиться в состоянии суперпозиции, принимая одновременно значения логического нуля и единицы. До момента непосредственного измерения состояния кубита его точное значение наблюдателю неизвестно, а после измерения и получения результата кубит сразу же фиксируется в однозначном состоянии нуля или единицы. Это на первый взгляд странное свойство кубитов оказалось очень полезным в организации параллельных расчетов сложных вычислительных задач, включая криптографические алгоритмы. Еще одна интересная особенность кубитов состоит в том, что вместе они могут находиться в состоянии так называемой «квантовой запутанности», когда изменение состояния одного кубита автоматически влечет за собой изменение состояния другого, связанного с ним, на противоположное. Однако организовать квантовую запутанность большого числа кубитов между собой технологически очень сложно, поскольку их необходимо тщательно изолировать от любых видов помех в окружающей среде. На текущий момент ведущим производителям квантовых компьютеров, таким, например, как Google, удалось удержать в связанном состоянии целых 72 кубита, что пока является мировым рекордом среди подобных разработок. Много или мало 72 кубита для решения задач взлома хотя бы, например, алгоритма факторизации RSA? Если рассматривать n обычных бит, то из 2 n возможных состояний в один момент времени можно выбрать лишь одно, в то время как n кубитов в состоянии суперпозиции будут находиться в 2 n состояниях одновременно. Как результат при линейном возрастании количества кубитов количество возможных состояний будет расти экспоненциально. А это, в свою очередь, означает, что квантовый компьютер с большим количеством кубитов будет обладать исключительной вычислительной мощностью. Учитывая новейшие разработки в области квантовых вычислений, специалисты оценивают различия по мощности между квантовым и обычным компьютером не менее чем в миллиарды раз. При этом главное преимущество квантовый компьютер будет иметь именно при решении математических задач, связанных с переборами вариантов. Тем не менее даже такая существенная вычислительная мощность может оказаться недостаточной, чтобы легко взламывать криптоалгоритмы с открытым ключом. Необходимое для этого число кубитов исчисляется гораздо большими величинами: например, для алгоритма факторизации RSA с ключом в 2048 бит потребуется ровно вдвое больше кубитов. Эти данные рассчитаны на базе вычислительных требований гибридного (содержащего как классическую, так и квантовую части) алгоритма, представленного в 1994 году американским ученым, специалистом в области квантовой информатики Питером Шором. Для взлома же эллиптической криптографии необходимое количество кубитов, как ни странно, меньше: для ключей в 256 бит потребуется 1536 кубитов, а для 512 бит — 3072. Учитывая скорость роста производительности квантовых компьютеров (а она на данный момент превышает закон Мура), до момента, когда самые популярные криптоалгоритмы сдадут свои позиции, остались, возможно, считаные годы. И о решении этой потенциальной угрозы специалистам-криптографам необходимо позаботиться уже сейчас. Все не так страшно, как может показаться на первый взгляд. Уже разработан ряд алгоритмов асимметричной криптографии, которые остаются устойчивыми к квантовому перебору даже с использованием достаточно большого количества кубитов. Такие алгоритмы называют «постквантовыми», и о некоторых из них мы поговорим. В частности, о подписях Лэмпорта, криптографии на решетках и об изогениях эллиптических кривых. Формирование цифровой электронной подписи на базе алгоритма Лэмпорта представляет собой использование криптографической хеш-функции и генератора случайных чисел. Создается 256 пар случайных чисел длиной по 256 бит каждое. Этот набор данных суммарным объемом 16 килобайт и будет являться секретным ключом. Каждая из 256-битных пар хешируется, и эти 512 хешей представляют собой открытый ключ. Затем на базе секретного ключа формируется электронная подпись для отправляемого сообщения. Как известно, чтобы подписать сообщение электронной подписью, его сначала надо хешировать. А затем составляется электронная подпись, в которой для каждого значения бита хеша сообщения (нуля или единицы) выбирается либо первое, либо второе число из пары секретного ключа, соответствующей порядковому номеру бита в хеше. Криптостойкость данного алгоритма зависит от типа используемой хеш-функции. С учетом того, что процедура хеширования имеет сугубо односторонний характер, а также того факта, что хешируется значительное количество данных (256 пар), задачу обратного восстановления секретного ключа из открытого не способен решить даже квантовый компьютер. Но этот алгоритм тоже не совершенен. Во-первых, ключи имеют существенный размер (до 16 килобайт). Во-вторых, при формировании электронной подписи данным алгоритмом половина секретного ключа становится фактически публичным достоянием. Поэтому подпись на базе одного ключа целесообразно использовать лишь единожды, что также создает значительные неудобства для проектирования систем на базе этого алгоритма. Следующий алгоритм, который также считается постквантовым, — это так называемая «криптография на |