Puncte:-1

Cum să citiți notația de criptare/hashing

drapel cn

Acest lucru este foarte simplu, dar ceea ce mă întreb este: am câteva notații de criptare hashing/RSA de care nu sunt sigur când citesc.

PKE(PW, K) Cu PW reprezentând o parolă, K reprezentând un șir de 128 de biți și PKE reprezentând RSA, cum ar fi interpretat acest lucru? Combin șirul și parola, apoi criptez asta sau altceva?

Același lucru este valabil și pentru aceasta, ssk = H(K,NB,NA), unde ssk este o cheie partajată secretă, H este algoritmul SHA-1, K este același ca mai sus și NB și NA sunt șiruri aleatoare de 128 de biți.

Încerc să codific acestea în Python și sunt destul de blocat cu teoria din spatele ei.

Bean Guy avatar
drapel in
Ar fi minunat să știi de unde ai extras aceste informații. Dar expresia $PKE(PW, K)$ înseamnă de obicei criptarea textului simplu $K$ cu cheia privată $PW$, care în contextul RSA este $PW = (p, q, \varphi(n))$ .
fgrieu avatar
drapel ng
@Bean Guy: „criptarea textului simplu cu cheia privată” este incorectă. În criptarea asimetrică dorim să criptăm cu cheia _publică_, să decriptăm cu cheia privată. În criptografia asimetrică putem semna și cu cheia privată, dar asta nu este criptare.
Puncte:1
drapel si

RSA nu acceptă deloc o parolă. Notația este pur și simplu incorectă.

RSASSA-PSS preia o cheie privată și un mesaj și produce o semnătură. Semnătura respectivă poate fi verificată de oricine cu semnătura, mesajul și cheia publică.

RSAES-OAEP preia o cheie publică și un mesaj scurt (aproape întotdeauna o cheie simetrică) și criptează acel mesaj (cheie simetrică), astfel încât doar cineva cu cheia privată corespunzătoare să-l poată decripta. De fapt, acest lucru nu se face prea mult, deoarece schimbul de chei ECDH necesită mai puține resurse și puțin mai ușor de făcut în siguranță.

Pentru a doua parte a întrebării dvs., este, de asemenea, incorectă. SHA-1 nu este o funcție sigură de derivare a cheii și nu poate fi utilizată pentru a produce în siguranță o cheie secretă partajată. O funcție reală de derivare a cheii, cum ar fi HKDF sau Blake3, necesită 2-4 intrări: o lungime până la ieșire (opțional, unele scot doar valori de 256 de biți), ceva material cheie inițială (de obicei secretul partajat care rezultă dintr-un schimb ECDH), o sare (opțional, poate fi generat intern) și o valoare de separare a domeniului (utilizată pentru a se asigura că diferite operațiuni pot avea chei diferite chiar și atunci când există un singur secret partajat).

Dacă doriți să criptați mesajele către cheile publice ale destinatarilor cu Python, utilizați Pisodiu și metodele crypto_box. Dacă doriți să criptați mesajele folosind o parolă, utilizați metoda crypto_pwhash pentru a deriva cheia și metodele crypto_secretbox pentru criptare folosind cheia derivată.

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.