צופן זרם – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
שורה 4:
 
==היסטוריה==
לצפני זרם היסטוריה עשירה. הם קיימים מזה שנים רבות ושימשו בעיקר בתקשורת אלחוטית, במיוחד למטרות צבאיות. כבר ב[[מלחמת העולם הראשונה]] יושמו צפני זרם במכונות פרימיטיביות מבוססות רוטור. המכונה [[גרמניה|הגרמנית]] [[מכונת לורנץ|לורנץ]] ששימשה את הצבא הגרמני ב[[מלחמת העולם השנייה]] לתקשורת מאובטחת פעלה על עיקרון צופן זרם שכונה בפי מומחי ההצפנה הבריטיים ב[[בלצ'לי פארק]] בשם "FISH". צבאות בעלות הברית השתמשו אף הן באופן נרחב בצופן זרם לתקשורת. חלק ממכונות ההצפנה הפרימיטיביות שיישמו צפני זרם בזמן המלחמה היו טובות ולעיתים רק אי מילוי הוראות בטיחותביטחון גרמו לפרצות שהקלו על מנתחי הצפנים בפיצוחן.
 
הרבהבעבר צפנירבים מצפני הזרם ישניםהיו מוגנים ב[[זכויות יוצרים]] או סודיים. בשל כךולכן קיים מטבע הדברים תיעוד דל יחסית אודותאודותם. כיום קיים אלגוריתמיםמגוון רחב של צפני זרם שהםמודרניים נחלתהמתאימים הציבורלהצפנה מאסיבית. באופן כללי, ניתן ליישם צופן זרם בעזרת הצפנה סימטרית או אסימטרית. ההבחנה העיקרית בין צופן זרם לצופן בלוקים היא אופן יצירת מפתח ההצפנה. המחולל הפנימי (keystream generator) של צופן הזרם מייצר את סיביות 'זרם-המפתח' במהלך ההצפנה, בהתבסס על המצב הפנימי, בדרך כלל תוך שימוש ביחידות זמן (או פעימות - clocking). מסיבה זו אומרים שלצופן זרם יש 'זיכרון', זאת בניגוד לצופן בלוקים שכאשר הוא מופעל במצב רגיל, אינו מכיל זיכרון כלל. כלומר אינו עושה שימוש במידע מהצפנה קודמת כדי להצפין את הבלוק הנוכחי. כל בלוק מוצפן בנפרד כאשר המידע היחיד הנחוץ הוא מפתח ההצפנה.
 
===פנקס חד פעמי===
{{ערך מורחב|פנקס חד-פעמי}}
צופן זרם באופן הבסיסי ביותר פשוט מאוד. '''זרם-הנתונים''' מחובר בדרך כלל בחיבור בינארי מודולו 2 ([[XOR]]) סיבית אחר סיבית עם '''זרם-מפתח''' סודי וחד פעמי. בטיחותביטחון הצופן תלויהתלוי במידת [[אקראיות]] זרם המפתח. עיקר העבודה היא יצירת זרם המפתח שאמור להיות קשה לניחוש. הדוגמה הקלאסית לצופן זרם נקראת One-time pad ([[פנקס חד פעמי]]), הרעיון מבוסס על [[צופן ורנם]] המוגדר מעל אלפבית בינארי כדלהלן: עבור התו ה-<math>\ i</math> במסר <math>\ m</math> בצע: <math>\ c_i = m_i \oplus k_i</math>. אם זרם המפתח <math>\ k_1, k_2, k_3, ...</math> מיוצר באופן [[מספר אקראי|אקראי]] (אמיתי), ללא תלות במסר כלל וכן אם אורך המפתח זהה לאורך המסר, אזי צופן זה מוגדר כצופן מושלם והוא בטוח לחלוטין. עובדה שהוכחה מתמטית על ידי [[קלוד שנון]]. אולם בשל הקושי המעשי שבהכנה מוקדמת של זרם מפתח אקראי ארוך, צופני זרם מסתייעים במחולל אקראי מובנה, המייצר זרם-מפתח [[מחולל מספרים פסאודו-אקראיים קריפטוגרפי|פסבדו-אקראי]] באורך זרם הנתונים, מתוך מפתח קצר יותר כגון 128 סיביות. אולם כתוצאה מכך, בטיחותוביטחונו אינהאינו מוחלטתמושלם כפנקס חד-פעמי, מאחר שזרם המפתח אינו באמת אקראי. כיוון שבטיחותשביטחון הצופן תלויה באקראיות זרם המפתח, יש קשר הדוק בין צופן זרם ל[[מספר אקראי|מספרים אקראיים]].
 
כמו בפנקס חד-פעמי, שיטת ההצפנה של צפני זרם מחייבת משנה זהירות למרות תכונותיהם הטובות. אין להצפין בשום אופן טקסט שונה (או זרם נתונים אחר) עם אותו מפתח. אם במקרה הוצפנו שני טקסטים עם אותו מפתח הצפנה, XOR של שניהם יבטל למעשה את השפעת המפתח ויותיר את הטקסטים הלא מוצפנים כשהם מחוברים ב-XOR. כל מה שנותר הוא להפרידם זה מזה וההצפנה נפרצה לחלוטין. מלבד זאת צפני זרם רגישים במיוחד להתקפות [[סטטיסטיקה|סטטיסטיות]] המתמקדות בתכונות האקראיות של המחולל (במיוחד כאשר חלק קטן מהמסר המקורי ידוע למתקיף) וכן [[התקפת קורלציה]].