| Rodzaj algorytmu |
kryptografia asymetryczna, algorytm podpisu cyfrowego |
|---|---|
| Data stworzenia | |
| Autorzy | |
| Długość klucza |
od 1024/160 do 3072/256 (L/N) [bit] |
| Data złamania |
2023 |
| Skuteczne ataki |
ataki kleptograficzne przy niewłaściwym wyborze zmiennej k |
Digital Signature Algorithm (DSA) – algorytm kryptografii asymetrycznej zaproponowany w 1991 przez amerykański instytut NIST do wykorzystania w ramach DSS, standardu dla podpisów cyfrowych. Jego bezpieczeństwo opiera się na trudności znalezienia logarytmu dyskretnego w ciele skończonym. NIST opatentował DSA w 1993, umożliwił jednak korzystanie z algorytmu za darmo na całym świecie.
Opublikowana przez NIST w 2023 norma FIPS 186-5 wycofała użycie DSA w podpisach cyfrowych, zalecając w zamian korzystanie z nowszych algorytmów, takich jak ECDSA (opierający się na kryptografii krzywych eliptycznych) lub EdDSA (wykorzystujący krzywe Edwardsa).
Dla systemu wybierana jest pewna funkcja skrótu ; norma FIPS 180-4 zaleca korzystanie z SHA-1 lub SHA-2.
Klucze tworzone są w następujący sposób:
Norma FIPS 186-4 przewiduje dla liczb pary wartości: , , i .
Podpis składa się z pary liczb obliczanych w następujący sposób:
Jeżeli lub , liczby te powinny zostać obliczone ponownie obierając inną wartość , jest to jednak skrajnie rzadki przypadek.
Niech będą otrzymanymi przez odbiorcę wartościami . Prawidłowość podpisu można zweryfikować następująco:
Jeżeli , to znaczy, że otrzymana wiadomość lub podpis zostały zmodyfikowane, nastąpił błąd w implementacji algorytmu po stronie podpisującego albo doszło do próby podrobienia podpisu przez osobę nieznającą klucza prywatnego domniemanego nadawcy wiadomości.
Wybór zmiennej dla wiadomości jest krytyczny z punktu widzenia bezpieczeństwa implementacji algorytmu, ponieważ nawet niewielkie odchylenia w procesie wyboru mogą zostać wykorzystane w atakach kleptograficznych. Dokument RFC 6979 określa deterministyczną metodę wyboru zmiennej wykorzystując skrót wiadomości oraz klucz prywatny .
DSA umożliwia przesyłanie informacji podprogowej. Jeżeli zamiast liczby losowej w podpisie wiadomości wykorzystana zostanie wiadomość podprogowa, a odbiorcy udostępniony zostanie klucz prywatny nadawcy , odbiorca będzie w stanie odczytać wiadomość podprogową. Publiczna weryfikacja podpisu nie umożliwi w tym przypadku odczytania tej informacji.