Поточные шифры. Криптографический приём ошб (однократный шифровальный блокнот) и rc4. Выбор алгоритма шифрования. Блок или поток. Что лучше. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Поточные шифры. Криптографический приём ошб (однократный шифровальный блокнот) и rc4. Выбор алгоритма шифрования. Блок или поток. Что лучше.



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

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

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

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

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

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

Теперь о положении в мире:

· в большинстве работ по анализу и взлому блочных шифров рассматриваются алгоритмы шифрования, основанные на стандарте DES; для поточных же шифров нет выделенного направления изучения; методы взлома ПШ весьма разнообразны.

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

· исследованием и разработкой поточных шифров в основном занимаются европейские криптографические центры, блочных – американские.

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

RC4 (англ. Rivest Cipher 4 или англ. Ron’s Code, также известен как ARCFOUR или ARC4 (англ. Alleged RC4)) — потоковый шифр, широко применяющийся в различных системах защиты информации в компьютерных сетях (например, в протоколах SSL и TLS, алгоритме безопасности беспроводных сетей WEP).

Шифр разработан компанией RSA Security и для его использования требуется лицензия.

Алгоритм RC4, как и любой потоковый шифр, строится на основе параметризованного ключом генератора псевдослучайных битов с равномерным распределением. Длина ключа может составлять от 40 до 256 бит[1].

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

 

61 Упрощенный S-DES его общая структура. Вычисление ключей S-DES (Simplify-DES). Функция шифрования fк и её роль в комбинации перестановки и подстановки.

Упрощенный DES – это алгоритм шифрования, имеющий, скорее, учебное, чем практическое значение. По свойствам и структуре он подобен DES, но имеет гораздо меньше параметров. Данный алгоритм был разработан профессором Эдвардом Шейфером (Edward Schaefer) из Университета Санта-Клара.

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


Рис. 1. Схема упрощенного алгоритма DES

Алгоритм шифрования включает последовательное выполнение пяти операций: начальной перестановки IP, сложной функции fK, являющейся композицией операций перестановки и подстановки и зависящей от полученного ключа, перестановки SW, при которой две половинки последовательности данных просто меняются местами, еще раз функции fK и, наконец, перестановки, обратной начальной (IP−1). Функция fK использует в качестве исходных данных не только шифруемый текст, но и 8-битовый ключ

Данный алгоритм можно представить в виде композиции функций:

шифрованный текст = IP−1(fk2(SW(fk1(IP(открытый текст))))),

где K1 = P8(сдвиг(P10(ключ))), K2 = P8(сдвиг(сдвиг(P10(ключ)))).

Процесс дешифрования, по сути, является процессом, обратным процессу шифрования:

открытый текст = IP−1(fk1(SW(fk2(IP(шифрованный текст))))).

Вычисление ключей S-DES

В алгоритме S-DES используется 10-битовый ключ, который должен быть как у отправителя, так и у получателя сообщения. Из этого ключа на определенных этапах шифрования и дешифрования генерируется два 8-битовых подключа. На рис. 2 показана схема процедуры создания этих подключей.

^ Рис. 2. Вычисление ключей S-DES

Сначала выполняется перестановка битов ключа следующим образом. Перестановка P10 в табличной форме имеет вид:

P10
                   

Эту таблицу следует читать слева направо. Каждый ее элемент идентифицирует позицию бита исходных данных в генерируемой выходной последовательности. После этого отдельно для первых пяти битов и отдельно для вторых выполняется циклический сдвиг влево (LS-1). Затем применяется перестановка P8, в результате которой из 10-битового ключа сначала выбираются, а затем переставляются 8 битов по следующему правилу.

P8
               

В результате этой операции получается первый подключ (K1). Теперь нужно вернуться к двум 5-битовым строкам, полученным в результате применения функций LS-1, и выполнить с каждой из этих строк циклический сдвиг влево на две позиции (LS-2). Наконец, применив к полученной в результате последовательности перестановку P8, получим подключ K2.

Шифрование S-DES

На рис. 3 представлена более подробная схема алгоритма шифрования S-DES. На вход алгоритма поступает 8-битовый блок открытого текста, к которому применяется начальная перестановка, заданная функцией IP.

IP
               

Все 8 битов открытого текста сохраняют свои значения, но меняется порядок их следования. На завершающей стадии алгоритма выполняется обратная перестановка.

IP-1
               

Рис.3. Подробная схема шифрования S-DES

Функция fK

Самым сложным компонентом S-DES является функция fK, представляющая собой комбинацию перестановки и подстановки. Пусть L и R означают соответственно первые 4 бита и последние 4 бита 8-битовой последовательности, подаваемой на вход fK, и пусть F– некоторое отображение пространства 4-битовых строк в себя, не обязательно являющееся взаимно однозначным. Тогда положим

fK(L,R) = (L ⊕ F(R, SK), R),

где SK обозначает подключ, а ⊕ – операцию XOR.

Теперь опишем отображение F.На входе этого отображения имеем 4-битовое значение (n1, n2, n3, n4). Первой операцией является операция расширения/перестановки.

E/P
               

Для дальнейшего рассмотрения удобнее представить результат в следующей форме:

n4|n1 n2|n4

n2|n3 n4|n1

К этому значению с помощью операции XOR добавляется 8-битовый подключ K1 =

(k11, k12, k13, k14, k15, k16, k17, k18):

n4+k11|n1+k12 n2+k13|n4+k14

n2+k15|n3+k16 n4+k17|n1+k18

Давайте переименуем полученные в результате 8 битов, как показано ниже

p0,0| p0,1 p0,2|p0,3

p1,0| p1,1 p1,2|p1,3

Первые четыре бита (первая строка приведенной выше матрицы) поступают на вход S0, на выходе которого получается 2-битовая последовательность, а оставшиеся четыре бита (вторая строка матрицы) – на вход модуля S1, на выходе которого получается другая 2-битовая последовательность. Модули S0 и S1 можно определить так: S0:

       
       
       
       

S1:

       
       
       
       

Эти S-модули (матрицы кодирования) работают следующим образом. Первый и четвертый биты входной последовательности рассматриваются как 2-битовые числа, определяющие строку, а второй и третий – как числа, определяющие столбец S-матрицы. Элементы, находящиеся на пересечении соответствующих строки и столбца, задают 2-битовые выходные значения.

Теперь 4 бита, полученные на выходе модулей S0 и S1, преобразуются с помощью перестановки следующим образом.

P4
       

Результат применения перестановки P4 и является результатом функции F.

Функция-переключатель

Функция fK изменяет только четыре левых бита. Поэтому следующей операцией в алгоритме шифрования является использование функции SW, которая меняет местами первые и последние четыре бита последовательности, чтобы при следующем вызове функции fK последняя работала уже с другой четверкой битов. При втором вызове fK функции E/P, S0, S1 и P4 остаются теми же, что и при первом, но вместо ключа K1 используется ключ K2.

 

62 Принципы блочного шифрования на примере подстановочного шифра для п-битовых блоков (случай n =4 ). Многобуквенный шифр Хилла.

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

Подстановочный шифр с фиксированным сдвигом

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

пример многоалфавитного шифра — шифр Хилла, изобретенный Лестером С. Хиллом. В отличие от других многоалфавитных шифров, которые мы уже рассмотрели, здесь исходный текст разделен на блоки равного размера. Блоки зашифрованы по одному таким способом, что каждый символ в блоке вносит вклад в шифрование других символов в блоке. По этой причине шифр Хилла принадлежит к категории шифров, названных блочными шифрами. Другие шифры, которые мы изучали до сих пор, принадлежат к категории, называемой шифры потока. Отличие между шифрами блока и шифрами потока обсуждаются в конце этой лекции.

В шифре Хилла ключ — квадратная матрица размера ., в котором m. является размером блока. Если мы вызываем ключевую матрицу K, то каждый элемент ki,j определяется матрицей, как показано на рис. 4.15.


Рис. 4.15. Ключ в шифре Хилла

Покажем, как получается один блок зашифрованного текста. Если мы обозначим m символов блоков исходного текста P1, P2..., Pm, соответствующие символы в блоках зашифрованного текста будут C1, C2,..., Cm. Тогда мы имеем

C1 = P1k11+P2k21+……+Pmkm1C2 = P1k12+P2k22+……+Pmkm2………………………………………………………Cm = P1k1m+ P2k2m +……+ Pmkmm

Уравнения показывают, что каждый символ зашифрованного текста, такой, как C1, зависит от символов всего исходного текста в блоке (P1, P2,..., Pm). Однако мы должны знать, что не все квадратные матрицы имеют мультипликативные инверсии в Z26, так что Алиса и Боб должны быть осторожны в выборе ключа. Боб не сможет расшифровать зашифрованный текст, передаваемый Алисой, если матрица не имеет мультипликативной инверсии.

Ключевая матрица в шифре Хилла должна иметь мультипликативную инверсию.

Пример 4.20

Использование матриц позволяет Алисе зашифровать весь исходный текст. В этом случае исходный текст — матрица, в которой l является номером блоков. Например, исходный текст "code is ready" ("код готов"), может быть представлен как матрица при добавлении дополнительного фиктивного символа "z" к последнему блоку и удалении пробелов; зашифрованный текст выглядит как "OHKNIHGKLISS". Боб может расшифровать сообщение, используя инверсную матрицу-ключ. Шифрование и дешифрование показано на рис. 4.16.

Рис. 4.16. Пример 4.20

Криптоанализ шифров Хилла

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

Во-вторых, шифры Хилла не сохраняют статистику обычного текста. Ева не может провести анализ частоты отдельных букв из двух или трех букв. Анализ частоты слов размера m мог бы cработать, но очень редко исходный текст имеет много одинаковых строк размера m. Ева, однако, может провести атаку на шифр, используя метод знания исходного текста, если она знает значение m и знает пары "исходный текст/зашифрованный текст", по крайней мере m блоков. Блоки могут принадлежать тому же самому сообщению или различным сообщениям, но должны быть различны. Ева может создать две . матрицы, P (обычный текст) и C (зашифрованный текст), в котором соответствующие строки представляют известные пары обычного/зашифрованного текста. Поскольку C = PK, Ева может использовать отношения K = CP-1, чтобы найти ключ, если P является обратимым. Если P не является обратимым, то Ева должна задействовать различные наборы m пар обычного/зашифрованного текста.

Если Ева не знает значение m, она может попробовать различные значения при условии, что m не является очень большим.

Пример 4.21

Предположим, что Ева знает, что m = 3. Она перехватила три пары блока исходного/зашифрованного текста (не обязательно из того же самого сообщения), как показано на рис. 4.17.

Рис. 4.17. Пример 4.22, формирования шифра зашифрованного текста

Она составляет матрицы P и C из этих пар. Поскольку в данном случае матрица P обратима, она инвертирует эту матрицу и умножает ее на C, что дает матрицу ключей K, как это показано на рис. 4.18.

Рис. 4.18. Пример 4.22, поиска ключа

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

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 804; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.196.27.171 (0.04 с.)