Puncte:1

Înțelegerea diferențelor practice dintre ElGamal și Diffie-Hellman

drapel id

Am fost însărcinat să construiesc un site Web Assembly care implementează E2EE. Mă gândeam să folosesc ElGamal Encryption pentru a cripta mesajul și Diffie-Hellman pentru a stabili cheia. După ce am făcut cercetări suplimentare, întâmpin probleme în înțelegerea cazurilor practice de utilizare a ElGamal vs Diffie-Hellman.

Daca am inteles corect. Diffie-Hellman și ElGamal se bazează pe problema jurnalului discret, ceea ce îi face pe amândoi ideali. Diffie-Hellman stabilește doar o cheie între două gazde, apoi se folosește un sistem de criptare simetrică pentru a trimite un mesaj. ElGamal criptează mesajul o singură dată, folosind aceeași metodă ca Diffie-Hellman și apoi trebuie să fie regenerat de fiecare dată, ceea ce este lent și consumator de timp. Așa că mă gândesc că Diffie-Hellman ar fi cel mai bun pentru un scenariu în care utilizatorii comunică frecvent și ElGamal pentru un transfer unic de fișiere.

Deci, dezbat asupra utilizării aplicației mele web. Inițial mă gândeam să folosesc atât Diffie-Hellman, cât și ElGamal. Acum, mă gândesc să folosesc Diffie-Hellman pentru a stabili o cheie între două părți, apoi să folosesc o schemă de criptare simetrică precum AES.

Un articol pe care l-am găsit deosebit de util a fost https://www.commonlounge.com/discussion/2be4d294aa9e44d4b67f6644cd9b5ced

În special, rubrica „Utilizare practică și aplicații”

Dacă ar fi să folosesc Diffie-Hellman & AES, cât de des ar trebui regenerată o cheie?

Sper că cineva poate confirma dacă înțeleg corect utilizările practice și poate ajuta la completarea eventualelor lacune în înțelegerea mea.

Mulțumesc!

kelalaka avatar
drapel in
Cât de des depinde cu adevărat de modul de operare și de dimensiunea tastelor. Dacă sunteți liber să alegeți, alegeți ECDH (Elliptic Curve DHKE) și XChaCha20-Poly1305.
Davis avatar
drapel id
Mulțumesc pentru această sugestie. Mă voi uita la ECDH. Modul meu de operare este destul de mic în acest moment. Acesta este un proiect pentru ultimul meu an la universitate.
Maarten Bodewes avatar
drapel in
Sunteți familiarizat cu [IES](https://en.wikipedia.org/wiki/Integrated_Encryption_Scheme)?
kelalaka avatar
drapel in
Da, IES sau Nacl, care există în multe limbi
Davis avatar
drapel id
Sunt oarecum familiarizat cu IES. O să mă uit și la asta. Vă mulțumesc pentru sugestie. Intenționam să folosesc o bibliotecă cripto. Până acum, BouncyCastle părea a fi unul foarte apreciat.
Maarten Bodewes avatar
drapel in
Este folosit mult; este, de asemenea, un amestec destul de prost documentat cu probleme cu canalele laterale și altele asemenea în trecut. Cu toate acestea, obțineți un sprijin excelent prin lista de e-mail pentru dezvoltatori, iar autorii / dezvoltatorii sunt băieți foarte drăguți.
Puncte:1
drapel br

Probabil doriți o criptare autentificată/hibridă și probabil că există funcții de nivel înalt în orice bibliotecă cripto pe care o utilizați.

Iată o altă întrebare în care folosesc IES în BouncyCastle:

https://stackoverflow.com/questions/33297274/using-bouncycastle-to-encrypt-with-ecies-in-java

Maarten Bodewes avatar
drapel in
Mă întrebam dacă eu voi fi cel care scrie acel cod și da, bineînțeles că a fost :) Atenție că criptarea hibridă nu este deloc bine definită. Este posibil să doriți să implementați singur ECIES pentru a utiliza cele mai recente și mai bune moduri de operare (de exemplu, modul GCM pentru cifrul simetric în loc de CBC, care este vulnerabil la atacurile de oracol de umplutură, care pot împiedica confidențialitatea); De asemenea, poate doriți să *semnați* textul simplu sau cifrat pentru a permite autentificarea/integritatea. În acest sens, utilizarea NaCL ar fi probabil mai ușoară.
Davis avatar
drapel id
Mulțumesc tuturor pentru sugestii și resurse! Apreciez asta!

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.