Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Основы криптографии



Криптография дает возможность преобразовать информацию таким образом, что ее прочтение (восстановление) возможно только при знании ключа.

Все многообразие существующих криптографических методов можно свести к следующим классам преобразований:

Моно- и многоалфавитные подстановки

Наиболее простой вид преобразований, заключающийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. Для обеспечения высокой криптостойкости требуется использование больших ключей.

Перестановки

Также несложный метод криптографического преобразования. Используется как правило в сочетании с другими методами.

Гаммирование

Этот метод заключается в наложении на исходный текст некоторой псевдослучайной последовательности, генерируемой на основе ключа.

Блочные шифры

Представляют собой последовательность (с возможным повторением и чередованием) основных методов преобразования, применяемую к блоку (части) шифруемого текста. Блочные шифры на практике встречаются чаще, чем чистые преобразования того или иного класса в силу их более высокой криптостойкости.

Т.к. блочные шифры считаются наиболее стойкими к взлому, а также потому, что разрабатываемый драйвер будет драйвером блочного устройства, решено было выбрать в качестве алгоритма шифрования именно блочный шифр. Другие типы шрифтов в рассмотрение больше браться не будут.

Требования к хорошему блочному шифру формулируются следующим образом. Необходимы:

-достаточно большая разрядность блока (N, 64 или более бит) для того, чтобы затруднить составление и поддержание каталога;

-достаточно большое пространство ключей (K) для того, чтобы исключить возможность подбора ключа;

-сложные соотношения между исходным и шифрованным текстами с тем, чтобы аналитические и (или) статистические методы определения исходного текста и (или) ключа на основе соответствия исходного и шифрованного текстов были бы по возможности нереализуемы.

Блочный шифр, использующий один и тот же ключ, при шифровании всегда превращает один и тот же блок открытого текста в один и тот же блок шифротекста. Для того чтобы этого избежать, следует использовать специальный режим шифрования.

Криптографический режим обычно объединяет базовый шифр, какую-то обратную связь и ряд простых операций. Операции просты, потому что безопасность является функцией используемого шифра, а не режима. Более того, режим шифра не должен компрометировать безопасность используемого алгоритма.

Есть много вариантов обратной связи, но был выбран вариант наиболее подходящий для применения в драйвере блочного устройства – сцепление. Сцепление добавляет к блочному шифру механизм обратной связи: результаты шифрования предыдущих блоков влияют на шифрование текущего блока. Другими словами, каждый блок используется для изменения шифрования следующего блока. Каждый блок шифротекста зависит не только от шифруемого блока открытого текста, но и от всех предыдущих блоков открытого текста.

В режиме сцепления блоков шифра (cipher block chaining, CBC) перед шифрованием над открытым текстом и предыдущим блоком шифротекста выполняется операция XOR.

Когда блок открытого текста зашифрован, полученный шифротекст сохраняется в регистре обратной связи. Прежде чем будет зашифрован следующий блок открытого текста, он подвергается операции XOR вместе с содержимым регистра обратной связи. Таким образом, создаются входные данные для следующего этапа процедуры шифрования. Полученный шифротекст снова сохраняется в регистре обратной связи, чтобы подвергнуться операции XOR вместе со следующим блоком открытого текста, и так до конца сообщения. Шифрование каждого блока зависит от всех предыдущих блоков.

Дешифрирование является обратной операцией. Блок шифротекста дешифруется как обычно, но сохраняется в регистре обратной связи. Затем следующий блок дешифрируется и подвергается операции XOR вместе с содержимым регистра обратной связи. Теперь следующий блок шифротекста сохраняется в регистре обратной связи, и так далее, до конца сообщения.

В режиме СВС одинаковые блоки открытого текста при шифровании переходят в различные блоки шифротекcта только, если отличались какие-то из предшествующих блоков открытого текста. Два идентичных сообщения, однако, будут шифроваться как один и тот же шифротекст. Что еще хуже, два одинаково начинающихся сообщения будут шифроваться одинаково, пока не появится первое различие.

У ряда сообщений может быть одинаковый заголовок - тема письма, строка "From" или еще что-нибудь. Хотя повтор блока будет невозможен, такое одинаковое начало может предоставить криптоаналитику какую-нибудь полезную информацию. (В данном случае известно, что в образе сформирована файловая система, т.е. известен формат некоторых секторов).

Избежать этого можно, шифруя в качестве первого блока какие-то случайные данные. Этот блок случайных данных называется вектором инициализации (initialization vector, IV), инициализирующей переменной или начальным значением сцепления. IV не имеет никакого смыслового значения, он используется только дня того, чтобы сделать каждое сообщение уникальным. Когда получатель дешифрует этот блок, он использует его только для заполнения регистра обратной связи. Хорошим IV служит метка времени. Или использование каких-нибудь случайных бит. (В данной реализации вектор инициализации основан на позиции блока, что лишь незначительно повышает защиту. К сожалению, в данном случае нет возможности использовать более сложные векторы инициализации).

С использованием IV сообщения с идентичным открытым текстом при шифровании переходят в сообщения с различным шифротекстом. Следовательно, злоумышленник не сможет предпринять повтор блока, и затруднится создание шифровальной книги. Хотя рекомендуется дня каждого сообщения, шифруемого одним и тем же ключом, выбирать уникальный IV, это требование не является обязательным.

IV не должен храниться в секрете, он может передаваться открыто вместе с шифротекстом.





Дата публикования: 2015-01-10; Прочитано: 332 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...