• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Improved Software Implementation for Montgomery Elliptic Curve Cryptosystem

    2022-03-14 09:24:16MohammadAlKhatibandWafaaSaif
    Computers Materials&Continua 2022年3期

    Mohammad Al-Khatiband Wafaa Saif

    Computer Science Department,College of Computer and Information Sciences,Imam Mohammad Ibn Saud Islamic University(IMSIU),Riyadh,Saudi Arabia

    Abstract: The last decade witnessed rapid increase in multimedia and other applications that require transmitting and protecting huge amount of data streams simultaneously.For such applications,a high-performance cryptosystem is compulsory to provide necessary security services.Elliptic curve cryptosystem(ECC)has been introduced as a considerable option.However,the usual sequential implementation of ECC and the standard elliptic curve(EC)form cannot achieve required performance level.Moreover, the widely used Hardware implementation of ECC is costly option and may be not affordable.This research aims to develop a high-performance parallel software implementation for ECC.To achieve this, many experiments were performed to examine several factors affecting ECC performance including the projective coordinates,the scalar multiplication algorithm,the elliptic curve(EC)form,and the parallel implementation.The ECC performance was analyzed using the different factors to tune-up them and select the best choices to increase the speed of the cryptosystem.Experimental results illustrated that parallel Montgomery ECC implementation using homogenous projection achieves the highest performance level,since it scored the shortest time delay for ECC computations.In addition,results showed that NAF algorithm consumes less time to perform encryption and scalar multiplication operations in comparison with Montgomery ladder and binary methods.Java multi-threading technique was adopted to implement ECC computations in parallel.The proposed multithreaded Montgomery ECC implementation significantly improves the performance level compared to previously presented parallel and sequential implementations.

    Keywords: Elliptic curve cryptosystem; parallel software implementation;multi-threading; scalar multiplication algorithms; modular arithmetic

    1 Introduction

    Elliptic Curve cryptosystem (ECC) is a next-generation approach to public key cryptosystems that uses relatively small keys to provide the same or greater level of security compared to the other public-key cryptosystems [1].The use of smaller key sizes led to a considerable improvement on the speed of the cryptosystem [2].Therefore, ECC received increasing interest in last decade, especially for security applications that demand high-performance cryptosystem,such as multimedia and military applications.Recently, the dramatic increase in the amount of data being processed by those applications, and the need to provide higher security levels make it compulsory to improve the performance of ECC to satisfy these requirements.

    The performance of ECC is affected by the choices of implementation environment; software and hardware implementations, and the domain parameters such as field representation, Elliptic curve (EC) form, algorithm for scalar multiplication, and the coordinates system.Every one of the aforementioned parameters plays important role in the ECC performance [3].

    The current research investigates the ECC performance using the different parameters, and selects the best possible parameters’choices and scalar multiplication algorithms to optimize the cryptosystem’s performance.This study considers software implementation of ECC since it is cost-effective and consumes less resources in comparison with hardware implementation.The rest of this article is organized as follows: Section 2 mathematical background, Section 3 related works, Section 4 proposed cryptosystem design, Section 5 results and discussion, and finally the conclusion in Section 6.

    2 Mathematical Background

    ECC is a type of public key cryptography that depends on the discrete logarithm problem for EC.ECC has two levels of computations; upper and lower levels of computations.The main operation in the upper level is the scalar multiplication, which consists of two operations; point doubling and point addition (called point operations).The lower level, on the other hand, includes finite field (called Galois field GF) computations, which are modular addition, subtraction, multiplication, and division operations.The latter is the most time consuming operation because it requires finding the multiplicative inverse [4].

    The scalar multiplication algorithm performs either one or both of point operations in each iteration.The point addition operation adds two different points G and Q on the EC to obtain another EC point R.The point addition can be calculated via computing the coordinates (x3, y3)of the resulting point, as follows:

    Alternatively, the point doubling operation adds the point to itself (Q = G) and can be calculated as follows:

    y3=M(x1-x3)-y1

    It worth mentioning that the EC form does not affect the point addition calculations, hence it relies only on the two points on the curve.On the contrary, point doubling calculation changes according to the EC form and the use of coordinate systems, since it requires to derive the slope equation from the elliptic curve equation.

    There are two common types of finite fields in which ECC computations are applied; the prime field GF(P) and the binary field GF(2m).The GF(P) consist of the set of integers F = {0,1..., P-1} where all the operations performed using modular arithmetic (mod P) where P is the prime number.

    Several elliptic curve forms over GF(P) were presented previously.Among the most important forms is the Montgomery curve since it has less computational complexity, which makes it appropriate for security applications that need high speed ECC.

    The Montgomery curve equation is defined as follows: E: By2=x3+Ax2+xwhere the value of A and B are predefined, andB.(A2-4)0, and x, y, A and B are elements of the GF(P).

    To find all points on the Montgomery curve over GF(P), substitute the value of x=0, 1,...P in the Montgomery curve equation then take the square roots to find the value of y.The EC is distinguished from other curves since it is symmetric about the x-axis; every point on the elliptic curve has a mirrored point on the other side of the x-axis.For any non-vertical line drawn through the elliptic curve, it will intersect exactly at three points.The EC has a pointΘcalled point at infinity [5].

    The main operation in ECC encryption is the scalar multiplication, which is usually used to judge the cryptosystem performance.Three main algorithms were used to perform scalar multiplication, which are the Montgomery ladder, NAF, and Binary left to right (LTR).The scalar multiplication algorithms vary in terms of speed and security levels [7].Their characteristics will be studied in this research to determine the most efficient algorithm for developing high-speed ECC.

    3 Related Works

    There has been an intense amount of researches done in the field of ECC since it was introduced in 1985.The majority of previous studies investigated possible factors to improve ECC performance such as the use of certain EC form, the use of projective coordinates, the parallel and concurrent execution of elliptic curve computations, and the use of efficient scalar multiplication algorithms.Again, all these factors affect the ECC performance and should be considered when designing high-speed cryptosystem.Other research works focused on safeguarding ECC against certain types of attacks such as simple time attack (STA).This section surveys the most important research works that studied the possible improvements on the performance and security of ECC.

    EC point operations (point doubling (ECDBL) and point addition (ECADD)) include the time expensive modular Inversion when using affine coordinates.Many researchers proposed using projective coordinates systems to eliminate the modular Inversion [8].The studies presented in [9,10] proposed several parallel hardware designs for ECC point addition and point doubling respectively using the standard EC over GF(P).Both studies investigated the use of three known projective coordinates to eliminate the modular inversion operation.Researchers also used parallel hardware implementation to utilize the inherent parallelism in ECC computations and hence improve the speed of ECC encryption.Authors of [11] proposed parallel data flows for EC computations over GF(P) using several projective coordinates.The mathematical equations of Montgomery curve point operations were developed and then transformed into the best parallel data flow that exploits the maximum parallelism degree.It has been suggested by this study that Montgomery curve represents efficient choice for developing a high-speed EC crypto-processor.It achieved better performance results compared to the standard EC form.

    There is a plenty of studies that examined the hardware implementation of ECC forms.Some of them used sequential implementation [12,13], where others investigated potential enhancements that could be obtained using parallel hardware implementations [14-16].

    However, the major disadvantage of hardware implementations is that they require a dedicated crypto-processor and hardware components, entailing significant increase in the cost of designing and implementing the cryptosystem.This makes hardware implementation of ECC not affordable and complicated choice for many security applications, especially those applications with limited resources.Software implementations for ECC, on the other hand, have low development costs,easy to upgrade, and more flexible [17].In addition, the majority of previous studies examined the cryptosystem performance with only one scalar multiplication algorithm.This research uses the software approach instead of hardware implementation, and investigates the cryptosystem performance with three different and efficient scalar multiplication algorithms.Both sequential and parallel software implementations will be studied in this research.

    Authors of [18,19] surveyed the scalar multiplication algorithms that are common in EC cryptography field.These algorithms were compared in terms of the execution time, the hamming weight of the scalar k, the number of doubling operations, and the required precomputations.Both studies stated that the addition and subtraction algorithm is more efficient than the binary scalar algorithm because it uses signed binary representation of the scalar called Non Adjacent Form (NAF), which is proven to have less hamming weight.The window method is suitable for less constrained memory since it uses a table of pre-computed points.Another study [20]conducted a performance analysis on five different scalar multiplication algorithms using the Weierstrass curve over the two finite fields.The study stated that the NAF Algorithm was shown to have the least execution time GF(P) compared to other algorithms.Moreover, the results confirmed that the prime field is more efficient for software implementations; the scalar multiplication over the prime field is faster than the binary field.

    In [21], researchers conducted a performance analysis on Java implementations of EC operations over both standard finite fields.The study suggested that the java BigInteger class is more efficient for the software implementations of EC operations in the prime field more than the binary field.The research work published in [22] presented a description for the software implementation of ElGamal ECC over GF(P).In addition, the study provided detailed description about the main steps of ElGamal ECC.The author used the general Weierstrass EC equation, and the affine coordinates for point representation, in addition to the NAF algorithm to perform the scalar multiplication.Authors in [23] proposed a new ECC that eliminates the need for the mapping operation that has been used in previous studies, which contributes in increasing the speed of the encryption process.This was achieved by using the ASCII values for each character rather than a dedicated algorithm for implementing the mapping procedure.The study presented in [24]provided implementation details for the proposed software ECC that is able to encrypt/decrypt text and images.

    Authors of [25] proposed ECC software implementations using a new scalar multiplication algorithm.In particular, the binary trees were used to carry out the results of point multiplication.The proposed technique was based on adding the point to itself repeatedly and the divide and conquer approach.The research work [26] introduced an EC cryptosystem that runs in a multithreading environment.The proposed parallel cryptosystem runs different mathematical algorithms for point multiplication on the standard Weierstrass curve.The point multiplication algorithms used are Karatsuba and Montgomery algorithms.Again, the results showed that the prime field is faster than the binary field, which makes it appropriate choice for software applications.

    The study presented in [27] provided an explanation on how to implement a java EC cryptosystem over the prime and binary fields.The paper implemented the key pairs generation, keys exchange, and ECDSA using SunEC provider.Another study [28] implemented the EC Digital Signature Algorithm using the Java Development Kit (JDK) version 1.2.The developed system was tested using the following key sizes 192,239, and 256 bits.The experimental results showed that key pair generation using 256-bits takes 13.6 ms, and the signing process takes 13.7 ms, and the verifying takes 13.7 ms.

    It has been noticed that majority of previous research works did not conduct performance testing on their software implementations of ECC to highlight the efficiency of their proposed cryptosystems.In addition, previous studies focused on the sequential software implementation for ECC computations and considered one scalar multiplication algorithm per each proposed ECC implementation.

    Furthermore, the reviewed research works that studied the software implementation of ECC focused on the standard EC form and did not investigate the use of newly introduced EC representations such as Montgomery, and tripling oriented curves.Another issue in previous works is that they are predominately use the affine coordinates system to represent the EC points, which leads to a significant drawback in ECC performance.This is because the use of affine coordinates requires finding the multiplicative inverse to perform the modular division operation.Computing the inverse is the most time consuming operation in EC cryptography.

    Although, the projective coordinates were used in some studies, those researches did not benefit from the parallel and concurrent execution of ECC computations with projective coordinates.Instead, the vast majority of reviewed researches used the sequential implementation of ECC,in which only one finite field operation can be performed in each level of computations.Again,this increases the time delay of ECC operations and exposes the cryptosystem to the risk of side channel attacks.The sequential software implementation of ECC in not efficient for security applications that require high-speed cryptosystems such as multimedia and military applications.

    This research seeks to develop improved software implementation for ECC.To this end,the different factors affecting the ECC performance will be investigated, which are the use of projective coordinates, the use of EC forms with less computations complexity, the scalar multiplication algorithm, and the use of parallel software implementation to perform ECC computations.In the proposed ECC’s implementations, the different factors are tuned up and combined to reduce the time delay.The ECC performance is evaluated and analyzed to find the best combination of these factors that achieves the optimum performance level.This aims to develop a high-performance and efficient ECC.To our knowledge, this combination of factors and optimization of the software implementation of ECC have never been proposed and studied previously.

    4 Proposed Cryptosystem Design

    This section presents the equations and methods used to implement ECC computations.The parallel computational schemes, which are required for parallel software implementations, are designed in this section.Eventually, this section introduces the enhanced software implementation of ECC.

    This research uses the recently introduced form of EC called Montgomery curve, which was presented in Section 2.The Montgomery EC is selected since it has relatively low computational complexity.EC points are represented using projective coordinates instead of usual affine form to avoid the modular division operation.Three types of projective coordinates (Homogenous, Lopez Dahab, and Jacobian) were tested in this research to find the one that gives the best performance.

    The computations of point doubling and addition operations were implemented in parallel manner via utilizing the inherent parallelism in ECC computations.Different parallelization levels were tested to find out the best level that achieves the least time delay.

    The major scalar multiplication algorithms were examined in this research.In particular, we evaluated the performance of ECC using the Binary method, the NAF algorithm, and the Montgomery scalar algorithm.Proposed ECC implementations are evaluated and compared in terms of time consumption of the scalar multiplication operation.The Java programming language is used to implement the proposed ECC and perform encryption and decryption operations.The following section presents the underlying computations for Montgomery point operations using the three coordinates systems.

    4.1 Equations and Methods

    In this section, the ECC point computations using projective coordinates are illustrated.The main EC point operations are point doubling and point addition.Each one of them requires performing a number of finite filed computations; multiplication, addition, and subtraction.The projective coordinates use three dimensions (x, y, and z) to represent an EC point instead of two dimensions.The point addition operation adds two different EC points to find a third point, while the point doubling operation duplicates an EC point to find another point.Equations of point doubling and addition are presented in Section 2.

    4.1.1 Homogeneous Projection System

    The Homogeneous coordinates were used to represent the points on the Montgomery curve.The point doubling operation computes the third point represented by the coordinates X3, Y3,and Z3.This can be done using the following equations:

    4.1.2 Lopez-Dahap Projection System

    In the Lopez-Dahap coordinates, the EC point is represented using the coordinates system.The equations used to compute the result of Montgomery point doubling using Lopez-Dahap coordinates are as follows:

    4.1.3 Jacobean Projection System

    The Jacobean coordinates system uses the following equations to find the result of the Montgomery point doubling operation:

    The point addition computations, on the other hand, are similar for all ECs over GF(P) and are not affected by the change in EC equation.The point addition computations are presented in great details in [3].The following section introduces the computational scheme designs that are used to implement ECC computations in parallel manner.

    4.2 Computational Scheme Designs

    In this section, the ECC computational schemes to implement finite field arithmetic are designed.All possible design choices to perform ECC points computations were investigated;starting from the sequential design tell reaching the design with maximum parallel operations.The rationale behind parallelizing ECC computations is to reduce the time delay as much as possible and hence improving the cryptosystem performance.This study focused on the parallel ECC design that achieves the shortest time delay.The main disadvantage of sequential implementation of ECC is that it consumes longer time to implement the cryptosystem’s computations and wastes the CPU capability by executing only one modular operation per each step.

    The current study aims to improve the speed of ECC through utilizing the CPU’s capability to allow the concurrent execution of multiple modular operations simultaneously.In this section we present the data flows from inputs to outputs of the Montgomery ECC point Doubling over GF(P).These designs created by mapping the computational operation to a parallel software designs.Figs.1-3 show the computational schemes for point doubling computations using homogeneous, Lopez-Dahab, and Jacobian projections respectively.

    The proposed designs use four parallel multiplications (4-PM) and two parallel additions (2-PA), since it is considered the best parallelization level that yields the highest performance for point doubling.In each level of computations, either addition or multiplication operations are performed.The operations in each level are executed in a parallel manner.This was achieved through using the multi-threading technique in software implementation as will be clarified in Section 4.3.

    Note that the modular operations within each sequential level cannot begin unless the operations from the previous level are fully executed.

    Figure 1: Computational design for Montogomery point doubling using homogenous projection

    Unlike the sequential design, the proposed ECC designs exploit the inherited parallelism in EC commutations by allowing the concurrent executions of multiple modular operations within each level.

    Figure 2: Computational design for Montogomery point doubling using Lopez-Dahap projection

    It can be noticed from Fig.3 that applying Montgomery ECC computations using Jacobian projection requires the least number of multiplication operations.Thus, it is efficient choice for sequential ECC implementations.On the other hand, applying the cryptosystem computations using Homogenous projection presented in Fig.3 requires less number of parallel multiplication levels, which yields the shortest time delay for points operations.Therefore, it is considered the most efficient coordinates system when using parallel implementation for Montgomery ECC.

    4.3 Software Implementation

    This section elaborates on the software implementation of proposed parallel and highspeed GF(P) ECC using Montgomery curve.First, we illustrate the implementation of modular arithmetic; multiplication, addition, subtraction, and inversion operations.Then, the parallel multi-threaded implementation of point doubling and addition operations is presented.The software implementation of the scalar multiplication using the Montgomery ladder, the NAF, and the Binary algorithms is shown in this section.Finally, an ECC encryption and decryption experiments are performed to verify the cryptosystem efficiency and evaluate its performance level.

    4.3.1 ECC Modular Arithmetic

    For Modular arithmetic operations, the java BigInteger class is used to allow very large integer(typically 256-bit) calculations beyond the limits of all primitive data types, which cannot handle values greater than 64 bits.In addition, the java BigInteger class provides a set of methods to support the execution of modular addition, modular subtraction, modular multiplication and modular inversion.All of these operations are implemented using built-in methods in the Big-Integer class.For example, the modular multiplication is implemented by using the multiply and mod methods of BigInteger class.The following code segment shows an example for the modular multiplication operation used in the proposed cryptosystem.

    BigInteger A = new BigInteger(“587995594274”);

    BigInteger B = new BigInteger(“2000000000000”);

    BigInteger P = new BigInteger (“504842927415879955942747”);

    BigInteger C = A.multiply(B).mod(P);

    System.out.println(“The result of A * B mod P is “+C);

    In this research, we examined all possible design choices for Montgomery ECC using the three main projections.The next section presents the software implementations for the most efficient design choices used to perform ECC points operations.

    4.3.2 ECC Point Operations

    To facilitate the points operations on an elliptic curve, we implemented Point and Elliptic-Curve Classes.The Point Class has three private members, representing the X and Y and Z coordinates of a point.These members are objects of the BigInteger class.

    The EllipticCurve class handles the domain parameters and have public functions pointAddition() and PointDoubling () and scalarMultplication().The pointAddition() and PointDoubling () methods have sequential and multithreaded java implementations for each of the three coordinates systems.

    While the sequential implementation of point operations is straightforward and performs one operation per each level, the parallel implementation of point operations reflects the parallel designs presented in Section 4.2 and exploit the inherited parallelism in ECC computations.To achieve this, the multi-threading technique in java was used to allow the parallel execution of ECC computations.The Java threads are independent and save time; multiple operations can be performed simultaneously and separately.Three main methods from the Java Thread class were used in the proposed implementation, as follows:

    ? Run (): It is used to do an action for a thread.

    ? start (): It is used to trigger the execution of the finite field operation within the thread.

    ? join (): It is used to wait for the results of the finite field operation within a specific thread.This method can be used for the caller thread to wait for the completion of called thread.

    At each level, multiple threads are created; one thread for each finite field operation within the level.Within the bracket of the Run method, any segment of Java code can be placed.In our implementation, a prime finite field operation using BigInteger Class’s object and procedures is used.For the purpose of controlling the order of the executions of the levels within the parallel design, the join () method used, to make the main thread waits for the completion of all called threads that perform the field operations within a particular level.The code segment below showcases the creation and start of a Java thread used in the parallel Implementations of ECC.

    Thread thread1 = new Thread(new Runnable() {

    Public void run() { } };

    thread1.start();

    Within the bracket of the Run method, any segment of Java code can be placed.In our implementation, a prime finite field operation using BigInteger Class’s object and procedures is used.And for the purpose of controlling the order of the executions of the levels within the parallel design, the join () method used, to make the main thread waits for the completion of all called threads that performs the finite field operations within the same level.For instance, in the code of the parallel implementation for Montgomery Point Doubling using Homogeneous projection, four thread objects were created at the first multiplication level and named thread1,thread2, thread3, and thread4.In this level, each thread responsible for carrying out the result of modular multiplication assigned to it within the design presented in Fig.3.After each thread creation, the thread immediately started using the start method.The following code segment presents the parallel implementation of the first level of multiplications for Montgomery ECC point doubling.

    At the end of a particular level of computations, each thread was created in this level will call the join method to ensure that each thread completes its calculations before starting the next level.Other levels of computations for ECC points are implemented in parallel using similar mechanism.Sixteen java threads were created to implement the Montgomery point doubling using Homogeneous Projective system.

    thread4.start(); thread1.join(); thread2.join(); thread3.join(); thread4.join();

    4.3.3 Implementation of Scalar Multiplication Algorithms

    The scalar multiplication is the most critical operation in ECC.The current research investigates the three main algorithms used for performing the scalar multiplication, which are the Montgomery Ladder, the NAF, and the Binary algorithms.This aims to determine the fastest algorithm that provides best performance level for ECC encryption/decryption processes.Experimental results showed that the NAF algorithm is faster than the Montgomery ladder and the Binary Left-to-Right method, because it requires less number of point addition operations.The following code segment is used to implement the NAF algorithm after computing the signed binary representation (NAF) of the scalar K through the function (computeNAF(k)).

    4.3.4 ECC Encryption and Decryption Experiments

    In order to test the proposed cryptosystem, and verify its functionality, a number of encryption and decryption experiments were conducted.Moreover, this contributes in evaluating the ECC performance more precisely, and assists developers to build high-speed and efficient cryptosystems.

    For multithreaded implementations of point operations.all of the tests are run on a Dell PC(Intel(R) Core(TM) i7-4770 CPU @ 3.40 GHz, 4GB RAM), running the Windows 7 operating system.The code was compiled and run with Java version 1.8 using the Eclipse IDE tool.The M-221 curve used for the implementation and testing of the cryptosystems.

    Figure 3: Computational design for Montogomery point doubling using Jacobean projection

    The process of implementing the ECC encryption and decryption went through the following phases:

    1) Cryptosystem setup:

    To set up an ECC, both senders and receivers are required to select and agree upon the same EC domain parameters, i.e., the underlying finite fieldFp, the EC coefficients ‘a(chǎn)’and ‘b,’the base point G in the curve (generator), the order of cyclic subgroup n, and the cofactorh=#E(Fp)/n.Also, they are required to agree upon the lookup table and the same set of algorithms for representing the EC points and implementing the EC operations.

    2) Key generation and exchange:

    Each side selects a random integer as its private keys and then computes its public key.The selectPrivatekey, getRandomNumber, and computePublic_key methods were used for the key generation purposes.

    3) Message encoding:

    In this phase, each char in the message is mapped to its corresponding point in the lookup table that the senders and receivers have agreed upon.The encoding method takes an array of char types and returns an array of Point types.The method loop the input array to map each char element with its EC Point using the ASCII value of the char, and then this value is used as an index for the point representing this char.

    4) ECC Encryption

    In this phase, the cryptosystem encrypts the point array representing the message after encoding to produce a cipher array.The encryption function is a part of the EllipticCurve class, and takes as an input; the Private Key, the message points, and the other Party’s Public Key.This method returns a cipher array of points for each char in the message after encryption.The encryption process is implemented through the following code segment:

    5) Decryption

    In the decryption phase, the cryptosystem decrypts the ciphertext using a member method of the EllipticCurve Class.The Decryption method takes the cipher array of points as an input and returns the message mapped points back.The decryption process inverses the encryption to restore the plaintext.

    6) Message Decoding

    In the message decoding phase, each elliptic curve Point in the cipher array is mapped back to its corresponding char using the lookup table that both sender and receiver have agreed upon at the setup phase.The decoding method takes an array of Point types and returns an array of Char types representing the plaintext.

    The following section presents the experimental results for the proposed ECC, and discussion about the performance evaluation.

    5 Results and Discussions

    Tab.1 shows the average execution time for the finite field operations.The experimental results confirmed that modular inversion is the most expensive in terms of time delay.The results also showed that modular multiplication and addition operations are the second and third time-consuming operations respectively.To calculate the running time for proposed ECC implementations precisely, the java command System.nanoTime was used to get the current time at the beginning (startTime) and the end (endTime) of the encryption process.Then, the actual time consumption is calculated by subtracting the start time from the end time

    Table 1: The execution time for Montgomery ECC point operations

    Tab.2 presents a comparison in terms of time consumption for ECC point operations when implemented using sequential and parallel designs.The implementation results also highlight the time delay for each projective coordinates system used to apply EC computations.

    Table 2: A comparison between time delays of parallel and sequential ECC implementations

    In order to highlight the improvement on the performance achieved by using the proposed parallel implementation, Tab.3 shows an estimated Speed-up Percentage for each parallel ECC operation with each projection.The Speedup Percentage for the parallel designs can be computed as follows:

    It can be observed from the results presented in Tabs.1-3 that parallel implementation significantly improves the ECC performance compared to the sequential implementation.The best reported improvement percentage is 253% and was achieved using the Homogenous projection.Moreover, this projection achieved the shortest time delay (191111 ns) for the parallel (multithreaded) implementation of point doubling operation.For sequential ECC implementation,Jacobian coordinates system achieved the shortest time delay.This was expected since Jacobian projection requires less number of modular multiplications.

    Table 3: The performance improvement percentage for proposed parallel ECC implementations

    The scalar multiplication is the main operation in ECC encryption, and usually used to evaluate the cryptosystem performance.Tab.4 presents a performance (time consumption in millisecond (ms)) comparison between the sequential and parallel ECC implementations using three known algorithms; Montgomery ladder, NAF, and Binary (LRT) method.

    Table 4: A comparison between time delay of ECC scalar multiplication algorithms

    It can be noticed from Tab.4 that NAF algorithm achieved the least time consumption results(5.335 ms) for Montgomery ECC encryption when applied using the parallel (multi-threaded)design and Homogenous projection.For sequential ECC implementation, NAF algorithm also achieved the shortest time delay (12.005 ms) when used with Jacobian coordinates.The low humming wait of the NAF algorithm might be the main reason for its good performance levels.The Binary (LTR) and Montgomery ladder algorithms achieved the second and third place respectively in respect to the performance level.

    Fig.4 shows the results of the running time of all scalar multiplication algorithms on Montgomery Curve using sequential and parallel implementations.The results clearly show that NAF with the parallel implementation and the use of homologous projection takes the least time compared to the other implementations.On the other side, the sequential ECC implementation using Montgomery ladder and Lopez_Dahab projection consumes the longest (worst) time delay.

    Tab.5 presents a comparison with ECC implementations presented in previous research works.It can be noticed that proposed parallel ECC implementation overcomes others in terms of performance for the main EC operations; including Encryption, scalar multiplication (ECSM),point addition (ECADD), and point doubling (ECDBL).

    Figure 4: The time-delay (in Millisecond) of ECSM algorithms on Montgomery ECC

    Table 5: A comparison with previous research works

    6 Conclusion

    The explosive increase in the amount of data being transmitted over communication networks makes it necessary to develop a high-speed cryptosystem.Elliptic curve cryptosystem (ECC) has been proposed as an efficient public key cryptosystem since it can provide comparable security level to other systems with using shorter key length.However, ECC using its usual sequential implementation and affine coordinates cannot achieve adequate performance level to protect the huge amount data processes by modern applications such as multimedia and military.Moreover,the majority of previous studies investigated the hardware implementation of ECC, which is costly option, and used only one standard curve.

    In this article, a high-speed parallel software implementation for ECC is developed.It studied and tuned-up the main factors playing significant role in improving ECC performance.A newly introduced form called Montgomery curve is studied in this research because it has lower computational complexity, and hence requires less field operations.This research studied the performance level of sequential and parallel implementation of Montgomery ECC.The parallel implementation was done using Java multithreading techniques.Three projective coordinates were implemented

    and examined due to their ability to avoid the long time inversion operation.It has been shown the proposed multi-threaded ECC implementation using Homogenous projection achieved the best performance results.Such implementation is efficient choice for applications that need fast encryption process.For sequential Montgomery ECC, Jacobian projection obtained the shortest time delay.As a future research, other forms of EC and extensions of projective coordinates can be studied, since it may reduce the time complexity.Parallelizing the upper level of computations for ECC could be considered to increase the speed of encryption process as well.

    Acknowledgement:Authors Acknowledge the support from Imam Mohammad Ibn Saud Islamic University for this research.

    Funding Statement:Authors extend their appreciation to the Deanship of Scientific Research at Imam Mohammad Ibn Saud Islamic University for funding and supporting this work through Graduate Student Research Support Program.

    Conflicts of Interest:The authors declare that they have no conflicts of interest to report regarding the present study.

    丝袜在线中文字幕| 国产精品秋霞免费鲁丝片| 国产精品 欧美亚洲| 欧美乱码精品一区二区三区| 国产爽快片一区二区三区| 热99久久久久精品小说推荐| 又大又爽又粗| 国产高清国产精品国产三级| 最近的中文字幕免费完整| 一级爰片在线观看| 国产成人精品久久二区二区91 | 国产成人免费无遮挡视频| 国产亚洲av高清不卡| 国产精品麻豆人妻色哟哟久久| 久久精品国产亚洲av涩爱| 久久女婷五月综合色啪小说| 又大又黄又爽视频免费| 青春草亚洲视频在线观看| 亚洲自偷自拍图片 自拍| 老司机靠b影院| 熟女av电影| 亚洲av日韩在线播放| 成人国产av品久久久| 亚洲精品久久成人aⅴ小说| 国产免费现黄频在线看| 人体艺术视频欧美日本| 七月丁香在线播放| 国产1区2区3区精品| 97人妻天天添夜夜摸| 日韩制服丝袜自拍偷拍| 大陆偷拍与自拍| 日本一区二区免费在线视频| av卡一久久| 久久久久久人人人人人| 看十八女毛片水多多多| 日韩一卡2卡3卡4卡2021年| 日本爱情动作片www.在线观看| 麻豆乱淫一区二区| 宅男免费午夜| 欧美亚洲 丝袜 人妻 在线| 久久久精品94久久精品| 成年人午夜在线观看视频| 欧美精品高潮呻吟av久久| 在线天堂最新版资源| 99热网站在线观看| 国产精品熟女久久久久浪| av在线老鸭窝| 肉色欧美久久久久久久蜜桃| 美女扒开内裤让男人捅视频| 丝袜脚勾引网站| 欧美97在线视频| 男女之事视频高清在线观看 | 多毛熟女@视频| 亚洲国产精品成人久久小说| 国产午夜精品一二区理论片| 亚洲熟女精品中文字幕| 亚洲国产欧美网| 老熟女久久久| 久久国产精品大桥未久av| 久久久精品国产亚洲av高清涩受| 亚洲国产欧美网| 97在线人人人人妻| 国产av码专区亚洲av| 亚洲欧美成人综合另类久久久| av国产精品久久久久影院| 欧美成人精品欧美一级黄| 十八禁网站网址无遮挡| 视频区图区小说| 国产1区2区3区精品| 韩国精品一区二区三区| 你懂的网址亚洲精品在线观看| 十分钟在线观看高清视频www| 日韩欧美精品免费久久| 巨乳人妻的诱惑在线观看| 亚洲欧美一区二区三区黑人| 男女国产视频网站| 国产亚洲av高清不卡| 国产成人一区二区在线| 久久精品久久久久久噜噜老黄| 国产1区2区3区精品| 自线自在国产av| 波野结衣二区三区在线| 日韩中文字幕视频在线看片| 狂野欧美激情性bbbbbb| 人人妻人人爽人人添夜夜欢视频| 一区二区av电影网| 国产精品熟女久久久久浪| 日韩精品免费视频一区二区三区| 91国产中文字幕| 青青草视频在线视频观看| 国产成人欧美| 大陆偷拍与自拍| 中文字幕色久视频| 国产亚洲av高清不卡| 男女床上黄色一级片免费看| bbb黄色大片| 嫩草影院入口| 日韩视频在线欧美| 天天躁夜夜躁狠狠久久av| 国产亚洲最大av| 国产亚洲av高清不卡| 人妻一区二区av| 中文欧美无线码| 天堂8中文在线网| 婷婷成人精品国产| 国产精品一区二区在线观看99| 亚洲美女视频黄频| 91精品伊人久久大香线蕉| 熟妇人妻不卡中文字幕| 亚洲第一区二区三区不卡| 国产一区亚洲一区在线观看| a级毛片黄视频| 一区二区日韩欧美中文字幕| 大香蕉久久成人网| 9色porny在线观看| 亚洲专区中文字幕在线 | 777久久人妻少妇嫩草av网站| 在线观看免费视频网站a站| 满18在线观看网站| 国产人伦9x9x在线观看| 欧美成人精品欧美一级黄| 伦理电影大哥的女人| 日韩不卡一区二区三区视频在线| 久久精品亚洲熟妇少妇任你| 亚洲精华国产精华液的使用体验| 69精品国产乱码久久久| netflix在线观看网站| 无遮挡黄片免费观看| 天天操日日干夜夜撸| 国产亚洲午夜精品一区二区久久| 亚洲av综合色区一区| 欧美激情极品国产一区二区三区| 成人国语在线视频| 最近的中文字幕免费完整| 国产成人一区二区在线| 精品一区二区免费观看| 色婷婷久久久亚洲欧美| 巨乳人妻的诱惑在线观看| 高清黄色对白视频在线免费看| 美女扒开内裤让男人捅视频| 久久精品久久久久久久性| 成年人免费黄色播放视频| 欧美日韩一级在线毛片| 无限看片的www在线观看| 国产日韩欧美在线精品| 永久免费av网站大全| 国产人伦9x9x在线观看| 女人高潮潮喷娇喘18禁视频| 日韩人妻精品一区2区三区| 色综合欧美亚洲国产小说| 下体分泌物呈黄色| 免费在线观看完整版高清| 国产熟女午夜一区二区三区| 久久精品国产综合久久久| 亚洲国产看品久久| 国产 一区精品| 王馨瑶露胸无遮挡在线观看| 成人午夜精彩视频在线观看| 亚洲天堂av无毛| 欧美日韩国产mv在线观看视频| 久久婷婷青草| 日韩伦理黄色片| 亚洲精品国产av成人精品| 热99久久久久精品小说推荐| 国产片内射在线| 婷婷成人精品国产| 国产欧美亚洲国产| 一区在线观看完整版| 99久久99久久久精品蜜桃| 青春草国产在线视频| 熟女av电影| 精品久久久久久电影网| 久热爱精品视频在线9| 精品少妇黑人巨大在线播放| 国产精品人妻久久久影院| 国产乱来视频区| 女性生殖器流出的白浆| 国产精品 欧美亚洲| 女人被躁到高潮嗷嗷叫费观| 免费女性裸体啪啪无遮挡网站| 黑人猛操日本美女一级片| 美女视频免费永久观看网站| 纵有疾风起免费观看全集完整版| 最近中文字幕高清免费大全6| 高清在线视频一区二区三区| 大香蕉久久成人网| 亚洲综合精品二区| 不卡视频在线观看欧美| 一边亲一边摸免费视频| 久久久久久久国产电影| 久久久亚洲精品成人影院| 久久 成人 亚洲| 国产精品久久久av美女十八| 国产熟女午夜一区二区三区| 欧美精品亚洲一区二区| 成人亚洲欧美一区二区av| 国产精品三级大全| 亚洲av在线观看美女高潮| 永久免费av网站大全| 久久久精品94久久精品| 精品少妇一区二区三区视频日本电影 | 97精品久久久久久久久久精品| 十八禁网站网址无遮挡| 亚洲伊人久久精品综合| 99久久99久久久精品蜜桃| 青春草国产在线视频| 精品午夜福利在线看| 国产av国产精品国产| 18禁动态无遮挡网站| 在线天堂中文资源库| 大话2 男鬼变身卡| 亚洲欧美成人综合另类久久久| 成人18禁高潮啪啪吃奶动态图| 亚洲av在线观看美女高潮| 亚洲精品日韩在线中文字幕| 美国免费a级毛片| 国产不卡av网站在线观看| 久久这里只有精品19| 国产 精品1| 亚洲中文av在线| 一级毛片电影观看| 巨乳人妻的诱惑在线观看| 69精品国产乱码久久久| 国产日韩欧美视频二区| 黄频高清免费视频| 91精品伊人久久大香线蕉| 国产精品国产av在线观看| 操美女的视频在线观看| 999精品在线视频| 国产免费福利视频在线观看| 国产成人a∨麻豆精品| 亚洲人成网站在线观看播放| 色综合欧美亚洲国产小说| 狠狠精品人妻久久久久久综合| 午夜福利网站1000一区二区三区| av卡一久久| 亚洲第一青青草原| 国产亚洲欧美精品永久| 晚上一个人看的免费电影| 纵有疾风起免费观看全集完整版| 亚洲欧美清纯卡通| 国产成人精品福利久久| 观看美女的网站| 精品一区二区三卡| e午夜精品久久久久久久| 久久久精品区二区三区| 天天躁夜夜躁狠狠久久av| 亚洲国产最新在线播放| 亚洲精品美女久久av网站| 一边亲一边摸免费视频| 一级爰片在线观看| 色吧在线观看| 18禁动态无遮挡网站| 午夜日本视频在线| 美女国产高潮福利片在线看| 久久人妻熟女aⅴ| 欧美日韩视频高清一区二区三区二| 精品一区二区三卡| 一本色道久久久久久精品综合| 999精品在线视频| 天天躁夜夜躁狠狠久久av| 一区二区三区乱码不卡18| 高清视频免费观看一区二区| 欧美精品av麻豆av| 两个人免费观看高清视频| 最近最新中文字幕免费大全7| 999精品在线视频| 久久免费观看电影| 国产老妇伦熟女老妇高清| 色94色欧美一区二区| 两个人看的免费小视频| 精品人妻在线不人妻| 亚洲一级一片aⅴ在线观看| 老汉色∧v一级毛片| 1024视频免费在线观看| 老司机在亚洲福利影院| 天天添夜夜摸| 看免费av毛片| 中文字幕人妻丝袜一区二区 | 亚洲五月色婷婷综合| 久久久欧美国产精品| 肉色欧美久久久久久久蜜桃| 色婷婷av一区二区三区视频| 久久99热这里只频精品6学生| 国产亚洲一区二区精品| 亚洲人成网站在线观看播放| 欧美日韩一区二区视频在线观看视频在线| 久久久久人妻精品一区果冻| 九九爱精品视频在线观看| 国产有黄有色有爽视频| √禁漫天堂资源中文www| 777久久人妻少妇嫩草av网站| 国产成人午夜福利电影在线观看| 国产精品国产三级专区第一集| 精品卡一卡二卡四卡免费| 精品人妻在线不人妻| 中文欧美无线码| 免费日韩欧美在线观看| 亚洲在久久综合| 可以免费在线观看a视频的电影网站 | 亚洲精品美女久久av网站| 国产成人91sexporn| 韩国av在线不卡| 老司机影院毛片| 制服人妻中文乱码| 国产精品久久久av美女十八| 一区在线观看完整版| 亚洲欧美一区二区三区国产| 久久女婷五月综合色啪小说| 日韩中文字幕视频在线看片| 欧美人与性动交α欧美软件| 黄色视频不卡| 亚洲免费av在线视频| 亚洲欧美激情在线| 国产熟女欧美一区二区| 亚洲欧洲日产国产| 女的被弄到高潮叫床怎么办| 黄色视频不卡| 一区二区av电影网| 黄频高清免费视频| 色综合欧美亚洲国产小说| 18禁观看日本| 一级片免费观看大全| 99久久99久久久精品蜜桃| 国产一卡二卡三卡精品 | 国产精品一区二区在线不卡| 国产精品嫩草影院av在线观看| 国产在线免费精品| 中文精品一卡2卡3卡4更新| 亚洲国产成人一精品久久久| 亚洲精品自拍成人| 婷婷色综合www| 成人免费观看视频高清| 国产人伦9x9x在线观看| 一级爰片在线观看| 中文欧美无线码| 婷婷色综合www| 国产一区二区激情短视频 | 超色免费av| 一级毛片我不卡| 在线观看人妻少妇| 一级片免费观看大全| 一二三四中文在线观看免费高清| 尾随美女入室| 9色porny在线观看| 久久久久精品人妻al黑| 91老司机精品| 中文字幕人妻丝袜一区二区 | 欧美日韩综合久久久久久| 丁香六月欧美| 日韩熟女老妇一区二区性免费视频| 日韩成人av中文字幕在线观看| 尾随美女入室| av国产精品久久久久影院| 99re6热这里在线精品视频| 搡老乐熟女国产| 亚洲视频免费观看视频| 成人漫画全彩无遮挡| 久久天堂一区二区三区四区| av天堂久久9| 亚洲精华国产精华液的使用体验| 久久人人爽av亚洲精品天堂| 久久鲁丝午夜福利片| 天美传媒精品一区二区| 亚洲中文av在线| 久久韩国三级中文字幕| 欧美激情极品国产一区二区三区| 亚洲,一卡二卡三卡| 国产成人精品福利久久| 午夜91福利影院| 国产男女超爽视频在线观看| 亚洲自偷自拍图片 自拍| 黄频高清免费视频| 国产 精品1| a级毛片在线看网站| 国产精品免费视频内射| 婷婷色麻豆天堂久久| 一级a爱视频在线免费观看| 欧美精品一区二区大全| 欧美国产精品va在线观看不卡| 午夜福利免费观看在线| 精品一区二区三区av网在线观看 | 亚洲欧美色中文字幕在线| 亚洲av中文av极速乱| 色播在线永久视频| 另类亚洲欧美激情| 亚洲伊人久久精品综合| 久久久精品区二区三区| 国产成人精品无人区| av卡一久久| 一本一本久久a久久精品综合妖精| av又黄又爽大尺度在线免费看| 三上悠亚av全集在线观看| av网站免费在线观看视频| 热re99久久国产66热| 亚洲国产精品999| 国产一区亚洲一区在线观看| 18禁动态无遮挡网站| 男女边摸边吃奶| 99久国产av精品国产电影| 成人亚洲精品一区在线观看| 久久热在线av| 男女无遮挡免费网站观看| 日韩制服骚丝袜av| 欧美av亚洲av综合av国产av | 国产毛片在线视频| 国精品久久久久久国模美| 国产成人精品福利久久| 亚洲综合精品二区| 精品福利永久在线观看| 亚洲精品成人av观看孕妇| av在线观看视频网站免费| 国产精品久久久久久久久免| 久久久精品国产亚洲av高清涩受| 国产成人系列免费观看| 国产精品欧美亚洲77777| 亚洲成人国产一区在线观看 | 亚洲精品国产av蜜桃| 日本一区二区免费在线视频| av在线老鸭窝| 男女国产视频网站| 日本黄色日本黄色录像| 女人爽到高潮嗷嗷叫在线视频| 欧美xxⅹ黑人| 午夜激情av网站| 免费人妻精品一区二区三区视频| 午夜精品国产一区二区电影| 日日撸夜夜添| 午夜免费观看性视频| 亚洲精品国产色婷婷电影| 在线精品无人区一区二区三| 在线观看免费高清a一片| 最近中文字幕2019免费版| 老司机亚洲免费影院| 日韩av不卡免费在线播放| 激情视频va一区二区三区| 欧美日韩一级在线毛片| 欧美av亚洲av综合av国产av | 黄色一级大片看看| 又黄又粗又硬又大视频| 视频在线观看一区二区三区| 老司机靠b影院| 日本vs欧美在线观看视频| 欧美97在线视频| 成人影院久久| 在线天堂中文资源库| 亚洲国产最新在线播放| av网站免费在线观看视频| 国产精品一二三区在线看| 操出白浆在线播放| 亚洲第一av免费看| 国产精品一区二区在线不卡| 日韩熟女老妇一区二区性免费视频| 国产在视频线精品| 视频在线观看一区二区三区| 午夜精品国产一区二区电影| av又黄又爽大尺度在线免费看| 少妇被粗大的猛进出69影院| 在线观看三级黄色| 久久久久久久国产电影| 国产一区亚洲一区在线观看| a级片在线免费高清观看视频| 国产99久久九九免费精品| 亚洲av电影在线进入| 免费日韩欧美在线观看| 久久精品亚洲av国产电影网| 久久久久久人妻| 国产精品人妻久久久影院| 亚洲视频免费观看视频| 中文字幕高清在线视频| 欧美精品一区二区大全| 老汉色∧v一级毛片| 日日撸夜夜添| 久久久欧美国产精品| 亚洲精品av麻豆狂野| 狠狠婷婷综合久久久久久88av| 777久久人妻少妇嫩草av网站| 如日韩欧美国产精品一区二区三区| 亚洲精品一区蜜桃| 亚洲欧洲日产国产| 黄色一级大片看看| 亚洲精品日本国产第一区| 国产精品偷伦视频观看了| av线在线观看网站| 亚洲成国产人片在线观看| 亚洲视频免费观看视频| 午夜日韩欧美国产| 国产精品 国内视频| 欧美 日韩 精品 国产| 一本色道久久久久久精品综合| 热99久久久久精品小说推荐| 中文字幕高清在线视频| 一级片免费观看大全| 女人被躁到高潮嗷嗷叫费观| 精品午夜福利在线看| 亚洲欧美成人精品一区二区| 亚洲欧洲精品一区二区精品久久久 | 亚洲一码二码三码区别大吗| 亚洲成人一二三区av| 精品久久久久久电影网| 欧美变态另类bdsm刘玥| 精品少妇内射三级| 精品福利永久在线观看| 久久久久久人人人人人| 久久久国产一区二区| 久久久久精品人妻al黑| 久久精品亚洲熟妇少妇任你| 国产一区二区三区av在线| 久久久国产欧美日韩av| 国产视频首页在线观看| 国产高清不卡午夜福利| 亚洲精品日本国产第一区| 亚洲熟女精品中文字幕| 巨乳人妻的诱惑在线观看| 91老司机精品| 亚洲欧美精品自产自拍| 国产亚洲一区二区精品| 日韩大片免费观看网站| 亚洲成人国产一区在线观看 | 久久久国产欧美日韩av| 亚洲国产精品一区三区| 国产av精品麻豆| 少妇人妻精品综合一区二区| 极品人妻少妇av视频| 久久毛片免费看一区二区三区| 中文字幕高清在线视频| 亚洲精品视频女| 嫩草影视91久久| 欧美少妇被猛烈插入视频| 国产成人精品福利久久| 国产精品99久久99久久久不卡 | 一区福利在线观看| 卡戴珊不雅视频在线播放| av网站免费在线观看视频| 18禁观看日本| www.熟女人妻精品国产| 五月开心婷婷网| 日韩 亚洲 欧美在线| 久久这里只有精品19| 午夜免费男女啪啪视频观看| 亚洲国产最新在线播放| 国产黄频视频在线观看| 91成人精品电影| 久久人人爽av亚洲精品天堂| 成年美女黄网站色视频大全免费| 精品国产超薄肉色丝袜足j| 久久久久视频综合| 亚洲国产日韩一区二区| a 毛片基地| 久久这里只有精品19| 国产成人午夜福利电影在线观看| 一区二区三区乱码不卡18| 成人手机av| 午夜福利视频在线观看免费| 青青草视频在线视频观看| 国产免费福利视频在线观看| 中文字幕制服av| svipshipincom国产片| 久久久国产精品麻豆| 在线免费观看不下载黄p国产| 国产成人91sexporn| 人妻一区二区av| www日本在线高清视频| 在线观看免费午夜福利视频| av视频免费观看在线观看| 丰满少妇做爰视频| 国产一区二区三区av在线| 精品一区二区三卡| 中文字幕高清在线视频| 亚洲人成电影观看| 亚洲成人免费av在线播放| 观看美女的网站| 人成视频在线观看免费观看| 老熟女久久久| 黑人欧美特级aaaaaa片| 最近中文字幕2019免费版| 婷婷色av中文字幕| 色综合欧美亚洲国产小说| 亚洲av日韩精品久久久久久密 | 久久人人97超碰香蕉20202| www.熟女人妻精品国产| 你懂的网址亚洲精品在线观看| 国产无遮挡羞羞视频在线观看| 少妇的丰满在线观看| 久久鲁丝午夜福利片| 久久久久国产精品人妻一区二区| 国产97色在线日韩免费| 99re6热这里在线精品视频| 下体分泌物呈黄色| 99久久精品国产亚洲精品| 尾随美女入室| a级毛片黄视频| 菩萨蛮人人尽说江南好唐韦庄| 午夜福利,免费看| 五月天丁香电影| 亚洲av成人精品一二三区| 欧美黄色片欧美黄色片| 不卡av一区二区三区| 人人妻人人澡人人看| 尾随美女入室| 国产精品久久久久久精品电影小说| 日韩制服骚丝袜av| 亚洲在久久综合| 亚洲欧美精品综合一区二区三区| 色婷婷av一区二区三区视频| 十八禁网站网址无遮挡| 最近的中文字幕免费完整| 一本色道久久久久久精品综合| 欧美激情极品国产一区二区三区| 一级黄片播放器| av又黄又爽大尺度在线免费看| videosex国产| 亚洲精品中文字幕在线视频| 国产成人啪精品午夜网站| 免费观看人在逋|