Chapter 3
Download
1 / 16

Chapter 3 - PowerPoint PPT Presentation


  • 144 Views
  • Uploaded on

Chapter 3. 3.6 Integers and Algorithms Representations of integers Algorithms for integer operations Modular Exponentiation The Euclidean Algorithm. Representations of integers.

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 ' Chapter 3' - yoland


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
Chapter 3
Chapter 3

  • 3.6 Integers and Algorithms

  • Representations of integers

  • Algorithms for integer operations

  • Modular Exponentiation

  • The Euclidean Algorithm


Representations of integers
Representations of integers

  • Theorem 1: Let b be a positive integer greater than 1. Then if n is a positive integer, it can be expressed uniquely in the form

    where k is a nonnegative integer, a0, a1, …,ak are nonnegative integers less than b, and ak ≠0.


  • Example 1: What is the decimal expansion of the integer that has (1 0101 1111)2 as its binary expansion?

  • Example 2: What is the decimal expansion of the hexadecimal expansion of (2AE0B)16 ?


  • Example 3: Find the base 8, or octal, expansion of (12345)10

  • Example 4: Find the hexadecimal expansion of (177130)10?


  • Algorithm 1: Construction Base b Expansions

    procedure base b expansion(n:positive integer)

    q: = n

    k: =0

    while q ≠ 0

    begin

    ak : =q modb

    q: =

    k: =k+1

    end {the base b expansion of n is (ak-1. . . a1a0)b}


Algorithms for integer operations
Algorithms for integer operations

  • Algorithm 2: Addition of Integers

    Procedure add(a , b:positive integers)

    {the binary expansions of a and b are (an-1. . . a1a0)2and

    (bn-1. . . b1b0)2 respectively}

    c : =0

    for j: =0 to n-1

    Begin

    d : =

    sj: = aj+bj+c-2d

    c : =d

    end

    sn:=c {the binary expansion of the sum if (sn sn-1. . . s1s0)2 }


Algorithms for integer operations1
Algorithms for integer operations

Example 7:

Add a=(1110)2 and b=(1011)2.


Algorithms for integer operations2
Algorithms for integer operations

  • Algorithm 3 : Multiplying Integers

    proceduremultiply(a, b : positive integers)

    {the binary expansions of and b are(an-1. . . a1a0)2 and

    (bn-1. . . b1b0)2 respectively}

    for j:=0 to n-1

    Begin

    ifbj =1 thencj=a shifted j places

    else cj:=0

    end

    {c0c1. . . cn-1are the partial products}

    p :=0

    for j:=0 to n-1

    p: = p +cj {p is the value ofab}


Algorithms for integer operations3
Algorithms for integer operations

Example 9: Find the product of

a= (110)2 and b=(101)2


Algorithms for integer operations4
Algorithms for integer operations

  • Algorithm 4 : Computing div and mod

    procedure division algorithm(a :integers ,d: positive integer)

    q: =0

    r: =|a|

    while r≧d

    begin

    r := r-d

    q :=q+1

    end

    if a<0 then

    if r=0 then q:=-q else

    begin

    r := d-r

    q := -(q+1)

    end

    {q = a divd is the quotient, r = amodd is the remainder}


Modular exponentiation
Modular Exponentiation

  • In cryptography it is important to be able to find bnmod m efficiently, where b, n and m and large integers. It’s impractical to first compute bn and then find its remainder when divided by m because bn will be a huge number. Instead, we can use an algorithm that employ expansion of the exponent n , say n = (ak-1. . . a1a0)2.

  • Before we present this algorithm, we illustrate its basic idea. We will explain how to use the binary expansion of n to compute bn .First , note that


Modular exponentiation1
Modular Exponentiation

  • To compute bn , we find the values of b, b2,(b2)2=b4, (b4)2=b8, . . . , .

  • We multiply the terms in this list, where aj=1 .

    This gives us .

  • For example, to compute 311 we first note that 11 = (1011)2, so that 311= 383231.

  • By successively squaring, we find that 32=9, 34=81, 38=6561.

  • Consequently,311=383231=6561*9*3= 177,147


Modular exponentiation2
Modular Exponentiation

  • Algorithm 5: Modular Exponentiation

    procedure modular exponentiation(b:integer ,

    n=(ak-1. . . a1a0)2 ,m: positive integer)

    x: = 1

    power := b mod m

    for i=0 to k-1

    begin

    ifai =1 then x :=(x*power) modm

    power :=(power*power) modm

    End

    {x equals bnmod m}

Example 11: Use Algorithm 5

to find 3644 mod 645.


The euclidean algorithm
The Euclidean Algorithm

  • Lemma 1: Let a=bq+r ,where a, b, q, and r are

    integers. Then gcd(a,b)=gcd(b,r).

  • Algorithm 6: The Euclidean Algorithm

    procedure gcd(a.b:integers)

    x: = a

    y: = b

    while y0

    begin

    r := x mod y

    x := y

    y := r

    end {gcd(a,b) is x}


The euclidean algorithm1
The Euclidean Algorithm

  • Example 12: Find the GCD of 414 and 662 using the Euclidean Algorithm.


ad