All block cipher algorithms operate on a fixed-length block of data to produce a seemingly-random output of the same size. The security of the encryption process depends on a secret key, the length of which depends on the particular algorithm. It should be impossible (strictly, computationally infeasible) to derive the plaintext from the resultant ciphertext without knowing the key.
The block and key lengths supported in the CryptoSys API package are as follows:
Algorithm | Block length | Key length |
---|---|---|
DES | 8 bytes (64 bits) | 8 bytes (only 56 bits used out of 64) |
Triple DES (TDEA, 3DES) | 8 bytes (64 bits) | 24 bytes (only 168 bits used out of 192) |
Blowfish | 8 bytes (64 bits) | up to 56 bytes (variable up to 448 bits) |
AES | 16 bytes (128 bits) | 16 or 24 or 32 bytes (128/192/256 bits) |