18-03-10, 12:06 | # 1 |
חבר וותיק
|
איך עובד ראנדומלאי?
הרי ברור שהמחשב לא יכול לבד להמציא מפסר ראנדומלאי
זה עובד על איזה נוסחא, אשמח לדעת איך |
18-03-10, 14:29 | # 2 |
חבר בקהילה
|
זה עובד לפי השעון של המחשב עם נוסחא מסוימת
|
18-03-10, 14:39 | # 3 |
משתמש - היכל התהילה
|
יניב, לא תמיד משתמשים בשעון של המחשב.
בד"כ לוקחים איזשהו מספר או משהו דינאמי ומבצעים עליו הרבה פעולות מתמטיות מורכבות ככה שיהיה קשה מאוד לנחש את זה מראש. יש דרך נוספת אבל היא דורשת חומרה וזה לדוגמה להשתמש בתזוזות אדמה בשביל זה, למדוד רעידות אדמה שאותן אנו לא יכולים לנבא ולהשתמש בזה לצורך חישובים. |
18-03-10, 15:55 | # 4 |
חבר בקהילה
|
נשמע כאילו כתבת את הנוסחא או שאני מתבלבל חח
|
18-03-10, 16:34 | # 5 |
חבר וותיק
|
שי יניב דווקא צודק
היום מספרים רנדומלים במחשב קשורים מאוד לשעון של המחשב..
__________________
|
18-03-10, 17:19 | # 6 |
משתמש - היכל התהילה
|
ניצן, זה לא תמיד נכון. יש מקרים שמשתמשים בזה (אני לדוגמה נוהג לקחת timestamp ולעשות לו md5 או משהו כזה) אבל בשיטות הצפנה מורכבות יוצרים איזשהו מספר על ידי פעולות מתמטיות ולאחר מכן מריצים עליו כל פעם פעולות מתמטיות אחרות.
אתה מוזמן לקרוא על זה בויקיפדיה גם =] מה שחבל בכל העסק הזה שזה לא באמת רנדומאלי, משמע בעזרת חישובים מתמטיים מורכבים אפשר לדעת מה התוצאה תיהיה, לכן לפעמים משתמשים בגורמים שאין לנו שליטה עליהם כמו שציינתי לדוגמה רעשי אדמה, אבל זה ציוד חומרה די יקר. |
18-03-10, 17:23 | # 7 | |
אחראי פורום
|
ציטוט:
זאת אומרת, יש פונקציה לדוגמא שמקבלת 3 ארגומנטים קוד:
min, max, seed כל עוד min, max ו-seed ישארו אותו הדבר - הפונקציה תוציא תמיד אותו פלט. כמובן, שאפשר להחליף את ה-seed ועדיין לקבל את אותה התוצאה. הרעיון הוא שה-seed, כל פעם מוגרל מחדש - על ידי שימוש בשעון הפנימי, בכל מיני הגדרות ודברים שלאנשים ש"מבחוץ" יהיה קשה לנחש. מה הבעייתיות הגדולה? נראה דוגמא ב-PHP למען הנוחות. כדי להגדיר seed ב-PHP משתמשים בפונקציה srand. אגב, אחרי כל שימוש בפונקציה rand (יצירת מספר רנדומאלי, min, max), אוטומטית קוראים לפונקציה srand ללא ארגומנטים - משמע seed רנדומאלי. נראה דוגמא ב-PHP: קוד:
srand(100); var_dump(rand(0,10)); בעבר, לפני שאוטומטית נוצר seed רנדומאלי, לעיתים נהגו לעשות משהו הדומה ל-: קוד:
srand(time()); (אפשר לחשוב לבד איזה השלכות יש לזה). וזה בקצרה איך שנוצרים מספרים רנדומאליים ודוגמא אחת לניצול לרעה. |
|
18-03-10, 17:55 | # 8 |
I am root
|
השעון היא שיטה אחת , ישנן עוד המון שיטות, למשל שימוש ב PID של התוכנה כמשתנה להוסיף את השעון ולהוסיף עוד ערכים ( אפשר להשתמש בטמפרטורה של המעבד גם כערך אפילו , אין גבול ).
אני ממליץ לעשות בלינוקס tail -f /dev/psaux >>/tmp/random.txt ולהזיז את העכבר לכיוונים שונים ( עכבר PS\2 ) יותר ראנדומלי מזה לא תמצא... |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|