КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лабораторная работа №6
Лабораторная работа №5 «Хэш-функция. CRC» Основные сведения. Алгоритм CRC использует деление многосленов с остатком над конечным полем GF(2). Значение CRC определяется остатком от деления многочлена, задаваемого входными данными, на некий фиксированный порождающий многочлен. Входным данным, представленным в виде последовательности a0,a1,a2,…,aM-1 сопоставляется многочлен P(x)=a0+a1x+a2x2+…+aM-1xM-1. Например, последовательности битов 01011010 соответствует многочлен (биты читаются справа налево): P(x)=x6+x4+x3+x. Значение CRC с порождающим многочленом G(x) степени N определяется как битовая последовательность длины N, представляющая многочлен R(x). Многочлен R(x) находится как остаток от деления многочлена P(x)×xN на многочлен G(x). Рассмотри пример. Для входного сообщения 01011001 многочлен будет иметь вид: P(x)=x6+x4+x3+1. Выберем порождающий многочлен: G(x)=x2+1. То есть N =2. Значит, осуществляем деление многочлена P(x)×x2= x8+x6+x5+x2. на G(x): x8+x6+x3+x2| x2+1 x8+x6 |x6+x+1 x3+x2 x3+x x2+x x2+1 x+1 Следовательно, R(x)=x+1, откуда CRC=11. Во всех вычислениях производится сложение по модулю 2 (XOR), поэтому вычитание совпадает со сложением. Рассмотрим один из возможных алгоритмов реализации CRC. Необходимо запрограммировать деление столбиком. Поясним, как это можно сделать на примере. Пусть порождающий многочлен представлен битовой строкой g=101, а входное сообщение имеет вид 10011101. Добавляем к входному сообщению три нуля, что соответствует умножению на x3. Получаем 10011101000. Берем старшие три бита и выполняем побитовый XOR с g: 100Å101=001. Дополняем следующими битами из входной последовательности, так чтобы было три знака 111 и выполняем побитовый XOR с g: 111Å101=010, и так далее 101Å101=000, 100Å101=001, Остался один 0, его добавляем к последнему значению, получаем 10, которое меньше 101, оно и будет искомым CRC. Итак СRC=10. Коллизией принято называть совпадения хэш-значений для различных входных сообщений.
Задание к лабораторной работе. 1. Реализуйте программу вычисляющую хэш-функцию CRC для сообщения длиной 1 байт с порождающим многочленом, заданным для вашего варианта. 2. Переберите все числа размером 1 байт и найдите все коллизии для вашей хэш-функции.
Варианты.
«Электронная цифровая подпись Эль-Гамаля»
Основные сведения. Выбирается простое число p и число g, являющееся примитивным по mod p. Эти числа являются открытыми. В качестве закрытого ключа подписи выбирается случайное число x (0<x<p-1). В качестве открытого ключа проверки подписи публикуется число: y=gx (mod p). Алгоритм формирования подписи: 1. Для сообщения M вычисляется хэш-значение h=h(M) такое, что 1<h<p. 2. Выбирается случайное число k (1<k<p-1) взаимно простое с p-1. 3. Вычисляется: r=gk mod p, u=h-xr mod p-1, s=k-1u mod p-1, где k-1 – число, удовлетворяющее равенству kk-1=1 mod p-1. Подписанным документом является тройка (M,r,s).
Алгоритм проверки подписи: 1. Для сообщения M вычисляется хэш-значение h=h(M). 2. Проверяется верность равенства yrrs=gh mod p.
Задание к лабораторной работе. 1. Реализуйте программу, формирующую электронную цифровую подпись по алгоритму Эль-Гамаля с параметрами, заданными в таблице. В качестве хэш-функции используйте CRC-код из лабораторной работы №5. 2. Реализуйте программу, проверяющую электронную цифровую подпись по алгоритму Эль-Гамаля с параметрами, заданными в таблице.
Варианты.
Дата добавления: 2015-06-28; Просмотров: 406; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |