EndCryptor, tekniset tiedot

Perusteellisemmat tiedot ovat sivulla cryptographical technical details.

Käytetyt julkiset avaimet ovat elliptisiin käyriin perustuvia, sillä niillä saadaan vahvempi suoja vaikka käytetään pienempiä avainkokoja. Varsinkin klassisten elliptisiin käyriin perustuvien avainten käsittely on hyvin nopeaa, tämä mahdollistaa niiden runsaan käytön ja hyökkäyksistä tapahtuvan nopean toipumisen.

Klassiset avaimet ovat Edwards avain Ed25519 ja vastaava avain Curve25519, jota käytetään mm. selaimissa. Edwards avainta käytetään digitaaliseen allekirjoitukseen ja Curve25519 avainta Diffie-Hellman laskentaan. Tuon Curve25519 avaimen klassinen turvataso on 128 bittiä.

Kvanttihyökkäyksen kestävät avaimet ovat 'supersingular isogeny SIDH (p751) versio 3.3 avaimet, jotka ovat Microsoftin suunnittelemia. Tammikuussa 2019 SIKE, jossa SIDH on ydinosana, hyväksyttiin kierrokselle 2 NIST'in Post-Quantum kryptologian standardointi prosessiin. NIST on National Institute of Standards and Technology (USA). Nykyisin arvioidaan SIDH p751 avaimen täyttävän NIST'in Quantum turvatason 5 (vahvin, paras) - sen arvioidaan olevan samaa luokaa kuin AES 256 symmetrisen avaimen.

Vertaa klassisia turvatasoja:

Symmetric

Elliptic

DH or RSA

80

163-223

1024

112

224-255

2048

128

256-383

3072

192

384-511

7680

256

 512+

15360

Curve25519 turvataso on 128 bittiä ja se vastaa 3072 bitin pituista RSA/Diffie-Hellman julkista avainta. Kannattaa huomata, että 256 bitin symmetrinen turvataso vastaa 15360 bitin pituista RSA/Diffie-Hellman avainta. Yleensä kryptologisen rakenteen turvallisuus arvioidaan sen heikoimman lenkin perusteella - tämä on tavallisesti julkinen avain.

Ylläoleva taulukko on NIST'in julkaisussa Special Publication 800-57 ajalta heinäkuu 2012 nimeltään 'Recommendation for Key Management – Part 1: General(Revision 3)'.

Jos osapuolet viestivät vuorotellen, on ensimmäisen viestin turvataso 128 bittiä, sen jälkeen on klassinen turvataso 256 bittiä. Kvanttisuoja alkaa toisesta viestistä, se mukaanluettuna. Patentoitu protokolla alkaa, kun toinen viesti on vastaanotettu. Tämän jälkeen jokainen uusi viesti sisältää lähettäjän uudet klassiset avaimet. Kvanttihyökkäyksen kestävien avainten käsittely on laskennallisesti enemmän resursseja vievää, joten niitä vaihdetaan kerran viikossa, jos osapuolet viestivät säännöllisesti.

Symmetrinen salaus tehdään Chacha20'llä ja 256 bittisellä avaimella. Kryptotekstin digitaaliset allekirjoitukset käyttävät Keccak-256 tiivistettä, joka muodostetaan käyttäen kuvausta, joka voitti SHA3 kilpailun (bitrate on 1088 ja capacity on 512). Poly1305 tarkastussummaa käyttään selväkielisen osan tarkastukseen.

Ed25519, Curve25519, Chacha20 ja Poly1305 toteutus käyttää SUPERCOP'in ja NaCL kirjaston (European Network of Excellence in Cryptology II projecteja, rahoittajana European Commission) referenssitoteuksia. SIDH avainten toteusprojekti on GitHup'issa: PQCrypto-SIDH.

Curve25519 kuten muut klassiset DH tai RSA julkiset avaimet voidaan murtaa kvanttitietokoneella, jos sellaisia onnistutaan rakentamaan.

Kvanttihyökkäyksessä arvioidaan karkeasti, että symmetrinen salaus (AES, ChaCha20) menettää turvatasoaan seuraavasti: N bitin turvatasosta, joka saadaan N bitin avaimella, tulee N/2 bitin turvataso. EndCryptorin Chacha20 käyttää 256 bitin avainta ja niinpä kvanttihyökkäyksessä sen turvataso on 128 bittiä.

Otetaan nyt tavoitteeksi rikkoa Chacha20'n symmetrinen salaus kvanttikoneella. Tämä tarkoittaa, että tarvitaan noin 2^128 kvantti operaatiota salausavaimen löytämiseksi.

Kuinka kauan sitten yksi tällainen kvantti operaatio kestäisi - luultavasti se vaatii enemmän aikaa kuin yksi klassinen salausoperaatio.

Tarkastellaan asiaa bitcoin verkon avulla. Se tekee (3 heinäkuuta, 2018) alle 50x10^18 hajautus (tiivistys) operaatiota sekunnissa (katso https://www.blockchain.com/charts/hash-rate).

Oletetaan, että bitcoin verkko voisi tehdä salausoperaatiota 100 kertaa nopeammin eli 50x10^20 operaatiota sekunnissa. Tällöin se pystyisi murtamaan 128 bitin turvatason

2^128/50x10^20/31536000=107 902 830 708 vuodessa.

Voit tarkastaa laskelman Windowsin laskimella.

Tarkastellaan nyt bitcoinin energian kulutusta. Sen arvioidaan nyt olevan 18TWh ja TWh välillä (katso https://digiconomist.net/bitcoin-energy-consumption).

Jos otamme alhaisimman arvon 18 TWh/vuosi ja kerromme sen tarvittavilla vuosilla, saamme:

107902830708 x 18 Twh=1 942 250 952 744 TWh

mikä on 128 bitin turvatason murtamiseen tarvittava energiamäärä. Vuonna 2015 maailman kokonaisenergian kulutus oli 20 201,31 TWh (International Energy Agency'n mukaan).