Twofish
Twofish זה צופן עם גוש
בגודל 128 סיביות שמקבל מפתח בגודל משתנה עד 256 סיביות. הצופן הוא רשת Feistel בעלת
16 מחזורים עם פונקציה F העשויה מארבעה S-box-ים
תלויי מפתח בגודל 8 על 8 סיביות, מטריצה ספרבילית מעל שדה גלואה 28 מסדר
מקסימאלי 4x4, טרנספורמצית פסאודו-האדמרד, הזזות שפועלות
ברמת סיביות בודדות, תזמון מפתח שמתוכנן בזהירות. ביצוע של יישום
יעיל של הצפנת
Twofish מצפין על Pentium Pro ב-17.8 מחזורי שעון לבית,
ויישום בכרטיס חכם בעל 8 סיביות מצפין ב-1660 מחזורי שעון לבית. Twofish
יכול להיות מייושם בחומרה ב-14,000 שערים. העיצוב של פונקצית
המחזור ושל תזמון המפתח מאפשר מבחר גדול של החלפות בין המהירות, גודל התכנה, זמן
התקנת המפתח, מספר השערים והזיכרון.
Twofish משתמש ב-40 תתי
מפתחות בגודל 32 סיביות כל אחד. ה-8 הראשונים משמשים להלבנה, 4 בהתחלה ו-4 בסוף
עוברים XOR עם כל הגוש.
כל מחזור משתמש בשתיים מה-32 תתי מפתחות הנותרים, כך
שב-Twofish יש 16 מחזורים.
החלוקה של 128 הסיביות לרבעים של 32 סיביות נעשית ע"י
שימוש במוסכמה "little-endian", אשר לכאורה מתכוונת לכך שהרבעון השמאלי ביותר הוא המוקדם
ביותר, אך בעל הכי פחות משמעות מבחינה מספרית. אנו נסמן את הרבעים כ-Q0...Q3.
|