Cryptology Academy · บทเรียน

XOR ภายใน AES และรหัสกระแส

ติดตามการใช้ XOR ภายในอัลกอริทึมการเข้ารหัสจริง

บทเรียน 4 จาก 413 ขั้นตอน

XOR ภายใน AES และรหัสกระแส เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

XOR เป็นองค์ประกอบพื้นฐานภายในรหัสลับสมัยใหม่ทุกชนิด ในบทเรียนนี้เราจะติดตามการปรากฏของ XOR ใน AES AddRoundKey และการผสมกระแสคีย์ของรหัสลับแบบสตรีม

XOR ใน AES: AddRoundKey

AES มี 10–14 รอบ ทุก ๆ รอบเริ่มต้นด้วย AddRoundKey: state ขนาด 16 ไบต์จะถูกนำไป XOR กับคีย์รอบขนาด 16 ไบต์ ขั้นตอนนี้เป็นขั้นตอนเดียวที่นำคีย์ลับเข้ามาใช้จริง

การสร้างคีย์รอบของ AES

คีย์ขนาด 128/192/256 บิตดั้งเดิมจะถูกขยายเป็นคีย์รอบ 11/13/15 ชุดผ่านตารางกำหนดคีย์ ขั้นตอน AddRoundKey แต่ละขั้นจะใช้คีย์รอบที่สร้างขึ้นแตกต่างกัน

เหตุใด XOR จึงทำงานภายใน AES ได้

ใน AES การดำเนินการ XOR เกิดขึ้นภายในเลขคณิต GF(2^8) การดำเนินการไม่เชิงเส้นโดยรอบ (SubBytes, MixColumns) ทำให้ XOR มีคุณสมบัติด้านการแพร่กระจายและการสร้างความสับสนตามที่ Claude Shannon อธิบายไว้

กระแสคีย์ของรหัสลับแบบสตรีม

รหัสลับแบบสตรีมจะสร้างกระแสคีย์เทียมสุ่มจากคีย์และ nonce: keystream = CSPRNG(key, nonce) ciphertext = plaintext XOR keystream ChaCha20 สร้างกระแสคีย์เป็นบล็อกขนาด 64 ไบต์โดยใช้ฟังก์ชันรอบย่อย

รอบย่อยของ ChaCha20

ฟังก์ชันผสมค่าของ ChaCha20: a += b; d ^= a; d <<<= 16 c += d; b ^= c; b <<<= 12 a += b; d ^= a; d <<<= 8 c += d; b ^= c; b <<<= 7 XOR (^) และการหมุนบิต (<<<) คือการดำเนินการสำคัญ

Nonce และตัวนับในรหัสลับแบบสตรีม

ChaCha20 รับค่า: คีย์ 256 บิต + nonce 96 บิต + ตัวนับ 32 บิต ตัวนับที่แตกต่างกันจะสร้างบล็อกกระแสคีย์ที่แตกต่างกัน การใช้คู่ (key, nonce) ซ้ำเป็นความผิดพลาดร้ายแรง — ห้ามทำโดยเด็ดขาด

โหมด AES-CTR: รหัสลับแบบบล็อกในรูปแบบรหัสลับแบบสตรีม

AES-CTR เข้ารหัสค่าตัวนับที่เพิ่มขึ้นต่อเนื่องด้วย AES จากนั้นนำผลลัพธ์ไป XOR กับ plaintext วิธีนี้เปลี่ยน AES ซึ่งเป็นรหัสลับแบบบล็อกให้เป็นรหัสลับแบบสตรีม และทำให้สร้างเอาต์พุตที่มีความยาวเท่าใดก็ได้

XOR ในโหมด OFB และ CFB

OFB: keystream = AES(AES(AES(IV)...)) โดย plaintext XOR keystream = ciphertext CFB: บล็อก ciphertext = plaintext XOR AES(previous_ciphertext) ทั้งสองโหมดใช้ XOR เป็นขั้นตอนการผสมค่า

การสร้างความสับสนและการแพร่กระจายด้วย XOR + S-Box

การสร้างความสับสนตามแนวคิดของ Shannon: S-box (SubBytes) ทำให้ความสัมพันธ์ระหว่างคีย์กับ ciphertext ซับซ้อน การแพร่กระจาย: ShiftRows+MixColumns ทำให้อิทธิพลของแต่ละไบต์กระจายออกไป XOR ทำหน้าที่เชื่อมทั้งสองส่วนเข้ากับคีย์

อย่าสร้างระบบเข้ารหัสเอง

การเข้าใจบทบาทของ XOR ทำให้เห็นว่าเหตุใดการออกแบบรหัสลับโดยมือสมัครเล่นจึงล้มเหลว: พวกเขาใช้ XOR โดยไม่มีชั้นการดำเนินการไม่เชิงเส้น หากไม่มี S-box และการแพร่กระจาย รหัสลับที่อาศัย XOR จะถูกทำลายได้ง่ายด้วยพีชคณิต

ตรวจสอบอย่างรวดเร็ว

การดำเนินการ AES ใดที่นำ state ไป XOR กับคีย์รอบโดยตรง

สรุป

ตอนนี้คุณเข้าใจบทบาทของ XOR ภายในรหัสลับจริงแล้ว ต่อไปเราจะศึกษาฟังก์ชันแฮช โดยเริ่มตั้งแต่ MD5 ไปจนถึง SHA-256
เริ่มต้นได้ฟรี

เรียนรู้ Cryptology Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
67
บทเรียน
261

คำถามที่พบบ่อย

บทเรียน “XOR ภายใน AES และรหัสกระแส” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “XOR ภายใน AES และรหัสกระแส” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “XOR ภายใน AES และรหัสกระแส”

ติดตามการใช้ XOR ภายในอัลกอริทึมการเข้ารหัสจริง คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “XOR ภายใน AES และรหัสกระแส” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ทบทวนการดำเนินการระดับบิต
  2. การเข้ารหัส XOR และแผ่นรหัสใช้ครั้งเดียว
  3. เหตุใด XOR เพียงอย่างเดียวจึงไม่ปลอดภัย
  4. XOR ภายใน AES และรหัสกระแส
← กลับไปที่ Cryptology Academy