הצופן SAFER K-128 שונה מקודמו באורך המפתח ובמספר הסבבים וכן בתהליך הכנת המפתח בהתאם והוא מומחש בתרשים משמאל. גודל הבלוק, מבנה פונקציות ההצפנה והפענוח כולל טבלת ההטיות של המפתחות זהים לחלוטין ל-SAFER K-64. ההבדל הוא ש-formula_25 מפתחות הסבבים מופקים ממפתח באורך 128 סיביות במקום 64 סיביות כפי שהיה בצופן הקודם. תהליך ההכנה החדש פותח על ידי קבוצת מפתחים מסינגפור. הם המליצו על לפחות formula_62 סבבים של הצפנה ופענוח עם מפתח 128 סיביות ולא יותר מ-12 סבבים.
תהליך הכנת המפתח תואם בצורה כזו שניתן יהיה להשתמש באותו קוד של האלגוריתם לשני המפתחות. תהליך הכנת המפתח מחלק את המפתח לשני חצאים ימין ושמאל המסומנים formula_63 ו-formula_64 באורך של 64 סיביות כל אחד. במידה שמעוניינים במפתח באורך 64 סיביות פשוט מעתיקים את המפתח פעמיים כך שמתקבל formula_65 ואז תוצאת תהליך ההרחבה של שני החצאים מפיק תת-מפתחות זהים בדיוק לצופן SAFER K-64. במידה שמעוניינים במפתח 128 סיביות מעתיקים מחצית מהמפתח ל-formula_63 והמחצית השנייה ל-formula_64.
SAFER SK-64 ו-SAFER SK-128.
כאמור לאור קריפטואנליזה התגלה שהיות ובתי המפתח נשארים קבועים במקומם והשינויים מתרחשים רק בתוך הבתים עובדה זו משפיעה לרעה על התוצאות, כפי שהוכח, חומר המפתח במקרה זה מאפשר בתנאים מסוימים מציאת התנגשויות בדרך קלה יותר מאשר בכוח גס. כלומר שני ערכים שונים של מפתח שמפיקים טקסט מוצפן זהה מה שגורם לכך שהאלגוריתם לא יהיה מומלץ לשימוש כחלק מפונקציית גיבוב שמסתמכת על ההנחה שקשה למצוא התנגשויות. לאור זאת ביצע מסי שינויים בתהליך הכנת המפתח של אלגוריתם SAFER SK כאשר האותיות SK מציינות "מפתח מחוזק". ביתר פירוט בוצעו שני שינויים חשובים. תחילה נוסף בית זוגיות. כלומר המפתח הורחב משמונה בתים במקרה של SK-64 לתשעה בתים. ושבעה עשר בתים במקום שישה עשר במקרה של SK-128. הבית הנוסף הוא תוצאה של XOR של כל בתי המפתח. השינוי השני הוא הוספת הזזה מעגלית ברמה של בתים של כל בתי המפתח כולל בית הזוגיות. במילים אחרות מתחילים ממאגר של תשעה בתים או שבעה עשר בתים (מפתח 64 או 128 סיביות בהתאמה) וכל תת-מפתח נלקח מבתים אחרים לפי הסדר הבא: המפתח הראשון נלקח מהבתים הראשונים (כלומר לא נעשה כל שינוי בסדר). כעת אם מדובר על מפתח באורך 64 סיביות. תת-המפתח השני נלקח מהבתים 2 עד 9, השלישי מהבתים 3 עד 1 הרביעי מ-4 עד 2 (במעין מעגל סגור) וכן הלאה. במקרה של מפתח באורך 128 סיביות מתחילים מהבתים 1 עד 16, לאחר מכן הבתים 2 עד 17, לאחר מכן הבתים 3 עד 1, הבתים 4 עד 2 וכן הלאה. זאת בנוסף ליתר הפעולות המתוארות בסעיפים הקודמים. טריק דומה בוצע בצופן Threefish ובצפנים מודרניים נוספים.
SAFER+.
SAFER+ פותח בשנת 2000 על ידי ג'יימס מסי ועמיתיו מהאקדמיה הארמנית הלאומית Gurgen Khahatrian ו-Melsik K. Kuregian. בניגוד לגרסאות קודמות של SAFER, בגרסה זו הושג שיפור נוסף באפקט הפיזור על ידי בחירה מושכלת של התמורות בין שכבות ה-PHT. התמורות החדשות של SAFER+ נקראו על ידי מסי "הערבוב הארמני" על שם ממציאיו. השם SAFER+ נועד להגדיש את השיפור המשמעותי בצופן זה לעומת קודמיו במשפחה. בנוסף גודל הבלוק ב-SAFER+ הורחב ל-128 סיביות, זאת כדי להתאימו לתקנים הבינלאומיים.
SAFER+ הוא צופן בלוקים איטרטיבי בשמונה סבבים (חזרות). הצופן מקבל בלוק טקסט קריא שהוא מחרוזת באורך 16 בתים ומפתח הצפנה באורך 16 בתים ומחזיר בלוק טקסט מוצפן באורך 16 בתים. בנוסף קיים תהליך מקביל של הכנת מפתח המפורט להלן שמפיק מהמפתח שנבחר על ידי המשתמש 17 תת-מפתחות כל אחד באורך 16 בתים, כל זוג מתאים לסבב אחד והאחרון משמש לפונקציה המסיימת. הפונקציה המסיימת פשוטה. היא מחברת את בתי המפתח formula_40 עם בתי התוצאה מהסבב האחרון של הפונקציה הפנימית. החיבור דומה לצפנים הקודמים במשפחה. כלומר מחצית מבתי הבלוק לסירוגין (הבתים שמספרם לפי הסדר משמאל לימין הוא 1,4,5,8,9,12,13,16) מחוברים ב-XOR המסומן formula_69 והמחצית השנייה הבתים שמספרם הוא 2,3,6,7,10,11,14,15 בחיבור רגיל מודולו 256 המסומן formula_70.
פונקציית הסבב הפנימית.
התרשים משמאל מתאר את הפונקציה הפנימית של SAFER+. בסגנון דומה לצפנים הקודמים במשפחת SAFER, הפונקציה הפנימית מבצעת בכל סבב סדרת פעולות כדלהלן:
תיבות ההחלפה.
תיבות ההחלפה מתחלקות לשני סוגים שהם הופכיים הדדית. מחצית מהן למעט יוצא דופן אחד, הן כל החזקות האפשריות של 45 מודולו 257 והמחצית השנייה כל הלוגריתמים הבדידיים מודולו 257. באופן פורמלי תיבות ההחלפה formula_72 ו-formula_73 כאשר formula_74 הן:
הכנת מפתחות.
להכנת תת-מפתחות לפונקציה הפנימית של הצופן תחילה לוקחים את 16 הבתים של המפתח שנבחר על ידי המשתמש ומוסיפים להם בית זוגיות שהוא XOR של כל בתי המפתח כך שמתקבלים בסך הכול 17 בתים. ואז עבור כל סבב של הצפנה מכינים שני מפתחות כל אחד באורך 16 בתים כדלהלן:
התוצאה המתקבלת תהיה 16 בתי תת-המפתח הראשון formula_53. כך חוזרים על התהליך עד שמפיקים את כל 17 המפתחות.
תקן בלוטות'.
תקן בלוטות' בגרסאות הקודמות עד 4.0 אימץ את SAFER+ כחלק מהתהליך האימות בשלב ההתחברות בין התקנים וביצע שינוי קטן בצופן המשולב בתהליך האימות, תוצאת הסבב הראשון חוברה לקלט של הסבב השלישי. שינוי זה נועד להרוס את ההפיכות של הצופן כדי שלא ניתן יהיה להשתמש בו גם כפונקציית הצפנה.
SAFER++.
SAFER++ הוא צופן בלוקים איטרטיבי המהווה שיפור נוסף על הצפנים הקודמים במשפחת SAFER. הצופן מקבל בלוק טקסט קריא באורך 128 סיביות ומפתח הצפנה שמגיע בשתי אופציות 128 סיביות או 256 סיביות ומפיק בלוק טקסט מוצפן באורך 128 סיביות. הפונקציה הפנימית מבוצעת 7 פעמים במקרה של מפתח 128 סיביות ו-10 פעמים במקרה של מפתח באורך 256 סיביות. בסך הכול הצופן עושה שימוש ב-formula_25 מפתחות עבור formula_26 הסבבים של הפונקציה הפנימית, כל אחד באורך 16 בתים, לכל סבב של הפונקציה הפנימית מתאימים שני תת-מפתחות. את המפתחות מפיקים באמצעות תהליך הרחבה שיתואר בהמשך. המפתח הנוסף formula_40 מתאים לפונקציה המסיימת לאחר כל הסבבים. לפענוח משתמשים במפתחות בסדר הפוך.
הפונקציה המסיימת מבצעת חיבור עם המפתח האחרון בשיטה זו: הבתים 1,4,5,8,9,12,13,16 של הקלט מחוברים סיבית אחר סיבית מודולו 2 (פעולת XOR) ואילו הבתים 2,3,6,7,10,11,14,15 מחוברים בחיבור רגיל מודולו 256, ובפענוח מבצעים חיסור במקום חיבור.
מבנה הפונקציה הפנימית.
בדומה לפונקציות הקודמות במשפחה, הפונקציה הפנימית מורכבת מפעולת חיבור עם המפתח הסודי, פעולת החלפה הנשלטת על ידי מפתח ההצפנה ואחריה טרנספורמציה ליניארית הפיכה. הפעולה הראשונה בסבב ה-formula_4 היא חיבור של הקלט עם מפתח הסבב הראשון formula_87 ברמה של בתים. הבתים 1,4,5,8,9,12,13,16 מחוברים ב-XOR והבתים 2,3,6,7,10,11,14,15 מחוברים בחיבור רגיל מודולו 256. התוצאה עוברת בשכבה האי-ליניארית המורכבת משני סוגי החלפה, הראשונה היא המרה של הערך formula_34 של הבית ה-formula_5 ל-formula_90 מודולו 257. כאשר formula_91. והמוסכמה היא שהתוצאה של formula_90 צריכה להיות מודולו 256, כלומר אם התוצאה היא 256 היא מאופסת. במילים אחרות formula_93 ולא 256. ההחלפה השנייה היא המרה של הערך formula_34 של הבית ה-formula_5 ללוגריתם בדידי בבסיס 45 של formula_34 עבור formula_97. במילים אחרות תוצאת הפונקציה על הערך formula_34 היא הערך formula_37 כך שמתקיים formula_100. בשלב זה מחברים לתוצאה האחרונה את תת-המפתח השני של הסבב הנוכחי formula_101, אך הפעם בסדר הפוך, הבתים 2,3,6,7,10,11,14,15 מחוברים ב-XOR והבתים 1,4,5,8,9,12,13,16 מחוברים מודולו 256. התוצאה בשלב זה מועברת בטרנספורמציה הליניארית הפיכה להוספת פיזור.
הטרנספורמציה הליניארית.
הטרנספורמציה הליניארית מורכבת מפיזור ראשון שהוא התמורה formula_102 לפי קואורדינטות בהתאם לכלל סדר בתים גדול כמו ב-DES. כלומר הבית הראשון עובר להיות התשיעי, הבית השני עובר להיות השישי וכן הלאה. מחלקים את הבתים לאחר התמורה לארבע קבוצות וכל אחת מהן משמשת קלט לטרנספורמציית formula_2 שהיא התמרת פסבדו-אדמר בארבע נקודות, אותה מציגים כמטריצה הפיכה מסדר formula_104:
הווקטור של ארבעה בתי הקלט של טרנספורמציה הליניארית מומרים לארבעה בתי הפלט כך:
כאשר כל הפעולות הן מודולו 256. מבחינה מעשית הכפל במטריצות הללו כמתואר בתרשים משמאל דורש רק שש פעולות חיבור או חיסור במקרה של המטריצה ההפיכה. לאחר פעולה זו מבצעים תמורה אמצעית שהיא זהה לתמורה הראשונה. כשהתוצאה מועברת שוב ב-formula_2. לבסוף תוצאה זו היא פלט פונקציית הסבב.
פענוח.
פענוח מושג על ידי ביצוע הפעולות ההפוכות ובסדר הפוך של המפתחות. הפעולה הראשונה מתחילה משכבת הכפלה במטריצה ההופכית formula_108 הבאה: