Podpis cyfrowy to mechanizm kryptograficzny służący do weryfikacji autentyczności i integralności danych cyfrowych. Możemy o tym myśleć jako o cyfrowej wersji konwencjonalnych podpisów odręcznych, ale o wyższym poziomie złożoności i bezpieczeństwa.

Mówiąc najprościej, podpis cyfrowy możemy opisać jako kod dołączony do wiadomości lub dokumentu. Po wygenerowaniu kod stanowi dowód, że wiadomość nie została zmodyfikowana w drodze od nadawcy do odbiorcy.

Chociaż koncepcja zabezpieczania komunikacji za pomocą kryptografii sięga czasów starożytnych, schematy podpisu cyfrowego stały się możliwą rzeczywistością w latach 70. XX wieku wraz z rozwojem kryptografii klucza publicznego (PKC). Aby więc dowiedzieć się, jak działają podpisy cyfrowe, musimy najpierw zrozumieć podstawy funkcji skrótu i ​​kryptografii klucza publicznego.


Funkcje mieszające

Haszowanie jest jednym z głównych elementów systemu podpisu cyfrowego. Proces mieszania polega na konwertowaniu danych o dowolnym rozmiarze na dane wyjściowe o stałym rozmiarze. Odbywa się to za pomocą specjalnego rodzaju algorytmów znanych jako funkcje mieszające. Dane wyjściowe generowane przez funkcję skrótu są znane jako wartość skrótu lub skrót wiadomości.

W połączeniu z kryptografią można wykorzystać tak zwane kryptograficzne funkcje skrótu do wygenerowania wartości skrótu (skrótu), która działa jak unikalny cyfrowy odcisk palca. Oznacza to, że każda zmiana danych wejściowych (komunikatu) spowoduje inny wynik (wartość skrótu). Z tego powodu kryptograficzne funkcje skrótu są szeroko stosowane do weryfikacji danych cyfrowych.


Kryptografia klucza publicznego (PKC)

Kryptografia klucza publicznego lub PKC odnosi się do systemu kryptograficznego wykorzystującego parę kluczy: jeden klucz publiczny i jeden klucz prywatny. Te dwa klucze są powiązane matematycznie i mogą być używane zarówno do szyfrowania danych, jak i do podpisów cyfrowych.

Jako narzędzie szyfrujące PKC jest bezpieczniejsze niż prostsze metody szyfrowania symetrycznego. Podczas gdy starsze systemy wykorzystują ten sam klucz do szyfrowania i deszyfrowania informacji, PKC umożliwia szyfrowanie danych kluczem publicznym i odszyfrowywanie danych za pomocą odpowiedniego klucza prywatnego.

Ponadto schemat PKC można wykorzystać także przy tworzeniu podpisów cyfrowych. Zasadniczo proces polega na mieszaniu wiadomości (lub danych cyfrowych) z kluczem prywatnym osoby podpisującej. Odbiorca wiadomości może następnie sprawdzić, czy podpis jest ważny, korzystając z klucza publicznego dostarczonego przez osobę podpisującą.

W niektórych sytuacjach podpisy cyfrowe mogą zawierać szyfrowanie, ale nie zawsze tak jest. Na przykład łańcuch bloków Bitcoin wykorzystuje PKC i podpisy cyfrowe, ale wbrew temu, co wielu uważa, nie wiąże się to z żadnym szyfrowaniem. Technicznie rzecz biorąc, Bitcoin wykorzystuje tak zwany algorytm podpisu cyfrowego krzywej eliptycznej (ECDSA) do uwierzytelniania transakcji.


Jak działają podpisy cyfrowe

W kontekście kryptowalut system podpisu cyfrowego często składa się z trzech głównych etapów: mieszania, podpisywania i weryfikacji.

Haszowanie danych

Pierwszym krokiem jest zaszyfrowanie wiadomości lub danych cyfrowych. Odbywa się to poprzez wysłanie danych przy użyciu algorytmu mieszającego w celu utworzenia wartości skrótu (tj. skrótu wiadomości). Jak wspomniano, wiadomości mogą znacznie różnić się rozmiarem, ale po zaszyfrowaniu wszystkie ich wartości skrótu mają tę samą długość. Jest to główna właściwość funkcji skrótu.

Jednak haszowanie danych nie jest wymagane do utworzenia podpisu cyfrowego, ponieważ można użyć klucza prywatnego do podpisania wiadomości, która w ogóle nie została zaszyfrowana. Jednak w przypadku kryptowalut dane są zawsze hashowane, ponieważ praca z podsumowaniami o stałej długości upraszcza cały proces.

Podpis

Po zaszyfrowaniu informacji nadawca wiadomości musi ją podpisać. Tutaj właśnie wchodzi w grę kryptografia klucza publicznego. Istnieje kilka typów algorytmów podpisu cyfrowego, każdy z własnym mechanizmem. Zasadniczo jednak zaszyfrowana wiadomość zostanie podpisana kluczem prywatnym, a odbiorca wiadomości będzie mógł następnie zweryfikować jej autentyczność za pomocą odpowiedniego klucza prywatnego (dostarczonego przez osobę podpisującą).

Innymi słowy, jeśli klucz prywatny nie zostanie włączony podczas tworzenia podpisu, odbiorca wiadomości nie będzie mógł użyć odpowiedniego klucza publicznego do sprawdzenia jej autentyczności. Zarówno klucze publiczny, jak i prywatny są generowane przez nadawcę wiadomości, ale klucz publiczny jest przesyłany do odbiorcy.

Warto zaznaczyć, że podpisy cyfrowe są bezpośrednio powiązane z treścią każdej wiadomości. Dlatego w przeciwieństwie do podpisów odręcznych, które są zazwyczaj takie same niezależnie od wiadomości, każda wiadomość podpisana cyfrowo będzie miała inny podpis cyfrowy.

Rewizja

Weźmy przykład ilustrujący cały proces aż do ostatniego etapu weryfikacji. Wyobraź sobie, że Alicja pisze wiadomość do Boba, szyfruje ją, a następnie łączy wartość skrótu ze swoim kluczem prywatnym, aby utworzyć podpis cyfrowy. Podpis będzie stanowić unikalny cyfrowy odcisk palca tej wiadomości.

Kiedy Bob odbierze wiadomość, może zweryfikować ważność podpisu cyfrowego za pomocą klucza publicznego dostarczonego przez Alicję. Bob może być więc pewien, że podpis stworzyła Alicja, bo tylko ona ma klucz prywatny pasujący do tego klucza publicznego (przynajmniej tak się spodziewamy).

Dlatego bardzo ważne jest, aby Alicja zachowała swój klucz prywatny w tajemnicy. Jeśli inna osoba zdobędzie klucz prywatny Alicji, może utworzyć podpis cyfrowy i podszyć się pod Alicję. W kontekście Bitcoina oznacza to, że ktoś może użyć klucza prywatnego Alicji do przeniesienia lub wydania jej Bitcoinów bez jej zgody.


Dlaczego podpisy cyfrowe są ważne?

Podpisy cyfrowe są często używane do osiągnięcia trzech celów: integralności danych, uwierzytelnienia i przełączania awaryjnego.

  • Integralność danych. Bob może sprawdzić, czy wiadomość Alicji nie uległa zmianie. Jakakolwiek modyfikacja wiadomości spowoduje powstanie zupełnie innego podpisu.

  • Autentyczność. Pod warunkiem, że klucz prywatny Alicji jest utrzymywany w tajemnicy, Bob może użyć jej klucza publicznego do sprawdzenia, czy podpisy cyfrowe zostały utworzone przez Alicję i nikogo innego.

  • Niezawodność. Po wygenerowaniu podpisu Alicja nie może zaprzeczyć, że podpisała go w przyszłości, chyba że jej klucz prywatny zostanie naruszony.


Opcje użycia

Podpisy cyfrowe można stosować do różnych typów dokumentów cyfrowych i certyfikatów. Jako takie mają kilka zastosowań. Niektóre z najczęstszych zastosowań to:  

  • Technologie informacyjne: poprawa bezpieczeństwa systemów komunikacji internetowej.

  • Finanse: Podpisy cyfrowe można stosować do audytów, raportów wydatków, umów kredytowych i nie tylko.

  • Regulacja prawna: Cyfrowe podpisywanie wszelkiego rodzaju umów biznesowych i umów prawnych, w tym dokumentów rządowych.

  • Opieka zdrowotna: Podpisy cyfrowe mogą zapobiegać fałszowaniu recept i dokumentacji medycznej.

  • Blockchain: Schematy podpisu cyfrowego zapewniają, że tylko prawowici właściciele kryptowaluty mogą podpisać transakcję w celu przeniesienia środków (pod warunkiem, że ich klucze prywatne nie zostaną naruszone).


Ograniczenie

Główne wyzwania stojące przed systemami podpisu cyfrowego opierają się na co najmniej trzech wymaganiach: 

  • Algorytm: jakość algorytmów stosowanych w schemacie podpisu cyfrowego jest ważna. Jest to w szczególności wybór niezawodnych funkcji skrótu i ​​systemów kryptograficznych.

  • Wdrożenie: jeśli algorytmy są dobre, a brakuje implementacji, system podpisu cyfrowego prawdopodobnie jest wadliwy.

  • Klucz prywatny: Jeśli klucze prywatne zostaną utracone lub w jakiś sposób naruszone, właściwości autentyczności i odporności na awarie zostaną unieważnione. Dla użytkowników kryptowalut utrata klucza prywatnego może spowodować znaczne straty finansowe.


Podpisy elektroniczne a podpisy cyfrowe

Podpisy cyfrowe odnoszą się do jednego określonego rodzaju podpisów elektronicznych, które należą do dowolnej metody elektronicznego podpisywania dokumentów i wiadomości. Dlatego wszystkie podpisy cyfrowe są podpisami elektronicznymi, ale nie odwrotnie.

Główną różnicą między nimi jest metoda uwierzytelniania. Podpisy cyfrowe wykorzystują systemy kryptograficzne, takie jak funkcje skrótu, kryptografia klucza publicznego i techniki szyfrowania.


Wyniki

Funkcje skrótu i ​​kryptografia klucza publicznego stanowią serce systemów podpisów cyfrowych, które obecnie mają wiele zastosowań. Prawidłowo stosowane podpisy cyfrowe mogą poprawić bezpieczeństwo, zapewnić integralność i ułatwić uwierzytelnianie wszystkich typów danych cyfrowych.

W obszarze blockchain podpisy cyfrowe służą do podpisywania i autoryzacji transakcji kryptograficznych. Są one szczególnie ważne w przypadku Bitcoina, ponieważ podpisy zapewniają, że monetami mogą wydawać wyłącznie osoby posiadające odpowiednie klucze prywatne.

Choć od wielu lat stosujemy zarówno podpisy elektroniczne, jak i cyfrowe, wciąż mamy przestrzeń do rozwoju. Duża część dzisiejszej biurokracji nadal opiera się na dokumentach papierowych, ale prawdopodobnie będziemy świadkami szerszego stosowania podpisów cyfrowych w miarę przejścia na bardziej cyfrowe systemy przetwarzania danych.