Метод асимметричного шифрования предполагает использовать в паре два разных ключа – открытый и секретный. Открытый ключ свободно распространяется в сети, в то время как секретный ключ всегда держится в секрете. В асимметричном шифровании ключи работают в паре – если данные шифруются открытым ключом, то расшифровать их можно только соответствующим секретным ключом и наоборот.
Все алгоритмы асимметричного шифрования базируются на сложности решения математических задач. Например, разложение очень больших чисел на сомножители (RSA). Асимметричное шифрование позволяет решить задачу с распространением ключей.
- понятие хэш-функции и электронной подписи;
Хеширование — преобразование по определённому алгоритму входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциями или функциями свёртки, а их результаты называют хешем, хеш-кодом или сводкой сообщения (англ. message digest).
Хорошая хеш-функция должна удовлетворять двум свойствам: быстро вычисляться; минимизировать количество коллизий.
|
|
Для того, чтобы хеш-функция H считалась криптографически стойкой, она должна удовлетворять трём основным требованиям, на которых основано большинство применений хеш-функций в криптографии:
Необратимость или стойкость к восстановлению прообраза: для заданного значения хеш-функции m должно быть вычислительно невозможно найти блок данных X, для которого
Стойкость к коллизиям первого рода или восстановлению вторых прообразов: для заданного сообщения M должно быть вычислительно невозможно подобрать другое сообщение N, для которого
- алгоритмы DES, AES, RSA, ГОСТ 28147-89 и др. – основные возможности.
DES
|
Advanced Encryption Standard (AES), также известный как Rijndael - симметричный алгоритм блочного шифрования (размер блока 128 бит, ключ 128/192/256 бит), принятый в качестве стандарта шифрования правительством США по результатам конкурса AES. Этот алгоритм хорошо проанализирован и сейчас широко используется (10,12,14 раундов в зависимости от ключа).
Процедура SubBytes() обрабатывает каждый байт состояния, независимо производя нелинейную замену байтов используя таблицу замен (S-box). Такая операция обеспечивает нелинейность алгоритма шифрования.
ShiftRows работает со строками State. При этой трансформации строки состояния циклически сдвигаются на r байт по горизонтали, в зависимости от номера строки.
|
|
В процедуре MixColumns, четыре байта каждой колонки State смешиваются, используя для этого обратимую линейную трансформацию. В процедуре MixColumns, каждая колонка состояния перемножается с фиксированным многочленом c(x). В процедуре AddRoundKey, RoundKey каждого раунда объединяется со State. Процедура производит побитовый XOR каждого байта State с каждым байтом RoundKey.
RSA Разложение очень больших чисел на сомножители.
Важно отметить, что симметричный ключ никуда не передаётся, поскольку у каждого из партнёров он вырабатывается непосредственно «на месте».
RSA получил имя от имён его создателей: Ron Rivest, Adi Shamir ja Leonard Adleman. RSA использует большие простые числа при шифровании и использует широко распространённые инфраструктуры открытых ключей (PKI - Public Key Infrastructure). RSA алгоритмы можно использовать как для шифрования, так и для создания дигитальной (электронной) подписи.