Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Лабораторная работа № 3
“ИЗУЧЕНИЕ И ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ ДВУХКЛЮЧЕВЫХ БЛОЧНЫХ КРИПТОГРАФИЧЕСКИХ АЛГОРИТМОВ, ОСНОВАННЫХ НА СЛОЖНОСТИ ДИСКРЕТНОГО ЛОГАРИФМИРОВАНИЯ В КОНЕЧНОМ ПОЛЕ“
Программное обеспечение:
- алгоритм вычисления хэш-функции;
- расширенный алгоритм Евклида для вычисления НОД двух чисел;
- алгоритм вычисления модульной экспоненты;
- алгоритм генерации простых чисел;
1. Изучить метод генерации общего секретного ключа для выполнения шифрования - дешифрования информации:
а) Используя генератор простых чисел получить число p.
б) Используя генератор случайных чисел и алгоритм модульной экспоненты получить образующую аp-1=1(mod p).
в) Используя генератор случайных чисел получить числа l<pиm<p.
г) Имитируя пользователя А и используя его секретный ключ l, вычислить его открытый ключ KA=al(mod p).
д) Имитируя пользователя B и используя его секретный ключ m, вычислить его открытый ключ KB=am(mod p).
е) Получить общий секретный ключ:
A : KBА=(am)l (mod p) и B: KАВ=(al)m (mod p)
ж) Проверить выполнение равенства KAB=KBA, сделать выводы, результаты занести в отчет.
2. Изучить методы шифрования-дешифрования информации по протоколу Эль-Гамаля:
а) Выбрать произвольную фразу (текст x), не превышающую 10 слов, и осуществить ее первичное преобразование в цифровой вид с использованием таблицы кодов ASCII.
б) Используя генератор случайных чисел получить l<p, t<p, где l- секретный ключ пользователя А, t - секретный ключ пользователя В.
в) Получить открытые ключи пользователей А и В:
КА= al(mod p), КB= at(mod p).
в) Имитируя пользователя А определить криптограмму, состоящую из пары чисел
c1=KA= al(mod p), c2= xKB -l (mod p)=x(at) -l (mod p).
При определении c2 дополнительно использовать алгоритм Евклида.
г) Имитируя пользователя В провести дешифрование:
x’=c2c1t(mod p)
д) Проверить совпадение текстов x и x’, сделать выводы, результаты занести в отчет.
3. Изучить методы шифрования-дешифрования информации по протоколу Месси-Омуры:
а) Используя генератор простых чисел получить открытый ключ p, значение которого не превышает int.
б) Используя генератор случайных чисел получить l, m<p.
в) Используя расширенный алгоритм Евклида определить обратные к ним числа l-1, m-1 по модулю p-1: ll-1=1(mod (p-1)), mm-1=1(mod (p-1)). Числа l,l-1 принадлежат пользователю А, числа m,m-1 - пользователю В и являются их секретными ключами.
г) Определить криптограмму yА=x1(mod p) (имитация пользователя А).
д) Определить криптограмму yАВ=yAm(mod p) (имитация пользователя B).
е) Определить криптограмму yВ=(mod p) (имитация пользователя А).
ж) Дешифровать криптограмму x’= (mod p).
з) Проверить выполнение равенства x’=x , сделать выводы, результаты занести в отчет.
4. Изучить процессы генерации цифровой подписи по протоколу Шнорра.
а) Используя генератор случайных чисел получить секретные ключи пользователя А: m, l<p, определить закрытый ключ для хэширования v=am(modp) и открытый ключ al(modp).
б) Используя алгоритм вычисления хэш-функции определить h(x,v)<q, где x,v – последовательная запись.
в) Имитируя пользователя А получить цифровую подпись:
- вычислить s=m-lh(x,v)(mod p);
- цифровой подписью будет совокупность (x, s, h(x,v)).
г) Имитируя пользователя В проверить подлинность подписи:
- вычислить v’=as(al)h(x,v)(mod p);
- определить хэш-функцию от последовательности x, v’: h(x,v’);
- проверить выполнение равенства h(x,v)= h(x,v’), сделать выводы, результаты занести в отчет.
1. Полученные значения секретных и открытых ключей по каждому пункту работы.
2. Сведенные в таблицу открытый текст, его код - представление в цифровом виде, криптограмму и результат дешифрования (по пп. 2,3).
3. Сведенные в таблицу открытый текст, его код - представление в цифровом виде, хэш-функцию, цифровую подпись и результат проверки цифровой подписи (по 4).
4. Выводы по каждому пункту работы.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.