tomron87/hebrew-wikipedia-sentences-corpus huggingface dataset:
התנובה מיועדת ברובה לייצוא (בעיקר לאירופה) ומיעוטה משווק בשוק המקומי עיקר הגידולים של המושב הם: ירקות חורף: מלונים, פלפלים וזנים שונים של עגבניות.
וגם מטעי תמרים ופירות נוספים.
בשטחי המושב, בבעלות משפחות אחדות מהמושב, קיימות מכלאות בקר, המשמשות כתחנות הסגר לבקר חי המיובא לישראל דרך נמל אילת.
למושב מטע תמרים המשותף לכל חברי המושב.
המושב, נמצא בקרבה לדרך הבשמים הנבטית וליד העיר הנבטית הקדומה מואה.
ענף כלכלי נוסף שתופס תאוצה בשנים האחרונות ומהווה מקור תעסוקה ופרנסה משמעותי הוא תחום התיירות.
במושב חדרי אירוח (צימרים) וחאנים, לצד אטרקציות ושירותי הסעדה.
דרך הבשמים הנבטית, שעוברת באזור, הוכרה בשנת 2005 כאתר מורשת עולמית מטעם אונסק"ו והופכת את המושב למבוקש עבור תיירים ומבקרים.
ליד המושב, נמצאת חוות האנטילופות בערבה ובה סיורים ואפשרות לינה.
במושב מגדלים סרטנים כחולים (Procambarus alleni) לנוי ולמאכל.
במחקר עליהם בהשתתפות פרופסור אמיר שגיא וחוקרים נוספים מאוניברסיטת בן-גוריון בנגב התגלה שהסרטנים עושים שימוש בסידן אמורפי.
המחקר הביא לגילוי אפשרות ליצירת סידן אמורפי סינתטי והחל משנת 2013 משווק תוסף סידן אמורפי על ידי חברת אמורפיקל שהוקמה במהלך המחקר.
במושב, מועסקים צעירים ישראלים רבים, בבתי האריזה ונהנים מעבודה מועדפת, שלאחר הצבא (פרויקט "עבודה עברית"), לצד פועלים ממזרח אסיה ואפריקה.
במושב מגוון של עסקים קטנים כגון סדנאות אומנויות, צימרים, מתחמי אירוח והסעדה ושירותים נוספים.
במושב נמצאים גני ילדים, בריכת שחייה.
בית-כנסת, מועדון חברים, מועדון נוער וספרייה.
בתחומי המושב ארבעה גני ילדים מגיל שנה ועד גיל בית ספר.
בתי הספר: יסודי "שיטים", ותיכון "שיטים דרכא" נמצאים במרכז ספיר ומשרתים את כל תושבי המועצה האזורית ערבה תיכונה.
בספטמבר 2021 הוקמה שלוחה של מכינה קדם-צבאית ערבה.
שלוחה זו היא חצי שנתית (בניגוד לשלוחות האחרות הפעילות כעשרה חודשים) ולומדים בה כ-30 חניכים.
צפונית למושב צופר שוכנת תצפית נוף צופר.
מהתצפית ניתן לראות את כל המושב ושדותיו ממזרח לכביש 90.
התצפית הוקמה בשנת 2024 בהובלת חבר המושב ששון אליאס, שהוא ממקימי המושב.
בהקמת המצפה נטלו חלק חברי המושב ובני "מכינת צופר" - מחזור ב'.
גבעת הנצחה לחללי המושב במלחמת "חרבות ברזל"
הגבעה הוקמה במקביל להקמת התצפית לזכר חללי המושב- חיילי צה"ל שנהרגו בקרבות במהלך מלחמת חרבות ברזל.
בתחומי המושב נמצא גם "אוום – מרכז רוחני בינלאומי לשלום" הידוע גם כ-"מרכז רוחני ערבה".
צוציק היא סדרת ספרי ילדים מאת סמדר שיר, על אודות ילד נמוך שלמרות גובהו פעיל מאוד בחברה.
שם הספר הושאל מביטוי סלנג עברי המתאר ילד קטן או אדם נמוך קומה.
הספר הראשון בסדרה יצא ב-1987, ועד כה יצאו בסדרה 14 ספרים.
ארז "צוציק" רון - גיבור הסדרה.
הילד הנמוך ביותר בכיתה (ג'-ד'), אבל נבחר פעמיים להיות יושב-ראש ועד הכיתה.
נילי פומפקוביץ' - חברתו הטובה של צוציק, הגבוהה ממנו בחצי ראש.
יוני רון - אחיו של "צוציק", הצעיר ממנו אך גבוה ממנו.
למרות שצוציק קיווה שלהיפטר מכינויו, אחיו קרא לו "צוציק" בפני כולם כבר ביום הראשון בבית החדש אליו עברו וקיבע את הכינוי בקרב מכריו החדשים.
יוחאי הבריון - תלמיד בבית הספר של צוציק שאיים עליו באלימות פיזית ומילולית.
עירית גושן - בת לשחקנית מפורסמת שצוציק ניסה לאתר כשברחה מהבית, נוהגת לבלות איתו ועם נילי.
מגדיר אותה כ"חברה לכיף" להבדיל מנילי שהיא "חברה רומנטית".
יסמין - נערה מזרחית, תלמידה בכיתה של צוציק, הגדולה והמפותחת מכל הבנות בכיתה.
נהייתה חברה של צוציק בעקבות התערבות שלו עם יוחאי הבריון, מה שהוביל לבחירה בו לראשות ועד הכיתה.
הוריה מאלצים אותה לעבוד בניקיון ביתם.
לעולם לא אהיה גוליבר - צוציק מגיע לשכונה חדשה ומתיידד עם נילי.
איך הצעתי חברות והסתבכתי בהתערבות - צוציק מתמודד על ראשות ועדת כיתה ועל לגלוגים מצד יריבים פוליטיים.
לאן נעלמה עירית - עירית גושן מהכיתה, ביתה של שחקנית מפורסמת נעלמת.
דנית הפטפטנית לומדת לשתוק - צוציק, עירית ונילי מלמדים לקח את דנית הרכלנית של הכיתה לקראת מסיבת סוף השליש.
חברים לעט - בעקבות המלצה של נילי צוציק מתכתב עם חבר שמעולם לא ראה.
כשאמא לובשת שמלת הריון - צוציק מתמודד עם ההריון של אמו.
מסיבה של גדולים - בעקבות שיפוצים בבית של נילי מסיבת סוף השנה עוברת לבית של צוציק, על רקע החודש התשיעי בהריון של אמו.
אחותי הקטנה - לצוציק נולדת אחות בשם נילי, ולא כולם מאושרים (בעיקר צוציק).
עלילות הקוסמת דסי והבדרן צחי קונדסי - החופש הגדול משעמם, ושני כישרונות צעירים מבקשים מצוציק להיות האמרגן שלהם.
שלום אלון, שלום ולהתראות - אלון ומשפחתו עוזבים את הארץ לארצות הברית מסיבות כלכליות, ורק צוציק ונילי מבינים אותו.
תעלומה בספינת שודדי הים - צוציק הולך עם נילי לבקר קרובות משפחה בגבעתיים בסיום החופש הגדול, והם הולכים להשתובב בספינת פיראטים.
שלאגר נגד שלאגר - מה שהתחיל כהזמנה לסרט עבר לחילופי "מחמאות" הדדיות בין הבנים לבנות בכיתה, על רקע הבחירות לוועדת כיתה.
3 שדכנים מחפשים חתן - נילי וצוציק עוזרים לסיגל למצוא חתן לאמה.
עושים דיאטה (לא יצא עדיין)
בקריפטוגרפיה, הצפנה סימטרית (symmetric encryption) או צופן סימטרי הוא אלגוריתם הצפנה שבו משתמשים במפתח הצפנה יחיד הן להצפנה של הטקסט הקריא והן לפענוח של הטקסט המוצפן.
בפועל המפתח הוא בדרך כלל סוד משותף לשניים או יותר משתתפים ובדרך כלל מתאים לכמות מוגבלת של נתונים.
הסיבה שהצופן נקרא סימטרי היא כי נדרש ידע שווה של חומר סודי (מפתח) משני הצדדים.
צופן סימטרי מקבל טקסט קריא ומפתח הצפנה ובעזרתו ממיר את הטקסט הקריא לטקסט מוצפן שאינו מובן לאיש ואותו הוא שולח ליעדו.
בצד המקבל אלגוריתם הפענוח מבצע את הפעולה ההפוכה, הוא מקבל את הטקסט המוצפן ואותו מפתח הצפנה שבו השתמש השולח ומשחזר את הטקסט המקורי.
כדי שהפענוח יצליח המפענח חייב להחזיק במפתח פענוח מתאים שמאפשר את הפיכת פעולת ההצפנה.
לאור זאת על השולח להעביר את מפתח ההצפנה לידיעת המקבל בערוץ בטוח כלשהו כמו במפגש אישי, על ידי שליח מהימן או באמצעות פרוטוקול שיתוף מפתח קריפטוגרפי.
מציאת ערוץ בטוח להעברת המפתח היא בעיה בפני עצמה שנדונה רבות והיא נקראת בעיית הפצת מפתחות.
הדרישה שיהיה מפתח אחד משותף לשולח והמקבל היא התכונה העיקרית המבדילה בין הצפנה סימטרית להצפנה אסימטרית שבה מפתח הפענוח שונה ממפתח ההצפנה.
שמות אחרים להצפנה סימטרית הם הצפנת מפתח-יחיד (single-key), הצפנת מפתח פרטי (private-key) או הצפנת מפתח סודי (secret key).
אפשר להמחיש הצפנה סימטרית על ידי צופן ההחלפה הבא: יהי האלפבית העברי הכולל 22 אותיות (לא כולל סופיות) "אבגדהוזחטיכלמנסעפצקרשת".
אם נבחר מפתח שהוא פרמוטציה כלשהי באורך חמש אותיות מעל , הצפנה תתבצע על ידי חלוקת המסר המיועד להצפנה לקבוצות של חמש אותיות והפעלת התמורה על כל קבוצה באופן מחזורי.
כדי לפענח מחשבים את התמורה ההופכית ומפענחים באותו סדר.
אם למשל , דהיינו האות הראשונה בכל חמישייה מוחלפת באות השלישית הבאה אחריה בסדר האלפביתי, האות השנייה מוחלפת באות הרביעית הבאה אחריה, האות השלישית מוחלפת באות הראשונה הבאה אחריה וכן הלאה.
אפשר להציג את המפתח כטבלת תמורה עם חמישה היסטים שונים, בשורה הראשונה האלפבית ובשורות הבאות ה'היסטים' של האלפבית במרחק שנקבע לפי המפתח, כדלהלן:
לאחר הצפנת חמש אותיות חוזרים לתחילת המפתח ומצפינים את חמש האותיות הבאות עד לסיום המשפט.
לאחר הצפנה התוצאה תהיה "שיצעל חעבדנ טללנפ".
לפענוח מפעילים את התמורה ההפוכה לפי הסדר של המפתח, למשל כדי להחליף את האות 'ש' מתחילים בשורה השנייה בטבלה ומאתרים את האות המקבילה אליה בשורה הראשונה, את האות 'י' מחליפים לפי מיקומה בשורה השלישית וכך מתקדמים עד לפענוח כל המשפט.
הצופן המתואר הוא להמחשה בלבד ואינו ראוי לשימוש כיום מלבד לשעשוע.
הסיבות לכך הן, מספר ההיסטים או המפתחות האפשריים מוגבל מאוד במונחים של ימינו ומלבד זאת בצופן מסוג זה התכונות הסטטיסטיות של הטקסט המקורי 'זולגות' לטקסט המוצפן מה שמאפשר ניתוח תדירויות.
למעשה השיטה מתוארת היא שיטה עתיקת יומין הקרויה צופן ויז'נר, על כל פנים היא מדגימה היטב את סימטריות הצופן, אפשר לראות שהמפתח חייב להיות סודי וחייב להיות ידוע לשני הצדדים השולח והמקבל במידה שווה.
למקבל די בידיעת מפתח ההצפנה כדי לפענח את הטקסט המוצפן בקלות.
צופן סימטרי קיים בקריפטוגרפיה מראשית ימיה.
הצפנים הקלאסיים מוגדרים כצפנים סימטריים.
לדוגמה: צופן החלפה, צופן קיסר, צופן ויז'נר, צופן היל ופנקס חד-פעמי, הם צפנים סימטריים כאשר , כלומר ההצפנה והפענוח נעשים באמצעות אותו מפתח לעיתים באותה טרנספורמציה או בטרנספורמציה הופכית.
אלגוריתם DES הוא דוגמה לצופן הסימטרי המודרני הראשון שפותח.
הפונקציה ליצירת מפתח הפענוח מכינה את בתי המפתח בסדר הפוך.
ההצפנה נקראת סימטרית, מאחר שכל שנדרש הוא ידיעת המפתח הסודי.
כאשר המפתח הסודי ידוע, תהליך הפקת מפתח הפענוח הוא פונקציה פשוטה.
דוגמאות לצופנים סימטריים מודרניים נוספים: Twofish, MARS, סרפנט, AES, Blowfish, CAST5, RC4, RC6, DES וכן IDEA.
בהצפנה נהוג בדרך כלל לכנות את הצדדים המשתתפים בהתקשרות מוצפנת אליס ובוב, המתקיפה או הקריפטאנליסטית היא איב (eavesdropper) שמעוניינת לחשוף את המידע המוצפן שעובר בין אליס ובוב.
תחילה אליס ובוב מסכימים ביניהם על אלגוריתם הצפנה.
באופן פורמלי אלגוריתם ההצפנה מורכב משלושה אלגוריתמים:אלגוריתם יצירת מפתח הצפנה המסומן בקיצור הוא אלגוריתם דטרמיניסטי או אלגוריתם הסתברותי, המפיק מפתח הצפנה שנבחר כתוצאה מהתפלגות מסוימת שנקבעת על ידי האלגוריתם.
כמעט תמיד הכוונה היא שהאלגוריתם בוחר מפתח הצפנה באופן אקראי בהתפלגות אחידה בדידה מתוך טווח כל המפתחות האפשריים כאשר את טווח המפתחות האפשריים מסמנים ב-.אלגוריתם הצפנה המסומן בקיצור שמקבל טקסט-גלוי מתוך מרחב כל המסרים האפשריים המסומן בקיצור ומפתח ההצפנה ומפיק טקסט-מוצפן בקיצור: .
אלגוריתם ההצפנה יכול להיות דטרמיניסטי או הסתברותי.
מהיבט תאורטי יש עדיפות לאלגוריתם הסתברותי וזו השיטה הנהוגה בקריפטוגרפיה מודרנית.
כדי להבדיל בין השניים יש הנוהגים לסמן את השני: .אלגוריתם פענוח המסומן בקיצור הוא אלגוריתם דטרמיניסטי שתפקידו לשחזר את התהליך, כלומר הוא מקבל את ואת ומחזיר את .
אלגוריתם ההצפנה מוגדר בשלמותו על ידי השלישייה: .
התפלגות הטקסט הגלוי אינה בהכרח אחידה, אם למשל הוא מכיל מלל בשפה האנגלית למתקיף יכול להיות מושג כלשהו לגבי ההסתברות שיופיע טקסט כלשהו לעומת טקסט אחר.
האלגוריתם מצפין את ומחזיר את טקסט המוצפן שהוא אלמנט השייך למרחב הטקסטים המוצפנים , אפשר לראות בהצפנה כפונקציה מהצורה:
כאשר התחום מורכב מזוג ערכים והטווח הוא .
פונקציית ההצפנה מקבלת את ואת ומחזירה את .
באופן דומה הפענוח הוא פונקציה מהצורה:
כלומר פונקציית הפענוח מקבלת את ואת ומחזירה את .
ברור שלמען התקינות פונקציית ההצפנה חייבת להיות פונקציה הפיכה באופן שהמפענח יוכל לשחזר את הטקסט המקורי שלפני ההצפנה.
אחרת לא תהיה בה כל תועלת.
בדרך כלל מקובל - אם כי אין זה חובה - למניעת התנפחות לא רצויה, מרחב הטקסט המוצפן צריך להיות זהה למרחב הטקסט הגלוי שאז ההצפנה היא תמורה מהמרחב לעצמו, בניסוח מתמטי .
במילים אחרות רצוי שהטקסט המוצפן המתקבל יהיה זהה באורכו לטקסט המקורי.
מזה נובע שעבור כל מפתח הפונקציה חייבת להיות פונקציה חד-חד-ערכית.
כי אם לא עלול להיווצר מצב ש:
פירושו שההצפנה תהיה חסרת תועלת אם המפענח יקבל טקסט קריא אחר מזה שהוצפן.
למען הנוחות, מפתח ההצפנה, הטקסט הגלוי והטקסט המוצפן מומרים באמצעות שיטת קידוד מוסכמת ליחידות מידע בסיסיות.
בדרך כלל נוח להתייחס אל המידע כאל מספרים, אחרי הכול ההצפנה מבוצעת על מחשב (בדרך כלל).
בניגוד להצפנה שיטת קידוד היא דרך להמרת מידע כלשהו מפורמט אחד לאחר באופן גלוי ומוסכם ובאופן שיהיה קל לביצוע על ידי כל אחד.
כל הצפנה חייבת להשתמש בשיטת קידוד כלשהי כאשר השיטה הבסיסית ביותר היא השיטה הבינארית.
שיטת ההצפנה יכולה להצפין את המידע סיבית אחר סיבית או אם נבחרה שיטת קידוד אחרת (כמו בתים או מילים) יחידת מידע זו אחר זו, בדרך זו השולח מצפין ומעביר באמצעות ערוץ התקשורת יחידות מידע מוצפנות בזו אחר זו ללא תלות אחת בשנייה ומבלי לדעת מה אורך המידע המיועד להצפנה.
לעיתים כאשר קיימת כמות גדולה של מידע ואורכו ידוע מראש כמו קובץ במחשב, נוח לחלקו לבלוקים באורך קבוע בהם מטפלים בזה אחר זה.
היתרון בשיטה זו שאפשר להתייחס לבלוק בודד כאל מספר שלם בטווח .
בדרך זו סיביות הבלוק הן ספרות בבסיס בינארי של מספר שלם כלשהו לפי הכלל:
במקרה זה יש להבחין בין סדר בתים גדול לסדר בתים קטן.
בסדר בתים גדול יש להפוך את הסדר כך שהספרות המשמעותיות יהיו בהתחלה.
ובאופן דומה מרחב המפתח ומרחב טקסט המוצפן מזוהים עם מספרים שלמים בטווח המתאים.
מקובל שאורך המפתח צריך להיות לפחות כאורך הבלוק.
השאלה מהו אורך בטוח היא שאלה מורכבת שאין לה תשובה חד משמעית, נכון לימינו מקובל בהנחה שלא תתגלה בזמן הקרוב טכנולוגיה חדשה ומהפכנית, אורך של 128 סיביות מספק מרווח ביטחון מניח את הדעת לכל צורך מעשי.
יש לשים לב שאם המפתח קצר מדי הרי שהמתקיף עלול לנסות את כל האפשרויות של המפתח עד שהוא ימצא את המפתח הנכון.
להתקפה בסגנון כזה קוראים התקפת כוח גס והשאיפה של מפתח האלגוריתם היא שהתקפת כוח גס לא תהיה יעילה במונחי מחשוב בכלים הקיימים כיום.
כאשר מחשבים קוונטיים יהיו מעשיים יהיה צורך להכפיל את אורך המפתח כלומר לפחות 256 סיביות.
ההנחה הבסיסית היא שאיב (האויבת או המתחרה) מכירה את שיטת ההצפנה בה בחרו אליס ובוב לפרטי פרטים.
הדבר היחידי שהיא אינה יודעת הוא מהו מפתח ההצפנה .
עובדה זו מהווה עיקרון בסיסי בהצפנה מודרנית הנקרא עקרון קרקהופס שאומר בתמצית ש"ביטחון ההצפנה אינו תלוי בסודיות שיטת ההצפנה אלא אך ורק בסודיות המפתח".
על מערכת הצפנה סימטרית להכיל את התכונות הבאות:
בהינתן מפתח הצפנה וטקסט גלוי כלשהם, אמור להיות קל לכל אדם לחשב את .
בהינתן מפתח הצפנה וטקסט מוצפן כלשהו אמור להיות קל לכל אדם לחשב את .
בהינתן אחד או יותר טקסטים מוצפנים שהוצפנו עם המפתח , אמור להיות קשה מאוד לחשב את הטקסטים המקוריים המתאימים או אפילו אחד מהם ללא ידיעת המפתח .
בהינתן טקסט מוצפן אחד או יותר וטקסטים מקוריים מתאימים כך שמתקיים יהיה "מאוד קשה" לפענח טקסט מוצפן (שאינו נמנה עם רשימה זו) ללא ידיעת מפתח ההצפנה .
תכונה זו נקראת ביטחון נגד התקפת גלוי-ידוע או התקפת גלוי-נבחר.
התכונה הראשונה והשנייה אומרות שבהינתן הפרמטרים הדרושים כולל הפרמטרים הסודיים, מערכת ההצפנה צריכה להיות ברורה וקלה לביצוע בזמן פולינומי.
התכונה השלישית היא תכונת הסודיות העיקרית של כל מערכת הצפנה שאומרת שמערכת הצפנה חייבת לספק סודיות במובן שאמור להיות קשה מאוד לגלות מהו הטקסט המקורי לפי הטקסט המוצפן ללא ידיעת המפתח.
בביטוי קשה מאוד מתכוונים באופן לא פורמלי שלא קיים אלגוריתם יעיל המאפשר לגלות את הטקסט הגלוי שהוצפן ללא ידיעת המפתח.
התכונה הרביעית היא החשובה ביותר והיא מתייחסת למספר מודלים של הערכת ביטחון צופן סימטרי שמביאים בחשבון מצבים בהם למתקיפה, המתחרה (או מנתח הצופן) "יתרון" מסוים.
לדוגמה בידי המתקיפה כמות מוגבלת של זוגות טקסטים גלויים וטקסטים מוצפנים המתאימים להם שהושגו באמצעים לא קריפטוגרפיים, למשל ייתכן על ידי חדירה למחשבו של הקורבן המכיל קבצים מוצפנים או הודעות דואר מוצפנות שבחלקם מצוי מידע קבוע שקל לנחשו כמו קובצי כותר.
במודל אחר מניחים שלא רק שבידי המתקיפה איב זוגות טקסטים גלויים ומוצפנים, אלא שהיא יכולה לבחור את הטקסטים הגלויים שברצונה לראות את תוצאת הצפנתם, למשל נניח שלפני שפרצה למחשב היא שלחה לקורבן הודעות דואר כלשהן שאותן הקורבן הצפין ואחסן בדיסק הקשיח.
המודל המחמיר ביותר נקרא עמידות נגד התקפת מוצפן-נבחר שמניח עוד כי המתקיפה מסוגלת לבחור טקסטים מוצפנים ולקבל בדרך כלשהי את מקורם הגלוי.
המודל הזה אינו נפוץ במציאות אך יש לזכור שבדרך כלל התקשורת נעשית בין מחשבים ללא התערבות אנושית.
אפשר לחשוב למשל על מכשיר נייד המצפין מסרים כקופסה שחורה המוגנת מפני חדירה ואותה המתקיפה רשאית להפעיל למשך פרק זמן.
או שהמתקיפה הצליחה לחדור לשרת קבצים מוגן.
הרעיון מאחורי מודלים אילו הוא שיהיה קל לנסח בצורה פורמלית את המושג ביטחון אלגוריתם הצפנה, להגדיר במדויק את היעדים של האלגוריתם בהתאם למידת האיום והסביבה בה הוא פועל.
התכונה הרביעית קשה להשגה והשאיפה בכל צופן סימטרי מודרני היא שיקיים תכונה זו.
צופן ההחלפה המתואר לעיל הוא דוגמה קלאסית לצופן סימטרי המקיים את שלוש התכונות הראשונות אך לא את הרביעית.
כיוון שאם ידוע למתקיף על זוגות מועטים של טקסטים מוצפנים והטקסטים המקוריים שהוצפנו ביכולתו לשבור את ההצפנה ולגלות את מפתח ההצפנה במאמץ מועט.
הצפנה סימטרית הייתה והיא עדיין נושא מחקר חשוב בקריפטוגרפיה ולה היסטוריה עשירה.
הצפנים הקלאסיים הם צפנים סימטריים.
לדוגמה צופן ויז'נר בדוגמה לעיל הוא סימטרי.
כל הצפנים הקלאסיים למעט פנקס חד-פעמי אינם בטוחים לשימוש מעשי כיום לאבטחת תעבורת האינטרנט.
הסיבות הן, ההצפנה מבוצעת ברמה של אותיות ומילים לכן המפתח אינו אלא מחרוזת אותיות באורך מוגבל.
מספר המפתחות האפשריים בשל כך קטן מאוד במונחים של ימינו, במיוחד לאור העובדה שמחשב ביתי רגיל מסוגל לנתח מיליוני אפשרויות בשנייה.
שנית הטקסט המוצפן אינו לגמרי אקראי בגלל יתירות המפתח ויתירות הטקסט המקורי.
מה שמאפשר ניתוח תדירויות השפה על מנת לנחש את הטקסט המקורי או את המפתח הסודי בהינתן טקסט מוצפן מועט בלבד.
צפנים מודרניים עוקפים את הבעיה על ידי הצפנה של בלוקים גדולים יותר בבת אחת.
למשל צופן AES מצפין בלוק באורך 16 תווים (אליו מתייחסים כאל מספר שלם באורך 128 סיביות).
בניגוד לצופן קלאסי כל אות בבלוק הקלט משפיעה על תוצאת ההצפנה של כל האותיות האחרות.
כל בלוק קריא מניב בלוק מוצפן אקראי (על פניו) מתוך הטווח המקסימלי של בלוקים אפשריים, לכן כדי שניתוח סטטיסטי של תדירויות הבלוקים יהיה אפקטיבי יש צורך לנתח כמות עצומה של בלוקים ולכן זה לא מעשי.
כדי להבין למה רוב הסיכויים ש"גישה פשטנית" מדי להשגת הצפנה סימטרית בטוחה לא תצלח.
נניח שנתון מספר ראשוני באורך 160 סיביות (בערך כחמישים ספרות עשרוניות) ונניח שמרחב הטקסט הקריא, הטקסט המוצפן והמפתח זהה.
כלומר מספר שלם בטווח .
בטרמינולוגיה אלגברית המספרים הם אלמנטים (איברים הפיכים) של השדה הראשוני .
אליס ובוב מסכימים ביניהם מראש על מפתח סודי משותף שהוא אלמנט אקראי כלשהו הנמוך מ- ונניח שהם הסכימו על פונקציית הצפנה פשוטה בתכלית כדלקמן:
כאן הכוונה היא ש- הוא שלם ייחודי השקול ל- מודולו .
כאשר הוא ההופכי הכפלי של (מודולו ) כך שמתקיים .
את המפתח ההופכי אפשר לחשב בקלות באמצעות אלגוריתם אוקלידס המורחב.
על פניו נראה שלאיב תהיה בעיה קשה לפענח את הטקסט המוצפן ללא ידיעת המפתח, כיוון שקיימים אפשרויות למפתח ולכן התוצאה תראה כאילו אקראית לעיניה.
הניסיון לנחש את מפתח ההצפנה מתוך מפתחות אפשריים בלתי אפשרי בזמן סביר אפילו עם מיליון מחשבי על הפועלים במקביל.
אבל מה יקרה אם איב הצליחה להניח ידה על טקסט קריא יחיד ועל טקסט מוצפן המתאים לו (מה שקרוי התקפת גלוי-ידוע או התקפת גלוי נבחר), היות שהפונקציה המתוארת היא פונקציה על העובדה הבאה נכונה:
כלומר איב הצליחה לחשב את המפתח הסודי מתוך הצפנה אחת בלבד.
צריך לזכור, כשמפתחים אלגוריתם הצפנה תמיד מביאים בחשבון שחלק מהטקסט שהוצפן יתגלה בדרך כלשהי לא בהכרח על ידי שבירת האלגוריתם, אלא על ידי גנבה או ציתות.
לכן ההנחה שאיב הצליחה להשיג טקסט גלוי וטקסט מוצפן המתאים לו היא הנחה ריאלית שחובה להתייחס אליה.
קל לראות שהצופן הזה מקיים את שלוש התכונות הראשונות אך לא את הרביעית.
אם מסירים את החשבון המודולרי עם וההצפנה הייתה פשוט הכפלה בשלם כלשהו ואילו הפענוח היה פשוט חילוק ב- אז גם התכונה השלישית לא הייתה מתקיימת.
בגלל העובדה שנכון שניסיון לפענח טקסט מוצפן אחד ללא ידיעת המפתח זו משימה קשה, אך בהינתן מספר טקסטים מוצפנים המשימה יותר קלה מפני שבסבירות גבוהה המחלק המשותף המקסימלי שלהם עלול להיות המפתח הסודי עצמו או כפולה שלו.
זו אינדיקציה טובה למה צמצום מודולרי מניב אפקט "ערבוב" מצוין שמשמיד תכונות מסוימות כמו התחלקות אך לחלוטין לא מספיק כדי להבטיח סודיות טובה בסטנדרטים של ימינו.
גישה אחרת היא להשתמש בחיבור מודולו במקום כפל שהוא פשוט ויעיל יותר במחשב כי הוא דורש פחות פקודות מכונה.
אם שזה מספר האותיות באלפבית האנגלי, הביטוי הזה בעצם מתאר צופן הזזה שהוא לא יותר מאשר פונקציית חיבור פשוטה לפי היסט קבוע או משתנה.
זו רק דרך אחת להציג את אותו הצופן.
אם למשל המפתח קבוע נניח מתקבל צופן קיסר.
גם אם משלבים את שתי השיטות חיבור וכפל יחד, למשל אם נתונים שני מפתחות ומבצעים:
עדיין הצופן אינו מספק ביטחון ראוי במונחים של ימינו ואינו עונה להגדרה הרביעית של צופן סימטרי בטוח תחת המודלים המתוארים.
הסיבות לכך הן, ראשית מספר ההיסטים או ההזזות מוגבל לכמות האותיות באלפבית, מספר זה נמוך מאוד בסטנדרטים של ימינו, למחשב ביתי ייקח מספר מילי שניות לחשב את כל האפשרויות.
מלבד זאת, היות שכל אות מוצפנת בנפרד ללא תלות באחרות, שכיחות האותיות לפי אופי השפה שבה נכתב הטקסט הגלוי נשמר בחלקו גם בטקסט המוצפן, מה שמאפשר ניתוח תדירויות על מנת לחשוף את המפתח תוך שימוש בכלים סטטיסטיים.
דרך מהירה יותר מחיבור במחשב היא XOR המסומן כאן באמצעות .
העדפת אופרטור זה על פני אופרטורים אחרים כמו AND או OR שגם הם יעילים במחשב, נובעת מהעובדה שמלבד היותו יעיל הוא מכיל את התכונה החשובה שהוא משמר את אקראיות התוצאה גם אם רק אחד משני האופרנדים אקראי.
שיטה זו נחשבת להצפנה הסימטרית המהירה ביותר והיא בטוחה כל עוד המפתח קשה לניחוש.
אם המפתח נבחר באקראי והוא באורך המסר ונוצל רק פעם אחת מתקבל פנקס חד-פעמי.
פנקס חד-פעמי נחשב מושלם מהיבט תאורטי אם משתמשים בו נכון, אף על פי שהוא מכיל מספר חסרונות.
אבל הבעיה העיקרית שבו היא שהוא אינו פרקטי כיוון שיש להכין פנקס חדש המכיל מספרים אקראיים בכמות מספקת בכל פעם שצריכים להצפין משהו ובימינו שצריך להצפין כמויות עצומות של מידע הדבר פשוט בלתי אפשרי.
מצד שני אפשר להתפשר על מחולל פסאודו-אקראי קריפטוגרפי "שמותח" גרעין אקראי אמיתי קצר שהוא המפתח הסודי במקרה זה, למחרוזת פסאודו-אקראית ארוכה לפי הצורך ולהשתמש בה במקום בפנקס החד-פעמי כדי להצפין את המסר.
כאן מוותרים על סודיות מושלמת בתמורה ליעילות כיוון שהמחרוזת הזו אינה באמת אקראית כי היא נוצרה באמצעות אלגוריתם דטרמיניסטי.
קיים קשר הדוק בין מחוללים פסאודו-אקראיים לבין צפנים סימטריים.
אף על פי שלא ניתנה הוכחה פורמלית לכך שמחולל פסאודו-אקראי קיים (מוכח באופן תאורטי) קיימים כיום מועמדים טובים שחלקם שרדו את מבחן הזמן.
קיימות שתי שיטות עיקריות לבניית מחולל פסאודו-אקראי הממחישות היטב את הקונפליקט הקיים בקריפטוגרפיה בין ביטחון ליעילות.
השיטה הראשונה היא שיטת אד הוק המכילה אוסף של פעולות ערבוב מסובכות המותאמות היטב לביצוע יעיל במחשב ואשר נראה על פניו שקשה "להתיר" או "לפרום" אותן.
אך דווקא הצפנים המודרניים הנפוצים ביותר בראשם AES הם לא יותר מאשר אוסף פעולות אד הוק שאינן מוכחות תאורטית ובכל זאת דומה שמעשית בשטח הן מספקות את המטרה ולמרות קריפטואנליזה אינטנסיבית במשך שנים רבות לא נמצאו דרכים יעילות לפצח אותן.
השיטה השנייה היא שימוש בפונקציה המבוססת על בעיה מתמטית ידועה היטב כבעיה קשה שאין לה פתרון יעיל (אם כי אין הוכחה שלא קיים פתרון כזה).
ישנן כמה שיטות כאלו כמו מחולל BBS המבוסס על בעיית פירוק לגורמים, אך המכנה משותף שלהן הוא שהן אינן מעשיות ולכן לא משתמשים בהן כיום.
יתרונותיה של מערכת הצפנה סימטרית הם יעילותה וכוח המחשוב הזעום הדרוש ליישומה.
להשגת ביצועים מרביים, מרבית האלגוריתמים הסימטריים ניתנים ליישום בחומרה על גבי שבבים ייעודיים.
אחד ההיבטים החשובים בהערכת טיב אלגוריתם סימטרי, היא יכולת היישום בחומרה.
על כן שמים דגש על פשטות ושימוש במספר מוגבל של פעולות אריתמטיות בסיסיות כדי לחסוך בזמן עיבוד יקר.
בגרסאות ממוטבות, משתמשים בטבלאות איחזור (lookup table) במקום פעולות מתמטיות מורכבות, מה שמאפשר ביצועים טובים יותר.
למשל אפשר ליישם את AES באמצעות טבלה אחת בגודל 4 קילובייט.
לעומת זאת, מערכת א-סימטרית בדרך כלל מיישמת אריתמטיקה מודולרית במספרים בסדר גודל של אלפי ספרות והיא צורכת זמן עיבוד יקר ועל כן איטית ביותר.
אפשר לומר שמערכת סימטרית מהירה יותר ממערכת א-סימטרית בפקטור של 10 לפחות.
החסרון העיקרי בצופן סימטרי היא העובדה שאם פונקציית ההצפנה דטרמיניסטית הרי שמתקבלים בלוקים מוצפנים זהים בכל פעם שמצפינים בלוקים קריאים זהים עם אותו מפתח.
עובדה זו כשלעצמה עלולה להוות חיסרון כי מעט מידע נחשף לעיני המתקיף, דבר שרצוי למנוע.
ישנן דרכים לעקוף בעיה זו על חשבון יעילות שיטות אילו נקראות מצבי הפעלה.
חיסרון נוסף של הצפנה סימטרית הוא העובדה שהטקסט המוצפן אינו מאומת.
כלומר אין דרך למקבל לדעת אם לא נעשה שינוי כלשהו בטקסט המוצפן במהלך ההעברה אם בגלל תקלת תקשורת או בגלל שינוי זדוני שנעשה על ידי המתקיף על מנת לשבור את מערכת ההצפנה.
מסיבה זו רצוי להוסיף שיטת אימות שתספק למקבל ערובה שהמידע שהתקבל אותנטי.
מערכות הצפנה מודרניות משתמשות בשילוב של כלים האמורים כדי להבטיח סודיות ואותנטיות כאחד.
ניתן לחלק את הצפנים סימטריים לשני סוגים עיקריים:
צופן בלוקים (Block cipher) אלגוריתם המכיל פרמוטציה קבועה, ללא זיכרון, שמקבל מחרוזת סמלים מתוך האלפבית וממירם לרצף אחר של סמלים מאותו אלפבית, בדרך שנקבעת לפי מפתח ההצפנה.
מייצג את אורך הסמל או רצף הסמלים ונקרא "בלוק".
כל מפתח מניב תמורה אחרת מתוך כל התמורות האפשריות באורך .
לדוגמה בצופן AES הבלוק באורך 128 סיביות ומפתח באורך לפחות 128 סיביות.
משום כך האלפבית שלו מכיל תמורות אפשריות בהתאם למספר המפתחות האפשריים.
אף על פי שסך כל התמורות האפשריות הוא כיוון שגודל הבלוק גם הוא 128 סיביות.
צופן זרם (Stream cipher) אלגוריתם עם זיכרון פנימי (נקרא גם "מצב פנימי"), שמקבל רצף סמלים בזה אחר זה ומצפין אותם באמצעות מפתח הצפנה לרצף סמלים אחר מאותו אלפבית, עם טרנספורמציה המשתנה במהלך ההצפנה בהתאם לתוצאת הצפנה קודמת.
בצופן זרם הסמלים יכולים להיות בגודל סיבית אחת, בית אחד או מילה אחת.
בחומרה העדיפות היא לסיביות, בתוכנה העדיפות היא למילים בנות 32 או 64 סיביות קרוב ככל האפשר לגבולות המילה של המחשב עליו מתבצעת ההצפנה.
בדרך כלל צופן זרם מהיר יותר מצופן בלוקים ומתאים במיוחד בתקשורת אלחוטית או כאשר אורך המידע המיועד להצפנה לא ידוע מראש.
ההצפנה הקלאסית נקראת סימטרית כיוון שמפתח ההצפנה ומפתח הפענוח זהים.
אולם מלבד החיסרון שבעובדה שהמפתח הסודי חייב להיות משותף לשולח ולמקבל, ההצפנה בוצעה על בלוקים קטנים והמפתח בדרך כלל היה קצר וקל לניחוש, מה שאפשר ניתוח סטטיסטי.
שילוב של החלפה מוסיף שיכול או ערבוב (Confusion) לצופן ואילו שילוב טרנספוזיציה (העתקה או הזזה) מוסיף פיזור (Diffusion) לצופן.
הערבוב נועד לטשטש את הקשר שבין המפתח והצופן ככל האפשר ואילו פיזור נועד לסדר מחדש את סיביות הצופן כך שיתירות המסר המקורי לא תזלוג לצופן.
צופן בלוקים לעומת צופן זרם
לאור העובדה שאפשר להפעיל צופן בלוקים בכל אחד ממצבי ההפעלה המדמים צופן זרם כמו OFB או CTR, עולה השאלה מה עדיף צופן בלוקים או צופן זרם?
היתרונות של צופן זרם הם בפשטות ויעילות.
צופן זרם מהיר בערך פי שניים מצופן בלוקים, אך למעט מקרים קיצוניים כמו חומרה מוגבלת משאבים, זה לא מהווה יתרון משמעותי.
מאידך צופן זרם מוכר פחות טוב מצופן בלוקים שלו היסטוריה עשירה.
בעוד שקיים מבחר של צפני בלוקים הנחשבים לבטוחים ויעילים, צפני זרם נוטים להיות חלשים יותר, נשברים בתדירות גבוהה יותר והאמון בהם חלש.
הבדל נוסף נובע מרגישות צפני זרם לשימוש לא ראוי.
ידוע ששימוש בזרם פסאודו-אקראי פעמיים להצפנת נתונים שונים מביא לשבירה מוחלטת של הצופן, עובדה שנוצלה לא אחת כדי לשבור מערכות הצפנה.
צופן בלוקים אינו רגיש לבעיה זו.
אפשר לייצר עם צופן בלוקים רצפים פסאודו-אקראיים בלתי תלויים בכל אורך רצוי.
עם המצאת תקן ההצפנה הישן ההצפנה הסימטרית עברה מהפך משמעותי משיטות פרימיטיביות המכילות אוסף פעולות אד הוק מסובכות ככל האפשר שמסתמכות בעיקר על גאונות הממציא לשיטות הצפנה מודרניות המסתמכות על תאוריה מוצקה.
לאחר המצאת DES המחקר האינטנסיבי הוביל לתאוריה רחבת היקף ונעשו מאמצים להוכיח ביטחון שיטות ההצפנה במונחים תאורטיים באמצעות מודל אסימפטוטי או מודל אורקל אקראי.
DES ולוציפר שהיה אב קדמון שלו הכילו כמה רעיונות מהפכניים לאותה עת.
לראשונה הומצא צופן סימטרי שהיה מבוסס על תאוריה מסוימת בעיקר על עבודתו של קלוד שאנון אבי תורת האינפורמציה.
אחד החידושים בצופן זה היה רשת פייסטל על שם הממציא הורסט פייסטל.
הרעיון של רשת פייסטל הוא הפיכת פונקציה פסאודו אקראית גנרית בלתי הפיכה ותלויית מפתח סודי לפרמוטציה כלומר לפונקציה הפיכה שזהו תנאי הכרחי בצופן סימטרי.
חלק נכבד מהצפנים המודרניים מיישמים טכניקה זו.
היתרון הוא שפעולות ההצפנה והפענוח זהות לגמרי ורק פרוצדורת הרחבת המפתח בסדר הפוך.
בדרך זו המקום שתופס קוד הצופן קטן בחצי, שזה משמעותי במיוחד במימוש בחומרה.
חידוש נוסף שהוכנס בצופן הוא שילוב של מספר פונקציות חלשות כשלעצמן באופן שמניב פונקציית הצפנה חזקה יותר על ידי מה שנקרא איטרציה, כלומר פונקציית ההצפנה מבוצעת באופן איטרטיבי, בכל קריאה הפלט מהקריאה הקודמת הופך קלט לקריאה הבאה, כך מספר פעמים עד שמגיעים לתוצאה הסופית של הצופן.
בדרך זו משיגים את אפקט כדור השלג הרצוי.
כל שינוי ולו הקל ביותר בטקסט המקורי מתפזר על פני לפחות מחצית מפלט הצופן לאחר מספר קטן של חזרות.
למשל ב-DES פעולות הצופן מבוצעות 16 פעמים.
תקן ההצפנה המתקדם שהומצא בשנת 2000 ונמצא בשימוש נרחב כיום, נחשב לצופן מודרני בטוח ברמה הגבוהה ביותר.
הצופן מיישם רשת החלפה-תמורה ומשלב מספר פעולות אריתמטיות בסיסיות בשדה סופי מורחב והוא נחשב ליעיל מאוד בהשוואה לתקן הקודם.
דוגמאות לפעולות שניתן לשלבן כדי להגיע לצופן סימטרי חזק:
תיבות תמורה Permutation Box (בקיצור P-box); הן אוסף פונקציות טרנספוזיציה או שיכול, שרק משנות את מיקומן של סיביות הקלט באמצעות פונקציות תמורה קבועה או משתנה.
הפונקציות ניתנות לייצוג כטבלת תמורה.
הפונקציות טובות להשגת אפקט פיזור (diffusion) ולכן מתאימות רק בשילוב עם תיבות החלפה או פעולות אי-ליניאריות אחרות.
תיבות החלפה Substitution Box (בקיצור S-box); הן אוסף פונקציות החלפה לא ליניאריות המיוצגות על ידי טבלאות סטטיות או תלויות מפתח.
הוצגו לראשונה בצופן לוציפר של הורסט פייסטל ולמעשה הן הפונקציות האי-ליניאריות היחידות בצופן DES, בלעדיהן הצופן היה קל לשבירה.
אם ערכיהן נבחרו בקפידה הן טובות במיוחד לסיכול התקפה דיפרנציאלית.
טרנספורמציה ליניארית עם פעולות אריתמטיות בסיסיות על סיביות כמו AND, XOR ושילוב שלהן.
פעולת XOR ידועה בכך שהיא משמרת אקראיות (חיבור XOR של הקלט עם ערך אקראי יפיק תוצאה אקראית, ראה פנקס חד פעמי), פעולה זו מכונה לעיתים גם הלבנה.
הזזה מעגלית (cyclic shift או rotation); הזזת סיביות ימינה או שמאלה כך שהסיביות הנפלטות מצד אחד מוחזרות מהצד השני.
פעולות אלגבריות בפולינומים מעל שדות סופיים כגון .
כאשר פעולות כפל מבוצעות מודולו פולינום פרימיטיבי בעל משקל בינארי נמוך.
בצופן AES נעשה שימוש נרחב בפעולות מסוג זה.
כפל מטריצות, שהן מיפוי ליניארי מעל וקטורים.
הכפלה במטריצה בדרך כלל נעשית עם פולינום פרימיטיבי מתאים.
למשל מטריצה המתאימה במיוחד להצפנה נקראת MDS קיצור של maximum distance separable בה נעשה שימוש בצופן Twofish.
אריתמטיקה מודולרית; פעולות חיבור וכפל בחבורות מודולו .
בטיחות כל צופן תלויה במפתח ההצפנה.
ככל שהמפתח ארוך יותר ואקראי יותר כן מושגת בטיחות גבוהה יותר.
אולם כיוון שבדרך כלל זה לא מעשי להכין מפתח ארוך, צפנים סימטריים משלבים פונקציית הרחבת מפתח.
מטרת הפונקציה היא ליצור מפתח ארוך מתוך גרעין התחלתי קצר וסודי שהוא בעצם מפתח ההצפנה.
הפונקציה מתפקדת בעיקרון כמחולל מספרים אקראיים.
צפנים סימטריים רבים מתבססים על מחולל מספרים אקראיים כמקור להפקת מפתח באורך הרצוי.
בשל ההיסטוריה הארוכה והעשירה של הצפנים הסימטריים הצטבר ידע נרחב וקיימות שיטות קריפטואנליזה או "התקפות" רבות.
ההתקפות על צופן סימטרי מתחלקות למספר מודלים שהעיקריים שבהם מהקל אל הכבד הם;התקפת מוצפן-ידוע (known-ciphertext).
ברשות המנתח או מתקיף הצופן טקסט-מוצפן בלבד שהושג באמצעות ציתות פסיבי לערוץ התקשורת, אותו הוא מעוניין לפענח.
מלבד זאת אין ברשות המתקיף כל מידע נוסף שעשוי לסייע לו.
ברשות המתקיף כמות מסוימת של טקסט מוצפן והטקסט הגלוי המתאים לו.
זה אפשרי כאשר המתקיף יודע מראש לגבי מידע מסוים מה הוצפן כמו כותרת של התקשרות שמכילה נתונים קבועים שאינם סודיים.
באמצעות מידע זה הוא מנסה לפענח חלק אחר של הטקסט שהוצפן עם אותו מפתח סודי, או לגלות את מפתח ההצפנה עצמו.
בנוסף, נניח שהמתקיף יכול להערים על מפעיל הצופן ולבקש ממנו הצפנה של טקסט גלוי לפי בחירתו (והטקסט המוצפן המתאים יימסר לו).
מהיבט תאורטי מודל זה מיוצג על ידי אורקל וההנחה היא שהאורקל יודע מהו מפתח ההצפנה ואינו חושף אותו לעיני המתקיף אך מוכן להצפין ולמסור לו כל טקסט גלוי שיבקש, המתקיף מנסה להיעזר עם מידע זה כדי לפענח את הטקסט המוצפן אותו הוא מעוניין.
זהו המודל החזק ביותר שבו ביכולתו של המתקיף לבקש פענוח של כל טקסט-מוצפן אחר מלבד הטקסט המוצפן אותו הוא מתקיף ועם מידע זה הוא מנסה לחשוף את הטקסט המותקף.
אף על פי שעל פניו נראה שמודל זה תאורטי בלבד, האפשרות שהמתקיף יוכל לבקש זוגות טקסט-גלוי וטקסט-מוצפן כאסטרטגיה לשבירת הצופן אפשרית בעולם האמיתי במקרים מסוימים.
ברשות המתקיף טקסטים-מוצפנים שהוצפנו עם מפתחות הצפנה שונים אך קשורים זה לזה בקשר מתמטי כלשהו, כגון מפתח אחד הוא תוצאה של חיבור ערך כלשהו עם מפתח השני.
המטרה של המתקיף היא לגלות האם הקשר בין המפתחות משפיע באופן כלשהו על הטקסטים המוצפנים שקיבל.
באופן כללי בכל המודלים האמורים שבירת הצופן תקרא מוצלחת אם המתקיף מסוגל להבחין בין טקסטים מוצפנים שהוצפנו על ידי האלגוריתם אותו הוא מעוניין לשבור לבין מחרוזות אקראית סתמיות באותו אורך.
עובדה זו מצביעה על אקראיות ירודה ובדרך כלל עם מידע זה יש אפשרות לשבור את הצופן ולכן במקרה כזה הוא מוגדר כפרוץ.
לסוג כזה של התקפה קוראים התקפת הבחנה, מסיבה זו כל צופן טוב חייב להכיל את התכונה שנקראת "אי יכולת הבחנה" (indistinguishability) והיא מתוארת בצורת משחק המנוהל בין המתקיף לבין האורקל.
הגרסאות השונות של המודלים המתוארים נבדלות ביכולת המתקיף או במילים אחרות ברמת הגישה שלו לאורקל.
למשל במשחק הבסיסי המתקיף שולח לאורקל מספר מוגבל של בלוקים קריאים של טקסט כלשהו לפי בחירתו.
האורקל בוחר מפתח הצפנה סודי ומטיל מטבע, בכל הטלת מטבע הוא בוחר בין אחת משתי אפשרויות, באחת הוא מחזיר למתקיף טקסט מוצפן שהוא תוצאת הצפנה של הבלוק שקיבל ובשנייה הוא מחזיר מחרוזת אקראית אמיתית.
אם לאחר קבלת כל הבלוקים "המוצפנים" מהאורקל ביכולתו של המתקיף להכריע לגבי כל בלוק שקיבל האם הוא הצפנה של הבלוק המקורי המתאים ששלח קודם לכן או שהוא ערך אקראי חסר משמעות, בהסתברות גבוהה באופן משמעותי מחצי הרי שההתקפה הצליחה והצופן לא יהיה בטוח לשימוש.
הצפנים הקלאסיים סבלו בעיקר מהתקפות סטטיסטיות המנצלות את יתירות השפה לשבירתן.
הצפנה מודרנית אינה סובלת מחסרון זה עקב העובדה שנעשה שימוש ביחידות מידע גדולות (128 סיביות ומעלה) כך שמספר הצירופים האפשרי אסטרונומי, עובדה המאלצת את המתקיף לנתח כמות עצומה של טקסטים.
מלבד זאת קיימות שיטות לביטול יתירות הצופן כמו הוספת אקראיות מכוונת.
הצפנה סימטרית מודרנית רגישה באופן כללי לקריפטואנליזה דיפרנציאלית וקריפטואנליזה ליניארית, שתיהן שיטות התקפה רבות עוצמה כנגד סוגים רבים של צפנים סימטריים.
מלבד פנקס חד-פעמי, לא ידוע על אלגוריתם בלתי שביר.
כל אלגוריתם ניתן לשבירה עם די זמן וכוח חישוב.
השאיפה העיקרית היא ששבירת הצופן לא תהיה קלה במידה ניכרת מכוח גס דהיינו ניסיון לנחש את המפתח הסודי על ידי ניסוי כל המפתחות האפשריים.
להלן פירוט השיטות העיקריות להתקפת צפנים סימטריים:
שיטות קריפטואנליטיותכוח גס (Brute Force): ניסוי של לפחות מחצית מטווח המפתחות האפשריים במקרה הממוצע עד למציאת המפתח שאיתו נעשה שימוש.
סיבוכיותה אינה מעשית ברוב המקרים, אולם עם מספיק זמן וכוח חישוב מובטחת בסופו של דבר תוצאה.
למעשה ההוכחה שאלגוריתם מסוים ניתן לשבירה אך ורק באמצעות כח גס מהווה הוכחת איכות, כיוון שניתן לשלוט במידת בטיחותו על ידי בחירה מושכלת של גודל המפתח בסיביות.
לשם המחשה, כוח גס כנגד צופן DES מצריך סריקה של לפחות מפתחות במקרה הממוצע.
עד 1998 שבירת צופן DES הייתה אפשרית רק על ידי חומרה ייעודית שעלותה יקרה ונמשכה בדרך כלל מספר ימים.
ב-2008 פרסמה חברת שרת ייעודי יחיד עם חומרה מותאמת, בעל תפוקה של 26 מיליארד מפתחות בשנייה, המסוגל לפרוץ את DES בפחות מיום אחד.
ניתן ליישם כח גס גם באמצעות חישוב מבוזר, גיוס זמן בטלה של מעבדים על בסיס התנדבותי, הזמין כיום באמצעות רשת האינטרנט.
ב-1999 נפרץ DES ב-23 שעות בלבד באמצעות 100,000 מחשבים ביתיים.קריפטאנליזה ליניארית: שיטת שבירת צופן המיוחסת לקריפטוגרף היפני מיצורו מצואי.
בשיטה זו ניתן לפצח את DES עם טקסטים מוצפנים שמקורם ידוע.
קריפטאנליזה ליניארית היא התקפת גלוי ידוע, המתמקדת בחיפוש אחר קירובים ליניאריים היעילים ביותר המתאימים למספר ספציפי של סבבים בצופן המותקף, עם שיעור הצלחה גבוה מחצי, תוך ניצול חולשות בתיבות ההחלפה (S-box) של האלגוריתם.
כל ביטוי כזה מאפשר לחלץ סיבית מפתח אחת באמצעות תהליך הסתברותי של חיפוש התאמות בכמות גדולה של טקסט מוצפן ומקור ידועים ובסופו של תהליך ניחוש המפתח כולו.
אף על פי שזהו שיפור משמעותי לעומת כח גס, השיטה אינה יעילה עבור מחשב ממוצע בהתחשב בכמות הטקסט הדרושה.קריפטאנליזה דיפרנציאלית: הומצאה על ידי אלי ביהם ועדי שמיר (מכון ויצמן למדע 1980).
שיטה רבת עוצמה לניתוח אלגוריתמים סימטריים מכל סוג כמעט, בה נבחנת מידת ההשפעה של הבדלים בקלט על פלט הצופן.
בשיטה זו ניתן לפצח את DES ב- ניסיונות, אף בלא ידיעת מקור הצופן.
בשיטה זו נפרצו ב-1989 וב-1991 כל וריאציות צופן FEAL.
הוכח גם שגרסאות מתקדמות יותר של האלגוריתם FEAL-N וכן FEAL-NX שפותחו עקב כך ניתנות לשבירה (עד 31 סבבים) בפחות מהזמן הדרוש לכוח גס.
ובכך הקיץ הקץ על האלגוריתם.
ממציאי אלגוריתם DES היו מודעים לאנליזה דיפרנציאלית עוד בשנת 1970, אולם שמרו ידיעה זו בסוד מטעמים של ביטחון לאומי.
הסברה היא, כי ממציאי האלגוריתם לא פרסמו מלכתחילה את שיקולי העיצוב שהנחו אותם בבניית האלגוריתם, מן הסיבה שלאחר התייעצות עם NSA הוחלט כי פרסום חומר זה עשוי לחשוף את האנליזה הדיפרנציאלית, שלמעשה הקנתה לארצות הברית עליונות על פני מדינות אחרות בתחום ההצפנה באותה עת.
בעבר נטו מפתחי אלגוריתמים קריפטוגרפיים לשמור בסוד את פרטי האלגוריתם.
אולם כיום מקובל לאמץ את עקרון קרקהופס הקובע ששמירת אלגוריתם הצפנה בסוד אינה מהווה חלופה לביטחונו.
באנלוגיה למנעול צירופים, הסתמכות אך ורק על מנגנון נעילה סודי, אינה חכמה כיוון שאם נחשף המנגנון המנעול כולו הופך לחסר תועלת.
מאידך אם התגלה צירוף סודי אחד, יש צורך רק להחליפו באחר ואין צורך בקניית מנעול חדש.
גם בעת המודרנית הוכרזו מספר אלגוריתמי הצפנה כסודיים.
אלגוריתם Skipjack שפותח על ידי NSA נשמר בסוד עד 1998. צופן זרם RC4 היה סוד מסחרי כשהומצא ב-1987 על ידי רונלד ריבסט במעבדות RSA.
אולם בדרך כלשהי הצליח מישהו להנדס לאחור את האלגוריתם ופרטיו דלפו באופן אנונימי לרשת האינטרנט והפכו במהרה לנחלת הכלל.
בקריפטוגרפיה מודרנית, אלגוריתמים מוצלחים הם כאלו שזכו לביקורת הציבור, במיוחד לעיון מדוקדק של פרטיהם בידי אנליסטים ומומחי הצפנה מסביב לעולם.
אלגוריתם AES הוא דוגמה טובה לאלגוריתם שנבחר בקפידה מבין מספר מועמדים טובים, לאחר תחרות פתוחה שאורגנה על ידי NIST שנמשכה כמספר שנים ובה נבחנו מועמדים רבים על ידי מספר מומחים מסביב לעולם.
אחת לפרק זמן מפרסמת הקהילה הקריפטוגרפית ממצאים חדשים שהתגלו על ידי אנליסטים, מומחי אבטחת מידע ומתכנני מערכות לגבי טיבם וחוסנם של אלגוריתמים נפוצים ובעיקר כאלו שזכו להיות חלק מתקן רשמי.
הביקורת המתמדת מספקת לציבור סוג של ביטחון בכך שהאלגוריתמים הפופולריים שהדיעה הרווחת לגביהם שהם בטוחים ונעשה בהם שימוש מאסיבי, הם אכן כאלה וכן שלא התגלו בהם דלתות סתרים או פרצות.
למעשה, הדעה הרווחת היא שמרבית האלגוריתמים הידועים שזכו לביקורת ובדיקה של מומחים והוגדרו כבטוחים, אכן בטוחים.
הסיבה שמערכות רבות נפרצו לא נבעה מליקויים באלגוריתמים שעליהם התבססו, אלא בשל כשלים או שגיאות אנוש באופן יישום אותם אלגוריתמים, שנבעו בין היתר מבורות, רשלנות או אי הקפדה על נוהלי בטיחות.
יותר קל להשיג מידע באמצעות ציתות, מתן שוחד או גנבת מפתחות מאשר לפרוץ אלגוריתם.
במערכת אבטחה, צריך לוודא שהמערכת אינה חדירה או מדליפה מידע עקיף המסכן את בטיחותה.
בגרסת WAP (פרוטוקול אבטחה סלולרי) המקורית לדוגמה, התגלתה פרצה בטיחותית חמורה שנבעה מאופן יישום אלגוריתם RC4 וגרמה לדליפת מידע שאפשר לפרוץ את המערכת בקלות.
בכל צופן סימטרי השולח והמקבל חייבים לשתף מפתח הצפנה סודי ביניהם.
חשיפת המפתח על ידי גורם זר תאפשר לו לפענח את כל המסרים שהוצפנו עם מפתח זה.
הקושי בשמירת המפתח בסוד והעברתו מהשולח למקבל, נקרא בעיית תחזוקת מפתחות או בעיית הפצת מפתחות.
הבעיה מחריפה ברשת מרובת משתמשים.
אם כל משתמש מעוניין שתהיה לו יכולת להתקשר עם משתמש אחר באופן דיסקרטי, מספר המפתחות הסודיים שיהיה עליו לשתף יהיה גדול מאוד.
לדוגמה ברשת של 15 משתתפים, כל אחד יזדקק לשמור בסוד לפחות 14 מפתחות ומספר המפתחות הכולל מגיע ל-210. ברשת של אלפי משתמשים הדבר הופך כמעט לבלתי אפשרי.
בנוסף, כל משתמש יצטרך להגן על סודיות המפתחות שברשותו, אם באמצעים קריפטוגרפיים או אחרים.
המפנה העיקרי בפתרון הבעיה החל למעשה עם המצאת ההצפנה האסימטרית.
כאשר לראשונה העלו דיפי והלמן רעיון של העברת מפתח-סימטרי בצורה מאובטחת בתשתית גלויה, תוך שימוש בבעיית לוגריתם דיסקרטי, כאמצעי אלגנטי להסתרת תהליך ההעברה.
באופן זה המשתמשים אינם זקוקים לשמירת מפתחות הצפנה רבים.
כל שעליהם לעשות הוא להקצות מפתח פומבי לכל משתמש, אותו מאחסנים במקום ציבורי.
כאשר בוב מעוניין להתקשר עם אליס בסודיות, עליו להשיג את מפתח ההצפנה הפומבי של אליס מתוך הרשימה הציבורית, לייצר מפתח הצפנה סימטרי חד-פעמי''' ולשולחו לאליס מוצפן במפתח הציבורי שלה.
כעת אליס ובוב משתפים מפתח הצפנה סודי באופן שאף אחד אחר לא יכול היה ליירטו כיוון שהיה מוצפן בזמן המשלוח.
במרוצת השנים פותחו שיטות שונות להתמודד עם בעיית הפצת מפתחות.
חלקן מבוססות על הצפנה סימטרית כמו פרוטוקול קרברוס, ואחרות על הצפנה א-סימטרית כמו דיפי-הלמן, או כאלו המשלבות את שתי השיטות יחד.
הרעיון בחלקן הוא להסתמך על שרת צד-שלישי נאמן.
בחלקן השרת מקוון באופן כזה שלפני כל התקשרות נעשית פניה אליו ובחלקן לא.
צד-שלישי נאמן פוטר את המשתמשים מהצורך לשמור מפתחות רבים בכך שהוא מייצר ושולח מפתח שיחה חד-פעמי, המתאים להתקשרות יחידה בין משתמש ושרת או בין משתמשים מרוחקים.
חתימה דיגיטלית נפוצה גם כן בפרוטוקולי העברת מפתח.
ייחודה של חתימה דיגיטלית שהיא יוצרת חיבור מוכח (מתמטית) בין ישות מסוימת לבין מפתח-פומבי שבבעלותה, שיכול לשמש להעברת מפתח שיחה חד-פעמי לצורך הצפנה סימטרית.
בנוסף, חתימה דיגיטלית אינה דורשת פנייה לשרת מקוון בכל התקשרות.
בדרך כלל נעשית פניה אחת לגורם מאשר המאמת את מפתח החתימה שלאחר מכן יכול לשמש למספר רב של התקשרויות.
שילוב בין השיטות (הצפנה סימטרית וא-סימטרית) נפוץ מעשית ומכונה מערכת היברידית (Hybrid), מערכת המבצעת "הכלאה" של השיטות השונות ומנצלת את יתרונותיהן.
שיטת הצפנה אסימטרית כמו RSA טובה להעברת מפתח סודי חד-פעמי בתקשורת גלויה ואילו להצפנה עצמה, אלגוריתם הצפנה סימטרי כמו AES עדיף בשל מהירותו הרבה.
דוגמאות למערכת כזו הן PGP ו-SSL.
בקריפטוגרפיה, צופן זרם הוא סוג של צופן סימטרי שמצפין זרם באורך משתנה של יחידות מידע (המיוצגות על ידי סיביות, בתים או מילים), תוך שימוש בטרנספורמציה המייצרת מפתח לפי 'מצב פנימי' (internal state) של הצופן.
צופן זרם מתפקד כמו מחולל פסאודו-אקראי ש'מותח' את מפתח ההצפנה המסופק על ידי המשתמש ומייצר ממנו זרם מפתח פסאודו-אקראי כאורך הקלט המיועד להצפנה.
לקבלת הטקסט המוצפן זרם המפתח מחובר עם הקלט הקריא בחיבור בינארי (XOR) או בפעולה אחרת ובלבד שתהיה הפיכה.
ההבחנה העיקרית בין צופן זרם לצופן בלוקים היא אופן יצירת מפתח ההצפנה.
בהגדרת צופן זרם מתכוונים למחולל הפנימי (keystream generator) המייצר זרם-המפתח פסאודו-אקראי.
המחולל מתבסס על זיכרון פנימי ופועל בצורה של פעימות (clocking), מסיבה זו אומרים שלצופן זרם יש 'זיכרון', זאת בניגוד לצופן בלוקים שכאשר הוא מופעל בצורה ישירה, אינו מכיל זיכרון כלל.
למשל AES מצפין בלוק בגודל 128 סיביות באמצעות פונקציה קבועה שאינה עושה שימוש במידע מהצפנה קודמת.
צופן זרם הוא פרימיטיב קריפטוגרפי (כלי בסיסי) ואינו מהווה כשלעצמו מערכת הצפנה שלמה.
אם צופן זרם מיושם בחומרה הוא מהיר מאוד, מנצל מעגלים פשוטים וקלים לתפעול ותחזוקה, לכן מתאים במיוחד להתקני תקשורת בהם הזיכרון מוגבל או כאשר יש צורך בהצפנה ושידור של מנות מידע קטנות בכל פעם או כאשר אורך המידע אינו ידוע מראש.
לצופן זרם יתרון מסוים במקרים בהם כשל בשידור עלול להתרחש בתדירות גבוהה כגון בתקשורת אלחוטית.
צפני זרם ישנים פעלו בעיקר על סיביות ויועדו לחומרה.
צפני זרם מודרניים מותאמים בחלקם גם לתוכנה תוך ניצול יכולות המעבד המודרני להשגת ביצועים גבוהים, תוך התחשבות בגבולות מילה.
הם קיימים מזה שנים רבות ושימשו בתקשורת אלחוטית במיוחד למטרות צבאיות.
כבר במלחמת העולם הראשונה יושמו צפני זרם במכונות פרימיטיביות מבוססות רוטור.
המכונה הגרמנית לורנץ ששימשה את הצבא הגרמני במלחמת העולם השנייה לתקשורת מאובטחת פעלה על עיקרון צופן זרם שכונה בפי מומחי ההצפנה הבריטיים בבלצ'לי פארק בשם "FISH".
צבאות בעלות הברית השתמשו אף הן באופן נרחב בצופן זרם לתקשורת.
חלק ממכונות ההצפנה הפרימיטיביות שיישמו צפני זרם בזמן המלחמה היו טובות ולעיתים רק אי מילוי הוראות ביטחון גרמו לפרצות שהקלו על מנתחי הצפנים בפיצוחן.
בעבר רבים מצפני הזרם נחשבו לסודות צבאיים ולכן קיים מטבע הדברים תיעוד דל יחסית אודותם.
כיום קיים מגוון רחב של צפני זרם מודרניים המתאימים להצפנה מאסיבית הן בחומרה והן בתוכנה.
RC4 הוא דוגמה לצופן זרם מודרני המיועד לתוכנה והיה בשימוש נרחב מאז המצאתו למרות שכיום אינו מומלץ לשימוש.
צופן זרם באופן הבסיסי ביותר פשוט מאוד.
זרם-הנתונים מחובר בדרך כלל בחיבור בינארי מודולו 2 (XOR) סיבית אחר סיבית עם זרם-מפתח סודי וחד פעמי.
ביטחון הצופן תלוי במידת אקראיות זרם המפתח.
עיקר העבודה היא יצירת זרם המפתח שאמור להיות קשה לניחוש.
הדוגמה הקלאסית לצופן זרם נקראת One-time pad (פנקס חד פעמי), הרעיון מבוסס על צופן ורנם המוגדר מעל אלפבית בינארי כדלהלן: עבור התו ה- במסר בצע: .
אם זרם המפתח מיוצר באופן אקראי (אמיתי), ללא תלות במסר כלל וכן אם אורך המפתח זהה לאורך המסר, אזי צופן זה מוגדר כצופן מושלם והוא בטוח לחלוטין.
עובדה שהוכחה מתמטית על ידי קלוד שנון.
אולם בשל הקושי המעשי שבהכנה מוקדמת של זרם מפתח אקראי ארוך, צופני זרם מסתייעים במחולל אקראי מובנה, המייצר זרם-מפתח פסבדו-אקראי באורך זרם הנתונים, מתוך מפתח קצר יותר כגון 128 סיביות.
אולם כתוצאה מכך, ביטחונו אינו מושלם כפנקס חד-פעמי, מאחר שזרם המפתח אינו באמת אקראי.
כיוון שביטחון הצופן תלויה באקראיות זרם המפתח, יש קשר הדוק בין צופן זרם למספרים אקראיים.
כמו בפנקס חד-פעמי, שיטת ההצפנה של צפני זרם מחייבת משנה זהירות למרות תכונותיהם הטובות.
אין להצפין בשום אופן טקסט שונה (או זרם נתונים אחר) עם אותו מפתח.
אם במקרה הוצפנו שני טקסטים עם אותו מפתח הצפנה, XOR של שניהם יבטל למעשה את השפעת המפתח ויותיר את הטקסטים הלא מוצפנים כשהם מחוברים ב-XOR.
כל מה שנותר הוא להפרידם זה מזה וההצפנה נפרצה לחלוטין.
מלבד זאת צפני זרם רגישים במיוחד להתקפות סטטיסטיות המתמקדות בתכונות האקראיות של המחולל (במיוחד כאשר חלק קטן מהמסר המקורי ידוע למתקיף) וכן התקפת קורלציה.
מבנה צופן זרם ניתן להצגה כמכונת מצבים (FSM) עם מצב פנימי (IS) ופונקציית עדכון (UF).
מבחינה קריפטוגרפית חוזקו של כל צופן זרם מבוסס על הממצאים של קלוד שאנון בנוגע לביטחון פנקס חד-פעמי.
צופן זרם טיפוסי מקבל מפתח סודי ווקטור אתחול ומייצר זרם מפתח ארוך הנקרא גם רצף פסאודו-אקראי.
כל צופן זרם הפועל מעל אלפבית מייצר את הרצף המכיל סמלים: , מתוך אותו אלפבית:
זרם המפתח מחובר עם הטקסט המיועד להצפנה וממנו נוצר טקסט מוצפן, שלב זה של הצופן דומה לפנקס חד-פעמי.
הפונקציה המחברת את הטקסט הקריא עם זרם המפתח היא בדרך כלל פעולת XOR פשוטה של הטקסט המקורי עם המפתח סמל אחר סמל.
זאת משום שהיא פעולה הופכית של עצמה.
בפענוח כל מה שנדרש לעשות זה לחזור בדיוק על אותה פעולה עם הפרמטרים המתאימים.
למעשה אפשר לבחור בפעולה מתמטית אחרת, העיקר שתהיה לה פעולה הופכית כך שהטקסט המוצפן ניתן יהיה לשחזור.
בפענוח מפעילים את הפונקציה ההופכית.
אילו היה זרם המפתח אקראי לגמרי הצופן יהיה בלתי ניתן לשבירה.
אולם מצב כזה יכול לקרות רק אם זרם המפתח אקראי אמיתי.
למעשה צופן זרם מנסה לדמות ככל האפשר זרם אקראי תוך שימוש בגרעין ההתחלתי הסודי .
אפשר לחלק את מרבית צפני הזרם לשתי קטגוריות עיקריות: צופן זרם סינכרוני וצופן זרם א-סינכרוני, אף על פי שקיימות פרדיגמות אחרות.
למשל Helix שייך לקטגוריה אחרת.
מבנה כללי של צופן זרם סינכרוני (באנגלית Synchronous Stream Cipher) המסומן בקיצור SSC, כמתואר בתרשים משמאל, מורכב ממכונת מצבים (אוטומט סופי) ופונקציית עדכון.
מקבל מפתח סודי וייתכן גם ערך התחלתי כלשהו ומפיק זרם מפתח באופן בלתי תלוי בטקסט המקורי או בטקסט המוצפן.
מצב פנימי המייצג את תכולת הזיכרון הפנימי של הצופן בזמן .
כאשר הוא מונה המייצג את פעימות הצופן.
פונקציית אתחול Init שאיתה מאתחלים את המצב הפנימי המיוצג על ידי הסמל בזמן .
פונקציית עדכון האחראית לעדכון המצב הפנימי של מכונת המצבים FSM בהתאם לערכו של המפתח .
זרם מפתח פונקציה שהפלט שלה בזמן הוא סמל אחד מהאלפבית שהוא פונקציה של המצב הפנימי וייתכן גם מפתח ההצפנה .
פונקציית פלט שתפקידה לחבר את הטקסט הקריא המיועד להצפנה עם זרם המפתח לקבלת טקסט מוצפן.
בכל פעימה הפונקציה מקבלת את הסמל הבא מתוך הטקסט הקריא ומחזירה את הסמל הבא של הטקסט המוצפן: .
הפונקציה יכולה להיות פשוט חיבור XOR שהוא הופכי של עצמו ולכן הוא זהה בהצפנה ובפענוח.
החלק המייצר את זרם המפתח נקרא "מחולל זרם מפתח" בקיצור KSG והוא זהה לחלוטין בשני הצדדים בצד השולח ובצד המקבל.
הדרישה היחידה היא שפונקציית הפלט תהיה הפיכה כמו במקרה של XOR.
צופן זרם סינכרוני כשמו, סובל מבעיה מהותית של סינכרוניזציה כאשר יש שיבושים בתקשורת.
אם סמל אחד אבד או נוסף במהלך השידור כל הסמלים הבאים אחריו יפוענחו בצורה שגויה מכיוון שאבד הרצף בין זרם המפתח לבין הטקסט המוצפן.
בעיה זו ניתנת לפתרון בדרך מאוד פשוטה.
מחלקים את הטקסט המקורי למקטעים בגודל קבוע הקרויים פריים (frame) או חלונית ומוסיפים "סיביות סינכרון" ביניהם.
הטקסט המקורי מוצפן פריים אחר פריים כשכל פריים מקבל מספר סידורי.
לאחר כל פריים מבצעים אתחול מפתח הצפנה ווקטור אתחול שיכול להיות פונקציה מוסכמת של מספר הפריים.
כך מתגברים באופן עקיף על בעיית הסינכרון.
לסיכום: צופן זרם סינכרוני בדרך כלל מכיל פריים וערך אתחול:
פריים בלוק טקסט קריא באורך קבוע לפי פרמטר שנקבע מראש.
לו נוספת פרוצדורת סינכרון כדי למנוע אובדן מידע בזמן השידור.
ערך אתחול פרמטר ציבורי שנועד לאתחול ההצפנה, ערכו יכול להיות כל ערך קבוע מראש או פונקציה מסוימת של מספר הפריים, אך אסור להצפין עם אותו ערך שני פריימים שונים עבור מפתח נתון.
אולם הכנת מפתח חדש כרוכה בתהליך שגוזל זמן עיבוד, לכן חלופה טובה יותר היא שימוש בווקטור אתחול, שינוי של וקטור האתחול לעיתים קרובות קל יותר ואינו דורש הכנה מוקדמת.
כך שאפשר להשתמש עם אותו מפתח אך התוצאה תהיה שונה כי הפריים מוצפן עם מפתח שהוא פונקציה של המפתח הקבוע והערך ההתחלתי שונה עבור כל פריים.
דוגמה טובה לצופן זרם סינכרוני היא צופן A5/1 להלן ששימש בעבר להצפנת שיחות GSM.
אורך הפריים היה 228 סיביות ווקטור האתחול נגזר ישירות ממספר הפריים.
צופן זרם בעל סינכרון עצמי (באנגלית Self-Synchronizing Stream Cipher) או צופן זרם א-סינכרוני המסומן בקיצור SSSC פותר את בעיית הסינכרון בדרך אחרת.
בצופן זרם בעל סינכרון עצמי זרם המפתח הוא פונקציה של המפתח הסודי ומספר מוגבל של סמלים מהטקסט המוצפן שהופקו עד כה.
המצב הפנימי של הצופן ניתן לשחזור באופן מלא בעזרת מספר סמלים קודמים של הטקסט המוצפן, לכן כאשר המקבל מנסה לפענח את הטקסט המוצפן, אם חסר סמל או נוסף סמל כתוצאה משיבושים בשידור, הדבר ישפיע רק על מספר מוגבל של סמלים, לאחריהם הסינכרון יחודש מעצמו והטקסט המוצפן יהיה לאחר מכן תקין.
בניסוח פורמלי, כמתואר בתרשים משמאל, ההבדל בין צופן זרם זה לצופן זרם סינכרוני הוא שהסמל הבא של זרם המפתח הוא תוצאה של הפונקציה .
כאשר מייצג את מספר הסמלים שהפונקציה צריכה לקבל מתוך הטקסט המוצפן שהתקבל עד כה, כדי לייצר את הסמל החדש.
יחסית צפני זרם מסוג זה נפוצים פחות.
הבולטים שבהם הם מצב הפעלה CFB של צופן בלוקים הפועל למעשה כצופן זרם בעל סינכרון עצמי וכן SSS ו-Moustique.
למעשה צופן זרם סינכרוני פירושו לא יותר מאשר מחולל מספרים פסאודו אקראיים או בקיצור PRNG.
תוצאת המחולל היא זרם המפתח המשמש להצפנה.
מודל טיפוסי של צופן זרם סינכרוני מתואר בתרשים משמאל.
המבנה הפנימי של המחולל פועל בנפרד וללא תלות במפתח, הטקסט המוצפן או המקורי.
מפתח ההצפנה שמסופק על ידי המשתמש נחוץ רק להתנעת התהליך.
לאחר האתחול כאשר המחולל כבר נכנס לעבודה אין צורך יותר במפתח.
מחולל פסאודו-אקראי הוא למעשה ניסיון לדמות מחולל אקראי אמיתי.
זהו אלגוריתם דטרמיניסטי (מסיבה זו הוא אינו באמת אקראי), שמנסה לייצר רצף של סמלים מתוך האלפבית באופן שייראה על פניו כאקראי למתבונן מהצד שאינו יודע מהו הגרעין ההתחלתי.
בניגוד למחולל אקראי אמיתי פלט PRNG תלוי בערכים ההתחלתיים.
כלומר בהינתן אותו גרעין התחלתי הרצף שהוא ייצר יהיה זהה לחלוטין.
מבחינה פרקטית פיתוח מחולל פסאודו-אקראי אינו דבר קל.
מחולל טוב צריך להכיל את התכונות הבאות:
היות שהמחולל פועל כמכונת מצבים, הוא מכיל מספר סופי של מצבים ולכן בשלב כלשהו הוא יחזור על עצמו, כלומר יפיק רצף מספרים זהה לרצף שהופק בעבר ובמעין מעגל אין סופי.
למעגל זה קוראים מחזוריות, וביטחון המחולל תלוי באורך המחזוריות.
הסמלים שהמחולל מפיק צריכים להיות בהתפלגות אחידה, כלומר עבור מחרוזת בינארית ההסתברות לקבל אחד או אפס צריכה להיות 1/2. יתרה מזו ההתפלגות של רצף סיביות צריכה להיות אחידה גם היא.
בנוסף כל צירוף ליניארי של סיביות הפלט צריך להיות בהתפלגות אחידה.
קיים מגוון מבחנים שמטרתם היא בדיקת טיב האקראיות של רצף נתון בהשוואה לרצף אקראי אמיתי.
דרך ותיקה וקלה להכין מחולל פסאודו-אקראי בעיקר בחומרה אך גם בתוכנה היא בעזרת אוגר זיזה ממושב Feedback shift register, במיוחד הגרסה הליניארית שנקראת LFSR.
הסיבות לשימוש ב-LFSR הן: נוחות יישום בחומרה, מחזוריות גבוהה, תכונות אקראיות טובות וקלות ניתוח ובדיקה בעזרת טכניקות אלגבריות.
מחולל LFSR הוא מעגל אלקטרוני המתנהג כאוטומט סופי, שמייצר זרם סיביות באורך מוגדר, הנראה לעין כאקראי.
אוגר הזזה LFSR פשוט מורכב ממספר שלבים או יחידות, שכל אחד מהם מסוגל לאחסן סיבית אחת בלבד, לקלוט סיבית אחת ולפלוט סיבית אחת.
מעל שלבים אלו שולטת יחידת בקרה, או שעון עצר.
ובכל מחזור זמן מתבצעים המהלכים הבאים:
תכולת השלב התחתון (הסיבית הנמוכה), מהווה חלק מזרם הפלט.
תכולת כל השלבים מוזזת כלפי מטה שלב אחד (Shift).
כל שלב מעביר את תכולתו לשלב הבא אחריו.
והתכולה החדשה של השלב העליון, היא סיבית ההזנה המחושבת בעזרת פעולה ליניארית כלשהי, כמו חיבור בינארי מודולו 2 (XOR) של תכולת מספר קבוע של שלבים קודמים, לא בהכרח עוקבים.
סוג אחר Nonlinear Feedback shift register הגרסה הלא ליניארית של המחולל, דומה לקודמת מלבד זאת שבכל מחזור זמן, תכולת השלב העליון היא תוצאה של מה שקרוי Feedback function, פונקציה בוליאנית לא-ליניארית, המקבלת כקלט מספר קבוע של שלבים קודמים, לא בהכרח עוקבים ומחזירה סיבית אחת.
יישומי צופן זרם באמצעות LFSR
כיוון ש-LFSR ליניארי במהותו, הוא קל לניתוח ולבדיקה.
ישנם אלגוריתמים לבדיקת מחזוריות, סיבוכיות ליניארית ונתונים סטטיסטיים אחרים אודות המחולל.
בשל כך לא נהוג להשתמש בזרם LFSR יחיד כמפתח הצפנה.
זאת כדי למנוע התקפה על הצופן כאשר חלק מזרם הנתונים ידוע מראש.
ביישומים מעשיים צופן זרם מסתמך גם על פונקציה לא ליניארית כלשהי, או משלב כמה יחידות LFSR בקומבינציה לא ליניארית, באופן כזה שמסיר את ליניאריות המחולל.
למשל אפשר לעצור זמנית פעולת יחידת LFSR אחת, על פי תוצאת יחידת LFSR אחרת.
דהיינו במקרה שתוצאת היחידה הראשונה היא אפס, פלט המחולל יהיה חזרה על מצב קודם של ה-LFSR הראשון.
שיטה אחרת הנקראת Shrinking Generator מיישמת מחוללי LFSR באופן כזה: אם תוצאת יחידה אחת היא "1" תוצאת היחידה השנייה תהווה חלק מפלט המחולל, אם התוצאה היא "0" מתעלמים מתוצאת היחידה השנייה.
כלומר אף סיבית אינה נפלטת.
כתוצאה מכך פלט המחולל מתכווץ (ומכאן שמו).
שיטה זו יושמה בצופן זרם המכונה FISH, אך סובלת מפגיעות למתקפת תזמון, כיוון שקצב התקדמות היחידה הראשונה תלוי בסיביות "1" של היחידה השנייה.
ישנן שלוש שיטות ידועות ליישום LFSR בצופן זרם: