בקריפטואנליזה, התקפת התנגשויות (collision attack) היא התקפה לשבירת פונקציית גיבוב קריפטוגרפית על ידי מציאת התנגשות, כך ששני קלטים שונים יפיקו ערך גיבוב זהה. בהגדרה, עמידות פונקציית גיבוב קריפטוגרפית בפני התנגשויות היא התכונה הקשה ביותר להשגה, ולפעמים היא הכרחית כמו בתעודת מפתח ציבורי או חתימה דיגיטלית. בניגוד לעמידות מפני מציאת מקור ראשון או מקור שני שבהן קלט אחד קבוע, מציאת התנגשות אינה מגבילה את הקלטים; אם נמצאה התנגשות בין כל זוג קלטים אפשריים בזמן הנמוך מכוח גס, נחשב הדבר לשבירה של פונקציית הגיבוב.
ההתקפה מחולקת לשתי קטגוריות.
בעזרת התקפת יום הולדת ניתן לשבור כל פונקציית גיבוב קריפטוגרפית בעלת פלט באורך סיביות לא משנה כמה היא בטוחה בכוח גס - דהיינו מציאת התנגשות, בסיבוכיות של .
התקפת תחילית נבחרת (chosen prefix) פורסמה לראשונה ביורוקריפט 2007 נגד אלגוריתם MD5 והתקפה מעשית כזו בוצעה ב-2008[1]בה הצליחו חוקרים לזייף תעודת X.509 חתומה שאיתה ניתן היה להתחזות לרשות מאשרת (certificate authority). באופן כללי, אלגוריתמים הבנויים בסגנון מבנה מרקל דמגרד (כמו סדרת SHA) חשופים להתקפה זו בשל אופי המבנה עצמו. מסיבה זו כיום נוטים לפתח פונקציות גיבוב חדשות שלהן תכונת אקראיות.
הדוגמה הטובה ביותר להמחשת התקפת התנגשויות היא חתימה דיגיטלית. אם אליס רוצה לשלוח מכתב לבוב, היות שהמסמך בדרך כלל גדול, מקובל תחילה לייצר מהמסמך תמצית קצרה באמצעות פונקציית גיבוב קריפטוגרפית ואז לחתום על תמצית המסמך במקום על המסמך עצמו. מסיבה זו עמידות מפני התנגשויות קריטית מאוד כי לולא תכונה זו ניתן יהיה לזייף חתימות דלהלן:
פונקציית גיבוב כאשר מגדיר את האורך והוא פרמטר ביטחון, תקרא TCR (קיצור של Target collision resistance או בשם אחר פונקציית גיבוב אוניברסלית[2]) אם כל יריב פולינומי A (המוגבל בזמן ומקום) יכול לנצח במשחק הבא בהסתברות זניחה. תחילה הוא מקבל אתגר כלשהו ולאחר מכן הוא מקבל את ואז הוא מנצח במשחק אם הצליח לייצר ערך נוסף כך שמתקיים . תכונה זו דומה לתכונת עמידות מפני מציאת מקור שני (second pre-image) והיא נחשבת לגרסה חלשה של עמידות מפני התנגשויות ולפעמים היא יותר פרקטית כך שאפשר להסתפק בה לעומת הגרסה החזקה יותר של עמידות מלאה מפני התנגשויות.