<p>Reticulum wykorzystuje prosty zestaw wydajnych, silnych i nowoczesnych prymitywów kryptograficznych, z szeroko dostępnymi implementacjami, które mogą być używane zarówno na procesorach ogólnego przeznaczenia, jak i na mikrokontrolerach. Niezbędne prymitywy to:</p>
<ul>
<li>Ed25519 dla sygnatur</li>
<li>X22519 dla wymiany kluczy ECDH</li>
<li>HKDF dla wyodrębnienia klucza</li>
<li>AES-128 w trybie CBC</li>
<li>HMAC-SHA256 dla uwierzytelnienia wiadomości</li>
<li>SHA-256</li>
<li>SHA-512</li>
</ul>
<p>W domyślnej konfiguracji instalacji, prymitywy <code>X25519</code>, <code>Ed25519</code> i <code>AES-128-CBC</code> są dostarczone przez <ahref="https://www.openssl.org/">OpenSSL</a> (przez pakiet <ahref="https://github.com/pyca/cryptography">PyCA/cryptography</a>). Funkcja hashu <code>SHA-256</code> i <code>SHA-512</code> są dostarczone przez standard Pythona <ahref="https://docs.python.org/3/library/hashlib.html">hashlib</a>. Prymitywy <code>HKDF</code>, <code>HMAC</code>, <code>Fernet</code> i funkcja padding <code>PKCS7</code> są zawsze dostarczane przez następujące wewnętrzne implementacje:</p>
<p>Reticulum zawiera również kompletną implementację wszystkich niezbędnych prymitywów w czystym Pythonie. Jeśli OpenSSL i PyCA nie są dostępne w systemie podczas uruchamiania Reticulum, Reticulum użyje wewnętrznych prymitywów w czystym Pythonie. Trywialną konsekwencją tego jest wydajność, backend OpenSSL jest <em>znacznie</em> szybszy. Najważniejszą konsekwencją jest jednak potencjalna utrata bezpieczeństwa poprzez użycie prymitywów, które nie zostały poddane takiej samej analizie, testom i przeglądom jak te z OpenSSL.</p>
<p>Jeśli chcesz używać wewnętrznych czystych prymitywów pythona, jest <strong>bardzo wskazane</strong>, abyś dobrze rozumiał ryzyko, jakie to stwarza, i podjął świadomą decyzję, czy to ryzyko jest dla ciebie do przyjęcia.</p>
<p>Reticulum jest stosunkowo młodym oprogramowaniem i powinno być traktowane jako takie. Chociaż zostało zbudowane z myślą o najlepszych praktykach kryptograficznych, <em>nie zostało</em> poddane zewnętrznemu audytowi bezpieczeństwa i bardzo możliwe, że zawiera błędy naruszające prywatność lub bezpieczeństwo. Jeśli chcesz pomóc lub zasponsorować audyt, skontaktuj się ze mną.</p>