Cryptography Programming Lab

Slides:



Advertisements
Similar presentations
CLASSICAL ENCRYPTION TECHNIQUES
Advertisements

Using Cryptography to Secure Information. Overview Introduction to Cryptography Using Symmetric Encryption Using Hash Functions Using Public Key Encryption.
Cryptology with Spreadsheets A Computer Course for Everyone Jim Belk Texas A&M University.
Computer Science 101 Data Encryption And Computer Networks.
Cryptology Terminology and Early History. Cryptology Terms Cryptology –The science of concealing the meaning of messages and the discovery of the meaning.
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.
Creating Secret Messages. 2 Why do we need to keep things secret? Historically, secret messages were used in wars and battles For example, the Enigma.
CRYPTOGRAPHY Lecture 5. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M.
Modelling and Analysing of Security Protocol: Lecture 2 Cryptology for Protocols Analysis Tom Chothia CWI.
1 Day 04- Cryptography Acknowledgements to Dr. Ola Flygt of Växjö University, Sweden for providing the original slides.
CYPHER INDEX n Introduction n Background n Demo INTRODUCTION n Cypher is a software toolkit designed to aid in the decryption of standard (historical)
CS526Topic 2: Classical Cryptography1 Information Security CS 526 Topic 2 Cryptography: Terminology & Classic Ciphers.
CSE 651: Introduction to Network Security
Chapter 2 – Classical Encryption Techniques
Section 3.6: An Introduction to Cryptography
Chapter 2 Basic Encryption and Decryption. csci5233 computer security & integrity 2 Encryption / Decryption encrypted transmission AB plaintext ciphertext.
Classical Encryption Techniques
CS324e - Elements of Graphics and Visualization Java Intro / Review.
A Technical Seminar Presentation CLASSICAL CRYPTOGRAPHY
1 University of Palestine Information Security Principles ITGD 2202 Ms. Eman Alajrami 2 nd Semester
MAT 1000 Mathematics in Today's World Winter 2015.
CS110: Computers and the Internet Encryption and Certificates.
Chapter 2 – Elementary Cryptography  Concepts of encryption  Cryptanalysis  Symmetric (secret key) Encryption (DES & AES)(DES & AES)  Asymmetric (public.
Crypto Laboratory Winter Alexander Grechin and Zohar Rogel Under supervision of Zvika Berkovich.
1 Chapter 2 Plain Text Also called as clear text Language that we normally use Easily understood by everybody.
Cryptography and Network Security (CS435) Part Two (Classic Encryption Techniques)
Day 18. Concepts Plaintext: the original message Ciphertext: the transformed message Encryption: transformation of plaintext into ciphertext Decryption:
1 Chapter 2-1 Conventional Encryption Message Confidentiality.
30.1 Chapter 30 Cryptography Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Symmetric-Key Cryptography
An Introduction to Cryptography. What is cryptography? noun \krip- ˈ tä-grə-fē\ : the process of writing or reading secret messages or codes “Encryption”:
Module :MA3036NI Cryptography and Number Theory Lecture Week 3 Symmetric Encryption-2.
Terminology and classical Cryptology
CSCI 5857: Encoding and Encryption
Conventional crypto - Noack Conventional crypto Diffusion and confusion How Mary Queen of Scots lost her head Various hand operable ciphers Various Enigmas.
Abstract: Cryptology is a combination of the processes of keeping a message secret (cryptography) and trying to break the secrecy of that message (cryptoanalysis).
Elementary Cryptography  Concepts of encryption  Symmetric (secret key) Encryption (DES & AES)(DES & AES)  Asymmetric (public key) Encryption (RSA)(RSA)
Cryptography (Traditional Ciphers)
Lecture 3 Page 1 Advanced Network Security Review of Cryptography Advanced Network Security Peter Reiher August, 2014.
Traditional Symmetric-Key Ciphers
Security in Computing Cryptography (Traditional Ciphers)
Computer Security Cryptography. Cryptography Now and Before  In the past – mainly used for confidentiality  Today –Still used for confidentiality –Data.
Representing Characters in a computer Pressing a key on the computer a code is generated that the computer can convert into a symbol for displaying or.
MAT 1000 Mathematics in Today's World Winter 2015.
Encryption CS110: Computer Science and the Internet.
Introduction to Cryptography Lecture 8. Polyalphabetic Substitutions Definition: Let be different substitution ciphers. Then to encrypt the message apply.
Cryptography.
Lecture 4 Page 1 CS 236 Online Basic Encryption Methods Substitutions –Monoalphabetic –Polyalphabetic Permutations.
Vigenére Cipher Kimberly Chiffens & Maria Jannelli.
ROT13 cipher. The ROT13 cipher is a substitution cipher with a specific key where the letters of the alphabet are offset 13 places. Example: all 'A's.
1 Classical Encryption Techniques. 2 Symmetric cipher model –Cryptography –Cryptanalysis Substitution techniques –Caesar cipher –Monoalphabetic cipher.
Chapter Two: Classic Cryptography
LAB#3 CLASSICAL ENCRYPTION CPIT 425. This diagram is taken from Dr.Omaima slides.
CRYPTOGRAPHY G REEK WORD MEANING “ SECRET WRITING ”
Encryption with Keys and Passwords
Substitution Ciphers.
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.
SUBSTITUTION CIPHERS A substitution technique is one in which the letters/number/symbols of plain text are replaced by other letters/numbers/symbols.
Chapter-2 Classical Encryption Techniques.
Taehyung Kim HPC Lab. POSTECH
Outline Some Basic Terminology Symmetric Encryption
A Technical Seminar Presentation CLASSICAL CRYPTOGRAPHY
Encryption with Keys and Passwords
Encryption and Decryption
Simple Encryption- Lesson 5
Encryption with Keys and Passwords
Presentation transcript:

Cryptography Programming Lab Mike Scott

Why Cryptography? Astrachan’s Law: Secrets are interesting “Do not give an assignment that computes something that is more easily figured out without a computer. ... Show off the power of computation.” Secrets are interesting Practical applications Is it safe to use my credit card to purchase something via a website? Fascinating history Mary Queen of Scots, Alan Turing Application of mathematics and programming

Plan for today Look at four different ciphers Complete program involving each Caesar Columnar Random Substitution Vigenère

Definitions Cryptography Cipher Encryption Decryption The art and study of hiding information Cipher Algorithm for performing encryption and decryption Encryption Converting plain text (or information) to unintelligible text (aka cipher text) that cannot be understood without knowing how the information was converted Decryption recovering the original plain text from the cipher text

Caesar Cipher Named after Julius Caesar Also called the shift cipher Example of a substitution cipher Each letter (or character) is replaced by another letter in the alphabet

Caesar cipher Example with a shift of 5 ABCDEFGHIJKLMNOPQRSTUVWXYZ Plain FGHIJKLMNOPQRSTUVWXYZABCDE Encrypted COMPUTER SCIENCE Plain HTRUZYJWXHNJSHJ Encrypted Assume all non letters removed.

Variations Using computer could simply apply shift to all characters, not just upper case letters Printable ASCII characters space to ~ (32 – 126) Maintain or remove non letters? lower case to upper case?

Breaking Caesar Cipher Brute force With only letters try all 25 possibilities Still not hard if all ASCII

Caesar Programming Problem Log in Go to http://userweb.cs.utexas.edu/~scottm/ Click on link to Crypto Resources at bottom of page Download Caesar.java to desktop Start Eclipse (or other IDE if you prefer) Create project Add file Complete method printAllShifts(String msg)

Columnar Cipher Example of a Transposition cipher The characters from the original message are used, but put in a different order, based on the cipher Hook ‘em Horns! We bleed orange! Plain Pick a number of rows for the cipher Fill in the grid in column major order

Columnar Encryption H ' o l e r W ! m n a k s d b g Hook ‘em Horns! We bleed orange! Read off rows to create message H’o loeoerWer!omneeak s dn H!b g H ' o l e r W ! m n a k s d b g

Columnar Programming Problem Download Columnar.java Complete the method printColumnar(String clear, int rows)

Random Substitution Cipher How strong is the Caesar cipher? Pick a secret word with no repeat letters, computery ABCDEFGHIJKLMNOPQRSTUVWXYZ Plain COMPUTERYABDFGHIJKLNQSVWXZ Encrypted

Example ABCDEFGHIJKLMNOPQRSTUVWXYZ Plain COMPUTERYABDFGHIJKLNQSVWXZ Encrypted THE ANSWER FOR NUMBER THREE IS A THEANSWERTONUMBERTHREEISA Plain NRUCGLVUKNHGQFOUKNRKUUYLC Encrypted

Random Substitution Ciphers Instead of picking a keyword randomly pick letters Must share the whole key, but lots of possibilities 26! possible keys = 4.03291461 × 1026 Assume we could check a billion keys a second It would take 1.27882883 × 1010 years to check them all. About the age of the universe

But ... But substitution ciphers turn out to be relatively easy to solve Why?

Letter Frequency

Cracking the Substitution Cipher Given an encrypted message count how often each character occurs If only letters, assume most frequent letter is e, next most frequent is t, next most frequent is a, and so forth Apply the potential key Look for clear words Alter key as appropriate

Substitution Programming Problem With a computer a key can easily be created that uses all printable characters not just the letters. Download DecryptSub.java Complete the method int[] createFreqTable(String encrypted) The method returns an array of length 128. All ASCII chars are counted. The index of the array maps to the ASCII value of the char

Substitution Programming Problem When run the program: converts a hard coded file (which I have encrypted with a randomly generated substitution key) to a String creates a frequency table (using your method) creates an initial key based on the frequency table and the “normal” frequency of printable ASCII chars applies the initial key to the encrypted message and displays it prompts for change in key, applies it and displays new decrypted message (A bit of an art)

Vigenère Cipher Named after Blaise de Vigenère “The Unbreakable Cipher” A poly-alphabetic substitution cipher Each letter in the plain text can encrypt to multiple letters

Vigenère Cipher All 26 Caesar Ciphers Pick a secret word Repeat secret word over the plain text The secret word letter gives the row, the plain text gives the column The letter at the intersection is the cipher text

Vigenère Cipher Example Secret word: TEXAS Plain text: MEET AT THE TOWER TEXASTEXASTEXA MEETATTHETOWER 1st letter, row T, column M -> F 2nd letter, row E, column E -> I 3rd letter, row X, column E -> B FIBTSMXEELHABR

Large Vigenère Example

Frequencies In Cipher text Longer Secret Words with more of the letters flattens it more!

Breaking the Vigenère Cipher Given a long enough sample of cipher text it is possible to break the Vigenère cipher Assume the secret word is TEXAS which has a length of 5. Notice then there are 5 ways to encode the plain text word “the” Some words show up a lot in regular language So let’s look for 3 letter sequences that are repeated in a cipher text

Cipher Text BLXDLAMPSLHVVFJHQLNWPLLHSWRLBMLMKEKLXLTWEPFTLHQBOJMSXNQHXEEJBQXYUKIAILMLBSWWYZTAOIFNXEYBNUXSCAFHPAVAGXXGWNTLNLAIKAJKEQOJYSOTZXFBGAGRFNYHJFTSGHJYGPRPKWIXFCSEMKCJXHRLAMCAUJBRDTZXHXYKMLXTXHPIOOXHCOJMLBBSEEKCWHJQHWLXOAFZIQADXAEEFFCZOFOMSISELLSLWMPCGOIOEVMLXTZXLXDLHPAMWLSJUUAEK DLAEQIOTWMRGGIQOVHYYTXNPKEKL

3 Letter Repeated Sequences DLA [270] EKL [265] HPA [165] KEK [265] LAM [159] LXD [255] LXT [70] MLB [125] MLX [70] OJM [145] TZX [50, 130, 80] XDL [255] Numbers are distances between the repeated 3 letter sequence

Using Repeated Sequences Some repeated sequences will just be random. But, some will be due to the same word being encoded with the same parts of the secret word! If this is the case the secret word is a factor of the distance between the repeated sequences

Factors of Distances DLA: [2, 3, 5, 6, 9, 10, 15, 18, 27, 30, 45, 54, 90, 135, 270] EKL: [5, 53, 265] HPA: [3, 5, 11, 15, 33, 55, 165] KEK: [5, 53, 265] LAM: [3, 53, 159] LXD: [3, 5, 15, 15, 17, 51, 85, 255] LXT: [2, 5, 7, 10, 14, 35, 70] MLB: [5, 25, 125] MLX: [2, 5, 7, 10, 14, 35, 70] OJM: [5, 29, 145] TZX: [2, 5, 10, 25, 50] TZX: [2, 5, 10, 13, 26, 65, 130] TZX: [2, 4, 5, 8, 8, 10, 16, 20, 40, 80] XDL: [3, 5, 15, 15, 17, 51, 85, 255]

Frequency of Factors 2 - 6 3 - 5 4 - 1 5 - 13 6 - 1 7 - 2 8 - 2 9 - 1 10 - 6 11 - 1 13 - 1 14 - 2 15 - 6 16 - 1 17 - 2 18 - 1 20 - 1 25 - 2 26 - 1 27 - 1 29 - 1 30 - 1 33 - 1 35 - 2 40 - 1 45 - 1 50 - 1 51 - 2 53 - 3 54 - 1 55 - 1 65 - 1 70 - 2 80 - 1 85 - 2 90 - 1 125 - 1 130 - 1 135 - 1 145 - 1 159 - 1 165 - 1 255 - 2 265 - 2 270 - 1

Secret Code Word Strong evidence the code word is length 5 So start with first character and do frequency analysis on every 5th character. Will just be a simple Caesar shift Repeat starting at second character and every 5th 5 frequency analysis problems

Simon Singh Vigenère Cracking Tool

Slide for Best Fit First Letter of Secret Word is V in this example

Vigenère Programming Problem Download FindSecretWordLength.java Complete the printFactors(String repeatedSection, int distance) method that prints all factors of distance in order If you finish add a method to find the most frequent factor. Feel free to change printFactors to return the factors found.