Arithmetic Operations in the Polynomial Modular Number System

Total Page:16

File Type:pdf, Size:1020Kb

Arithmetic Operations in the Polynomial Modular Number System Arithmetic Operations in the Polynomial Modular Number System Jean-Claude Bajard1, Laurent Imbert1,2, and Thomas Plantard1 1 CNRS LIRMM UMR 5506 161 rue Ada, 34392 Montpellier cedex 5, France 2 ATIPS, CISaC, University of Calgary 2500 University drive NW, Calgary, AB, T2N 1N4, Canada Abstract rett [3]. (For more details, see [10], chapter 14.) These general algorithms do not require the divisor, also called We propose a new number representation and arithmetic modulus, to be of special form. When this is the case, how- for the elements of the ring of integers modulo p. The so- ever, modular multiplication and reduction can be acceler- called Polynomial Modular Number System (PMNS) allows ated considerably. Mersenne numbers, of the form 2m − 1, for fast polynomial arithmetic and easy parallelization. The are the most common examples. Pseudo-Mersenne num- most important contribution of this paper is the fundamen- bers [5], generalized Mersenne numbers [14], and their ex- tal theorem of a Modular Number System, which provides tension [4] are other examples of numbers allowing fast a bound for the coefficients of the polynomials used to rep- modular arithmetic. resent the set Zp. However, we also propose a complete set of algorithms to perform the arithmetic operations over a PMNS, which make this system of practical interest for In a recent paper [2], we have defined the so-called Mod- people concerned about efficient implementation of modu- ular Number Systems (MNS) and Adapted Modular Num- lar arithmetic. ber Systems (AMNS) to speed up the arithmetic operations for moduli which do not belong to any of the previous Keywords: Number system, Modular arithmetic, Lat- classes. In this paper, we propose a new representation, and tice theory, Table-based methods the corresponding arithmetic operations for the elements of Zp, the ring of integers modulo p. (The integer p does not 1. Introduction have to be a prime, although it is very likely to be prime for practical cryptographic applications.) We define the Poly- Efficient implementation of modular arithmetic is an nomial Modular Number System (PMNS), over which inte- important prerequisite in today’s public-key cryptogra- gers are represented as polynomials. Compared to the clas- phy [10]. The celebrated RSA algorithm [13], and the cryp- sical (binary) representation, polynomial arithmetic offers tosystems based on the discrete logarithm problem, such as the advantages of no carry propagation and easiest paral- Diffie-Hellman key exchange [6], need fast arithmetic mod- lelization. The main contribution of this paper is the fun- ulo integers of size 1024 to roughly 15000 bits. For the damental theorem of a MNS, which provides a bound for same level of security, elliptic curves defined over prime the coefficients of the polynomials used to represent the el- fields, require operations modulo prime numbers whose size ements of Zp. This theorem is presented in Section 3. It range approximately from 160 to 500 bits [8]. uses results from lattice reduction theory [9, 11]. The sec- Classic implementations use multiprecision arithmetic, ond half of the paper focuses on the arithmetic operations; where long integers are represented in a predefined high- in Section 4, we propose algorithms for the basic operations radix (usually a power of two depending on the word size – addition, multiplication, conversions – which all require a of the targeted architecture). Arithmetic operations, namely final step, called coefficient reduction, that we present in modular reduction and multiplication, are performed using details in Section 5. A numerical example is provided in efficient algorithms, such as as Montgomery [12], or Bar- Section 6. 2. Modular number systems 1 2 3 4 1 −γ2 1 − γ2 −1 + γ + γ2 In classic positional number systems, every non-negative 5 6 7 8 integer, x, is uniquely represented in radix r as γ + γ2 −1 + γ γ 1 + γ 9 10 11 12 2 n−1 −1 − γ −γ 1 − γ −γ − γ i x = xi r , where xi ∈ {0,..., r − 1}. (1) 13 14 15 16 Xi=0 1 − γ − γ2 −1 + γ2 γ2 1 + γ2 If x − 6= 0, x is said to be a n-digit radix-r number. n 1 Z∗ Table 1. The elements of 17 in the MNS de• In most public-key cryptographic applications, compu- fined as B = MNS(17, 3, 7, 2) tations have to be done over finite rings or fields. In prime fields GF (p), we deal with representatives of equivalence classes modulo p (for simplicity we generally use the set of In example 1, we remark that the number of polynomials of positive integers {0, 1,..., p−1}), and the arithmetic oper- degree 2, with coefficients in {−1, 0, 1} is equal to 33 = 27. ations – addition and multiplication – are performed mod- Since we only have to represent 17 values, the system is ulo p. In order to represent the set of integers modulo p, we clearly redundant. For example, we have 6 = 1 + γ + γ2 = define a Modular number system, by extending the Defini- −1+γ, or 9 = 1−γ+γ2 = −1−γ. The level of redundancy tion (1) of positional number systems. depends on the parameters of the MNS. Note yet that, in this paper, we shall take advantage of the redundancy only by considering different representations of zero. Definition 1 (MNS) A Modular Number System, B, is a In a MNS, every integer, 0 ≤ x < p, is thus represented quadruple (p, n, γ, ρ), such that every positive integers, as a polynomial in γ. But; what do we know about the 0 ≤ x < p, satisfy coefficients of those polynomials? Are they bounded by some value which depends on the parameters of the MNS? In other words, given the integers and , are we able we n−1 p n x = x γi mod p, with γ > 1 and |x | < ρ. (2) determine ρ and construct a MNS? We answer these ques- i i tions in the next section. We prove the fundamental theorem Xi=0 of a MNS, using results from lattice reduction theory, and we introduce the concept of Polynomial Modular Number The vector (x0,..., xn−1)B denotes a representation of x System (PMNS). in B = MNS(p, n, γ, ρ). 3. Polynomial Modular Number Systems In the rest of the paper, we shall omit the subscript (.)B when it is clear from the context. We shall represent the in- In this section, we consider special cases of modular teger, a, either as the vector, a, or the polynomial, A, with- number systems, where γ is a root (modulo p) of a given polynomial . In the following fundamental theorem of a out distinction. We shall use ai to represent both for the ith E element of a, and the ith coefficient of A. (Note that we use MNS, we prove that if ρ is greater than a certain bound, then it is always possible to define a valid MNS. Roughly a left-to-right notation; i.e., a0, the left-most coefficient of A, is the constant term.) Hence, depending on the context, speaking, Theorem 1 says that there exitst a MNS, B = we shall use kak = kAk, to refer to the norm of the vector, MNS(p, n, γ, ρ), where one can represent every integer or the corresponding polynomial. We shall also use the no- less than p, as a polynomial of degree at most n − 1, with coefficients all less than 1/n, where is a small con- tation ai to refer to the ith vector within a set of vectors or C × p C a matrix. stant. Theorem 1 (Fundamental theorem of a MNS) Let us de- fine p, n > 1, and a polynomial E(X) = Xn + αX + β, Example 1 Let us consider a MNS defined with p = with α, β ∈ Z, such that E(γ) ≡ 0 (mod p), and E irre- 17, n = 3, γ = 7, ρ = 2. Over this system, we represent ducible in Z[X]. If the elements of Z17 as polynomials in γ, of degree at most 2, with coefficients in {−1, 0, 1} (cf. table 1). ρ ≥ (|α| + |β|) p1/n, (3) then, the parameters (p, n, γ, ρ) define a modular number 4. PMNS arithmetic system, B = MNS(p, n, γ, ρ). In this section, we propose algorithms for the classical Sketch of proof: (A complete, detailed, proof can be found operations in GF (p), namely addition and multiplication in [1].) modulo p, when the operands are represented in a PMNS. The proof is based on the theory of lattice reduction [9, We give solutions for the conversion from a classical num- lattice Rn 11]. A L is a discrete sub-group of , or equiv- ber system (binary) to PMNS, and back. For simplicity, we alently the set of all the integral combinations of d ≤ n assume that ρ = 2k and all the operands are represented in linearly independent vectors over R: B = P MNS(p, n, γ, 2k, E), with E = Xn + αX + β. At this point, it is very important to understand that L = L(A) = Z a1 + ··· + Z ad the value(s) k we must consider, depend on the way we = {λ a + ··· + λ a ; λ ∈ Z}. 1 1 n d i implement the coefficient reduction(s) presented in Sec- The matrix A = (a1,..., ad) is called a basis of L. It is tion 5. From Theorem 1, we know that every integer known that, every vector over R can be reduced, modulo the a < p can be represented in a PMNS with coefficients 1/n lattice, within the fundamental domain of L, given by |ai| ≤ (|α| + |β|) p , i.e., of size at most d 1 n log2 (|α| + |β|) + log2(p) bits.
Recommended publications
  • Modular Arithmetic
    CS 70 Discrete Mathematics and Probability Theory Fall 2009 Satish Rao, David Tse Note 5 Modular Arithmetic One way to think of modular arithmetic is that it limits numbers to a predefined range f0;1;:::;N ¡ 1g, and wraps around whenever you try to leave this range — like the hand of a clock (where N = 12) or the days of the week (where N = 7). Example: Calculating the day of the week. Suppose that you have mapped the sequence of days of the week (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday) to the sequence of numbers (0;1;2;3;4;5;6) so that Sunday is 0, Monday is 1, etc. Suppose that today is Thursday (=4), and you want to calculate what day of the week will be 10 days from now. Intuitively, the answer is the remainder of 4 + 10 = 14 when divided by 7, that is, 0 —Sunday. In fact, it makes little sense to add a number like 10 in this context, you should probably find its remainder modulo 7, namely 3, and then add this to 4, to find 7, which is 0. What if we want to continue this in 10 day jumps? After 5 such jumps, we would have day 4 + 3 ¢ 5 = 19; which gives 5 modulo 7 (Friday). This example shows that in certain circumstances it makes sense to do arithmetic within the confines of a particular number (7 in this example), that is, to do arithmetic by always finding the remainder of each number modulo 7, say, and repeating this for the results, and so on.
    [Show full text]
  • 8.6 Modular Arithmetic
    “mcs” — 2015/5/18 — 1:43 — page 263 — #271 8.6 Modular Arithmetic On the first page of his masterpiece on number theory, Disquisitiones Arithmeticae, Gauss introduced the notion of “congruence.” Now, Gauss is another guy who managed to cough up a half-decent idea every now and then, so let’s take a look at this one. Gauss said that a is congruent to b modulo n iff n .a b/. This is j written a b.mod n/: ⌘ For example: 29 15 .mod 7/ because 7 .29 15/: ⌘ j It’s not useful to allow a modulus n 1, and so we will assume from now on that moduli are greater than 1. There is a close connection between congruences and remainders: Lemma 8.6.1 (Remainder). a b.mod n/ iff rem.a; n/ rem.b; n/: ⌘ D Proof. By the Division Theorem 8.1.4, there exist unique pairs of integers q1;r1 and q2;r2 such that: a q1n r1 D C b q2n r2; D C “mcs” — 2015/5/18 — 1:43 — page 264 — #272 264 Chapter 8 Number Theory where r1;r2 Œ0::n/. Subtracting the second equation from the first gives: 2 a b .q1 q2/n .r1 r2/; D C where r1 r2 is in the interval . n; n/. Now a b.mod n/ if and only if n ⌘ divides the left side of this equation. This is true if and only if n divides the right side, which holds if and only if r1 r2 is a multiple of n.
    [Show full text]
  • 1. Modular Arithmetic
    Modular arithmetic Divisibility Given p ositive numb ers a b if a we can write b aq r 1 for appropriate integers q r such that r a The numb er r is the remainder We say that a divides b or ajb if r and so b aq ie b factors as a times q Primes A numb er is prime if it cant b e factored as a pro duct of two numb ers greater or equal to If a numb er factors ie it is not prime then we say that it is comp osite Exercise Find all prime numb ers smaller than Here are several imp ortant questions How do we determine whether a numb er is prime How do we factor a numb er into primes How can we nd big prime numb ers How many prime numb ers are there Exercise Factor Exercise Show that every numb er is either prime or divisible by a prime numb er Theorem There are innitely many prime numbers Proof Supp ose that there are only nitely many prime numb ers P P 1 n then N P P P is not divisible by any prime hence it do es 1 2 n factor and hence it is a new prime not ˜ Divisibility tricks Recall that a numb er is even if its last digit is divisible by it is divisible by if the sum of its digits is divisible by it is divisible by if its last digit is divisible by etc Why is this Can we nd other divisibility tricks eg for One p ossible explanation Let abc b e a digit numb er so that abc a b c Then abc a b c and this is an integer only if c is an integer abc a b c and this is an integer only if c is an integer abc a b a b c and this is an integer only if a b c is an integer
    [Show full text]
  • Chinese Remainder Theorem
    THE CHINESE REMAINDER THEOREM KEITH CONRAD We should thank the Chinese for their wonderful remainder theorem. Glenn Stevens 1. Introduction The Chinese remainder theorem says we can uniquely solve every pair of congruences having relatively prime moduli. Theorem 1.1. Let m and n be relatively prime positive integers. For all integers a and b, the pair of congruences x ≡ a mod m; x ≡ b mod n has a solution, and this solution is uniquely determined modulo mn. What is important here is that m and n are relatively prime. There are no constraints at all on a and b. Example 1.2. The congruences x ≡ 6 mod 9 and x ≡ 4 mod 11 hold when x = 15, and more generally when x ≡ 15 mod 99, and they do not hold for other x. The modulus 99 is 9 · 11. We will prove the Chinese remainder theorem, including a version for more than two moduli, and see some ways it is applied to study congruences. 2. A proof of the Chinese remainder theorem Proof. First we show there is always a solution. Then we will show it is unique modulo mn. Existence of Solution. To show that the simultaneous congruences x ≡ a mod m; x ≡ b mod n have a common solution in Z, we give two proofs. First proof: Write the first congruence as an equation in Z, say x = a + my for some y 2 Z. Then the second congruence is the same as a + my ≡ b mod n: Subtracting a from both sides, we need to solve for y in (2.1) my ≡ b − a mod n: Since (m; n) = 1, we know m mod n is invertible.
    [Show full text]
  • Number Theory
    Number Theory Margaret M. Fleck 31 January 2011 These notes cover concepts from elementary number theory. 1 Number Theory We’ve now covered most of the basic techniques for writing proofs. So we’re going to start applying them to specific topics in mathematics, starting with number theory. Number theory is a branch of mathematics concerned with the behavior of integers. It has very important applications in cryptography and in the design of randomized algorithms. Randomization has become an increasingly important technique for creating very fast algorithms for storing and retriev- ing objects (e.g. hash tables), testing whether two objects are the same (e.g. MP3’s), and the like. Much of the underlying theory depends on facts about which numbers evenly divide one another and which numbers are prime. 2 Factors and multiples You’ve undoubtedly seen some of the basic ideas (e.g. divisibility) somewhat informally in earlier math classes. However, you may not be fully clear on what happens with special cases, e.g. zero, negative numbers. We also need clear formal definitions in order to write formal proofs. So, let’s start with 1 Definition: Suppose that a and b are integers. Then a divides b if b = an for some integer n. a is called a factor or divisor of b. b is called a multiple of a. The shorthand for a divides b is a | b. Be careful about the order. The divisor is on the left and the multiple is on the right. Some examples: • 7 | 77 • 77 6| 7 • 7 | 7 because 7 = 7 · 1 • 7 | 0 because 0 = 7 · 0, zero is divisible by any integer.
    [Show full text]
  • IV.5 Arithmetic Geometry Jordan S
    i 372 IV. Branches of Mathematics where the aj,i1,...,in are indeterminates. If we write with many nice pictures and reproductions. A Scrap- g1f1 + ··· + gmfm as a polynomial in the variables book of Complex Curve Theory (American Mathemat- x1,...,xn, then all the coefficients must vanish, save ical Society, Providence, RI, 2003), by C. H. Clemens, the constant term which must equal 1. Thus we get and Complex Algebraic Curves (Cambridge University a system of linear equations in the indeterminates Press, Cambridge, 1992), by F. Kirwan, also start at an easily accessible level, but then delve more quickly into aj,i1,...,in . The solvability of systems of linear equations is well-known (with good computer implementations). advanced subjects. Thus we can decide if there is a solution with deg gj The best introduction to the techniques of algebraic 100. Of course it is possible that 100 was too small geometry is Undergraduate Algebraic Geometry (Cam- a guess, and we may have to repeat the process with bridge University Press, Cambridge, 1988), by M. Reid. larger and larger degree bounds. Will this ever end? For those wishing for a general overview, An Invitation The answer is given by the following result, which was to Algebraic Geometry (Springer, New York, 2000), by proved only recently. K. E. Smith, L. Kahanpää, P. Kekäläinen, and W. Traves, is a good choice, while Algebraic Geometry (Springer, New Effective Nullstellensatz. Let f1,...,fm be polyno- York, 1995), by J. Harris, and Basic Algebraic Geometry, mials of degree less than or equal to d in n variables, volumes I and II (Springer, New York, 1994), by I.
    [Show full text]
  • Congruences and Modular Arithmetic
    UI Math Contest Training Modular Arithmetic Fall 2019 Congruences and Modular Arithmetic • Congruences: We say a is congruent to b modulo m, and write a ≡ b mod m , if a and b have the same remainder when divided by m, or equivalently if a − b is divisible by m. Equivalently, the congruence notation a ≡ b mod m can be thought of as a shorthand notation for the statement \there exists an integer k such that a = b + km." Here are some examples to illustrate this notation: (1) 5 ≡ 17 mod 3 (since 5 and 17 both have remainder 2 when divided by 3, or equivalently, since 17 − 5 = 12 is divisible by 3). (2) 10 ≡ −4 mod 7 (since 10 − (−4) = 14 is divisible by 7) (3) 2013 ≡ 0 mod 3 (since 2013 − 0 = 2013 is divisible by 3) (4) n ≡ 0 mod 2 if n is even, and n ≡ 1 mod 2 if n is odd. (5) n ≡ d mod 10 if n has d as last decimal digit (since then n = d + 10k for some integer k, and hence n ≡ d mod 10) • Modular arithmetic: The key fact about congruences is that congruences to the same modu- lus can be added, multiplied, and taken to a fixed positive integral power. For example, since 6 ≡ −1 mod 7, we have 61000 ≡ (−1)1000 = 1 mod 7. This type of manipulation is called modular arithmetic or congruence magic, and it allows one to quickly calculate remainders and last digits of numbers with thousands of digits. • Congruence magic: An example. Consider the problem of finding the last digit of 20132014 (which is a number with thousands of decimal digits).
    [Show full text]
  • Large Numbers, the Chinese Remainder Theorem, and the Circle of Fifths Version of January 27, 2001
    Large Numbers, the Chinese Remainder Theorem, and the Circle of Fifths version of January 27, 2001 S. A. FULLING Texas A&M University College Station, TX 77843-3368 [email protected] 1. The problem. Consider a recurrence relation such as 2 an+1 = an +(n+3)nan ;a0=1; whose solutions are integers that grow rapidly with n. (This is a cooked-up example. For a realistic problem of this nature, look at [2], especially the formula at the end, and contemplate calculating Y40 ; or look at equation (3.65) of [9], whre the last coefficient is a fraction whose denominator has 80 decimal digits.) Suppose that: (1) We do not know how to solve the recurrence in closed form, so we want to use a computer to grind out the values of a for, say, n 20: n ≤ a1 =1;a2=5;a3=75;a4= 6975;a5= 48845925; :::: (2) We insist on knowing the answers exactly; floating-point numbers of a fixed precision are not adequate. The problem is that eventually the numbers will overflow the natural “word size” of the computer. If integers are represented by 16 bits, the largest signed integer is 215 1, the largest unsigned integer is 216 1. If “long” (32-bit) integers are used, we can get− up to 232 1 unsigned. − What− happens when an integer variable overflows depends on the programming lan- guage used. Some systems will give an error message and abort the program. In standard C, the storage of the number “rolls over” like a car’s odometer: the most significant dig- its are lost, without warning.
    [Show full text]
  • Modular Arithmetic
    Computational Number Theory Vidur Jasuja November 2020 1 So what is a mod anyway? 1.1 Some Notes • Note: unless stated otherwise, all variables stated will be assumed to be integers. • If a is divisible by b, we say that b divides a, denoted as b j a: 1.2 Defining Congruence Definition (Congruence (mod n)) We say two numbers a and b are congruent modulo n, where n is positive, or a ≡ b (mod n), if any one of the equivalent conditions listed here are met. • If n divides the difference of a and b, or in other words n divides a − b; • If there exists an integer k such that a + kn = b; • Or if a and b leave the same remainder upon division by n: Can you explain why these conditions are equivalent? §1.2.1 Simple Exercises 1. Find a number n such that n ≡ 2020 (mod 64): 2. Find a number n such that n ≡ −27 (mod 46): 3. Find a number 0 ≤ n < 57 such that n ≡ 982 (mod 57): What is another way to phrase this problem in more simple terms? 4. How many positive integers m are there such that 50 ≡ 2 (mod m)? 1.3 Properties of Mods Theorem (Addition works (mod n)) Suppose that a ≡ b (mod n); and c ≡ d (mod n): Then a + c ≡ b + d (mod n): Proof By our definitions of congruence, we have that b = a + nj for some integer j, and that d = c + nk for some integer k: Now, by our other equivalent definition of congruence, we want to show that n j b + d − a − c; or that 1 Computational Number Theory Vidur Jasuja n = c+nk +a+nj −c−a = nk +nj = n(k +j): Clearly, n divides n(k +j), which is an integer multiple of n, so we have shown what we wanted to show.
    [Show full text]
  • Finite Fields (PART 2): Modular Arithmetic
    Lecture 5: Finite Fields (PART 2) PART 2: Modular Arithmetic Theoretical Underpinnings of Modern Cryptography Lecture Notes on “Computer and Network Security” by Avi Kak ([email protected]) February 2, 2021 5:20pm ©2021 Avinash Kak, Purdue University Goals: To review modular arithmetic To present Euclid’s GCD algorithms To present the prime finite field Zp To show how Euclid’s GCD algorithm can be extended to find multiplica- tive inverses Perl and Python implementations for calculating GCD and mul- tiplicative inverses CONTENTS Section Title Page 5.1 Modular Arithmetic Notation 3 5.1.1 Examples of Congruences 5 5.2 Modular Arithmetic Operations 6 5.3 The Set Zn and Its Properties 9 5.3.1 So What is Zn? 11 5.3.2 Asymmetries Between Modulo Addition and Modulo 13 Multiplication Over Zn 5.4 Euclid’s Method for Finding the Greatest Common Divisor 16 of Two Integers 5.4.1 Steps in a Recursive Invocation of Euclid’s GCD Algorithm 18 5.4.2 An Example of Euclid’s GCD Algorithm in Action 19 5.4.3 Proof of Euclid’s GCD Algorithm 21 5.4.4 Implementing the GCD Algorithm in Perl and Python 22 5.5 Prime Finite Fields 29 5.5.1 What Happened to the Main Reason for Why Zn Could Not 31 be an Integral Domain 5.6 Finding Multiplicative Inverses for the Elements of Zp 32 5.6.1 Proof of Bezout’s Identity 34 5.6.2 Finding Multiplicative Inverses Using Bezout’s Identity 37 5.6.3 Revisiting Euclid’s Algorithm for the Calculation of GCD 39 5.6.4 What Conclusions Can We Draw From the Remainders? 42 5.6.5 Rewriting GCD Recursion in the Form of Derivations for 43 the Remainders 5.6.6 Two Examples That Illustrate the Extended Euclid’s Algorithm 45 5.7 The Extended Euclid’s Algorithm in Perl and Python 47 5.8 Homework Problems 54 Computer and Network Security by Avi Kak Lecture 5 Back to TOC 5.1 MODULAR ARITHMETIC NOTATION Given any integer a and a positive integer n, and given a division of a by n that leaves the remainder between 0 and n − 1, both inclusive, we define a mod n to be the remainder.
    [Show full text]
  • 1 Modular Arithmetic: ZN and Z
    CS 127/CSCI E-127: Introduction to Cryptography Prof. Salil Vadhan Fall 2013 Lecture Notes 8: Computational Number Theory Reading. • KatzLindell 2nd edition 8.0,8.1,8.2.3,8.3.0-8.3.2 OR 1st edition 7.0,7.1,7.2.3,7.3.0-7.3.2 Computational Number theory is a major source of hard problems (eg one-way functions) for cryptography. 1 Modular arithmetic: and ∗ ZN ZN Basic denitions: • x ≡ y (mod N) if Nj(x − y). (Written x = y mod N in KatzLindell.) • [x mod N] def= unique x0 2 f0;:::;N − 1g s.t. x ≡ x0 (mod N). def • ZN = f0;:::;N − 1g with arithmetic (+,·) modulo N. We cannot divide in general: 5 · 8 ≡ 5 · 1 (mod 35). Fact 1 (Extended Euclidean Algorithm) For any x; y 2 N there exists two integers a, b such that ax + by = gcd(x; y). Moreover, such a and b can be found in polynomial time. Denition of ∗ ZN ∗ def elements of with multiplicative inverses ZN = fx 2 ZN : gcd(x; N) = 1g = ZN −1 By a multiplicative inverse for x we mean an element y 2 ZN , denoted y = x , such that . Given and ∗ , we can compute −1 in polynomial time: x · y ≡ 1 (mod N) N x 2 ZN x Example: In ∗ , −1 . Z35 3 = ::: Euler phi function def ∗ φ(N) = jZN j Example: ∗ • Z35 = • φ(35) = 1 Q: how to generate random elements of ∗ ? ZN Fact 2 Y 1 N φ(N) = N · 1 − ≥ p 6loglogN primes pjN 2 Groups • An abelian group G is a set G with binary operation ? satisfying associativity, identity, inverses, and commutativity.
    [Show full text]
  • Chinese Remainder Theorem RSA Cryptosystem
    math 55 - induction and modular arithmetic Feb. 21 Chinese Remainder Theorem + The Chinese Remainder Theorem (CRT) says that given a1; : : : ; an 2 Z, m1; : : : ; mn 2 Z , where the mi are pairwise relatively prime, then the system of congruences: x ≡ a1 mod m1 x ≡ a2 mod m2 . x ≡ an mod mn has a unique solution modulo m = m1m2 ··· mn. We find this solution as follows. Let m Mk = . Then (since the mi are pairwise relatively prime) there are inverses yk such that mk Mkyk ≡ 1 mod mk. Then a1M1y1 + ··· + anMnyn mod m is the solution. 1. Compute the solution to the following system of congruences: x ≡ 1 mod 3 x ≡ 3 mod 5 x ≡ 5 mod 7 2. Check that the following system of congruences has no solutions. (In general, there may or may not be solutions when the mi are not pairwise relatively coprime.) x ≡ 1 mod 2 x ≡ 3 mod 4 x ≡ 5 mod 8 RSA cryptosystem The RSA cryptosystem is designed to encode information using number theory. The algo- rithm is as follows. 1. Choose two prime numbers p and q, and an integer e such that gcd(e; (p−1)(q−1)) = 1. (In general, larger p and q are more secure.) 2. Translate a given message into a sequence of integers by A = 00;B = 01;:::;Z = 25, and then group these integers into blocks of 4. 3. Encrypt each block M by replacing it with M e mod n. 4. To decrypt, compute an inverse d of e mod (p − 1)(q − 1). for each block C, compute Cd ≡ M de ≡ M mod n to get back the original message.
    [Show full text]