/ / W jaki sposób odbiornik wykrywa algorytm mieszający używany do danych otrzymywanych od nadawcy w podpisie cyfrowym - szyfrowanie, kryptografia, podpis cyfrowy, funkcja kryptograficzno-hash

W jaki sposób odbiornik sprawdza, który algorytm mieszający ma wykorzystywać dane otrzymane od nadawcy w podpisie cyfrowym - szyfrowanie, kryptografia, podpis cyfrowy, funkcja kryptograficzno-hash

Zrozumiałem proces podpisu cyfrowego

  1. nadawca daje odpowiedź jako dane + hash danych (zaszyfrowany algorytmem powiedzmy X i podpisany kluczem prywatnym)
  2. Odbiornik obliczyć skrót danych, które odbiornik otrzymał od kroku 1 za pomocą algorytmu X.
  3. Jeśli hash, dostaliśmy odpowiedź w kroku 1 od nadawcy (decry pt przy użyciu klucza publicznego), a licznik hash obliczony na podstawie otrzymanych danych jest taki sam, jesteśmy dobrzy, ale jeśli jest inny, dane są przerabiane.

do tej pory wszystko jest w porządku. ale moje pytanie brzmi: Jak odbiorca lub nadawca decyduje, który algorytm do haszowania. w powyższym przypadku jaka jest wartość X. Jak o tym zdecydować?

Zgodnie z moim rozumieniem, odbiorca powinien powiedzieć jako część żądania do nadawcy, który algorytm hash musi użyć. mam rację?

Proszę dać mi znać o poglądach na ten temat.

Odpowiedzi:

1 dla odpowiedzi № 1

Podpis cyfrowy zawiera zarówno algorytm trawienia, jak i wartość skrótu kodowanego w ASN.1. Widzieć RFC 3447 PKCS # 1 v2.1.

A.2.4 RSASSA-PKCS1-v1_5

DigestInfo ::= SEQUENCE {
digestAlgorithm DigestAlgorithm,
digest OCTET STRING
}

Tak więc w procesie weryfikacji można określić, czy użyty algorytm digest jest oczekiwany.

Ale zwykle jest tak, że algorytm podpisu jest zawarty jako atrybut w samym formacie podpisu, więc część weryfikacyjna może zastosować odpowiednią.

Przykład XMLSignature xmldsig

Podpis JWT / JWS jwt

Jeśli używasz formatu, który nie zawiera algorytmu podpisu, nadawca i odbiorca powinni to wcześniej uzgodnić