Kryptosystem hybrydowy

W kryptografii hybrydowy system kryptograficzny to taki, który łączy wygodę systemu kryptograficznego z kluczem publicznym z wydajnością systemu kryptograficznego z kluczem symetrycznym . Kryptosystemy z kluczem publicznym są wygodne, ponieważ nie wymagają od nadawcy i odbiorcy współdzielenia wspólnego sekretu w celu bezpiecznej komunikacji. Jednak często opierają się one na skomplikowanych obliczeniach matematycznych i dlatego są generalnie znacznie mniej wydajne niż porównywalne kryptosystemy z kluczem symetrycznym. W wielu zastosowaniach wysoki koszt szyfrowania długich wiadomości w systemie kryptograficznym z kluczem publicznym może być zaporowy. Rozwiązaniem tego problemu są systemy hybrydowe, które wykorzystują kombinację obu.

Kryptosystem hybrydowy można zbudować przy użyciu dowolnych dwóch oddzielnych kryptosystemów:

Kryptosystem hybrydowy sam w sobie jest systemem klucza publicznego, którego klucze publiczny i prywatny są takie same jak w schemacie enkapsulacji klucza.

Należy zauważyć, że w przypadku bardzo długich wiadomości większość pracy związanej z szyfrowaniem/deszyfrowaniem jest wykonywana przez bardziej wydajny schemat klucza symetrycznego, podczas gdy nieefektywny schemat klucza publicznego jest używany tylko do szyfrowania/odszyfrowywania krótkiej wartości klucza.

Wszystkie praktyczne implementacje kryptografii klucza publicznego wykorzystują obecnie system hybrydowy. Przykłady obejmują TLS i protokół SSH , które wykorzystują mechanizm klucza publicznego do wymiany kluczy (taki jak Diffie-Hellman ) oraz mechanizm klucza symetrycznego do enkapsulacji danych (taki jak AES ). Inne przykłady to format pliku OpenPGP i format pliku PKCS #7 .

Hybrydowe szyfrowanie klucza publicznego (HPKE, opublikowane jako RFC 9180 ) to nowoczesny standard ogólnego szyfrowania hybrydowego. HPKE jest używany w wielu protokołach IETF, w tym MLS i TLS Encrypted Hello.

Szyfrowanie kopertowe jest przykładem wykorzystania hybrydowych systemów kryptograficznych w przetwarzaniu w chmurze . W kontekście chmury hybrydowe systemy kryptograficzne umożliwiają również scentralizowane zarządzanie kluczami .

Przykład

Aby zaszyfrować wiadomość zaadresowaną do Alicji w hybrydowym systemie kryptograficznym, Bob wykonuje następujące czynności:

  1. Uzyskuje klucz publiczny Alicji.
  2. Generuje świeży klucz symetryczny dla schematu enkapsulacji danych.
  3. Szyfruje wiadomość zgodnie ze schematem enkapsulacji danych, używając właśnie wygenerowanego klucza symetrycznego.
  4. Szyfruje klucz symetryczny zgodnie ze schematem enkapsulacji klucza, używając klucza publicznego Alicji.
  5. Wysyła oba te zaszyfrowane teksty do Alicji.

Aby odszyfrować ten hybrydowy tekst zaszyfrowany, Alicja wykonuje następujące czynności:

  1. Używa swojego klucza prywatnego do odszyfrowania klucza symetrycznego zawartego w segmencie enkapsulacji klucza.
  2. Używa tego klucza symetrycznego do odszyfrowania wiadomości zawartej w segmencie enkapsulacji danych.

Bezpieczeństwo

Jeśli zarówno schematy enkapsulacji klucza, jak i enkapsulacji danych w kryptosystemie hybrydowym są zabezpieczone przed atakami adaptacyjnego wybranego tekstu zaszyfrowanego , schemat hybrydowy również dziedziczy tę właściwość. Jednak możliwe jest zbudowanie schematu hybrydowego zabezpieczającego przed atakami z adaptacyjnym wybranym tekstem zaszyfrowanym, nawet jeśli enkapsulacja klucza ma nieco osłabioną definicję bezpieczeństwa (chociaż bezpieczeństwo enkapsulacji danych musi być nieco silniejsze).

Szyfrowanie kopert

Szyfrowanie kopertowe to termin używany do szyfrowania za pomocą hybrydowego systemu kryptograficznego używanego przez wszystkich głównych dostawców usług w chmurze , często jako część scentralizowanego systemu zarządzania kluczami w przetwarzaniu w chmurze.

Szyfrowanie kopertowe nadaje nazwy kluczom używanym w szyfrowaniu hybrydowym: klucze szyfrowania danych (w skrócie DEK i używane do szyfrowania danych) oraz klucze szyfrowania kluczy (w skrócie KEK i używane do szyfrowania DEK). W środowisku chmurowym szyfrowanie za pomocą koperty polega na lokalnym wygenerowaniu klucza DEK, zaszyfrowaniu danych za pomocą klucza DEK, a następnie wysłaniu żądania zawinięcia (zaszyfrowania) klucza DEK kluczem KEK przechowywanym w potencjalnie bezpieczniejszej usłudze . Następnie ten opakowany DEK i zaszyfrowana wiadomość stanowią tekst zaszyfrowany dla schematu. Aby odszyfrować tekst zaszyfrowany, opakowany DEK jest rozpakowywany (odszyfrowywany) przez wywołanie usługi, a następnie nieopakowany DEK jest używany do odszyfrowania zaszyfrowanej wiadomości. Oprócz zwykłych zalet hybrydowego systemu kryptograficznego, użycie szyfrowania asymetrycznego dla KEK w kontekście chmury zapewnia łatwiejsze zarządzanie kluczami i separację ról, ale może być wolniejsze.

W systemach chmurowych, takich jak Google Cloud Platform i Amazon Web Services , system zarządzania kluczami (KMS) może być dostępny jako usługa. W niektórych przypadkach system zarządzania kluczami przechowuje klucze w sprzętowych modułach bezpieczeństwa , które są systemami sprzętowymi chroniącymi klucze za pomocą funkcji sprzętowych, takich jak odporność na włamania. Oznacza to, że klucze KEK mogą być również bezpieczniejsze, ponieważ są przechowywane na bezpiecznym specjalistycznym sprzęcie. Szyfrowanie kopertowe ułatwia scentralizowane zarządzanie kluczami, ponieważ scentralizowany system zarządzania kluczami musi przechowywać tylko KEK, które zajmują mniej miejsca, a żądania do KMS obejmują tylko wysyłanie opakowanych i nieopakowanych DEK, które zużywają mniej przepustowości niż przesyłanie całych wiadomości. Ponieważ jeden KEK może być użyty do zaszyfrowania wielu DEK, pozwala to również na wykorzystanie mniejszej ilości miejsca w KMS. Pozwala to również na scentralizowany audyt i kontrolę dostępu w jednym punkcie dostępu.

Zobacz też