Zadania z krypto

Odpowiedź na zadanie 1
- ✅ Tak, po prostu musi tak być, inaczej nie będziemy mogli tego wyliczyć - Warunek konieczny istnienia odwrotności modularnej
- ✅ Tak, zachodzi taka właściwość Małe twierdzenie Fermata
- ❌ Nie, działamy na modulo B, więc ile byśmy B nie dodali, i tak wielokrotności B znikną
- ❌ Nie, wynikiem będzie liczba z zakresu
Odpowiedź na zadanie 2
- ✅ Tak, nie ma ku temu żadnych przeszkód
- ❌ Nie, generalnie lub jak ktoś miał na labach to mnożenie dwóch liczb pierwszych i . W przypadku gdy jedna z nich jest równa ( to liczba pierwsza), to wtedy , czyli może być parzysta
- ❌ Chyba nie, liczbę dobieramy w zupełnie inny sposób, czyli poprzez mnożenie dwóch liczb pierwszych i . Liczby i mają z nimi niewiele wspólnego.
- ✅ Tak, , gdzie i to liczby pierwsze.
Odpowiedź na zadanie 3
Skoro chcemy wysłać wiadomość szyfrowaną hybrydową, to na pewno treść wiadomości szyfrujemy AESem. Skorzystamy ze swojego klucza symetrycznego. Musimy teraz w jakiś sposób przesłać wiadomość razem z kluczem symetrycznym, no ale nie wyślemy klucza jawnie. Możemy skorzystać z asymetrycznego klucza publicznego odbiorcy, którym zaszyfrujemy nasz klucz symetryczny. Wtedy odbiorca bezpiecznie go sobie odszyfruje swoim prywatnym.
Czyli podsumowując: ✅ Asymetryczny klucz publiczny odbiorcy ✅ Symetryczny klucz nadawcy
Inne opcje nie wchodzą w grę. Musimy mieć cokolwiek od odbiorcy, ponieważ jeśli wszystkie szyfry wychodziły by tylko od nadawcy, to każdy mógłby je odebrać i odszyfrować, skoro akurat ten jeden konkretny odbiorca też może.
Klucz symetryczny odbiorcy też wchodzi w grę. Zakładając, że chciałby nam go wysłać, musiałby go najpierw zaszyfrować, a czym? No naszym kluczem publicznym. Mielibyśmy więc dostęp do klucza symetrycznego, zaszyfrowalibyśmy wiadomość, i odesłali bez niczego więcej. Jednak nie jest to stosowana taktyka:
GPT
W sytuacji, którą opisujesz, gdzie odbiorca wysyła swój klucz symetryczny do nadawcy, rzeczywiście musiałby go zaszyfrować kluczem publicznym nadawcy, aby zapewnić bezpieczeństwo przesyłania. Jednak nie jest to standardowa praktyka w szyfrowaniu hybrydowym, ponieważ wymagałoby to, aby odbiorca najpierw bezpiecznie przekazał swój klucz symetryczny nadawcy, co komplikuje proces i wprowadza dodatkowe ryzyko bezpieczeństwa. Standardowa procedura szyfrowania hybrydowego nie wymaga, aby nadawca posiadał klucz symetryczny odbiorcy. Zamiast tego nadawca generuje własny klucz symetryczny, który jest używany tylko raz (tzw. klucz sesyjny) i jest bezpiecznie przekazywany do odbiorcy zaszyfrowany kluczem publicznym odbiorcy.
Odpowiedź na zadanie 4
- ✅ Tak, funkcje hashujące zawsze zwracają jednakowo długie hashe
- ❌ Nie, wiadomości z hasha nie da się odtworzyć
- ❌ Fałsz, można uzyskać, nazywa to się kolizją
- ✅ Tak, to jest jedna z cech funkcji hashujących
Odpowiedź na zadanie 5
Szyfrowanie: - Deszyfrowanie: -
Odpowiedź na zadanie 6
Klucz symetryczny w AES może mieć 128, 192 albo 256. Wystarczająco bezpieczna jest długość 128 bitów.
Odpowiedź na zadanie 7
Pojęcie naiwnego bezpieczeństwa to ocena skuteczności bezpieczeństwa danego szyfru bazująca jedynie na ilości możliwych kluczy. Przykładowo, szyfrowanie wiadomości szyfrem vigenere może wyeskalować do nieskończoności możliwych kluczy, jednak nie czyni go to w żaden sposób bezpiecznym, ponieważ jest podatny na wiele innych ataków poza brute forcem.
Odpowiedź na zadanie 8
- RSA:
- Plusy:
- Jest szyfrem bezpiecznym
- Posiada parę kluczy, co umożliwia wymianę wiadomości bez ryzyka że ktoś inny ją odczyta
- Minusy:
- Jest dużo wolniejszy od szyfrów symetrycznych
- Wymaga dużo większej mocy obliczeniowej by zapewnić podobne bezpieczeństwo co AES
- AES:
- Plusy:
- Jest szyfrem bezpiecznym
- Jest bardzo szybki, bazuje na prostych operacjach matematycznych
- Minusy:
- Jest szyfrem symetrycznym, co uniemożliwia korzystanie z niego w sposób publiczny tak jak RSA. Nie podeślemy komuś klucza by zaszyfrował wiadomość i nam ją odesłał
Dlaczego są wykorzystywane wspólnie? Ponieważ idealnie się uzupełniają. Skoro RSA jest w stanie “nadawać” klucz publiczny, by móc pozwolić potencjalnym nadawcom coś do nas wysłać, to należy jedynie jeszcze pozwolić im zaszyfrować daną wiadomość efektywnie. A mogą to zrobić przy wykorzystaniu AES. Tworzą sobie klucz “sesji”, którym szyfrują wiadomość, a następnie kluczem publicznym RSA szyfrują ten klucz sesji i nam go odsyłają. My możemy sobie ten klucz odszyfrować i przeczytać wiadomość.

Odpowiedź
- ❓ To jest albo błąd, albo pułapka (hasło w kontekście kryptografii to to samo co szyfr, czyli zaszyfrowana wiadomość, a czytając to polecenie myślimy od razu o kluczu)
- ✅ Tak, skoro mamy klucz to i kłódka powinna od razu puścić
- ✅ Tak, inaczej mielibyśmy do czynienia z hashem
- ✅ Tak, np. RSA o i ma chujowe naiwne bezpieczeństwo, i przez to też łatwo jest ten przypadek zbruteforceować

Odpowiedź
- ✅
- ✅
Ważna uwaga, to to samo co . Nie rozumiem po co wykładowca dorzuca zbędne komplikacje

Odpowiedź
SPZAVWHK

Odpowiedź na zadanie 13
- ❌ Oj nie bracje, wektor plecaka odpowiada wektorowi binarnemu, czyli 3 to byłoby
- ✅ Tak, bo każdy znak w ASCII to jeden bajt, czyli 8 bitów, a wektor załadunku tutaj ma 8 bitów więc gituwa
- ❌ Nie mogą być, bo to są liczby które służą do przekształcenia plecaka łatwego w trudny, one muszą mieć . To nie są liczby które dorzucamy do plecaka!!!
- ❌ Spełnia, wektor jest superrosnący
Odpowiedź na zadanie 14
Odpowiedź na zadanie 15
Jest jako pierwsze zadanie w teście na górze

Odpowiedź na zadanie 9
✅ - Tak, to główna charakterystyka hasha, dlatego są bezpieczne bo nie prezentują żadnych widocznych zależności ❌ - W teorii funkcja powinna to zapewniać, ale jest to matematycznie niemożliwe, nawet jeśli SHA512 generuje możliwych hashy, to i tak jest to skończona liczba, nieważne jak duża, zawsze istnieje prawdopodobieństwo kolizji ❌ - LIE, hash z danego algorytmu ma zawsze tą samą długość ✅ - Dokładnie tak, pisałem o tym wyżej
Odpowiedź na zadanie 10
Odpowiedź na zadanie 11
Zakładając, że przyjmujemy, że klucz posiada 56 bitów (oczywiście zabrakło w specyfikacji zadania ale staram się nie wkurwiać), to należy policzyć to tak:
- Od 56 bitów odejmujemy 3*4 bity (bo jedna szesnastkowa liczba to 4 bity), zostaje nam 44 bity
- Czas średni to ilość kombinacji / 2, czyli
Odpowiedź na zadanie 12
No tego akurat w notatkach nie mam :D

Odpowiedź na zadanie 6
Dla AES może być 128, 192 i 256
Odpowiedź na zadanie 7
Wyjaśniałem wyżej
Odpowiedź na zadanie 8
Niezłe gówno, zauważcie że to się zapętla po prostu

Odpowiedź na zadanie 4
- ❌ Nie, wyjaśniałem wyżej
- ❌ Musi być, na tym polega algorytm
- ✅ Tak, po prostu tak
- ✅ Niby tak, ale czemu to chuj wie, nie ma to żadnego uzasadnienia, nie ma nic w internecie, wartości e i d nie mają żadnego bezpośredniego powiązania.

Odpowiedź na zadanie 5
A było wyżej hehe
Odpowiedź na zadanie 6
Nie gwarantuje, ponieważ istnieje wiele innych metod złamania szyfru. Świetnym przykładem jest Szyfr Vigenere który pomimo tego że posiada nieskończenie wiele różnych kombinacji, można szybko zawęzić poszukiwanie poprzez kryptoanalizę z użyciem np. metody anagramowej.
Odpowiedź na zadanie 7
Dobrze, zatem:
- Funkcja skrótu musi być jednokierunkowa - odwrócenie hasha nie ma być możliwe
- Funkcja skrótu musi być wrażliwa - mała zmiana musi bardzo znacząco wpływać na generowanego hasha by niemożliwe było szukanie patternów przy ewentualnym odwracaniu hasha
- Funkcja skrótu powinna generować wystarczająco duże hashe - w ten sposób unika się ewentualnych kolizji, a sama funkcja jest bezpieczniejsza
- Funkcja skrótu powinna być szybka - funkcje hashujące są wykorzystywane do hashowania min. dużych dokumentów, zatem ich wydajność jest kluczowa
- No i najważniejsze - funkcja skrótu powinna generować takiego samego hasha dla tej samej wiadomości, w przeciwnym wypadku funkcje hashujące byłyby nieużyteczne
Odpowiedź na zadanie 8
Szyfr stosuje operacje XOR na każdym bicie wiadomości. Szyfr sam w sobie raczej rzadko o ile w ogóle używany, jednakże operacja XOR jest wykorzystywana w wielu innych algorytmach szyfrujących, np. w AES.