CSCE 465 Computer & Network Security



Similar documents
Cryptography and Network Security

How To Encrypt With A 64 Bit Block Cipher

Block encryption. CS-4920: Lecture 7 Secret key cryptography. Determining the plaintext ciphertext mapping. CS4920-Lecture 7 4/1/2015

Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Cryptography and Network Security Chapter 3

How To Understand And Understand The History Of Cryptography

Lecture 4 Data Encryption Standard (DES)

Cryptography and Network Security Block Cipher

CIS433/533 - Computer and Network Security Cryptography

1 Data Encryption Algorithm

Network Security. Chapter 3 Symmetric Cryptography. Symmetric Encryption. Modes of Encryption. Symmetric Block Ciphers - Modes of Encryption ECB (1)

Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Network Security. Abusayeed Saifullah. CS 5600 Computer Networks. These slides are adapted from Kurose and Ross 8-1

Symmetric Key cryptosystem

Keywords Web Service, security, DES, cryptography.

The Advanced Encryption Standard (AES)

Network Security. Omer Rana

Implementation of Full -Parallelism AES Encryption and Decryption

The Advanced Encryption Standard: Four Years On

SeChat: An AES Encrypted Chat

6 Data Encryption Standard (DES)


Secret File Sharing Techniques using AES algorithm. C. Navya Latha Garima Agarwal Anila Kumar GVN

Network Security - ISA 656 Introduction to Cryptography

Enhancing Advanced Encryption Standard S-Box Generation Based on Round Key

Cryptography and Network Security. Prof. D. Mukhopadhyay. Department of Computer Science and Engineering. Indian Institute of Technology, Kharagpur

Overview of Symmetric Encryption

AStudyofEncryptionAlgorithmsAESDESandRSAforSecurity

Modern Block Cipher Standards (AES) Debdeep Mukhopadhyay

CSCE 465 Computer & Network Security

CRYPTOGRAPHY IN NETWORK SECURITY

Design and Implementation of Asymmetric Cryptography Using AES Algorithm

The Advanced Encryption Standard (AES)

MAC. SKE in Practice. Lecture 5

Network Security. Security. Security Services. Crytographic algorithms. privacy authenticity Message integrity. Public key (RSA) Message digest (MD5)

Lecture Note 8 ATTACKS ON CRYPTOSYSTEMS I. Sourav Mukhopadhyay

A Study of New Trends in Blowfish Algorithm

A PPENDIX G S IMPLIFIED DES

Efficient Software Implementation of AES on 32-bit Platforms

Message Authentication Codes

A Comparative Study Of Two Symmetric Encryption Algorithms Across Different Platforms.

Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2010

lundi 1 octobre 2012 In a set of N elements, by picking at random N elements, we have with high probability a collision two elements are equal

Network Security. Computer Networking Lecture 08. March 19, HKU SPACE Community College. HKU SPACE CC CN Lecture 08 1/23

Cryptography Lecture 8. Digital signatures, hash functions

Overview of Cryptographic Tools for Data Security. Murat Kantarcioglu

The Misuse of RC4 in Microsoft Word and Excel

IJESRT. [Padama, 2(5): May, 2013] ISSN:

AC76/AT76 CRYPTOGRAPHY & NETWORK SECURITY DEC 2014

Cryptography and Network Security Department of Computer Science and Engineering Indian Institute of Technology Kharagpur

Cryptography: Motivation. Data Structures and Algorithms Cryptography. Secret Writing Methods. Many areas have sensitive information, e.g.

AN IMPLEMENTATION OF HYBRID ENCRYPTION-DECRYPTION (RSA WITH AES AND SHA256) FOR USE IN DATA EXCHANGE BETWEEN CLIENT APPLICATIONS AND WEB SERVICES

7! Cryptographic Techniques! A Brief Introduction

Survey on Enhancing Cloud Data Security using EAP with Rijndael Encryption Algorithm

Overview/Questions. What is Cryptography? The Caesar Shift Cipher. CS101 Lecture 21: Overview of Cryptography

Developing and Investigation of a New Technique Combining Message Authentication and Encryption

A PPENDIX H RITERIA FOR AES E VALUATION C RITERIA FOR

Improving Performance of Secure Data Transmission in Communication Networks Using Physical Implementation of AES

Network Security CS 5490/6490 Fall 2015 Lecture Notes 8/26/2015

A Survey on Performance Analysis of DES, AES and RSA Algorithm along with LSB Substitution Technique

F3 Symmetric Encryption

A Standards-based Approach to IP Protection for HDLs

Design and Verification of Area-Optimized AES Based on FPGA Using Verilog HDL

Split Based Encryption in Secure File Transfer

{(i,j) 1 < i,j < n} pairs, X and X i, such that X and X i differ. exclusive-or sums. ( ) ( i ) V = f x f x

CIS 6930 Emerging Topics in Network Security. Topic 2. Network Security Primitives

Common Pitfalls in Cryptography for Software Developers. OWASP AppSec Israel July The OWASP Foundation

Rijndael Encryption implementation on different platforms, with emphasis on performance

Client Server Registration Protocol

Lecture 3: Block Ciphers and the Data Encryption Standard. Lecture Notes on Computer and Network Security. by Avi Kak

Network Security Technology Network Management

CLOUD COMPUTING SECURITY ARCHITECTURE - IMPLEMENTING DES ALGORITHM IN CLOUD FOR DATA SECURITY

Chapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography

Properties of Secure Network Communication

Table of Contents. Bibliografische Informationen digitalisiert durch

Message Authentication

CS 758: Cryptography / Network Security

Today. Network Security. Crypto as Munitions. Crypto as Munitions. History of Cryptography

ELECTENG702 Advanced Embedded Systems. Improving AES128 software for Altera Nios II processor using custom instructions

Lecture 9: Application of Cryptography

Introduction. Where Is The Threat? Encryption Methods for Protecting Data. BOSaNOVA, Inc. Phone: Web:

Parallel AES Encryption with Modified Mix-columns For Many Core Processor Arrays M.S.Arun, V.Saminathan

Network Security: Cryptography CS/SS G513 S.K. Sahay

Network Security. Security Attacks. Normal flow: Interruption: 孫 宏 民 Phone: 國 立 清 華 大 學 資 訊 工 程 系 資 訊 安 全 實 驗 室

Hash Functions. Integrity checks

A Comparison of the 3DES and AES Encryption Standards

Fast Implementations of AES on Various Platforms

A NOVEL STRATEGY TO PROVIDE SECURE CHANNEL OVER WIRELESS TO WIRE COMMUNICATION

A NEW APPROACH FOR COMPLEX ENCRYPTING AND DECRYPTING DATA

EXAM questions for the course TTM Information Security May Part 1

Secure Network Communication Based on Text-to-Image Encryption

A NEW DNA BASED APPROACH OF GENERATING KEY-DEPENDENT SHIFTROWS TRANSFORMATION

Combining Mifare Card and agsxmpp to Construct a Secure Instant Messaging Software

Cyber Security Workshop Encryption Reference Manual

AESvisual: A Visualization Tool for the AES Cipher

IT Networks & Security CERT Luncheon Series: Cryptography

Counter Expertise Review on the TNO Security Analysis of the Dutch OV-Chipkaart. OV-Chipkaart Security Issues Tutorial for Non-Expert Readers

Transcription:

CSCE 465 Computer & Network Security Instructor: Dr. Guofei Gu http://courses.cse.tamu.edu/guofei/csce465/ Secret Key Cryptography (I) 1

Introductory Remarks Roadmap Feistel Cipher DES AES Introduction 2

Secret Key Cryptography plaintext Encryption ciphertext Decryption plaintext key Same key is used for both encryption and decryption this one key is shared by two parties who wish to communicate securly Also known as symmetric key cryptography, or shared key cryptography Applications of Secret Key Crypto Communicating securely over an insecure channel Alice encrypts using shared key Bob decrypts result using same shared key Secure storage on insecure media Bob encrypts data before storage Bob decrypts data on retrieval using the same key 3

Applications (Cont d) Message integrity Alice computes a message integrity code (MIC) from the message, then encrypts with shared key Bob decrypts the MIC on receipt, and verifies that it agrees with message contents Authentication Bob can verify Alice sent the message how is that possible? Generic Block Encryption Converts one input plaintext block of fixed size k bits to an output ciphertext block also of k bits Benefits of large k? of short k? plaintext block 0 block 1 block 2 key Encryption ciphertext block 0 block 1 block 2 4

Key Sizes Keys should be selected from a large potential set, to prevent brute force attacks Secret key sizes 40 bits were considered adequate in 70 s 56 bits used by DES were adequate in the 80 s 128 bits are adequate for now If computers increase in power by 40% per year, need roughly 5 more key bits per decade to stay sufficiently hard to break Notation X Å Y X Y K{m} Notation Meaning Bit-wise exclusive-or of X and Y Concatenation of X and Y Message m encrypted with secret key K 5

Two Principles for Cipher Design Confusion: Make the relationship between the <plaintext, key> input and the <ciphertext> output as complex (non-linear) as possible Diffusion: Spread the influence of each input bit across many output bits Exploiting the Principles Idea: use multiple, alternating permutations and substitutions, e.g., SàPàSàPàSà PàSàPàSàPà Do they have to alternate? e.g. SàSàSàPàPàPàSàSà?? Confusion is mainly accomplished by substitutions Diffusion is mainly accomplished by permutations Example ciphers: DES, AES 6

Secret Key (Cont d) Basic technique used in secret key ciphers: multiple applications of alternating substitutions and permutations plaintext S P S P S ciphertext key Well-known examples: DES, AES Basic Form of Modern Block Ciphers Plaintext block Key Preprocessing Sub-Key Generation Rounds of Encryption i=1,2,,n Sub-Key #1 Sub-Key #2 Sub-Key #3 Sub-Key #n Postprocessing Ciphertext block 7

Feistel Ciphers Overview Feistel Cipher has been a very influential template for designing a block cipher Major benefit: can do encryption and decryption with the same hardware Examples: DES, RC5 8

One Round of Feistel Encryption 1. Break input block i into left and right halves L i and R i 2. Copy R i to create output half block L i+1 L i Input block i f R i K i 3. Half block R i and key K i are scrambled by function f 4. XOR result with input half-block L i to create output half-block R i+1 Å L i+1 R i+1 Output block i+1 One Round of Feistel Decryption Just reverse the Output block i+1 arrows! L i R i f K i Å L i+1 R i+1 Input block i 9

Complete Feistel Cipher: Encryption Plaintext (2w bits) L 0 R 0 Round 1 Å f K 1 K 2 Round i Å f L 2 R 2 Round n Å f K n note this final swap! L n L n+1 R n+1 R n CSC/ECE 574 Ciphertext Dr. Peng Ning (2w bits) 19 Feistel Cipher: Decryption Ciphertext (2w bits) L 0 R 0 Round 1 Å f K n K n-1 Round i Å f L 2 R 2 Round n Å f K 1 note this final swap! L n L n+1 R n+1 R n Plaintext (2w bits) CSC/ECE 574 Dr. Peng Ning 20 10

Parameters of a Feistel Cipher Block size Key size Number of rounds Subkey generation algorithm Scrambling function f Comments Decryption is same as encryption, only reversing the order in which round keys are applied Reversability of Feistel cipher derives from reversability of XOR Function f can be anything Hopefully something easy to compute There is no need to invert f 11

DES (Data Encryption Standard) DES (Data Encryption Standard) Standardized in 1976 by NBS proposed by IBM, Feistel cipher Criteria (official) provide high level of security security must reside in key, not algorithm not patented must be exportable efficient to implement in hardware Criteria (unofficial) must be slow to execute in software must be breakable by NSA :-) 12

DES Basics Blocks: 64 bit plaintext input, 64 bit ciphertext output Rounds: 16 Key: 64 bits every 8 th bit is a parity bit, so really 56 bits long 64 bit plaintext block 64 bit DES Encryption ciphertex t block 56 bit key (+ 8 bits parity) DES Top Level View 64-bit Input 56-bit Key Initial Permutation Generate round keys Round 1 Round 2 Round 16 48-bit K 1 48-bit K 2 48-bit K 16 Swap Halves Final Permutation 64-bit Output 13

Initial and Final Permutations Initial permutation given below input bit #58àoutput bit #1, input bit #50à output bit #2, 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 64-bit Input Initial Permutation Round 1 Round 2.. Round. 16 Swap Halves Final Permutation 64-bit Output 56-bit Key Generate round keys 48-bit K 1 48-bit K 2 48-bit K 16 Initial (Cont d) Final permutation is just inverse of initial permutation, i.e., input bit #1à output bit #58 input bit #2à output bit #50 64-bit Input Initial Permutation Round 1 Round 2.. Round. 16 Swap Halves Final Permutation 64-bit Output 56-bit Key Generate round keys 48-bit K 1 48-bit K 2 48-bit K 16 14

Initial (Cont d) Note #1: Initial Permutation is fully specified (independent of key) therefore, does not improve security! why needed? Note #2: Final Permutation is needed to make this a Feistel cipher i.e., can use same hardware for both encryption and decryption 8 rows Key Generation: First Permutation First step: throw out 8 parity bits, then permute resulting 56 bits 7 columns 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 64-bit Input Initial Permutation Round 1 Round 2.. Round. 16 Swap Halves Final Permutation 64-bit Output 56-bit Key Generate round keys 48-bit K 1 48-bit K 2 48-bit K 16 Parity bits left out: 8,16,24, 15

KeyGen: Processing Per Round C i-1 28 bits D i-1 28 bits 48 bit K i Circular Left Shift C i Permutation with Discard Circular Left Shift D i 28 bits 28 bits Rounds i = 1,2,9,16: left circular shift 1 bit Other rounds: left circular shift 2 bits KeyGen: Permutation with Discard 28 bits à 24 bits, each half of key Left half of K i = permutation of C i 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 Bits left out: 9,18,22,25 Bits left out: 35,38,43,54 Right half of K i = permutation of D i 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 16

One DES (Feistel) Round Input block i L i R i 64-bit Input Initial Permutation Round 1 Round 2.. Round. 16 Swap Halves Final Permutation 56-bit Key Generate round keys 48-bit K 1 48-bit K 2 48-bit K 16 f K i 64-bit Output Å L i+1 R i+1 Output block i+1 DES Round: f (Mangler) Function function f = Mangler Input block i 32-bit half block L i R i Expansion f K i 48 bits K i Å S-Box (substitution) Permutation L i+1 R i+1 Output block i+1 32-bit half block 17

32 bits è 48 bits f: Expansion Function these bits are repeated 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 f: S-Box (Substitute, Shrink) 48 bits è 32 bits 6 bits are used to select a 4-bit substitution i.e., for every output, there are four inputs that map to it 2 bits row 4 bits column I1 I2 I3 I4 I5 I6 S i O1 O2 O3 O4 an integer between 0 and 15 for i = 1,,8 18

f: S 1 (Substitution) Each row and column contain different numbers I2/I3/I4/I5 à 0 1 2 3 4 5 6 F I1/I6 à 0 E 4 D 1 2 F B 1 0 F 7 4 E 2 D 2 4 1 E 8 D 6 2 8 3 F C 8 2 4 9 1 Example: input= 100110, output= 1000 for S 2..S 8 (and rest of S 1 ), see the textbook 32bits è 32bits f: Permutation 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 19

DES Implementation That s it! Operations Permutation Swapping halves Substitution (S-box, table lookup) Bit discard Bit replication Circular shift XOR Hard to implement? HW: No, SW: Yes Test Program 20

DES Analysis We don t know if Good Design? the particular details were well-chosen for strength, whether someone flipped coins to construct the S- boxes, or whether the details were chosen to have a weakness that could be exploited by the designers. 21

Issues for Block Ciphers Number of rounds should be large enough to make advanced attacks as expensive as exhaustive search for the key Principles for S-Box Design S-box is the only non-linear part of DES Each row in the S-Box table should be a permutation of the possible output values Output of one S-box should affect other S- boxes in the following round 22

Desirable Property: Avalanche Effect Roughly: a small change in either the plaintext or the key should produce a big change in the ciphertext Better: any output bit should be inverted (flipped) with probability.5 if any input bit is changed f function must be difficult to un-scramble should achieve avalanche effect output bits should be uncorrelated DES Avalanche Effect: Example 2 plaintexts with 1 bit difference: 0x0000000000000000 and 0x8000000000000000 encrypted using the same key: 0x016B24621C181C32 Resulting ciphertexts differ in 34 bits (out of 64) Similar results when keys differ by 1 bit 23

Example (cont d) An experiment: number of rounds vs. number of bits difference Round # 0 1 2 3 4 5 6 7 8 Bits changed 1 6 21 35 39 34 32 31 29 9 10 11 12 13 14 15 16 42 44 32 30 30 26 29 34 DES: Keys to Avoid Using Weak keys : 4 keys with property K{K{m}} = m What s bad about that? These are keys which, after the first key permutation, are: 28 0 s followed by 28 0 s 28 0 s followed by 28 1 s 28 1 s followed by 28 0 s 28 1 s followed by 28 1 s 24

More Keys to Avoid! Semi-weak keys : pairs of keys with the property K 1 {K 2 {m}} = m What s bad about that? These are keys which, after the first key permutation, are: 1. 28 0 s followed by alternating 0 s and 1 s 2. 28 0 s followed by alternating 1 s and 0 s 12. alternating 1 s and 0 s followed by alternating 1 s and 0 s DES Key Size 56 bits is currently too small to resist brute force attacks using readily-available hardware Ten years ago it took $250,000 to build a machine that could crack DES in a few hours Now? 25

Cryptanalysis of DES Differential cryptanalysis exploits differences between encryptions of two different plaintext blocks provides insight into possible key values DES well designed to defeat differential analysis Linear cryptanalysis requires known plaintext / ciphertext pairs, analyzes relationships to discover key value for DES, requires analyzing O(2 47 ) pairs No attacks on DES so far are significantly better than brute force attacks, for comparable cost AES 26

Overview Selected from an open competition, organized by NSA winner: Rijndael (pronounced Rhine-dall ) algorithm, standardized as AES Some similarities to DES (rounds, round keys, alternate permutation+substitution) but not a Feistel cipher Block size = 128 bits Key sizes = 128, 192, or 256 (Variable key lengths) Main criteria: secure, well justified, fast 128-bit Input Å Round 1 Å AES-128 Overview 128-bit K 0 128-bit K 1 128-bit key Generate round keys Q1: What happens in each round? Q2: How are round keys generated? Round 10 Å 128-bit Output 128-bit K 10 27

AES-128 State Each plaintext block of 16 bytes is arranged as 4 columns of 4 bytes each a 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 a 9 a 10 a 11 a 12 a 13 a 14 a 15 a 0 a 4 a 8 a 12 a 1 a 5 a 9 a 13 a 2 a 6 a 10 a 14 a 3 a 7 a 11 a 15 (Padding necessary for messages not a multiple of 16 bytes) High-level View: One AES-128 Round 1. Apply S-box function to each byte of the state (i.e., 16 substitutions) 2. Rotate (row 0 of state is unchanged) X Y Z M row 1 of the state left 1 column row 2 of the state left 2 columns row 3 of the state left 3 columns Y Z M X 3. Apply MixColumn function to each column of state last round omits this step 28

AES-128 Decryption (Conceptual) Run cipher in reverse, with inverse of each operation replacing the encryption operations Inverse operations: XOR is its own inverse inverse of S-box is just the inverse table inverse of rotation in one direction is rotation in other direction inverse of MixColumn is just the inverse table AES Decryption (Actual) Run cipher in forward direction, except use inverse operations apply round keys in reverse order apply InvMixColumn to round keys K1..K9 Decryption takes more memory and cycles encryption can only partially reuse hardware for encryption 29

AES Assessment Speed: about 16 clock cycles/byte on modern 32-bit CPUs 200 MByte/s on a PC, no special hardware! No known successful attacks on full AES best attacks work on 7-9 rounds (out of 10-14 rounds) Clean design For brute force attacks, AES-128 will take 4*10 21 X ( = 2 72 ) more effort than DES Attacks on AES Differential Cryptanalysis: based on how differences in inputs correlate with differences in outputs - greatly reduced due to high number of rounds Linear Cryptanalysis: based on correlations between input and output - S-Box & MixColumns are designed to frustrate Linear Analysis Side Channel Attacks: based on peculiarities of the implementation of the cipher 30

Side Channel Attacks Timing Attacks: measure the time it takes to do operations - some operations, with some operands, are much faster than other operations, with other operand values - provides clues about what internal operations are being performed, and what internal data values are being produced Power Attacks: measures power to do operations - changing one bit requires considerably less power than changing many bits in a byte Summary Secret key crypto is (a) good quality, (b) faster to compute than public key crypto, and (c) the most widely used crypto DES strong enough for non-critical applications, but triple-des is better AES even better (stronger and much faster), has versions with 128-, 192-, and 256-bit keys Secret key crypto requires out-of-band, bilateral key negotiation/agreement 31