13Jul

כיצד מחשבים מייצרים מספרים אקראיים

מספרים אקראיים לקוביות

מחשבים מייצרים מספר אקראי לכל דבר, החל בקריפטוגרפיה ועד משחקי וידאו והימורים.ישנן שתי קטגוריות של מספרים אקראיים - מספרים "אקראיים" אמיתיים ומספרים פסאודו-אקראיים - וההבדל חשוב לביטחון מערכות ההצפנה.

מחשבים יכולים ליצור מספרים אקראיים באמת על ידי התבוננות בנתונים חיצוניים, כגון תנועות עכבר או רעש מאוורר, שאינו צפוי, ויוצר נתונים ממנו.זה ידוע בשם אנטרופיה.פעמים אחרות, הם מייצרים מספרים "pseudorandom" באמצעות אלגוריתם כך התוצאות מופיעות אקראיות, למרות שהם לא.

נושא זה הפך להיות יותר שנוי במחלוקת לאחרונה, עם אנשים רבים תוהה אם החומרה המובנית של אינטל שבב מספר גנרטור של אינטל הוא אמין.כדי להבין מדוע זה לא יכול להיות אמין, אתה צריך להבין איך מספרים אקראיים הם genreated מלכתחילה, ומה הם משמשים.

מה מספרים אקראיים משמשים

מספרים אקראיים שימשו במשך אלפי שנים.בין אם זה מרפרף מטבע או מתגלגל הקוביות, המטרה היא להשאיר את התוצאה הסופית עד סיכוי אקראי.מחוללי מספרים אקראיים במחשב דומים - הם מנסים להשיג תוצאה אקראית, בלתי צפויה.

מחוללי מספרים אקראיים שימושיים למטרות רבות ושונות.מלבד יישומים ברורים כמו יצירת מספרים אקראיים למטרות הימורים או יצירת תוצאות בלתי צפויות במשחק מחשב, אקראיות חשוב קריפטוגרפיה.

Cryptography דורש מספרים שתוקפים לא יכולים לנחש.אנחנו לא יכולים פשוט להשתמש באותם מספרים שוב ושוב.אנחנו רוצים ליצור את המספרים האלה בצורה בלתי צפויה מאוד, כך שתוקפים לא יוכלו לנחש אותם.מספרים אקראיים אלה חיוניים להצפנה מאובטחת, בין אם אתה מצפין קבצים משלך או רק באמצעות אתר HTTPS באינטרנט.

וידאו פוקר הימורים אקראיות

מספרים אקראיים אמיתיים

ייתכן שאתה תוהה איך מחשב באמת יכול ליצור מספר אקראי.מהיכן באה "אקראיות" זו.אם זה רק חתיכת קוד מחשב, לא ייתכן שהמספרים שהמחשב מייצר יכולים להיות צפויים?

אנחנו בדרך כלל מקבצים את מספרי המחשבים האקראיים שמייצרים לשני סוגים, בהתאם לאופן שבו הם נוצרים: מספרים אקראיים "אמיתיים" ומספרים אקראיים אקראיים.

כדי ליצור מספר "אקראי" אמיתי, המחשב מודד סוג כלשהו של תופעה פיזית המתרחשת מחוץ למחשב.לדוגמה, המחשב יכול למדוד את ריקבון רדיואקטיבי של אטום.על פי תורת הקוונטים, אין שום דרך לדעת בוודאות מתי יתרחש ריקבון רדיואקטיבי, ולכן זה בעצם "אקראיות טהורה" מן היקום.התוקף לא יוכל לחזות מתי יתרחש ריקבון רדיואקטיבי, כך שהם לא יידעו את הערך האקראי.

לקבלת דוגמה יותר מיום ליום, המחשב יכול להסתמך על רעש אטמוספרי או פשוט להשתמש בזמן המדויק שבו אתה לוחץ על המקשים בלוח המקשים כמקור לנתונים בלתי צפויים או לאנטרופיה.לדוגמה, המחשב שלך עשוי להבחין בלחיצה על מקש בדיוק בשעה 0.23423523 שניות אחרי השעה 2. לתפוס מספיק פעמים ספציפיות הקשורות אלה לחיצות על מקש ואתה תהיה מקור של אנטרופיה אתה יכול להשתמש כדי ליצור "נכון" אקראיתמספר.אתה לא מכונה צפויה, כך התוקף לא יכול לנחש את הרגע המדויק כאשר אתה לוחץ על המקשים האלה.התקן /dev/ אקראי על לינוקס, אשר מייצר מספרים אקראיים, "בלוקים" ולא מחזירה תוצאה עד שהיא אוספת מספיק אנטרופיה להחזיר מספר אקראי באמת.

נתונים לינוקס-אקראיים

מספרים Pseudorandom

מספרים Pseudorandom הם חלופה "אקראי" מספרים אקראיים.מחשב יכול להשתמש בערך זרע ובאלגוריתם ליצירת מספרים שנראים אקראיים, אך הם ניתנים לחיזוי.המחשב אינו אוסף נתונים אקראיים מהסביבה.

זה לא בהכרח דבר רע בכל מצב.לדוגמה, אם אתה משחק משחק וידאו, זה לא ממש משנה אם האירועים המתרחשים במשחק זה הם cased על ידי מספרים "אקראיים" אמיתי או מספרים pseudorandom.מצד שני, אם אתה משתמש בהצפנה, אתה לא רוצה להשתמש במספרים pseudorandom כי התוקף יכול לנחש.

לדוגמה, נניח שהתוקף יודע את האלגוריתם ואת ערך הזרע, משתמש בגנרטור מספר פסאודו-אקראי.ו נניח אלגוריתם ההצפנה מקבל מספר pseudorandom מן האלגוריתם הזה ומשתמש בו כדי ליצור מפתח הצפנה מבלי להוסיף כל אקראיות נוספת.אם התוקף יודע מספיק, הם יכולים לעבוד לאחור ולקבוע את מספר pseudorandom האלגוריתם ההצפנה בוודאי בחרה במקרה זה, לשבור את ההצפנה.

מספרים pseudorandom

של NSA ו- Intel מחולל מספר אקראי של חומרה

כדי להקל על המפתחים ולסייע ביצירת מספרים אקראיים מאובטחים, שבבי Intel כוללים מחולל מספרים אקראיים המבוססים על חומרה הידועים בשם RdRand.שבב זה משתמש במקור אנטרופיה על המעבד ומספק מספרים אקראיים לתוכנה כאשר התוכנה מבקשת אותם.הבעיה כאן היא שמספר המספרים האקראיים הוא בעצם קופסה שחורה ואנחנו לא יודעים מה קורה בתוכו.אם RdRand הכיל אחורית NSA, הממשלה תוכל לשבור מפתחות הצפנה שנוצרו עם נתונים שסופקו רק על ידי מחולל מספרים אקראיים.

זהו חשש רציני.בדצמבר 2013, המפתחים של FreeBSD הוסרו תמיכה בשימוש RdRand ישירות כמקור של אקראיות, ואמר שהם לא יכלו לסמוך על זה.[מקור] הפלט של המכשיר RdRand יהיה מוזן אלגוריתם אחר המוסיף אנטרופיה נוספת, להבטיח כי כל backdoors של מחולל מספרים אקראיים לא משנה.לינוקס כבר עבדה כך, תוך כדי רנדומציה נוספת של הנתונים האקראיים שמקורם ב- RdRand, כך שלא ניתן יהיה לצפות אותם גם אם יש דלת אחורית.[מקור] ב AMA האחרונות( "שאל אותי משהו") על Reddit, מנכ"ל אינטל בריאן Krzanich לא לענות על שאלות אלה חששות.[מקור]

כמובן, סביר להניח שזה לא רק בעיה עם שבבי אינטל.מפתחי FreeBSD קראו את השבבים של Via לפי השם.מחלוקת זו מראה מדוע יצירת מספרים אקראיים כי הם אקראיים באמת לא צפוי כל כך חשוב.

אינטל

כדי ליצור מספרים אקראיים "אמיתיים", מחוללי מספרים אקראיים אוספים "אנטרופיה", או נתונים אקראיים לכאורה מהעולם הפיזי שסביבם.עבור מספרים אקראיים כי באמת צריך להיות אקראי, הם עשויים פשוט להשתמש באלגוריתם ערך זרע.

תמונה אשראי: rekre89 על פליקר, ליסה ברוסטר על פליקר, ריאן סומה על Flickr, huangjiahui על Flickr