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

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

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

צופן שקשה מאוד לפרק

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

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


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

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

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

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


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

מקום לדאגה

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

המחשבים הקוונטיים שמפתחות כעת המעבדות הגדולות והעשירות ביותר עדיין רחוקים מהיעד הזה. למעבדות הקוונטיות של גוגל יש מחשב בסיסי של 105 קיוביטים; ל-IBM קצת יותר מאלף. המדענים מסין טענו שהפעילו בהצלחה פרוטוקול לפריצת צפנים על מחשב של חברה בשם D-Wave, שמורכב מכאלפיים קיוביטים. שימו לב שמספר קיוביטים גדול לא מעיד בהכרח על מחשב מתקדם יותר, כי כל חברה מתמקדת בפונקציות שונות ובשיפורים אחרים של הטכנולוגיה.

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

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

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

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

0 תגובות