กลับไปหน้าบทความ

อ่าน 11 นาที

ไรน์เดล มิกซ์คอลัมน์

มาตรฐานการเข้ารหัสขั้นสูง/เขตข้อมูลจำกัด

การดำเนิน การ MixColumnsที่ใช้ใน การเข้ารหัส Rijndaelหรือมาตรฐานการเข้ารหัสขั้นสูง (Advanced Encryption Standard)ร่วมกับขั้นตอน ShiftRows เป็นแหล่งกระจายข้อมูล หลัก

ไรน์เดล มิกซ์คอลัมน์

การดำเนิน การ MixColumnsที่ใช้ใน การเข้ารหัส Rijndaelหรือมาตรฐานการเข้ารหัสขั้นสูง (Advanced Encryption Standard)ร่วมกับขั้นตอน ShiftRows เป็นแหล่งกระจายข้อมูล หลัก แต่ละคอลัมน์ของไบต์จะถูกมองว่าเป็นพหุนามสี่พจน์โดยแต่ละไบต์แทนองค์ประกอบในฟิลด์ Galoisสัมประสิทธิ์เป็นองค์ประกอบภายในฟิลด์ย่อย จำนวน เฉพาะ

แต่ละคอลัมน์จะถูกคูณด้วยพหุนามคงที่โมดู ลัส ; ฟังก์ชันผกผันคือ.

สาธิต

การดำเนินการ MixColumns จะใช้พหุนามคงที่ซึ่งจะแสดงเป็นเราสังเกตว่าในมีค่าคงที่ที่สอดคล้องกันอยู่ จากนั้น มีหลายวิธีในการเรียกใช้ฟังก์ชัน ในที่นี้ การดำเนินการสามารถแสดงได้ในรูปของการคูณพหุนามและการคูณเมทริกซ์ไม่ว่าอย่างไรก็ตาม ฟังก์ชันจะใช้การดำเนินการแบบเอ็กซ์คลูซีฟหรือเสมอ

การคูณพหุนาม

สำหรับพหุนาม คงที่ และคอลัมน์ของไบต์เราสามารถคูณทั้งสองเข้าด้วยกันเพื่อให้ได้ผลลัพธ์ดังต่อไปนี้:

เราจะเห็นว่าเป็นพหุนามเจ็ดพจน์ โดยที่ค่าคงที่ของพหุนามนี้จะต้องเป็นไปตามเงื่อนไขต่อไปนี้:

การลดแบบโมดูลาร์

เนื่องจาก AES ทำงานกับ "เวิร์ด" ขนาดสี่ไบต์ และการโอเวอร์โฟลว์ใดๆ ก็อาจทำให้ขั้นตอนวิธีล้มเหลวได้จึงต้องลดขนาดเวิร์ดให้เหลือขนาดสี่ไบต์ ซึ่งทำได้โดยการ คูณ แบบโมดูลัสกับ

อีกวิธีหนึ่งในการป้องกันการล้นคือการพิจารณาแต่ละไบต์เป็นองค์ประกอบในฟิลด์กาโลอิสฟังก์ชันทางคณิตศาสตร์ทั้งหมด ในฟิลด์จำกัดนี้ ได้แก่ การบวก การลบ การคูณ การหาร จะให้ผลลัพธ์เป็นตัวเลข 8 บิตเสมอ หากเราทำการคำนวณมอดูลาร์พหุนามพื้นฐานบางอย่าง เราจะเห็นได้ว่า:

โดยทั่วไป เราสามารถกล่าวได้ว่า สำหรับค่าใดๆแล้ว

จากตรงนี้ เราคำนวณการคูณพหุนามโมดูลัสของและเพื่อให้ได้ผลลัพธ์ดังนี้:

ที่ไหน

การแสดงผลแบบเมทริกซ์

ในที่นี้ ให้เป็นไบต์เอาต์พุตของการดำเนินการ สัมประสิทธิ์, , และสามารถแสดงได้ดังนี้:

และเมื่อเราแทนที่สัมประสิทธิ์ของด้วยค่าคงที่ที่ใช้ในการเข้ารหัส เราจะได้ผลลัพธ์ดังต่อไปนี้:

สิ่งนี้แสดงให้เห็นว่าการดำเนินการนั้นคล้ายคลึงกับการเข้ารหัสแบบฮิลล์สามารถทำได้โดยการคูณเวกเตอร์พิกัดของตัวเลขสี่ตัวในฟิลด์กาโลอิสของไรน์เดลด้วยเมทริกซ์ MDS แบบวงกลม ต่อไปนี้ :

ตัวอย่างการนำไปใช้

ในการใช้งานจริง สามารถลดความซับซ้อนลงได้บ้างโดยการแทนที่การคูณด้วย 2 ด้วยการเลื่อนบิตเพียงครั้งเดียวและการใช้ตัวดำเนินการ OR แบบมีเงื่อนไข และแทนที่การคูณด้วย 3 ด้วยการคูณด้วย 2 ร่วมกับการใช้ตัวดำเนินการ OR แบบมีเงื่อนไขตัวอย่างการใช้งานในภาษาC มีดังต่อไปนี้:

void gmix_column ( unsigned char * r ) {อักขระที่ไม่มีเครื่องหมายa [ 4 ];อักขระที่ไม่ระบุb [ 4 ];อักขระไม่ระบุเครื่องหมายc ;อักขระที่ไม่ระบุ เครื่องหมาย h ;/* อาร์เรย์ 'a' เป็นเพียงสำเนาของอาร์เรย์อินพุต 'r' */ * อาร์เรย์ 'b' คือค่าของแต่ละองค์ประกอบในอาร์เรย์ 'a' คูณด้วย 2 * ในฟิลด์กาโลอิสของไรน์เดล * a[n] ^ b[n] คือสมาชิก n คูณด้วย 3 ในฟิลด์กาโลอิสของ Rijndael */สำหรับ( c = 0 ; c < 4 ; c ++ ) {a [ c ] = r [ c ];/* h จะถูกตั้งค่าเป็น 0x01 ถ้าบิตสูงสุดของ r[c] ถูกตั้งค่า มิเช่นนั้นจะเป็น 0x00 */h = r [ c ] >> 7 ; /* การเลื่อนบิตไปทางขวาเชิงตรรกะ ดังนั้นจึงเลื่อนบิตเข้ามาเป็นศูนย์ */b [ c ] = r [ c ] << 1 ; /* ลบค่าบิตสูงออกโดยปริยาย เนื่องจาก b[c] เป็นอักขระ 8 บิต ดังนั้นเราจึงทำการ XOR กับ 0x1b ไม่ใช่ 0x11b ในบรรทัดถัดไป */b [ c ] ^= h * 0x1B ; /* ฟิลด์กาโลอิสของ Rijndael */}r [ 0 ] = b [ 0 ] ^ a [ 3 ] ^ a [ 2 ] ^ b [ 1 ] ^ a [ 1 ]; /* 2 * a0 + a3 + a2 + 3 * a1 */r [ 1 ] = b [ 1 ] ^ a [ 0 ] ^ a [ 3 ] ^ b [ 2 ] ^ a [ 2 ]; /* 2 * a1 + a0 + a3 + 3 * a2 */r [ 2 ] = b [ 2 ] ^ a [ 1 ] ^ a [ 0 ] ^ b [ 3 ] ^ a [ 3 ]; /* 2 * a2 + a1 + a0 + 3 * a3 */r [ 3 ] = b [ 3 ] ^ a [ 2 ] ^ a [ 1 ] ^ b [ 0 ] ^ a [ 0 ]; /* 2 * a3 + a2 + a1 + 3 * a0 */}

ตัวอย่าง AC#

// ฟิลด์กาโลอิส (256) การคูณของสองไบต์GMul ไบต์ส่วนตัว( ไบต์a , ไบต์b ){ไบต์p = 0 ;สำหรับ( int counter = 0 ; counter < 8 ; counter ++ ){ถ้า(( b & 1 ) != 0 ){p ^= a ;}bool hi_bit_set = ( a & 0x80 ) != 0 ;a <<= 1 ;ถ้า( hi_bit_set ){a ^= 0x1B ; /* x^8 + x^4 + x^3 + x + 1 */}b >>= 1 ;}ส่งคืนค่าp ;}// 's' คือเมทริกซ์สถานะหลัก 'ss' คือเมทริกซ์ชั่วคราวที่มีมิติเท่ากับ 's'private void MixColumns (){อาร์เรย์. เคลียร์( ss , 0 , ss.Length ) ;สำหรับ( int c = 0 ; c < 4 ; c ++ ){ss [ 0 , c ] = ( byte )( GMul ( 0x02 , s [ 0 , c ]) ^ GMul ( 0x03 , s [ 1 , c ]) ^ s [ 2 , c ] ^ s [ 3 , c ]);ss [ 1 , c ] = ( byte )( s [ 0 , c ] ^ GMul ( 0x02 , s [ 1 , c ]) ^ GMul ( 0x03 , s [ 2 , c ]) ^ s [ 3 , c ]);ss [ 2 , c ] = ( byte )( s [ 0 , c ] ^ s [ 1 , c ] ^ GMul ( 0x02 , s [ 2 , c ]) ^ GMul ( 0x03 , s [ 3 , c ]));ss [ 3 , c ] = ( byte )( GMul ( 0x03 , s [ 0 , c ]) ^ s [ 1 , c ] ^ s [ 2 , c ] ^ GMul ( 0x02 , s [ 3 , c ]));}ss.CopyTo ( s , 0 ) ;}

เวกเตอร์ทดสอบสำหรับ MixColumn()

เลขฐานสิบหกทศนิยม
ก่อนหลังจากก่อนหลังจาก
63 47 a2 f05d e0 70 bb99 71 162 24093 224 112 187
f2 0a 22 5c9f dc 58 9d242 10 34 92159 220 88 157
01 01 01 0101 01 01 011 1 1 11 1 1 1
c6 c6 c6 c6c6 c6 c6 c6198 198 198 198198 198 198 198
d4 d4 d4 d5d5 d5 d7 d6212 212 212 213213 213 215 214
2d 26 31 4c4d 7e bd f845 38 49 7677 126 189 248

อินเวอร์สมิกซ์คอลัมน์

การดำเนินการ MixColumns มีการดำเนินการผกผันดังต่อไปนี้ (ตัวเลขเป็นทศนิยม):

หรือ:

ตารางค้นหาสูตรคูณ Galois

โดยทั่วไปแล้ว แทนที่จะใช้การคูณแบบกาโลอิส การใช้งานแบบ Rijndael จะใช้ตารางค้นหาที่คำนวณไว้ล่วงหน้าเพื่อทำการคูณไบต์ด้วย 2, 3, 9, 11, 13 และ 14

ตัวอย่างเช่น ใน C# ตารางเหล่านี้สามารถจัดเก็บในอาร์เรย์ Byte[256] ได้ เพื่อคำนวณ

พี * 3

ผลลัพธ์ที่ได้นั้นได้มาด้วยวิธีดังนี้:

ผลลัพธ์ = ตาราง_3[(int)p]

ตัวอย่างการใช้งานตารางค้นหาที่พบได้บ่อยที่สุดมีดังต่อไปนี้:

คูณด้วย 2:

0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e, 0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e, 0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e, 0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e, 0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e, 0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe, 0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde, 0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe, 0x1b,0x19,0x1f,0x1d,0x13,0x11,0x17,0x15,0x0b,0x09,0x0f,0x0d,0x03,0x01,0x07,0x05, 0x3b,0x39,0x3f,0x3d,0x33,0x31,0x37,0x35,0x2b,0x29,0x2f,0x2d,0x23,0x21,0x27,0x25, 0x5b,0x59,0x5f,0x5d,0x53,0x51,0x57,0x55,0x4b,0x49,0x4f,0x4d,0x43,0x41,0x47,0x45, 0x7b,0x79,0x7f,0x7d,0x73,0x71,0x77,0x75,0x6b,0x69,0x6f,0x6d,0x63,0x61,0x67,0x65, 0x9b,0x99,0x9f,0x9d,0x93,0x91,0x97,0x95,0x8b,0x89,0x8f,0x8d,0x83,0x81,0x87,0x85, 0xbb,0xb9,0xbf,0xbd,0xb3,0xb1,0xb7,0xb5,0xab,0xa9,0xaf,0xad,0xa3,0xa1,0xa7,0xa5, 0xdb,0xd9,0xdf,0xdd,0xd3,0xd1,0xd7,0xd5,0xcb,0xc9,0xcf,0xcd,0xc3,0xc1,0xc7,0xc5, 0xfb,0xf9,0xff,0xfd,0xf3,0xf1,0xf7,0xf5,0xeb,0xe9,0xef,0xed,0xe3,0xe1,0xe7,0xe5

คูณด้วย 3:

0x00,0x03,0x06,0x05,0x0c,0x0f,0x0a,0x09,0x18,0x1b,0x1e,0x1d,0x14,0x17,0x12,0x11, 0x30,0x33,0x36,0x35,0x3c,0x3f,0x3a,0x39,0x28,0x2b,0x2e,0x2d,0x24,0x27,0x22,0x21, 0x60,0x63,0x66,0x65,0x6c,0x6f,0x6a,0x69,0x78,0x7b,0x7e,0x7d,0x74,0x77,0x72,0x71, 0x50,0x53,0x56,0x55,0x5c,0x5f,0x5a,0x59,0x48,0x4b,0x4e,0x4d,0x44,0x47,0x42,0x41, 0xc0,0xc3,0xc6,0xc5,0xcc,0xcf,0xca,0xc9,0xd8,0xdb,0xde,0xdd,0xd4,0xd7,0xd2,0xd1, 0xf0,0xf3,0xf6,0xf5,0xfc,0xff,0xfa,0xf9,0xe8,0xeb,0xee,0xed,0xe4,0xe7,0xe2,0xe1, 0xa0,0xa3,0xa6,0xa5,0xac,0xaf,0xaa,0xa9,0xb8,0xbb,0xbe,0xbd,0xb4,0xb7,0xb2,0xb1, 0x90,0x93,0x96,0x95,0x9c,0x9f,0x9a,0x99,0x88,0x8b,0x8e,0x8d,0x84,0x87,0x82,0x81, 0x9b,0x98,0x9d,0x9e,0x97,0x94,0x91,0x92,0x83,0x80,0x85,0x86,0x8f,0x8c,0x89,0x8a, 0xab,0xa8,0xad,0xae,0xa7,0xa4,0xa1,0xa2,0xb3,0xb0,0xb5,0xb6,0xbf,0xbc,0xb9,0xba, 0xfb,0xf8,0xfd,0xfe,0xf7,0xf4,0xf1,0xf2,0xe3,0xe0,0xe5,0xe6,0xef,0xec,0xe9,0xea, 0xcb,0xc8,0xcd,0xce,0xc7,0xc4,0xc1,0xc2,0xd3,0xd0,0xd5,0xd6,0xdf,0xdc,0xd9,0xda, 0x5b,0x58,0x5d,0x5e,0x57,0x54,0x51,0x52,0x43,0x40,0x45,0x46,0x4f,0x4c,0x49,0x4a, 0x6b,0x68,0x6d,0x6e,0x67,0x64,0x61,0x62,0x73,0x70,0x75,0x76,0x7f,0x7c,0x79,0x7a, 0x3b,0x38,0x3d,0x3e,0x37,0x34,0x31,0x32,0x23,0x20,0x25,0x26,0x2f,0x2c,0x29,0x2a, 0x0b,0x08,0x0d,0x0e,0x07,0x04,0x01,0x02,0x13,0x10,0x15,0x16,0x1f,0x1c,0x19,0x1a

คูณด้วย 9:

0x00,0x09,0x12,0x1b,0x24,0x2d,0x36,0x3f,0x48,0x41,0x5a,0x53,0x6c,0x65,0x7e,0x77, 0x90,0x99,0x82,0x8b,0xb4,0xbd,0xa6,0xaf,0xd8,0xd1,0xca,0xc3,0xfc,0xf5,0xee,0xe7, 0x3b,0x32,0x29,0x20,0x1f,0x16,0x0d,0x04,0x73,0x7a,0x61,0x68,0x57,0x5e,0x45,0x4c, 0xab,0xa2,0xb9,0xb0,0x8f,0x86,0x9d,0x94,0xe3,0xea,0xf1,0xf8,0xc7,0xce,0xd5,0xdc, 0x76,0x7f,0x64,0x6d,0x52,0x5b,0x40,0x49,0x3e,0x37,0x2c,0x25,0x1a,0x13,0x08,0x01, 0xe6,0xef,0xf4,0xfd,0xc2,0xcb,0xd0,0xd9,0xae,0xa7,0xbc,0xb5,0x8a,0x83,0x98,0x91, 0x4d,0x44,0x5f,0x56,0x69,0x60,0x7b,0x72,0x05,0x0c,0x17,0x1e,0x21,0x28,0x33,0x3a, 0xdd,0xd4,0xcf,0xc6,0xf9,0xf0,0xeb,0xe2,0x95,0x9c,0x87,0x8e,0xb1,0xb8,0xa3,0xaa, 0xec,0xe5,0xfe,0xf7,0xc8,0xc1,0xda,0xd3,0xa4,0xad,0xb6,0xbf,0x80,0x89,0x92,0x9b, 0x7c,0x75,0x6e,0x67,0x58,0x51,0x4a,0x43,0x34,0x3d,0x26,0x2f,0x10,0x19,0x02,0x0b, 0xd7,0xde,0xc5,0xcc,0xf3,0xfa,0xe1,0xe8,0x9f,0x96,0x8d,0x84,0xbb,0xb2,0xa9,0xa0, 0x47,0x4e,0x55,0x5c,0x63,0x6a,0x71,0x78,0x0f,0x06,0x1d,0x14,0x2b,0x22,0x39,0x30, 0x9a,0x93,0x88,0x81,0xbe,0xb7,0xac,0xa5,0xd2,0xdb,0xc0,0xc9,0xf6,0xff,0xe4,0xed, 0x0a,0x03,0x18,0x11,0x2e,0x27,0x3c,0x35,0x42,0x4b,0x50,0x59,0x66,0x6f,0x74,0x7d, 0xa1,0xa8,0xb3,0xba,0x85,0x8c,0x97,0x9e,0xe9,0xe0,0xfb,0xf2,0xcd,0xc4,0xdf,0xd6, 0x31,0x38,0x23,0x2a,0x15,0x1c,0x07,0x0e,0x79,0x70,0x6b,0x62,0x5d,0x54,0x4f,0x46

คูณด้วย 11 (0xB):

0x00,0x0b,0x16,0x1d,0x2c,0x27,0x3a,0x31,0x58,0x53,0x4e,0x45,0x74,0x7f,0x62,0x69, 0xb0,0xbb,0xa6,0xad,0x9c,0x97,0x8a,0x81,0xe8,0xe3,0xfe,0xf5,0xc4,0xcf,0xd2,0xd9, 0x7b,0x70,0x6d,0x66,0x57,0x5c,0x41,0x4a,0x23,0x28,0x35,0x3e,0x0f,0x04,0x19,0x12, 0xcb,0xc0,0xdd,0xd6,0xe7,0xec,0xf1,0xfa,0x93,0x98,0x85,0x8e,0xbf,0xb4,0xa9,0xa2, 0xf6,0xfd,0xe0,0xeb,0xda,0xd1,0xcc,0xc7,0xae,0xa5,0xb8,0xb3,0x82,0x89,0x94,0x9f, 0x46,0x4d,0x50,0x5b,0x6a,0x61,0x7c,0x77,0x1e,0x15,0x08,0x03,0x32,0x39,0x24,0x2f, 0x8d,0x86,0x9b,0x90,0xa1,0xaa,0xb7,0xbc,0xd5,0xde,0xc3,0xc8,0xf9,0xf2,0xef,0xe4, 0x3d,0x36,0x2b,0x20,0x11,0x1a,0x07,0x0c,0x65,0x6e,0x73,0x78,0x49,0x42,0x5f,0x54, 0xf7,0xfc,0xe1,0xea,0xdb,0xd0,0xcd,0xc6,0xaf,0xa4,0xb9,0xb2,0x83,0x88,0x95,0x9e, 0x47,0x4c,0x51,0x5a,0x6b,0x60,0x7d,0x76,0x1f,0x14,0x09,0x02,0x33,0x38,0x25,0x2e, 0x8c,0x87,0x9a,0x91,0xa0,0xab,0xb6,0xbd,0xd4,0xdf,0xc2,0xc9,0xf8,0xf3,0xee,0xe5, 0x3c,0x37,0x2a,0x21,0x10,0x1b,0x06,0x0d,0x64,0x6f,0x72,0x79,0x48,0x43,0x5e,0x55, 0x01,0x0a,0x17,0x1c,0x2d,0x26,0x3b,0x30,0x59,0x52,0x4f,0x44,0x75,0x7e,0x63,0x68, 0xb1,0xba,0xa7,0xac,0x9d,0x96,0x8b,0x80,0xe9,0xe2,0xff,0xf4,0xc5,0xce,0xd3,0xd8, 0x7a,0x71,0x6c,0x67,0x56,0x5d,0x40,0x4b,0x22,0x29,0x34,0x3f,0x0e,0x05,0x18,0x13, 0xca,0xc1,0xdc,0xd7,0xe6,0xed,0xf0,0xfb,0x92,0x99,0x84,0x8f,0xbe,0xb5,0xa8,0xa3

คูณด้วย 13 (0xD):

0x00,0x0d,0x1a,0x17,0x34,0x39,0x2e,0x23,0x68,0x65,0x72,0x7f,0x5c,0x51,0x46,0x4b, 0xd0,0xdd,0xca,0xc7,0xe4,0xe9,0xfe,0xf3,0xb8,0xb5,0xa2,0xaf,0x8c,0x81,0x96,0x9b, 0xbb,0xb6,0xa1,0xac,0x8f,0x82,0x95,0x98,0xd3,0xde,0xc9,0xc4,0xe7,0xea,0xfd,0xf0, 0x6b,0x66,0x71,0x7c,0x5f,0x52,0x45,0x48,0x03,0x0e,0x19,0x14,0x37,0x3a,0x2d,0x20, 0x6d,0x60,0x77,0x7a,0x59,0x54,0x43,0x4e,0x05,0x08,0x1f,0x12,0x31,0x3c,0x2b,0x26, 0xbd,0xb0,0xa7,0xaa,0x89,0x84,0x93,0x9e,0xd5,0xd8,0xcf,0xc2,0xe1,0xec,0xfb,0xf6, 0xd6,0xdb,0xcc,0xc1,0xe2,0xef,0xf8,0xf5,0xbe,0xb3,0xa4,0xa9,0x8a,0x87,0x90,0x9d, 0x06,0x0b,0x1c,0x11,0x32,0x3f,0x28,0x25,0x6e,0x63,0x74,0x79,0x5a,0x57,0x40,0x4d, 0xda,0xd7,0xc0,0xcd,0xee,0xe3,0xf4,0xf9,0xb2,0xbf,0xa8,0xa5,0x86,0x8b,0x9c,0x91, 0x0a,0x07,0x10,0x1d,0x3e,0x33,0x24,0x29,0x62,0x6f,0x78,0x75,0x56,0x5b,0x4c,0x41, 0x61,0x6c,0x7b,0x76,0x55,0x58,0x4f,0x42,0x09,0x04,0x13,0x1e,0x3d,0x30,0x27,0x2a, 0xb1,0xbc,0xab,0xa6,0x85,0x88,0x9f,0x92,0xd9,0xd4,0xc3,0xce,0xed,0xe0,0xf7,0xfa, 0xb7,0xba,0xad,0xa0,0x83,0x8e,0x99,0x94,0xdf,0xd2,0xc5,0xc8,0xeb,0xe6,0xf1,0xfc, 0x67,0x6a,0x7d,0x70,0x53,0x5e,0x49,0x44,0x0f,0x02,0x15,0x18,0x3b,0x36,0x21,0x2c, 0x0c,0x01,0x16,0x1b,0x38,0x35,0x22,0x2f,0x64,0x69,0x7e,0x73,0x50,0x5d,0x4a,0x47, 0xdc,0xd1,0xc6,0xcb,0xe8,0xe5,0xf2,0xff,0xb4,0xb9,0xae,0xa3,0x80,0x8d,0x9a,0x97

คูณด้วย 14 (0xE):

0x00,0x0e,0x1c,0x12,0x38,0x36,0x24,0x2a,0x70,0x7e,0x6c,0x62,0x48,0x46,0x54,0x5a, 0xe0,0xee,0xfc,0xf2,0xd8,0xd6,0xc4,0xca,0x90,0x9e,0x8c,0x82,0xa8,0xa6,0xb4,0xba, 0xdb,0xd5,0xc7,0xc9,0xe3,0xed,0xff,0xf1,0xab,0xa5,0xb7,0xb9,0x93,0x9d,0x8f,0x81, 0x3b,0x35,0x27,0x29,0x03,0x0d,0x1f,0x11,0x4b,0x45,0x57,0x59,0x73,0x7d,0x6f,0x61, 0xad,0xa3,0xb1,0xbf,0x95,0x9b,0x89,0x87,0xdd,0xd3,0xc1,0xcf,0xe5,0xeb,0xf9,0xf7, 0x4d,0x43,0x51,0x5f,0x75,0x7b,0x69,0x67,0x3d,0x33,0x21,0x2f,0x05,0x0b,0x19,0x17, 0x76,0x78,0x6a,0x64,0x4e,0x40,0x52,0x5c,0x06,0x08,0x1a,0x14,0x3e,0x30,0x22,0x2c, 0x96,0x98,0x8a,0x84,0xae,0xa0,0xb2,0xbc,0xe6,0xe8,0xfa,0xf4,0xde,0xd0,0xc2,0xcc, 0x41,0x4f,0x5d,0x53,0x79,0x77,0x65,0x6b,0x31,0x3f,0x2d,0x23,0x09,0x07,0x15,0x1b, 0xa1,0xaf,0xbd,0xb3,0x99,0x97,0x85,0x8b,0xd1,0xdf,0xcd,0xc3,0xe9,0xe7,0xf5,0xfb, 0x9a,0x94,0x86,0x88,0xa2,0xac,0xbe,0xb0,0xea,0xe4,0xf6,0xf8,0xd2,0xdc,0xce,0xc0, 0x7a,0x74,0x66,0x68,0x42,0x4c,0x5e,0x50,0x0a,0x04,0x16,0x18,0x32,0x3c,0x2e,0x20, 0xec,0xe2,0xf0,0xfe,0xd4,0xda,0xc8,0xc6,0x9c,0x92,0x80,0x8e,0xa4,0xaa,0xb8,0xb6, 0x0c,0x02,0x10,0x1e,0x34,0x3a,0x28,0x26,0x7c,0x72,0x60,0x6e,0x44,0x4a,0x58,0x56, 0x37,0x39,0x2b,0x25,0x0f,0x01,0x13,0x1d,0x47,0x49,0x5b,0x55,0x7f,0x71,0x63,0x6d, 0xd7,0xd9,0xcb,0xc5,0xef,0xe1,0xf3,0xfd,0xa7,0xa9,0xbb,0xb5,0x9f,0x91,0x83,0x8d
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Rijndael_MixColumns&oldid=1354370362 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไรน์เดล มิกซ์คอลัมน์

การดำเนิน การ MixColumnsที่ใช้ใน การเข้ารหัส Rijndaelหรือมาตรฐานการเข้ารหัสขั้นสูง (Advanced Encryption Standard)ร่วมกับขั้นตอน ShiftRows เป็นแหล่งกระจายข้อมูล หลัก

สาธิต

การดำเนินการ MixColumns จะใช้พหุนามคงที่ซึ่งจะแสดงเป็นเราสังเกตว่าในมีค่าคงที่ที่สอดคล้องกันอยู่ จากนั้น มีหลายวิธีในการเรียกใช้ฟังก์ชัน ในที่นี้ การดำเนินการสามารถแสดงได้ในรูปของ การคูณพหุนาม และ การคูณเมทริกซ์ ไม่ว่าอย่างไรก็ตาม ฟังก์ชันจะใช้การดำเนินการ...

การคูณพหุนาม

สำหรับ พหุนาม คงที่ และคอลัมน์ของไบต์เราสามารถคูณทั้งสองเข้าด้วยกันเพื่อให้ได้ผลลัพธ์ดังต่อไปนี้: เอ ( x ) {\displaystyle a(x)} ข ( x ) {\displaystyle b(x)}

การแสดงผลแบบเมทริกซ์

ในที่นี้ ให้เป็นไบต์เอาต์พุตของการดำเนินการ สัมประสิทธิ์, , และสามารถแสดงได้ดังนี้: d n {\displaystyle d_{n}} d 3 {\displaystyle d_{3}} d 2 {\displaystyle d_{2}} d 1 {\displaystyle d_{1}} d 0 {\displaystyle d_{0}}