เทคโนโลยีการเข้ารหัสข้อมูล(Encryptio/Decryption)


อัปเดท : 18 มิถุนายน พ.ศ.2547 , แสดง : 72,678 , ความคิดเห็น : 5

การเข้ารหัสข้อมูล (Encryption) หมายถึง วิธีการที่ทำเปลี่ยนแปลงข้อมูลเพื่อไม่ให้สามารถแปลความได้จากบุคคลที่เราไม่ต้องการให้เขาเข้าใจข้อมูล ส่วนการถอดรหัสข้อมูล นั้นจะมีวิธีการที่ตรงกันข้ามกับการเข้ารหัสข้อมูล กล่าวคือการถอดรหัส (Decryption) หมายถึง วิธีการที่ทำการเปลี่ยนแปลงข้อมูลที่ได้จากการเข้ารหัสข้อมูล เป็นข้อมูลก่อนที่จะถูกทำการเข้ารหัส การที่จะทำให้ข้อมูลเป็นความลับ จุดหลักคือ ต้องไม่ให้ข้อมูลความลับนี้ถูกอ่านโดยบุคคลอื่น แต่ให้ถูกอ่านได้โดยบุคคลที่เราต้องการให้อ่านได้เท่านั้น โดยการนำเอาข้อความเดิมที่สามารถอ่านได้ (Plain text,Clear Text) มาทำการเข้ารหัสก่อน เพื่อเปลี่ยนแปลงข้อความเดิมให้ไปเป็นข้อความที่เราเข้ารหัส (Ciphertext) ก่อนที่จะส่งต่อไปให้บุคคลที่เราต้องการที่จะติดต่อด้วย เพื่อป้องกันไม่ให้บุคคลอื่นสามารถที่จะแอบอ่านข้อความที่ส่งมาโดยที่ข้อความที่เราเข้ารหัสแล้ว

 

ความต้องการของเทคโนโลยีการเข้ารหัสข้อมูล
    การระบุตัวบุคคลได้ (Authenticity)
คือการที่เราสามารถที่จะระบุตัวตนของผู้ที่การเข้าถึงข้อมูลภายในระบบได้
    การรักษาความลับ (Confidentiality)
คือความสามารถในการที่จะรักษาความลับที่ไม่ให้ผู้อื่นที่ไม่มีสิทธิ์เข้าถึงข้อมูลภายในระบบได้
    การรักษาความลับ (Integrity)
คือความสามารถในการรักษาความถูกต้องและสมบูรณ์ของข้อมูล
    การป้องกันการปฏิเสธความรับผิดชอบ (Non-repudiation)
คือความสามารถในการป้องกันการปฏิเสธความรับผิดชอบของการเข้าถึงข้อมูลภายในระบบ


รูปการเข้ารหัสข้อมูล (Encryption)

ระบบการเข้ารหัสข้อมูล (Cryptography)

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

จะเห็นได้ว่ากุญแจเป็นตัวแปรที่สำคัญสำหรับระบบเข้ารหัส ดังนั้นระบบเข้ารหัสสามารถแบ่งตามวิธีการใช้กุญแจได้เป็น 2 วิธีดังนี้

ระบบเข้ารหัสแบบกุญแจสมมาตร (Symmetric-key cryptography)

   คือการเข้ารหัสข้อมูลด้วยกุญแจเดี่ยว (Secret Key) ทั้งผู้ส่งและผู้รับ โดยวิธีการนี้ผู้รับกับผู้ส่งต้องตกลงกันก่อนว่าจะใช้รูปแบบไหนในการเข้ารหัสข้อมูล ซึ่งรูปแบบไหนในการเข้ารหัสข้อมูลที่ผู้รับกับผู้ส่งตกลงกันแท้ที่จริงก็คือ กุญแจลับ (Secret Key) นั่นเอง เช่น ผู้ส่งกับผู้รับตกลงจะใช้เทคนิดการแทนที่ตัวอักษรที่อยู่ถัดไป 1 ตำแหน่ง เช่น ถ้าเห็นตัวอักษร A ก็ให้เปลี่ยนไปเป็น B หรือเห็นตัวอักษร B ก็ให้เปลี่ยนไปเป็น C เป็นต้น นั้นก็คือผู้ส่งกับผู้รับตกลงใช้รูปแบบนี้เป็นกุญแจลับดูตัวอย่างดังรูป


รูปการเข้ารหัสแบบกุญแจสมมาตร (Symmetric-key cryptography)

จากรูป ถ้า Mr. A ได้ตกลงกับ Mr. B ว่ากุญแจลับที่จะใช้เข้ารหัสและถอดรหัสคือ การเปลี่ยนตัวอักษรจากเดิมถัดไป1ตำแหน่ง ถ้า Mr. A ต้องการส่งคำว่า HELLO ไปให้ Mr. B ขั้นตอนจะเป็นดังนี้

1. Mr. A สร้างข้อความว่า "HELLO" ขึ้นมา
2. Mr. A ใช้กุญแจลับมาทำการเข้ารหัสข้อความ โดยการเปลี่ยนตัวอักษรจากเดิมถัดไป 1ตำแหน่ง ดังนั้น ตัวอักษร H จะเปลี่ยนไปเป็นตัวอักษร E จะเปลี่ยนไปเป็นตัวอักษร F ตัวอักษร L ทั้ง 2 ตัว จะเปลี่ยนไปเป็นตัวอักษร M ทั้งสองตัว และสุดท้ายตัวอักษร O จะเปลี่ยนไปเป็นตัวอักษร P เพราะฉะนั้นหลังจากการทำการเข้ารหัสข้อความที่ Mr. A ต้องการส่งด้วยกุญแจลับแล้ว ข้อความว่า HELLO จะเปลี่ยนไปเป็นข้อความที่เข้ารหัส (Ciphertext) ว่า "IFMMP"
3. Mr. A ส่งข้อความที่เข้ารหัสไปให้ Mr. B
4. หลังจากที่ Mr. B ได้รับข้อความที่เข้ารหัสจาก Mr. A แล้ว Mr. B จะต้องทำการถอดรหัสข้อครามนี้ก่อน หรือที่เรียกว่า Decrypt โดยการถอดรหัสข้อความนี้ Mr. B จะต้องใช้กุญแจลับที่ได้ตกลงกันไว้แล้วกับ Mr. A มาทำการถอดรหัส เพราะฉะนั้นกุญแจลับที่ได้ตกลงกันกับ Mr. A ว่า Mr. A จะทำการเข้ารหัสโดยการเปลี่ยนตัวอักษรจากเดิมไปเป็นตัวอักษรที่อยู่ถัดไป 1 ตำแหน่ง ดังนั้น Mr. B จะต้องเอาข้อความเข้ารหัส IFMMP มาถอดรหัส โดยการเปลี่ยนจากตัวอักษร I ไปเป็นตัวอักษร H และตัวอักษร F จะไปเป็นตัวอักษร E และตัวอักษร M ทั้งสองตัวจะเปลี่ยนไปเป็นตัวอักษร O หลังจากนั้น Mr. B ก็จะทราบว่าข้อความที่ Mr. A ส่งมา คือ ข้อความว่า "HELLO"

จากตัวอย่างที่ได้อธิบายมานี้จะเป็นหลักการแบบง่ายๆ ทำให้เห็นการทำงานของการเข้ารหัสแบบสมมาตร หรือกุญแจเดี่ยว เพราะฉะนั้นหลักการเข้ารหัสแบบสมมาตรนี้จะใช้กุญแจลับ (Secret Key) ทำการเข้ารหัสและถอดรหัสข้อความ

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

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

  
 

สำหรับวิธีการเข้ารหัสแบบนี้ ก็จะมีมาตรฐานมารองรับเหมือนกัน มาตรฐานที่ว่าก็คือ มาตรฐาน DES (Digital Encryption Standard) หรือเรียกว่า “เดส” ที่มาของ DES เกิดขึ้นมาจากทีมพัฒนาของบริษัท IBM เมื่อราวๆปลายยุค 1960 ทำการพัฒนาระบบเข้ารหัสและถอดรหัสนี้ โดยหลักการทำงานจะทำการแบ่งข้อมูลที่จะทำการเข้าหรือถอดรหัสออกเป็นบล็อก (block) โดยที่แต่ละบล็อกจะทีขนาด 64 บิต และจำนวนความยาวของกุญแจลับจะมีขนาด 128 บิตในช่วงแรก หลังจากนั้นทางบริษัท IBM ก็ได้เพิ่มทุนให้ทำการพัฒนาและปรับปรุงต่อเรื่อยๆมา โดยในครั้งนี้ได้มีที่ปรึกษาจากสำนักงานความมั่นคงแห่งชาติ (National Security Agency: NSA) ของสหรัสอเมริกาเข้าร่วมด้วย ผลที่ได้จากการพัฒนานี้ ทำให้ระบบ DES สามารถทนทานต่อผู้ต้องการเจาะรหัส (cryptanalysis) ได้ และขณะเดียวกัน ก็ได้ทำการลดความยาวของกุญแจลงเหลือแค่ 56 บิต จากเดิม 128 บิต เหตุผลที่ต้องลดความยาวของกุญแจลับลง ก็เพราะว่าสำนักงานความมั่นคงแห่งชาติของสหรัสอเมริกา เกรงว่าจะไม่สามารถตรวจสอบข้อมูลที่เข้ารหัสด้วยความยาวของกุญแจลับที่ 128 บิตได้ ซึ่งการลดความยาวของกุญแจลับก็โดนกระแสต่อต้านจากกลุ่มธุรกิจองค์กรต่างๆมากมาย เพราะพวกกลุ่มธุรกิจองค์กรต่างๆเหล่านี้ต้องการให้ข้อมูลมีความลับมากๆ เพราะยิ่งกุญแจลับมีความยาวมากเท่าไหร่ ข้อมูลที่เข้ารหัสก็ยิ่งต้องใช้เวลาในการถอดรหัสออกนานมากขึ้น ทำให้ข้อมูลมีความปลอดภัยมากขึ้นอีก แต่รัฐบาลสหรัฐก็ออกมาโต้ว่า ด้วยความยาวกุญแจลับขนาด 56 บิตนี้ ก็ทำให้ต้องใช้เวลาในการถอดรหัสนานมากทีเดียว แต่ในปัจจุบันนี้ มีเครื่องคอมพิวเตอร์ที่มีประสิทธิภาพสูง สามารถที่จะถอดรหัสที่ใช้กุญแจขนาด 56 บิตได้ในเวลาแค่ 56 ชั่วโมง และมีแนวโน้มว่าจะสามารถถอดรหัสโดยใช้เวลาลดลงกว่านี้ได้อีก แต่สำหรับข้อมูลที่เข้ารหัสด้วยกุญแจขนาด 128 บิต ในปัจจุบันยังถือว่าปลอดภัยอยู่มาก เพราะว่ายังไม่สามารถถอดรหัสได้เร็วเกินที่จะรอคอยได้ เพราะกว่าจะถอดรหัสได้ ข้อมูลเหล่านั้นก็อาจจะไม่มีประโยชน์ต่อการนำกลับไปใช้งานได้อีกแล้ว ซึ่งในปัจจุบันนี้ก็ได้มีมาตรฐานที่เรียกว่า 3DES เกิดขึ้นมาแล้ว โดยมาตรฐานนี้จะใช้กุญแจลับที่มีขนาดความยาว 168 บิต แต่สำหรับธุรกิจองค์กรใดที่จะใช้มาตรฐานนี้จะต้องทำเรื่องขออนุญาติจากรัฐบาลสหรัสอเมริกาก่อน ถ้าได้รับอนุญาตจากรัฐบาลอเมริการจึงจะสามารถนำมาใช้งานได้

ระบบเข้ารหัสแบบกุญแจอสมมาตร (Asymmetric-key cryptography or Public Key Technology)

   ระบบการเข้ารหัสแบบนี้ได้ถูกคิดค้นโดย นายวิทฟิลด์ ดิฟฟี (Whitfield Diffie) ซึ่งเป็นนักวิจัยแห่งมหาวิทยาลัยสแตนฟอร์ด สหรัสอเมริกา ในปี พ.ศ. 2518 โดยการเข้ารหัสแบบนี้จะใช้หลักกุญแจคู่ทำการเข้ารหัสและถอดรหัส โดยกุญแจคู่ที่ว่านี้จะประกอบไปด้วย กุญแจส่วนตัว (private key) และกุญแจสาธารณะ (public key) โดยหลักการทำงานจะทำดังนี้ ถ้าใช้กุญแจลูกใดเข้ารหัส ก็ต้องใช้กุญแจอีกลูกหนึ่งถอดรหัส สำหรับการเข้ารหัสและถอดรหัสด้วยกุญแจคู่นี้จะใช้ฟังก์ชั่นทางคณิตศาสตร์เข้ามาช่วยโดยที่ฟังก์ชั่นทางคณิตศาสตร์ที่นำมาใช้ ได้รับการพิสูจน์แล้วว่าจะมีเฉพาะกุญแจคู่ของมันเท่านั้นที่จะสามารถถอดรหัสได้ ไม่สามารถนำกุญแจคู่อื่นมาถอดรหัสได้อย่างเด็ดขาด


รูปการเข้ารหัสแบบกุญแจอสมมาตร (Asymmetric-key cryptography or Public Key Technology)

จากรูปการเข้ารหัสแบบนี้จะมี Mr. A คนเดียวที่อ่านได้ จะมีขั้นตอนดังนี้
1. Mr. A ต้องมีกุญแจคู่1คู่ขึ้นมาก่อน คือ กุญแจส่วนตัวกับกุญแจสาธารณะ โดยที่กุญแจสาธารณะของ Mr. A นี้ ใครๆก็สามารถที่จัดหามาได้รวมถึง Mr. B ด้วย หรือ Mr. A ส่งกุญแจนี้ไปให้ Mr. B ก่อน
2. หลังจาก Mr. B มีกุญแจสาธารณะของ Mr. A Mr. B จะใช้กุญแจสาธารณะของ Mr. A เข้ารหัสข้อความที่ต้องการจะส่ง
3. Mr. B ส่งข้อความเข้ารหัสไปให้ Mr. A
4. Mr. A ได้รับข้อความเข้ารหัสจาก Mr. B Mr. A จะต้องใช้กุญแจส่วนตัว นำมาใช้ในการถอดข้อความเข้ารหัสของ Mr. B หลังจากนั้น Mr. A จึงสามารถอ่านข้อความเข้ารหัสจาก Mr. B ได้ หรือในทางกลับกันถ้า Mr. B ต้องการส่งข้อความลับให้กับ Mr. A Mr. B ก็แค่ใช้กุญแจสาธารณะของ Mr. A ทำการเข้ารหัสข้อมูลแล้วส่งไปให้ดำ พอ Mr. A ได้ข้อความเข้ารหัสจาก Mr. B Mr. A ก็จะใช้กุญแจส่วนตัวของตัวเองถอดรหัสข้อความลับจาก Mr. B เพราะฉะนั้นจะมีแต่ Mr. A เท่านั้นที่สามารถอ่านข้อความลับที่ถูกส่งมาจาก Mr. B ได้

แต่จะทำอย่างไรให้แนวคิดของ นายวิทฟิลด์ ดิฟฟี นำมาประยุกต์ใช้งานได้จริงในโลกของข้อมูลอิเล็กทรอนิกส์ ดังนั้นจึงมีอัศวินสามนายขี่ม้าขาวมาช่วยนายวิทฟิลด์ ดิฟฟี โดยอัศวินทั้งสามทำการค้นคว้าและวิจัยอยู่ที่สถาบันเทคโนโลยีแห่งแมสสาซูเซตต์ (MIT : Massachusetts Institute of Technology) นักวิจัยทั้งสามก็คือ นายรอน วิเวสท์ (Ron Rivest) นายเอดิ ชาร์เมียร์ (Adi Shamir) และนายเลียวนาร์ด เอเดิลแมน (Leonard Adleman) ในปี พ.ศ.2520 และตีพิมพ์เผยแพร่เป็นครั้งแรกในปี พ.ศ. 2521 ดังนั้นเราจึงเรียกฟังก์ชั่นที่ทั้งสามค้นพบนี้ตามอักษรแรกของชื่อนักวิจัยทั้งสามนี้ว่า ฟังก์ชั่นอาร์เอสเอ (RSA ย่อมาจาก Rivest, Shamir และ Adleman) แต่โดยทั่วไป มักจะนิยมเรียกว่าอัลกอริทึมอาร์เอสเอ (RSA Algorithm) สำหรับการทำงานของอัลกอริทึมนี้ สำหรับข้อมูลเพิ่มเติมสามารถศึกษาได้จาก http://www.rsasecurity.com

  
 

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

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


ผู้เขียน/อ้างอิง : จักรกฤษณ์ แร่ทอง

อื่น ๆ เกี่ยวกับไอ.ที.

ความคิดเห็น/แนะนำ/ติชม/อื่นๆ

  • sukontip [20 Aug 2005 , 02:11 PM]

    ต้องการทราบว่า time ในการ Asymmetrie Encryption กับ SymmetricEncryption ใช้เวลาเท่ากันหรือไม่กรณีที่ข้อมีข้อมูลที่ต้องการเท่ากัน ช่วยตอบให้หน่อยนะค่ะรบกวนค่ะ

  • จักรกฤษณ์ [24 Aug 2005 , 08:07 AM]

    ลองอ่าน 4 บรรทัดสุดท้ายอีกครั้งนะครับ

  • พรมศักดิ์ แสงอินทร์ [15 ธ.ค. 2548 , 03:20 PM]

    อธิบาย การถอดรหัสให้ชัดกว่านี้หน่อยคับผมอยากอ่านมากที่อืนไม่มี ส่งมาทางเมลผมหน่อยคับผม ขอบคุณมากคับ

  • ora [04 ม.ค. 2549 , 04:44 PM]

    อยากให้อธิบายมาตราฐาน X509 ด่วนค่ะ

  • sasit [14 ม.ค. 2553 , 05:32 PM]

    ผมขอ ซอร์สโค๊ด/โอเพนซอร์ส Encryption Decryption พร้อมคำอธิบาย ผมจะทำไปส่งอาจารย์เสานี้ครับ ขอบคุณล่วงหน้าครับ