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

ข้อมูลมีบทบาทสำคัญอย่างยิ่งในธุรกิจ รัฐบาล และปฏิบัติการทางทหาร และข้อมูลหากตกอยู่ในมือผู้ไม่หวังดีอาจส่งผลเสียต่อรายได้หรือร้ายแรงกว่านั้น เพื่อรักษาความปลอดภัยในการสื่อสาร องค์กรจึงใช้การเข้ารหัสเพื่อแปลงข้อมูลให้เป็นรูปแบบที่มนุษย์อ่านไม่ออก และแปลงกลับมาเป็นรูปแบบเดิมอีกครั้ง
ในบทความเกี่ยวกับวิทยาการเข้ารหัสและการรักษาความปลอดภัยเครือข่ายนี้ คุณจะได้เรียนรู้วิธีการทำงานของวิทยาการเข้ารหัส และวิธีการป้องกันข้อมูลไม่ให้ตกไปอยู่ในมือผู้ไม่หวังดี
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.
- แทนที่ข้อความด้วยวลีด้านบน
ขั้นตอนที่ 3) เข้ารหัสข้อความ
- คลิกเมนู เข้ารหัส/ถอดรหัส
- ชี้ไปที่ Symmetric (modern) จากนั้นเลือก RC4
ขั้นตอนที่ 4) เลือกคีย์การเข้ารหัส
- เลือกความยาวคีย์เป็น 24 บิต
- ตั้งค่าเป็น 00 00 00
- คลิกที่ปุ่มเข้ารหัส (Encrypt) เพื่อสร้างการเข้ารหัสแบบสตรีมด้านล่าง
โจมตี Stream Cipher
ขั้นตอนที่ 5) เริ่มการวิเคราะห์
- คลิกที่เมนู การวิเคราะห์
- ชี้ไปที่การเข้ารหัสแบบสมมาตร (สมัยใหม่) จากนั้นเลือก RC4
- โดยทั่วไปจะใช้รหัสลับ 24 บิต ดังนั้นให้เลือก 24 บิตเป็นความยาวของรหัสลับ
- คลิกเริ่มการทำงาน
- หมายเหตุ เวลาที่ใช้ขึ้นอยู่กับกำลังการประมวลผลของเครื่องที่ใช้และความยาวของรหัส รหัสที่ยาวกว่าจะใช้เวลานานกว่า ซึ่งเป็นเหตุผลว่าทำไมรหัสในปัจจุบันจึงมีขนาด 128 บิตขึ้นไป
ขั้นตอนที่ 6) วิเคราะห์ผลลัพธ์
- เมื่อการวิเคราะห์เสร็จสิ้น คีย์ตัวเลือกจะปรากฏขึ้นโดยเรียงลำดับดังนี้
- หมายเหตุ โดยทั่วไปแล้ว ค่าเอนโทรปีที่ต่ำกว่ามักบ่งชี้ถึงผลลัพธ์ที่ถูกต้อง แม้ว่าค่าเอนโทรปีที่สูงกว่าก็อาจถูกต้องได้เช่นกัน
- เลือกบรรทัดที่อ่านแล้วเข้าใจได้ จากนั้นคลิก ยอมรับการเลือก









