לכולנו יש סודות. לא משנה אם זו אהבה לוופל לימון או מגורים בפתח תקווה, כולנו רוצים להגן על הסודות שלנו. לעיתים אנו נדרשים לחלוק את הסודות שלנו, כמו מספר כרטיס האשראי, עם אנשים אחרים, כדי שנוכל, למשל, לבצע קניה מאובטחת באינטרנט. איך נוכל להגן על הסודות שלנו, מפני אנשים שמעוניינים לגנוב אותם? אפשרות אחת היא ביסוס קו תקשורת מאובטח, למשל הזנת מספר כרטיס האשראי ישירות לטרמינל של הבנק. אך גישה זו אינה יעילה לתקשורת על פני מרחקים גדולים. אפשרות נוספת היא הצפנת המידע.
הצפנת מידע היא פעולה של שכתוב המידע בעזרת מפתח, כך שיהיה בלתי קריא לאדם שהמידע אינו מיועד אליו. כאשר המידע מגיע אל היעד הנכון, יוכל האדם לפענח את המידע בעזרת מפתח ייחודי. שיטות הצפנה מודרניות (כמו אלגוריתם RSA, עליו כבר כתבנו פוסט [1]), המסתמכות על שיטות מתמטיות, הופכות את פיצוח הקוד למאוד מאוד (מאוד) קשה. בעבר הצגנו את רעיון ההצפנה הקוונטית ביתר פירוט [2], אך לפוסט הנוכחי מספיק לומר שכל שיטת הצפנה דורשת ששני הצדדים יחלקו סוד משותף כלשהו, המכונה מפתח. במקרה שלנו, המפתח נועל את המידע מאחורי "מסך עשן"י, ניתן לחשוף את המידע על ידי שימוש במפתח המתאים, ואיתו בלבד. בפוסט זה נציג בעזרת משל המסביר כיצד ניתן לבסס מפתח בין שני צדדים, על ידי שימוש בהצפנה קוונטית.
אורית ובן קוסמים צעירים בפנימיה להצפנה, אך אבוי! הם לא התחסנו, וחלו בקורונה, ושכך הם בבידוד בחדרים נפרדים. הם יכולים לצעוק אחד לשני דרך הדלת, אך כל מי שיעבור במסדרון ישמע (עם זאת הם ידעו שהם מדברים אחד עם השני). הם גם יכולים להעביר פתק מתחת לדלת, וחבריהם למעונות יעבירו את הפתקים ביניהם, אך אין להם יכולת לדעת האם מי מחבריהם קרא את הפתק. למזלם, הם הקשיבו היטב בשיעור על הפרוטוקול הראשון להצפנה קוונטית - BB84, אשר יאפשר להם לחלוק מפתח משותף, ויאפשר להם לכתוב פתקים מאובטחים אחד לשני.
לאורית ובן שני עטים קסומים - עט ה-"אברה קדברה" ועט ה-"הוקוס פוקוס". עט ה-"אברה" כותב ביט (מידע בינארי, הסיפרה '0' או '1') שנעלם מיד. כאשר מצביעים על הנייר עם השרביט ואומרים "קדברה" הביט שכתבנו מופיע באופן תקין. אם מצביעים על הנייר בשרביט ואומרים "פוקוס", יוצג על הנייר ביט אקראי. עט ה"הוקוס" גם הוא כותב ביט שנעלם מיד. כעת, כדי לקרוא את הביט יש להצביע עם השרביט ולומר את מילת הקסם "פוקוס", והמילה "קדברה" תגרום לביט אקראי להופיע. בעזרת צעקות קולניות, שכל חבריהם שומעים, מסכימים אורית ובן על אופן הפעולה שלהם. בשלב הראשון אורית שולחת 'את הספרה '0' או '1' בצורה אקראית. כל ביט יכתב באחד משני העטים הקסומים שלהם. אורית רושמת במחברת שלה את ערך הביטים ששלחה לבן ובאיזה עט בחרה, ובן רושם במחברת את רצף הביטים שגילה ואת מילת הקסם בה השתמש.
אם גיא מנסה לצותת לאורית ובן ומנסה לחלץ את המפתח, כיצד כדאי לו לפעול? הוא צריך לקחת את הפתק מאורית, ולבחור אם הוא מפענח בעזרת "קדברה" או "פוקוס". גיא צריך לרשום במחברת שלו את הביט שראה ומילת הקסם שבחר. כעת עליו להעביר לבן פתק, עליו ירשום את הביט שראה, עם העט שמתאים למילת הקסם שבחר. בשלב זה אורית ובן לא יודעים שגיא מתעסק להם בפתקים.
בשלב השני יצעק בן לאורית, באיזה עט השתמש כדי לפענח כל פתק, ואורית תשיב לו מתי בחר בעט הנכון, ומתי לא. שימו לב, הוא צועק לאורית רק באיזה עט השתמש, ולא מה ערך הביט שגילה! הם מוחקים מהמחברת את כל הביטים אותם ניסה בן לגלות בעזרת מילת הקסם הלא נכונה. במקרים בהם בחר במילת הקסם הלא נכונה, הוא גילה ביט אקראי, ואינו יכול לדעת האם הביט שרשם נכון או לא.
בשלב השלישי יצעק בן לאורית (בקולי קולות, בכל זאת ישראלים), את תוצאות חלק מהביטים שלא מחק מהמחברת בשלב השני. אם חבריהם לא ניסו לקרוא להם את הפתקים, הם אמורים להסכים ב-100% מהמקרים. את הביטים שבן צעק, שניהם מוחקים מהמחברת. אם אכן הם הסכימו על כל הביטים שחלקו ביניהם, הם יודעים, שכנראה, חבריהם לא האזינו. לאחר השלב השלישי, נשארו בידי אורית ובן אוסף ביטים, בו הם יכולים להשתמש כמפתח.
אבל רגע, מה עם גיא? אם גיא בחר במילת הקסם הלא נכונה, הוא בעצם מעביר לבן פתק שנכתב בעט הלא נכון, ועם ביט אקראי! במקרה זה, אם בן בוחר במילת הקסם המתאימה לאורית, יש סיכוי של 50% שהוא יגלה את הביט הלא נכון, ואם אורית ובן יחליטו להשוות במקרה את הביט הזה במסגרת השלב השלישי הם ימצאו שגיאה, וידעו שמישהו מצוטט להם.
מה יכולים אורית ובן לעשות אם במסגרת השלב השלישי הם מגלים שמישהו מאזין להם? הם יכולים להחליט שהם זורקים את כל הביטים שהעבירו לפח, ומתחילים מההתחלה. הם לא העבירו מידע ביניהם, אלא ניסו להסכים על מפתח הצפנה. בסופו של דבר ימאס לחבריהם במעונות מהצעקות, הם ימנעו מגיא לחטט בפתקים, ואורית ובן יוכלו להסכים על מפתח.
הפרוטוקול המתואר פה, המכונה BB84, מאפשר לשני צדדים לחלוק סוד משותף, מבלי שהם צריכים להיפגש - וגם מאפשר להם לזהות מישהו שמנסה לתקוף את ערוץ התקשורת שלהם. גישה נוספת להצפנה קוונטית משתמשת בתכונת השזירה הקוונטית[3], אך פרוטוקול זה (E91 שפותח על ידי אקרט) מהווה נושא לפוסט בפני עצמו.
מקורות:
[1] שיטת ההצפנה RSA - גדי אלכסנדרוביץ'
[2] תן לטבע להצפין בשבילך! - שי (דשא) ויבורסקי
[3] שזירה קוונטית: ניסוי איינשטיין-פודולסקי-רוזן - מעת עדי ארמוני