Lab 07: Caesar Cypher Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg.

Slides:



Advertisements
Similar presentations
CATHERINE AND ANNIE Python: Part 3. Intro to Loops Do you remember in Alice when you could use a loop to make a character perform an action multiple times?
Advertisements

 Caesar used to encrypt his messages using a very simple algorithm, which could be easily decrypted if you know the key.  He would take each letter.
Python Magic Select a Lesson: Why Learn to Code? Basic Python Syntax
Computer Science II Exam I Review Monday, February 6, 2006.
Identifiers and Assignment Statements. Data structures In any programming language you need to refer to data The simplest way is with the actual data.
Section 2 - More Basics. The char Data Type Data type of a single character Example char letter; letter = 'C';
Section 3.6: An Introduction to Cryptography
Introduction to Functions Intro to Computer Science CS1510 Dr. Sarah Diesburg.
MAT 1000 Mathematics in Today's World Winter 2015.
CATHERINE AND ANNIE Python: Part 4. Strings  Strings are interesting creatures. Although words are strings, anything contained within a set of quotes.
More on Functions (Part 2) Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg.
Encryption: A Brief History Author: Margery Waldron.
Lists and Tuples Intro to Computer Science CS1510 Dr. Sarah Diesburg.
Numerical Representation Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg 1.
Lab 07: Caesar Cypher Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg.
Intro to Nested Looping Intro to Computer Science CS1510 Dr. Sarah Diesburg.
David Evans CS150: Computer Science University of Virginia Computer Science Lecture 36: Modeling Computing.
Exam Prep and Wrap-Up Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg.
MAT 1000 Mathematics in Today's World Winter 2015.
Introduction to Strings Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg 1.
More on Functions Intro to Computer Science CS1510 Dr. Sarah Diesburg.
Introduction to Files Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg 1.
Problem Solving Intro to Computer Science CS1510 Dr. Sarah Diesburg 1.
More String Manipulation. Programming Challenge Define a function that accepts two arguments: a string literal and a single character. Have the function.
More on Functions Intro to Computer Science CS1510 Dr. Sarah Diesburg.
More on Functions (Part 2) Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg.
Intelligent Data Systems Lab. Department of Computer Science & Engineering Practices 컴퓨터의 개념 및 실습 4 월 11 일.
 Type Called bool  Bool has only two possible values: True and False.
Encryption.
Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg
Chapter 8 Namespaces and Memory Realities
Thinking about programming
Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg
Intro to Computer Science CS1510
More Nested Loops and Lab 5
Lists – Indexing and Sorting
String Encodings and Penny Math
Intro to Nested Looping
Types, Truth, and Expressions (Part 2)
Intro to Computer Science CS1510 Dr. Sarah Diesburg
Chapter 8 Namespaces and Memory Realities
Intro to Computer Science CS1510
Reactive Android Development
Thinking about Strings
Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg
2 Understanding Variables and Solving Equations.
Simple Encryption- Lesson 5
Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg
More on Functions (Part 2)
Lists – Indexing and Sorting
Intro to Nested Looping
Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg
Introduction to Strings
functions: argument, return value
Course Information and Introductions
How to use hash tables to solve olympiad problems
Intro to Computer Science CS1510 Dr. Sarah Diesburg
Thinking about programming
Intro to Computer Science CS1510 Dr. Sarah Diesburg
Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg
Introduction to Strings
More Functional Decomposition
Lists – Indexing and Sorting
String Encodings and Penny Math
Types, Truth, and Expressions
Course Information and Introductions
Introduction to Strings
CMPT 120 Lecture 10 – Unit 2 – Cryptography and Encryption –
Intro to Computer Science CS1510 Dr. Sarah Diesburg
Presentation transcript:

Lab 07: Caesar Cypher Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg

Caesar Cypher Method named after Julius Caesar  Used in his private correspondence One of the simplest and most widely-known encryption techniques

Caesar Cypher We can start understanding the Caesar Cypher by writing out each letter of the alphabet 3

Caesar Cypher To encode, we apply a rotation value to the alphabet Before encoding with rotation of 3: “hello” After encoding (shift 3 to right): “khoor” After decoding (shift 3 to left): “hello” 4

Caesar Cypher Two ways to solve the problem  Mathematically using ord() and chr() functions  Create a shifted string, use the str.find() method 5

Mathematical Solution This solution hinges around knowing the ASCII/Unicode values of letters We only encode lowercase letters and leave all other letters the same 6

Mathematical Solution ‘a’=97 ‘z’=122 As we go through the string to encrypt, each ord() of each character must be >= 97 and <= 122 for us to apply a shift We then add the rotation value (say 3) to the ord() of each character to create a shifted character We can then take the chr() of the shifted character to get the encoded character 8

Mathematical Solution But what if shifting the character brings us beyond our bound of z?  ord(y) + 3 = 124  chr(124) = “|” We must check that’s not the case by using an “if” statement if shiftedChar > 122: shiftedChar = shiftedChar

Mathematical Solution Let’s create the solution 10

Shifted String Solution The other solution involves using two strings Alphabet Shifted alphabet, based on rotation value (say 3) 11

Shifted String Solution We can go through the string to be encoded character by character For each character, we use the str.find() method to get the index of the character in the regular alphabet origIndex = input.find(“h”)  Is 7 12

Shifted String Solution Once we have the index of the character in the alphabet, we can look up what character is at that index in the shifted alphabet shiftedChar = shiftedAlphabet[7]  Remember, origIndex = 7  shiftedChar is now “k” 13

Shifted String Solution Let’s create the solution 14

Cracking the Code We don’t know the rotation value, but we do know one word in the decoded string We need to start decoding with all possible rotation values, starting at 1  If we can find the one word we know in the decoded string, we are done  Otherwise, we keep decoding with different rotation values (2,3,4,…) 15

Advice for the Tests These two things can make the difference of whether you pass or fail this class before taking the exams  Go through each class days notes and example programs on the website  Practice coding over and over!!! This is the only way to really learn. Review by reading the book!! 16

Advice for Tests Will go over a review in class on Friday  This is not a replacement for you studying on your own! In-class exam next Monday  Closed book, closed notes In-lab exam next Tuesday  Can use Python docs and one side of one sheet of paper with notes 17