לאימות המנוי המשתמש בנייד מופעל פרוטוקול אתגר-מענה בשלושה מהלכים כמתואר בתרשים משמאל. במהלך הראשון תחנת הבסיס שולחת את RAND - מספר אקראי בן 128 סיביות במצב גלוי לתחנה הניידת (MS) והיא בתורה משתמשת באלגוריתם A3 שנמצא בתוך ה-SIM כדי להצפין את המספר האקראי שקיבלה באמצעות מפתח האימות האישי formula_2 המוטמע בכרטיס ושולחת בחזרה את התוצאה החתומה SRES. הרשת מפענחת את המידע שהתקבל עם המספר הסודי formula_2 השמור במסד הנתונים המתאים למנוי ומשווה את התוצאות ובכך זהותו מאושרת, כי רק המחזיק במפתח הסודי המתאים יכול לשלוח את המסר המוצפן הנכון. בנוסף המערכת מייצרת מפתח הצפנה המשמש בחלקו להצפנת השידור אל הנייד ובחלקו לפענוח השידור החוזר ממנו. חיסרון אחד במנגנון זה שהאימות חד צדדי, כלומר המנוי אינו מאמת את זהות הרשת ועובדה זו נוצלה היטב בעבר כדי לזייף תחנת בסיס בעלות סבירה.
חישוב תג האימות SRES מתבצע בתוך הכרטיס ומפתח האימות האישי כפי שהוא צרוב בכרטיס ה-SIM ורשום במסד הנתונים של ה-AUC, HLR ו-HLV אינו משודר לעולם על גבי ערוץ הרדיו במצב גלוי ואינו ניתן לחילוץ מתוך הכרטיס גם לא במהלך האימות.
כרטיס ה-SIM מכיל בתוכו גם את הצופן A8 המוגדר לפי התקן על מנת לייצר מפתח הצפנה סודי formula_4 זמני (לצורך הצפנת שיחה אחת) באורך 64 סיביות (או 128 סיביות בגרסאות החדשות), המופק מאותו מספר אקראי RAND שנשלח לנייד על ידי הרשת קודם לכן יחד עם מפתח האימות האישי. החישוב מתבצע בתוך הכרטיס ולעולם אינו נחשף מחוצה לו. כנדבך נוסף של אבטחה GSM מאפשר להחליף את מפתח ההצפנה לפרקים כדי להקשות על ציתות ארוך טווח.
להצפנת השיחה או נתונים משתמש GSM באלגוריתם A5 כאשר הדרישה להצפנה כמו גם סוג האלגוריתם ואורך המפתח מתקבלים מהרשת. הנייד פועל בהתאם לדרישה ומצפין את השיחה באמצעות האלגוריתם A5 יחד עם המפתח formula_4 ועם קלט נוסף שנלקח ממספר הפריים. העובדה שהרשת קובעת את סוג ההצפנה יכולה להוות נקודת תורפה אם התחזות לתחנה אפשרי כי אז הרשת המתחזה יכולה לדרוש מהנייד לבצע שיחה לא מוצפנת כלל (במכשירים מסוימים תופיע הודעת אזהרה במקרה כזה), או לבחור בהצפנה חלשה מאוד. מסיבה זו בוטל השימוש באלגוריתם A5/2 (להלן).
האלגוריתמים A8 ו-A3 הם למעשה גרסאות של פונקציית גיבוב עם מפתח קניינית שהייתה בעבר סודית, הנקראת COMP128. הפונקציה מקבלת את formula_2 ואת RAND שניהם באורך 128 סיביות ומפיקה את formula_4, כאשר מעצם ההגדרה יהיה קשה מבחינה חישובית לבצע את הפעולה ההפוכה, דהיינו על ידי formula_4 לחשב את formula_2. קיימות ארבע גרסאות של האלגוריתם כאשר שלוש הראשונות היו סודיות. שלוש הגרסאות הראשונות חלשות מאוד, שתי הגרסאות הראשונות חלשות באופן מביך וכן הסתבר שכתוצאה מלחץ ממשלות המפתח הוחלש במכוון כך שעשר הסיביות האחרונות מאופסות ולכן אפקטיבית המפתח בעל אנטרופיה של 54 סיביות. הגרסה הרביעית COMP128-4 שנקראת גם MILENAGE מבוססת על AES.
בשל העובדה שבמדינות רבות קיימים חוקים נוקשים המכבידים על הצפנה חזקה, GSM עוקף את הבעיה על ידי כך שרשת המבצעת אימות של המכשיר במדינה זרה, פונה לרשת המקומית של המכשיר ומבקשת את מפתחות האימות, כך שלמעשה אין לה צורך לבצע אימות ישיר מולו וכן אין לה צורך לדעת איזה אלגוריתמים מוטמעים בו.
בטיחות או עמימות.
העובדה שתקן GSM פותח באופן סודי הולידה ויכוח ציבורי בשאלה האם הוא אכן בטוח. רוב מומחי האבטחה סבורים שכל מערכת אבטחה תהיה בטוחה רק אם פרטיה עומדים לרשות הציבור לביקורת ובחינה. באפריל 1998 ארגון SDA יחד עם חוקרים מברקלי פיצחו את אלגוריתם COMP128 הממוקם בתוך ה-SIM על ידי הנדסה לאחור. הם הצליחו לחלץ מהכרטיס את המפתח formula_10 בתוך מספר שעות וכן גילו שהמפתח formula_4 מכיל רק 54 סיביות חומר סודי, היתר אפסים. למרות שההתקפה בוצעה על SIM פיזי שהיה ברשותם, החשש היה שניתן יהיה לפתח התקפה מקוונת כזו שתפרוץ כל כרטיס גם מרחוק. הם לא יכלו לאמת את חששם משום שפעולה זו מוגדרת לא חוקית בארצות הברית. מצד שני תגובת GSM הייתה שגם אם מישהו יצליח לשכפל כרטיס SIM לא יהיה לכך כל ערך כיוון שהרשת מאפשרת למספר זיהוי להיות פעיל רק עבור מנוי אחד ואם תתבצענה שתי שיחות על אותו מספר הרשת מסוגלת לאתר זאת ולבטל את הכרטיס המזויף או הגנוב.
במרוצת הזמן התגלו התקפות נוספות (להלן) שהטילו ספק בהצהרת המפתחים באשר לביטחון הרשת. בעיה אחרת נובעת מהעובדה ש-GSM מגן על הרשת רק מפני חדירה מבחוץ, כל התקשורת הפנימית חשופה לחלוטין, מה שלא מונע התקפה מבפנים. GSM ניסו ומנסים לבצע תיקונים על ידי החלפת אלגוריתמים באחרים טובים יותר וכן הוספת "טלאים" כדי לסתום חורים בטיחותיים. ובעיקר הגישה כיום יותר פתוחה, GSM נטשה את אידאולוגיית בטיחות על ידי עמימות.
הצפנת שיחה.
ב-1987 פותח A5/1 להצפנת שיחה אלחוטית לפי תקן GSM. בתחילה נשמרו פרטיו בסוד, אך נחשפו חלקית עקב מספר הדלפות. ב-1999 ביצעו ברינקו, גולברג ווגנר הנדסה לאחור של האלגוריתם בשלמותו וכיום ידוע שיש בו חולשות רבות והוא אינו בטוח לשימוש, לפי התקפה אחת שפורסמה די בהאזנה לשתי דקות של שיחה כדי לחשוף את המפתח הסודי. ייעודו המקורי היה לשימוש באירופה וארצות הברית ואילו צופן A5/2 שהוחלש במכוון יועד למדינות אחרות. נכון לשנת 2014 כארבעה מיליארד טלפונים ניידים עשו שימוש ב-A5/1 להגנה על פרטיות שיחות סלולריות. דווח כי במשך שנים התגלעו חילוקי דעות בין חברות נאט"ו לגבי חיזוק הצפנת השיחות הסלולריות, גרמניה תמכה ומדינות אחרות כמו בריטניה התנגדו.
צופן A5/1 הוא צופן זרם שמייצר אחת ל-4.6 מילישניות זרם מפתח באורך 228 סיביות להצפנה בו זמנית של פריימים של שיחת GSM באורך 114 סיביות, אחד עבור פריים נכנס ואחד עבור פריים יוצא. ההצפנה מבוצעת על ידי חיבור ב-XOR של פריים השיחה עם המפתח.
הצופן מיושם בחומרה ומורכב ממעגל משולב המכיל שלושה אוגרי LFSR באורכים שונים; 19, 22 ו-23 סיביות (כמתואר בתרשים משמאל). בתחילת כל שיחה האוגרים מאופסים ואז במשך 64 פעימות שעון, סיביות מפתח השיחה מחוברות ב-XOR עם סיביות ההזנה (feedback) וכל האוגרים מקודמים בהתאם, סיבית אחר סיבית. החל מהפעימה ה-65 עד לפעימה ה-86 נוסף מספר השיחה. לאחר 86 מחזורי שעון קידום האוגר הראשון מתבצע בשיטת stop/go על פי "החלטת הרוב" של שלוש סיביות במיקומים שונים, אחת במיקום 8 באוגר הראשון ושתים במיקום 10 בשני האוגרים האחרים בהתאמה. אם החלטת הרוב היא 1 האוגר הראשון מקודם אחרת לא. לדוגמה אם ערך שלושת המיקומים האמורים הוא (1,0,0) אזי 0 הוא רוב ולכן האוגר הראשון אינו מקודם. פלט הצופן בכל פעימה הוא XOR של שלוש הסיביות הראשונות בשלושת האוגרים בהתאמה. 100 הסיביות הראשונות שמופקות בדרך זו לא משמשות כמפתח הצפנה אלא נפטרים מהן ולאחר מכן הצופן מוכן לשימוש.
הפריצה הראשונה של הצופן פורסמה ב-1994 על ידי רוס אנדרסון. הרעיון הבסיסי היה לנסות לנחש את המצב הפנימי, דהיינו תכולת האוגרים. אם תכולת האוגרים בזמן נתון ידועה למתקיף, קל לחשב את מפתח השיחה. מאז פורסמו התקפות רבות נגד הצופן. בשנת 2009 פרסמו צוות חוקרים התקפת איזון זמן/זיכרון נגד A5/1 בשיטה שנקראת טבלת ריינבו. הטבלאות המכילות שני טרה של מידע הופצו באמצעות ביטורנט.
פיצוח צופן ה-GSM.
ב-28 בדצמבר 2009 הודיע מתכנת גרמני כי פיצח ופרסם את צופן ה-GSM באומרו כי פרסום זה נועד לחשוף את החולשות במערכת הסלולר העולמיות ואמר כי הוא מטיל ספק ביעילות אלגוריתם ההצפנה של תקן GSM, שפותח ב-1988.
איגוד GSM, שתיקן את אלגוריתם ההצפנה ומייצג חברות סלולר רבות בעולם, טענו כי פעולותיו של המתכנת בלתי חוקיות, וכי הוא מגזים בהערכתו את איום האבטחה לשיחות סלולר. מומחי אבטחה חולקים על עמדה זו. אף כי החשיפה עצמה אינה מאיימת על אבטחת המידע הקולי העובר בשיחות סלולר, לדברי אנליסטים, חברות וארגונים ממשלתיים צריכים לנקוט צעדים על מנת לאבטח את שיחות הסלולר שלהם – כפי שהם עושים עבור מחשביהם.
צופן A5/2 הוא גרסת יצוא של הצפנת שיחת GSM שפותחה ב-1999 ויועדה למדינות מחוץ לארצות הברית ואירופה. באותו חודש שבו פורסם הצופן פורסמה פריצה שלו והוכח שהוא מאוד חלש. כל כך חלש שניתן לפרוץ אותו במצב מקוון במחשב ביתי. בשנת 2006 הוחלט על ידי ETSI לא לתמוך יותר בצופן זה. במילים אחרות אם הטלפון הנייד אינו תומך בגרסת A5/1 אזי השיחה לא מוצפנת כלל.
הצופן מכיל ארבעה אוגרי LFSR, פונקציית שעון לא סדירה ופונקציית שילוב אי-ליניארית. האוגר הרביעי אחראי לסדירות פעימות האוגרים הראשונים בשיטת stop/go. כאשר פלט הצופן נקבע בשיטת "החלטת הרוב" לפי הנוסחה formula_12. שיטת ההצפנה זהה לצופן A5/1, כל פריים מכיל 228 סיביות, 114 לכל כיוון. את הפריים מצפינים בחיבור XOR עם פלט הצופן. האתחול מתבצע באמצעות מפתח השיחה שהוא באורך 64 סיביות ומספר השיחה. תחילה מחברים את סיביות המפתח לכל האוגרים ומקדמים באופן סדיר ללא שיטת stop/go ולאחר מכן משולבות הסיביות המייצגות את מספר השיחה ולבסוף נפטרים מ-100 הסיביות הבאות ומתחילים להשתמש בצופן בשיטת stop/go.
צופן A5/3 או GEA3 נועד להצפנת שיחות סלולריות מהדור השלישי; GSM/ECSD/GPRS/UMTS. הצופן מספק סודיות תוך שמירה על סטנדרט גבוה של ביטחון וכן הבטחת שלמות. A5/3 מבוסס על צופן הבלוקים KASUMI שפותח במיוחד עבור GSM. רכיב ההצפנה נקרא KGCORE והוא מיושם כצופן זרם בשיטת OFB (כמתואר בתרשים משמאל)
בניסוח רשמי: