C digos y criptograf a
Download
1 / 74

Códigos y Criptografía - PowerPoint PPT Presentation


  • 106 Views
  • Uploaded on

Códigos y Criptografía. Francisco Rodríguez Henríquez CINVESTAV e-mail: [email protected] Number Theory: Some definitions and Theorems. The set of integers {…, -3, -2, -1, 0, 1, 2, 3, …} is denoted by the symbol Z .

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Códigos y Criptografía' - peter-shepard


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
C digos y criptograf a
Códigos y Criptografía

Francisco Rodríguez Henríquez

CINVESTAV

e-mail: [email protected]



Definitions

The set of integers {…, -3, -2, -1, 0, 1, 2, 3, …} is denoted by the symbol Z.

Let a, b be integers. Then a divides b if there exists an integer c such that b = ac. If a divides b, then it is denoted by a|b.

Examples: -3|18, since 18 = (-3)(-6); any integer a divides 0, a|0, since 0 = (a)(0).

Definitions


Definitions integers

The following are some elementary properties of divisibility:

Fact: (properties of divisibility) For all a, b, c, Z, the following are true:

a|a

If a|b and b|c, then a|c

If a|b and a|c, then a|(bx+cy) for all x, y Z.

If a|b and b|a, then a = ±b

Definitions: integers


Definitions division for integers

Definition divisibility: (division algorithm for integers) If a and b are integers with b≥1, then ordinary long division of a by b yields integers q (the quotient) and r (the remainder) such that

a = qb+r, where 0 ≤ r <b

Moreover, q and r are unique. The remainder of the division is denoted a mod b, and the quotient is denoted a div b.

Definition An integer c is a common divisor of a and b if c|a and c|b.

Definitions: division for integers


Definitions gcd

Definition divisibility:Anon-negative integer d is the greatest common divisor of integers a and b, namely

d = gcd(a, b), if

d is a common divisor of a and b; and

Whenever c|a and c|b, then c|d.

Equivalently, gcd(a, b) is the largest positive integer that divides both a and b, with the exception that gcd(0,0) = 0.

Definition Two integers a and b are said to be relativelyprime or coprime if gcd(a, b)=1

DefinitionAn integer p≥2 is said to be prime if its only positive divisor are 1 and p. Otherwise, p is called composite.

Definitions: gcd


Definitions lcm

Definition divisibility:Anon-negative integer d is the least common multiple of integers a and b, namely

d = lcm(a, b), if

a|d is and b|d; and

Whenever a|c and b|c, then d|c.

Equivalently, lcm(a, b) is the smallest positive integer divisible by both a and b.

Fact If a and b are positive integers, then

lcm(a, b)=a*b/gcd(a, b).

Definitions: lcm


Definitions prime numbers
Definitions: Prime Numbers divisibility:

DefinitionAn integer p≥2 is said to be prime if its only positive divisor are 1 and p. Otherwise, p is called composite.

Fact If p is prime and p|ab, then either p|a or p|b or both. (is it true if p is composite?).

Fact There are an infinite number of prime numbers (how can we prove it?)

Fact (prime number theorem) Let (x) denote the number of prime numbers ≤ x. Then


Definitions prime numbers1
Definitions: Prime Numbers divisibility:

Fact (upper and lower bounds for (x)). Let (x) denote the number of prime numbers ≤ x. Then for x≥17

and for x > 1,


Fundamental theorem of arithmetic
Fundamental Theorem of Arithmetic divisibility:

  • Every integer n ≥ 2 has a factorization as a product of prime powers:

  • Where the pi are distinct primes, and the ei are positive integers. Furthermore, the factorization is unique up to the rearrangement of factors.


Fundamental theorem of arithmetic1
Fundamental Theorem of Arithmetic divisibility:

  • Proof:existence [sketch] Suppose there exist positive integers that are not product of primes. Let n be the smallest such integer. Then n cannot be 1 or a prime, so n must be composite. Therefore n = ab with 1 < a, b < n. Since n is the smallest positive integer that is not a product of primes, both a and b are product of primes. But a product of primes times a product of primes is a product of primes, so n = ab is a product of primes. Therefore, every positive integer is a product of primes.


Fundamental theorem of arithmetic2
Fundamental Theorem of Arithmetic divisibility:

  • Proof:uniqueness [sketch] If p is a prime and p divides a product of integers ab, then either p|a or p|b (or both!), (is this statement true for composite numbers?).

    Suppose that an integer n can be written as a product of primes in two different ways:

  • If a prime occurs in both factorizations divide both sides by it to obtain a shorter relation. Now take a prime that occurs on the left side, say p1. Since p1 divides n then it must divide one of the factors of the right side, say qj. But since p1 is prime, we are forced to write p1= qj, which is a contradiction with the original hyphotesis.


Prime numbers how many
Prime Numbers: How many? divisibility:

Fact There are an infinite number of prime numbers (how can we prove it?)

Euclid did it! But how?

Should we have a quizz????

Hint: Follow the same line of reasoning used for FTA…

Any idea???


Fundamental theorem of arithmetic3
Fundamental Theorem of Arithmetic divisibility:

  • Fact If

    where each ei≥ 0 and fi≥ 0, then


Fundamental theorem of arithmetic4
Fundamental Theorem of Arithmetic divisibility:

Example: Let a = 4864 = 2819,

b = 3458 = 2 7 13 19.

Then gcd(4864, 3458) = 2 19 = 38 and,

lcm(4864, 3458)= 287 13 19 = 442624


Definitions euler phi function
Definitions: Euler phi Function divisibility:

Definition For n≥ 1, let (n) denote the number on integers in the interval [1,n], which are relatively prime to n. The function  is called the Euler phi function (or the Euler totient function).

Fact (properties of Euler phi function)

  • If p is a prime, then (p) = p-1.

  • The Euler phi function is multiplicative. That is, if gcd(m, n) = 1, then (mn) = (m)(n).


Definitions euler phi function1
Definitions: Euler phi Function divisibility:

  • If is the prime factorization of n, then

  • For all integers n ≥ 5,


Euclidean algorithm

m , n divisibility:gcd(m,n)

Fact If a and b are positive integers with a>b, then

gcd(a,b)=gcd(b, a modb);

gcd(m, n)

x = m, y = n

while(y > 0)

r = x mod y

x = y

y = r

return x

Euclidean algorithm

Euclidean

Algorithm


Euclidean algorithm1

Example divisibility: The following are the division steps for computing gcd(4864, 3458) = 38:

4864 = 1*3458 + 1406

3458 = 2*1406 + 646

1406 = 2*646 + 114

646 = 5*114 + 76

114 = 1*76 + 38

76 = 2*38 + 0

(Which method is more efficient and why??)

Euclidean algorithm


Gcd computational complexity

integer euclid( divisibility:m, n)

x = m, y = n

while( y > 0)

r = x mod y

x = y

y = r

return x

K +

¿?  ( O (1) +

K

+ O (1) + O (1) )

+ O (1)

= ¿?  K  O(1)

gcd: Computational Complexity

Assuming mod operation complexity is K:

Where “¿?” is the number of while-loop iterations.


Gcd computational complexity1

Facts divisibility:: (x’ = next value of x, etc. )

x can only be less than y at very beginning of algorithm

–once x > y, x’ = y > y’ = x mod y

When x > y, two iterations of while loop guarantee that new x is < ½ original x

–because x’’ = y’ = x mod y. Two cases:

y > ½ x  x mod y = x – y < ½ x

y ≤ ½ x  x mod y < y ≤ ½ x

gcd: Computational Complexity


Gcd computational complexity2

(1&2) divisibility: After first iteration, size of x decreases by factor > 2 every two iterations.

i.e. after 2i+1 iterations,

x < original_x / 2i

Q: When –in terms of number of iterations i– does this process terminate?

gcd: Computational Complexity


Gcd computational complexity3

After 2 divisibility:i+1 steps, x < original_x / 2i

A: While-loop exits when y is 0, which is right before “would have” gotten x = 0. Exiting while-loop happens when 2i > original_x, (why??) so definitely by:

i =log2 (original_x)

Therefore running time of algorithm is:

O(2i+1) = O(i) = O (log2 (max (a, b)) )

gcd: Computational Complexity


Gcd computational complexity4

Measuring input size in terms of divisibility:n = number of digits of max(a,b):

n = (log10 (max(a,b)) ) = (log2 (max(a,b)) )

Therefore running time of algorithm is:

O(log2 (max(a,b)) ) = O(n)

(Except fot the mod operation complexity K, which in general is operand-size dependant)

A more formal derivation of the complexity of Euclidean gcd can be found in section 4.5.3, Volume II of Knuth’s “The Art of Computing Programming”

gcd: Computational Complexity


Euclidean gcd revisited

Properties divisibility::

By definition gcd(0, 0) = 0.

gcd(u, v) = gcd(v, u)

gcd(u, v) = gcd(-u, v)

gcd(u, 0) = |u|

gcd(u, v)w = gcd(uw, vw) if w≥0

lcm(u, v)w = lcm(uw, vw) if w≥0

uv = gcd(u, v) lcm(u, v) if u, v≥0

gcd(lcm(u, v), lcm(u, w)) = lcm(u, gcd(v, w));

lcm(gcd(u, v), gcd(u, w)) = gcd(u, lcm(v, w))

Euclidean gcd: Revisited


Euclidean gcd revisited1

Binary Properties divisibility::

If u and v are both even, then

gcd(u, v) = 2 gcd(u/2, v/2);

If u is even and v is odd, then

gcd(u, v) = gcd(u/2, v);

gcd(u, v) = gcd(u-v, v).

If u and v are both odd, then u-v is even and |u-v| < max(u, v).

Euclidean gcd Revisited


Binary gcd algorithm

Input divisibility:: u, v positive integers, such that u >v.

Output: w = gcd(u, v).

for (k = 0; u, v both even; k++) {

u /= 2; v /= 2;

}; /* [Find power of 2] */

[Initialize]if (u is odd) t =-v elset = u;

[halve t]while (t is even) t /= 2;

if (t > 0) u = telsev = -t;

[Subtract]t = u-v. If t≠ 0 go back to 3, otherwise output w = u2k.

Binary gcd algorithm


Binary gcd algorithm example
Binary gcd algorithm: Example divisibility:

Example find the gcd of u =40902, v = 24140.

w=17*21=34


Extended euclidean algorithm

The Euclidean algorithm can be extended so that it not only yields the greatest common divisor d of two integers a and b, but also generates x and y satisfying

ax +by = d.

Extended Euclidean Algorithm


Modular inverses

THM1 yields the greatest common divisor : e has an inverse modulo N if and only if e and N are relatively prime.

This will follow from the following useful fact.

THM2: If a and b are positive integers, the gcd of a and b can be expressed as an integer combination of a and b. I.e., there are integers s, t for which

gcd(a,b) = sa + tb

Modular Inverses


Modular inverses1

Proof of yields the greatest common divisor THM1 using THM2:

If an inverse d exists for e modulo N, we have

de  1(modN) so that for some k, de = 1 +kN, so 1 = de – kN. This equation implies that any number dividing both e and N must divide 1, so must be 1, so e,N are relatively prime.

Modular Inverses


Modular inverses2

On the other hand, suppose that yields the greatest common divisor e,N are relatively prime. Using THM2, write

1 = se + tN. Rewrite this as se = 1-tN. Evaluating both sides mod N gives

se  1(modN) .

Therefore s is seemingly the inverse e except that it may be in the wrong range so set d = s mod N. 

Modular Inverses


Extended euclidean algorithm1

A yields the greatest common divisor constructive version of THM2 which gives s and t will give explicit inverses. This is what the extended Euclidean algorithm does.

The extended Euclidean algorithm works the same as the regular Euclidean algorithm except that we keep track of more details –namely the quotient q = x/y in addition to the remainder r = x mod y. This allows us to backtrack and write the gcd(a,b) as a linear combination of a and b.

Extended Euclidean Algorithm


Extended euclidean algorithm2

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm


Extended euclidean algorithm3

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm


Extended euclidean algorithm4

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm


Extended euclidean algorithm5

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm


Extended euclidean algorithm6

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm


Extended euclidean algorithm7

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm


Extended euclidean algorithm8

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm


Extended euclidean algorithm9

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm


Extended euclidean algorithm10

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm


Extended euclidean algorithm11

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm


Extended euclidean algorithm12

gcd(244,117): yields the greatest common divisor

Extended Euclidean Algorithm

inverse of 244

modulo 117


Extended euclidean algorithm13

Summary yields the greatest common divisor : Extended Euclidean algorithm works by keeping track of how remainder r results from dividing x by y. Last such equation gives gcd in terms of last x and y. By repeatedly inserting r into the last equation, one can get the gcd in terms of bigger and bigger values of x,y until at the very top is reached, which gives the gcd in terms of the inputs a,b.

Extended Euclidean Algorithm


Extended euclidean algorithm14
Extended Euclidean Algorithm yields the greatest common divisor

Input two positive integers a and b with a ≥ b.

Outputd = gcd(a, b) and integers x, y satisfying ax+by =d.

  • if (b = 0) {

    d = a; x = 1; y = 0;

    return(d, x, y);

    }

  • x2 = 1; x1 = 0; y2 = 0; y1 = 1.

  • while (b >0) {

    }

  • d = a; x = x2; y = y2; return(d, x, y);

Fact: This algorithm has a

Running time of O((lg n)2)

bit operations.


Extended euclidean algorithm15
Extended Euclidean Algorithm yields the greatest common divisor

Example: Let a = 4864 and b = 3458. Hence gcd(a, b) = 38 and

(4864)(32) + (3458) (-45) = 38.


Quizz
Quizz !! yields the greatest common divisor

  • Prove that there are an infinite number of prime numbers.

  • Prove that e has an inverse modulo N if and only if e and N are relatively prime.


Finite fields definitions and operations
Finite fields: definitions and operations yields the greatest common divisor

FPfinite field operations : Addition, Squaring, multiplication and inversion


What is a group
What is a Group? yields the greatest common divisor

  • An Abelian group <G, +> is an abstract mathematical object consisting of a set G together with an operation * defined on pairs of elements of G, here denoted by +:

  • In order to qualify as an Abelian group, the operation has to fulfill the following conditions:

  • Closed:

  • Associative:

  • Commutative:

  • Neutral element:

  • Inverse elements:


What is a group1

Example: yields the greatest common divisor The best-known example of an Abelian Group is <Z, +>

Example: The additive group Z15 uses the integers from 0 to 14. Some examples of additions in Z15 are:

(10 + 12) mod 15 = 22 mod 15 = 7

In Z15, 10 + 12 = 7 and 4 + 11 = 0.

Notice that both calculations have answers between 0 and 14.

Additive Inverses

Each number x in an additive group has an additive inverse element in the group; that is an integer -x such that x + (-x) = 0 in the group. In Z15, -4 =11 since (4 + 11) mod 15 = 15 mod 15 = 0.

What is a Group?


Rings 1 2
Rings (1/2) yields the greatest common divisor

  • A ring <R, +, *> consists of a set R with 2 operations defined on its elements, here denoted by + and *. In order to qualify as a ring, the operations have to fulfill the following conditions:

  • The structure <R, +> is an Abelian group.

  • The operations * is closed, and associative over R. There is a neutral element for * in R.

  • The two operations + and * are related by the law of distributivity:

  • A ring <R, +. *> is called a commutative ring if the operation * is commutative.


Rings 2 2

The integer numbers, the rational numbers, the real numbers and the complex numbers are all rings.

An element x of a ring is said to be invertible if x has a multiplicative inverse in R, that is, if there is a unique such that:

1 is called the unit element of the ring.

Rings (2/2)


What is a field

A structure <F, +, *> is called a and the complex numbers are all rings.field if F is a ring in which the multiplication is commutative and every element except 0 has a multiplicative inverse. We can define the field F with respect to the addition and the multiplication if:

F is a commutative group with respect to the addition.

is a commutative group with respect to the

multiplication.

The distributive laws mentioned for rings, hold.

What is a Field?


What is a field1

A field is a set of elements with two custom-defined arithmetic operations: most commonly, addition and multiplication. The elements of the field are an additive abelian group, and the non-zero elements of the field are a multiplicative abelian group. This means that all elements of the field have an additive inverse, and all non-zero elements have a multiplicative inverse.

A field is called finite if it has a finite number of elements. The most commonly used finite fields in cryptography are the field Fp (where p is a prime number) and the field F2m.

What is a Field?


Finite fields

A finite field or arithmetic operations: most commonly, addition and multiplication. The elements of the field are an additive Galois field denoted by GF(q=pn), is a field with characteristic p, and a number q of elements. As we have seen, such a finite field exists for every prime p and positive integer n, and contains a subfield having p elements. This subfield is called ground field of the original field.

For the rest of this class, we will consider only the two most used cases in cryptography: q=p, with p a prime and q=2m. The former case, GF(p), is denoted as the prime field, whereas the latter, GF(2m), is known as the finite field of characteristic two or simply binary field.

Finite Fields


Finite fields1

A arithmetic operations: most commonly, addition and multiplication. The elements of the field are an additive finite field is a field with a finite number of elements. The number of elements in a finite field is called the order of the field. Fields of the same order are isomorphic: they display exactly the same algebraic structure differing only in the representation of the elements.

Finite Fields


The field f p

The finite field arithmetic operations: most commonly, addition and multiplication. The elements of the field are an additive Fp (p a prime number) consists of the numbers from 0 to p-1. Its operations are addition and multiplication. All calculations must be reduced modulo p.

It is mandatory to select p as a prime number in order to guarantee that all the non-zero elements of the field have a multiplicative inverse.

Other operations in Fp (such as division, subtraction and exponentiation) can be derived from the definitions of addition and multiplication.

The field Fp


The field f p1

Example: arithmetic operations: most commonly, addition and multiplication. The elements of the field are an additive

Some calculations in the field F23 include

10*4 - 11 mod 23 = 29 mod 23 = 6

7-1 mod 23 = 10 (since 7 * 10 mod 23= 70 mod 23 = 1)

(29) / 7 mod 23 = 512 / 7 mod 23

= 6 * 7-1 mod 23

= 6 * 10 mod 23 = 14

The field Fp


Congruences
Congruences arithmetic operations: most commonly, addition and multiplication. The elements of the field are an additive

  • Definition: Let a, b, n be integers with n ≠ 0. We say that

  • , (read: a is congruent to b mod n). If (a-b) is a multiple (positive or negative) of n, i.e., a = b + nk, for some integer k.

  • Examples: 32=7 mod 5, -12 = 37 mod 7.

  • Proposition:Let a, b, c, d, n be integers with n ≠ 0.

  • a = 0 mod n iff n|a.

  • a = a mod n; a = b mod n iff a = b mod n.

  • If a = b mod n and b = c mod n, then a = c mod n.

  • a = b mod n and c = d mod n. Then a ± c = b ± d mod n,

    ac = bd mod n


Fermat s petit theorem
Fermat’s Petit Theorem arithmetic operations: most commonly, addition and multiplication. The elements of the field are an additive

Theorem: Let p be a prime.

  • If

    In other words, when working modulo a prime p, exponents can be reduced modulo p-1.

  • In particular


Euler theorem
Euler Theorem arithmetic operations: most commonly, addition and multiplication. The elements of the field are an additive

Theorem: Let n≥ 2 be an integer.

Then,

If n is a product of distinct primes, and if

In other words, when working modulo such an n, exponents can be reduced modulo (n).

A special case of Euler’s theorem is Fermat’s petit theorem.


Euler and fermat s theorems examples

Examples: arithmetic operations: most commonly, addition and multiplication. The elements of the field are an additive

What are the last three digits of 7803

Equivalent to work mod 1000 (why?).

Since (1000)=1000(1-1/2)(1-1/5)=400, we have

7803 = (7400)273=(1) 273=73=343 mod 1000. (why?)

Compute 23456 mod 5. From Fermat’s petit theorem we know that 24=1 mod 5. Therefore,

23456 = (24)864 = (1) 864 = 1 mod 5

Euler and Fermat’s theorems examples


The order of an element in the field f p

Using the above result, one can easily prove that the order of any element  in F mustdivide (p)=p-1, i.e., ord ( )| (p)= ord ( )| p-1.

The order of an element in the field Fp

The order of an element  in F, is defined as the smallest positive integer k

such that k=1 mod p. Any finite field always contains at least one element,

called a primitive element, which has order p-1. From Euler’s theorem we

know that for any element  in F,


Primitive elements how many

Fact of any element : Suppose that  is a primitive element in F. Then b = i mod n is also a primitive element in F iff gcd(i, (n))=1. It follows that the number of primitive elements in F is

((n)).

Example: Consider the powers of 3 mod 7:

31=3;32=2; 33=6;34=4;35=5;36=1.

There are ((7)) = 2 primitive elements in F7

Primitive Elements: how many?

¿Cuál es el otro?


Chinese remainder theorem

Fairy Tale of any element : Chinese Emperor used to count his army by giving a series of tasks.

All troops should form groups of 3. Report back the number of soldiers that were not able to do this.

Now form groups of 5. Report back.

Now form groups of 7. Report back.

Etc.

At the end, if product of all group numbers is sufficiently large, can ingeniously figure out how many troops.

Chinese Remainder Theorem



Chinese remainder theorem2
Chinese Remainder Theorem of any element

mod 3:

N mod 3 = 1


Chinese remainder theorem3
Chinese Remainder Theorem of any element

mod 5:

N mod 5 = 2


Chinese remainder theorem4
Chinese Remainder Theorem of any element

mod 7:

N mod 7 = 2


Chinese remainder theorem5

Secret inversion formula (for of any element N < 105 = 3·5·7):

N  a (mod 3)

N  b (mod 5)

N  c (mod 7)

Implies that N =(-35a + 21b + 15c) mod 105.

So in our case a = 1, b = 2, c = 2 gives:

N = (-35·1+ 21·2+ 15·2)mod 105

= (-35+ 42+ 30)mod 105

= 37mod 105

= 37

Chinese Remainder Theorem


Chinese remainder theorem6

How can we find the secret formula? of any element

For any x, a, b, and c satisfying

x  a (mod 3)

x  b (mod 5)

x  c (mod 7)

Chinese Remainder Theorem says that this is enough informationto uniquely determine x modulo 3·5·7. Proof, gives an algorithm for finding x –i.e. the secret formula.

Chinese Remainder Theorem


Chinese remainder theorem7
Chinese Remainder Theorem of any element

Theorem: Suppose that gcd(m, n) = 1. Given a and b, there exists exactly one solution x (mod mn) to the simultaneous congruences

Proof [sketch]: There exist integers s, t such that ms+nt=1 (why?). Then ms=1 mod n and nt =1 mod m (why?). Let x = bms +ant. Then,

Suppose x1 is another solution, then c = (x-x1) is a multiple of both, m and n (why?). But then provided that m and n are relatively primes then c is also a multiple of mn. Hence, any two solutions x to the system of congruences are congruent mon mn as claimed.


Chinese remainder theorem8

THM (CRT): Let of any element m1,m2, … ,mn be pairwise relatively prime positive integers. Then there is a unique solution x in [0,m1·m2···mn-1] to the system of congruences:

x  a1 (mod m1 )

x  a2 (mod m2 )

x  an(mod mn)

Chinese Remainder Theorem