5. Conclusion

be calculated and stored, thus leading to additional memory and energy

respectively, block i for double-and-add and NAF algorithms.

Modern Cryptography – Current Challenges and Solutions

Algorithm 10. Double-And-Add for node i Input: d=(dv-1,……….., d1,d0)2, P ∈ E (Fp)

In [31], a parallel computation of kP between N sensor nodes is presented by partitioning the scalar k to m blocks of length v = k/N bits, and each block is computed by one sensor node. A distributed algorithm (double-and-add, NAF, etc.) composed of m blocks is also proposed, and each block mi of the distributed algorithm operates on one block mi of the scalar. Algorithms 10 and 11 show,

// begin scanning bits from right-to-left.

// begin scan from right to left step by step

// compute point doubling

// 2viP is the pre-computed point

//2viP is the pre-computed point

So as not to compromise security when partitioning scalar, the reliability and efficiency are taken into account. They demonstrate that after partitioning the scalar k to m blocks of length v, the node which leads calculation keeps one of the m blocks into its local memory and distributes (m-1)blocks to others nodes. In this case, a possibility is to send the (m-1) blocks securely by symmetric encryption. If blocks are sent randomly without encryption, the intruder, after gaining (m-1)

over, if the intruder gains the (m-1) results sent by other nodes, security is not compromised; it has to deal against the ECDLP. So, it is as difficult to find k from kP

)P to find the private scalar k. More-

blocks of the m blocks, must perform (m!2v

consumption.

Output: Q=[d]P Begin Q ∞

 

 end

P 2P

Output: Q= [d]P

if dj <sup>¼</sup> <sup>1</sup> then <sup>Q</sup> <sup>Q</sup> <sup>þ</sup> <sup>2</sup>vi<sup>P</sup>

Begin

 end

 

58

forj 0 to v � 1 do ifdj ¼ 1 then <sup>Q</sup> <sup>Q</sup> <sup>þ</sup> <sup>2</sup>viP

end

end return Qð Þ

Algorithm 11. NAF method for i.

Q ∞ for j 0 to v � 1 do P 2Q

end if dj ¼ �<sup>1</sup> then <sup>Q</sup> <sup>Q</sup> � <sup>2</sup>vi<sup>P</sup>

end

end return ð Þ Q

Input: NAF(d)= (dv-1,……….., d1,d0), P ∈ E (Fp)

To perform fast computation of scalar multiplication, which is the major computation involved in ECC, much research has been devoted to the point arithmetic level and the scalar arithmetic. In this chapter, we have presented only works on scalar arithmetic level. All the methods studied are almost based on scanning bits or digits of the scalar with a scan step. In the comparative studies, we found that calculations can be faster if the number of bits scanned is higher. However, scanning a number of bits greater than 1 results in precomputed points that need to be computed or stored before. In future works, we can explore mechanisms for accelerating calculation of precomputed points in order to avoid storing them. Like computing point doubling formula, we can consider effective point operation formulas which should allow to increase the scan step.

### Author details

Youssou Faye<sup>1</sup> \*, Hervé Guyennet<sup>2</sup> and Ibrahima Niang3


\*Address all correspondence to: yfaye@univ-zig.sn

© 2019 The Author(s). Licensee IntechOpen. This chapter is distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/ by/3.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
