modular arithmetic cryptography
Download
Skip this Video
Download Presentation
Modular Arithmetic & Cryptography

Loading in 2 Seconds...

play fullscreen
1 / 32

Modular Arithmetic & Cryptography - PowerPoint PPT Presentation


  • 153 Views
  • Uploaded on

Modular Arithmetic & Cryptography. CSC2110 Tutorial 8 Darek Yung. Outline. Quick Review Examples Q & A. Quick Review. Prime Modular Arithmetic Multiplicative Inverse Turing’s Code RSA. Prime. If p is a prime, GCD(a, p) = 1 unless a is multiple of p

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 ' Modular Arithmetic & Cryptography' - basil


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
modular arithmetic cryptography

Modular Arithmetic & Cryptography

CSC2110 Tutorial 8

Darek Yung

outline
Outline
  • Quick Review
  • Examples
  • Q & A
quick review
Quick Review
  • Prime
  • Modular Arithmetic
  • Multiplicative Inverse
  • Turing’s Code
  • RSA
prime
Prime
  • If p is a prime, GCD(a, p) = 1 unless a is multiple of p
  • If p is a prime, p | a1 * a2 * … * aN implies

p | ai for some i

  • Every natural number n > 1 has a unique prime factorization
multiplicative inverse1
Multiplicative Inverse
  • Multiplicative inverse can be calculated by
    • Repeated squaring
    • Integer linear combination
turing code version 1
Turing’ Code (Version 1)
  • Secret: key k
  • Encryption: m’ = m * k
  • Decryption: m’ / k = (m * k) / k = m
  • Attacked by

GCD(m1’, m2’) = GCD(m1k, m2k) = k

turing code version 2
Turing’ Code (Version 2)
  • Public: large prime p
  • Secret: key k, k < p
  • Encryption: m’ = rem(mk, p), m < p
  • Decryption:
    • multiplicative inverse of k (mod p) k’
    • m’  mk (mod p)
    • m’k’  mkk’ (mod p)  m (mod p)
  • Plain text attack
    • Given m’, m, p
    • multiplicative inverse of m (mod p) m’’
    • m’m’’  kmm’’ (mod p)  k (mod p)
slide10
RSA
  • Generate two large primes p, q
  • Let n = pq, T = (p-1)(q-1)
  • Select e such that GCD(e,T) = 1
  • Let d = multiplicative inverse of e (mod T)
slide11
RSA
  • Public: n, public key e
  • Secret: private key d
  • Encryption: m’ = me (mod n), m < n
  • Decryption: (m’)d  med  m (mod n)
examples
Examples
  • Q20: False
  • Q21: False, modular arithmetic can be applied to INTEGER a, b
  • Q22: True, sum of digits is divisible by 9
examples1
Examples
  • Q23: True, difference between sum of even digits and sum of odd digits is divisible by 11
  • Q24: False, either of a, a’ can be negative.

e.g. n = 5, a = 3, a’ = -3  k = -2

  • Q25: True
examples2
Examples
  • Q26: False, c may be multiple of n
  • Q27: False, k may be multiple of p
examples3
Examples
  • Q28: True
  • Q29: False, k may be multiple of p
  • Q30: False, k may be multiple of p and there is no multiplicative inverse of k (mod p)
examples4
Examples
  • Q31: True (false if p1 = p2)
  • Q32: True
  • Q33: False, Version 1.0 use simple multiplication
examples5
Examples
  • Q34: True (will show in long question)
  • Q35: True
  • Q36: False, unique m with respect to a specific k. A large number of (m, k) pair.
examples6
Examples
  • Q37: True
  • Q38: False, encrypted by public key
  • Q39: True
  • Q40: False, it is just to compute the power of an integer modulo another number
examples7
Examples
  • It is now 5pm on Sunday, What’s the time and the day of the week after 17965 hours
  • 17965 = 758(24) + 13
  • 758 = 108(7) + 2  Tuesday
  • 13 + (5+12) = 30 = 1(24) + 6  6am

 Wed

examples8
Examples
  • Calculate 579572 (mod 21) by repeated squaring
  • 72 = 64 + 8
  • 5795  20 (mod 21)
  • 57952 1 (mod 21)

 57954 57958 579516 1 (mod 21)

579532 579564 1 (mod 21)

  • 579572 579564 * 57958 20 (mod 21)
examples9
Examples
  • Calculate multiplicative inverse of 47981 (mod 95963)
  • 95963 = 2(47981) + 1

 1(95963) -2(47981) = 1

 -2(47981)  1 (mod 95963)

 required multiplicative inverse = -2

examples10
Examples
  • Prove ac  bc (mod p) and GCD(c, p) = 1 imply a  b (mod p) for prime p
  • Since GCD(c, p) = 1, there exists

c’ = multiplicative inverse of c (mod p)

  • ac  bc (mod p)

 acc’  bcc’ (mod p)

 a  b (mod p)

examples11
Examples
  • Given a  b (mod p) and b  c (mod p) implies a  c (mod p)
  • And a  b (mod p) implies a+cb+c (mod p)
  • Prove a  b (mod p) and c  d (mod p) imply a + c  b + d (mod p) for prime p
examples12
Examples
  • Prove a  b (mod p) and c  d (mod p) imply a + c  b + d (mod p) for prime p
  • a  b (mod p)  a + c  b + c (mod p)
  • c  d (mod p)  c + b  d + b (mod p)

 a + c  b + c  c + b  d + b (mod p)

 a + c  b + d (mod p)

examples13
Examples
  • Explain why a number written in decimal is divisible by 9 if and only if the sum of its digits is a multiple of 9
  • 10  1 (mod 9)

 10k 1k  1 (mod 9)

  • All decimal number, d, can be written in form:

dk(10k) + dk-1(10k-1) + … + d1(101) +d0

 d  dk + dk-1 + … + d0 (mod 9)

 divisible by 9 if and only if the sum of its digits is a multiple of 9

examples14
Examples
  • Explain why a number written in decimal is divisible by 11 if and only if the difference between the sum of its odd digits and sum of its even digits is a multiple of 11
  • 10  -1 (mod 11)

 10k (-1)k (mod 11)

  • All decimal number, d, can be written in form:

dk(10k) + dk-1(10k-1) + … + d1(101) +d0

 d  (-1)kdk + (-1)k-1dk-1 + … + (-1)0d0 (mod 11)

 d  dk - dk-1 + dk-2… - d1 + d0 (mod 11)

 divisible by 11 if and only if the difference between the sum of its odd digits and sum of its even digits is a multiple of 11

examples15
Examples
  • Under Turing’s Code (Version 1.0), given key k = 47
    • Encrypt message m1 = 569
    • Encrypt message m2 = 751
    • Get k by having m1 and m2
example
Example
  • Encrypt message m1 = 569
  • m1’ = k * m1 = 26743
  • Encrypt message m2 = 751
  • m2’ = k * m2 = 35297
  • How to crack?
examples16
Examples
  • GCD(m1’, m2’) = GCD(m1k, m2k) = k
  • 35297 = 1(26743) + 8554
  • 26743 = 3(8554) + 1081
  • 8554 = 7(1081) + 987
  • 1081 = 1(987) + 94
  • 987 = 10(94) + 47
  • 94 = 2(47) + 0

 GCD(35297, 26743) = 47 = k

examples17
Examples
  • Under Turing’s Code (Version 2.0), given prime p = 89, key k =48
    • Encrypt message m = 78
    • Compute multiplicative inverse of m (mod p)
    • Show how to perform plain-text attack
examples18
Examples
  • Encrypt message m = 78
  • m’ = rem (mk, p) = rem (3744, 89) = 6
  • Compute m’’ = multiplicative inverse of m (mod p)
  • 89 = 78 + 11  11 = 89 - 78
  • 78 = 7(11) + 1  1 =78 – 7(11)

 1 = 8(78) – 7(89)

 m’’ = 8

examples19
Examples
  • Plain-text attack: given m’, m and p
  • m’  m * k (mod p)

 m’’ * m’  m’’ * m * k  k (mod p)

  • m’’ * m’ = 6 * 8  48 (mod p)

 k = 48

ad