Skip to main content
0
IT SecurityProgramming Concept

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

การเข้ารหัสคือการแปลงข้อมูลต้นฉบับหรือที่เรียกว่า “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 จะใช้เพื่อเข้ารหัสเพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต ซึ่งจะถอดรหัสเพื่อให้ได้เป็นข้อมูลต้นฉบับได้เมื่อมีกุญแจที่ถูกต้อง

แหล่งอ้างอิง:

Develeper

Author Develeper

More posts by Develeper

Leave a Reply

Close Menu

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

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

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

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

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

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

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

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