Цифровая подпись — это не просто красивая печать на PDF-файле. Это технический механизм, который доказывает два факта: электронный документ исходит от конкретного человека и не был изменен с момента его подписания. Без этого отправка таблицы или договора по электронной почте похожа на отправку открытки. Любой может прочитать её. Любой может сделать пометки на полях.
Подлинность в цифровом мире опирается на шифрование. Речь идет не только о сокрытии данных. Это их кодирование таким образом, чтобы только предполагаемый получатель мог их расшифровать. Аутентификация подтверждает источник. Эти два процесса работают в связке, создавая цифровую подпись, которая выдерживает проверку.
Иерархия верификации
Компьютеры используют несколько методов для подтверждения личности. Не все они одинаково надежны.
Пароли — самый распространенный защитник. Вы вводите имя пользователя и секретную фразу. Система сверяет эту пару с защищенной базой данных. Совпадение? Вы в системе. Несовпадение? Вы заблокированы. Это просто. Это повсеместно. Но это не гарантирует, что документ не был изменен после того, как вы покинули помещение.
Контрольные суммы (checksums) — более старый и простой метод, который часто понимают неправильно. Они проверяют целостность данных. Если изменяется хотя бы один байт, контрольная сумма становится недействительной. Вот как это работает на практике. Представьте пакет данных из восьми байт. Система складывает их. Если сумма равна 255 или меньше, контрольная сумма равна этому числу. Если она превышает 255, контрольная сумма равна остатку от деления на 256.
Рассмотрим математику для конкретного пакета:
- Байт 1: 212
- Байт 2: 232
- Байт 3: 54
- Байт 4: 135
- Байт 5: 244
- Байт 6: 15
- Байт 7: 179
- Байт 8: 80
Сумма равна 1151. Разделим 1151 на 256. Получим 4,496. Округлим вниз до 4. Умножим 4 на 256. Это равно 1024. Вычтем 1024 из 1151. Результат — контрольная сумма 127.
Если кто-то изменит хотя бы один байт этих данных, новая сумма не даст 127 при том же расчете по модулю 256. Целостность будет нарушена.
CRC: лучше выявляют ошибки
Циклические избыточные коды (CRC) берут концепцию контрольных сумм и делают её более надежной. Вместо простого сложения CRC используют полиномиальное деление. Результирующее значение обычно имеет длину 16 или 32 бита. Этот метод очень точно выявляет ошибки при передаче. Если один бит меняется во время передачи, CRC не совпадет.
Однако у CRC и контрольных сумм есть фатальный недостаток. Они не защищают от преднамеренных атак. Хакер может изменить данные и пересчитать контрольную сумму или CRC. Математика все равно сойдется. Получитель не узнает, что данные были злонамеренно изменены. Для защиты от этого нужно шифрование.
Шифрование с закрытым ключом: общий секрет
Шифрование с закрытым ключом, также известное как симметричное шифрование, опирается на общий секрет. И отправитель, и получатель должны обладать одним и тем же ключом. Представьте себе шифровальное колесо. Вы заранее договариваетесь, что «A» становится «C», а «B» становится «D». Вы сдвигаете каждую букву на две позиции.
Вы отправляете закодированное сообщение. Ваш друг, знающий правило «Сдвиг на 2», расшифровывает его. Любой другой, перехвативший сообщение, увидит лишь бессмыслицу. Безопасность заключается в секретности ключа. Недостаток? Вы должны быть уверены, что ключ остается секретным на обоих концах связи. Если один компьютер скомпрометирован, становится уязвимым и другой.
Шифрование с открытым ключом: асимметричное решение
Именно здесь цифровые подписи становятся по-настоящему серьезными. Шифрование с открытым ключом использует пару ключей. Закрытый ключ, который хранится в секрете владельцем. И открытый ключ, который передается всем, кто хочет безопасно общаться.
Чтобы отправить защищенное сообщение, вы используете открытый ключ получателя. Он расшифровывает его своим закрытым ключом. Но для цифровой подписи процесс меняется. Вы подписываете документ своим закрытым ключом. Другие проверяют его с помощью вашего открытого ключа.
Надежным фундаментом здесь является хеш-значение. Алгоритм хеширования берет исходные данные и создает строку фиксированной длины. Этот хеш уникален для конкретных данных. Практически невозможно восстановить исходные входные данные по хешу.
Рассмотрим грубый пример алгоритма хеширования:
Входное число 10667
Алгоритм хеширования = Входное число # x 143
Полученный хеш привязан к этому конкретному входу. Измените входные данные, и хеш полностью изменится. Это свойство в сочетании с асимметричным шифрованием гарантирует, что цифровая подпись — это не просто утверждение об авторстве, а математическое доказательство этого факта.
Попробуйте понять, как число 1525381 получилось в результате умножения 10667 на 143. Удачи. Это улица с односторонним движением. Математика делает легким движение вперед, но почти невозможным движение назад без исходного множителя. Если бы вы знали, что 143 — это множитель, найти 10667 было бы тривиальной задачей. Публично-ключевое шифрование не так просто, но логика остается той же. Оно опирается на сложные алгоритмы и огромные хеш-значения. Речь идет о числах длиной 40 или 128 бит. Число из 128 бит предлагает 2^128 комбинаций. Это больше комбинаций, чем молекул воды в 2,7 миллионах олимпийских бассейнов. Даже одна капля воды содержит миллиарды таких молекул. Атака грубой силой физически невозможна при текущем уровне технологий.
Роль цифровых сертификатов в инфраструктуре открытых ключей
Масштабирование публично-ключевого шифрования для загруженного веб-сервера требует не только математики. Вам нужно доверие. На сцену выходит цифровой сертификат. Это цифровой идентификатор. Он утверждает, что веб-сервер проверен независимой третьей стороной. Эта сторона — Удостоверяющий центр (CA). CA действует как доверенный посредник. Он подтверждает идентичность участвующих компьютеров. Затем он распределяет их открытые ключи друг другу. Без этого вы просто обмениваетесь ключами с незнакомцами. Или, что еще хуже, кто-то перехватывает этот обмен. Сертификат закрывает эту брешь. Он привязывает абстрактную математику к реальному субъекту.
Стандарт цифровой подписи (DSS) и алгоритм DSA
Стандарт цифровой подписи (DSS) — это ответ правительства на необходимость проверки электронных документов. Он использует Алгоритм цифровой подписи (DSA). DSS — это утвержденный формат. Правительство США одобряет его для официального использования. DSA опирается на пару ключей. Один из них — закрытый. Только подписывающая сторона знает его. Другой — открытый. У него есть четыре различные части. Техническое описание можно найти в других источниках. Закрытый ключ создает подпись. Открытый ключ проверяет ее. Это обеспечивает неотказуемость. Отправитель не может позже заявить, что не отправлял сообщение. Это также доказывает целостность. Если данные изменяются во время передачи, подпись становится недействительной.
Электронные платежи все глубже проникают в цифровую сферу. Цифровые подписи являются основой этой безопасности. Они защищают транзакции так же, как защищают документы.
Вот некоторые ресурсы для более глубокого изучения:
- Bionic Buffalo Tech #5: Шифрование
- Инициатива цифровой подписи
- Ссылки по темам: Право, Криптография и Электронные коммуникации
Часто задаваемые вопросы
Что такое цифровая подпись и как она работает?
Это математическая схема. Она доказывает подлинность цифрового сообщения. Действительная подпись сообщает получателю, что сообщение пришло от известного отправителя. Она также гарантирует, что отправитель не сможет отречься от отправки сообщения. Наконец, она обеспечивает защиту от изменения сообщения во время передачи.
Что вы имеете в виду под цифровыми подписями?
То же определение, слегка измененная формулировка. Это математическая схема для демонстрации подлинности. Если выполнены необходимые условия, у получателя есть веские основания полагать, что сообщение исходит от заявленного отправителя. Он также знает, что оно осталось неизменным во время передачи.




























