0Pricing
Cryptology Academy · Урок

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

Разберитесь в различиях между аутентификацией и шифрованием, а также в жизненном цикле подписи

«Что такое цифровая подпись» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Добро пожаловать

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

Чем подписи отличаются от шифрования

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

Три свойства безопасности

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

Сначала подписать, затем зашифровать или наоборот

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

Сначала хеширование, затем подпись

Никогда не подписывайте исходное сообщение (для RSA оно слишком велико). Вместо этого: 1. H = Hash(message) 2. signature = Sign(private_key, H) Хеш сводит любое сообщение к входным данным фиксированного размера для алгоритма подписи.

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

Проверяющий располагает: сообщением, подписью и открытым ключом подписавшего. 1. H = Hash(message) 2. H' = Verify(public_key, signature) 3. Принять, если H == H'; в противном случае отклонить

Пример подписи RSA

Sign: sig = hash^d mod n (exponentiate with private d) Verify: hash = sig^e mod n (exponentiate with public e) Сравните восстановленный хеш с вычисленным хешем сообщения.

Сравнение подписи и MAC

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

Обзор DSA

DSA (Digital Signature Algorithm, 1994) использует сложность задачи дискретного логарифмирования. Для каждой подписи он генерирует случайное одноразовое число k. Если k повторно используется или предсказуемо, закрытый ключ раскрывается.

Катастрофа из-за повторного использования одноразового числа (взлом PS3)

В PlayStation 3 компании Sony в ECDSA использовалось постоянное значение k=1. Хакеры извлекли закрытый ключ подписи из двух разных подписей. Это позволило им подписывать произвольное встроенное ПО и обходить всю систему безопасности.

Подписи сертификатов

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

Быстрая проверка

Какое свойство гарантирует, что подписавший не сможет впоследствии отрицать факт подписания документа?

Итоги

Цифровые подписи делают цифровой мир заслуживающим доверия. Далее мы подробно изучим схемы подписей RSA, DSA и ECDSA.

Часто задаваемые вопросы

Урок «Что такое цифровая подпись» бесплатный?

Да — полный текст урока «Что такое цифровая подпись» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Что такое цифровая подпись»?

Разберитесь в различиях между аутентификацией и шифрованием, а также в жизненном цикле подписи Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Что такое цифровая подпись»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Что такое цифровая подпись
  2. Подписи RSA: создание и проверка
  3. Схемы подписей DSA и ECDSA
  4. Подписи в реальном мире: подпись кода и электронной почты
← Назад к Cryptology Academy