Puncte:3

Semnături digitale cu perechea de chei Curve25519

drapel it

Am o pereche de chei publice/private de chei Curve25519 utilizate de Apărător de sârmă.

Cum pot folosi această pereche de taste pentru a genera/verifica semnăturile digitale?

De preferință, aș dori să folosesc EdDSA/Ed25519 dar mă străduiesc să obțin o pereche de taste Ed25519 din tastele Curve25519 folosite de Wireguard.

Maarten Bodewes avatar
drapel in
Ar trebui să puteți efectua pur și simplu derivarea cheii publice folosind valoarea cheii private dată pentru EdDSA. Cheia privată este doar un singur vector, iar înmulțirea acesteia cu punctul de bază al curbei din dreapta ar trebui să vă ofere cheia publică. Nu cred că există diferențe între ele.cheia privată (nu este doar o aleatorie într-un interval, există câteva trucuri acolo) între Curve25519 și Ed25519, dar cineva vă rog să mă corecteze dacă am greșit.
drapel it
Mulțumesc pentru sugestie. Din păcate, asta nu mi-ar permite să folosesc cheile publice Curve25519 schimbate anterior.
Maarten Bodewes avatar
drapel in
Am oferit o recompensă. Vă rugăm să rețineți că răspunsurile negative ar trebui acceptate și atunci când sunt concludente (suficiente).
Puncte:1
drapel uz

Nu cred că este posibil să faceți ceea ce cereți din cauza modului în care sunt generate cheile pentru utilizare în ECDH față de Ed25519.

Luați în considerare o pereche de chei Wireguard (sk1, pk1). Rețineți că sk1 este de doar 32 de octeți aleatori cu biții corespunzători setați/șterși (sursă) și asta pk1 este derivat din sk1 în maniera tipică ECDH (sursă).

Pentru semnăturile Ed25519, trebuie să trimiți cei 32 de octeți aleatori pentru a produce 64 de octeți, dintre care jumătate sunt folosiți pentru derivă cheia publică dintre care cealaltă jumătate sunt folosite când crearea de semnături.

Deci tu ar putea obține o cheie privată sk2 din sk1 si foloseste sk2 pentru a crea semnături Ed25519. Dar pe baza discuției din comentarii, se pare că doriți să verificați aceste semnături fără acces la sk1 (probabil la celălalt capăt al tunelului Wireguard, care are doar pk1). Și din moment ce nu poți deriva sk1 din pk1, nu poți calcula SHA512(sk1) din pk1. Prin urmare, nu puteți deriva pk2 din pk1 singur.

drapel it
Mulțumesc Eric D!. Răspunde la întrebarea mea :) Știți vreun DSA care ar putea folosi materialul cheie existent?
Eric D avatar
drapel uz
Din păcate, nu cunosc vreo modalitate de a utiliza în siguranță cheile existente pentru semnăturile digitale, având în vedere aceste constrângeri, dar sunt destul de nou în acest domeniu, așa că ar putea exista tehnici de care nu sunt conștient.
Eric D avatar
drapel uz
@SteffenVogel, tocmai am dat peste asta și nu l-am digerat pe deplin, dar m-am gândit că ar putea fi de interes pentru tine. Dacă înțeleg corect articolul, Signal folosește cheile X25519/Curve25519 pentru semnături în schema de semnătură „XEdDSA”: https://signal.org/docs/specifications/xeddsa/
drapel it
Mulțumesc, XedDSA pare să fie ceea ce caut :)

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.