Kryptosystemy
Kryptosystem to implementacja technik kryptograficznych i towarzyszącej im infrastruktury w celu świadczenia usług bezpieczeństwa informacji. Kryptosystem jest również określany jako plikcipher system.
Omówmy prosty model kryptosystemu, który zapewnia poufność przekazywanych informacji. Ten podstawowy model jest przedstawiony na poniższej ilustracji -
Ilustracja przedstawia nadawcę, który chce przesłać pewne poufne dane do odbiorcy w taki sposób, aby jakakolwiek strona przechwytująca lub podsłuchiwana w kanale komunikacyjnym nie mogła ich wydobyć.
Celem tego prostego systemu kryptograficznego jest to, że pod koniec procesu tylko nadawca i odbiorca znają tekst jawny.
Składniki Cryptosystemu
Różne elementy podstawowego kryptosystemu są następujące:
Plaintext. Są to dane, które mają być chronione podczas transmisji.
Encryption Algorithm.Jest to proces matematyczny, który tworzy szyfrogram dla dowolnego podanego tekstu jawnego i klucza szyfrowania. Jest to algorytm kryptograficzny, który pobiera tekst jawny i klucz szyfrowania jako dane wejściowe i tworzy tekst zaszyfrowany.
Ciphertext.Jest to zaszyfrowana wersja tekstu jawnego utworzona przez algorytm szyfrowania przy użyciu określonego klucza szyfrowania. Szyfrowany tekst nie jest chroniony. Płynie kanałem publicznym. Może zostać przechwycony lub naruszony przez każdego, kto ma dostęp do kanału komunikacyjnego.
Decryption Algorithm,Jest to proces matematyczny, w wyniku którego powstaje niepowtarzalny tekst jawny dla dowolnego zaszyfrowanego tekstu i klucza odszyfrowywania. Jest to algorytm kryptograficzny, który pobiera zaszyfrowany tekst i klucz odszyfrowywania jako dane wejściowe i generuje tekst jawny. Algorytm deszyfrowania zasadniczo odwraca algorytm szyfrowania i dlatego jest z nim ściśle powiązany.
Encryption Key.Jest to wartość znana nadawcy. Nadawca wprowadza klucz szyfrowania do algorytmu szyfrowania wraz z tekstem jawnym w celu obliczenia tekstu zaszyfrowanego.
Decryption Key.Jest to wartość znana odbiorcy. Klucz odszyfrowywania jest powiązany z kluczem szyfrowania, ale nie zawsze jest z nim identyczny. Odbiorca wprowadza klucz odszyfrowywania do algorytmu deszyfrowania wraz z tekstem zaszyfrowanym w celu obliczenia tekstu jawnego.
Dla danego systemu kryptograficznego zbiór wszystkich możliwych kluczy deszyfrujących nosi nazwę key space.
Na interceptor(napastnik) to nieuprawniony podmiot, który próbuje ustalić tekst jawny. Widzi zaszyfrowany tekst i może znać algorytm odszyfrowywania. Jednak nigdy nie może znać klucza deszyfrującego.
Rodzaje kryptosystemów
Zasadniczo istnieją dwa rodzaje kryptosystemów oparte na sposobie, w jaki szyfrowanie-deszyfrowanie jest przeprowadzane w systemie -
- Szyfrowanie klucza symetrycznego
- Asymetryczne szyfrowanie klucza
Główną różnicą między tymi kryptosystemami jest związek między szyfrowaniem a kluczem deszyfrującym. Logicznie rzecz biorąc, w każdym kryptosystemie oba klucze są ściśle powiązane. Praktycznie niemożliwe jest odszyfrowanie tekstu zaszyfrowanego za pomocą klucza niezwiązanego z kluczem szyfrowania.
Szyfrowanie klucza symetrycznego
Proces szyfrowania, w którym same keys are used for encrypting and decrypting informacje są znane jako szyfrowanie klucza symetrycznego.
Badanie symetrycznych kryptosystemów nosi nazwę symmetric cryptography. Czasami nazywane są również kryptosystemami symetrycznymisecret key cryptosystems.
Kilka dobrze znanych przykładów metod szyfrowania klucza symetrycznego to - Digital Encryption Standard (DES), Triple-DES (3DES), IDEA i BLOWFISH.
Przed 1970 rokiem wszystkie kryptosystemy stosowały szyfrowanie z kluczem symetrycznym. Nawet dzisiaj jego znaczenie jest bardzo duże i jest szeroko stosowane w wielu kryptosystemach. Jest bardzo mało prawdopodobne, aby to szyfrowanie zanikło, ponieważ ma pewne zalety w porównaniu z asymetrycznym szyfrowaniem kluczem.
Najważniejsze cechy systemu kryptograficznego opartego na szyfrowaniu klucza symetrycznego to:
Osoby korzystające z szyfrowania za pomocą klucza symetrycznego muszą mieć wspólny klucz przed wymianą informacji.
Zaleca się regularną wymianę kluczy, aby zapobiec atakom na system.
Musi istnieć solidny mechanizm wymiany klucza między komunikującymi się stronami. Ponieważ klucze muszą być regularnie wymieniane, mechanizm ten staje się drogi i uciążliwy.
W grupie n osób, aby umożliwić dwustronną komunikację między dowolnymi dwiema osobami, wymagana jest liczba kluczy dla grupy n × (n – 1)/2.
Długość klucza (liczba bitów) w tym szyfrowaniu jest mniejsza, a zatem proces szyfrowania-deszyfrowania jest szybszy niż asymetryczne szyfrowanie kluczem.
Moc obliczeniowa systemu komputerowego wymagana do uruchomienia algorytmu symetrycznego jest mniejsza.
Wyzwanie kryptosystemu kluczy symetrycznych
Istnieją dwa restrykcyjne wyzwania związane ze stosowaniem kryptografii klucza symetrycznego.
Key establishment- Przed rozpoczęciem komunikacji zarówno nadawca, jak i odbiorca muszą uzgodnić tajny klucz symetryczny. Wymaga bezpiecznego mechanizmu tworzenia kluczy.
Trust Issue- Ponieważ nadawca i odbiorca używają tego samego klucza symetrycznego, istnieje domniemany wymóg, aby nadawca i odbiorca „ufali” sobie nawzajem. Na przykład może się zdarzyć, że odbiorca zgubił klucz atakującemu, a nadawca nie zostanie o tym poinformowany.
Te dwa wyzwania są wysoce ograniczające dla współczesnej komunikacji. Dziś ludzie muszą wymieniać informacje z nieznanymi i niezaufanymi stronami. Na przykład komunikacja między sprzedawcą internetowym a klientem. Te ograniczenia symetrycznego szyfrowania kluczem doprowadziły do asymetrycznych schematów szyfrowania klucza.
Asymetryczne szyfrowanie klucza
Proces szyfrowania, w którym different keys are used for encrypting and decrypting the informationjest znane jako Asymmetric Key Encryption. Chociaż klucze są różne, są one powiązane matematycznie, a zatem odzyskanie tekstu jawnego przez odszyfrowanie tekstu zaszyfrowanego jest możliwe. Proces przedstawiono na poniższej ilustracji -
Asymetryczne szyfrowanie klucza zostało wynalezione w XX wieku, aby wyjść z konieczności uprzedniego współdzielenia tajnego klucza między komunikującymi się osobami. Istotne cechy tego schematu szyfrowania są następujące -
Każdy użytkownik w tym systemie musi mieć parę różnych kluczy, private key i public key. Te klucze są powiązane matematycznie - gdy jeden klucz jest używany do szyfrowania, drugi może odszyfrować zaszyfrowany tekst z powrotem do oryginalnego tekstu jawnego.
Wymaga umieszczenia klucza publicznego w repozytorium publicznym, a klucza prywatnego jako dobrze strzeżonego sekretu. Stąd ten schemat szyfrowania jest również nazywanyPublic Key Encryption.
Chociaż klucze publiczne i prywatne użytkownika są ze sobą powiązane, znalezienie jednego od drugiego nie jest możliwe obliczeniowo. To jest mocna strona tego schematu.
Gdy Host1 musi wysłać dane do Host2, uzyskuje klucz publiczny Host2 z repozytorium, szyfruje dane i przesyła.
Host2 używa swojego klucza prywatnego do wyodrębnienia tekstu jawnego.
Długość kluczy (liczba bitów) w tym szyfrowaniu jest duża, a zatem proces szyfrowania-deszyfrowania jest wolniejszy niż szyfrowanie kluczem symetrycznym.
Moc obliczeniowa systemu komputerowego wymagana do działania algorytmu asymetrycznego jest większa.
Symetryczne kryptosystemy to naturalna koncepcja. Z kolei kryptosystemy klucza publicznego są dość trudne do zrozumienia.
Możesz pomyśleć, w jaki sposób klucz szyfrowania i klucz odszyfrowywania mogą być „powiązane”, a mimo to niemożliwe jest określenie klucza odszyfrowywania na podstawie klucza szyfrowania? Odpowiedź tkwi w pojęciach matematycznych. Możliwe jest zaprojektowanie systemu kryptograficznego, którego klucze mają tę właściwość. Koncepcja kryptografii klucza publicznego jest stosunkowo nowa. Znanych jest mniej algorytmów klucza publicznego niż algorytmy symetryczne.
Wyzwanie kryptosystemu klucza publicznego
Kryptosystemy klucza publicznego mają jedno istotne wyzwanie - użytkownik musi ufać, że klucz publiczny, którego używa w komunikacji z osobą, naprawdę jest kluczem publicznym tej osoby i nie został sfałszowany przez złośliwą stronę trzecią.
Odbywa się to zwykle za pośrednictwem infrastruktury klucza publicznego (PKI) składającej się z zaufanej strony trzeciej. Strona trzecia w bezpieczny sposób zarządza i potwierdza autentyczność kluczy publicznych. Gdy strona trzecia jest proszona o dostarczenie klucza publicznego dla dowolnej komunikującej się osoby X, wierzy się, że dostarczy poprawny klucz publiczny.
Strona trzecia upewnia się co do tożsamości użytkownika w procesie poświadczenia, notarialnego lub innego procesu - że X jest jedynym lub globalnie unikalnym X. Najczęstszą metodą udostępniania zweryfikowanych kluczy publicznych jest ich osadzenie w certyfikacie podpisanym cyfrowo przez zaufaną stronę trzecią.
Relacja między schematami szyfrowania
Podsumowanie podstawowych właściwości klucza dwóch typów kryptosystemów znajduje się poniżej -
Symetryczne kryptosystemy | Kryptosystemy klucza publicznego | |
---|---|---|
Relation between Keys | Podobnie | Różne, ale powiązane matematycznie |
Klucz szyfrowania | Symetryczny | Publiczny |
Klucz odszyfrowywania | Symetryczny | Prywatny |
Ze względu na zalety i wady obu systemów, w praktycznych systemach bezpieczeństwa informacji często używa się razem kryptosystemów z kluczem symetrycznym i kluczem publicznym.
Zasada Kerckhoffa dotycząca Cryptosystem
W XIX wieku holenderski kryptograf A. Kerckhoff dostarczył wymagań dobrego kryptosystemu. Kerckhoff stwierdził, że system kryptograficzny powinien być bezpieczny, nawet jeśli wszystko w systemie, z wyjątkiem klucza, jest powszechnie znane. Sześć zasad projektowania zdefiniowanych przez Kerckhoffa dla kryptosystemu to:
Kryptosystem powinien być niezniszczalny praktycznie, jeśli nie matematycznie.
Wpadnięcie kryptosystemu w ręce intruza nie powinno prowadzić do żadnego kompromitacji systemu, zapobiegając niedogodnościom dla użytkownika.
Klucz powinien być łatwy do przekazania, zapamiętany i zmienny.
Zaszyfrowany tekst powinien być przesyłany telegrafem, niezabezpieczonym kanałem.
Urządzenie szyfrujące i dokumenty powinny być przenośne i obsługiwane przez jedną osobę.
Wreszcie konieczne jest, aby system był łatwy w użyciu, nie wymagał ani wysiłku psychicznego, ani znajomości długiej serii zasad, których należy przestrzegać.
Druga reguła jest obecnie znana jako Kerckhoff principle. Jest stosowany w praktycznie wszystkich współczesnych algorytmach szyfrowania, takich jak DES, AES itp. Te publiczne algorytmy są uważane za całkowicie bezpieczne. Bezpieczeństwo zaszyfrowanej wiadomości zależy wyłącznie od bezpieczeństwa tajnego klucza szyfrującego.
Utrzymywanie algorytmów w tajemnicy może stanowić istotną barierę dla kryptoanalizy. Jednak zachowanie algorytmów w tajemnicy jest możliwe tylko wtedy, gdy są używane w ściśle określonym kręgu.
W dzisiejszych czasach kryptografia musi zaspokajać potrzeby użytkowników podłączonych do Internetu. W takich przypadkach użycie tajnego algorytmu nie jest możliwe, dlatego zasady Kerckhoffa stały się podstawowymi wytycznymi do projektowania algorytmów we współczesnej kryptografii.