0Pricing
Cryptology Academy · Lekcja

Czym jest podpis cyfrowy?

Zrozumieć różnicę między uwierzytelnianiem a szyfrowaniem oraz cykl życia podpisu

Czym jest podpis cyfrowy? to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 1 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.

Wprowadzenie

Podpisy cyfrowe są kryptograficznym odpowiednikiem odręcznego podpisu — można je jednak zweryfikować matematycznie i nie da się ich podrobić bez klucza prywatnego.

Dlaczego podpisy różnią się od szyfrowania

Szyfrowanie: przekształcenie danych tak, aby tylko odbiorca mógł je odczytać. Podpisy: potwierdzenie, że dane pochodzą od nadawcy i nie zostały zmienione. Szyfrowanie wykorzystuje klucz publiczny odbiorcy, a podpisywanie — klucz prywatny nadawcy.

Trzy właściwości bezpieczeństwa

Uwierzytelnianie: potwierdza tożsamość osoby podpisującej. Integralność: dowodzi, że wiadomość nie została zmieniona po podpisaniu. Niezaprzeczalność: osoba podpisująca nie może zaprzeczyć, że złożyła podpis — klucz prywatny należy wyłącznie do niej.

Sign-then-Encrypt a Encrypt-then-Sign

Encrypt-then-Sign jest ogólnie bezpieczniejsze: należy podpisać szyfrogram, aby podpis obejmował dokładnie to, co jest uwierzytelniane. Sign-then-Encrypt może ujawnić metadane aktywnym napastnikom.

Hash-then-Sign

Nigdy nie należy podpisywać surowej wiadomości (jest zbyt duża dla RSA). Zamiast tego: 1. H = Hash(message) 2. signature = Sign(private_key, H) Skrót redukuje dowolną wiadomość do danych wejściowych o stałym rozmiarze dla algorytmu podpisującego.

Weryfikacja podpisu

Weryfikator ma: wiadomość, podpis i klucz publiczny osoby podpisującej. 1. H = Hash(message) 2. H' = Verify(public_key, signature) 3. Należy zaakceptować, jeśli H == H'; w przeciwnym razie odrzucić

Przykład podpisu RSA

Podpis: sig = hash^d mod n (potęgowanie z użyciem prywatnego wykładnika d) Weryfikacja: hash = sig^e mod n (potęgowanie z użyciem publicznego wykładnika e) Należy porównać odzyskany skrót ze skrótem obliczonym dla wiadomości.

Porównanie podpisu i MAC

MAC wymaga współdzielonego sekretu — obie strony muszą znać klucz. Podpisy wykorzystują klucze asymetryczne — każdy, kto ma klucz publiczny, może je zweryfikować. Podpisy zapewniają niezaprzeczalność, a MAC jej nie zapewnia.

Przegląd DSA

DSA (Digital Signature Algorithm, 1994) wykorzystuje trudność problemu logarytmu dyskretnego. Generuje losowy nonce k dla każdego podpisu. Jeśli k zostanie użyty ponownie lub będzie przewidywalny, klucz prywatny zostanie ujawniony.

Katastrofa związana z ponownym użyciem nonce (włamanie do PS3)

Sony PlayStation 3 używało stałej wartości k=1 w ECDSA. Hakerzy wyodrębnili prywatny klucz podpisujący na podstawie dwóch różnych podpisów. Umożliwiło im to podpisywanie dowolnego oprogramowania układowego, z pominięciem wszystkich zabezpieczeń.

Podpisy certyfikatów

Certyfikat X.509 to po prostu dane wraz z podpisem cyfrowym złożonym przy użyciu klucza prywatnego urzędu certyfikacji (CA). Gdy przeglądarka weryfikuje certyfikat, sprawdza podpis CA za pomocą klucza publicznego CA znajdującego się w magazynie zaufanych kluczy.

Szybki sprawdzian

Która właściwość gwarantuje, że osoba podpisująca nie może później zaprzeczyć złożeniu podpisu pod dokumentem?

Podsumowanie

Podpisy cyfrowe sprawiają, że cyfrowy świat jest godny zaufania. Następnie szczegółowo omówimy schematy podpisów RSA, DSA i ECDSA.

Często zadawane pytania

Czy lekcja „Czym jest podpis cyfrowy?” jest bezpłatna?

Tak — pełny tekst „Czym jest podpis cyfrowy?” 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 „Czym jest podpis cyfrowy?”?

Zrozumieć różnicę między uwierzytelnianiem a szyfrowaniem oraz cykl życia podpisu Ć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 1 z 4.

Ile czasu zajmuje lekcja „Czym jest podpis cyfrowy?”?

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. Czym jest podpis cyfrowy?
  2. Podpisy RSA: podpisywanie i weryfikacja
  3. Schematy podpisów DSA i ECDSA
  4. Podpisy w praktyce: podpisywanie kodu i poczty e-mail
← Powrót do Cryptology Academy