From: Kasra \(Math & ComSci\) (kasra_n500_at_[hidden])
Date: 2008-06-21 06:05:02
Some clarifications :D ->
"I contest that statement, it is in fact quite modular, you are merely
adding abstract base classes to impose an interface for the different
models which is not necessary when using templates to compose objects."
I forgot to mention I don't want to say that we will have base classes with virtual stuff, because that is expensive, however, what I wanted to point is that there must be an interface "template" so when one wants to add more block_cipher, ciphers and etc, one should know which functions should be available as public. The base class code is merely for documentation purposes only!
"Okay, wipe algorithms are interesting but I don't see added value in
clearing memory to zeros vs clearing the memory with some other
pattern or random data. For current RAM technologies the original data
is destroyed with a simple memset to zero."
Check this one out: http://citp.princeton.edu/memory/
But when we have wipe algorithms we could hook them to fstreams and there is it! We will wipe a file which as you know is quiet important when you want to get rid of the data!
"How is that better than
template<class Cipher, class Mode, class Padding>
struct block_cipher; ?"
I told you about the idea of "cipher". So a block_cipher only encrypt/decrypts blocks and that is as far as it stretches (including key schedules etc). However, a cipher would encrypt any arbitary length of message. The modes of operation would have some thing like:
template < class block_cipher, class padding >
which turns a block_cipher concept into a "cipher"; that could encrypt any arbitary message length. So that is why I thought we could changed it.
"I am interested in that optimization, I have deliberately chosen the
'slower' variant as it follows the original paper more closely and
made it a little easier for me to implement. I would like to see
benchmarks of this variant."
I am NOT going to write this variant since "Paulo Barreto"; which is THE EXPERT, he has written the optimized version (http://www.iaik.tugraz.at/Research/krypto/AES/old/~rijmen/rijndael/rijndael-fst-3.0.zip). So I would only create a wrapper for the functions :D.
Since I have been active in the field I know of most of the optimized implementations, so we only need to write wrappers for them.
However I am rather busy for two weeks, so this is probably the last e-mail which I will sent in two weeks time :(
Thanks for the comments
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk