Podpisy cyfrowe opierają się na architekturze kryptografii z kluczem publicznym w celu weryfikacji autentyczności dokumentu i identyfikacji nadawcy. Dwa standardowe sposoby uzyskiwania podpisów cyfrowych to algorytmy RSA (Rivest-Shamir-Adleman) i DSA (Digital Signature), ale oba różnią się wykonywaniem funkcji szyfrowania i deszyfrowania.
Artykuł zawiera przegląd jednego ze standardowych algorytmów branżowych DSA, jego proces pracy z krótkim omówieniem generowania i weryfikacji klucza i podpisu, etapów całego procesu, jego zalet/przeciw, i jego wniosek.
Wprowadzenie do algorytmów podpisu cyfrowego
DSA (Digital Signature Algorithm) łączy algebraiczne właściwości problemów z logarytmem dyskretnym i potęgowanie modularne do generowania podpisu elektronicznego dla różnych zastosowań. Został zaproponowany w 1991 roku i został przyjęty jako Federalny Standard Przetwarzania Informacji przez NIST (National Institute of Standards and Technology) w 1994 roku.
Większość algorytmów tworzenia podpisów cyfrowych stosuje typową technikę podpisywania skrótu wiadomości (skrótu rzeczywistej wiadomości) za pomocą źródłowego klucza prywatnego w celu utworzenia cyfrowego odcisku palca.
Jednak sytuacja jest inna w DSA, ponieważ generuje dwa podpisy, łącząc dwie złożone i unikalne funkcje podpisywania i weryfikacji. Dlatego algorytm DSA nie polega na prostym użyciu kluczy prywatnych i publicznych na początku i na końcu komunikacji.
Znaczenie algorytmu podpisu cyfrowego
W związku z coraz większymi zagrożeniami cybernetycznymi, gdy użytkownik przesyła dane przez Internet, konieczne jest zidentyfikowanie i zweryfikowanie autentyczności właściciela. Musimy upewnić się, że właściciel dokumentu jest wiarygodny i że nikt nie dokonał żadnych zmian podczas transmisji.
Podpisy cyfrowe to podpisy elektroniczne, które pomagają odbiorcy w uwierzytelnieniu pochodzenia wiadomości. Możesz tworzyć te podpisy elektroniczne za pomocą różnych algorytmów, a jednym z nich jest DSA. W DSA nadawca tworzy podpis cyfrowy, aby dołączyć go do wiadomości, tak aby każdy mógł ją uwierzytelnić po stronie odbiorczej.
Korzyści oferowane przez DSA to:
- Niezaprzeczalność: po weryfikacji podpisu nadawca nie może twierdzić, że nie przesłał danych.
- Integralność: modyfikacja danych podczas transmisji uniemożliwia ostateczną weryfikację lub odszyfrowanie wiadomości.
- Uwierzytelnianie wiadomości: właściwa kombinacja kluczy prywatnych/publicznych pomaga zweryfikować pochodzenie nadawcy.
Jak algorytm uwierzytelnia nadawcę?
Algorytm DSA działa na mechanizmie systematycznego obliczania, który oblicza wartość skrótu i podpis cyfrowy składający się z dwóch 160-bitowych liczb ze skrótu wiadomości i klucza prywatnego. Losowość sprawia, że podpis jest niedeterministyczny. Używa klucza publicznego do uwierzytelniania podpisu, co jest znacznie bardziej złożone niż RSA.
Cykl DSA składa się z tych trzech głównych kroków, aby zakończyć proces:
- Generowanie kluczy: Proces opiera się na koncepcji potęgowania modularnego w celu uzyskania kluczy prywatnych (x) i publicznych (y), które spełniają warunki matematyczne 0 < x < q i y = gx mod p. Gdzie q jest dzielnikiem pierwszym, p jest liczbą pierwszą, a g spełnia te warunki g**q mod p = 1 i g = h**((p–1)/q) mod p. W ten sposób tworzymy pakiety kluczy prywatnych i publicznych {p, q, g, x} i {p, q, g, y}.
- Generowanie podpisu: Algorytm mieszający generuje skrót wiadomości, który jest przekazywany jako dane wejściowe do funkcji podpisującej w celu utworzenia dwóch zmiennych outputs, r i s, spakowane jako sygnatura {r, s} tak, że wiadomość i te zmienne są wysyłane jako pakiet do odbiorca.
- Weryfikacja podpisu: Proces wykorzystuje funkcję mieszającą do wyprowadzenia skrótu i włącza zmienne s z innymi parametrami z etapu generowania klucza, aby utworzyć komponent weryfikacji v. Funkcja weryfikacji porównuje obliczoną zmienną v z parametrem r z pakietu {M, s, r}.
Podsumowując powyższy proces niematematycznie:
- Klucze tworzysz za pomocą algorytmu generowania klucza do podpisania dokumentu.
- Następnie użyj algorytmu podpisu cyfrowego, aby wygenerować podpis.
- Użyć funkcja skrótu do tworzenia skrótu wiadomościi połącz go z DSA, aby wygenerować podpis cyfrowy.
- Wyślij podpis z danymi do uwierzytelnienia przez odbiorcę.
- Odbiorca uwierzytelnia podpis przy użyciu algorytmu weryfikacji. Jest to funkcja skrótu używana powyżej do tworzenia skrótu wiadomości.
Zalety korzystania z algorytmu podpisu cyfrowego
- Szybkie obliczanie podpisu
- Wymaga mniej miejsca do przechowywania całego procesu
- Swobodnie dostępne (bez patentu) do bezpłatnego użytku na całym świecie.
- Mała długość podpisu
- Obserwacja w czasie rzeczywistym
- Nieinwazyjny
- DSA jest akceptowane na całym świecie w celu zapewnienia zgodności z prawem.
- Oszczędność czasu (niskie zużycie czasu w porównaniu z procesami fizycznego podpisywania itp.)
Wady korzystania z algorytmu podpisu cyfrowego
- Proces nie obejmuje możliwości wymiany kluczy.
- ten podstawowa kryptografia musi być nowy, aby zapewnić mu siłę.
- Standaryzacja dostawców sprzętu i oprogramowania komputerowego w RSA może powodować problemy ze względu na drugi standard uwierzytelniania DSA.
- Złożone operacje na resztach wymagają dużo czasu na obliczenia, a co za tym idzie weryfikację podpisu.
- Zapewnia jedynie uwierzytelnienie, a nie poufność, ponieważ algorytm nie szyfruje danych.
- Algorytmy DSA obliczają skrót SHA1, aby wygenerować skrót wiadomości. Odzwierciedla zatem wszystkie wady funkcji skrótu SHA1 w algorytmie.
DSA kontra RSA
Algorytm podpisu cyfrowego to algorytm szyfrowania klucza asymetrycznego przyjęty przez agencje USA do tajnej i nietajnej komunikacji. Podczas gdy RSA jest algorytmem kryptograficznym z kluczem publicznym, który również wykorzystuje arytmetykę modularną, jego siła polega na problemie faktoryzacji liczb pierwszych w celu zabezpieczenia komunikacji i podpisów cyfrowych. Dlatego w przeciwieństwie do zwykłych algorytmów szyfrowania, takich jak RSA, DSA jest standardem tylko dla podpisów cyfrowych.
Mimo że oba zawierają różne algorytmy matematyczne, siła kryptografii jest równoważna. Główna różnica między tymi dwoma algorytmami ogranicza się do szybkości, wydajności i obsługi protokołu SSH.
- W przeciwieństwie do DSA, RSA jest powolne w odszyfrowywaniu, generowaniu kluczy i weryfikacji, ale szybkie w szyfrowaniu i podpisywaniu. Jednak uwierzytelnianie wymaga obu, a rozbieżności w szybkości są nieistotne w rzeczywistych aplikacjach.
- Kolejna różnica polega na obsłudze protokołu sieciowego Secure Shell. RSA obsługuje oryginalny SSH i jego bezpieczną drugą wersję SSH2, podczas gdy DSA działa tylko z SSH2.
Uwierzytelnij źródło danych za pomocą DSA
Podpisy cyfrowe są potrzebne w dzisiejszym połączonym świecie, aby stworzyć bezpieczne środowisko. Są świetnym sposobem na uwierzytelnienie dowolnego rekordu przez Internet. W artykule przedstawiono algorytmy podpisu cyfrowego wraz z krótkim omówieniem procesu ich działania, zaletami, wadami, ograniczeniami bezpieczeństwa oraz porównaniem z RSA.
Te dwa protokoły szyfrowania są często omawiane razem, ale czym one są i jak działają?
Czytaj dalej
- Bezpieczeństwo
- Podpisy cyfrowe

Rumaisa jest niezależnym pisarzem w MUO. Nosiła wiele kapeluszy, od matematyka po entuzjastę bezpieczeństwa informacji, a teraz pracuje jako analityk SOC. Jej zainteresowania obejmują czytanie i pisanie o nowych technologiach, dystrybucjach Linuksa i wszystkim, co dotyczy bezpieczeństwa informacji.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować