קריפטוגרפיה היא תחום במתמטיקה ומדעי המחשב שעוסק בהסתרת מידע ובנייה של פרוטוקולים לעבודה בסביבה פתוחה עם אויב אפשרי.
היא כוללת שיטות להשגת סודיות (שמירה שמסר יישאר חסוי), אימות זהויות (וודאות מי שלח את המידע) והבטחת שלמות (הגנה מפני שינוי במידע).
מערכת קריפטוגרפית משתמשת ברכיבים כמו צופן סימטרי (אלגוריתם שמשתמש באותו מפתח להצפנה ולפענוח), מפתח ציבורי (מפתח פתוח שכול מי שרוצה יכול להשתמש בו), פונקציות גיבוב (שיטה שמייצרת הערך הקצר של מידע), וקוד אימות מסרים.
הצפנה (encryption) היא העברת טקסט קריא למצב בלתי קריא בעזרת מפתח. פענוח (decryption) היא השיבה למצב הקריא עם המפתח המתאים. צופן (cipher) הוא האלגוריתם שעושה זאת, וטקסט גלוי (plaintext) הוא ההודעה המקורית.
סטגנוגרפיה היא שיטות להסתיר קיום המסר, שלא תלויות במפתח.
הצפנה קיימת מאז עת העתיקה. המהפכה הגדולה הגיעה עם מחשבים ומכונות כמו האניגמה במאה ה-20. בשנות ה-70 נוצרו נקודות מפנה חשובות: תקן DES לפרקטיקה והמצאת RSA להצפנה אסימטרית. מאז פותחו שיטות סימטריות ואסימטריות רבות.
בצופן סימטרי משתמשים באותו מפתח להצפנה ולפענוח. יתרונו הוא יעילות ומהירות, וחסרונו הוא בעיית הפצת המפתחות: איך להעביר את המפתח לבטוח למקבל.
אלגוריתם AES הוא כיום התקן הנפוץ והבטוח לשימוש סימטרי. DES הוא דוגמה היסטורית, שעם הזמן נחות מבחינה ביטחונית.
כדי לפתור את בעיית ההפצה משתמשים בשיטות מעורבות: מעבירים מפתח זמני מוצפן בשיטה אסימטרית ואז משתמשים בצופן סימטרי מהיר לתקשורת.
פנקס חד-פעמי (one-time pad) הוא שיטת הצפנה שמעניקה סודיות מושלמת אם המפתח אקראי לחלוטין, באורך המסר, ונעשה בו שימוש פעם אחת בלבד. השיטה בטוחה תיאורטית אך בלתי פרקטית במרבית המקרים בגלל קושי בייצור והעברה של מפתחות ארוכים ואקראיים.
הצפנה אסימטרית משתמשת בזוג מפתחות: מפתח פרטי שנשמר בסוד ומפתח ציבורי שזמין לכל. כל אחד יכול להצפין עם המפתח הציבורי, ורק בעל המפתח הפרטי יכול לפענח.
רעיון זה של דיפי והלמן ו-RSA פתר חלק גדול מבעיית הפצת המפתחות. שיטות אסימטריות גם מאפשרות חתימות דיגיטליות, שבהן החותם משתמש במפתח פרטי והציבור מאמת עם המפתח הציבורי.
ביטחון שיטות אלה נשען על קושי מתמטי בבעיות כמו פירוק לגורמים או הלוגריתם הבדיד.
עקרון קרקהופס קובע כי אלגוריתם הצפנה לא צריך להיות סודי. הביטחון צריך להישען על סודיות המפתח בלבד. זה מקל על בדיקה ציבורית של האלגוריתם ועל גילוי חולשות.
קריפטואנליזה היא חקר שיטות פריצה. קיימות התקפות פסיביות (אוספים תעבורת נתונים) ואקטיביות (משתנים או שולחים הודעות במערכת).
התקפות נפוצות כוללות התקפה דיפרנציאלית והתקפה ליניארית, שהן שיטות מתמטיות לנתח צפני בלוק ולהוציא מפתחות.
מפתח ארוך מקשה על התקפות כוח גס (ניסיון לכל המפתחות האפשריים), ולכן אורך המפתח חשוב.
אורך מפתח משפיע על זמן פריצה בביצוע כוח גס. נכון לעקרונות עדכניים, רמת ביטחון מעשית מקובלת היא סביב 2^{128} פעולות עבור מערכות סימטריות.
עבור הצפנה אסימטרית משווים גדלים: למשל מפתח RSA של 2048 ביט נחשב שווה ערך לסימטרי של כ-112 ביט, ואז נהוג להמליץ על מפתחות ארוכים יותר בהתאם.
פרימיטיב הוא אלגוריתם המיועד לתפקיד מוגדר, כמו AES להצפנה סימטרית או SHA כפונקציית גיבוב. מערכת קריפטוגרפית טובה משלבת מספר פרימיטיבים במבנה נכון.
פרוטוקול קריפטוגרפי הוא שילוב של פרימיטיבים למטרה מסוימת, למשל TLS לאבטחת רשת או PGP להצפנת דואר.
ביטחון הפרוטוקול תלוי בבטיחות הפרימיטיבים ובאופן שילובם.
כיום מקפידים על הוכחות פורמליות של ביטחון במודלים תיאורטיים.
מחשבים קוונטיים יכולים לשנות את תמונת הביטחון. אלגוריתם שור (Shor) מאפשר פירוק לגורמים בזמן פולינומי על מחשב קוונטי, וזה מהווה איום על RSA ושיטות אסימטריות דומות.
אלגוריתם גרובר מקצר התקפת כוח גס, ופוגע בעוצמת מפתחות סימטריים.
עקב זאת מפתחים כיום שיטות פוסט־קוונטיות שעמידות בפני מחשבים קוונטיים.
הצפנה קוונטית (כגון QKD, החלפת מפתחות קוונטית) משתמשת בעקרונות מכניקת הקוונטים. ניסיון להאזין ישפיע על המצב הקוונטי, ולכן התקיפה ניתנת לזיהוי. כך אפשר להשיג סודיות תיאורטית בתנאים מסוימים.
ממשלות דנות ומגבילות שימוש בהצפנה מטעמי ביטחון לאומי. בארצות רבות יש מגבלות ייצוא או דרישות רישוי.
בנוסף, אלגוריתמים ויישומיהם יכולים להיות מוגנים בפטנטים או בזכויות יוצרים, אך תקנים ציבוריים פתוחים מקודמים בדרך כלל.
קריפטוגרפיה מוזכרת ופותרת בעיות רבות בספרות ובתרבות, והיא נושא מחקרי ופרקטי רחב היקף.
קריפטוגרפיה היא הדרך ליצור קודים כדי לשמור סודות.
היא עוזרת להסתיר הודעות כך שאיש אחר לא יבין אותן.
הצפנה היא הפיכה של הודעה רגילה לסימנים שלא קוראים.
פענוח מחזיר את ההודעה לקדמותה עם המפתח. מפתח הוא סיסמה סודית.
אנשים השתמשו בקודים מאז העת העתיקה. במלחמות השתמשו בהם כדי להגן על מסרים.
בעבר היו מכונות כמו האניגמה. היום מחשבים עושים את רוב העבודה.
בצופן סימטרי שני אנשים משתמשים באותה סיסמה סודית.
זה מהיר ונוח, אבל קשה לשתף את הסיסמה בבטחה.
AES הוא דוגמה לקוד טוב מהיום.
יש שיטה שנקראת פנקס חד-פעמי. היא בטוחה מאוד.
צריך מפתח אקראי באורך ההודעה, וזה קשה להשיג.
בשיטה אסימטרית יש שני מפתחות: ציבורי ופרטי.
המפתח הציבורי מותר לכולם, והמפתח הפרטי נשמר בסוד.
כך כל אחד יכול לשלוח הודעה רק לבעל המפתח הפרטי.
קריפטואנליזה היא נסיונות לפרוץ קודים.
יש דרכים מדעיות לבדוק חולשות בקודים.
הגנה טובה כוללת מפתח ארוך ואלגוריתם שקיבל הרבה בדיקות.
מחשבים קוונטיים הם מחשבים מיוחדים מאוד.
הם עלולים לשבור חלק מהקודים שאנו משתמשים בהם היום.
קיימת גם הצפנה קוונטית שיכולה לגלות האזנות.
חוקים במדינות שונות קובעים מי יכול להשתמש בהצפנה.
חלק מהממשלות מבקשות לדעת או לשלוט בה.
גם פטנטים וזכויות יוצרים עשויים לשמור על אלגוריתמים.
קריפטוגרפיה עוזרת לאבטח תקשורת בטלפון ובאינטרנט.
היא חלק חשוב בעולם הדיגיטלי של היום.
תגובות גולשים