- •Информационная безопасность (Романова)
- •Вопрос 1 Основные принципы информационной безопасности.
- •Вопрос 2 Потенциальные угрозы информационной безопасности.
- •Вопрос 3 Модели безопасности многопользовательских компьютерных систем.
- •1) Списки полномочий субъектов (Profile)
- •2) Списки контроля доступа (Access Control List)
- •2. Полномочная/мандатная модель уровней безопасности
- •Модель безопасности БеллЛа Падула (1975)
- •Вопрос 4 Парольная защита пользователей компьютерных систем. Требования к паролям.
- •Протоколы аутентификации Windows
- •Вопрос 5 Криптография. Основные понятия.
- •Вопрос 6 Криптографические методы закрытия данных. Симметричные криптосистемы.
- •Шифратор
- •Дешифратор
- •Вопрос 7 Криптографические методы закрытия данных. Несимметричные криптосистемы.
- •Алгоритм rsa
- •Конкурсы по взлому rsa
- •Вопрос 8Однонаправленные хэш-функции. Криптографические хэш-функции
- •Вопрос 9 Стеганографические методы закрытия данных.
- •Обнаружение стеганограмм
- •Повышение надежности сокрытия данных
- •Вопрос 10 Биометрические системы защиты информационных систем и ресурсов.
- •Сетчатка глаза
- •Оценка качества Биометрических систем
- •Реальное качество биометрических систем
Вопрос 6 Криптографические методы закрытия данных. Симметричные криптосистемы.
В таких системах ключи шифрования/дешифрования либо одинаковы, либо легко выводятся один из другого.
СХЕМА шифр/дешифр информации в общем случае
I (исх инф) I’ (шифротекст)
F(I,K)Шифратор
K (секр ключ)
I’ (шифротекст) I (исходный текст)
F-1(I’,K’)Дешифратор
K’ (секр ключ)
Симметричное шифрование предполагает использование одной секретной единицы – ключа, который позволяет отправителю зашифровывать сообщение, а получателю – расшифровывать его. При этом длина секретного ключа является одним из важнейших критериев оценки надежности шифра.
Все многообразие существующих методов симметричного шифрования сводится к следующим классам преобразований:
моно и многоалфавитные подстановки (замены) – этот метод заключается в замене символов исходного текста на другие по некоторому правилу. В общем случае это правило таково:
Ci=(Oi+ki) mod A , где Oi – позиция в алфавите (или в таблице ASCII) текущего символа открытого текста; ki – текущий коэффициент сдвига; A – мощность алфавита; Сi – позиция элемента закрытого текста
ПРИМЕРЫ – шифр АТБАШ, которым шифровались древние иудейские тексты (первая буква алфавита на последнюю, вторая на предп и тд), шифр ЦЕЗАРЯ, шифр Гронсфельда.
перестановки – несложный метод криптографического преобразования, основное назначение которого состоит в создании диффузии (рассеивания) исходного сообщения, используется исключительно в сочетании с другими методами
ПРИМЕРЫ –шифр СКИТАЛА (СЦИТАЛА), табличная перестановка
Блочные шифры – представляют собой последовательность основных методов преобразования, применяемую к блоку (части) шифруемого текста. Блочные шифры на практике встречаются чаще, чем чистые преобразования того или иного класса в силу их более высокой криптостойкости. Российский и Американский стандарты симметричного шифрования основаны именно на этом классе шифров. Блочная криптосистема разбивает открытый текст O на последовательные блоки равной длины O1, O2,...On, кратных байту или 32-битовому слову, и зашифровывает каждый блок с помощью обратимого преобразования Ek, выполненного с помощью ключа К Ek(O)=Ek(O1), Ek(O2),.… Блочный алгоритм реализуется последовательностью операций, проводимых с элементами ключа и открытого текста, а так же производными от них величинами. Выбор элементов алгоритма шифрования достаточно велик, однако элементарные операции должны обладать хорошим криптографическими свойствами и допускать удобную программную и техническую реализацию.
Обычно в качестве элементов преобразования используются следующие операции:
Побитовое сложение по модулю 2 (обозначение операции ) двоичных векторов (XOR):
Табличная подстановка, при которой исходная группа битов отображается в другую группу битов. Это так называемые S-box преобразования (Substitution – подстановка)
Забеливание – сложение в начале и конце шифрования двоичного вектора данных с дополнительными подключами (эффективная против большинства атак и недорогая операция)
Перестановка битов двоичных векторов - перемещение, с помощью которого биты сообщения переупорядочиваются – перемешивание – взбивание
Циклический сдвиг на некоторое число битов (shr/shl)
Сжатие или расширение двоичного вектора
Сложение целых чисел по определенному модулю:
например, по модулю 232 или 216(устарело), обозначение операции - +
a + b= a+b, если a+b < 232,
а + b= a+b-232, если a+b ³ 232, где + обычное сложение целых чисел;
например, по модулю 232 -1 или 216-1(устарело), обозначение операции – {+}
a {+} b= a+b, если a+b < 232 - 1,
а {+} b= a+b-(232 – 1), если a+b ³ 232 - 1, где + обычное сложение целых чисел
Умножение целых чисел по некоторому модулю (A·B) mod N= остаток от целочисленного деления A·B на N (232 или 216)
Эти операции циклически повторяются в блочном алгоритме, образуя так называемые раунды. Входом каждого раунда является выход предыдущего раунда и ключ, который получен по определенному правилу из ключа шифрования K. Ключ раунда называется подключом. Алгоритм блочного шифрования может быть представлен в общем виде следующим образом:
Практическая стойкость алгоритмов блочного шифрования зависит и от особенностей соединения операций в последовательности, и от длины ключа.
Блочный алгоритм преобразовывает n-битовый блок незашифрованного текста в n-битовый блок зашифрованного текста. При маленькой длине блока такая подстановка плохо скрывает статистические особенности незашифрованного текста. Известно, что блок длины 64 бита уже хорошо скрывает статистические особенности исходного текста.
Примерами блочных систем являются алгоритмы блочного шифрования, принятые в качестве стандартов шифрования данных в США и России – DES/AES и ГОСТ-28147-89, соответственно.
4. поточные шифры применяют изменяющиеся во времени преобразования к отдельным наборам битов или символов, составляющих открытый текст. При поточном шифровании каждый знак шифротекста является функцией значения и положения знака открытого текста. Знаками бывают биты, байты и редко единицы текста крупнее этих. Поточные криптосистемы обычно используют шифры замены.
Поточная криптосистема разбивает
открытый текст O на буквы или биты o1,o2,…
и зашифровывает каждый знак Oi с помощью
обратимого преобразования
,
в соответствии со знаком
ключевого потока
.
Такие системы называют системами гаммирования, а последовательность называют гаммой. Гаммирование – метод, который заключается в наложении обратимым способом на открытые данные некоторой псевдослучайной последовательности символов, генерируемой на основе ключа. Для генерации гаммы променяют программы-генераторы случайных чисел.
Поточные шифры преобразуют открытый текст в зашифрованный по одному биту за операцию. Генератор потока ключей вырабатывает поток битов ключа, который складывается операцией XOR с потоком битов открытого текста, в результате получается поток битов зашифрованного текста. Для дешифрования XOR выполняется над битами шифра и того же ключа
Открытый текст 1001011001101100
Шифротекст
0100010100001001
Генератор ключей
Примерами поточной криптосистемы является система Вернама (одноразовый блокнот), где
В свою очередь поточные криптосистемы делятся на синхронные и самосинхронизирующиеся.
Синхронные поточные криптосистемы характеризуются тем, что в них ключевой поток получается независимо от открытого и шифрованного текстов.
Самосинхронизирующиеся поточные криптосистемы характеризуются тем, что каждый знак ключевого потока (гаммы) в любой момент времени определяется фиксированным числом предшествующих знаков шифротекста.
генератором ключевого потока (гаммы) может быть либо детерминированным, либо случайным. Детерминированный генератор зависит от секретного ключа. Случайный сам является секретным ключом, но очень большой длины, что непрактично в реализации.
Стойкость поточных шифров зависит от длины гаммы и качества генератора
Один из режимов работы отечественной симметричной криптосистемы ГОСТ 28147-89 выполняет гаммирование открытых данных, разбитых на 64-разрядные блоки, в сочетании с алгоритмическим преобразованием заменой. Гамма также вырабатывается блоками длиной 64 бит каждый. Очередной бит открытого текста складывается операцией XOR с очередным битом гаммы. Шифрование выполняется согласно формуле:
С
= O
Å
G
=
O
Å
E(L
+
constanta2, R
{+} constanta1)
где:
E – функция шифрования в режиме простой замены от двух 32-разрядных аргументов
(L
,
R
)
= E(S)
S - синхропосылка или начальное заполнение, это 64-битовый элемент, необходимый для инициализации генератора гаммы
L = L + constanta2
R = R {+} constanta1 для i = 1, 2, …, n (n – число блоков исходного сообщения)
constanta1 и constanta2 – константы, заданные в ГОСТ
Процесс дешифрования предполагает использование той же самой синхропосылки, которая не является секретным элементом шифра и может храниться в памяти ЭВМ (предопределенная синхропосылка) или передаваться по каналам связи вместе с шифрованными данными (что приведет к увеличению шифровки на 8 байт).
В ГОСТ допускается режим гаммирования с обратной связью:
С1 = O1 Å G1= O1 Å E(S)
С = O Å G = O Å E(Сi-1) для i = 1, 2, …, n (n – число блоков исходного сообщения)
Недостаток шифрования с помощью закрытых ключей состоит в том, что отправитель и получатель сообщения должны обменяться закрытым ключом, чтобы в дальнейшем с его помощью передавать друг другу сообщения. Найти надежный способ, позволяющий передавать закрытый ключ, совсем непросто. Поэтому в незащищенных сетях, объединяющих две системы, между которыми нужно, соблюдая правила безопасности, провести обмен ключами, используются специальные протоколы управления ключами, базирующиеся на принципах криптографии с открытым ключом (несимметричные криптосистемы).
В симметричных алгоритмах шифрования относительно надежными на сегодня считаются ключи, состоящие из 512 бит. Использование большей длины приводит к появлению возможно избыточной надежности и увеличению времени криптографических процессов.
На данный момент реализовано много алгоритмов симметричного шифрования:
DES (Америка) – Data Encryption Standard 56-битовый ключ/16 раундов (сеть или шифр Фейстеля)
3DES – Triple DES - тройной DES – можно использовать 1-2-3 56-разрядных ключа/16*(1-2-3) раундов
Как национальный стандарт DES устарел, его сменили на
AES - Advanced Encryption Standard с 128 -192 или 256-разрядным ключом (основан на бельгийском алгоритме Rijndael), не относится к шифрам Фейстеля, имеет архитектуру КВАДРАТ
Twofish 128-192-256/16 относится к шифрам Фейстеля , основным недостатком является дороговизна смены ключа шифрования, это объясняется тем, что реализация криптоалгоритма требует выполнения целого ряда предварительных операций над ключом (из-за зависимости генерации S-box от подключей
FEAL 64-128/4
Blowfish 448/16 – один из стандартов шифрования в защищенных каналах связи
ГОСТ 28147-89 (Россия) в ГОСТ 28147 - 256-битовый ключ/ 32 раунда (сеть или шифр Фейстеля)
Сеть Фейcтеля
Наиболее широкое алгоритмическое распространение в симметричных криптосистемах получили сети Фейcтеля, так как, с одной стороны, они удовлетворяют всем требованиям к алгоритмам симметричного шифрования, а с другой стороны, достаточно просты и компактны. Сеть Фейcтеля имеет следующую структуру. Входной блок делится на несколько равной длины подблоков, называемых ветвями. В случае, если блок имеет длину 64 бита, используются две ветви по 32 бита каждая. Каждая ветвь обрабатывается независимо от другой, после чего осуществляется циклический сдвиг всех ветвей.
Li
Ri
F
K
i
Li+1
Ri+1
I-ый раунд сети Фейстеля
Функция F называется образующей. Каждый раунд состоит из вычисления функции F для одной ветви и побитового выполнения операции XOR результата F с другой ветвью. После этого ветви меняются местами. Считается, что оптимальное число раундов - от 8 до 32. Важно то, что увеличение количества раундов значительно увеличивает криптостойкость алгоритма. Именно эта особенность и повлияла на столь активное распространение сети Фейстеля, так как для большей криптостойкости достаточно просто увеличить количество раундов, не изменяя сам алгоритм. В последнее время количество раундов не фиксируется, а лишь указываются допустимые пределы.
Сеть Фейcтеля является обратимой даже в том случае, если функция F не является таковой, так как для дешифрования не требуется вычислять F-1. Для дешифрования используется тот же алгоритм, но на вход подается зашифрованный текст, и ключи используются в обратном порядке.
До последнего времени в основном использовались различные разновидности сети Фейстеля для 128-битового блока с четырьмя ветвями. Увеличение количества ветвей, а не их размерности было связано с преобладанием 32-разрядных процессоров. Тенденция к все большему использованию 64-разрядных платформ приводит к увеличению размерности блока и ветвей сети.
Основной характеристикой алгоритма, построенного на основе сети Фейcтеля, является функция F. Различные варианты касаются также начального и конечного преобразований. Подобные преобразования, осуществляются для того, чтобы выполнить начальную рандомизацию входного текста.
DES — национальный стандарт шифрования коммерческой информации в США, разработанный фирмой IBM в 1974 г, и принятый в качестве стандарта в 1976 году. DES является классической сетью Фейстеля с двумя ветвями (Хорст Фейстель один из авторов DES). Представляет собой симметричный блочный алгоритм с секретным ключом длиной 56 бит. Алгоритм использует входные 64-битовые блоки и основан на 16-кратной перестановке данных; В каждом цикле шифрования 64-битовый блок перемешивается и разбивается на 2 32-битовые части L и R, подвергается преобразованию Фейстеля и перестановке. В конце алгоритма левая и правая половина меняются местами и так 16 раз. При этом исп-ся 16 48-битовых подключей. Каждый подключ образуется путем выбора 48 бит из 56-битового ключа шифрования, причем для каждого раунда этот выбор выполняется по-разному. В конце шифрования полученный 64-разрядный блок снова подвергается перестановке, обратной начальной (никакой криптостойкости это не добавляет). Все подстановки и перестановки, используемые в DES фиксированы.
Отечественным аналогом DES является ГОСТ 28147-89. Этот шифр был разработан в 70-х годах в КГБ СССР и имел гриф «совершенно секретно». С течением времени гриф снижался, и в 1989 году этот алгоритм стал применяться «для служебного пользования»; этот гриф, как известно, не является секретным, что дало возможность провести шифр через процедуру стандартизации. В начале 90-х годов гриф был окончательно снят, а сам алгоритм признан уже не советским, а российским стандартом.
Преимущества перед DES наш алгоритм имел существенные. Во-первых, в ГОСТ изначально использовались ключи длиной 128 бит, что позволяет ему до сих пор оставаться достаточно надежным для коммерческого использования. Во-вторых, этот алгоритм создавался с расчетом на то, чтобы в равной степени эффективно реализовываться как аппаратно, так и программно. Это позволило при большей надежности иметь и серьезное преимущество в скорости работы перед американским стандартом. Все эти плюсы стали залогом долголетия отечественного алгоритма и позволили ему пережить заморский аналог.
При использовании в шифре ГОСТ 256-битового ключа, объем ключевого пространства составляет 2256 . Блок-схема алгоритма отличается от DES лишь отсутствием начальной перестановки и числом циклов шифрования (32). Ключ – это массив, состоящий из 32-значных двоичных векторов X1,X2….X8. Ключ i-того цикла Ki равен Xs, где ряду значений i от 1 до 32 соответствует следующий ряд значений s:
1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1.
В ГОСТ 28147-89 помимо шифрования
определен процесс выработки имитовставки
для защиты данных от несанкционированного
изменения. Имитовставка -
это блок из p бит (имитовставка Иp), который
вырабатывается либо перед шифрованием
всего сообщения, либо параллельно с
шифрованием по блокам. Первые блоки
открытых данных, которые участвуют
в выработке имитовставки, могут содержать
служебную информацию (например, адресную
часть, время, синхропосылку) и не
зашифровываться. Значение параметра
p (число двоичных разрядов в имитовставке)
определяется криптографическими
требованиями с учетом того, что
вероятность навязывания ложных помех
равна
.
Для получения имитовставки открытые данные представляются в виде 64-разрядных блоков Т(i) (i = 1, 2, …, m, где m определяется объемом шифруемых данных). Первый блок открытых данных Т(1) подвергается преобразованию, соответствующему первым 16 циклам алгоритма шифрования в режиме простой замены. Причем в качестве ключа для выработки имитовставки используется ключ, по которому шифруются данные.
Полученное после 16 циклов работы 64-разрядное число суммируется по модулю 2 со вторым блоком открытых данных Т(2). Результат суммирования снова подвергается преобразованию, соответствующему первым 16 циклам алгоритма шифрования в режиме простой замены.
Полученное 64-разрядное число суммируется по модулю 2 с третьим блоком открытых данных Т(3) и т. д. Последний блок Т (m), при необходимости дополненный до полного 64-разрядного блока нулями, суммируется по модулю 2 с результатом работы на шаге m-1, после чего зашифровывается в режиме простой замены по первым 16 циклам работы алгоритма. Из полученного 64-разрядного числа выбирается отрезок Ир длиной p бит.
Имитовставка Ир передается по каналу связи или в память ЭВМ после шифрованных данных. Поступившие шифрованные данные дешифруются и из полученных блоков открытых данных Т(i) вырабатывается собственная имитовставка Ир, которая затем сравнивается с имитовставкой Ир, полученной из канала связи или из памяти ЭВМ. В случае несовпадения имитовставок все дешифрованные данные считают ложными.
Аппаратные шифраторы
Потоковая скорость обработки данных — это один из основных параметров, по которым оценивают аппаратные шифраторы. Она измеряется в мегабайтах в секунду и зависит прежде всего от сложности алгоритма шифрования. Проще всего оценить ее по формуле:
V = (F * K) / n
где F — тактовая частота процессора, K — размер стандартного блока шифрования (в байтах), n — число тактов, требующееся на преобразование стандартного блока.
Например, отечественный алгоритм ГОСТ 28147—89 имеет быстродействие 32 такта на 8-байтовый блок, а значит, теоретически скорость шифрования должна стремиться к 25 Мбайт/с при тактовой частоте 100 МГц. При тактовой частоте процессора 1 ГГц аппаратная скорость шифрования теоретически могла бы быть около 250 Мбайт/с. Однако последние опубликованные достижения скорости аппаратной реализации этого алгоритма —12—16 Мбайт/с. Ограничения являются чисто технологическими: отсутствие необходимого уровня разработок или элементной базы.
-------------------------------------------------------------------------------------------------
Главное свойство блочных криптосистем состоит в том, что каждый бит шифротекста является функцией почти всех битов соответствующего блока открытого текста, и никакие два блока открытого текста не могут быть представлены одним и тем же блоком шифротекста. Основное их преимущество состоит в том, что даже небольшие изменения открытого текста или ключа вызывают большие и непредсказуемые изменения в шифротексте. Однако существенным недостатком является распространение (размножение) ошибки внутри блока. Результатом изменения одного бита в принятом блоке будет неправильная дешифровка всего блока.
Сегодня чаще используют комбинированные криптосистемы поточного и блочного типа с использованием лучших свойств каждой из них. В таких системах поточное шифрование комбинируется с перестановками бит в блоках. Открытый текст сначала шифруется на основе поточного шифра замены, а затем разбивается на блоки фиксированного размера и в каждом блоке дополнительно преобразуется под управлением ключа шифра перестановки. В результате получается шифр, не размножающий ошибки, в котором неизвестно, какому биту открытого текста соответствует бит шифровки, что существенно повышает стойкость криптосистемы.
