Реферат по предмету "Информатика, программирование"


Хеш-функция UMAC

Міністерство освіти та наукиУкраїни
Харківськийнаціональний універсітет радіоелектроніки
ФакультетКОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ ТА УПРАВЛІННЯ
КафедраБЕЗПЕКИ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
КУРСОВИЙПРОЕКТ
ПОЯСНЮВАЛЬНАЗАПИСКА
 
Здисципліни “Програмування мовою Assembler”
ТЕМА:“Хеш-функція UMAC”
Виконав:                                                                     Перевірив:
Ст. гр. ****                                                                 *************   
*****************
Харків – 2008

Харківськийнаціональний університет радіоелектроніки
Факультет: КІУКафедра: Безпеки інформаційних технологій
Спеціальність: “Захист інформації з обмеженим доступом таавтоматизація її обробки”
Дисципліна:Програмування мовою “Assembler”
ЗАТВЕРДЖУЮ
Зав. кафедриБІТ проф. *******
“_____“_________________ 2008р.
ЗАВДАННЯ
НАКУРСОВИЙ ПРОЕКТ (РОБОТУ)
Студентові ___*********************************
(прізвище,ім'я, по батькові)
1.                    Тема проекту(роботи) ____Хеш-функціяUMAC____________
2.                    Термін здачістудентом закінченого проекту (роботи)__________________________19.01.2008р._________________
3.                    Вихідні дані допроекту:________Дані з предметної галузі, методичні вказівки.________________________________________
4.                    Змістпояснювальної записки (перелік питань, що їх потрібно розробити) ____Вступ, Аналіз предметноїгалузі, Опис програми, Основні особливості MASM32, інструкція користувача, Висновок.____
5.                    Перелікграфічного матеріалу (з точним зазначенням обов'язкових креслень, плакатів)
_______________________________________________________________________________________________________________________________
6.                    Основналітература та джерела
_______________________________________________________________________________________________________________________________
7. Дата видачі завдання_________________________________________
8. Дата здачі завдання _________________________________________
Керівник проекту(роботи)______________________________________
(підпис)                          (посада, прізвище, ім'я, по батькові)
Завдання прийняв до виконання _________________________________
 (підпис студента)
Студент______________________________________________________
 (підпис)

СОДЕРЖАНИЕ
ВВЕДЕНИЕ ………………………………………………………………….5
1Анализ предметнойобласти……………………………………………….7
1.1Основные особенности среды MASM32 ……………………………….7
1.2Анализ математических методов……………………………………….8
2 Постановка задачи………………………………………………………...9
3 Описание программы……………………………………………………..10
3.1 Общие сведения
3.2 Назначение и логическаяструктура
4 Инструкции пользователя
Выводы
Перечень ссылок
Приложение А Экранные формы программы
ПриложениеБ Текстымодулей программы

ВВЕДЕНИЕ
Продолжающеесяразвитие компьютерных технологий и повсеместное внедрение бизнес-процессов сиспользованием глобальной сети Интернет коренным образом изменяет устоявшиесяспособы ведения бизнеса. Системы корпоративной безопасности, обеспечивающиебизнес, тоже не могут оставаться в стороне.
Внастоящее время, например, средства электронной почты используются не толькодля общения между людьми, а и для передачи контрактов и конфиденциальнойфинансовой информации. Web-серверы используются не только для рекламных целей,но и для распространения программного обеспечения и электронной коммерции.Электронная почта, доступ к Web-серверу, электронная коммерция, VPN требуютприменения дополнительных средств для обеспечения конфиденциальности,аутентификации, контроля доступа, целостности и идентификации. В качестве такихсредств сегодня повсеместно используются средства криптографической защиты иинфраструктура открытых ключей (Public Key Infrastructure, PKI).
Системакриптографической защиты должна обеспечивать:
1.Конфиденциальность. Информация должна быть защищена от не-санкционированногопрочтения как при хранении, так и при передаче. Если сравнивать с бумажнойтехнологией, то это аналогично запечатыванию информации в конверт. Содержаниестановится известно только после того, как будет открыт конверт. В системахкриптографической защиты обеспечивается шифрованием.
2.Контроль доступа. Информация должна быть доступна только для того, для кого онапредназначена. Если сравнивать с бумажной технологией, то только разрешенныйполучатель может открыть запечатанный конверт. В системах криптографическойзащиты обеспечивается шифрованием.
3.Аутентификацию. Возможность однозначно идентифицировать отправителя. Еслисравнивать с бумажной технологией, то это аналогично подписи отправителя. Всистемах крипто-графической защиты обеспечивается электронной цифровой подписьюи сертификатом.
4.Целостность. Информация должна быть защищена от несанкционированной модификациикак при хранении, так и при передаче. В системах криптографической защитыобеспечивается электронной цифровой подписью.
5.Неопровергаемость. Отправитель не может отказаться от совершенного действия.Если сравнивать с бумажной технологией, то это аналогично предъявлениюотправителем па-спорта перед выполнением действия. В системах криптографическойзащиты обеспечивается электронной цифровой подписью и сертификатом.
Криптографическиехэш-функции играют фундаментальную роль в современной криптографии. Говоря вобщем хэш-функция h отображает двоичные строки произвольной конечной длины ввыходы небольшой (например, 64, 128, 160,192, 224, 256, 384, 512) фиксированнойдлины называемые хэш-величинами за полиномиальное время.
Областьприменения хэш-функции четко неоговорена: используется “для реализации процедурэлектронной цифровой подписи, при передаче, обработке и хранении информации в автоматизированныхсистемах”.
Среда программирования MASM32позволяет создавать тексты программ, компилировать их, находить ошибки иоперативно их исправлять; компоновать программы из отдельных частей, включаястандартные модули, отлаживать и выполнять отлаженную программу.
Используя перечисленные возможности, можно создаватьразличные прикладные программы, например, такие, как программа, написанная привыполнении данной курсовой работы.

1. АНАЛИЗ ПРЕДМЕТНОЙОБЛАСТИ
 
1.1 MAC-код аутентификации сообщения
Кодом аутентификации сообщения(MAC) является короткий фрагмент информации, используемый для проверкиподлинности сообщения. Алгоритм MAC принимает в качестве ввода секретный ключ исообщение подлинности произвольной длины, и выдает MAC (иногда называют меткой).Ценность MAC в том, что защищает целостность сообщения, а также егоаутентичность, позволяя контролерам (которые также обладают секретным ключом) выявлятькакие-либо изменения в первоначальном содержании передаваемого сообщения.
Сообщение целостности кода (MIC),отличается от MAC в том, что секретный ключ не используется в ее деятельности.Хотя эти термины иногда используются как взаимозаменяемые, MIC всегда должен быть закодирован в ходе передачи, если онбудет использоваться в качестве надежного гаранта целостности сообщения. Сдругой стороны, MAC, который использует секретный ключ, не обязательно долженбыть зашифрован чтобы обеспечить такой же уровень надежности.
Хотя MAC функции аналогичны криптографической хэш-функции,они имеют разные требования безопасности. MAC функция должна противостоять подделкетекстового сообщения. Это означает, что даже если злоумышленник имеет доступ коракулу, который обладает секретным ключом и генерирует MACдля выбранного злоумышленником послания, то он может «никогда» угадатьMAC.
MAC отличаются от цифровых подписей, ценностьюMAC является одновременно получене и проверка с помощью того же секретногоключа. Это означает, что отправитель и получатель сообщения должны договоритьсяо ключе до начала сообщения, как это имеет место в случае с симметричнымшифрованием. В отличие от цифровой подписи, где используется частноый ключ изпары ключей, который является асимметричным шифрованию. Поскольку это частныйключ, доступный только для его владельца, цифровая подпись доказывает, что документбыл подписан именно владельцем, а не кем-то другим. Таким образом, цифровыеподписи являются гаратнтом подлиности сообщения.
MAC алгоритмы могут быть изготовлены из других криптографических примитивов,таких, как криптографические хэш-функции (как в случае с UMAC),или для блочных алгоритмов шифрования (OMAC, CBC-MAC и PMAC).
/>Схема 1.Принцип MACалгоритмов
1.2 UHASH – универсальная функция хэширования.
UHASH – функция хэширования –сердцевина MAC алгоритма UMAC.
Допустим функцияхеширования выбирается из класса хэш-функции H, которая отображает сообщения вD, набор возможных резюме сообщения. Этот класс называется универсальным, еслидля каких-либо отдельных пар сообщений, имеются на множестве | H | / | D |функциий, которые отображают их в элемент D.
Это означает, что если злоумышленникхочет заменить одно сообщение другим, и, с его точки зрения, хэш-функция была выбранаабсолютно случайно, то вероятность того, что UMAC не обнаружить его изменение вбольшинстве случаев будет 1 / | D |.
Но это определение неявляется достаточно строгим, — если возможные сообщения 0 и 1, D = (0,1) и Нсостоит из личности и операции «не», то H носит универсальный характер. Но еслидайджест затем шифруется сложением по модулю, злоумышленник может изменитьсообщение и дайджест в то же время, и приемник не распознает знать разницу.
1.3                  Математическийанализ функции UHASH.
Класс хэш-функции Н хорошв использовании тем, что затруднит для атакующего угадать правильный дайджест d фальшивого сообщение f после перехвата одного сообщения А сдайджестом С. Другими словами
/>
должна быть оченьнебольшой, желательно 1 / | D |.
Можно легко построитькласс хэш-функции, когда D является полем. Например, если | D | являетсяпростым, все операции, принятые по модулю | D |. Сообщение а затем кодируетсякак н-мерный вектор над D (a1, a2, .., аn). Н затем | D | n +1 членов, каждый из которых соответствуетn +1- мерному вектору над D (h0, h1, .., hn). Если принять, что
/>
мы можем использовать правила вероятностей и комбинаторикичтобы доказать, что
/>
Если мы правильнозашифровали все дайджесты (например, при поможи кодировки (OTP)), злоумышленник не сможет получитьот них что-либо и в то же время хэш-функция может быть использована для всех контактовмежду двумя сторонами. Это не может быть правдой для шифрования ECB, поскольку может быть весьма вероятным,что два послания производят то же хэш-значение. Потом какой-либо вектор инициализациидолжен быть использован, который часто называют «nonce». Это стало распространеннойпрактикой для установки h0 = f(nonce), где f является также секретом.
Обратите внимание, чтоналичие огромного количества вычислительной мощности не поможет злоумышленникувообще. Если получатель ограничивает количество подделок она принимает ,| D |может быть 2 в 32 степени или меньше.

2.ПОСТАНОВКАЗАДАЧИ
Создать хэш-функцию UMAC (messageauthentication code based on universal hashing).
Наша функция будет24-битной. Причем ключ должен быть не длиннее сообщения. А зашифрованноесообщение будет также 24 бита и уже содержит ключ. Например, f («nonce»). Причем «nonce» не обязательно должно содержаться в незашифрованом сообщении.

3. ОПИСАНИЕ ПРОГРАММЫ
 
3.1 Основные действия.
 
3.1.1 Операции со строками
Сообщения, которые будутхэшированными рассматриваются как строки битов, заполненные нулями доопределенной длины байта. После того, как сообщение мягкий, все строкирассматриваются как строки байт. А «байт» состоит из 8 бит строка.Следующие записи используется для того, чтобы манипулировать этими строками.
 bytelength (S): Длинастроки S в байтах.
 bitlength (S): Длинастроки S в битах.
 zeroes(n): Строка из nнулевых байт.
S xor T: Строка, которая являетсярезультатом суммы по модулю 2 S
и Т. Строки S и T всегда имеют одинаковые
 длины.
 Sand T: Строка, которая получается в результате побитовой коньюнкции SиT
S[i]:i-тый байт строки(индексацияначинаеися с 1)
 S[i...j]:Подстрока строки S состоящая избайтов iчерезj.
 S|| T: Логическое «или» строк Sи T.
 zeropad(S,n):СтрокаS заполненая нуль-битами доближайшего положительного кратного nбайту. Формально, zeropad(S,n)= S || T,где Tкратчайшаястрока нуль-битов (возможно пустая), следовательно S||T непустое и 8nделитbitlength(S||T).
3.1.2 Операции с числами
Используется тандартнаязапись, как для большинства математических операций, такие как "*" дляумножения, "+" для сложения и «mod» для модульного сокращения.
 Некоторыеменее стандартной нотации определяются здесь.
 a^i:целое растущее до i-той мощности.
 ceil(x):минимальное целое больше равное x.
 начало(n):самое большое простое число менее чем 2^n.
 Простыечисла использованные в UMAC:
/>
3.1.3 Преобразовательные действия для строк и чисел.
Преобразованиемежду строками и целыми сделаны используя следующие функции. Каждая функциярассматривает начальные биты как более значимые чем те что идут позже
bit(S,n): Возвращает целому 1 если n-th бит строки равен S — 1, впротивном. случае возвращает целое 0 (индексы начинаются с 1).
 str2uint(S):Неотрицательное целое, чье бинарное представление является. трокой S.Более формально :
 Sis t bits long then str2uint(S) = 2^{t-1} *
 bit(S,1) + 2^{t-2} * bit(S,2) +… + 2^{1} *
 bit(S,t-1) + bit(S,t).
 uint2str(n,i):и-тый байт строки, например str2uint(S)= n.
3.1.4 Математические операции в строках
Одноиз первичных действий в UMAC – повторение применения операций сложения иумножения в строках. Действия "+_32","+_64", и"*_64" определены:
 «S +_32 T» as uint2str(str2uint(S) +str2uint(T) mod 2^32, 4),
 «S +_64 T» as uint2str(str2uint(S) +str2uint(T) mod 2^64, 8), and
 «S *_64 T» as uint2str(str2uint(S) *str2uint(T) mod 2^64, 8).
Этиоперации отлично выполняются на современных компьютерах.
3.2 Алгоритм UHASH
Вход:
 K,строка длиной KEYLEN байт.
 M,строка длиной меньше чем 2^67 бит.
 taglen,числа 3,4, 8, 12 or 16.
Выход:
 Y,строка длиной taglen байт.
 ВычислениеY использует следующий алгоритм:
 //
 //одна целая итерация за 3 байта для выхода
 //
 iters= taglen / 3
 //
 //определим общее число требуемых ключей при помощи KDF.
 //L1Key reuses most key material between iterations.
 //
 L1Key = KDF(K, 1, 1024 + (iters — 1) * 16)
 L2Key = KDF(K, 2, iters * 24)
 L3Key1 = KDF(K, 3, iters * 64)
 L3Key2 = KDF(K, 4, iters * 4)
 //
 //Для каждой итерации устанавливаем свой ключ и делаем трехслойный hash.
 //If bytelength(M)
 //
 Y =
 Дляi = 1 to iters do
 L1Key_i = L1Key [(i-1) * 16 + 1… (i-1) * 16 +1024]
 L2Key_i = L2Key [(i-1) * 24 + 1… i * 24]
 L3Key1_i = L3Key1[(i-1) * 64 + 1… i * 64]
 L3Key2_i = L3Key2[(i-1) * 4 + 1… i * 4]
 A = L1-HASH(L1Key_i, M)
 Если(bitlength(M)
 B = zeroes(8) || A
 иначе получим
 B = L2-HASH(L2Key_i, A)
 а если
 C = L3-HASH(L3Key1_i, L3Key2_i, B)
 Y = Y || C
 end for
 Return Y

4. Стойкость алгоритма к атакам.
Всоответствии с MAC спецификой, документявляется защищенным. Здесь мы описываем некоторые соображения по безопасностиважные для соответствующего понимания и использования UMAC.
4.1Сопротивление в Криптанализе
СилаUMAC зависит от силы своих основных шифровальных функций: ключевой выводфункции (KDF) и панель-вывода функции (PDF). В этой спецификации, оба действияосуществлены используя блочный шифр, по умолчанию Передовой ШифровальныйСтандарт (AES). Тем не менее, проект UMAC учитывает замену этих компонентов. Насамом деле, возможно даже использовать другое блочное кодирование или другие шифровальныеобъекты, как например, SHA-1 или HMAC для реализации KDF или PDF.
Сердцевинапроекта UMAC, функция UHASH, не зависит от шифровальных предположений: силаопределена чисто математической собственностью установленной с точки зрениявероятности столкновения, и эта собственность доказывается безусловно. Этоозначает что сила UHASH гарантирована независимо от авансов в криптанализе.
АнализUMAC показывает эту схему, чтобы иметь доказуемую безопасность, в смыслесовременной криптографии, посредством плотных уменьшений. Какие эти средства — то, что соперническая атака на UMAC, которая подделывается с вероятностью,которая значительно превышает установленную вероятность столкновения UHASHвызовет атаку сравнимой сложности. Эта атака сломает блочный шифр, в смыслеотличительный блочный шифр из семейства произвольных перестановок. Этотпроектый метод по существу избегает потребности в криптанализе на UMAC: какподразумевается криптоаналитические меры могли сфокусироваться в блочном шифре.
4.Повторнаяатака взломщика, повторяющего сообщение, nonce, и этикетку аутентификации. Вомногих приложениях, посторная атака может окончательно повредить сообщение,поэтому должна иметь препятствия. В UMAC, это должно быть реализовано приполучении собщения, получатель проверяет, что никакая «nonce» величина неиспользуется дважды. При надежной связи, когда «nonce» — счетчик, это тривиально.При ненадежной связи, когда «nonce» — счетчик, в окне происходит кэшированиепоследних «nonces». Поврежденное сообщение не запустится, т.к. выдастса ошибкав противном случае этикетки аутентификации правильные.
 Сообщениедойдет до получателя, когда данныйе (сообщение, nonce, этикетка) посчиталсись подлиными.Несомненно, этикетка должна быть в силе для сообщения и для «nonce», какопределено в UMAC, но сообщение может все еще посчитаться неаутентифицированным,поскольку «nonce» будет повторен.

5. Инструкция пользователя
Дляначала работы с программой находим umac.exe и запускаем его.
Наэкране появится «Enter message», после чего мы воодим нужное намсообщение и нажимаем Enter.Затем на экране появится «Enter key», после чегомы вводим ключ (длина ключа короче чем сообщения или равна ему. В противномслучае те символы, которые вышли за рамки сообщения принимать участия в кодированиине будут. ), известный только нам и получателю и снова жмем Enter.
Затемна экране видим зашифрованное сообщение. Программа выполнила требуемуюоперацию.

ВЫВОДЫ
— UMAC является самым быстрым среди MAC- алгоритмов.
— Являетсябезопасным и криптостойким. Выдерживает множество видов атак.
 -Припомощи данной хэш-функции можно зашифровать скольугодно большое количествоинформации.
— Нетобоснования выбора конструкции, функций, констант.
-Сохраняетконфиденциальность, аутентичность, целостность, неопровергаемость.

ПЕРЕЧЕНЬ ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1.        Зубков С. В. — Assembler – язык неограниченных возможностей.«ДМК Пресс» — 1999г.
2.        http://fastcrypto.org/umac
3.        http://en.wikipedia.org/wiki/UMAC
4.        КипР. Ирвин Язык ассемблера для процессоров INTEL, 4-е изд. /Пер. с англ. – М..: –Издательский дом “ВИЛЬЯМС”, 2005 г. – 912 с., ил. – Парал. Тит. Англ.
5. J. Black, S. Halevi, H.Krawczyk, T. Krovetz, and P. Rogaway, «UMAC: Fast and provably securemessage authentication», Advances in Cryptology — CRYPTO '99, LNCS vol.1666, pp. 216-233, Springer-Verlag, 1999.

ПриложениеА. Графическое представление программы.
1.  Открываемпрограмму и пишем сообщение:
/>
2.Вводим ключ:
/>
3.Получаем зашифрованное сообщение:
/>

ПриложениеБ.
 UMAC24 — код наассемблере.Это внешняя функция, которая прикомпилируется к коду на с++, вкачестве объектного файла.
.386
.modelflat,stdcall
PUBLIC UMAC24
.data
r1 db 0
r2 db 0
r3 db 0
byteCnt db 0
bitCnt db 0 ;?
counter dd 0
countmes dd 0
countres dd 0
.data?
s1 db ?
s2 db ?
s3 db ?
byte1 db ?
.code
UMAC24 procmessage:BYTE, secret:BYTE, len:DWORD, result:BYTE
mov edi,len
mmm:
.if byteCnt ==0
movecx,counter
mov al,secret
movbl,[eax+ecx]
mov s1,bl
inc ecx
movbl,[eax+ecx]
mov s2,bl
inc ecx
movbl,[eax+ecx]
mov s3,bl
inc ecx
movcounter,ecx
mov byteCnt,2
.endif
dec byteCnt
mov ecx,countmes
mov al,message
mov bl,[eax+ecx]
mov byte1,bl
inc ecx
movcountmes,ecx
mov ecx,7
metka:
mov al, byte1
AND al,1
.if ( al != 0)//msg not divisible by x
mov bl,s1 //soadd s1
xor r1,bl
mov bl,s2
xor r2,bl
mov bl,s3
xor r3,bl
.endif
shr byte1,1 //dividemessage by x
mov al,s3
AND al,80h
.if al != 0 //andmultiply secret with x, subtracting the polynomial when necessary to keep it's.
shl s3,1
mov al,s2
AND al,80h
.if al !=0
mov bl,s3
OR bl,1
mov s3,bl
shl s2,1
.endif
mov al,s1
AND al,80h
.if al !=0
mov bl,s2
OR bl,1
mov s2,bl
shl s1,1
.endif
mov al,s1
xor al,1Bh //x^24 + x^4 + x^3 + x + 1
mov s1,al
.else
shl s3,1
mov al,s2
AND al,80h
.if al !=0
mov bl,s3
Or bl,1
mov s3,bl
shl s2,1
.endif
mov al,s1
AND al,80h
.if al !=0
mov bl,s2
OR bl,1
mov s2,bl
shl s1,1
.endif
.endif
dec ecx
jns metka //foreach bit in the message
dec edi
jns mmm //foreach byte in the message
mov al,result
mov ecx,0
mov bl,[eax+ecx]
xor bl,r1
mov[eax+ecx],bl
inc ecx
mov bl,[eax+ecx]
xor bl,r2
mov[eax+ecx],bl
inc ecx
mov bl,[eax+ecx]
xor bl,r3
mov[eax+ecx],bl
mov bl,[eax+ecx]
xor bl,r3
mov[eax+ecx],bl
ret
UMAC24 endp
 END
Это код на С++.На немреализован ввод-вывод данных.Сам алгоритм выполняет функция.
#include
#include
#include
#include
#include
extern«C» __stdcall UMAC24(unsigned char *msg, unsigned char *secret, intlen, unsigned char *result); //объявили внешнюю функцию(ту которая на асме)
int bin(bool*str){
        
         longb(0);
         intcount(0);
         for(inti(31);i>=0;i--){
                   if(str[i]==1){b+=pow(2,count);}
                   count++;
         }
return b;
}
void main(){
          unsigned char msg[100]; //создалистатические массивы размером 100 символов
          unsigned charsecr[100];
          unsigned charrez[]={0,0,0,0}; //результат(хэш) имеет всегда фиксированное значение — 24 бита
          int len(0);//длина сообщения(кол-во символов в нем)
          cout
          cin.getline(msg,100);//считываем введенное сообщение в массив msg
          cout
          cin.getline(secr,100);//считываем ключ
          for(inti(0);;i++){len++;if(msg[i]==NULL){break;}} //считаем длину введенного сообщения
          UMAC24(msg,secr,len,rez);//вызываем внешнююфункцию
cout
boolmasbin[32];
int a;
for(intii(0);ii
for(intj=0;j
                   masbin[31-j]=rez[ii]%2;
                   rez[ii]=rez[ii]>>1;} //получилимассив с представлением числа в двоичной форме
a=bin(masbin);
cout
}cout
cin.get();
cin.get();
 }


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.