- مبلغ: ۸۶,۰۰۰ تومان
- مبلغ: ۹۱,۰۰۰ تومان
In 2015, NIST held a workshop calling for new candidates for the next generation of elliptic curves to replace the almost two-decade old NIST curves. NUMS (Nothing Upon My Sleeves) curves are among the potential candidates presented in the workshop. Here, we present the first implementation of the NUMS256, NUMS379, and NUMS384 curves on two types of embedded devices. The implementations, which exhibit regular, constant-time execution to protect against timing and simple side-channel attacks, set new speed records and advance the state-of-the-art of curve-based(without endomorphism) scalar multiplication on 8-bit AVR and 32-bit ARM11 microcontrollers. For example, our NUMS256 implementation computes a scalar multiplication in∼1.4 million cycles on a low-power 32-bit ARM11 microcontroller using mixed C and Assembly language. These results demonstrate the potential of deploying IoT-NUMS on constrained and low-power applications such as protocols for the Internet of Things (IoT).
This paper presented high speed implementation of ECC, and we presented, evaluated, and optimized NUMS256, Ted37919, and NUMS384 on 8-bit AVR and 32-bit ARM11 processors. In particular, we introduced an efficient implementation of multi-precision multiplication and squaring for multiplication on 8-bit AVR and ARM micro-controllers. The finite field multiplication and squaring with the length of 256- bit can be accomplished within 6,301/4,489 and 543/428 clock cycles for 8-bit AVR and 32-bit ARM, respectively. The result sets new speed records on an 8-bit AVR and 32-bit ARM processors. And then, we implemented NUMS curves including NUMS256, Ted37919, and NUMS384, which combine the individual computational advantages of the twisted Edward and Montgomery curves. Finally, we achieved record-setting execution times for scalar multiplication over 256, 379, and 384- bit security prime fields. For example, NUMS256 curve only requires 1.357 M cycles on 32-bit ARM11 processor, which is more than 1.6x faster than the widely-used Curve25519.