.gitignore | ||
alice.py | ||
bob.py | ||
net.py | ||
ot.py | ||
README.md | ||
requirements.txt | ||
test.sh | ||
zadanie.pdf |
Inicjalizacja
- Stwórz wirtualne środowisko:
python -m venv .venv
- Aktywuj:
. .venv/bin/activate
- Pobierz zależności: `pip install -r requirements.txt'
- Uruchom np. test wewnętrzny:
python ot.py
Aby wyjść ze środowiska uruchom komendę deactivate
.
Testowanie działania
- Na komputerze A uruchom program
alice.py
podając jako argumenty nazwy dwóch plików - Na komputerze B uruchom program
bob.py
podając jako argument który z plików wskazanych przez programalice.py
ma uruchomić (0
lub1
) oraz adres IP komputera A przez flagę--ip
.
W razie wątpliwości zapoznaj się z pomocą programów alice.py
i bob.py
lub zobacz przykładowy test w test.sh
.
Dodawanie paczek
W środowisku wirtualnym:
- Zainstaluj paczkę:
pip install <package>
- Zaktualizuj listę zależności:
pip freeze > requirements.txt
Rekomendowane parametry/komponenty
Punkt a w dokumencie projektu
Parametry krzywych eliptycznych znajdują się tutaj. 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
Punkt b w dokumencie projektu
KDF który proponuję to scrypt, ponieważ jest kosztowy obliczeniowo ORAZ pamięciowo.
Tutaj można znaleźć rekomendowane parametry, ze względu na ilość wykonywnych operacji proponuję parametry:
N = 2 ** 14
r = 8
p = 1
poparte tą prezentacją.
Punkt c w dokumencie projektu
Tutaj proponuję AES256 w trybie CouTeR, opisane np. tutaj. Do wygenerowania noncji może zostać użyty scrypt.