1 / 10

Collision Algorithms

Collision Algorithms. CS 303 Alg. Number Theory & Cryptography Jeremy Johnson. Sections 2.7 and 4.4 of Hoffstein, Pipher, and Silverman, “An Introduction to Mathematical Cryptography”, Springer, 2008. Outline. Birthday Paradox Discrete Log Problem Shanks Babystep-Giantstep Algorithm

nancy
Download Presentation

Collision 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Collision Algorithms CS 303 Alg. Number Theory & Cryptography Jeremy Johnson Sections 2.7 and 4.4 of Hoffstein, Pipher, and Silverman, “An Introduction to Mathematical Cryptography”, Springer, 2008..

  2. Outline • Birthday Paradox • Discrete Log Problem • Shanks Babystep-Giantstep Algorithm • Collision Theorem • Randomized Discrete Log Collision Algorithm

  3. Collision Algorithms • A simple yet surprisingly powerful search method is based on the observation that it is usually much easier to find matching objects that it is to find a particular object. • Cryptographic applications of collision algorithms are generally based on the following setup. Bob has a box that contains N numbers. He chooses n distinct numbers from the box and puts them in a list. He then makes a second list by choosing m (not necessarily distinct) numbers from the box. The remarkable fact is that if m and n are slightly larger than N, then it is very likely that the two lists contain a common element.

  4. Birthday Paradox • Pr(someone has same birthday as you) • 1 – (364/365)m • Pr(two people have the same birthday) • 1 - i=1..m (365-(i-1))/365 • 1 - i=1..m-1 (1-i/365)  1 – exp(-t*(t-1)/(2*365)) • Approximately 23 people required for 50% • 1 – (364/365)40 10.4% • 1 - i=1..39 (1-i/365)  89.1%

  5. Discrete Logarithms • Discrete log problem • Given Zp* = <g> • logg(y) = x, if y = gx. • Example • Z17* = <3> 31=3, 32=9, 33=10, 34=13, 35=5, 36=15, 37=11, 38=16, 39=14, 310=8, 311=7, 312=4, 313=12, 314=2, 315=6, 316=1 • Log3(15) = 6.

  6. Shanks Babystep-Giantstep Alg • Given Zp* = <g>, N = p-1 • Find logg(h) = x, h = gx. • Let n = 1 + N  , n > N (could use  N ) • Create two lists • 1, g, g2, g3,…, gn • h, hg-n, hg-2n, g-3n,…, hg-n*n • Find match between two lists gi=hg-jn  x = i+jn • Complexity (N log(N)) • Example Z17* = <3> , h = 15, n = • 31=3, 32=9, 33=10, 34=13 • 15, 15*3-4=9, 15*3-2*4=2, 15*3-3*4=8 • x = 2 + 1*4 = 6.

  7. Collision Theorem • An urn contains N balls, of which n are red and N-n are blue. Bob randomly selects m balls (replacing them in the urn) • Pr(at least one red) • 1 – (1-n/N)m 1 – exp(-mn/N) • 1 If N is large and m and n are close to N then • – (1-n/N)m 1 – exp(-mn/N)

  8. Collision Theorem Application • View list of numbers as an urn containing N numbered blue balls. Select first list and paint red. Select second list. Match occurs when a red ball is selected. • Eight cards are dealt and then eight cards are selected from a fresh deck. What is the probability that one of the second eight cards matches the 8 dealt cards? • 1 – (1-8/52)8  73.7%

  9. Collision Theorem Application • A set contains N objects. Bob randomly chooses n of them, makes a list, replaces them and then chooses n more. How large should n be to get a 50% chance of match? A 99% chance of a match? • Pr(match)  1 – exp(-n2/N) = ½, .99 • n = sqrt(N*log(2))  0.83N • n = sqrt(N*log(100))  2.15N

  10. Randomized Collision Algorithm for Discrete Log • Given Zp* = <g>, N = p-1 • Find logg(h) = x, h = gx. • Write x = y-z • Create two lists • gy1, gy2,…, gyn • hgz1, hgz2,…, hgzn • Try to find match between two lists gyi=hgzj  x = yi-zj • Complexity (n log(N)) • Choose n = cN to get high probability of a match

More Related