Skip to main content

CS409: Cryptography

Page path
  • Home /
  • Courses /
  • Course Catalog /
  • Computer Science /
  • CS409: Cryptography /
  • Unit 5: The RSA Cryptosystem and Factoring Integers
Back to course 'CS409: Cryptography'
  • Unit 5: The RSA Cryptosystem and Factoring Integers

    In this unit, we will learn the basic idea behind public key cryptography and explain in detail RSA as the most important example of public key cryptography. Next, we will discuss the algorithms used to determine whether an input number is prime. As noted earlier, these algorithms are important in public key cryptography because encryption depends on the factorization of prime numbers. This unit will present the mathematical background you need in order to understand these algorithms and in turn get a better picture of public key cryptography.

    Completing this unit should take you approximately 23 hours.

    • Unit 5 Learning Outcomes Page
    • 5.1: Introduction

      •  Andrew Ross' "Public Key Cryptography" URL

        Read this introduction to public key cryptography.

      • 5.1.1: Example of Public Key Cryptography

        •  Andrew Ross' "RSA" URL

          Read the linked page above to learn about RSA. Take for granted the Chinese Remainder theorem, which is explained later.

      • 5.1.2: Primality Testing

        •  Wikipedia: "Primality Test" URL

          Read this article on primality testing, which is crucial to the security of public-key cryptography. Make sure you understand the naive tests, probabilistic tests, and fast deterministic tests.

    • 5.2: Math Background

        • 5.2.1: Euclid's Algorithm

          •  Robert Milson's "Euclid's Algorithm" URL

            Read this page about Euclid's algorithm. Work through the given example.

        • 5.2.2: Chinese Remainder Theorem

          •  Chi Woo's "Chinese Remainder Theorem" URL

            Read this page to learn how the Chinese Remainder theorem works.

        • 5.2.3: Legendre Symbol

          •  Alvaro Lozano Robledo's "Legendre Symbol" URL

            Read this definition of the Legendre symbol.

        • 5.2.4: Calculating the Jacobi Symbol

          •  Christoph Bergemann's "Jacobi Symbol" URL

            Read this page.

          •  Christoph Bergemann's "Calculating the Jacobi Symbol" URL

            Read this page.

        • 5.2.5: Subgroup

          •  Yann Lamontagne's "Subgroup" URL

            Read this definition of a subgroup.

      • 5.3: Prime Factorization Algorithms (More Math)

        •  Eric Weisstein's "Prime Factorization Algorithms" URL

          Read this introduction to prime factorization.

        • 5.3.1: Integer Factorization

          •  John Smith's "Integer Factorization" URL

            Read this to learn about integer factorization.

        • 5.3.2: The Pollard p-1 Algorithm

          •  John Smith's "Pollard p-1 Algorithm" URL

            Read this to learn how to factor an integer with Pollard's p-1 algorithm.

        • 5.3.3: The Pollard Rho Algorithm

          •  John Smith's "Pollard Rho Algorithm" URL

            Read this to learn how to factor an integer with Pollard's Rho algorithm.

        • 5.3.4: Shanks' Square Forms Factorization

          •  Wikipedia: "Shanks' Square Forms Factorization" URL

            Read this article to learn about Shanks' square forms factorization. Make sure you understand the algorithm and the examples given.

        • 5.3.5: The Solovay-Strassen Algorithm

          •  Christoph Bergemann's "Solovay-Strassen Test" URL

            Read this to learn the how Solovay-Strassen test works.

        • 5.3.6: Strong Pseudoprimes

          •  Wikipedia: "Strong Pseudoprime" URL

            Read this article to learn the definitions and properties of pseudoprime numbers. Go through the examples.

        • 5.3.7: Miller-Rabin Prime Test

          •  Christoph Bergemann's "Miller-Rabin Prime Test" URL

            Read this to learn the how Miller-Rabin prime test works.

      • 5.4: Miller-Rabin Primality Test in Code

        •  LiteratePrograms: "Miller-Rabin Primality Test" URL

          Create a java language program that performs Miller-Rabin primality test. One possible solution can be found via the link above. Study the solution code only after you have solved the problem or spent a substantial amount of time working on it.

    Navigation

    Art History
    Biology
    Business Administration
    Chemistry
    Communication
    Economics
    English
    History
    Mathematics

    Creative Commons License
    © Saylor Academy 2010-2018 except as otherwise noted. Excluding course final exams, content authored by Saylor Academy is available under a Creative Commons Attribution 3.0 Unported license. Third-party materials are the copyright of their respective owners and shared under various licenses. See www.saylor.org/open/licensinginformation for detailed licensing information.

    Saylor Academy and Saylor.org® are trade names of the Constitution Foundation, a 501(c)(3) organization through which our educational activities are conducted.

    Terms of Use | Privacy Policy