0Pricing
Cryptology Academy · Lekcja

ABE z polityką szyfrogramu (CP-ABE)

Proszę poznać CP-ABE, w którym szyfrujący osadza politykę dostępu, a deszyfrowanie wymaga atrybutów spełniających tę politykę.

ABE z polityką szyfrogramu (CP-ABE) to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Główna idea CP-ABE

W szyfrowaniu opartym na atrybutach z polityką w szyfrogramie (CP-ABE) osoba szyfrująca umieszcza politykę dostępu bezpośrednio w szyfrogramie. Użytkownik posiada klucz tajny, w którym zakodowano jego zbiór atrybutów. Odszyfrowanie powiedzie się wtedy i tylko wtedy, gdy atrybuty użytkownika spełniają politykę dostępu umieszczoną w szyfrogramie. Osoba szyfrująca kontroluje, kto może odszyfrować dane, określając politykę w momencie szyfrowania.

Polityki dostępu w CP-ABE

Polityki dostępu w CP-ABE wyraża się za pomocą monotonicznych formuł boolowskich dotyczących atrybutów, zwykle reprezentowanych jako schematy liniowego współdzielenia sekretu (LSSS) lub drzewa dostępu. Polityka może zawierać bramki AND, OR i progowe. Bramkę AND spełniają wszystkie wymienione atrybuty; bramkę OR spełnia dowolny jeden z nich; bramka progowa t-z-n wymaga co najmniej t spośród n wymienionych atrybutów. Bramki te można zagnieżdżać, aby wyrażać złożone struktury dostępu.

Przykładowa polityka CP-ABE

Rozważmy szpitalny system informacyjny. Raport medyczny można zaszyfrować za pomocą polityki: (role=Doctor AND department=Cardiology) OR role=Administrator. Kardiolog ma atrybuty {role=Doctor, department=Cardiology} i może odszyfrować raport. Radiolog ma atrybuty {role=Doctor, department=Radiology} i nie może go odszyfrować, ponieważ brakuje department=Cardiology. Administrator ma {role=Administrator} i zawsze może odszyfrować raport. Polityka jest egzekwowana kryptograficznie, a nie tylko za pomocą list kontroli dostępu.

Konstrukcja CP-ABE Watersa (2011)

Najbardziej wpływową praktyczną konstrukcję CP-ABE zaproponował Waters (2011); opiera się ona na parowaniach dwuliniowych na krzywych eliptycznych. W tej konstrukcji urząd generuje sekret główny i klucz publiczny. Klucze tajne użytkowników są generowane dla określonych zbiorów atrybutów. Szyfrowanie polega na utworzeniu szyfrogramu kodującego politykę dostępu za pomocą liniowego współdzielenia sekretu. Bezpieczeństwo dowodzi się przy założeniu trudności problemu decyzyjnego Diffiego–Hellmana dla parowań dwuliniowych (DBDH).

Małe uniwersum a duże uniwersum

Schematy CP-ABE różnią się sposobem obsługi uniwersum atrybutów. Konstrukcje dla małego uniwersum wymagają określenia pełnego zbioru możliwych atrybutów podczas konfiguracji, co ogranicza elastyczność, ale pozwala tworzyć wydajniejsze schematy. Konstrukcje dla dużego uniwersum (Rouselakis-Waters 2013, Attrapadung 2014) umożliwiają korzystanie z atrybutów pochodzących z wykładniczo dużego uniwersum bez określania ich podczas konfiguracji. Dzięki temu można używać takich atrybutów jak identyfikatory użytkowników czy znaczniki czasu bez wcześniejszego deklarowania wszystkich możliwości.

Delegowanie kluczy i hierarchia

CP-ABE może obsługiwać delegowanie kluczy: urząd może wydać podwładnemu klucze dla podzbioru atrybutów, a podwładny może następnie ograniczyć możliwości klucza, lecz nie może ich rozszerzyć. Umożliwia to hierarchiczne zarządzanie atrybutami: urząd działający na poziomie firmy wydaje klucze na poziomie działu, a urzędy działów wydają klucze pracownikom. Właściwość ta nosi nazwę bezpieczeństwa delegowania kluczy: delegowanego klucza nie można użyć do odszyfrowania czegokolwiek, czego nie mógł odszyfrować delegujący.

Biblioteki dla CP-ABE

Praktyczne implementacje CP-ABE są dostępne w bibliotece Java Pairing-Based Cryptography (jpbc) oraz w frameworku Python charm-crypto, przeznaczonym do tworzenia prototypów. Biblioteka OpenABE (Zeutro) to implementacja w C++ obsługująca CP-ABE i KP-ABE, odpowiednia do zastosowań produkcyjnych. RABE to implementacja CP-ABE w języku Rust. Biblioteki te implementują operacje oparte na parowaniach dla krzywych BN-256 i BLS12-381.

CP-ABE w pamięci masowej w chmurze

Najbardziej typowym zastosowaniem CP-ABE jest precyzyjna kontrola dostępu w pamięci masowej w chmurze. Właściciel pliku szyfruje dokument za pomocą polityki przed jego przesłaniem. Każdy użytkownik, którego atrybuty spełniają politykę, może pobrać dokument i go odszyfrować, bez wiedzy dostawcy chmury o tym, kto uzyska do niego dostęp i bez konieczności utrzymywania przez dostawcę list kontroli dostępu. Dostawca chmury udostępnia szyfrogramy każdemu, kto o nie poprosi; polityka jest egzekwowana bezpośrednio w szyfrogramie.

Charakterystyka wydajnościowa CP-ABE

Operacje CP-ABE obejmują obliczenia parowań dwuliniowych, które są znacznie wolniejsze niż szyfrowanie symetryczne. Na nowoczesnym procesorze pojedyncza operacja parowania na BN-256 trwa około 1–3 ms. Koszt odszyfrowywania rośnie liniowo wraz z liczbą spełnionych atrybutów. Dla polityk obejmujących 10–20 atrybutów odszyfrowywanie trwa 10–60 ms, co jest akceptowalne w aplikacjach obsługiwanych przez użytkowników, ale zbyt wolne w przypadku zautomatyzowanych systemów działających z dużą częstotliwością.

Ukrywanie atrybutów w CP-ABE

Standardowe CP-ABE ujawnia politykę dostępu każdemu, kto widzi szyfrogram — polityka nie jest szyfrowana. CP-ABE z ukrytą polityką (lub częściowo ukrytą polityką) ukrywa niektóre albo wszystkie atrybuty polityki przed osobami nieuprawnionymi, zapewniając dodatkową prywatność. Pełne ukrycie polityki wymaga bardziej złożonych konstrukcji i wiąże się ze znacznie większym narzutem wydajnościowym. W większości praktycznych wdrożeń stosuje się standardowe CP-ABE, w którym polityka jest widoczna, akceptując jej ujawnienie.

Problem odwoływania kluczy w CP-ABE

Odwoływanie kluczy w CP-ABE stanowi istotne wyzwanie praktyczne. Jeśli atrybuty użytkownika ulegną zmianie (użytkownik odejdzie z działu lub jego dane uwierzytelniające zostaną unieważnione), ponowne zaszyfrowanie wszystkich szyfrogramów zaszyfrowanych dla jego wcześniejszych atrybutów jest kosztowne. Praktyczne rozwiązania obejmują wersjonowanie atrybutów (zwiększanie numeru wersji każdego atrybutu), użycie ponownego szyfrowania przez pośrednika do aktualizowania szyfrogramów lub połączenie CP-ABE z atrybutami opartymi na czasie i wymaganie okresowego odświeżania klucza przez urząd.

Quiz: polityka CP-ABE

Gdzie w CP-ABE umieszczana jest polityka dostępu?

Podsumowanie CP-ABE

CP-ABE umieszcza polityki dostępu w szyfrogramach, a klucze użytkowników kodują zbiory atrybutów. Odszyfrowanie powiedzie się, gdy atrybuty spełniają politykę (bramki AND, OR i progowe). Waters 2011 to przełomowa praktyczna konstrukcja oparta na parowaniach dwuliniowych. Warianty dla dużego uniwersum obsługują dynamiczne przestrzenie atrybutów. CP-ABE stosuje się w pamięci masowej w chmurze do precyzyjnej kontroli dostępu bez list ACL po stronie serwera. Odwoływanie kluczy pozostaje wyzwaniem praktycznym; stosuje się w tym celu wersjonowanie atrybutów lub ponowne szyfrowanie przez pośrednika.

Często zadawane pytania

Czy lekcja „ABE z polityką szyfrogramu (CP-ABE)” jest bezpłatna?

Tak — pełny tekst „ABE z polityką szyfrogramu (CP-ABE)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „ABE z polityką szyfrogramu (CP-ABE)”?

Proszę poznać CP-ABE, w którym szyfrujący osadza politykę dostępu, a deszyfrowanie wymaga atrybutów spełniających tę politykę. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „ABE z polityką szyfrogramu (CP-ABE)”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Poza kryptografią klucza publicznego: szyfrowanie funkcjonalne
  2. ABE z polityką szyfrogramu (CP-ABE)
  3. ABE z polityką klucza (KP-ABE) i porównanie
  4. Praktyczne zastosowania ABE
← Powrót do Cryptology Academy