הצפנה מבוססת עקום אליפטי

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה לניווט קפיצה לחיפוש

הצפנה מבוססת עָקֹם אֶלִיפְּטִי או בקיצור הצפנת עקום אליפטי (באנגלית: Elliptic Curve Cryptography, בקיצור ECC), היא שיטת הצפנה אסימטרית העושה שימוש במבנה האלגברי-גאומטרי הנקרא עקום אליפטי מעל שדה סופי גדול, למימוש מערכת כגון פרוטוקול דיפי-הלמן או צופן אל-גמאל. הדעה הרווחת היא שבבחירת פרמטרים מושכלת, ניתן להשיג בדרך זו אלגוריתמים מהירים ויעילים באופן משמעותי מאלו המבוססים על אריתמטיקה מודולרית בשל העובדה שמפתח ההצפנה קצר יותר מאשר בהצפנה אסימטרית רגילה, ללא פגיעה בביטחון המידע. בשל עובדה זו הצפנה מבוססת עקומים אליפטיים אטרקטיבית במיוחד בחומרה מוגבלת במשאבים כמו סנסור אלחוטי, כרטיס חכם או מערכות משובצות.

היסטוריה ורקע[עריכת קוד מקור | עריכה]

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

רעיון השימוש בעקום אליפטי ככלי קריפטוגרפי הועלה לראשונה ב-1985 על ידי ויקטור מילר[1] ומעט מאוחר יותר על ידי ניל קובליץ[2]. כאמור רעיון יישום הצפנת מפתח-פומבי (כדוגמת פרוטוקול דיפי-הלמן) בשדות סופיים הנוצרים מעקום אליפטי, מציע יתרון משמעותי על פני שיטות הצפנה אסימטריות אחרות, בשל השימוש במפתח הצפנה קטן יותר. תכונה זו מאפשרת יישום יעיל של ההצפנה בסביבה מוגבלת במשאבים, כדוגמת מעגלים משולבים במתקנים ניידים כמו טלפון סלולרי, כרטיס חכם וכדומה.

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

הגדרה כללית[עריכת קוד מקור | עריכה]

דוגמאות של עקום אליפטי מעל השדה הממשי.
Postscript-viewer-shaded.png ערך מורחב – עקום אליפטי

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

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

מעל שדה בעל מאפיין 2, צורתו של העקום האליפטי (שאינו סופרסינגולרי) נתונה על ידי:

, כאשר

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

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

קיימים עקומים אחרים כמו עקום קובליץ, עקום מונטגומרי, עקום אדוארד ועקום הסה שלהם שימושים בתחום הקריפטוגרפיה. לכל אחד מהם יתרונות בשדות שונים בהם חיבור וכפל נקודות קל יותר מאשר באחרים. גרסה מפותלת של עקום אדוארד שולבה בעקום 25519 ובעקום 448 שניהם עקומים חדשים הידועים בביטחון וביעילות גבוהים ונוספו כמועמדים לפרוטוקול SSL וכן נכללו מספר תקנים בינלאומיים (ראו RFC 7748).

אריתמטיקה בעקומים אליפטיים[עריכת קוד מקור | עריכה]

ECADD2.jpg

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

חוק החיבור בעקום האליפטי מקיים את הכללים הבאים:

  • איבר יחידה. עבור כל נקודה תמיד מתקיים: .
  • מספר הופכי. עבור כל נקודה תמיד מתקיים: .
  • אסוציאטיביות. עבור נקודות כלשהן תמיד מתקיים: .
  • קומוטטיביות. עבור נקודות כלשהן תמיד מתקיים: .
העקום האליפטי מעל השדה עם 88 נקודות.

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

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

כללי האריתמטיקה[עריכת קוד מקור | עריכה]

כללי האריתמטיקה לעקום אליפטי משתנים בהתאם לשדה עליו הוא מבוסס. בשדה בעל מאפיין גדול מ-2 (לעקום שאינו סופרסינגולרי) תרגום הפעולות הגרפיות לנוסחאות אלגבריות הוא כדלהלן:

סכום שתי נקודות (ECADD) :

הכפלת נקודה יחידה (ECDBL) , החיבור זהה למעט:

הנקודה ההפכית של היא .

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

דוגמאות[עריכת קוד מקור | עריכה]

לדוגמה יהיו ומשוואת העקום מעל השדה המכיל את 29 הנקודות המובאות להלן יחד עם נקודת האין סוף , כאשר :

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

דוגמה לחיבור שתי נקודות. אם נבחר את הנקודות ו- החיבור מבוצע כך:

תחילה ,

ואז .

לכן התוצאה היא .

כדי להכפיל את הנקודה בשתים, מחשבים כדלהלן:

תחילה ,

ואז .

ולכן .

כפל סקלרי[עריכת קוד מקור | עריכה]

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

קלט: שלם באורך סיביות (בייצוג בינארי ), הנקודה .
פלט: הנקודה .
1.
2. מ- עד בצע:
אם בצע
3. החזר את

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

עקום אליפטי בקריפטוגרפיה[עריכת קוד מקור | עריכה]

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

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

בעיית הלוגריתם הבדיד בעקום אליפטי בקיצור ECDLP[עריכת קוד מקור | עריכה]

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

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

בעיית דיפי-הלמן בעקום אליפטי בקיצור ECDHP[עריכת קוד מקור | עריכה]

בעיית דיפי-הלמן בעקום אליפטי המקבילה לבעיית דיפי-הלמן המפורסמת היא בעיה חישובית המוגדרת כך:

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

כמובן שאם ניתן לפתור ביעילות את בעיית ECDLP יהיה קל לפתור את ECDHP, ההפך לא הוכח למעט מקרים פרטיים אחדים. באופן כללי לא ידוע אם הבעיות שקולות.

בעיית הכרעת דיפי-הלמן בקיצור ECDDHP[עריכת קוד מקור | עריכה]

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

שתי השאלות הללו שקולות. כמובן שאם ניתן לפתור את ECDHP יהיה קל לפתור את ECDDHP. שופ הוכיח שקיים חסם תחתון שהוא עבור בעיית ההכרעת דיפי-הלמן בעקום אליפטי, הוא הסדר (מספר הנקודות).

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

דוגמה ללוגריתם בדיד בעקום אליפטי[עריכת קוד מקור | עריכה]

אם נתון העקום: מעל , הנקודות ו- הן בעקום ובגלל שהעקום מכיל רק 41 נקודות קל לגלות באופן ישיר שהלוגריתם הבדיד הוא:

לכן .

באופן דומה וכן . אחרי חישוב קל אפשר לראות שהם מקיימים וכן לכן:

וכן .

אף על פי שלפי הנוסחה לעיל היות ש- למעשה סדר העקום הוא . כך שרק 41 מהנקודות בעקום זה הן כפולות של .

בחירת פרמטרים[עריכת קוד מקור | עריכה]

כדי להשתמש בעקום אליפטי לצורך פרוטוקול קריפטוגרפי יש לשים לב לכמה היבטים חשובים כדי למנוע חולשות שעלולות להוביל לנקודות תורפה ולשבירת המערכת. הפרמטרים הציבוריים של העקום נקראים "פרמטרי תחום" (Domain Parameters) שכאמור פומביים ומשותפים לכל המשתמשים במערכת אך יש לוודא את תקינותם. תחילה בוחרים "עקום מתאים" המוגדר מעל שדה סופי עם מציין וכן בוחרים נקודת בסיס . כאשר ההגדרה "עקום מתאים" מתייחסת לכמה פרמטרים חיוניים כדלהלן; כדי למנוע התקפות המסתמכות על פתרון בעיית הלוגריתם הבדיד בעקום אליפטי (ECDLP) עם אלגוריתם רו של פולרד[3] או פוליג-הלמן[4], חובה שלסדר העקום או מספר נקודות העקום המסומן ב- יהיה גורם ראשוני גדול דיו (למשל ), ש- כך שמספר הנקודות בעקום יהיה "כמעט ראשוני" וכן ש-. לפי משפט הסה בעקום אליפטי, מספר הנקודות של עקום אליפטי חסום על ידי

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

במילים אחרות ולכן מספר הנקודות של העקום הוא . וכדי למנוע התקפת תת-חבורה מסדר קטן[5] המנצלת את סדר החבורה יש צורך שהנקודה תהיה מסדר . וכדי למנוע התקפות המנצלות רדוקציה[6] מעקום אליפטי לשדה סופי (מורחב) יש צורך שהעקום לא יהיה סופר-סינגולרי, כלומר לוודא ש- אינו מחלק של עבור כל כאשר גדול מספיק כך שמציאת לוגריתם דיסרקטי בשדה יהיה קשה (למשל ) וכן רצוי למנוע התקפה אחרת נגד "עקום אנומלי"[7] שהוא עקום אליפטי שבו מספר הנקודות הוא בדיוק (שהוא מספר ראשוני), לכן רצוי שסדר העקום לא יהיה . באופן כללי כדי למנוע התקפות אילו ואחרות (שמנצלות חולשות הנובעות מתכונות מיוחדות של העקום) האסטרטגיה המומלצת היא לבחור את העקום באופן אקראי בתנאי כמובן של- יש גורם ראשוני גדול. הסבירות שעקום שנבחר כך יהיה פגיע לאחת ההתקפות הללו אינה גדולה. וכן חשוב לבחור את העקום באופן כזה שיהיה קל לוודא שהוא אכן עומד בתנאים המצוינים. אחת הדרכים היא אסטרטגיה דומה לזו שננקטה על ידי NIST בבחירת הפרמטרים עבור DSA בתקן FIPS 186 - קרי לעשות שימוש בפונקציית גיבוב כמו SHA-2 כגרעין התחלתי ממנו מפיקים את הפרמטרים האמורים, כמתואר בתקן ANSI X9.62. ואז יש כמובן לשמור גם את הגרעין ההתחלתי כחלק בלתי נפרד מסט הפרמטרים, כך שהמקבל יוכל לוודא באמצעותו שהפרמטרים תקינים ולא נבחרו באופן מעורר חשד.

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

ב-2013 התגלה כחלק מההדלפות של סנודן שה-NSA שתלו דלת אחורית באלגוריתם Dual_EC_DRBG שהיה חלק מתקן של NIST למחולל פסאודו אקראי קריפטוגרפי המבוסס על עקום אליפטי. מלבד זאת מומחים הביעו חשש בנוגע לאחדים מן הקבועים של NIST ש-NSA התערב בבחירתם. בשל כך נוצרה דרישה לעקומים אליפטיים תיקניים שאינם נמנים עם הרשימה של NIST. ב-2005 פרסם דניאל ברנשטיין את העקום Curve25519 המציע ביטחון ברמה של 128 סיביות והוא נמצא בשימוש נרחב כיום בין היתר על ידי OpenSSL וכן וואטסאפ.

פרמטרי התחום[עריכת קוד מקור | עריכה]

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

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

חשוב לוודא תקפות הפרמטרים לפני שמשתמשים בהם, כדי לוודא תקינותם יש לפעול כדלהלן:

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

בתקן SEC-1 של GSEC (חברת Certicom הקנדית) ובתקן של NIST, נקבע הבסיס האריתמטי או ייצוג האלמנטים לפי סוג השדה, בשדה ראשוני האלמנטים הם השלמים מודולו ונקודה בעקום מיוצגת על ידי קואורדינטות שלמות . בשדה עם מציין 2 האלמנטים מיוצגים בבסיס פולינומי כאשר השדה הוא וקואורדינטות הנקודה הן פולינומים ממעלה .

סדר העקום האליפטי[עריכת קוד מקור | עריכה]

מספר הנקודות בעקום האליפטי חשוב מאוד לביטחון מערכת ECC כאמור, כדי למנוע התקפות קריפטוגרפיות מסוימות שמנצלות סדר חבורה שמכיל גורמים קטנים. ספירת נקודות העקום אפשרית בזמן פולינומי עם מספר אלגוריתמים ידועים ביניהם אלגוריתם של שוף (schoof)[8] שהורחב ושופר לאחר מכן על ידי קובליץ אלקיס ואטקין ונקרא אלגוריתם SEA[9]. עם אלגוריתם SEA אפשר לספור את נקודות עקום אליפטי מעל שדה סופי מסדר 200 בתוך מספר שעות. אלגוריתם SATOH פותח במיוחד לספירת נקודות עקום אליפטי מעל שדה בינארי מורחב, למשל אם אפשר לספור את נקודות העקום עם אלגוריתם SATOH בתוך מספר שניות.

הכנת עקום אליפטי באופן אקראי[עריכת קוד מקור | עריכה]

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

מפתח פרטי ומפתח ציבורי[עריכת קוד מקור | עריכה]

בהינתן הפרמטרים הציבוריים המפתח הפרטי הוא שלם אקראי בטווח הנשמר בסוד והמפתח הציבורי המתאים הוא שהוא כפל סקלרי של הנקודה עם המפתח הפרטי . בדרך כלל המפתחות של כל משתמש צריכים להיות מאומתים ומשויכים אליו בדרך כלשהי. בדרך קרפיטוגרפית מאמתים מפתח באמצעות חתימה דיגיטלית או תעודה (certificate) שמונפקת על ידי רשות מאשרת (CA). וכן בדרך כלל קיימת הפרדה בין המפתחות הקבועים המיועדים לטווח ארוך לבין מפתחות ארעיים (ephemeral keys) הנוצרים לצורך התקשרות ספציפית. יש צורך תמיד לאמת תקפות המפתח הציבורי, לוודא שמקיים את התנאים המפורטים לעיל; ש- הוא נקודה בעקום שאינה וכן שהקואורדינטות שלה הם אלמנטים בשדה בטווח המתאים וכן שמתקיים . בפועל משתדלים להימנע מהבדיקה האחרונה כיוון שהיא פעולה מכבידה במונחי מחשוב, אפשר לחסוך בדיקה זו על ידי שימוש בפרוטוקול שיתוף מפתח עם אימות כמו MQV שבו הבדיקה עקיפה ונעשית כחלק ממהלכי הפרוטוקול.

הצפנה עם עקום אליפטי[עריכת קוד מקור | עריכה]

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

כאשר הוא המפתח הפרטי של בוב המקיים . לכן היות ש- בוב יכול להחליפו בביטוי ולקבל את . המאזינה איב שמעוניינת לגלות את צריכה לחשב תחילה את , חילוץ מתוך ומתוך היא בדיוק בעיית דיפי-הלמן. למען הפשטות הגרסה המתוארת חסרה מספר מרכיבים חשובים כמו אימות ובדיקת תקפות. להלן תיאור פרוטוקול הצפנה היברידי שנקרא ECIES (קיצור של Elliptic Curve Integrated Encryption Scheme) שהוצע על ידי בלייר ורוגווי, המשלב הצפנה אסימטרית המבוססת על צופן אל-גמאל והצפנה סימטרית עם אימות. הוכנס לתקן ANSI X9.63 וכן ISO/IEC 15946-3 וכן IEEE P1363. בפרוטוקול זה מנצלים את פרוטוקול שיתוף הסוד הבסיסי של דיפי והלמן כדי לשתף שני מפתחות סודיים כאשר משמש להצפנת המסר ו- לאימות התוצאה להגנה מפני התקפת מוצפן-נבחר. לצורך הפרוטוקול מוגדרות שלוש פונקציות בסיסיות; KDF - פונקציית הכנת מפתח שהיא תוצאת פונקציית גיבוב של גרעין כלשהו ומונה כלשהו שמשתנה בכל קריאה, המשורשרים יחד. E - פונקציית הצפנה סימטרית כמו AES וכן MAC - פונקציית אימות כמו HMAC.

הצפנה[עריכת קוד מקור | עריכה]

נתונים פרמטרי התחום , המפתח הציבורי והמסר .

  1. בוחרים שלם אקראי בטווח .
  2. מחשבים את וכן (יש לוודא ש-).
  3. מציבים כאשר הוא הקואורדינטה של הנקודה והסימן מייצג שרשור (concatenation).
  4. מחשבים את וכן .

התוצאה היא השלישייה: הטקסט המוצפן , תג האימות והאלמנט .

פענוח[עריכת קוד מקור | עריכה]

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

  1. מחשבים את אם מתקבל מחזירים INVALID.
  2. מציבים .
  3. מחשבים את אם מחזירים INVALID.
  4. מחשבים את .

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

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

עקום אליפטי מעל שדה בינארי[עריכת קוד מקור | עריכה]

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

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

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

כללי החיבור והכפל בעקום אליפטי מעל שדה בינארי מורחב שונות במעט: לחיבור הנקודות ו- כאשר מבצעים:

כפל נקודה כאשר מתבצע על ידי:

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

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

החבורה הכפלית של השדה היא חבורה ציקלית, הנוצרת (למשל) על ידי החזקות של היוצר כדלהלן:

אם נבחר העקום האליפטי הבא:

חישוב , מתבצע לפי כללי האריתמטיקה דלעיל:

ובייצוג בינארי:

קואורדינטות פרויקטיביות[עריכת קוד מקור | עריכה]

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

,

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

צמצום מודולרי[עריכת קוד מקור | עריכה]

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

ביטחון[עריכת קוד מקור | עריכה]

האלגוריתם היעיל ביותר הידוע כיום לפתרון בעיית לוגריתם בדיד בחבורות, תחשיב האינדקסים אינו ישים בעקומים אליפטיים כיוון שהוא מסתמך על מספרים חלקים ולא קיימת הגדרה מתמטית ברורה למספרים חלקים בעקום אליפטי. אלגוריתם רו של פולרד ללוגריתמים נחשב לשיטה היעילה ביותר הקיימת כיום לפתרון בעיית ECDLP וסיבוכיותה היא בקירוב. על כן אינה יעילה (גם בגרסה המקבילית שלה) כשמדובר בשדה מסדר גדול. עבור ביטחון בסדר גודל של 128 סיביות מספיק שסדר העקום יהיה . לשם המחשה, מערכת מפתח ציבורי דורשת מפתח בסדר גודל של כ-2048 סיביות כדי שתקרא בטוחה ברמה המקבילה ל-AES עם מפתח באורך 128 סיביות. במערכת ECC מקבילה, מפתח בגודל 224 סיביות מספק בטיחות שקולה. לפי המלצות NIST בתקן 800-131A (תחת הכותרת שינוי אלגוריתמים קריפטוגרפיים ואורך מפתחות) שפורסם ביולי 2018[10], עד דצמבר 2023 ההמלצה היא להשתמש עבור RSA במפתחות באורך 2048 לפחות, עבור DSA מפתחות באורך (2048,224), (2048,256) או (3072,256) ועבור ECC מפתח באורך 224 סיביות ומעלה. ב-2004 פוצח עקום ECC109 עם מפתח בגודל 109 סיביות. לשם כך נדרשו 2600 יחידות מחשב שפעלו באופן מקבילי במשך 17 חודשים[11]. בנובמבר 2009 החלו קבוצת חוקרים בפרויקט לשבירת העקום ECC2K-130 מתוך רשימת האתגרים של חברת סרטיקום (שהפרס עליו היה 20,000$). זהו עקום קובליץ מעל השדה הבינארי בגודל 130 סיביות והוא העקום הקטן ביותר שטרם פוצח מתוך רשימת האתגרים של סרטיקום[12][13]. ההערכה המקורית של חברת סרטיקום בשנת 1997 הייתה שיקח לפחות ימים לשבירתו ולכן בהגדרה נאמר שהוא בלתי שביר. אולם המחקר האחרון מראה שבעקבות ההתקדמות הטכנולוגית הן ברמה חומרה והן ברמת תוכנה ההערכה הזו לא נכונה. כיום ההערכה היא שהעקום ניתן לשבירה וזה רק עניין של זמן (מספר שנים) עד שהוא יפוצח.

התקפת ערוץ צדדי[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – התקפת ערוץ צדדי

ההבדל המהותי בין חישוב פעולת חיבור לבין פעולת כפל של נקודות בעקום אליפטי, מהווה נקודת תורפה שיש להימנע ממנה, כיוון שמערכת המיישמת את ECC עלולה להדליף מידע פנימי כתוצאה מהפרשי הזמן במהלך ביצוע פעולות כפל וחיבור. התקפת ערוץ צדדי מנצלת מידע כזה. אפשר לחלק התקפה זו לשני סוגים עקריים, האחת נקראת Simple Power Analysis שבה מודדים את עצמת הצריכה של המעבד (CPU) במהלך ביצוע ECADD ו-ECDBL המתוארות לעיל בפרוצדורת כפל סקלרי. בשל הבדלים אילו ניתן לחלץ מידע קריטי מהמערכת. השנייה נקראת Differential Power Analysis, התקפה המבוססת על ניתוח סטטיסטי של מספר פעולות חישוב שבוצעו, כדי לחלץ מידע מהמערכת. כאמור לעיל לאור יתרונותיה, מערכת ECC מתאימה במיוחד ליישום במתקנים ניידים על כן נגישות התוקף למערכת ויכולתו למדוד את משך זמן ביצוע פעולות החישוב של יחידת העיבוד הנו בגדר אפשרי.

הפתרון להתקפת SPA (הראשונה) הוא שינוי פרוצדורת הכפל באופן שלא תדליף מידע קריטי. קיימות מספר שיטות יעילות לביצוע פעולה זו כגון: שיטת יעקובי (Jacobi) והסה (Hesse) המשתמשת באלגוריתם אחיד לחיבור וכפל סקלרי של נקודות. באופן כזה הזמן הדרוש לביצוע פעולות אילו זהה ועל כן לא דולף מידע קריטי. שיטה זו מתאימה לעקומים מיוחדים הנקראים "עקום קובליץ". או כפל סקלרי בשיטת קורון עם חיבור מדומה (double-and-always-add), כפל סקלרי בשיטת חלון, כפל סקלרי בשיטת סולם מונטגומרי וכן שיטת מולר (Möller) העושה שימוש ב-Addition chain. כנגד התקפת DPA, הוספת אקראיות כמו אקראיות פרויקטיבית עם שלם אקראי כלשהו מספקת.

גודל מפתח[עריכת קוד מקור | עריכה]

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

תקנים וזכויות יוצרים[עריכת קוד מקור | עריכה]

על בסיס בעיית לוגריתם בדיד בעקום אליפטי (ECDLP) המתוארת לעיל, ניתן ליישם את פרוטוקול דיפי-הלמן (ECDH), חתימה דיגיטלית DSA מעל עקום אליפטי (ECDSA), אל-גמאל וכן פרימיטיבים קריפטוגרפיים אסמיטריים אחרים כמו מחולל פסידו אקראי. NSA הכריזה על חבילה קריפטוגרפית Suit B המנצלת הצפנת עקום אליפטי (ECC) כדור חדש של הצפנה. היא אמורה להחליף את הטכנולוגיה האסימטרית כ-RSA ודומיה להגנה על סודות לאומיים מסווגים ולא מסווגים של ממשלת ארצות הברית. כמו כן קיימת מערכת ECC המבוססת על תבנית ביליניארית (הנקראת גם Weil pairing) המשמשת למערכת אימות זהויות מבוססת ID (שבה זהות המשתמש מהווה חלק מהמפתח הפומבי) כמו כן חברת Certicom הקנדית משווקת מגוון גדול של מערכות אבטחה המבוססות על עקום אליפטי.

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

שם התקן שנת הוצאה
ANSI X9.62 1999
IEEE P1363 2000
SEC 2 2000
NIST FIPS 186-2 2000
ANSI X9.63 2001
Brainpool 2005
NSA Suite B 2005
ANSSI FRP256V1 2011

דוגמה לעקום אליפטי שאינו מומלץ כיום לשימוש הוא P-192 שנכלל בתקן FIPS 186-2 וכן ב-SEC v2 ומובא כאן להמחשה בלבד:

משוואת העקום היא מעל השדה כאשר הוא ראשוני באורך 192 סיביות. סדר העקום הוא והפרמטרים הם לפי הסדר:

שם פרמטר ערך תיאור
המספר הראשוני של השדה
מקדם ראשון של משוואת העקום
מקדם שני של משוואת העקום
נקודת הבסיס בפורמט דחוס
קואורדינטה של נקודת הבסיס
קואורדינטה של נקודת הבסיס
הסדר של העקום
פקטור משלים


בשל העובדה שחלק ממערכות ECC מוגנות בפטנטים הפצתן והטמעתן התעכבה. חברת Certicom מחזיקה בכמאה וחמישים פטנטים הקשורים בהיבטים שונים של ECC. חברת אפל מחזיקה בפטנטים על יישום יעיל של ECC מעל השדה כאשר קרוב לחזקה של 2. ה-NSA רכשו זכויות שימוש במערכות ECC של חברת Certicom הקנדית והוסמכו לתת רישיון לכל גוף המעוניין לשלב ECC באפליקציות אבטחה בהן נעשה שימוש עבור ממשלת ארצות הברית. בעקבות החשיפות בפרשת סנודן, עלה חשש בציבור שחלק מתקני עקום אליפטי במיוחד אילו של NIST מכילים דלתות סתר שמאפשרות למי שיודע אותם לפרוץ את המערכת בקלות אם כי לא קיימות הוכחות ברורות לכך מלבד מקרה אחד. בעקבות הדלפות סנודן, פורסם בספטמבר 2013 בניו יורק טיימס שכחלק מפרויקט סודי של ה-NSA הנקרא "Bullrun" שמטרתו החדרת נקודות תורפה נסתרות בתקני הצפנה החדיר ה-NSA "דלת אחורית" במחולל הפסאודו אקראי Dual_EC_DRBG שהפך לתקן ובעקבות הפרסומים החליט NIST להפסיק לתמוך באלגוריתם והסיר אותו מהתקן. כיום NIST מנהל מדיניות פתוחה ומשתף פעולה באופן נרחב עם הקהילה האקדמית ועם גורמי תקינה בינלאומיים.

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

תקנים חדשים[עריכת קוד מקור | עריכה]

ב-2007 גילה המתמטיקאי הרולד אדוארד משפחה חדשה של עקומים אליפטיים מהצורה . מאוחר יותר פרסמו דניאל ברנשטיין וטניה לאנג שאפשר לנצל את עקומי אדוארד ווריאציות מפותלות שלהם לצורך קריפטוגרפי[15]. האטרקטיביות של עקומים אילו היא בעובדה שחיבור נקודות בהם קל יותר. עקומי אדוארד נוטים להיות קלים יותר למימוש באופן בטוח בגלל שהם תומכים בנוסחאות חיבור שלמות שאינן כוללות מקרים חריגים שעלולים להוביל לחילוק באפס. מה שמאפשר מימוש בטוח באופן כזה שאינו מדליף מידע צדדי. כמו כן עקומים אילו מהירים ופשוטים יחסית. לכל עקומי אדוארד והגרסאות המפותלות שלהם יש פקטור משלים המתחלק בארבע, מסיבה זו עקומי NIST מסדר ראשוני אינם ניתנים לייצוג בצורה זו. מאז נוספו מספר עקומים חדשים המבוססים על עקומי אדוארד וכן עקומי מונטגומרי שהמכנה המשותף שלהם הוא ביטחון ויעילות גבוהים לפי סטנדרטים מחמירים ביותר. בטבלה הבאה נכללו מספר עקומים אליפטיים חדשים שאינם מוגנים בפטנטים ושעוצבו לאחר 2007 כאשר רמת הביטחון שלהם נמדדת לפי המודולוס הראשוני , ליתר דיוק בפקטור שהוא מחצית מאורכו בסיביות. למשל אם סיביות ביטחון העקום הוא בקירוב, שזה מקביל לביטחון של צופן AES עם מפתח באורך 128 סיביות.

שם העקום משוואת העקום המודולוס הראשוני מפתחים
M-221 Aranha, Barreto, Pereira, Ricardini, 2013
E-222 Aranha, Barreto, Pereira, Ricardini 2013
Curve1174 Bernstein, Hamburg, Krasnova, Lange 2013
Curve25519 Bernstein 2007
E-382 Aranha, Barreto, Pereira, Ricardini, 2013
M-383 Aranha, Barreto, Pereira, Ricardini, 2013
Curve383187 Aranha, Barreto, Pereira, Ricardini, 2013
Curve41417 Bernstein, Lange 2013
Ed448 Hamburg 2014
M-511 Aranha, Barreto, Pereira, Ricardini, 2013
E-521 Aranha, Barreto, Pereira, Ricardini, 2013

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ Victor S. Miller: Use of Elliptic Curves in Cryptography. CRYPTO 1985: 417-426
  2. ^ Neal Koblitz, Elliptic curve cryptosystems, Math. Computation, Vol. 48 (1987) pp. 203-209.
  3. ^ J. Pollard, "Monte Carlo methods for index computation mod p", Mathematics of computation, 32 (1978), 918-924
  4. ^ S. Pohlig and M. Hellman, "An improved algorithm for computing logarithms over GF(p) and its cryptographic significance", IEEE Transactions on Information Theory, 24 (1978), 106-110
  5. ^ A. Menezes, M. Qu and S. Vanstone, "Key agreement and the need for authentication", presentation at PKS '95, Toronto, Canada, November 1995
  6. ^ A. Menezes, T. Okamoto and S. Vanstone, "Reducing elliptic curve logarithms to logarithms in a finite field", IEEE Transactions on Information Theory, 39 (1993), 1639-1646
  7. ^ T. Satoh and K. Arkai, "Fermat quotients and the polynomial time discrete log algorithm to anomalous elliptic curves", Commentarii Mathematici Universitatis Sancti Pauli, 47 (1998), 81-92
  8. ^ Elliptic Curves Over Finite Fields and the Computation of Square Roots mod p
  9. ^ Schoof-Elkies-Atkin Algorithm
  10. ^ Transitioning the Use of Cryptographic Algorithms and Key Lengths
  11. ^ CERTICOM ANNOUNCES ELLIPTIC CURVE CRYPTOGRAPHY CHALLENGE WINNER April 27, 2004, Certicom Corp.
  12. ^ The Certicom ECC Challenge
  13. ^ Breaking Elliptic Curve Cryptosystems Using Reconfigurable Hardware, 2010
  14. ^ SafeCurves: choosing safe curves for elliptic-curve cryptography
  15. ^ Faster addition and doubling on elliptic curves Daniel J. Bernstein and Tanja Lange, ASIACRYPT 2007