Szyfrowanie klucza asymetrycznego: system kryptograficzny, który korzysta z publicznych i prywatnych kluczy sparowanych, aby szyfrować i odszyfrowywać dane. Klucze publiczne są używane do szyfrowania danych i mogą być udostępniane. Klucze prywatne służą do odszyfrowywania danych i są znane tylko właścicielowi.
Ciphertext: wynik szyfrowania przeprowadzonego na zwykłym tekście przy użyciu algorytmu. Tekst szyfrowany jest niezrozumiały, dopóki nie zostanie przekonwertowany z powrotem na zwykły tekst za pomocą klucza.
Spójność: oznacza, że Tink zachowuje się „tak samo” we wszystkich językach programowania. Na przykład Tink zapewnia spójność oceny, co oznacza, że w przypadku danego zestawu kluczy, jeśli tworzenie elementów podstawowych zakończy się w 2 językach, obiekty podstawowe zachowują się tak samo.
Klucz: informacja (np. ciąg znaków) wymagana do zaszyfrowania lub odszyfrowania danych. W sekcji Obiekty kluczowe znajdziesz informacje o sposobie ich reprezentowania.
Uchwyt zestawu kluczy i zestawu kluczy: Tink używa zestawów kluczy do zarządzania kluczami. Zasadniczo zestaw kluczy to zestaw kluczy ułatwiających rotację kluczy. Kilka ważnych właściwości zestawu kluczy:
- Każdy klucz w zestawie kluczy ma unikalny identyfikator, który jest w nim unikalny. Ten identyfikator jest zwykle dodawany jako prefiks do każdego wygenerowanego tekstu szyfrowania, podpisu lub tagu wskazującego, który klucz został użyty (więcej informacji znajdziesz w artykule o tagowaniu tekstów szyfrowanych w Tink).
- W zestawie kluczy jest tylko 1 klucz w danym momencie podstawowy. Klucz podstawowy w zestawie to klucz „w użyciu” w danym momencie.
- Wszystkie klucze w zestawie kluczy muszą być implementacjami tego samego elementu podstawowego (np. AEAD), ale mogą mieć różne typy kluczy (np. AES-GCM i XCHACHA20-POLY1305).
Każda implementacja Tink zapewnia interfejsy API do tworzenia i edytowania zestawów kluczy. Zalecamy jednak korzystanie z narzędzia interfejsu wiersza poleceń Tinkey.
Użytkownicy korzystają z zestawu kluczy przy użyciu uchwytów zestawu kluczy. Uchwyt zestawu kluczy ogranicza ekspozycję faktycznego poufnego materiału klucza. Ponadto wyodrębnia zestaw kluczy, co umożliwia użytkownikom uzyskanie modelu podstawowego, który „zawija” cały zestaw kluczy. Możesz na przykład uzyskać element podstawowy AEAD zbioru kluczy z kluczami N
. Szyfrowanie i odszyfrowywanie za pomocą uzyskanego elementu podstawowego będzie następnie używać klucza podstawowego w zestawie kluczy.
System zarządzania kluczami (KMS): system służący do zarządzania kluczami kryptograficznymi, w tym ich generowanie, przechowywanie, używanie, rotacja, niszczenie i wymiana.
Typ klucza: typ klucza implementuje określony obiekt podstawowy. Większość obiektów podstawowych ma kilka typów kluczy do wyboru w zależności od wymagań dotyczących zabezpieczeń, środowiska wykonawczego i przestrzeni. Na przykład AES128_GCM to AEAD, który jest szybki i skuteczny w przypadku większości potrzeb. Dowiedz się więcej o obsługiwanych typach kluczy według języka.
Parametry: pełny opis informacji wymaganych do utworzenia klucza, z wyłączeniem materiału i identyfikatora klucza. Informacje o tym, jak są reprezentowane, znajdziesz w sekcji Obiekty Parameters (Parametry).
Tryb zwykły: zrozumiała forma wejściowa zaszyfrowanego tekstu lub jego elementów.
Prywatna: Tink wykorzystuje prymitywy jako kryptograficzne elementy składowe, które zarządzają bazowym algorytmem, aby użytkownicy mogli bezpiecznie wykonywać zadania kryptograficzne. Element podstawowy definiuje szczegóły algorytmu kryptograficznego i typ klucza.
Podstawowe elementy obsługiwane przez Tink:
- Uwierzytelnianie szyfrowane z powiązanymi danymi (AEAD): najpopularniejszy sposób szyfrowania danych; odpowiedni do większości potrzeb związanych z szyfrowaniem. AEAD zapewnia poufność w postaci zwykłego tekstu i umożliwia weryfikację integralności i autentyczności. Zobacz Uwierzytelnianie szyfrowane z użyciem powiązanych danych (AEAD).
- Szyfrowanie deterministyczne: element podstawowy, który zawsze generuje ten sam tekst szyfrowany dla danego tekstu jawnego i klucza. Może to być ryzykowne, ponieważ osoba przeprowadzająca atak musi tylko dowiedzieć się, który tekst szyfrowany odpowiada danemu wejściowi w postaci tekstu jawnego, aby go zidentyfikować. Zobacz Deterministyczny AEAD.
- Podpis cyfrowy: podstawowa wersja asymetryczna (patrz Szyfrowanie klucza asymetrycznego) służąca do potwierdzania autentyczności i integralności podpisanych danych. Więcej informacji znajdziesz w artykule Podpis cyfrowy.
- Szyfrowanie hybrydowe: to model podstawowy, który łączy szyfrowanie klucza asymetrycznego z szyfrowaniem klucza symetrycznego (patrz Szyfrowanie klucza asymetrycznego i Szyfrowanie klucza symetrycznego). Szyfrowanie hybrydowe łączy wydajność szyfrowania symetrycznego z wygodą szyfrowania klucza publicznego. Do szyfrowania wiadomości generowany jest nowy klucz symetryczny, który służy do szyfrowania danych zapisanych zwykłym tekstem. Klucz publiczny odbiorcy służy tylko do szyfrowania klucza symetrycznego. Końcowy tekst szyfrowany składa się z symetrycznego tekstu szyfrowanego i zaszyfrowanego klucza symetrycznego. Więcej informacji znajdziesz w sekcji Szyfrowanie hybrydowe.
- Kod uwierzytelniania wiadomości (MAC): podstawowa wersja symetryczna (patrz Szyfrowanie klucza symetrycznego) służąca do potwierdzania autentyczności i integralności danych. Zobacz Kod uwierzytelniania wiadomości (MAC).
- Strumieniowe AEAD: interfejs podstawowy zapewniający uwierzytelnione szyfrowanie danych strumieniowanych. Jest przydatne, gdy dane do zaszyfrowania są zbyt duże, aby można je było przetworzyć w jednym kroku. Patrz AEAD strumieniowania.
Informacje o zgodności znajdziesz w sekcji Obsługiwane obiekty podstawowe według języka.
Rejestr: encja globalna w Tink, która wie, jak generować nowe klucze i podstawowe elementy. Zapoznaj się też ze wskazówkami dotyczącymi debugowania błędów rejestracji.
Szyfrowanie klucza symetrycznego: algorytm kryptograficzny, który korzysta z tego samego klucza do szyfrowania tekstu jawnego i odszyfrowywania tekstu szyfrowanego.