ARIA (צופן)
פירוט פעולות הצופן > שכבת החלפה

בשכבת ההחלפה (substitution layer) משתמש ARIA בשתי תיבות החלפה  S_{1} ו- S_{2} וכן התיבות ההופכיות שלהן  S_{1}^{-1} ו- S_{2}^{-1}. תיבות ההחלפה נתונות בארבע הטבלאות להלן. הטבלאות בנויות מ-16 שורות ו-16 עמודות, בסך הכול 256 כניסות, כל כניסה מכילה מספר באורך 8 סיביות בטווח בין 0 ל-256 (או שתי ספרות הקסדצימליות בין  {\text{0x00}} ל- {\text{0xff}}). הקלט לפונקציית ההחלפה הוא בית אחד המשמש כאינדקס לשורה והעמודה בטבלה, הניבל הראשון (ספרה הקסדצימלית ראשונה בטווח בין 0 ל-15) מציין עמודה ואילו הניבל השני מציין שורה. למשל אם הקלט הוא  {\text{0x00}} הטבלה  S_{1} תחזיר  {\text{0x63}} (בבסיס הקסדצימלי) ואילו הטבלה  S_{2} תחזיר  {\text{0xe2}} וכן  S_{1}^{-1}({\text{0x95}})={\text{0xad}} או  S_{2}^{-1}({\text{0x48}})={\text{0x67}}:
| --- | --- |
 S_{1}:  S_{1}^{-1}
   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f 0 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0 2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf 6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db a e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79 b e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08 c ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a d 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e e e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df f 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16 :    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f 0 52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb 1 7c e3 39 82 9b 2f ff 87 34 8e 43 44 c4 de e9 cb 2 54 7b 94 32 a6 c2 23 3d ee 4c 95 0b 42 fa c3 4e 3 08 2e a1 66 28 d9 24 b2 76 5b a2 49 6d 8b d1 25 4 72 f8 f6 64 86 68 98 16 d4 a4 5c cc 5d 65 b6 92 5 6c 70 48 50 fd ed b9 da 5e 15 46 57 a7 8d 9d 84 6 90 d8 ab 00 8c bc d3 0a f7 e4 58 05 b8 b3 45 06 7 d0 2c 1e 8f ca 3f 0f 02 c1 af bd 03 01 13 8a 6b 8 3a 91 11 41 4f 67 dc ea 97 f2 cf ce f0 b4 e6 73 9 96 ac 74 22 e7 ad 35 85 e2 f9 37 e8 1c 75 df 6e a 47 f1 1a 71 1d 29 c5 89 6f b7 62 0e aa 18 be 1b b fc 56 3e 4b c6 d2 79 20 9a db c0 fe 78 cd 5a f4 c 1f dd a8 33 88 07 c7 31 b1 12 10 59 27 80 ec 5f d 60 51 7f a9 19 b5 4a 0d 2d e5 7a 9f 93 c9 9c ef e a0 e0 3b 4d ae 2a f5 b0 c8 eb bb 3c 83 53 99 61 f 17 2b 04 7e ba 77 d6 26 e1 69 14 63 55 21 0c 7d 
| --- | --- |
 S_{2}:  S_{2}^{-1}
   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f 0 e2 4e 54 fc 94 c2 4a cc 62 0d 6a 46 3c 4d 8b d1 1 5e fa 64 cb b4 97 be 2b bc 77 2e 03 d3 19 59 c1 2 1d 06 41 6b 55 f0 99 69 ea 9c 18 ae 63 df e7 bb 3 00 73 66 fb 96 4c 85 e4 3a 09 45 aa 0f ee 10 eb 4 2d 7f f4 29 ac cf ad 91 8d 78 c8 95 f9 2f ce cd 5 08 7a 88 38 5c 83 2a 28 47 db b8 c7 93 a4 12 53 6 ff 87 0e 31 36 21 58 48 01 8e 37 74 32 ca e9 b1 7 b7 ab 0c d7 c4 56 42 26 07 98 60 d9 b6 b9 11 40 8 ec 20 8c bd a0 c9 84 04 49 23 f1 4f 50 1f 13 dc 9 d8 c0 9e 57 e3 c3 7b 65 3b 02 8f 3e e8 25 92 e5 a 15 dd fd 17 a9 bf d4 9a 7e c5 39 67 fe 76 9d 43 b a7 e1 d0 f5 68 f2 1b 34 70 05 a3 8a d5 79 86 a8 c 30 c6 51 4b 1e a6 27 f6 35 d2 6e 24 16 82 5f da d e6 75 a2 ef 2c b2 1c 9f 5d 6f 80 0a 72 44 9b 6c e 90 0b 5b 33 7d 5a 52 f3 61 a1 f7 b0 d6 3f 7c 6d f ed 14 e0 a5 3d 22 b3 f8 89 de 71 1a af ba b5 81 :    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f 0 30 68 99 1b 87 b9 21 78 50 39 db e1 72 09 62 3c 1 3e 7e 5e 8e f1 a0 cc a3 2a 1d fb b6 d6 20 c4 8d 2 81 65 f5 89 cb 9d 77 c6 57 43 56 17 d4 40 1a 4d 3 c0 63 6c e3 b7 c8 64 6a 53 aa 38 98 0c f4 9b ed 4 7f 22 76 af dd 3a 0b 58 67 88 06 c3 35 0d 01 8b 5 8c c2 e6 5f 02 24 75 93 66 1e e5 e2 54 d8 10 ce 6 7a e8 08 2c 12 97 32 ab b4 27 0a 23 df ef ca d9 7 b8 fa dc 31 6b d1 ad 19 49 bd 51 96 ee e4 a8 41 8 da ff cd 55 86 36 be 61 52 f8 bb 0e 82 48 69 9a 9 e0 47 9e 5c 04 4b 34 15 79 26 a7 de 29 ae 92 d7 a 84 e9 d2 ba 5d f3 c5 b0 bf a4 3b 71 44 46 2b fc b eb 6f d5 f6 14 fe 7c 70 5a 7d fd 2f 18 83 16 a5 c 91 1f 05 95 74 a9 c1 5b 4a 85 6d 13 07 4f 4e 45 d b2 0f c9 1c a6 bc ec 73 90 7b cf 59 8f a1 f9 2d e f2 b1 00 94 37 9f d0 2e 9c 6e 28 3f 80 f0 3d d3 f 25 8a b5 e7 42 b3 c7 ea f7 4c 11 33 03 a2 ac 60 
הצופן עושה שימוש בתיבות ההחלפה בשני אופנים (כמתואר בתרשים לעיל). באופן הראשון הנקרא type 1 הבית הראשון מוחלף לפי התיבה הראשונה  S_{1} הבית השני לפי התיבה  S_{2}, השלישי והרביעי לפי ההופכיות שלהן  S_{1}^{-1} ו- S_{2}^{-1} בהתאמה, החמישי והשישי שוב בתיבה הראשונה והשנייה וחוזר חלילה עד שמחליפים את כל בתי המצב. באופן השני הנקרא type 2 מבצעים את ההחלפה בסדר הפוך תחילה בתיבות ההופכיות  S_{1}^{-1} ו- S_{2}^{-1} ולאחר מכן  S_{1} ו- S_{2} לסירוגין, כמתואר בתרשים להלן. הפסאודו קוד הבא מתאר את פונקציות ההחלפה  SL_{1} ו- SL_{2} לפי type 1 ו-type 2 בהתאמה, הקלט הוא המצב הנוכחי  X=x_{0},...,x_{15} והפלט הוא המצב החדש  Y=y_{0},...,y_{15}:
| 0 | 1 | 2 | 3 |
| --- | --- | --- | --- |
|  Y=SL_{1}(X) |  Y=SL_{1}(X) |  Y=SL_{1}(X) |  |
|  y_{0}=S_{1}(x_{0}), |  y_{1}=S_{2}(x_{1}), |  y_{2}=S_{1}^{-1}(x_{2}), |  y_{3}=S_{2}^{-1}(x_{3}), |
|  y_{4}=S_{1}(x_{4}), |  y_{5}=S_{2}(x_{5}), |  y_{6}=S_{1}^{-1}(x_{6}), |  y_{7}=S_{2}^{-1}(x_{7}), |
|  y_{8}=S_{1}(x_{8}), |  y_{9}=S_{2}(x_{9}), |  y_{10}=S_{1}^{-1}(x_{10}), |  y_{11}=S_{2}^{-1}(x_{11}), |
|  y_{12}=S_{1}(x_{12}), |  y_{13}=S_{2}(x_{13}), |  y_{14}=S_{1}^{-1}(x_{14}), |  y_{15}=S_{2}^{-1}(x_{15}) |
| 0 | 1 | 2 | 3 |
| --- | --- | --- | --- |
| ‎ | ‎ | ‎ |  |
|  Y=SL_{2}(X) |  Y=SL_{2}(X) |  Y=SL_{2}(X) |  |
|  y_{0}=S_{1}^{-1}(x_{0}), |  y_{1}=S_{2}^{-1}(x_{1}), |  y_{2}=S_{1}(x_{2}), |  y_{3}=S_{2}(x_{3}), |
|  y_{4}=S_{1}^{-1}(x_{4}), |  y_{5}=S_{2}^{-1}(x_{5}), |  y_{6}=S_{1}(x_{6}), |  y_{7}=S_{2}(x_{7}), |
|  y_{8}=S_{1}^{-1}(x_{8}), |  y_{9}=S_{2}^{-1}(x_{9}), |  y_{10}=S_{1}(x_{10}), |  y_{11}=S_{2}(x_{11}), |
|  y_{12}=S_{1}^{-1}(x_{12}), |  y_{13}=S_{2}^{-1}(x_{13}), |  y_{14}=S_{1}(x_{14}), |  y_{15}=S_{2}(x_{15}) |