0Pricing
Cryptology Academy · บทเรียน

ทบทวนการดำเนินการระดับบิต

อธิบาย AND, OR, XOR, NOT และการเลื่อนบิตด้วยภาพ

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

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

การดำเนินการระดับบิตทำงานโดยตรงกับรูปแทนเลขฐานสองของตัวเลข การดำเนินการเหล่านี้เป็นพื้นฐานสำคัญภายในรหัสลับแบบสมมาตร ฟังก์ชันแฮช และ MAC ทุกชนิด

การดำเนินการ AND

AND จะคืนค่า 1 ก็ต่อเมื่อบิตทั้งสอง (BOTH) เป็น 1 0101 AND 0011 = 0001 กรณีใช้งาน: การทำมาสก์ — การแยกบิตที่ต้องการ mask = 0xFF; low_byte = value & mask

การดำเนินการ OR

OR จะคืนค่า 1 เมื่อมีบิตอย่างน้อยหนึ่งบิต (AT LEAST ONE) เป็น 1 0101 OR 0011 = 0111 กรณีใช้งาน: การกำหนดค่าบิตที่ต้องการ flags = flags | 0x04 # set bit 2

การดำเนินการ XOR

XOR จะคืนค่า 1 เมื่อบิตแตกต่างกัน (DIFFERENT) 0101 XOR 0011 = 0110 คุณสมบัติสำคัญ: A XOR A = 0, A XOR 0 = A XOR เป็นการดำเนินการผกผันตัวเอง: (A XOR B) XOR B = A

การดำเนินการ NOT

NOT จะกลับค่าบิตทุกบิต NOT 0101 = 1010 (ในบริบท 4 บิต) Python: ~5 == -6 (เนื่องจากส่วนเติมเต็มสอง) สำหรับค่าที่ไม่มีเครื่องหมาย: ~x & 0xFF จะจำกัดค่าให้เหลือ 8 บิต

การเลื่อนบิตไปทางซ้าย (<<)

การเลื่อนบิตไปทางซ้ายจะเลื่อนบิตทั้งหมดไปทางซ้ายเป็นจำนวน n ตำแหน่ง และเติมศูนย์ทางด้านขวา 0001 << 3 = 1000 (= 8) a << n มีค่าเทียบเท่ากับ a × 2^n ใช้ในการขยายคีย์และการดำเนินการผสมค่า

การเลื่อนบิตไปทางขวา (>>)

การเลื่อนบิตไปทางขวาจะเลื่อนบิตไปทางขวาและทิ้งบิตที่อยู่ต่ำสุด 1000 >> 2 = 0010 (= 2) a >> n มีค่าเทียบเท่ากับ a ÷ 2^n (ปัดเศษลง) ใช้แยกนิบเบิล: (byte >> 4) & 0x0F

การหมุนบิต (ROTL/ROTR)

การหมุนบิตจะวนบิตกลับไปอีกด้านแทนการทิ้งบิต ROTL32(x, n) = (x << n) | (x >> (32-n)) ใช้ใน SHA-256, AES MixColumns และการดำเนินการรอบย่อยของ ChaCha20

เคล็ดลับการสลับค่าด้วย XOR

XOR ช่วยให้สลับค่าได้โดยไม่ต้องใช้ตัวแปรชั่วคราว: a ^= b b ^= a a ^= b ตอนนี้ a และ b ถูกสลับค่ากันแล้ว ใช้ในการพัฒนารหัสลับบางรูปแบบเพื่อเพิ่มประสิทธิภาพ

ตัวอย่างการดำเนินการระดับบิตใน Python

a = 0b10110011 b = 0b11001100 print(bin(a & b)) # 0b10000000 print(bin(a | b)) # 0b11111111 print(bin(a ^ b)) # 0b01111111 print(bin(~a & 0xFF)) # 0b01001100

การนับบิต

bin(n).count('1') ใช้นับบิตที่มีค่าเป็น 1 (น้ำหนักแฮมมิง) ระยะห่างแฮมมิงระหว่างคำสองคำคือจำนวนบิตที่แตกต่างกัน ซึ่งมีความสำคัญอย่างยิ่งในการแก้ไขข้อผิดพลาดและการวิเคราะห์ความแตกต่าง

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

0b1010 XOR 0b1100 ในรูปเลขฐานสองมีค่าเท่าใด

สรุป

คุณเชี่ยวชาญการดำเนินการระดับบิตแล้ว ต่อไปเราจะใช้ XOR สร้างรูปแบบการเข้ารหัสและค้นพบความลับสมบูรณ์แบบของแผ่นรหัสใช้ครั้งเดียว

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

บทเรียน “ทบทวนการดำเนินการระดับบิต” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ทบทวนการดำเนินการระดับบิต”

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

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

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

บทเรียน “ทบทวนการดำเนินการระดับบิต” ใช้เวลานานแค่ไหน

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

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

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

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

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