צופן סימטרי
מתוך ויקיפדיה, האנציקלופדיה החופשית
צופן סימטרי או הצפנה סימטרית הוא אלגוריתם הצפנה שבו נעשה שימוש במפתח אחד גם להצפנה וגם לפענוח. ליתר דיוק בידיעת מפתח ההצפנה e אפשר להפיק את מפתח הפענוח d בשיטה ידועה מוסכמת על שני הצדדים. אם d = e אזי אומרים שמפתח הפענוח זהה למפתח ההצפנה. בשל כך מכונה שיטה זו "סימטרית", בניגוד למערכת הצפנה "א-סימטרית" שבה מפתח ההצפנה שונה ממפתח הפענוח ובטיחותה מסתמכת על הקושי שבחישוב מפתח הפענוח מתוך מפתח ההצפנה.
בהגדרה הבסיסית להצפנה סימטרית, אין חובה ש-d = e כלומר שמפתח הפענוח זהה למפתח ההצפנה, אלא רק שמפתח הפענוח d ניתן לחילוץ בקלות מתוך e. אולם כאמור, חובה על שני הצדדים המצפין והמקבל, להחזיק באותו מפתח הצפנה. המצפין חייב להעביר את מפתח ההצפנה הסודי שבו השתמש כדי להצפין את המסר, למקבל הצופן על מנת שיוכל לפענח את המסר נכון.
צופן סימטרי קיים בקריפטוגרפיה מראשית ימיה. הצופנים הקלאסיים מוגדרים כהצפנה סימטרית. לדוגמה: צופן החלפה כגון צופן קיסר, צופן ויז'נר ופנקס חד-פעמי הנם צופנים סימטריים כאשר d = e, כלומר ההצפנה והפענוח נעשים באמצעות אותו מפתח בדיוק. לעומתם אלגוריתם DES הוא דוגמה לצופן סימטרי שבו מפתח הפענוח שונה ממפתח ההצפנה ולמרות זאת מכונה הצפנה סימטרית, מאחר וכל שנדרש הוא ידיעת מפתח ההצפנה. כאשר מפתח ההצפנה ידוע תהליך הפקת מפתח הפענוח הוא פעולה קלה.
תוכן עניינים |
[עריכה] צופנים סימטריים מודרניים
ניתן לחלק את הצופנים סימטריים לשני סוגים עיקריים:
כאשר צופן בלוקים (גושים) מצפין גושי מידע גדולים (לפחות 64 סיביות) בבת אחת וגם במקביל, בעוד שצופן זרם מצפין יחידות מידע קטנות (בדרך כלל סיביות) בזה אחר זה. אלגוריתם AES הוא צופן בלוקים שאושר על ידי NIST כתקן הצפנה רשמי בארצות הברית.
הצפנה סימטרית מודרנית החלה ברעיון של הורסט פיסטל, קריפטוגרף ומתמטיקאי של יבמ שפיתח את צופן פיסטל וצופן לוציפר בראשית 1970. הרעיונות ששילב פיסטל בצופן שלו מהווים אבני יסוד לכל צופן סימטרי מודרני. צופן פיסטל הנו צופן סימטרי המיישם מה שקרוי רשת פיסטל שהוא שילוב מספר פונקציות הצפנה חלשות כגון צופן החלפה וצופן טרנספוזיציה יחדיו, כדי לקבל צופן סימטרי רב עוצמה. שילוב של החלפה מוסיף "בלבול" (Confusion) לצופן ואילו שילוב טרנספוזיציה (העתקה או הזזה) מוסיף "פיזור" (Diffusion) לצופן. הבלבול נועד לטשטש את הקשר שבין המפתח והצופן ככל האפשר ואילו פיזור נועד לסדר מחדש את סיביות הצופן כך שיתירות המסר המקורי לא תזלוג לצופן. בנוסף הכניס פיסטל לראשונה את רעיון השזירה שמוסיפה חוסן רב לצופן, המסר מחולק לשני חצאים צד ימין ושמאל, ההצפנה מתבצעת במספר סבבים, כאשר בכל סבב מופעלות פונקציות ההצפנה המשולבות, על צד ימין ועל צד שמאל לסרוגין, כלומר פלט צד ימין הופך לקלט צד שמאל וחוזר חלילה. רעיונות אלו היוו מקור השראה לאלגוריתם DES שהומצא מאוחר יותר.
דוגמאות לפעולות אלגבריות פשוטות שניתן לשלבן כדי להגיע לצופן סימטרי חזק:
- ערבוב סיביות בעזרת מה שקרוי תיבות תמורה (Permutation) בקיצור P-box.
- פונקציות לא לינאריות או תיבות החלפה בקיצור S-box.
- פעולות לינאריות כמו XOR הזזה (Shift) הזזה מחזורית (Rotate) וכדומה.
בטיחות כל צופן תלויה במפתח ההצפנה. ככל שהמפתח ארוך יותר ואקראי יותר כן מושגת בטיחות גבוהה יותר. אולם כיוון שבדרך כלל זה לא מעשי להכין מפתח ארוך, צופנים סימטריים משלבים פונקציית הרחבת מפתח כלשהי. מטרת הפונקציה היא ליצור מפתח ארוך מתוך גרעין התחלתי קצר וסודי שהוא בעצם מפתח ההצפנה. הפונקציה מתפקדת בעיקרון כמחולל מספרים אקראיים. צופנים סימטריים רבים מתבססים על מחולל מספרים אקראיים כמקור להפקת מפתח באורך הרצוי. דוגמאות לצופנים סימטריים הם: DES, AES, Twofish, RC4, IDEA.
[עריכה] יתרונות
יתרונותיה של מערכת הצפנה סימטרית הם כמובן, יעילותה הקריפטוגרפית (מפתח הצפנה באורך של 128 סיביות באלגוריתם טוב הנו מספק) ובכוח המחשוב הזעום הדרוש ליישומה, לעומת הצפנה אסימטרית. מרבית האלגוריתמים הסימטריים ניתנים ליישום גם בחומרה על גבי שבבים ייעודיים להשגת ביצועים מרביים. אחד ההיבטים החשובים בהערכת טיב אלגוריתם סימטרי, היא יכולת היישום בחומרה. על כן שמים דגש על פשטות ושימוש במספר מוגבל של פעולות אריתמטיות בסיסיות כדי לחסוך בזמן עיבוד יקר. בגרסאות ממוטבות, משתמשים בטבלאות חיפוש (lookup table) במקום פעולות מתמטיות מורכבות, מה שמשפר ביצועים עוד יותר. לעומת זאת, מערכת א-סימטרית בדרך כלל מיישמת אריתמטיקה מודולרית במספרים בסדר גודל של אלפי ספרות, צורכת זמן עיבוד יקר ועל כן איטית ביותר. אפשר לומר שמערכת סימטרית מהירה יותר ממערכת א-סימטרית בפקטור של 10 לפחות.
[עריכה] התקפות כנגד צופן סימטרי
בשל ההיסטוריה הארוכה של צופנים סימטריים, קיימות שיטות התקפה רבות כנגדם בעיקר התקפות בהן לתוקף ידוע מקור הצופן וכן התקפות בהן התוקף מסוגל לבחור את הטקסט להצפנה כדי לסייע בהתקפה. הצופנים הקלאסיים סבלו בעיקר מהתקפות סטטיסטיות המנצלות את יתירות השפה כדרך לפיצוח הצופן. הצפנה מודרנית אינה סובלת מחסרון זה אולם רגישה באופן כללי לקרפיטאנליזה דיפרנציאלית וקריפטאנליזה לינארית, שתיהן שיטות התקפה רבות עוצמה כנגד סוגים רבים של צופנים סימטריים.
[עריכה] בעיית העברת מפתח
צופנים סימטריים סובלים בדרך כלל מבעיה בהעברת המפתח. זהו עניין רגיש כיוון שנגישות למפתח מצד גורם שלישי תאפשר לו לפענח את כל המסרים. מאחר ובטיחות מערכת כזו תלויה כל כולה בסודיות המפתח, הצורך בהעברת ובשמירת המפתח בסוד לאורך זמן הופכת לבעיה קשה. בעיה זו מכנים בעיית העברת מפתח (key distribution problem). הבעיה מחריפה עוד יותר כאשר מדובר ברשת משתמשים, שבה כל משתמש מעוניין שתהיה לו היכולת להתקשר עם כל משתמש באופן דיסקרטי, מבלי שאף אחד אחר יוכל להאזין. לדוגמה ברשת של 15 משתתפים, כל אחד מהם יזדקק לשמור בסוד לפחות 14 מפתחות, מספר המפתחות הכולל מגיע ל-100 בקירוב. ברשת של אלפי משתמשים הדבר הופך כמעט לבלתי אפשרי.
המפנה העיקרי בתחום זה החל למעשה עם המצאת ההצפנה האסימטרית. כאשר לראשונה העלו דיפי והלמן רעיון של העברת מפתח-סימטרי בצורה מאובטחת בתשתית גלויה, תוך שימוש בבעיית לוגריתם דיסקרטי, כאמצעי אלגנטי להסתרת תהליך ההעברה. במרוצת השנים פותחו שיטות רבות להתמודדות עם בעיה זו. מהן המבוססות על הצפנה סימטרית, מהן המבוססות על מערכת א-סימטרית כמו דיפי-הלמן וכן כאלו המשלבות את שתי השיטות יחד.
הרעיון של חלק משיטות העברת-מפתח מסתמך על שרת צד-שלישי נאמן, בחלקן השרת מקוון באופן כזה שלפני כל התקשרות נעשית פניה לשרת ובחלקן לא. צד-שלישי נאמן פוטר את המשתמשים מהצורך לשמור מפתחות רבים בכך שהוא מייצר ושולח מפתח שיחה חד-פעמי, המתאים להתקשרות יחידה בין משתמש ושרת או בין משתמשים מרוחקים. חתימה דיגיטלית נפוצה גם כן בפרוטוקולי העברת מפתח. ייחודה של חתימה דיגיטלית שהיא יוצרת חיבור מוכח (מתמטית) בין ישות מסוימת לבין מפתח-פומבי שבבעלותה, שיכול לשמש להעברת מפתח שיחה חד-פעמי לצורך הצפנה סימטרית. בנוסף, חתימה דיגיטלית אינה דורשת פנייה לשרת מקוון בכל התקשרות. בדרך כלל נעשית פניה אחת לגורם מאשר המאמת את מפתח החתימה שלאחר מכן יכול לשמש למספר רב של התקשרויות.
שילוב בין השיטות (הצפנה סימטרית וא-סימטרית) נפוץ מעשית ומכונה מערכת היברידית (Hybrid) מערכת המבצעת "הכלאה" של השיטות השונות ומנצלת את יתרונותיהן. שיטת הצפנה אסימטרית כמו RSA טובה להעברת מפתח סודי חד-פעמי בתקשורת גלויה ואילו להצפנה עצמה, אלגוריתם הצפנה סימטרי כמו AES עדיף בשל מהירותו הרבה. דוגמאות למערכת כזו הן PGP ו-SSL.