Долгое
время криптография была больше искусством, чем наукой. Создатели
шифров, придумывая алгоритмы преобразования, действовали во
многом "на удачу", так как в их распоряжении не было подходящей
математической теории, способной формализовать криптографические
операции и перевести их на язык науки. Статья
американского инженера и математика Клода
Шеннона
"Теория связи в секретных системах" ("The Communication Theory
of Secrecy Systems"), опубликованная в 1949 году в журнале Bell
System
Technical Journal,
сразу
перевела криптографию в разряд точных наук, фактически
сделав ее
разделом математики.
Объекты и операции.
Исходное,
незашифрованное сообщение называется открытым текстом
(plain text). Зашифрованное сообщение называется шифртекстом
(ciphertext). Процесс преобразования открытого текста в
шифртекст называется зашифрованием (enciphering), а обратный
процесс — расшифрованием (deciphering). Термин шифрование (без
приставок) в русскоязычной литературе обычно обозначает и
зашифрование, и расшифрование. Зашифрование и расшифрование
выполняются в соответствии с криптографическим алгоритмом (cryptographic
algorithm). Как правило, криптографический алгоритм содержит
сменный элемент — криптографический ключ (cryptographic key),
позволяющий выбрать одно конкретное преобразование из множества
преобразований, реализуемых данным алгоритмом.
Существует
два основных типа криптографических алгоритмов:
симметричные, для которых ключ расшифрования совпадает с ключом
зашифрования или может быть легко из него получен, и
асимметричные, использующие для зашифрования и расшифрования два
разных ключа. Асимметричные алгоритмы также называют алгоритмами
с открытым ключом, и их история начинается с 1975 года, в то
время как симметричные алгоритмы использовались многие
тысячелетия.
Симметричные
алгоритмы можно разделить на две категории. К первой категории
относятся алгоритмы, которые обрабатывают шифруемые данные
побитово (или посимвольно), и такие алгоритмы называют
потоковыми шифрами. Ко второй категории относят алгоритмы,
производящие операции над группами битов. Такие группы битов
называют а алгоритмы — блочными шифрами.
Получение
открытого текста из шифртекста без знания правильного ключа
и/или всех деталей алгоритма является основной задачей
криптоанализа и называется дешифрованием. Попытка криптоанализа
называется атакой. Раскрытие ключа шифрования без привлечения
методов криптоанализа называется компрометацией.
К
криптографическим функциям, кроме алгоритмов зашифрования и
расшифрования, относят и некоторые другие операции. Так,
например, криптографические хэш-функции (cryptographic
hash-functions) применяются для вычисления значения хэша (hash
value), называемого еще сообщения дайджестом (message digest).
Также существуют криптографические генераторы псевдослучайных
чисел
(random number generator).
|