Your SlideShare is downloading.
×

- 1. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs An Algorithmic View of Computer Science Michael Soltys My Research Linear Algebra 0-1 Matrices Strings msoltys@gmail.com @MichaelMSoltys Security Cryptography Applications McMaster University, Canada November 1, 2013 1/42
- 2. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 2/42
- 3. An Algorithmic View of Computer Science Outline Michael Soltys 1 Why Study Computer Science? Why Study Computer Science? History Exciting ﬁeld Lots of Jobs History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 2 My Research Linear Algebra 0-1 Matrices Strings 3 Security Cryptography Applications 3/42
- 4. An Algorithmic View of Computer Science Prehistory Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications Engraved ocher plaque Blombos Cave, South Africa 77,000–75,000 years old Ishango bone Congo, 25,000–20,000 years old leg bone from a baboon; 3 rows of tally marks, to add or multiply (?) Reindeer antler with tally marks La Madeleine, France 17,000–11,500 years old 4/42
- 5. An Algorithmic View of Computer Science History Michael Soltys 1 Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 5/42 1930s: Math models of computation (Turing machine)
- 6. An Algorithmic View of Computer Science History Michael Soltys 1 Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 5/42 1930s: Math models of computation (Turing machine) 2 1940s: First electronic computers (ENIAC)
- 7. An Algorithmic View of Computer Science History Michael Soltys 1 Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 5/42 1930s: Math models of computation (Turing machine) 2 1940s: First electronic computers (ENIAC) 3 1950s: First programming languages (Fortran and Lisp)
- 8. An Algorithmic View of Computer Science History Michael Soltys 1 Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 5/42 1930s: Math models of computation (Turing machine) 2 1940s: First electronic computers (ENIAC) 3 1950s: First programming languages (Fortran and Lisp) 4 1960s: Integrated circuits and Unix operating system
- 9. An Algorithmic View of Computer Science History Michael Soltys 1 Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 5/42 1930s: Math models of computation (Turing machine) 2 1940s: First electronic computers (ENIAC) 3 1950s: First programming languages (Fortran and Lisp) 4 1960s: Integrated circuits and Unix operating system 5 1970s: Internet and personal computers (ARPANET and Commodore PET)
- 10. An Algorithmic View of Computer Science History Michael Soltys 1 Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings 1930s: Math models of computation (Turing machine) 2 1940s: First electronic computers (ENIAC) 3 1950s: First programming languages (Fortran and Lisp) 4 1960s: Integrated circuits and Unix operating system 5 1970s: Internet and personal computers (ARPANET and Commodore PET) 6 1980s: Computers with a mouse and a graphical user interface (Apple Macintosh, Microsoft Windows) Security Cryptography Applications 5/42
- 11. An Algorithmic View of Computer Science History Michael Soltys 1 History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings 1930s: Math models of computation (Turing machine) 2 1940s: First electronic computers (ENIAC) 3 1950s: First programming languages (Fortran and Lisp) 4 1960s: Integrated circuits and Unix operating system 5 1970s: Internet and personal computers (ARPANET and Commodore PET) 6 1980s: Computers with a mouse and a graphical user interface (Apple Macintosh, Microsoft Windows) 7 Why Study Computer Science? 1990s: World Wide Web (web browsers and search engines) Security Cryptography Applications 5/42
- 12. An Algorithmic View of Computer Science History Michael Soltys 1 My Research Linear Algebra 0-1 Matrices Strings 2 1940s: First electronic computers (ENIAC) 3 1950s: First programming languages (Fortran and Lisp) 4 1960s: Integrated circuits and Unix operating system 5 1970s: Internet and personal computers (ARPANET and Commodore PET) 6 1980s: Computers with a mouse and a graphical user interface (Apple Macintosh, Microsoft Windows) 1990s: World Wide Web (web browsers and search engines) 8 History Exciting ﬁeld Lots of Jobs 1930s: Math models of computation (Turing machine) 7 Why Study Computer Science? 2000s: Social media and smart phones (Facebook and Apple iPhone) Security Cryptography Applications 5/42
- 13. An Algorithmic View of Computer Science Today Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 6/42 We use computers to: 1 Solve problems (computer shortest path from A to B)
- 14. An Algorithmic View of Computer Science Today Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs We use computers to: 1 Solve problems (computer shortest path from A to B) 2 Managing information (Cloud, Search Engine, eHealth) My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 6/42
- 15. An Algorithmic View of Computer Science Today Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs We use computers to: 1 Solve problems (computer shortest path from A to B) 2 Managing information (Cloud, Search Engine, eHealth) 3 Create smart products (iPhone, iPad, embedded systems) My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 6/42
- 16. An Algorithmic View of Computer Science Today Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs We use computers to: 1 Solve problems (computer shortest path from A to B) 2 Managing information (Cloud, Search Engine, eHealth) 3 Create smart products (iPhone, iPad, embedded systems) 4 Explore our world (Google maps, Yelp) My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 6/42
- 17. An Algorithmic View of Computer Science Today Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs We use computers to: 1 Solve problems (computer shortest path from A to B) 2 Managing information (Cloud, Search Engine, eHealth) 3 Create smart products (iPhone, iPad, embedded systems) 4 Explore our world (Google maps, Yelp) 5 Connect (Date, Facebook, Twitter, Wordpress) My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 6/42
- 18. An Algorithmic View of Computer Science Young Field Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs Fundamental problems still unsolved My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 7/42 1 Engineering: How to write correct programs?
- 19. An Algorithmic View of Computer Science Young Field Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs Fundamental problems still unsolved My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 7/42 1 Engineering: How to write correct programs? 2 Science: Why are some problems computationally diﬃcult?
- 20. An Algorithmic View of Computer Science A vast multi-disciplinary ﬁeld Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 8/42 1 Mathematics, Engineering, and Science
- 21. An Algorithmic View of Computer Science A vast multi-disciplinary ﬁeld Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 8/42 1 Mathematics, Engineering, and Science 2 Linguistics: Context-Free Grammars, Wordnet
- 22. An Algorithmic View of Computer Science A vast multi-disciplinary ﬁeld Michael Soltys Why Study Computer Science? 1 Mathematics, Engineering, and Science History Exciting ﬁeld Lots of Jobs 2 Linguistics: Context-Free Grammars, Wordnet My Research 3 Psychology: Human-Computer Interaction, Web Design Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 8/42
- 23. An Algorithmic View of Computer Science A vast multi-disciplinary ﬁeld Michael Soltys Why Study Computer Science? 1 Mathematics, Engineering, and Science History Exciting ﬁeld Lots of Jobs 2 Linguistics: Context-Free Grammars, Wordnet My Research 3 Psychology: Human-Computer Interaction, Web Design Linear Algebra 0-1 Matrices Strings 4 Sociology: Crowd mining Security Cryptography Applications 8/42
- 24. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 9/42 Sociology of CS
- 25. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 10/42 Excellent Job Outlook
- 26. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 11/42
- 27. An Algorithmic View of Computer Science Job Outlook Numbers1 Michael Soltys Area Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications Employment 2010 2020 Change 2010–20 % Median Salary 11 22 $83,340 $73,710 30 12 22 22 28 31 $90,530 $71,380 $75,660 $75,660 $69,160 $73,490 Engineering jobs Computing jobs Software Developers Comp. Programmers Security & Networks Comp. Syst. Analyst Syst. Admin. Database Admin. 913,100 363,100 302,300 544,400 347,200 110,800 1,184,000 406,800 368,000 664,800 443,800 144,700 270,900 43,700 65,700 120,400 96,600 33,900 Employers favor graduates who can communicate! [Barrett 2013] 1 12/42 United States Department of Labor Occupational Outlook Handbook, 2012-13 Edition, http://www.bls.gov/oco/
- 28. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 13/42 My Research
- 29. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 14/42 P vs NP
- 30. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 14/42 P vs NP
- 31. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 14/42 P vs NP
- 32. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 15/42 • Perhaps there is a better way of doing this than “Brute Force”? This is the P vs NP problem [Cook]
- 33. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 15/42 • Perhaps there is a better way of doing this than “Brute Force”? This is the P vs NP problem [Cook] • This problem is very diﬃcult.
- 34. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings • Perhaps there is a better way of doing this than “Brute Force”? This is the P vs NP problem [Cook] • This problem is very diﬃcult. • A related problem is the NP vs co-NP question, which can be restated as follows: Is there a formal proof system where every true statement has a short proof? Security Cryptography Applications 15/42 An answer to this questions would have very interesting implications for Logic & Epistemology
- 35. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings • Perhaps there is a better way of doing this than “Brute Force”? This is the P vs NP problem [Cook] • This problem is very diﬃcult. • A related problem is the NP vs co-NP question, which can be restated as follows: Is there a formal proof system where every true statement has a short proof? Security Cryptography Applications An answer to this questions would have very interesting implications for Logic & Epistemology • Cook’s program for the NP vs co-NP is a systematic study of “reverse mathematics” 15/42
- 36. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings • Perhaps there is a better way of doing this than “Brute Force”? This is the P vs NP problem [Cook] • This problem is very diﬃcult. • A related problem is the NP vs co-NP question, which can be restated as follows: Is there a formal proof system where every true statement has a short proof? Security Cryptography Applications An answer to this questions would have very interesting implications for Logic & Epistemology • Cook’s program for the NP vs co-NP is a systematic study of “reverse mathematics” • My contribution is the “mapping out” of Linear Algebra [Cook Soltys 2004] 15/42
- 37. An Algorithmic View of Computer Science Statistical Archeology Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 16/42 • Sequence dating: Flinders Petrie, 1899
- 38. An Algorithmic View of Computer Science Statistical Archeology Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications • Sequence dating: Flinders Petrie, 1899 • 900 pre-dynastic Egyptian graves containing 800 representatives of pottery 16/42
- 39. An Algorithmic View of Computer Science Statistical Archeology Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications • Sequence dating: Flinders Petrie, 1899 • 900 pre-dynastic Egyptian graves containing 800 representatives of pottery • The “graves-versus-varieties” matrix contains vast amount of information, such as sequential ordering [Kendall 1969] 16/42
- 40. An Algorithmic View of Computer Science Paleogenomics Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications DNA sequence organization of ancient living organisms using similarities and diﬀerences between chromosomes of extant organisms [Chauve et al 2008] 17/42
- 41. An Algorithmic View of Computer Science Consecutive-1 Property: C1P Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications Consider a slight relaxation, (k, δ)-C1P: each row has at most k blocks of 1s and the gap between any two blocks is at most δ. So (1, 0)-C1P is C1P, and deciding if an A has (k, δ)-C1P is: • polytime for (1, 0) • NP-hard for every k ≥ 2, δ ≥ 1 except (2, 1) What about (2, 1)? [Patterson 2012] 18/42
- 42. An Algorithmic View of Computer Science K¨nig’s Min-Max o Michael Soltys Why Study Computer Science? 1 0 1 1 History Exciting ﬁeld Lots of Jobs 0 0 1 0 0 1 1 0 0 1 0 0 My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications [Fernandez Soltys 2013] 19/42
- 43. An Algorithmic View of Computer Science Smart bacteria Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Ehrenfeucht-Mycielski Sequence • 011010101010111010011111001100011010101010 Linear Algebra 0-1 Matrices Strings Security Cryptography Applications [Herman Soltys 2009] 20/42
- 44. An Algorithmic View of Computer Science Smart bacteria Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Ehrenfeucht-Mycielski Sequence • 011010101010111010011111001100011010101010 • 011010101010111010011111001100011010101010 Security Cryptography Applications [Herman Soltys 2009] 20/42
- 45. An Algorithmic View of Computer Science Smart bacteria Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Ehrenfeucht-Mycielski Sequence • 011010101010111010011111001100011010101010 • 011010101010111010011111001100011010101010 • 011010101010111010011111001100011010101010 Cryptography Applications [Herman Soltys 2009] 20/42
- 46. An Algorithmic View of Computer Science Smart bacteria Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications Ehrenfeucht-Mycielski Sequence • 011010101010111010011111001100011010101010 • 011010101010111010011111001100011010101010 • 011010101010111010011111001100011010101010 • 011010101010111010011111001100011010101010 1 [Herman Soltys 2009] 20/42
- 47. An Algorithmic View of Computer Science Do the shuﬄe Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 21/42 • w is the shuﬄe of u, v : w = u v
- 48. An Algorithmic View of Computer Science Do the shuﬄe Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 21/42 • w is the shuﬄe of u, v : w = u • w = 0110110011101000 u = 01101110 v = 10101000 w = 0110110011101000 v
- 49. An Algorithmic View of Computer Science Do the shuﬄe Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 21/42 • w is the shuﬄe of u, v : w = u v • w = 0110110011101000 u = 01101110 v = 10101000 w = 0110110011101000 • w is a shuﬄe of u and v provided: u = x1 x2 · · · xk v = y1 y2 · · · yk and w obtained by “interleaving” w = x1 y1 x2 y2 · · · xk yk .
- 50. An Algorithmic View of Computer Science Square Shuﬄe Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research w is a square provided it is equal to a shuﬄe of a u with itself, i.e., ∃u s.t. w = u u The string w = 0110110011101000 is a square: Linear Algebra 0-1 Matrices Strings w = 0110110011101000 Security Cryptography Applications and u = 01101100 = 01101100 22/42
- 51. An Algorithmic View of Computer Science Result Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications given an alphabet Σ, |Σ| ≥ 7, Square = {w : ∃u(w = u u)} is NP-complete. What we leave open: • What about |Σ| = 2 (for |Σ| = 1, Square is just the set of even length strings) • What about if |Σ| = ∞ but each symbol cannot occur more often than, say, 6 times (if each symbol occurs at most 4 times, Square can be reduced to 2-Sat – see P. Austrin Stack Exchange post) 23/42
- 52. An Algorithmic View of Computer Science Bipartite graph Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research w = (c1 x 3 c2 )2 (c1 x 2 c2 )2 (c1 xc2 )2 is a square: w = u u where u = c1 xxxc2 xc2 c1 xc1 xc2 . Bipartite graph G associated with particular solution w = u u: Linear Algebra 0-1 Matrices Strings Security Cryptography Applications We also have w = v v with v = c1 x 3 c2 c1 x 2 c2 c1 xc2 which would have its associated bipartite graph 24/42
- 53. An Algorithmic View of Computer Science Nesting Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 25/42 G has the “non-nesting” property: if G contains an edge from wk to w and an edge from wp to wq , then it is not the case that k < p < q < Claim: There is a complete bipartite graph G of degree one (i.e., a perfect matching) on the symbols of w which is non-nesting, iﬀ w can be expressed as a square shuﬄe.
- 54. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 26/42 • Formal languages • Ginsburg & Spanier in ’65 • Modelling sequential execution of concurrent processes • Riddle (’73 & ’79), Shaw (’78), Hoare • Shuﬄe on its own • Mansﬁeld (’82 & ’83; polytime dynamic prog. alg. for w = u1 u2 · · · uk for constant k; when k varies, NP-complete) • Warmuth & Haussler (’84; show w = u u · · · u NP-complete by reduction from 3-Partition) • More complexity • Buss & Yianilos (’98; “Monge condition”) • Erickson (2010; how hard is ∃u, w = u u?); as mentioned, Austrin gives polytime algorithm when each symbol occurs at most 4 times. Problem of the year on Stack Exchange. • Soltys (2012; shuﬄe in AC1 but not AC0 .)
- 55. An Algorithmic View of Computer Science PDA Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs A queue automaton is a PDA but with a queue instead of a stack. Reads the input w from left to right. Pop My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications Queue is initially empty and supports the operations push-bottom and pop-top. Automaton accepts if its queue is empty after the last symbol of w has Push been read. 27/42 w
- 56. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 28/42 w = 0110110011101000 and u = 01101100 = 01101100
- 57. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 ε 0110110011101000
- 58. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 0 110110011101000
- 59. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 0 1 10110011101000
- 60. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 0 1 1 0110011101000
- 61. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 1 1 110011101000
- 62. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 1 10011101000
- 63. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 ε 0011101000
- 64. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 0 011101000
- 65. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 ε 11101000
- 66. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 1 1101000
- 67. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 ε 101000
- 68. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 1 01000
- 69. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 1 0 1000
- 70. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 0 000
- 71. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 ε 00
- 72. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 0 0
- 73. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 29/42 ε ε accepted
- 74. An Algorithmic View of Computer Science Reduction Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications The many-one reduction to Square constructs a string wS over the alphabet Σ = {a1 , a2 , b, e0 , e, c1 , c2 , x, y }, such that wS is a square iﬀ S is a “yes” instance of 3-Partition. The string wS consists of three parts: wS := 30/42 loaderS distributorS veriﬁerS .
- 75. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 31/42 Security
- 76. An Algorithmic View of Computer Science Enigma machine Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 32/42 http://enigmaco.de/enigma/enigma.html
- 77. An Algorithmic View of Computer Science Uses of Crypto Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs SSL/SSH WEP, WPA/WPA2 My Research PGP/GPG Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 33/42 RSA Encryption BE 89 0E A1 AD 3B ED 75 E4 3E EF 62 10 52 7B 1B 50 60 2E 2E 8D 37 F9 EE 6E AF 57 69 94 8C 5B 5F 62 58 5E B6 82 D7 86 E5 5A 65 AA 9E 20 45 80 A8 D5 24 62 A5 1F 26 5E 128 bytes: FA 7D 58 6A F2 19 F7 F3 FC DD 94 96 79 AC 7C 2E 4F 82 C7 E4 EF 2E 50 7A CF F2 DF F4 4F 77 E4 91 4F 38 5E B4 5C 46 9D F1 AE 17 47 A1 0F A8 A3 12 6D 4D AA 8B 80 6A FA 35 81 04 53 CE E4 E0 C0 E4 D9 6B DE 55 0F 71 BD 36 6B DRM FairPlay MD5 5c3079df8a48623f5aa10f0181a7ab03
- 78. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications Cryptography is the art of computing & communicating in the presence of an adversary cryptography = κρυπτ o (hidden or secret) + γραφη (writing) Three broad applications: • encryption • authentication • integrity checking Not all security is an application of crypto, e.g., Firewalls. 34/42
- 79. An Algorithmic View of Computer Science Michael Soltys • Noisy channel Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications • Obfuscation • Password login • Client-server secure communication • Non-repudiation • Electronic voting • Digital cash • Secure storage on insecure media 35/42
- 80. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 36/42 Fundamental THEOREM of cryptography The following are all equivalent: • Secure shared-private-key cryptosystems exist. • Secure signature schemes exist. • Pseudo-random number generators exist. • One-way functions exist.
- 81. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications Fundamental TENET of cryptography Lots of smart people have been trying to ﬁgure out how to break X , but so far they have not been able to come up with anything yet. Therefore X is “secure” . . . 37/42
- 82. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Fundamental ASSUMPTION of cryptography Everybody knows how it works, i.e., the algorithm is public knowledge. The secret is the “key”. Security Cryptography Applications 38/42 In principle it can always be broken; but in practice it is too much work for the “bad guy.”
- 83. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? Amazing free tools: History Exciting ﬁeld Lots of Jobs My Research GnuPG (http://www.gnupg.org) Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 39/42 OpenSSL (http://www.openssl.org)
- 84. An Algorithmic View of Computer Science In practice Crypto not the problem Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications • We know how to do crypto scientiﬁcally → and it is a huge help • But, in practice most security problems due to buggy code → writing software that is not buggy is the problem of CS/SE • Challenge 1: build secure systems with insecure components → similar to building reliable systems with unreliable components • Challenge 2: the art of making the right trade-oﬀs to satisfy contradictory objectives (e.g., security & speed) 40/42
- 85. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 41/42 1 Same problem as software engineering: how to check whether a program conforms to its speciﬁcations?
- 86. An Algorithmic View of Computer Science 1 Same problem as software engineering: how to check whether a program conforms to its speciﬁcations? 2 How to “specify” security? Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 41/42
- 87. An Algorithmic View of Computer Science 1 Same problem as software engineering: how to check whether a program conforms to its speciﬁcations? 2 How to “specify” security? 3 User discipline is 90% of any security policy Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 41/42
- 88. An Algorithmic View of Computer Science 1 Same problem as software engineering: how to check whether a program conforms to its speciﬁcations? 2 How to “specify” security? 3 User discipline is 90% of any security policy 4 My main focus is network security Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 41/42
- 89. An Algorithmic View of Computer Science 1 Same problem as software engineering: how to check whether a program conforms to its speciﬁcations? 2 How to “specify” security? 3 User discipline is 90% of any security policy 4 My main focus is network security Consulting work: Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 41/42 5 • Forensic work — chain of evidence • Network Penetration Detection
- 90. An Algorithmic View of Computer Science 1 Same problem as software engineering: how to check whether a program conforms to its speciﬁcations? 2 How to “specify” security? 3 User discipline is 90% of any security policy 4 My main focus is network security Consulting work: Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research 5 • Forensic work — chain of evidence • Network Penetration Detection Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 41/42 6 Recent masters theses: • With Dragan Rakas: Homomorphic encryption • With Sabry Aly: GGH
- 91. An Algorithmic View of Computer Science 1 Same problem as software engineering: how to check whether a program conforms to its speciﬁcations? 2 How to “specify” security? 3 User discipline is 90% of any security policy 4 My main focus is network security Consulting work: Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research 5 • Forensic work — chain of evidence • Network Penetration Detection Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 6 • With Dragan Rakas: Homomorphic encryption • With Sabry Aly: GGH 7 41/42 Recent masters theses: Cybersecurity ﬁeld not ready to be professionalized [The National Academies Press 2013] Ad hoc solutions; best approach is “case based”
- 92. An Algorithmic View of Computer Science Michael Soltys Why Study Computer Science? History Exciting ﬁeld Lots of Jobs My Research Linear Algebra 0-1 Matrices Strings Security Cryptography Applications 42/42 Thank You! Questions?