I'm a beginner and working on cryptography performance metrics.
- My question is that what are the important metrics to check the performance of Cryptography Algorithms.
I'm a beginner and working on cryptography performance metrics.
Criteria for evaluation of Cryptography Algorithms:
Note: fell free to restructure / add to the list, this is a community wiki.
what are the important metrics to check the performance of Cryptography Algorithms
, and some of these points appear to be wholly unrelated to performance (e.g. patent status, public specification, etc). Anyone care to enlighten me as to how these other points are relevant to what the OP asked about?
– Ella Rose
Feb 28 '19 at 16:12
The SUPERCOP page lists the following criteria:
Time to hash a very short packet of data.
Time to hash a typical-size Internet packet.
Time to hash a long message.
Length of the hash output.
Time to encrypt a very short packet of data using a secret key and a nonce.
Time to encrypt a typical-size Internet packet.
Time to encrypt a long message.
Length of the secret key.
Length of the nonce.
Time for authenticated encryption of a short packet of data.
Time for authenticated encryption of a typical-size Internet packet.
Time for authenticated encryption of a long message.
Time to generate a key pair (a private key and a corresponding public key).
Length of the private key.
Length of the public key.
Time to generate a shared secret from a private key and another user's public key.
Length of the shared secret.
Time to encrypt a message using a public key.
Length of the encrypted message.
Time to decrypt a message using a private key.
Time to sign a message using a private key.
Length of the signed message.
Time to verify a signed message using a public key.
Curiously, MACs do not appear to be measured with SUPERCOP. AEAD schemes may include them, but there is not standalone category for measuring MACs. Some relevant metrics might be:
Another standard metric (as mentioned in another answer) is cycles per byte. This is a measurement of how many CPU cycles it took to perform the operation per each byte of input.
I suspect that power consumption may also be a relevant metric, considering the prevalence of mobile/IoT devices.
Throughput is a common metric, which is the amount of data per unit of time (e.g. second) that a system can process.
As mentioned in the other answer (again), many of these metrics will be platform dependent.
The above includes metrics used for asymmetric algorithms and hashing, but the question mentions interest in DES, AES, etc and so may only be interested in symmetric encryption algorithms or all of the above - it is not clear.