Электронно-Цифровая Подпись Для Чайников: С Чем Ее Есть И Как Не Подавиться. Часть 3

Часть 1 Часть 2 В этой части мы сделаем небольшое отступление от ЭЦП в сторону того, без чего не было бы ни ЭЦП, ни защиты информации в привычном понимании: шифрования.

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

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

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

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

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

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

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

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

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

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

Наверняка каждый читал (или хотя бы слышал) серию рассказов о Шерлоке Холмсе.

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

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

Это значит, что наша информация снова попадет не в те руки.

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

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

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

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

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

Обычное, на бумаге.

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

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

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

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

Давайте вспомним, что такое функция.

Это некоторое соотношение, по которому одно число можно получить из другого.

Зная x и подставив его в известное соотношение y=A*x, мы всегда получим значение y. Но, как правило, верно и обратное: зная y, мы можем получить x. Как правило, но не всегда.

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

Именно на этих зависимостях основано используемое в настоящее время шифрование.

Но вернемся к самому шифрованию.

Шифрование делится на симметричный , асимметричный И комбинированный .

Рассмотрим, в чем суть каждого из них.

Симметричное шифрование , по большому счету, мало чем отличается от старого доброго секретного алфавита.

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

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

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

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

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

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

Асимметричное шифрование действует немного хитрее.

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

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

- наша личная, тайна, ее невозможно восстановить.

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

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

, то есть не передал его в руки плохой человек) не рискует при передаче информации.

Но без огромного минуса не обойтись.

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

Кроме того, на такое шифрование тратится значительно больше ресурсов.

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

Это означает, что шифровать большие объемы информации таким методом просто невыгодно.



Электронно-цифровая подпись для чайников: с чем ее есть и как не подавиться.
</p><p>
 Часть 3

Пример использования асимметричного шифрования [Википедия] e — открытый ключ получателя B. d - закрытый ключ получателя B m — исходная информация отправителя А в – зашифрованная исходная информация И снова возникает вопрос: что делать? А сделать нужно следующее: взять, и объединить в обе стороны.

Собственно, так мы получаем комбинированное шифрование.

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

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

.



Электронно-цифровая подпись для чайников: с чем ее есть и как не подавиться.
</p><p>
 Часть 3

Пример использования комбинированной системы [Википедия] Все эти механизмы нашли свое применение на практике, и оба наших крупных лагеря PGP и S/MIME используют их.

Как сказано в первой статье, асимметричное шифрование используется для цифровой подписи (а именно, для шифрования нашего хеша).

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

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

Комбинированное шифрование используется в обоих стандартах непосредственно для шифрования отправляемых данных.

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

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

Но об этом в будущих статьях.

Теги: #ЭЦП #электронный документооборот #Криптография #электронная коммерция #бизнес #информационная безопасность #электронный документ #цифровая подпись #информационная безопасность

Вместе с данным постом часто просматривают: