|
30-05-2011, 11:07
|
|
|
|
חבר מתאריך: 25.04.11
הודעות: 9,931
|
|
תקרא את ההודעה הקודמת, ואת זאת: http://www.fresh.co.il/vBulletin/sh...382#post4009294
אני אנסה לעשות סדר... למרות שכבר איבדנו קשר לפורום ולאשכול... ואני מניח שאני גם אעשה קיצורי דרך למען ההסבר...
1. פונקציות גיבוב (אללי השפה העיברית). פונקצית גיבוב היא פונקציה שמטרתה עבור קלט מסויים, בגודל כל שהוא, לתת ערך חד-ערכי ואם אפשר יחודי לאותו קלט. זאת דרך מעולה לבדוק תקינות, נניח העברנו הרבה מידע, אפשר להעביר אחריו פלט של פונקציה כזאת, אתה תפעיל אותה שוב על המידע כשהוא יגיע אליך תשווה למה שאני העברתי ואם הם שווים אתה יכול להניח שהכל תקין.
יש לפונקציות האלה הרבה שימושים בתחום הקריפטוגרפיה, בעיקר לחתימות דיגיטליות, אבל יש עוד.
פונקציה כזאת שמתאימה לשימוש בתחום הקריפטוגרפיה צריכה לענות על עוד מספר פרמטרים:
1. בלתי ניתנת לחישוב בכיוון ההפוך כמעט אף פעם אי אפשר להגיע לקלט המקורי, אבל יש פונקציות גיבוב שמגלות עליו הרבה והן כמובן לא מתאימות.
2. בהינתן פלט נבחר , אין דרך (בזמן סביר) לייצר קלט שיפיק את הפלט הנבחר
3. אין דרך (בזמן סביר) לחשב כיצד לשנות קלט מסויים, כדי שיפיק פלט נבחר
4. אין דרך (בזמן סביר) למצוא שני קלטים שיפיקו את אותו הפלט.
עכשיו השאלה היא מה זה זמן סביר, רוב הפונקציות מוציאות קלט בגודל קבוע (מספר מסויים של ביטים), אל זה אפשר לקורא בערך 70 יום בלי להגיע למסקנה, פונקציה שהפלט שלה גדול מספיק, וחיפוש התנגשויות פרופורציאונאלי לגודל הפלט בד"כ נחשבת לבטוחה. אם פונקציה מייצרת פלט של 512 ביט, ואתה צריך לעבור על 512^2 אפשרויות בישביל למצוא התנגשות, אז זה כנראה לא יהיה בימי נחדיינו והיא נחשבת בטוחה, אבל הכל יחסי...
2. MD5 פונקציה מאוד נחמדה, רק שהיא מוציאה פלט קצר מידיי. היא תוכננה לפלט קבוע של 128 ביט, ונמצאו מתקפות שהן פרופורציונאליות ל 24^2 שזה ממש קטן מידיי... קיימות כרגע מתקפות עבור כל הסעיפים 2-4 שציינתי, שהמחשב שלך יכול להריץ בתוך מספר שנית עד דקות.
ד"א למרות זאת, מערכות קריפטוגרפיות שהשתמשו בה נותרו בטוחות (למיטב ידיעתי) אבל היא לא מתאימה לשימוש היום. כאילו מפתחות שבאו מתעודה שחתמו עליה בעזרת הפונקציה נשארו בטוחים(כמובן) , אבל אי אפשר לסמוך על תעודה היום שמגיעה חתומה עם MD5.
3. קשתות בענן - זה סוג מאוד מעניין של מתקפה, בין dictionery attack ל brute force זאת מתקפה יעילה גם נגד פונקציות גיבוב שמוגדרות בטוחות.
הרעיון הוא שהרבה פעמים משתמשים בפונקציות גיבוב בישביל לטפל בקלטים מאוד קצרים (סיסמה), אז אפשר מראש לחשב את כל הקלטים האפשריים (בישביל סיסמה זה בטח עד 20 תווים אותיות גדולות קטנות ומספרים) ואז אם יש לך פלט של פונקציית גיבוב, אתה יכול להתאים אליו את הקלט המקורי. RainbowTable היא דרך יותר יעילה לעשות בדיוק את זה. המתקפה הזאת יעילה רק עבור קלטים מאוד קצרים, ורק אם לא ננקטה התחכמות בישביל להגן עליהם.
ד"א salt לא יחזק MD5, כאילו הוא אולי יגן עליו מפני dictionery attack, אבל הוא פרוץ ממילא למתקפות אחרות.
4. הצפנות עם חוזק נתון - הצפנה היא לא מערכת נשק, זה לא כמו מערכות נ"מ ומטוסי תקיפה. מערכת הצפנה מבוססת על תאוריה מתמטית, זה לא תחרות בין מתמטיקאים על מי יותר מתוחכם, אלא מתבסס בד"כ על בעיות בתחום המתמטיקה שהאנושות כמכלול לא יודעת לפתור, או שככל הנראה לא פתירות בכלל. לגבי רוב ההצפנות הנפוצות היום בעולם אבטחת המידע, אין מתקפות ידועות. כל המועמדים הסופיים בAES כלומר: RC6, Rijndael, Serpent, Twofish, כולם נחשבים בטוחים, בלי מתקפות אפקטיביות ידועות. RSA מתבססת על אחת הבעיות הכי מעניינות ומאתגרות בתחום המתמטיקה היום, או לפחות בתחום. אני מבטיח לך שנכון להיום פריצה של RSA זאת דרך לא רעה להיות מועמד לפרס נובל. ופריצה של הAES זאת אחת הדרכים היותר טובות של מתמטיקאי להתפרסם.
שוב זה משהו שגדולי המתמטיקאים בעולם עוסקים בו, והיום בקהילה מדעית מאוד פתוחה ומאוד משתפת, אז אני דיי מאמין שמה שנחשב בעולם היום לבטוח הוא אכן בטוח, גם מפני ממשלות.
מצד שני מידיי פעם מגלים שהNSA נמצא בתחום הזה דור או שניים לפני כולם...
5. הצפנות בלתי פריצות - בעולם הקריפטוגרפיה יש קבוצה מאוד מצומצמת (ולא מאוד מועילה לאנושות) של אלגורתמים שהם לחלוטין לא ניתנים לפריצה, מבחינת המתמטיקה שעומדת מאחוריהם. אלגורתמים שניתן להוכיח מתמטית שבלי המפתח הפלט שלהם לחלוטין בלתי ניתן לפענוח. ושום מתמטיקאי, או מחשב על קוואנטי לא יוכל לפרוץ אותם.
קרא פה
ד"א בתור אנקדוטה, one time pad שמבחינה תאורטית הוא בלתי ניתן לפריצה לחלוטין, דווקא הוא כנראה ההצפנה שנפרצה הכי הרבה בתקופת המלחמה הקרה. וזה בגלל הדרישות המאוד מאוד (מאוד) מחמירות שיש לו על המפתח ובגלל הקושי המעשי בלענות על הדרישות האלה אצל מרגל רוסי שיושב בארה"ב.
ומזה רואים פער מעניין בין האלגוריתם והתאוריה שמאחוריו, לבין מימוש מעשי
|
|