Skip to main content
เทคโนโลยี

Encryption 101 การเข้ารหัสที่คุณต้องรู้

By มิถุนายน 20th, 2020No Comments

Developer Team
BorntoDev Co., Ltd.

การเข้ารหัสคือการแปลงข้อมูลต้นฉบับหรือที่เรียกว่า “Plaintext” นำไป “Encrypt” คือทำเป็นข้อมูลอีกแบบหนึ่งที่เรียกว่า “Ciphertext” โดยทำให้มีเฉพาะผู้ได้รับอนุญาตเท่านั้นจึงสามารถ “Decrypt” หรือแปลง “Ciphertext” กลับไปเป็น “Plaintext” ได้ ประวัติศาสตร์ของมนุษย์เรามีความลับต่างๆอยู่ในทุกยุคสมัย การคิดค้นวิธีการที่จะปกป้องความลับเหล่านั้นจึงถูกพัฒนาเรื่อยมาตั้งแต่ในอดีตจนถึงปัจจุบัน

การเข้ารหัสในยุคแรก

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

1,900 ปีก่อนคริสต์ศักราช: ในอียิปต์มีการใช้ “Hieroglyphs” ที่เป็นอักษรโบราณประกอบด้วยตัวอักษรและสัญลักษณ์ต่างๆ ซึ่งการจะอ่านเข้าใจได้จะต้องมีความรู้เกี่ยวกับตัวอักษรเหล่านั้น จึงนับว่าเป็นการเข้ารหัสในยุคแรกๆ

600 ปีก่อนคริสต์ศักราช: มีอุปกรณ์เข้ารหัสที่ชื่อว่า “scytale” หรือ “skytale” โดยเป็นเส้นแผ่นหนังที่พันบนท่อนไม้ซึ่งตอนที่คลี่ออกมาตัวอักษรบนแผ่นหนังจะอ่านไม่มีความหมาย ซึ่งจะต้องใช้ท่อนไม้ที่มีขนาดถูกต้องเหมือนตอนที่เขียนลงไปเพื่อทำให้ตัวอักษรเรียงกันเหมือนต้นฉบับ

60 ปีก่อนคริสต์ศักราช: Julius Caesar ได้คิดค้นการเข้ารหัสที่ทำการเลื่อนตัวอักษรทุกตัวด้วยจำนวนที่กำหนด ทำให้ไม่สามารถอ่านข้อความที่ถูกเลื่อนแล้วเข้าใจได้ ในปัจจุบันเรียกวิธีการนี้ว่า “Caesar cipher”

ปี 1,918: วิศวกรชาวเยอรมันได้สร้างเครื่อง “Enigma” ออกจำหน่ายในเชิงพาณิชย์ ซึ่งกองทัพนาซีได้นำไปใช้ในการเข้ารหัสข้อมูลทางการทหาร ซึ่งราวปี 1,932 การเข้ารหัสด้วยเครื่อง Enigma นี้ก็ถูกถอดได้โดยนักคณิตศาสตร์ชาวโปแลนด์และส่งผลต่อความได้เปรียบเสียเปรียบในสงครามโลกครั้งที่ 2

ปี 1,970: IBM ได้ตั้งกลุ่มเพื่อสร้างการเข้ารหัสข้อมูลเพื่อปกป้องข้อมูลของลูกค้า ต่อในในปี 1,973 ประเทศสหรัฐอเมริกาก็ได้เลือกวิธีนี้เป็นมาตรฐานการเข้ารหัสที่รู้จักกันในชื่อ “Data Encryption Standard” หรือ “DES” ซึ่งมีการใช้เป็นงานยาวนานจนกระทั้งปี 1,997 ถึงได้ถูกถอดรหัสได้

ปี 2000: ได้มีวิธีการเข้ารหัสที่ถูกใช้แทนที่ DES โดยมีชื่อว่า “Advanced Encryption Standard” หรือ “AES” ซึ่งกลายเป็นมาตรฐานใหม่ที่ใช้งานได้ฟรีและแพร่หลายไปทั่วโลก

การเข้ารหัสปัจจุบันในระบบคอมพิวเตอร์ และ การประยุกต์ใช้การเข้ารหัส

ในปัจจุบันการเข้ารหัสข้อมูลในคอมพิวเตอร์มีการพัฒนาใช้วิธีการที่ซับซ้อนขึ้นและมีวิธีการมากมายถูกคิดค้นขึ้นมา แต่เราสามารถแบ่งวิธีการเข้ารหัสออกเป็น 2 ประเภทจากลักษณะการ “Encrypt” และ “Decrypt” ได้แก่

การใช้รหัสแบบกุญแจสมมาตร (Symmetric Key Cryptography)

เป็นวิธีการเข้ารหัสแบบตรงไปตรงมาคือในขั้นตอนการ “เข้ารหัส” และ “ถอดรหัส” จะใช้ “กุญแจ” เพียงตัวเดียวในการทำ หมายความว่าทั้งฝั่งผู้ส่งและผู้รับข้อมูลจะต้องมีกุญแจที่เหมือนกัน เพื่อให้สามารถส่งผ่านข้อมูลเข้ารหัสได้สำเร็จ เป็นที่มาของคำว่า “สมมาตร” ในชื่อนั่นเอง ซึ่งกุญแจนี้จะอยู่ในรูปแบบของรหัสคอมพิวเตอร์ ถ้าขนาดของกุญแจที่หน่วยเป็นบิท (bit) ยิ่งมาก ความยากในการแกะรหัสก็ยิ่งยากตาม  ตัวอย่างการเข้ารหัสแบบกุญแจสมมาตร เช่น RC4, QUAD, AES, DES, Blowfish, 3DES เป็นต้น ซึ่งการใช้งานจริงที่อาจจะเคยใช้กันก็คือการเข้ารหัสข้อมูลต่างๆโดยทั่วไปที่ต้องรู้รหัสผ่านที่ถูกต้องเพื่ออ่านข้อมูล

การใช้รหัสแบบกุญแจอสมมาตร (Asymmetric Key Cryptography) 

สำหรับวิธีนี้คำว่า “อสมมาตร” ก็หมายการที่ใช้ “กุญแจ” ที่ไม่เหมือนกันในการเข้าและถอดรหัส ได้แก่ “กุญแจส่วนตัว” (Private Key) และ “กุญแจสาธารณะ” (Publib Key) โดยการใช้งานก็ตรงตามชื่อของแต่ละกุญแจคือกุญแจส่วนตัวต้องเก็บไว้เป็นความลับที่เจ้าของเพียงคนเดียว ส่วนกุญแจสาธารณะต้องเผยแพร่ออกไปให้ทุกคนเข้าถึงได้ ซึ่งการใช้งานก็คือใช้กุญแจดอกหนึ่งเพื่อทำการเข้ารหัส โดยฝั่งผู้รับข้อมูลจะต้องใช้กุญแจอีกดอกเพื่อถอดรหัส โดยจะเริ่มจากกุญแจส่วนตัวหรือกุญแจสาธารณะก็ขึ้นอยู่วัตถุประสงค์ในการใช้งาน ตัวอย่างวิธีการเข้ารหัสที่เป็นกุญแจอสมมาตร เช่น Diffie-Hellman และ  RSA เป็นต้น ส่วนการใช้งานจริงเช่นการสร้างลายเซ็นดิจิทัล (Digital Signature) เพื่อยืนยันว่าข้อมูลถูกสร้างโดยบุคคลดังกล่าวจริงๆเหมือนการเซ็นชื่อเพื่อรับรองความถูกต้องนั่นเอง

Hashing Vs Encryption

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

การ Hash ที่เราน่าจะเคยเห็นกันมา เช่น MD5, SHA1, SHA256, SHA-512 สิ่งที่วิธีการหรืออัลกอริทึมเหล่านี้ทำก็คือการสร้างชุดข้อมูลขึ้นมาใหม่เพื่อแสดงถึงข้อมูลบางอย่าง โดยเป็น “การแปลงข้อมูลแบบทางเดียว” เพราะว่า’

“ข้อมูลที่แปลงไปแล้วจะไม่สามารถแปลงกลับได้”

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

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

สรุปก็คือ 

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

หากคุณสนใจพัฒนา สตาร์ทอัพ แอปพลิเคชัน และ เทคโนโลยีของตัวเอง ?

อย่ารอช้า ! เรียนรู้ทักษะด้านดิจิทัลเพื่ออัพเกรดความสามารถของคุณ
เริ่มตั้งแต่พื้นฐาน พร้อมปฏิบัติจริงในรูปแบบหลักสูตรออนไลน์วันนี้

Leave a Reply

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

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

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

  • คุกกี้สำหรับการติดตามทางการตลาด

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

บันทึกการตั้งค่า