Computationally Efficient Approach to Implementation of the Chinese Remainder Theorem Algorithm in Minimally Redundant Residue Number System

In this paper, we deal with the critical problem of performing non-modular operations in the Residue Number System (RNS). The Chinese Remainder Theorem (CRT) is widely used in many modern computer applications. Throughout the article, an efficient approach for implementing the CRT algorithm is described. The structure of the rank of an RNS number, a principal positional characteristic of the residue code, is investigated. It is shown that the rank of a number can be represented by a sum of an inexact rank and a two-valued correction to it. We propose a new variant of minimally redundant RNS, which provides low computational complexity for the rank calculation, and its effectiveness analyzed concerning conventional non-redundant RNS. Owing to the extension of the residue code, by adding the excess residue modulo 2, the complexity of the rank calculation goes down from Ok2\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$O\left (k^{2}\right )$\end{document} to Ok\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$O\left (k\right )$\end{document} with respect to required modular addition operations and lookup tables, where k equals the number of non-redundant RNS moduli.

of high-performance computing have one trait in common, that essence consists in the application of certain parallel forms of data representation and processing.
One of the most promising avenues to significantly improve the performance and reliability of computing facilities is the implementation of non-conventional methods of number representation, as well as corresponding variants of computer arithmetic. Within the framework of this approach, the non-positional number systems with a parallel structure, in particular, the RNS, occupy a place of special importance [3, 5, 18-20, 27, 28].
Since its inception in the mid-1950s till the present day, the RNS has attracted the continuous attention of researchers in computer technology, communications, numerical methods, cryptography, and other fields. An RNS, whose ideological roots date back to the standard topics of number theory, has natural internal parallelism. The main advantage of an RNS is a unique ability to decompose the large word-length numbers up into the set of independent short word-length residues, which can be processed in parallel. The carry-free property and speed-up provided by the parallelism of RNS allows carrying out the sequences of modular operations quickly and easily.
Thus, it becomes possible to parallelize the computations at the level of arithmetic operations, which is fundamentally crucial for modern high-performance computing systems. Unlike traditional weighted number systems (WNS), an RNS provides an entirely different approach for increasing the speed and reliability of digital information processing, as well as obtaining new and more advanced computational structures. In this regard, RNS arithmetic is the cornerstone of many modern algorithms of parallel computer algebra, as well as it is in demand in many fundamental applications of science and technology.
Due to the inherent code parallelism, an RNS possesses a few essential advantages over the conventional number system in the field of high-speed computing. A broad class of fast algorithms can be implemented based on modular arithmetic in areas such as digital signal and image processing, distributed information and communication systems, computer networks, information security systems, cloud computing, etc. [19,20,27,30]. Moreover, these RNS algorithms can effectively be applied even to processor platforms functioning according to the conventional informationprocessing approach based on the weighted binary number system. The parallel and carry-free RNS arithmetic corresponds with high-performance modern embedded systems requirements [19].
However, the numerical solution of a wide range of science and technology problems is often required to perform complicated and heterogeneous processes of computation. In RNS, this results in the need to carry out a set of so-called nonmodular operations, such as magnitude comparison, sign determination, overflow detection, general division, scaling, residue-to-binary conversion, etc. The problem of effective implementation of non-modular operations is constantly receiving considerable attention after the formalization of the processing principles in RNS arithmetic [3,5,[18][19][20].
To perform in RNS the non-modular operations, it is not enough to take into account only the individual residues of the modular code. Furthermore, it is necessary to estimate the value of the total number, which, in general, is hampered by the non-positional nature of RNS.
Unfortunately, up until now, the underlying unresolved problem for creating a high-speed RNS arithmetic consists of the computational complexity of non-modular operations. Precisely because of the lack of fast algorithms of non-modular operations, the use of RNS is useful in cases only when the modular addition and multiplication operations make up the bulk of required amounts of computation, and the number of non-modular operations is relatively small. This circumstance restricts the scope of practical applications of RNS to a narrow class of specific tasks, for example, digital filtering, fast Fourier transform, cryptographic transformations, etc.
Therefore, the design of high-performance algorithms for non-modular operations is an urgent problem at the current stage of RNS arithmetic development and its application in computer sciences. To solve this problem is necessary to design efficient approaches and methods for the fast weighted representation of RNS numbers by their residue codes. That will make it possible for the extensive use of RNS arithmetic for high-speed computing in many priority areas of science and technology.

The Basic Principles of RNS Arithmetic
The abstract algebra and number theory are formed the theoretical basis of residue arithmetic [6,11].
As is known, the main fundamental advantage of RNS arithmetic as compared with the arithmetic of WNS consists of the performance of addition, subtraction and multiplication operations in parallel at the level of small word-length residues. In other words, these operations decompose into independent components with respect to basic moduli m 1 , m 2 , . . . , m k . The modular operation • ∈ {+, −, ×} on the integers A = (α 1 , α 2 , . . . , α k ) and B = (β 1 , β 2 , . . . , β k ) (α i = |A| m i , β i = |B| m i , i = 1, 2, . . . , k) is carried out independently for each of the RNS moduli, i.e., by the rule The efficiency of RNS arithmetic is primarily determined by the complexity and performance of non-modular procedures, which are used as essential elementary procedures for implementing more complex computational algorithms. The fundamental principles of designing high-speed variants of RNS arithmetic consist in carrying out the following crucial conditions imposed on non-modular operations: parallelism, high modularity, and simplicity of pipelining at the level of small word-length residue operations.
The root problem in RNS arithmetic is that the integer value of the number X = (χ 1 , χ 2 , . . . , χ k ) depends on all its residues together. In the RNS, its evaluation underlies all non-modular operations. As is known, for performing non-modular operations, the so-called positional characteristics of the residue code are used [3,5,[18][19][20]. In general, all these characteristics depend on part or all residues of the number X. They can be defined as a specific mathematical function that, by some method or other, allows estimation of the positional value of X. It is quite clear that the computational complexity of the applied positional characteristics eventually determines the efficiency of RNS arithmetic constructed on their basis.
The traditional implementations of non-modular operations in RNS arithmetic are based on the reverse conversion from residues back to an integer. There are two canonical techniques: the straightforward conversion method based on the CRT algorithm, and the conversion of the residue code to a weighted representation in Mixed-Radix System (MRS) [2,12,[18][19][20]31]. In general, all other conversion methods are variants of these two main methods.
At the same time, in recent years, the CRT has been intensively studied with its applications in high-performance computing. That led to the development of a sufficiently wide class of specific methods based on the calculation of positional characteristics of RNS numbers, which support effective implementations of non-modular operations. Some of the generally accepted characteristics are the core function, rank function, interval index, parity, diagonal function, and quotient function [1, 3-5, 7-10, 15-17, 19, 21, 22, 24].
Nevertheless, in conventional non-redundant RNS, the calculation of all these characteristics is complicated and quite time-consuming. That is why the nonmodular operations limit the applications of RNS arithmetic and restrict its general usage.

The Rank of an RNS Number
As is known, in the case of pairwise relatively prime moduli m 1 , m 2 , . . . , m k the system of simultaneous linear congruences has a unique solution that is the residue class modulo M k specified by the congruence where . . , k); Y −1 m denotes the multiplicative inverse of the integer Y modulo m.
In the RNS with the set m 1 , m 2 , . . . , m k of k pairwise relatively prime moduli it is possible to represent at most M k integers. Therefore, the set Z M k usually used as a dynamic range of the RNS.
Thus, modular coding is defined as a mapping ϕ RNS : Z M k → Z m 1 × Z m 2 × · · · × Z m k that assigns the residue code (χ 1 , χ 2 , . . . , χ k ) to each X ∈ Z M k . At the same time, regarding the decoding mapping ϕ −1 RNS : Z m 1 × Z m 2 ×· · ·× Z m k → Z M k based on the relationship (1), the following rule is valid: where the integer numbers B 1 , B 2 , . . . , B k are the basic primitive constants in the given RNS; B i = M i,k μ i,k , i = 1, 2, . . . , k [3]. As can be seen, the reverse conversion from RNS to WNS by using the straightforward application of (2) requires O (k) of large word-lengths addition operations modulo M k , which is the product of all moduli m 1 , m 2 , . . . , m k . If we assume that the processing of such long L-bit numbers (L = log 2 M k ) is comparable in time with k operations on the small residues, then the complexity of this method is equal to O k 2 Because of this fact, a given approach is practically unacceptable for high-speed computing, especially in cryptographic applications.
Here and further x denotes the smallest integer greater than or equal to x.
To circumvent the problem of slow addition operations modulo M k , the equation (2) can be written as an exact integer equality where r (X) is a non-negative integer called the true rank of the number X [3,5]. From (3) it follows that the upper bound of r (X) depends on weighting factors μ 1,k , μ 2,k , . . . , μ k,k and it is a rather large value for moduli-sets {m 1 , m 2 , . . . , m k } suitable for practical application.
By using Euclid's Division Lemma, we have where χ i,k is a normalized residue modulo m i : x denotes the largest integer less than or equal to x. Substituting (4) into (2) and taking into consideration (5), we have Similarly to (3), according to (6), the number X can also be written as where the integer ρ k (X) is the normalized rank (or, briefly, rank) of the number X. Equation (7) is called the rank form (or CRT-form) of the number X. In essence, the rank ρ k (X) is the CRT reconstruction coefficient that is indicated how many times the RNS dynamic range exceeded when converting the residue code (χ 1 , χ 2 , . . . , χ k ) of the number X to its integer value according to (7).
Let us now estimate the upper bound of the rank ρ k (X). Dividing (7) by M k with taking the integer part of both sides of the obtained equality and taking into account the fact that X/M k = 0, we have Hence, owing to χ i,k ∈ Z m i (i = 1, 2, . . . , k) we get the following estimation Let us consider the number Therefore, because 0 < Y < M k , we have Since ρ k (Y ) ≥ 0, regardless of the selected moduli-set {m 1 , m 2 , . . . , m k }, then, according to (9), the following estimation is valid The summands M i,k χ i,k in the equation (6) have smaller values than M i,k μ i,k χ i in (2) (i = 1, 2, . . . , k), so ρ k (X) is significantly less than r (X). Therefore, the CRTform (7) in comparison with (3) is a more suitable basis for performing the nonmodular operations in RNS arithmetic.
The structure of the rank characteristic and the methods of its calculation in the non-redundant RNS were studied in detail in [3,5]. At the same time, the main drawback of known approaches is the difficulty in the calculation of the rank and straightforward implementation of the CRT. Consequently, these algorithms are not suitable for designing efficient variants of RNS arithmetic, especially for large word-length numbers.

A Novel Method for Calculating the Rank in Non-redundant RNS
In the RNS, the rank ρ k (X) is a positional characteristic of the residue code of primary importance since on its basis all non-modular operations can be implemented. Therefore, the development of effective methods and algorithms for calculating the rank ρ k (X) occupies an essential place in the practice of applying RNS to construct high-performance modular computational structures.
Knowledge of the rank ρ k (X) allows estimation of the integer value of the RNSnumber X. It is quite clear that the level of complexity of rank calculation ultimately determines the efficiency of modular arithmetic constructed on its basis.
From the relationship for the CRT-form (7) of the number X it follows that where We will call this number the CRT-number of X. Then, by using the following notations: (11)) as The number m k χ i,k in equation (12), according to Euclid's Division Lemma, can be represented as taking into account that Thus, Finally, we have where Remark 1 Taking into account (13), we have As far as R i,k (χ i ) ∈ Z m k , we can then obtain a residue modulo m k on both sides of this equality. Hence, it then follows that for i = 1, 2, . . . , k − 1. At the same time, according to (17), Similarly, as described above for the number X k (see (14)- (16)), the numbers X i (i = k − 1, k − 2, . . . , 1) can be written as . . .
Finally, the CRT-number X k can be represented as where . . , k using Euclid's Division Lemma can be written as At the same time, where It is evident that Q l (X) is equal to the number of overflows that occurred when calculating the sum R l (X) of l residues R 1,l (χ 1 ) , R 2,l (χ 2 ) , . . . , R l,l (χ l ) modulo m l (l = 2, 3, . . . , k).
As follows from equation (27), the number X (R) k is represented by the k-tuple As for the number X (Q) k−1 (see (28)), it can be written as 3, 4, . . . , k).
At the same time, as follows from (23) in the case when the subscript l is substituted by l − 1, 3, 4, . . . , k).
k−1 can be considered as a mixed-radix number x ∈ Z m l . Therefore, the following condition must be met: Z l−1 ⊆ Z m l for all l. This leads to inequality 1, 2, . . . , k) .
If the moduli-set {m 1 , m 2 , . . . , m k } is chosen according to this condition, which as a rule always holds for the RNS used in practical applications, then X According to Euclid's Division Lemma, Therefore, from (26) we have From equation (30), according to (10), it follows that where Taking into account (29), we have that Δ k (X) ≤ 1, that is Δ k (X) ∈ Z 2 = {0, 1}. We will call the integers ρ k (X) and Δ k (X) the inexact rank and the rank correction, respectively.
The reasons stated above allow us to formulate the following theorem. . Then the rank ρ k (X) of the integer X = (χ 1 , χ 2 , . . . , χ k ) X ∈ Z M k can be computed as follows: and the correction Δ k (X) is a two-valued number that only takes on the values 0 or 1.
As it follows from Theorem 1, the inexact rank ρ k (X) ∈ Z k is equal to the number of overflows, which occur when computing the sum of k residues R 1,k (χ 1 ), R 2,k (χ 2 ), . . . , R k,k (χ k ) with respect to the kth modulus m k . Thus, the inexact rank ρ k (X) can be computed quickly and easily.
A different situation takes place in the case of the rank correction Δ k (X) as far as the calculation of its value has a more massive computational complexity than the estimation of the inexact rank ρ k (X).
Therefore, according to the equations (26)-(28), we obtain the inexact rank as well as the correction Δ 4 (X) = 1 (see (35)). Finally, we have To verify the obtained result, taking into account that the normalized residues χ l,4 (l = 1, 2, 3, 4) (see (5)) in the CRT-form (7) take on the following values we find Equations (21)- (28) show that the calculation of the rank ρ k (X) in the conventional non-redundant RNS is reduced to a summation of the sets of small residues with respect to the moduli m 1 , m 2 , . . . , m k . These calculations can be implemented within the framework of tabular computing structures. Also, along with the calculation of the rank ρ k (X), we obtain the positional representation of the number X in the MRS. Thus, the computational complexity of calculating the correction Δ k (X) (and, hence, the rank ρ k (X)) coincides with the computational complexity of converting the residue code into the MRS representation.
From the above, it follows that the main computational cost is the calculation of the rank correction Δ k (X). As follows from the equations (21)-(34), during the calculation of Δ k (X) we can perform the independent and concurrent summations of the sets of residues R 1,l (χ 1 ), R 2,l (χ 2 ), . . . , R l,l (χ l ) with respect to the corresponding modulus m l (l = 2, 3, . . . , k). Now let us evaluate the computational costs of the rank calculation. The number of required single one-input lookup tables to store the set of residues R 1,l (χ 1 ), R 2,l (χ 2 ), . . . , R l,l (χ l ) (see (24) and (25)) is equal to n LU T (l) = l, while the bit length of recorded constants is log 2 m l (l = 2, 3, . . . , k). It should be noted that n LU T (1) = 0 since in the case of the modulus m 1 we have S 1 (X) = χ 1 . Then, the total number of required lookup tables The summation of the set of residues R 1,l (χ 1 ), R 2,l (χ 2 ), . . . , R l,l (χ l ) modulo m l along with the counting of the number of occurred overflows requires n MO (l) = l−1 modular operations (l = 2, 3, . . . , k). Taking into account that x Therefore, the process of calculating the rank ρ k (X) requires O(k 2 ) modular operations so that it can become computationally expensive for large values of k. Thus, for effective implementation of non-modular operations based on the CRT, one needs to speed up and optimize the calculation of the rank correction Δ k (X).

The Relationship Between the Rank Correction and the Parity of an RNS Number
The fact that Δ k (X) ∈ {0, 1} (see Theorem 1) allows us to consider it as the residue modulo 2.
According to the CRT-form (7), taking into account (32), we have where Since the RNS moduli m 1 , m 2 , . . . , m k are relatively prime odd integers, then |m i | 2 = 1 (i = 1, 2, . . . , k), and correspondingly, |M k | 2 = 1. Therefore, Thus, for the rank correction Δ k (X) the following equality is true Hence, the calculation of the rank correction Δ k (X) ∈ {0, 1} can be reduced to a parity comparison of the numbers X and X, that is: Taking into account the fact that |M i,k | 2 = 1 (i = 1, 2, . . . , k), the calculation of the parity of a number X according to (39) is reduced to performing trivial operations modulo 2, such as where and ρ are the least-significant bits of the binary representation of the normalized residue χ i,k (i = 1, 2, . . . , k) and the inexact rank ρ k (X), respectively. As follows from Theorem 1, the inexact rank ρ k (X), and hence, its parity ρ (0) k is calculated quickly during the summation of corresponding residues modulo m k . Thus, the calculation of the parity of the number X according to (43) does not cause difficulties.
Regarding the parity check of the number X, this operation in RNS arithmetic refers to complicated non-modular operations requiring high computational costs. In conventional non-redundant RNS, the computational complexity of this operation is comparable to the computational complexity of RNS to MRS conversion.
Therefore, for fast calculation of the correction Δ k (X) according to (42), the complexity of computing parity |X| 2 can be overcome by adding the redundant residue modulo 2 into conventional non-redundant residue code (χ 1 , χ 2 , . . . , χ k ) of the number X. Thus, the case in question is the use of redundant RNS, in which only one extra bit is added to the primary residue code.

Fast Calculation of the Rank in Minimally Redundant RNS
As is known, the use of code redundancy often allows improving the arithmetic and other properties of numerical systems, including an RNS. In the first place, the redundant RNS are of interest concerning error checking and failure recovery properties [18][19][20]. On the other hand, the use of RNS representations with redundant residues is an established method that allows gaining speed and cost benefits when performing various non-modular operations [13,23,25,29].
The proposed redundant residue coding assumes the extension of the modular code (χ 1 , χ 2 , . . . , χ k ) of the number X in the conventional non-redundant RNS with the k-moduli set {m 1 , m 2 , . . . , m k } and the dynamic range Z M k by the redundant residue χ 0 = |X| m 0 with respect to the extra modulus m 0 = 2, i.e., by adding the parity of the number X to its residue representation. Thus, in the redundant RNS the number X ∈ Z M k is represented by its redundant residue code (χ 0 , χ 1 , . . . , χ k ).
This modular code is, of course, minimally redundant since the total code length increases by only one bit. The redundancy is estimated by the following index From (46), it follows that the code redundancy decreases as the number k of RNS moduli, and, consequently, the dynamic range Z M k increases.
In this case, the main advantage of minimally redundant RNS in comparison with non-redundant RNS consists of a significantly simplified calculation of the rank correction Δ k (X) and, accordingly, the rank ρ k (X). That leads in turn to optimization and speed-up of non-modular operations in terms of the CRT. The following statement reveals the essence of such an approach. Theorem 2 (About the rank of a number in minimally redundant RNS) Let a minimally redundant RNS be defined by an ordered set of k pairwise relatively prime odd moduli m 1 , m 2 , . . . , m k and excess modulus m 0 , (m 0 = 2; m l ≥ l − 1, l = 1, 2, . . . , k; k ≥ 2). Then the rank ρ k (X) of the integer X = (χ 0 , χ 1 , . . . , χ k ) from the dynamic range Z M k can be computed as follows: where ρ k (X) is calculated according to Theorem 1, while i,k and ρ (0) k are calculated according to (44) and (45), respectively.
The proof of this theorem follows directly from equations (38)-(45), taking into account the fact that |a − b| 2 = |a + b| 2 (a, b ∈ Z).
Following Theorem 2, the transition from non-redundant to minimally redundant modular coding allows replacing in (32) the rank correction Δ k (X) requiring timeconsuming calculations by a trivially calculated two-value attribute δ k (X) ∈ {0, 1}.
At the same time, as can be easily seen, the calculations according to (47) are reduced to a set of quickly implemented modular operations modulo m k (the calculation of the inexact rank ρ k (X)) and modulo m 0 (the calculation of the correction δ k (X)). Also, as follows from the equation (48), the calculation of ρ k (X) can be performed in parallel with the calculation of the value , whose correction by using ρ (0) k in the final stage of the calculation gives us the resulting value of δ k (X).
Thus, in the minimally redundant RNS the calculation of the rank ρ k (X) is carried out exceptionally merely within the scope of the modular computational process, which can be easily implemented, for example, by using high-performance lookuptable methods in T k = log 2 k modular clock cycles.
Because of the use of minimum-redundancy residue code, the complexity of calculating the rank ρ k (X) is significantly reduced in comparison with non-redundant analogs. First of all, this is due to the need to perform the modular addition operations only with respect to the one kth modulus m k instead of the k-moduli set {m 1 , m 2 , . . . , m k } in the case of conventional non-redundant RNS. Therefore, the computational complexity decreases from O k 2 to O (k) modular operations.
Accordingly, the number of required lookup tables to store the sets of residues is also reduced from O k 2 to O (k).
The corresponding costs for calculating the rank ρ k (X) in minimally redundant RNS are N (R) LU T = k (49) lookup tables and N (R) MO = k (50) modular addition operations, including the correction of the inexact rank ρ k (X) by two-valued correction δ k (X).
Here it is assumed that to the ith lookup table one records a pair of residues R i,k (χ i ) , χ (0) i,k , which calculated according to equations (18), (19), and (44), 1, 2, . . . , k). Thus, the bit-width of the used lookup tables is l = log 2 m k + 1.
As can be seen, the use of minimally redundant RNS results in a significant reduction of computational costs both in terms of required modular addition operations and lookup tables relative to the non-redundant RNS. The reduction factors of the computational complexity of calculating the rank ρ k (X) in minimally redundant RNS compared to conventional non-redundant RNS are represented by the following fractions for the number of required lookup tables (see (36) and (49)), and for the number of modular addition operations (see (37) and (50)).
Equations (51) and (52)  Thus, the proposed approach for the rank calculation in minimally redundant RNS with the length k of primary residue code from 5 to 30 digits compared to conventional non-redundant RNS allows us to reduce the computational costs by 2.8 -15.47 times in terms of lookup table memory and by 4.0 -17.33 times in terms of required modular addition operations.
Below we give the numerical examples, which demonstrate the calculation of the integer value of the number X = (χ 1 , χ 2 , . . . , χ k ) based on the CRT-form (7) in the proposed minimally redundant RNS.
As it follows from Example 2 and Example 3, the use of minimally redundant RNS allows us to significantly optimize the calculation of the rank ρ k (X), and correspondingly, the execution of non-modular procedures based on the use of the CRT. First of all, it caused by the utmost simplicity of forming the two-value characteristic δ k (X), as well as the modular structure of the basic equation for calculating the inexact rank ρ k (X) (see Theorem 1). This circumstance allows us to radically simplify the calculation of the rank ρ k (X) and, consequently, to construct faster and optimal in cost variants of RNS arithmetic. Therefore, the proposed version of minimally redundant RNS takes priority compared to non-redundant RNS concerning the optimization of the implementation of non-modular procedures on the base of the CRT algorithm.

Conclusions
In this paper, we have shown that the use of minimum-redundancy residue code can allow the construction of efficient RNS implementations based on the CRT due to optimizing the calculation of the rank ρ k (X), a principal positional characteristic in RNS arithmetic.
We investigated the structure of the rank ρ k (X) and proposed a novel method for calculating the correction Δ k (X) to the inexact rank ρ k (X). This method is based on the fact that the correction Δ k (X) is a two-value number (Δ k (X) ∈ {0, 1}) in the case when the RNS moduli m 1 , m 2 , . . . , m k are chosen according to the rule of Theorem 1. That allows us to reduce the computational complexity of calculating the rank ρ k (X) from O k 2 to O (k) owing to introducing the minimum redundancy of the residue code by adding the redundant residue modulo m 0 = 2, which, in essence, is the parity of the RNS number X.
The reduction factors of the computational complexity of the rank calculation in minimally redundant RNS compared to non-redundant RNS increase with the number k of RNS moduli asymptotically approaching the threshold k/2. For example, the use of minimally redundant RNS with the length k of primary residue code from 5 to 30 digits enables us to reduce the computational costs by 2.8-15.47 times in terms of lookup table memory and by 4.0 -17.33 times in terms of required modular addition operations.
Therefore, the proposed minimally redundant RNS takes priority in the field of rapid calculations, especially in the case of the large RNS dynamic range, for example, for implementing various complicated algorithms of digital signal processing and cryptography. Thus, the examined approach to implementation of the CRT algorithm in minimally redundant RNS coincides with the vector of the development of modern methods and algorithms of high-performance and high-accuracy computing.
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4. 0/.