computing discrete logarithms with the parallelized kangaroo method

 ! " #! $ % & ' (! ' )
Æ ! $ * Æ
!
!"
# $
$" %& !" # $
$ '()*+,-
. $ #/ 0 $
" $ 1 2 3 # " # #
1 " " $
) # ! %& !"
" # 4 2 $
# 5 # # #
" 2 '67- # " #
" " 1 2 8 9
" # '
- ': - '
- ; " / " # "
" " #
': - # ': - <#"
+ , -.! -//0
0110 000.! 123./
" #
= '67- '
- 8 9 >
" " " 4 #
').++-
4 # ? 2
Æ
. #
#
'
- 8 @ 8
<#" " Æ
4
#" # !
8" # ? # @ . A 4
" )
. ').++- '::- .
B" # # # C # , # < # " " " # . 6" # # #
" )
.
4
. 7 # ;
+ # 4 " " '
-" # #
'
- ; " # #
" # $
$
# > " # , (
D ( D E" & ; 8::: !
F 8
#
1 " # '
- #
. '67- )
. ').++-" # # . # " # " 1 ? 1 " # ? 1 E
2 '
-/ " # 1 #
# " # # # " # # # # " #
# # = ; " # $ C 1 #
: 1 1 " C
1 <" # # B = C" # C . # C
"
# = C ; " " $
C " 1 : 8 # 1 1 1 # # # 2 !
" # Æ 1 Æ !" 1 : Æ
1 Æ
9 Æ
!" 1 Æ
!" 9 # # # $ # 2 .
# ¼ 1 ,@ F
1 ¼ " # # # = # 1 " # A" 2
¼
¼
1
8 Æ 1 Ƽ
" 9
9 Æ
Æ
¼ !"
8
#
Rho method
Kangaroo method
Parallelized rho method
. 8 ,8/
9
1
9 Æ
Æ
!" 8
# # $ 1 ¼
* )
. ').++- 4 4 C 8 C 8 @
# " 4
" <#" ? # "
# # = 2 $ # 1 " " # / 2 #
" $ 0 ; " " 2 # " #
" $ 0 ; " 4 " # #
2" "
# 2 # # 2" # " # # 4 " # ;
" " # # 2 # #
# ? 2 ! " 1 " # $ 1 y2
t1
t3
t0
y3
t4
y4
y0
$
w0
w2
w1
y1
w w3
4
Pseudo-random walk
Walks with small jump distances
# E
'::- # #
2
# @ 1 #
" 1 " 1 4 ; "
# #
1 " " ' -" 8
# # #
1 # # " #
1 # # # "
# C # 8 " 1 : 1 " " " C 4 F
1 : 1 " , # 7 ; 8 # <" # # " 2
#
1 #" " #
%&" 1 # " # @ # # # / # # # " # # #
C A
! 1 2 # " )
. ').++-
¼
'
! ; "
# $ 1 1 / $
4
" # $
#
" # 4 . # # # .
2 # " # #
1 Æ 1 Æ
!
C " #
#
" Æ
Æ
!" # #
# # " # " # $ 1 ¼
4 " G ; 1 " # G 1 8 $ G 1 8 C #
" 8G C " # #
)
. /1 8 9 8 C 2
/1 8 9 8 # 1 ,A " # A : 1 " G 8 "
8 9 8 8 9 8 8 9 8 8 9 8 " C
# $ ? # H?I" # #
# # Æ
?
D / 2
" " 1 : 2
E
; " # "
8 C $ D 8/ ) 4 "
0 ' 0::- $ H
4I ! "" # " !
" !" ! " #
#$ ,A" #
J = G 1 J B
(
!
"""#
$ %
* )
. ').++- # # 4 #
/ ! # " " #
" # # #
# " 8 " 8 # " #
) " # C " # C " % " $
B % ) 1 A & # " & % B8 & " 8 # ' ' ? 1 ' 1 1 8 Æ 1 Æ !" ' 1 & #
#
# C" C #
# " #
K#
# " # # # 8 C ').++- ," 8 9 G " # G D/ $
" # ¼ 1 8 # " C #
¼" # C
# # ¼ ) " 4
# . " # # # ! " #
" #
?
# 6
'::- 4
# <
#/ ) # #
# " # 8 9 C C " 1 ( ( " 1 ? #
1 : ) 1 : " # # # #
!" 2
9
9 9 )
8
2 ) " # <" # " '::- *
, # ( C B8
% ) 1
8" 8
9 G C 8" % ) )
. 4
F
= 4
# # $
# " # " # # / #
$
; 4
" $ " 2
7
! "#$
B C #
* 1 )
." * 1 = " #
C 1 ( * .
( # # # !
( " # ( (
1 ( " " #
$ " # " # " B ! $
( # # #
( 1
( 1 8 " # 8 ( % B " B8 F
% #
" C #
# # C +67 '67- ':: 4
,,
D/ " # C ?
. + /1 8 %* ( 1 %* + %
# # #
B 8 ! 8: ( (
' 8%* -" C
# ( (
1 # # #
4 8: # '::- # #
# #
8: C ' - # # " # #
C
#
# 8%* " " 8: C ' 8%* - Æ
+
$%&
B8
4
)
. # # # ? <" 2
" " # 1 : 8 & " # ) " # #
& ( " # #
& %8 # # ? % " # #
C #
# ) " # #
& " # C C #
" C # # " C # " ?
2
" # & %8
,
&
"'
. $
4 4 )
.
').++-" #
" # . " # #
#
.
" # C
2 . . # # 2
/ # # " # " # .
, , , # . & # ' ' # 9 - 1 8
# # # # # # " # # 3 #
# # ! " %1
,
" # " -% ? <" , 1 -% ) " # " # # ) " " < # #
" " 4 6
" # " C # C #
C ' 8% - # / ; " 8% " # # 8 % C # # #
88% " C $ # $
#
% ! 8 % <"
" # " #
# A% " , 1 A% " # $ , 9 , # % ) 1 - 8 E
# # - 5 # # <#" # # -"
# # - . , % ) 1
-
8
, 1 8- - , 1 8 - ! - ': 8-" # , 1 , 1
,8
8
, 9 , 1 A - " '
-"
# - 1 A" # % ) 1 A C
B A
, 1 , 1
!" -" # $ , 1 , 1 , 9 , 1 8 ) #
% B '
- '
- , 9 , $ 2
@ , 9 , " # C
, 1 G ; = 4
" # 1 8 # # # C # " $ &'&(#& ! '#& &
, ; " # # . # L #
" C # #
% " % ,@
, % 1 % . F# / " " / 1 , 9 , / % . # % 1 , '
-" ': 8- "
8 .
/ % .
8
" # ,A
-
/ % 9
. - - 1
8 8
. . . . -
8 8 8 ; # 8% " * 0 $
* 0 . 0 8
# 1 0 # . . 0 8
; " * : 7" * :+A : " * :B6" 1 1 * :A@" 1 :B7 : " 1# : : 1 '
- # # 8" ,B
/ % . & & # ! '#$ ''
,8
F# # # 8 ; " $
# !" % 1 8 1 = Æ " Æ " Æ # " # ?
" # " Æ 1 %, " ,,
Æ 1 Æ 9 Æ 9 Æ # . Æ Æ !" 1 9 8 Æ 1
Æ !" 8 " # Æ Æ !" 1 ( ( . # ( 1 : ; " Æ
# Æ Æ !"
C % C % " Æ 2
% 1 A # A
; ,@ # Æ % . F# 2 2 % A2 Æ A2 . " 2 1 " Æ . # :+7
2 1 8" Æ A : . : ' @78" # $ 2 1 68" 68" Æ #
: ' 8 # # " = Æ A" % 1 A Æ 1 )& " ) : 8 # & %8 B8 ;" %
%8 ,@ # $ ,6
. , %8 1 Æ A # 1 8 # 8 68" # " 8 #
. # :+7
D 7 1 :@+8 " " 2 8BA" 1 # 2
" " # 2 $
" # $ 1 F
8 " 1 %%' '#& & )
,@
= " 2 . " M $ # " # # . # A" ! " # $
# # # # #
C % 1 8
1 ! % ;
,B" # / % 1 / # % . # " # F# 2 2 . # 2 1 " : A 2 1 8" 8B : "
2 1 A" : ' # A
# '
-" # ,A # $ / % 1 . # . 8" # . 8 8@ 8 " C " ( " #
% 1 A"
# / % 1 / ' % .
2" ,B" #
. ' # " " # #
1 ::: " #
:' 1 F
" <#" 2 " # # #
4 *#& '%+ &%
,A
# # % B " " 2
A . #
,," # F
Æ 1 ¾ Æ
Æ !" 1 ¾ Æ
!" Æ 1 , Æ !" ' Æ ; " Æ 8" Æ 1 AG" Æ # Æ A . ,6 #
A ! & # " # $ = Ô
# 9 #- 9 & .
G 1 8 " A " # AG 8 " # Æ @
A
9 8
9
8
& . & & % B8" % 1 " #
: '" # Æ A 9 8 9 #(' ! $'' & ,B
% " <#" # " # # #
) " # #
# ?
. # # 4 % 1
- 8 4 C F# 3
" 3 :" C , % 3 " - ': 8- , % 1 A - ,8 #
3 1 " , , $
= , 1 -% , 1 A%3 , % 3 1 8
- 9 3 . # % 4 3
" # # # #
% ) 1 3 - 8" , % ) 3 1 A
- 3 2
, % 3 , % ) 3 " # 3 " # #
4 3 /1
8
9
3
3 1 #
; " # 8" # 4 8 1 4 8 1 BA #" # # "
, ; " <#" # " " :" 4 : 1 4 : 1 @B" $ #
# #
4 % N " #
3 " #
#'&& %#$& & %%)&
,,
" # # 4 " # # C , # = " # # " # # $ #
% " " C #
C ' 8% - E # #
'::-" #
8: C ' 8% -
'::- #
/ #
# " " 8%" # " C < " ; " C # 8 B , 8:" " : 8" C
" " " , 8% " C
#
# , ,8 L
" # " C
8: B 8
4 )
. = 4
" " 2 / # " 4 4 C
#
6
(" ""
D # 4
)
.
# # # . % 1 % ) , # ,8
" # " # !
" 8 8
# ) " 8 " " . " # . " # # # . # A $
" 8" #
?
" # " 8 <" " # ?
$
. 4" #" # 4 ) $
# # E
C # # $ .
" " $ 7 1 A" # $
" #"
A 8 = " # " # . 4
1 A " # # #
1
1 @ # " # 8 @ 1 B #
# # " A #
4 " # #
;
" , C " 7
)*+
" "
. # #
5 " 6 1 :
7 1 9 B 9 +
$
9 @6 2
:
$
9 @6 . " # # 5 #
. &
! ! '- L
%
AB: 8, #" # # #
4 , 1 : . " # C" # . # #
# C
# B ) $
#
" 1 " ¼ 1 8 . * 1 1 * #
': :*-
. #
# C . :::: " C3 C
#
# # C 6 . $ " 8:6 :#
8:7 :#
# # # C # C $ " # ': -"
1 :* : : " # # #
1 8:" 1 :: 1 ::: ; # #/ . * 1 1 *
#
': - # #
1 8:"
1 :: 1 ::: " # 4
" C .
)
. " #
C ; " ::: # " ::
)
. & 1 B::@"
*
& 1 B::8 & 1
B::::+ 1 : : : " " & # 8% ) 1 8 1 +"
'
8: # 8
:: # 8
::: # 8
" ': :*)K. 88@
88
88,
8 8
8 6
8 A
8:6
8:+
8 7
8:,
8:,
+A
! /
/
:: # 8
::: # 8
" ': : )K. 8 8
+6
8 @
+@
+6
+
8:
8::
+A
8:
+A
+,
': : )K. 8 7
+6
8 6
8:
8:
7
8:,
8 8
8:+
8 6
8 7
8 8
O O 1 :* : : ': :*& 1 @ & 1 8:@ & 1 B:@ & 1 8B:@ & 1 B::@ & 1 :::6
A8,
8:7
8:8
78
6B
,,
7
+
+
76
7,
77
B AA
6,A
B+B
86B
88,
,8
6+
6
7A
6,
76
7+
L 1 A+ 1 A++ 1 8:" 1 :: 1 :::" ; 1 : # #
#
@" 7 . " ::: :: " 8 . " # # #
#8
C " # # #
C F
::: " # #
::B
F# # # )
. 4
L " #
# #
1 :* / & 1 @ 8:@ B:@ 8B:@ B::@ :::6 . C" 1 :: 1 ::: ::: # 8 ; C " " # C # #" " # # & %8 # # ! # # 8 /
& 1 ::: @ # $ #
# 3 8@:
. # 1 A . # " " @ #
# # #
1 :* & 1 B::@3 & 1 @ 8:@ # . A # 8
7 # 8
, # 8
" ,
(
': :*)
K.
:6B
87+
8A:
:66
87B
8A@
88
8B,
8 B
@B
86@
8 A
B+
88+
8 6
B6
88@
8:B
L 1 A" 1 7 1 , = 4
" # #
6 . 1 7 1 , 4
# #
, #
4 A #&
7 ) 4
5 )
. 5 C 5 # # 5 2 # = 4
4
" # #
" #" # # # # # # )
.
" # # +
&++"
$#& %'& & %'& & $''&
+ < # # / # #
1 " # # (
( + ( .
" # ( ! ( #
#" # + #
# '::- # # 4
1 " : 1 9 ( ( " 1 .
7 1 ( " ¼ 1 ¼ 1 1 2
$
2
+8
¼ 1 ¼ # # ': 7 - # 4
C
#
) " C +8 C ( <" # # = 4
'::-" # *
# # # " # # C
.
" # ( ( " ( ( " ¼ ¼ 7 7 ( ( 8, ( %& & +8
8 1 " 1 2 8 " # #
1 ,
8 #
: : 8 = " #
; 8" < #
$ 1 #
1 < #
2 ' -" 2
! Æ
" <#" # $ < #
#
# # 8 % ,#%'%& !#& -
+@
4 2
$ ' ::- $" C
#
# # " # # $ # " # #
" Æ $ C L 4
#
% " # # 8+
2
$" # #
$
3 4! 5 6 ! 4 "7 891.# 3 7'! 8! 3 9 !" ! # :;: ! 011.
"
<=# > 7 7 : $ % & !
?-%02?&+10=@1-2! 01<=
"
//# > 7 ! 7 $ #! 0?+2?<@22<! -///
"4//#
(4 : + :: -///!
, A : :! ! 4! -/// "#
"//#
3 ' ) B "#
( ( C "//#
8 D ! </+=/1@=-E! -//0
" 8A11# : 8 7 > A $ #! 0-+0@-=! 0111
% !! +