הצפנה מבוססת עקומים אליפטיים
הצפנה בעקום אליפטי (Elliptic Curve Cryptography, ובקיצור ECC), היא מערכת הצפנה אסימטרית, שבה מממשים אלגוריתם הצפנה מוכר כמו (פרוטוקול דיפי-הלמן), באמצעות מבנה אלגברי-גאומטרי ייחודי בשם "עקום אליפטי", המוגדר מעל שדה סופי גדול. יש הסבורים כי בבחירת פרמטרים מושכלת, בטיחות שיטה זו אינה נופלת מזו של השיטות הידועות המבוססות ברובן על אריתמטיקה מודולרית, למרות שימוש במפתח הצפנה קטן משמעותית.
תוכן עניינים |
[עריכה] היסטוריה ורקע
עקומים אליפטיים הם אובייקטים מתמטיים הנחקרים בתחומים רבים, בעיקר אנליזה מרוכבת, תורת המספרים וגאומטריה אלגברית. למרות תיאורם האלגנטי, הבסיס התאורטי שלהם עמוק ומורכב ביותר. בשל סגולותיהם המיוחדות, עקומים אליפטיים נחקרו מזה שנים רבות על ידי טובי המתמטיקאים. הם סייעו בעבר בתחומים שונים בתורת המספרים כמו פירוק לגורמים ובדיקת ראשוניות ושיחקו תפקיד מרכזי בהוכחת המשפט האחרון של פרמה. כיום נחשבים עקומים אליפטיים ככלים קריפטוגרפיים מבטיחים. קיימים תקנים בינלאומיים לשיטות הצפנה מבוססות עקומים אליפטיים והמחקר בנושא עדיין בעיצומו.
רעיון השימוש בעקום אליפטי ככלי קריפטוגרפי הועלה לראשונה ב-1985 על ידי ויקטור מילר[1] ומעט מאוחר יותר על ידי ניל קובליץ[2]. כאמור רעיון יישום הצפנת מפתח-פומבי (כדוגמת פרוטוקול דיפי-הלמן) בשדות סופיים הנוצרים מעקום אליפטי, מציע יתרון משמעותי על פני שיטות הצפנה אסימטריות אחרות, בשל השימוש במפתח הצפנה קטן יותר. תכונה זו מאפשרת יישום יעיל של ההצפנה בסביבה מוגבלת במשאבים, כדוגמת מעגלים משולבים במתקנים ניידים כמו טלפון סלולרי, כרטיס חכם וכדומה.
הצפנת מפתח-פומבי מבוססת כידוע על פונקציה חד כיוונית עם דלת מלכודת (Trapdoor) שהיא "מידע נסתר" המכונה מפתח פרטי, בעזרתו שחזור הפונקציה הופך לקל. "הדור הראשון" של מערכות מפתח-פומבי כמו RSA ודומיה מתבססות על מספר מצומצם של בעיות מתמטיות קשות כפירוק לגורמים ולוגריתם דיסקרטי בחבורות. השאיפה היא שללא המפתח הפרטי, שחזור הפונקציה יהיה קשה לפחות כפתרון הבעיה המתמטית עליה היא מבוססת; טענה שלא הוכחה מתמטית בכל מערכות ההצפנה האסימטריות (למעט הצפנת רבין).
חסרונן העיקרי של שיטות אילו הוא באורך מפתח ההצפנה. בשל ההתקדמות הטכנולוגית (בעיקר בפירוק לגורמים), מפתחות ההצפנה במערכות מפתח-פומבי מסוג זה חייבים להיות בסדר גודל של אלפי ספרות בינאריות, בשל פגיעותן לאלגוריתמים ידועים לפתרון הבעיות עליהן הן מסתמכות. עובדה המאפילה על יעילותם, כיוון שחישובים אריתמטיים בסדר גודל כזה איטיים מאוד. על כן ברור מדוע הצפנת עקום אליפטי זוכה להתעניינות רבה מצד מומחים. ה-NSA כינה אותה "הדור השני" של הצפנת מפתח-פומבי. זאת משום שהאלגוריתמים הטובים ביותר הידועים כיום לפתרון הבעיות המתמטיות הנפוצות, אינם ישימים באופן כללי בעקומים אליפטיים, בשל כך ניתן להקטין באופן משמעותי את אורכם של מפתחות ההצפנה, מבלי לסכן את בטיחות המערכת.
[עריכה] הגדרה כללית
עקום אליפטי הוא עקום אלגברי פרויקטיבי חלק (שאין לו "קצוות חדים"), המוגדר על ידי משוואה ממעלה שלישית. ניתן להגדיר עקום אליפטי מעל כל שדה. מעל שדה בעל מאפיין שאינו 2 או 3, אפשר להגדיר את העקום באמצעות הנוסחה:
כאשר
ו-
קבועים. העקום הנו קבוצת כל הנקודות המקיימות את המשוואה האמורה, בתוספת נקודה מיוחדת הנקראת "הנקודה באינסוף", אותה מקובל לסמן ב-
. המשוואה מתארת עקום אליפטי אם ורק אם הדיסקרימיננטה
.
מעל שדה בעל מאפיין 2, צורתו של העקום האליפטי (שאינו סופרסינגולרי) נתונה על ידי:
, כאשר 
שמם של עקומים אלה מגיע מהאינטגרלים האליפטיים, הקשורים באורך קשת האליפסה. מעל שדה המספרים המרוכבים, העקום איזומורפי לטורוס. ניתן להגדיר עקום אליפטי גם מעל שדה המספרים הממשיים, למשל אם
ו-
מתקבל עקום אליפטי עם המשוואה:
.
על אוסף הנקודות בעקום (לרבות הנקודה באינסוף) אפשר להגדיר פעולה בינארית
, ההופכת אותו לחבורה אבלית, שבה הנקודה באינסוף היא הנקודה הנייטרלית. מבחינה מעשית, חישוב הנקודה
, כאשר
ו-
נקודות נתונות על העקום, אורך כשלושים פעולות יסודיות של חיבור, כפל וחילוק בשדה שמעליו העקום מוגדר.
בתורת ההצפנה משתמשים בעקומים אליפטיים מעל שדה סופי. בפועל, מקובל לבחור בשדות
מסדר ראשוני גדול, או בשדות בינאריים
, כאשר
גדול.
[עריכה] אריתמטיקה בעקומים אליפטיים
בייצוג גרפי פעולת החיבור היא השתקפות הנקודה השלישית המשיקה ליישר העובר דרך שתי נקודות
ו-
(ראו תרשים). כאמור כיוון שהעקום אינו סינגולרי, ישר העובר דרך שתי נקודות יחתוך את העקום בדיוק בנקודה נוספת אחת ויחידה.
מייצג את שיפוע הישר החותך את הנקודות. במקרה של
(כאשר
היא נקודת ההשתקפות של
) הישר העובר דרכם אנכי ולכן התוצאה מוגדרת כנקודת האין סוף
, לכן
.
[עריכה] כללי האריתמטיקה לעקום מעל שדה בעל מאפיין שאינו 2 או 3
סכום שתי נקודות (ECADD): אם נתונות הנקודות
ו-
, ואם
, אזי הסכום
מחושב כדלהלן:
הכפלת נקודה יחידה (ECDBL): את
מחשבים כדלהלן:
במקרה ש-
אזי
.
הנקודה ההפכית של
היא
.
[עריכה] כללי האריתמטיקה לעקום מעל שדה בעל מאפיין 2 (לעקום שאינו סופרסינגולרי)
סכום שתי נקודות (ECADD)
:
הכפלת נקודה יחידה (ECDBL)
:
הנקודה ההפכית של
היא
.
[עריכה] פעולת כפל סקלרי (Scalar Multiplication)
להבדיל מכפל רגיל מכנים פעולת כפל נקודות בעקום בשם כפל סקלרי. הכפלה של נקודה
בשלם
כלשהו הינה בעצם פעולת חיבור חוזר
. פעולה זו ניתן לבצע על ידי אלגוריתם המנצל את הייצוג הבינארי של
כדי לבצע פעולות חוזרות של חיבור וכפל המתוארים לעיל. בשיטה זו זמן החישוב תלוי ב-
ועל-כן בתנאים מסוימים עלול לחשוף את המערכת להתקפות "Side Channel". קיימות שיטות אחרות, איטיות אך בטוחות יותר לביצוע כפל סקלרי.
[עריכה] דוגמה לאלגוריתם הצפנה בסיסי
אלגוריתם ההצפנה המתואר להלן אנלוגי לצופן אל-גמאל, אלא שכאן הוא מבוסס על עקום אליפטי. עקום אליפטי מספק כלי כללי ליצירת פונקציה חד כיוונית עם דלת מלכודת (Trapdoor) ולפיכך עקרונית ניתן לישם כל מערכת הצפנה אסימטרית העושה שימוש בפונקציה שכזו.
[עריכה] הכנת מפתחות
- אליס בוחרת עקום אליפטי (הפרמטרים לבחירת העקום מפורטים בתקנים שונים) מעל שדה סופי
. ובוחרת נקודה קבועה
כלשהי על העקום. נניח שלנקודה זו סדר
. אזי תת-החבורה הציקלית של
הנוצרת על ידי
היא:
- אליס בוחרת שלם אקראי
בטווח
אשר ישמש כמפתח פרטי, אותו היא שומרת בסוד. - המפתח הפומבי של אליס הוא:
. - הפרמטרים של העקום האליפטי, דהיינו
, פומביים גם כן ומכונים "Domain Parameters".
[עריכה] הצפנה
בוב משיג עותק אותנטי של המפתח הפומבי של אליס ומצפין את המסר
כדלהלן:
- בוב מייצג את המסר
כנקודה
על העקום האליפטי. - בוחר מספר אקראי
ומחשב את
ואת
. - ושולח לאליס הודעה מוצפנת המכילה את
ואת
, כאשר:
ואילו:
.
[עריכה] פענוח
- בעזרת המפתח הפרטי אליס מחשבת תחילה את
. - ומשחזרת את
על ידי חישוב
והמרת הייצוג חזרה ל-
.
[עריכה] מדוע זה עובד
למעשה אליס מחשבת את: 
ויכולה לשחזר את
מכיוון ש-
.
[עריכה] טכניקות להאצת תהליך ההצפנה וייעולו
בשל החישובים המורכבים הדרושים, יישום מערכת הצפנה מבוססת עקומים אליפטיים בצורה נאיבית הינו איטי ומסורבל. השאיפה היא שהמערכת תהיה אופטימלית (במונחי עיבוד וזיכרון) ככל שניתן והדבר חשוב במיוחד במערכות ניידות שמטבען מוגבלות יותר ממקבילותיהן הנייחות. לפיכך, נוקטים במספר טכניקות להאצת תהליך ההצפנה, המנצלות תכונות של השדה מעליו מוגדר העקום. תקני עקומים אליפטיים מפרטים דרכים יעילות ליישום הצפנת עקום אליפטי לצד המלצות לעקומים אליפטיים אופטימליים ובטוחים.
[עריכה] עקום אליפטי בשדה בינארי
שדה בינארי הוא שדה סופי בעל מאפיין 2, כאשר מספר האברים בו הוא תמיד חזקה של 2. לכן ניתן ליצג כל אלמנט בשדה כמחרוזת של
סיביות. מקובל לסמנו
. קיים רק שדה אחד בגודל
עבור כל שלם
נתון.
למטרות הצפנה, מקובל לבחור
ראשוני גדול, משום שאז אין לשדה תת שדות. את גודלו של
יש לבחור בהתאם לדרישות האבטחה מחד, ולביצועים הרצויים מאידך. לשדות בינאריים יתרון ברור כשמדובר בחומרה ותוכנה, משום שפעולת החיבור בשדה מבוצעת על ידי פעולת ה-XOR, שהיא פעולה יסודית ומהירה במחשב.
דוגמה. נתון השדה הבינארי
בן 16 אברים, הניתן להצגה כהרחבה של השדה בן שני האברים
, כחוג המנה
. באופן הזה, כל איבר בשדה הוא מהצורה
כאשר
, ובאופן חסכוני אפשר להציג איבר כזה כמחרוזת סיביות,
.
החבורה הכפלית של השדה היא חבורה ציקלית, הנוצרת (למשל) על ידי החזקות של היוצר
כדלהלן:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
אם נבחר העקום האליפטי הבא: 
חישוב
, מתבצע לפי כללי האריתמטיקה דלעיל:
ובייצוג בינארי: 
[עריכה] קואורדינטות פרויקטיביות
אפשר לראות שחיבור נקודות בעקום אליפטי דורש בנוסף לכפל וחיבור רגילים פעולת היפוך (inverse) קרי, חישוב הופכי כפלי מודולרי: בהינתן
לחשב את
המקיים:
. בדרך כלל חישוב הופכי כפלי היא פעולה יקרה במונחי חישוב ומשתדלים להימנע ממנה כשאפשר. קיימת דרך יישום ל-ECC הנקראת מערכת פרויקטיבית (projective system), המאפשרת חיבור נקודות בלי השימוש בהיפוך. מערכת זו מכילה 3 קואורדינטות
עבור כל נקודה, כאשר
ו-
.
[עריכה] צמצום מודולרי
ניתן ליעל באופן משמעותי את פעולת הצמצום המודולרי הדרושה בכפל וחיבור בעקום אליפטי אם הראשוני
הוא מספר מרסן (מספר מהצורה
) לדוגמה
. עקומים עם מספר ראשוני מסוג זה מומלצים על ידי NIST בליווי הסברים כיצד לבצע צמצום מודולרי יעיל במספרים אלו.
[עריכה] בטיחות
כיון שקיימת הקבלה בין החבורה הנוצרת מעקום אליפטי בשדה סופי והחבורה הכפלית מודולו ראשוני
. אפשר למעשה להגדיר את בעיית לוגריתם דיסקרטי בעקום אליפטי כדלהלן: בהינתן עקום אליפטי
מעל
מסדר
, הנקודה
והנקודה
, מצא שלם
בטווח
, המקיים
בתנאי ששלם כזה אכן קיים. בעיית לוגריתם דיסקרטי בעקום אליפטי (ECDLP) נחשבת לבעיה קשה יותר מבעיית לוגריתם דיסקרטי בחבורות. האלגוריתם היעיל ביותר הידוע כיום לפתרון בעיית לוגריתם דיסקרטי בחבורות, תחשיב האינדקסים אינו ישים בעקומים אליפטיים כיוון שהוא מסתמך על "מספרים חלקים" ולא קיימת הגדרה מתמטית ברורה למספרים חלקים בעקום אליפטי. שיטת פולרד הנה השיטה היעילה ביותר הקיימת כיום לפתרון בעיית ECDLP וסיבוכיותה היא
בקירוב. על כן אינה יעילה (גם בגרסה המקבילית שלה) כשמדובר בשדה מסדר גדול. עבור בטיחות של 128 סיביות מספיק שהסדר יהיה
. לשם המחשה, מערכת מפתח פומבי (בחבורות) דורשת מפתח פומבי בסדר גודל של כ-2048 סיביות כדי שתקרא בטוחה. במערכת ECC מקבילה, מפתח בגודל 224 סיביות מספק בטיחות שקולה. מערכת ECC היחידה שנפרצה נכון להיום הייתה עם מפתח בגודל 109 סיביות. בפריצת ECC עם שדה ראשוני בגודל זה, נדרשו כעשרת אלפים יחידות מחשב שפעלו באופן מקבילי ללא הרף במשך תקופה של 540 יום.
[עריכה] Side channel attack
ההבדל המהותי בין חישוב פעולת חיבור לבין פעולת כפל של נקודות בעקום אליפטי, מהווה נקודת תורפה שיש להימנע ממנה, כיוון שמערכת המיישמת את ECC עלולה להדליף מידע פנימי כתוצאה מהפרשי הזמן במהלך ביצוע פעולות כפל וחיבור. התקפת Side channel attack בקיצור SCA מתחלקת לשני סוגים עקריים האחת נקראת Simple Power Analysis שבה מודדים את עצמת הצריכה של יחידת העיבוד (כגון motorola 6805, או Intel 8051) במהלך ביצוע ECADD ו-ECDBL המתוארות לעיל בפרוצדורת כפל סקלרי. בשל הבדלים אילו ניתן לחלץ מידע קריטי מהמערכת. השנייה נקראת Differential Power Analysis, התקפה המבוססת על ניתוח סטטיסטי של מספר פעולות חישוב כדי לחלץ מידע מהמערכת. כאמור לעיל לאור יתרונותיה, מערכת ECC מתאימה במיוחד ליישום במתקנים ניידים על כן נגישות התוקף למערכת ויכולתו למדוד את משך זמן ביצוע פעולות החישוב של יחידת העיבוד הנו בגדר אפשרי.
הפתרון להתקפת SPA (הראשונה) הוא שינוי פרוצדורת הכפל באופן שלא תדליף מידע קריטי. קיימות מספר שיטות יעילות לביצוע פעולה זו כגון: שיטת יעקובי (Jacobi) והסה (Hesse) המשתמשת באלגוריתם אחיד לחיבור וכפל סקלרי של נקודות. באופן כזה הזמן הדרוש לביצוע פעולות אילו זהה ועל כן לא דולף מידע קריטי. שיטה זו מתאימה לעקומים מיוחדים הנקראים "עקום קובליץ". או כפל סקלרי בשיטת קורון עם חיבור מדומה (double-and-always-add), כפל סקלרי בשיטת חלון, כפל סקלרי בשיטת סולם מונטגומרי וכן שיטת מולר (Möller) העושה שימוש ב-Addition chain. כנגד התקפת DPA, הוספת אקראיות כמו אקראיות פרויקטיבית
עם
שלם אקראי כלשהו מספקת.
[עריכה] גודל מפתח
מאחר ומפתח למעשה מייצג נקודה בעקום, גודלו הוא למעשה שתי הקואורדינטות x ו-y. אולם ניתן להפחית בגודל המפתח על ידי דחיסת הקואורדינטה y כך שנדרשת רק סיבית אחת ליצגה באופן שאפשר יהיה לשחזרה לאחר מכן. כך שאפקטיבית גודל המפתח הוא בערך כגודל הקואורדינטה x. היות שהקואורדינטות הם בערך כגודל הסדר של השדה (מספר האלמנטים) הרי שחוסן אלגוריתם ההצפנה תלוי למעשה בסדר. לצורך השוואה להשגת רמת בטיחות של 128 סיביות (למשל אותה רמת בטיחות המושגת עם אלגוריתם סימטרי כמו AES ומפתח בגודל 128 סיביות) הסדר של שדה במערכת ECC יכול להיות בסדר גודל של 256 סיביות, רק לשם השוואה במערכת מפתח-פומבי טיפוסית כמו RSA יש צורך במודולוס בגודל 3072 סיביות, להשגת רמת בטיחות זהה.
[עריכה] יישומים מעשיים
על בסיס הגדרת בעיית לוגריתם דיסקרטי בעקום אליפטי (ECDLP) המתוארת לעיל, ניתן ליישם את פרוטוקול דיפי-הלמן, אלגוריתם DSA מעל עקום אליפטי הנקרא ECDSA וכן אלגוריתמים אסימטריים ידועים אחרים. אך יש צורך להמיר את המסר או המפתח לנקודה בעקום. אין זה פשוט כל כך כיון שלא לכל
יש
מתאים בעקום. על כן לא כל מערכת אסימטרית ניתנת ליישום בעקום אליפטי. הסוכנות לביטחון לאומי של ארצות הברית (NSA) הכריזה על Suit B, המנצלת הצפנת עקום אליפטי (ECC) עבור חתימה דיגיטלית והעברת מפתח הצפנה. ערכה זו אמורה להחליף את הטכנולוגיה האסימטרית הקודמת כגון RSA ודומיה, להגנה על סודות לאומיים מסווגים ולא מסווגים של ממשלת ארצות הברית. כמו כן קיימת מערכת ECC המבוססת על תבנית בילינארית (הנקראת גם Weil pairing) המשמשת למערכת אימות זהויות מבוססת ID (שבה זהות המשתמש מהווה חלק מהמפתח הפומבי). וכן חברת Certicom הקנדית משווקת מגוון גדול של מערכות אבטחה המבוססות על עקום אליפטי.
ביישומים מעשיים בדרך כלל מיישמים את ECC מעל שדה עם נקודה קבועה
שהסדר
שלה (השלם הקטן ביותר המקיים
) הוא כפולה של ראשוני גדול
ושלם קטן מאוד
הנקרא co-factor. בשל שיקולי יעילות נהוג להימנע מ-
גדול מדי. המקובל הוא ש-
לעתים
. מציאת הסדר של עקום אליפטי (קרי, מספר הנקודות) אינו דבר קל, קיימים אמנם אלגוריתמים לשם כך (כמו אלגוריתם שוף - Schoof). על כל פנים, כיוון שהסדר נחוץ בפרוטוקולים קריפטוגרפיים מסוימים, נהוג לבנות עקום אליפטי באופן כזה שהסדר קל לחישוב. למעשה התקנים למערכות ECC מגדירים פרוצדורות שונות להכנת עקום אליפטי בטוח העונה על הדרישות הרצויות וכן מכילים אוסף עקומים אליפטיים מומלצים לצורך ECC.
[עריכה] תקנים וזכויות
הצפנת ECC כבר שולבה בתקנים בינלאומיים שונים כמו תקן FPIS 186-2 של NIST, תקן X9.62-1998 של ANSI, תקן SEC 1 של חברת Certicom וכן IEEE 1363-2000.
תקן FIPS 186-2 מפרט עקומים אליפטיים בעלי תכונות המקלות על הפעולות האריתמטיות. תקן זה ותקנים אחרים ממליצים על שימוש בפונקציית גיבוב בטוחה להכנת העקום. דוגמה לעקום אליפטי כזה היא P-192 (ראשוני בגודל 192 סיביות):
- מספר ראשוני:
- הסדר:
- גרעין התחלתי לפונקציית הגיבוב (SHA-1):
- פלט פונקציית הגיבוב:
- המקדם
המקיים
:
- הקואורדינטה x של הנקודה G:
- הקואורדינטה y של הנקודה G:
חלק ממערכות ECC מוגנות בפטנטים וזו אחת הסיבות מדוע מערכות ECC אינן נפוצות כל כך. חברת Certicom מחזיקה בכמאה וחמישים פטנטים הקשורים בהיבטים שונים של ECC כגון אלגוריתם ECQMV. חברת אפל מחזיקה בפטנט על יישום יעיל של ECC מעל השדה
כאשר
קרוב לחזקה של 2. ה-NSA רכשו זכויות שימוש מוגדרות במערכות ECC של חברת Certocim לצורך שימוש להצפנת מידע עבור הממשל. והם מוסמכים לתת רישיון לכל גוף המעוניין לשלב ECC באפליקציות אבטחה בהן נעשה שימוש עבור ממשלת ארצות הברית.
[עריכה] ביבליוגרפיה
[עריכה] ראו גם
[עריכה] קישורים חיצוניים
- NSA, "הדור החדש של ההצפנה האסימטרית", The Case for Elliptic Curve Cryptography
- המכון הלאומי לסטנדרט וטכנולוגיה של ממשלת ארצות הברית נספח לתקן הצפנה בעקומים אליפטיים: Recommended Elliptic Curves For Federal Government Use
- חברת Certicom הקנדית, תקן עקומים אליפטיים בהצפנה SEC 1: Elliptic Curve Cryptography, כולל סקירה תמציתית של ארתימטיקה בעקום אליפטי, אלגוריתמים ופרוטוקולים ודיון בסוגיית הבטיחות.
- קורס בהצפנה בעקומים אליפטיים למתחילים, באתר חברת Certicom.

, כאשר 
מסדר ראשוני
.










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





















:


