הצפנה סימטרית היא שיטה בה משתמשים במפתח אחד כדי להצפין ולפענח הודעות. המפתח הזה חייב להישאר סודי ולשמש את השולח והמקבל באותה מידה. ההצפנה ממירה טקסט גלוי לטקסט מוצפן שאינו קריא, והפענוח מחזיר את הטקסט המקורי באמצעות אותו מפתח.
דוגמה קלאסית היא צופן החלפה מסוג ויז'נר. בגרסה פשוטה מחלקים את הטקסט לחבורות (למשל חמש אותיות) ומחליפים אותיות לפי מפתח מחזורי. כדי לפענח יש להשתמש בתמורה ההופכית של המפתח ולבצע את ההחלפות בסדר ההפוך. שיטה זו ממחישה את הצורך בסודיות המפתח אך אינה בטוחה לפי סטנדרטים מודרניים.
הצפנה סימטרית קיימת מראשית הקריפטוגרפיה. צפנים קלאסיים כמו צופן קיסר או ויז'נר הם סימטריים. במאה ה-20 הוכנסו צופנים מודרניים כמו DES, שאחריו AES. הרעיונות של קלוד שאנון והמבנה של פייסטל היוו בסיס למה שהפך לצפנים חזקים יותר.
מערכת סימטרית מוגדרת על ידי שלושה חלקים: יצירת מפתח (Gen), הצפנה (Enc) ופענוח (Dec). Gen מייצר מפתח סודי. Enc מקבל מפתח וטקסט גלוי ומפיק טקסט מוצפן. Dec מקבל טקסט מוצפן ואת אותו מפתח ומשחזר את הטקסט הגלוי. כדי שהמערכת תהיה תקינה חייב להתקיים Dec_k(Enc_k(m)) = m לכל מפתח m תקין.
לפני הצפנה מקודדים את המידע ליחידות בסיסיות כמו סיביות, בתים או בלוקים. רבים מהצפנים עובדים עם בלוקים בגודל קבוע, ומה שנקרא "בלוק" מעובד ביחידה אחת. קידוד מוסכם חשוב כדי ששולח ומקבל יבינו זה את זה.
אורך המפתח קובע רבות את הביטחון. כיום מקובל שאורך 128 סיביות מספק ביטחון ראוי במצבים רבים. עיקרון קרקהופס אומר שהבטחון צריך להסתמך על סודיות המפתח, לא על סודיות האלגוריתם. מערכת טובה צריכה להיות קלה לשימוש כשיש את המפתח, אך קשה מאוד לשבור ללא המפתח, גם אם יש למתקיף דוגמאות של טקסטים מוצפנים וגלויים.
יש שני סוגי יסוד: צופן בלוקים וצופן זרם. צופן בלוקים מצפין בלוקים של נתונים ביחידות קבועות. צופן זרם יוצר רצף של סיביות או בתים ומצפין סימל סימל. צופן זרם מהיר וקל, אך רגיש לשימוש לא נכון. צופן בלוקים נפוץ ומוכר כבטוח יותר.
צופן זרם מהיר יותר בדרך כלל. עם זאת, צופני זרם נפוצים כשיש סיכונים של שימוש חוזר במפתח פסאודו-אקראי. צופן בלוקים ניתן להפעיל במצבים שמדמים צופן זרם, ולכן הבחירה תלויה בצורך ובסביבה.
הדגש היום הוא על אלגוריתמים שנבדקו על ידי הקהילה. AES הוא דוגמה לצופן מודרני חזק ויעיל. רעיונות כמו רשת החלפה-תמורה (substitution-permutation) ואיטרציה, בהם משלבים הרבה סבבים של פעולות פשוטות, משפרים את הביטחון על ידי ערבוב ופיזור של המידע.
קיימות שיטות רבות לניתוח ושבירת צופנים. מודלים תקפים שונים מניחים כי המתקיף יכול לקבל דוגמאות של טקסטים מוצפנים, אפשרויות בחירה של טקסטים גלויים ועוד. תכונה חשובה היא אי-יכולת הבחנה: המתקיף לא צריך להבדיל בין טקסט מוצפן לבין מחרוזת אקראית באותו אורך.
היום מקובל לפרסם אלגוריתמים ולתת לקהילה לבדוק אותם. ביטחון צריך להישען על סודיות המפתח בלבד. ביקורת ציבורית רצינית מחזקת את האמון באלגוריתמים מוצלחים.
רבים מהמקרים בהם מערכות נפרצו נובעים מיישום לקוי, טעויות ניהול מפתחות או כשלים פרקטיים ולא מחולשה אלגוריתמית. לכן חשוב לקבוע נהלים נכונים לשמירת המפתחות והיישום.
שיתוף מפתח סודי בין משתתפים הוא בעיה מרכזית. פתרונות כוללים שימוש בהצפנה א-סימטרית, פרוטוקולים כמו דיפי-הלמן, או שרתים מאומתים. במערכות מעשיות נהוגים פתרונות היברידיים: משתמשים בהצפנה א-סימטרית להעברת מפתח סימטרי חד-פעמי, ואז מוצפנים הנתונים בפועל באמצעות הצפנה סימטרית מהירה.
לסיכום, הצפנה סימטרית היא מהירה ויעילה, אבל דורשת ניהול מפתחות נכון. השילוב עם טכניקות נוספות והבדיקה הציבורית של אלגוריתמים מבטיח שימוש בטוח יותר.
הצפנה סימטרית היא שיטה לשמור סוד בה משתמשים במפתח אחד. המפתח הוא מחרוזת סודית שאותו יודעים השולח והמקבל.
נניח שמחליפים אותיות לפי מפתח מחזורי. מחלקים את המשפט לחמש אותיות ומחליפים כל אות לפי המפתח. מי שיודע את המפתח יכול להחזיר את המשפט המקורי.
לפני שנים השתמשו בצופנים פשוטים כמו צופן קיסר. היום משתמשים בצופנים מודרניים יותר, למשל AES. הם חזקים יותר כי עובדים על יחידות מידע גדולות.
יש שלושה חלקים עיקריים: יצירת מפתח שמייצרים אקראית, הצפנה שעושה את ההסתרה, ופענוח שמחזיר את ההודעה. כולם משתמשים באותו המפתח.
במחשבים המידע מקודד בביטים. מקודדים את הטקסט לפני ההצפנה. לפעמים מצפינים בלוקים של נתונים ביחד.
מפתח ארוך וקשה לניחוש מקנה יותר ביטחון. כלל חשוב אומר שהאלגוריתם יכול להיות ידוע לכולם, החלק הסודי הוא המפתח בלבד.
יש צופן בלוקים שמצפין חלקים גדולים ביחד. יש צופן זרם שמצפין סימל סימל. כל אחד מתאים למצב שונה.
צריך דרך להחליף את המפתח בלי שיפרצו אליו. פתרון אחד הוא להצפין את המפתח בעזרת הצפנה אחרת שמבוססת על מפתחות פומביים. כך שולחים מפתח סימטרי חדש בצורה בטוחה.
הצפנה סימטרית טובה כי מהירה. החיסרון הוא הצורך לשתף ולהגן על המפתח. לכן משתמשים בשיטות נוספות כדי להבטיח שהמידע יישאר פרטי ובטוח.
תגובות גולשים