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

Реферат

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

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

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

закрыть
Категория: Реферат
Язык реферата: Русский
Дата добавления:   
 
Скачать
Архив Zip, 17 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникального реферата

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

Саратовский Государственный Университет им . Н . Г . Чернышевского Курсовая работа «Хеш-функции в криптосистемах» Выполнил : студент 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 - 2016
Рейтинг@Mail.ru