ArticlePDF Available

Improving the Performance of {0,1,3}-NAF Recoding Algorithm for Elliptic Curve Scalar Multiplication

Authors:
(IJACSA) International Journal of Advanced Computer Science and Applications,
Vol. 10, No. 4, 2019
275 | P a g e
www.ijacsa.thesai.org
Improving the Performance of {0,1,3}-NAF Recoding
Algorithm for Elliptic Curve Scalar Multiplication
Waleed K. AbdulRaheem1, Sharifah Bte Md Yasin2, Nur Izura Binti Udzir3, Muhammad Rezal bin Kamel Ariffin4
Faculty of Computer Science and Information Technology, University Putra Malaysia, Selangor, Malaysia1, 2, 3
Institute for Mathematical Research, University Putra Malaysia, Selangor, Malaysia4
AbstractAlthough scalar multiplication is highly
fundamental to elliptic curve cryptography (ECC), it is the most
time-consuming operation. The performance of such scalar
multiplication depends on the performance of its scalar recoding
which can be measured in terms of the time and memory
consumed, as well as its level of security. This paper focuses on
the conversion of binary scalar key representation into {0, 1, 3}-
NAF non-adjacent form. Thus, we propose an improved {0, 1, 3}-
NAF lookup table and mathematical formula algorithm which
improves the performance of {0, 1, 3}-NAF algorithm. This is
achieved by reducing the number of rows from 15 rows to 6
rows, and reading two (instead of three) digits to produce one.
Furthermore, the improved lookup table reduces the recoding
time of the algorithm by over 60% with a significant reduction in
memory consumption even with an increase in key size.
Specifically, the improved lookup table reduces the memory
consumption by as much as 75% for the big key, which shows its
higher level of resilience to side channel attacks.
KeywordsElliptic Curve Cryptosystem (ECC); scalar
multiplication algorithm; {0, 1, 3}-NAF method; Non-Adjacent
Form (NAF)
I. INTRODUCTION
Elliptic curves cryptosystem (ECC) was proposed by Neal
Koblitz and Victor Miller independently in 1985 to design the
public-key cryptographic system [1]. Similar to other public
key cryptographic algorithms, elliptic curve cryptosystem
deploys a public key and private key. The public key is used
for encryption to provide data confidentiality during
communication. ECC is implemented in smart card because of
its smaller key size and less computational complexity relative
to RSA cryptosystem [2]. This makes it attractive and suitable
for such applications.
Scalar multiplication is a fundamental and time-consuming
operation in ECC [3]. The scalar multiplication involves
computing    where is an integer and P, Q are points
on an elliptic curve. It is performed by repeating point
addition/subtraction and point doubling operations. The
representation of scalar k plays an important role in improving
the performance of this operation. Hamming weight of scalar
involves the number of the non-zero digits. As such, it
determines the number of the required point
addition/subtraction operation. Therefore, hamming weight is
one of the performance factor for the scalar multiplication
operation. Many researchers have tried to improve the
performance of the scalar multiplication by representing in
other forms with minimal hamming weight [4]. However, these
works does not improve the hamming weight for the
{0,1,3}method, but improving the timing, memory consuming
and security for the previous method since it is working on
existing lookup table.
In literature, it is proven that reducing the Hamming weight
of the scalar k can improve the performance of scalar
multiplication [5],[6] and [7]. Additionally, the scalar k can be
represented in base 2 or otherwise or by using combination of
different bases. In base 2, is in binary, NAF or -NAF. In
bases other than 2, can be represented in -NAF [8] or -
NAF[9]. Examples of combination of different bases include
mixed ternary/binary[10], DBNS [11], [12], and mbNAF [13].
Various recoding algorithms used in the literature include
complement recoding technique [14], hybrid complementary
and 1’s complement recoding technique [15].
In the aforementioned methods, the hamming weight and
its effect on the performance of the scalar multiplication were
well discussed. For example, width w-NAF is more efficient.
However, it increases the value [6], which implies more time
and memory is consumed as it requires more operation during
pre-computation. It is important to make a trade-off between
the performances categories according to the target objective
for implementation [16].
The contributions of this paper are as follows: The {0, 1,
3}-NAF method is introduced to convert the binary digit {0, 1}
using a proposed lookup table or mathematical formula. The
existing lookup table is of size 15 rows and 6 columns and
contains special cases, which reads three digits during the
recoding to produce one. In this paper, a new lookup table of
size 6 rows and 5 columns is proposed to recode the scalar. The
proposed lookup table reads two digits to produce one and
contains no special cases. The proposed is better than the
original in terms of time, memory and security. The remainder
of this paper is organized as follows: Section 2 discusses the
related work, while Section 3 introduces the {0, 1, 3}-NAF
method. The proposed method and the performance analysis
are presented in Section 4 and Section 5, respectively. Finally,
conclusion and the future works are presented in Section 6.
II. RELATED WORKS
In literature, recoding algorithm is used to change the
representation of k to another form without changing the
magnitude of the scalar. There are two types of recoding
algorithm [17]: left-to-right (L2R) and right-to-left (R2L). L2R
recoding is done by scanning digit of k from the most
significant bit (MSB) and the latter is by scanning digit from
Least Significant Bit (LSB). L2R recoding saves memory and
(IJACSA) International Journal of Advanced Computer Science and Applications,
Vol. 10, No. 4, 2019
276 | P a g e
www.ijacsa.thesai.org
is mostly preferred for memory constrained devices [18]. It
depends on the number of rows of the lookup table and number
of required digits read while recoding.
However, the performance of recoding algorithms depends
on the hardware system implementation and memory storage
[16] and [19]. Efficient recoding must have recoding rules that
are efficient, simple, and consumes less memory [20]. An
optimal recoding strategy must provide a trade-off between
high nonzero density and low memory consumption [6].
Selection of radix or digit set for a scalar must also satisfy the
characteristics of the scalar multiplication algorithm or
implementation technology. According to [21], proper
selection of radix and digit set for the scalar can promote an
increase of the frequency of useful digits such as zero and a
reduction in the total number of nonzero digits to represent a
number.
Reitwiesner (1960) proposed a R2L with non-adjacent form
(NAF) recoding which converts a binary number {0,1} into
NAF with digit {-1,0,1}-NAF [22] as shown in Algorithm 1. A
non-adjacent form means that there is no consecutive non-zero
digit in the scalar k. In {-1, 0, 1}-NAF recoding, a binary
number of form    with   {0, 1}
converted into a canonical form   
 

) with
  {-1, 0, -1} using Algorithm 1. The average hamming
weight of NAF is .
Algorithm 1: R2L NAF Recoding
Input:    
Output:  
 


1
 ;     
  
2
For i from 0 to m do
3
 (Ci + Xi + Xi-1)/2
4
Yi ← Ci + Yi + 2.Ci+1
5
Return Y= (Ym,Ym-2, ..., Y0)NAF
Example 1: Convert the binary number   
into NAF method using the Algorithm 1.
Solution:   
It is worthy of note that the hamming weight (number of
non-zeroes) reduced from 5 into 2.
Joye and Yen [23] proposed an optimal L2R recoding
algorithm for the binary number, The recoding however does
not have NAF property as shown in Algorithm 2. They also use
the lookup table to convert the binary to {-1, 0, 1} form as
shown in Table I.
TABLE I. L2R SIGNED-DIGIT RECODING (X = 0 OR 1)



0
0
0
x
0
0
0
1
0
0
0
0
1
1
1
0
1
0
x
1
1
0
1
x
-1
1
1
0
0
-1
1
1
0
1
0
1
1
1
x
0
Algorithm 2: L2R Signed Digit Recoding
Input:        
Output:  
 

1
bm0; Xm0; X-10; X-20
2
For i from m down to 0 do
3
bi-1 (bm + Xi-1 + Xi-2)/2
4
Yi -2bi +Xi +bi-1
5
Return Y
Note that in Example 1, using Algorithm 1, 2 or the lookup
Table I will give the same result (10000-1), but there is a
considered difference in the time and memory consumed.
Rezai et.al [24] proposed an L2R recoding algorithm while
deploying Markov chain to measure the hamming weight.
They identified that their L2R method has a hamming weight
of 3n/13.
III. EXISTING{0, 1, 3}-NAF RECODING ALGORITHM
Yasin [25] proposed a recoding algorithm based on the idea
from Reitwiesner's (R2L) [22] and Joye and Yen (L2R) [23].
The algorithm is also an L2R recoding and it converts a binary
into a non-adjacent form in base 2 with digit {0, 1, 3} using
Table II. The author has been proven that the representation
follows the non-adjacent form (NAF) property. Algorithm 3 is
used to convert the binary into {0, 1, 3}-NAF
Table II is a lookup table used together with Algorithm 3.
Table II consists of 15 rows, and the algorithm starts with
scanning three digits L2R. There are also special cases for
certain conditions.
Algorithm 3: L2R {0,1,3}-NAF Recoding
Input:    
Output:     
1
bm0; rm0; r-10; r-20; r’m0
2
For i from m-1 downto 0 do
3
scan two digits r from MSB i.e. ri and ri+1
4
Compute bi (bi+1 + ri + ri-1)/2
5
Compare (bi+1,ri+1,ri,ri-1,bi) with values from
lookup table row by row:
If [(bi+1,ri+1,ri,ri-1,bi)≡{(row1) or (row3) or (row5)
or (row6) or (row8) or (row9) or (row10) or
(row13) or (row15)}] then r’i = 0
6
If [(bi+1,ri+1,ri,ri-1,bi)
≡{(row2) or (row4) or (row7)}] then r’i = 1
7
if [(bi+1,ri+1,ri,ri-1,bi)
≡{(row11) or (row12) or (row14)}] then r’i = 3
8
return ( )
Example 2: Convert the number (1101101101) from binary
into {0,1,3}-NAF method.
Solution: applying the lookup Table II or Algorithm 3 by
reading 3 digits from L2R will give the result
(0300300301){0,1,3}-NAF, which reduce the hamming weight
from 7 into 4.
(IJACSA) International Journal of Advanced Computer Science and Applications,
Vol. 10, No. 4, 2019
277 | P a g e
www.ijacsa.thesai.org
TABLE II. L2R {0,1,3}-NAF RECODING (X= 0 OR 1)
No



Special Case

1
0
0
0
x
0
0
2
0
0
1
0
1
0
3
0
0
1
1
if consecutive
#1's is even
0
1
4
0
0
1
1
if consecutive
#1's is odd
1
1
5
0
1
0
x
0
0
6
0
1
1
1
If r’i+1= 1 OR 3
0
1
7
1
0
1
0
1
1
8
1
0
1
1
1
1
9
1
1
0
0
0
0
10
1
1
0
1
If r’i+1=1 OR 3
0
1
11
1
1
0
1
If r’i+1=0
3
1
12
1
1
1
0
If r’i+1=0
3
1
13
1
1
1
0
If r’i+1=1
0
1
14
1
1
1
1
If r’i+1=0
3
1
15
1
1
1
1
If r’i+1=1 OR 3
0
1
IV. PROPOSED ALGORITHM
So we proposed Table III which converts a binary into
{0,1,3}-NAF with high performance. Table III consists of 6
rows and it is used together with Algorithm 4. The algorithm
starts with scanning two digits from R2L
Table III is an improved version of Table II. The table size
is reduced from 15 rows to 6 rows. Algorithm 4 is used
together with Table III to converts a binary into {0,1,3}-NAF.
Algorithm 4: Improved R2L {0,1,3}-NAF Recoding
Input:        
Output:  
 


1
C0 ← 0; Xm ← 0
2
For i from 0 to m do
3
Scan two digit X from LSB ( )
4
Use lookup table, find Yi that match
  
5
Use lookup table, find 
6
Return Y
In Algorithm 3, line 4 computes for each iteration. Also,
line 5 do comparison of function    
 ) with the values in a row in the lookup table. In
Algorithm 4, comparison of function    
is done in line 4. It is worthy of note that number of
comparison is minimal than the one in Algorithm 3, since size
of lookup table for Algorithm 3 is bigger than the size of
lookup table used in Algorithm 4.
TABLE III. IMPROVED LOOKUP TABLE OF {0,1, 3}-NAF RECODING
No


1
0
0
0
0
0
2
0
1
0
0
0
3
0
0
1
1
0
4
0
1
1
3
1
5
1
0
1
0
0
6
1
1
1
0
0
In Table III, a new mathematical formula can be introduced
to recode the digit without using the lookup table as presented
in Algorithm 5.
Algorithm 5: Improved  NAF Recoding R2L.
Input:      
Output:       
1.    
2. For    do
3.       
4.      
5. return       
In the proposed Algorithm 5, the value of can be
calculated using the values of    mathematically as
in step 3, while the value of  can be computed using the
values of    mathematically as in step 4.
In general, lookup table is more efficient in terms of time
and memory since lookup table contains no mathematical
operations such as multiplication and division as in
Algorithm 5.
V. PERFORMANCE ANALYSIS
In terms of performance, we will compare between the
proposed lookup table and the original lookup table [25] in
terms of response time, memory usage and security. We
implemented the two tables in JAVA (NetBeans IDE 8.0.2).
The conversion from binary expansion to a new {0,1,3}-NAF
representation is run successfully.
Table IV shows the time in seconds for different bit sizes of
24, 28, 32, and 36 bits. As the bit sizes decreases, the level of
reduction in percentage is also decreases.
It is clear that the proposed lookup table is faster than
current lookup table. The conversion processes also consume
less time. Fig. 1 shows the reduction time between the two
lookup tables.
Fig. 1 shows that our proposed lookup table is more
efficient for larger bit size due to its higher reduction
percentage.
In terms of the memory performance, the proposed
algorithm consumes less memory with higher percentage for
large bit key sizes as shown in Table V and Fig. 2.
In Fig. 1 and Fig. 2, the performance achied due the small
lookup table size. While recoding, two digits only need to scan
so as to produce one digits. Also this can be more efficient with
key of big size.
TABLE IV. CONVERSION TIME FROM BINARY TO {0,1,3}-NAF FOR L2R
AND MODIFIED R2L {0,1,3}-NAF ALGORITHMS
Size of
bits
L2R {0,1,3}-NAF
Recoding(Seconds)
Proposed R2L {0,1,3}-
NAF Recoding (Seconds)
Reduction
Percentage
36
123650
49918
60%
32
6839
2897
58%
28
389
173
56%
24
22
11
50%
(IJACSA) International Journal of Advanced Computer Science and Applications,
Vol. 10, No. 4, 2019
278 | P a g e
www.ijacsa.thesai.org
Fig. 1. Reduction Percentage of Time Related to Bit Size for the Proposed
Lookup Table.
Fig. 2. Reduction Percentage of Time Related to Bit Size for the Proposed
Lookup Table.
TABLE V. CONVERSION MEMORY BY KBYTES FROM BINARY TO {0,1,3}-
NAF FOR L2R AND MODIFIED R2L {0,1,3}-NAF ALGORITHMS
Size of
bits
L2R {0,1,3}-NAF
Recoding (Kbytes)
Proposed R2L {0,1,3}-
NAF Recoding (Kbytes)
Reduction
Percentage
36
75416
18897
75%
32
41837
13691
67%
28
30937
11511
63%
24
25112
10164
60%
So, it is clear that the proposed is better than the original
{0, 1, 3}-NAF algorithm.
To achieve better ECC security, a larger bit size is desired
which makes the proposed lookup table more efficient in terms
of time and the memory usage. It is thus more suitable for
implementation in ECC.
In term of security, the original lookup table is vulnerable
to side channel attack such as simple power attack SPA and
timing attack TA due to its non-constant time execution [26].
The original lookup has two exceptional cases to the count
number of 1’s in line 4 & 5 in Table II. While using the lookup
table, if there is a consecutive 1’s is consumes more memory
and time while recoding the original lookup table which makes
it vulnerable to attacks. For instance, a hacker can guess that
there is a consequent 1’s at a part of the key [27].
VI. CONCLUSION AND FUTURE WORKS
In this paper, a new lookup table and mathematical formula
have been proposed to improve the {0, 1, 3}-NAF method. The
proposed method shows improvement in terms of time,
memory and security aspects compared to the original {0, 1,
3}-NAF method, since it reduces the lookup table size from 15
rows into 6, and reads two digits during the recoding to
produce one instead of three. Time and memory are reduced
while recoding execution with a percentage up to 60% and
75% respectively. The performance of the proposed lookup is
more efficient while key size is bigger.
We suggest that this scalar recoding is applied in scalar
multiplication either using Montgomery Ladder to achieve
better security or using τNAF with Koblitz curves for higher
efficiency. The digit 3 can be precomputed using different
coordinates such as projective and affine over different curves
such as binary, Edward and prime curves.
ACKNOWLEDGMENT
This work was supported by Ministry of Higher Education
under FRGS Grant no. 5524822.
REFERENCES
[1] K. E. Abdullah and N. H. M. Ali, “Security Improvement in Elliptic
Curve Cryptography,” Int. J. Adv. Comput. Sci. Appl., vol. 9, no. 5, pp.
122131, 2018.
[2] Z. U. A. Khan and M. Benaissa, “High Speed and Low Latency ECC
Processor Implementation over GF ( 2 m ) on FPGA,” IEEE Trans. Very
Large Scale Integr. Syst., vol. 25, no. 1, p. 165176., 2017.
[3] N. Thangarasu and A. A. L. Selvakumar, “Improved elliptical curve
cryptography and Abelian group theory to resolve linear system problem
in sensor-cloud cluster computing,” Cluster Comput., pp. 1–10, 2018.
[4] M. M. Ahmad, S. M. Yasin, R. Mahmod, and M. A. Mohamed, “X-
Tract Recoding Algorithm for Minimal Hamming Weight Digit Set
Conversion,” J. Theor. Appl. Inf. Technol., vol. 75, no. 1, pp. 109–114,
2015.
[5] O. Ugus, D. Westhoff, R. Laue, A. Shoufan, and S. A. Huss, “Optimized
Implementation of Elliptic Curve Based Additive Homomorphic
Encryption for Wireless Sensor Networks,” arXiv Prepr.
arXiv0903.3900., 2009.
[6] K. Okeya and T. Takagi, “The Width- w NAF Method Provides Small
Memory and Fast Elliptic Scalar Multiplications,” pp. 328–343, 2003.
[7] A. Rezai and P. Keshavarzi, “CCS Representation : A new non-adjacent
form and its application in ECC,” J. Basic Appl. Sci. Res., vol. 2, no. 5,
pp. 45774586, 2016.
[8] T. Takagi, S. Yen, and B. Wu, “Radix- r Non-adjacent Form,” Springer-
Verlag Berlin Heidelb., pp. 99100, 2004.
[9] M. Joye and S. Yen, “New Minimal Modified Radix- r Representation
with Applications to Smart Cards,” in International Workshop on Public
Key Cryptography, 2002, pp. 375383.
[10] M. Joye, “Trading Inversions for Multiplications in Elliptic,” Des. codes
Cryptogr., pp. 189206, 2006.
[11] V. Dimitrov, L. Imbert, and P. K. Mishra, “The double-base number
system and its application to elliptic curve cryptography,” Math.
Comput., vol. 77, no. 262, pp. 10751104, 2008.
[12] C. Doche and L. Habsieger, “A Tree-Based Approach for Computing
Double-Base Chains A Tree-Based Approach for Computing Double-
Base Chains,” Australas. Conf. Inf. Secur. Priv. (pp. 433-446). Springer,
Berlin, Heidelberg., no. June 2008, 2016.
[13] P. Longa and C. Gebotys, “Setting Speed Records with the ( Fractional )
Multibase Non-Adjacent Form Method for Efficient Elliptic Curve
Scalar Multiplication . Setting Speed Records with the ( Fractional )
Multibase Non-Adjacent Form Method for Efficient Elliptic Curve
Scalar Mult,” IACR Cryptol. ePrint Arch., no. February, 2015.
45%
47%
49%
51%
53%
55%
57%
59%
61%
36 32 28 24
Reduction percentage %
Bit Size
50%
55%
60%
65%
70%
75%
80%
1234
Reduction percentage %
Bit Size
(IJACSA) International Journal of Advanced Computer Science and Applications,
Vol. 10, No. 4, 2019
279 | P a g e
www.ijacsa.thesai.org
[14] P. Balasubramaniam and E. Karthikeyan, “Elliptic curve scalar
multiplication algorithm using complementary recoding,” Appl. Math.
Comput., vol. 190, pp. 5156, 2007.
[15] X. Huang, P. G. Shah, and D. Sharma, “Minimizing Hamming Weight
Based on 1 ’ s Complement of Binary Numbers Over GF ( 2 m ),” in In
Advanced Communication Technology (ICACT), 2010 The 12th
International Conference on (Vol. 2, pp. 1226-1230). IEEE., 2010, pp.
12261230.
[16] M. Bafandehkar, S. M. Yasin, R. Mahmod, and Z. M. Hanapi,
“Comparison of ECC and RSA algorithm in resource constrained
devices,” 2013 Int. Conf. IT Converg. Secur. ICITCS 2013, pp. 0–2,
2013.
[17] H. Cohen, G. Frey, and R. Avanzi, Handbook of Elliptic and
Hyperelliptic Curve Cryptography. 2006.
[18] M. Khabbazian, T. A. Gulliver, S. Member, and V. K. Bhargava, “A
New Minimal Average Weight Representation for Left-to-Right Point
Multiplication Methods,” IEEE Trans. Comput. 54(11), 1454-1459., pp.
17, 2005.
[19] W. K. A. Abdulraheem, “Comparative Analysis of the Performance for
Cloud Computing Hypervisors with Encrypted Algorithms,” 2014.
[20] D. F. Aranha and K. Karabina, “Efficient Software Implementation of
Laddering Algorithms Over Binary Elliptic Curves Efficient software
implementation of laddering algorithms over binary elliptic curves,” Int.
Conf. Secur. Privacy, Appl. Cryptogr. Eng. (pp. 74-92). Springer, Cham,
no. December, 2017.
[21] E. Guerrini, L. Imbert, and T. Winterhalter, “Randomized Mixed-Radix
Scalar Multiplication,” IEEE Trans. Comput., vol. 67, no. 3, pp. 418
431, 2018.
[22] G. W. Reitwiesnert, “The Determination of Carry Propagation Length
for Binary Addition *,” IRE Trans. Electron. Comput. (1), 35 -38., vol. 0,
pp. 3538, 1960.
[23] M. Joye and S. Yen, “Optimal Left-to-right Binary Signed-Digit
Recoding,” vol. 49, no. 7, pp. 1–8, 2000.
[24] A. Rezai and P. Keshavarzi, “A New Left-to-Right Scalar Multiplication
Algorithm Using a New Recoding A New Left-to-Right Scalar
Multiplication Algorithm Using a New Recoding Technique,” Int. J.
Secur. its Appl., vol. 8, no. 3, pp. 3138, 2015.
[25] S. M. Yasin, “New signed-digit {0, 1, 3}-NAF scalar multiplication
algorithm for elliptic curve over binary field.,” 2011.
[26] N. Tuveri, S. ul Hassan, C. P. Garcia, and B. B. Brumley, “Side-Channel
Analysis of SM2: A Late-Stage Featurization Case Study,” in
Proceedings of the 34th Annual Computer Security Applications
Conference on - ACSAC ’18, 2018, pp. 147–160.
[27] J. Fan, X. Guo, E. De Mulder, P. Schaumont, B. Preneel, and I.
Verbauwhede, “State-of-the-art of secure ECC implementations : a
survey on known side-channel attacks and countermeasures,” in In
Hardware-Oriented Security and Trust (HOST), IEEE International
Symposium on, 2010, pp. 7687.
ResearchGate has not been able to resolve any citations for this publication.
Article
Full-text available
At present, the sensor-cloud infrastructure is gaining popularity, since it offers a flexible, open and reconfigurable configuration over monitoring and controlling application. It handles mainly the user data, which is quite sensitive and hence the data protection in terms of integrity and authenticity is of greater concern. Thus, security is a major concern in such system, inclusive of intruders, who tries to access the infrastructure. In this paper, an improved encryption protocol for secured session keying between the users using a trusted services proposed over sensor-cloud architecture. This technique uses modified Elliptical Curve Cryptography (ECC) algorithm to improve the authentication of sensor nodes in the network. Further, Abelian group theory is designed to convert intruder deduction problem to linear deduction problem to resolve the complexity associated with manipulation of finding the intruders in the network.This helps to reduce the computational complexity of generating a secured message transmission and increased possibility to find the intruders in the network. The experimental validation with the proposed ECC in terms of computational cost proves that the proposed method attains lower computational cost and improved detection of intruders in the network. Also, the technique seems efficient and can be applied on practical cases, where other ECC algorithms fails while implementing it on a real time basis. © 2018 Springer Science+Business Media, LLC, part of Springer Nature
Conference Paper
Full-text available
Designing efficient and secure implementations of Elliptic Curve Cryptography (ECC) has attracted enormous interest from both theoreticians and practitioners. The main contenders in terms of performance are curves defined over binary extension fields or large prime characteristic fields. In addition to the efficiency requirements, security advantages such as implementation simplicity and resistance to side-channel attacks are receiving increasing attention in research and commercial applications. In this paper, we keep pushing in this direction and study efficient implementation of regular scalar multiplication algorithms for binary curves equipped with efficient endomorphisms. Our focus is on implementing the Galbraith-Lin-Scott (GLS) family of binary curves by exploring the space of different models and laddering algorithms, for their high performance, reasonable implementation simplicity, lower memory consumption and side-channel resistance. Our results demonstrate that laddering implementations can be competitive with window-based methods by obtaining a new speed record for laddering implementations of elliptic curves on high-end Intel processors.
Conference Paper
Full-text available
Nowadays, the usage of resource constrained devices is increasing and these devices are primarily working with sensitive data. Consequently, data security has become crucial for both producers and users. Limitation of resources is deemed as the major issue that makes these devices vulnerable. Attackers might exploit these limitations to get access to the valuable data. Therefore, carefully chosen and practically tested encryption algorithm must be applied to increase the device efficiency and mitigate the risk of sensitive data loss. This study will compare elliptic curve cryptography (ECC) algorithm with Key size of 160-bit and Rivest-Shamir-Adleman (RSA) algorithm with Key size of 1024-bit. As a result of this study utilizing ECC in resource constrained devices has advantages over RSA but ECC needs continues enhancement to satisfy the limitations of newly designed chips.
Article
Full-text available
Scalar multiplication is the most computational intensive operation in elliptic curve cryptosystem (ECC). Improving the performance of this operation can be achieved by using recoding technique which aims at minimizing the density of nonzero digits in the scalar, also known as its Hamming weight. We proposed XTract recoding technique that alters the representation of scalar from binary digit to {-1,0,1,3} digit set in non-adjacent form (NAF). The recoding algorithm can be expressed both mathematically and logically and reduces the Hamming weight of the scalar to 41% in average for 163-bit scalar with balanced bit. X-Tract Recoding algorithm reads every three adjacent bits overlapped by one bit from left-to-right in the input binary scalar to produce each new output digit. We use ANOVA analysis to show that the new recoding technique produces significantly better output with less Hamming weight compared to its counterparts.
Article
Full-text available
Elliptic Curve Cryptosystem (ECC) is a well-known cryptosystem for securing the communications. The most important operation in ECC is scalar multiplication. The integer representation plays an important role in the performance of this operation. This paper presents and evaluates a novel recoding technique which reduces the average Hamming weight of integers. The Left-to-Right (L2R) scalar multiplication is modified to utilize this new integer representation. Our analysis shows that the computation cost (the number of required point addition/subtraction operation) in the proposed L2R scalar multiplication algorithm is effectively reduced in comparison with other modified L2R binary scalar multiplication algorithms.
Conference Paper
SM2 is a public key cryptography suite originating from Chinese standards, including digital signatures and public key encryption. Ahead of schedule, code for this functionality was recently mainlined in OpenSSL, marked for the upcoming 1.1.1 release. We perform a security review of this implementation, uncovering various deficiencies ranging from traditional software quality issues to side-channel risks. To assess the latter, we carry out a side-channel security evaluation and discover that the implementation hits every pitfall seen for OpenSSL's ECDSA code in the past decade. We carry out remote timings, cache timings, and EM analysis, with accompanying empirical data to demonstrate secret information leakage during execution of both digital signature generation and public key decryption. Finally, we propose, implement, and empirically evaluate countermeasures.
Article
This paper proposed different approaches to enhance the performance of the Elliptic Curve Cryptography (ECC) algorithm. ECC is vulnerable to attacks by exploiting the public parameters of ECC to solve Discrete Logarithm Problem (DLP). Therefore, these public parameters should be selected safely to obviate all recognized attacks. This paper presents a new generator function to produce the domain parameters for creating the elliptic curve; a secure mechanism is used in the proposed function to avoid all possible known attacks that attempts to solve the Elliptic Curve Discrete Logarithm Problem (ECDLP). Moreover, an efficient algorithm has been proposed for choosing two base points from the curve in order to generate two subgroups in a secure manner. The purpose of the aforementioned algorithm is to offer more confidence for the user since it is not built upon a hidden impairment that it could be subsequently utilized to retrieve user's private key. The Elliptic Curve Diffie Hellman (ECDH) algorithm is implemented to exchange a session key between the communicating parties in a secure manner. Beside, a preprocessing operation is performed on the message to enhance the diffusion property and consequently leads to increase the strength against cryptanalysis attack. Finally, the dual encryption/decryption algorithm is implemented using different session keys in each stage of the encryption to boost immunity against any attack on the digital audio transmission. The gained results show the positive effect of the dual elliptic curve system in terms of speed and confidentiality without needing any extra time for encryption.
Article
A set of congruence relations is a $\mathbb{Z}$ -covering if each integer belongs to at least one congruence class from that set. In this paper, we first show that most existing scalar multiplication algorithms can be formulated in terms of covering systems of congruences. Then, using a special form of covering systems called exact n-covers, we present a novel uniformly randomized scalar multiplication algorithm with built-in protections against most passive side-channel attacks. Our algorithm randomizes the addition chain using a mixed-radix representation of the scalar. Its reduced overhead and purposeful robustness could make it a sound replacement to several conventional countermeasures. In particular, it is significantly faster than Coron's scalar blinding technique for elliptic curves when the choice of a particular finite field tailored for speed compels to double the size of the scalar, hence the cost of the scalar multiplication.
Article
—In this paper, a novel high speed ECC processor implementation for point multiplication on Field Programmable Gate Array (FPGA) is proposed. A new segmented pipelined fullprecision multiplier is used to reduce the latency and the LopezDahab (LD) Montgomery point multiplication algorithm is modified for careful scheduling to avoid data dependency resulting in a drastic reduction in the number of clock cycles required. The proposed ECC architecture has been implemented on Xilinx FPGAs Virtex4, Virtex5 and Virtex7 families. To our knowledge, our single multiplier and three multipliers based designs show the fastest performance to date when compared to reported works individually. Our one multiplier based ECC processor also achieves the highest reported speed together with the best reported area-time performance on Virtex4 (5.32 µs at 210 MHz), on Virtex5 (4.91 µs at 228 MHz), and on the more advanced Virtex7, (3.18 µs at 352 MHz). Finally, the proposed three multiplier based ECC implementation is the first work reporting the lowest number of clock cycles and the fastest ECC processor design on FPGA (450 clock cycles to get 2.83 µs on Virtex7).