פונקציה קריפטוגרפית

קריפטוגרפיה Hash הגדרת פונקציה

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

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

כמה פונקציות חשיש קריפטוגרפיות נפוץ כוללות MD5 ו SHA-1 , אם כי רבים אחרים גם קיימים.

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

פונקציות הצפנה קריפטוגרפיות: מקרה שימוש

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

באמצעות מחשבון המחשוב, אתה מחשב המחשוב באמצעות פונקציית חשיש קריפטוגרפית מסוימת (למשל SHA-2) ולאחר מכן להשוות את זה לזו שפורסמה באתר של Mozilla.

אם הם שווים, אז אתה יכול להיות בטוח למדי כי יש לך להוריד היא אחת מוזילה התכוון שיהיה לך.

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

האם פונקציות הצפנה חשיש יכול להיות הפוך?

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

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

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

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

הנה גרסה פשוטה של ​​שולחן קשת כדי להראות איך אחד יעבוד בעת שימוש SHA-1 פונקציה חשיש קריפטוגרפי:

כתב יד בדיקת SHA-1
12345 8cb2237d0679ca88db6464eac60da96345513964
סיסמה 1 e38ad214943daad1d64c102faec29de4afe9da3d
אני אוהב את הכלב שלי a25fb3505406c9ac761c8428692fbf5d5ddf1316
ג'ני Dd5e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

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

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

זה מייצר ערך חדש שרק שרת האינטרנט מבין וזה לא בדיוק תואם את בדיקת המקור.

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

פעולה זו מסייעת להגביל את התועלת של גרזן שבו כל checkums נגנבים.

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

סיסמאות פונקציות הצפנה חשיש

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

בהתחשב בכך פונקציה חשיש חשיש מייצר בדיקת בלתי הפיך, זה אומר שאתה יכול לעשות את הסיסמה שלך פשוט כמו 12345 , במקום 12 @ 34 $ 5 , פשוט כי בדיקות עצמם לא ניתן להבין? זה בהחלט לא , והנה למה ...

כפי שאתם יכולים לראות, שתי הסיסמאות הללו הן בלתי אפשריות לפענוח רק על ידי הסתכלות רק על הסיכום:

MD5 עבור 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 עבור 12 @ 34 $ 5: a4d3cc004f487b18b2ccd4853053818b

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

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

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

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

מידע נוסף על פונקציות הצפנה קריפטוגרפית

זה אולי נראה כמו פונקציות חשיש הצפנה קשורים הצפנה אבל שני העבודה בדרכים שונות מאוד.

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

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

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

הסיבה להתנגשויות יכולה להתרחש היא כי כל פונקציה hash הצפנה מייצרת ערך של אורך קבוע ללא תלות בנתוני קלט. לדוגמה, פונקציית ה- Hash של הצפנה MD5 יוצרת 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 ו- e10adc3949ba59abbe56e057f20f883e לשלושה בלוקים שונים לחלוטין של נתונים.

המחסום הראשון הוא מ 12345 , השני נוצר מעל 700 אותיות ומספרים, והשלישי הוא מ 123456 . כל שלוש התשומות הן באורכים שונים, אך התוצאות הן תמיד רק 32 תווים מאז MD5 שימש.

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

זו הסיבה פונקציות חשיש קריפטוגרפיות אחרות נוצרו. בעוד ש- MD5 מייצר ערך בן 32 תווים, SHA-1 מייצר 40 תווים ו- SHA-2 (512) מייצר 128. ככל שמספר התווים גדול יותר, יש פחות סיכוי להתנגשות מכיוון שהוא מספק מקום רב יותר ערכים ייחודיים.