cryptoSL2024/README.md

47 lines
1.8 KiB
Markdown
Raw Normal View History

2024-04-17 20:57:09 +02:00
# Inicjalizacja
1. Stwórz wirtualne środowisko: `python -m venv .venv`
2. Aktywuj: `. .venv/bin/activate`
3. Pobierz zależności: `pip install -r requirements.txt'
2024-04-18 12:01:09 +02:00
4. Uruchom np. test wewnętrzny: `python ot.py`
2024-04-17 20:57:09 +02:00
Aby wyjść ze środowiska uruchom komendę `deactivate`.
2024-04-18 00:09:59 +02:00
## Testowanie działania
2024-04-18 12:22:28 +02:00
1. Na komputerze A uruchom program `alice.py` podając jako argumenty nazwy dwóch plików
2. Na komputerze B uruchom program `bob.py` podając jako argument który z plików wskazanych przez program `alice.py` ma uruchomić (`0` lub `1`) oraz adres IP komputera A przez flagę `--ip`.
2024-04-18 00:09:59 +02:00
W razie wątpliwości zapoznaj się z pomocą programów `alice.py` i `bob.py` lub zobacz przykładowy test w `test.sh`.
2024-04-17 20:57:09 +02:00
## Dodawanie paczek
W środowisku wirtualnym:
1. Zainstaluj paczkę: `pip install <package>`
2. Zaktualizuj listę zależności: `pip freeze > requirements.txt`
2024-04-13 21:28:33 +02:00
# Rekomendowane parametry/komponenty
## Punkt _a_ w dokumencie projektu
2024-04-18 12:22:28 +02:00
Parametry krzywych eliptycznych znajdują się [tutaj](https://safecurves.cr.yp.to/field.html). W projekcie wykorzystano krzywą eliptyczną NIST P-224, która zdefiniowana jest przy pomocy następujących parametrów:
- $p = 2^224 - 2^96 + 1$
2024-04-13 21:28:33 +02:00
## Punkt _b_ w dokumencie projektu
KDF który proponuję to scrypt, ponieważ jest kosztowy obliczeniowo ORAZ pamięciowo.
2024-04-13 21:34:22 +02:00
[Tutaj](https://datatracker.ietf.org/doc/html/rfc7914#section-2) można znaleźć rekomendowane parametry, ze względu na ilość wykonywnych operacji proponuję parametry:
2024-04-13 21:28:33 +02:00
```
N = 2 ** 14
r = 8
p = 1
```
2024-04-13 21:34:22 +02:00
poparte [tą prezentacją](https://www.tarsnap.com/scrypt/scrypt-slides.pdf).
2024-04-13 21:28:33 +02:00
## Punkt _c_ w dokumencie projektu
2024-04-13 21:34:22 +02:00
Tutaj proponuję AES256 w trybie CouTeR, opisane np. [tutaj](https://www.pycryptodome.org/src/cipher/classic#ctr-mode).
2024-04-13 21:28:33 +02:00
Do wygenerowania noncji może zostać użyty scrypt.