Den Beste Offentlige Og Private Keygen Algoritme-Og Hvorfor
Gravitasjons sponset dette innlegget.
hva er verre enn å la private nøkler ligge uten tilsyn? Å ha offentlige nøkler som kan være brute-tvang.
” secure “i” secure shell ” kommer fra kombinasjonen av hashing, symmetrisk kryptering og asymmetrisk kryptering. SAMMEN BRUKER SSH kryptografiske primitiver for å koble klienter og servere trygt. I de 25 årene siden grunnleggelsen har datakraft og hastigheter i samsvar Med Moores Lov nødvendiggjort stadig mer kompliserte algoritmer på lavt nivå.
Fra og med 2020 er de mest brukte asymmetriske kryptoalgoritmene I pki-verdenen RSA, DSA, ECDSA og EdDSA. Så hvilken er best?
Så Hvilken Skal Du Bruke?
Velge riktig algoritme avhenger av noen kriterier:
- Implementering: kan ekspertene håndtere det, eller må det rulles?
- Kompatibilitet: ER DET SSH-klienter som ikke støtter en metode?
- Ytelse: Hvor lang tid tar det å generere en tilstrekkelig sikker nøkkel?
- Sikkerhet: kan den offentlige nøkkelen avledes fra den private nøkkelen? (Bruken av quantum computing for å bryte kryptering er ikke diskutert i denne artikkelen.)
RSA
Implementering | RSA biblioteker kan bli funnet for alle større språk, inkludert dyptgående biblioteker
(JS, Python, Go, Rust, C). |
Kompatibilitet | Bruk AV SHA-1 (OpenSSH) eller offentlige nøkler under 2048 biter kan ikke støttes. |
Ytelse | Større taster krever mer tid til å generere. |
Sikkerhet | Spesialiserte algoritmer som Kvadratisk Sil og Generell Tallfelt Sil eksisterer for å faktorere heltall med spesifikke kvaliteter. |
Tiden har vært RSA største allierte og største fiende. FØRST publisert i 1977, HAR RSA den bredeste støtten på TVERS AV ALLE SSH-klienter og språk, og har virkelig stått tidstesten som en pålitelig nøkkelgenereringsmetode. I ettertid, det har også vært underlagt Moores Lov i flere tiår og nøkkel bit-lengde har vokst i størrelse. Ifølge nist-standarder krever oppnåelse av 128-biters sikkerhet en nøkkel med en lengde på 3072 bits, mens andre algoritmer bruker mindre nøkler. Bit security måler antall forsøk som kreves for å brute-force en nøkkel. 128-bit sikkerhet betyr 2128 forsøk å bryte.
DSA
Implementering | DSA ble vedtatt AV FIPS-184 i 1994. Den har rikelig representasjon i store kryptobiblioteker, som LIGNER PÅ RSA. |
Kompatibilitet | MENS DSA har støtte For putty-baserte klienter, Deaktiverer OpenSSH 7.0 DSA som standard. |
Ytelse | Betydelig forbedring i viktige generasjonstider for å oppnå sammenlignbare sikkerhetsstyrker, men anbefalt bitlengde er den samme SOM RSA. |
Sikkerhet | DSA krever bruk av en tilfeldig generert uforutsigbar og hemmelig verdi som, hvis den oppdages, kan avsløre den private nøkkelen. |
Hva gjør DSA forskjellig FRA RSA er AT DSA bruker en annen algoritme. Det løser et helt annet problem, kjent som det diskrete logaritmeproblemet, ved hjelp av et annet sett med ligninger, elementer og trinn.
denne algoritmen innebærer bruk av et tilfeldig generert nummer, m, som brukes med å signere en melding sammen med en privat nøkkel, k. dette nummeret m må holdes privat. Verdien mis ment å være en nonce, som er en unik verdi inkludert i mange kryptografiske protokoller. Men de ekstra betingelsene for uforutsigbarhet og hemmelighold gjør nonce mer lik en nøkkel, og derfor ekstremt viktig.
ikke bare er det vanskelig å sikre sann tilfeldighet i en maskin, men feil implementering kan bryte kryptering. For eksempel:
- Android ‘ S Java SecureRandom-klasse var kjent for a skape kolliderende r-verdier. Med andre ord kan klassen gjenbrukes noen tilfeldig genererte tall. Dette eksponerte en rekke Forskjellige Android-baserte Bitcoin lommebøker for å få sine private nøkler stjålet. Kravene i nonce m betyr at to forekomster med samme nonce-verdi kan reverseres og avsløre den private nøkkelen som brukes til å signere transaksjoner.
- fail0verflow tok dette et skritt videre og oppdaget den private nøkkelen som ble brukt til å signere fastvareoppdateringer For Sony Playstation 3. Med andre ord kan programmerere skrive sin egen kode, signere den med den avslørte private nøkkelen, og kjøre DEN på PS3. Som Det viser Seg, Brukte Sony det samme tilfeldige nummeret for å signere hver melding.
ECDSA Og EdDSA
de to eksemplene ovenfor er ikke helt oppriktige. Både Sony og Bitcoin-protokollen bruker ECDSA, ikke dsa riktig. ECDSA ER en elliptisk kurve implementering AV DSA. Funksjonelt, HVOR RSA og DSA krever nøkkellengder på 3072 biter for å gi 128 biter av sikkerhet, KAN ECDSA oppnå det samme med bare 256-biters nøkler. ECDSA er imidlertid avhengig av samme nivå av tilfeldighet som DSA, så den eneste gevinsten er fart og lengde, ikke sikkerhet.
som svar på de ønskede hastighetene til elliptiske kurver og uønskede sikkerhetsrisikoer, har en annen klasse av kurver fått noe beryktet. EdDSA løser det samme diskrete loggproblemet SOM DSA / ECDSA, men bruker en annen familie av elliptiske kurver kjent som Edwards-Kurven (EdDSA bruker En Vridd Edwards-Kurve). Mens tilbyr små fordeler i fart OVER ECDSA, sin popularitet kommer fra en forbedring i sikkerhet. I stedet for å stole på et tilfeldig tall for nonce-verdien, genererer EdDSA en nonce deterministisk som en hash som gjør den kollisjonsbestandig.
når du tar et skritt tilbake, garanterer ikke bruken av elliptiske kurver automatisk noe sikkerhetsnivå. Ikke alle kurver er like. Bare noen få kurver har gjort det forbi streng testing. Heldigvis har pki-bransjen sakte kommet for å vedta Curve25519-spesielt For EdDSA. Sett sammen som gjør offentlig nøkkel signaturalgoritmen, Ed25519.
Implementering | EdDSA er ganske ny. Crypto++ og cryptlib støtter For øyeblikket Ikke EdDSA. |
Kompatibilitet | Kompatibel med nyere klienter, Ed25519 har sett den største adopsjonen blant Edward Curves; SELV OM NIST også foreslo Ed448 i deres siste utkast TIL SP 800-186. |
Ytelse | Ed25519 er den raskeste algoritmen på tvers av alle beregninger. Som MED ECDSA, offentlige nøkler er dobbelt så lang som ønsket bit sikkerhet. |
Sikkerhet | EdDSA gir det høyeste sikkerhetsnivået i forhold til nøkkellengde. Det forbedrer også på usikkerhetene som finnes I ECDSA. |
I Utgangspunktet ER RSA Eller EdDSA
når det kommer til det, er valget MELLOM RSA 2048/4096 Og Ed25519, og avviket er mellom ytelse og kompatibilitet. RSA støttes universelt BLANT SSH-klienter, Mens EdDSA utfører mye raskere og gir samme sikkerhetsnivå med betydelig mindre nøkler. Peter Ruppel setter svaret kortfattet:
“det korte svaret på dette er: så lenge nøkkelstyrken er god nok i overskuelig fremtid, spiller det ingen rolle. Fordi her vurderer vi en signatur for godkjenning i EN SSH-økt. Den kryptografiske styrken til signaturen trenger bare å motstå de nåværende, toppmoderne angrepene.”- Ed25519 FOR SSH
bare ikke bruk ECDSA / DSA!
Funksjon bilde via .
Den Nye Stakken er et heleid datterselskap Av Insight Partners, en investor i følgende selskaper nevnt i denne artikkelen: Bit.
Leave a Reply