 |
|
SQL Server Tips by Burleson |
Blowfish and TEA Block Cipher
Blowfish is a cipher designed by Bruce Schneier, intended for
implementation on large microprocessors. It is a 64 bit block cipher
and supports variable key lengths. The XP_CYYPT code uses a C++
class called “CBlowFish” provided by the authors of the cipher to
implement support for this algorithm. The class only encrypts /
decrypts data whose data is an even multiple of 8 bytes. The code
handles this case by padding the incoming data to an even multiple
of 8 bytes and putting the number of unused bytes in the last byte
prior to encryption. These extra bytes are then removed during the
encryption process. If we were using the MS CryptoAPI, we would not
have to worry about these issues even when we are using block
ciphers.
TEA Block Cipher
David Wheeler and Roger Needham at Cambridge University developed
the Tiny Encryption Algorithm in 1994. It is 64-bit block cipher
with a key size of 128 bits. As with the blowfish implementation,
the XP_CRYPTOAPI implementation automatically handles the padding
upon encryption and removal after decryption. The code to implement
the algorithm is taken directly from the Cambridge University web
site describing the algorithm. Please note that the implementation
provided operates in ECB mode as opposed to CBC mode.
The above book excerpt is from:
Super SQL
Server Systems
Turbocharge Database Performance with C++ External Procedures
ISBN:
0-9761573-2-2
Joseph Gama, P. J. Naughter
http://www.rampant-books.com/book_2005_2_sql_server_external_procedures.htm |