njör.de

Start > Projekte > NaCl für Windows

NaCl für Windows

Beschreibung

SubNaCl ist eine Portierung der NaCl Krypto-Bibliothek von Daniel J. Bernstein (djb) auf Microsoft Windows. NaCl enthält neue Algorithmen, die sehr einfach implementiert sind und dabei - wie bei djb üblich - neue Standards in der sicheren Programmierung setzen.

Skalarmultiplikation mittels elliptischer Kurven (Curve25519), Stream Cipher (Salsa20), Secret Key Message Authentication (Poly1305) und weitere Funktionen stehen nun auch unter Microsoft Windows zur Verfügung.

Der Programmcode wurde von pynacl übernommen und durch die Test-Routinen aus NaCl erweitert. In SubNaCl wurden alle Performance-Optimierungen entfernt, wodurch die Bibliothek um einiges langsamer ist als die ursprüngliche djb-Implementierung (siehe Performance weiter unten). Dafür lässt sich die Bibliothek statisch bauen und universell einsetzen. Die C++-Wrapper wurden ebenfalls entfernt, somit kann SubNaCl nur in C genutzt werden.

Der Zufall für randombytes() wird mittels der Windows-Funktion CryptGenRandom() generiert, im Fehlerfall über die POSIX Funktionen srand() und rand().

Download

11. Juli 2013 subnacl-v2-src.zip SHA-256 o3o1kPjB7T8VOTYF2JRt8uhecPX1FM5jna-jSkXeSuY=

Changes

11. Juli 2013 v1 - v2

  • gcc's Stack Protection aktiviert

Installation

Zum Kompilieren wird mingw, gcc und make benötigt. Die Bibliothek wird erstellt mit:

subnacl\build.bat

Selbsttest durchlaufen:

subnacl\build.bat test

Danach kann die Datei libnacl.a in andere Programme gelinkt werden.

Performance

FunktionSubNaClNaCl (optimized)slowdown
crypto_auth 8.50 us 7.95 us 1.1x
crypto_auth_verify 8.49 us 7.87 us 1.1x
crypto_box 4.64 ms 198.61 us 23.3x
crypto_box_keypair 4.57 ms 198.84 us 23.0x
crypto_box_open 4.65 ms 199.33 us 23.3x
crypto_hash_sha256 898.93 ns 855.99 ns 1.1x
crypto_hash_sha512 1.54 us 1.25 us 1.2x
crypto_onetimeauth 49.06 us 2.40 us 20.4x
crypto_onetimeauth_verify 67.07 us 2.42 us 27.7x
crypto_scalarmult 4.57 ms 191.88 us 23.8x
crypto_scalarmult_base 4.69 ms 192.76 us 24.3x
crypto_secretbox 58.02 us 5.09 us 11.4x
crypto_secretbox_open 58.59 us 5.64 us 10.4x
crypto_sign 6.28 ms 5.95 ms 1.1x
crypto_sign_keypair_fromseed 6.26 ms 5.96 ms 1.1x
crypto_sign_open 16.58 ms 15.67 ms 1.1x
crypto_stream 5.53 us 2.66 us 2.1x
crypto_stream_xor 6.80 us 2.27 us 3.0x

Lizenz

NaCl wurde in den USA veröffentlicht und ist dort gemeinfrei. In Deutschland ist es nicht möglich, eine Software als gemeinfrei zu erklären. Es bieten sich die BSD-Lizenz und die GPLv3 als Alternative an.

Um zu verhindern, dass Firmen die Software für kommerzielle Zwecke missbrauchen, wird SubNaCl unter der GPLv3 veröffentlicht.

Kommentar schreiben

Name

Kommentar