เมื่อพูดถึงการเข้ารหัส (Encryption) คนส่วนใหญ่คิดว่ามันเพิ่งมีมาไม่กี่ทศวรรษ แต่จริงๆ แล้วมันรากลึกในประวัติศาสตร์ ตัวอย่าง nổiดที่สุดคือสงครามโลกครั้งที่สอง เมื่อเยอรมนใช้เครื่องชื่อ Enigma เข้ารหัสข้อความก่อนส่งไปยังกองเรือของพวกเขา
วิธีการเข้ารหัสข้อมูลแบบดั้งเดิมแน่นอนว่าแตกง่ายด้วยการวิศวกรรมย้อนกลับ (reverse engineering) แต่วิธีการเข้ารหัสสมัยใหม่ซับซ้อนมาก และต้องใช้กำลังคอมพิวเตอร์มากในการแตก
การเข้ารหัสมักใช้เพื่อทำให้ข้อมูลอ่านไม่ได้สำหรับใครที่พยายามรั้งข้อความระหว่างผู้ส่งและผู้รับ
ถ้าบุคคลที่สามอยากอ่านข้อมูล จะอยู่ในรูปแบบสับสนหรือเข้ารหัส ทำให้อ่านไม่เข้าใจ แต่เมื่อถอดรหัส (decrypt) จะกลับสู่รูปแบบเดิม
ในชีวิตประจำวันคุณเจอแพลตฟอร์ม Hyper-networking หลายอย่าง เช่น WhatsApp หรือพอร์ทัลธนาคารออนไลน์ ที่ใช้เทคนิคการเข้ารหัสสำหรับการส่งข้อมูลปลอดภัยจากโหนดหนึ่งไปอีกโหนดหนึ่ง แม้เราคุ้นเคยกับคำว่า "การเข้ารหัส" แต่ยังมีคำศัพท์เยอะมากเกี่ยวกับมาตรฐานการเข้ารหัส ที่คุณควรทราบ
โดยไม่เสียเวลา มาเจาะลึกกันเลย!
อ่านเพิ่ม: วิธีรักษาข้อมูล WhatsApp ให้ปลอดภัยด้วย Google Drive และการเข้ารหัส
คำศัพท์การเข้ารหัสที่ทุกผู้ใช้คอมพิวเตอร์ควรรู้
Plaintext (ข้อความธรรมดา)
Plaintext หรือ cleartext เป็นคำศัพท์พื้นฐานที่สุด ที่ไม่ได้เข้ารหัส และอ่านได้ทุกคน ข้อมูลที่รออยู่เพื่อนำเข้าไปในอัลกอริทึมการเข้ารหัส เรียกว่า 'plaintext'
Ciphertext (ข้อความเข้ารหัส)
คือข้อมูลที่เข้ารหัสแล้วหรืออ่านไม่ได้ ซึ่งเป็นผลลัพธ์ของอัลกอริทึมการเข้ารหัส เป็นชุดตัวเลขและตัวอักษรสุ่ม ทำให้ไม่มีประโยชน์ ciphertext บางครั้งเรียกว่า Cipher แต่ Cipher มักหมายถึงอัลกอริทึมที่แปลง plaintext เป็น ciphertext
Keys (คีย์)
คีย์ทฤษฎีบัณฑิต (Cryptographic keys) เป็นวิธีการเข้ารหัส/ถอดรหัสข้อมูล จำเป็นสำหรับอัลกอริทึมทฤษฎีบัณฑิตในการเข้าใจว่า plain text จะแปลงเป็น ciphertext อย่างไร คีย์กำจัดความจำเป็นต้องจดจำอัลกอริทึมการเข้ารหัสทั้งหมด และทำหน้าที่เป็นวิธีความปลอดภัยสูงสุด ความต่างระหว่างคีย์และรหัสผ่านคือ คีย์ถูกสร้างโดยอัลกอริทึม ในขณะที่รหัสผ่านถูกสร้างโดยผู้ใช้
Hashing (การแฮช)
เว็บไซต์แปลงรหัสผ่าน plaintext เป็นแฮชโดยใช้อัลกอริทึมการเข้ารหัส และกระบวนการนี้เรียกว่า Hashing ผู้ส่งส่งข้อความที่เข้ารหัสแล้วรวมถึงแฮชไปยังผู้รับ และผู้รับฝั่งตรงข้ามถอดรหัสแฮชและข้อความ ผู้รับจากนั้นสร้างแฮชและเปรียบเทียบกับแฮชที่ได้รับ หากเหมือนกัน แสดงว่าการส่งปลอดภัย
Hashing เป็นโหมดการเรนเดอร์ที่เร็วกว่า เนื่องจากการจัดเรียงค่าแฮชที่สั้นกว่ามีประสิทธิภาพมากกว่าการใช้ค่าเดิม
อ่านเพิ่ม: วิธีรักษาข้อมูล Mac ให้ปลอดภัยด้วย FileVault Encryption
Salting (การเพิ่มเกลือ)
วิธีความปลอดภัยแบบดั้งเดิมต้องการขั้นตอนเพิ่มเติมเพื่อเพิ่มความปลอดภัย Salting เพิ่มเกลือ (salt) ซึ่งเป็นข้อมูลสุ่ม ไปยังรหัสผ่านที่แฮชแล้ว กระบวนการนี้เรียกว่า Salting the passwords
มีโอกาสที่คนอาจมีรหัสผ่านเหมือนกัน ดังนั้นเพื่อให้การอนุรักษ์ดีขึ้น จึงทำ salting
ตัวอย่าง: ถ้าผู้ใช้ 2 คนมีรหัสผ่านเดียวกัน: admin@wsxdn.com
หลังแฮชแล้ว admin@wsxdn.com กลายเป็น:
f52fbd32b2b3b86ff88ef6c490628285f482af15ddcb29541f94bcf526a3f6c7
แต่ถ้าแฮกเกอร์โจมตีฐานข้อมูลและเจอแฮชนี้ บัญชีทุกบัญชีที่มีแฮชเดียวกันก็เปราะบางเท่าเทียม ดังนั้น เราเพิ่ม salt แยกต่างหากสำหรับแต่ละคนเพื่อเพิ่มความปลอดภัย
ตัวอย่าง #1: admin@wsxdn.com + tuna:
3436d420e833d662c480ff64fce63c7d27ddabfb1b6a423f2ea45caa169fb157
ตัวอย่าง #2: admin@wsxdn.com + Raisins:
728963c70b8a570e2501fa618c975509215bd0ff5cddaf405abf06234b20602c
หลังเพิ่ม salt ให้แต่ละคน เราสามารถเปรียบเทียบแฮชของรหัสผ่านเดียวกัน กับและไม่มี salting:
ไม่มี salting:
f52fbd32b2b3b86ff88ef6c490628285f482af15ddcb29541f94bcf526a3f6c7
มี salting ตัวอย่าง #1:
3436d420e833d662c480ff64fce63c7d27ddabfb1b6a423f2ea45caa169fb157
มี salting ตัวอย่าง #2:
728963c70b8a570e2501fa618c975509215bd0ff5cddaf405abf06234b20602c
อัลกอริทึมสมมาตรและอสมมาตร (Symmetric and Asymmetric Algorithms)
อัลกอริทึมการเข้ารหัสสมัยใหม่ทำงาน 2 โหมด: Symmetric และ Asymmetric Algorithms Symmetric Algorithms ใช้คีย์เดียวกันสำหรับการเข้ารหัสและถอดรหัส คีย์ตกลงกันระหว่างทั้งสองฝ่ายจากความเข้าใจร่วมกัน Asymmetric Algorithms ใช้คีย์ 2 ตัวที่ต่างกัน: public key และ private key 確保การเข้ารหัสปลอดภัยโดยไม่ต้องตกลงกันล่วงหน้า
Public Key และ Private Key (คีย์สาธารณะและคีย์ส่วนตัว)
Public key แจกจ่ายให้ทุกคนในเครือข่าย แต่ private key จำกัดให้ผู้ใช้รายเดียวเท่านั้น Public key ใช้เข้ารหัสข้อความ ในขณะที่ผู้รับต้องการ private key ของเจ้าของเพื่อถอดรหัสและอ่านเนื้อหาทั้งหมด
Digital Signature (ลายเซ็นดิจิทัล)
เมื่อใครเซ็นข้อความหรือเอกสารเขียน ข้อความจะถูกผูกมัดกับผู้เซ็นชื่อ คล้ายกัน ลายเซ็นดิจิทัลผูกมัดผู้เซ็นชื่อกับข้อมูลดิจิทัล ลายเซ็นดิจิทัลนี้สามารถใช้ระบุตัวตนผู้เซ็นชื่อได้เป็นรายบุคคลโดยผู้รับหรือบุคคลที่สาม การเซ็นแฮชมีประสิทธิภาพมากกว่าการเซ็นข้อมูลทั้งหมดสำหรับการเรนเดอร์ที่เร็วขึ้น
อ่านเพิ่ม: วิธีรักษาข้อมูล Mac ให้ปลอดภัยด้วย FileVault Encryption
Encryption-Decryption Anomaly คืออะไร?
ในการเข้ารหัส plain text รวมกับ encryption key ถูกนำเป็น input ให้อัลกอริทึม เพื่อแปลง plain text เป็นรูปแบบสับสนหรืออ่านไม่ได้ ข้อความที่เข้ารหัสนี้ส่งไปยังฝ่ายรับซึ่งสามารถอ่านข้อความได้ด้วยคีย์
กระบวนการย้อนกลับคือ Decryption (ถอดรหัส) ข้อความที่เข้ารหัสหรือ cipher text ที่ได้รับจากผู้ส่ง รวมกับ decryption key ถูกส่งเป็น input ให้ decryption algorithm เพื่อแปลง cipher text กลับเป็น plain text หรือข้อความอ่านได้
คีย์การเข้ารหัสและถอดรหัสเหล่านี้ถูกสร้างโดยการคำนวณทางคณิตศาสตร์ที่สร้างตัวเลขสุ่ม คีย์เหล่านี้ถูกต้องสำหรับเวลาจำกัดหรือเซสชันเดียว หลังจบเซสชัน คีย์จะหมดอายุ
สรุป:
โดยไม่มีการเข้ารหัส จะยากมากที่จะดำเนินงานสำคัญส่วนใหญ่ที่เราทำผ่านอินเทอร์เน็ต โดยเฉพาะธุรกรรมออนไลน์ เราตระหนักว่าพื้นฐานคณิตศาสตร์ที่ผูกมัดกับการเข้ารหัสเป็นงานซับซ้อนสำหรับคนทั่วไป เพราะคนส่วนใหญ่ไม่คุ้นเคยกับคำศัพท์ที่เกี่ยวข้อง เราหวังว่าบล็อกนี้เป็นของขวัญสำหรับคุณในการเข้าใจคำศัพท์การเข้ารหัสพื้นฐานและความหมาย