Автор работы: Пользователь скрыл имя, 18 Марта 2012 в 11:16, курсовая работа
С зарождением человеческой цивилизации возникла необходимость передачи информации одним людям так, чтобы она не становилась известной другим. Сначала люди использовали для передачи сообщений исключительно голос и жесты. С возникновением письменности задача обеспечения секретности и подлинности передаваемых сообщений стала особенно актуальной. Поэтому именно после возникновения письменности появилось искусство тайнописи, искусство «тайно писать» – набор методов, предназначенных для секретной передачи записанных сообщений от одного человека другому.
ВВЕДЕНИЕ………………………………………………………………..………3
1. Теоретическая часть…………………………………………………..……..…5
Введение…………………………………………………………….….…...5
1.1. Собственно о шифровании…….…………………..………..….....…..6
1.2. Хэш-функции и совсем чуть-чуть об электронной подписи…....…11
1.3. Системы идентификации и аутентификации……………………...13
Заключение……………………………………………….………….……18
2. Практическая часть……………………………………………………..…….15
2.1. Общая характеристика задачи……………………………………….15
2.2. Описание алгоритма решения задачи……...……………..…….…...17
Список литературы…………………………………………………….……….23
Но за удобство надо платить. В случае использования несимметричной криптографии платой является время и длины ключей. Характерной длиной ключей является при использовании несимметричной криптографии – 512–1024 бит. Сейчас, когда стали доступны высокопроизводительные вычислительные системы, набирает популярность использование 2048 битных ключей. Можно ли сократить время шифрования, сохранив удобство несимметричной криптографии и добавив скорость блочных шифров? Оказывается можно. Обычно поступают так: вырабатывают случайную (или псевдослучайную) последовательность и используют ее в качестве одноразового (так называемого сеансового) ключа для шифрования документа быстрым симметричным алгоритмом. Затем, используя несимметричный алгоритм, шифруют сеансовый ключ и передают его в зашифрованном виде вместе с документом. При расшифровании документа сначала расшифровывают сеансовый ключ, а затем и сам документ. Из за того, что сеансовый ключ имеет малую длину, на его шифрование тратится немного времени. Используемые сейчас симметричные криптоалгоритмы имеют производительность порядка мегабайта в секунду (для программных реализаций) и десятков мегабайт в случае использования специализированных криптопроцессоров.
Несимметричные алгоритмы показывают производительность от единиц до десятков килобайт в секунду, в зависимости от длины ключа. При длине сеансового ключа в 8–32 байта подобная гибридная криптосхема оказывается вполне эффективной. Но вернемся ненадолго к оценкам стойкости несимметричных алгоритмов и к проблемам, возникающим при их использовании. В настоящем обзоре мы постараемся обойтись без математических выкладок и формул, однако, отметим, что сложность восстановления секретного ключа по открытому определяется сложностью разложения большого числа на простые сомножители (так называемая «задача факторизации») или сложностью задачи «дискретного логарифмирования». Задачу «дискретного логарифмирования» можно сформулировать так: взяли некоторое известное число, возвели его в неизвестную степень и остаток от деления этой экспоненты на некоторое известное большое простое число(так называемый модуль) сообщили в качестве результата. Все числа натуральные. Найти показатель степени. Характерные длины чисел, участвующих в вычислениях – несколько сотен десятичных разрядов (вот те самые 512–1024–2048 бит). Сегодняшние результаты теории сложности гласят, что вычислительная сложность задачи дискретного логарифмирования экспоненциально зависит от величины модуля. Но никому еще не удалось строго доказать, что эта зависимость не может быть полиномиальной. Если вдруг завтра какой-нибудь гениальный математик найдет быстрый способ факторизации больших чисел, то может случиться так, что мы окажемся без несимметричной криптографии. Хотя вероятность этого события математики оценивают как близкую к нулевой. Используя несимметричную криптографию полезно помнить об этаком «дамокловом мече».
1.2. Хэш-функции и совсем чуть-чуть об электронной подписи.
Как отмечено во введении, криптографическими методами можно обеспечить не только конфиденциальность, но и проконтролировать целостность передаваемых или хранимых данных. Контроль целостности в основном производится путем расчета некоторой «контрольной суммы» данных. Математиками и инженерами, работающими в области передачи данных и теории кодирования, разработано множество алгоритмов, рассчитывающих контрольные суммы передаваемых данных. Для многих приложений простой контрольной суммы (например, известного алгоритма crc32 или последовательного побайтного или пословного сложения исходного текста с известной константой) оказывается достаточно, особенно тогда, когда важна скорость обработки данных и не известен заранее объем данных (типичный случай – передача данных по каналам связи).
Проблема простых алгоритмов вычисления контрольной суммы в том, что достаточно легко подобрать несколько массивов данных, имеющих одинаковую контрольную сумму. Криптографически стойкие контрольные суммы вычисляются как результат применения к исходному тексту так называемой хэш-функции2.
Одним из результатов теории сложности и теории функций является гипотеза о существовании односторонних функций. Под односторонней функцией понимается функция, определенная (например) на множестве натуральных чисел и не требующая для вычисления своего значения больших вычислительных ресурсов. Но вычисление обратной функции(то есть, по известному значению функции восстановить значение аргумента) оказывается невозможно теоретически или (в крайнем случае) невозможно вычислительно. Строгое существование односторонних функций пока не доказано. Поэтому все используемые в настоящее время хэш-функции являются лишь «кандидатами» в односторонние функции, хотя и имеют достаточно хорошие свойства. Основными свойствами криптографически «хорошей» хэш-функции является свойство рассеивания, свойство стойкости к коллизиям и свойство необратимости. О необратимости мы уже говорили. Коллизией хэш-функции H называется ситуация, при которой существуют два различных текста T1 и T2, но H(T1) = H(T2). Значение хэш-функции всегда имеет фиксированную длину, а на длину исходного текста не накладывается никаких ограничений. Из этого следует, что коллизии существуют. Требование стойкости к коллизиям обозначает, что для криптографически «хорошей» хэш-функции для заданного текста T1 вычислительно невозможно найти текст T2, вызывающий коллизию. Свойство рассеивания требует, чтобы минимальные изменения текста, подлежащего хэшированию, вызывали максимальные изменения в значении хэш функции.
Основные применяемые на сегодняшний день алгоритмы, реализующие хэш функции, являются MD2, MD4, MD5, SHA и его вариант SHA1, российский алгоритм, описываемый стандартом ГОСТ Р 34.11 94. ______________________________
Наиболее часто используются MD5, SHA1 и в России 34.11. Длина значения хэш-функции различна. Типичной длиной является 16–32 байта. В свете последних криптоаналитических результатов, вероятно, придется в недалеком будущем отказаться от MD5, так как было заявлено: «его стойкость к коллизиям опустилась и, вероятно, подошла близко к той отметке, после которой о стойкости вообще говорить не приходится». В заголовок раздела вынесены слова «электронная подпись». Но не сказать об электронной подписи совсем было бы неправильно. Дело в том, что без несимметричной криптографии электронной подписи не было бы вообще! Идея электронной подписи проста. Когда описывался процесс шифрования с использованием несимметричного алгоритма, то отмечалось, что для зашифрования сообщения использовался открытый ключ, а для расшифрования – секретный. Но в применении к шифрованию ключи взаимозаменяемы. Можно зашифровать сообщение на своем секретном ключе, и тогда любой желающий сможет его расшифровать, используя открытый ключ. Это свойство несимметричных алгоритмов и используется при формировании и проверке электронно-цифровой подписи. Собственно ЭЦП документа – это его хэш сумма, зашифрованная секретным ключом. Проверка ЭЦП документа сводится к вычислению хэш суммы документа, расшифрованию хэш суммы, содержащейся в подписи, и сравнению двух величин. Если значения вычисленной и сохраненной в подписи хэш сумм совпали, то считается, что подпись под документом верна.
1.3. Системы идентификации и аутентификации.
Во многих приложениях задача идентификации и аутентификации доступа человека или программы к некоторому ресурсу является даже более важной, чем задача обеспечения конфиденциальности. Практически все многопользовательские и сетевые операционные системы требуют аутентификации пользователя. Равно как банкоматы и кассовые терминалы. С развитием интернета и безбумажных технологий число приложений, которые требуют аутентификации пользователей, будет только возрастать.
Итак, сначала – определения. В дальнейшем под субъектом будем понимать пользователя или пользовательского агента(программу), осуществляющего доступ к некоторому ресурсу. Под информационной системой будем понимать отдельный компьютер или компьютерную сеть, или иное электронное устройство, доступ к которому регламентируется определенной системой полномочий и/или прав. Задачей систем идентификации и аутентификации является определение и верификация набора полномочий субъекта при доступе к информационной системе. Идентификацией субъекта при доступе к информационной системе называется процесс сопоставления его с некоторой хранимой системой характеристикой субъекта – идентификатором. В дальнейшем идентификатор субъекта используется для предоставления субъекту определенного уровня прав и полномочий при использовании информационной системой. Аутентификацией субъекта называется процедура верификации принадлежности идентификатора субъекту. Аутентификация производится на основании того или иного секретного элемента (аутентификатора), которым располагают как субъект, так и информационная система. Обычно информационная система располагает не самим секретным элементом, но некоторой информацией о нем, на основании которой принимается решение об адекватности субъекта идентификатору.
Для того, чтобы эта сухая теория стала более понятной, рассмотрим конкретный пример. Перед началом интерактивного сеанса работы большинство операционных систем запрашивают у пользователя его имя и пароль. Введенное имя является идентификатором пользователя, а его пароль – аутентификатором. Операционная система обычно хранит не сам пароль, а его хэш сумму, обеспечивая тем самым практическую невозможность восстановления пароля. Использование пары «имя пользователя пароль» для аутентификации субъектов является наиболее распространенным, но не единственным. Принципиально разных методов аутентификации на самом деле немного. Один класс методов аутентификации основывается на том, что аутентифицируемый субъект должен иметь некоторый секретный элемент(пароль, секретный ключ или специальный аутентификационный токен). Другой класс методов аутентификации применим, в основном, для аутентификации людей. Он основывается на наличии уникальных физических свойств самого человека (отпечатки пальцев, форма кисти руки, голос, радужная оболочка глаза). У каждого класса методов есть как достоинства, так и недостатки. Сравнением обоих классов методов мы займемся чуть позже, а пока рассмотрим подробнее разные методы аутентификации.
Алгоритмически процедура аутентификации представляется как последовательная передача одной или нескольких информационных посылок между субъектом и информационной системой и промежуточная их обработка обеими сторонами. В результате этих действий обе стороны обмена должны удостоверить, что они являются теми, за кого себя выдают. Про аутентификацию секретным элементом мы уже говорили. Другим распространенным методом аутентификации является аутентификация с использованием сертификатов открытого ключа. Разработано и применяется несколько таких алгоритмов. Обычно аутентификацию с использованием ключей совмещают с процедурой генерации парного симметричного ключа с целью его дальнейшего использования для обмена сообщениями. Наиболее известной процедурой взаимной аутентификации пары абонентов является метод Диффи Хеллмана. Он широко описан как в статьях самих авторов, так и в независимых работах. Суть метода состоит в том, что каждый из участников обмена путем математических преобразований своего секретного ключа и открытого ключа своего корреспондента и обмена несекретными посылками получают независимо друг от друга секретное число. Поскольку секретный и открытый ключи абонентов связаны некоторым соотношением, то есть возможность подбора преобразований ключей так, что полученные обоими абонентами числа совпадают. Полученное секретное число можно использовать в качестве разделяемого секрета.
Другим интересным методом аутентификации является использование аутентификационного токена. Аутентификационный токен представляет собой физическое устройство, обычно небольших размеров для удобства его ношения с собой. Это может быть смарт карта или недавно появившиеся устройства, подключаемые к порту USB и выполненные в виде брелока. Обычно аутентификационный токен содержит «на борту» энергонезависимую память и специализированный процессор. Некоторые устройства дополнительно имеют встроенный аппаратный генератор случайных чисел или таймер(часы реального времени). Процессор токена в зависимости от мощности способен выполнять самые различные операции. Есть процессоры, способные выполнять шифрование данных алгоритмом DES или вычислять хэш суммы c использованием ключа (HMACMD5). Специализированный токен позволяет производить криптографические преобразования без извлечения ключа из памяти токена и передавать между токеном, компьютером и информационной системой только несекретные или зашифрованные данные, что дополнительно защищает протокол аутентификации от перехвата ключей. Обычно программный доступ к токену возможен только после ввода PIN кода, известного только владельцу аутентификационного токена. Дополнительные возможности токенов позволяют реализовать более надежные протоколы аутентификации. Интересную технологию аутентификации, основанную на «одноразовых паролях», предложила компания Security Dynamics. Технология носит название SecureID. Одноразовыми паролями являются псевдослучайные числа. Генератором последовательности псевдослучайных чисел является аутентификационный токен. RSA Security предлагает несколько вариантов токена – смарт-карту, калькулятор с возможностью ввода PIN кода, брелоки. Каждый токен имеет уникальный серийный номер. Токен генерирует новое псевдослучайное число по одному в минуту. Период генератора псевдослучайных чисел таков, что время использования одного токена составляет два года. Для аутентификации по технологии SecureID информационная система должна содержать в себе аутентификационный сервер SecureID и базу данных, сопоставляющую имена аутентифицируемых пользователей и серийные номера токенов. Запрос на аутентификацию от пользователя состоит из его имени и случайного числа, считываемого пользователем стокена. Сервер, на основании полученного от пользователя числа и серийного номера токена, решает принадлежит ли данное число последовательности, генерируемой именно этим токеном, или нет.
Указанные и многие другие методы аутентификации страдают одним недостатком – они, на самом деле, аутентифицируют не конкретного субъекта, а фиксируют тот факт, что аутентификатор субъекта соответствует его идентификатору. То есть, все перечисленные методы незащищены от компрометации аутентификатора. Биометрические методы идентификации или аутентификации свободны от этого недостатка. Как уже отмечалось, биометрические методы основываются на анализе уникальных характеристик самого человека. Биометрическая характеристика может являться как идентификатором (как, собственно, дактилоскопия рассматривает отпечаток пальца, как идентификатор личности), так и аутентификатором (пользователь вводит свое имя и подтверждает его, посмотрев в окуляр анализаторарадужной оболочки глаза). Для некоторых приложений(например, для контроля доступа в помещения) идентификации оказывается достаточно. Для некоторых(«параноидальных») случаев требуется ввести имя пользователя, его отпечаток пальца да еще и произнести кодовую фразу.
Наиболее распространенным методом (и дешевым) биометрической идентификации или аутентификации является анализ отпечатка пальца. При регистрации пользователя в базу данных аутентификационного сервера помещается свертка – некоторая хэш сумма отсканированного отпечатка пальца. В зависимости от реализации, длина свертки составляет 200–400 байт. Но у биометрических методов аутентификации личности есть один серьезный недостаток (кроме относительно высокой стоимости). В случае компрометации аутентификационного токена, ключа или пароля субъект может отказаться от его использования и получить новый аутентификатор. В случае компрометации электронного представления биометрического аутентификатора, человек может просто «выпасть» из процесса аутентификации. В случае использования биометрической характеристики как идентификатора личности, угрозы компрометации нет.
Заключение.
В данной работе я рассказала про историю развития криптографии, про основные криптографические методы защиты информации, а также про хэш-функции и системы идентификации и аутентификации.
Естественно, за пределами обзора остались такие области криптографических исследований как квантовая криптография, криптографические протоколы, хэш суммы с ключом, распределенные системы аутентификации или методы генерации псевдослучайных последовательностей.