Tải bản đầy đủ (.pdf) (58 trang)

Cryptography and Network Security Block Cipher doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (94.03 KB, 58 trang )

CS595-Cryptography and Network Security
Cryptography and Network Security
Block Cipher
Xiang-Yang Li
CS595-Cryptography and Network Security
Modern Private Key Ciphers
q Stream ciphers
Ø The most famous: Vernam cipher
Ø Invented by Vernam, ( AT&T, in 1917)
Ø Process the message bit by bit (as a stream)
Ø (Also known as the one-time pad)
Ø Simply add bits of message to random key bits
CS595-Cryptography and Network Security
Cont.
Plaintext
Key
Ciphertext
Ciphertext
Key
Plaintext
CS595-Cryptography and Network Security
Pros and Cons
q Drawbacks
Ø Need as many key bits as message, difficult in
practice
Ø (ie distribute on a mag-tape or CDROM)
q Strength
Ø Is unconditionally secure provided key is truly
random
CS595-Cryptography and Network Security
Key Generation


q Why not to generate keystream from a
smaller (base) key?
Ø Use some pseudo-random function to do
this
Ø Although this looks very attractive, it proves to
be very very difficult in practice to find a good
pseudo-random function that is
cryptographically strong
q This is still an area of much research
CS595-Cryptography and Network Security
Block Ciphers
q The message is broken into blocks,
Ø Each of which is then encrypted
Ø (Like a substitution on very big characters - 64-
bits or more)
CS595-Cryptography and Network Security
Substitution and Permutation
q In his 1949 paper Shannon also introduced
the idea of substitution-permutation (S-P)
networks, which now form the basis of
modern block ciphers
Ø An S-P network is the modern form of a
substitution-transposition product cipher
Ø S-P networks are based on the two primitive
cryptographic operations we have seen before
CS595-Cryptography and Network Security
Substitution
q A binary word is replaced by some other binary
word
q The whole substitution function forms the key

q If use n bit words,
Ø The key space is 2
n
!
q Can also think of this as a large lookup table, with
n address lines (hence 2
n
addresses), each n bits
wide being the output value
q Will call them s-boxes
CS595-Cryptography and Network Security
Cont.
CS595-Cryptography and Network Security
Permutation
q A binary word has its bits reordered (permuted)
q The re-ordering forms the key
q If use n bit words,
Ø The key space is n! (Less secure than substitution)
q This is equivalent to a wire-crossing in practice
Ø (Though is much harder to do in software)
q Will call these p-boxes
CS595-Cryptography and Network Security
Cont.
CS595-Cryptography and Network Security
Substitution-permutation
Network
q Shannon combined these two primitives
q He called these mixing transformations
q A special form of product ciphers where
Ø S-boxes

§ Provide confusion of input bits
Ø P-boxes
§ Provide diffusion across s-box inputs
CS595-Cryptography and Network Security
Confusion and Diffusion
q Confusion
Ø A technique that seeks to make the relationship
between the statistics of the ciphertext and the value of
the encryption keys as complex as possible. Cipher uses
key and plaintext.
q Diffusion
Ø A technique that seeks to obscure the statistical
structure of the plaintext by spreading out the influence
of each individual plaintext digit over many ciphertext
digits.
CS595-Cryptography and Network Security
Desired Effect
q Avalanche effect
Ø A characteristic of an encryption algorithm in
which a small change in the plaintext gives rise
to a large change in the ciphertext
Ø Best: changing one input bit results in changes
of approx half the output bits
q Completeness effect
Ø where each output bit is a complex function of
all the input bits
CS595-Cryptography and Network Security
Practical Substitution-
permutation Networks
q In practice we need to be able to decrypt

messages, as well as to encrypt them, hence
either:
Ø Have to define inverses for each of our S & P-
boxes, but this doubles the code/hardware
needed, or
Ø Define a structure that is easy to reverse, so can
use basically the same code or hardware for
both encryption and decryption
CS595-Cryptography and Network Security
Feistel Cipher
q Invented by Horst Feistel,
Ø working at IBM Thomas J Watson research labs in
early 70's,
q The idea is to partition the input block into two
halves, l(i-1) and r(i-1),
Ø use only r(i-1) in each round i (part) of the cipher
q The function g incorporates one stage of the S-P
network, controlled by part of the key k(i) known
as the ith subkey
CS595-Cryptography and Network Security
Cont.
CS595-Cryptography and Network Security
Cont.
q This can be described functionally as:
Ø L(i) = R(i-1)
Ø R(i) = L(i-1) ⊕ g(k(i), R(i-1))
q This can easily be reversed as seen in the above
diagram, working backwards through the rounds
q In practice link a number of these stages together
(typically 16 rounds) to form the full cipher

CS595-Cryptography and Network Security
Data Encryption Standard
q Adopted in 1977 by the National Bureau of
Standards, now the National Institute of
Standards and Technology
q Data are encrypted in 64-bit blocks using a
56-bit key
q The same algorithm is used for decryption.
q Subject to much controversy
CS595-Cryptography and Network Security
History
q IBM LUCIFER 60’s
Ø Uses 128 bits key
q Proposal for NBS, 1973
q Adopted by NBS, 1977
Ø Uses only 56 bits key
§ Possible brute force attack
Ø Design of S-boxes was classified
§ Hidden weak points in in S-Boxes?
Ø Wiener (93) claim to be able to build a machine at
$100,00 and break DES in 1.5 days
CS595-Cryptography and Network Security
DES
q DES encrypts 64-bit blocks of data, using a 56-bit
key
q the basic process consists of:
Ø an initial permutation (IP)
Ø 16 rounds of a complex key dependent calculation f
Ø a final permutation, being the inverse of IP
q Function f can be described as

Ø L(i) = R(i-1)
Ø R(i) = L(i-1) ⊕ P(S( E(R(i-1)) ⊕ K(i) ))
CS595-Cryptography and Network Security
DES
CS595-Cryptography and Network Security
Initial and Final Permutations
q Inverse Permutations
25571749941133
265818501042234
275919511143335
286020521244436
296121531345537
306222541446638
316323551547739
326424561648840
CS595-Cryptography and Network Security
Function f
CS595-Cryptography and Network Security
Expansion Table
q Expands the 32 bit data to 48 bits
Ø Result(i)=input( array(i))
13231302928
292827262524
252423222120
212019181716
171615141312
1312111098
987654
5432132

×