Hashing לעומת הצפנה
תהליך הפיכת מחרוזת תווים לערך באורך קבוע קצר יותר (הנקרא ערכי גיבוב, קודי גיבוב, סכומי גיבוב או סיכומי בדיקה) המייצג את המחרוזת המקורית נקרא גיבוב. בדרך כלל, פונקציה משמשת לביצוע טרנספורמציה זו והיא נקראת פונקציית hash. הגיבוב יהפוך את האינדקס ואחזור הנתונים במסדי נתונים למהירים יותר, שכן חיפוש בערך הגיבוב הקצר יותר, באורך קבוע, יהיה מהיר יותר מחיפוש הערך המקורי. הצפנה היא תהליך המרת נתונים לפורמט שאינו ניתן להבנה על ידי הצדדים שאינם מורשים לראות את הנתונים.פורמט חדש זה נקרא טקסט צופן. המרת טקסט צופן חזרה לפורמט המקורי נקראת פענוח.
מה זה Hashing?
המרת מחרוזת תווים לערך קצר יותר באורך קבוע המייצג את המחרוזת המקורית נקראת hashing. המרה זו מבוצעת על ידי פונקציית hash. Hash מאפשר אינדקס ואחזור מהירים יותר של נתונים מבסיסי נתונים עקב שימוש בערך Hash קצר יותר מהערך המקורי. Hashing משמש גם באלגוריתמי הצפנה להצפנה ופענוח של חתימות דיגיטליות. גיבוב היא פעולה חד כיוונית ולא ניתן לאחזר את הערך המקורי על ידי ערך הגיבוב. יתר על כן, hashing לא אמור לייצר את אותו ערך hash עבור שני ערכים מקוריים שונים. חלק משיטות הגיבוב הפשוטות והנפוצות הן שיטת Division-remainder, שיטת הקיפול ושיטת הטרנספורמציה של Radix.
מה זה הצפנה?
המרת נתונים לפורמט (הנקרא טקסט צופן) שאינו ניתן להבנה על ידי הצדדים שאינם מורשים לראות את הנתונים נקראת הצפנה.נעשה שימוש בהצפנה כבר זמן רב. שיטות ההצפנה נעות בין שיטות פשוטות כמו החלפת אותיות במספרים לשיטות מורכבות יותר כמו סידור מחדש של ביטים באות דיגיטלי באמצעות אלגוריתם מחשב. השגת הנתונים המקוריים מהצופן-טקסט נקראת פענוח והיא דורשת את מפתח הפענוח הנכון. מפתח זה זמין רק לגורמים המורשים לראות את הנתונים. שיטת הצפנה נקראת הצפנה חזקה אם לא ניתן לשבור אותה מבלי לדעת את מפתח הפענוח. הצפנת מפתח ציבורי היא אחת משיטות ההצפנה שבהן הנתונים מוצפנים באמצעות המפתח הציבורי של הנמען ולא ניתן לפענח אותם ללא שימוש במפתח פרטי תואם.
מה ההבדל בין Hashing להצפנה?
המרת מחרוזת תווים לערך קצר יותר באורך קבוע המייצג את המחרוזת המקורית נקראת hashing, בעוד שהמרת נתונים לפורמט (הנקרא cipher-text) שלא ניתן להבין על ידי הצדדים שאינם מורשים לראות הנתונים, נקראים הצפנה.מכיוון ש-hash היא פעולה חד-כיוונית שבה לא ניתן לאחזר את הערך המקורי על-ידי ערך ה-hash, היא משמשת גם להצפנה. פונקציות Hash של תקציר הודעות (MD2, MD4 ו-MD5) משמשות להצפנת חתימות דיגיטליות. אבל השימוש בגיבוב אינו מוגבל להצפנה. Hashing משמש גם לאחזור מהיר יותר של נתונים מבסיסי נתונים. אבל פונקציות ה-hash המשמשות למשימות אלו שונות זו מזו וייתכן שלא יעבדו טוב אם יוחלפו בין שתי המשימות.