- •1 Основные понятия криптографии.
- •2 Классификация криптографических систем.
- •3 Принципы применения и классификация поточных шифров.
- •4 Модель симметричной криптосистемы.
- •5 Модель криптосистемы с открытым ключом.
- •6 Криптографический протокол.
- •7 Классификация атак на криптосистемы и криптографические протоколы.
- •8 Средства криптографической защиты информации компьютерных систем и сетей.
- •9 Средства криптографической зашиты.
2 Классификация криптографических систем.
По характеру использования ключа (виду ключевой системы) различают:
- симметричные криптосистемы;
- асимметричные криптосистемы.
В симметричных криптосистемах и для зашифрования, и для расшифрования используются симметричные (секретные) ключи. Симметричность означает, что ключи, задающие пару взаимно обратных криптографических преобразований, могут быть получены один из другого с небольшой трудоемкостью. В большинстве случаев для зашифрования и расшифрования информации используется один и тот же ключ.
В асимметричных криптосистемах используются открытый и секретный ключи, которые математически связаны друг с другом. Информация шифруется с помощью открытого ключа, который доступен всем пользователям компьютерной системы, а расшифровывается с помощью секретного ключа, известного только получателю сообщения.
Для симметричных криптосистем схему шифрования можно представить следующим образом:
Y= Ек(*); JT = DK(y) = DK(EK(*)), (1)
где X,Y— открытый текст и криптограмма соответственно; Ек, DK — функции шифрования и расшифрования на ключе К.
Для взаимной однозначности шифрования и расшифрования необходимо, чтобы выполнялось равенство DK Ек = е, где е — единичное преобразование.
Все симметричные криптосистемы по способу шифрования можно разделить на блочные, поточные и комбинированные.
В блочных криптосистемах открытая информация разбивается на блоки фиксированной длины, каждый из которых шифруется отдельно, независимо от его положения во входной информационной последовательности. Симметричные методы шифрования подразделяются на три группы: перестановочные шифры, подстановочные шифры, составные шифры, которые являются совокупностью операций перестановок, подстановок и различных аналитических преобразований.
Поточное шифрование основано на сложении символов открытой информации с символами ключевой последовательности с заданными свойствами. В этом случае осуществляется поэлементное шифрование потока информации. Шифрование и расшифрование, как правило, осуществляются с использованием операции сложения по модулю 2.
При комбинированном шифровании используются принципы как блочного, так и поточного шифрования. В этом случае возможно использование блочного шифра в поточном режиме (гаммирование, шифрование с обратной связью) и поточного шифра в блочном режиме (шифрование блоков).
Асимметричные методы шифрования используют два ключа: открытый и секретный. Их особенностью является возможность построения двух функций криптографического преобразования информации в зависимости от вариантов применения открытого и секретного ключа.
Так, если открытый ключ используется для шифрования, а секретный ключ — для расшифрования, то имеет место алгоритм шифрования с открытым ключом. В этом случае любой абонент сети, имеющий открытый ключ абонента-получателя может зашифровать сообщение, однако расшифровать его может только абонент-получатель, имеющий секретный ключ.
Если секретный ключ используется для шифрования, а открытый — для расшифрования, то имеет место алгоритм электронной цифровой подписи. В этом случае только владелец секретного ключа может правильно зашифровать сообщение, то есть сгенерировать подпись, а проверить подпись (расшифровать сообщение) может любой абонент, имеющий открытый ключ абонента-отправителя.
Асимметричные криптосистемы основаны на применении односторонних функций с потайным ходом. В зависимости от вида односторонней функции они делятся на алгоритмы, использующие:
- сложность дискретного логарифмирования;
- сложность разложения целых чисел;
- сложность декодирования произвольного линейного кода;
- другие NP — полные задачи.
Криптографические алгоритмы по степени доказуемости их бе-зопасности делятся на:
- безусловно стойкие (теоретически недешифруемые);
- доказуемо стойкие;
- предположительно стойкие криптоалгоритмы (практически недешифруемые).
Безопасность безусловно стойких криптоалгоритмов основана на доказанных теоремах о невозможности раскрытия ключа. Примером безусловно стойкого криптоалгоритма является система с разовым использованием ключей (шифр Вернама) или система квантовой криптографии, основанная на квантовомеханическом принципе неопределенности. Стойкость доказуемо стойких криптоалгоритмов определяется сложностью решения хорошо известной математической задачи, которую пытались решить многие математики и которая является общепризнанно сложной. Примером могут служить системы Диффи—Хеллмана или Ривеста—Шамира—Аделмана, основанные на сложностях соответственно дискретного логарифмирования и разложения целого числа на множители. Предположительно стойкие криптоалгоритмы основаны на сложности решения частной математической задачи, которая не сводится к хорошо известным задачам. Примерами могут быть алгоритмы в соответствии с ГОСТ 28147-89, DES, AES и др.
К сожалению, безусловно стойкие криптосистемы неудобны на практике (системы с разовым использованием ключа требуют большой защищенной памяти для хранения ключей, системы квантовой криптографии требуют волоконно-оптических каналов связи и являются дорогими, кроме того, доказательство их безопасности уходит из области математики в область физики).
Достоинством доказуемо стойких алгоритмов является хорошая изученность задач, положенных в их основу. Недостатком их является невозможность оперативной доработки криптоалгоритмов в случае появления такой необходимости, то есть жесткость этих криптоалгоритмов. Повышение стойкости может быть достигнуто увеличением размера математической задачи или ее заменой, что, как правило, влечет цепь изменений не только в шифровальной, но и в смежной аппаратуре.
Предположительно стойкие криптоалгоритмы характеризуются сравнительно малой изученностью математической задачи, но зато обладают большой гибкостью, что позволяет не отказываться от алгоритмов, в которых обнаружены слабые места, а проводить их доработку.
