3 6 integers algorithms
This presentation is the property of its rightful owner.
Sponsored Links
1 / 36

§3.6: Integers & Algorithms PowerPoint PPT Presentation


  • 89 Views
  • Uploaded on
  • Presentation posted in: General

§3.6: Integers & Algorithms. Topics: Base- b representations of integers. Especially: binary, hexadecimal, octal. Also: Two’s complement representation of negative numbers. Algorithms for computer arithmetic: Binary addition, multiplication, division. Euclidean algorithm for finding GCD’s.

Download Presentation

§3.6: Integers & Algorithms

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


3 6 integers algorithms

§3.6: Integers & Algorithms

  • Topics:

    • Base-b representations of integers.

      • Especially: binary, hexadecimal, octal.

      • Also: Two’s complement representation of negative numbers.

    • Algorithms for computer arithmetic:

      • Binary addition, multiplication, division.

    • Euclidean algorithm for finding GCD’s.


Base b number systems

Base-b number systems

  • Ordinarily, we write base-10 representations of numbers, using digits 0-9.

  • But, 10 isn’t special! Any base b>1 will work.

  • For any positive integers n,b, there is a unique sequence ak ak-1… a1a0of digitsai<b such that:

The “base b expansionof n”


Particular bases of interest

Particular Bases of Interest

Used only because we have 10 fingers

  • Base b=10 (decimal):10 digits: 0,1,2,3,4,5,6,7,8,9.

  • Base b=2 (binary):2 digits: 0,1. (“Bits”=“binary digits.”)

  • Base b=8 (octal):8 digits: 0,1,2,3,4,5,6,7.

  • Base b=16 (hexadecimal):16 digits: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Usedinternally in all modern computers

Octal digits correspond to groups of 3 bits

Hex digits give groups of 4 bits

10, 11, 12, 13, 14, 15


Converting to base b

Converting to Base b

(An algorithm, informally stated.)

  • To convert any integer n to any base b>1:

  • To find the value of the rightmost (lowest-order) digit, simply compute n mod b.

  • Now, replace n with the quotient n/b.

  • Repeat above two steps to find subsequent digits, until n is gone (=0).


Addition of binary numbers

Addition of Binary Numbers

Consider a 4-bit binary number

Examples of binary arithmetic:

3 + 2 = 53 + 3 = 6

Decimal

Binary

Decimal

Binary

0

0000

4

0100

1

0001

5

0101

2

0010

6

0110

3

0011

7

0111

1

1

1

0

0

1

1

0

0

1

1

+

0

0

1

0

+

0

0

1

1

0

1

0

1

0

1

1

0


Pseudocode of addition

Pseudocode of Addition

procedureadd(an−1…a0, bn−1…b0: binary representations of non-negative integers a,b)

carry := 0

forbitIndex := 0 to n−1 {go through bits}

bitSum := abitIndex+bbitIndex+carry {2-bit sum}

sbitIndex := bitSummod 2 {low bit of sum}

carry := bitSum / 2 {high bit of sum}

sn := carry

returnsn…s0: binary representation of integer s


Two s complement representation

Two’s Complement Representation

  • In binary, negative numbers can be conveniently represented using two’s complement notation.

  • In this scheme, a string of n bits can represent any integer i such that −2n−1 ≤ i < 2n−1.

  • The bit (msb) in the highest-order bit-position (n−1) represents a coefficient multiplying −2n−1;

    • The other positions i < n−1 just represent 2i, as before.

  • The negation of any n-bit two’s complement number a = an−1…a0 is given by an−1…a0 + 1.

The bitwise logical complement of the n-bit string an−1…a0.


Example of two s complement

Example of Two’s Complement

  • Positive numbers: normal binary representation

  • Negative numbers: flip bits (0 1) , then add 1

Decimal

-8

-7

-6

-5

-4

-3

-2

-1

0

1

7

Two’s Complement Binary

1000

1001

1010

1011

1100

1101

1110

1111

0000

0001

0111

Smallest 4-bit

number: -8

Biggest 4-bit

number: 7


Pseudocode of subtraction

Pseudocode of Subtraction

proceduresub(a,b)

begin

returna + (2’s complement of b)

end

  • Uses simple adder for + and – numbers

    7 + (- 6) = 1 3 + (- 5) = -2

1

1

1

1

1

0

1

1

1

0

0

1

1

+

1

0

1

0

+

1

0

1

1

0

0

0

1

1

1

1

0


Details of 2 s complement notation

Details of 2’s complement notation

  • Negation

    • flip bits and add 1. (Magic! Works for + and -)

    • Might cause overflow.

  • Extend sign when loading into larger register

    • +3 => 0011, 00000011, 0000000000000011

    • -3 => 1101, 11111101, 1111111111111101

  • Overflow detection (need to raise “exception” when answer can’t be represented)

    01015

    +01106

    1011 -5 ??!!!


Overflow detection

Overflow Detection

0

0

1

0

1

1

0

0

0

0

1

0

2

1

1

0

0

- 4

+

0

0

1

1

3

+

1

1

1

0

- 2

0

1

0

1

5

1

0

1

0

- 6

0

1

1

1

1

0

1

0

0

1

1

1

7

1

1

0

0

- 4

3

- 5

+

0

0

1

1

+

1

0

1

1

1

0

1

0

-6

0

1

1

1

7

Overflow is signaled by carry out of most-significant bit being different from carry from next bit!


Pseudocode of multiplication

Pseudocode of Multiplication

proceduremultiply(an−1…a0, bn−1…b0: binary representations of a,bN)

product := 0

fori := 0 to n−1

ifbi = 1 then

product := add(an−1…a00i, product)

returnproduct

i extra 0-bits appended afterthe digits of a


Example of multiplication

Example of Multiplication


Pseudocode of division

Pseudocode of Division

procedurediv-mod(a,d Z+)

n := length of a in bits-length of d in bits

q := 0;

fori := n−1downto 0

ifa ≥ d0i then

qi:=1{This bit of quotient is 1.}

a := a − d0i{Subtract to get remainder.}

else qi:= 0{This bit of quotient is 0.}

r := a

returnq,r{q = quotient, r = remainder}


M odular e xponentiation

Modular Exponentiation

  • In cryptography, it’s important to calculate bnmodm efficiently. E.g. 2644mod 645.

  • procedureME(b:integer, ak−1 ak−2…a0:binary representation of n, m: positive integer)

    x := 1; power := bmodm

    fori := 0 to k−1

    begin

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

    power := (power.power) modm

    end

    returnx


Euclid s algorithm for gcd

Euclid’s Algorithm for GCD

  • Finding GCDs by comparing prime factorizations can be difficult when the prime factors are not known!

  • Euclid discovered: For all ints. a, b,gcd(a, b) = gcd((a mod b), b).

  • Sort a,b so that a>b, and then (given b>1)(a mod b) < a, so problem is simplified.


Euclid s algorithm example

Euclid’s Algorithm Example

  • gcd(372,164) = gcd(372 mod 164, 164).

    • 372 mod 164 = 372164372/164 = 372164·2 = 372328 = 44.

  • gcd(164,44) = gcd(164 mod 44, 44).

    • 164 mod 44 = 16444164/44 = 16444·3 = 164132 = 32.

  • gcd(44,32) = gcd(44 mod 32, 32) = gcd(12, 32) = gcd(32 mod 12, 12) = gcd(8,12) = gcd(12 mod 8, 8) = gcd(4,8) = gcd(8 mod 4, 4) = gcd(0,4) = 4.


Euclid s algorithm pseudocode

Euclid’s Algorithm Pseudocode

procedure gcd(a, b: positive integers)

whileb  0 begin

r≔amodb; a≔b; b≔r; end

return a

Fast! Number of while loop iterationsturns out to be O(log(max(a,b))).


3 7 applications of number theory

§3.7: Applications of Number Theory

  • Theorem: If a and b are positive integers, then there exists integers s and t such that gcd(a,b)=sa+tb(so called Linear Combination of GCD).

  • E.g. Express gcd(252,198)=18 in a linear combination of 252 and 198

    • 252=1* 198+54 198=3*54+36

    • 54=1*36+18 36=2*18

    • Hence gcd(252,198)=4*252-5*198


Reduction of congruence

Reduction of Congruence

Lemma 1: If a, b, and c are positive integers such that gcd(a,b)=1 and a|bc, then a|c.

Theorem 2: Let m be a positive integer and let a, b, and c be integers. If and gcd(c,m)=1, then .

Proof: Since , we have

.

Since gcd(c,m)=1, it follows that m|a-b by Lemma1. We conclude that


Existence of inverse of modulo

Theorem3: If gcd(a,m)=1 and m>1, then

Proof:

Since m>1, we have

Suppose

Hence

Since gcd(a,m)=1, (Theorem2)

Existence of Inverse of Modulo

existence

uniqueness


Example

Example

  • Find an inverse of 3 modulo 7.

    Since gcd(3,7)=1, by Euclidean algorithm:, we see that . This shows that –2 is an inverse of 3 modulo 7.


Simple encryption

Simple Encryption

Variations of the following have been used to encrypt messages for thousands of years.

  • Convert a message to capitals.

  • Think of each letter as a number between 1 and 26.

  • Apply an invertible modular function to each number.

  • Convert back to letters (0 becomes 26).


Encryption example

Encryption example

Let the encryption function be

f (a) = (3a + 9) mod 26

Encrypt “Stop Thief”

  • STOP THIEF (capitals)

  • 19,20,15,16 20,8,9,5,6

  • 14,17,2,5 17,7,10,24,1

  • NQBE QGJXA


Decryption example

Decryption example

Decryption works the same, except that you apply the inverse function.

EG: Find the inverse of f (a) = (3a + 9) mod 26

If we didn’t have to deal with mod 26, inverse would be g (a) = 3-1 (a - 9)

We’ll see that since gcd(3,26) = 1, the inverse of 3 is actually well defined modulo 26 and is the number 9. This gives:

g (a) = 9(a - 9) mod 26 = (9a – 3) mod 26

  • Caesar’s Cipher: f (a) = (a+3) mod 26


Rsa cryptosystem

RSA Cryptosystem

  • Setup:

    • n = pq, withpandqprimes

    • e relatively prime to f(n) = (p- 1) (q- 1)

    • dinverse of e in Zf(n)

  • Keys:

    • Public key: KE = (n, e)

    • Private key: KD = d

  • Plaintext M in Zn

    • Encryption:C=Memodn

    • Decryption:M=Cdmodn


Complete rsa example

Complete RSA Example

  • Setup:

    • p = 5, q = 11

    • n = 511 = 55

    • f(n) = 410 = 40

    • e = 3

    • d = 27

  • Encryption

    • C = M3 mod 55

  • Decryption

    • M = C27 mod 55


Security

The security of the RSA cryptosystem is based on the widely believed difficulty of factoring large numbers

The RSA challenge, sponsored by RSA Security, offers cash prizes for the factorization of given large numbers

In April 2002, prizes ranged from $10,000 (576 bits) to $200,000 (2048 bits)

Estimated resources needed to factor a number within one year

Security


Euler s theorem

Euler’s Theorem

  • The multiplicative group for Zn, denoted with Z*n, is the subset of elements of Znrelatively prime with n

  • The totient function of n, denoted with f(n), is the size of Z*n. E.g: Z*10= { 1, 3, 7, 9 }, f(10) = 4

  • If p is prime, we haveZ*p = {1, 2, …, (p - 1)}, f(p) =p - 1.

  • For each element x of Z*n, we get xf(n) mod n= 1.

  • E.g(n= 10): 3f(10) mod 10 = 34 mod 10 = 1


Correctness

We show the correctness of the RSA cryptosystem for the case when the plaintext M does not divide n

Namely, we show that(Me)dmodn=M

Since edmod f(n) = 1, there is an integer ked=kf(n) + 1

Since M does not divide n, by Euler’s theorem we have

Mf(n)modn= 1

Correctness


Correctness1

Thus, we obtain

(Me)d≡Med≡Mkf(n) + 1≡MMkf(n)≡M (Mf(n))k≡M (Mf(n)modn)k≡M (1)k≡M(modn)

the proof of correctness in the case when the plaintext M divides nis rather complex.

Correctness


Linear congruence

Linear Congruence

  • A congruence of the form is called a linear congruence, where m is a positive integer, a and b are integers, and x is a variable.

  • How to solve? Multiply both side of linear congruence by inverse.

  • What are the solution of?

    Sol.: Since -2 is the inverse of 3 modulo 7, we have -2‧3x ≡ -2‧4(mod 7),So x ≡ 6(mod 7).


Chinese remainder theorem

Chinese Remainder Theorem

Let m1,m2,…,mn be pairwise relatively prime positive integers. The system

has a unique solution modulo m, where

(That is, there is a solution x with, and all other solutions are congruent modulo m to this solution)


Proof of chinese remainder theorem

Proof of Chinese Remainder Theorem

  • Proof: Let Mk=m/mk for k=1,2,…,n.

  • Since gcd(mi, mk)=1 for , gcd(mk, Mk)=1.

  • Consequently, .

  • Let .

  • Since whenever .

  • Since , , for k=1,2,…,n.


Examples

Examples

  • Find a number x such that have remainders of 1 when divided by 3, 2 when divided by 5 and 3 when divided by 7. i.e.

    • x =1 mod 3

    • x = 2 mod 5

    • x = 3 mod 7

      Sol: 2*35≡1(mod 3) 1*21≡1(mod 5) 1*15≡1(mod 7),

      so x ≡ 1*2*35+2*1*21+3*1*15 ≡52 (mod 105)


Examples1

Examples

  • Represent 973 in Z1813 as a k-tuple:

  • Answer:

    • M = 1813 = 37 * 49  m1 = 37 & m2 = 49

    • A = 973

    • A = (A mod m1, A mod m2) = (11, 42)

  • We can recover its value using Chinese remainder theorem.

  • Applied in computer arithmetic with large integers.


  • Login