Разработка программного средства, обеспечивающего криптографическую защиту файлов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



с обратной связью;

-CTR (Counter) - режим Гаммирования.

криптографический защита шифрование кодирование

1.4.1 Электронная кодовая книга

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

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

В ECB использованию одной страницы кодовой книги при зашифровании соответствует применение к входным данным преобразования функцией CIPHK, а при расшифровании - CIPH-1K. Обоим сторонам для того, чтобы синхронизироваться достаточно договориться о значении секретного ключа K [5]. Вообще этот режим является самым простым и первым приходящим на ум способом использования блочного шифра для шифрования сообщений. Он проиллюстрирован на рисунке 3.

Рисунок 3 - Режим шифрования электронная кодовая книга.

Как видно из рисунка весь алгоритм ECB состоит в применении напрямую функций CIPHK и CIPH-1K к сообщению и шифротексту для зашифрования и расшифрования соответственно, что также может быть выражено в виде уравнений:

зашифрование: Cj= CIPHK(Pj), где j=1тАжnрасшифрование: Pj= CIPH-1K(Cj), где j=1тАжn

В уравнениях приняты следующие обозначения:j - очередной, j-ый блок открытого текста;j - очередной, j-ый блок зашифрованного текста.

Таким образом шифрование происходит блоками, соответствующими размеру входных/выходных данных для функций CIPHK и = CIPH-1K. Блоки шифруются отдельно и независимо друг от друга, что позволяет делать это параллельно. Это достоинство режима ECB и его простота скрадываются двумя значительными недостатками. Первый - то, что длина сообщения должна быть кратна длине блока входных данных блочного шифра, то есть все сообщение либо можно разбить на целое число таких блоков, либо необходимо каким-то образом дополнять последний блок не несущими информацию данными. Второй недостаток еще более существенный - если на вход подается одинаковая последовательность, то после шифрования выход также будет одинаковым. А это может дать ключ к анализу содержания сообщения.

.4.2 iепление блоков по шифротексту

В режиме шифрования CBC происходит iепливание всех блоков сообщения по шифротексту. Как это достигается - видно из рисунка 4, иллюстрирующего этот режим шифрования.

Рисунок 4 - Режим шифрования iепление блоков по шифротексту.

Как видно из рисунка в алгоритме шифрования на вход функции CIPHK каждый раз подается результат суммирования по модулю 2 открытых данных очередного блока сообщения и выходных данных функции CIPHK для предыдущего блока. Поскольку выходные данные функции CIPHK для очередного блока идут прямо на выход алгоритма CBC, то есть являются шифротекстом этого блока и одновременно поступают на вход этой же функции для зашифрования последующего блока, то говорят, что происходит iепление блоков по шифротексту. Первый блок открытых данных суммируется с вектором инициализации, речь о котором пойдет ниже. Пока же достаточно понимать, что этот вектор инициализации становится известен как отправителю, так и получателю в самом начале сеанса связи (поэтому зачастую его называют просто вектором инициализации, синхропосылкой). Расшифрование происходит, соответственно, в обратном порядке - сначала к шифротексту применяют функцию CIPH-1K, а затем суммируют с предыдущим блоком шифротекста для получения на выходе алгоритма очередного блока открытого текста. Первый блок открытого текста, опять же, восстанавливается с помощью вектора инициализации. Таким образом весь алгоритм может быть выражен в виде уравнений следующим образом:зашифрование:

C1 = CIPHK(P1 xor IV);

Cj = CIPHK (Pj xor Cj-1), где: j = 1тАжn

В уравнениях приняты следующие обозначения:- вектор инициализации (на рисунке - Initialization Vector);j - очередной, j-ый блок открытого текста;j - очередной, j-ый блок шифротекста.

.4.3 Обратная загрузка шифротекста

В алгоритме режима обратной загрузки шифротектса очередной блок открытого текста суммируется по модулю с блоком предыдущего шифротекста, но только после того, как этот шифротекст подвергнется дополнительной обработке функцией CIPHK. Так происходит зашифрование сообщения в этом режиме. Для расшифрования нужно просто суммировать (естественно по модулю 2) очередной блок шифротекста с предыдущим, пропущенным опять-таки через функцию CIPHK. Работа шифра проиллюстрирована на рисунке 5.

Рисунок 5 - Режим шифрования обратная загрузка шифротекста.

Уравнения режима шифрования CFB приведены ниже:зашифрование:

I1 = IV;

Ij = LSBb-5(Ij-1) | Cj-1, где: j = 2тАжn,

Oj = CIPHK(Ij), где: j = 1,2тАжn;

Cj = Pj xor MSB5(Oj), где: j = 1,2тАжn.

В режиме CFB при зашифровании входные данные для функции CIPHK формируются на основании шифротекста с предыдущей итерации алгоритма, поэтому параллельное выполнение итераций алгоритма невозможно. Однако, в режиме расшифрования CFB при условии наличия полного шифротекста все порции открытого текста можно получить одновременно.

.4.4 Обратная загрузка выходных данных