Каков принцип работы у аппаратного блока перестановки
Перейти к содержимому

Каков принцип работы у аппаратного блока перестановки

  • автор:

Самое простое объяснение принципа работы современных алгоритмов симметричного шифрования

(Нашёл в твиттере тред с очень крутым объяснением работы симметричных шифров. Его написал Colm MacCárthaigh один из основных контрибьюторов Apache. Я спросил разрешение Колма на перевод, он любезно согласился).

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

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

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

Вот простой пример. Допустим, у меня есть строка «Ovaltine» и я хочу её зашифровать. Я мог бы воспользоваться rot13 — очень простым олдскульным шифром Цезаря, который делает хоровод из букв, где a и z держатся за ручки, и заменяет каждую букву другой буквой алфавита, которая находится от заменяемой буквы на расстоянии 13 символов. Таким образом «O» превращается в «B», а «v» становится «i», в итоге «Ovaltine» превращается в «Binygvar». Конечно, это не очень безопасно. Это наивный пример, который очень легко взломать, так как атакующий может выяснить, какая буква встречается чаще всего (обычно в оригинальном тексте это «e») и найти оставшиеся буквы подобным образом.

Сейчас вы можете представить, что должны существовать более хитрые способы «перемешивания» букв. Например, некая сложная схема, в которой «a» переходит в «p», но при повторном шифровании — в «f». Может даже иногда эта схема начинает шифровать «a» двумя буквами, например «jd» или в что-нибудь другое. Таким образом эта усложнённая схема может зашифровать «Ovaltine» в строку «FGyswDmweeRq» (заметьте, что она стала длиннее). В прошлом появлялись алгоритмы шифрования, которые работали подобным образом, но это совсем не так, как работает современное шифрование.

Вместо «перемешивания» букв современное шифрование берёт вашу секретную строку и хитро комбинирует её со случайными данными. Это похоже на rot13 только в двух моментах: шифрование и расшифровка по сути одна и та же операция, и всё происходит «на месте». Действительно, вы заметили что rot13 является одновременно алгоритмом шифрования и расшифровки? rot13(Ovaltine) -> Binygvar, rot13(Binygvar) -> Ovaltine. Я считаю, что это очень красивая симметрия в симметричном шифровании. Но всё же вернёмся к нашей теме. Хитрость заключается в том, что мы используем побитовую операцию XOR. В криптографии, формальной логике и коде программ XOR может обозначаться по разному, но я буду использовать такую нотацию, с которой вы вероятнее всего знакомы. Она выглядит вот так: ^.

XOR — это сокращение от «exclusive OR» (исключающее ИЛИ). Это оператор (или функция, если вам так удобнее думать), которая принимает два аргумента и возвращает результат. A ^ B = C. Этот оператор называется «побитовым», так как применяется к соответствующим друг другу битам. Если A и B байты, то мы можем считать, что A ^ B = C по сути 8 разных операций, которые происходят одновременно. ^ сравнивает первый бит A и первый бит B, а затем помещает результат в первый бит C. Он повторяет тоже самое ещё 7 раз для оставшихся бит. Правила простые: если бит из A «1» ИЛИ бит из B «1», тогда мы устанавливаем соответствующий бит C в «1», но только в том случае, когда «A» и «B» одновременно не являются «1». Это и есть исключающая часть. Вот олдскульная таблица истинности:

A|B|C 0|0|0 1|0|1 0|1|1 1|1|0

Самая клёвое в XOR то, что он похож на rot13. Мы можем использовать его для шифрования и расшифровки. Покажу это на простом примере. Давайте представим, что мы хотим зашифровать обычное число «3» и что наш ключ шифрования другое число «7». Таким образом 3 ^ 7 = 4. То есть результат шифрования — «4». Давайте теперь расшифруем число. Я просто сделаю тоже самое снова: 4 ^ 7 = 3. Возьмите любое число, которое вам нравится или любые данные, и это всегда будет работать — XOR всегда сможет расшифровать себя.

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

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

Вторая проблема. Вам нельзя переиспользовать секретные данные, так как паттерны проявятся снова. Таким образом вы как-то должны предоставлять большие куски секретных данных для всех, кто в них нуждается как в шифре Вернама (One-time pad). Это слишком трудно.

В современном шифровании мы «генерируем» нужные нам секретные данные из маленьких ключей. Эти ключи гораздо проще таскать с собой и защищать. Вот чем в действительности являются алгоритмы симметричного шифрования — схемами для детерминированной генерации случайных данных из ключа. Часть про «детерминированность» очень важна: два человека с одним и тем же ключом должны генерировать абсолютно один и тот же набор данных, иначе они не смогут понять друг друга. Вероятно, вы слышали про такие алгоритмы: AES, 3DES, DES, RC4, ChaCha20. Все они делают это.

Оказывается, что математическая задача генерации случайного потока данных (в котором нет паттернов в любом предсказуемом виде) с помощью ключа очень сложна. Из этого списка сегодня считаются безопасными только AES и ChaCha20. Другие алгоритмы были взломаны: люди смогли предсказывать их. Причём AES имеет немного запятнанную репутацию, потому что криптографы говорят следующее:

AES — основной и наиболее проанализированный алгоритм шифрования. Абсолютно золотой стандарт! :dark_sunglasses:

Но при этом добавляют:

Реализации AES в программном обеспечении (не в аппаратном) или небезопасны, или медленны, а иногда и не безопасны, и медленны. Он не был разработан с учётом того, что его взлом можно осуществить с помощью анализа кэша. :facepalm:

Не пугайтесь слишком сильно, если это вам непонятно. Главная мысль заключается в следующем: AES шикарен с точки зрения математики, но очень сложен в программной реализации. Но не надо беспокоиться — у нас почти всегда есть поддержка AES на уровне аппаратного обеспечения (список всех процессоров с аппаратной поддержкой AES можно посмотреть тут https://en.wikipedia.org/wiki/AES_instruction_set, — прим. переводчика).

Как бы то ни было, продолжаем… Как эти алгоритмы работают в действительности? Каким образом мы можем взять ключ и безопасно сгенерировать случайный поток данных? Я буду тут немного упрощать и начну с блоков.

Эти алгоритмы получают на вход три параметра и на выходе отдают зашифрованный текст. Входные параметры — ключ, шифруемый текст и… сюрприз — что-то странное под названием «вектор инициализации» (initialization vector, IV).

AES(key, IV, plaintext) -> encrypted_data.

Ключ и IV комбинируются между собой, чтобы создать набор «стартовых условий» для алгоритма; это подобно начальной перестановке или перемешиванию плиток в игре Скрэббл. Одинаковая комбинация ключа и IV всегда будет создавать одинаковый набор стартовых условий. Спрашиваете, почему нам вообще тогда понадобился IV? Нам нужен IV, чтобы мы могли шифровать множество сообщений, используя одинаковый ключ. Без IV, каждый генерируемый поток данных был бы одинаков, и это плохо. Это бы нарушило одно из правил, про которое мы говорили ранее: мы не можем переиспользовать одни и те же данные при шифровании. Таким образом нам нужен IV для перемешивания результата. Но в отличии от ключа IV может быть публичным.

Итак, когда вы шифруете сообщение и отправляете его кому-нибудь, вы также можете добавить: «Эй, а вот IV, который я использовал». При этом всё ещё критично, чтобы мы не переиспользовали комбинацию ключа и IV, потому что они дали бы нам повторяющиеся случайные данные. Для достижения этого условия есть два пути: 1) IV это некий счётчик, который мы увеличиваем с каждым новым сообщением. 2) IV генерируется случайно, при этом у него достаточно большое значение, поэтому нам не надо сильно беспокоиться о коллизиях. Как бы то ни было, я упомянул, что я буду говорить о блоках.

Ключи и IV «смешиваются» или комбинируются таким образом, чтобы создать набор стартовых условий… эти условия на самом деле являются начальным «блоком» случайных данных. Длина этого блока для AES128 128 бит, для AES256 — 256 бит, для ChaCha20 — 512 бит. И вот тут проявляется настоящая магия и индивидуальность конкретного алгоритма шифрования. В действительности их суть заключается в том, каким образом генерируется последовательность блоков и как каждый блок связан со своими соседями. Отношения между этими блоками остаются предсказуемы даже для тех, у кого нет ключа.

Я не буду глубоко погружаться в то, как именно работают эти алгоритмы, но если вы хотите узнать больше, я советую вам начать изучение этой темы с линейного конгруэнтного метода (linear congruential generators, LCG). LCG представляет собой функцию, которая создаёт «циклические» блоки данных в случайном и неповторяющемся виде. Затем взгляните на cеть Фе́йстеля (Feistel networks) — следующий уровень развития LCG. Затем разберитесь с S-Boxes, а потом посмотрите на то как Salsa20 создаёт чередование в алгоритме ChaCha20. Всё это гораздо доступнее, чем вы можете подумать!

Итак, мы теперь знаем, как случайный поток данных может быть скомбинирован с текстом, чтобы его зашифровать и расшифровать, и мы уже немного в теме того, как эти случайные потоки данных создаются. Разве это не всё, что нам надо? Для шифрования диска, это, действительно, почти всё. Мы можем шифровать каждый блок или сектор хранилища с использованием одного ключа и IV, который может быть получен из «позиции» на диске. Таким образом мы можем всегда расшифровать любой блок данных в любом месте на диске, до тех пор пока у нас есть ключ. Но тут есть одна проблемка… кто-нибудь может испортить наши зашифрованные данные. Если я изменю значение любого байта, даже если у меня не будет ключа, то в итоге мы не сможем расшифровать блок. И нет защиты против вмешательства такого вида. В случае отправки сообщений и данных по сети, это становится ещё критичнее. Мы не хотим, чтобы кто-нибудь мог испортить наши передаваемые данные. Таким образом нам надо добавить проверку целостности! Есть несколько схем, для того чтобы это сделать.

HMAC, GCM и Poly1305 — наиболее распространённые современные схемы для проверки целостности. Эти алгоритмы по большому счёту работают так: им на вход подаются данные и другой ключ (так называемый ключ целостности). После вычислений они выдают на выходе MAC (message authentication code) или тэг, который в свою очередь просто другой кусочек данных, выступающий подписью.

Таким образом для шифрования и защиты наша схема может выглядеть так:

AES(key, IV, "Ovaltine") -> encrypted_output HMAC(key, encrypted_output) -> MAC

и затем по проводам мы отправляем:

IV | encrypted_output | MAC

Для расшифровки мы проверяем MAC, генерируя его снова и сравнивая результат с полученным MAC, а затем расшифровываем данные. Есть внутренние различия в том, как HMAC, GCM и Poly1305 генерируют эти подписи, но вам не надо об этом беспокоиться. На сегодняшний день эту комбинацию операций обычно оборачивают в функцию с именем «AEAD» (Authenticated Encryption with Additional Data). Под капотом она делает всё то, про что я говорил ранее:

AEAD(key, IV, plaintext, additional_data) -> IV_encrypted_data_MAC

Штука под названием «additional_data» — всего лишь данные, с помощью которых вы можете убедиться в том, что эти данные есть у отправляющей стороны, хотя они и не были им отправлены. Это как мета-данные, с помощью которых устанавливаются права доступа. Часто это поле оставляют пустым.

Но тем не менее вы можете поиметь проблемы с AEAD, если будете использовать один и тот же IV. Это плохо! Есть попытки для улучшения этой ситуации: мой коллега, которого зовут Шай, работает над клёвой схемой SIV, добавляющей уровень защиты от этой проблемы. Но если вы используете уникальный IV, современное шифрование очень безопасно. То есть вы можете опубликовать зашифрованный текст в Нью-Йорк Таймс, и никто не сможет его взломать. Шифр будет оставаться неприступен, даже если «некоторая» часть текста будет известна. Например, в интернет-протоколах большое количество текста известно. HTTP-сервера всегда отвечают одинаково и первые байты всегда известны. Но этот факт совсем не имеет значения — он не поможет атакующему узнать ни кусочка оставшихся данных… Мы прошли долгий путь со времён Второй мировой войны.

Но есть атаки, которые работают! Если вы отправляете данные по сети и кто-то отслеживает время и размер сообщений, то зашифрованные данные могут быть взломаны с помощью анализа трафика.

Давайте сначала разберёмся с длиной. Очевидно, что длина — это не скрытая характеристика. И это нормально, если вы пытаетесь защитить свой пароль или номер кредитной карты где-то в середине сообщения. Не очень то и большая проблема. Но это означает, что потенциально любой человек может определить тип контента, который вы отправляете. Простой пример: если вы отправляете gif с помощью мессенджера и если размер этого изображения уникален, атакующий, перехватывающий ваши данные, может предположить какая именно гифка была только что отправлена. Есть более хитрые версии этой атаки для Google Maps, Netflix, Wikipedia и т.п. Для защиты от этой атаки можно «добивать» отправляемые сообщения дополнительными байтами, таким образом, чтобы все отправляемые сообщения были одинаковой длины несмотря ни на что. Шифрование, которое используется в военных сетях, всегда «добивает» трафик дополнительными данными, то есть для перехватчика он всегда выглядит одинаковым! Ещё одна проблема, связанная с длиной, заключается в том, что если вы используете сжатие и даёте атакующему возможность изменять любую часть контента на странице, которую видит пользователь, то это даёт возможность атакующему разузнать даже самые маленькие секреты. Поищите атаку под названием «CRIME». Она шикарна и страшна.

Я ещё говорил о том, что другая проблема — тайминг. Очевидно, что время отправки каждого сообщения открытая информация. Это может быть проблемой? Может! Например, если вы отправляете сообщение на каждое нажатие клавиши, тогда тривиально выяснить, что именно печатается с помощью анализа времени. Круто! Другой пример — VOIP. Если ваше приложение для звонков отправляет данные только тогда, когда люди говорят, но не во время молчания, этого достаточно для того, чтобы восстановить 70% английской речи. Всего лишь из тишины. Страшно клёво.

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

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

Перевод публикуется под лицензией CC BY-NC-SA 4.0

Введение в основы современных шифров с симметричным ключом

Нижеследующие книги и сайты дают более детальные сведения по обсуждаемым вопросам, которые рассмотрены в этой лекции. Ссылки, помещенные в скобки, приведены в списке в конце книги.

Книги

[Sti06] и [PHS03] содержат полные сведения о P -блоках и S -блоках. Поточные шифры тщательно рассмотрены в [Sch99 ] и [Sal03]. [Sti06], [PHS03] и [Vau06] — полный и интересный анализ дифференциального и линейного криптоанализа .

Сайты

Нижеследующие сайты дают более подробную информацию о темах, обсужденных в этой лекции.

  • http://en.wikipedia.org/wiki/FeisteL.cipher
  • http://www.quadibloc.com/crypto/co040906.htm
  • tigger.uic.edu/~jleon/mcs425-s05/handouts/feistal-diagram.pdf

7.4. Итоги

  • Традиционные шифры с симметричным ключом — шифры, ориентированные на символ. С появлением компьютера стали нужны шифры, ориентированные на биты.
  • Современный симметричный ключевой блочный шифр зашифровывает n -битный блок исходного текста или расшифровывает n -битовый блок зашифрованного текста. Алгоритмы шифрования или дешифрования используют k -битные ключи.
  • Современный блочный шифр может быть спроектирован так, чтобы действовать как шифр подстановки или шифр транспозиции. Однако чтобы быть стойким к атаке исчерпывающего поиска, современный блочный шифр должен быть спроектирован как шифр подстановки.
  • Современные блочные шифры — обычно ключевые шифры подстановки, в которых ключ практически позволяет отображение всех возможных входов во все возможные выходы.
  • Современный блочный шифр состоит из комбинации P -блоков, модулей подстановки, S -блоков и некоторых других модулей.
  • P -блок (блок перестановки) подобен традиционному шифру транспозиции для символов. Есть три типа P -блоков: прямые P -блоки, P -блоки расширения и P -блоки сжатия.
  • S -блок (блок подстановки) можно представить себе как маленький блок шифра подстановки. Однако в S -блоке может быть различное число входов и выходов.
  • Операция ИСКЛЮЧАЮЩЕЕ ИЛИ — важный компонент в большинстве блочных шифров : она представляет операции сложения или вычитания в поле GF (2) .
  • В современных блочных шифрах часто применяется операция циклического сдвига , в которой смещение может быть влево или вправо. Операция перестановки — специальный случай операции циклического сдвига , где k = n/2 . Две других операции, применяемые в некоторых блочных шифрах , — разбиение и комбинирование.
  • Шеннон ввел понятие составного шифра. Составной шифр — сложный шифр, объединяющий S -блоки, P -блоки и другие компоненты, чтобы достигнуть рассеивания и перемешивания. Рассеивание скрывает отношения между исходным текстом и зашифрованным текстом, перемешивание скрывает отношения между ключом шифра и зашифрованным текстом.
  • Современные блочные шифры — все составные шифры, но они разделены на два класса: шифры не-Файстля и шифры Файстеля. Шифры Файстеля используют и обратимые, и необратимые компоненты. Шифры не-Файстля используют только обратимые компоненты.
  • Некоторые новые атаки блочных шифров базируются на структуре современных шифров. Эти атаки используют дифференциальные и линейные методы криптоанализа
  • В современном шифре потока каждое слово r -бита в потоке исходного текста зашифровано, для чего используется r -битовое слово в потоке ключей, чтобы создать соответствующее r -битовое слово в потоке зашифрованного текста. Современные шифры потока могут быть разделены на две обширные категории: синхронные шифры потока и несинхронный шифр потока в синхронном шифре потока. В первом случае ключевой поток независим от потока зашифрованного текста или исходного текста. В несинхронном шифре потока ключевой поток зависит от исходного текста или потока зашифрованного текста.
  • Самый простой и самый безопасный тип синхронного шифра потока назван одноразовым блокнотом. Шифр одноразового блокнота использует ключевой поток ключей, который выбран беспорядочно для каждого шифрования. Алгоритмы шифрования и дешифрования используют операцию ИСКЛЮЧАЮЩЕЕ ИЛИ. Шифр одноразового блокнота не годится для практики, потому что ключ должен быть индивидуальным для каждого сеанса связи. Один из компромиссных вариантов одноразового блокнота — регистр сдвига с обратной связью ( FSR ), который может быть реализован в аппаратных средствах или программном обеспечении.

7.5. Вопросы и упражнения

Обзорные вопросы
  1. Укажите различия между современным и традиционным шифрами с симметричным ключом .
  2. Объясните, почему современные блочные шифры спроектированы как шифры подстановки вместо того, чтобы применять шифры транспозиции.
  3. Объясните, почему шифр подстановки можно представить себе как шифр транспозиции.
  4. Перечислите некоторые компоненты современного блочного шифра .
  5. Определите P -блок и перечислите его три варианта. Какой вариант является обратимым?
  6. Определите S -блок и покажите необходимое условие обратимости S -блока.
  7. Определите составной шифр и перечислите два класса составных шифров.
  8. Укажите различие между рассеиванием и перемешиванием
  9. Укажите различие между блочным шифром Файстеля и не-Файстеля.
  10. Укажите различие между дифференциальным и линейным криптоанализом . Какой из них использует атаку выборки исходного текста? Какой из них использует также атаку знания исходного текста?
  11. Укажите различие между синхронным и несинхронным шифрами потока.
  12. Определите регистр сдвига с обратной связью и перечислите два варианта, используемые в шифре потока.
Упражнения
  1. Блок транспозиции имеет 10 входов и 10 выходов. Каков порядок группы перестановки? Каков размер ключевой последовательности?
  2. Блок подстановки имеет 10 входов и 10 выходов. Каков порядок группы перестановки? Каков размер ключевой последовательности?
    • Покажите результат циркулярного левого сдвига на 3 бита на слове (1001101l) 2 .
    • Покажите результат циркулярного правого сдвига на 3 бита на слове, полученном в пункте a.
    • Сравните результат пункта b с первоначальным словом пункта a.
  • Измените слово (10011011) 2 с помощью перестановки.
  • Измените слово, полученное по пункту a, с помощью перестановки
  • Сравните результаты пункта a и пункта b, чтобы показать, что перестановка — самообратимая операция.
  • Найдите результат следующих операций:
    • (01001101) \oplus (01001101)
    • (01001101) \oplus (10110010)
    • (01001101) \oplus (00000000)
    • (01001101) \oplus (11111111)
    • Расшифруйте слово 010 , используя декодер 3 \times 8.
    • Зашифруйте слово 00100000 , используя кодирующее устройство 8 \times 3.
    8 1 2 3 4 5 6 7
    1 1 2 3 4 4

    Каков принцип работы у аппаратного блока перестановки

    ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ

    Eurasian Online Course Platform

    Некоторые курсы, возможно, открыты для гостей

    Уведомление о файлах cookie

    Сайт университета

    www.enu.kz

    Департамент цифрового развития и дистанционного обучения

    Почта: sectoronline@enu.kz

    Телефон: +7(7172) 70-95-00 (внутренний номер 31-348, 31-412)

    Лекция 5. Анализ программной и аппаратной платформы информационных систем

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

    Схема расшифрования

    Схема расшифрования указана на рисунке 5. Ключ ki, i=1,…,16, функция f, перестановка IP и IP − 1 такие же как и в процессе шифрования.

    Режим электронной кодовой книги ( ECB — Electronic Code Book): обычное использование DES как блочного шифра. Шифруемый текст разбивается на блоки, при этом, каждый блок шифруется отдельно, не взаимодействуя с другими блоками

    Режим сцепления блоков ( СВС — Cipher Block Chaining). Каждый очередной блок Ci i>=1 перед зашифровыванием складывается по модулю 2 со следующим блоком открытого текста Mi + 1. Вектор C0 — начальный вектор, он меняется ежедневно и хранится в секрете.

    Режим обратной связи по шифротексту ( англ. Cipher Feed Back) В режиме CFB вырабатывается блочная « гамма» Z0,Z1. Zi = DESk(Ci − 1) . Начальный вектор C0 является синхропосылкой и предназначен для того, чтобы разные наборы данных шифровались по-разному с использованием одного и того же секретного ключа. Синхропосылка посылается получателю в открытом виде вместе с зашифрованным файлом.

    Режим обратной связи по выходу ( OFB — Output Feed Back). В режиме OFB вырабатывается блочная «гамма» Z0,Z1,… , i>=1.

    Достоинства и недостатки режимов:

    В режимах ECB и OFB искажение при передаче одного 64-битового блока шифротекста Ci приводит к искажению после расшифрования только соответствующего открытого блока Mi, поэтому такие режимы используется для передачи по каналам связи с большим числом искажений.

    Рис.7 Режим электронной кодовой книги — ECB.JPG

    Рис.8 Режим сцепления блоков — СВС.PNG

    Рис.10 Режим обратной связи по выходу — OFB.PNG

    Лекция 6. Модели безопасности информационных систем

    Цель лекции: рассмотрение формальных моделей и политика безопасности информационных систем.

    Криптостойкость алгоритма DES

    Нелинейность преобразований в DES средствами только S-блоков и использование слабых S-блоков позволяет осуществлять контроль за шифрованной перепиской. Выбор S-блоков требует соблюдения нескольких условий:

    Каждая строка каждого блока должна быть перестановкой множества

    S-блоки не должны являться линейной или афинной функцией своих аргументов.

    Изменение одного бита на входе S-блока должно приводить к изменению, по крайней мере, двух битов на выходе.

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

    Слабые ключи

    Слабыми ключами называется ключи k такие, что DESk(DESk(x)) = x, где x — 64-битный блок.

    [0] 28 обозначает вектор, состоящий из 28 нулевых битов.

    Частично слабые ключи

    В алгоритме DES существуют слабые и частично слабые ключи. Частично-слабые ключи — это такие пары ключей (k1,k2), что DESk1(DESk2(x)) = x.

    Существуют 6 частично-слабых пар ключей, они приведены в таблице 9. Для каждого из 12 частично-слабых ключей существуют 2 32 «анти-неподвижные точки», то есть такие блоки х, что DESk(x) = х.

    Известные атаки на DES

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

    Дифференциальный криптоанализ — первую такую атаку на DES заявили Biham и Shamir. Эта атака требует шифрования 2 47 открытых текстов выбранных нападающим, и для её выполнения нужны примерно 2 47 шагов. Теоретически являясь точкой разрыва, эта атака непрактична из-за чрезмерных требований к подбору данных и сложности организации атаки по выбранному открытому тексту. Сами авторы этой атаки Biham и Shamir заявили, что считают DES защищенным для такой атаки.

    Линейный криптоанализ разработан Matsui. Этот метод позволяет восстановить ключ DES с помощью анализа 2 43 известных открытых текстов, при этом требуется примерно 2 43 шагов для выполнения. Первый экспериментальный криптоанализ DES, основанный на открытии Matsui, был успешно выполнен в течение 50 дней на автоматизированных рабочих местах 12 HP 9735.

    Для линейного и дифференциального криптоанализа требуется достаточно большой объём памяти для сохранения выбранных (известных) открытых текстов до начала атаки.

    Увеличение криптостойкости DES

    Чтобы увеличивать криптостойкость DES, появляются несколько вариантов: double DES ( 2DES), triple DES ( 3DES), DESX, G-DES.

    Методы 2DES и 3DES основаны на DES, но увеличивают длину ключей (2DES — 112 бит, 3DES — 168 бит), и поэтому увеличивается криптостойкость.

    Схема 3DES имеет вид DES(k3,DES(k2,DES(k1,M))), где k1,k2,k3 ключи для каждого шифра DES. Это вариант известен как в ЕЕЕ, так как три DES операции являются шифрованием. Существует 3 типа алгоритма 3DES:

    DES-EEE3: Шифруется три раза с 3 разными ключами.

    DES-EDE3: 3DES операции шифровка-расшифровка-шифровка с 3 разными ключами.

    DES-EEE2 и DES-EDE2: как и предыдущие, за исключением того, что первая и третья операции используют одинаковый ключ.

    Самый популярный тип при использовании 3DES — это DES-EDE3, для него алгоритм выглядит так: при выполнении алгоритма 3DES ключи могут выбрать так: k1,k2,k3 независимы.

    Метод DESX создан Рональдом Ривестом и формально продемонстрирована Killian и Rogaway. Этод метод — усиленный вариант DES, поддерживаемый инструментарием RSA Security. DESX отличается от DES тем, что каждый бит входного открытого текста DESX логически суммируется по модулю 2 с 64 битами дополнительного ключа, а затем шифруется по алгоритму DES. Каждый бит результата также логически суммируется по модулю 2 с другими 64 битами ключа. Главной причиной использования DESX является простой в вычислительном смысле способ значительного повысить стойкость DES к атакам полного перебора ключа.

    Метод G-DES разработан Schaumuller-Bichl для повышения производительности DES на основе увеличения размером шфрованного блока. Заявлялось, что G-DES защищен так же как и DES. Однако Biham и Shamir показали, что G-DES, с рекомендуемыми параметрами, легко взламывается, а при любых изменениях параметров шифр становится ещё менее защищен, чем DES.

    Ещё другой вариант: DES использует независимые суб-ключи. Различно от алгоритма DES, в котором на основе 56-битного секретного ключа пользователя алгоритм DES получает шестнадцать 48-битных суб-ключей для использования в каждом из 16 раундов, в этом варианте использует 768-битного ключа (разделенного на 16 48-битных подключей) вместо 16 зависимых 48-битных ключей, создаваемых по ключевому графику алгоритма DES. Хотя очевидно, что использование независимых суб-ключей значительно усложнит полный поиск ключа, но стойкость к атаке дифференциальным или линейным криптоанализом не намного превысит стойкость обычного DES. По оценке Biham, для дифференциального криптоанализа DES с независимыми подключами требуется 2 61 выбранных открытых текстов, в то время как для линейного криптоанализа требуется 2 60 известных открытых текстов.

    DES был национальным стандартом США в 1977— 1980 гг., но в настоящее время DES используется (с ключом длины 56 бит) только для устаревших систем, чаще всего используют его более криптоустойчивый вид ( 3DES, 2DES). 3DES является простой эффективной заменой DES, и сейчас он рассмотрен как стандарт. В ближайшее время DES и Triple DES будут заменены алгоритмом AES (Advanced Encryption Standard — Расширенный Стандарт Шифрования). Алгоритм DES широко применяется для защиты финансовой информации: так, модуль THALES (Racal) HSM RG7000 полностью поддерживает операции TripleDES для эмиссии и обработки кредитных карт VISA, EuroPay и проч. Канальные шифраторы THALES (Racal) DataDryptor 2000 используют TripleDES для прозрачного шифрования потоков информации. Также алгогритм DES используется во многих других устройствах и решениях THALES-eSECURITY.

    Лекция 7. Критерии и классы защищенности средств вычислительной техники и автоматизированных информационных систем

    Цель лекции: изучение стандартов по оценке защищенных систем и алгоритма СAST.

    Блочный шифр — разновидность симметричного шифра. Особенностью блочного шифра является обработка блока нескольких байт за одну итерацию (как правило 8 или 16). Блочные криптосистемы разбивают текст сообщения на отдельные блоки и затем осуществляют преобразование этих блоков с использованием ключа.

    Преобразование должно использовать следующие принципы:

    1) Рассеивание (diffusion), то есть изменение любого знака открытого текста или ключа влияет на большое число знаков шифротекста, что скрывает статистические свойства открытого текста.

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

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

    Основная идея

    Блочный шифр состоит из двух взаимосвязанных алгоритмов: алгоритм шифрования E и алгоритм расшифрования E−1. Входными данными служат блок размером n бит и k-битный ключ. На выходе получается n-битный зашифрованный блок. Для любого фиксированного ключа функция расшифрования является обратной к функции шифрования для любого блока M и ключа K.

    Для любого ключа K, EK является биективной функцией (перестановкой) на множестве n-битных блоков.

    Размер блока n — это фиксированный параметр блочного шифра, обычно равный 64 или 128 битам, хотя некоторые шифры допускают несколько различных значений. Длина 64 бита была приемлема до середины 90-х годов, затем использовалась длина 128 бит, что примерно соответствует размеру машинного слова и позволяет эффективную реализацию на большинстве распространённых вычислительных платформах. Различные схемы шифрования позволяют зашифровывать открытый текст произвольной длины. Каждая имеет определенные характеристики: вероятность ошибки, простота доступа, уязвимость к атакам. Типичными размерами ключа являются 40, 56, 64, 80, 128, 192 и 256 бит. В 2006 г. 80-битный ключ способен был предотвратить атаку грубой силой.

    Алгоритм СAST-128

    Алгоритм CAST-128 разработан канадской компанией Entrust Technologies. Этот алгоритм является предшественником хорошо известного алгоритма CAST-256.

    CAST-128 шифрует информацию блоками по 64 бита, используя несколько фиксированных размеров ключа: от 40 до 128 битов включительно с шагом 8 битов. При этом автор алгоритма считает достаточной в реализациях алгоритма поддержку 40-, 64-, 80- и 128-битных ключей.

    Данный алгоритм является сетью Фейстеля, в которой выполняется 12 или 16 раундов преобразований в зависимости от размера ключа:

    — 12 раундов при ключах размером до 80 битов включительно;

    — 16 раундов, если размер ключа превышает 80 битов.

    Алгоритм CAST-256

    Алгоритм шифрования CAST-256 разработан специалистами канадской компании Entrust Technologies. Основой алгоритма являются преобразова­ния широко используемого ранее и хорошо зарекомендовавшего себя алго­ритма CAST-128, также разработанного компанией Entrust Technologies.

    Основные характеристики и структура алгоритма

    Алгоритм CAST-256 шифрует информацию 128-битными блоками и исполь­зует несколько фиксированных размеров ключа шифрования: 128, 160, 192, 224 или 256 битов.

    128-битный блок данных разбивается на 4 субблока по 32 бита, каждый из которых в каждом раунде алгоритма подвергается определенному преобразо­ванию и накладывается на один из соседних субблоков. Разработчики алго­ритма классифицировали его как подстановочно-перестановочную сеть. Однако ряд экспертов конкурса AES посчитали алгоритм CAST-256 сетью Фейстеля, в каждом раунде которой обрабатывается только один субблок, а количество «настоящих» раундов в 4 раза больше, чем заявлено в спецификации алгоритма.

    Преобразования t\ и t2 показаны на рисунках 11 и 12 соответственно. Функция 11 описана следующим образом:

    где i — номер текущего раунда. Преобразование t2 состоит из следующих операций:

    Сложение и вычитание выполняются с 32-битными операндами по модулю 2 .

    Функции 52, 53 и S4 являются табличными подстановками, выполняю­щими замену входного 8-битного значения на 32-битное. Таблицы являются различными, каждая из них содержит 256 32-битных фиксированных значений

    Расшифровывание выполняется аналогично зашифровыванию, но подключи раундов используются в обратной последовательности, т. е. вместо подключа Кхп1 используется подключ(считая, что раунды нумеруются от 0 до И).

    Процедура расширения ключа

    Задача функции расширения ключа — выработать для каждого раунда 4 32- битных маскирующих подключа Kmni и 4 5-битных подключа сдвига Krni. То есть сформировать 1776 байтов ключевой информации.

    Процедура расширения ключа является более сложной, чем собственно шифрование данных. Сначала 256-битный ключ шифрования делится на 8 фрагментов по 32 бита. Если используется ключ меньшего размера, то «лишние» фрагменты ключа считаются нулевыми.

    После этого выполняется инициализация временных переменных, которая описана далее.

    Затем выполняется 12 раундов преобразований, в каждом из которых произ­водятся следующие действия:

    1) Выполняется функция W2j , где j— номер раунда процедуры расширения ключа.

    2) Выполняется функция W2j+\ •.

    По 5 младших битов четырех фрагментов результата операции (Л’, С’, £», G) становятся подключами Kr0j, KrXj, Kr2j и АУ3у соответственно.

    Оставшиеся фрагменты (В’, D’, F\ Н>) становятся подключами Km3j, Km2j, KmXj и Km0j соответственно.

    Как видно, в каждом раунде функции расширения ключа используются по 8 дополнительных переменных Ттпк и Тгпк, которые вычисляются сле­дующим образом:

    1) Инициализируются временные переменные (для Cm и Mm указаны шестнадцатеричные значения):

    2) В цикле от 0 до 23 выполняется цикл от 0 до 8, в котором производятся следующие вычисления:

    где n — счетчик внутреннего цикла;

    k — счетчик внешнего цикла.

    Достоинства и недостатки алгоритма

    Несомненным достоинством алгоритма CAST-256 является отсутствие дока­занных уязвимостей. Кроме того, плюсом является возможность выполнения расширения ключа «на лету», т. е. в процессе операции зашифровывания (но не расшифровывания). Однако в алгоритме было найдено несколько недостатков, благодаря которым он не вышел во второй раунд конкурса:

    — алгоритм уступает в скорости ряду алгоритмов — участников конкурса, в том числе всем финалистам конкурса;

    — достаточно высокие требования к оперативной и энергонезависимой памяти затрудняют использование данного алгоритма в смарт-картах;

    — некоторые эксперты сочли алгоритм CAST-256 подверженным атакам по потребляемой мощности.

    Лекция 8. Примеры практической реализации систем защиты и безопасности

    Цель лекции: построение парольных систем; изучение особенностей применения криптографических методов.

    Построить архитектуру систем защиты информации.

    Цель работы

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

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

    — какие цели защиты информации;

    — кто может создавать потенциальную угрозу;

    Работы по защите информации на объекте будут выполняться по алгоритму:

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

    Обычно выделяют следующие направления обеспечения безопасности информации:

    1) Законодательная защита информации.

    2) Защита информации от уничтожения в результате реализации угроз природного и техногенного характера (пожар, землетрясение и т. д.).

    3) Защита от несанкционированного копирования, в том числе защита интеллектуальной собственности.

    4) Защита от вредоносных программ (вирусы, программные закладки).

    5) Защита информации от утечки в каналах связи (несанкционированное подключение к каналам связи и оборудование)

    6) Защита информации от утечки по техническим каналам.

    7) Обеспечение юридической значимости электронных документов.

    Средства защиты информации

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

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

    — законодательные (международные конвенции, конституционные нормы, федеральные законы и акты);

    — физические (средства физического ограничения доступа к информации: ограждения, сейфы и т. д.);

    Лекция 9. Способы реализации криптографической подсистемы. Особенности реализации систем с симметричными и асимметричными ключами

    Цель лекции: рассмотрение и изучение принципа работы Скремблера.

    Технические (аппаратные) средства

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

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

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

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

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

    Защита телефона от прослушиваний

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

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

    Принцип работы заключается в следующем. Генерируется псевдослучайная последовательность (одинаковая для скремблера и дескремблера) бит. Вновь поступающий в скремблер бит суммируется по модулю два с битом псевдослучайной последовательности. После чего бит отправляется на выход, скремблер берет следующий входной бит псевдослучайной и входной последовательности и повторяет операцию. Таким образом, в простейшем случае скремблер может быть собран на двух тактируемых регистрах сдвига с обратными связи и 2-х входового элемента «исключающее или». Обратное преобразование осуществляется в обратном порядке. Псевдослучайная последователньость используется циклически. Скремблирование применяется во многих современных системах цифровой связи (SDH).

    Рисунок 12 — Сравнительные диаграммы голоса в обычном режиме и в режиме скремблирования

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

    Скремблер «GUARD Bluetooth» — современное устройство, предназначенное для обеспечения секретности и защиты конфиденциальной информации при пользовании сетями сотовой связи. Эффективно защищает разговор по мобильному телефону от «прослушки» и перехвата важного диалога.

    Защита радиотелефонов

    Основным отличием офисных радиотелефонов по сравнению с проводными является использование радиоканала для связи между мобильной трубкой и базой, подключенной непосредственно к телефонной линии. Естественно, самым уязвимым местом данных аппаратов является радиоканал. Офисные радиотелефоны работают на частотах 30-40МГц , 46-49МГц , 250-380МГц и 814-904МГц, в зависимости от модели аппарата. Каждый радиотелефон имеет в своем диапазоне несколько (до 40) частот, на которых мобильная трубка может устанавливать связь с базой. В наиболее простых моделях не применяется никакого кодирования радиоканала, поэтому с помощью электронного частотомера и сканера не сложно определить значение несущей частоты и прослушать телефонный разговор.

    Лекция 10. Основные характеристики защишенной информационной системы

    Цель лекции: изучение и рассмотрение концепции защищенного ядра и методов верификации; применение иерархического метода для построения защищенной операционной системы.

    Стандарт DECT

    Digital Enhanced Cordless Telecommunications (Digital Enhanced Cordless Telephony) — цифровая усовершенствованная система беспроводной телефонии — DECT (в народе произносится ДЭКТ) — разработан Европейским институтом телекоммуникационных стандартов (ETSI) в 1992 году. Система связи на основе стандарта DECT обеспечивает покрытие достаточно большой площади, позволяет осуществлять роуминг и передачу вызовов при переходе пользователя из зоны действия одной базовой станции в зону действия другой, предоставляет другие преимущества. Основное преимущество систем на основе стандарта DECT — качество на уровне проводной линии связи, а также высокий уровень безопасности и защиты от прослушивания. Минусы DECT — недостаточная защищенность стандарта, позволяющая дистанционное прослушивание переговоров, а наличие возможности шифрования не спасает ситуацию, поскольку злоумышленник может его отключить, не взламывая сам шифр.

    Проблемы безопасности мобильных устройств и их решения

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

    Политики использования мобильных устройств

    Защита паролем: мобильные устройства, на которых хранится информация компании или которые используются для подключения к сети компании, должны быть защищены паролем с помощью надежных PIN кодов/идентификационных фраз. Это не позволит вору загрузить устройство и получить доступ к информации, хранящейся на нем.

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

    Шифрование файлов: файлы данных должны быть зашифрованы для более надежной защиты содержимого. PGP Mobile и Aiko SecuBox являются примерами программ шифрования данных сторонних производителей для мобильных устройств.

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

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

    Приемлемое использование: разрешите ли вы мобильным устройствам подключаться к сети через VPN? Разрешите ли вы пользователям подключать свои мобильные устройства к компьютерам компании через службу терминала /удаленный рабочий стол? Разрешено ли пользователям подключать свои мобильные устройства к рабочим ПК с помощью USB кабеля или Bluetooth для синхронизации файлов? Все эти моменты должны регламентироваться вашими политиками использования мобильных устройств.

    Антивирус на смартфоны

    Антивирус Касперского Mobile 6.0 обеспечивает защиту смартфонов на базе операционной системы Symbian от вредоносных программ и нежелательных сообщений, выполняя следующие функции:

    — постоянную защиту файловой системы смартфона в режиме реального времени — перехват и проверка;

    — всех входящих объектов, передающихся с помощью беспроводных соединений (инфракрасный порт, Bluetooth), сообщений EMS и MMS, при синхронизации с персональным компьютером и загрузке файлов через браузер;

    — файлов, открываемых на смартфоне;

    — программ, устанавливаемых из интерфейса смартфона;

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

    — надежное изолирование зараженных объектов в карантинном хранилище;

    — обновление антивирусных баз, используемых при поиске вредоносных программ и удалении опасных объектов;

    — блокирование нежелательных SMS и MMS сообщений.

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

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

    Лекция 11. Методология корректности информационной защиты

    Цель лекции: исследование корректности систем защиты; изучение методологии обследования и проектирования защитных механизмов; рассмотрение модели политики контроля целостности.

    Алгоритм RC4. Область применения. История происхождения алгоритма. Авторы алгоритма

    Потоковый шифр RC4 был создан Роном Ривестом из RSA Security в 1987 году. Хотя официально сокращение обозначает Rivest Cipher 4, его часто считают сокращением от Ron’s Code.

    Шифр являлся коммерческой тайной, но в сентябре 1994 года его описание было анонимно отправлено в рассылку Cypherpunks. Вскоре описание RC4 было опубликовано в ньюс-группе sci.crypt. Именно оттуда исходный код попал на множество сайтов в сети Интернет. Опубликованный шифр давал те же шифротексты на выходе, какие давал подлинный RC4. По-видимому, данный текст был получен в результате анализа исполняемого кода. Опубликованный шифр совместим с имеющимися продуктами, использующими RC4, а некоторые участники телеконференции, имевшие, по их словам, доступ к исходному коду RC4, подтвердили идентичность алгоритмов при различиях в обозначениях и структуре программы.

    Поскольку данный алгоритм известен, он более не является коммерческой тайной. Однако название «RC4» является торговой маркой компании RSA. Поэтому иногда шифр называют «ARCFOUR» или «ARC4» (имея ввиду Alleged RC4 — предполагаемый RC4, поскольку RSA официально не опубликовала алгоритм), чтобы избежать возможных претензий со стороны владельца торговой марки.

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

    В США длина ключа для использования внутри страны рекомендуется равной 128 битов, но соглашение, заключённое между Software Publishers Association (SPA) и правительством США даёт RC4 специальный статус, который означает, что разрешено экспортировать шифры длиной ключа до 40 бит. 56-битные ключи разрешено использовать заграничным отделениям американских компаний.

    Математический алгоритм – подробное описание

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

    RC4 — фактически класс алгоритмов, определяемых размером его блока. Этот параметр n является размером слова для алгоритма. Обычно, n = 8, но в целях анализа можно уменьшить его. Однако для повышения безопасности необходимо увеличить эту величину. Внутреннее состояние RC4 представляется в виде массива слов размером 2n и двух счетчиков, каждый размером в одно слово. Массив известен как S-бокс, и далее будет обозначаться как S. Он всегда содержит перестановку 2n возможных значений слова. Два счетчика обозначены через i и j.

    Алгоритм инициализации RC4 приведен ниже. Этот алгоритм также называется алгоритмом ключевого расписания. Этот алгоритм использует ключ, сохраненный в Key, и имеющий длину L байт. Инициализация начинается с заполнения массива S, далее этот массив перемешивается путем перестановок определяемых ключом. Так как только одно действие выполняется над S, то должно выполняться утверждение, что S всегда содержит все значения кодового слова.

    Начальное заполнение массива: for i = 0 to 2 n − 1

    for i = 0 to 2 n − 1;

    j = ( j + S[ i ] + Key[ i mod L ] ) mod 2 n ;

    Перестановка( S[ i ], S[ j ] ).

    i = ( i + 1 ) mod 2 n ;

    j = ( j + S[ i ] ) mod 2 n .

    Перестановка( S[ i ], S[ j ] ).

    Результат: K = S[ ( S[ i ] + S[ j ] ) mod 2 n ].

    Сравнение с другими алгоритмами-аналогами: RC2 и RC5.

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

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

    Блочный шифр — разновидность симметричного шифра. Особенностью блочного шифра является обработка блока нескольких байт за одну итерацию (как правило 8 или 16). Блочные криптосистемы разбивают текст сообщения на отдельные блоки и затем осуществляют преобразование этих блоков с использованием ключа.

    Общим же, у все трех версий алгоритма, остались следующие детали:

    1) размер слова w (в битах); RC5 шифрует блоками по два слова; допусти­мыми значениями w являются 16, 32 или 64, причем 32 является рекомендуемым;

    2) количество раундов алгоритма R — в качестве значения допустимо любое целое число от 0 до 255 включительно;

    3) размер секретного ключа в байтах B — любое целое значение от 0 до 255 включительно.

    Лекция 12. Мера защиты информации

    Цель лекции: определение необходимой меры защиты информационных ресурсов. Рассмотрение методов оценки меры защиты информации и их основные показатели; характеристики мер защиты.

    Схема Эль-Гамаля (Elgamal) — криптосистема с открытым ключом,основанная на трудности вычисления дискретных логарифмов в конечном поле. Криптосистема включает в себя алгоритм шифрования и алгоритм цифровой подписи. Схема Эль-Гамаля лежит в основе стандартов электронной цифровой подписи в США и России.

    Схема была предложена Тахером Эль-Гамалем в 1984 году. Эль-Гамаль разработал один из вариантов алгоритма Диффи-Хеллмана. Он усовершенствовал систему Диффи-Хеллмана и получил два алгоритма, которые использовались для шифрования и для обеспечения аутентификации. В отличие от RSA, алгоритм Эль-Гамаля не был запатентован и поэтому стал более дешевой альтернативой, так как не требовалась оплата взносов за лицензию. Считается, что алгоритм попадает под действие патента Диффи-Хеллмана.

    Генерация ключей

    Генерируется случайное простое число длины битов.

    Выбирается произвольное целое число, являющееся первообразным корнем по модулю.

    Выбирается любое случайное целое число.

    Открытым ключом является тройка, закрытым ключом — число.

    Работа в режиме шифрования

    Сообщение шифруется следующим образом:

    1) Выбирается сессионный ключ — случайное целое число.

    2) Вычисляются числа.

    3) Пара чисел является шифротекстом.

    Нетрудно видеть, что длина шифротекста в схеме Эль-Гамаля длиннее исходного сообщения M вдвое.

    Работа в режиме подписи

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

    Рисунок 14 — Криптосистема Эль-Гамаля, использующая эллиптическую функцию

    Подпись сообщений

    Общая идея метода

    Основная идея ElGamal состоит в том, что не существует эффективных методов решения сравнения ax == b (mod p).

    Обозначения. Через Z(n) обозначим вычеты по модулю n, через Z*(n) — мультипликативную группу обратимых элементов в Z(n). Через ab (mod n) будем обозначать возведение a в степень b в кольце Z(n). Hапомню, что если p — простое число, то группа Z*(p) изоморфна Z(p-1).

    Пусть числа p и 2p+1 — простые, p>2,v и w — образующие мультипликативных групп Z*(p) и Z*(2p+1) соответственно.

    Лемма. Если v — образующая Z*(p), то v0 = (p + (p+1)v) (mod 2p) — образующая мультипликативной группы Z*(2p). (Эта группа, очевидно, изоморфна Z*(p)).

    Числа p, 2p+1, v, v0, w фиксируются при выборе алгоритма.

    СЕКРЕТHЫЙ пароль — число x из Z*(p).

    ОТКРЫТЫЙ пароль (y) вычисляем в два шага.

    Сначала находим z=v0x (mod 2p), z принадлежит группе Z*(2p).

    Hаконец вычисляем сам открытый пароль y = wz (mod 2p+1), y принадлежит группе Z*(2p+1).

    Теорема. При любом выборе секретного пароля (x) открытый пароль (y) будет являться образующей мультипликативной группы Z*(2p+1). Другими словами, сравнение ya = b (mod 2p+1) разрешимо относительно a при любом b.

    Доказательство. Число w^z будет образующей группы Z*(2p+1) числа z и 2p взаимно просты. Hо z = v0x (mod 2p), где v0 — образующая группы Z*(2p).

    Лекция 13. Оптимальное управление процессами защиты

    Цель лекции: изучение и рассмотрение модели и методов оптимального управления процессами обеспечения безопасности при проектировании аппаратных средств защиты, программных систем защиты и организационные меры защиты.

    Электронная подпись

    Пусть s — число (информация), к которому надо найти электронную подпись, s принадлежит группе Z(2p). Для этого выбираем случайное число r из группы Z*(2p), изоморфной Z*(p), и в качестве подписи выдаем пару чисел (a,b), где

    a = a(r,s) = z-1*r*s = v0(-x)*r*s (mod 2p); b = b(r,s) = wr (mod 2p+1).

    1/z = z-1 = v0-x = v0(p-1-x).

    Таким образом, для составления подписи требуется знать секретный пароль (x), точнее говоря z=v0x.

    Для проверки подлинности подписи можно воспользоваться равенством

    ya = (wz)^(z-1*r*s) = w^(z*z-1*r*s) = wrs = (wr)^s = bs (mod 2p+1).

    Следовательно, для проверки подлинности подписи достаточно знать только открытый пароль (y).

    При вычислении подписи число s(файл) находится с помощью однонаправленной хэш-функции (аналог MD4, но другое).

    Таблица 12 — HAVAL

    128, 160, 192, 224, 256 бит

    HAVAL — однонаправленная хеш-функция, разработанная YuliangZheng ( англ.), JosefPieprzyk ( англ.) и JenniferSeberry ( англ.) в 1992 году. Для произвольного входного сообщения функция генерирует хеш-значение, называемое дайджестом сообщения, которое может иметь длину 128, 160, 192, 224 или 256 бит. Количество итераций — переменное, от 3 до 5. Количество раундов на каждой итерации — 32. Является модификацией MD5.

    HAVAL-хеши обычно представляются в виде последовательности, состоящей из 32, 40, 48, 56 или 64 шестнадцатеричных чисел. Несколько примеров хеша (размер — 256 бит, число итераций — 5):

    HAVAL(«The quick brown fox jumps over the lazy dog») = b89c551cdfe2e06dbd4cea2be1bc7d557416c58ebb4d07cbc94e49f710c55be4.

    Даже небольшое изменение входного сообщения (в нашем случае, на один символ: символ «d» заменяется на символ «c») приводит к полному изменению хеша.

    HAVAL(«The quick brown fox jumps over the lazy cog») = 60983bb8c8f49ad3bea29899b78cd741f4c96e911bbc272e5550a4f195a4077e.

    Пример HAVAL-хеша для «нулевой» строки:

    Лекция 14. Оценка системы защиты

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

    Криптоанализ

    Коллизии HAVAL

    Коллизия хеш-функции — это получение одинакового значения функции для разных сообщений. В 2003 годуBartVanRompay, AlexBiryukov ( англ.) и др. обнаружили коллизию для 3-итерационного HAVAL. Для нахождения этой коллизии потребовалось приблизительно 229 выполнений функции сжатия H. В 2004 году китайские исследователи WangXiaoyun ( англ.), FengDengguo, LaiXuejia ( англ.) и YuHongbo объявили об обнаруженной ими уязвимости в 3-итерационном HAVAL-128, позволяющей за 27 HAVAL-вычислений находить коллизии. В 2006 году группа китайских учёных во главе с WangXiaoyun и YuHongbo провели две атаки на 4-итерационный HAVAL, потребовавшие 243 и 236 операций хеширования соответственно. Они же предложили первую теоретическую атаку на 5-итерационный HAVAL с числом операций хеширования, приблизительно равным 2123.

    Сравнение HAVAL и MD5

    В отличие от хеш-функции MD5, у которой дайджест и число итераций имеют фиксированные размеры, HAVAL предоставляет 15 различных вариантов алгоритма за счёт комбинирования длины дайджеста и числа итераций. Это обеспечивает большую гибкость и, следовательно, делает хеш-функцию более подходящей для приложений, в которых требуется различная длина хеша сообщения и различный уровень безопасности.
    Эксперименты показали, что HAVAL на 60 % быстрее MD5 при 3-х итерациях, на 15 % — при 4-х итерациях и столь же быстр при пяти итерациях.

    Датчики псевдослучайных чисел

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

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

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

    Случайных чисел датчик — устройство для выработки случайных чисел, равномерно распределённых в заданном диапазоне чисел. Применяется для имитации реальных условий функционирования систем автоматического управления, для решения задач методом статистических испытаний (Монте-Карло методом), для моделирования случайных изменений параметров производства в автоматизированных системах управления и т. д. Кроме непосредственного использования в статистических моделях, равномерно распределённые случайные числа, вырабатываемые С. ч. д., являются основой для формирования числовых последовательностей с заданным законом распределения.

    Основной блок С. ч. д. — генератор случайных равновероятных цифр (ГРЦ), наиболее часто двоичных, из которых затем формируются необходимые многоразрядные сочетания (числа). В ГРЦ, в качестве первичного источника случайных сигналов, используют собственные шумы электровакуумных, газоразрядных, полупроводниковых приборов и специальных резисторов, a-частицы, b-частицы и g-лучи радиоактивных излучений, флуктуации фазы и амплитуды гармонических колебаний и т. п. В состав ГРЦ входят соответствующие приборы, формирующие исходные сигналы, и называются источниками первичных случайных процессов, а также усилитель-формирователь, преобразующий исходный случайный процесс к виду, удобному для цифровой интерпретации, цифровой преобразователь сформированных случайных сигналов в дискретные равновероятные состояния какого-либо электронного устройства (например, триггера), каждому из которых ставится в соответствие определённая цифра, стабилизатор вероятности, обеспечивающий устойчивость вероятностных характеристик генерируемой последовательности цифр. Один из основных способов стабилизации предполагает совмещение прямых и инверсных представлений генерируемых цифр. При этом стабилизированная последовательность S1, S2. Si. формируется из основной x1, x2. xi. и управляющей y1, y2. yi. по правилу.

    В зависимости от способа формирования многоразрядных случайных чисел и элементарных последовательностей равновероятных цифр С. ч. д. делят на последовательные и параллельные (возможно также и сочетание этих способов). В последовательном С. ч. д. имеется всего один ГРЦ. Формирование n-разрядного случайного числа в этом случае достигается поочерёдным заполнением всех разрядов соответствующего регистра. В параллельных С. ч. д. для каждого разряда формируемого числа имеется свой ГРЦ. Все цифры при этом записываются на регистр одновременно по всем разрядам. Такой способ формирования обеспечивает максимальная скорость выработки случайных чисел, однако требует более сложного оборудования (чем в последовательных С. ч. д.); при построении С. ч. д. на интегральных схемах этот недостаток может оказаться несущественным.

    Лекция 15. Безопасность компьютерных систем

    Цель лекции: инсталляция тестов в готовые программные продукты. Оценка надежности защитных механизмов. Рассмотрение принципов оценки надежности защиты.

    Стандартные блочные шифрования

    Стандарт шифрования данных (DES — Data Encryption Standard) принят в США в 1977 году в качестве федерального. В стандарт входит описание блочного шифра типа шифра Файстеля, а также различных режимов его работы, как составной части нескольких процедур криптографического преобразования данных. Обычно под аббревиатурой DES понимается именно блочный шифр, который в стандарте соответствует процедуре шифрования в режиме электронной кодовой книги (ECB —Е1есtrоnic Соdеbооk Моdе). Название вызвано тем, что любой блочный шифр является простым подстановочным шифром и в этом отношении подобен кодовой книге.

    Принцип работы блочного шифра

    Рассмотрим принцип работы блочного шифра. Входом в блочный шифр и результатом его работы является блок длины n — последовательность, состоящая из n бит. Число n постоянно. При необходимости шифрования сообщения длиной, большей n, оно разбивается на блоки, каждый из которых шифруется отдельно. Различные режимы работы связаны с дополнительными усложнениями блочного шифра при переходах от блока к блоку. В стандарте DES длина блока n = 64.

    В режиме ECB шифрование блока открытого текста В производится за 16 однотипных итераций, именуемых циклами. Схема преобразования приведена на рисунке 15. Блок рассматривается как конкатенация (сцепление) двух подблоков равной длины: B = (L , R). На каждом цикле применяется свой ключ (Xi), обычно вырабатываемый из некоторого основного ключа (X). Ключи, используемые в циклах, называются подключами.

    Основным элементом шифра является несекретная цикловая функция вида Y = f(R,X). Входом в цикл является выход из предыдущего цикла. Если упомянутый вход имеет вид (L, R), то выход имеет вид (R, L ⊕ f(R, X)), где ⊕ — поразрядное сложение по модулю 2. Например, для выхода цикла с номером i это означает: Ri = Li-1 ⊕ f(Ri-1, Xi), Li = Ri-1 (i = 1,…,16).

    В режиме ЕСВ алгоритм DES зашифровывает 64-битовый блок за 16 циклов. Биты входного блока перед первым циклом переставляются в ходе так называемой начальной перестановки (IP — initial permutation). После выхода из последнего цикла L и R переставляются местами, после чего соединяются в блок. Биты полученного блока снова переставляются в соответствии с перестановкой IP-1, обратной начальной. Результат принимается в качестве блока шифртекста.

    1. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. Под ред. В.Ф. Шаньгина. — 2-е изд., перераб. и доп. — М.: Радио и связь, 2001. — 376 с.: ил.

    2. Защита программного обеспечения: Пер. с англ./Д.Гроувер, Р.Сатер, Дж.Фипс и др./Под редакцией Д.Гроувера.-М.:Мир,1992.-286 с ил.

    3. Защита информации в вычислительных системах./Сборник.- М.: Знание,1982.

    4. Безруков Н.Н. Компьютерная вирусология/Справочное руководство/.- Киев: УРЕ, 1991.

    Лекция 1. Введение. Роль и место системы обеспечения информационной безопасности в системе национальной безопасности РК

    Лекция 2. Защита информации. Информационные угрозы. Противодействие информационным угрозам

  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *