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

חידת מרקל
---------

חידת מרקל היא הצפנת טקסט גלוי כלשהו המכיל בתוכו סוד מסוים, המוחלשת במכוון באופן שניתן יהיה לפענחה באמצעות כוח גס, במאמץ מסוים שהוא בפקטור שניתן לשליטה. הדרך הפשוטה להכנתה היא באמצעות צופן סימטרי, נניח AES. מצפינים מסר הכולל סוד (מפתח הצפנה חד-פעמי) באמצעות מפתח הצפנה מוחלש אותו מכינים מ-n ספרות אקראיות והיתר מקבוע כלשהו שאינו סודי כמו מחרוזת אפסים. לדוגמה אם המפתח באורך 128 סיביות, והוא מורכב מ-96 אפסים מובילים ו-32 ספרות אקראיות, סיבוכיות התקפת כוח גס כנגד הצופן, דהיינו ניסוי כל המפתחות האפשריים היא 2^{32} שזה בר ביצוע מבחינה מעשית, אך דורש מאמץ מסוים. אפשר לשלוט בכמות העבודה על ידי שינוי n. כמו כן כדי שקל יהיה לדעת אם הפענוח הצליח, יש צורך להוסיף יתירות מכוונת כמו טקסט קבוע מוסכם מראש (למשל "חידה מספר..."). הטקסט הקבוע אינו סודי וידוע גם למצותת.

מחידה כזו אפשר לבנות פרוטוקול שיתוף מפתח כדלהלן; צד אחד, נניח אליס, מכינה חידות רבות, כאשר כל חידה היא הצפנה של מפתח-הצפנה סודי אקראי ומספר סידורי. שימו לב שמדובר במפתח שונה מהמפתח שאיתו אליס מצפינה את החידה. כל חידה מכילה מפתח הצפנה סודי אחר ומוצפנת במפתח שונה, למעשה מספר החידות הוא כמספר המפתחות האפשריים בטווח {\displaystyle [0-2^{n}]}. את החידות היא שולחת לצד השני, נניח בוב. בוב בוחר באקראי חידה אחת אותה הוא מפענח בכוח גס, דהיינו מנסה את כל המפתחות האפשריים עד 2^{n} (במקרה הגרוע) עד שמוצא את המפתח הנכון, מחלץ את המפתח הסודי שבתוכה יחד עם המספר הסידורי, שולח את המספר הסידורי בחזרה לאליס ושומר את המפתח הסודי. אליס שהכינה את החידות בעצמה יודעת באמצעות המספר הסידורי איזו מהחידות פוענחה לכן יודעת איזה מפתח הצפנה ברשות בוב וכעת הם משתפים ביניהם את אותו מפתח.

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

תיאור הפרוטוקול
---------------

אליס ובוב מעוניינים לשתף ביניהם מפתח הצפנה סודי על מנת שיוכלו להתקשר זה עם זה בבטחה בערוץ פתוח. נניח לצורך הפרוטוקול שהם משתמשים בצופן AES עם מפתח 128 סיביות המיוצג כאן על ידי E ונניח שכל מפתח p\_{i} בנוי משרשור מחרוזת של {\displaystyle 128-n} אפסים עם מספר אקראי כלשהו בגודל n סיביות. עם מפתח זה אליס משתמשת כדי להצפין חידה אחת. מבנה החידה הוא מפתח אקראי סודי בגודל 128 סיביות המסומן כאן K\_i ומספר סידורי i כשהם מוצפנים יחד עם טקסט קבוע כלשהו כמו {\displaystyle {\text{Puzzle }}\#}. הם יפעלו כדלהלן:

1. אליס קובעת פקטור n (למשל {\displaystyle n=32}), כך שהמאמץ הדרוש לפענוח חידה אחת יהיה 2^{n}.
2. בוחרת 2^{n} מספרים אקראיים {\displaystyle p\_{i}\in \{0,1\}^{n}} (בגודל n סיביות). כל אחד מהם מרופד באפסים משלימים לקבלת אורך 128 סיביות: {\displaystyle p\_{i}=0^{128-n}\|\ p\_{i}}.
3. בוחרת 2^{n} מפתחות הצפנה סודיים אקראיים K\_i (בגודל 128 סיביות).
4. מכינה 2^{n} חידות כדלהלן עבור {\displaystyle i=1,...2^{n}} החידה: {\displaystyle {\text{Puzzle}}\_{i}=E\_{p\_{i}}({\text{''Puzzle }}\#{\text{''}}\ i\ \|\ K\_{i})}. הסימן \| מייצג שרשור (הדבקת שתי מחרוזות למחרוזת אחת גדולה יותר).
5. שולחת את 2^{n} החידות לבוב.
6. בוב בוחר באופן אקראי חידה אחת ומפענח אותה באמצעות כוח גס ומחלץ את הטקסט הגלוי {\displaystyle {\text{''Puzzle }}\#{\text{i''}}} ואת K\_i.
7. בוב מחזיר לאליס את המספר הסידורי של החידה i ושומר בסוד את K\_i.
8. אליס מוצאת את המפתח המתאים למספר הסידורי i וכעת הם משתפים ביניהם את K\_i מבלי שהמצותת יוכל לדעת.

### סיבוכיות

נניח {\displaystyle N=2^{n}}, מהפרוטוקול עולה שהמאמץ הדרוש לאליס להכנת כל החידות הוא {\displaystyle O(N)}, כמו כן המאמץ הדרוש לבוב לפיענוח חידה אחת גם הוא {\displaystyle O(N)}. אולם עבור המצותת איב המאמץ הדרוש לפתרון חידה אחת הוא 2^{n} וישנן N חידות, במקרה הממוצע עליה לפענח לפחות מחצית מהן, כלומר {\displaystyle 1/2N\cdot O(N)} שזה {\displaystyle O(N^{2})}. כלומר הוכח שקיים פער ריבועי של פקטור העבודה בין המשתתפים בפרוטוקול לבין המצותת, אך לא יותר מזה. מסיבה זו הפרוטוקול אינו יעיל, כיוון שלכל היותר מושג ביטחון ריבועי. למשל אם {\displaystyle N=2^{32}} ביטחון המערכת הוא רק {\displaystyle 2^{64}}, שזה מעט ולא מצדיק את ההשקעה הדרושה מצד אליס ובוב. למרות זאת, עדיין אפשר לראות בשיטה כחלוצה ראשונה של תפישת המפתח הפומבי. רלף מרקל פיתח את שיטת החידות שלו כשהיה סטודנט בברקלי, וכבר אז צפה את הפוטנציאל הטמון במערכת מפתח פומבי, אולם לא הכול עמדו על חשיבותה. מאוחר יותר, כאשר דיפי והלמן פרסמו את עבודתם בנושא הצפנת מפתח ציבורי, ציינו שהרעיון של מרקל היווה בין היתר השראה עבורם לפיתוח מה שנודע לאחר מכן כפרוטוקול דיפי-הלמן, תגלית שהשפיעה מאוד על הקריפטוגרפיה המודרנית.

קישורים חיצוניים
----------------

* Ralph C. Merkle, Secure Communications Over Insecure Channels, 1978.

| * צ
* ש
* ע
קריפטוגרפיה |
| --- |
| 

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

 |

 |
| 

| הצפנה קלאסית |
| --- |
| 
* מכונת הצפנה
* צופן החלפה
* צופן אתב"ש
* צופן קיסר
* צופן ויז'נר
* צופן ורנם
* צופן פלייפייר
* צופן היל
* אולטרה
* אניגמה
* ציקלומטר
* קולוסוס
* PURPLE
* ג'ייד
* מג'יק
* צופן שחלוף

 |

 |
| 

| צופן בלוקים |
| --- |
| 
* לוציפר
* AES
* 3DES
* DES
* Threefish
* Twofish
* Blowfish
* FEAL
* SEED
* CAST
* IDEA
* RC2
* RC6
* MARS
* RC5
* GOST
* Serpent
* MISTY
* KASUMI
* קמליה
* ARIA
* SAFER
* TEA
* LEA
* CLEFIA
* SEA
* Hummingbird
* PRESENT
* KATAN
* KeeLoq
* Simon & Speck
* אנוביס

 |

 |
| 

| אופני הפעלה |
| --- |
| 
* אופן הפעלה של צופן בלוקים
* EAX
* OCB
* IAPM
* CWC mode
* GCM
* CCM

 |

 |
| 

| צופן זרם |
| --- |
| 
* RC4
* Salsa20
* SOSEMANUK
* Grain
* E0
* A5/1
* A5/2
* A5/3
* A5/4
* MICKEY
* HC-128
* SNOW
* Trivium
* Rabbit
* ZUC
* ChaCha

 |

 |
| 

| הצפנה אסימטרית |
| --- |
| 
* פרוטוקול דיפי-הלמן
* חידות מרקל
* חתימת למפורט
* הצפנת תרמיל
* RSA
* הצפנת רבין
* חתימה דיגיטלית רבין
* צופן אל-גמאל
* חתימה דיגיטלית אל-גמאל
* DSA
* הצפנת בלום-גולדווסר
* ECC
* הצפנת קריימר-שופ
* הצפנת פאיי
* הצפנת מקאליס
* GGH
* NTRU
* עקום 25519
* חתימה דיגיטלית של שנור
* הצפנת אוקמוטו-אושיאמה

 |

 |
| 

| פרוטוקולים |
| --- |
| 
* עץ מרקל
* פרוטוקול אתגר-מענה
* פרוטוקול נידהאם-שרודר
* פרוטוקול קרברוס
* הוכחה באפס ידע
* פרוטוקול פייגה-פיאט-שמיר
* העברה עלומה
* חלוקת סוד
* TLS (SSL)
* Secure Shell
* MQV
* X.509
* פרוטוקול שיתוף מפתח
* מיסור שלא לפרסום
* פרוטוקול סיגנל

 |

 |
| 

| פרימיטיבים תאורטיים |
| --- |
| 
* מחולל פסבדו-אקראי קריפטוגרפי
* פונקציה חד-כיוונית
* תמורה חד-כיוונית
* סיבית קשה
* פונקציה פסבדו-אקראית קריפטוגרפית
* תמורה פסאודו-אקראית
* פונקציית גיבוב קריפטוגרפית
* וקטור אתחול
* פונקציית ספוג
* הצפנה מבוססת סריג

 |

 |
| 

| קריפטואנליזה |
| --- |
| 
* ניתוח תדירויות
* כוח גס
* התקפת איזון זמן/זיכרון
* תקיפת היפגשות באמצע
* קריפטואנליזה ליניארית
* קריפטואנליזה דיפרנציאלית
* התקפת גלוי-ידוע
* התקפת גלוי-נבחר
* התקפת מוצפן-נבחר
* פירוק לגורמים של מספר שלם
* התקפת ערוץ צדדי
* התקפת קורלציה
* התקפת שיבוש
* מודל אורקל אקראי
* התקפת התנגשויות

 |

 |
| 

| בעיות מתמטיות ואלגוריתמים |
| --- |
| 
* בעיית לוגריתם דיסקרטי
* תחשיב אינדקסים
* נפה ריבועית
* אלגוריתם rho של פולרד
* נפת שדה מספרים
* אלגוריתם רו של פולרד ללוגריתמים
* אלגוריתם פוליג-הלמן

 |

 |
| 

| פונקציות גיבוב קריפטוגרפיות |
| --- |
| 
* SHA
* MD5
* MD4
* SHA-1
* SHA-2
* SHA-3
* RIPEMD
* Skein
* BLAKE
* Grøstl
* SipHash

 |

 |
| 

| אימות וזיהוי |
| --- |
| 
* אימות זהות
* סיסמה
* קוד אימות מסרים
* Poly1305
* סיסמה חד-פעמית

 |

 |
| 

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

 |

 |