אלגוריתם רו של פולרד ללוגריתם הבדיד – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
שורה 133:
לדוגמה, אם מחלקים את החבורה הציקלית <math>\langle P\rangle</math> ל-<math>L</math> רשימות בגודל זהה בקירוב (למשל <math>L=32</math>), מציבים כל נקודה <math>X_i</math> ברשימה המתאימה <math>S_j</math> אם הערך של 5 הסיביות הכי פחות משעותיות של הקואורדינטה <math>x</math> של הנקודה <math>X_i</math> הוא <math>j-1</math>. נניח ששיטת חלוקה זו תסומן ב-<math>H(X)</math> ונניח שהערכים <math>a_j</math> ו-<math>b_j</math> הם שלמים אקראיים כלשהם הנמוכים מ-<math>n</math> כאשר <math>j</math> מתפרס על פני כל הרשימות של <math>L</math>, במקרה זה פונקציה אקראית איטרטיבית יכולה להיות:
:<center><math>f(X)=X+a_jP+b_jQ</math> כאשר <math>j=H(X)</math></center>
ולכן אם <math>X=cP+dQ</math> אז הפונקציה האקראית היא <math>f(X)=\overline{X}=\overline{c}P+\overline{d}Q</math> כאשר <math>\overline{c}=c+a_j\text{ mod }n</math> וכן <math>\overline{d}=d+b_j\text{ mod }n</math>.
כעת כל נקודה התחלתית <math>X_0\in\langle P\rangle</math> מגדירה סדרה אחרת <math>\{X_i\}_{i\ge 0}</math> של נקודות כאשר כל נקודה מחושבת על ידי הנקודה הקודמת, <math>X_i=f(X_{i-1})</math>. היות שהחבורה הזו סופית בהכרח שתיגרם התנגשות, כלומר ערך של <math>X_i</math> כלשהו יופיע שוב ומנקודה זו ואילך הסדרה תחזור על עצמה במעגל אין סופי. כלומר יופיע האינדקס הקטן ביותר <math>t</math> המקיים <math>X_t=X_{t+s} </math>עבור <math>s</math> כלשהו ומכאן ואילך <math>X_i=X_{i-s}</math> עבור כל <math>i\ge t+s</math>. כאן <math>t</math> הוא אורך השובל ו-<math>s</math> הוא היקף מעגל במונחים של מספר האיטרציות של הפונקציה האיטרטיבית האקראית. אם <math>f</math> היא פונקציה אקראית אז ההתנגשות הראשונה צפויה לקרות לאחר <math>\sqrt{\pi n/2}</math> צעדים בקירוב. אורך השובל הוא <math>t\approx\sqrt{\pi n/8}</math> ואורך המעגל צריך להיות <math>s\approx\sqrt{\pi n/8}</math> בקירוב.
 
התנגשות היא מצב שבו <math>X_i=X_j</math> כאשר <math>i\ne j</math> ואותה אפשר למצוא ללא צורך בזיכרון באמצעות שיטת פלויד או שיטת הצב והארנב. בשיטה זו מחשבים בכל צעד את הנקודות <math>X_i</math> ו-<math>X_{2i}</math> ומנסים למצוא התאמה. מספר הזוגות הצפוי שיש לבדוק הוא לכל הפחות <math>t</math> זוגות ולכל היותר <math>t+s</math> זוגות, עד שתמצא התנגשות. ליתר דיוק בהנחה ש-<math>f</math> אקראית מספר הזוגות הצפוי שצריך לבדוק עד שתמצא התנגשות הוא <math>k=1.0308\sqrt{n}</math>. מספר החישובים שיש לבצע בעקום האליפטי הוא בערך <math>3\sqrt{n}</math> פעולות חיבור נקודות.