הצפנת AES-256 מוסברת: מה זה אומר לנתונים שלך
הסבר AES-256: כיצד הצופן עובד, למה מפתחות 256 סיביות חשובים, מה מצב GCM מוסיף ומה לבדוק כשאפליקציה טוענת להצפנת AES-256.
AES-256 הוא תקן ההצפנה המתקדמת עם מפתח 256 סיביות, שתוקן על ידי NIST כ-FIPS 197 בשנת 2001. זהו אלגוריתם ההצפנה הסימטרית שבו משתמשת ממשלת ארה"ב עבור מידע מסווג, בנקים לעסקאות פיננסיות ואפליקציות ממוקדות אבטחה להגנה על נתונים במנוחה ובמעבר. ל-AES-256 יש 2^256 מפתחות אפשריים, מספר גדול יותר מהספירה המשוערת של אטומים ביקום הנצפה. אין התקפה ידועה שמקטינה את מרחב המפתחות הזה לחיפוש אפשרי חישובית.
מדריך זה מסביר מה AES-256 עושה בפועל, למה גודל המפתח חשוב, מה המצבים השונים אומרים (ECB, CBC, GCM), ומה לחפש כשאפליקציה טוענת להשתמש בהצפנת AES-256.
מה AES עושה בפועל
AES הוא צופן בלוקים סימטרי. "סימטרי" אומר שאותו המפתח מצפין ומפענח. "צופן בלוקים" אומר שהוא מעבד נתונים בבלוקים בגודל קבוע של 128 סיביות (16 בתים).
האלגוריתם לוקח את הנתונים שלך (טקסט רגיל), משלב אותם עם מפתח, ומייצר פלט מוצפן (טקסט מוצפן) דרך סדרה של טרנספורמציות מתמטיות. טרנספורמציות אלה, החלפה, הזזה, ערבוב והוספת מפתח, חוזרות על מספר קבוע של סיבובים. AES-256 משתמש ב-14 סיבובים.
כל סיבוב מיישם ארבע פעולות:
- SubBytes: כל בית מוחלף באמצעות טבלת החלפה קבועה (S-box), המוסיפה אי-לינאריות.
- ShiftRows: בתים בכל שורה מוזזים בהיסטים שונים, מפזרים נתונים על פני מיקומים.
- MixColumns: עמודות מעורבבות דרך כפל מטריצות בשדה סופי, מפזרים שינויים על פני בתים.
- AddRoundKey: מפתח הסיבוב (שמגיע מהמפתח הראשי) מוחל ב-XOR על הנתונים.
לאחר 14 סיבובים, הטקסט הרגיל מעורבל לחלוטין. הפיכת פעולות אלה עם המפתח הנכון משחזרת את הנתונים המקוריים. ללא המפתח, הטקסט המוצפן אינו ניתן להבחנה מרעש אקראי.
למה 256 חשוב
"256" ב-AES-256 מתייחס לאורך המפתח: 256 סיביות. זה קובע את מספר המפתחות האפשריים שתוקף חייב לנסות כדי לשבור את ההצפנה בכוח גס.
| גודל מפתח | מפתחות אפשריים | זמן לפריצה בכוח גס (טריליון ניחושים לשנייה) |
|---|---|---|
| 56 סיביות (DES) | 7.2 x 10^16 | כ-20 שעות |
| 128 סיביות (AES-128) | 3.4 x 10^38 | 10^13 שנים (10 טריליון שנים) |
| 256 סיביות (AES-256) | 1.16 x 10^77 | 10^51 שנים |
לשם הפרספקטיבה: היקום הוא כ-1.38 x 10^10 שנים. פריצת AES-256 בכוח גס תיקח בערך 10^41 פעמים יותר מגיל היקום, אפילו בטריליון ניחוש לשנייה.
AES-128 כבר אינו אפשרי חישובית בכוח גס. AES-256 מספק שוליים נוספים נגד התקדמות עתידית במחשוב, כולל מחשוב קוונטי. אלגוריתם גרובר (התקפת מחשוב קוונטי) מחצה ביעילות את אורך המפתח, ומוריד AES-256 לשקילות AES-128, שנותר בלתי אפשרי. AES-128 יורד לאבטחה אפקטיבית של 64 סיביות, שעלולה להיות חשופה. לכן אפליקציות קריטיות לאבטחה מעדיפות AES-256.
מצבי AES: למה הם חשובים
AES לבד מצפין רק בלוק 128 סיביות אחד בכל פעם. עבור נתונים אמיתיים (תמונות, מסמכים, סרטונים), צריך "מצב עבודה" שמטפל בנתונים גדולים מ-16 בתים. המצב קובע כיצד הבלוקים מקושרים יחד ויש לו השלכות אבטחה משמעותיות.
ECB (Electronic Codebook): אל תשתמש
כל בלוק מוצפן באופן עצמאי עם אותו המפתח. בלוקי טקסט רגיל זהים מייצרים בלוקי טקסט מוצפן זהים. זה חושף דפוסים בנתונים. ההדגמה הקלאסית: הצפנת תמונת bitmap עם ECB שומרת על מבנה התמונה בטקסט המוצפן, מה שהופך את התוכן לניתן לזיהוי. ECB כלול בתקן אבל לעולם אין להשתמש בו עבור נתונים בעלי מבנה או דפוסים חוזרים.
CBC (Cipher Block Chaining): ירושה
כל בלוק מוחל ב-XOR עם בלוק הטקסט המוצפן הקודם לפני ההצפנה. זה מבטל את דליפת הדפוסים של ECB. CBC היה מצב התקן לעשורים אבל הוחלף על ידי GCM לרוב היישומים. CBC דורש וקטור אתחול אקראי (IV) ואינו מספק אימות מובנה.
GCM (Galois/Counter Mode): התקן הנוכחי
GCM משלב הצפנת מצב מונה עם אימות שדה גלואה. הוא מספק הצפנה מאומתת: הוא מצפין את הנתונים ומייצר תג אימות שמזהה כל שינוי בטקסט המוצפן. אם סיבית אחת תשתנה, הפענוח ייכשל במקום לייצר טקסט רגיל פגום.
NIST תיקן GCM ב-SP 800-38D (2007). זהו המצב המומלץ ליישומים חדשים.
AES-256-GCM הוא AES עם מפתח 256 סיביות במצב Galois/Counter. זה מה שאפליקציות קריטיות לאבטחה צריכות להשתמש בו, ומה ש-Vaultaire משתמש בו להצפנת תמונות ותכני קבצים.
| מצב | דליפת דפוסים | אימות | המלצה נוכחית |
|---|---|---|---|
| ECB | כן (חמור) | לא | אל תשתמש |
| CBC | לא | לא (דורש MAC נפרד) | ירושה; קביל עם HMAC |
| GCM | לא | כן (מובנה) | מומלץ ליישומים חדשים |
מה AES-256 אומר לאחסון תמונות
כשאפליקציית כספת תמונות טוענת "הצפנת AES-256", שלושה דברים צריכים להיות נכונים:
תוכן הקבצים מוצפן ב-AES-256. נתוני התמונה הגולמיים (פיקסלים, מטא-נתונים, תמונה ממוזערת) הומרו לטקסט מוצפן עם מפתח 256 סיביות.
כל קובץ משתמש בוקטור אתחול ייחודי (IV). אם שתי תמונות זהות מוצפנות עם אותו מפתח, הטקסט המוצפן צריך להיות שונה. זה דורש IV ייחודי לכל קובץ.
המצב מספק אימות (GCM או שקול). ללא אימות, תוקף יכול לשנות את הטקסט המוצפן ללא זיהוי.
מה "AES-256" בדף שיווקי לא אומר לך
AES-256 הכרחי אבל לא מספיק. גורמים קריטיים אחדים קובעים אם ההצפנה אכן מגינה על הנתונים שלך:
גזירת מפתחות חשובה. כיצד נוצר המפתח ב-256 סיביות? אם הוא נגזר מ-PIN בן 4 ספרות עם פונקציית גזירה חלשה, האבטחה האפקטיבית היא 4 ספרות (10,000 צירופים), לא 256 סיביות. יישום חזק משתמש ב-PBKDF2 עם מספר איטרציות גבוה או ב-Argon2 עם פרמטרי זיכרון/זמן מתאימים. Vaultaire משתמש ב-PBKDF2 עם HMAC-SHA512, גוזר את המפתח מתבנית על רשת 5x5 עם מיליארדי קלטים אפשריים.
אחסון מפתח חשוב. היכן המפתח נמצא? אם המפתח מאוחסן כטקסט רגיל בסביבת האפליקציה, כל תוכנה זדונית עם גישה לקבצים יכולה לקרוא אותו. אחסון מפתח נכון משתמש במנגנונים גיבוי חומרה כמו Secure Enclave של Apple.
מה מוצפן חשוב. חלק מהאפליקציות מצפינות תכני קבצים אבל משאירות שמות קבצים, תמונות ממוזערות ומטא-נתונים לא מוצפנים.
מחזור חיי מפתח חשוב. האם המפתח נמחק מהזיכרון כשהאפליקציה נסגרת? Vaultaire מוחק מפתחות מהזיכרון בכל סגירת אפליקציה ודורש הזנת תבנית מחדש בכל הפעלה.
AES-256 בפועל: מי משתמש בו
| גורם | שימוש | מצב |
|---|---|---|
| ממשלת ארה"ב (NSA) | מידע מסווג | GCM (או CTR עם אימות נפרד) |
| Apple (iCloud ADP) | הצפנת iCloud מקצה לקצה | GCM |
| Signal | הצפנת הודעות | CBC (עם HMAC לאימות) |
| בנקים | הצפנת עסקאות פיננסיות | GCM |
| 1Password | כספת סיסמאות | GCM |
| Vaultaire | כספת תמונות וקבצים | GCM |
| VeraCrypt | הצפנת דיסק | XTS (מותאם לבלוקי דיסק) |
אי-הבנות נפוצות
"הצפנה בדרגה צבאית" לא אומר כלום ספציפי. דפי שיווק משתמשים בביטוי הזה כי הוא נשמע מרשים. AES-256 משמש את הצבאות. AES-128 גם. הביטוי לא אומר לך על המצב, גזירת המפתח, אחסון המפתח או מה מוצפן בפועל.
"הצפנת 256 סיביות" אולי לא אומרת AES-256. צופנים אחרים גם משתמשים במפתחות 256 סיביות (ChaCha20, Twofish, Serpent). בדוק איזה אלגוריתם מצוין. AES-256-GCM הוא התקן הנוכחי.
AES-256 לא מגן מפני סיסמה חלשה. אם הסיסמה שלך היא "1234" וגזירת המפתח חלשה, ההצפנה היא אפקטיבית בת 4 ספרות ללא קשר לעוצמת הצופן.
AES-256 לא מגן על נתונים בשימוש. כשאתה צופה בתמונה, היא חייבת להיות מפוענחת בזיכרון. באותו רגע, היא קיימת כטקסט רגיל ב-RAM.
שאלות נפוצות
האם ניתן לפצח AES-256?
אין התקפה ידועה שפוצחת AES-256 על ידי הקטנת מרחב המפתחות המלא. ההתקפה הידועה הטובה ביותר (התקפת biclique של Bogdanov, Khovratovich ו-Rechberger, 2011) מקטינה AES-256 מ-2^256 פעולות ל-2^254.4, שיפור תיאורטי חסר משמעות חישובית. AES-256 נותר שלם.
האם AES-256 עמיד בפני מחשוב קוונטי?
ברובו, כן. אלגוריתם גרובר הקוונטי מחצה את אורך המפתח האפקטיבי: AES-256 הופך לשקיל לאבטחת 128 סיביות נגד התקפות קוונטיות. AES-128 יורד לאבטחה אפקטיבית של 64 סיביות, שעלולה להיות חשופה. NIST ממליץ על AES-256 לאבטחה לטווח ארוך נגד התקדמות במחשוב קוונטי.
מה ההבדל בין AES-128 ל-AES-256?
AES-128 משתמש במפתח 128 סיביות (10 סיבובים). AES-256 משתמש במפתח 256 סיביות (14 סיבובים). שניהם נחשבים מאובטחים נגד התקפות נוכחיות. AES-256 מספק שוליים גדולים יותר נגד התקדמות עתידית, בעיקר מחשוב קוונטי. AES-256 איטי בכ-40% מ-AES-128 בשל הסיבובים הנוספים, אבל האצת חומרה הופכת זאת לזניח במכשירים מודרניים.
האם הצפנת AES-256 מאטה את הטלפון שלי?
לא בצורה ניכרת. iPhone מודרניים כוללים האצת חומרה ייעודית ל-AES ב-Secure Enclave ובמעבד. הצפנת תמונה או פענוחה לוקחים מילישניות. AES תוכנן במיוחד ליעילות יישום חומרה.
כיצד יודעים אם אפליקציה אכן משתמשת ב-AES-256?
בדוק את תיעוד האבטחה של האפליקציה, לא רק את דף השיווק. חפש: אלגוריתם ומצב ספציפיים (AES-256-GCM, לא רק "AES" או "256 סיביות"), שיטת גזירת מפתח (PBKDF2, Argon2), מנגנון אחסון מפתח (Secure Enclave, גיבוי חומרה), ואם מטא-נתונים מוצפנים גם כן. אפליקציות קוד-פתוח מאפשרות אימות עצמאי.
סיכום
AES-256 הוא תקן הזהב להצפנה סימטרית, מתוקן על ידי NIST, בשימוש ממשלות ומוסדות פיננסיים, ועמיד בפני כל ההתקפות הידועות כולל מחשוב קוונטי. בעת הערכת אפליקציות שטוענות להצפנת AES-256, הסתכל מעבר לצופן: בדוק את המצב (GCM), גזירת המפתח (PBKDF2/Argon2 עם מספר איטרציות גבוה), אחסון המפתח (גיבוי חומרה), ומה מוצפן בפועל (תכנים ומטא-נתונים).
Vaultaire משתמש ב-AES-256-GCM להצפנת קבצים, PBKDF2 עם HMAC-SHA512 לגזירת מפתחות, ChaCha20 להצפנת מטא-נתונים ו-Apple Secure Enclave לניהול מפתחות. ההצפנה אינה שפה שיווקית. זה מתמטיקה.