Классификация криптоалгоритмов
Сама криптография не является высшей ступенью классификации смежных
с ней дисциплин. Наоборот, криптография совместно с криптоанализом
(целью которого является противостояние методам криптографии) составляют
комплексную науку криптологию.
Необходимо отметить, что в русскоязычных текстах по данному предмету
встречаются различные употребления основных терминов, таких как
"криптография", "тайнопись" и некоторых других. Более того, и по
классификации криптоалгоритмов можно встретить различные мнения.
В связи с этим автор не претендует на то, что его вариант использования
подобных терминов является единственно верным.
В отношении криптоалгоритмов существует несколько схем классификации,
каждая из которых основана на группе характерных признаков. Таким
образом, один и тот же алгоритм "проходит" сразу по нескольким схемам,
оказываясь в каждой из них в какой-либо из подгрупп.
Основной схемой классификации всех криптоалгоритмов является следующая:
- Тайнопись.
Отправитель и получатель производят над сообщением преобразования,
известные только им двоим. Сторонним лицам неизвестен сам алгоритм
шифрования. Некоторые специалисты считают, что тайнопись не является
криптографией вообще, и автор находит это совершенно справедливым.
- Криптография с ключом.
Алгоритм воздействия на передаваемые данные известен всем сторонним
лицам, но он зависит от некоторого параметра "ключа", которым
обладают только отправитель и получатель.
- Симметричные криптоалгоритмы.
Для зашифровки и расшифровки сообщения используется один и
тот же блок информации (ключ).
- Асимметричные криптоалгоритмы.
Алгоритм таков, что для зашифровки сообщения используется
один ("открытый") ключ, известный всем желающим, а для расшифровки
другой ("закрытый"), существующий только у получателя.
Весь дальнейший материал будет посвящен криптографии с ключом,
так как большинство специалистов именно по отношению к этим криптоалгоритмам
используют термин криптография, что вполне оправдано. Так, например,
любой криптоалгоритм с ключом можно превратить в тайнопись, просто
"зашив" в исходном коде программы некоторый фиксированный ключ.
Обратное же преобразование практически невозможно.
В зависимости от характера воздействий, производимых над данными,
алгоритмы подразделяются на:
- Перестановочные
Блоки информации (байты, биты, более крупные единицы) не изменяются
сами по себе, но изменяется их порядок следования, что делает
информацию недоступной стороннему наблюдателю.
- Подстановочные
Сами блоки информации изменяются по законам криптоалгоритма. Подавляющее
большинство современных алгоритмов принадлежит этой группе.
Заметьте: любые криптографические преобразования не увеличивают
объем информации, а лишь изменяют ее представление. Поэтому, если
программа шифрования значительно (более, чем на длину заголовка)
увеличивает объем выходного файла, то в ее основе лежит неоптимальный,
а возможно и вообще некорректный криптоалгоритм. Уменьшение объема
закодированного файла возможно только при наличии встроенного алгоритма
архивации в криптосистеме и при условии сжимаемости информации (так,
например, архивы, музыкальные файлы формата MP3, видеоизображения
формата JPEG сжиматься более чем на 2-4% не будут).
В зависимости от размера блока информации криптоалгоритмы делятся
на:
- Потоковые шифры.
Единицей кодирования является один бит. Результат кодирования
не зависит от прошедшего ранее входного потока. Схема применяется
в системах передачи потоков информации, то есть в тех случаях,
когда передача информации начинается и заканчивается в произвольные
моменты времени и может случайно прерываться. Наиболее распространенными
предствателями поточных шифров являются скремблеры.
- Блочные шифры
Единицей кодирования является блок из нескольких байтов (в настоящее
время 4-32). Результат кодирования зависит от всех исходных байтов
этого блока. Схема применяется при пакетной передаче информации
и кодировании файлов.
Назад | Содержание
| Вперед
|