תחשיב אינדקסים

אלגוריתם תחשיב האינדקסים (Index calculus) הוא השיטה הידועה הטובה ביותר לחישוב לוגריתמים דיסקרטיים בחבורות אריתמטיות מסוימות. שיטה זו לא ישימה בכל סוגי החבורות, אולם כאשר היא מתאימה, יעילותה תת-מעריכית. אף שבעיית לוגריתם דיסקרטי מתקיימת במגוון חבורות, לצורך הפשטות האלגוריתם מתואר כאן במסגרת הכללית של חבורה ציקלית כדלהלן: בהינתן החבורה הציקלית עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ G} מסדר עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ n} והאלמנטים , כאשר הוא יוצר של עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ G} , מצא את השלם עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ y} המקיים . במקרה זה מסמנים . ניתן ליישם את האלגוריתם במספר חבורות הנפוצות בשימוש ביישומים מעשיים, כמו בחבורה עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ Z^*_p} (החבורה הכפלית מודולו עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ p} ראשוני) וכן החבורה הכפלית של השדה הסופי .

תיאור האלגוריתם

אלגוריתם Index calculus זקוק לתת-קבוצה עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ S} קטנה ככל האפשר של אלמנטים ב-עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ G} , הנקראים גורמי בסיס (Factor base) שהם: השלם עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ -1} וכן הראשוניים הקטנים החל מ-2 עד לגבול מסוים. מהיבט של יעילות רצוי שקבוצת גורמי הבסיס תהיה קטנה ככל האפשר, אולם בחישוב לוגריתמים גדולים קבוצה זו עלולה שלא להספיק. מבחינה מעשית קיים קונפליקט בין גודל עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ S} לבין הרצון להגיע לביצועים מרביים. בשלב הראשון אוספים מספר גדול ככל האפשר של יחסי שוויון לינאריים (באופן כזה שניתן לייצגם ביעילות בעזרת גורמים בקבוצה עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ S} ). משנאספו די יחסים, מחשבים את הלוגריתמים של כל גורמי הבסיס, מידע זה נחוץ בשלב השני לחישוב לוגריתמים של אלמנטים בחבורה עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ G} . בשלב זה מנסים להכפיל את באלמנטים מאוסף היחסים באופן שניתן לייצוג כמכפלה של גורמי הבסיס (או חזקות שלהם), אם נמצא צירוף מתאים ניתן לחשב את עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ y} בקלות, בפעולות אלגבריות פשוטות.

האלגוריתם

קלט: יוצר של החבורה הציקלית עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ G} מסדר עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ n} והאלמנט .

פלט: הלוגריתם הדיסקרטי עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ y = \mbox{log}_{\alpha}\beta} .

1. בחירת קבוצת גורמי בסיס.
בוחרים תת-קבוצה של מספרים ראשוניים: עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ S = \left\{p_1,p_2,...,p_t\right\}} כאשר ערכו של נקבע באופן כזה שחלק נכבד מהאלמנטים ב-עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ G} יהיו ניתנים לייצוג ככפולה של גורמי בסיס מתוך עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ S} .
2. איסוף יחסים לינאריים בעזרת לוגריתמים של אלמנטים ב-עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ S} .
2.1 בוחרים אלמנט אקראי , כך ש-עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ 0 \ge k \ge n-1} , ומחשבים את עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \alpha^k} .
2.2 מנסים לייצג את עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \alpha^k} כמכפלה של אלמנטים ב-עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ S} :
עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \alpha^k = \prod_{i=1}^t p_i^{c_i}} , כאשר עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ (1) \qquad \qquad c_i \ge 0}
אם ניסיון זה עלה יפה, מחשבים את הלוגריתם של שני צידי משוואה (1) כדי לקבל יחס לינארי מהצורה:
עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ (2) \qquad k \equiv \sum_{i=1}^t c_i \mbox{ log}_{\alpha}\, p_i \quad (\mbox{mod } n)}
2.3 חוזרים על שלבים 2.1 ו-2.2 כדי לאסוף יחסי שוויון המקיימים את משוואה (2). עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ c} הנו שלם קטן, הנבחר באופן כזה שלמערכת של המשוואות יהיה פתרון יחיד, בסבירות גבוהה.
3. חישוב לוגריתמים של אלמנטים ב-עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ S} :
כאשר כל הפעולות מתבצעות מודולו עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ n} , פותרים את המערכת הלינארית של המשוואות (עם נעלמים) מהצורה של משוואה (2) שנאספו, כדי לקבל את הפתרון של עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \mbox{log}_{\alpha}\, p_i} , כאשר עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ 1 \ge i \ge t} .
4. חישוב עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \mbox{log}_{\alpha} \beta} .
4.1 בוחרים שלם אקראי כך ש-עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ 0 \ge k \ge n-1} , ומחשבים את .
4.2 מנסים לייצג את כמכפלה של אלמנטים מתוך עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ S} :
עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ \beta \cdot \alpha^k = \prod_{i=1}^t p_i^{d_i}} , כאשר עיבוד הנוסחה נכשל (שגיאת המרה. השרת ("https://en.wikipedia.org/api/rest_") השיב: "Cannot get mml. Server problem."): {\displaystyle \ (3)\qquad d_{i}\geq 0}
אם ניסיון זה לא הצליח, חוזרים על שלב 4.1 עם אחר. אחרת מחשבים את הלוגריתם של שני צידי משוואה (3) ומחזירים את:
.

יעילות

כאמור זמן הריצה של האלגוריתם תלוי בגודל של קבוצת גורמי הבסיס. הבחירה האופטימלית מתבססת על התפלגות המספרים החלקים (smooth numbers) בטווח עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ [1, p-1]} במקרה של עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ Z^*_p} . והתפלגות הפולינומים החלקים (smooth polinomials) מעל עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ F_2[x]} שהם ממעלה הנמוכה מ- במקרה של . פולינום נקרא חלק אם הגורמים שאינם ניתנים לצמצום (ראשוניים) המרכיבים אותו, הם ממעלה קטנה יחסית. אם נבחר באופן אופטימלי, אלגוריתם Index calculus מעל עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ Z^*_p} ו- מגיע לזמן ריצה של עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ L_q[1/2, c]} כאשר עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ q = p} או בהתאמה, עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ c} קבוע הגדול מאפס.

ישנן שתי גרסאות של האלגוריתם עם זמן ריצה אופטימלי. עבור , אלגוריתם Coppersmith עם זמן ריצה של עם קבוע . עבור עיבוד הנוסחה נכשל (MathML עם גיבוי SVG או PNG (מומלץ לדפדפנים מודרניים ולכלי נגישות): תגובה בלתי־תקינה ("Math extension cannot connect to Restbase.") מהשרת "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \ Z^*_p} ישנה גרסה של Index calculus הנקראת number field sieve, עם זמן ריצה של . קיימים כיום שיפורים נוספים.

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

ראו גם

This article is issued from Hamichlol. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.