בעיית הלוגריתם הבדיד
באלגברה חישובית ובקריפטוגרפיה, בעיית הלוגריתם הבָּדִיד (דיסקרטי) המסומנת בקיצור DLP (באנגלית: Discrete Logarithm Problem), היא מציאת המעריך בהינתן הבסיס והתוצאה כך שמתקיים . בקיצור . בניגוד ללוגריתם רגיל מעל המספרים הממשיים שאותו קל לחשב בשיטות המסתמכות על קירוב, קשה לחשב לוגריתם בדיד בקבוצה סופית של מספרים שלמים, מודולו שלם כלשהו הנקרא מודולוס. בעיית הלוגריתם הבדיד בחבורה ציקלית נחשבת כשני עשורים לבעיה מתמטית קשה והיא הבסיס למספר אלגוריתמים חשובים בהצפנת מפתח ציבורי כמו פרוטוקול דיפי-הלמן ואלגוריתם חתימה דיגיטלית DSA.
חבורה ציקלית
ערך מורחב – חבורה ציקלית
תהי חבורה סופית מסדר . עבור כל אלמנט הקבוצה הבאה:
היא תת-חבורה ציקלית של שהסדר שלה הוא השלם הקטן ביותר המקיים . קל לראות שהרצף חוזר על עצמו כי וכן וכן הלאה. אם ראשוני אז היא צקלית וכל האלמנטים שלה הם יוצרים של החבורה. לעומת זאת סדר החבורה הכפלית כאשר ראשוני אינו ראשוני. לדוגמה לפי אוילר היא מסדר . רואים ש-2 אינו יוצר של החבורה כי לכן הסדר שלו הוא 4. כן רואים שלפי חוקי החבורות סדר תת-חבורה תמיד מחלק של סדר החבורה. אם היא חבורה ציקלית מסדר ראשוני , קיים יוצר של החבורה כך שמתקיים (למעשה יכולים להיות יוצרים רבים). במילים אחרות, עבור כל שלם קיים שלם ייחודי המקיים . אם החבורה מובנת מההקשר קוראים ל- "הלוגריתם הבדיד" של בבסיס ואפשר לכתוב זאת בקיצור . כמו כן אם עבור שלם כלשהו אז . הסיבה שהלוגריתם נקרא כאן "בדיד" נובעת מהעובדה שהוא נלקח מעל חבורה סופית, זאת בניגוד ללוגריתם רגיל שטווח הערכים שלו הוא מעל קבוצה אין סופית.
חוקי הלוגריתמים
לוגריתם בדיד מציית לחוקי הלוגריתמים הרגילים. למשל, (כאשר '1' הוא איבר יחידה של ) וכן:
- .
- עבור שלם כלשהו.
הגדרה פורמלית
הגדרה פורמלית[1] של בעיית הלוגריתם הבדיד היא:
- נתונה חבורה ציקלית סופית מסדר המסומנת ונתון יוצר של החבורה ויהי אלמנט כלשהו. מצא את הלוגריתם הבדיד של בבסיס בקיצור שהוא אלמנט יחידי בטווח המקיים: .
ביתר פירוט, נתון אלגוריתם פולינומי יעיל שמקבל את ומחזיר את החבורה , הסדר שלה ויוצר . ונתון הניסוי הבא:
ניסוי לוגריתם בדיד :
- מריצים את כדי לקבל את כאשר היא חבורה ציקלית מסדר ו- הוא יוצר של .
- בוחרים אלמנט (אפשר לעשות זאת על ידי בחירת אלמנט אקראי וחישוב ).
- האלגוריתם מקבל את ומחשב את .
- הניסוי יוכתר בהצלחה אם אחרת היא נחשבת לכישלון.
בהגדרה פורמלית, אומרים שבעיית הלוגריתם הבדיד (המסומנת בקיצור DLP) קשה לפתרון ביחס ל- אם עבור כל אלגוריתם פולינומי הסתברותי קיימת פונקצית זניחות כך שמתקיים:
במילים, ההשערה היא שקיימת חבורה שבה בעיית DLP קשה לפתרון מבחינה חישובית למעט בהסתברות זניחה.
דוגמה במספרים קטנים
אם . אזי היא חבורה ציקלית מסדר . אם ניקח יוצר של למשל . בהינתן השלם , הבעיה היא למצוא המקיים , היות ש- , אזי ב-.
בעיית דיפי-הלמן
ויטפילד דיפי ומרטין הלמן פרסמו ב-1976 מאמר פורץ דרך שהעלה לראשונה את רעיון ההצפנה האסימטרית והציעו לבססה על בעיה מתמטית קשה בתורת המספרים הקשורה לבעיית הלוגריתם הבדיד שנקראת כיום בעיית דיפי-הלמן והיא מתחלקת לשתים, בעיית דיפי הלמן חישובית, המסומנת בקיצור CDH ובעיית הכרעת דיפי-הלמן המסומנת בקיצור DDH. שתיהן בעיות שלהן חשיבות רבה בתחום הקריפטוגרפיה. נתונה חבורה ציקלית ויוצר ונתונים שני אלמנטים מהחבורה ו-. פונקציית דיפי-הלמן מוגדרת כדלהלן:
- .
כלומר, אם ו- אז . הבעיה הראשונה, בעיית CDH היא לחשב את פונקציית דיפי-הלמן עבור שני אלמנטים אקראיים (כאשר ו- אינם ידועים אחרת הבעיה טריוויאלית). הבעיה השנייה DDH היא בעיית הכרעה, להבחין בין פלט הפונקציה לבין אלמנט אקראי כלשהו מהחבורה. במילים אחרות עבור אלמנטים שנבחרו באקראי ופתרון אפשרי הבעיה היא להכריע האם או הוא אלמנט אקראי חסר משמעות.
אם בעיית הלוגריתם הבדיד קלה לפתרון אז אפשר לפתור גם את בעיית דיפי-הלמן, תחילה מחשבים את ואז מחזירים את . מאידך לא ברור האם קושייה המשוער של בעיית דיפי-הלמן שקול לבעיית הלוגריתם הדיסקרטי.
בעיית DDH נחשבת לבעיה קשה ביחס ל- אם עבור כל אלגוריתם הסתברותי פולינומי קיימת פונקציית זניחות כך שהמתקיים:
כאשר הם אלמנטים אקראיים. אם נבחר באקראי מתוך באופן בלתי תלוי בערכים אחרים אז האלמנט הוא בעל התפלגות אחידה ב-.
ישנן מספר חבורות בהן בעיית הלוגריתם הבדיד ותאומה בעיית דיפי-הלמן קשות לפתרון. העדיפות היא לחבורה ציקלית מסדר ראשוני והסיבות הן ראשית משום שידוע שאם סדר החבורה אינו ראשוני אפשר לצמצם את בעיית הלוגריתם הבדיד לבעיה בתת-חבורות שלה שהן יותר קטנות ולכן הפתרון קל יותר. שנית, קל למצוא יוצר בחבורה מסדר ראשוני כי כל האלמנטים של החבורה הם יוצרים. בנוסף, קל יותר למצוא הופכי כפלי של מעריך כלשהו דבר שרצוי במבנים קריפטוגרפיים מסוימים ובעיקר הסיבה היא שזה הגיוני להשתמש בחבורה מסדר ראשוני כי אם הסדר ראשוני אפשר להוכיח שפלט הפונקציה הוא כמעט אקראי בהשוואה להתפלגות אחידה מעל .
למרות זאת, החבורה הכפלית עם ראשוני נפוצה בישומים מעשיים למרות שסדר החבורה הזו אינו ראשוני. ההשערה היא שבעיית הלוגריתם הבדיד בחבורה זו קשה גם היא בתנאי שמשתמשים בתת-חבורה מתאימה של . האלמנט הוא שארית ריבועית מודולו אם קיים אלמנט המקיים . כך שקבוצת כל השאריות הריבועיות היא תת-חבורה של . מחצית מהאלמנטים של החבורה הם שאריות ריבועיות מודולו . אם הוא מספר ראשוני "חזק", כלומר כאשר ראשוני אז מספר האלמנטים בתת החבורה המכילה את כל השאריות הריבועיות מודולו הוא והיות ש- ראשוני תת-חבורה זו ציקלית. יתרה מזו כל האלמנטים בתת-חבורה זו הם יוצרים שלה. כדי למצוא יוצר, פשוט בוחרים אלמנט אקראי כלשהו שהתנאי הוא שלא יהיה שקול ל- (מודולו ) ואז מציבים מודולו .
דוגמה במספרים קטנים
נתון הראשוני החבורה הציקלית מסדר והיוצר . אם נבחר וכן . אם נתונים האלמנטים ו- (מודולו 97), בעיית דיפי-הלמן היא לגלות את (כאשר ו- לא ידועים).
עקום אליפטי
ערך מורחב – הצפנה מבוססת עקום אליפטי
חבורה אחרת שבה ההשערה היא שבעיית הלוגריתם הבדיד קשה היא אוסף הנקודות על עקום אליפטי. היתרון שלו הוא שבניגוד לחבורה כפלית לא ידוע על אלגוריתם שמסוגל לפתור את בעיית הלוגריתם הבדיד בזמן ריצה תת-מעריכי בחבורת העקום האליפטי. בקצרה, יהי מספר ראשוני ונתונה משוואה מעוקבת בשני נעלמים ו- מהצורה:
- .
כאשר הם קבועים המקיימים את התנאי (תנאי זה הכרחי כדי להבטיח שלא יהיו בעקום קצוות חדים) נניח ש- מייצג את כל הזוגות המקיימים את המשוואה האמורה, אז העקום האליפטי הוא . במילים, אוסף כל הנקודות המקיימות את המשוואה האמורה עם נקודה מיוחדת הנקראת "הנקודה באין סוף" המסומנת ב-. קיים כלל חיבור מסובך שמאפשר לחבר שתי נקודות בעקום כדי לקבל נקודה שלישית שגם היא בעקום; או חיבור נקודה בעצמה . למרבה ההפתעה אפשר להוכיח שקבוצת הנקודות בעקום יחד עם כלל החיבור יוצרים חבורה אבלית. שהיא חבורה סגורה תחת כלל החיבור כשהנקודה באין סוף משמשת כאיבר יחידה. לכל נקודה יש נקודה הופכית וכן חוקי האסוציאטיביות והקומוטטיביות מתקיימים בה.
בעיית הלוגריתם הבדיד בעקום אליפטי היא כדלקמן. נתון עקום אליפטי ונתונה נקודה כלשהי וכן הנקודה מצא שלם המקיים . השלם נקרא הלוגריתם הבדיד של הנקודה בבסיס הנקודה או בקיצור . הקבוצה היא תת-חבורה ציקלית המכילה את אוסף כל הנקודות שהן כפולות של כלומר והשלם מייצג בעצם את מספר הפעמים שהנקודה חוברה לעצמה כדי לקבל את .
אלגוריתמים
באופן כללי נתונה חבורה הציקלית עם היוצר והאלמנט הבעיה היא מציאת השלם המקיים (בתת-החבורה הנוצרת על ידי או בחבורה אם הוא יוצר שלה), המסומנת בקיצור מודולו הסדר של שנקרא לעיתים הבסיס. אותה אפשר לפתור בכמה דרכים. הפתרון הנאיבי ביותר הוא שיטת כוח גס, כלומר אפשר לחשב את כל החזקות של לפי סדר עד שמתקבל . סיבוכיות הפתרון היא מסדר גודל . קיימים מספר אלגוריתמים שלהם סיבוכיות טובה יותר והם המתחלקים לשתי קטגוריות. אלגוריתם גנרי שפועל על כל החבורה ואלגוריתם שפועל רק על חבורה ספציפית. לצורך הדיון אפשר להתעלם מהחבורה ולהתייחס ישירות לתת-החבורה שהיא מסדר שההנחה היא שהוא מספר ראשוני ידוע. להלן רשימת האלגוריתמים הידועים לפתרון בעיית הלוגריתם הבדיד וכן בעיית דיפי-הלמן.
- אלגוריתם צעד-קטן צעד-גדול של דויד שנקס שמסוגל למצוא לוגריתם בדיד בזמן ריצה של ובסיבוכיות מקום בסדר גודל .
- אלגוריתם פוליג-הלמן הוא אלגוריתם ספציפי המתאים במקרה שהגורמים הראשוניים של סדר החבורה ידועים. במיוחד, אם לסדר החבורה יש גורמים קטנים, אלגוריתם זה מאפשר לצמצם את הבעייה לשתי בעיות לוגריתם בדיד מסדר קטן יותר (לפי גודלם של הגורמים הראשוניים) והפתרונות שלהם ניתנים לשילוב כדי לקבל פתרון לבעיה המקורית בסיבוכיות זמן זהה לבעיות הקטנות.
- אלגוריתם רו של פולרד ללוגריתמים שזמן ריצתו הוא אך ללא סיבוכיות מקום.
- אלגוריתם תחשיב אינדקסים שרץ בזמן ריצה תת-מעריכי ונחשב בין היעילים ביותר לפתרון הבעיה.
האחרון הנו האלגוריתם החזק ביותר הידוע כיום לפתרון בעיית לוגריתם דיסקרטי בחבורות מסוימות כמו עבור פריק כלשהו. גרסה מסוימת שלו הנקראת אלגוריתם Coppersmith מסוגלת להגיע לזמן ריצה של עבור קבוע כלשהו .
כאשר מחשבים קוונטיים יהיו מעשיים אפשר יהיה לפתור את בעיית הלוגריתם הבדיד בזמן פולינומי עם אלגוריתם שור[2].
לוגריתם בדיד בקריפטוגרפיה
בלוגריתם בדיד, בדומה לפירוק לגורמים, ישנן שתי פעולות הופכיות שאינן סימטריות בכוח החישוב הדרוש לביצוען. לדוגמה, כפל ופירוק לגורמים הם פעולות הפוכות, בעוד שכפל היא פעולה קלה במונחי מחשוב, הרי שפירוק לגורמים קשה הרבה יותר ממנה. כן הדבר בלוגריתמים, העלאה בחזקה מודולרית (מודולו שלם ) קלה הרבה יותר ממציאת החזקה מודולו . חוסר הסימטריה הזה נקרא פונקציה חד-כיוונית, והיא מנוצלת היטב בעיקר בהצפנה אסימטרית. דוגמאות הן: פרוטוקול דיפי-הלמן להעברת מפתח, צופן אל-גמאל, חתימה דיגיטלית של אל-גמאל ואלגוריתם חתימה דיגיטלית DSA.
כדי להתמודד עם האיום של האלגוריתמים המנויים לעיל, ההנחה היא כיום שראשוני בגודל 2048 סיביות מספק מרווח ביטחון סביר. תקן DSA מגדיר למשל מספר רמות אבטחה לאלגוריתם חתימה דיגיטלית כשהמרבית היא, p ראשוני בסדר גודל של 3072 סיביות.
החבורות שיש בהן עניין מבחינה קריפטוגרפית הן; החבורה הכפלית מעל שדה ראשוני גדול, החבורה הכפלית מעל שדה סופי מורחב כאשר ו- וכן החבורה הכפלית מעל שדה בינארי עם מציין 2. כן יש עניין מיוחד בחבורה כאשר שלם פריק, קבוצת הנקודות בעקום אליפטי המוגדר מעל שדה סופי ועקום היפר-אליפטי מעל שדה סופי.
הערות שוליים
- ↑ Introduction to Modern Cryptography (2nd edition), Jonathan Katz and Yehuda Lindell
- ↑ Shor, Peter (1997). "Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer". SIAM Journal on Computing