DOC PREVIEW
MIT 6 042J - Number Theory II

This preview shows page 1-2-3-4 out of 11 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 11 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Turing's CodeTuring's Code (Version 1.0)Breaking Turing's CodeModular ArithmeticTuring's Code (Version 2.0)Multiplicative InversesCancellationFermat's TheoremBreaking Turing's Code--- AgainPostscript6.042/18.062J Mathematics for Computer Science February 24, 2005 Srini Devadas and Eric Lehman Lecture Notes Number Theory II Image of Alan Turing removed for copyright reasons. The man pictured above is Alan Turing, the most important figure in the history of computer science. For decades, his fascinating life story was shrouded by government secrecy, societal taboo, and even his own deceptions. At 24 Turing wrote a paper entitled On Computable Numbers, with an Application to the Entscheidungsproblem. The crux of the paper was an elegant way to model a computer in mathematical terms. This was a breakthrough, because it allowed the tools of mathemat-ics to be brought to bear on questions of computation. For example, with his model in hand, Turing immediately proved that there exist problems that no computer can solve— no matter how ingenius the programmer. Turing’s paper is all the more remarkable be-cause he wrote it in 1936, a full decade before any computer actually existed. The word “Entscheidungsproblem” in the title refers to one of the 28 mathematical problems posed by David Hilbert in 1900 as challenges to mathematicians of the 20th century. Turing knocked that one off in the same paper. And perhaps you’ve heard of the “Church-Turing thesis”? Same paper. So Turing was obviously a brilliant guy who generated lots of amazing ideas. But this lecture is about one of Turing’s less-amazing ideas. It involved codes. It involved number theory. And it was sort of stupid. 1 Turing’s Code Let’s look back to the fall of 1937. Nazi Germany was rearming under Adolf Hitler, world-shattering war looked imminent, and— like us— Alan Turing was pondering the useful-2 Number Theory II ness of number theory. He forsaw that preserving military secrets would be vital in the coming conflict and proposed a way to encrypt communications using number theory. This is an idea that has ricocheted up to our own time. Today, number theory is the basis for numerous public-key cryptosystems, digital signature schemes, cryptographic hash functions, and digital cash systems. Every time you buy a book from Amazon, check your grades on WebSIS, or use a PayPal account, you are relying on number theoretic algorithms. Soon after devising his code, Turing disappeared from public view, and half a century would pass before the world learned the full story of where he’d gone and what he did there. We’ll come back to Turing’s life in a little while; for now, let’s investigate the code Turing left behind. The details are uncertain, since he never formally published the idea, so we’ll consider a couple possibilities. 1.1 Turing’s Code (Version 1.0) The first challenge is to translate a text message into an integer so we can perform math-ematical operations on it. This step is not intended to make a message harder to read, so the details are not too important. Here is one approach: replace each letter of the message with two digits (A = 01, B = 02, C = 03, etc.) and string all the digits together to form one huge number. For example, the message “victory” could be translated this way: “v i c t o r y” 22 09 03 20 15 18 25→ Turing’s code requires the message to be a prime number, so we may need to pad the result with a few more digits to make a prime. In this case, appending the digits 13 gives the number 2209032015182513, which is prime. Now here is how the encryption process works. In the description below, m is the unencoded message (which we want to keep secret), m∗ is the encrypted message (which the Nazis may intercept), and k is the key. Beforehand The sender and receiver agree on a secret key, which is a large prime k. Encryption The sender encrypts the message m by computing: m∗ = m k· Decryption The receiver decrypts m∗ by computing: m∗ m k = · = m k kNumber Theory II 3 For example, suppose that the secret key is the prime number k = 22801763489 and the message m is “victory”. Then the encrypted message is: m∗ = m k· = 2209032015182513 · 22801763489 = 50369825549820718594667857 There are a couple questions one might naturally ask about Turing’s code. 1. How can the sender and receiver ensure that m and k are prime numbers, as re-quired? The general problem of determining whether a large number is prime or compos- ite has been studied for centuries, and reasonably good primality tests were known even in Turing’s time. In 2002, Manindra Agrawal, Neeraj Kayal, and Nitin Sax- ena announced a primality test that is guaranteed to work on a number n in about (log n)12 steps. This definitively placed primality testing in the class of “easy” com- putational problems at last. Amazingly, the description of their breakthrough algo- rithm was only thirteen lines long! 2. Is Turing’s code secure? The Nazis see only the encrypted message m∗ = m·k, so recovering the original mes-sage m requires factoring m∗. Despite immense efforts, no really efficient factoring algorithm has ever been found. It appears to be a fundamentally difficult problem, though a breakthrough someday is not impossible. In effect, Turing’s code puts to practical use his discovery that there are limits to the power of computation. Thus, provided m and k are sufficiently large, the Nazis seem to be out of luck! This all sounds promising, but there is a major flaw in Turing’s code. 1.2 Breaking Turing’s Code Let’s consider what happens when the sender transmits a second message using Turing’s code and the same key. This gives the Nazis two encrypted messages to look at: m∗ = m1 · k and m∗ = m2 k1 2 · The greatest common divisor of the two encrypted messages, m∗ and m∗ 2, is the secret 1 key k. And, as we’ve seen, the gcd of two numbers can be computed very efficiently. So after the second message is sent, the Nazis can read recover the secret key and read every message! It is difficult to believe a mathematician as brilliant as Turing could overlook such a glaring problem. One possible explanation is that he had a slightly different system in mind, one based on modular arithmetic.4 Number Theory II 2 Modular Arithmetic On page 1 of his masterpiece on number theory, Disquisitiones


View Full Document

MIT 6 042J - Number Theory II

Documents in this Course
Counting

Counting

55 pages

Graphs

Graphs

19 pages

Proofs

Proofs

14 pages

Proofs

Proofs

18 pages

Proofs

Proofs

18 pages

Quiz 1

Quiz 1

9 pages

Quiz 2

Quiz 2

11 pages

Load more
Download Number Theory II
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Number Theory II and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Number Theory II 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?