Основы криптографии

Тип работы:
Реферат
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Министерство образования и науки Российской Федерации

(МИНОБРНАУКИ РОССИИ)

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ (ТГУ)

Физико-технический факультет

РЕФЕРАТ

на тему «Основы криптографии»

Томск 2007

СОДЕРЖАНИЕ

Введение

1. Криптография. Основные понятия и определения

2. Методы шифрования

3. История развития шифров. От первых шифров к современным криптоалгоритмам

4. Классические шифры

5. Асимметричная и симметричная криптографии

6. Хэш-функции и немного об электронной подписи

7. Электронные водяные знаки

8. PGP и системы сертификации открытых ключей

9. Системы идентификации и аутентификации

10. Ещё немного о криптоанализе

Заключение

Литература

Введение

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

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

Появление в середине ХХ столетия первых ЭВМ кардинально изменило ситуацию — практическая криптография сделала в своем развитии огромный скачок и термин «криптография» далеко ушел от своего первоначального значения — «тайнопись», «тайное письмо». Сегодня эта дисциплина объединяет методы защиты информационных взаимодействий совершенно различного характера, опирающиеся на преобразование данных по секретным алгоритмам, включая алгоритмы, использующие секретные параметры. Термин «информационное взаимодействие» или «процесс информационного взаимодействия» здесь обозначает такой процесс взаимодействия двух и более субъектов, основным содержанием которого является передача и/или обработка информации. Базовых методов преобразования информации, которыми располагает современная криптография, немного, но все они являются «кирпичами» для создания прикладных систем. [6]

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

Ш неавторизированный доступ к информации;

Ш неавторизированное изменение информации;

Ш неавторизированный доступ к сетям и другим сервисам.

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

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

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

Задачи:

1. Рассмотреть историю развития криптографии.

2. Познакомиться с современными методами шифрования.

3. Узнать особенности математического представления криптографии.

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

Что обычно приходит на ум при произнесении слова «криптография»? Спецслужбы, дипломатическая переписка, «математическое шаманство»? А при произнесении фразы «криптография в информационных технологиях»? Шифрование данных припомнят сразу. Про электронную подпись вспомнят. Кто-то знает что-то про «Сертификаты открытых ключей». Или про «взлом» чужих шифров. Попробуем разобраться со всеми этими, а заодно и другими, понятиями и подходами, которыми оперирует современная криптография.

1. Криптография. Основные понятия и определения

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

Ш шифрование данных, передаваемых по каналам связи или хранимым в базах данных;

Ш контроль целостности данных, передаваемых по каналам связи;

Ш идентификация (опознавание) субъекта или объекта системы (сети);

Ш аутентификация (проверка подлинности) субъекта или объекта сети;

Ш контроль (разграничение) доступа к ресурсам системы (сети).

Базовых методов преобразования информации, которыми располагает криптография, немного, среди них:

Ш шифрование (симметричное и несимметричное);

Ш вычисление хэш-функций;

Ш генерация электронной цифровой подписи;

Ш генерация последовательности псевдослучайных чисел. [3]

2. Методы шифрования

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

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

Отправитель генерирует открытый текст исходного сообщения M, которое должно быть передано законному получателю по незащищённому каналу. За каналом следит злоумышленник с целью перехватить и раскрыть передаваемое сообщение. Для того чтобы перехватчик не смог узнать содержание сообщения M, отправитель шифрует его с помощью обратимого преобразования ЕК и получает шифртекст (или криптограмму) C = ЕК (М), который отправляет получателю.

Законный получатель, приняв шифртекст C, расшифровывает его с помощью обратного преобразования D = ЕК-1 и получает исходное сообщение в виде открытого текста M:

DК © = ЕК-1К (М)) = M.

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

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

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

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

Ш симметричные криптосистемы (с одним ключом);

Ш асимметричные криптосистемы (с двумя ключами).

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

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

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

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

Ш открытый ключ К1 используется для зашифрования информации. Вычисляется из секретного ключа К2;

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

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

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

Криптоанализ — это наука о раскрытии исходного текста зашифрованного сообщения без доступа к ключу. Успешный анализ может раскрыть исходный текст или ключ. Он позволяет также обнаружить слабые места в криптосистеме, что в конечном счёте ведёт к тем же результатам. [2]

Фундаментальное правило криптоанализа, впервые сформулированное голландцем А. Керкхоффом ещё в XIX веке, заключается в том, что стойкость шифра (криптосистемы) должна определяться только секретностью ключа. Иными словами, правило Крекхоффа указывает на то, что весь алгоритм шифрования, кроме значения секретного ключа, известен криптоаналитику противника. Это обусловлено тем, что криптосистема, реализующая семейство криптографических преобразований, обычно рассматривается как открытая система. Такой подход отражает очень важный принцип технологии защиты информации: защищённость системы не должна зависеть от секретности чего-либо такого, что невозможно быстро изменить в случае утечки секретной информации. Обычно криптосистема представляет собой совокупность аппаратных и программных средств, которую можно изменить только при значительных затратах времени и финансов, тогда как ключ является легко изменяемым объектом. Именно поэтому стойкость криптосистемы определяется только секретностью ключа. [5]

3. История развития шифров. От первых шифров к современным криптоалгоритмам

Существуют два основных вида шифров: шифр перестановки и шифр замены. Шифр перестановки осуществляет преобразование перестановки символов в открытом тексте. Шифр замены осуществляет преобразование замены символов открытого текста на другие символы зашифрованного текста.

Шифры перестановки и замены имеют долгую историю развития и использования. Известно, что в V веке до нашей эры правители Спарты — наиболее воинственного из греческих государств — имели хорошо отработанную систему секретной военной связи и шифровали свои послания с помощью «Скитала», первого простейшего криптографического устройства, реализующего метод простой перестановки. Шифрование выполнялось следующим образом. На жезл, имеющий форму цилиндра, наматывалась по спирали узкая папирусная лента (без просветов и нахлестов), а затем на этой ленте вдоль оси цилиндра писали несколько строк текста сообщения. Затем лента разматывалась. Для непосвящённых получалось, что поперёк ленты в беспорядке написаны какие-то буквы. Адресат брал такой же жезл и таким же образом наматывал на него полученную ленту, восстанавливая тем самым исходное сообщение. По названию жезла и получил название этот шифр.

Другим примером шифра древности является шифр Цезаря. Этот шифр простой замены реализует следующие преобразования текста: каждая буква открытого текста заменялась третьей после неё буквой в латинском алфавите, который считался написанный по кругу, то есть после буквы Z следует буква A (в русском алфавите соответственно после буквы Я следует буква А).

Более широкий круг пользователей имел шифр российского посольского приказа, называвшийся «Тарабарской грамотой». Суть этого шифра сводилась к тому, что алфавит делился на две части, и в зашифрованном тексте первая буква первой части алфавита заменялась на первую букву второй части алфавита и наоборот. Следует отметить, что до 1708 года использовавшийся русский алфавит — кириллица — состоял из 42 букв.

Вплоть до начала XX века, когда появились первые шифровальные машины, криптография была уделом любителей-одиночек. Понимание математического характера решаемых криптографией задач пришло только в середине XX века после выхода в свет работ американского учёного Клода Шеннона. В 1945 году вышла его работа «Математическая теория криптографии», которая была рассекречена в 1948 году.

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

Математическое описание шифра замены выглядит следующим образом. Пусть X и Y — два алфавита (открытый и шифрованный соответственно). Обозначим через g: X Y взаимно однозначное отображение алфавитов X и Y.

Действие шифра замены можно представить как преобразование открытого текста (x1, x2, … xn) в шифрованный (y1, y2, … yn), причём y1 = g (x1), y2 = g (x2), … yn = g (xn).

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

Пусть длина отрезков, на которые разбивается открытый текст, равна n, а у — взаимно однозначное отображение множества {1, 2, … n} в себя.

Шифр перестановки действует так: отрезок открытого текста x1, x2, … xn преобразуется в отрезок шифрованного текста xу (1), xу (2), … xу (n).

Очень важным для развития криптографии явился вывод К. Шеннона о существовании и единственности абсолютно стойкого шифра. Таким единственным шифром является одноразовая (однократная) система шифрования, в которой открытый текст объединяется с полностью случайным ключом такой же длины.

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

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

Функция шифрования осуществляет преобразование открытого текста в зашифрованный (например, F: X Y).

Функция расшифрования выполняет обратную процедуру (например, F-1: Y X). [2]

4. Классические шифры

Вообще «классическими шифрами» принято называть симметричные блочные шифры. То есть те, которые для шифрования и расшифрования информации используют один и тот же ключ и шифруют информацию блоками. Длина блока обычно составляет 8 или 16 байт. Есть алгоритмы, допускающие переменную длину блока. Первым блочным шифром, широко использующимся на практике, стал DES (Data Encryption Standard), разработанный специалистами IBM в начале 70х годов прошлого века и долгое время служивший стандартом для шифрования данных в США.

Потом появилось много блочных алгоритмов — IDEA, Blowfish, советский ГОСТ 28 147 89 (и ныне являющийся отечественным стандартом). Оригинальный DES, к примеру, использовал ключ длиной 112 бит и блок шифрования длиной 64 бита. Но после его «анализа» специалистами NSA1 длина ключа была уменьшена до 64 бит. При этом в ключе было только 56 бит уникальных, а 8 бит — контрольных, служащих для контроля целостности ключа. Именно с ключом длиной в 56 бит DES и был утвержден в качестве Национального Стандарта. При том уровне развития вычислительной техники задача перебора 2**56 ключей за приемлемое время была или технически не выполнимой, или неоправданно дорогой. Сейчас DES с длиной ключа в 56 бит не представляется стойким алгоритмом. Большинство современных стойких симметричных алгоритмов используют ключ длиной 64−256 бит (8−32 байта). Необходимо отметить, что кроме блочных шифров существуют и активно используются поточные шифры. Они, как и блочные шифры, используют симметричный ключ, но выполняют шифрование входного потока побайтно или иногда побитно.

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

С алгоритмом A5 связана одна поучительная история. Изначально описание алгоритма A5 было закрытым. Но из-за юридической ошибки компании владельца алгоритма его описание попало в Интернет, и алгоритм был проанализирован. Его стойкость оказалась даже ниже стойкости DES. Осознав важность открытости алгоритмов для обеспечения их стойкости, разработчики третьего поколения сети GSM пообещали сделать предлагаемые к использованию алгоритмы шифрования голоса достоянием широкой криптографической общественности. Пример показывает важность наличия открытого описания алгоритма даже для самих его разработчиков.

На сегодняшний день алгоритмы с длиной ключа 64 и больше бит обеспечивают приемлемую стойкость. Однако зачем тогда использовать ключи длиной 512 и более бит? Ответ таков- эти ключи от другого замка!

В 1976 году была опубликована работа американских математиков У. Диффи и М. Хеллмана «Новые направления в криптографии». В этой работе была предложена и обоснована методология асимметричного шифрования, которая базируется на применении однонаправленных функций. Диффи и Хеллман придумали абсолютно «новую» криптографию — криптографию с открытым ключом. Еще ее называют «открытой криптографией» или «асимметричной криптографией». [6]

5. Асимметричная и симметричная криптографии

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

Рассматривая исходный текст как некоторое большое число, произведем его преобразование с использованием открытого ключа. В результате получим новое число, которое будем рассматривать как шифр. Имея в распоряжении секретный ключ и используя тот факт, что открытый ключ был получен из секретного специальным образом, мы можем относительно быстро (в вычислительном плане) расшифровать текст. При этом надо заметить, что в целом процесс шифрования/расшифрования с использованием пары ключей проходит на два-три порядка медленнее, чем шифрование/расшифрование того же текста симметричным алгоритмом. [4]

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

Самым известным асимметричным алгоритмом шифрования на сегодняшний день является алгоритм, предложенный Ривестом, Шамиром и Адельманом и носящий их имена, — алгоритм RSA. В самом деле, если участников обмена немного, и все они находятся недалеко друг от друга, то проблема распределения между ними симметричных ключей решается относительно просто. Для связи «каждый с каждым» N участникам обмена каждому из них необходимо иметь N1 ключей парной связи. При этом каждый участник обмена должен иметь безопасный канал обмена ключами с остальными участниками. При увеличении числа участников обмена задача распределения и замены скомпрометированных симметричных ключей может оказаться и вовсе неразрешимой, особенно тогда, когда участники обмена не доверяют друг другу.

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

Но за удобство надо платить. В случае использования асимметричной криптографии платой является время и длины ключей. При использовании асимметричной криптографии характерной длиной ключей является 512−1024 бит. Сейчас, когда стали доступны высокопроизводительные вычислительные системы, набирает популярность использование 2048-битных ключей.

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

Асимметричные алгоритмы показывают производительность от единиц до десятков килобайт в секунду, в зависимости от длины ключа. При длине сеансового ключа в 8−32 байта подобная гибридная криптосхема оказывается вполне эффективной. Но вернемся ненадолго к оценкам стойкости асимметричных алгоритмов и к проблемам, возникающим при их использовании. В настоящем обзоре мы постараемся обойтись без математических выкладок и формул, однако, отметим, что сложность восстановления секретного ключа по открытому определяется сложностью разложения большого числа на простые сомножители (так называемая «задача факторизации») или сложностью задачи «дискретного логарифмирования».

Задачу «дискретного логарифмирования» можно сформулировать так: взяли некоторое известное число, возвели его в неизвестную степень и остаток от деления этой экспоненты на некоторое известное большое простое число (так называемый модуль) сообщили в качестве результата. Все числа натуральные. Нужно найти показатель степени. Характерные длины чисел, участвующих в вычислениях, — несколько сотен десятичных разрядов (вот те самые 512−1024−2048 бит).

Сегодняшние результаты теории сложности гласят, что вычислительная сложность задачи дискретного логарифмирования экспоненциально зависит от величины модуля. Но никому ещё не удалось строго доказать, что эта зависимость не может быть полиномиальной. Если вдруг завтра какой нибудь гениальный математик найдет быстрый способ факторизации больших чисел, то может случиться так, что мы окажемся без асимметричной криптографии. Хотя вероятность этого события математики оценивают как близкую к нулевой. Используя асимметричную криптографию, полезно помнить об этаком «дамокловом мече». [6]

6. Хэш-функции и немного об электронной подписи

Как отмечено во введении, криптографическими методами можно обеспечить не только конфиденциальность, но и проконтролировать целостность передаваемых или хранимых данных. Контроль целостности, в основном, производится путём расчета некоторой «контрольной суммы» данных. Математиками и инженерами, работающими в области передачи данных и теории кодирования, разработано множество алгоритмов, рассчитывающих контрольные суммы передаваемых данных. Для многих приложений простой контрольной суммы (например, известного алгоритма crc32 или последовательного побайтного или пословного сложения исходного текста с известной константой) оказывается достаточно, особенно тогда, когда важна скорость обработки данных и не известен заранее объем данных (типичный случай — передача данных по каналам связи).

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

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

Основными свойствами криптографически «хорошей» хэш-функции является свойство рассеивания, свойство стойкости к коллизиям и свойство необратимости. О необратимости мы уже говорили.

Коллизией хэш-функции H называется ситуация, при которой существуют два различных текста T1 и T2, но H (T1) = H (T2). Значение хэш-функции всегда имеет фиксированную длину, а на длину исходного текста не накладывается никаких ограничений. Из этого следует, что коллизии существуют. Требование стойкости к коллизиям обозначает, что для криптографически «хорошей» хэш-функции для заданного текста T1 вычислительно невозможно найти текст T2, вызывающий коллизию.

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

Основными применяемыми на сегодняшний день алгоритмами, реализующими хэш-функции, являются MD2, MD4, MD5, SHA и его вариант SHA1, российский алгоритм, описываемый стандартом ГОСТ Р 34. 11 94. Наиболее часто используются MD5, SHA1 и в России 34. 11. Длина значения хэш-функции различна. Типичной длиной является 16−32 байта. В свете последних криптоаналитических результатов, вероятно, придётся в недалеком будущем отказаться от MD5, так как было заявлено: «его стойкость к коллизиям опустилась и, вероятно, подошла близко к той отметке, после которой о стойкости вообще говорить не приходится».

В название главы вынесены слова «электронная подпись». Не сказать об электронной подписи совсем было бы неправильно. Дело в том, что без асимметричной криптографии электронной подписи не было бы вообще! Идея электронной подписи проста. Когда описывался процесс шифрования с использованием асимметричного алгоритма, то отмечалось, что для зашифрования сообщения использовался открытый ключ, а для расшифрования — секретный. Но в применении к шифрованию ключи взаимозаменяемы. Можно зашифровать сообщение на своем секретном ключе, и тогда любой желающий сможет его расшифровать, используя открытый ключ. Это свойство асимметричных алгоритмов и используется при формировании и проверке электронно-цифровой подписи. Cобственно электронно-цифровая подпись документа — это его хэш-сумма, зашифрованная секретным ключом. Проверка электронно-цифровой подписи документа сводится к вычислению хэш-суммы документа, расшифрованию хэш-суммы, содержащейся в подписи, и сравнению двух величин. Если значения вычисленной и сохраненной в подписи хэш-сумм совпали, то считается, что подпись под документом верна. [2]

7. Электронные водяные знаки

криптография шифрование аутентификация сертификация

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

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

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

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

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

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

8. PGP и системы сертификации открытых ключей

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

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

Напомним, что Фил Циммерман — бывший сотрудник АНБ, в 1992 году написал и сделал широко доступной программу PGP (Pretty Good Privacy) Название можно перевести на русский язык как «Довольно Хорошая Секретность». Программа предназначена для шифрования и электронной подписи сообщений. В жизни PGP и самого Фила Циммермана был и «гнев спецслужб», и признание «широких масс пользователей». Было время, когда Циммерман находился под следствием, якобы за «разглашение государственной тайны». Но захватывающая история появления и развития PGP не является темой данного пункта. Нас будут интересовать оригинальные, если угодно, общественно технологические идеи, реализованные в PGP.

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

Идея взаимной сертификации открытых ключей реализуется следующим образом. Пользователь программы PGP создает свою ключевую пару. Далее, если он хочет передавать зашифрованную информацию другим людям, то ему следует позаботиться о безопасном способе передачи открытого ключа его корреспондентам. Например, таковым способом может быть личная встреча. Пользователь и его корреспондент передают друг другу открытые ключи. Пользователь и его корреспондент могут подписать открытые ключи друг друга и разместить полученные «сертификаты» на свободно доступном сервере. Подписей под открытым ключом может быть несколько, и каждой из них может быть присвоен определенный «уровень доверия». При этом уровень доверия определяет конечный потребитель ключа. То есть, используя принцип «друг моего друга — мой друг», можно организовать общение уже друзей пользователя с его корреспондентом. Если друзья пользователя доверяют ему полностью, то подписи пользователя под ключом его корреспондента для них будет достаточно для его использования.

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

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

Юридический статус доверительного центра может быть любым. От официально государственного до корпоративного или частного. Многие крупные западные корпорации уже имеют свои корпоративные центры сертификации для организации внутрифирменного обмена конфиденциальной информацией. Созданы и успешно функционируют независимые центры сертификации, например, «VerySign, Inc». Собственные публичные центры сертификации созданы компаниями Microsoft и AmericanExpress. Создание и разворачивание российских центров сертификации — дело недалекого будущего. В настоящее время в Государственной Думе Российской Федерации рассматриваются несколько законопроектов, так или иначе регламентирующих использование электронно-цифровой подписи. Один из законопроектов так и называется — «Об использовании электронно-цифровой подписи». Остальные — «Об электронной коммерции» и «Об электронной торговле». Все законопроекты предполагают разворачивание центров сертификации открытых ключей на федеральном уровне. При этом ни один из законопроектов не затрагивает вопрос ведомственной принадлежности центров сертификации, а также не описывает круг лиц и/или организаций, которые будут временно в обязательном порядке пользоваться услугами создаваемых центров сертификации. Пока рано говорить о том, что нас, как российских потребителей и разработчиков информационных технологий, ждет в случае утверждения одного из рассматриваемых проектов в качестве закона. [1]

9. Системы идентификации и аутентификации

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

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

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

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

Другим распространенным методом аутентификации является аутентификация с использованием сертификатов открытого ключа. Разработано и применяется несколько таких алгоритмов. Обычно аутентификацию с использованием ключей совмещают с процедурой генерации парного симметричного ключа с целью его дальнейшего использования для обмена сообщениями. Наиболее известной процедурой взаимной аутентификации пары абонентов является метод Диффи и Хеллмана. Он широко описан как в статьях самих авторов, так и в независимых работах. Суть метода состоит в том, что каждый из участников обмена путем математических преобразований своего секретного ключа и открытого ключа своего корреспондента и обмена несекретными посылками получают независимо друг от друга секретное число. Поскольку секретный и открытый ключи абонентов связаны некоторым соотношением, то есть возможность подбора преобразований ключей так, что полученные обоими абонентами числа совпадают. Полученное секретное число можно использовать в качестве разделяемого секрета. Другим интересным методом аутентификации является использование аутентификационного токена. Аутентификационный токен представляет собой физическое устройство, обычно небольших размеров для удобства его ношения с собой. Это может быть смарт-карта или недавно появившиеся устройства, подключаемые к порту USB и выполненные в виде брелока. Обычно аутентификационный токен содержит «на борту» энергонезависимую память и специализированный процессор. Некоторые устройства дополнительно имеют встроенный аппаратный генератор случайных чисел или таймер (часы реального времени). Процессор токена в зависимости от мощности способен выполнять самые различные операции. Есть процессоры, способные выполнять шифрование данных алгоритмом DES или вычислять хэш-суммы с использованием ключа (HMACMD5). Специализированный токен позволяет производить криптографические преобразования без извлечения ключа из памяти токена и передавать между токеном, компьютером и информационной системой только несекретные или зашифрованные данные, что дополнительно защищает протокол аутентификации от перехвата ключей. Обычно программный доступ к токену возможен только после ввода PIN кода, известного только владельцу аутентификационного токена. Дополнительные возможности токенов позволяют реализовать более надежные протоколы аутентификации. Интересную технологию аутентификации, основанную на «одноразовых паролях», предложила компания Security Dynamics. Технология носит название SecureID. Одноразовыми паролями являются псевдослучайные числа. Генератором последовательности псевдослучайных чисел является аутентификационный токен. RSA Security предлагает несколько вариантов токена — смарт-карту, калькулятор с возможностью ввода PIN кода, брелоки. Каждый токен имеет уникальный серийный номер. Токен генерирует новое псевдослучайное число по одному в минуту. Период генератора псевдослучайных чисел таков, что время использования одного токена составляет два года. Для аутентификации по технологии SecureID информационная система должна содержать в себе аутентификационный сервер SecureID и базу данных, сопоставляющую имена аутентифицируемых пользователей и серийные номера токенов. Запрос на аутентификацию от пользователя состоит из его имени и случайного числа, считываемого пользователем с токена. Сервер, на основании полученного от пользователя числа и серийного номера токена, решает, принадлежит ли данное число последовательности, генерируемой именно этим токеном, или нет.

Указанные и многие другие методы аутентификации страдают одним недостатком — они, на самом деле, аутентифицируют не конкретного субъекта, а фиксируют тот факт, что аутентификатор субъекта соответствует его идентификатору. То есть все перечисленные методы не защищены от компрометации аутентификатора. Биометрические методы идентификации или аутентификации свободны от этого недостатка. Как уже отмечалось, биометрические методы основываются на анализе уникальных характеристик самого человека. Биометрическая характеристика может являться как идентификатором (как, собственно, дактилоскопия рассматривает отпечаток пальца как идентификатор личности), так и аутентификатором (пользователь вводит свое имя и подтверждает его, посмотрев в окуляр анализатора радужной оболочки глаза). Для некоторых приложений (например, для контроля доступа в помещения) идентификации оказывается достаточно. Для некоторых («параноидальных») случаев требуется ввести имя пользователя, его отпечаток пальца да еще и произнести кодовую фразу.

ПоказатьСвернуть
Заполнить форму текущей работой