39
K. Salah 1 Cryptography Cryptography Module II Module II

K. Salah1 Cryptography Module II. K. Salah2 Data Encryption Standards DES

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

K. Salah 1

CryptographyCryptography

Module IIModule II

K. Salah 2

Data Encryption Standards

DES

K. Salah 3

Product block

P-boxes and S-boxes can be combined to get a more P-boxes and S-boxes can be combined to get a more complex cipher block, called Product block.complex cipher block, called Product block.

Data Encryption Standard (DES) uses an algorithm that Data Encryption Standard (DES) uses an algorithm that encrypts a 64-bit plaintext chunks using a 56-bit key. encrypts a 64-bit plaintext chunks using a 56-bit key. The text is put through 19 different and complex The text is put through 19 different and complex procedures/rounds to create a 64-bit ciphertext.procedures/rounds to create a 64-bit ciphertext.

K. Salah 4

General scheme of DES

DES has two transposition blocks, one swapping block, and DES has two transposition blocks, one swapping block, and 16 complex blocks called iteration blocks.16 complex blocks called iteration blocks.

The 16 iterative blocks are conceptually the same, but each The 16 iterative blocks are conceptually the same, but each uses a different key derived from the original key.uses a different key derived from the original key.

DES works on 8 characters (bytes) at a time.DES works on 8 characters (bytes) at a time.

K. Salah 5

Iteration block

In each block, the previous right 32 bits become the next left 32 bits (swapping). The next right 32 bits, however, come from first applying an operation (a function) on the previous right 32 bits and then XORing the result with the left 32 bits.

The “Function” f(R,K) expands R to 48 bits xor R with K Result is permuted from a table

Ki (i denotes iteration) is derived from the 56-bit key with left circular shift of 1 or 2 bits that is determined by a permutation table.

K. Salah 6

Triple DES or 3DES

DES has a key too shortDES has a key too short 3DES has 3 DES blocks and 2 56-bit key (or 112-bit key)3DES has 3 DES blocks and 2 56-bit key (or 112-bit key) More complex and thus more secureMore complex and thus more secure

K. Salah 7

DES Operation ModesDES Operation Modes

ECB ECB CBC CBC CFMCFMCSMCSM

K. Salah 8

ECB mode

In Electronic code block (ECB) mode, we divide the In Electronic code block (ECB) mode, we divide the long message into 64-bit blocks and encrypt each long message into 64-bit blocks and encrypt each block separately.block separately.

Encryption of each block is independent of other Encryption of each block is independent of other blocks in ECB mode.blocks in ECB mode.

fault tolerantfault tolerant possible to break by encrypt and compare methodpossible to break by encrypt and compare method

K. Salah 9

CBC mode

In cipher block chaining (CBC) mode, the encryption (or In cipher block chaining (CBC) mode, the encryption (or decryption) of a block depends on all previous blocks.decryption) of a block depends on all previous blocks.

To encrypt the second plaintext block (PTo encrypt the second plaintext block (P22), we first XOR it ), we first XOR it

with the first cipher block (Cwith the first cipher block (C11) and then pass it through the ) and then pass it through the

encryption process. In this way, Cencryption process. In this way, C22 depends on C depends on C11..

IV is IV is typicallytypically part of the key, or generated off the key part of the key, or generated off the key randomly (based on a random function).randomly (based on a random function).

K. Salah 10

CFM

Cipher feedback mode (CFM) was created for those Cipher feedback mode (CFM) was created for those situations in which we need to send or receive data one situations in which we need to send or receive data one byte at a time, but still want to use DES (or triple DES).byte at a time, but still want to use DES (or triple DES).

One solution is to make a 1-byte COne solution is to make a 1-byte CNN dependent on a 1- dependent on a 1-

byte Pbyte PNN and another byte, which depends on 8 previous and another byte, which depends on 8 previous

bytes itself.bytes itself. Why previous 8 bytes?Why previous 8 bytes?

K. Salah 11

CSM

To encrypt/decrypt 1 bit at a time and at the same To encrypt/decrypt 1 bit at a time and at the same time be independent of the previous bits, we can use time be independent of the previous bits, we can use cipher stream mode (CSM). cipher stream mode (CSM).

In this mode, data are XORed bit by bit with a long, In this mode, data are XORed bit by bit with a long, one-time bit stream that is generated by an one-time bit stream that is generated by an initialization vector in a looping process.initialization vector in a looping process.

K. Salah 12

Advanced Encryption Standards

AES

K. Salah 13

AESAES

DES Considered too weakDES Considered too weak Diffie, Hellman said in a few years technology

would allow DES to be broken in days Design using 1999 technology published Diffe-Hellman is also an asymmetric algo

Design decisions not public S-boxes may have backdoors

DES has built-in trapdoor. It is a claim but a strong one.

K. Salah 14

Advanced Encryption Standard (AES) Advanced Encryption Standard (AES) MotivationsMotivations

Replacement of DESReplacement of DES Known vulnerabilities Broken by exhaustive key search attack Triple DES – secure but slow

Need new standard that is:Need new standard that is: Secure – practical cryptanalysis, resist known attacks Cost effective Easy to implement (software, hardware) and portable Flexible

AES follows the principles ofAES follows the principles of Open algorithm Open disclosure

No relation to government agency No relation to government agency no allegations of no allegations of tampering with codetampering with code

K. Salah 15

AES OriginAES Origin

Started in 1997 and lasted for several yearsStarted in 1997 and lasted for several years Requirements specified by NIST Requirements specified by NIST (National Institute of Standards and Technology)(National Institute of Standards and Technology)

Algorithm unclassified and publicly available Available royalty free world wide Symmetric key Operates on data blocks of 128 bits Key sizes of 128, 192, and 256 bits Fast, secure, and portable Active life of 20-30 years Provides full specifications

K. Salah 16

AES Finalists1999:

Algorithm nameAlgorithm name ComplexityComplexity SpeedSpeed Security marginSecurity margin

MARS (IBM- USA)MARS (IBM- USA) ComplexComplex FastFast HighHigh

Serpent (Anserson, Biham, Serpent (Anserson, Biham, & Knudsen - U.K.)& Knudsen - U.K.)

Simple - cleanSimple - clean SlowSlow HighHigh

Rijndael (Joan Daemen/V. Rijndael (Joan Daemen/V. Rijmen – Belgium)Rijmen – Belgium)

Simple -cleanSimple -clean FastFast GoodGood

RC6 (RSA Data Security, RC6 (RSA Data Security, Ins. - USA)Ins. - USA)

Very simpleVery simple Very Very fastfast

LowLow

Twofish (Bruse Schneier and Twofish (Bruse Schneier and others - USA)others - USA)

ComplexComplex FastFast HighHigh

K. Salah 17

Rijndael AlgorithmRijndael Algorithm

Chosen for: security, performance, efficiency, ease of implementation, and Chosen for: security, performance, efficiency, ease of implementation, and flexibilityflexibility

Symmetric, block cipher Block cipher (block size variable and depends on key length)Block cipher (block size variable and depends on key length) Key size: 128, 192, or 256 bits Block size: 128

Processed as 4 groups of 4 bytes (state) Operates on the entire block in every round

Number of rounds depending on key size: Key=128 9 rounds Key=192 11 rounds Key=256 13 rounds

K. Salah 18

Strength of AlgorithmStrength of Algorithm

New – little experimental resultsNew – little experimental resultsCryptanalysis resultsCryptanalysis results

Few theoretical weakness No real problem

Has sound mathematical foundationHas sound mathematical foundation

K. Salah 19

Rijndael – Basic Steps Byte Substitution: Non-linear function for

confusion S-box used on every byte (table look-

up) Shift Rows: Linear mixing function for

diffusion Permutes bytes between columns Different for different block sizes (128,

192 same, 256 different) Mix columns: Transformation

Shifting left and XOR bits Effect: matrix multiplication

Add Round Key: incorporates key and creates confusion XOR state with unique key

All operations can be combined into XOR and table look-ups Very fast and efficient

A nice demo is available at:

http://www.iaik.tu-graz.ac.at/research/krypto/AES/old/%7Erijmen/rijndael/Rijndael_Anim_exe.zip

K. Salah 20

AES Operation ModesAES Operation Modes

CBC (Cipher Block Chaining)CBC (Cipher Block Chaining) Used with IPSec

ECB (Electronic CodeBook)ECB (Electronic CodeBook)CFB (Cipher FeedBack)CFB (Cipher FeedBack)OFB (Output FeedBack)OFB (Output FeedBack)CTR (Counter). CTR (Counter).

K. Salah 21

Other Secret Key AlgorithmsOther Secret Key Algorithms

DESXDESX: modification of DES : modification of DES BlowfishBlowfish: fast, compact and simple block cipher. : fast, compact and simple block cipher.

Variable key length up to 448 bitsVariable key length up to 448 bits RC2RC2: block cipher. Variable key length up to 2048 : block cipher. Variable key length up to 2048

bitsbits RC4RC4: stream cipher. Variable key length up to 448 : stream cipher. Variable key length up to 448

bitsbits RC5RC5: block cipher. Allows user defined key : block cipher. Allows user defined key

length, data block size, and number of encryption length, data block size, and number of encryption rounds. rounds.

K. Salah 22

Hash FunctionsHash Functions

K. Salah 23

Hash FunctionsHash Functions A hash function is a function that maps an input of arbitrary A hash function is a function that maps an input of arbitrary

length into a fixed number of output bitslength into a fixed number of output bits Hash function Hash function hh maps an input maps an input x x of arbitrary length to a fixed of arbitrary length to a fixed

length output length output h(x)h(x) (compression) (compression) Given Given hh and and x, h(x)x, h(x) is easy to compute (ease of computation) is easy to compute (ease of computation)

MD = h(x) f(MD) = x does not exist

Good hash functions must be collision free or have strong Good hash functions must be collision free or have strong collision resistancecollision resistance Two unique messages should not result in the same hash code

Must be also “Computationally Infeasible”Must be also “Computationally Infeasible” Not being able to go in the reverse direction

K. Salah 24

Hash FunctionsHash Functions Message digest Message digest Used for Used for

Authentication Password hashing (e.g SHA)

Data integrity Checksum, CRC, Hashing (e.g. MD5)

Algorithms: Algorithms: Requires password or secret key

MAC (Message Authentication Code)• Can verify both data integrity and data origin

HMAC (Hash and MAC)• Used by TLS (Transport Layer Security)

Do not require passwords SHA-1, MD2, MD4, MD5, RIPEMD-160

• can verify only data integrity

K. Salah 25

MD5 Message Digest AlgorithmMD5 Message Digest Algorithm

Input of arbitrary lengthInput of arbitrary length Gets broken into blocks of size 512 bits

Output: 128 bitsOutput: 128 bits

K. Salah 26

MD5 ProcessingMD5 Processing

Append padding bits so Append padding bits so length length 448 mod 512 448 mod 512 (padded message 64 bits less than an integer multiplied by (padded message 64 bits less than an integer multiplied by 512)512)

Append length: a 64-bit representation of the Append length: a 64-bit representation of the length of the original message (before the length of the original message (before the padding) padding) total length of message k*512 bits total length of message k*512 bits

Initialize MD buffer: 128-bit buffer holds Initialize MD buffer: 128-bit buffer holds intermediate and final results (4 32-bit registers, intermediate and final results (4 32-bit registers, ABCD)ABCD)

K. Salah 27

MD5 ProcessingMD5 Processing

Process message in 512-bit blocks:Process message in 512-bit blocks: 4 rounds of processing Similar structure but different logical function Each round takes the 512-bit input and values of

ABCD and modifies ABCD

Output: from the last stage is a 128-bit Output: from the last stage is a 128-bit digestdigest

K. Salah 28

Strength of MD5Strength of MD5Every bit of plain text influences every bit Every bit of plain text influences every bit

of the the hash codeof the the hash codeComplex repetition of the basic functions Complex repetition of the basic functions

unlikely that two random messages would unlikely that two random messages would have similar regularitieshave similar regularities

MD5 is as strong as possible for 128-bit MD5 is as strong as possible for 128-bit digest (Rivest’s conjecture)digest (Rivest’s conjecture) Didn’t hold true Latest news as of August 2004, MD5 got broken

http://csrc.nist.gov/hash_standards_comments.pdf

K. Salah 29

Secure Hash AlgorithmSecure Hash Algorithm

SHA was developed by NISTSHA was developed by NIST1993: Published as Federal Information 1993: Published as Federal Information

Processing Standard (FIPS PUB 180)Processing Standard (FIPS PUB 180)Output: 160-bit digestOutput: 160-bit digest

K. Salah 30

SHA-2 (256, 384, 512)SHA-2 (256, 384, 512)

K. Salah 31

MD5 v.s. SHA-1MD5 v.s. SHA-1

Very similarVery similar Security: SHA’s digest is 32 bits longer Security: SHA’s digest is 32 bits longer

without algorithm flows without algorithm flows SHA is more secureSHA is more secure Its collision resistance is much higher

Speed: SHA has more steps and produces 160-bit Speed: SHA has more steps and produces 160-bit buffer buffer SHA slowerSHA slower

Simplicity and compactness: MD5 has more Simplicity and compactness: MD5 has more internal steps with varying buffer modification internal steps with varying buffer modification SHA is simplerSHA is simpler

K. Salah 32

Dictionary Attacks and SaltDictionary Attacks and Salt“can you “can you pass pass thethe salt salt please?” please?”

Use a dictionary of most commonly used Use a dictionary of most commonly used passwordspasswords

Encrypt/Hash and compareEncrypt/Hash and compare Visit www.lostpassword.com Claim of 100% password recovery for any system or

applications

Salted hash of the passwordsSalted hash of the passwords Add a salt value to the password before hashing Make dictionary attack so difficult Each user has a salt value (random string)

K. Salah 33

Microsoft HashesMicrosoft Hashes

Uses two hashes for backward compatibility with old Uses two hashes for backward compatibility with old system and appssystem and apps LM Hash

LanManager Hash used by old windows OS and applications Limited to 7 characters Easy to break (in matter of hours) To generate the LM hash, the system converts the password from UNICODE to ANSI (one byte per

character), and translates all characters into uppercase. After that, the password is divided to two chunks (7 chars each, padded with zeros if needed). Each part is used as a DES encryption key, to encrypt the pre-defined constant, and the results of encryption are stored in the system (merged into a single 16-byte value). So, if your system uses LM authentication (and so LM hashes are available), the real password length (complexity) is just 7 characters, and the 14-character password is not much stronger than one of 7 characters.

NT Hash More secure Uses MD4 Hard to break takes years

K. Salah 34

Unix & Linux Password HistoryUnix & Linux Password History

/etc/shadow contains the hashed passwords and accessed by root only, however, /etc/passwd contains ***

Latest implementations of Unix & Linux uses DES and MD5 with salting, respectively.

K. Salah 35

Example of file encryption with passwordExample of file encryption with password

K. Salah 36

Public Key Encryption

K. Salah 37

Public-key cryptography

In public-key cryptography, there are two keys: a private key and a public In public-key cryptography, there are two keys: a private key and a public key. The private key is kept by the receiver. The public key is announced key. The private key is kept by the receiver. The public key is announced to the public.to the public.

Public-key used for encryption is different from the private key that is used Public-key used for encryption is different from the private key that is used for decryption. Public key is available to the public; the private key is for decryption. Public key is available to the public; the private key is available only to an individual.available only to an individual.

Each entity creates a pair of keys; the private one is kept, and the public Each entity creates a pair of keys; the private one is kept, and the public one is distributed. Each entity is independent, and the pair of keys created one is distributed. Each entity is independent, and the pair of keys created can be used to communicate with any other entity. can be used to communicate with any other entity.

The second advantage is that the number of keys needed is reduced The second advantage is that the number of keys needed is reduced tremendously.tremendously.

Public-key algorithms are more efficient for short messages.Public-key algorithms are more efficient for short messages. Complexity of the algorithm; association between an entity and its public Complexity of the algorithm; association between an entity and its public

key must be verified [Certification authority].key must be verified [Certification authority].

K. Salah 38

RSA

RSA (Rivest, Shamir, Adleman) is the most common public-RSA (Rivest, Shamir, Adleman) is the most common public-key algorithm.key algorithm.

Private keyPrivate key is a pair of numbers is a pair of numbers (N,d).(N,d). Public keyPublic key is a pair of numbers is a pair of numbers (N,e).(N,e). Note that N is common to the private and public keys.Note that N is common to the private and public keys. SenderSender algorithm to encrypt: algorithm to encrypt: C=PC=Pee mod N mod N P is plaintext, which is represented as a number; C is the P is plaintext, which is represented as a number; C is the

number that represents the ciphertext. The two numbers e number that represents the ciphertext. The two numbers e and N are components of the public key. and N are components of the public key.

ReceiverReceiver algorithm to decrypt: algorithm to decrypt: P=CP=Cdd mod N mod N

Q: If I know 41 and 119, can I figure 77 by brute force?

A: Yes

Solution: ??

K. Salah 39

Choosing RSA public and private keysChoosing RSA public and private keys

Inventors of RSA used ‘number theory’Inventors of RSA used ‘number theory’ Not any numbers work!

Procedure to choose three numbers N, d, and e.Procedure to choose three numbers N, d, and e. Choose two large prime numbers p and q. Compute N = p * q Choose e (less than N) such that e and (p-1)(q-1) are

relatively prime (having no common factor other than 1) Choose d such that (e*d) mod [(p-1)(q-1)] is equal to 1.