Вкратце: Сейчас в основе всех технологий по защите данных от несанкционированного доступа или электронной коммерции лежит наука Криптография, которая является частью науки Криптологии. В свою очередь, эта наука использует различные методы и алгоритмы, с которыми мы сейчас ознакомимся.
Для того, чтобы ваша информация, пройдя шифрование, превратилась в «информационный мусор», бессмысленный набор символов для постороннего, используются специально разработанные методы — алгоритмы шифрования.
Такие алгоритмы разрабатываются учеными математиками или целыми коллективами сотрудников компаний или научных центров.
Обычно, новые алгоритмы шифрования публикуются для всеобщего ознакомления и изучаются в специализированных научных центрах. Результаты таких изучений тоже публикуются для всеобщего ознакомления.
Симметричные алгоритмы
Алгоритмы шифрования делятся на два больших класса: симметричные (AES, ГОСТ, Blowfish, CAST, DES) и асимметричные (RSA, El-Gamal). Симметричные алгоритмы шифрования используют один и тот же ключ для зашифровывания информации и для ее расшифровывания, а асимметричные алгоритмы используют два ключа — один для зашифровывания, другой для расшифровывания.
Если зашифрованную информацию необходимо передавать в другое место, то в этом надо передавать и ключ для расшифровывания. Слабое место здесь — это канал передачи данных — если он не защищенный или его прослушивают, то ключ для расшифровывания может попасть к злоумышленнику. Системы на асимметричных алгоритмах лишены этого недостатка. Поскольку каждый участник такой системы обладает парой ключей: Открытым и Секретным Ключом.
Ключ шифрования
Это случайная или специальным образом созданная по паролю последовательность бит, являющаяся переменным параметром алгоритма шифрования.
Если зашифровать одни и те же данные одним алгоритмом, но разными ключами, результаты получатся тоже разные.
Обычно в Программах для шифрования (WinRAR, Rohos Disk и т.д.) ключ создается из пароля, который задает пользователь.
Ключ шифрования бывает разной длины, которая, как правило, измеряется в битах. С увеличением длины ключа повышается теоретическая стойкость шифра. На практике это не всегда верно.
В криптографии считается, что механизм шифрования — это несекретная величина, и злоумышленник может иметь полный исходный код алгоритма шифрования, а также зашифрованный текст (правило Керкхоффа). Еще одно допущение, которое может иметь место — злоумышленник может знать часть незашифрованного (открытого) текста.
Стойкость алгоритма шифрования.
Алгоритм шифрования считается стойким до тех пор, пока не будет доказано обратное. Таким образом, если алгоритм шифрования опубликован, существует более 5 лет, и для него не найдено серьезных уязвимостей, можно считать, что его стойкость подходит для задач защиты секретной информации.
Теоретическая и практическая стойкость.
В 1949 г. К.Э. Шеннон опубликовал статью «Теория связи в секретных системах». Автор рассматривал стойкость криптографических систем как Практическую и Теоретическую. Вывод по теоретической стойкости до сих пор остается пессимистическим: длина ключа должна быть равна длине открытого текста.
Поэтому Шеннон также рассмотрел вопрос и по практической стойкости криптографических систем. Надежна ли система, если злоумышленник обладает ограниченным временем и вычислительными ресурсами для анализа перехваченных сообщений ?
Обычно уязвимости находят в программах, которые шифруют данные по какому-либо алгоритму. В этом случае, программисты допускают ошибку в логике программы или в криптографическом протоколе, благодаря чему, изучив, как работает программа (на низком уровне), можно в итоге получить доступ к секретной информации.
Взлом алгоритма шифрования
Считается, что криптосистема раскрыта, если злоумышленник сможет вычислить секретный ключ, а также выполнить алгоритм преобразования, эквивалентный исходному криптоалгоритму. И чтобы этот алгоритм был выполним за реальное время.
В криптологии есть подраздел — криптоанализ, который изучает вопросы взлома или подделывания зашифрованных сообщений. Существует много способов и методов криптоанализа. Самый популярный — это метод прямого перебора всех возможных значений ключа шифрования (так называемым методом «грубой силы» или brute force). Суть данного метода состоит в переборе всех возможных значений ключа шифрования до тех пор, пока не будет подобран нужный ключ.
На практике это означает, что злоумышленник должен:
- Иметь в распоряжении криптосистему (т.е. программу) и примеры зашифрованных сообщений
- Разобраться в криптографическом протоколе. Иначе говоря, как программа шифрует данные.
- Разработать и реализовать алгоритм перебора Ключей для этой криптосистемы
Как определить, что ключ верный или нет ?
Все зависит от конкретной программы и реализации протокола шифрования. Обычно, если после расшифрования получился ‘мусор’, то это неверный Ключ. А если более менее осмысленный текст (это можно проверить), то значит, Ключ верный.
Алгоритмы шифрования
AES (Rijndael). В настоящее время является федеральным стандартом шифрования США. Утвержден министерством торговли в качестве стандарта 4 декабря 2001 года. Решение вступило в силу с момента опубликования в федеральном реестре (06.12.01). В качестве стандарта принят вариант шифра только с размером блока 128 бит.
Время/место разработки | 1997 год, Бельгия |
Авторы | Йоан Дамен (Joan Daemen), Винсент Раймен (Vincent Rijnmen) |
Архитектура | «Квадрат» |
Размер ключа, бит | 128, 192, 256 |
Патент | Незапатентован |
ГОСТ 28147-8. Стандарт Российской Федерации на шифрование и имитозащиту данных. Первоначально имел гриф (ОВ или СС — точно неизвестно), затем гриф последовательно снижался, и к моменту официального проведения алгоритма через Госстандарт СССР в 1989 году был снят. Алгоритм остался ДСП (как известно, ДСП не считается грифом). В 1989 году стал официальным стандартом СССР, а позже, после распада СССР, федеральным стандартом Российской Федерации.
Время/место разработки | Предположительно вторая половина 70-х. Разработан в бывшем 8-м Главном Управлении КГБ СССР или в одном из секретных НИИ в его системе |
Авторы | Неизвестны |
Архитектура | Классическая сбалансированная сеть Файстеля. |
Размер ключа, бит | 256 |
Патент | Незапатентован |
Blowfish Сложная схема выработки ключевых элементов существенно затрудняет атаку на алгоритм методом перебора, однако делает его непригодным для использования в системах, где ключ часто меняется, и на каждом ключе шифруется небольшие по объему данные. Алгоритм лучше всего подходит для систем, в которых на одном и том же ключе шифруются большие массивы данных.
Время/место разработки | 1993 год |
Авторы | Брюс Шнайер (Bruce Schneier) |
Архитектура | Сбалансированная сеть Файстеля. |
Размер ключа, бит | 32 — 448 |
Патент | Незапатентован |
DES Федеральный стандарт шифрования США в 1977-2001 годах. В качестве федерального стандарта США принят в 1977 году. В декабре 2001 года утратил свой статус в связи с введением в действие нового стандарта.
Время/место разработки | Создан в 1972-1975 годы в исследовательской лаборатории корпорации IBM |
Авторы | Группа под руководством д-ра. У. Тачмена |
Архитектура | Классическая сбалансированная сеть Файстеля с начальной и конечной битовыми перестановками общего вида. |
Размер ключа, бит | 56 |
Патент | Незапатентован |
CAST В некотором смысле аналог DES.
Авторы | К. Адамс (C. Adams) и С. Таварес (S. Tavares) |
Размер ключа, бит | 128, 256 |
Патент | Незапатентован |