וקטור אתחול

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

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

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

בצופן זרם, למרות שטרנספורמציית המפתח משתנה תוך כדי התהליך בהתבסס על 'מצב פנימי', המחולל הפנימי דטרמיניסטי באופיו ולכן בכל פעם שמתחילים הצפנה עם אותו מפתח יתקבל זרם-מפתח זהה. היות שצופן זרם מתפקד כמו פנקס חד פעמי, שימוש חוזר במפתח הצפנה להצפנת שני מסרים או יותר פורץ לחלוטין את ביטחון הצופן כיוון שחיבור XOR של שתי תוצאות ההצפנה למעשה מסיר את מפתח ההצפנה ומותיר את שני המסרים המקוריים כשהם מעורבבים יחד ולא קשה להפרידם זה מזה.

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

בצופן בלוקים מיישמים מצב הפעלה המדמה צופן זרם כלומר גורמים לתלות בין הבלוקים על ידי פעולה חישובית בין כל בלוק עם בלוק מוצפן קודם. פעולה זו נקראת "שירשור" והמימוש הנפוץ ביותר שלה הוא מצב CBC בו כל בלוק טקסט גלוי מחובר ב-XOR עם הבלוק המוצפן הקודם לפני שהוא מוצפן. כך גם אם שני בלוקים מכילים מידע זהה, תוצאות הצפנתם תהיה שונה. אולם מצד שני יש לזכור שבשיטה זו אין גישה ישירה, לשם פענוח בלוק אחד יש צורך במידע מוקדם, פענוח בלוק קודם.

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

שמות נוספים לוקטור האתחול הם: "Nonce" שנגזר מהביטוי Nonce word כלומר משהו חד-פעמי שנוצר לצורך אירוע זמני הביטוי נפוץ בפרוטוקולי תקשורת קריפטוגרפיים או "tweak". האחרון הוא קונספט חדש של צופן בלוקים שניתן להתאמה (tweakable block cipher) ולמעשה משלב באופן יעיל מצב הפעלה בטוח לצורך הצפנת בלוקים מרובים בעיקר באמצעי איחסון, ועושה שימוש בערך ראשוני שנקרא בקצרה tweak המתפקד כוקטור אתחול לכל דבר.


P Computer-science.png ערך זה הוא קצרמר בנושא מדעי המחשב. אתם מוזמנים לתרום לוויקיפדיה ולהרחיב אותו.