2004 | Nils Gura, Arun Patel, Arvinderpal Wander, Hans Eberle, and Sheueling Chang Shantz
This paper compares the performance of Elliptic Curve Cryptography (ECC) and RSA on 8-bit microcontrollers, specifically the Atmel ATmega128 and the Chipcon CC1010. The authors implement ECC point multiplication for 160-bit, 192-bit, and 224-bit NIST/SECG curves and RSA-1024 and RSA-2048. They propose a new algorithm to reduce memory accesses in multiple-precision multiplication, which significantly improves performance. Key findings include:
1. Public-key cryptography is viable on small devices without hardware acceleration. On the Atmel ATmega128, 160-bit ECC point multiplication took 0.81 seconds, and RSA-1024 operation with exponent \( e = 2^{16} + 1 \) took 0.43 seconds.
2. The relative performance advantage of ECC over RSA increases with decreasing processor word size and increasing key size.
3. Elliptic curves over fields using pseudo-Mersenne primes, as standardized by NIST and SECG, allow for high-performance implementations and show no performance disadvantage compared to optimal extension fields or prime fields.
The paper also discusses optimization techniques for RSA and ECC, including the Chinese Remainder Theorem, Montgomery reduction, and optimized squaring. It evaluates the impact of different multiplication strategies on performance and memory usage, proposing a hybrid multiplication method that combines row-wise and column-wise strategies to reduce memory accesses. The results show that ECC-160 point multiplication outperforms RSA-1024 private-key operations by an order of magnitude and is within a factor of 2 of RSA-1024 public-key operations. The paper concludes with observations on the performance characteristics of ECC and RSA on small devices and the potential for further improvements.This paper compares the performance of Elliptic Curve Cryptography (ECC) and RSA on 8-bit microcontrollers, specifically the Atmel ATmega128 and the Chipcon CC1010. The authors implement ECC point multiplication for 160-bit, 192-bit, and 224-bit NIST/SECG curves and RSA-1024 and RSA-2048. They propose a new algorithm to reduce memory accesses in multiple-precision multiplication, which significantly improves performance. Key findings include:
1. Public-key cryptography is viable on small devices without hardware acceleration. On the Atmel ATmega128, 160-bit ECC point multiplication took 0.81 seconds, and RSA-1024 operation with exponent \( e = 2^{16} + 1 \) took 0.43 seconds.
2. The relative performance advantage of ECC over RSA increases with decreasing processor word size and increasing key size.
3. Elliptic curves over fields using pseudo-Mersenne primes, as standardized by NIST and SECG, allow for high-performance implementations and show no performance disadvantage compared to optimal extension fields or prime fields.
The paper also discusses optimization techniques for RSA and ECC, including the Chinese Remainder Theorem, Montgomery reduction, and optimized squaring. It evaluates the impact of different multiplication strategies on performance and memory usage, proposing a hybrid multiplication method that combines row-wise and column-wise strategies to reduce memory accesses. The results show that ECC-160 point multiplication outperforms RSA-1024 private-key operations by an order of magnitude and is within a factor of 2 of RSA-1024 public-key operations. The paper concludes with observations on the performance characteristics of ECC and RSA on small devices and the potential for further improvements.