בקריפטוגרפיה, **הצפנת סף** (threshold cryptography) היא מערכת הצפנה המבוצעת בין שולחים או מקבלים מרובים התורמים במידה שווה למערכת, בניגוד למערכת הצפנה בין שולח יחיד למקבל יחיד. סכמת הצפנה תקרא הצפנת-סף {\displaystyle (t,n)} אם לצורך הצפנה או פענוח נדרשים לפחות {\displaystyle t} משתפי פעולה מתוך {\displaystyle n} מורשים כדי שההצפנה או פענוח יצליחו. כאשר {\displaystyle n} הוא מספר המורשים לשלוח או לקבל את המסר המוצפן ואילו {\displaystyle t} נקרא "מספר סף" הקובע את כמות המשתתפים המינימלית הנחוצה ואילו פחות ממספר זה ההצפנה או הפענוח יכשלו כי אין מספיק מידע להשלמתם. כמו כן ניתן להגדיר חתימה דיגיטלית עם סכמת סף, באופן שיידרשו לפחות {\displaystyle t} חותמים מתוך {\displaystyle n} מורשים כדי שהחתימה תהיה תקפה.

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

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

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

מוטיבציה
--------

רוב סכמות ההצפנה המודרניות מוגדרות בין שולח ומקבל. אך ישנם מקרים שבהם נדרשים מספר משתתפים. הדוגמה הראשונה למערכת כזו הופיעה בתקן EES של NIST שנקרא שבב קליפר (clipper chip). במערכת זו צד שלישי מוסמך (במקרה זה ארגון ממשלתי כמו NSA) מקבל חלקים (shares) של מפתחות כל המשתמשים במערכת הצפנה מסוימת המיושמת בחומרה באופן כזה שבמידת הצורך רשויות החוק יכולים בצו שופט לקבל לידיהם את המפתח הזה ואיתו לפענח מידע ספציפי מבלי להדליף כל מידע אחר שאינו נחוץ במישרין. רבים מביעים התנגדות לשיטה זו בטענה שהיא פוגעת בפרטיות המשתמשים ואינה משיגה את יעדה. סכמת סף שימושית גם במקרים אחרים למשל; מסמכים הצריכים חתימה של מספר מורשים בארגון, מערכות קריטיות הדורשות אישור של מספר ממונים בעלי דרגה בכירה כדי להפעילן או תהליכים בהם נדרשת הכרעת רוב וכדומה. דוגמאות אחרות הן:

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

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

### חתימה דיגיטלית עם סף

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

תיאור כללי
----------

קיימות שתי גישות עיקריות לבניית סכמת סף, האחת היא שימוש בתכונת הומומורפיזם של אלגוריתם ההצפנה. הרבה סכמות הצפנה עונות על הגדרה זו באופן חלקי, כמו RSA, אל-גמאל, הצפנת פאיי ועוד. לדוגמה אם נתונה הפונקציה {\displaystyle f\_{k}({\text{input}})} המקבלת מפתח {\displaystyle k} וקלט שבמקרה של הצפנה הוא טקסט-מוצפן המיועד לפענוח ובמקרה של חתימה דיגיטלית מסמך לחתימה. כעת אם נתונה פונקציית מעטפת המקיימת {\displaystyle g\_{\text{input}}(k)=f\_{k}({\text{input}})} אזי היא תקרא הומומורפית אם מתקיים: 

{\displaystyle g\_{\text{input}}(k\_{1})\star g\_{\text{input}}(k\_{2})=g\_{\text{input}}(k\_{1}+k\_{2})}.
כאשר {\displaystyle k\_{1}} ו-{\displaystyle k\_{2}} הם אלמנטים של חבורה אבלית {\displaystyle K^{+}}. לדוגמה הצפנת אל-גמאל מקיימת את התנאי האמור. אפשר להפוך כל מערכת הצפנה להצפנה הומומורפית חלקית או מלאה וממנה לבנות סכמת סף. כשהמטרה היא שהמערכת תהיה בטוחה לפחות כמו הסכמה המקורית. 

הגישה השנייה היא **חלוקת סוד כפלית** כמו סכמת חלוקת סוד של עדי שמיר שמתאימה להרבה אלגוריתמים אסימטריים אך לא לכולם. בסכמת חלוקת סוד מפתח הצופן פשוט מחולק בין המשתתפים באופן כזה שרק שיתוף פעולה של לפחות {\displaystyle t} מהם מאפשר לשחזר את המפתח ואיתו לפענח את ההצפנה. כאשר נדרשים לשחזר את הסוד, כל משתתף מוסר את השתף שלו לדילר מרכזי שתפקידו "להכפיל" את כל החלקים או הכמות המינימלית שלהם כדי לשחזר את הסוד.

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

הכללה
-----

גישה יותר כללית של סכמת סף נקראת "מבנה גישה" (Access Structure). נניח ש-{\displaystyle {\mathcal {P}}} הוא קבוצה של משתתפים מבנה גישה {\displaystyle \Gamma \_{\mathcal {P}}} הוא תת-קבוצה של קבוצת החזקה {\displaystyle 2^{\mathcal {P}}}. כאשר כל אלמנט של {\displaystyle \Gamma \_{\mathcal {P}}} נקרא "רשאי" כלומר יש לו גישה לסוד המשותף. {\displaystyle \Gamma \_{\mathcal {P}}} נקרא מונוטוני אם כאשר {\displaystyle {\mathcal {A}}\subseteq {\mathcal {B}}\subseteq {\mathcal {P}},{\mathcal {A}}\in \Gamma \_{\mathcal {P}}}, אז {\displaystyle {\mathcal {B}}\in \Gamma \_{\mathcal {P}}}. מבנה יריב הוא המבנה המשלים המסומן {\displaystyle 2^{\mathcal {P}}\setminus \Gamma \_{\mathcal {P}}}.

ראו גם
------

* שידור מוצפן
* חלוקת סוד

הערות שוליים
------------

1. ↑  Ran Canetti, Shafi Goldwasser. "An efficient threshold public-key cryptosystem secure against adaptive chosen ciphertext attack." Appeared in EUROCRYPT'99, pp.90-106
2. ↑  To Keep Passwords Safe from Hackers, Just Break Them into Bits
3. ↑  RSA Dustributed Credential Protection

| קריפטוגרפיה |
| --- |
| 

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

 |
| 

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

 |
| 

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

 |
| 

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

 |
| 

| צופן זרם |
| --- |
| RC4 • Salsa20 • SOSEMANUK • גריין • 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 • סיסמה חד-פעמית |

 |
| 

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

 |