AES and DES speeds

Hello.

I have a very practical question. One year ago we developed an embedded system which had to perform DSA signatures by software on some messages (about 100 bytes long).

We used 512 bits key for this. This takes our modest general-purpose CPU about 10 seconds per message.

Now, we have to encrypt some of these messages. We are planning to use AES with 128 or 256 bits keys.

And the question is: approximately, how much time should we expect this encryption to take? Much more than 10 seconds? Much less? Same order of magnitude?

When I first met encryption 10 years ago, it was "popular wisdom" that simmetric key algorithms (like DES) were faster than public key ones (like DSA or RSA). But AES was inexistent then, and I don't know if its speed compares favourably to DES's speed or not.

I know that the correct answer depends on the implementation, so I am asking only for a rough estimate.

Pointers are welcome. Many thanks.

Reply to
Ignacio G.T.
Loading thread data ...

I recall reading some articles on optimizing AES on 8-bit platforms, and ISTR that a design goal for AES was improved throughput in software implementations on 8-bit micros. Unfortunately I cannot remember if the optimization articles were internal (proprietary) company whitepapers or public presentations. I have a feeling they were internal. It was a while ago - a year or more - and all that stuff is long since filed :)

Here is some useful comparative data for different architectures.

Significantly less, I would say. I am aware of an application that uses a 128-bit key on a 20 byte message, and the comms timeout for a response is about 2 seconds IIRC. There is a big margin in that timeout; typical responses are in 750ms including channel latency. I can't tell you what processor is being used but it's an off-the-shelf

8-bit core with no special crypto acceleration functions, running at 8MHz.
Reply to
larwe

Public key is still slower than secret key on a general purpose processor.

I achieved about 100ms for a 1 block encryption for AES in Java on a JCOP smartcard. (128 bit key)

The C example in the standard is a good start. As usual there is a speed/size trade-off: in Java it was very beneficial to hard-code all index calculations. You can implement the Xtime() funtion as a lookup or an algorithm.

Wim

Reply to
Wim Ton

Helpful indeed.

Thank you very much, Larwe. Very helpful.

Reply to
Ignacio G.T.

Wim Ton escribió:

Thank you very much for your answer, Wim

Reply to
Ignacio G.T.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.