Целью данной серии статей я хотел бы поставить создание простейшего криптозащищенного мессенджера с упором исключительно на криптографию, исключая из рассмотрения технические тонкости прямых коммуникаций, сетевых протоколов, графики и всего остального.
Шаг за шагом обходя уязвимости, которые будут иметь наш протокол, разработанный с нуля, в конечном итоге мы получим самосборную криптографическую систему, способную противостоять подавляющему количеству вариантов атак.
Большинство людей, незнакомых с криптографией, думая о шифровании, представляют себе некий сейф, в котором исходная информация хранится в чистом виде, и для того, чтобы пользователь мог получить ее обратно, необходимо предъявить системе такую комбинацию, которая открывает замок сейфа и получает информацию из абстрактного ящика.
Однако при таком подходе существует ряд проблем:
- Сейф можно открыть болгаркой или другим силовым методом.
- Производитель сейфа может оставить лазейку и получить доступ к содержимому.
Во время боевых действий законы и правила не действуют, поэтому тот, кто получит доступ к сейфу, не будет пытаться найти код от замка — он либо применит силу, чтобы открыть замок, либо обратится к производителю сейфа для обхода защиты.
Поэтому перед криптографией стоит вопрос, как сохранить целостность информации, даже если «сейф» попадет в руки врага.
Необходимым условием для этого является изменение структуры самой информации таким образом, чтобы ее восстановление было возможно только с использованием определенного ключа, размер которого значительно меньше исходного набора данных.
Шифрование оставляет вашу информацию примерно в таком виде, с той лишь разницей, что ее можно восстановить, если известен ключ.
Восстановить информацию можно только с помощью того же ключа, который должен быть известен лицу, получающему информацию на другой стороне.
Подобный информационный беспорядок может передаваться по открытым каналам связи; он не имеет никакой ценности ни для кого, кроме людей, знающих пароль.
Такое шифрование называется симметричным, поскольку для шифрования информации используется тот же шифр, который используется для ее расшифровки.
Забегая вперед, можно сказать, что такой метод шифрования не лишен недостатков, поэтому были изобретены асимметричные методы шифрования, но о них мы поговорим позже.
Симметричное шифрование использует следующий протокол передачи информации:
- Предположим, что симметричный ключ: пароль
- Алиса шифрует сообщение и получает зашифрованный набор битов в виде, очень похожем на информационный мусор, и передает его по открытому каналу связи.
- Ева, подслушав зашифрованное сообщение, не может придумать ничего лучшего, как начать пытаться подобрать пароль, чтобы получить исходное сообщение, поскольку при идеальном или близком к идеальному симметричном алгоритме подбор пароля является наиболее приемлемым способ получить доступ к информации.
Учитывая, что длина нашего пароля составляет 12 символов, а каждый символ — 8 бит, полный поиск Алисы займет (2^8)^(12), или 2^96 операций.
Подобный поиск займет у злоумышленника несколько столетий, и вряд ли зашифрованная информация к этому времени останется актуальной.
На компьютере Алисы есть простая программа.
Теги: #java #криптография #основы #криптография #java
-
Как Восстановить Контакты Google
19 Oct, 24 -
Бесплатный Поиск По Вашим Правилам
19 Oct, 24 -
Форум Veeamon Москва
19 Oct, 24 -
Бот Яндекса Сошел С Ума?
19 Oct, 24 -
Yahoo Покупает Mybloglog
19 Oct, 24 -
Хаскелл: Могу Ли Я?
19 Oct, 24 -
Безопасная Платежная Карта Своими Руками
19 Oct, 24 -
Холиворес
19 Oct, 24