“scrambles” data so only authorized parties can...

18
Dang Thanh Binh Explain general cryptography concepts Explain basic hashing concepts. Basic encryption concepts. Explain and implement protocols Explain core concepts of public key cryptography Cryptography – science of encrypting information. “scrambles” data so only authorized parties can “unscramble” and read data using two methods Can substitute – change one letter with a different letter Can transpose – scramble the order of letters, without actually changing one for another. The best cryptosystems both substitute and transpose.

Upload: others

Post on 17-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

Dang Thanh Binh

� Explain general cryptography concepts

� Explain basic hashing concepts.

� Basic encryption concepts.

� Explain and implement protocols

� Explain core concepts of public key cryptography

� Cryptography – science of encrypting information.

� “scrambles” data so only authorized parties can

“unscramble” and read data using two methods

�Can substitute – change one letter with a different letter

�Can transpose – scramble the order of letters, without actually

changing one for another.

� The best cryptosystems both substitute and transpose.

Page 2: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Cryptography - a method of storing and transmitting data

in a form only intended for authorized parties to read or

process.

� Cryptanalysis - science of studying, breaking, and

reverse engineering algorithms and keys.

� Encryption – the method of transforming data (plaintext)

into an unreadable format.

� Plain text – the format (usually readable) of data before

being encrypted

� Cipher text – the “Scrambled” format of data after being

encrypted

� Decryption – the method of turning cipher text back into

plain text

� Encryption algorithm – a set or rules or procedures that

dictates how to encrypt and decrypt data. Also called an

encryption “cipher”

� Key – (crypto variable) a values used in the encryption

process to encrypt and decrypt

� Key space – the range of possible values used to

construct keys

� example:

�if a key can be 4 digits (0-9)

�key space = 10,000 (0000 – 9999)

�if it can be 6 digits

�key space = 1,000,000 (000,000 – 999,999)

� Key Clustering – Instance when two different keys

generate the same cipher text from the same plaintext

� Work factor – estimated time and resources to break a

cryptosystem

� Romans used a shift cipher called a “CEASAR” cipher.

Shift Ciphers simply shift characters in an alphabet.

Page 3: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Jumbles up the ordering of characters in a message. The

Spartans of Greece used a form of this called the “Scytale”

Cipher.

Page 4: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Hiding one message in another

� “Meet the mini me that ate later.”

� “Meet me later.”

� The Vigenère cipher is named for Blaise de Vigenère,

although Giovan Battista Bellaso had invented the cipher

earlier. Vigenère did invent a stronger autokey cipher.

� Vigenère cipher is a method of encrypting alphabetic text

by using a series of different Caesar ciphers based on the

letters of a keyword. It is a simple form of polyalphabetic

substitution.

� This cipher is well known because while it is easy to

understand and implement, it often appears to beginners

to be unbreakable.

� For example, suppose that the plaintext to be encrypted is:ATTACKATDAWN

� The person sending the message chooses a keyword andrepeats it until it matches the length of the plaintext, forexample, the keyword "LEMON": LEMONLEMONLE

� The first letter of the plaintext, A, is enciphered using thealphabet in row L, which is the first letter of the key. This is doneby looking at the letter in row L and column A of the Vigenèresquare, namely L. The rest of the plaintext is enciphered in asimilar fashion.

� Plaintext: ATTACKATDAWN

� Key:LEMONLEMONLE

� Ciphertext: LXFOPVEFRNHR

Page 5: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Take the message and break it up into fixed sized blocks,

encrypt each block using the given key.

� Often with block encryption, we include a value in addition

to the key that changes for each block, so we don’t get

repetitive cipher text blocks. This is called Cipher Block

Chaining (see next slide)

� Initialization Vectors are used with the first block in CBC

Page 6: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� XORing is a Boolean mathematical “function” which

creates an output bit based on two input bits. It outputs a 1

IF and ONLY if one bit of input is 1 and the other is a 0.

INPUT1 INPUT 2 XOR OUTPUT

---------------------------------------------------------------------------

0 0 = 0

0 1 = 1

1 0 = 1

1 1 = 0

� The “key” is used as a key stream generator, which

creates a series of bits each are is mathematically

combined with the bit stream of plaintext to produce cipher

text. This is done for small pieces of information, or

information not in blocks.

� Keyboard input

� Morse code

� Any input that arrives one bit or byte at a time

Cipher Text Bit Keystream Bit Output Bit

0 1

1 1

1 0

0 1

1 XOR 1 = 0

� Cipher text = 0

Page 7: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

Cipher Text Bit Keystream Bit Output Bit

0 1

1 1

1 0

0 XOR 1 = 1

� Cipher text = 0 1

Cipher Text Bit Keystream Bit Output Bit

0 1

1 1

1 XOR 0 = 1

� Cipher text = 0 1 1

Cipher Text Bit Keystream Bit Output Bit

0 1

1 XOR 1 = 0

� Cipher text = 0 1 1 0

Cipher Text Bit Keystream Bit Output Bit

0 XOR 1 = 1

� Cipher text = 0 1 1 0 1

Page 8: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� 1011 – plain text

� 0101 – pad

� ------ XOR

� 1110 – cipher text

� In a one time pad you use a different key/pad each time

you send a message

� A “perfect cryptosystem”

� Unbreakable if implemented properly

� The key is a series of bits (0 and 1)

� The plain text is converted to bits

� The message is XORed with the pad/key to generated the

cipher text

� (more)

� The pad must be used only one time

� The pad must be shared by both sides.

� The pad must be as long as the message

� The pad must be securely distributed

� The pad must be used up of truly random values

� Idea same key is used to BOTH encrypt and decrypt data!

Page 9: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Called Symmetric or “Private Key encryption”

� Must securely distribute keys to both parties.

� Chicken in the egg situation with networks

� Anyone with the key can either encrypt or decrypt

� Very Fast to encrypt or decrypt

� Key Management is the big issue

� n: number of parties who want

to securely communicate

� # keys = (n*(n-1)) / 2

� 5 = (5*4)/2 = 10 keys

� 10 = (10*9)/2 = 45 keys

� 100 = (100*99)/2 = 4950 keys

� 1000 = (1000*999)/2 = 499500

keys

� Data Encryption Standard

� Developed from at NIST request for an encryption standard

� Chosen algorithm was called “Lucifer” from IBM

� Block Cipher

� Fixed sized blocks of 64 bits

� Key size 64 bits, effective size is 56 bits

� 16 rounds of substitution and transposition

� DES is no longer considered strong enough, can be broken

easily with distributed computing.

� Nothing but DES 3 times

� 3DES – EEE3

� 3DES – EDE3

� 3DES – EEE2

� 3DES – EDE2

� Since it’s 3 x DES, 48 rounds of substitution and

transposition.

Page 10: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Developed as a replacement to DES

� Actual algorithm is called “Rinjdael”

� Block cipher

� 128 bit blocks

� Key sizes of 128,192, 256

� Rounds depend on key size

� 9: for 128 keys

� 11: for 192 keys

� 13: for 256 bit keys

� Block cipher

� Block size 32, 64, 128

� Key Size up to 2048 bits

� Rounds up to 255, minimum of 12 recommended

� Block cipher based on RC5

� Same attributes as RC5

� Developed to be a AES candidate

� Faster that RC5

� Stream cipher – what was that again?

� Was proprietary, but released on Internet in 1994, “ARC4”

is the “open version of RC4”

� Key length 8 – 2048 bits

� Used in SSL and WEP communication

Page 11: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Block cipher

� 64 bit blocks

� Keys 32 - 448 bits

� 16 rounds is the “full version”

� Free algorithm

� International Data Encryption Algorithm

� Proposed AES candidate

� Block cipher

� 64 bit blocks

� 128 bit keys

� Not free, Patent expires soon though

� Used in PGP

� That’s Symmetric Encryption

� Understand the concept (shared keys)

� Understand it’s strengths (fast for bulk encryption and

decryption)

� Understand it’s weaknesses (key management, non-

repudiation)

� Understand the different algorithm “properties” on the

slides.

� Non-Repudiation – being able to definitively prove

someone said or wrote something.

� Proves they actually sent a message

� Proves the message was not altered

� How do we provide non-repudiation? We’ll see soon after

we talk about hashes, and asymmetric encryption.

Page 12: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Use 2 keys, public key to encrypt a message, private key

can decrypt

� Called Public key encryption

� Requires 2 related keys

� Public key – given to anyone

� Private key – kept secret

� Public key is used to encrypt message

� Private key is used to decrypt message

� Private key is used to sign messages

� Public key is used to validate signed messages

� Key exchange is simple!

� Asymmetric Encryption is SLOW, not suitable for

encrypting large amounts of data

� What is a problem with Asymmetric Encryption and key

exchange? (MiM)

� Can be used to “digitally sign” a message (in a few slides)

� Provides integrity

� Provides non-repudiation

� Can anyone see a use to Asymmetric encryption already?*

(very important)

� The original Asymmetric algorithm

� Used with SSL, VPNS, ssh

� Used ONLY for key exchange

� Generates session keys for secure SYMETRIC encryption

communications

Page 13: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Can be 100 times slower than DES

� Can be used for encryption, key exchange and digital

signatures

� Security based on difficulty of factoring large numbers.

� Was patented, has expired

� Encryption or digital signatures

� Free

� Can be used for encryption, key exchange and digital

signatures

� Security based on computing discrete logarithms in a finite

field?!? Yeah.. I don’t even know what that means… time to

go back to math class.

� Slow

� Based on / extended Diffie-Hellman

� Encryption, key exchange or digital signatures

� Security based on analyzing elliptic curves in finite fields

� Does not require much computing overhead as such used

in devices with low resources (PDAs, Cell phones etc)*

� Uses 2 keys, one for encryption, one for decryption

� This mitigates the key management, key distribution

problem (kind of…)

� Is VERY slow (orders of magnitude slower)

� Can provide integrity and proof of sender (non-repudiation)

� Often used in a hybrid system (along with private key

encryption)

� Encrypt symmetric keys using asymmetric algorithms

� Actually do large scale encryption with these asymmetric

keys!

Page 14: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Hashing is similar to encryption… but different.

� Hashing is a one way operation.

� Take input message

� Put through hashing function

� Retrieve fixed length value (hash digest)

� Try for yourself at http://www.fileformat.info/tool/hash.htm

� Once hashed, no way to get

back the original message

� Hash digests are fixed, so

multiple messages theoretically

could produce the same hash

digest (collision) oh… no...

� Hashing can provide integrity (assuming no MiM (next

slide))

� Hashes can be combined with a private key to provide

protection against MiM attacks (visualization in a few slides

next slide)

� The more bits in the digest, generally the more secure

(less change for collision…generally)

� One Example of a hash that you are probably familiar with

is called a “CRC”

Page 15: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Hash-based Message Authentication Code

Page 16: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

function hmac (key, message)

if (length(key) > blocksize) then

key = hash(key) // keys longer than blocksizeare shortened

end if

if (length(key) < blocksize) then

key = key zeroes(blocksize - length(key)) //keys shorter than blocksize are zero-padded

end if

o_key_pad = [0x5c * blocksize] key // Whereblocksize is that of the underlying hash function

i_key_pad = [0x36 * blocksize] key // Whereis exclusive or (XOR)

return hash(o_key_pad hash(i_key_padmessage)) // Where is concatenation

end function

� Secure Hash Algorithm

� Designed/Published by NIST and NSA

� Designed for use in the DSS

� Modeled after MD4

� SHA-1 (SHA-160) – 160 bit digest

� 512 bit blocks

� SHA-256 – 256 bit digest

� 512 bit blocks

� SHA-384 – 384 bit digest

� 1024 bit blocks

� SHA-512 – 512 bit digest

� 1024 bit blocks

� Developed by Ronald Rivest (of RC and RSA fame)

� Optimized to run on 8 bit computers

� 128 bit digest

� 128 bit blocks

� Optimized for 32 bit computers

� 128 bit digest

� Collisions can be found in under 1 minute on a PC ;(

Page 17: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Similar to MD4, but more secure

� Slower and more secure

� 128 bit digest

� 512 bit blocks

� Was part of the NTLM authentication protocol

� Collisions in 8 hours on a PC

� Moving away from, to SHA

� Know what a hash is

� Concept

� Fixed length digest

� What is a hash used for

� Know what a collision is

� Know it’s susceptible to MiM

� Know what HMAC is, and what it tries to accomplish

� Be familiar with MDx, and SHA-x

� Understand that SHA is considered the best algorithm

Page 18: “scrambles” data so only authorized parties can ...binhthanhdang.files.wordpress.com/2010/08/05-cryptography.pdf · 05/08/2010  · Cryptography - a method of storing and transmitting

� Generally when I digital sign something.. I don’t encrypt the

whole message. Instead

� Run message through hash algorithm, generated message

digest

� Sign the “message digest”

� Send both the original message and the encrypted message

digest

� Provides

� Integrity

� Non repudiation

� NOT confidentiality