PGP

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

מבוא

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

חוקיות הפצת התוכנה

צימרמן הפיץ את התוכנה בצורה חופשית דרך רשת יוזנט ודרך מחשבי BBS. רישיון התוכנה אישר שימוש חופשי בתוכנה למטרות לא-מסחריות, וקוד המקור של התוכנה צורף אל עותקי חבילת התוכנה.
זמן קצר לאחר מכן החלה חקירה כנגד צימרמן בנושא הפצת אמצעי צופן, בניגוד לתקנות הייצוא של ארצות הברית. תקנות הייצוא קבעו כי נדרש אישור ייעודי על-מנת לייצא משטחי ארצות הברית תוכנת הצפנה שחוזק המפתח שלה גדול מ-40 ביט. תוכנת PGP עשתה שימוש במפתח בגודל 128 ביט, ועל-כן הייתה אסורה לייצוא. כתשובה מתוחכמת לחקירה זו, פרסם צימרמן את קוד המקור של התוכנה כחלק מספר מודפס. חוקי הייצוא מגבילים אמנם ייצוא של נשק (ובפרט: אמצעי הצפנה), אך לא קיימת הגבלה דומה על ייצוא ספרים (וזאת מתוקף התיקון הראשון לחוקת ארצות הברית אשר מונע הגבלה של חופש הדיבור וחופש העיתונות). החקירה הסתיימה לאחר מספר שנים, בלי שיוגש כתב אישום כנגד צימרמן.

הצפנת מסרים

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

חתימה על מסרים

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

יצירת מפתח

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

רשת אמון

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