Реферат: Хеш-функции в криптосистемах - текст реферата. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Реферат

Хеш-функции в криптосистемах

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 17 kb, скачать бесплатно
Обойти Антиплагиат
Повысьте уникальность файла до 80-100% здесь.
Промокод referatbank - cкидка 20%!
Заказать
Узнать стоимость написания уникального реферата

Узнайте стоимость написания уникальной работы

Саратовский Государственный Университет им . Н . Г . Чернышевского Курсовая работа «Хеш-функции в криптосистемах» Выполнил : студент 112гр . КниИТ Иванченко Е . С. г . Сарат ов 2001 Содерж ание Введение 3 Метод хэширования 3 Коллизии и реверс 3 Односторонние хэши 4 Список литературы и са йтов последняя Введение В наше время большую роль в информатике играют сетевые технолог ии , базирующиеся на объединении огромного чис ла машин в единую сеть . Одним из ярких примеров т акой сети является Internet. Она основана на многопользовательских операционных системах , позволяющих управлять данными , хран ящимися на удалённых машинах (серверах ) сразу нескольким людям . Иногда требуется сделать доступной для всех только часть докумен т ов . Например , зачастую требуется скрыть програмный код cgi-скрипта от посторонних глаз , но весьма нежелательно запрещать ег о исполнение . Для этого операционной системе необходимо “объяснить” , кто является владель цем . В большинстве операционных систем иден т ификация производится по логину и паролю . Но так как с файлом , в ко тором содержится этот пароль , работают не один , а несколько пользователей , то хранение его в открытом виде представляет угрозу сохранности документов . Для этого потребовалось шифрование да н ных. Метод хэширования Одним из наиболее расп ространённых методов криптования является хэширо вание . Метод хеширования позволяет хранить эл ементы из множества A в линейном массиве X . Мат ематически это можно записать так : h: A я 0, x-1 т . е . Функция h отображает каждый элемент множества A в индекс множества X . Например : пусть даны два множества A ‘ a ’ , ’ b ’ , ’ c ’ , … и X 0, 1, 2, … , то гда функция h:A я X ставит в соотве тствие каждому элементу из множества A элемент из множества B . Таким образом h( ‘ a ’ )=0 , h( ‘ c ’ )=2 и т . д. Коллиз ии и реверс Однако , возможно существование такого интервала на области определения функции , в границах к оторого она становится инъективной (т . е . если h( ‘ a ’ )=0, то существует такая функция , g: X я A , для которой g(0)= ’ a ’ ). Это означа ет , что только для одного элемента из множества A существует индекс x1. Функция будет инъективна и в том случае , если ни один элемент из A не отображается на интервал (x1, x2) при условии , что последний не равен нулю . В любом другом случае на каждый индекс множества X отображается более одного элем ента из A . Это так называемая коллизия хэш-функции . Реверс хэш-функции заключается в поиске всех отображаемых на данный индекс элементов . Дл я любого конечного множества это разрешимая задача , которая имеет наиб олее просто е решение на инъективных интервалах хэш-множе ства. Одност оронние хэши В криптовании используютс я особые хэш-функции , называемые односторонними . Функция я : X я Y называется односторонней , если я (x) может быть легко вы числена для любого элемента из множеств а X, тогда для всех элементов из множества Y вычисление такого аргумента x, для ко торого я (x)=y , не разрешимо полиномиально . Системы , построенные на односторонних функциях взлому , как правило , не поддаются . Основные аспекты написан ия При написан ием ал горитма kript особое внимание уделялось сл едующим аспектам : требования пользователя к алго ритму ; возможные варианты утечки зашифрованного пароля ; наиболее действенные методы расшифровки. 1. Требования пользователя Основны е требования к алгоритму с точки зр ения пользователя являются : надёжность ; скорость работы ; системные требования (необходимые ресурсы ). 2. Варианты утечки пароля Одной из главной причиной утечки пароля при использовании этого алгоритма служит его х ранение в открытом виде самим владельце м , поэтому большая часть атак в наше в ремя рассчитана на доверие пользователя (напр имер , по телефону звонит мнимый администратор сети и просит пароль для проведения профилактических работ ). В этом случае защита сводится к идентификации не только пользователя , но и машины , с которой производится запрос. Второй причиной служит его расшифровка. 3. Методы расшифровки Этот метод связан с использованием большинством пользователей слишком простых паролей (длиной менее 8 символов , или , пароль , несущий на сбе какую-то смысловую нагрузку (от чество прабабушки по маминой линии )). В это м случае атаки сводятся к перебору возмож ных паролей , а защита - к их усложнению. Для расшифровки пароля вторым методом , требуется знать его длину и алгоритм ш ифования . В слу чае , когда длина пароля составит менее восьми символов , можно вос пользоваться следующим алгоритмом : 1. Перевернуть зашифрованный пароль. 2. Так как размер блока не может быть более 5 байт и менее 1 байта , то разобьём его на 8 блоков и запишем в список (сп исок первых блоко в , список вторых , и т . д .). Получим восьми подсписковый список списков , каждый подсписок которого представляет собой все возможные бл оки шифрованных символов. 3. Пробегаем в цикле по подсписку , сверяя каждый элемент со всеми символами из ASCII следующим образом : If j*generate(x,n,j) = <элемент подсписка > then write(ord(j)), где j десятичный код символа , x - ключ , n - последовательный номер симво ла в пароле (в диапазоне [1, 8]). Если выполнило сь это условие , то выведем на экран на йденный символ . После выполнения алгоритма на выходе получим л ибо пароль , либо такую последовательность , из которой его можно получить. Описа ние В основе алгортма леж ит функция от трёх аргументов generate=trunc(k*(abs(sin(ln(a)*x)+ sin(cos(b)*x)))) : 1. ключа ( x ); 2. д есятичного код символа ( a ); 3. н омера символа во введённой строке ( b ). Она используется для преобразования десят ичного кода символа в число , лежащее в интервале от 0 до 2*k , где k - любое число це лого типа. Чем больше число k - тем меньше вероятн ость коллизий в дальнейшем . Посл е обработки символа он добавляется в спис ок списков процедурой add _ in _ list ( x : integer ; s : string ; var gr : llist ) следующим образом - l^.inf:=ord(s[k])*generate(x,ord(s[k]),k) , где l ^. inf - элемент списка списков , x - ключ ( для функции generate ), s - строка , разбиваемая на блоки по 8 символов . Каждый подсписок имеет длин у не более 8 элементов размером до 5 байт. Третим шагом является сложение соответс твующих элементов процедурой summ _ all ( gr : llist ; var a : array _ type ) из каж дого подсписка l в 8 элментный массив a , т.е . первый элемент из пе рвого элемента складывается с первым элементо м второго , третьего и т.д . подсписка и записывается в a [1] . Так - же поступаем и с другими элем ентами подсписков. Следующим щагом записываем в файл ключ и по очереди все элементы масси ва a , обработанные функцией FromIntToString () , которая переводит численны й тип в символьный и переворачивает. Для сверки пароля его требуется заши фровать заново по известному ключу и свер ить с зашифрованным экзем пляром. Вот исходный текст программы : kriptmod . pas unit kriptmod; interface type Plist=^list; list=record inf: word; num: 1..8; next: Plist; end; Llist=^List_of_list; List_of_list=record nb: Plist; inf : 1..32; next: Llist; end; array_type=array[1..8] of longint; function generate(x: integer; a, b: byte):integer; procedure add_in_llist(x: integer; s: string; var gr: llist); procedure print_llist(gr: llist); procedure summ_all(gr: llist; var a:array_type); function FromIntToString(L: longint):string; implementation -- Эта функция переводит из целочисленного типа в символьный ---------------------------------------------- function FromIntToString; var s: string; l1: longint; begin l1:=l; s:=''; while (l1 div 10>0) do begin case l1 mod 10 of 0: s:=s+'0'; 1: s:=s+'1'; 2: s:=s+'2'; 3: s:=s+'3'; 4: s:=s+'4'; 5: s:=s+'5'; 6: s: =s+'6'; 7: s:=s+'7'; 8: s:=s+'8'; 9: s:=s+'9'; end; l1:=l1 div 10; end; case l1 mod 10 of 0: s:=s+'0'; 1: s:=s+'1'; 2: s:=s+'2'; 3: s:=s+'3'; 4: s:=s+'4'; 5: s:=s+'5'; 6: s:=s+'6'; 7: s:=s+'7'; 8: s:=s+'8'; 9: s:=s+'9'; end; FromIntToString:=s; end; -- Функция генерации ( основная ) ---------------------------------------------- function generate; begin generate:=trunc(abs(122.5*(sin(ln(a)*x)+sin(cos(b)*x)))); end ; -- Процедура добавления в список списков ---------------------------------------------- procedure add_in_llist; var g: llist; l: plist; k, i, j: byte; begin k:=1; i:=1; while (k<=length(s)) do begin new(g); g^.inf:=i; g^.nb:=nil; j:=1; while (j<=8) and (k<=length(s)) do begin new(l); l^.inf:=ord(s[k])*generate(x,ord(s[k]),k); l^.num:=j; l^.next:=g^.nb; g^.nb:=l; k:=k+1; j:=j+1 end; g^.next:=gr; gr:=g; i := i +1 end ; end ; -- П роцедура заполнения массива a ----------------------------------- procedure summ_all; var g: llist; l: plist; i: 1..8; begin g:=gr; while g<>nil do begin l:=g^.nb; i:=1; while l<>nil do begin a[i]:=a[i]+l^.inf; l:=l^.next; i:=i+1 end; g:=g^.next; end; end; ------------------------------------------------ end. kript.pas : program kuzik; uses crt, kriptmod; var x: integer; i: 1..8; pass: string; l: Llist; arr: array_type; f: text; begin clrscr; randomize; -- Генерир уем число -- x:=abs(random(9999-101))+101; write('Password: '); textcolor(0);readln(pass); add_in_llist(x,pass,l); summ_all(l,arr); assign(f, 'shadow'); rewrite(f); writeln(f,x); for i:=1 to 8 do write(f,FromIntToString(arr[i])); writeln(f); close(f); textcolor(2); writeln('User added in base.'); repeat until key pressed; end. unkript.pas: program kuzik; uses crt, kriptmod; var x: integer; i: 1..8; pass, pass1: string; l: Llist; arr: array_type; f: text; s, s1: string; begin clrscr; write('Password: '); textcolor(0);readln(pass); --Открываем файл с паролями-- assign(f,'shadow'); reset(f); --Читаем ключ-- readln(f,x); --Читаем зашифрованный пароль-- readln(f,pass1); close(f); --Шифруем только что введённый пароль-- add_in_llist(x,pass,l); summ_all(l,arr); for i:=1 to 8 do s1:=s1+FromIntToString(arr[i]); --Сверяем его с паролем из shadow-- if (pass1=s1) then begin textcolor(2); writeln('Password correct.') end else begin textcolor(4); writeln('Password inco rrect!'); end; repeat until keypressed; end.
1Архитектура и строительство
2Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
На Украине запрещен роман А. Грина “Бегущая во волнам”, как пасквиль на уход украинской армии из Крыма.
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, реферат по программированию "Хеш-функции в криптосистемах", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2017
Рейтинг@Mail.ru