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

  

  

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

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

הגדרה פורמלית
-------------

לצורך ההגדרה הפורמלית של סודיות מושלמת יש צורך להגדיר מספר מושגים בסיסיים. אלגוריתם הצפנה מורכב משלושה אלגוריתמים; 

* **אלגוריתם הכנת מפתח Gen** שמפיק מפתח הצפנה {\displaystyle k} מתוך מרחב המפתח {\displaystyle {\mathcal {K}}} באופן הסתברותי בהתפלגות מסוימת, בדרך כלל התפלגות אחידה.
* **אלגוריתם הצפנה Enc** שמקבל כקלט {\displaystyle k\in {\mathcal {K}}} ו-{\displaystyle m\in {\mathcal {M}}}, מצפין את {\displaystyle m} עם המפתח {\displaystyle k} ומחזיר את {\displaystyle c\in {\mathcal {C}}}. באופן פורמלי {\displaystyle c={\text{Enc}}\_{k}(m)}. יש לציין שאלגוריתם ההצפנה יכול להיות הסתברותי במובן שעבור אותו מסר ואותו מפתח יכול להיות פלט שונה בכל הרצה של האלגוריתם. כדי להבדיל בין שני המקרים יש כאלו שמסמנים את ההצפנה ההסתברותית: {\displaystyle c\longleftarrow {\text{Enc}}\_{k}(m)}.
* **אלגוריתם פענוח Dec** הוא אלגוריתם דטרמיניסטי שמקבל את {\displaystyle c\in {\mathcal {C}}} ואת {\displaystyle k\in {\mathcal {K}}} ומחזיר תמיד את {\displaystyle m\in {\mathcal {M}}} שהוצפן עם {\displaystyle k}.

ההנחה היא שהאלגוריתם שלם במובן שתמיד מתקיים {\displaystyle {\text{Dec}}\_{k}(c)=m} בהסתברות 1. במילים אחרות 

{\displaystyle {\text{Dec}}\_{k}({\text{Enc}}\_{k}(m))=m}.

עבור כל מפתח {\displaystyle k\in {\mathcal {K}}} מסמנים את ההסתברות שהמפתח שנבחר על ידי האלגוריתם Gen הוא {\displaystyle k} בביטוי {\displaystyle \Pr[K=k]}. באותו אופן, ההסתברות שטקסט גלוי ספציפי יישלח היא {\displaystyle \Pr[M=m]} וההסתברות שטקסט מוצפן כלשהו יופק על ידי האלגוריתם היא {\displaystyle \Pr[C=c]}. יש לציין ראשית, שהתפלגות הטקסט הגלוי {\displaystyle m} נפרדת ובלתי תלויה בהתפלגות המפתח {\displaystyle k}. יתרה מזו, המפתח נקבע ומשותף לשני הצדדים לפני שנודע מהו הטקסט הגלוי. בנוסף יש לציין שההנחה היא שההתפלגות של {\displaystyle m} ידועה. המתקיף או מנתח הצופן, אינו יודע בוודאות איזה טקסט גלוי יישלח אחרת אין כל טעם בהצפנה. לעומת זאת יש בידו מידע כללי בהסתברות מסוימת לגבי הסיכויים שטקסט מסוים יישלח לעומת טקסט אחר. לדוגמה עשוי להיות מצב שהמתקיף יודע שהטקסט הגלוי **"attack tomorrow"** יישלח בהסתברות של שבעים אחוז לעומת **"don't attack"** בהסתברות של 30 אחוז. לכן {\displaystyle \Pr[M={\text{''attack tomorrow''}}]=0.7} וכן {\displaystyle \Pr[M={\text{''don't attack''}}]=0.3}. ללא הגבלת הכלליות ההנחה היא שההתפלגויות תמיד גדולות מאפס. 

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

**בניסוח פורמלי:** סכימת הצפנה {\displaystyle ({\text{Gen}},{\text{Enc}},{\text{Dec}})} מעל מרחב המסרים {\displaystyle {\mathcal {M}}} תקרא בעלת סודיות מושלמת אם ורק אם עבור כל התפלגות של {\displaystyle {\mathcal {M}}}, כל טקסט גלוי {\displaystyle m\in {\mathcal {M}}} וכל טקסט מוצפן {\displaystyle c\in {\mathcal {C}}} מתקיים:

{\displaystyle {\boldsymbol {\Pr[C=c|M=m]=\Pr[C=c]}}}.

הכוונה היא שההסתברות שיתקבל {\displaystyle c} מסוים בהינתן {\displaystyle m} מסוים שווה להסתברות שיתקבל {\displaystyle c} ללא ידיעת {\displaystyle m}.

**הוכחה:**
נתונה התפלגות מסוימת של {\displaystyle {\mathcal {M}}} ונתונים {\displaystyle m\in {\mathcal {M}}} ו-{\displaystyle c\in {\mathcal {C}}}. אם מכפילים את שני האגפי המשוואה האמורה ב-{\displaystyle \Pr[M=m]/\Pr[C=c]} מתקבל 

{\displaystyle {\frac {\Pr[C=c|M=m]\cdot \Pr[M=m]}{\Pr[C=c]}}=\Pr[M=m]}.

לפי חוק בייס האגף השמאלי שווה בדיוק ל-{\displaystyle \Pr[M=m|C=c]} לכן {\displaystyle \Pr[M=m|C=c]=\Pr[M=m]} ולכן הצופן מושלם. הדברים נכונים גם בכיוון ההפוך.

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

{\displaystyle |{\mathcal {K}}|\geq |{\mathcal {M}}|}.

ההוכחה לכך היא נניח שהתנאי האמור לא מתקיים ו-{\displaystyle |{\mathcal {K}}|<|{\mathcal {M}}|}. יהי {\displaystyle {\mathcal {M}}(c)} קבוצת כל המסרים האפשריים שהם פענוח אפשרי של {\displaystyle c}. כלומר

{\displaystyle {\mathcal {M}}(c){\overset {\underset {\mathrm {def} }{}}{=}}\{{\hat {m}}|{\hat {m}}={\text{Dec}}\_{\hat {k}}(c){\text{ for }}{\hat {k}}\in {\mathcal {K}}\}}

היות שפונקציית הפענוח דטרמיניסטית, עבור כל מסר {\displaystyle {\hat {m}}} קיים לפחות מפתח אחד {\displaystyle {\hat {k}}} כך שמתקיים {\displaystyle {\hat {m}}={\text{Dec}}\_{\hat {k}}(c)} מזה נובע {\displaystyle |{\mathcal {M}}(c)|\leq |{\mathcal {K}}|}. בהנחה ש-{\displaystyle |{\mathcal {K}}|<|{\mathcal {M}}|} נכון בהכרח קיים {\displaystyle m'\in {\mathcal {M}}} שאינו נמנה עם {\displaystyle {\mathcal {M}}(c)}. אבל

{\displaystyle \Pr[M=m'|C=c]=0\neq \Pr[M=m']},

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

משפט שאנון
----------

במאמר המפורסם מ-1949 הניח קלוד שאנון את היסודות לתורת האינפורמציה וההצפנה המודרנית. מהיבט של תורת האינפורמציה, בהינתן סכימת הצפנה {\displaystyle ({\text{Gen}},{\text{Enc}},{\text{Dec}})} מעל מרחב המסרים {\displaystyle {\mathcal {M}}} כך שמתקיים {\displaystyle |{\mathcal {M}}|=|{\mathcal {K}}|=|{\mathcal {C}}|} (כלומר אורכי הקלט, הפלט והמפתח זהים). הצופן יקרא בעל "סודיות מושלמת" אם ורק אם:

1. כל מפתח {\displaystyle k\in {\mathcal {K}}} נבחר על ידי האלגוריתם Gen בהתפלגות {\displaystyle 1/|{\mathcal {K}}|}.
2. עבור כל {\displaystyle m\in {\mathcal {M}}} ועבור כל {\displaystyle c\in {\mathcal {C}}}, קיים מפתח **יחיד** {\displaystyle k} כך שמתקיים {\displaystyle {\text{Dec}}\_{k}(c)=m}.

האינטואיציה מאחורי משפט זה היא, אם הצופן מקיים את התנאי השני אז כל טקסט מוצפן נתון יכול להיות תוצאת הצפנה של כל טקסט גלוי אפשרי. זאת משום שעבור כל טקסט גלוי {\displaystyle m} קיים מפתח {\displaystyle k} שממפה אותו ל-{\displaystyle c}. בשילוב העובדה שמפתח אחד בלבד ממפה את {\displaystyle m} ל-{\displaystyle c} ולפי התנאי הראשון שכל מפתח נבחר בסיכויים שווים אפשר להוכיח שהצופן מושלם כמו בפנקס חד-פעמי. מצד שני אם {\displaystyle |{\mathcal {M}}|=|{\mathcal {K}}|=|{\mathcal {C}}|} אז קיים בהכרח רק מפתח אחד הממפה כל {\displaystyle m} ל-{\displaystyle c}. אחרת, או שקיים {\displaystyle m} שלא ממופה לאף {\displaystyle c} או שקיים {\displaystyle m} שממופה על ידי יותר מ-{\displaystyle k} אחד ל-{\displaystyle c}. מה שמפר את הגדרת הסודיות המושלמת. לכן, בהכרח סיכוייו של כל מפתח להיבחר שווים, אחרת טקסט גלוי כלשהו יהיה בעל הסתברות שונה מהאחרים. מכאן התנאי הראשון.

פנקס חד פעמי
------------

 ערך מורחב – **פנקס חד פעמי**  

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

לשיטה זו שני חסרונות עיקריים:

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

הערות שוליים
------------

1. ↑  Communication Theory of Secrecy Systems
2. ↑  Introduction to Modern Cryptography (2nd edition), Jonathan Katz and Yehuda Lindell

| קריפטוגרפיה |
| --- |
| 

| מושגי יסוד |
| --- |
| פנקס חד-פעמי • צופן בלוקים • צופן בלוקים בר התאמה • צופן זרם • סודיות מושלמת • ביטחון סמנטי • הצפנה סימטרית • הצפנה אסימטרית • חתימה דיגיטלית • הצפנה הומומורפית • הצפנה מרובה • הצפנה מאומתת • הצפנה הסתברותית • סכמת ריפוד אסימטרית אופטימלית • אריזת מפתח הצפנה • סודיות מושלמת קדימה |

 |
| 

| הצפנה קלאסית |
| --- |
| מכונת הצפנה • צופן החלפה • צופן אתב"ש • צופן קיסר • צופן ויז'נר • צופן ורנם • צופן פלייפייר • צופן היל • אולטרה • אניגמה • ציקלומטר • קולוסוס • PURPLE • ג'ייד • מג'יק • צופן שחלוף |

 |
| 

| צופן בלוקים |
| --- |
| לוציפר • AES • 3DES • DES • Threefish • Twofish • Blowfish • FEAL • SEED • CAST • IDEA • RC2 • RC6 • MARS • RC5 • GOST • סרפנט • MISTY • KASUMI • קמליה • ARIA • SAFER • TEA • LEA • CLEFIA • SEA • Hummingbird • PRESENT • KATAN • KeeLoq • Simon & Speck • אנוביס |

 |
| 

| אופני הפעלה |
| --- |
| אופן הפעלה של צופן בלוקים • EAX • OCB • IAPM • CWC mode • GCM • CCM |

 |
| 

| צופן זרם |
| --- |
| RC4 • Salsa20 • SOSEMANUK • גריין • E0 • A5/1 • A5/2 • A5/3 • A5/4 • MICKEY • HC-128 • SNOW • Trivium • Rabbit • ZUC • ChaCha |

 |
| 

| הצפנה אסימטרית |
| --- |
| פרוטוקול דיפי-הלמן • חידות מרקל • חתימת למפורט • הצפנת תרמיל • RSA • הצפנת רבין • חתימה דיגיטלית רבין • צופן אל-גמאל • חתימה דיגיטלית אל-גמאל • DSA • הצפנת בלום-גולדווסר • ECC • הצפנת קריימר-שופ • הצפנת פאיי • הצפנת מקאליס • GGH • NTRU • עקום 25519 • חתימה דיגיטלית של שנור • הצפנת אוקמוטו-אושיאמה |

 |
| 

| פרוטוקולים |
| --- |
| עץ מרקל • פרוטוקול אתגר-מענה • פרוטוקול נידהאם-שרודר • פרוטוקול קרברוס • הוכחה באפס ידע • פרוטוקול פייגה-פיאט-שמיר • העברה עלומה • חלוקת סוד • TLS (SSL) • Secure Shell • MQV • X.509 • פרוטוקול שיתוף מפתח
• מיסור שלא לפרסום • פרוטוקול סיגנל |

 |
| 

| פרימיטיבים תאורטיים |
| --- |
| מחולל פסבדו-אקראי קריפטוגרפי • פונקציה חד-כיוונית • תמורה חד-כיוונית • סיבית קשה • פונקציה פסבדו-אקראית קריפטוגרפית • תמורה פסאודו-אקראית • פונקציית גיבוב קריפטוגרפית • וקטור אתחול • פונקציית ספוג • הצפנה מבוססת סריג |

 |
| 

| קריפטואנליזה |
| --- |
| ניתוח תדירויות • כוח גס • התקפת איזון זמן/זיכרון • תקיפת היפגשות באמצע • קריפטואנליזה ליניארית • קריפטואנליזה דיפרנציאלית • התקפת גלוי-ידוע • התקפת גלוי-נבחר • התקפת מוצפן-נבחר • פירוק לגורמים של מספר שלם • התקפת ערוץ צדדי • התקפת קורלציה • התקפת שיבוש • מודל אורקל אקראי • התקפת התנגשויות |

 |
| 

| בעיות מתמטיות ואלגוריתמים |
| --- |
| בעיית לוגריתם בדיד • תחשיב אינדקסים • נפה ריבועית • אלגוריתם rho של פולרד • נפת שדה מספרים • אלגוריתם רו של פולרד ללוגריתמים • אלגוריתם פוליג-הלמן |

 |
| 

| פונקציות גיבוב קריפטוגרפיות |
| --- |
| SHA • MD5 • MD4 • SHA-1 • SHA-2 • SHA-3 • RIPEMD • Skein • BLAKE • Grøstl • SipHash |

 |
| 

| אימות וזיהוי |
| --- |
| אימות זהות • סיסמה • קוד אימות מסרים • Poly1305 • סיסמה חד-פעמית |

 |
| 

| נושאים נלווים |
| --- |
| מספר אקראי • מספר ראשוני • יתירות • מפתח שיחה • סטגנוגרפיה • הצפנה קוונטית • הצפנה פוסט-קוונטית • עקרון קרקהופס • אבטחת מידע • קריפטוגרפיה ויזואלית • אליס ובוב • מסיבת חתימה על מפתחות ציבוריים • שידור מוצפן • הצפנת דיסקים • הצפנת סף • חתימה דיגיטלית מבוססת פונקציית גיבוב • פונקציה זניחה • רשת פייסטל • רשת החלפה-תמורה • הלבנה • אימות מסרים • חתימה עיוורת • חישוב רב משתתפים בטוח |

 |