If you're seeing this message, it means we're having trouble loading external resources on our website.

Если вы используете веб-фильтр, пожалуйста, убедитесь, что домены *.kastatic.org и *.kasandbox.org разблокированы.

Основное содержание

Биткоин. Цифровая подпись

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

Хотите присоединиться к обсуждению?

Пока нет ни одной записи.
Знаете английский? Нажмите здесь, чтобы увидеть обсуждение, которое происходит на английской версии сайта.

Транскрипция к видео

Электронная подпись — это, по сути, математический механизм, который связывает последовательность чисел с данным электронным документом. Во многих отношениях, электронная подпись — полный аналог физической подписи. Подписывая документ, вы как бы присоединяете некую последовательность букв, свое имя или идентичность к документу. Таким образом, вы связываете документ со своей личностью. Эффект достигается за счет написания букв в особой, свойственной только одному вам уникальной манере. Остается надеяться, что вашу подпись не смогут подделать. Что касается электронной подписи, то здесь мы стараемся добиться того же эффекта при помощи математики. Среди наиболее известных схем построения цифровой подписи такие алгоритмы, как RSA или алгоритм цифровой подписи Райвеста-Шамира-Адлемана. Или DSS — Федеральный стандарт на электронно-цифровую подпись. Как мне кажется, подпись, созданную с использованием RSA или DSS, подделать намного сложнее, чем обычную, сделанную от руки. В этом видео я постараюсь подробнее рассказать о схеме построения электронно-цифровой подписи, при этом не слишком углубляясь в математику, на которой основаны такие алгоритмы, как RSA или DSS. Посмотрим как работает электронная подпись. Допустим, некий пользователь, скажем Элис, хочет подписать документ. Во-первых, Элис потребуется сгенерировать два ключа. Один из них называется закрытый ключ, это личный ключ. Поэтому при написании я взял красный цвет. Сократим его как ЗК. А затем Элис понадобиться другой ключ — открытый ключ. На самом деле, оба ключа генерируются одновременно. Они создаются совместно и взаимосвязаны. Отличие в том, что открытый ключ находится в открытом доступе, а закрытый ключ доступен только тому, кто подписывает документ. Весь алгоритм строится так, чтобы, имея открытый ключ, было невозможно сгенерировать закрытый. Теперь давайте посмотрим, как работает электронная подпись. Допустим есть сообщение, сообщение М. И мы хотим создать цифровую подпись. Для этого нужно применить математическое преобразование. Элис преобразует сообщение М и свой закрытый ключ. И в результате появляется специфическая последовательность чисел, которая называется подписью сообщения М. Интересно, что подпись генерируется при помощи комбинации оригинального сообщения М и закрытого ключа, личного ключа Элис. В итоге получается сравнительно короткая последовательность чисел. Алгоритмы электронной подписи разрабатываются таким образом, чтобы только сам владелец закрытого ключа имел возможность генерировать такой код, или электронную подпись. Теперь, что касается верификации. Проведение верификации похоже на создание подписи, но здесь используется открытый ключ. В процессе верификации задействованы три категории входных данных. Во-первых, это сообщение, подлинность подписи которого мы проверяем. Кроме того, потребуется электронно-цифровая подпись, S от M. И наконец, последний необходимый элемент для верификации — открытый ключ, который также принадлежит Элис. Это те входные данные, которые требуются для математического преобразования. В результате, мы можем убедиться или проверить, что подпись, которая прилагается к сообщению М, действительно построена при помощи закрытого ключа, принадлежащего Элис. Личный закрытый ключ Элис взаимосвязан с ее открытым ключом. Примечательно, что для проверки подлинности подписи вам нужен только открытый ключ. Закрытый ключ для верификации не требуется. Вам даже не обязательно о нем знать. С помощью обычного открытого ключа можно установить подлинность любой подписи Элис. В результате проверки получается что-то вроде сигнала «да» или «нет». И мы видим, является ли подпись подлинной или нет. Это просто подтверждение подлинности. Как вы уже наверно поняли, процесс создания подписи позволяет связать вот этот открытый ключ и личность его владельца, Элис. Именно Элис публикует открытый ключ, тем самым как бы заявляя, что это ее ключ, и только она может подписывать сообщения, подлинность которых можно будет проверить этим ключом. Теперь сообщение привязано к открытому ключу. Открытый ключ является своего рода удостоверением личности Элис. Теперь ясно, что электронная подпись — это процесс, который связывает личность и сообщение. Таким образом, мы получаем математический аналог традиционной подписи. Мне хотелось бы отметить еще пару важных моментов. Во-первых, понятно, что преобразование, в результате которого мы получаем подпись, или вот это S от M, для него, как часть входных данных, берется сообщение. Если сообщение это входные данные, то ясно, что электронная подпись будет зависеть от сообщения. Если мы изменим сообщение, то получим другую подпись. В этом плане цифровая подпись сильно отличается от обычной. Ваша обычная подпись, пожалуй, не особенно подвержена изменениям, не зависит от того, что вы подписываете. А электронная очень чувствительна в этом отношении. Подписывая разные сообщения, вы получаете разные варианты подписи. И второе замечание касается взаимосвязи электронной подписи и криптографических хэш-функций. В прошлом видео мы о них говорили. И я упоминал, что одной из целей разработки криптографических хэш-функций была электронная подпись. Это их наиболее известное применение. Это работает следующим образом. Перед тем, как вы подписываете сообщение, допустим, у нас есть огромный документ на подпись. Перед подписанием, вы применяете криптографическую хэш-функцию, получаете хэш или дайджест сообщения, который гораздо короче оригинального сообщения. Затем вы применяете алгоритм электронной подписи. То есть, сначала сообщение хэшируется, а затем вы подписываете дайджест. Этот двухступенчатый процесс, сперва хэширование, а затем подпись. Это позволяет упростить процесс создания электронной подписи. Теперь вы работаете не с длинным сообщением, а с небольшим кодом фиксированной длины. Использование хэш-функций безопасно настолько, насколько сложно найти два сообщения, дающие один и тот же дайджест после применения хэш-функции. Другими словами, можно найти такие два сообщения, которые, после хэширования преобразуются в одинаковый дайджест. То есть, если возможность коллизий невелика, то результат сочетания хэш-функции и электронной подписи получается довольно надежно защищенным. Но если все же подобрать такие два сообщения, которые после хэширования дают одинаковые хэш-коды, это создаст весьма неприятную ситуацию. Поскольку подпись первого сообщения будет идентична подписи второго сообщения. Потому что в обоих случаях мы подписываем не сами сообщения, а их одинаковые хэш-коды. Так что подписи тоже будут идентичны, что создает проблемы. Это позволяет подделать сообщение даже с электронной подписью, а именно этого мы хотим избежать. Нам не нужно, чтобы кто-то подписал совсем иное сообщение, чем то, которое изначально хотели подписать вы. Конечно, я опустил немало деталей. Электронно-цифровая подпись намного более сложная тема. Но мне хотелось дать вам хотя бы общее представление, не углубляясь особо в математику. Subtitles by the Amara.org community