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

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

בהצפנת דיסקים קיימות מגבלות מובנות שלא ניתנות לפתרון והם:

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

מצבי ההפעלה הרגילים כמו ECB, CBC, OFB או CTR אינם מתאימים מפני כמה סיבות:

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

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

ביטחון הצפנת דיסקים הוא לכל היותר כמו מצב ECB עם מפתח שונה עבור כל בלוק. או לחלופין אפשר להציג זאת כצופן בלוקים שבו הבלוק הוא בדיוק באורך הסקטור. אם הסקטור גדול מהבלוק שהצופן מקבל מחלקים את הסקטור לבלוקים בגודל הרצוי ומפעילים את ההצפנה על כל הבלוקים באופן איטרטיבי באופן ששני בלוקים זהים יפיקו תוצאה מוצפנת שונה. כדי להבטיח את דרישה (א) יש להצפין כל סקטור עם מפתח אחר. במקום לאחסן מפתחות רבים אפשר להשתמש במפתח 'מאסטר' יחיד ממנו מפיקים מפתחות הצפנה ככל שיידרש, למשל על ידי הצפנה של ערך ייחודי וחד פעמי עבור כל סקטור שנקרא tweak המשרת כמו וקטור אתחול, ה-tweak לא חייב להיות אקראי או סודי, למשל המספר הסידורי של הסקטור יספיק. החיסרון בזה הוא שכעת יש צורך להפעיל את צופן הבלוקים 2n פעמים עבור n סקטורים. עבור כל סקטור צריך תחילה להצפין את ה-tweak ממנו מייצרים מפתח הצפנה ואיתו מצפינים את הסקטור. אפשר להימנע מכך על ידי הצפנה של tweak עם תמורה פסאודו-אקראית מהירה במקום עם צופן הבלוקים, דהיינו המידע מעורבב (ממוסך) באמצעות XOR עם מפתח שנגזר מהפונקציה, כך מרוויחים שצופן הבלוקים מופעל רק פעם אחת והפונקציה הפסאודו-רנדומלית מבטיחה שלא ייווצר מצב ששני בלוקים יוצפנו עם אותו מפתח על ידי שימוש באינדקס הבלוק כמו במצב מונה. בגלל השימוש ב-XOR לא רצוי מטעמי ביטחון להשתמש ב-tweak עצמו ישירות כמפתח לפונקציית ה-PRP אלא מקובל להצפינו תחילה, לכן משמשים בשני מפתחות הצפנה נפרדים. כלומר עבור כל סקטור תחילה מצפינים את ה-tweak (מספר הסקטור) עם מפתח ההצפנה הראשון, מהתוצאה מייצרים מפתחות מיסוך עבור כל הבלוקים שהסקטור מכיל ובאמצעות המפתח השני מצפינים את כולם עם צופן הבלוקים. זו השיטה המועדפת מהיבט של ביטחון ויעילות. הפעלת צופן הבלוקים מתבצעת רק n+1 פעמים ופונקציית ה-PRP מהירה כך שהיא זניחה ביחס לצופן הבלוקים.

מספר מצבי הפעלה עוצבו בשיטה זו, ביניהם אפשר לציין את: LRW, XEX ו-XTS. מצב ההפעלה LRW שהוצע על ידי ליסקוב, ריבסט ווגנר הוא פרימיטיב קריפטוגרפי שמיישם את רעיון צופן בלוקים שניתן להתאמה. הצופן מקבל מפתח הצפנה וכן "tweak" המשרת בערך כמו וקטור אתחול או Nonce. הנוסחה היא:

{\displaystyle E\_{K}(M\oplus h(T))\oplus h(T)}. כאשר {\displaystyle h(T)} היא פונקציה כלשהי בשדה סופי {\displaystyle 2^{128}}, המתפקדת מעין פונקציית גיבוב.

XTS-AES
-------

שיטת הצפנה למדיית אחסון הנקראת XTS-AES לפי תקן IEEE P1619
תקן IEEE P1619 אימץ את מצב ההפעלה XTS-AES (לפי שיטת XEX - כלומר "XOR/ENCRYPTION/XOR" כשההצפנה היא עם AES), מצב הפעלה זה פותח במיוחד להצפנת סקטורים גדולים במדייה דיגיטלית. השיטה נקראת teawkable במובן שהיא משתמשת בווקטור אתחול שנקרא tweak בגודל 128 סיביות (16 בתים) כאן מסומן ב-i. ה-tweak משתנה בכל סקטור והוא יכול להיות מספר רץ של הסקטור. בשיטה זו כל בלוק מוצפן פעמיים. המפתח מחולק לשני מפתחות K\_1,K\_2 כל אחד בגודל הדרוש לצופן הבלוקים, תחילה מצפינים את וקטור האתחול עם המפתח הראשון ולאחר מכן מפעילים פונקציה פסאודו-אקראית פשוטה ומצפינים את התוצאה מחוברת עם בלוק הטקסט הקריא באמצעות המפתח השני.

הבלוק נקרא כאן P ו-j הוא מונה המייצג את מספרו הסידורי של הבלוק בתוך הסקטור. הנוסחה להצפנת בלוק אחד שנקראת כאן {\displaystyle {\text{XTS-AES}}\_{K\_{1},K\_{2}}(P,i,j)} כמוצג בתרשים היא:

{\displaystyle T={\text{AES}}\_{K\_{2}}(i)\otimes \alpha ^{j}}
{\displaystyle {\text{Return AES}}\_{K\_{1}}(P\oplus T)\oplus T}
הפעלת הצופן בשורה הראשונה מתבצעת רק פעם אחת כיוון ש-i אינו עולה על בלוק אחד. בפענוח מחליפים בשורה השנייה את הקריאה לפונקציית ההצפנה בפונקציית הפענוח {\displaystyle {\text{AES}}\_{K\_{1}}^{-1}}.

ההכפלה ב-{\displaystyle \alpha ^{j}} היא כפל של הבלוק המוצפן, אותו רואים כפולינום מעל השדה הבינארי המורחב {\displaystyle GF(2^{128})} בחזקות j של הפולינום \alpha  או {\displaystyle {\text{0x02}}} בייצוג הקסדצימלי, מודולו {\displaystyle 2^{128}}. הכפל האמור מסומן ב-{\displaystyle \otimes }. לצורך הצמצום המודולרי משתמשים בפולינום הפרימיטיבי {\displaystyle x^{128}+x^{7}+x^{2}+x+1} כדי שהתוצאה תישאר אלמנט בשדה. מבחינה פרקטית פעולת הכפל בשדה {\displaystyle GF(2^{128})} יכולה להתבצע על ידי רקורסיה של j הזזות (shift) השקולות לכפל ב-\alpha  וצמצום מודולרי באמצעות פעולת XOR מותנת (כאשר הסיבית הגבוהה היא '1') עם הערך {\displaystyle x^{7}+x^{2}+x+1} או בייצוג הקסדצימלי {\displaystyle {\text{0x87}}}. אפשר לראותה כפעולה חיסור במודולוס הדרושה כאשר מתרחשת גלישה (להסבר נוסף ראה OMAC), אפשר להכין את הערכים הללו מראש או להשתמש בטבלאות חיפוש, בהתאם לאופי היישום והחומרה, אך צריך להביא בחשבון התקפת ערוץ צדדי שמודדת את זמני הביצוע השונים. להלן דרך בטוחה לביצוע פעולת הכפל בשדה {\displaystyle GF(2^{128})} בחלוקה ל-16 בתים המסומנים {\displaystyle a\_{0},a\_{1},...a\_{15}}:

|  |
| --- |
| {\displaystyle a\_{0}=((2\cdot a\_{0}){\text{ mod }}128)\oplus (135\cdot \left\lfloor a\_{15}/128\right\rfloor )}
{\displaystyle {\text{for }}k=1{\text{ to }}15{\text{ do: }}\ a\_{k}=((2\cdot a\_{k}){\text{ mod }}128)\oplus \left\lfloor a\_{k-1}/128\right\rfloor } |

הכפל מתבצע בית אחר בית, הכפל ב-2 אינו אלא הזזה לשמאל והחילוק ב-128 הוא הזזה לימין 8 פוזיציות. הפעולה {\displaystyle \left\lfloor a\_{k-1}/128\right\rfloor } מעבירה את סיבית הגלישה לבית הבא. ואין צורך לבצע מודולו 128 אפשר לעשות {\displaystyle {\text{AND 0x7F}}} במקום.

שתי ההצפנות האחרונות של XTS-AES
להצפנת סקטור שלם במשתמשים בטכניקה שנקראת גנבת טקסט-מוצפן. תחילה מחלקים אותו ל-{\displaystyle m+1} בלוקים בגודל המתאים לצופן הבלוקים. כלומר אם הסקטור הוא S אז {\displaystyle S=P\_{0}\ \|\ P\_{1}\ \|\ ...\|\ P\_{m-1}\ \|\ P\_{m}}. כאשר m הוא השלם הגדול ביותר כך שמתקיים {\displaystyle 128m<|S|}. יש לשים לב ש-m הבלוקים הראשונים מלאים ואילו הבלוק {\displaystyle P\_{m}} חלקי או ריק לגמרי (מכיל רק אפסים). ההצפנה של הסקטור מתחלקת לשני מקרים כדלהלן, אם הבלוק האחרון ריק, כלומר {\displaystyle |P\_{m}|=0} ההצפנה של כל הסקטור מתבצעת ישירות כך; עבור כל בלוק {\displaystyle P\_{j}} כאשר {\displaystyle j=0,...m-1} מחשבים את {\displaystyle C\_{j}={\text{XTS-AES}}\_{K\_{1},K\_{2}}(P\_{j},i,j)} והבלוק המוצפן האחרון {\displaystyle C\_{m}} יהיה ריק. אם בלוק הטקסט הקריא האחרון אינו ריק דהיינו {\displaystyle b=|P\_{m}|>0} אזי מבצעים 'שיכול' בין שני הבלוקים האחרונים כדלהלן; תחילה מחשבים את {\displaystyle C'={\text{XTS-AES}}\_{K\_{1},K\_{2}}(P\_{m-1},i,m-1)}, הבלוק {\displaystyle C\_{m}} יהיה b הסיביות הראשונות של C' ואז משרשרים את {\displaystyle 128-b} הסיביות הנותרות של C' לבלוק הטקסט הקריא האחרון {\displaystyle P\_{m}} ומתקבל בלוק חדש P' אותו מצפינים כך {\displaystyle {\text{XTS-AES}}\_{K\_{1},K\_{2}}(P',i,m)} והתוצאה האחרונה תהיה הבלוק {\displaystyle C\_{m-1}}. שים לב שהבלוק {\displaystyle C\_{m}} עשוי להיות חלקי. לכן הטקסט המוצפן נשאר באורך זהה לטקסט המקורי.

ביטחון
------

הוכח על ידי רוגאווי שביטחון השיטה הוא בסיבוכיות {\displaystyle 4.5q^{2}/2^{n}+\epsilon } כלומר הביטוי משקף את היתרון שבידי התוקף בהבחנה בין הטקסט המוצפן לבין מחרוזת אקראית כלשהי, כאשר q הוא מספר השאילתות האקראיות לאורקל (בהקשר מעשי - מספר הבלוקים שהוא יכול להצפין) ו-\epsilon  מייצג את "היתרון" שלו או אפשר לומר טווח השגיאה. בגלל התקפת יום הולדת קיים חסם עליון שהוא 2^{n/2} שמחייב שלאחר גבול זה התנגשויות חייבות להופיע, לכן כאשר q מתקרב לערך זה יש סבירות משמעותית ש"התקפת הבחנה" תצליח. כלומר שיימצא זוג המקיים {\displaystyle P\_{i}\oplus T\_{i}=P\_{j}\oplus T\_{j}} עבור שני אינדקסים שונים {\displaystyle i\neq j} כאשר P הוא הטקסט הקריא ו-T הוא ה-tweak. במקרה זה הטקסטים המוצפנים {\displaystyle C\_{i},C\_{j}} המתאימים יהיו זהים אחרי חיבור עם ה-tweak של כל אחד מהם בהתאמה. מזה נובע ש-{\displaystyle P\_{i}\oplus C\_{i}=P\_{j}\oplus C\_{j}}. כלומר התרחשה התנגשות שמאפשרת לתקוף להבחין בין ההצפנה בשיטה זו לבין טקסט רנדומלי לחלוטין. התקפת הבחנה אינה תאורטית בלבד, באמצעותה התוקף יכול לבצע שינויים בסיביות ספציפיות בטקסט המקורי שמתאים לטקסט המוצפן שהוא תוקף וזאת מבלי לפענחו, בדרך הבאה:
עבור {\displaystyle \Delta \neq 0} כלשהו הוא מחשב את {\displaystyle P'\_{i}=P\_{i}\oplus \Delta } במיקום i ומחליף את הטקסט המוצפן {\displaystyle C\_{j}} באופן הבא: {\displaystyle C'\_{j}=C\_{j}\oplus (C\_{i}\oplus C'\_{i})} והטקסט המוצפן החדש יהיה {\displaystyle P'\_{j}=P\_{j}\oplus \Delta }, במילים אחרות התוקף הצליח לשנות סיביות מסוימות של הבלוק {\displaystyle P\_{j}} מבלי שהמותקף יבחין בכך.

התקפות ערוץ צדדי
----------------

 ערך מורחב – **התקפת ערוץ צדדי**  

קיימות טכנולוגיות הצפנת דיסקים ברמת חומרה הנקראת FDE (קיצור של full-disk encryption) כמו BitLocker או ברמת תוכנה כמו Truecrypt. הצפנת דיסקים ברמת חומרה מעצם טבעה חשופה להתקפת אתחול קשה או אתחול קר (cold boot attack) שהיא התקפת ערוץ צדדי שבה התוקף גונב את סיסמת ההצפנה ממחשב פועל (נעול או לא) על ידי אתחול מחדש וחילוץ הסיסמה מהזיכרון או מהדיסק הקשיח, באמצעות כלים פורנזיים כמו Forensic Disk Decryptor של חברת Elcomsoft, לפני שהיא נמחקת. עקב תופעה פיזיקלית ידועה, המידע בזיכרון המחשב נותר שלם בחלקו למספר דקות לאחר הכיבוי. היות שמערכת ההפעלה צריכה לאחסן את מפתח ההצפנה היכן שהוא בזיכרון בזמן הצפנה/פענוח, קשה למנוע סוג כזה של התקפה גם אם משתמשים במערכת הפעלה בטוחה ברמה של חומרה כמו TMP. כמו כן סכימת הצפנת דיסקים בעייתית גם כאשר המחשב נגנב כשהוא במצב "רדום" אם כאשר מעירים אותו לא מתבצע אתחול דרך BIOS.
כמו כן הצפנת דיסקים ברמת תוכנה חשופה למספר התקפות ערוץ צדדי כמו קריפטואנליזה אקוסטית או רישום הקשות.

ראו גם
------

* צופן בלוקים בר התאמה
* הצפנה מאומתת

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

1. ↑  1619-2007 - IEEE Standard for Cryptographic Protection of Data on Block-Oriented Storage Devices
2. ↑  Recommendation for Block Cipher Modes of Operation: Three Variants of Ciphertext Stealing for CBC Mode
3. ↑  Breaking Hard-Disk Encryption

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

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

 |

 |
| 

| הצפנה קלאסית |
| --- |
| 
* מכונת הצפנה
* צופן החלפה
* צופן אתב"ש
* צופן קיסר
* צופן ויז'נר
* צופן ורנם
* צופן פלייפייר
* צופן היל
* אולטרה
* אניגמה
* ציקלומטר
* קולוסוס
* 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
* סיסמה חד-פעמית

 |

 |
| 

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

 |

 |