מחולל מספרים פסאודו-אקראיים – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
בן-שלמה (שיחה | תרומות)
מ תיקון הפניה לערך מורחב
מאור ש. (שיחה | תרומות)
שורה 10:
אם הגרעין התחלתי קבוע, המחולל ייצר רצף זהה שוב ושוב. היות שהרצף מיוצר מתוך קבוצה מוגבלת של מספרים, בסופו של דבר יחזור על עצמו, דהיינו בשלב כלשהו סדרת המספרים שהמחולל מייצר תחזור שוב לנקודת ההתחלה. תופעה זו תתרחש במעגל אין סופי. האורך המקסימלי של הרצף לפני שהוא מתחיל לחזור על עצמו נקרא "מחזור" (period). אורך המחזור אותו מודדים ב[[סיבית|סיביות]], נקבע על ידי מספר פרמטרים, בראשם המצב התחלתי. בבחירה מושכלת של פרמטרים, אפשר לייצר רצף אקראי סביר לכל צורך מעשי ובכל אורך רצוי. הוכח כי אם המצב ההתחלתי של המחולל מכיל <math>\ n</math> סיביות אזי המחזור המרבי לא יעלה על <math>\ 2^n</math> סיביות. באמצעות אלגוריתמים מסוימים אפשר לחשב מחזוריות מחולל אקראי מבלי לעבור על פני כל המספרים במחזור. [[LFSR]] בדרך כלל מתוכנן לייצר רצף אקראי מקסימלי, באורך של <math>\ 2^n-1</math> סיביות בדיוק. <!-- באלגוריתם המבוסס על LCG אפשר לחשב את אורך המחזור על ידי [[פירוק לגורמים]]. --> שילוב של שיטות שונות מניב בדרך כלל מחזוריות מסדר הגודל של <math>\ 2^{n/2}</math> (ראו [[פרדוקס יום ההולדת]] ו[[אלגוריתם rho של פולרד|שיטת רו של פולארד]]).
 
מהיבט של [[תורת האינפורמציה]] קיימת שאלה פתוחה מבחינה תאורטית ומעשית, האם ניתן לייצר רצף פסידו אקראי מתוך גרעין התחלתי אקראי אמיתי, באיכות כזו שלא ניתן להבחין בינו ובין רצף אקראי שנוצר על ידי מחולל אמיתי תוך שימוש בעצמת חישוב מוגבלת, אם לא ידוע הגרעין ההתחלתי והאלגוריתם ששימש ליצירת המספרים. כמעט כל מערכת קריפטוגרפית כוללת שימוש בדרך זו או אחרת במחולל פסידו אקראי. בטיחות מרבית האלגוריתמים והפרוטוקולים הקריפטוגרפיים נשענת על ההנחה שלא ניתן מעשית להבחין בין תוצאה של מחולל פסידו אקראי ו[[מחולל אקראי אמיתי]]. הדוגמה המתבקשת היא [[צופן זרם]], צופן זרם ביסודו כולל מחולל פסידו אקראי מובנה המייצר סדרת מספרים אקראיים המהווים מפתח הצפנה אותו מחברים ב-[[או מוציא|XOR]] עם המסר הקריא ליצירת טקסט מוצפן.
 
פיתוח מחולל פסידו אקראי המתאים ליישום [[קריפטוגרפיה|קריפטוגרפי]] הוא משימה קשה. מבחינה מעשית, פלט מחוללים פסידו אקראיים נפוצים סובל מפגמים רבים שמתגלים במבחנים סטטיסטיים. ביניהם מחזוריות קצרה מן הצפוי של מצב התחלתי מסוים או קורלציה. מצב התחלתי הגורם למחזוריות הרצף להיות קצרה מהצפוי נקרא 'חלש' במובן שבהינתן מצב התחלתי הזה פלט המחולל אינו בעל התפלגות אחידה ועל כן אקראיותו לקויה. לעיתים עולה במבחנים סטטיסטיים שהמחולל אינו מפיק פלט הדומה בתכונותיו לפלט אקראי אמיתי. לדוגמה אלגוריתם [[RANDU]], שזכה לתפוצה רחבה בעיקר בשנות השישים של המאה הקודמתה–20, ב[[מערכת הפעלה|מערכות הפעלה]] של [[מחשב מרכזי|מחשבים מרכזיים]]. האלגוריתם יישם את רעיון מחולל LCG עם פרמטרים שנבחרו באופן לקוי, עקב כך מעריכים שנגרם לא אחת נזק למחקרים שהסתמכו על המחולל.
 
==היסטוריה==