The developers of the VPN protocol WireGuard announced the creation of the Zinc cryptographic library. It is expected that after the introduction of WireGuard into the main Linux kernel, it will accelerate the process of data encryption due to a simplified set of crypto algorithms.
The Zinc library consists of all cryptographic primitives used in WireGuard, assembled in a simplified form. Its task is to increase the performance of data encryption and fast execution of SIMD instructions.
Unlike the CryptoAPI interface used in the current Linux kernel, WireGuard with the Zinc library offers a simplified set of ready-made functions. They can only be used for their intended purpose, which eliminates the appearance of superfluous high-level abstractions. It is believed that the incorrect use of functions is the main source of problems in the development of applications.
Zinc offers the following cryptographic primitives:
- stream ciphers ChaCha20 and HChaCha20;
- technology for authentication of Poly1305 messages;
- function Curve25519 with the Diffie-Hellman protocol to create a private key;
- hash function BLAKE2s with a performance at MD5;
- encryption mechanisms ChaCha20-Poly1305 and XChaCha20-Poly1305.
In July 2018, the expert on cryptography Daniel J. Bernstein (Daniel J. Bernstein) published the djbsort library. It is designed for cryptographic systems and encryption algorithms and speeds up the sorting of arrays of integers.