Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Теория секретных систем

 

Первая серьезная попытка систематизировать и подвести общую математическую базу под теорию криптографии была предпринята Клодом Шенноном в 1945 году. Статья «Теория связи в секретных системах» первоначально составляла содержание секретного доклада «Математическая теория криптографии», датированного 1 сентября 1945 г. Статья в настоящее время рассекречена.

Согласно К. Шеннону [12] существуют три общих типа секретных систем:

1. Системы маскировки, при помощи которых скрывается сам факт наличия сообщения (стеганография). Например, невидимые чернила или маскировка сообщения за безобидным текстом.

2. Тайные системы, в которых для раскрытия сообщения требуется специальное оборудование. Например, инвертирование речи.

3. Криптографические системы, где смысл сообщения скрывается при

помощи шифра, кода и т. п., но само существование сообщения не скрывается.

Ограничимся рассмотрением только третьего вида систем и только для

случая, когда информация имеет дискретный вид.

Секретная система – это некоторое множество отображений одного

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

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

 

3.5. Алгоритмы и ключи

 

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

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

 

Таблица 4. Классификация криптографических алгоритмов

Классы криптоалгоритмов Описание класса Достоинства и недостатки
Тайнопись Отправитель и получатель (или группа соответствующих лиц) производят над сообщением преобразования, известные только им двоим. Сторонним лицам неизвестен сам алгоритм шифрования. + Простота использования.
- Ненадежность и недолговечность: как только один человек уходит из группы, алгоритм нужно менять, чтобы не допустить утечки информации; рассекречивание алгоритма ведет к раскрытию всех имеющихся у недоброжелателей (например, ранее похищенных) шифротекстов.
Криптография с ключом Алгоритм воздействия на передаваемые данные известен всем сторонним лицам, но он зависит от некоторого параметра – «ключа», которым обладают только отправитель и получатель. + Доступность. Простота использования. Регулярная смена ключа обеспечивает среднюю надежность.
- Неустойчивость к взлому при помощи специальных программ.
Симметричные криптоалгоритмы Ключ дешифрования вычисляется по ключу шифрования и наоборот + Быстродействие и нетребовательность к вычислительным ресурсам.
- Раскрытие ключа означает потерю конфиденциальности информации; длина ключа, как правило, определяется используемым алгоритмом; перед использованием алгоритма участникам необходимо обменяться ключами.
Асимметричные криптоалгоритмы Алгоритм таков, что для зашифровки сообщения используется один известный всем ключ, называемый «открытым», а для расшифровки – другой («закрытый»), существующий только у получателя. + Не возникает проблемы передачи ключа; любой человек может при помощи открытого ключа отправить зашифрованное послание обладателю закрытого ключа.
‑ Медленная скорость работы; уязвимость к взлому методом избранного шифротекста

 

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

Симметричные алгоритмы, кроме того, подразделяются на потоковые шифры (единицей кодирования является один бит) и блочные шифры (единицей кодирования является блок, обычно 64―128 бита).

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

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

Очень плохо то, что ограниченные алгоритмы не допускают качественного контроля или стандартизации. У каждой группы пользователей должен быть свой уникальный алгоритм. Такие группы не могут использовать открытые аппаратные или программные продукты - злоумышленник может купить такой же продукт и раскрыть алгоритм. Им приходится разрабатывать и реализовывать собственные алгоритмы. Если в группе нет криптографа, то, как могут ее члены проверить, что они пользуются безопасным алгоритмом?

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

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

Если обозначить открытый текст буквой «P», а соответствующий шифротекст буквой «С», то можно представить шифрование как функцию (Е) над открытым текстом, преобразующую его в шифротекст и формальная запись тайнописи (шифрования без использования ключей) будет выглядеть следующим образом:

Е(P) = С.

Обратный процесс дешифрования так же можно представить себе как функцию D над шифротекстом, преобразующую его в открытый текст:

D(C) = P.

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

Два других класса криптоалгоритмов используют ключ, обозначаемый часто буквой «К» и представляющий собой переменную математической функции, реализующей криптографический алгоритм. Смысл ключа таков: зная значение ключа, рассчитать значение функции шифрования/дешифрования очень просто; не зная значение ключа, это весьма затруднительно или невозможно, даже с привлечением современных мощных компьютерных средств. Чтобы обеспечить такое свойство криптографических ключей, алгоритмы шифрования/дешифрования должны позволять использование ключей со значениями из большого диапазона, называемого «пространством ключей».

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

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

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

ЕК (P) = С,

DК (С) = P.

Ключи шифрования и дешифрования в некоторых алгоритмах не совпадают, т.е. ключ шифрования (К1) отличается от парного ему ключа дешифрования (К2). В таком случае операции шифрования и дешифрования записываются таким образом:

ЕК1 (P) = С,

DК2 (С) = P.

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

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

Криптографические системы с ключами подразделяются на два типа: криптосистемы с закрытым ключом и криптосистемы с открытым ключом.

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

· усиление защищенности данных;

· облегчение работы с криптоалгоритмом со стороны человека;

· обеспечение совместимости потока данных с другим программным обеспечением.

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

· равенство длин ключа и исходного текста;

· случайность ключа;

· однократное использование ключа.

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

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

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

Рис. 3. Схема шифрования посредством гаммирования, надежность которой зависит от качества генератора ПСП, G –генератор ПСП; F – линейная или нелинейная функция

В наиболее простом случае в качестве функции F используется операция XOR.

Операция < ор1> XOR <ор2 > – «исключающая или» – любимая команда шифровальщиков и хакеров. Команда относится к группе логических операторов. Интересен алгоритм ее работы: если соответствующие биты операндов одинаковые, результирующий бит будет равен «0», если разные – «1».

Особенностью этой операции является то, что если выполнить последовательность:

ор2 =ор1 XOR key1,

ор3=ор2 XOR key2,

то исходный операнд после первого XOR «зашифруется», а затем восстановится (ор1= ор3), если значения операндов, играющих роль ключа, совпадут (key1 = key2).

 

Симметричные криптосистемы

В основе симметричных криптосистем лежит симметричный алгоритм шифрования.

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

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

ЕК (P) = С,

DК (С) = P.

Симметричные алгоритмы, в свою очередь, подразделяются по способу обработки шифруемой/дешифруемой информации. Эта информация в компьютерном виде представляет собой последовательность двоичных кодов, хранимых в адресном пространстве памяти компьютера, каждый адрес памяти указывает на машинные слово, разрядность которого зависит от типа компьютера. При шифровании/дешифровании этой информации симметричные алгоритмы могут действовать двояким образом – обрабатывать ее последовательно бит за битом (иногда байт за байтом) или также последовательно, но большими группами битов, называемыми блоками. Поэтому симметричные алгоритмы подразделяются на потоковые алгоритмы и блочные алгоритмы. В современных компьютерных алгоритмах типичный размер блока составляет от 64 до 256 бит

<== предыдущая лекция | следующая лекция ==>
Статья 274 УК. Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети | Потоковые шифры
Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 847; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.026 сек.