Introduction to Modern Cryptography Lecture 4

Similar documents
Introduction to Modern Cryptography. (1) Finite Groups, Rings and Fields. (2) AES - Advanced Encryption Standard

Secret Key: stream ciphers & block ciphers

Introduction to Cybersecurity Cryptography (Part 4)

Leftovers from Lecture 3

Introduction to Cybersecurity Cryptography (Part 4)

Lecture Notes, Week 6

CPE 776:DATA SECURITY & CRYPTOGRAPHY. Some Number Theory and Classical Crypto Systems

Mathematical Foundations of Cryptography

Winter 2008 Introduction to Modern Cryptography Benny Chor and Rani Hod. Assignment #2

CPSC 467b: Cryptography and Computer Security

1 Recommended Reading 1. 2 Public Key/Private Key Cryptography Overview RSA Algorithm... 2

Public-Key Encryption: ElGamal, RSA, Rabin

Intro to Public Key Cryptography Diffie & Hellman Key Exchange

Mathematical Foundations of Public-Key Cryptography

Introduction to Modern Cryptography Lecture 11

Topics in Cryptography. Lecture 5: Basic Number Theory

Chapter 4 Mathematics of Cryptography

Introduction to Modern Cryptography. Benny Chor

Introduction to Cryptography k. Lecture 5. Benny Pinkas k. Requirements. Data Integrity, Message Authentication

CSc 466/566. Computer Security. 5 : Cryptography Basics

Public Key Algorithms

1 Number Theory Basics

YALE UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE

Introduction to Cryptography. Lecture 6

CIS 551 / TCOM 401 Computer and Network Security

Introduction to Modern Cryptography. Benny Chor

U.C. Berkeley CS276: Cryptography Luca Trevisan February 5, Notes for Lecture 6

NUMBER THEORY. Anwitaman DATTA SCSE, NTU Singapore CX4024. CRYPTOGRAPHY & NETWORK SECURITY 2018, Anwitaman DATTA

CHALMERS GÖTEBORGS UNIVERSITET. TDA352 (Chalmers) - DIT250 (GU) 11 April 2017, 8:30-12:30

Lecture 11: Hash Functions, Merkle-Damgaard, Random Oracle

Number Theory and Group Theoryfor Public-Key Cryptography

Public Key 9/17/2018. Symmetric Cryptography Review. Symmetric Cryptography: Shortcomings (1) Symmetric Cryptography: Analogy

Lecture 1: Perfect Secrecy and Statistical Authentication. 2 Introduction - Historical vs Modern Cryptography

Block vs. Stream cipher

Public-key Cryptography: Theory and Practice

Introduction to Cryptography. Lecture 8

Chapter 4 Finite Fields

Lecture 1: Introduction to Public key cryptography

Lecture 5: Arithmetic Modulo m, Primes and Greatest Common Divisors Lecturer: Lale Özkahya

Overview. Background / Context. CSC 580 Cryptography and Computer Security. March 21, 2017

Lemma 1.2. (1) If p is prime, then ϕ(p) = p 1. (2) If p q are two primes, then ϕ(pq) = (p 1)(q 1).

Other Public-Key Cryptosystems

Public-Key Cryptosystems CHAPTER 4

Finite Fields. Mike Reiter

Solutions to the Midterm Test (March 5, 2011)

Hans Delfs & Helmut Knebl: Kryptographie und Informationssicherheit WS 2008/2009. References. References

Other Public-Key Cryptosystems

Introduction to Modern Cryptography Recitation 3. Orit Moskovich Tel Aviv University November 16, 2016

Encryption: The RSA Public Key Cipher

Mathematics for Cryptography

Security II: Cryptography exercises

10 Concrete candidates for public key crypto

Cryptography IV: Asymmetric Ciphers

LECTURE NOTES IN CRYPTOGRAPHY

Question 2.1. Show that. is non-negligible. 2. Since. is non-negligible so is μ n +

COMPUTER ARITHMETIC. 13/05/2010 cryptography - math background pp. 1 / 162

Foundations of Network and Computer Security

Cristina Nita-Rotaru. CS355: Cryptography. Lecture 9: Encryption modes. AES

Pseudorandom Generators

Practice Final Exam Winter 2017, CS 485/585 Crypto March 14, 2017

Mathematics of Cryptography

ASYMMETRIC ENCRYPTION

Foundations of Cryptography

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

Congruences and Residue Class Rings

Number theory (Chapter 4)

Fundamentals of Modern Cryptography

Lecture 15 & 16: Trapdoor Permutations, RSA, Signatures

Notes. Number Theory: Applications. Notes. Number Theory: Applications. Notes. Hash Functions I

A field F is a set of numbers that includes the two numbers 0 and 1 and satisfies the properties:

Discrete mathematics I - Number theory

Classical Cryptography

Introduction to Public-Key Cryptosystems:

Fields in Cryptography. Çetin Kaya Koç Winter / 30

Codes and Cryptography. Jorge L. Villar. MAMME, Fall 2015 PART XII

Lecture 5: Pseudorandom functions from pseudorandom generators

Introduction to Modern Cryptography Lecture 5

Introduction to Cybersecurity Cryptography (Part 5)

CPSC 467b: Cryptography and Computer Security

Number Theory. Modular Arithmetic

2. Cryptography 2.5. ElGamal cryptosystems and Discrete logarithms

Notes for Lecture Decision Diffie Hellman and Quadratic Residues

Basis Algebraic Structures

Number Theory: Applications. Number Theory Applications. Hash Functions II. Hash Functions III. Pseudorandom Numbers

Asymmetric Encryption

Lecture 10 - MAC s continued, hash & MAC

ECS 189A Final Cryptography Spring 2011

during transmission safeguard information Cryptography: used to CRYPTOGRAPHY BACKGROUND OF THE MATHEMATICAL

b = 10 a, is the logarithm of b to the base 10. Changing the base to e we obtain natural logarithms, so a = ln b means that b = e a.

Symmetric Crypto Systems

Introduction. will now introduce finite fields of increasing importance in cryptography. AES, Elliptic Curve, IDEA, Public Key

ECEN 5022 Cryptography

Introduction to Information Security

10 Modular Arithmetic and Cryptography

A. Algebra and Number Theory

ECE596C: Handout #11

Lecture 4 Chiu Yuen Koo Nikolai Yakovenko. 1 Summary. 2 Hybrid Encryption. CMSC 858K Advanced Topics in Cryptography February 5, 2004

Public Key Encryption

Basic Algebra and Number Theory. Nicolas T. Courtois - University College of London

Chapter 8 Public-key Cryptography and Digital Signatures

Transcription:

Introduction to Modern Cryptography Lecture 4 November 22, 2016 Instructor: Benny Chor Teaching Assistant: Orit Moskovich School of Computer Science Tel-Aviv University Fall Semester, 2016 17 Tuesday 12:00 15:00 Venue: Meron Hall, Trubowicz 102 (faculty of Law) Course site: http://tau-crypto-f16.wikidot.com/

Lecture 4: Plan Euler totient function, φ(n). Time complexity of Euclid s gcd. Extended integer gcd. Finite fields and their characteristic. Pseudo random functions and pseudo random permutations Block ciphers and their modes of operations. 2 / 41

Cyclic Groups (reminder) Claim: Let G be a multiplicative group (not necessarily abelian), and a an element of order n. The set a = {1, a,..., a n 1 } is a subgroup of G. a is called the generator of a. By Lagrange theorem, for every a G, the order of a divides G. Fermat s little theorem: For every a {1,..., p 1}, a p 1 mod p = 1 (why does this hold?). If G is generated by some a then G is called cyclic, and a is called a primitive element of G. 3 / 41

Rings Definition A ring (R, +, ) is a non empty set, R, with two binary operations, addition and multiplication. (R, +) is an abelian group, with 0 being the neutral element with respect to addition. R is closed under multiplication. Multiplication is associative (but not necessarily commutative). Multiplication is distributive with respect to addition. If the ring has an element, denoted by 1, such that for all a R, a 1 = 1 a = a, then 1 is called a multiplicative identity, and (R, +, ) is called a ring with identity. 4 / 41

Fields Definition A field is a commutative ring with identity where each non-zero element has a multiplicative inverse: a 0 F c F, a c = c a = 1. The multiplicative inverse of a is also denoted a 1. Equivalently, (F, +) is a commutative (additive) group, and F = (F \ {0}, ) is a commutative (multiplicative) group. 5 / 41

Roots of Univariate Polynomials over Fields Let f(x) = a n x n + a n 1 x n 1 + a n 2 x n 2 +... + a 1 x + a 0 be a polynomial of degree n in one variable, x, over a field F (namely a n, a n 1,..., a 1, a 0 F ). Theorem: The equation f(x) = 0 has at most n solutions in any field, F. Such solution is called a root of f(x). This theorem has numerous applications. In our context, we will use it for information theoretic secure MACs (message authenticated codes), k out of n secret sharing, and (maybe, maybe) error correction codes. 6 / 41

Algebraically Closed Fields and Polynomials Theorem: The equation f(x) = 0 has at most n solutions in any field, F. Such solution is called a root of f(x). If every non constant univariate polynomial f(x) has a root in the field F, we say that F is algebraically closed. 7 / 41

Infinite Fields Definition: A field (F, +, ) is called an infinite field if the set F is infinite. Familiar examples: The rational numbers, Q. The real numbers, R. The complex numbers, C. The field of complex numbers, C, is an algebraically closed field. The field of rational numbers, Q, is not algebraically closed (e.g. take x 2 2). The field of real numbers, R, is not algebraically closed either (e.g. take x 2 + 1). 8 / 41

Finite Fields Definition: A field (F, +, ) is called a finite field if the set F is finite. Example: As we already saw, Z p denotes the set {0, 1,..., p 1}, where we define + and as addition and multiplication modulo p, respectively. It is not hard to prove that (Z p, +, ) is a field iff p is a prime (one direction follows from the fact that for a prime p, each 1 a p 1 is relatively prime to p, and the extended gcd algorithm). Reminder: Z p is all non zero elements of Z p, with multiplication mod p. It is also possible to show that for any prime, p, (Z p, +, ) is the only finite field with p elements. This means that any finite field with that many elements is essentially (Z p, +, ) (up to changing names think of two tables for +, ). Question: Are there any finite fields except (Z p, +, )? 9 / 41

The Characteristic of Finite Fields Let (F, +, ) be a finite field. There must be a positive integer, n, such that 1 + 1 +... + 1 (n times) equals 0. The mimimal such n is called the characteristic of F, char(f ). Theorem: For any finite field F, char(f ) is a prime number. 10 / 41

Galois Fields GF (p k ) Theorem: For every prime power p k (k = 1, 2,...) there is a unique finite field with p k elements (unique up to renaming). These fields are denoted by GF (p k ). There are no finite fields with other cardinalities. Évariste Galois (1811-1832) (http://www.wqsb.qc.ca/philemon/pmessier/mathematicians.htm) Remarks: 1. For F = GF (p k ), char(f ) = p. 2. We will shortly see how GF (p k ) (for k > 1) is represented and implemented. Recall it is not the same as Z p k! 11 / 41

The Multiplicative Group of GF (p k ) For a field F, we denote by F the set of all non zero elements in F. Recall that F is an Abelian group with respect to the field s multiplication. In the case F = GF (p k ), F has q = p k 1 elements. By Lagrange, for every a F, the order of a divides q. Furthermore, if ord F (a) = l and a j = 1, then l divides j. 12 / 41

Polynomial Remainders Let f(x) = a n x n + a n 1 x n 1 + a n 2 x n 2 +... + a 1 x + a 0, g(x) = b m x m + b m 1 x m 1 + b m 2 x m 2 +... + b 1 x + b 0 be two polynomials in one variable x over a field F such that m n. Theorem: There is a unique polynomial r(x) of degree smaller than m, and another unique polynomial, h(x), both over F, such that f(x) = h(x) g(x) + r(x). The polynomial r(x) is called the remainder of f(x) modulo g(x), while h(x) is called the quotient. The computation of polynomial remainder where f[x] is divided by g[x] is similar to the computation of integer remainder (where a is divided by b). While for integers, we measure size by number of bits, for polynomials we consider the degree. 13 / 41

Symbolic Algebra, Using Sage (repeated preaching) We want you to get some hands on experience working with polynomials, esp. over finite fields. The easiest way to do so is by employing a symbolic mathematical software package. There are a number of such packages, e.g. Magma, Maple, and Mathematica. We recommend Sage, which is an open source package (it builds upon Python). Sage can be accessed at http://www.sagenb.org/ (you have to register). You could run it over the web or download the software and run it locally. The syntax (like all these systems) is not always great, but after seeing some examples, one will get used to it. 14 / 41

Implementing Polynomial Arithmetic, Using Sage Sage has built in commands for a variety of polynomial operations. Their format is often somewhat unexpected, so we will go over some of them. Let f(x), g(x) be two polynomials. The remainder of f(x) modulo g(x) is f.mod(g). The quotient comes bundled with the remainder f.quo rem(g) produces both. To compute polynomial greatest common divisor, we invoke gcd(f,g). For their extended gcd, f.xgcd(g). We remark that the format for polynomials extended gcd is different from the one for integers, e.g. xgcd(56,73). But like the integer case, the output is a triplet (GCD, A, B), where GCD, A, B are polynomials, satisfying GCD = A f + B g. 15 / 41

Polynomial Arithmetic in Sage: Examples Before embarking on this journey, one must specify over what field this is to be taken. We start with polynomials over the rationals. The statement P.<x> = QQ[] specifies that we are working in the polynomial ring over Q, with formal variable x. 16 / 41

Polynomial Arithmetic in Sage: Remainder and Quotient Let us now consider quotients and remainders: The remainder is 0 (the zero polynomial) iff g(x) f(x). But if this is not the case, the remainder may be of degree up to deg(g) 1, while f(x) and g(x) may or may not be relatively prime. 17 / 41

Polynomial Arithmetic in Sage: GCD and XGCD We now consider the greatest common divisor and extended gcd of polynomials: 18 / 41

Polynomial Arithmetic over Finite Fields in Sage Let us now turn to polynomials over various finite fields. We will consider polynomials over GF (2), GF (5), GF (7) (other finite fields are treated similarly). Recall that the statement P.<x> = QQ[] specifies we are working with univariate polynomials in the polynomial ring over Q, with formal variable x. For finite fields, there are corresponding statements. For example, P.<t> = GF(2)[] specifies that we are working over GF (2), with formal variable t. All commands regarding polynomial arithmetic that we saw, work over finite fields as well. 19 / 41

Polynomial Factorization over Finite Fields Polynomial equations and factorizations over finite fields can be quite different from their rationals/reals counterparts. Over GF (7), x 6 1 has six linear factors (btw, is this a coincidence?). Over GF (2) the factorization is the same as over the rationals (given that in GF (2), 1 = 1). And also over GF (5) the factorization is the same as over the rationals (given that in GF (5), 1 = 4). 20 / 41

Irreducible Polynomials A polynomial is irreducible over GF (p) if it does not factor in GF (p). Otherwise, it is called reducible. x 5 + x 3 + 1 is irreducible over GF (2) and over Q, but reducible over GF (5), GF (7). 21 / 41

Implementing GF (p k ) Arithmetic Theorem: Let f(x) be an irreducible polynomial of degree k over GF (p). The arithmetic of the finite field GF (p k ) can be realized by the set of univariate polynomials over GF (p) whose degree is at most k 1, where addition and multiplication are done modulo f(x). (In other words, the polynomials ring over GF (p) modulo such f(x) is actually a field itself.) Comment: For every p, k there are many different irreducible polynomials of degree k over GF (p). Furthermore, such irreducible polynomial can be found efficiently (random polynomial time in log p and k). 22 / 41

Example: Implementing GF (2 5 ) By the theorem, the finite field GF (2 5 ) can be realized as the set of degree 4 polynomials over Z 2, with addition and multiplication done modulo the irreducible polynomial f(x) = x 5 + x 3 + 1. Remark: f(x) = x 5 + x 3 + 1 is not the only irreducible polynomial of degree 5 over Z 2. But it does not matter which (irreducible) one we take they all give the same object, GF (2 5 ). The coefficients of polynomials over Z 2 are 0 or 1. So a degree k 1 polynomial can be written down by k bits. For example, with k = 5: x 3 + x + 1 is represented by (0, 1, 0, 1, 1) x 4 + x 3 + x + 1 is represented by (1, 1, 0, 1, 1) 23 / 41

Implementing Addition in GF (p k ) In fields of characteristic 2, 1 + 1 = 0, so addition corresponds to bit-wise XOR. For example, (x 3 + x + 1) + (x 4 + x 3 + x + 1) corresponds to (0, 1, 0, 1, 1) (1, 1, 0, 1, 1), which equals (1, 0, 0, 0, 0), so (x 3 + x + 1) + (x 4 + x 3 + x + 1) = x 4. For fields of larger characteristic p > 2, the procedure is the same, only instead of XOR we do mod p addition. 24 / 41

Implementing Multiplication in GF (p k ) Multiplication has two stages. First stage is polynomial multiplication, which results in a polynomial of degree (at most) 2k 2. The second stage is computing the remainder of this polynomial modulo the defining, irreducible polynomial of degree k, f(t), doing the computation mod p. Sage example, in GF (2 5 ), with f(t) = t 5 + t 3 + 1: So (0, 1, 0, 1, 1) (1, 1, 0, 1, 1) equals (0, 0, 0, 1, 1). For small size finite field, a lookup table is the most efficient method for implementing multiplication. 25 / 41

Example: Implementing GF (2 5 ) with Sage We stick with the irreducible polynomial f(x) = x 5 + x 3 + 1. Sage lets us represent GF (2 5 ) while explicitly using this polynomial. We need a new formal variable, say a. As a sanity check, we first verify that modulo the irreducible polynomial, (a 3 + a + 1) (a 4 + a 3 + a + 1) = a + 1 26 / 41

More Operations in GF (p k ) with Sage We continue the previous slide, with the finite field GF (2 5 ) represented using the irreducible polynomial f(x) = x 5 + x 3 + 1. We now check whether elements are primitive, namely if they are generators of the multiplicative group GF (2 5 ). The multiplicative group GF (2 5 ) has 31 elements, and 31 is a prime. Thus every element in GF (2 5 ), except 1, is a multiplicative generator. Lets just try an arbitrary one, say b = a 2 + a + 1: We see that indeed, the minimal positive power b i that equals 1 is 31, implying b is primitive indeed. Theorem: For any prime p, the multiplicative group Z p is cyclic. 27 / 41

Primitive Elements in GF (p k ) Theorem: Let F = GF (p k ) be a finite field. Then the multiplicative group GF (p k ) is cyclic. This means there is an element g GF (p k ) such that the powers g, g 2, g 3,..., g pk 1 are all different, and thus they span all of GF (p k ). Remark 1: Such element g is called a primitive element of GF (p k ). Remark 2: This theorem does not hold in general for infinite fields. Consider, for eample, Q, R, or C. Remark 3: Such primitive elements will be useful in Diffie-Hellman key exchange (among other things). 28 / 41

Primitive Elements in GF (p k ): Proof (for reference only) 1 Suppose, by way of contradiction, that GF (p k ) is not cyclic. Let g be an element of maximal order in GF (p k ), denote ord(g) = k (by assumption, k < p k 1). It is not possible that for every a, ord(a) k, because then the polynomial x k 1 would have more than k roots. So there must be another element, h (h g) such that ord(h) k. By raising to appropriate power, we have, without loss of generality, ord(h) = p l i for some prime p i, and furthermore p l i k yet pl 1 i k (think why this holds). Thus the least common multiple of k and p l i equals lcm(k, pl i ) = kp. Denote this number by m. 1 thanks to Nir Bitansky for this elegant proof 29 / 41

Primitive Elements in GF (p k ): Proof (cont.) 2 We have ord(g) = k, ord(h) = p l i, and m=lcm(k, pl i ) = kp i. Take the field element gh. What is its order, t = ord(gh)? Certainly t kp i, because (gh) kp i = g kp i h kp i = 1 (h kp i = 1 because p l i divides kp i and ord(h) = p l i ). Suppose t < kp i. Let k = Np l 1 i. Since t kp i, either t Np l 1 i = k or t Sp l i where S is a proper factor of N. In the first case, 1 = (gh) k = g k h k = h k, implying ord(h) k, contradicting the choice of h. In the second case, 1 = (gh) Spl i = g Sp l i h Sp l i = g Sp l i. But then, since ord(g) = k, we must have k Sp l i, contradiction. So we must have t = kp i. But then t = ord(gh) > k, contradicting the maximality of k = ord(g). 2 continued thanks to Nir Bitansky for this elegant proof 30 / 41

And Now for Something Completely Different Kangchenjunga National Park, Sikkim, north east India 31 / 41

Pseudo Random Functions, Reminder A collection of pseudo random functions (PRFs) extends the notion of pseudo random generator. Pseudo random generators expands a seed to a sequence. Pseudo random functions allow a random access to an exponential collection of sequences. However, the collection F k cannot be truly random (why?). We will now show (on the board) an elegant construction (by Goldreich, Goldwasser, Micali, 1986) of PRF from PRG. However, we will not present a proof of pseudo randomness. 32 / 41

Pseudo random Permutationss We say that F k {0, 1} n {0, 1} n is a collection of pseudo random permutations if F k {0, 1} n {0, 1} n is a collection of pseudo random functions. For each k, F k {0, 1} n {0, 1} n is a permutation. Important Theoretical Result: It is possible to construct a collection of pseudo-random permutations based on any collection of pseudo-random functions (Luby and Rackoff, 1988). Block ciphers, which we will now introduce, are concrete constructions (of fixed lengths n) that attempt to provide a collection of pseudo random permutations. We will require that for every key k, both F k ( ) and F 1 k ( ) are efficiently computable. 33 / 41

Block Ciphers Encrypt a block of input to a block of output. Almost always the two blocks are of the same length. A block cipher is a concrete implementation of pseudo random permutations, with specific block sizes. Typically n = 64 (DES) or n = 128 (AES). Actual lengths of key and blocks may sometimes differ (slightly). 34 / 41

Block Ciphers: Modes of Operation Different modes exist for encrypting plaintext longer than one block. Simplest mode is to encrypt each plaintext block separately. This is known as ECB mode encryption (Electronic Code Book). Is there anything wrong with this mode? 35 / 41

Block Ciphers: Modes of Operation If two plaintext blocks are equal, the corresponding ciphertext blocks will also be equal. This may be undesirable in some (or many) circumstances. Other relationships among plaintexts may be revealed by their ciphertexts, even if Eve cannot decrypt. Two plausible approaches to prevent such problems are (a) Randomization (e.g. random padding of plaintext blocks, also known as salting). (b) Introducing state. Most existing modes employ state. Combining state and randomization is often the better choice. 36 / 41

Block Ciphers: CBC Mode Encryption In CBC mode (Cipher Block Chaining), previous ciphertext is XORed with current plaintext before encrypting current block. An initialization vector, s 0, is used as a seed for the process. This seed can be openly transmitted. It is recommended to choose the seed randomly. State is last ciphertext. CBC is self synchronizing. 37 / 41

Properties of CBC Self synchronizing block/stream cipher. Errors in one ciphertext block, c i, propagate, but only to p i and p i+1. Conceals plaintext patterns. Seems inherently sequential no parallel implementation known. Standard in most systems: SSL, IPSec, etc. It is proved that if E is a pseudo random permutation, then CBC is resistant to chosen plaintext attacks. 38 / 41

Additional Mode: OFB In OFB (Output FeedBack) mode, an initialization vector s 0 (sent unencrypted; best chosen at random for each stream) is used as a seed for a sequence of psuedo random stream of blocks s 1, s 2,.... Each s i is XORed with the i-th plaintext block P i to produce the i-th ciphertext block c i. While in CBC mode the last ciphertext is XORed with the next plaintext and then encrypted, in OFB mode the ciphertext s 1 are encrypted, then XORed with the next plaintext. 39 / 41

Properties of OFB c i = m i si, m i = c i si. Errors in one ciphertext block do not propagate: Bob can generate s 1, s 2,... based on s 0 alone. Conceals plaintext patterns. Seems inherently sequential no parallel implementation known. It is proved that if E is a pseudo random permutation, then OFB is resistant to chosen plaintext attacks. Can be batch preprocessed (on both ends): Precompute s 1, s 2,... before plaintext becomes available. 40 / 41

Block Ciphers: Design Principles Fairly simple building blocks, each implementing a keyed permutation. These building blocks are iterated, possibly with different parts of key, to generate a (hopefully) strong cipher, featuring Bit-shuffling (often called permutation boxes). Creates so called confusion making the relationship between the key and the ciphertext as complex and involved as possible (Shannon, 1949). Simple non-linear functions (often called substitution boxes). Creates so called diffusion redundancy in the statistics of the plaintext should be dissipated in the statistics of the ciphertext. Key mixing: Linear (mod 2) mixing, by XORing key schedule at beginning of each iteration. Properties: High speed. Fixed block size (typically 64, 128, 256 bits). Ciphertext is a non-linear function of key and message bits. 41 / 41