Laboratorium 1

Transkrypt

Laboratorium 1
Laboratorium 1
Wprowadzenie do kryptologii
1. Usługa poufności – kryptosystem hybrydowy
1.1. Generacja kluczy
1. Wybierz dwie liczby p i q i korzystając z testu Fermata lub testu Solovay’a-Strassena
sprawdź, czy wybrane liczby są pseudopierwsze. Jeśli test wykaże, że nie są, wybierz
następne aż do otrzymania dwóch liczb pseudopierwszych.
2. Korzystając z tablicy liczb pierwszych primes.txt sprawdć, czy uzyskane liczby
pseudopierwsze są liczbami pierwszymi.
Przykład: p=17, q=23
3. Przemnóż otrzymane liczby pierwsze p · q = n
Przykład: n = 17 · 23 = 391
4. Przy pomocy któregoś programu do faktoryzacji wyznacz czynniki wybranych
liczb. Należy zdać sobie sprawę, że odporność tego systemu kryptograficznego
polega wyłącznie na trudności faktoryzacji dużych liczb.
5. Wyznacz iloczyn φ(n) = (p − 1) · (q − 1) korzystając z operacji mnożenia.
Przykład: φ(n) = 16 · 22 = 352
6. Losowo wybierz liczbę e względnie pierwszą względem iloczynu φ(n), która
będzie częścią klucza publicznego. Sprawdzenie można wykonać posługując się
operacją NWD.
Przykład: e = 9
7. Korzystając z operacji odwrotności dla liczby e i powyższego iloczynu φ(n)
(liczby Eulera) wyznacz liczbę d, która będzie częścią klucza prywatnego.
Przykład: d = 313
1.2. Szyfrowanie
1. Przyjąwszy podstawienie przedstawione w tabeli 1 (kod ASCII), zakoduj
wybraną frazę. Fraza ta wraz z wybraną literą będzie kluczem sesyjnym dla
programu szyfrowania znajdującego się w ostatniej zakładce głównego
programu ćwiczenia.
Przykład: fraza ,,zyzio’’ = 122, 121, 122, 105, 111, wybrana litera: ,,f’’ = 102
2. Przygotuj wiadomość, która będzie bezpiecznie wysłana do koleżanki/kolegi.
Można ją utworzyć korzystając z ostatniej zakładki programu.
3. Korzystając z programu zaszyfruj wiadomość kluczem sesyjnym. Program
szyfruje plik szyfrem monoalfabetycznym.
a
b
c
d
e
f
g
h
i
j
k
l
m
97 98 99 100 101 102 103 104 105 106 107 108 109
n
o
p
q
r
s
t
u
v
w
x
y
z
110 111 112 113 114 115 116 117 118 119 120 121 122
A
B
C
D
E
F
G
H
I
J
K
L
M
65 66 67 68 69 70 71 72 73 74 75 76 77
N
O
P
Q
R
S
T
U V
W
X Y
Z
78 79 80 81 82 83 84 85 86 87 88 89 90
0
1
2
3
4
5
6
7
8
9
48 49 50 51 52 53 54 55 56 57
Tabela 1. Kody ASCII dla wybranych znaków alfanumerycznych.
4. Pobierz od koleżanki/kolegi jego klucz publiczny, tj. jego parę (e,n)
5. Korzystając z operacji potęgowania przy pomocy klucza publicznego kolegi e i
n zaszyfruj klucz sesyjny.
Przykład (dla klucza publicznego e = 9 i n = 391): 337, 223, 337, 371, 332,
204
6. Przekaż szyfrogram koleżance/koledze wraz z zaszyfrowanym kluczem
sesyjnym.
1.3. Odszyfrowanie
1. Po otrzymaniu szyfrogramu zaszyfrowanego Twoim kluczem publicznym, posługując się
operacją potęgowania oraz swoim kluczem prywatnym (d,n):
◦ odszyfruj otrzymany klucz sesyjny
◦ odkoduj go, pamiętając o tym, że ostatnia liczba odpowiada wybranej literze klucza
◦ odszyfruj wiadomość korzystając z zakładki „szyfr frazowy”
2. Podpis cyfrowy, CRC
2.1. Wyznaczenie CRC
1. Do wyznaczania 24-bitowej wartości CRC dla danego piku posłużymy się programem
crc.exe. W tym celu utwórz plik tekstowy zawierający wybrany tekst (przykładowo „ala ma
kota”). Następnie uruchom program crc.exe poleceniem crc <nazwa-pliku-tekstowego>.
2. Spróbuj nieznacznie zmienić zawartość pliku testowego, np. poprzez dodanie nowej linii lub
pojedynczego znaku i ponownie wyznaczyć CRC dla tego pliku. Następnie porównaj
otrzymane wyniki.
2.2. Podpisywanie wiadomości z wykorzystaniem RSA
1. Wyznacz wartość CRC wiadomości poprzednio wysłanej do koleżanki/kolegi
2. Dziesiątkową wartość CRC podziel na grupy liczb mniejszych od Twojego n
Przykład: CRC dla tekstu „ala ma kota”, tj. 4782441 oraz n=391 możemy otrzymać ciąg 4,
78, 24, 41
3. Przy pomocy Twojego klucza prywatnego zaszyfruj otrzymany ciąg, będący podpisem
cyfrowym Twojej wiadomości.
Przykład: dla klucza prywatnego (d=313, n=391) otrzymujemy 242, 330, 231, 95
4. Przekaż szyfrogram CRC koleżance/koledze
2.3. Weryfikacja podpisanej wiadomości
1. Odszyfruj zaszyfrowany kod CRC otrzymany od koleżanki/kolegi
2. Przy użyciu programu crc.exe wyznacz wartość kodu CRC dla podpisanej wiadomości
3. Porównaj obliczoną wartość z wartością otrzymaną od koleżanki/kolegi i skomentuj
otrzymany wynik
3. Pytania ogólne
3.1. Załóżmy, że wiadomość zaszyfrowana przez Ciebie w zadaniu pierwszym (tj. dokładnie ten sam
szyfrogram, który przekazałeś do koleżanki/kolegi) wpadła w ręce osoby niepowołanej,
podsłuchującej cały proces komunikacji przeprowadzony w ramach tego zadania. Czy Twoim
zdaniem osoba ta mogłaby odszyfrować przesłaną wiadomość? Jeśli tak, to jakie czynności
należałoby podjąć, aby taka wiadomość mogła pozostać tajna przez sensowny czas (np. 1 miesiąc)?
3.2. Znajdź w internecie informację związaną z naruszeniem bezpieczeństwa dowolnego systemu
informatycznego pochodzącą z ostatniego półrocza (przykładem podobnej sytuacji może być
włamanie do PlayStation Network w kwietniu 2011). Opisz następnie przyczynę tego incydentu,
jego skutki oraz wskaż w jaki sposób można było mu zapobiec.

Podobne dokumenty