Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Топ:
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2023-01-02 | 37 |
5.00
из
|
Заказать работу |
|
|
Если требуется зашифровать какую-либо информацию, необходимо выполнить следующие действия:
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!