לדלג לתוכן

הצפנה

מתוך ויקיפדיה, האנציקלופדיה החופשית
(הופנה מהדף צופן)

הצפנה היא תהליך קריפטוגרפי של קידוד מידע, שממיר את הייצוג המקורי של המידע, המכונה טקסט גלוי (באנגלית: plaintext), לצורה חלופית, המכונה טקסט מוצפן (באנגלית: ciphertext).[1] בדרך כלל, מערכות הצפנה משתמשות במפתח הצפנה פסאודו־אקראי שנוצר על ידי אלגוריתם. במצב אידיאלי, רק נמען שברשותו נמצא מפתח ההצפנה יכול לפענח את ההודעה המוצפנת.

בעת העתיקה

[עריכת קוד מקור | עריכה]

אחת משיטות ההצפנה המוקדמות ביותר היא החלפת סמלים, שיטה שנצפתה לראשונה בקברו של חנומותפ השני, אציל מצרי שחי בשנת 1900 לפני הספירה.[2] ביוון העתיקה ורומא העתיקה נעשה שימוש בשיטת הצפנה מוקדמת זו למטרות צבאיות.[2] אחד מהצפנים הצבאיים המפורסמים ביותר מהתקופה הוא צופן קיסר, צופן החלפה שבו כל אות בטקסט המקור מוחלפת באות המרוחקת ממנה במספר קבוע של מקומות בסדר האלפביתי, ונמען שיודע את מספר המקומות בו הוסטו האותיות יכול לפענח את ההודעה.[3]

צפני החלפה מופיעים גם בשפה העברית; דוגמאות לצפנים כאלה הן צופן אתב"ש וצופן אטב"ח, שבאו לידי ביטוי במספר מקומות במסורת היהודית.[4] בניגוד למרבית שיטות ההצפנה, אשר מטרתן העיקרית היא אבטחת מידע, צפני אתב"ש ואטב"ח ודומיהם שימשו על פי רוב ככלי בפירוש המקרא וכשיטת לימוד על פי רמזי האותיות, וכן כאקרוסטיכון בפיוטים.

בסביבות שנת 800 לספירה, המתמטיקאי הערבי אל־כנדי פיתח את טכניקת ניתוח התדירויות בניסיון לפתח שיטה לפיצוח צופן קיסר. טכניקה זו בחנה את תדירות הופעת האותיות בהודעה המוצפנת כדי לקבוע את מספר ההסטות.[3] בשנת 1465, הסופר האיטלקי ליאונה אלברטי פיתח את צופן אלברטי, שיטת הצפנה המבוססת על מכשיר הצפנה המורכב משני דיסקים משולבים שעל כל אחד מהם כתובים 24 תווים. צופן אלברטי היה אחד הצפנים הפוליאלפביתיים הראשונים, ולא היה ניתן לפצחו בשיטת ניתוח התדירויות.[5]

המאה ה־19–20

[עריכת קוד מקור | עריכה]

בסביבות שנת 1790, תומאס ג'פרסון פיתח צופן תאורטי שנועד לשימוש בהתכתבויות צבאיות, אך לעולם לא נבנה בפועל. הצופן, המכונה היום צופן הגלגל או דיסק ג'פרסון, תואר כסליל שניתן להשתמש בו בשביל להצפין הודעה באנגלית באורך עד 36 תווים, כך שאדם שנמצא ברשותו סליל תואם יכול לפענח את הטקסט המוצפן.[6]

מכשיר הצפנה זהה לדיסק ג'פרסון, ה־M-94, פותח בשנת 1917 באופן בלתי תלוי על ידי מייג'ור צבא ארצות הברית ג'וזף מאובורן. המכשיר שימש את צבא ארצות הברית לצורכי תקשורת עד שנת 1942.[7]

במלחמת העולם השנייה, מדינות הציר השתמשו בגרסה מתקדמת יותר של ה־M-94, הקרויה האניגמה. מכונת האניגמה הייתה יותר מורכבת, כיוון שבשונה מדיסק ג'פרסון וה־M-94, אופן גיבוב האותיות באניגמה הוחלף כל יום. הצירוף של היום הנוכחי היה ידוע רק למדינות הציר, ולכן, על מנת לפצח את הצופן בהתקפת כוח גס, היה על התוקפים לנסות מעל 1,000,000 צירופים אפשריים תוך 24 שעות.[8] בסופו של דבר פוצחה האניגמה על ידי צוות של מפצחים בריטים שבראשו עמד המתמטיקאי אלן טיורינג. שימוש במשאבי חישוב עוצמתיים לבדיקת מפתחות ההצפנה היה אחד הגורמים שתרמו לפיצוח האניגמה בסופו של דבר.

בעת המודרנית

[עריכת קוד מקור | עריכה]

כיום, הצפנה משמשת לאבטחת תקשורת באינטרנט, ובפרט לאבטחת מידע פרטי ומסחר אלקטרוני. באינטרנט, מידע רגיש כמו סיסמאות והתכתבות אישית עשוי להיחשף לגורמים חיצוניים. כדי להגן על מידע זה, אלגוריתמי הצפנה ממירים טקסט גלוי לטקסט מוצפן בלתי קריא, שמשמעותו נגישה רק לגורמים מורשים שיכולים לפענח את הנתונים חזרה לפורמט קריא.[1]

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

מפתחות הצפנה

[עריכת קוד מקור | עריכה]

תהליך ההצפנה והפענוח של הודעות כולל שימוש במפתחות הצפנה. שני הסוגים העיקריים של מפתחות במערכות קריפטוגרפיות הם מפתח סימטרי ומפתח ציבורי, המכונה גם מפתח אסימטרי.[9]

אורכו של מפתח ההצפנה הוא מדד לחוזק שיטת ההצפנה: לדוגמה, מפתח ההצפנה המקורי, DES (Data Encryption Standard), הכיל 56 סיביות, ולכן היו מפתחות אפשריים בסך הכל. מאז פותחו מחשבים עם כוח חישוב מספיק כדי לפצח צופן עם מפתח בן 56 סיביות על ידי התקפת כוח גס, ולכן צופן זה אינו בטיחותי יותר. נכון לשנת 2020, תקן מפתחות ההצפנה המודרניים הוא עד 2048 ביט במערכת RSA, וכמות המפתחות האפשריים מבטיחה שהצופן כמעט בלתי ניתן לפיצוח על ידי מחשבים מודרניים. עם זאת, משוער שמחשב קוונטי יהיה מסוגל לפצח צופן מסוג זה.[10]

מפתח סימטרי

[עריכת קוד מקור | עריכה]

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

מפתח ציבורי

[עריכת קוד מקור | עריכה]
איור המתאר תקשורת בין שרתים תוך כדי שימוש בהצפנת מפתח ציבורי .

בהצפנת מפתח ציבורי נעשה שימוש במפתחות שונים להצפנה ולפענוח, כאשר מפתח ההצפנה מפורסם בפומבי כך שכל אחד יכול להשתמש בו להצפנת הודעות, אבל רק לנמען יש גישה למפתח הפענוח, המאפשר קריאת הודעות. הצפנת מפתח הציבורי תוארה לראשונה במסמך סודי בשנת 1973;[11][12] לפני כן, כל תוכניות ההצפנה השתמשו במפתח סימטרי. בשנת 1976, פרוטוקול דיפי־הלמן הוצג לראשונה במאמר בכתב עת עם קהל קוראים גדול.[13]

דוגמה נוספת למערכת הצפנה שמשתמשת במפתח ציבורי היא RSA. מערכת הצפנה זו נוצרה בשנת 1978, ונמצאת בשימוש גם כיום היום ביישומים הקשורים לחתימות דיגיטליות. אלגוריתם RSA מיישם עקרונות מתורת המספרים: האלגוריתם בוחר שני מספרים ראשוניים ויוצר את מפתחות ההצפנה והפענוח תוך כדי שימוש בחשבון מודולרי.[14]

בשנת 1991, תוכנת ההצפנה PGP, המשתמשת בהצפנת מפתח ציבורי, נכתבה והופצה לציבור ללא תשלום על ידי פיל צימרמן כחלק ממאבק נגד ניסיון חקיקה בארצות הברית שביקש למנוע שימוש בהצפנה חזקה בקרב הציבור. PGP נרכשה על ידי החברה סימנטק בשנת 2010 ומתעדכנת באופן שוטף.[15]

הצפנה משמשת צבאות וממשלות לצורכי תקשורת חשאית, ובעידן המחשבים, שימוש בהצפנה לצורכי אבטחת מידע נפוץ גם במערכות אזרחיות רבות.

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

הצפנה משמשת גם להגנה על נתונים "בתנועה", כלומר, נתונים המועברים באמצעות רשתות תקשורת: דרך האינטרנט, טלפונים ניידים, מיקרופונים אלחוטיים, מערכות אינטרקום אלחוטיות, התקני Bluetooth, כספומטים וכדומה. הצפנת מידע בתנועה עוזרת להגן עליו מפני האזנה על ידי גורמים חיצוניים בלתי מורשים.[17]

מחיקת נתונים

[עריכת קוד מקור | עריכה]

שיטות מקובלות למחיקת נתונים לצמיתות ממכשיר אחסון כוללות דריסה של כל תוכן המכשיר על ידי אפסים, אחדות או תבניות בינאריות אחרות – תהליך שיכול לקחת זמן משמעותי, תלוי בקיבולת ובסוג אמצעי האחסון. בעזרת אמצעים קריפטוגרפיים, ניתן להפוך את המחיקה לכמעט מיידית: כאשר מידע השמור בהתקן אחסון מוצפן ומפתחות ההצפנה שמורים על אותו התקן, מספיק למחוק את מפתחות ההצפנה כדי להפוך את תוכן ההתקן לבלתי קריא.[18] עם זאת, כיוון שבשיטה זו מפתח הפענוח שמור בהתקן עצמו, השיטה לא מבטיחה הגנה מלאה במקרה שגורם בלתי מורשה מקבל גישה פיזית להתקן האחסון.

מחשבים קוונטיים

[עריכת קוד מקור | עריכה]

מחשב קוונטי משתמש בתכונות של מכניקת הקוונטים על מנת לעבד כמויות גדולות של נתונים בו זמנית, ומהירות החישוב שלו גדולה בהרבה מזו של מחשב רגיל.[19] נכון לשנת 2021, עוד לא קיים מימוש של מחשב קוונטי שיכול לבצע את כל הפעולות שמבצע מחשב רגיל, אבל, בהנחה שמחשב כזה אכן קיים, שיטות הצפנה רבות מאבדות מכוחן. לדוגמה, הצפנת RSA משתמשת במכפלת שני מספרים ראשוניים גדולים מאוד כדי לייצר את המפתח הציבורי שלה. פענוח מפתח זה ללא המפתח הפרטי שלו מצריך פירוק לגורמים של המכפלה, פעולה שיכולה לקחת זמן רב מאוד למחשבים מודרניים.

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

בעוד שמחשב קוונטי עשוי להוות איום על אבטחת מידע בעתיד, המחשוב הקוונטי שקיים כיום עדיין מוגבל מאוד. נכון לשנת 2021, לא קיים מחשב קוונטי זמין מסחרית, והמחשבים הקוונטיים הקיימים הם מכשירי חישוב בסדר גודל קטן שאינם יכולים להתמודד עם כמויות גדולות של קוד.[20] עם זאת, נערך מחקר במטרה למצוא שיטות הצפנה בטוחות גם מפני התקפת מכשיר קוונטי.[21]

התקפות על מערכות הצפנה

[עריכת קוד מקור | עריכה]

רוב יישומי ההצפנה מגנים על מידע רק כאשר הוא נמצא במנוחה או בתנועה, בעוד מידע שנמצא בעיבוד, למשל על ידי שירות ענן, בדרך כלל אינו מוצפן ולכן חשוף לגורמים חיצוניים. טכניקות כמו הצפנה הומומורפית וחישוב רב משתתפים בטוח מאפשרות לבצע חישוב על נתונים מוצפנים מבלי לחשוף אותם להתקפות, אך כיוון שהן כרוכות בעלויות גבוהות מבחינת חישוב ותקשורת, טכניקות אלו פחות נפוצות משיטות הצפנה כמו RSA.[22]

עם זאת, קיימים גם סוגים רבים של התקפות על נתונים מוצפנים במנוחה. כמה דוגמאות להתקפות כאלו הן התקפות גניבת טקסט מוצפן,[23] התקפות על מפתחות הצפנה, התקפות פנים,[24] התקפות השחתת נתונים, התקפות השמדת נתונים ותוכנות כופר.[25]

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

אמיתות הטקסט המוצפן

[עריכת קוד מקור | עריכה]

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

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

אורך הטקסט המוצפן וריפוד

[עריכת קוד מקור | עריכה]

גם כאשר תוכן של הודעה מוצפן, אורך ההודעה הוא סוג של מטא־דאטא שממנו ניתן להסיק מידע על ההודעה. לדוגמה, ההתקפות CRIME ו־BREACH נגד פרוטוקול HTTPS היו התקפות ערוץ צדדי שהתבססו על דליפות מידע שנובעות מאורך ההודעה המוצפנת.[27] טכניקות ניתוח תעבורה משתמשות לעיתים קרובות באורכי הודעות כדי להסיק מידע על הנתונים הזורמים במערכת.

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

לקריאה נוספת

[עריכת קוד מקור | עריכה]
  • M. K. Shukla, A. K. Dubey, D. Upadhyay and B. Novikov, "Group Key Management in Cloud for Shared Media Sanitization," 2020 Sixth International Conference on Parallel, Distributed and Grid Computing (PDGC), 2020, pp. 117-120, doi: 10.1109/PDGC50313.2020.9315325.

קישורים חיצוניים

[עריכת קוד מקור | עריכה]

הערות שוליים

[עריכת קוד מקור | עריכה]
  1. ^ 1 2 Kessler, Gary, An Overview of Cryptography, www.garykessler.net (באנגלית)
  2. ^ 1 2 History of Cryptography, Binance Academy (באנגלית)
  3. ^ 1 2 Ender Sahinaslan, Onder Sahinaslan, Cryptographic methods and development stages used throughout history, 2019, עמ' 030033 doi: 10.1063/1.5095118
  4. ^ J.H.P. Eloff, M.M. Eloff, Encryption techniques: a timeline approach, 2005-11, עמ' 4-5 doi: 10.1016/s1361-3723(05)70275-x
  5. ^ Benedek Lang, 4. Theory and practice of cryptography in early modern Europe, Amsterdam University Press, 2018-07-11, ISBN 978-90-485-3669-6. (באנגלית)
  6. ^ Wheel Cipher | Thomas Jefferson's Monticello, www.monticello.org
  7. ^ USS Pampanito - CSP-488, maritime.org (באנגלית)
  8. ^ Nigel P. Smart, Cryptography Made Simple, Cham: Springer International Publishing, 2016, עמ' 133-134, ISBN 978-3-319-21935-6. (באנגלית)
  9. ^ Key Cryptography - an overview | ScienceDirect Topics, www.sciencedirect.com (באנגלית)
  10. ^ arXiv, Emerging Technology from the. "How a quantum computer could break 2048-bit RSA encryption in 8 hours". MIT Technology Review (באנגלית אמריקאית). נבדק ב-2020-04-02.
  11. ^ Public-Key Encryption - how GCHQ got there first, web.archive.org, ‏2010-05-19 (באנגלית)
  12. ^ University of Bristol, Dr Clifford Cocks CB, www.bristol.ac.uk (באנגלית)
  13. ^ W. Diffie, M. Hellman, New directions in cryptography, IEEE Transactions on Information Theory 22, 1976-11-XX, עמ' 644–654 doi: 10.1109/TIT.1976.1055638
  14. ^ M.E. Hellman, An overview of public key cryptography, IEEE Communications Magazine 40, 2002-05, עמ' 42–49 doi: 10.1109/mcom.2002.1006971
  15. ^ Andy Greenberg, Symantec Acquires Encryption Provider PGP For $300 Million, Forbes (באנגלית)
  16. ^ Data at Rest - an overview | ScienceDirect Topics, www.sciencedirect.com (באנגלית)
  17. ^ Data Encryption in Transit Guideline | Information Security Office, security.berkeley.edu (באנגלית)
  18. ^ Mehreen Ansar, Ijaz Ali Shokat, Mubeen Fatima, Kashif Nazir, Security of Information in Cloud Computing: A Systematic Review, American Scientific Research Journal for Engineering, Technology, and Sciences (ASRJETS) 48, 2018-10-29, עמ' 92
  19. ^ Quantum computers vastly outperform supercomputers when it comes to energy efficiency, Physics World, ‏2020-05-01 (באנגלית)
  20. ^ Dmitry Solenov, Jay Brieler, Jeffrey F. Scherrer, The Potential of Quantum Computing and Machine Learning to Advance Clinical Research and Change the Practice of Medicine, Missouri Medicine 115, 2018, עמ' 463–467
  21. ^ Lily Chen, Stephen Jordan, Yi-Kai Liu, Dustin Moody, Report on Post-Quantum Cryptography, 2016-04 doi: 10.6028/nist.ir.8105
  22. ^ Niv Ahituv, Yeheskel Lapid, Seev Neumann, Processing encrypted data, Communications of the ACM 30, 1987-09-01, עמ' 777–780 doi: 10.1145/30401.30404
  23. ^ Dworkin, Morris, Recommendation for Block Cipher Modes of Operation: Three Variants of Ciphertext Stealing for CBC Mode, 2011
  24. ^ Hunker, J., Probst, C.W., [http://isyou.info/jowua/papers/jowua-v2n1-1.pdf :Insiders and Insider Threats An Overview of Definitions and Mitigation Techniques]
  25. ^ Alexandre Gazet, Comparative analysis of various ransomware virii, Journal in Computer Virology 6, 2010-02-01, עמ' 77–90 doi: 10.1007/s11416-008-0092-2
  26. ^ Jarmoc, J., [https://www.grc.com/miscfiles/HTTPS_Interception_Proxies.pdf SSL/TLS Interception Proxies and Transitive Trust]
  27. ^ Ralph Holz, Yaron Sheffer, Peter Saint-Andre, Summarizing Known Attacks on Transport Layer Security (TLS) and Datagram TLS (DTLS), tools.ietf.org (באנגלית)
  28. ^ Nikitin, Kirill; Barman, Ludovic; Lueks, Wouter; Underwood, Matthew; Hubaux, Jean-Pierre; Ford, Bryan (2019). "Reducing Metadata Leakage from Encrypted Files and Communication with PURBs" (PDF). Proceedings on Privacy Enhancing Technologies (PoPETS). 2019 (4): 6–33. doi:10.2478/popets-2019-0056.