Intro to Computer Science CS1510

Slides:



Advertisements
Similar presentations
CLASSICAL ENCRYPTION TECHNIQUES
Advertisements

CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Computer Science 101 Data Encryption And Computer Networks.
Section 4.1: The Basics of Counting As we have seen, one way to count the number of objects in a finite set S is to produce a one-to-one correspondence.
Cryptology  Terminology  plaintext - text that is not encrypted.  ciphertext - the output of the encryption process.  key - the information required.
 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
CYPHER INDEX n Introduction n Background n Demo INTRODUCTION n Cypher is a software toolkit designed to aid in the decryption of standard (historical)
4-6 3x3 Matrices, Determinants, & Inverses
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 3.6: An Introduction to Cryptography
Cryptography Programming Lab
Lab 07: Caesar Cypher Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg.
Abstract: Cryptology is a combination of the processes of keeping a message secret (cryptography) and trying to break the secrecy of that message (cryptoanalysis).
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.
MAT 1000 Mathematics in Today's World Winter 2015.
Cryptography Cryptography is the use of mathematics to encode messages and prevent them from being read by anyone who doesn’t know the code. One way that.
Problem Solving Intro to Computer Science CS1510 Dr. Sarah Diesburg 1.
Encryption. LEARNING OBJECTIVES: BY THE END OF THE LESSON YOU SHOULD KNOW. What encryption is and why it is important The basics of encryption techniques.
More String Manipulation. Programming Challenge Define a function that accepts two arguments: a string literal and a single character. Have the function.
Intelligent Data Systems Lab. Department of Computer Science & Engineering Practices 컴퓨터의 개념 및 실습 4 월 11 일.
 Type Called bool  Bool has only two possible values: True and False.
Copyright © 2013, 2009, 2005 Pearson Education, Inc. 1 4 Inverse, Exponential, and Logarithmic Functions Copyright © 2013, 2009, 2005 Pearson Education,
CRYPTOGRAPHY G REEK WORD MEANING “ SECRET WRITING ”
DEVRY COMP 122 L AB 7 L AB R EPORT AND S OURCE C ODE C HECK THIS A+ TUTORIAL GUIDELINE AT HTTP :// WWW. ASSIGNMENTCLOUD. COM / COMP -122/ COMP LAB.
Vocabulary Big Data - “Big data is a broad term for datasets so large or complex that traditional data processing applications are inadequate.” Moore’s.
Whatcha doin'? Aims: To start using Python. To understand loops.
Introduction CS 303 Algorithmic Number Theory and Cryptography
Encryption.
Vocabulary Big Data - “Big data is a broad term for datasets so large or complex that traditional data processing applications are inadequate.” Moore’s.
Vocabulary Big Data - “Big data is a broad term for datasets so large or complex that traditional data processing applications are inadequate.” Moore’s.
Whatcha doin'? Aims: To understand the Caesar Cipher.
Networks Encryption.
Lesson 4-5 AP Computer Science Principles
Lesson 5: Simple Encryption
Week 4 gur zntvp jbeqf ner fdhrnzvfu bffvsentr
User access levels, Passwords, Encryption, Cipher, Key
More Nested Loops and Lab 5
Writing Methods AP Computer Science A.
String Encodings and Penny Math
Intro to Computer Science CS1510 Dr. Sarah Diesburg
What is an equation? An equation is a mathematical statement that two expressions are equal. For example, = 7 is an equation. Note: An equation.
Cryptography “The Secret Code Language”
Intro to Computer Science CS1510
Reactive Android Development
Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg
CSC 221: Introduction to Programming Fall 2018
Chapter Nine: Data Transmission
Simple Encryption- Lesson 5
Cryptography Cryptography is derived from the Green word ‘kryptos’
Data Structure and Algorithms
Introduction to Strings
Lesson 7: Simple Encryption
What Is Wrong With This Simple Code?
functions: argument, return value
How to use hash tables to solve olympiad problems
Intro to Computer Science CS1510 Dr. Sarah Diesburg
Intro to Computer Science CS1510 Dr. Sarah Diesburg
POWER CHALLENGES Several Ways To Solve 7 CHALLENGES.
Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg
Introduction to Strings
Lists – Indexing and Sorting
String Encodings and Penny Math
CS2911 Week 3, Lab Today Thursday Friday Review Muddiest Point Lab 3
GCSE COMPUTER SCIENCE Topic 3 - Data 3.10 Encryption.
Double Transpositions
Algorithms CSCI 235, Spring 2019 Lecture 30 More Greedy Algorithms
CMPT 120 Lecture 9 – Unit 2 – Cryptography and Encryption –
Presentation transcript:

Intro to Computer Science CS1510 Lab 07: Caesar Cypher Intro to Computer Science CS1510

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

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”

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

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

Mathematical Solution ‘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

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 - 26

Mathematical Solution Let’s create the solution

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

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

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”

Shifted String Solution Let’s create the solution

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,…)