חלוקת סוד של שמיר (Shamir's Secret Sharing) ב-ShizuDesk
מבוא: מהו אלגוריתם SSS?
אלגוריתם "חלוקת סוד של שמיר" (Shamir's Secret Sharing - SSS) הוא פרוטוקול קריפטוגרפי מתקדם שפותח על ידי פרופסור עדי שמיר (ממציאי אלגוריתם RSA). האלגוריתם מאפשר לקחת מידע רגיש ביותר (כמו סיסמת-על, מפתח הצפנה או קוד גישה) ולפצל אותו ל-$n$ חלקים (הנקראים "נתחים" או Shares).
הגדרת המפתח של המערכת היא שכדי לשחזר את הסוד המקורי, אין צורך בכל החלקים, אלא בכמות מינימלית בלבד המוגדרת מראש (נקראת $t$ או Threshold).
התכונה החשובה והמאובטחת ביותר של האלגוריתם היא שכל כמות של חלקים הקטנה מ-$t$ אינה מספקת שום מידע על הסוד המקורי. מתמטית, לא ניתן לנחש את הסוד, גם אם חסר רק חלק אחד.
https://www.shizudesk.com/secretdivide?lang=he
תרחישי שימוש נפוצים (Use Cases) הממחישים את התועלת:
-
צוואה דיגיטלית וירושת מטבעות קריפטו:
אדם מחזיק במפתח הגישה הפרטי (Seed Phrase) לארנק הביטקוין שלו. הוא חושש להפקיד את המפתח המלא בידי גורם יחיד (אפילו עורך דין או בן משפחה) מחשש לדליפה או גניבה. באמצעות המערכת, הוא מפצל את המפתח ל-5 חלקים, ומעניק חלק אחד לכל אחד מחמשת ילדיו, עם דרישת מינימום ($t$) של 3 חלקים.
התועלת: אף ילד לא יכול לגעת בכסף לבדו. אך אם יקרה למוריש משהו, מספיק ש-3 מתוך ה-5 יתאגדו יחד כדי לקבל גישה מלאה לארנק. -
אבטחת סיסמאות רגישות בארגון:
צוות פיתוח (IT) מחזיק בסיסמת ה-Root לשרת הייצור של החברה. במקום לתת לאדם אחד את הכוח המלא, הסיסמה מפוצלת בין 4 מנהלי מערכת בכירים, כאשר נדרשים לפחות 2 מהם כדי לבצע עדכון.
התועלת: מניעת נקודת כשל בודדת (Single Point of Failure) וצמצום סכנת "איום פנימי" (Insider Threat). -
שחזור קודי גישה לכספות פיזיות או דיגיטליות:
חלוקת קוד פתיחה של כספת בין שותפים עסקיים כך שרק נוכחות של רוב השותפים תאפשר את פתיחת הכספת, ללא תלות במערכות אלקטרוניות מסובכות, אלא באמצעות פתק פשוט שהודפס.
איך המערכת עובדת בפועל?
התהליך במערכת ShizuDesk ידידותי ופשוט למשתמש קצה, למרות המתמטיקה המורכבת (פולינומים מעל שדה סופי) שרצה מאחורי הקלעים:
שלב 1: פיצול הסוד
- המשתמש מקליד את הטקסט הרגיש (עד 511 בתים).
- המשתמש מגדיר את סך כל הנאמנים ($n$) ואת המינימום הנדרש לשחזור ($t$).
- המערכת מייצרת פולינום מתמטי אקראי לחלוטין (כאשר הסוד הוא נקודת החיתוך בציר ה-Y), ומחלקת את הנתחים כנקודות שונות על הפולינום.
- המשתמש יכול להוריד את כל הנתחים לקובץ טקסט מסודר (
.txt) ולחלק לכל נאמן את שורת הקוד האישית שלו.
שלב 2: שחזור והרכבה
- כאשר מגיע הרגע לחשוף את הסוד, הנאמנים נכנסים שוב לדף הכלי.
- כל נאמן מדביק את שורת הנתח המלאה שלו (לדוגמה:
ABCD-chunk-1-from-5-...). - המערכת מוודאת באופן אוטומטי שכל הנתחים שייכים לאותה סדרת פיצול בדיוק כדי למנוע שגיאות.
- ברגע שהוזנו מספיק נתחים (לפי ערך ה-$t$ המקורי), המערכת מבצעת חישוב מורכב (אינטרפולציית לגראנז') המשחזר את הסוד המקורי באופן מיידי.
- הסוד נחשף וניתן להעתקה בטוחה.