**צופן בלוקים בר-התאמה** (Tweakable Block Cipher) הוא צופן בלוקים עם פרמטר נוסף שנקרא Tweak (התאמה) שמתפקד כמו וקטור אתחול. הרעיון הוצע לראשונה ב-2002 על ידי מוזס ליסקוב, רונלד ריבסט ודויד וגנר כחלופה אלגנטית למצב הפעלה של צופן בלוקים. הרעיון הוא שבמחיר מועט אפשר לפתח 'פרימיטיב קריפטוגרפי' חדש עם תכונת התאמה שניתן להוכיח שהוא בטוח נגד התקפת מוצפן-נבחר, כך שתוצאות הצפנת שני בלוקים זהים יהיו שונות תמיד גם אם המפתח זהה. 

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

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

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

{\displaystyle {\boldsymbol {{\tilde {E}}:\{0,1\}^{k}\times \{0,1\}^{t}\times \{0,1\}^{n}\longrightarrow \{0,1\}^{n}}}}
הפונקציה מקבלת מחרוזת {\displaystyle M\in \{0,1\}^{n}} באורך n סיביות, מחרוזת {\displaystyle K\in \{0,1\}^{k}} באורך k סיביות ומחרוזת {\displaystyle T\in \{0,1\}^{t}} באורך t סיביות ומחזירה מחרוזת {\displaystyle C\in \{0,1\}^{n}} שהיא פונקציה של המסר, המפתח וה-tweak.

בניית צופן בר-התאמה שהוא גם יעיל אינה מלאכה פשוטה. אפשר לבנות צופן בלוקים בר-התאמה מהתחלה או שאפשר להפוך כל צופן בלוקים רגיל לצופן בלוקים בר-התאמה, אך יש להזהר לגבי ביטחונו. לדוגמה מבנה הדומה ל-DESX של ריבסט שהוצע בעבר לחיזוק DES, מחבר תחילה את המסר עם וקטור האתחול T\_1 ואת תוצאת ההצפנה מחבר עם {\displaystyle T\_{2}} כך: 

{\displaystyle {\tilde {E}}\_{K}((T\_{1},T\_{2}),M)=E\_{K}(M\oplus T\_{1})\oplus T\_{2}}.
מבנה זה התגלה כלא בטוח כיוון שלהפיכת סיביות במיקומים זהים ב-M וב-T\_1 אין השפעה על התוצאה הסופית, מה שמאפשר התקפה כנגד הצופן. 
כמו כן ניסיון לחבר את מפתח ההצפנה עם ה-tweak באופן הבא:

{\displaystyle {\tilde {E}}\_{K}(T,M)=E\_{K\ \|\ T}(M)} או {\displaystyle {\tilde {E}}\_{K}(T,M)=E\_{K\oplus T}(M)}
לא מציע צופן בלוקים בר-התאמה בטוח כמצופה, התקפת related-key יכולה להיות ישימה כנגד מבנה כזה.

לעומת זאת המבנה של וגנר, ליסקוב וריבסט הוכח כבטוח, כדלהלן:

{\displaystyle {\tilde {E}}\_{K}(T,M)=E\_{K}(T\oplus E\_{K}(M)))}
T וקטור האתחול, K המפתח ו-M הוא המסר. מצד שני מבנה זה פחות יעיל כי נדרשים להפעיל את צופן הבלוקים פעמיים עבור כל בלוק. אם מחליפים קריאה אחת לצופן הבלוקים בפונקציית גיבוב אוניברסלית פשוטה ומהירה אפשר להגיע לביצועים טובים עם מבנה כמו זה:

{\displaystyle {\tilde {E}}\_{K,h}(T,M)=E\_{K}(M\oplus h(T))\oplus h(T)}
כאשר h היא פונקציית גיבוב כלשהי כמו UHASH. דוגמה טובה לצפן בלוקים בר-התאמה היא Threefish.

מצב הפעלה מבוסס צופן בלוקים בר-התאמה
------------------------------------

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

XEX
---

ראו גם
------

* צופן בלוקים
* XTS
* Threefish

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

1. ↑  Tweakable Block Ciphers
2. ↑  Eli Biham. New types of cryptanalytic attacks using related keys. Journal of Cryptology, 7(4):229–246, Fall 1994. Also available at: citeseer.nj.nec.com/biham94new.html.

  


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

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

 |

 |
| 

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

 |

 |
| 

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

 |

 |