urve25519 on korkein Diffie-Hellman-funktiotaso, joka on saatavilla monenlaisiin skenaarioihin, ja sen on suunnitellut professori Daniel J. Bernstein. Kryptografiassa Curve25519 on elliptinen käyrä, joka tarjoaa 128-bittisen turvallisuuden ja on suunniteltu käytettäväksi elliptisen käyrän Diffie-Hellman (ECDH) avainneuvottelujärjestelmän kanssa. Se on yksi nopeimmista ECC-käyristä, eikä sitä kata tunnetut patentit.
Kun käyttäjän 32-tavuinen avain on annettu, curve25519 laskee käyttäjän 32-tavuisen julkisen avaimen. Kun kyseisen käyttäjän 32-tavuinen avain ja toisen käyttäjän 32-tavuinen julkinen avain on käytössä, curve25519 laskee 32-tavuisen jaetun avaimen molempien käyttäjien käyttöön. Tätä salaisuutta voidaan käyttää molempien käyttäjien tietojen todentamiseen ja salaamiseen.
2. Lataa ja käännä Curve25519
curve25519-kirjasto laskee curve25519-funktion erittäin suurella nopeudella. Kirjastolla on laaja valikoima käyttökohteita. Voit ja sinun pitäisi soveltaa sitä omassa ohjelmassasi sen sijaan, että linkittäisit jaettuun kirjastoon; Käännetty koodi on noin 16KB, riippuen suorittimesta.
Lataa ja käännä
Ladata
kääntää
3. Käytä Curve25519
Mille tahansa C-ohjelmalle, joka käyttää curve25519:ää, muokkaa ohjelmaa sisältämään curve25519.h ja muokkaa makefilea linkittämään ohjelma curve25519.a:han ja ilmoittamaan, että ohjelma riippuu curve25519.a:sta ja curve25519.h:stä.
Laskentaavaimet
Sisäisesti 32 tavun käyrä25519-avaimen luomiseksi luodaan ensin 32 tavun satunnainen salaisuus kryptografisesta turvalähteestä: mysecret[0], mysecret[1], ..., mysecret[31]. Sitten tee näin: mysecret[0] &= 248; mysecret[31] &= 127; mysecret[31] |= 64; Luo 32-tavuinen Curve25519 -avain mysecret[0], mysecret[1], ..., mysecret[31].
Tulevaisuudessa kirjastoversio tukee curve25519_ pakkausfunktiota, joka pakkaa 128 tavua hajautuksia 32 tavuun, lisäten suojaa riittämättömiltä satunnaislukugeneraattoreilta; curve25519_ puristinfunktio, joka muuntaa 32 tavua avaimeksi; ja helpoimmin käytettävä yhdistelmä curve25519_ avainten generointifunktioita, jotka muuntavat suoraan 128 tavua avaimiksi.
Laske julkiset avaimet
Luodaksesi 32 tavun julkisen avaimen, joka vastaa 32 tavun avainta mypublic[0], mypublic[1], ..., mypublic[31], kutsu funktiota curve25519 (mypublic, mysecret, basepoint); missä vakio peruspiste on:
const unsigned char basepoint[32] = {9}; Kirjaston tulevat versiot tukevat tiiviimpiä curve25519_ julkisia toimintoja.
Luo jaettu avain
Kun toisen käyttäjän Curve25519 on julkinen avain hispublic[0], hispublic[1], ..., hispublic[31], call
curve25519 (jaettu, salaisuuteni, julkinen); Luo 32 tavun jaetut avaimet jaettu[0], jaettu[1], ..., jaettu[31]. Toinen henkilö voi luoda saman jaetun avaimen omasta yksityisestä avaimestaan sekä sinun julkisesta avaimestaan. Sitten molemmat voitte hajauttaa tämän jaetun avaimen ja käyttää tulosta avaimena, esimerkiksi Poly1305-AES:lle. Kirjaston tulevat versiot tukevat curve25519_ laajennusfunktiota, joka suoraan hajauttaa 32 tavun avaimen tuottaakseen 128 tavua avaimena, ja on helpoin käyttää, yhdistelmä curve25519_ jaettu toiminto.
4. Viite
[Ed25519 ja Curve25519 selitetty]Hyperlinkin kirjautuminen on näkyvissä. [Curve25519 salaus ja purku sekä ED25519 allekirjoitusten käyttö]Hyperlinkin kirjautuminen on näkyvissä. [ED25519]Hyperlinkin kirjautuminen on näkyvissä. [Android ED25519 toteutus]Hyperlinkin kirjautuminen on näkyvissä. [[ED25519 C-toteutus]Hyperlinkin kirjautuminen on näkyvissä. [ed25519 Java-toteutus]Hyperlinkin kirjautuminen on näkyvissä.
Alkuperäinen:Hyperlinkin kirjautuminen on näkyvissä. |