<<  >> (p.5)
    Author Topic: Pollard's kangaroo ECDLP solver  (Read 62392 times)
    arulbero
    Legendary
    *
    Offline Offline

    Activity: 2023
    Merit: 2267


    View Profile
    May 04, 2020, 09:36:13 PM
     #81

    Recap of my tests:


    1)

    normal generation of jumps

    20000 walks
    num_jumps: 32 + 32
    max_length of each walk = 32
    jumpbit = 20

    7516 loops of length 2, 118 of length 4:

    (7516+118+4+2) 20000 = 38,2 % of the walks have a loop before 32 steps

    7516/20000 = 37,58% of the walks have a loop with 2 only points

    [7516, 0, 118, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    ----------------------------------------------------------------------------------------------------------------------------------------------------

    2)

    if(next_jump != -prev_jump): ok
    else
     next_jump = prev_jump  #(you double the previous jump)

    20000 walks
    num_jumps: 32 + 32
    max_length of each walk = 32
    jumpbit = 20

    0 loops of length 2, only 139 loops of length 4 and 7 of length 6:

    (139+7+9+1+3) 20000 = 0,795 % against  38,2%!

    [0, 0, 139, 0, 7, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    ----------------------------------------------------------------------------------------------------------------------------------------------------

    3)

    if(next_jump != -prev_jump): ok
    else
     next_jump = -sign(next_jump)*floor(distAvg)*G   #a different step, with the opposite sign of the normal step

    20000 walks
    num_jumps: 32 + 32
    max_length of each walk = 32
    jumpbit = 20

    0 loops of length 2, only 128 loops of length 4 and 6 of length 6, 2 of length 8:

    (128 + 1 + 6 +2 + 1 + 1) 20000 = 0,695% of the walks have a loop before 32 steps

    [0, 0, 128, 1, 6, 0, 2, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    -------------------------------------------------------------------------------------------------------------------------------------------------------

    4)

    if(next_jump != -prev_jump): ok
    else
     next_jump = prev_jump  #(you double the previous jump)

    20000 walks
    num_jumps: 64 + 64
    max_length of each walk = 32
    jumpbit = 20

    0 loops of length 2, only 40 loops of length 4:

    (40+1+1) 20000 = 0,21 % of the walks enter in a loop in less than 32 steps

    [0, 0, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    loops of length 4 are of "second order":

    probability that (a+b+c+d=0) = (1/128)*(127/128)*(1/128)
    probability that each sequence of 4 consecutive points don't create a loop = (1 - (1/128)*(127/128)*(1/128))^32
    probability to find a loop in a walk of 32 steps: 1 - (1 - (1/128)*(127/128)*(1/128))^32 =  0.001936

    expected value of number of walks with a loop of 4 points: 2000 * 0.001936 = 38,7
    -------------------------------------------------------------------------------------------------------------------------------------------------------

    5)

    if(next_jump != -prev_jump): ok
    else
     next_jump = prev_jump  #(you double the previous jump)

    20000 walks
    num_jumps: 64 + 64
    max_length of each walk = 128
    jumpbit = 20

    157 loops of length 4, only 4 loops of length 6:

    (157+4+2+1+1+1+1+1+1+2+1+1+1+1+1+1+1) 20000 = 0,89% of the walks enter in a loop in less than 128 steps


    [0, 0, 157, 0, 4, 0, 2, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Page 4
Viewing Page: 5