כון להיום, קיימות כ-2 גישות עיקריות להצפנת נתונים:

  • פירוק צרור הנתונים לבלוקים (Blocks) – ולהצפין כל בלוק.
  • הצפנת כל צרור הנתונים בהזרמה (Streaming), ביט-אחר-ביט.

וכן, קיימים כ-3 סוגי הצפנות:

  • הצפנה סימטרית:
    • שימוש במפתח סודי – Secret Key.
    • הצפנה בודדת. הצפנת יחיד (One-Key Encryption).
  • הצפנה אסימטרית:
    • שימוש במפתח ציבורי – Public Key .
    • הצפנה דו-צדדית. (Two-key encryption) .
  • הצפנה חד-צדדית:
    • אין שימוש במפתחות הצפנה.
    • נקרא גם – Hash .

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

מערכות הצפנה סימטריות

נקראת לעתים גם הצפנת "מפתח סודי" \ "מפתח פרטי" .
  • מהירה (!) מפתח אחד יכול להצפין ולפענח .
  • דורש ערוץ העברת מפתחות מאובטח ואמין, שכן חשיפת המפתח היחיד תתן לתוקף את היכולת להתחזות ולהצפין – וכן לפענח.

הצפנה ע"י מפתח סודי, Secret Key Cryptography או SKC , דורשת מפתח בודד להצפנה ולפענוח. מפתח זה הוא "הסכם הסודיות" בין שולח הנתונים למקבליהם. כיוון ש-SKC משתמש במפתח אחד להצפנה ולפענוח עבור שני הצדדים (המקבל והשולח) , נקראת שיטה זו הצפנה סימטרית.

בהתחשבות כי מימוש ה-SKC נעשה באופן נכון ותקין, בסיס ההתקפות כנגד מערכות הצפנה אלו, מבוססות כח-גס (Brute-force ). עד 1998, התקפות מבוססות כח-גס היו בגדר בדיחה בקרב מומחי האבטחה, שכן לרוב, עלות המשאבים הנחוצים לפיצוח הצפנה כזו, בד"כ עלתה על עלות המטרה.
בשנת 1997, מפתח הצפנה של 40 ביט, פוצח ב-3.5 שעות בעזרת 250 מחשבים. והיום?
אל תשכחו את חוק מור: כח המחשוב\עיבוד מוכפל מדי 18 חודשים. לכן, דיי ברור כי מפתח של 40 ביט, ניתן לפיצוח בעזרת מחשב בודד.
עם זאת, הבעיה העיקרית עם מפתחות סודיים היא אופן יצירתו ואופן העברתו לגורמים אחרים מבלי לזהותו. כגודל הגורמים החשופים למפתח הסודי – כך גדל סיכויי המפתח להחשף לגורמים לא מאושרים. לכן, כיום נעשה שימוש נרחב בשילוב ההצפנה הסימטרית והאסימטרית. הסיבה העיקרית היא הבדל העצום במהירות ההצפנה של מערכות סימטריות והשימוש בחתימות דיגיטליות במערכות אסימטריות.
דוגמאות נפוצות היום למימוש ה-SKC הן:  DES, 3DES, RC4, RC6, IDEA, AES

מערכות הצפנה אסימטריות

נקראת לעתים "הצפנת מפתח-ציבורי".
  • איטית (!) משולבת מפתח ציבורי ומפתח פרטי.
  • מייצרת ערוץ מאובטח.
    • מפתח ציבורי מופץ באמצעות תעודות דיגיטליות (Digital Certificate).
  • שני המפתחות, ציבורי ופרטי, אינם נגזרים זה מזה. כלומר, אין אפשרות לגלות מפתח סודי בעזרת מפתח ציבורי.
    • לכן, הצורך בהחלפת 2 מפתחות סודיים – כבר לא קיים.
  • נתונים שהוצפנו במפתח אחד, יכולים להתפענח רק בעזרת המפתח השני.
  • המפתח הפרטי – נשאר פרטי. אין להפיצו.

בעיות הניהול (העברת מפתח סודי, שימורו, הפצתו…) במערכות הצפנה סימטריות, היו המכריעות לטובת המערכות האסימטריות. כיום, המגזר העסקי-תעשייתי כמעט ומונע שימוש בהצפנות סימטריות. שוב, הרעיון הכללי הוא החלפת\העברת המפתחות בצורה מאובטחת וחד-פעמית, כדי להבטיח תקשורת מאובטחת, כגון ביקור בדף אינטרנטי לביצוע עסקה בכרטיס אשראי.
שיטות "הצפנת מפתח-ציבורי", או Public key cryptography (PKC)  – עושות שימוש ב-2 מפתחות: אחד המשמש להצפנה, והשני לפענוח. כיוון שנעשה שימוש בשני המפתחות, באופן שונה בהחלט מהשיטה הסימטרית , ה-PKC נקרא הצפנה אסימטרית.
ל-PKC שימושים ויישומים רבים. כיום, השימוש העיקרי הוא בהחלפת מפתוח (ל-SKC) , אימות ומניעת הכחשות (Non-repudiation) .

בשנת 76' פרופסור מרטין הלמן מאוניברסיטת סטנפורד, פרסם מאמר המתאר את מאפייני ה-PKC מנק' מבט מודרנית. הוא הציג דרך לתקשורת מאובטחת – בתווך לא מאובטח. הלמן הציג פונקציות מתמטיות שקל לחשבן, אך פעולת השחזור, הפעולה "ההפוכה" – קשה מאוד לחישוב.
להלן כמה דוגמאות:
כפל אל מול חילוק:
הכפלה של מספרים שלמים היא קלה, לפחות למחשב. נניח כי נתונים 2 מספרים: 9 ו-16, פעולת הכפל היא פשוטה, והמכפלה היא 144. לעומת זאת, החילוק נעשה קשה יותר, שכן קיימים כמה וכמה זוגות מספרים שמכפלתם היא 144, ולקבוע את זוג המספרים שנבחרו. כעת, קחו מספרים בעלי 100 ספרות ויותר, תקבלו פעולת חילוק קשה הרבה יותר, וכן הלאה…

חזקות אל מול לוגריתמים:
שוב, בדומה לדוגמא הקודמת, אם ננסה למצוא כמה זה 3 בחזקת 6, יהיה קל לחשב כי התוצאה היא 729. לעומת זאת, הפעולה ההפוכה לשיחזור המקור – תהיה קשה הרבה יותר.
דוגמאות נפוצות היום למימוש ה-PKC הן: RSA, El-Gamal, ECC, Merkle-Hallman, LUC, Chor Rivest

פונקציות Hash

הצפנה זו נקראת לעתים גם "הצפנה חד-צדדית" .
  • אין שימוש במפתחות הצפנה.
    • הודעות Plaintext לרבות אורכן – אינם ניתנים לשחזור מההודעה המוצפנת.
    • דוגמאות: HMAC, MD2, MD4, MD5, SHA, RIPEMD-160 .
  • שימוש עיקרי:
    • שלמות (Integrity) הנתונים\מידע.

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

  • HMAC \ Hashed Message Authentication Code : משלבת אימות וזיהוי למערכות בעזרת פונקציות Hash.
  • Message Digest 2 (MD2) z: פותח בעיקר לכרטיסים חכמים. מפיק ערך Hash בעל 128 ביטים, בהתאם לאורך\גודל ההודעה.
  • MD4 : דומה ל-MD2 , פותח בעקבות הצורך לעיבוד מהיר בתוכנות ויישומים.
  • MD5 : פותח לאחר שהתגלו חולשות ב-MD4 . דומה מאוד ל-MD4 אבל איטי יותר, כיוון שהפונקציות המפיקות את ערכן, מורכבות הרבה יותר.
  • Secure Hash Algorithm (SHA) z: מפיק ערך המורכב מ-160 ביטים. פותח לאחר פיתוח ה-MD4 , ואומץ כתקן ע"י NIST .

Leave a Reply

האימייל לא יוצג באתר. שדות החובה מסומנים *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>