# Aneks: kryptografia

> Palladin documentation · 1.0 · PL · 2026-10-25


Ten aneks zawiera szczegóły techniczne. Wyjaśnienie kluczy znajdziesz w rozdziale [Dane i klucze](/pl/docs/whitepaper/keys). VK oznacza klucz sejfu (Vault Key), a DEK — klucz szyfrowania danych (Data Encryption Key).

## Zestaw kryptograficzny

| Operacja | Mechanizm |
| --- | --- |
| Wyprowadzenie z hasła | Argon2id: 32 MiB pamięci, 2 iteracje, 1 wątek, 32-bajtowy sekret bazowy konta; profil `identity-argon2id-password-v1`. |
| Oddzielenie uwierzytelnienia od klucza głównego | HKDF-SHA256 wyprowadza z sekretu bazowego dwa klucze, używając różnych etykiet przeznaczenia i identyfikatora konta. |
| Ochrona klucza prywatnego konta | XSalsa20-Poly1305. Odzyskiwanie konta używa osobnego profilu Argon2id z 19 MiB pamięci. |
| Szyfrowanie treści sejfu i zabezpieczanie kluczy symetrycznych | XChaCha20-Poly1305, suite `palladin-vault-xchacha-v1`. |
| Asymetryczne przekazanie klucza | X25519 sealed package, suite `palladin-x25519-sealed-box-v1`. |
| Podpisy tożsamości Agenta | Ed25519. |
| Klucze symetryczne VK / DEK | Losowe 32 bajty, generowane po stronie klienta. |

Nazwy algorytmów nie wystarczają do odtworzenia protokołu. Implementacja musi stosować dokładny format, domeny podpisów, kodowanie, reguły nonce i kanonikalizację z wersjonowanego kontraktu. Nie implementuj kryptografii na podstawie samego tego streszczenia.

## Walidacja przed użyciem

1. Odczytaj jawny identyfikator suite i wersję protokołu; odrzuć nieobsługiwany wariant.
2. Sprawdź format i ograniczenia rozmiaru przed przetwarzaniem.
3. Zweryfikuj podpis oraz wymagane commitmenty.
4. Porównaj organizację, sejf, odbiorcę, przyznany dostęp, rewizje, epoki i wersje kluczy z niezależnym, zaufanym źródłem.
5. Otwórz materiał tylko w dozwolonej granicy i przerwij przy błędzie uwierzytelnienia.

## Zgodność implementacji

Wspólne dane i wektory testowe powinny sprawdzać zgodność klientów i backendu. Testy negatywne muszą obejmować podmienionego odbiorcę, inny sejf, starą rewizję, niewłaściwą epokę i zmodyfikowane zaszyfrowane dane. Nie wystarcza test, w którym biblioteka odszyfrowuje własny wynik.
