Действия по шифрованию информации. — КиберПедия 

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Действия по шифрованию информации.

2023-01-02 37
Действия по шифрованию информации. 0.00 из 5.00 0 оценок
Заказать работу

Если требуется зашифровать какую-либо информацию, необходимо вы­полнить следующие действия:

1. Выбрать симметричный алгоритм и генератор псевдослучайных чи­сел. Следует выбрать криптографическую схему, которая невоспри­имчива к атакам на алгоритм. Она должна также допускать доста­точно большую длину ключа, чтобы противодействовать атакам, ос­нованным на прямом переборе ключей. Если требуется многократно использовать криптографические ключи, выбирайте блочный шифр. Если нужно обеспечить взаимную совместимость с другими крипто­графическими программами или продуктами, выбирайте AES. Во всех остальных случаях из соображений производительности лучше выбрать поточный шифр.

2. Осуществить выбор множества начальных значений и передать его генератору псевдослучайных чисел. Убедитесь, что начальное множество обладает достаточной энтропией, чтобы противодействовать атаке, использующей прямой перебор. Лучше всего объединять не­сколько множеств начальных значений, включая пользовательский ввод.

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

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

5. Сохранить и защитить ключ.

Блочные и поточные шифры.

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

Предположим, что открытый текст имеет длину в 227 байтов, а исполь­зуемый алгоритм оперирует 16-байтными блоками. Алгоритм берет пер­вые 16 байтов данных, зашифровывает их с помощью таблицы ключей и выдает 16 байтов шифротекста. Затем он зашифровывает следующие 16 байтов открытого текста. Вне зависимости от того, с каким блоком рабо­тает алгоритм, шифрование каждый раз начинается “с нуля”. Таблица ключей не подвергается изменениям от блока к блоку.

После шифрования 14 блоков (224 байта) алгоритму останется еще 3 байта. Но блочный шифр не может оперировать 3 байтами; ему нужно 16 байтов. Чтобы зашифровать последние 3 байта, нужно дополнить дан­ные: добавить байты к неполному блоку, чтобы сделать его полным. Тот, кто расшифровывает шифротекст, должен иметь возможность распознать (и игнорировать) дополнение.

Большинство популярных схем дополнения определяет число байтов, которые следует дополнить, и повторяет это значение в последних байтах данных. В нашем примере схема дополнения должна добавить 13 байтов к открытому тексту до полного блока. Поэтому она повторяет байт “13” в каждой из 13 последующих позиций. В процессе расшифрования берется последний байт зашифрованных данных; этот байт, число от 1 до 16, ука­зывает, сколько дополняющих байтов было добавлено. В этом примере по­сле расшифрования мы будем знать, что последние 13 байтов данных сле­дует отбросить (см. рис. 26). (Каждый из последних 13 байтов должен представлять собой число 13, поэтому в качестве дополнительной провер­ки, мы должны убедиться, что это условие выполняется.) Если длина от­крытого текста кратна 16, дополнение не нужно. Тем не менее, имеет смысл всегда дополнять данные. Затем, при расшифровании данных вы будете знать, что последний зашифрованный байт в действительности представляет собой дополненный байт. Для этого вы присоединяете 16 бай­тов, каждый из которых представляет собой число 16.

Рис. 26.

 

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

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

Наиболее распространенным режимом с обратной связью является сцеп­ление шифрованных блоков (СВС — cipher block chaining) (см. рис. 27). В этой схеме применяется операция исключающего ИЛИ (XOR) к текуще­му блоку открытого текста и предшествующему блока шифротекста. Первый блок открытого текста не имеет предшествующего блока шифротекста, поэтому для него операция XOR выполняется с вектором инициализации {IV — initialization vector}. При расшифровке данных, блок шифротекста рас­шифровывается, после чего выполняется операция XOR с предыдущим блоком шифротекста (который был сохранен перед его расшифровкой). Та­кой метод гарантирует, что любой повторяющийся блок в открытом тексте не будет зашифрован в один и тот же блок шифротекста. Вот и все, что де­лает эта схема. Никакой дополнительной защиты это не дает. Защиту обес­печивает алгоритм шифрования.

Рис. 27 Сцепление зашифрованных блоков.

 

Над первым блоком открытого текста выполняется опера­ция исключающего ИЛИ (XOR) с вектором инициализации, после чего осуществляется шифро­вание Над каждым последующим блоком выполняется операция XOR с предыдущим блоком шифротекста.

Чтобы разобраться с поточными шифрами — вторым типом алгоритмов с симметричным ключом, необходимо сначала познакомиться с криптогра­фическим приемом, называемым однократный шифровальный блокнот, который пользуется популярностью у шпионов. В одной из разновидностей этого приема генерируется последовательность случайных чисел в диапазо­не от 0 до 25 и делаются две копии. Это и есть “Шифровальный блокнот”. Одна копия остается в штабе, а другую копию шпион берет с собой.

Чтобы отправить сообщение в штаб, шпион зашифровывает каждую бу­кву в сообщении, заменяя ее на число из блокнота. Первая буква сообще­ния зашифровывается с помощью первого числа в блокноте, вторая бук­ва — с помощью второго числа и т.д. Шифрование заключается в простом сложении числового представления буквы с числом в последовательности. Если буквой в открытом тексте является G, а числом в блокноте является 11, буквой в шифротексте будет R (R является одиннадцатой по счету бук­вой после G, или G+11 = R). Если буквой в открытом тексте является Y, а числом является 4, буквой шйфротекста будет С, или Y + 4 (Y, Z, А, В, С, когда достигается конец алфавита, то отсчет начинается с А).

Когда штаб получает зашифрованное сообщение, шифровальщик про­сто применяет алгоритм в обратном порядке. Если шифротекстом является буква R, а соответствующее число в блокноте равно 11, вычисляется R – 11 = G, Поскольку и шпион, и штаб используют один и тот же шифро­вальный блокнот, передача информации пройдет успешно. На рис. 28 представлен пример одноразового шифровального блокнота. Каким обра­зом получают блокнот? Возможно, с помощью генератора случайных чи­сел.

Рис. 28. Одноразовый шифровальный блокнот и поточный шифр

 

Поточный шифр схож с одноразовым блокнотом. Чтобы зашифровать данные, алгоритм генерирует блокнот на основе ключа. Блокнот может быть настолько большим, насколько это необходимо. Алгоритм применяет операцию ХОR к открытому тексту и блокноту (см. рис. 28). При использовании одноразового блокно­та шпион и штаб формируют блокнот (в действительности это может быть несколько блокнотов) заранее. Поточный шифр генерирует свой блокнот “на лету”, только когда это необходимо. В криптографических кругах блокнот называют ключевым потоком. Настоящий блокнот формируется случайным образом; поточный шифр выдает псевдослучайные значения и технически не может называться блокнотом.

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

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

Проведем сравнение.

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

С другой стороны, в блочных шифрах можно многократно использовать ключи. Напомним, что поточный шифр подобен одноразовому шифроваль­ному блокноту. Одноразовый означает, что можно использовать блокнот только один раз. Аналогично, следует использовать ключ поточного шиф­ра только один раз. Обычно это не вызывает проблем, но иногда возникает необходимость зашифровать множество сообщений с использованием од­ного и того же ключа. Например, компания, занимающаяся электронной коммерцией, может иметь базу данных с информацией о клиентах, в том числе номера кредитных карт. Вместо того чтобы зашифровывать каждую запись с помощью своего ключа (для чего потребуется создать сотни или даже тысячи ключей), компания может зашифровать все записи с помо­щью одного ключа. Если запись понадобится, ее можно расшифровать с помощью того же ключа. Управлять ключами гораздо легче, если он только один.

Другим фактором является стандартизация. Имеются два алгоритма блочного шифрования: DES и AES. Естественно вы” скорее всего, захотите использовать наиболее распространенный алгоритм. Адресат на другом конце линии связи может иметь, а может и не иметь поддержки RC4, но он почти наверняка имеет поддержку DES и AES. Естественно, что вы выби­раете блочный шифр, поскольку он является стандартным.

Другими словами, нельзя сказать определенно, что лучше. Если нужно многократно использовать ключи, применяйте блочный шифр. Если необ­ходимо обеспечить совместимость, лучше использовать AES. В остальных случаях применяйте поточный шифр. В таблице?? приведены некоторые приложения и алгоритмы шифрования, который используются каждым из них.

Таблица??. Выбор алгоритма шифрования

Приложение Шифрование, который реко­мендуется ис­пользовать Примечания
База данных Блочное Совместимость с другими программами не пред­ставляет проблемы, но требуется многократно ис­пользовать ключи
Электронная почта AES Хотя каждое сообщение электронной почты имеет свой собственный ключ, можно использовать по­точный шифр, но для того, чтобы обеспечить со­вместимость с различными программными паке­тами электронной почты, следует использовать AES
SSL (безопасные со­единения в Web) RC4 (поточный шифр) Чрезвычайно важное значение имеет скорость Каждое соединение может иметь новый ключ, и практически все Web-браузеры и Web-серверы поддерживают RC4
Шифрование фай­лов (защищенное хранение файлов) Блочное Совместимость не является проблемой, но можно зашифровывать все файлы одним и тем же клю­чом, а затем защитить этот ключ (см главу 3)

 


Поделиться с друзьями:

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

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

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.021 с.