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

Slides:



Advertisements
Similar presentations
Выпускная квалификационная работа на тему: «Применение интернет-технологий как фактор повышения эффективности функционирования организации (на примере.
Advertisements

Структура неофициального письма 1. Адрес отправителя (sender's address). 2. Дата (date). 3. Обращение (salutation). 4. Первая фраза (opening sentence).
ЗАРЯДКА НА АНГЛИЙСКОМ ЯЗЫКЕ.  Зарядка на уроке английского языка может стать самым любимым и веселым занятием для детей, при том, что она проходит исключительно.
Астрометрические каталоги К.В.Куимов, ГАИШ МГУ. Определение астрометрического каталога Астрометрический каталог – понятие неопределённое. Например, это.
Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 4. Реализация ПО: Проектирование с повторным использованием компонентов.
Системы с наследованием. Если систему можно представить в виде : Где - непрерывные функции, то такая система называется системой с наследованием. Математическое.
Системы отбора. Условные обозначения (1) (2) (3) (4) (5) (6) (7) Математическое моделирование процессов отбора2.
Использование пальцев рук в качестве вспомогательного инструмента при умножении чисел от 1 до 100.
Алгоритм приближённого join’а на потоках данных Выполнил : Юра Землянский, 445 группа Научный руководитель : Б.А. Новиков СПб, 2011 Санкт-Петербургский.
ЛОМОНОСОВ И МАТЕМАТИКА. Большое значение Ломоносов придавал математике, рекомендуя широко применять математические методы в других науках. Математику,
ООО «Баркод Маркет».  Инвентаризация имущества – программная система, позволяющая организовать учет любого имущества компании.  Уменьшение неконтролируемых.
R1R2R3R4R5R6R7R1R2R3R4R5R6R7. Аксиома R 1. В пространстве существуют плоскости. В каждой плоскости пространства выполняются все аксиомы планиметрии.
Социальный инжиниринг и социальные сети Актуальные угрозы для пользователей социальных сетей.
Некомпенсаторное агрегирование и рейтингование студентов Авторы: Гончаров Алексей Александрович, Чистяков Вячеслав Васильевич. НФ ГУ ВШЭ 2010 год.
«Влияние погоды и климата на здоровье человека»
Неотрицательное решение задачи Коши. Нередко постановка задачи требует чтобы фазовые переменные принимали лишь неотрицательные значения. Так, в физических.
Стресс и здоровье Презентация Нефёдовой Евгении Николаевны, классного руководителя 9 «Б» класса МОУ СОШ № 30 города Энгельса Саратовской области 2010 год.
Bank ownership and lending behavior Alejandro Micco, Ugo Panizza Politicians and banks: Political influences on government-owned banks in emerging markets.
Определение необходимого уровня запасов на складе.
Учитель математики Кулакова Т.М. МОУ ООШ №15 г.о Новокуйбышевск Самарской области Сентябрь 2011г.
Сохранение суммы фазовых координат. Важный частный случай представляют системы, в которых в течение всего процесса сохраняется постоянной сумма значений.
Что за хулиган толкает пассажиров автобуса то вперед, то назад? Этот хулиган, вернее, хулиганка -
Обзор последних достижений биометрических методов аутентификации РусКрипто 2005.
Частное равновесие на конкурентном рынке Частное равновесие: последствия государственного регулирования конкурентного рынка Распределение налогового бремени.
ООП Классы – 2. Ссылки Ссылка – еще одно имя объекта. Используйте ссылки вместо указателя. Это более безопасно. Complex c(10,10); Complex c2& = c; c2+=10;
Блок 3. Семейства белков I. Множественное выравнивание Первый курс, весна 2008, А.Б.Рахманинова.
Особенности Java. Блок static static { } Создание и уничтожение объектов  new – создание объекта  finalyze()
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
Номинация «Лучшее предложение по развитию массового спорта» «Строительство Роллердрома в городе Челябинск» Предложение подготовлено: Бобковой Екатериной.
Михаил Налётов Активные продажи на сайте. Может ли ваш сайт работать еще эффективнее?
Введение в параллельные вычисления. Технология программирования MPI (день третий) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Основы цифровой обработки речевых сигналов. Общая схема процесса речеобразования x[n] – дискретные отсчеты сигнала возбуждения y[n] – дискретные отсчеты.
Growing Neural Gas Method Нейросетевой метод построения неструктурированных адаптивных сеток.
Алгоритмы сортировки и поиска
Сравнение различных методов хранения XML в реляционных базах данных и в разных системах. Нгуен Тхань Хуен- 545 группа Руководитель : Б.А. Новиков Рецензент:
1 Ребенок в Сети. Ребенок играет?
Асимметричная криптография. Проблемы и идеи. Проблемы, связанные с использованием симметричных шифров Симметричные алгоритмы обеспечивают эффективное.
"The European Molecular Biology Open Software Suite"
Распределение наборов неоднородных по размеру заданий в кластерных системах на основе ClassAd механизма Голубев Александр Юрьевич, 542 группа Научный руководитель:
Особенности языка JavaScript и его использования.
Увеличение модульности программного обеспечения на языке Java Курсовая работа студента 345 группы Абишева Тимура Маратовича Научный руководитель: Профессор.
Кураева Екатерина Анатольевна, заместитель директора по УВР, учитель математики сш № 29.
Наследование и полиморфизм. «Быть» или «Иметь» а так же «Точно» или «Как получится»
Коллекции. Пространство имен System.Collections Наиболее простой вариант набора элементов — это массив System. Array. Он уже обладает весьма полезными.
Методы анализа данных. Статистическая проверка гипотез.
События. События Важная роль делегатов заключается в том, что на них основана модель событий С#. Применение событий вовсе не ограничено приложениями с.
Работа с массивами в C#.
Объектно-ориентированное проектирование DSP-систем в телекоммуникациях Подготовил: Сергеев Виктор Николаевич СПбГУ, математико-механический Факультет,
Федоров Роман Сергеевич
Формализованы ли цели? Устраивает ли вас команда? Каковы этапы процесса? Изменение ИТ структуры? Нужны подрядчики? 1.
Обработка исключений Гудов А.М., Завозкин С.Ю
Службы для электронного общения. Е-mail Maillists (Почтовая рассылка) Форум ICQ (Skype) IRC IP-телефония.
ВВЕДЕНИЕ В ВЫЧИСЛИТЕЛЬНУЮ МАТЕМАТИКУ Лекция 5 6 октября 2009 ВЫЧИСЛИТЕЛЬНАЯ ЛИНЕЙНАЯ АЛГЕБРА.
№2 Alfred Sherwood Romer «Капитан сидел на скале и цыкал: тс-тс-тс. Что-то шевелилось вокруг него, но что именно - нельзя было различить.» (Карел.
Множественное выравнивание С.А.Спирин, весна
XML Схемы XML документов. XML Schema созданая Microsoft позволяет избавиться от DTD блоков. Основа – использование пространств имен и очень точная типизация.
Обработка исключений в C# Единая техника обнаружения ошибок времени выполнения и передачи информации о них.
КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ Metro приложения: работа с данными Краковецкий Александр, MVP/RD/PhD. DevRain Solutions.
Переход от XML документов к RDF документам. Цель языка RDF Целью языка RDF (Resource Description Framework) является предоставление стандартного способа.
Saint Petersburg, 2011 Java Lecture Generics. Quiz ArrayList lst = new ArrayList(); Collection c = lst; lst.add("one"); lst.add(“two"); lst.add(“three");
Применение графического метода для решения различных математических задач Учитель гимназии №3 Шахова Т. А.
ТЕНДЕНЦИИ КАТЕГОРИИ «СНЕКИ» Товарная категория «снеки» для нашей страны довольно новое явление, особенно по сравнению с западными странами. Тем не менее,
‘For and Against’ Essays Useful tips. Plan Introduction - Paragraph 1 (state topic – summary of the topic without giving your opinion) Main Body – Paragraph.
Jokes Jokes Jokes Teacher: Where's your text book? Student: At home. Teacher: What's it doing there? Student: Having a.
Подготовила студентка 1 курса, группы БЭСО-02-17, Власова Софья.
Сетевое взаимодействие
November CTP Андрей Коршиков MCP-клуб, Краснодар Декабрь 2009.
* Любой табак кроме WTO Депозит берется в течение 20 мин, как подошли все гости* В депозит входят все позиции в меню* Депозит не возвращается*
Presentation transcript:

Хеш- алгоритмы Хеш - функции

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

Идеальная хеш – функция должна обладать следующими свойствами: 1.входные данные могут обладать произвольными размерами 2.выходные данные всегда обладают небольшим, фиксированным размером, вытекающим из используемого алгоритма 3.функция быстро вычисляется 4.ее трудно обратить (то есть это односторонняя функция); 5.вероятность возникновения коллизий невелика.

Что такое коллизия? Трудно найти два варианта входных данных, которые давали бы на выходе один и тот же хеш. Это может показаться странным на первый взгляд. Если вы можете иметь на входе данные произвольного размера, то число всевозможных вариантов входных данных бесконечно. Если при этом размер вычисляемого хеша фиксирован, то число возможных вариантов выходных данных конечно. Таким образом, очевидно, что должно существовать бесконечное число вариантов входных данных, дающих одинаковые хеши. Это похоже на парадокс. Однако, несмотря на бесконечное число вариантов, приводящих к коллизии, на самом деле найти хотя бы два варианта, дающих одинаковые хеши, чрезвычайно трудно!!! Таким образом, тот факт, что коллизии трудно найти, вытекает не из малого числа существующих коллизий (поскольку это число бесконечно велико). Коллизии трудно находить потому, что число вариантов сообщений, не приводящих к коллизиям, paдикально больше. Безопасность хеша основывается на чрезвычайной трудности нахождения даже вceгo лишь одной пары вариантов сообщения, приводящей к коллизии!

Хеш- алгоритмы, поддерживаемые в.NET Две наиболее часто используемые криптографические хеш-функции это SHA­1 (Secure Hash AIgorithm, хеширующий криптографический алгоритм), опубликованный NIST в середине 1990­x, и MD5 (Message Digest, дайджест сообщения), разработанный Р. Ривестом в начале 1990­x. В добавление к этому было опубликовано несколько новых вepсий SHA. Также для целей, связанных с аутентификацией сообщений, важную роль играет алгоритм ключевого хеша. Все упомянутые алгоритмы поддерживаются в.NET Framework в форме классов, производных от Hash­ AIgorithm:

Иерархия классов хеш-алгритмов Иерархию классов возглавляет абстрактный класс – HashAlgorithm, производный от класса Object. Производные абстрактные классы KeyedHashAlgorithm, MD5, SHAl, SHA256,SHA384, SHA512 представляют собой часто используемые криптографические алгоритмы

Класс HMACSHA1 и МАСТripleDES Класс HMACSHA1 производит ключевой хеш KeyedHashessageAuthentication Code - код аутентификации сообщения при помощи ключевого хеша или НМАС) при помощи хеш-функции SНA-1. Класс МАСТripleDES производит ключевой хеш НМАС при помощи шифрования TripleDES1, использованного в качестве хеш-функции. Ключевой хеш НМАС похож на цифровую подпись в том смысле, что eгo тоже можно использовать для верификации аутентичности и целостности сообщения, однако eгo отличие заключается в том, что для подтверждения обязательств eгo использовать нельзя.

Класс HashAlgorithm Класс HashAlgorithm обладает публичным свойством Hash, которое предоставляет собой байтовый массив, содержащий в себе вычисленный хеш. Публичное свойство HashSize содержит значение размера хеша в битах. Наиболее важный публичный метод класса HashAIgorithm – ComputeHash, возвращающий значение хеша в виде байтового массива, вычисленное для заданных во входном параметре байтовом массиве входных данных. В следующем коде иллюстрируется применение класса HashAIgorithm на примере конкретного производного класса, инкапсулирующеrо алгоритм SHAI. Предполaгается, что входные данные уже существуют в форме байтового массива messageByteArray. HashAlgorithm shal = new SНA1CryptoServiceProvider(); byte[] shalHash = shal.CoтputeHash(messageByteArray);

MD5 и SHA Класс SHA1 инкапсулирует алгоритм SHA-1, который обрабатывает входные данные размера не более 264 бит, производя при этом хеш размером 160 бит. Алгоритм SHA-был принят в качестве стандарта NIST под названием SHS( Secure Hash Standart, стандарт безопасного хеша). В документе FIPS PUB утверждается, что он основан на принципах алгоритма MD4. Таким образом, часто используемые алгоритмы MD5 и SHA-1 схожи друг с другом. Класс MD5 инкапсулирует алгоритм MD5, который производит 128- битовый хеш из входных данных произвольного размера. Этот алгоритм первоначально предназначался для приложений цифровой подписи, в которых хеш шифруется секретным ключом RSA. MD5 является расширением алгоритма MD4(Алгоритм Ривеста), при этом, работая немного медленнее, он обеспечивает более высокий уровень безопасности.

SHA256, SHA384 и SHA512 Классы SHA256, SHA384 и SHA512 инкапсулируют набор родственных хеш-алгоритмов, которые производят хеши размером 256,384 и 512 бит. Эти новые алгоритмы, определенные документом FIPS PUB в 2002 году, ведут свое происхождение от SНA-1. Они были созданы, поскольку со времени первоначальной публикации SНA-1 в 1993 году возникли опасения, что размер хеша в 160 бит не обеспечивает высоконадежной защиты на длительную перспективу. В то время как атака методом «грубой силы. на n-битовый симметричный алгоритм измеряется рабочим фактором, пропорциональным 2 в степени n, такая же атака на n-битовый криптографический хеш, измеряется рабочим фактором, пропорциональным 2 в степени n/2. Причина кроется в том, что атака «по дню рождения(birthday attack) на хеш считается успешной, если найдены всего два варианта входных данных, дающих одинаковые хеши. Следовательно, рабочий фактор aтaки на 160- битовый алгоритм SНA-1 пропорционален, практически, всегo лишь 280. Это достаточно большое число, и такая атака, вероятно, недоступна почти для всех современных противников, но в расчете на длительный период этот уровень безопасности, вероятно, уже недостаточен.

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

Идентификаторы объектов Существует большое число идентификаторов OID(Object Identifiers - идентификаторы объектов) идентифицирующих конкретные протоколы, алгоритмы и форматы дaнных. В частности, большинство криптографических алгоритмов признаны институтом ANSI и получили уникальные идентификаторы OID. Как мы убедимся, некоторые из этих идентификаторов OID необходимо использовать в определенных методах классов.NET Security Framework таких, как методы SignHash и. VerifyHash классов RSACryptoServiceProvider и DSACryptoServiceProvider.

В приведенном ниже фрaгменте кода показано, как идентификатор OID используется в качестве параметра метода SignНash класса RSACryptoServiceProvider. Разумеется, здесь предполaгается, что переменная (байтовый массив) hashbytes уже создана вызовом метода ComputeHash класса SHA1.