If you're seeing this message, it means we're having trouble loading external resources on our website.

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Bitcoin: podpisy cyfrowe

Objaśnienie schematów podpisu cyfrowego, który stanowi fundamentalny składnik wielu protokołów kryptograficznych. Stworzone przez: Zulfikar Ramzan.

Chcesz dołączyć do dyskusji?

  • Awatar blobby green style dla użytkownika mis lada
    Kompletnie nie kumam i NIKT nie potrafi tego wyjaśnić jak krypto pieniądze mogą być skradzione i zginąć bez śladu w sieci ? Sorry ! toż każde durne 10 zł ma swój indywidualny numer a jednostki cyfrowej waluty nie mają swioch cyferek ? .. przecież nie mogą istnieć poza blockchainem i systemem danej waluty ..to jakiś absurd , ponoć blockchain jest transparentny ....?
    (1 głos)
    Awatar Default Khan Academy avatar dla użytkownika
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.

Transkrypcja filmu video

Podpis cyfrowy to matematyczny mechanizm do łączenia publicznego ciągu liczb z daną wiadomością cyfrową. Można interpretować go różnie, np. jako elektroniczny odpowiednik podpisu fizycznego. Podpisując się, dołączacie do dokumentów ciąg znaków reprezentujący waszą tożsamość. Ten proces łączy waszą tożsamość z dokumentem. Ponadto, układając znaki w swoim nazwisku w szczególny sposób, właściwy tylko wam, macie nadzieję, że nikt nie zdoła sfałszować waszego podpisu. W podpisie cyfrowym można to osiągnąć matematycznie. Do najbardziej znanych standardów podpisu cyfrowego należy RSA ("Rivest, Shamir, Adleman"); jest też DSS, czyli Digital Signature Standard. Gdy używamy standardu takiego jak RSA czy DSS, cyfrowy podpis jest znacznie trudniej podrobić niż podpis odręczny. W tym filmiku postaram się przedstawić zaawansowane mechanizmy standardów podpisu cyfrowego. Nie będę się jednak zajmował matematycznymi detalami poszczególnych standardów, przynajmniej nie teraz. Objaśnię, jak to działa. Jest użytkowniczka, Alicja. Powiedzmy, że chce cyfrowo podpisać dokument. W wybranym standardzie Alicja wygeneruje dwa klucze. Mają swoje nazwy. Pierwszy to klucz podpisu. Klucz prywatny. Napiszę to na czerwono. Będziemy używać skrótu "SK". Alicja wygeneruje także klucz weryfikacyjny. Klucze do złożenia podpisu i do weryfikacji powstaną jednocześnie. Alicja wygeneruje oba naraz. Będą powiązane matematycznie. Co ciekawe, klucz weryfikacyjny jest publiczny, a klucz podpisu - prywatny. Ponadto w standardzie podpisu cyfrowego powinno być trudno wygenerować klucz weryfikacyjny, a raczej klucz podpisu, gdy widać tylko klucz weryfikacyjny. Pomyślmy o następstwach cyfrowego podpisywania wiadomości. Macie wiadomość, w skrócie M, i chcecie podpisać ją cyfrowo. Sprowadza się to do przekształcenia matematycznego. Alicja podda przekształceniu wiadomość M i swój klucz podpisu, SK. Efektem tego przekształcenia będzie konkretny ciąg liczb, który nazywamy podpisem. Podpisem na wiadomości M. Co ciekawe, ten podpis w gruncie rzeczy powstaje z połączenia wiadomości M z kluczem podpisu, czyli z kluczem prywatnym Alicji. Wynikiem będzie stosunkowo krótki ciąg liczb. Standardy podpisu cyfrowego powinny być projektowane tak, by tylko posiadacz klucza prywatnego do składania podpisu mógł wygenerować tego rodzaju wynik, podpis cyfrowy. Podpis SM na wiadomości M. Weryfikacja to proces analogiczny do podpisywania, wymaga jednak publicznego klucza weryfikacyjnego. Dane wejściowe składają się z trzech części. Pierwsza to wiadomość, której podpis sprawdzacie. Potrzebujecie również podpis na tej wiadomości. Jak to będzie wyglądać? I wreszcie ostatni element danych wejściowych do standardu weryfikacji to klucz publiczny należący do Alicji. Wprowadzone wartości są poddane przekształceniu... A to przekształcenie matematyczne stara się określić, czy podpis, który odpowiada wiadomości M, mógł powstać z użyciem klucza prywatnego Alicji. Ten klucz prywatny odpowiada publicznemu kluczowi weryfikacyjnemu. Nadzwyczajne jest to, że można przeprowadzić ten proces mając sam klucz weryfikacyjny. Wcale nie trzeba klucza prywatnego, by uwierzytelnić podpis cyfrowy. Nie jest potrzebny nawet pośrednio. Można sprawdzić wszystko, znając tylko klucz publiczny. Wynikiem weryfikacji jest zwykle "tak" lub "nie". Informacja, czy przyjąć podpis, czy go odrzucić. To podstawowa procedura uwierzytelniania. Zatem, jak widzicie, proces podpisywania łączy publiczny klucz weryfikacyjny... z Alicją. Pamiętajcie, że to ona ogłosiła ten klucz. Powiedziała wszystkim: "To mój klucz weryfikacyjny w systemie. Tylko wiadomości podpisane przeze mnie zostaną potwierdzone za pomocą tego klucza". A ponieważ wiadomość została związana z kluczem publicznym, który możemy uznać za jakiś identyfikator, może Alicji, to składanie podpisu cyfrowego jest procesem wiążącym tożsamość z wiadomością. Jest to zatem matematyczny odpowiednik tradycyjnego podpisu odręcznego. Teraz dwie bardzo ważne uwagi. Po pierwsze, zobaczycie, że przekształcenie, z którego wynika sam cyfrowy podpis, i które daje nam podpisaną wiadomość, w gruncie rzeczy po prostu przyjmuje ją jako swoje dane wejściowe. A to oznacza, że podpis zależy od wiadomości. Zmieniając wiadomość, uzyskacie inny podpis. Pod tym względem podpis cyfrowy różni się od odręcznego. Wasz podpis odręczny raczej się nie zmienia, jest taki sam, cokolwiek podpisujecie. A podpis cyfrowy zmienia się zależnie od tego, co nim opatrujecie. Podpisując inną wiadomość, zyskujecie inny podpis. I drugie spostrzeżenie: podpisy cyfrowe często są kojarzone z kryptograficzną funkcją skrótu. Mówiłem w poprzednim odcinku i teraz powtórzę, że pierwsze kryptograficzne funkcje skrótu zaprojektowano z myślą o podpisach cyfrowych. To miało być zastosowanie. Gdy chcemy podpisać dowolną wiadomość... powiedzmy, że będzie bardzo długa. Przed złożeniem podpisu skorzystacie z kryptograficznej funkcji skrótu i uzyskacie... Z kryptograficznej funkcji skrótu uzyskacie krótsze dane wyjściowe, skrót wiadomości. Algorytm, zamiast podpisać oryginalną wiadomość, najpierw ją haszuje, a potem podpisuje skrót. Podpisany zostanie skrót zamiast oryginalnej wiadomości. Te dwa etapy, haszowania i podpisu, upraszczają proces podpisu cyfrowego, bo nie trzeba się męczyć z wielką ilością danych wejściowych; skrót ma stałą, określoną długość. Haszowanie i podpisywanie jest bezpieczne, ponieważ trudno jest znaleźć dwie wiadomości, które po zastosowaniu funkcji skrótu dają to samo. Innymi słowy, nie utworzycie dwu różnych wiadomości, które kryptograficzna funkcja skrótu przetworzy identycznie. Zatem funkcja skrótu, jeśli jest odporna na kolizje, zapewnia bezpieczny standard podpisu z uprzednim haszowaniem. Gdyby mimo wszystko udało się znaleźć dwie wiadomości, różne, ale zwracające to samo po zastosowaniu funkcji skrótu, prowadziłoby to do problemów. Podpis na pierwszej wiadomości byłby identyczny z podpisem na drugiej, bo nie podpisujemy wiadomości, tylko ich skróty. Przy identycznych skrótach mielibyście ten sam podpis na dwu wiadomościach. A wtedy byłoby ryzyko sfałszowania wiadomości z wykorzystaniem podpisu cyfrowego. Tego nie chcecie! Byłoby źle, gdyby ktoś złożył wasz podpis na wiadomości innej niż ta, którą zamierzaliście podpisać. Powiem wprost: dałoby się przedstawić temat z większą dozą formalizmu, ale chciałem oswoić was ze sprawą bez matematycznych niuansów.