|
|
At Nitro Technologies we do not believe that security by obscurity
is either a sensible or reliable method to show that our products containing protective measures
are trustworthy. As a result, details of all the algorithms and methods we use in our applications
for data encryption and security will be published on this page. We hope you will find this resource
useful.
Blowfish
Our choice of algorithm for common data encryption is the symmetric
and unpatented Blowfish block cipher invented by Bruce Schneier. Published in 1993, the open source algorithm has undergone
years of intensive cryptanalysis and is now widely accepted as a very strong encryption method.
Implementation
We use the C implementation written in 1997 by Paul Kocher. You
can view the source code here (zip format). For increased security
we use Blowfish in CBC (cipher block chaining) mode. This means that each block of plaintext is
xor'ed with the previous block of ciphertext beginning with a random block to ensure that the same
message will be encrypted differently each time. This is stronger than the standard ECB mode where
each plaintext block is encrypted independently of one another.
Further reading
You can view more information about the Blowfish algorithm (including
speed comparisons, source code in other languges and also other algorithms invented by Bruce Schneier)
at the official homepage.
http://www.counterpane.com/blowfish.html
Secure Hash Algorithm (SHA)
For tasks such as password verification we use an advanced one-way hash algorithm.
SHA is designed by the National Institute of Standards and Technology (NIST)
and has been adopted as the Secure Hash Standard. The initial release of the standard in April 1995
documented a hash with a 160 bit output. At that stage this was still stronger than the 128 bit output
of the commonly used MD5 algorithm. However, in May of 2001, NIST documented new developments to the
algorithm producing larger hash sizes of 256, 384 and 512 bits.
Implementation
For maximum security we choose to use only the largest hash size, the 512bit
version in all of our applications.
Further reading
The documentation for the standard is available on the web at
http://csrc.nist.gov/encryption/tkhash.html
|