Blowfish
(דג הכדור)
Blowfish הוא
רשת feistel שחוזר על פונקצית הצפנה פשוטה 16 פעמים. גודל הגוש
הוא 64 סיביות וגודל המפתח יכול להיות כל גודל עד 448 סיביות.
למרות שדרוש שלב אתחול מרוכב לפני התחלת ההצפנה,
ההצפנה עצמה מאוד יעילה למיקרו מעבדים גדולים.
קהילה
לניתוח הצפנה
צריכה לספק עולם עם סטנדרט הצפנה חדש. DES,
שאיתו עבדו ב 15 שנים האחרונות, מתקרב לסוף החיים השימושיים שלו.
המפתח שלו בגודל 56 סיביות פגיעה מהתקפות
Brute-Force, והתקדמות בניתוח
הצפנה דיפרנציאלי
וליניארית שאירעו לאחרונה מראות ש DES
פגיעה גם מהתקפות אחרות.
הרבה מהאלגוריתמים
האחרים בלתי שבירים בספרות:
Khufu ,REDOC II ,IDEA
מוגנים
על ידי פטנטים. RC-2
ו-RC-4
מאושרים ליצוא עם גדלי מפתח קטנים ויש עליהם זכויות יוצר.
GOST,
האלגוריתם של הממשלה הסובייטית, לא משתמש ב-S-box-ים.
ממשלת ארצות הברית נוטה לכיוון אלגוריתמים סודיים, כמו אלגוריתם
Skipjack בשבבים Clipper ו-Capstone.
אם העולם צריך אלגוריתם הצפנה
שהוא מאובטח, זמין חופשית ואין עליו פטנט אז, אנחנו צריכים לפתח
עכשיו כמה אלגוריתמי הצפנה מועמדים. האלגוריתמים האלה יכולים להיות
נתונים לשנים של בדיקות קפדניות וניתוח
הצפנה ציבורי.
ואז בתקווה אחד או יותר מהאלגוריתמים המועמדים ישרדו את התהליך
ובסופו של דבר יהפוך לסטנדרט חדש.
שטחי יישום
אלגוריתם ההצפנה הסטנדרטי צריך
להתאים להרבה יישומים שונים:
-
הצפנה בנפחים גדולים. האלגוריתם
צריך להיות יעיל בהצפנה של קבצי נתונים.
-
יצור סיביות אקראיות,
האלגוריתם צריך להיות יעיל ביצור סיביות אקראיות.
-
הצפנת חבילות,
האלגוריתם צריך להיות יעיל בהצפנת נתונים בגודל חבילה. (שדה
הנתונים של חבילת ATM
(פרוטוקול להעברת נתונים בקצב
גבוהה)
הוא בגודל 48 בייטים.) זה צריך להיות בר יישום באפליקציה שמאפשרת
הצפנה ופענוח של חבילות רציפות עם מפתחות שונים.
-
Hash,
צריכה להיות אפשרות להפוך אלגוריתם, בצורה יעילה, לפונקצית
Hash חד
כיוונית.
אלגוריתם סטנדרטי בהצפנה צריך
להיות בר יישום במגוון פלטפורמות שונות, שלכל אחת מהן יש דרישות משלה. הן כוללות:
-
חומרה מיוחדת, צריכה להיות דרך
ליישם את האלגוריתם ביעילות בחומרת VLSI.
-
מעבדים גדולים, למרות שהחומרה
המיועדת להצפנה עובדת מהר יותר היישומים בתוכנה נפוצים יותר. האלגוריתם צריך
להיות יעיל במעבדים בעלי 32 סיביות ועם זיכרון מטמון של נתונים ופקודות בגודל 4KB.
-
מעבדים בינוניים, האלגוריתם
צריך לרוץ על בקרים זעירים ומעבדים אחרים בגודל בינוני כמו 68HC11.
-
מעבדים קטנים, צריך להיות
אפשרי ליישם אלגוריתם על כרטיסים "חכמים", אפילו אם לא יעיל.
הדרישות בשביל מעבדים קטנים הן
הכי קשות לביצוע. את ההגבלות של ה-RAM
וה-ROM מחמירים בשביל הפלטפורמה
הזאת.
|