เทคโนโลยีการเข้ารหัสข้อมูล(Encryptio/Decryption)
อัปเดท : 18 มิถุนายน พ.ศ.2547 , แสดง : 73,717 , ความคิดเห็น : 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. ขนาดของข้อมูลหลังจากทำการเข้ารหัสแล้ว มีการเปลี่ยนแปลงมาก หรือพูดอีกนัยหนึ่งว่า ข้อมูลหลังจากทำการเข้ารหัสแล้ว จะมีขนาดใหญ่กว่าเดิมมากขึ้น เพราะฉะนั้นจะเป็นปัญหาในการใช้งาน
ผู้เขียน/อ้างอิง : จักรกฤษณ์ แร่ทอง
อื่น ๆ เกี่ยวกับไอ.ที.
เมกะไบท์ กิกะไบท์ เทราไบท์ แล้วต่อไปจะเป็นอะไร ?
Trend of technology จะพูดถึง แนวทางของ Bus ในอนาคต
Trend of technology จะพูดถึง แนวทางของ Bus ในอนาคต
ครื่องวัดความดัน วัดอุณหภูมิ และตรวจนับการเต้นของชีพจร
คิดว่าหลายท่านที่ติดตามข่าวสารผ่านสื่อต่างๆ ในช่วงปีกว่ามานี้ คงจะได้ยินคำว่าสภาวะโลกร้อนหรือ Global Warming
จะเลือกจอ CRT หรือ LCD ดี? คำถามนี้อาจเป็นคำถามที่หลายๆคนถามหา เมื่อจะเลือกซื้อจอใหม่
การใช้งานเลขรหัสสินค้าอิเล็กทรอนิกส์ ร่วมกับเทคโนโลยี RFID (Radio Frequency Identification) มีประสิทธิภาพสูง
ระบบเสมือนจริงนับเป็นการใช้ประโยชน์จากการแสดงผลด้วยสื่อประสม สร้างภาพ 3 มิติที่สามารถมองเห็นเหมือนเป็นภาพที่เป็น 3 มิติ
เอาดิสก์หลายๆตัวมารวมกัน ประสิทธิภาพที่ได้จากการใช้งานจะมากกว่า
เทคโนโลยีสื่อสารไร้สาย แต่ในอนาคตอันใกล้นี้
ความคิดเห็น/แนะนำ/ติชม/อื่นๆ
- 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 พร้อมคำอธิบาย ผมจะทำไปส่งอาจารย์เสานี้ครับ ขอบคุณล่วงหน้าครับ