Криптографическая подпись что это

Электронная цифровая подпись для чайников: с чем ее есть, и как не подавиться. Часть 1

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

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

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

Зачем нам вообще что-то подписывать? Естественно, чтобы удостоверить, что мы ознакомились с содержимым, согласны (а иногда наоборот, не согласны) с ним. А электронная подпись еще и защищает наше содержимое от подмены.

Итак, начать, естественно, стоит с того, что такое электронная цифровая подпись.
В самом примитивном случае это — результат хэш-функции. Что это такое лучше меня разъяснит википедиа, в нашем же случае главное, что с высокой степенью вероятности ее результат не повторяется для разных исходных данных, а также что результат этой функции мало того, что короче исходных данных, так еще по нему исходную информацию восстановить нельзя. Результат функции называют хэшем, а применение этой функции к данным называют хешированием. Грубо, можно назвать хэш функцию архивированием, в результате чего мы получаем очень маленькую последовательность байт, но восстановить исходные данные из такого «архива» нельзя.

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

1. Мы не знаем, кто сделал данную подпись

2. Мы не знаем, когда была сделана подпись

3. Сама подпись не защищена от подмены никак.

4. Ну и да, хэш функций много, какая из них использовалась для создания этого конкретного хэша?

Поэтому применять к хэшу слово «подпись» еще нехорошо, будем называть его дальше просто хэш.

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

Но, пойдем дальше. Нам хочется защитить наш результат хеширования от подмены, чтобы каждый встречный не мог утверждать, что это у него правильный результат. Для этого самое очевидное что (помимо мер административного характера)? Правильно, зашифровать. А ведь с помощью шифрования же можно и удостоверить личность того, кто хэшировал данные! И сделать это сравнительно просто, ведь есть ассиметричное шифрование. Да, оно медленное и тяжелое, но ведь нам всего-то и надо — зашифровать маленькую последовательность байт. Плюсы такого действия очевидны — для того, чтобы проверить нашу подпись, надо будет иметь наш открытый ключ, по которому личность зашифровавшего (а значит, и создавшего хэш) можно легко установить.
Суть этого шифрования в следующем: у вас есть закрытый ключ, который вы храните у себя. И есть открытый ключ. Открытый ключ вы можете всем показывать и раздавать, а закрытый — нет. Шифрование происходит с помощью закрытого ключа, а расшифровывание — с помощью открытого.
Приводя аналогию, у вас есть отличный замок и два ключа к нему. Один ключ замок открывает (открытый), второй — закрывает (закрытый). Вы берете коробочку, кладете в нее какую-то вещь и закрываете ее своим замком. Так, как вы хотите, чтобы закрытую вашим замком коробочку открыл ее получатель, то вы открытый, открывающий замок, ключик спокойно отдаете ему. Но вы не хотите, чтобы вашим замком кто-то закрывал коробочку заново, ведь это ваш личный замок, и все знают, что он именно ваш. Поэтому закрывающий ключик вы всегда держите при себе, чтобы кто-нибудь не положил в вашу коробочку мерзкую гадость и не говорил потом, что это вы ее положили и закрыли своим замком.

И все бы хорошо, но тут сразу же возникает проблема, а, на самом деле, даже не одна.

1. Надо как-то передать наш открытый ключ, при этом его должна понять принимающая сторона.

2. Надо как-то связать этот открытый ключ с нами, чтобы нельзя было его присвоить.

3. Мало того, что ключ надо связать с нами, надо еще и понять, какой зашифрованный хэш каким ключом расшифровывать. А если хэш не один, а их, скажем, сто? Хранить отдельный реестр — очень тяжелая задача.

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

Как водится у людей, к чему-то единому прийти так и не смогли, и образовалось два больших лагеря — формат OpenPGP и формат S/MIME + X.509. Но об этом уже в следующей статье.

Источник

Криптографические подписи — краткий экскурс для новичков

Криптографическая подпись что это. Смотреть фото Криптографическая подпись что это. Смотреть картинку Криптографическая подпись что это. Картинка про Криптографическая подпись что это. Фото Криптографическая подпись что это

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

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

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

История цифровых подписей

Первая концепция алгоритмов, которые легли в основу цифровой подписи, принадлежит Уитфилду Диффи и Мартину Хеллману. Она описана в статье 1976 года. В этой работе решалось несколько проблем криптографии, в частности, введены функции, которые составлены так, что их легко вычислить в одном направлении и чрезвычайно трудно вычислить в обратном.

Впоследствии появился первый примитивный алгоритм цифровой подписи, известный как RSA. Это самый распространенный криптографический алгоритм, который используется до сих пор и доминирует в безопасной передаче данных через Интернет. Вскоре после этого были разработаны известные схемы цифровой подписи, такие как Подпись Лэмпорта и Деревья Меркля.

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

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

Обычно алгоритм цифровой подписи состоит из трех компонентов:

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

Алгоритм подписи создает подпись на основе сообщения (то есть транзакции) и закрытого ключа.

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

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

Разновидности криптографических подписей

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

Подписи Лампорта

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

Подписи Лампорта могут быть построены из современных криптографических хеш-функций, таких как квантовоустойчивые Skein и Keccack.

Для создания секретного ключа используется генератор случайных чисел (2×256). Для создания открытого ключа закрытый ключ хэшируется. Сообщение (транзакция) также хэшируется, для каждого бита в хэше берется число из закрытого ключа. Из этих чисел получается подпись.

Случайное число, из которого создавались хэши, не может использоваться повторно.

Алгоритм цифровой подписи RSA

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

Криптографическая подпись что это. Смотреть фото Криптографическая подпись что это. Смотреть картинку Криптографическая подпись что это. Картинка про Криптографическая подпись что это. Фото Криптографическая подпись что это

ECDSA

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

Шифрование для ECDSA основано на алгебраической функции и ее кривой на конечном графе. Построение подписи хорошо описано на Википедии.

384-битный ключ ECDSA считается достаточно безопасным для самой секретной правительственной информации АНБ.

Кольцевая подпись

Кольцевая подпись — это тип цифровой подписи, которая запутывает: кто фактически подписал транзакцию, а кто просто находится в сети. Все объединяются в одну группу (кольцо) и смешиваются. Невозможно определить, кто является истинным подписавшим транзакцию. Это обеспечивает анонимность, поэтому используется криптовалютами на CryptoNote, включая Monero.

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

Подписи Шнорра

Подпись Шнорра имеют многочисленные преимущества перед другими методами. Они долгое время были одним из главных приоритетов среди разработчиков биткоина для замены ECDSA.

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

Более того, эти подписи могут повысить конфиденциальность, стимулируя пользователей использовать CoinJoin, метод смешивания монет.

Наконец, подписи Шнорра могут расширить возможности мультиснг-транзакции: переводы с множеством подписей будут занимать столько же места, сколько и с одной.

Источник

Гайд по криптографии: что такое электронная цифровая подпись и как она работает

Криптографическая подпись что это. Смотреть фото Криптографическая подпись что это. Смотреть картинку Криптографическая подпись что это. Картинка про Криптографическая подпись что это. Фото Криптографическая подпись что это

Содержание статьи

Roadmap

Это пятый урок из цикла «Погружение в крипту». Все уроки цикла в хронологическом порядке:

Как работает цифровая подпись

Если вспомнить формальное определение, то ЭЦП — это реквизит электронного документа. Другими словами, последовательность битов, вычисленная уникально для каждого конкретного сообщения. Подпись может быть вычислена как с применением секретного ключа, так и без него. Без секретного ключа подпись представляет собой просто код, который может доказать, что документ не был изменен. С использованием секретного ключа подпись докажет целостность сообщения, позволит убедиться в его подлинности и аутентифицировать источник.

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

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

Схемы электронной подписи так же многообразны, как и способы шифрования. Чтобы схема подписи была стойкой, нужно, чтобы она основывалась на трудновычислимой математической задаче. Есть два типа таких задач: факторизация больших чисел и дискретное логарифмирование.

Факторизация больших чисел

Рассмотрим на практике электронную подпись на основе знаменитого алгоритма RSA. Шифрование RSA мы рассматривать не стали — это мейнстрим, и в той же «Википедии» есть его подробное описание.

1. Генерация ключей

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

Криптографическая подпись что это. Смотреть фото Криптографическая подпись что это. Смотреть картинку Криптографическая подпись что это. Картинка про Криптографическая подпись что это. Фото Криптографическая подпись что это

Когда ключи сгенерированы, можно приступить к вычислению электронной подписи.

2. Вычисление электронной подписи

Криптографическая подпись что это. Смотреть фото Криптографическая подпись что это. Смотреть картинку Криптографическая подпись что это. Картинка про Криптографическая подпись что это. Фото Криптографическая подпись что это

3. Проверка электронной подписи

Криптографическая подпись что это. Смотреть фото Криптографическая подпись что это. Смотреть картинку Криптографическая подпись что это. Картинка про Криптографическая подпись что это. Фото Криптографическая подпись что это

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

В общем, не стоит полагаться на стойкость этой схемы подписи RSA, особенно с такими «криптостойкими» ключами, как в нашем примере.

Дискретное логарифмирование

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

1. Генерация подписи

Криптографическая подпись что это. Смотреть фото Криптографическая подпись что это. Смотреть картинку Криптографическая подпись что это. Картинка про Криптографическая подпись что это. Фото Криптографическая подпись что это

2. Проверка подписи

Криптографическая подпись что это. Смотреть фото Криптографическая подпись что это. Смотреть картинку Криптографическая подпись что это. Картинка про Криптографическая подпись что это. Фото Криптографическая подпись что это

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

ЭЦП на практике

В России, как и во многих развитых странах, электронная подпись имеет официальный юридический статус. У нас этот факт регламентирует закон № 63-ФЗ «Об электронной подписи». Однако он утверждает, что юридической силой обладает далеко не любая электронная подпись, а только соответствующая определенным критериям:

Подпись также должна быть вычислена средствами, соответствующими требованиям закона. Этим требованиям удовлетворяет отечественный алгоритм шифрования ГОСТ 34.10—2012. Он использует математический аппарат эллиптических кривых, является достаточно стойким и официально используется для разработки криптографических средств, реализующих электронную подпись. Для того чтобы попробовать неквалифицированную подпись — без сертификата удостоверяющего центра, можно воспользоваться известной PGP. Потестировать подпись можно, к примеру, на сайте ReadVerify.

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

За рубежом электронный документооборот процветает еще дольше. Официальный стандарт электронной подписи в США DSS (Digital Signature Standard) также использует эллиптические кривые и основан на описанной выше схеме Эль-Гамаля.

Цифровая подпись в Bitcoin

Помимо прочего, электронная подпись используется в криптовалютах, в частности — в Bitcoin. У каждого пользователя Bitcoin есть пара из секретного и открытого ключа. Хеш-значение открытого ключа служит основным адресом для передачи монет. Это значение не секретно, и сообщать его можно кому угодно. Но по значению хеша вычислить значение открытого ключа невозможно.

Сама пара ключей будет использована лишь однажды — при передаче прав собственности. На этом жизнь пары ключей заканчивается.

Вот как устроен сам процесс передачи прав собственности на биткойны.

О втором собственнике ничего не известно, кроме HASH(PUB2), до тех пор пока он не передаст права третьему владельцу. И эта цепочка может быть бесконечной.

Подписывая передачу прав с использованием ЭЦП, собственник подтверждает не только свою личность, но и свое согласие на проведение сделки. То есть вернуть монетку он уже не может и с этим согласился, подписавшись электронной подписью.

Благодаря HASH(PUB) получается двойная защита. Первая загадка — узнать публичный ключ по его хешу. Вторая загадка — подписаться чужим секретным ключом.

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

Выводы

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

Источник

Как работает электронная подпись

Одно из полезных применений асимметричного шифрования — работа с электронной подписью. Рассказываем, как устроена ЭП изнутри и где она применяется.

Что такое электронная подпись

Электронная подпись — это технология, которая помогает подтвердить подлинность электронного документа: договора, справки, выписки или чего-то ещё.

Если упрощённо, работает так:

👉 Есть некий документ, подписанный ЭП

👉 С помощью специальной программы можно проверить подлинность этой подписи и документа

✅ Если программа говорит, что всё окей, то мы можем быть уверены: документ подписал именно тот, кто в нём указан; и с момента подписания в документе ничего не изменилось.

❌ Или программа может сказать, что подпись не совпала. Это значит, что либо документ подписал другой человек, либо после подписания кто-то изменил этот документ (например, дописал ноль в стоимость контракта). Так мы поймём, что этому документу нельзя доверять.

С технической точки зрения ЭП — небольшой файлик, который прилагается к искомому документу. Файлик пересылается вместе с основным документом, его можно передавать по открытым каналам связи, в нём нет ничего секретного.

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

Основа ЭП — асимметричное шифрование

Как работает: сертификаты

Электронная подпись состоит из двух принципиальных частей:

Грубо говоря, ЭП должна гарантировать, что документ подписали именно вы и что вы подписали именно этот документ.

В сертификате хранятся данные о владельце подписи:

Но смысл сертификата не в том, что там хранятся эти данные, а в том, кто эти данные туда положил. В России сертификаты и ЭП выдают специальные удостоверяющие центры — это компании, которые гарантируют, что сертификат выдаётся именно тому, кто в этом сертификате указан.

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

Криптографическая подпись что это. Смотреть фото Криптографическая подпись что это. Смотреть картинку Криптографическая подпись что это. Картинка про Криптографическая подпись что это. Фото Криптографическая подпись что это

Как работает: алгоритмы шифрования

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

Проблема в том, что ЭП основана на алгоритмах асимметричного шифрования, а их много: разложение на простые множители, дискретное логарифмирование, эллиптические кривые и множество других. Ключ из одного алгоритма не подойдёт для использования в другом, поэтому в России договорились использовать стандарт шифрования ГОСТ Р 34.10-2012, основанный на эллиптических кривых. Все государственные органы работают только с таким алгоритмом и не принимают другие ЭП.

Это значит, что нам нужен специальный софт, в котором уже есть этот алгоритм. Чаще всего используют КриптоПРО, реже — ViPNet CSP. С помощью этих программ можно подписать документы и проверить сертификаты на подлинность.

Принцип работы электронной подписи

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

👉 Если открытый ключ подходит к сообщению и расшифровывает его, значит, оно было зашифровано именно этим закрытым ключом — то есть именно вами.

Криптографическая подпись что это. Смотреть фото Криптографическая подпись что это. Смотреть картинку Криптографическая подпись что это. Картинка про Криптографическая подпись что это. Фото Криптографическая подпись что это

А что если подменят сам сертификат?

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

Источник

Что такое криптографические подписи? Полное руководство для начинающих

Содержание статьи:

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

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

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

Краткая история

Первая концепция алгоритмов цифровой подписи была приписана Уитфилду Диффи и Мартину Хеллману на основе односторонних функций – с потайным входом, которые они придумали в своей статье 1976 года. Функции потайных входов широко используются в криптографии и математически составлены так, что их легко вычислить в одном направлении и чрезвычайно трудно вычислить в обратном направлении.

Rivest, Shamir и Adleman впоследствии создали первый примитивный алгоритм цифровой подписи, известный как RSA. RSA является наиболее распространенным криптографическим алгоритмом, используемым на сегодняшний день, и доминирует безопасную передачу данных через интернет.

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

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

Обычно алгоритм цифровой подписи состоит из трех компонентов:

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

Алгоритм подписи создает подпись на основе сообщения (т. е. транзакции) и приватного ключа.

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

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

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

Подписи Лампорта

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

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

Сигнатуры Лампорт могут быть построены из современных криптографических хеш-функций, таких как квантово-устойчивый хэш Скейна или Кеккака.

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

Алгоритм цифровой подписи RSA

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

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

Алгоритм цифровой подписи эллиптической кривой (ECDSA)

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

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

384-битный ключ ECDSA считается достаточно безопасным для самой секретной правительственной службы АНБ (США).

Подписи «кольца»

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

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

Шнорр Подписи

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

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

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

С помощью сигнатур Schnorr все эти входные данные могут быть объединены в одну сигнатуру, что экономит огромное количество места в каждом блоке.

Вывод

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *