# WDB sprawdzian
###### tags: `wdb`
### Polityka bezpieczeństwa
co jest i co nie jest dozwolone
### Zagrożenia
- ujawnienie
- manipulacja
- uzurpacja
- zakłócenie
### Mechanizmy bezpieczeństwa
- szyfrowanie
- kontrola dostępu
- integralność danych
- wymiana uwierzytelnienia
- podpisy
### Bezpieczeństwo szyfrowania
To, że nikt nie może znaleść plaintext nie oznacza, że szyfrowanie jest bezpieczne.
To, że nikt nie może odnaleść żadnych znaczących informacji z szyfrogramu nie oznacza, że szyfrowanie jest bezpieczne.
Szyfrowanie jest bezpieczne gdy adwersarz nie może obliczyć funkcji plaintextu z szyfrogramu.
Szyfrownanie jest perfekcyjnie sekretne
gdy dla M - message, C - szyfrogram, K - klucz, E - szyfrowanie D - deszyfrowanie mamy:
P[C = c] > 0
P[M = m | C = c] = P[M = m]
lub
P[C = c|M = m] = P[C = c]
lub
P[C = c|M = m0] = P[C = c|M = m1]
### DIFFIE-HELLMAN KEY EXCHANGE
A l i c e: X = g^x
B o b : Y = g^y
A l i c e: Y^x
B o b : X^y
Ke y Y^x
= g^xy = X^y
### Chosen ciphertext attack (CCA)
Atak z wybranym szyfrogramem (ang. chosen ciphertext attack, CCA) – jedna z metod łamania szyfrów, która zakłada, że kryptoanalityk ma możliwość wybrania różnych szyfrogramów oraz zdobycia tekstów jawnych tych szyfrogramów. Metoda ta zazwyczaj jest stosowana do łamania szyfrów opartych na kluczu publicznym
### Chosen plaintext attack (CPA)
Atak z wybranym tekstem jawnym (ang. chosen-plaintext attack) – jedna z najpopularniejszych metod łamania szyfrów, która zakłada, że atakujący ma możliwość wybrania tekstu jawnego do zaszyfrowania i zdobycia odpowiadającego mu szyfrogramu. Celem tego ataku jest zdobycie jakichkolwiek informacji na temat zaszyfrowanej wiadomości lub klucza szyfrującego.
### Ciphertext-only attack
Atak z szyfrogramem – jedna z metod łamania szyfrów, która zakłada, że kryptoanalityk dysponuje pewną liczbą szyfrogramów, które zostały zaszyfrowane tym samym algorytmem. Celem ataku jest odszyfrowanie jak największej liczby zdobytych szyfrogramów lub zdobycie klucza deszyfrującego.
### Known-plaintext attack
jedna z najpopularniejszych metod łamania szyfrów, która zakłada, że kryptoanalityk dysponuje zarówno szyfrogramami, jak i ich tekstami jawnymi, dzięki którym ma możliwość uzyskania klucza szyfrującego. Istnieje wiele sposobów zdobycia szyfrogramu danego tekstu jawnego: może zostać przechwycony lub przekupiona osoba może zaszyfrować konkretny tekst jawny.
### Szyfr cezara
M = C = K = zbiór o mocy N
Ek (m) = (m + k) mod N
Dk (m) = (m − k) mod N.
### One time pad
szyfr zaproponowany w 1917 roku przez Gilberta Vernama, którego, przy poprawnym wykorzystaniu, nie można złamać. Szyfr z kluczem jednorazowym jest dużym zbiorem o niepowtarzalnych i przypadkowych sekwencjach znaków. W pierwotnej postaci była to jednorazowa taśma perforowana do dalekopisu. Nadawca używa każdej litery z tego zbioru do zaszyfrowania jednego znaku tekstu jawnego. Szyfrowanie to dodanie modulo 26 jednego znaku tekstu jawnego i znaku jednorazowego klucza.
### Szyfrowanie CBC

## Pytania
### czym jest certificate pinning? dlaczego się go stosuje?
https://sekurak.pl/mechanizm-http-public-key-pinning/
Głównym urzędom certyfikacji trudno utrzymać kontrolę nad wszystkimi z nich i czasem zdarzają się nadużycia. Najnowszy głośny przypadek tego typu pochodzi z marca 2015, gdy egipska firma MCS Holdings wystawiła nieautoryzowane certyfikaty dla kilku domen Google. Dzięki temu pracownicy firmy mogli przeprowadzić atak typu MiTM (man in the middle) na część użytkowników usług Google, którzy nie byliby tego świadomi, bowiem przeglądarka internetowa nie wyświetliłaby żadnego ostrzeżenia o błędnym certyfikacie.
Aby rozwiązać opisany powyżej problem, w przeglądarkach Chrome oraz Firefox zaczęto stosować przypinanie certyfikatów (certificate pinning). Ten mechanizm pozwala określić, które urzędy certyfikacji są uprawnione do wystawienia certyfikatu dla danej domeny. Na przykład Google może zdefiniować, że wszystkie certyfikaty dla ich domen muszą zostać podpisane przez urząd certyfikacji Google Internet
### czym jest Extended validation dla certyikatów SSL?
Extended Validation certificates are high assurance identity certificates because they require verification of the domain owner, business organization and the legal entity of the business involved.
### kto da się nabra¢ na taki atak (kontekscie zadania 3)?
Większość osób
### czym są CRL, OCSP?

CRL - zawiera listę certyfikatów unieważnionych - czyli wszystkie certyfikaty, które zostały unieważnione przez CA lub właściciela i nie powinny być dłużej zaufane.

OCSP - Inną metodą przekazywania użytkownikom informacji o unieważnionych certyfikatach jest Online Certificate Status Protocol (OCSP). Zamiast pobierać najnowszą listę CRL i parsować ją w celu sprawdzenia, czy żądany certyfikat znajduje się na liście, przeglądarka żąda statusu konkretnego certyfikatu od serwera unieważnień CA wydającego certyfikat.
Używając numeru seryjnego certyfikatu, usługa OCSP sprawdza status certyfikatu, a następnie CA odpowiada cyfrowo podpisaną odpowiedzią zawierającą status certyfikatu. Odpowiedź OCSP zawiera jedną z trzech wartości: “dobry”, “odwołany” lub “nieznany”. Odpowiedzi OCSP są mniejsze niż pliki CRL i są odpowiednie dla urządzeń z ograniczoną pamięcią.
### co się stanie, gdy ktos pozna klucz tajny serwera www?
Będzie mógł poznać informacje przesyłane między serwerem, a klientem i być może podrobić podpis elektorniczy.
### co sie stanie, gdy ktos pozna klucz tajny CA, który podpisywal certyfikat serwera www?
Może sobie sam podpisywać certyfikaty i udawać daną domene.
### co sie stanie, gdy ktoś pozna klucz tajny jakiegoś CA?
Można sobie samemu podpisywać dowolne certyfikaty
### co się stanie, gdy pewne CA wydaje certyfikaty w oparciu o słabe funkcje haszujące np. MD5?
Podatnośc na collision atak powoduje, że możemy stowrzyć certyfikat, który wydaje się prawdziwy.
### czym są downgrade attacks na TLS?
Downgrade attack (ataki zdegradowania) na protokół TLS (Transport Layer Security) to atak, w którym atakujący zmusza klienta i serwer do użycia słabszej wersji protokołu TLS niż oryginalnie była proponowana.
W normalnym procesie negocjacji protokołu TLS, klient i serwer wysyłają do siebie listę obsługiwanych wersji protokołu i wybierają najwyższą wersję, którą obie strony obsługują. Jednak w ataku zdegradowania, atakujący może przechwycić i zmienić tę listę, usuwając wyższe wersje protokołu i pozostawiając tylko niższe, bardziej podatne na ataki.
Następnie, klient i serwer negocjują użycie niższej wersji protokołu, która jest bardziej podatna na ataki kryptoanalizy lub innych ataków na protokół TLS. W ten sposób atakujący może przechwycić, odczytać lub zmodyfikować dane, które byłyby w przeciwnym razie chronione przez wyższą wersję protokołu.
Ataki zdegradowania są szczególnie niebezpieczne, ponieważ atakujący może wykorzystać wiele narzędzi do łatwego przeprowadzenia takiego ataku, a wiele aplikacji i serwerów nie jest w stanie skutecznie chronić się przed tymi atakami.
Aby zabezpieczyć się przed atakami zdegradowania, zaleca się korzystanie z najnowszych wersji protokołu TLS oraz implementowanie mechanizmów bezpieczeństwa, takich jak HSTS (HTTP Strict Transport Security) i wymuszanie użycia wyższych wersji protokołu TLS. W ten sposób można ograniczyć ryzyko ataków zdegradowania i zwiększyć ogólną ochronę systemu przed atakami na protokół TLS.
### czym jest HTTP Strict Transport Security (HSTS)?
HTTP Strict Transport Security (HSTS) to mechanizm bezpieczeństwa, który pozwala na zwiększenie ochrony przesyłanych danych poprzez wymuszanie użycia protokołu HTTPS zamiast HTTP.
HSTS działa poprzez dodanie specjalnej nagłówka HTTP do odpowiedzi serwera. Nagłówek ten informuje przeglądarkę internetową, że dana witryna musi być zawsze ładowana przez bezpieczne połączenie HTTPS, a nie przez niezabezpieczone połączenie HTTP. Dzięki temu, nawet jeśli użytkownik wpisze adres strony z protokołem HTTP, przeglądarka automatycznie przekieruje użytkownika na adres z użyciem protokołu HTTPS.
Pozwala walczyc z downgrade atakami.
## Flagi
**Brak X-frame Options:**
``
Atak clickjacking: Bez ustawienia odpowiednich wartości w nagłówku X-Frame-Options, strona bankowa może być osadzana w ramkach na innych stronach, co otwiera drzwi do ataków clickjacking. Atakujący mogą stworzyć złośliwą stronę, na której osadzają stronę bankową, a następnie manipulować interfejsem użytkownika w celu przechwycenia poufnych danych, takich jak hasła lub informacje o płatnościach.
``
**Brak X-XSS-Protection:**
``
Ataki XSS: Bez ustawienia odpowiednich wartości w nagłówku X-XSS-Protection, strona bankowa może stać się podatna na ataki typu XSS. Atakujący mogą wstrzyknąć złośliwe skrypty do kodu strony, które będą wykonywane na komputerze użytkownika, co może prowadzić do kradzieży danych, przechwytywania sesji lub innych szkodliwych działań.
``
**Czemu X-XSS-Protection jest wycofywany?**
```
Nagłówek X-XSS-Protection jest stopniowo wycofywany z użycia, ponieważ istnieje pewna liczba ograniczeń i problemów związanych z jego implementacją. Oto niektóre z powodów, dla których ten nagłówek jest wycofywany:
1. Ograniczona skuteczność: Mechanizmy ochrony XSS w przeglądarkach, które są aktywowane przez nagłówek X-XSS-Protection, są stosunkowo proste i nie zawsze skuteczne w wykrywaniu i blokowaniu wszystkich rodzajów ataków XSS. Atakujący znaleźli różne sposoby obejścia tych mechanizmów, co zmniejsza ich skuteczność.
2. Możliwość generowania fałszywych pozytywów: Nagłówek X-XSS-Protection może czasami generować fałszywe pozytywy, co oznacza, że blokuje on niezainfekowane skrypty, które są niewinne, ale są fałszywie uznawane za potencjalnie złośliwe. To może prowadzić do problemów z wydajnością i funkcjonalnością aplikacji.
3. Różnice w obsłudze przez przeglądarki: Implementacja nagłówka X-XSS-Protection różni się między różnymi przeglądarkami, a niektóre z nich mają go domyślnie wyłączone. To powoduje, że nie jest to spójna metoda ochrony przed atakami XSS na wszystkich platformach.
4. Ewolucja innych mechanizmów ochrony: W miarę postępu w dziedzinie bezpieczeństwa webowego, pojawiają się bardziej zaawansowane mechanizmy ochrony przed atakami XSS, takie jak Content Security Policy (CSP) czy zabezpieczenia wbudowane w nowe wersje przeglądarek. Te bardziej zaawansowane mechanizmy oferują lepszą ochronę i większą kontrolę nad wykonywaniem skryptów na stronach.
```
**Brak ustawienia X-Content-Type-Options:**
``
Jeśli nagłówek X-Content-Type-Options nie jest ustawiony, przeglądarka może próbować interpretować zawartość w inny sposób niż określony przez nagłówek Content-Type. Konsekwencje takiego braku ustawienia to:
Ryzyko ataków typu MIME sniffing: Bez nagłówka X-Content-Type-Options, przeglądarka może próbować samodzielnie określić typ zawartości, co otwiera potencjalne luki bezpieczeństwa. Atakujący mogą wykorzystać tę lukę, aby podstępnie zmienić interpretację zawartości i wykonać złośliwe skrypty lub wyświetlić niepożądane treści na stronie bankowej.
``
**Brak StrictTransport-Security**
https://sekurak.pl/hsts-czyli-http-strict-transport-security/
możiwość użycia SSLStrip
``
Jeśli nagłówek Strict-Transport-Security jest ustawiony, to przeglądarka zostaje poinformowana o tym, że dana witryna powinna być zawsze odwiedzana tylko za pomocą protokołu HTTPS. Konsekwencje takiego ustawienia to:
Zwiększone bezpieczeństwo: Ustalając nagłówek HSTS, aplikacja bankowa wymusza użycie protokołu HTTPS, co oznacza, że cała komunikacja między przeglądarką a serwerem będzie odbywać się w sposób zaszyfrowany. To chroni dane użytkowników przed przechwyceniem, manipulacją lub atakami typu Man-in-the-Middle.
``
**Ciasteczka flagi:**
* The Expire and Max-Age
``
ustawienie czasu trwania ciasteczka
Możliwośc session hijackingu
``
* Secure
``
ciasteczka mogą być wysyłane tylko przez HTTPS
``
* Domain
``
Gdy flaga jest ustawiona wysyła ciasteczke do wszystkich subdomen
``
* Path
``
Wysyła ciasteczko do wszystkich podścieżek
``
* HttpOnly
``
Zabezpieczenie przed atakami XSS: Atakujący nie będą w stanie wykorzystać podatności XSS (Cross-Site Scripting) do kradzieży ciasteczek zawierających dane uwierzytelniające lub inne poufne informacje.
``
* SameSite
``
Flaga SameSite kontroluje, w jaki sposób przeglądarka przesyła ciasteczka w przypadku żądań z innych stron (cross-site requests). Ma na celu ochronę przed atakami typu Cross-Site Request Forgery (CSRF). Istnieją trzy możliwe wartości dla tej flagi:
"Strict" oznacza, że ciasteczko nie będzie wysyłane w przypadku żądań cross-site.
"Lax" oznacza, że ciasteczko będzie wysyłane tylko w przypadku bezpośrednich żądań GET z zewnętrznych stron (np. po kliknięciu na link).
"None" oznacza, że ciasteczko będzie zawsze wysyłane w przypadku żądań cross-site (wymaga również ustawienia flagi Secure dla ciasteczka).
Konsekwencje ustawienia różnych wartości tej flagi zależą od wymagań i kontekstu aplikacji bankowej.
``
## Czym jest protokół SSH?
Główne cechy SSH to:
Bezpieczeństwo: SSH zapewnia bezpieczne połączenie poprzez szyfrowanie danych przesyłanych między klientem a serwerem. Dane są szyfrowane, co uniemożliwia podsłuchiwaniem i przechwyceniem poufnych informacji, takich jak hasła.
Zdalne logowanie: SSH umożliwia zdalne logowanie się na inne komputery lub serwery. Użytkownik może zalogować się na zdalny system, używając swojego konta i hasła, a następnie zarządzać systemem z dowolnego miejsca.
Przesyłanie plików: Oprócz zdalnego logowania SSH obsługuje również przesyłanie plików między klientem a serwerem za pomocą protokołu SCP (Secure Copy) lub SFTP (SSH File Transfer Protocol). Pozwala to na bezpieczne przenoszenie plików między lokalnym i zdalnym systemem.
Tunelowanie portów: SSH może tworzyć bezpieczne tunelowanie portów, umożliwiając przesyłanie ruchu sieciowego między zdalnym i lokalnym komputerem poprzez zaszyfrowane połączenie. Jest to przydatne w przypadku zdalnego dostępu do aplikacji działających na zdalnym serwerze.
## Czym jest protokół PGP?
PGP (Pretty Good Privacy) to program komputerowy oraz protokół kryptograficzny używany do szyfrowania i podpisywania cyfrowego komunikacji.
Podpisy cyfrowe: PGP pozwala na podpisywanie cyfrowe wiadomości, co zapewnia autentyczność i integralność danych. Nadawca może podpisać wiadomość przy użyciu swojego klucza prywatnego, a odbiorca może zweryfikować podpis przy użyciu klucza publicznego nadawcy. Jeśli wiadomość zostanie zmieniona po podpisaniu, weryfikacja podpisu zakończy się niepowodzeniem.
Sieci Web of Trust: PGP umożliwia tworzenie sieci Web of Trust, w której użytkownicy mogą wzajemnie potwierdzać autentyczność kluczy publicznych innych użytkowników. Dzięki temu można zweryfikować, czy dany klucz publiczny należy do rzeczywistego właściciela.
## Co daje powiązanie klucza SSH z kontem?
Powiązanie klucza SSH z kontem użytkownika daje kilka korzyści:
Uwierzytelnianie bez hasła: Korzystając z klucza SSH, możesz logować się na serwer bez konieczności wpisywania hasła. To znacznie ułatwia proces logowania i zwiększa wygodę, jednocześnie zapewniając bezpieczeństwo.
Bezpieczeństwo: Klucze SSH zapewniają wysoki poziom bezpieczeństwa. Klucze są generowane na podstawie algorytmów kryptograficznych, co sprawia, że przechwycenie klucza publicznego nie umożliwia odczytania klucza prywatnego. Ponadto, w przypadku utraty klucza prywatnego, nie jest możliwe odzyskanie go, co chroni przed nieautoryzowanym dostępem.
Zarządzanie dostępem: Administratorzy serwerów SSH mogą zarządzać listą kluczy publicznych i kontrolować, które konta mają dostęp do serwera. Mogą dodawać lub usuwać klucze publiczne z listy, umożliwiając lub blokując dostęp do serwera
## Jakie wektory ataków są eliminowane przez 2FA?
- brute force, nawet gdy adwersarz zgadnie hasło to i tak musi przejść jeszce 2FA
- storny phishingowe tak samo, oraz wyciek danych
- malware
- MiTM
## Przed czym chroni PGP, a nie chroni SSH/2FA?
Ataki na poufność zawartości: Klucze PGP są stosowane głównie do szyfrowania komunikacji i plików, zapewniając poufność zawartości. Szyfrowanie danych za pomocą kluczy PGP chroni przed przechwyceniem i odczytem danych przez niepowołane osoby, nawet jeśli atakujący zdobył dostęp do komunikacji lub przechwycił pliki. W przypadku kluczy SSH/2FA, atakujący, który zdobył dostęp do komunikacji, nadal mógłby odczytać dane, ponieważ SSH i 2FA nie zapewniają domyślnie szyfrowania danych.
Ataki na integralność danych: Klucze PGP umożliwiają również podpisywanie cyfrowe, które pozwala na weryfikację autentyczności i integralności danych. Podpisanie cyfrowe z wykorzystaniem klucza PGP zapewnia, że dane nie zostały zmienione w trakcie przesyłania lub przechowywania. To zapobiega fałszerstwom i nieautoryzowanym modyfikacjom danych. Klucze SSH/2FA nie mają wbudowanych mechanizmów podpisywania cyfrowego.
Ataki na autentyczność nadawcy: Klucze PGP potwierdzają autentyczność nadawcy wiadomości. Używanie klucza publicznego osoby lub organizacji, której klucz został zaufany i zweryfikowany przez sieć Web of Trust, daje pewność, że nadawca jest rzeczywisty i nie podszywa się. To jest szczególnie ważne w przypadku komunikacji e-mailowej, gdzie ataki typu phishing lub podszywanie się pod innych są powszechne. Klucze SSH/2FA nie dostarczają natywnie takiej funkcji w celu zweryfikowania autentyczności nadawcy.
Warto zauważyć, że zarówno klucze PGP, jak i SSH/2FA mogą być skuteczne w ochronie danych i zapewnianiu bezpieczeństwa w różnych kontekstach. W zależności od konkretnego zagrożenia i wymagań bezpieczeństwa, stosowanie zarówno kluczy PGP, jak i SSH/2FA może być wskazane, aby zapewnić kompleksową ochronę danych.
## Czym są Application Specific Passwords?
Losowo generowane konto dla konkretnej aplikacji
## LFSR
LFSR to skrót od "Linear Feedback Shift Register", czyli liniowy rejestru przesuwnego z sprzężeniem zwrotnym. Jest to rodzaj sekwencyjnego układu cyfrowego, który składa się z rejestru przesuwnego, gdzie bity są przesuwane cyklicznie, a sprzężenie zwrotne jest używane do generowania kolejnych wartości.
## Content Scramble System (używany do DVD)
używa LSFR
## JWT vs sessionId
JWT zawiera <header, payload, signature> gdzie payload to informacje co user może zrobić, a signature to podpis.
Serwer otrzymuje podpis, weryfikuje go i na tej podstawie wyciąga informacje z payloadu.
Natomiast sessionId to jest jakiś randomomy string, który nie ma informacji o użytkowniku, a na serwerze jest trzymany ten numer sesji i weryfikowany stan sesji
## Cross-site request forgery
Użytkownik jest zalogowany w aplikacji internetowej A i posiada ważną sesję autoryzacyjną (np. poprzez token sesji lub token JWT).
Użytkownik odwiedza złośliwą stronę internetową B, która jest kontrolowana przez atakującego.
Strona B zawiera złośliwy kod, który automatycznie wysyła żądanie HTTP do aplikacji A w imieniu użytkownika. To żądanie jest skonstruowane tak, aby wykonać niechciane działanie, takie jak zmiana hasła, wykonanie płatności lub usunięcie danych.
Przeglądarka użytkownika automatycznie wykonuje żądanie HTTP do aplikacji A, ponieważ użytkownik jest już zalogowany w tej aplikacji. W tym momencie serwer aplikacji A uwierzy, że żądanie pochodzi od zaufanego użytkownika i wykonuje żądaną akcję.
## Szyfr Vigenere
Przesuwa literki o dane słowo (taki szyfr Cezara)
TO JEST BARDZO TAJNY TEKST
TA JNET AJNETA JNETA JNETA
klucz: TAJNE
RESULT: MO SRWM BJEHSO CNNGY CROLT
Trzeba zgadnąć długość klucza, patrzy się na powtórzenia
## Fingerprinting
Porównywanie plików: Fingerprinting pozwala na porównywanie plików i określanie, czy dwa pliki są identyczne, nawet jeśli mają różne nazwy lub lokalizacje. Jest to przydatne w systemach antywirusowych, które skanują pliki w celu wykrywania złośliwego oprogramowania, lub w aplikacjach do zarządzania duplikatami plików.
Unikalne identyfikatory plików: Fingerprinting może być stosowane do generowania unikalnych identyfikatorów plików, które mogą służyć jako referencje do konkretnych plików w systemach zarządzania zasobami lub bazach danych.
Wykrywanie zmian w plikach: Fingerprinting plików może być używany do wykrywania zmian w plikach. Jeśli zawartość pliku się zmienia, to fingerprint również się zmieni, co pozwala na szybkie wykrycie i analizę zmodyfikowanych plików.
Rozpoznawanie muzyki i wideo: W dziedzinie rozpoznawania muzyki i wideo, fingerprinting jest wykorzystywany do identyfikacji utworów muzycznych i filmów na podstawie ich dźwięku lub obrazu. Dzięki temu technika ta umożliwia wyszukiwanie i rozpoznawanie utworów muzycznych oraz śladów wideo.
## Side channel attacks
Tradycyjnie, ataki kryptograficzne koncentrują się na próbie złamania samego klucza kryptograficznego lub algorytmu. W przypadku ataku kanału bocznego, uwaga jest skierowana na inne dane lub efekty związane z działaniem systemu kryptograficznego, takie jak czas wykonania, zużycie energii, promieniowanie elektromagnetyczne czy zmiany w napięciu.
Przykłady ataków kanału bocznego obejmują:
Atak timingowy: Atakujący analizuje czas wykonania operacji kryptograficznych lub innych operacji systemowych, aby wyciągnąć wnioski na temat wartości tajnych danych lub kluczy. Na przykład, zmienność czasowa w procesie szyfrowania może ujawnić informacje o kluczu.
Atak na pobór energii: Atakujący monitoruje zużycie energii przez urządzenie podczas wykonywania operacji kryptograficznych i wykorzystuje to do wyciągnięcia wniosków na temat klucza kryptograficznego lub danych wejściowych.
Atak elektromagnetyczny: Atakujący analizuje promieniowanie elektromagnetyczne emitowane przez urządzenie podczas operacji kryptograficznych, aby odtworzyć tajne dane lub klucz. Analiza fal elektromagnetycznych może ujawnić informacje o wewnętrznym stanu systemu.
Atak na napięcie: Atakujący monitoruje zmiany w napięciu zasilania urządzenia podczas operacji kryptograficznych, aby wyciągnąć wnioski na temat wartości tajnych danych lub klucza.
## RSA
1. wybieramy dwie liczby p i q.
2. obliczamy n = pq
3. obliczamy funkcje eulera dla n (p-1)(q-1)
4. wybieramy liczbę e względnie pierwszą z 3.
5. obliczamy liczbę d odwrotna do e modulo 3.
klucz publiczny para (n, e), prywatny (n, d)
c = m^e mod n szyfrowanie
m = c^d mod n deszyfrowanie
## Zaślepianie podpisu
wybieramy r takie, ze NWD(r,N) = 1
Przesyłamy do kogoś (m * r^e) mod n, zeby podpisali
oni robia (m * r^e)^d mod n wtedy jak otrzymamy, zeby zwerfyikowac podpis mozemy to modzielic przez r i otrzymamy m^d mod n.
## EBC

## CTR

## Problem obliczeniowy Diffiego-Hellmana
Ustalenie parametrów: W protokole Diffiego-Hellmana, obie strony (nazywane często Alice i Bob) muszą ustalić pewne parametry, takie jak liczba pierwsza p i generator g. Te parametry są publicznie znane i dostępne dla obu stron.
Wybór tajnych kluczy: Zarówno Alice, jak i Bob wybierają tajne liczby, które są niezależne od siebie. Alice wybiera tajny klucz a, a Bob wybiera tajny klucz b.
Wymiana publicznych wartości: Alice i Bob przesyłają sobie publiczne wartości na podstawie swoich tajnych kluczy. Alice oblicza wartość A = g^a (mod p) i przesyła ją do Boba. Bob oblicza wartość B = g^b (mod p) i przesyła ją do Alice.
Obliczenie współdzielonego sekretu: Zarówno Alice, jak i Bob obliczają wspólny sekret, korzystając z otrzymanych publicznych wartości i swoich tajnych kluczy. Alice oblicza S = B^a (mod p), a Bob oblicza S = A^b (mod p). Oba obliczenia prowadzą do uzyskania takiego samego wspólnego sekretu.
Problem Diffiego-Hellmana polega na tym, że dla osoby trzeciej, która podsłuchuje przesyłane wartości publiczne (A i B), trudne jest obliczenie tajnych kluczy a i b oraz wspólnego sekretu S. Wynika to z trudności obliczeniowej w rozwiązywaniu dyskretnego logarytmu, czyli znalezieniu wartości x w równaniu g^x ≡ y (mod p), gdzie g, y i p są znane.
Krzywe eliptyczne lub grupy cykliczne.
## CVE
Common Vulnerabilities and Exposures
## CWE
Common Weakness Enumeration
## Differental Privacy
Prywatność różnicowa to system publicznego udostępniania informacji o zbiorze danych poprzez opisywanie wzorców grup w zbiorze danych, przy jednoczesnym ukrywaniu informacji o osobach w zbiorze danych.
## Federeted Learning
