Современные алгоритмы шифрования / расшифровки:
- достаточно сложны;
- разработаны для:
- ЭВМ или
- специальных аппаратных устройств.
В большинстве случаев криптография выполняется ПО.
Симметричные алгоритмы подразделяются:
- на потоковые шифры и
- блочные шифры.
Потоковыешифры позволяют шифровать информацию побитно.
Блочныешифры:
- работают с некоторым набором битов данных,
- шифруют этот набор как единое целое.
В асимметричных шифрах:
- открытый ключ доступен всем;
- каждый может зашифровать сообщение;
- расшифровать его сможет только владелец секретного ключа;
- ключи:
- для шифрования - открытый ключ,
- для дешифрования - закрытый ключ.
Симметричные алгоритмы работают быстрее, чем асимметричные.
Оба типа алгоритмов часто используются вместе:
1) алгоритм с открытым ключом используется:
- для шифрования и
- передачи по открытым каналам связи
секретного ключа симметричной системы;
2) полученный и расшифрованный ключ симметричной системы далее используется для расшифровки передаваемых сообщений.
В таблице приведены математические преобразования, используемые в криптоалгоритмах.
Способы преобразований | Разновидности способа |
Замена (подстановка одних символов на другие) | - простая (одноалфавитная); - многоалфавитная |
Перестановка позиций символов по некоторому закону | - по математической формуле; - по таблице |
Гаммирование (наложение на текст случайных символов, снимаемых с некоторого генератора) | - малая конечная длина символов с генератора; - большая конечная длина символов; - бесконечная длина символов (одноразовый блокнот) |
Комбинированные | - замена + перестановка; - замена + гаммирование; - перестановка + гаммирование |
Математические преобразования | - нахождение элементов в конечных полях (AES); - возведение чисел в большие степени по модулю (RSA, Эль-Гамаль); - разложение большого простого числа на сомножители (RSA); - нахождение координат точки в пространстве (цифровая подпись ГОСТ 34.10-2001) |
Примерами симметричных алгоритмов являются:
- DES,
- IDEA,
- AES,
- ГОСТ 28147-89.
Асимметричные алгоритмы:
- RSA,
- алгоритм Эль-Гамаля.
Цифровые подписи
Цифроваяподпись:
- блок данных, сгенерированный по сообщению с использованием некоторого секретного ключа
- на базе некоторого асимметричного алгоритма;
- ставится автором сообщения.
Открытый ключ:
- позволяет проверить,
- что данные были сгенерированы исходным секретным ключом.
Алгоритм генерации цифровой подписи:
- обеспечивает невозможность создания подписи без секретного ключа,
- которая при проверке окажется правильной.
Подписи применяют для:
- подтверждения авторства отправителя полученного сообщения;
- проставления штампа времени на документах - доверяемая сторона:
- подписывает документ со штампом времени с помощью своего секретного ключа,
- и подтверждает, что документ существовал в момент, объявленный в штампе.
Цифровая подпись документа создается следующим образом.
1. По содержанию документа генерируется " цифровое сообщение " (message digest) по функции, получающая из текста некоторое число.
2. К документу добавляются:
- message digest;
- информация об авторе документа;
- штамп времени.
3. Автор ставит цифровая подпись - шифрует:
- алгоритмом цифровой подписи
- эти данные (без документа)
- с помощью секретного ключа.
4. К подписи прикладывается открытый ключ автора.
5. Документ и подпись передаются получателю.
6. Получатель дешифрует подпись с помощью открытого ключа.
7. Если:
- подпись расшифровалась,
- ее содержимое соответствует документу - вычисленное получателем и расшифрованное message digest совпадают,
то сообщение считается подтвержденным.
Примерами создания и проверки цифровых подписей являются алгоритмы:
- RSA,
- Эль-Гамаля,
- ГОСТ 34.10-94,
- ГОСТ 34.10-2001.
Криптографические хеш-функции
Криптографическая хеш-функция:
- используется для генерации message digest при создании цифровой подписи;
- преобразовывает сообщение в блок фиксированной длины (hash):
- в 128 и более бит,
- 2128 значительно больше, чем количество созданных в мире текстов,
- всё множество значений для hash должно равномерно распределяться по множеству возможных сообщений;
- является необратимой функцией - невозможно подогнать документ к значению hash.
Используются хеш-функции:
- MD5,
- SHA,
- ГОСТ 34.11-94.