I have been reading some papers on Image Encryption using ECC and chaotic systems such as 2D Arnold. What do they mean by 'Encryption ' and 'Decryption' time? How is it within 1 second? I tried implementing existing algorithms in Python using Spyder and got time around 30-40 seconds. What exactly does the encryption time include?
-
1$\begingroup$ I don't know much about spyder, but efficient algorithms are written in lower level languages. You can easily get something 5x faster if you write it in C (even if you make C as 'safe' as python), without changing the algorithm at all. $\endgroup$– Aman GrewalCommented Dec 2, 2020 at 14:25
-
3$\begingroup$ "Image Encryption" (esp. "using ECC") and "chaotic systems" are signs of craptology, thus my suggestion is to move on. Or if you accidentally step on this, run. That Arnold Cat is a strange attractor of clownishness like this. Even the name of the conference is vacuum concentrate: "2018 International Conference on Current Trends towards Converging Technologies". Oh, the refs! $\endgroup$– fgrieu ♦Commented Dec 2, 2020 at 14:49
-
$\begingroup$ @fgrieu, that Journal of Craptology is Everything I wanted know about crypto. LoL. Thank you! $\endgroup$– Crypto LearnerCommented Dec 2, 2020 at 15:28
1 Answer
Real encryption algorithms (not the sort of thing you're mentioning) like AES and ChaCha20 have their speeds measured in "cycles per byte". That is, how many CPU clock cycles does it take to encrypt one byte of data.
The speed will differ a bit depending on the CPU architecture used (eg AES often has hardware acceleration instructions built into the CPU).
It can also vary depending on the message size. If the algorithm has substantial setup overhead but then runs very quickly it will be faster for long messages than for short ones. If it has low setup overhead but then runs more slowly it will be about the same speed for all messages.
I'm not aware of any reputable cryptographers who don't submit implementations to eBACS. EG ChaCha20 and AES-CTR speeds are on the stream cipher results page. Any cipher that doesn't have results there is probably still experimental, and definitely not ready for use.
-
2$\begingroup$ "The speed will differ a bit depending on the CPU architecture used"; quite a lot, actually; both due to differences in instruction sets and differences in the internal CPU microarchitecture. Counting CPU clock cycles (rather than wall clock time) does (mostly) factor out differences in CPU clock rate, however there are still a whole lot of variations left... $\endgroup$– ponchoCommented Dec 2, 2020 at 16:53