MARS

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש
MARS
קובץ:MARS e-function.png
מידע כללי
תכנון IBM
פרסום 2000
מבוסס על RC5
מבנה הצופן
אורך מפתח 128/192/256 סיביות
אורך בלוק 128 סיביות
מבנה רשת פייסטל מסוג 3
מספר סבבים 32

MARS הוא צופן בלוקים סימטרי שפותח ב-1998 בחברת IBM על ידי צוות מפתחים בראשות דון קופרשמידט[1] שהיה מעורב בפיתוח DES כמועמד לתקן ההצפנה המתקדם. MARS הגיע למקום האחרון מבין חמשת המועמדים המובילים (אחרי RC6). הצופן קומפקטי, מתאים ליישום בתוכנה ובחומרה, מנצל את יכולות המעבד המודרני להשגת מהירות, יעילות וביטחון טובים יותר לעומת אלגוריתמים מדור קודם כמו DES או IDEA ונועד להצפנה מסיבית. MARS פועל על בלוקים בגודל 128 סיביות ומפתח הצפנה בטווח גדלים של 128 - 400 סיביות. כיתר המועמדים המובילים שעלו לגמר הוכרז במהלך התחרות שלא התגלו התקפות מעשיות שמסכנות את ביטחונו. IBM התירה את השימוש בו ומימוש שלו ברישיון חופשי במגבלות מסוימות, למרות היותו מוגן בפטנט וזכויות יוצרים.

שיקולי פיתוח

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

  • ניצול מלא של 'פעולות חזקות' הזמינות במעבדים המודרניים כגון כפל מהיר ב-32 סיביות או הזזה מעגלית לפי ערכים משתנים.
  • מבנה ייחודי שהוא תוצר של ניסיון רב שנים. ייחודו נובע מפיצול סבבי הצפנה לשלושה מרכיבים עיקריים; עליון אמצעי ותחתון, השלב האמצעי נחשב לגרעין הקריפטוגרפי שמבצע את ההצפנה, בעוד שהאחרים משמשים כשכבת הגנה. השיטה אומצה מנאור-ריינגלוד ובעיקרה עיטוף של גרעין קריפטוגרפי באמצעות טרנספורמציה לא קריפטוגרפית כלשהי, כדי להקשות על קריפטואנליזה.
  • לאפשר ניתוח יעיל של ביטחון מרכיבי האלגוריתם והימנעות מפעולות 'קשות לניתוח'.
  • שימוש ברשת פייסטל מסוג 3. סוג של רשת החלפה-תמורה שבכל סבב מילת קלט אחת משפיעה על כל מילות הקלט האחרות (בניגוד לרשת המקורית שבה כל מילה משפיעה על מילה אחת אחרת). לשיטה זו יתרונות על פני קודמתה הן ביעילות והן בביטחון.
  • סימטריה בין הצפנה לפענוח. כדי להתמודד עם התקפות המנצלות חוסר סימטריה בין חלק מסבבי ההצפנה (כגון צופנים שבהם הסבב האחרון שונה מהיתר כמו ריינדל), עובדה המאפשרת התקפה שבה 'מקלפים' את השכבה העליונה או התחתונה ומתמקדים בשכבה הפנימית העיקרית.

הפעולות שבהן משתמש האלגוריתם כוללות

  • חיבור, חיסור ו-XOR, בעיקר לערבוב ערכי קלט עם ערכי מפתח (פעולות אילו לא נועדו להשגת ביטחון).
  • טבלת חיפוש (Table lookup) הנקראת גם תיבות החלפה (s-box), המספקות את הביטחון העיקרי של הצופן. MARS משתמש בטבלה בגודל 512 כניסות של מילים בגודל 32 סיביות. תיבות ההחלפה תוכננו להשגת אפקט מפולת מהיר ונבחרו בקפידה כדי לעמוד בפני התקפות דיפרנציאליות וליניאריות. חסרונן העיקרי שנדרשות שלוש פקודות מכונה לכל החלפה וכן צריכת זיכרון - מה שעשוי להיות קריטי במעבד קטן.
  • הזזה מעגלית (Rotation) קבועה או דינאמית התלויה בקלט. בפעולה זו הסיביות הנפלטות מצד אחד מוחזרות לצד השני. שימוש מסיבי בהזזה מעגלית קיים באלגוריתמים מודרניים אחרים כמו RC6. חסרונן העיקרי הוא שלעיתים תוצאת ההזזה אינה מושפעת מכל סיביות האופרנדים, דבר המוביל לחולשה מסוימת. לדוגמה, אם מספר הפוזיציות להזזה מיוצג על ידי משתנה count בגודל 32 סיביות, הרי שלכל היותר נדרשות שש סיביות מתוכו כדי לייצג את ההזזה (הייצוג הבינארי של הזזה מקסימלית - 32 פוזיציות), ליתר הסיביות אין השפעה. הפתרון אפשרי הוא שילוב עם פעולת כפל.
  • פעולת כפל שלמים מודולו הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle 2^w} כאשר מתייחס לגודל מילה בסיביות. כמו בצופן IDEA פעולות אילו מניבים פיזור גבוה ותכונות דיפרנציאליות טובות. בארכיטקטורת מעבדים מודרניים חל צמצום ניכר במספר מחזורי שעון לפעולת כפל. לכן השימוש בהן הופך אטרקטיבי.

תיאור האלגוריתם

קלט ופלט הצופן הם ארבע מילים בגודל 32 סיביות . המפתח מיוצג על ידי 40 מילים . ו-512 תיבות ההחלפה כשהן מחולקות לשתיים דהיינו 256 הכניסות הראשונות נקראות והאחרונות . כל הפעולות הפנימיות מבוצעות ברמת מילים. את בתי הקלט ממירים למילים לפי סדר בתים קטן (הבית הראשון מכיל את הספרות הפחות משמעותיות של המילה). השלד העיקרי של האלגוריתם מורכב מהפעולות הבאות לפי סדר זה:

  • חיבור מפתח.
  • שמונה סבבים של ערבוב לפנים ללא מפתח.
  • שמונה סבבים של ערבוב לפנים עם מפתח.
  • שמונה סבבים של ערבוב לאחור עם מפתח.
  • שמונה סבבים של ערבוב לאחור ללא מפתח.
  • חיסור מפתח.

אפשר לראות את הסימטריה הרבה של הצופן. הוספת חלק מהמפתח המורחב שנקראת 'הלבנה' (whitening) מסתיימת בפעולה ההפוכה של חיסור המפתח. שני המרכיבים הבאים נקראים 'ערבוב לפנים' (Forward mixing), מטרתם לספק ערבוב מהיר ואפקט מפולת להגנה מפני התקפת גלוי-נבחר, זאת באמצעות הוספת חלק מהמפתח המורחב, פעולות ערבוב והזזה נוספות בין מילות הקלט, שימוש בתיבות ההחלפה כאשר שני בתי קלט משמשים אינדקס ל- והבתים הפענוח נכשל (שגיאת המרה. השרת ("https://wikimedia.org/api/rest_") השיב: "Cannot get mml. Server problem."): {\displaystyle b_{1},b_{3}} ל-, כל זה במבנה מסוג רשת פייסטל. שני המרכיבים האמצעיים נקראים 'גרעין קריפטוגרפי' ומורכבים משישה-עשר סבבים של רשת פייסטל מסוג 3, שכוללת פונקציית הרחבה E (ראה להלן) וקומבינציה של כפל בשלמים עם הזזה מעגלית, גם הם מחולקים לקידמי ואחורי לצורך הסימטריה. שני המרכיבים המסיימים נקראים 'ערבוב לאחור' בהם מתבצעות פעולות הפוכות לפעולות שבוצעו בשלבים הפותחים ובסדר הפוך (כלומר הקלט מוזן בסדר הפוך והאינדקסים לתיבות ההחלפה הפוכים) ולמעשה האפקט הוא ביטול השפעת הערבוב הקדמי על הטקסט המוצפן. הערבוב המסיים נועד להגנה מפני התקפת מוצפן-נבחר. כאמור מטרת פעולות אילו אינה קריפטוגרפית ולא נועדה להסתיר את המידע אלא למנוע מהמתקיף למקד את ההתקפה בגרעין האמצעי על ידי הוספת שכבת הגנה.

תרשים פונקציית E של צופן מארס. שימו לב ש- מתייחס לטבלה המאוחדת של ו-הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_1} בגודל 512 בתים, כך שאפשר להשתמש באינדקס הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle i} בגודל 9 סיביות.

פונקציית ההרחבה E מקבלת מילה אחת הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle in} ומחזירה שלוש מילים הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle out_1,out_2,out_3} באמצעות שתי מילים מהמפתח המורחב הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle k_1,k_2} . התהליך מתואר בתרשים ובפסאודו קוד להלן. הפונקציה מבצעת הזזות מעגליות קבועות ותלויות משתנים, החלפות בתיבות s-box, כפל שלמים מודולו ופעולות XOR. השילוב נעשה באופן שינוצלו היתרונות שבכל אחת מהן, למשל ידוע שבכפל שלמים לסיביות הנמוכות השפעה גדולה יותר על המכפלה מאשר העליונות לכן דואגים לכך שסיביות האינדקס לתיבות ההחלפה יהיו מהגבוהות. וכן הסיביות העליונות של המכפלה חזקות יותר במובן שהן מושפעות מכמעט כל סיביות הקלט.

תיבות החלפה

בבניית תיבות ההחלפה (s-box) הכניסות חושבו בסגנון פסאודו-רנדומלי ונבדקו שלהם תכונות דיפרנציאליות וליניאריות טובות כדלהלן; עבור הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle i=0,...,102, \ \ j=0,...,4} הכניסה הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_{5i+j}} מחושבת על ידי הפעלת פונקציית הגיבוב הקריפטוגרפית SHA-1 שמחזירה 4 מילים של 32 סיביות:

הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_{5i+j}=\mbox{SHA-1}(5i || c_1 || c_2 || c_3)_j}

הסימן "||" מייצג שרשור והערך הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{SHA-1}(\cdot)_j} הוא המילה ה-הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle j} של פלט הפונקציה. הקבועים בסיס הקסדצימלי) חושבו מהקבועים המתמטיים פאי ו-e ועבור המשתנה הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle c_3} נבדקו ערכים רבים במטרה למצוא אחד כזה שיניב תוצאה אופטימלית מבחינה קריפטוגרפית. הבדיקות הן: (א) שלא נוצרו במקרה תיבות החלפה המכילות רק אפסים או רק אחדים. (ב) שכל זוג ערכים מקבילים מהתיבות הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_0,S_1} יהיו שונים לפחות בשלושה מתוך ארבעת הבתים. (ג) שהתיבות אינן מכילות שני ערכים הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_i,S_j, \ (i\ne j)} כך שמתקיים הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_i=S_j,S_i= \neg S_j} או הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S[i]=-S[j]} . (ד) של- יהיו הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \textstyle {512 \choose 2}} הפרשי XOR שונים וכן הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle 2 \times \textstyle {512 \choose 2}} הפרשי חיסור שונים. (ה) שכל זוג כניסות יהיו שונות לפחות בארבע סיביות אחת מהשנייה. באופן דומה בודקים שלתיבות תכונות ליניאריות טובות; הטיית זוגיות נמוכה והטיית סיביות נמוכה וקורלציה נמוכה. התיבות נבדקו עם ערכים שונים של הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle c_3} בבדיקה נמשכה כשבוע ימים ונבדקו מעל הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle 2^{26}} ערכים אפשריים עד שנמצא הערך האופטימלי הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle c_3=\mbox{02917D59}} .

פסאודו קוד

קובץ:MARS formix.png
תרשים ערבוב לפנים של צופן מארס

בפסאודו קוד להלן הסימנים "" ו-"הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \ggg} " פירושם הזזה מעגלית בסיביות (bitwise rotation) לימין או לשמאל לפי כיוון החצים והערך לצידם המציין את מספר הפוזיציות שיש להזיז, הסימן הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \oplus} הוא XOR. ארבעת הבתים של הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_0} משמשים אינדקסים לתיבות ההחלפה, למשל הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_1[2^{nd}\mbox{ byte of }D_0]} פירושו שהבית השני של משמש אינדקס לתיבה המתאימה ב-הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_1} .

הצפנה

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

Phase (I) השלב הפותח שנקרא ערבוב לפנים

  1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=0\mbox{ to }3\mbox{ do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_i=D_i+K_i}
  2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=0\mbox{ to }7\mbox{ do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_1=D_1\oplus S_0[1^{st}\mbox{ byte of }D_0] + S_1[2^{nd}\mbox{ byte of }D_0]}
    2. הפענוח נכשל (שגיאת המרה. השרת ("https://wikimedia.org/api/rest_") השיב: "Cannot get mml. Server problem."): {\displaystyle D_{2}=D_{2}+S_{0}[3^{rd}{\mbox{ byte of }}D_{0}]}
    3. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_3=D_3\oplus S_1[4^{th}\mbox{ byte of }D_0]}
    4. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_0=D_0 \ggg 24}
    5. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{If }i=0\mbox{ or }4\mbox{ then:} \ D_0=D_0+D_3}
    6. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{If }i=1\mbox{ or }5\mbox{ then:} \ D_0=D_0+D_1}
    7. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (D_3,D_2,D_1,D_0) \leftarrow (D_0,D_3,D_2,D_1)}

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


ערבוב לאחור של הצפנת צופן מארס, כל הפעולות הפוכות לפעולות שבוצעו בערבוב הפותח

הפונקציה E

קלט: הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle in, k_1,k_2} בגודל 32 סיביות כל אחד. שימו לב שהביטוי הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S[\mbox{lowest 9 bits of }M]} מתייחס לאינדקס בגודל 9 סיביות לטבלה המאוחדת מ-הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_0} ו-הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle S_1}

  1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle M=in+k_1}
  2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle R=(in \lll 13) \times k_2}
  3. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle L=S[\mbox{lowest 9 bits of }M]}
  4. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle R = R \lll 5}
  5. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle M=M \lll \mbox{ lowest 5 bits of }R}
  6. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle L=L\oplus R}
  7. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle R=R \lll 5}
  8. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle L=L\oplus R}
  9. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle L=L \lll \mbox{ lowest 6 bits of }R}

הפלט הוא הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (L,M,R)} .

Phase (II) גרעין קריפטוגרפי

  1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=0\mbox{ to }15\mbox{ do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (out_1,out_2,out_3)= E(D_0, K_{2i+1},K_{2i+5})}
    2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_2=D_2 + out_2}
    3. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{If }i < 8\mbox{ then:}}
      1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_1=D_1+out_1, \ D_3=D_3\oplus out_3}
    4. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{Else:}}
      1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_3=D_3+out_1, \ D_1=D_1\oplus out_3}
  2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (D_3,D_2,D_1,D_0) \leftarrow (D_0 \lll 13,D_3,D_2,D_1)}

Phase (III) השלב המסיים המשלים של השלב הפותח שנקרא ערבוב לאחור.

  1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i = 0\mbox{ to }7\mbox{ do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{If }i = 2\mbox{ or }6\mbox{ then:} \ D_0=D_0-D_3}
    2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{If }i=3\mbox{ or }7\mbox{ then:} \ D_0=D_0-D_1}
    3. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_1=D_1\oplus S_1[1^{st}\mbox{ byte of }D_0]}
    4. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_2=D_2 - S_0[4^{th}\mbox{ byte of }D_0]}
    5. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_3=D_3 - S_1[3^{rd}\mbox{ byte of }D_0]\oplus S_0[2^{nd}\mbox{ byte of }D_0]}
    6. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_0=D_0 \lll 24}
    7. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (D_3,D_2,D_1,D_0) \leftarrow (D_0,D_3,D_2,D_1)}
    8. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i = 0\mbox{ to }3\mbox{ do:}}
      1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_i=D_i-K_{36+i}}

פלט הצופן הוא ארבע המילים הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (D_3,D_2,D_1,D_0)} .

פענוח

Phase (I)

  1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=0\mbox{ to }3\mbox{ do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_i=D_i+K_{36+i}}
  2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=7\mbox{ down to }0\mbox{ do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (D_3,D_2,D_1,D_0) \leftarrow (D_2,D_1,D_0,D_3)}
    2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_0=D_0 \ggg 24}
    3. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_3=D_3\oplus S_0[2^{nd}\mbox{ byte of }D_0] + S_1[3^{rd}\mbox{ byte of }D_0]}
    4. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_2=D_2+ S_0[4^{th}\mbox{ byte of }D_0]}
    5. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_1=D_1\oplus S_1[1^{st}\mbox{ byte of }D_0]}
    6. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{If }i=2\mbox{ or }6\mbox{ then:} \ D_0=D_0+D_3}
    7. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{If }i=3\mbox{ or }7\mbox{ then:} \ D_0=D_0+D_1}

Phase (II)

  1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=15\mbox{ down to 0 do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (D_3,D_2,D_1,D_0) \leftarrow (D_2,D_1,D_0,D_3)}
    2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_0=D_0 \ggg 13}
    3. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (out_1,out_2,out_3)=E(D_0,K_{2i+4},K_{2i+5})}
    4. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_2=D_2-out_2}
    5. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{If }i < 8\mbox{ then:}}
      1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_1=D_1-out_1, \ D_3=D_3\oplus out_3}
    6. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{Else:}}
      1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_3=D_3-out_1, \ D_1=D_1\oplus out_3}

Phase (III)

  1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=7\mbox{ down to 0 do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle (D_3,D_2,D_1,D_0) \leftarrow (D_2,D_1,D_0,D_3)}
    2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{If }i=0\mbox{ or 4 then:} \ D_0=D_0-D_3}
    3. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{If }i=1\mbox{ or 5 then:} \ D_0=D_0-D_1}
    4. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_0=D_0 \lll 24}
    5. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_3=D_3\oplus S_1[4^{th}\mbox{ byte of }D_0]}
    6. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_2=D_2 - S_0[3^{rd}\mbox{ byte of }D_0]}
    7. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_1=D_1 - S_1[2^{nd}\mbox{ byte of }D_0]\oplus S_0[1^{st}\mbox{ byte of }D_0]}
  2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=0\mbox{ to 3 do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle D_i=D_i-K_i}

הרחבת מפתח

הרחבת המפתח נעשית מתוך מפתח צופן הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle k} בגודל הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle n} מילים של 32 סיביות, טווח ערכים אפשריים הוא הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle 4 \le n \le 14} . אותו מרחיבים למפתח הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle K} עם 40 מילים. ההרחבה מתבצעת כדלהלן: נתון מערך עזר הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle T} שבכניסותיו הראשונות מציבים את מפתח הצופן, מוסיפים את ערכו של הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle n} ומרפדים את היתר באפסים. לאחר מכן מבצעים ארבעה סבבים של פעולות הכוללות טרנספורמציה ליניארית וערבוב באמצעות רשת פייסטל מסוג 1. בכל סבב מחלצים עשרה ערכים וכדי להימנע ממפתחות חלשים, עוברים על כל הערכים שהתקבלו וקובעים את שתי הסיביות הפחות חשובות בכל 'מילת-מפתח' המשמשת לכפל ל-"11" וכן מוודים שלא יהיו עשרה אפסים או עשרה אחדים עוקבים באף אחת מהן, להלן פסאודו קוד:

  1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle B=\{\mbox{A4A8D57B}, \ \mbox{ 5B5BD193B}, \ \mbox{ C8A8309B}, \ \mbox{ 73F9A978}\}}
  2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle T[0,...,n-1]=k[0,...,n-1], T[n] = n, T[n+1,...,14] = 0}
  3. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }j=0\mbox{ to 3 do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=0\mbox{ to 14 do:}}
      1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle T_i=T_i\oplus((T_{(i-7) \mbox{ mod }15}\oplus T_{(i-2)\mbox{ mod }15}) \lll 3)\oplus (4i+j)}
  4. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{Repeat 4 times:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=0\mbox{ to 14 do:}}
      1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle j=\mbox{low 9 bits of }T_{(i-1) \bmod\ 15}}
      2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle T_i=(T_i+S_j) \lll 9}
  5. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=0\mbox{ to 9 do:}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle K_{10j + i}=T_{4i\mbox{ mod }15}}
  6. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mbox{For }i=5,7,...,35\mbox{ do:} \ \mbox{ (this are the multiplication keys)}}
    1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle j=\mbox{least 2 bits of }K_i}
    2. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle w=K_i \vee 3 \ \mbox{(the 2 lower bits is set to 1)}}
    3. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle M_l=1\mbox{ Iff }w_l\mbox{ belongs to a sequence of 10 consecutive 1's or 0's, And }}
      1. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle 2 \le l \le 30\mbox{ And Also }w_{l-1}=w_l=w_{l+1}}
    4. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle r=\mbox{ least 5 bits of }K_{i-1}}
    5. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle p=B_j \lll r}
    6. הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle K_i=w\oplus (p \wedge M)}

בקוד המתואר הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle M} נקרא מסכת סיביות (bit mask) כאשר הסיביות הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle M_l} מחושבות לפי ערכי הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle w_l} . וגודל המסכה הוא לכל היותר הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle l=30} . הסמל הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \vee } הוא האופרטור OR והסמל הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle \wedge } הוא האופרטור AND.

יעילות וביטחון

בבדיקות שנעשו הגיע צופן MARS למהירות של 28 מגה בקירוב לשנייה בהצפנה ופענוח על מחשב מסוג Pentium-Pro. הסתבר שמהדר בורלנד (שנמנה מבין דרישות התקן) לא הניב ביצועים אופטימליים. הצופן ניתן ליישום יעיל על פלטפורמות שונות הן בחומרה והן בתוכנה, אך נופל בביצועיו לעומת המתחרים האחרים. למעשה קיבל את הניקוד הנמוך ביותר לפי דירוג NIST של חמשת המובילים. להערכת המפתחים עם מפתח 256 סיביות ההתקפה הכי טובה היא הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle 2^{256}} על בסיס הערכה זו, מנימוקים קריפטוגרפיים, אין כל סיבה להשתמש במפתחות גדולים יותר. כמו כן ההתקפה הטובה ביותר האפשרית כנגד האלגוריתם (גם ליניארית וגם דיפרנציאלית) היא בסיבוכיות מקום של הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle 2^{128}} - שזה מעבר למידע הזמין בעולם. הערכת המפתחים שהאלגוריתם יהיה בטוח לפחות לעשור הקרוב.

ועדת המחקר של האיחוד האירופי לבחירת תקן ההצפנה אירופאי הנקראת NESSIE (מקבילה של NIST) ביקרה את כל המועמדים המובילים לתקן AES בשנים 2000 - 2003 וציינה מספר בעיות בקשר ל-MARS[2]. לדעת הוועדה, טענת המפתחים לגבי ביטחון הצופן מכילה מספר שגיאות ואין בהירות מספקת לגבי תרומתו של המבנה המיוחד (תוספת הסבבים ללא המפתח) לביטחונו, אם כי אין מספיק מידע כדי לפתח התקפה מעשית. קיימות למעשה התקפות תאורטיות (של ביהם ושנייר) על מספר סבבים מצומצם של הצופן שמלמדות שאין הוכחה ברורה ליתרון זה. ניתוח תהליך הרחבת המפתח מאוד איטי ואינו מעיד בהכרח על ביטחונו. במיוחד העובדה ששתי הסיביות הנמוכות של חלקים מהמפתח המשתתפים בכפל שנקבעו ל-"11", משליכה שתמיד יהיו שני קלטים שלא ישתנו בשלב הכפל בלי התחשבות במפתח. המבקרים מסכמים שמבנה MARS היה מורכב מדי להערכה בזמן הקצר של התחרות ואין ביטחון שלא יתגלו חולשות.

התקפת בומרנג

ההתקפה הטובה ביותר הידועה (נכון לשנת 2000) כנגד צופן MARS היא התקפה דיפרנציאלית של ג'ון קלסי, ברוס שנייר וטדיושי קונו[3]. ההתקפה שנקראת 'בומרנג' מצליחה לפרוץ את MARS באחד-עשר סבבים של הגרעין הקריפטוגרפי בסיבוכיות של הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle 2^{65}} טקסטים גלויים נבחרים עם זיכרון הפענוח נכשל (SVG (אפשר להפעיל MathML בעזרת הרחבת דפדפן): תשובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://wikimedia.org/api/rest_v1/":): {\displaystyle 2^{70}} ו- ניסיונות (הצפנה חלקית - ללא שכבת הערבוב).

ראו גם

הערות שוליים

Logo hamichlol 3.png
הערך באדיבות ויקיפדיה העברית, קרדיט,
רשימת התורמים
רישיון cc-by-sa 3.0