Десять областей, где используется криптография:
- Защита данных. Изначально криптография создавалась для защиты секретов. Правда, промышленной она стала в тот момент, когда алгоритм шифрования стал открытый, но в нём предполагалось наличие некоего секретного элемента - ключа шифрования, который и обеспечивал возможность получить доступ к данным.
- Аутентификация. Причём знание этого секретного элемента позволяет выполнить процедуру аутентификации - к информации допускается только тот, кто знает секрет. Но со временем была разработана схема асимметричного шифрования, которая разделяла ключ на два: открытую часть и секретную.
- Выработка совместного секрета. Алгоритм асимметричного шифрования позволяет расшифровать с помощью закрытого ключа то, что зашифровано открытым и наоборот. Это позволяет двум людям, имеющим пары секретных и открытых ключей согласовать общий секрет, который в дальнейшем используется для симметричного шифрования.
- DRM. Система контроля доступа к зашифрованным документам предполагает возможность передачи только зарегистрированным пользователям системы ключа для дешифрирования документа. Причем в процессе передачи этого ключа происходит процедура взаимной аутентификации сторон, что позволяет серверу фиксировать людей, которые получили доступ к документу, а пользователю гарантировать, что он получил правильный документ.
- Целостность документов. Дополнительным инструментом криптографии является хеш-функция, которая позволяет создать уникальные идентификаторы цифрового документа. Причем изменение файла даже в одном байте приводит к сильному изменению его хеша. Это свойство и используется для подтверждения неизменности цифрового документа.
- Полиморфизм программ. Алгоритмы шифрования можно использовать в том числе и для модификации исполнимых программ. В этом случае генерируется специальная таблица перестановок команд процессора, которая также должна применяться и перед запуском программы в исполнение. В результате, код программ может постоянно меняться в соответствии с таблицей.
- Защита программ от копирования. Собственно, методы полиморфизма используются в том числе и для защиты программ от копирования. В этом случае важный код, например, парсер файлов, шифруется таким способом, а в лицензионный ключ вставляется таблица перекодировки. Лучше всего такую таблицу вообще вынести на отдельное устройство - USB-ключ - и расшифровывать её на отдельном процессоре.
- Разделение ключа. Это технология, когда ключ для декодирования разделен между участниками так, что только собрав минимально необходимо их число - кворум - можно расшифровать документ или пройти аутентификацию. С помощью такой системы шифрования защищаются наиболее ценные документы и контролируется доступ к важным системам.
- Голосование. Процедура закрытого голосовая позволяет пользователю участвовать в закрытом голосовании так, что он всегда может проверить насколько правильно посчитан его голос, но ни кто посторонний, без знания секрета, не сможет определить за кого участник проголосовал.
- Стеганография. Способ встраивания дополнительной информации в уже существующий файл или поток. Можно встраивать эти данные в пустоты форматов, которые не проверяют парсеры, а можно прямо в основные данные с помощью специального алгоритма. При этом важнее скрыть факт передачи данных, нежели хорошо защитить передаваемую информацию от посторонних глаз.
Впрочем, математические алгоритмы, ассоциируемые с шифрованием, могут использоваться для решения самых разнообразных задач. Здесь перечислены лишь наиболее распространённые применения.