Цифровая подпись — это криптографический механизм, используемый для проверки подлинности и целостности цифровых данных. Мы можем рассматривать это как цифровую версию обычных рукописных подписей, но с более высоким уровнем сложности и безопасности.

Проще говоря, мы можем описать цифровую подпись как код, прикрепленный к сообщению или документу. После создания код действует как доказательство того, что сообщение не было подделано на пути от отправителя к получателю.

Хотя концепция защиты коммуникаций с помощью криптографии восходит к древним временам , схемы цифровой подписи стали возможной реальностью в 1970-х годах — благодаря развитию криптографии с открытым ключом (PKC). Итак, чтобы узнать, как работают цифровые подписи, нам нужно сначала понять основы хеш-функций и криптографии с открытым ключом.

Хэш-функции

Хеширование является одним из основных элементов системы цифровой подписи. Процесс хеширования включает преобразование данных любого размера в выходные данные фиксированного размера. Это делается с помощью особого вида алгоритмов, известных как хеш-функции. Результат, сгенерированный хеш-функцией, известен как хеш-значение или дайджест сообщения.
В сочетании с криптографией так называемые криптографические хэш-функции могут использоваться для генерации хэш-значения (дайджеста), которое действует как уникальный цифровой отпечаток пальца. Это означает, что любое изменение входных данных (сообщения) приведет к совершенно другому результату (хеш-значению). Именно по этой причине криптографические хэш-функции широко используются для проверки подлинности цифровых данных.

Как работают цифровые подписи

Точно так же, как письменные подписи привязывают человека к конкретному документу, цифровые подписи криптографически связывают личность с конкретным сообщением. Цифровые подписи практически невозможно подделать из-за того, что они используют теорию чисел для гарантии функциональности и используют систему, называемую криптографией с открытым ключом , в которой пользователи владеют как открытым ключом, так и закрытым ключом, образуя пару. Открытый ключ можно рассматривать как личность владельца, а закрытый ключ можно рассматривать как секретную информацию, которая позволяет владельцу доказать свое право собственности на открытый ключ.

Чтобы понять, как криптография с открытым ключом используется в цифровых подписях, вы должны сначала узнать, как она работает с шифрованием, чтобы гарантировать безопасность сообщений и защитить конфиденциальную ключевую информацию. Например, если Алиса хочет послать Бобу зашифрованное сообщение, а открытый ключ Боба доступен для всех, Алиса может использовать его открытый ключ в алгоритме, который шифрует ее сообщение.

Наблюдатели могут увидеть или перехватить зашифрованное сообщение, однако они не смогут расшифровать сообщение, если у них нет закрытого ключа Боба, который известен только Бобу. Таким образом, Алиса может гарантировать, что Боб будет единственным пользователем, который может видеть исходное сообщение, не требуя его личной отправки.закрытый ключ.

Для цифровых подписей операции ключей обратные. Вместо выполнения начальных вычислений с открытым ключом Алиса может использовать свой закрытый ключ в алгоритме подписи для создания подписи, связанной с ее сообщением и открытым ключом. Ни одна сторона не может получить закрытый ключ Алисы или подделать действительную подпись для Алисы, используя только ее подпись и открытый ключ. Однако любой, кто знает открытый ключ Алисы, может легко убедиться, что сообщение подписано ключом Алисы.закрытый ключ.

Роль цифровых подписей в блокчейне
Цифровые подписи являются фундаментальным строительным блоком в блокчейнах; они в основном используются для проверки подлинности транзакций. Когда пользователи отправляют транзакции, они должны доказать каждому узлу в системе, что они уполномочены тратить эти средства, не позволяя другим пользователям также тратить эти средства. Каждый узел в сети проверит условия отправленной транзакции и проверит работу всех остальных узлов, чтобы согласовать правильное состояние.

Если Алиса хочет отправить 1 BTC Бобу, она должна подписать транзакцию, потратив 1 BTC входных данных, используя свой закрытый ключ, и отправить его узлам в сети. Затем майнеры, которым известен ее открытый ключ, проверят условия транзакции и подтвердят подлинность подписи. Как только действительность будет подтверждена, блок, содержащий эту транзакцию, будет готов к завершению валидатором/майнером.

Часто используемые схемы подписи в блокчейне

Криптография основана на предположении, что некоторые математические задачи трудно решить. Например, алгоритм RSA, одна из первых криптосистем с открытым ключом, предполагает, что разложение на множители двух больших простых чисел затруднено.

ECDSA

Схема подписи, используемая в настоящее время в биткойнах, представляет собой алгоритм цифровой подписи на эллиптических кривых (ECDSA). По сравнению с RSA, ECDSA использует более короткие ключи и требует меньше вычислительных ресурсов, сохраняя при этом высокий уровень безопасности. ECDSA также использует так называемые эллиптические кривые над конечными полями. Думайте о группе эллиптических кривых как о конечной группе точек на кривой, где некоторую операцию легко выполнить в одном направлении, но трудно выполнить в другом направлении.

Кроме того, ECSDA полагается на проблему дискретного журнала, а не на сложность простой факторизации для обеспечения безопасности. Проблема заключается в следующем:

Пусть a, b и c — целые числа такие, что a^b = c. Если вам даны c и a, трудно найти b, если b — достаточно большое число. Теперь применим это уравнение к группе эллиптических кривых и вычислим Q = nP, где n — некоторое целое число, P — точка на кривой, а Q — результат операции («умножение» точек). В эллиптических кривых легко вычислить Q при заданных n и P, но трудно найти n при заданных P и Q. Это известно как задача дискретного логарифмирования эллиптических кривых.

Алгоритм ECDSA использует это свойство для создания подписей, которые трудно подделать и легко проверить. Конкретная кривая, которую Биткойн использует для ECDSA, называется secp256k1 и представляет собой эллиптическую кривую, стандартизированную государственным агентством под названием Национальный институт стандартов и технологий (NIST). Несмотря на то, что размеры его ключей относительно короткие, а вычислительная эффективность выше по сравнению с RSA, ECDSA может быть легкореализовано плохо.

В частности, Биткойн пострадал от реализации ECDSA, в которой идентификаторы транзакции могли быть изменены путем изменения подписи транзакции, которая позже была исправлена ​​с помощью Segwit. Реализации ECDSA также могут быть склонны к слабой случайности или просто к различнымдругие подвиги.

Подписи Шнорра (БИТКОЙН)

Несмотря на свои проблемы, ECDSA в целом хорошо обслуживала Биткойн на протяжении многих лет. Однако у ECDSA отсутствует ключевое желательное свойство: нет эффективного способа одновременного сжатия и проверки подписей. В последние годы был сделан толчок к переходу на новую схему подписи для улучшения масштабируемости, эффективности и конфиденциальности Биткойн: подписи Шнорра. Подписи Шнорра — это элегантная схема подписи, предложенная в 1988 году Клаусом-Петером Шнорром, которая была запатентована до 2008 года. Поскольку Шнорр не был так широко принят/стандартизован до последних лет, Сатоши вместо этого выбрал ECDSA для Биткойн.

Подписи Шнорра доказуемо надежны со стандартными криптографическими предположениями (дискретный журнал), не поддаются изменению (третья сторона не может изменить действительную подпись, чтобы создать другую действительную подпись для того же ключа и сообщения) и обеспечивают линейность (несколько сторон могут сотрудничать для создания подписи). единая подпись, действующая для всех открытых ключей).

Свойство линейности имеет два преимущества для Биткойна. Во-первых, линейность позволяет нескольким подписывающим сторонам в транзакции с несколькими подписями объединять свои открытые ключи в один агрегированный ключ (агрегация ключей). Для контекста, функциональность мульти-подписи не является родной для Биткойн и традиционно ограничивалась сценариями P2SH, где все стороны должны предоставлять свои открытые ключи и подписи в транзакции. Для таких транзакций наблюдатели могут видеть, происходит ли транзакция с несколькими подписями, и идентифицировать ее соответствующих участников.

Напротив, подписи Шнорра позволяют скрыть список и количество участников путем агрегирования открытых ключей и создания единой агрегированной подписи, неотличимой от обычной подписи. Это свойство еще больше снизит нагрузку на блоки и повысит конфиденциальность за счет включения конструкции смарт-контрактов Taproot — метода, который делает сложные сценарии неотличимыми от обычных транзакций.

Подписи Шнорра дополнительно позволяют выполнять перекрестное агрегирование входных данных. Биткойн-транзакции часто имеют много входных данных, каждый из которых требует отдельной подписи и может занимать большое количество места в блоке. Подписи Шнорра позволяют объединять отдельные подписи в транзакции и, следовательно, позволяют тратить все входы в транзакции с помощью одной подписи. Эта возможность комбинировать подписи оставляет больше места для данных транзакций в блоках и, по оценкам, увеличивает емкость на 20-40%. В протоколах конфиденциальности, таких как Coinjoin, перекрестное агрегирование входных данных также может обеспечить преимущества конфиденциальности, усложняя отслеживание входных данных.

Как работают цифровые подписи

В контексте криптовалют система цифровой подписи часто состоит из трех основных этапов: хеширование, подпись и проверка.

Хеширование данных

Первым шагом является хеширование сообщения или цифровых данных. Это делается путем отправки данных с помощью алгоритма хеширования , так что генерируется хэш-значение (т. е. дайджест сообщения). Как уже упоминалось, сообщения могут значительно различаться по размеру, но когда они хэшируются, все их хэш-значения имеют одинаковую длину. Это самое основное свойство хеш-функции.

Однако хеширование данных не является обязательным для создания цифровой подписи, поскольку можно использовать закрытый ключ для подписи сообщения, которое вообще не было хешировано. Но для криптовалют данные всегда хэшируются, потому что работа с дайджестами фиксированной длины упрощает весь процесс.

Подписание

После хэширования информации отправителю сообщения необходимо подписать его. Это момент, когда в игру вступает криптография с открытым ключом. Существует несколько типов алгоритмов цифровой подписи, каждый из которых имеет свой собственный механизм. Но, по сути, хешированное сообщение будет подписано закрытым ключом, и получатель сообщения сможет затем проверить его достоверность с помощью соответствующего открытого ключа (предоставленного подписывающей стороной).

Иными словами, если закрытый ключ не включен при создании подписи, получатель сообщения не сможет использовать соответствующий открытый ключ для проверки его достоверности. И открытый, и закрытый ключи генерируются отправителем сообщения, но только открытый ключ передается получателю.

Стоит отметить, что цифровые подписи напрямую связаны с содержанием каждого сообщения. Таким образом, в отличие от рукописных подписей, которые, как правило, одинаковы независимо от сообщения, каждое сообщение с цифровой подписью будет иметь свою цифровую подпись.

Проверка

Давайте возьмем пример, чтобы проиллюстрировать весь процесс до последнего шага проверки. Представьте, что Алиса пишет сообщение Бобу, хэширует его, а затем объединяет хеш-значение со своим закрытым ключом для создания цифровой подписи. Подпись будет работать как уникальный цифровой отпечаток этого конкретного сообщения.

Когда Боб получает сообщение, он может проверить действительность цифровой подписи, используя открытый ключ, предоставленный Алисой. Таким образом, Боб может быть уверен, что подпись была создана Алисой, потому что только у нее есть закрытый ключ, соответствующий этому открытому ключу (по крайней мере, это то, что мы ожидаем).

Итак, для Алисы крайне важно хранить свой секретный ключ в секрете. Если другой человек получит в свои руки закрытый ключ Алисы, он сможет создавать цифровые подписи и притворяться Алисой. В контексте Биткойна это означает, что кто-то может использовать закрытый ключ Алисы, чтобы перемещать или тратить ее биткойны без ее разрешения.

Почему цифровые подписи важны?

Цифровые подписи часто используются для достижения трех результатов: целостности данных, аутентификации и неотказуемости.

  • Целостность данных. Боб может убедиться, что сообщение Алисы не изменилось по пути. Любая модификация сообщения приведет к созданию совершенно другой подписи.
  • Подлинность. Пока закрытый ключ Алисы хранится в секрете, Боб может использовать ее открытый ключ, чтобы подтвердить, что цифровые подписи были созданы Алисой и никем другим.
  • Безотказность. Как только подпись будет сгенерирована, Алиса не сможет отрицать ее подписание в будущем, если ее закрытый ключ не будет каким-либо образом скомпрометирован.

Случаи применения

Цифровые подписи могут применяться к различным видам цифровых документов и сертификатов. Таким образом, у них есть несколько приложений. Некоторые из наиболее распространенных вариантов использования включают в себя:

  • Информационные технологии. Для повышения безопасности систем интернет-коммуникаций.
  • Финансы. Цифровые подписи могут применяться к аудитам, отчетам о расходах, кредитным договорам и многому другому.
  • Юридический. Цифровое подписание всех видов деловых контрактов и юридических соглашений, включая государственные документы.
  • Здравоохранение. Цифровые подписи могут предотвратить подделку рецептов и медицинских карт.
  • Блокчейн. Схемы цифровой подписи гарантируют, что только законные владельцы криптовалюты смогут подписать транзакцию для перемещения средств (при условии, что их закрытые ключи не будут скомпрометированы).

Ограничения

Основные проблемы, с которыми сталкиваются схемы цифровой подписи, связаны как минимум с тремя требованиями:

  • Алгоритм. Важно качество алгоритмов, используемых в схеме цифровой подписи. Это включает в себя выбор надежных хеш-функций и криптографических систем.
  • Выполнение. Если алгоритмы хороши, а реализация нет, система цифровой подписи, скорее всего, будет иметь недостатки.
  • Закрытый ключ. Если закрытые ключи утекут или каким-то образом скомпрометированы, свойства подлинности и неотказуемости будут аннулированы. Для пользователей криптовалюты потеря приватного ключа может обернуться значительными финансовыми потерями.

Электронные подписи против цифровых подписей

Проще говоря, цифровые подписи относятся к одному конкретному виду электронных подписей, которые относятся к любому электронному методу подписания документов и сообщений. Таким образом, все цифровые подписи являются электронными подписями, но не всегда верно обратное.

Основное различие между ними заключается в методе аутентификации. Цифровые подписи используют криптографические системы, такие как хэш-функции, криптография с открытым ключом и методы шифрования.

Подписи BLS (ETH2)

Как и Биткойн, текущая сеть Ethereum также использует ECDSA. Однако, когда Ethereum перейдет на Proof of Stake с eth2, ECDSA не сможет поддерживать строгие требования к проверке этой цепочки.

В цепочке eth2 будут задействованы тысячи валидаторов из разных комитетов, и каждый из них должен будет поставить тысячи подписей в очень короткие сроки. Каждый узел не может проверить каждую подпись, если эта система должна быть масштабируемой. Например, если предположить, что для каждого блока существует 64 комитета, и каждый комитет может иметь до 2048 валидаторов, для каждого блока может быть вычислено и проверено 131 072 (64*2048) подписей (12 секунд). Совершенно очевидно, что необходима схема подписи, позволяющая эффективно проверять подпись на основе консенсуса. Для этого eth2 планирует использовать подписи BLS.

Подписи BLS (Boneh-Lynn-Shacham) были предложены сразу после начала 21 века и основаны на типе криптографии, называемой криптографией на основе пар. Он имеет другие предположения о жесткости по сравнению с ECDSA и работает с другими типами кривых (сочетание дружественных кривых). Подписи BLS аналогичны подписям Шнорра в том, что они позволяют агрегировать ключи и подписи, но подписи BLS являются детерминированными (отсутствуют случайности), могут допускать агрегирование подписей по всему блоку и, что особенно важно, намного меньше, чем подписи Шнорра (примерно на 50% меньше). ).

Кроме того, в то время как мультиподписи Шнорра требуют нескольких раундов связи и могут зависеть от большой растущей структуры данных (дерева Меркла) для агрегации подписей, подписи BLS чрезвычайно просты в создании и имеют меньше требований к связи. Основным недостатком подписей BLS является то, что проверка подписи крайне неэффективна и на несколько порядков дороже, чем подписи Шнорра.

Подобно eth2, многие новые блокчейны (большинство из которых являются Proof of Stake) также планируют использовать подписи BLS. Polkadot планирует использовать подписи BLS для проверки GRANDPA аналогично eth2. Даже Grin, блокчейн Proof of Work, сохраняющий конфиденциальность, исследует подписи BLS для снижения нагрузки транзакций (агрегация ядра) и упрощения функциональности с несколькими подписями.

Будущие соображения

Характеристики схемы цифровой подписи оказывают каскадное влияние на функциональность блокчейна. Таким образом, выбор схемы является фундаментальной частью процесса разработки протокола. Компромиссы существуют, и ни одно решение не останется золотым стандартом. В мире, где каждый майнер или валидатор должен проверять каждую подпись, технология блокчейна не сможет служить миру в качестве глобально используемой технологии без правильных схем подписи.

Постоянно проводятся новые оптимизации для повышения удобства использования подписей, чтобы улучшить размер подписи, время проверки или безопасность. Одна схема подписи может быть более жизнеспособным вариантом, чем другая, если преимущества убедительны. Например, подписи BLS почти не использовались до последних нескольких лет, когда были опубликованы документы, посвященные повышению их эффективности, особенно для протоколов блокчейна . Команды протоколов должны оставаться гибкими и открытыми для изменения схем цифровой подписи и соответствующим образом разрабатывать их, когда возникают веские причины.

Схемы подписи, о которых говорилось выше, существуют уже несколько десятилетий и, вероятно, будут существовать в обозримом будущем. Тем не менее, неизбежно, что в конечном итоге они будут заменены более новыми схемами, разработанными на основе исследований, проводимых сегодня. Широкое внедрение новой криптографической системы редко происходит, когда она первоначально предлагается; необходим неофициальный пробный период для проверки безопасности системы и подтверждения или опровержения ее предположений.

Исследования в области криптографии получили толчок в результате соответствующего роста пространства блокчейна и будут продолжаться в обозримом будущем. В то время как большая часть соответствующих исследований сегодня посвящена доказательствам с нулевым разглашением, другие области криптографии, которые в настоящее время не пересекаются с блокчейнами, также могут иметь большое значение в будущем.

Криптография имеет дело с частью наиболее конфиденциальной информации, и не подлежит обсуждению, что эти схемы проверены в максимально возможной степени. Эта задержка означает, что новым схемам могут потребоваться десятилетия, чтобы стать известными. Несмотря на ожидание, индустрия будет не менее взволнована, когда они появятся.

Вывод

Хеш-функции и криптография с открытым ключом лежат в основе систем цифровой подписи, которые в настоящее время применяются в самых разных случаях. При правильном применении цифровые подписи могут повысить безопасность, обеспечить целостность и облегчить аутентификацию всех видов цифровых данных.

В сфере блокчейна цифровые подписи используются для подписи и авторизации транзакций криптовалюты. Они особенно важны для Биткойна, потому что подписи гарантируют, что монеты могут быть потрачены только теми людьми, у которых есть соответствующие закрытые ключи.

Хотя мы уже много лет используем как электронные, так и цифровые подписи, нам еще есть куда расти. Большая часть сегодняшней бюрократии по-прежнему основана на бумажной работе, но мы, вероятно, увидим более широкое внедрение схем цифровой подписи по мере перехода к более цифровой системе.

Видео

Ru
Электронная цифровая подпись. Как получить и для чего нужна ЭЦП

0 0 votes
Рейтинг статьи