**מפתח שיחה** (**Session key**) הוא מפתח הצפנה חד-פעמי לשימוש מוגבל בדרך כלל התקשרות יחידה בין משתמש ושרת או משתמשים מרוחקים. מפתח שיחה מופק בדרך כלל בעזרת אלגוריתם כלשהו כגון מחולל מספרים אקראיים, בסמוך למועד השימוש בו ובדרך כלל לא חוזרים להשתמש בו פעמים נוספות. אם המפתח גדול דיו הסיכוי כי מפתח כלשהו יבחר באקראי פעמים נוספות קלוש ביותר. הצורך במפתח שיחה נובע מבעיית הפצת מפתחות הידועה (ראו להלן). מפתח שיחה טיפוסי משמש בדרך כלל להצפנה סימטרית והעברתו למקבל מוגנת באמצעים קריפטוגרפיים, כלומר המפתח מוצפן בעזרת מפתח אחר המכונה KEK (קיצור של Key encryption key) ובשום שלב לא מועבר באופן גלוי לכן אינו חשוף לציתות מצד יריב כלשהו.

בעיית הפצת מפתחות
-----------------

בצופן סימטרי חובה על שני הצדדים, המצפין והמקבל להחזיק באותו מפתח. המצפין צריך להעביר את מפתח ההצפנה הסודי בדרך כלשהי למקבל, על מנת שיוכל לפענח את המסר נכונה. נגישות למפתח ההצפנה מצד גורם שלישי תאפשר לו לפענח את כל המסרים. מאחר שבטיחות מערכת כזו תלויה כל כולה בסודיות המפתח, הצורך בהעברת ובשמירת המפתח בסוד לאורך זמן הופכת לבעיה קשה. בעיה זו מכנים בעיית הפצת מפתחות (key distribution problem). הבעיה מחריפה עוד יותר כאשר מדובר ברשת משתמשים, שבה כל משתמש מעוניין שתהיה לו היכולת להתקשר עם כל משתמש באופן דיסקרטי, מבלי שאף אחד אחר יוכל להאזין. מספר המפתחות שיאלץ להחזיק עולה פלאים. רק לצורך המחשה ברשת של 15 משתתפים, כל אחד מהם יזדקק לשמור בסוד כ-15 מפתחות, מספר המפתחות הכולל מגיע ל-100 בקירוב. ליתר דיוק מספר המפתחות הכולל שנדרש עבור כל רשת של \ n משתמשים הוא {\displaystyle \ n(n-1)/2} מפתחות. ברשת של אלפי משתמשים הדבר הופך כמעט לבלתי אפשרי. 

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

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

לקריאה נוספת
------------

סיימון סינג, **סודות ההצפנה**, הוצאת ידיעות אחרונות, 2003.

| * צ
* ש
* ע
קריפטוגרפיה |
| --- |
| 

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

 |

 |
| 

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

 |

 |
| 

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

 |

 |
| 

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

 |

 |
| 

| צופן זרם |
| --- |
| 
* RC4
* Salsa20
* SOSEMANUK
* Grain
* 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
* סיסמה חד-פעמית

 |

 |
| 

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

 |

 |