לדלג לתוכן

IDEA

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

International Data Encryption Algorithmראשי תיבות:IDEA) הואצופןבלוקיםסימטרישהוצע ב-1991 על ידיג'יימס מסימהמכון הטכנולוגי של ציריךו-Xuejia Laiמאוניברסיטת ג'יאו טונג שאנגחאי[1]כדי להוות מחליף ראוי ל-DESהוותיק. הצופן פועל על בלוקקלטבאורך 64 סיביות, עם מפתח באורך 128 סיביות והוא מבוסס על הקונספט "שילוב פעולות מחבורותאלגבריותשונות ". הצופן הומלץ על ידי מומחים וההתקפה היעילה ביותר כנגדו היא בסיבוכיות שלבערך – קצת פחות מכוח גס.חסרונותיו העיקריים, בלוק המידע הוא רק 64 סיביות (כלומרסיבוכיות מקוםנמוכה ביחס לדרישתהתקן המתקדם– 128 סיביות לפחות) וכן קצת איטי ביישום הן בתוכנה והן בחומרה. זמינותם שלאלגוריתמיםחדשים, מהירים ובטוחים יותר הותירה את IDEA מאחור, אם כי עדיין נתמך בפועל במערכות אבטחה רבות כוללPGPו-OpenSSL.השם IDEA הואסימן רשוםונרשם כפטנט שתוקפו פג ב-2012 וכעת חופשי לשימוש.

IDEA הוא מעין שילוב שלרשת החלפה-תמורהעםרשת פייסטלובמקוםתיבות החלפהמנצל פעולותאריתמטיותבשלוש חבורות אלגבריות שונות על תת-בלוקים בגודל 16 סיביות, להשגת פיזור (Diffusion) מהיר וערבוב (Confusion) גבוה. פיזור נחוץ להבטיח שכל סיבית טקסט גלוי וכל סיבית מפתח, ישפיעו על כל סיביות הטקסט המוצפן במידה שווה. ערבוב מטשטש את הקשר בין הטקסט המוצפן לטקסט הגלוי והמפתח. רשת פייסטל בנויה כך שהצפנה ופענוח ייעשו באמצעות אותה פונקציה עם מפתח שונה (להלן). ידוע עלמפתחות הצפנה"חלשים" של IDEA שלא מומלץ להשתמש בהם (כגון אם הייצוג הבינארי מכיל רצף ארוך של אפסים), בפועל אם המפתח נבחר באקראיהסיכוי נמוך ביותר שיבחר מפתח חלש, מלבד זאת קיימות טכניקות למנוע זאת.

תיאור הצופן

[עריכת קוד מקור|עריכה]

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

  1. מיפוי סיביות בשדה בינארימורחבמעלעם פעולתXORהמסומן בסמל.
  2. חיבור שלמיםמודולו(חבורה חיבורית), המסומן ב-.
  3. כפל שלמים מודולו(חבורה כפלית) ומסומן בקיצור.זהו כפל מודולרי רגיל למעט הכלל שמחרוזת 16 אפסים מייצגת את הערך(כזכור לא ניתן לייצג אתב-16 סיביות, על כן סיבית 1 הגבוהה מרומזת) לדוגמהבגלל ש-.

מבצעים בלולאה שמונה סבבים (שימו לב שהאינדקס מתחיל באחד ולא באפס.מייצג את ערך המפתח בכניסהבמפתח-סבבבמערך הדו-ממדי):

    1. ,.
    2. ,.
    3. ,,
    4. ,,
  1. ,,,

תהליך הכנת מפתחות

[עריכת קוד מקור|עריכה]

המפתח המורחב כולל מערך של 52מיליםבגודל 16 סיביות כל אחת (סך הכול 832 סיביות). תהליך ההכנה בהצעה המקורית הוא כדלהלן: תחילה 128 סיביות המפתח הראשוני המסופק על ידי המשתמש מחולקות לשמונה קבוצות של 16 סיביות כל אחת, אותם מציבים בשמונה הכניסות הראשונות לפי הסדר, מבצעיםהזזה מעגליתשל 128 סיביות המפתח 25 פוזיציות שמאלה ואת התוצאה מציבים בשמונה הכניסות הבאות, שוב מזיזים בהזזה מעגלית 25 פוזיציות ואת התוצאה בכניסות הבאות וכן הלאה, שש פעמים עד להשלמת 48 כניסות ואז מבצעים הזזה נוספת ומשלימים את ארבע הכניסות האחרונות בחלק מהתוצאה. להלן ניסוח פורמלי של תהליך הכנת מפתח (שונה במעט מהתיאור המקורי):

  1. תחילה מכינים מערך נלווה,בשמונה הכניסות הראשונות מציבים את המפתח המסופק על ידי המשתמש ואז עבור היתר, מבצעים לולאהכדלהלן:
  2. אםמתחלק ב-מציבים:.
  3. אחרת, אםמתחלק ב-מציבים:.
  4. ביתר המקרים מציבים:.
  5. מבצעים לולאה אחרונה שבה מעבירים את הערכים ל-כאשר האינדקסים הםו-:

הפעולות ROR ו-ROL הן הזזה מעגלית בסיביות ימינה או שמאלה בהתאמה במספר פוזיציות לפי המציין התחתי.

לפענוח תחילה מחשבים את 52 מפתחות הפענוח מתוך מפתחות ההצפנה באמצעות חישובהמספרים ההופכייםשלהם. כלומרמייצגהופכי כפלישלמודולוכך שמתקייםוכןהוא הופכי חיבורי או המשלים שלמודולו(במקרה זה המשלים יהיה). ההופכי של XOR נותר זהה. לצורך המחשה אם מפתחות הסבב הםמפתחות הפענוח המקבילים להם יהיו(שני האחרונים מייצגים XOR לכן הם הופכיים של עצמם) – בסדר הפוך, דהיינו תחילה ארבעת המפתחות המקבילים לטרנספורמציה האחרונה המסומנים 9 ולאחר מכן 48 המפתחות הנותרים בסדר הפוך, שישה עבור כל סבב. ואז הפענוח מתבצע באופן זהה להצפנה (בפסאודו-קוד לעיל). הכנת מפתח הפענוח בניסוח פורמלי מתוארת להלן, כאשר DK מייצג את מפתח הפענוח (decryption key). מבצעים תשעה סבבים כדלהלן:

ביטחון האלגוריתם

[עריכת קוד מקור|עריכה]

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

מבנה כפל-חיבור של IDEA

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

לפי טענת המפתחים האלגוריתם מעוצב כדי להתמודד מול איוםקריפטואנליזה דיפרנציאלית.נכון ל-2007 ההתקפה הטובה ביותר כנגד האלגוריתם הייתה בסיבוכיות שלעםטקסטים גלויים. למרות היותו איטי מספק האלגוריתם ביטחון טוב יותר בהשוואה ל-DESאולם חלש יחסית לאלגוריתמים חדשים דוגמתAESאוTwofish.העובדה שגודל הבלוק הוא רק 64 סיביות מעיבה מעט על ביטחונו.

הערות שוליים

[עריכת קוד מקור|עריכה]