
- •Національний університет "львівська політехніка"
- •Лабораторна робота №1
- •Лабораторна робота №2
- •Лабораторна робота №3
- •Лабораторна робота №4
- •2. Обчислити значення . Лабораторна робота №5
- •Лабораторна робота №6
- •Лабораторна робота №7
- •Лабораторна робота №8
- •Лабораторна робота №9
- •Лабораторна робота №10
- •Лабораторна робота №11
- •Лабораторна робота №12
- •Лабораторна робота №13
- •Лабораторна робота №14
- •Лабораторна робота №15
- •Лабораторна робота №16
- •Лабораторна робота №17
- •Лабораторна робота №18
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет "львівська політехніка"
ІНСТИТУТ ПІДПРИЄМНИЦТВА ТА ПЕРСПЕКТИВНИХ ТЕХНОЛОГІЙ
КРИПТОГРАФІЧНІ ІНСТРУМЕНТИ
МЕТОДИЧНІ ВКАЗІВКИ
До виконання лабораторних робіт з курсу "Математичні основи захисту інформації"
для студентів базового напряму підготовки 6.050101 "Комп’ютерні науки "
Затверджено на засіданні кафедри "Інформаційних систем і технологій " Протокол № від
Львів 2013
Криптографічні інструменти : Методичні вказівки до виконання лабораторних робіт з курсу «Математичні основи захисту інформації» для студентів базового напрямку підготовки 6.050101 «Комп’ютерні науки»-Львів. Національний університет "Львівська політехніка". 2013. - 13 с.
Укладач: Волошин В.В., канд. фіз.-мат. наук, доцент.
Відповідальний
за випуск: __________________________________________.
Рецензенти: _______________________________________
__________________________________________________________.
Лабораторна робота №1
Тема: Бінарний метод піднесення до степеня
Мета: Навчитися реалізовувати та використовувати бінарний метод піднесення до степеня
Теоретичні відомості.
Однією з задач, що найчастіше
зустрічаюся при реалізації різноманітних
криптоалгоритмів, є задача піднесення
деякого числа до певного степеня, тобто
обчислення значення функції f(x)=
x
, зокрема піднесення до степеня за деяким
модулем n
-
.
Прямолінійний алгоритм (він буде
експоненційним) потребує значних
обчислювальних затрат. Проте відомо
набагато ощадливіший алгоритм,
котрий називається бінарний
метод піднесення до степеня.
Нехай
нам задано:
.
Потрібно
знайти
.
Подамо показник d в двійковій системі числення, тобто
,
де
.
Алгоритм буде складатись з l+1 команд. Спочатку покладаємо zo=l. Тоді і-та команда задається так:
Результатом
виконання
останньої є значення
.
Завдання.
Програмно реалізувати бінарний метод піднесення до степеня.
Обчислити значення
Лабораторна робота №2
Тема:Обчислення первісних коренів
Мета: Навчитися обчислювати первісні корені
Теоретичні відомості.
Нехай
р - натуральне число. Ціле число g
називається
первісним коренем за
модулем р, якщо лишок
є
твірним елементом групи Zp
*.
Первісні корені
існують для всіх простих модулів. Як
легко зрозуміти, g
є первісним коренем
за простим модулем р,
якщо послідовність g°
modp
=1, g1
modp,
g2
modp,...,gp-2
modp
містить всі елементи множини Zp*.
Нехай
задано розклад на прості множники
числа
.
Тоді g
є первісним коренем тоді і тільки
тоді, коли для всіх
виконується
умова
.
Завдання.
Програмно реалізувати процедуру знаходження первісного кореня за простим модулем.
Знайти всі первісні корені за модулем 11.
Лабораторна робота №3
Тема: Визначення квадратичних лишків
Мета: Навчитися визначати квадратичні лишки
Теоретичні відомості.
Нехай n
- натуральне число. Ціле х
називається квадратичним лишком за
модулем n,
якщо НСД(х,п)=1
і
для деякого у.
В цьому разі у
називається квадратичним коренем з х
за модулем n.
Якщо НСД(х,п)=1 і х
не є квадратичним лишком за модулем n,
то х
називається квадратичним нелишком за
цим модулем. Множину зведених квадратичних
лишків позначають
.
Важливою є лема:
Нехай р — непарне просте число. Тоді такі умови еквівалентні:
х є квадратичним лишком за модулем р.
якщо
- первісний корінь за модулем р, то для деякого парного k в
виконується рівність
.
Завдання.
Програмно реалізувати процедуру визначення квадратичних лишків.
Знайти всі квадратичні лишки та нелишки за модулем 13.