WinAbility Encryption Driver (Driver) contains the implementation of the following cryptographic algorithms:

### Advanced Encryption Standard (AES)

The implementation of the AES algorithm uses the source code in assembler language by Dr. Gladman . It conforms to the specification of the NIST document FIPS 197. The implementation supports the 128-, 192-, and 256-bit key lengths.

### The Twofish cipher

The implementation of the Twofish algorithm conforms to its description by Bruce Schneier . The implementation supports the 128-, 192-, and 256-bit key lengths.

### The cascade ciphers

The Driver allows for combining two of the standard encryption algorithms described above, each using an independent encryption key, into a cascade algorithm, that effectively creates a combined encryption algorithm with the key lengths between 256 and 512 bits.

### Secure Hash Algorithm (SHA)

The Driver implements the SHA2 algorithms (with the digest sizes 256, 384, and 512 bits), as per the specifications on the document NIST 180-3.

### The Whirlpool hash algorithm

The Driver implements this 512-bit hash algorithm according to its description by Paulo S. L. M. Barreto .

### The legacy hash algorithms

The Driver contains the implementations of the SHA1 and MD5 hash algorithms, to allow for their availability for the legacy protocols, when required. However, these algorithms are not used in other constructions within the Driver itself.

### The ECB and CBC encryption modes

The Driver implements the ECB and CBC encryption modes as per the specifications of the NIST document SP 800-38 A.

### The XTS encryption modes

The Driver implements the XTS encryption mode conforming to the NIST document SP 800-38 E.

### The CMAC algorithm

The Driver implements the CMAC (OMAC) algorithm according to the NIST document SP 800-38B.

### The HMAC algorithm

The Driver implements the HMAC algorithm according to the NIST document FIPS 198 A.

### The PBKDF2 algorithm

The Driver implements the PBKDF2 (Password-Based Key Derivation Function ) algorithm.

### The CTR-DRBG pseudo-random data generator

The Driver implements the CTR-DRBG algorithm as described in the NIST publication SP 800-90 section 10.2.1. An option is also available to use the pseudo-random data generator as a random data generator by collecting the entropy from the movements of the computer mouse and timing the keystrokes of the keyboard in the background, as well as using several volatile system parameters.

Copyright © 2020,
WinAbility® Software Corporation.
All rights reserved.