บทช่วยสอนการเข้ารหัส

⚡ สรุปอย่างชาญฉลาด

การเข้ารหัสลับช่วยปกป้องข้อมูลโดยการแปลงข้อมูลให้อยู่ในรูปแบบที่มนุษย์อ่านไม่ได้ ซึ่งมีเพียงผู้ที่มีกุญแจที่ถูกต้องเท่านั้นที่จะสามารถถอดรหัสได้ และหน้านี้ครอบคลุมคุณสมบัติ การใช้งาน อัลกอริทึม และแบบฝึกหัดการใช้งาน CrypTool

  • 🔐 แนวคิดหลัก: การเข้ารหัสจะแปลงข้อความธรรมดาให้เป็นรหัสลับ ส่วนการถอดรหัสจะทำการแปลงข้อความธรรมดาให้เป็นรหัสลับโดยใช้กุญแจลับ
  • 🧩 สามสาขาวิชา: การเข้ารหัสลับซ่อนความหมาย การถอดรหัสลับเปิดเผยความหมาย และวิทยาการเข้ารหัสลับครอบคลุมทั้งสองอย่าง
  • 📐 กลุ่มอัลกอริทึม: ฟังก์ชันแฮช การเข้ารหัสแบบสมมาตร และระบบกุญแจสาธารณะ แก้ปัญหาที่แตกต่างกัน
  • มาตรฐานปัจจุบัน: AES และ SHA-2 ยังคงได้รับการอนุมัติ ในขณะที่ MD5, SHA-1 และ RC4 ถือว่าไม่ปลอดภัย
  • 🧪 การปฏิบัติจริง: CrypTool 1 สาธิตการเข้ารหัส RC4 และการวิเคราะห์แบบ Brute-force ของคีย์ 24 บิต
  • 🔮 มองไปข้างหน้า: NIST ได้เผยแพร่มาตรฐานหลังควอนตัมฉบับแรกในเดือนสิงหาคม 2024

บทช่วยสอนการเข้ารหัส

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

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

Cryptography คืออะไร?

การเข้ารหัสลับคือการศึกษาและการประยุกต์ใช้เทคนิคที่ซ่อนความหมายที่แท้จริงของข้อมูลโดยการแปลงข้อมูลให้อยู่ในรูปแบบที่มนุษย์อ่านไม่ออก และแปลงกลับมาเป็นรูปแบบเดิมอีกครั้ง

ลองพิจารณาตัวอย่างนี้ ในการส่งข้อความ “ฉันรักแอปเปิ้ล” คุณต้องแทนที่ตัวอักษรทุกตัวด้วยตัวอักษรลำดับที่สามถัดไปในลำดับตัวอักษร จะได้เป็น “K NQXG CRRNGU” ส่วนการอ่านนั้น ผู้รับจะต้องย้อนกลับไปสามตัวอักษร ดังแสดงด้านล่าง

การเข้ารหัสและการถอดรหัสโดยการเลื่อนตัวอักษรแต่ละตัวไปสามตำแหน่ง
การเข้ารหัสและถอดรหัสรหัส

การแปลงข้อมูลให้อยู่ในรูปแบบที่มนุษย์อ่านไม่ได้เรียกว่าอะไร การเข้ารหัสลับและการกลับทิศทางเรียกว่า ถอดรหัสผลลัพธ์ที่เข้ารหัสแล้วเรียกว่า a ตัวเลข.

การถอดรหัสใช้กุญแจลับซึ่งมีเพียงผู้รับที่ถูกต้องเท่านั้นที่ทราบ เนื่องจากจำเป็นต้องใช้กุญแจ การสื่อสารจึงยังคงปลอดภัยแม้ว่าผู้โจมตีจะดักจับรหัสได้ ซึ่งหากไม่มีกุญแจ การสื่อสารก็ไร้ประโยชน์

คุณสมบัติของการเข้ารหัส

ระบบการเข้ารหัสจะถูกประเมินจากคุณลักษณะดังต่อไปนี้

คุณสมบัติ (Feature) มันหมายถึงอะไร
ขั้นตอนวิธี ขั้นตอนทางคณิตศาสตร์ที่เผยแพร่ซึ่งดำเนินการแปลง
ความลับ เฉพาะผู้ที่มีกุญแจเท่านั้นจึงจะสามารถอ่านข้อมูลที่ได้รับการปกป้องได้
Integrity การเปลี่ยนแปลงใดๆ ต่อข้อมูลสามารถตรวจจับได้
การปรับตัวและเข้าถึงได้ ระบบนี้สามารถปรับให้เข้ากับขนาดกุญแจและระดับภัยคุกคามที่แตกต่างกันได้
การทำงานร่วมกัน ระบบและผู้จำหน่ายที่แตกต่างกันแลกเปลี่ยนข้อมูลที่ได้รับการปกป้อง
การยืนยันตัวตน สามารถพิสูจน์ที่มาของข้อความได้
scalability ประสิทธิภาพยังคงดีแม้ปริมาณข้อมูลจะเพิ่มขึ้น
การจัดการคีย์ กุญแจจะถูกสร้าง จัดเก็บ หมุนเวียน และยกเลิกอย่างปลอดภัย

การประยุกต์ใช้การเข้ารหัส

ลักษณะเหล่านั้นกลายเป็นบริการในชีวิตประจำวันที่ผู้คนพึ่งพาโดยไม่รู้ตัว

การใช้งาน วิธีการใช้งานการเข้ารหัส
การเข้ารหัส TLS ปกป้องการรับส่งข้อมูลระหว่างเบราว์เซอร์และเว็บไซต์
การจัดเก็บรหัสผ่าน จัดเก็บแฮชที่มีเกลือแทนรหัสผ่านที่อ่านได้
ธนาคารออนไลน์ ช่วยรักษาความปลอดภัยในการทำธุรกรรมและตรวจสอบความถูกต้องของธนาคาร
cryptocurrency ลงนามในธุรกรรมและเชื่อมโยงบล็อกด้วยแฮช
อีเมลที่เข้ารหัส รักษาความเป็นส่วนตัวของเนื้อหาข้อความระหว่างการส่งและการจัดเก็บ
Digiลายเซ็นต์ พิสูจน์ความเป็นเจ้าของผลงานและยืนยันว่าเอกสารนั้นไม่มีการเปลี่ยนแปลงแก้ไข
การส่งข้อความที่ปลอดภัย ใช้การเข้ารหัสแบบ end-to-end ระหว่างอุปกรณ์ต่างๆ
E-Commerce ปกป้องข้อมูลบัตรของคุณระหว่างการชำระเงิน

การเข้ารหัสคืออะไร?

การถอดรหัสลับคือศิลปะในการถอดรหัสข้อความโดยไม่ต้องใช้กุญแจที่ใช้ในการเข้ารหัส โดยใช้การวิเคราะห์ทางคณิตศาสตร์และอัลกอริธึมในการถอดรหัส และใช้ทั้งในการเจาะระบบและในเชิงป้องกัน เพื่อวัดระดับการป้องกันของอัลกอริธึมนั้นๆ

ความสำเร็จของการโจมตีด้วยการวิเคราะห์รหัสลับขึ้นอยู่กับปัจจัยดังต่อไปนี้:

  • ระยะเวลาที่มีอยู่
  • มีกำลังคอมพิวเตอร์
  • ความจุที่มีอยู่

ต่อไปนี้คือการโจมตีทางด้านการวิเคราะห์รหัสลับที่กล่าวถึงกันโดยทั่วไป:

  • การโจมตีด้วยกำลังดุร้าย — ลองใช้ทุกชุดค่าผสมที่เป็นไปได้ของข้อความต้นฉบับหรือรหัสลับ โดยเข้ารหัสแต่ละชุดแล้วเปรียบเทียบกับรหัสลับเดิม
  • การโจมตีพจนานุกรม — ใช้รายการคำศัพท์เพื่อจับคู่กับข้อความต้นฉบับหรือคีย์ โดยส่วนใหญ่ใช้เมื่อพยายาม ถอดรหัสรหัสผ่านที่เข้ารหัส.
  • การโจมตีโต๊ะสายรุ้ง — เปรียบเทียบข้อความที่เข้ารหัสกับค่าแฮชที่คำนวณไว้ล่วงหน้าเพื่อค้นหาการจับคู่ การใส่เกลือ (Salt) ให้กับรหัสผ่านที่จัดเก็บไว้แต่ละรหัสจะทำให้วิธีการนี้ใช้ไม่ได้ผล

วิทยาการเข้ารหัสลับคืออะไร?

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

การเข้ารหัสลับ Algorithms

อัลกอริทึมด้านล่างนี้ปรากฏซ้ำๆ ในงานด้านความปลอดภัย โปรดสังเกตว่าอัลกอริทึมใดที่ยังคงได้รับการอนุมัติ และอัลกอริทึมใดที่ยังคงมีอยู่ในระบบเก่าเท่านั้น

  • MD5 — ย่อมาจาก Message-Digest 5 ซึ่งสร้างค่าแฮชขนาด 128 บิต MD5 เป็นฟังก์ชันแฮช ไม่ใช่ตัวสร้างค่าแฮชแบบอื่น การเข้ารหัสลับดังนั้นจึงไม่สามารถย้อนกลับได้ตามการออกแบบ มันไม่ทนต่อการชนกัน — อินพุตสองแบบที่แตกต่างกันอาจสร้างค่าแฮชเดียวกันได้ — และไม่เหมาะสำหรับรหัสผ่านหรือลายเซ็น
  • SHA — ชื่อย่อของ Secure Hash Algorithm คือตระกูลของอัลกอริทึมที่สร้างข้อมูลสรุปของข้อความ เรียกว่า ข้อความย่อ (message digest):
    • SHA-0: สร้างค่าแฮชขนาด 160 บิต ถูกยกเลิกเนื่องจากมีข้อบกพร่องที่สำคัญและถูกแทนที่ด้วย SHA-1
    • SHA-1: สร้างค่าแฮชขนาด 160 บิต มีการสาธิตการชนกันของค่าแฮชในทางปฏิบัติเมื่อปี 2017 และ NIST ได้ห้ามใช้ค่าแฮชนี้สำหรับลายเซ็นดิจิทัล ดังนั้นควรหลีกเลี่ยงการใช้งาน
    • SHA-2: กลุ่มฟังก์ชันหกฟังก์ชัน รวมถึง SHA-256 และ SHA-512 ซึ่งทำงานกับคำขนาด 32 บิตและ 64 บิตตามลำดับ ทั้งสองยังคงได้รับการอนุมัติ
    • SHA-3: ได้รับการกำหนดมาตรฐานในปี 2015 และเดิมรู้จักกันในชื่อ Keccak โดยใช้การออกแบบภายในที่แตกต่างออกไปเพื่อใช้เป็นตัวสำรองสำหรับ SHA-2
  • AES — มาตรฐานการเข้ารหัสขั้นสูง (Advanced Encryption Standard หรือ ADSE) เป็นการเข้ารหัสแบบบล็อกสมมาตรที่ใช้ปกป้องข้อมูลส่วนใหญ่ทั้งในขณะจัดเก็บและขณะส่งผ่านในปัจจุบัน โดยใช้คีย์ขนาด 128, 192 และ 256 บิต ADSE เข้ามาแทนที่ DES และเป็นค่าเริ่มต้นสำหรับระบบใหม่ๆ
  • RC4 — เป็นการเข้ารหัสแบบสตรีมที่เคยใช้กันทั่วไปใน Secure Sockets Layer (SSL) และ Wired Equivalent Privacy (WEP) โปรโตคอลทั้งสองนั้นล้าสมัยไปแล้ว และ RFC 7465 ได้ห้ามใช้ RC4 ใน TLS ทุกเวอร์ชันตั้งแต่ปี 2015 แต่ยังคงเหลืออยู่ตรงนี้เพื่อใช้เป็นตัวอย่างในการสอน
  • ปักเป้า — การเข้ารหัสแบบบล็อกสมมาตรที่มีกุญแจ ซึ่งเคยใช้สำหรับการเข้ารหัสรหัสผ่านและไฟล์ในอดีต ขนาดบล็อก 64 บิตทำให้ AES เป็นตัวเลือกที่ดีกว่าในปัจจุบัน

เมื่อมองไปข้างหน้า NIST ได้เผยแพร่มาตรฐานหลังควอนตัมชุดแรกในเดือนสิงหาคม 2024 ได้แก่ ML-KEM สำหรับการแลกเปลี่ยนกุญแจ และ ML-DSA กับ SLH-DSA สำหรับการลงลายมือชื่อ ซึ่งจะค่อยๆ เข้ามาแทนที่อัลกอริธึมกุญแจสาธารณะในปัจจุบัน

กิจกรรมการแฮ็ก: วิธีการสร้างรหัสลับโดยใช้ CrypTool

ในแบบฝึกหัด CrypTool เชิงปฏิบัติครั้งนี้ คุณจะสร้างรหัสลับอย่างง่ายด้วย RC4 แล้วกู้คืนรหัสลับนั้นด้วยการวิเคราะห์แบบเดาสุ่ม โดยสมมติว่าทราบว่าคีย์มีขนาด 24 บิต จุดประสงค์คือเพื่อแสดงให้เห็นว่าเหตุใดคีย์สั้นและรหัสลับที่ถอดรหัสไม่ได้จึงไม่สามารถป้องกันได้อย่างแท้จริง

การสร้างรหัสสตรีม RC4

ขั้นตอนที่ 1) ดาวน์โหลดและติดตั้ง CrypTool

CrypTool 1 เป็นเครื่องมือการศึกษาแบบโอเพนซอร์สสำหรับวิชาการเข้ารหัสลับ ปัจจุบันการพัฒนาหลักได้ย้ายไปที่ CrypTool 2 แล้ว แต่เวอร์ชัน 1.4.42 ยังคงใช้งานได้อยู่ Windows และตรงกับภาพหน้าจอด้านล่าง ดาวน์โหลดได้จาก คริปโตล.org.

ขั้นตอนที่ 2) เปิด CrypTool และแทนที่ข้อความ

วลีที่จะเข้ารหัสคือ อย่าดูถูกความมุ่งมั่นของเด็กที่มีเวลามากและขาดแคลนเงินรหัสคือ 00 00 00

  • เปิด CrypTool 1.

หน้าต่างหลักของ CrypTool 1 ก่อนที่ข้อความตัวอย่างจะถูกแทนที่

  • แทนที่ข้อความด้วยวลีด้านบน

เอกสาร CrypTool ที่มีวลีสำหรับเปลี่ยน

ขั้นตอนที่ 3) เข้ารหัสข้อความ

  • คลิกเมนู เข้ารหัส/ถอดรหัส

เมนูเข้ารหัส/ถอดรหัสของ CrypTool พร้อมการเลือกแบบสมมาตรสมัยใหม่

  • ชี้ไปที่ Symmetric (modern) จากนั้นเลือก RC4

หน้าต่างป้อนรหัสของ CrypTool RC4

ขั้นตอนที่ 4) เลือกคีย์การเข้ารหัส

  • เลือกความยาวคีย์เป็น 24 บิต
  • ตั้งค่าเป็น 00 00 00
  • คลิกที่ปุ่มเข้ารหัส (Encrypt) เพื่อสร้างการเข้ารหัสแบบสตรีมด้านล่าง

ผลลัพธ์ของการเข้ารหัสแบบสตรีม RC4 ที่แสดงใน CrypTool

โจมตี Stream Cipher

ขั้นตอนที่ 5) เริ่มการวิเคราะห์

  • คลิกที่เมนู การวิเคราะห์

เมนูการวิเคราะห์ CrypTool พร้อมไฮไลต์การเข้ารหัสแบบสมมาตรสมัยใหม่

  • ชี้ไปที่การเข้ารหัสแบบสมมาตร (สมัยใหม่) จากนั้นเลือก RC4

กล่องโต้ตอบการวิเคราะห์การโจมตีแบบ Brute-force ของ CrypTool สำหรับ RC4

  • โดยทั่วไปจะใช้รหัสลับ 24 บิต ดังนั้นให้เลือก 24 บิตเป็นความยาวของรหัสลับ
  • คลิกเริ่มการทำงาน

หน้าต่างแสดงความคืบหน้าการวิเคราะห์แบบ Brute-force ของ CrypTool

  • หมายเหตุ เวลาที่ใช้ขึ้นอยู่กับกำลังการประมวลผลของเครื่องที่ใช้และความยาวของรหัส รหัสที่ยาวกว่าจะใช้เวลานานกว่า ซึ่งเป็นเหตุผลว่าทำไมรหัสในปัจจุบันจึงมีขนาด 128 บิตขึ้นไป

ขั้นตอนที่ 6) วิเคราะห์ผลลัพธ์

  • เมื่อการวิเคราะห์เสร็จสิ้น คีย์ตัวเลือกจะปรากฏขึ้นโดยเรียงลำดับดังนี้

ผลลัพธ์การโจมตีแบบ Brute-force ของ CrypTool เรียงลำดับตามค่าเอนโทรปี

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

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

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

ไม่ การเข้ารหัสสามารถย้อนกลับได้ด้วยกุญแจ ในขณะที่การแฮชเป็นการแปลงแบบทางเดียวไปยังค่าแฮชที่มีความยาวคงที่ ระบบรหัสผ่านจัดเก็บค่าแฮชที่ใส่เกลือไว้ก็เพราะว่าไม่สามารถกู้คืนค่าดั้งเดิมได้

เกลือ (Salt) คือค่าสุ่มที่ไม่ซ้ำกันซึ่งถูกจัดเก็บไว้ข้างๆ แฮชรหัสผ่านแต่ละอัน มันทำให้รหัสผ่านที่เหมือนกันมีแฮชแตกต่างกัน ซึ่งเป็นการป้องกันตารางเรนโบว์ (Rainbow Table) ที่คำนวณไว้ล่วงหน้า และบังคับให้ผู้โจมตีต้องทำงานกับแต่ละบัญชีแยกกัน

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

คอมพิวเตอร์ควอนตัมขนาดใหญ่จะสามารถถอดรหัส RSA และรหัสแบบวงรีได้ ในขณะที่การเข้ารหัสแบบสมมาตรต้องการเพียงรหัสที่ใหญ่ขึ้นเท่านั้น NIST จึงตอบสนองด้วยการเผยแพร่มาตรฐานหลังควอนตัมในปี 2024 เพื่อให้สามารถเริ่มการเปลี่ยนผ่านได้เร็วขึ้น

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

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

วิศวกรด้านความปลอดภัย ผู้ทดสอบการเจาะระบบ และนักวิเคราะห์ทางนิติวิทยาศาสตร์นำไปใช้ในชีวิตประจำวัน และมันก่อให้เกิดขอบเขตที่ครอบคลุมของ... ใบรับรอง CISSPบทบาทส่วนใหญ่จะกำหนดค่าไลบรารีที่ผ่านการตรวจสอบแล้ว มากกว่าที่จะออกแบบอัลกอริธึมเอง

สรุปโพสต์นี้ด้วย: