הצפנת AES-256 מוסברת: מה זה אומר לנתונים שלך

הצפנת 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 סיבובים.

כל סיבוב מיישם ארבע פעולות:

  1. SubBytes: כל בית מוחלף באמצעות טבלת החלפה קבועה (S-box), המוסיפה אי-לינאריות.
  2. ShiftRows: בתים בכל שורה מוזזים בהיסטים שונים, מפזרים נתונים על פני מיקומים.
  3. MixColumns: עמודות מעורבבות דרך כפל מטריצות בשדה סופי, מפזרים שינויים על פני בתים.
  4. 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", שלושה דברים צריכים להיות נכונים:

  1. תוכן הקבצים מוצפן ב-AES-256. נתוני התמונה הגולמיים (פיקסלים, מטא-נתונים, תמונה ממוזערת) הומרו לטקסט מוצפן עם מפתח 256 סיביות.

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

  3. המצב מספק אימות (GCM או שקול). ללא אימות, תוקף יכול לשנות את הטקסט המוצפן ללא זיהוי.

מה "AES-256" בדף שיווקי לא אומר לך

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

גזרת מפתח חשובה. כיצד נוצר מפתח 256 סיביות? אם הוא נגזר מ-PIN בן 4 ספרות באמצעות KDF חלש, האבטחה האפקטיבית היא 4 ספרות (10,000 שילובים), לא 256 סיביות. יישום חזק משתמש PBKDF2 עם ספירת איטרציות גבוהה או Argon2 עם פרמטרי זיכרון וזמן מתאימים. Vaultaire שימושים PBKDF2 עם HMAC-SHA512 ו-600,000 איטרציות כדי להפיק מפתח כספת מקומי מהתבנית הנבחרה של 5x5 ומלח התקן. PBKDF2 מייקר כל ניחוש; זה לא מעלה את האנטרופיה של התבנית ל-256 סיביות.

אחסון מפתח חשוב. איפה המפתח חי? אם המפתח מאוחסן בטקסט רגיל בארגז החול של האפליקציה, תוכנה זדונית עם גישה לקובץ יכולה לקרוא אותו. של אפל Secure Enclave תומך בפעולות מפתח ספציפיות שאינן ניתנות לייצוא, לא במפתחות AES שרירותיים שסופקו על ידי אפליקציה. עיצובי מפתח סימטרי עשויים לסמוך במקום זאת Keychain והגנה על נתונים, כך שהתיעוד צריך למנות את ממשק ה-API ומחלקת ההגנה במקום לומר רק "מגובה בחומרה".

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

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

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 מאטה את הטלפון שלי?

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

כיצד יודעים אם אפליקציה אכן משתמשת ב-AES-256?

בדוק את תיעוד האבטחה של האפליקציה, לא רק את הדף השיווקי שלה. חפש את האלגוריתם והמצב הספציפיים, היררכיית מפתח, פרמטרי גזירה, מדויקים Keychain או Secure Enclave שימוש, טיפול לא פעם, נתיב שחזור והאם מטא נתונים מוצפנים גם הם. קוד קוד פתוח וביקורות עצמאיות הופכים את הטענות הללו לקל יותר לאימות.

סיכום

AES-256 הוא תקן הזהב להצפנה סימטרית, מתוקן על ידי NIST, בשימוש ממשלות ומוסדות פיננסיים, ועמיד בפני כל ההתקפות הידועות כולל מחשוב קוונטי. בעת הערכת אפליקציות שטוענות להצפנת AES-256, הסתכל מעבר לצופן: בדוק את המצב (GCM), גזירת המפתח (PBKDF2/Argon2 עם מספר איטרציות גבוה), אחסון המפתח (גיבוי חומרה), ומה מוצפן בפועל (תכנים ומטא-נתונים).

כספת שימושים AES-256-GCM עבור תוכן קבצים, כותרות, מטא נתונים, אינדקסים ותמונות ממוזערות. PBKDF2 עם HMAC-SHA512 גוזר מפתח כספת מקומי מהתבנית ומכל המכשיר Keychain מלח; מפתח זה פותח מפתח ראשי אקראי המשמש להצפנת קבצים. הפעולות הסימטריות פועלות בתהליך האפליקציה דרך CryptoKit, תוך כדי iOS Keychain והגנה על נתונים מגנים על מצב התאוששות כשהמכשיר נעול. ההיררכיה המלאה מתועדת ב- מודל אבטחה.