הגדרת פונקציות Hash קריפטוגרפיות
פונקציה של חשיש קריפטוגרפי היא פונקציה מתמטית המשמשת בקריפטוגרפיה. פונקציות חשיש אופייניות נוקטות כניסות באורך משתנה כדי להחזיר תפוקות באורך קבוע. פונקציית hash קריפטוגרפי משלבת בין יכולות העברת ההודעות של פונקציות hash עם מאפייני אבטחה.
שוברים למטה פונקציות Hash קריפטוגרפיות
פונקציות Hash הן מבני נתונים נפוצים במערכות מחשוב לצורך משימות, כמו בדיקת תקינות המסרים ואימות מידע. אך הם נחשבים חלשים בקריפטוגרפיה. פונקציות חשיש קריפטוגרפיות מוסיפות תכונות אבטחה לפונקציות חשיש טיפוסיות, ובכך מקשות על גילוי תוכן ההודעה או מידע על נמענים ושולחים.
בפרט, פונקציות חשיש קריפטוגרפיות מציגות שלוש נכסים
- הם "ללא התנגשות". במילים פשוטות, אין שני חשיש קלט צריכים למפות לאותו חשיש פלט. הם יכולים להיות מוסתרים. במילים פשוטות, זה אמור להיות קשה לנחש את ערך הקלט לפונקציית hash מהפלט שלה. הם צריכים להיות ידידותיים לפאזל. כלומר, צריך להיות קשה לבחור קלט שמספק פלט מוגדר מראש. לפיכך, יש לבחור את הקלט מתוך התפלגות רחבה ככל האפשר.
שלושת המאפיינים המפורטים לעיל רצויים אך לא תמיד ניתן ליישם אותם בפועל. לדוגמא, הפער בחללי הדגימה עבור חיפושי קלט ויציאות קלט מבטיח כי יתאפשר התנגשויות. דוגמא לכך הודגמה לאחרונה כאשר יוזמת ה- MIT Digital Currency מצאה פגיעות בהתנגשות ב- IOTA.
פונקציות hash קריפטוגרפיות נמצאות בשימוש נרחב ב- cryptocurrencies כדי להעביר מידע על עסקאות באופן אנונימי. לדוגמה, ביטקוין, הקריפטו המקורי והגדול ביותר, משתמש בפונקציית ה- hash הקריפטוגרפי SHA-256 באלגוריתם שלו. באופן דומה, ל- IOTA, פלטפורמה לאינטרנט של הדברים, יש את פונקציית ה- hash הקריפטוגרפי שלה המכונה תלתל.
