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