A Brief History of Computer Science William Klostermeyer.

Slides:



Advertisements
Similar presentations
RSA and Public Key Cryptography Oct Nathanael Paul.
Advertisements

Number Theory Algorithms and Cryptography Algorithms Prepared by John Reif, Ph.D. Analysis of Algorithms.
CS 483 – SD SECTION BY DR. DANIYAL ALGHAZZAWI (4) Information Security.
Public Key Cryptosystems - RSA Receiver Sender Eavesdroppe r p q p q p q p and q prime.
22C:19 Discrete Structures Integers and Modular Arithmetic
BY : Darshana Chaturvedi.  INTRODUCTION  RSA ALGORITHM  EXAMPLES  RSA IS EFFECTIVE  FERMAT’S LITTLE THEOREM  EUCLID’S ALGORITHM  REFERENCES.
Week 3 - Friday.  What did we talk about last time?  AES  Public key cryptography.
Lecture 8: Primality Testing and Factoring Piotr Faliszewski
22C:19 Discrete Math Integers and Modular Arithmetic Fall 2010 Sukumar Ghosh.
Notation Intro. Number Theory Online Cryptography Course Dan Boneh
Great Theoretical Ideas in Computer Science.
Public-key Cryptography Montclair State University CMPT 109 J.W. Benham Spring, 1998.
The RSA Cryptosystem and Factoring Integers (II) Rong-Jaye Chen.
Cryptography Lecture 11: Oct 12. Cryptography AliceBob Cryptography is the study of methods for sending and receiving secret messages. adversary Goal:
CSE 326: Data Structures NP Completeness Ben Lerner Summer 2007.
P versus NP and Cryptography Wabash College Mathematics and Computer Science Colloquium Nov 16, 2010 Jeff Kinne, Indiana State University (Theoretical)
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
CSE 321 Discrete Structures Winter 2008 Lecture 8 Number Theory: Modular Arithmetic.
Dan Boneh Intro. Number Theory Modular e’th roots Online Cryptography Course Dan Boneh.
Tallinn University of Technology Quantum computer impact on public key cryptography Roman Stepanenko.
Codes, Ciphers, and Cryptography-RSA Encryption
Lecture 6: Public Key Cryptography
The RSA Algorithm Based on the idea that factorization of integers into their prime factors is hard. ★ n=p . q, where p and q are distinct primes Proposed.
BY MISS FARAH ADIBAH ADNAN IMK
Prime Numbers Prime numbers only have divisors of 1 and self
MATH 224 – Discrete Mathematics
Scott Perryman Jordan Williams.  NP-completeness is a class of unsolved decision problems in Computer Science.  A decision problem is a YES or NO answer.
1 Growth of Functions CS 202 Epp, section ??? Aaron Bloomfield.
RSA Ramki Thurimella.
CPSC 490 Number Theory Primes, Factoring and Euler Phi-function Mar.31 st, 2006 Sam Chan.
The Complexity of Primality Testing. What is Primality Testing? Testing whether an integer is prime or not. – An integer p is prime if the only integers.
Cryptography Dec 29. This Lecture In this last lecture for number theory, we will see probably the most important application of number theory in computer.
Implementing RSA Encryption in Java
Cryptography Lecture 7: RSA Primality Testing Piotr Faliszewski.
Introduction to Algorithms Second Edition by Cormen, Leiserson, Rivest & Stein Chapter 31.
Modular Arithmetic with Applications to Cryptography Lecture 47 Section 10.4 Wed, Apr 13, 2005.
Strength of Cryptographic Systems Dr. C F Chong, Dr. K P Chow Department of Computer Science and Information Systems The University of Hong Kong.
RSA Prepared by: SITI ZAINAH ADNAN
The RSA Algorithm. Content Review of Encryption RSA An RSA example.
Connected Components Fun with graphs, searching, and queues.
Lecture 8 Overview. Analysis of Algorithms Algorithms – Time Complexity – Space Complexity An algorithm whose time complexity is bounded by a polynomial.
22C:19 Discrete Structures Integers and Modular Arithmetic Fall 2014 Sukumar Ghosh.
Scott CH Huang COM 5336 Cryptography Lecture 6 Public Key Cryptography & RSA Scott CH Huang COM 5336 Cryptography Lecture 6.
Public Key Cryptosystems RSA Diffie-Hellman Department of Computer Engineering Sharif University of Technology 3/8/2006.
Beauty and Joy of Computing Limits of Computing Ivona Bezáková CS10: UC Berkeley, April 14, 2014 (Slides inspired by Dan Garcia’s slides.)
Lecture 6.1: Misc. Topics: Number Theory CS 250, Discrete Structures, Fall 2011 Nitesh Saxena.
ENCRYPTION TAKE 2: PRACTICAL DETAILS David Kauchak CS52 – Spring 2015.
CS Modular Division and RSA1 RSA Public Key Encryption To do RSA we need fast Modular Exponentiation and Primality generation which we have shown.
Ch1 - Algorithms with numbers Basic arithmetic Basic arithmetic Addition Addition Multiplication Multiplication Division Division Modular arithmetic Modular.
Complexity & Computability. Limitations of computer science  Major reasons useful calculations cannot be done:  execution time of program is too long.
The Beauty and Joy of Computing Lecture #23 Limits of Computing Researchers at Facebook and the University of Milan found that the avg # of “friends” separating.
Complexity of Computations Nicholas Tran Department of Mathematics & Computer Science Santa Clara University Santa Clara, CA USA.
CS 150 – Computing: From Ada to the Web Cryptography.
Week 4 - Wednesday.  What did we talk about last time?  Finished DES  AES.
Primality Testing. Introduction The primality test provides the probability of whether or not a large number is prime. Several theorems including Fermat’s.
Chapter 1 Algorithms with Numbers. Bases and Logs How many digits does it take to represent the number N >= 0 in base 2? With k digits the largest number.
David Evans CS200: Computer Science University of Virginia Computer Science Lecture 23: Intractable Problems (Smiley Puzzles.
Chapter 4 With Question/Answer Animations 1. Chapter Summary Divisibility and Modular Arithmetic - Sec 4.1 – Lecture 16 Integer Representations and Algorithms.
Lecture 6. RSA Use in Encryption to encrypt a message M the sender: – obtains public key of recipient PU={e,n} – computes: C = M e mod n, where 0≤M
Hard Problems Some problems are hard to solve.  No polynomial time algorithm is known.  E.g., NP-hard problems such as machine scheduling, bin packing,
Revision. Cryptography depends on some properties of prime numbers. One of these is that it is rather easy to generate large prime numbers, but much harder.
1 Solve it with the Computer Rick Spillman CSCE 115 Spring 2013 Lecture 12.
Public Key Encryption Major topics The RSA scheme was devised in 1978
From Greeks to Geeks: a History and Explanation of Computer Science
CS 2210:0001Discrete Structures Modular Arithmetic and Cryptography
Public Key Encryption Engineering & Analysis Operation-Part2
Unsolvable Problems December 4, 2017.
Hard Problems Some problems are hard to solve.
Mathematical Background for Cryptography
Presentation transcript:

A Brief History of Computer Science William Klostermeyer

Typical Conversation A: What do you do? B: I’m a computer scientist. A: How come when I’m on screen X in MS Y.Z I can’t print file Q?

“Computer science is no more about computers than astronomy is about telescopes.” E. Dijkstra (1972 Turing Award winner)

What is computer science? Sometimes called computing or computing science. Not so much about computers, but computing.

Areas of Computer Science Hardware/Architecture Building chips, machines, devices Software Building programs, systems, databases Theory Determines what is possible: underlies all other areas of computing.

History of computer science Pre-dates modern computers by more than 2000 years! Digital computers make it more practical to compute. “Computer” was a job title for people around time of WWII

Computers Electronic computers created because of need for them: Ballistics computations Codebreaking Census calculations

Algorithm Precise set of instructions to solve a problem. How to play blackjack: draw two cards; compute total while (total < 17) draw a card add cards to total end

Mathematics of Algorithms Hilbert (1928): “Can every problem be solved by a mechanical procedure?” Turing (1936): NO! There exist problems no computer can solve. Alan Turing: developed model of computation

Programs Computer programs implement algorithms and are written in a computer language (Java, C, etc.) Interested in efficient (FAST) algorithms/programs

Hard Problems Hilbert’s 10 th problem (1900): Does there exist an algorithm to find integer solutions to Diophantine equations? x + 2y 2 = 0 (use quadratic formula) x 6 + y 6 = z 6

Hilbert’s 10 th problem Matiyasevich proved in 1970 that no algorithm exists to solve arbitrary Diophantine equations. Some problems yield themselves to algorithms, some don’t. Some yield themselves to EFFICIENT algorithms!

“ Computer science is the systematic study of algorithmic processes ” From an ACM study (1989)

Ancient Algorithms Babylonians knew how to approximate square roots (500 B.C.) Newton’s method (1600’s) generalizes this to find zeroes of polynomial “Numerical” algorithms

Euclid’s Algorithm 300 B.C. GCD(x, y) greatest common divisor of x & y Still in use today!

GCD Algorithm Euclid(12, 9) = Euclid(9, 3) = Euclid(3, 0) = 3 Euclid(a, b): if b=0 return b else return Euclid (b, a mod b)

Prime Numbers  x is prime if nothing divides x evenly except 1 and x  Some primes: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31  Big primes useful in cryptography

Sieve of Eratosthenes 250 B.C. Algorithm to determine if x is prime: x=17. List all numbers from 2 to 16. Start with 2. If 2 does not divide 17, cross 2 and all multiples of 2 off list. Go to next uncrossed number on list and repeat. If all numbers crossed off, then x is prime.

Primality Testing Eratosthenes method not fast for LARGE numbers (hundreds of digits) Fast probabilistic methods developed in ’70’s, ’80’s (have a small chance of error)

Breakthrough! 2002: after centuries of searching, a fast algorithm found (polynomial-time algorithm, no chance of error) IIT professor and two undergrads:

Uses of Prime Numbers Large primes needed in cryptography (to securely send information over internet) RSA encryption algorithm based on assumption that factoring large integers into primes is difficult.

Sending Messages Securely Alice Bob Alice wants to send to Bob, not reveal key

Sending Messages Securely Alice Bob

Sending Messages Securely Alice Bob

Sending Messages Securely Alice Bob

How can Alice do it? Alice puts lock on box Alice sends box to Bob Bob puts his lock on Bob sends to Alice Alice removes her lock Alice sends to Bob Bob removes his lock!

RSA Algorithm 1. Find P and Q, two large (e.g., bit) prime numbers. 2. Choose E such that E is greater than 1, E is less than PQ, and E and (P- 1)(Q-1) are relatively prime. E must be odd. 3. Compute D such that (DE - 1) is evenly divisible by (P-1)(Q-1).

RSA cont. 1. The encryption function is C = (T^E) mod PQ, where C is the ciphertext (a positive integer), T is the plaintext (a positive integer). 2. Your public key is the pair (PQ, E). Your private key is the number D. D used in decrypting C back into T. No known easy methods of calculating D, P, or Q given only (PQ, E) (your public key).

Factoring RSA security based on assumption that FACTORING large integers is hard. Note that we can determine if an integer is prime or not quickly, but factoring seems to require more work In other words: can prove an integer is composite w/o showing factors

Graph Algorithms Euler 1736: Bridges of Konigsberg

Konigsberg = Graph

Graphs “Concepts from graph theory may hold the key for everything…” Business Week, January 22, 2002

Shortest Routes Dijkstra’s Algorithm (1959): used by Faster algorithms found in 1990’s

Traveling Salesman Salesman wants to visit N cities and return home Minimize total distance traveled

TSP Algorithms? No fast algorithm known to compute best route for salesman Computing optimal route for 1000 cities would take centuries on fast computer Must settle for near-optimal solutions: Can get very close to optimal if cities are in Euclidean plane (Arora 1999)

Map Coloring Can map be colored with 4 colors so neighboring regions have different colors (1850’s)

4-color theorem Yes! (Appel & Haken 1970’s) Can be done quickly (1990’s) But some maps require only 3 colors!

Easy & Hard Which is harder? Taking a test Grading a test Proving a theorem Checking a proof Hilbert and von Neumann pondered this.

P vs. NP P: problems that can be solved quickly (shortest route) NP: problems whose solutions can be checked quickly (TSP, 3-coloring) Is this a 3-coloring?

P = NP? Believed P is not equal to NP $1,000,000 reward for proof: Most important problem in Computer Science: are certain problems intrinsically hard?

NP-complete problems Class of hard problems (unless P=NP) Occur in real world: Scheduling problems, routing problems, Biological problems, etc. Optimal solutions take too long to compute (we believe, if P not equal to NP) Must settle for sub-optimal solutions.

Example Find best match for criminal’s DNA sequence in a database: AATCCGATAGGAT ATTCCAGATCGAT TACCGATAGACAT GTACAGGCAATCA GATACAAATCCGA AAACCC

Sequence Assembly Assemble small overlapping sequences into single long sequence AAAATCGC, CGCATAAA, GCATCTCATT CGCATAAAATCGCATCTATT Can be hard if you start with lots of fragments

Complexity Theory Interested in categorizing how hard (complex) problems are. Key concept is a “proof” that an object satisfies some conditions. How might we “prove” that 11 is prime? See that none of 2, 3, 5, 7 divide 11.

Checking Proofs How do we grade a test? How do we check a proof? x n + y n = z n, no solutions for n > 2 By reading it! By reading every word of it!

PCP Theorem 1990’s was found that proofs can be checked (with high probability) by reading only a few characters. (Proof must be in a standard form) “Holographic” proofs: each symbol contains essence of proof

Amazing connection PCP Theorem also tells us that for certain hard problems, finding sub- optimal solutions quickly is hard! Hard to quickly find a route that is close to the longest possible route between two cities!

Conclusion Computer science is about: Algorithms to solve problems!