Криптоалгоритмы и протоколы шифрования
Криптография - сокрытие смысла информации, представленной в любой форме: в виде данных, хранящихся на диске или сообщений, передаваемых но каналам связи.
Функции криптографии:
• зашифрование/расшифрование (криптопреобразование) информации;
• контроль целостности и подлинности информации с целью обнаружения случайных и преднамеренных искажений (аутентификация).
Тип криптографического преобразования выбирается из семейства преобразований, образующих криптографическую систему. Параметр, выбирающий конкретное преобразование называется ключом. Стойкость шифра должна определяться только секретностью ключа..
Для сокрытия смысла информации применяют два типа преобразований:
- кодирование;
- шифрование.
Кодированиеподразумевает использование кодировочных таблиц, содержащих наборы часто используемых элементов информации (коды, фразы, операторы). Каждому из этих элементов соответствует произвольно выбранный кодовый идентификатор. Недостатком является то, что при несанкционированном использовании кодировочной таблицы, необходимо создать новую и распространить ее среди пользователей надежным образом.
Шифрованиепредставляет собой процедуру (алгоритм) преобразования элементов открытого текста в форму, недоступную для распознавания. Современные криптосистемы используют, как правило, оба типа преобразования в определенном сочетании. Все сложные шифры, обеспечивающие высокую степень надежности, могут быть разложены на ряд простейших преобразований: замену и перестановку.
В основе преобразования замены лежит метод кодировочной таблицы. Элементы открытого текста замещаются на элементы (кодовые идентификаторы) из кодировочной таблицы. Замена, при которой одинаковым элементам открытого текста ставятся в соответствие одинаковые элементы криптограммы, называется подстановкой. Перестановка заключается в изменении взаимного расположения элементов открытого текста. На практике преобразования замены и перестановки могут дополнять друг друга. Между шагами замены осуществляется перестановка Р элементов в соответствии с определенным алгоритмом.
Качественный шифр, кроме .криптостойкости и других параметров, определяющих его эффективность, должен быть удобным для его технической и программной реализации. Этим свойством в полной мере обладают блочные алгоритмы. Суть их заключается в том, что открытый текст разбивается на блоки (например, по 64 бита) каждый из которых зашифровывается отдельно. Простейшим блочным алгоритмом является - электронная кодировочная книга. При его использовании взаимного влияния блоков не проявляется, т. е. два одинаковых блока открытого текста будут представлены одинаковыми зашифрованными блоками. При искажении зашифрованной информации ошибка будет распространяться только в пределах блока, в котором возникла ' ошибка. Это приводит к возможности выявления закономерности повторяющихся блоков и на основании ее анализа расшифровки информации. Поэтому на практике чаще всего используют методы шифрования с обратной связью.
При этом информация разбивается на блоки и шифруется. Результаты каждого шага шифрования запоминаются и используются для модификации следующего шифруемого блока исходного текста. Например, каждые 64 бита зашифрованного текста складываются побитно со следующим блоком исходного текста и затем шифруются. Дешифрация осуществляется в обратном порядке. Корректность дешифрации может быть нарушена, если возникли ошибки в передаче данных. Даже искажение единственного бита в зашифрованном тексте приведет к полному искажению информации при расшифровке очередного блока, который в свою очередь приведет к ошибке при расшифровке следующего блока и так далее.
Практически все используемые на практике шифры могут быть раскрыты при наличии неограниченных вычислительных возможностей. Существует единственный абсолютно надежный шифр - одноразовый блокнот. Он основан на соблюдении следующих трех принципов:
- Ключ используется только для одного сеанса криптопреобразования (причина названия шифра).
- Ключ формируется случайным образом.
- Число элементов в ключе совпадает с числом элементов открытого текста. Это означает, что сколько бы раз в открытом тексте не встречался определенный элемент, он каждый раз. раз будет иметь новый кодовый идентификатор.
Использование абсолютно надежных шифров для защиты больших объемов информации практически невозможно в связи с огромными трудозатратами для производства ключевых последовательностей. В связи с этим, конкретное конструирование шифров должно учитывать, с одной стороны, надежную защиту информации, а с другой - реальные условия реализации и эксплуатации. Это приводит, в первую очередь, к ограничению размера ключа.
Современные криптоалгоритмы подразделяются па два класса: ассиметричные и симметричные. В симметричных криптосистемах (классическая криптография) секретный ключ зашифрования совпадает с секретным ключей расшифрования. В России наиболее используемыми симметричными криптоалгоритмами являются DES - Государственный стандарт США на шифрование данных и ГОСТ 28147-89 — отечественный стандарт на шифрование данных. В асимметричных криптосистемах (криптография с открытым ключом открытый ключ шифрования не совпадает с секретным ключом дешифрования. Открытый ключ сообщается всем пользователям криптосистемы. Расшифровать с помощью открытого ключа зашифрованную информацию практически невозможно. В сети с N абонентами, каждый абонент вырабатывает собственную ключевую пару и, следовательно, в таких системах будет N открытых и N секретных ключей. На практике чаще всего применяется криптоалгоритм RSA .
Управление ключами. Управление ключами представляет собой процесс, посредством которого ключевые элементы, используемые в симметричных или ассиметричных криптосистемах, предоставляется в распоряжение пользователей и подвергается обработке определенными процедурами безопасности, вплоть до его уничтожения. Управление ключами связано со следующими процедурами: генерация ключей; распределение ключей; хранение ключей; уничтожение ключей; регистрация пользователей.
При формировании ключей криптосистем используют механизмы генерации случайных чисел. Данные механизмы могут содержать в себе как случайные, так и псевдослучайные генераторы. Например, учитывая, что числа, вырабатываемые псевдослучайными генераторами, зависимы между собой, т.к. их алгоритмы рекуррентны, необходимо вносить именно случайный фактор в их работу.
Помимо качественной генерации ключей криптосистемы при использовании симметричных криптосистем необходимо обеспечить такое распределение их между пользователями , которое гарантировало бы их максимальную секретность и целостность. Одним из подходов является метод, когда ключи в сети распределяются по каналам связи в зашифрованном виде с помощью других ключей. Следовательно, совокупность ключей может образовывать иерархию, в которой каждый ключ распределяется или хранится в зашифрованном виде и зависит от ключа более высокого уровня. В такой иерархии ключи самого высокого уровня не могут передаваться по сети и должны быть распределены другим способом, обеспечивающим конфиденциальность (например, с помощью курьера). На верхнем уровне иерархии находится мастер-ключ всей системы, на базе которого по одному мастер-ключу для каждого абонента сети (зонный мастер-ключ). Так как не рекомендуется использовать один и тот же ключ для шифрования данных в течение длительного времени, то ключи, используемые на самом низком уровне (сеансовые ключи) регулярно меняются и рассылаются по сети в зашифрованном виде на базе зонных мастер-ключей.
Более безопасной модификацией данного метода является способ, когда ключ разбивается на несколько частей, которые доставляются пользователям по различным каналам: курьером, по телефону, по почте и другим образом.
Существует целый ряд способов распределения ключей, использующих центр распределения ключей. Это позволяет сократить число необходимых ключей, так как не каждому пользователю сети надо секретно взаимодействовать с каждым. Пример протокола распределения ключей с использованием симметричной криптосистемы и ЦРК:
- ЦРК вырабатывает и передает по защищенному каналу долговременные ключи каждому пользователю системы для связи с ЦРК; Когда пользователь А желает установить секретную связь с пользователем В, он посылает запрос в ЦРК с требованием секретного сеансового ключа для связи с пользователем В;
- ЦРК вырабатывает сеансовый ключ, зашифровывает его два раза на долговременных ключах пользователей вместе с идентифицирующей пользователей информацией и рассылает соответствующие шифры пользователям А и В; 4. Пользователи А и В расшифровывают поступившие шифротексты и получают сеансовый ключ.
Распределение ключей с помощью криптосистем с открытым ключом является более простым в силу возможности использования незащищенных каналов и отсутствия необходимости в секретности при хранении и передаче открытых ключей. Однако распределение открытых ключей также требует подтверждения их подлинности (аутентификации). Для этого также может использоваться ЦРК, где пользователи регистрируют свои открытые ключи, но сам центр при этом не становится активным участником протокола и нагрузка на него не высока.
|