איך AES עובד?

AES משתמש מפתח הצפנה אורך משתנה.

פעולה בסיסית

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

תוכנית מפתח

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

מטריצת הסטטוס

AES משתמש במפתח הצפנה שיכול להיות באורך 128, 192 או 256 סיביות, והוא מוחל ביחידות נתונים, הנקראות בלוקים, שכל אחד מהם הוא באורך של 128 סיביות. אלגוריתם AES מתחיל על ידי העתקת כל בלוק 16 סיביות לתוך מערך דו מימדי שנקרא המדינה, כדי ליצור מערך 4x4 בתים. האלגוריתם מבצע פעולה בלעדית "O" שמחזירה "true" אם אחד או יותר מהפעולות שלו נכון. זה נקרא "AddRoundKey", והוא בין ארבע השורות הראשונות של תוכנית המפתח ואת המדינה מטריצה.

פעולות מתמטיות

לאחר הניתוח הראשוני הבלעדי "O", אלגוריתם ההצפנה של AES נכנס ללולאה הראשית שלו, שם הוא מבצע שוב ושוב ארבע פעולות מתמטיות שונות במטריצת המדינה: "SubBytes", "ShiftRows", "MixColumns" ו- "AddRoundKey" . פעולות אלה מעסיקות שילוב של תוספת, כפל, סיבוב ותחליף להצפין כל בית במטריצת המדינה. לולאה הראשי פועל 10, 12 או 14 פעמים בהתאם לגודל של מפתח ההצפנה. לאחר הביצוע, האלגוריתם מעתיק את מטריצת המדינה לפלט שלה בצורה של טקסט מוצפן.