ENGR/CS 101 CS Session Lecture 2 Starting with the next class, we will be using Visual Studio C#. If you would like to have a copy for your own computer: Lecture 2 Can download the C# Express Edition, link on the CS session webpage. Contains only the C# compiler. All students in EECS classes are enrolled in the UE MS Alliance program. Email with instructions should have been sent. Full Visual Studio 2010 is available (beta VS 2012 and Windows 8, too). ENGR/CS 101 Computer Science Session 1 Outline Software life cycle Problem: How to send a secret message? Codes and ciphers Substitution ciphers Lecture 2 ENGR/CS 101 Computer Science Session 2 Software Life Cycle Specification of the problem/task Analysis and design of a solution Implementation (coding) of the solution Testing and debugging Maintenance and evolution of the system Obsolescence Lecture 2 ENGR/CS 101 Computer Science Session 3 Problem: How to send a secret message? Steganography ("concealed writing"): science of sending concealed messages. Includes physical concealment like invisible ink, microdots... Cryptography ("hidden writing"): how to obscure message so it cannot be read even if intercepted. Use codes and ciphers. Lecture 2 ENGR/CS 101 Computer Science Session 4 Codes & Ciphers Code: whole words or phrases replaced by a word, letter, or a number. Like an alien language; uses translation code book. Cipher: individual letters are replaced by other letters or symbols. Plaintext: message in normal language Ciphertext: message in secret form Lecture 2 ENGR/CS 101 Computer Science Session 5 Ciphers Transposition cipher: rearrange letters of message. Scytale: strip of writing material wrapped around a dowel; write message across dowel. Block: arrange message into a block, rewrite vertical lines Substitution cipher: replace letters with other letters Lecture 2 ENGR/CS 101 Computer Science Session 6 Cipher = Algorithm + Key Algorithm: a series of well-defined steps that can be followed as a procedure. Key: auxiliary information used by an algorithm. Different keys produce different ciphers using the same algorithm. Lecture 2 ENGR/CS 101 Computer Science Session 7 Caesar Shift Cipher Algorithm: substitute a letter with the letter n places to the right Key: letter to shift 'A' to that is n places to the right. E.g. A -> I is shifting 8 places to the right: plain A B C D E F G H I J K L M cipher I J K L M N O P Q R S T U plain N O P Q R S T U V W X Y Z cipher V W X Y Z A B C D E F G H Lecture 2 ENGR/CS 101 Computer Science Session 8 In-class Exercise Practice enciphering and deciphering using Caesar shift cipher. Turn in worksheet at the end of class. Lecture 2 ENGR/CS 101 Computer Science Session 9 What if the key is unknown? How many possible keys are there for the Caesar Shift Cipher? How easy would it be to find the key? Lecture 2 ENGR/CS 101 Computer Science Session 10 Polyalphabetic Ciphers Make cipher harder to break by using multiple substitution alphabets Vigenere cipher: key is a "word" rather than just a single letter. Algorithm is to use the key letters to change the Caesar cipher shift key for each letter of plaintext. Lecture 2 ENGR/CS 101 Computer Science Session 11 Vigenere Cipher Example For example, if the key word is "LION" and the plaintext message is "GO ACES", the ciphertext would be "RW OPPA", formed as shown to the right. Lecture 2 plain key cipher G L R O I W A O O C N P E L P S I A ENGR/CS 101 Computer Science Session 12 Polyalphabetic Ciphers Suppose we allow any letter to be substituted by any other letter? E.g. a cryptoquip puzzle. The key would a substitution table mapping each letter to another letter. How many possible keys are there for this cipher? Lecture 2 ENGR/CS 101 Computer Science Session 13 400 Million Billion Billion Just how big is this number? 6.5 billion people on Earth; 31 million seconds in a year. If everyone on Earth checked one key per second, ... We can conclude that checking every possible key is not a feasible way of trying to decipher an arbitrary substitution cipher. Lecture 2 ENGR/CS 101 Computer Science Session 14 A Better Way to Decipher English letter frequency: E, T, A, O, ... One/two letter words: "I", "a", "to", "of", ... Common words: "the", "and", ... Repeated letters Context Lecture 2 ENGR/CS 101 Computer Science Session 15 Enigma Machine Random substitution cipher represented using a code wheel. Originally 3 code wheels, later 5 wheels. Instead of always starting with same letter on wheel as A, just encipher the current letter of plaintext with the next letter on wheel. Lecture 2 ENGR/CS 101 Computer Science Session 16