Message digestสร งโดยไม ใช ฟ งช นบ บได ม ย

Page 38 - ความมั่นคงด้านเทคโนโลยีสารสนเทศ และการสื่อสาร

  1. 38

4-28
เรอ่ื งที่ 4.3.1   อลั กอรทิ ึมแฮชแบบเอม็ ดไี ฟว์
สาระสงั เขป
       อัลกอริทึมนี้มีชื่อว่า MD5 Message Digest Algorithm โดยพัฒนาขึ้นโดย Ron Rivest ซึ่งได้  
ประกาศเป็นมาตรฐานใน RFC 1321 โดย MD5 จะมีการแบ่งข้อมูลอินพุตออกเป็นบล็อกละ 512 บิต โดย  
จะสร้างผลลัพธ์ขนาด 128 บิต สำ�หรับอัลกอริทึม MD5 นี้มีการใช้งานที่กว้างขวาง แต่สำ�หรับในปัจจุบันที่  
ความเร็วของโพรเซสเซอร์เพิ่มขึ้นมาก ความยาวของผลลัพธ์เพียง 128 บิต เริ่มมีการมองว่ามีความปลอดภัย  
น้อยเกินไป เพราะ MD5 จะมีความเป็นไปได้ที่ข้อความ 2 ข้อความที่มี MD เดียวกัน เท่ากับ 264 และมีความ  
ยากในการหาข้อความที่มี MD ที่ได้เท่ากับ 2128 โดยมีรายงานการโจมตี MD5 หลายครั้งที่แสดงว่า MD5  
อาจถูกโจมตีได้ การทำ�งานของ MD5 เริ่มขึ้นโดยการอ่านค่าข้อมูลและแบ่งเป็นกลุ่ม ๆ ที่มีขนาด 512 บิต  
หากข้อมูลมีขนาดไม่เท่ากับ 512 บิต อัลกอริทึมจะเพิ่มเติมข้อมูลให้มีขนาด 512 บิต ข้อมูลที่ผ่านการทำ�งาน  
ในขั้นนี้แล้วจะถูกเรียกว่าข้อมูลเริ่มต้นซึ่งจะถูกส่งต่อให้กับฟังก์ชันการบีบอัดข้อมูล (Compress function:  
CF) ผลการทำ�งานของฟังก์ชันบีบอัดข้อมูลนี้จะถูกเรียกว่า IHV (Initial Hash Value) ดังนั้น หากแทนค่า  
ขอ้ มลู เริม่ ตน้ แตล่ ะกลุม่ ดว้ ย M1, M2, M3,… Mn  ซึง่ แตล่ ะกลุม่ มขี นาด 512 บติ และ IHV1, IHV2, IHV3,..,  
IHVn สามารถเขียนเป็นวงรอบการทำ�งานดังนี้  
            IHV0    =   กำ�หนดเป็นค่าคงที่  
            IHV1   =   CF(IHV0, M1)  
            IHV2   =   CF(IHV1, M2)  
            IHV3   =   CF(IHV2, M3)  
            :  
            :    
            IHVn   =   CF(IHVn-1, Mn)  
            MD5 Hash = IHVn  
    (โปรดอา่ นเน้ือหาสาระโดยละเอียดในหนงั สือประกอบชดุ วิชาหนว่ ยที่ 4 ตอนที่ 4.3 เร่ืองที่ 4.3.1)
  กจิ กรรม 4.3.1  
  1. คุณสมบัติที่ต้องการของการใช้งานอัลกอริทึมแฮชที่สำ�คัญ มีอะไรบ้าง และมีความสำ�คัญ อย่างไร
  2. ในการพิจารณาเลือกอัลกอริทึมสำ�หรับการแฮกข้อมูลพาสเวิร์ดของผู้ใช้งาน ท่านคิดว่า อัลกอริทึมแบบ MD5 ยังคงเหมาะสมสำ�หรับการใช้งานลักษณะดังกล่าวหรือไม่ เพราะเหตุใด `
Page 59 - โครงสร้างข้อมูลและขั้นตอนวิธี
  1. 59
โครงสร้างแ​ บบแ​ ฮช 8-49 เรอ่ื ง​ที่ 8.2.3 การ​ประยุกต์​ใช​แ้ ฮช
   ใน​การ​ใช​้งาน​เทคโนโลยี​สารสนเทศ​ทกุ ​วนั ​น​ี้ม​ีการน�ำฟ​ ังก์ชัน​แฮ​ชมา​ใช้​งาน​อย่​ูเสมอ ​ตวั อยา่ ง​การน�ำฟ​ งั กช์ นั ​แฮ​ช  
มา​ใช้​งาน​จริง​น้ัน เช่น​ การ​ใช้​ฟังก์ชัน​แฮช​เพื่อ​งาน​ทาง​วิทยาการ​เข้า​รหัส​ลับ (cryptography) เพ่ือ​สร้าง​ความ​ปลอดภัย​ ใน​การ​ใช้​งาน​หรือ​ท�ำธ​ ุรกรรม​ต่างๆ ทาง​ระบบ​อินเทอร์เน็ต แนวคิด​ของ​การ​ท�ำงาน​จะ​เป็น​ใน​ลักษณะ​ท่ี​ผู้​ใช้​ส่ง​ข้อความ (message) ไม่ว​ ่าจ​ ะ​เป็นช​ ุดข​ อง​ตัวเลขห​ รือ​ตัวอ​ ักษรท​ ่ีม​ ี​ความย​ าว​ใดๆ ผ่านเ​ข้าไปใ​นร​ ะบบท​ ี่ฟ​ ังก์ชันแ​ ฮช​อยู่ โดยฟ​ ังก์ชัน​ จะ​ท�ำการ​แปลง​ข้อความ​เหล่า​น้ัน​ออก​เป็น​รหัส​ที่​มี​ความ​ยาว​คง​ท่ี​หนึ่งๆ ซ่ึง​ถือ​เป็นการ​เข้า​รหัส​เพื่อ​ความ​ปลอดภัย ดังแสดงในภาพ​ท่ี 8.9 Message Hash Function Hash value
                          ภาพท​ ่ี 8.9 การ​เข้า​รหัส​ขอ้ ความ​ด้วย​ฟงั กช์ ัน​แฮช
   โดยข​ ้อความท​ ี่​ส่ง​โดย​ผู้ใ​ช้น​ ้ัน​จะ​ไม่​ถูกเ​ก็บเ​ข้าไ​ว้ใ​น​ระบบ​ แต่จ​ ะเ​ก็บ​เพียงร​ หัสท​ ี่​ผ่านก​ าร​แปลง​ด้วยฟ​ ังก์ชันแ​ ฮช​  
แล้ว ตัวอย่าง​ของ​ข้ันต​ อนว​ ิธีก​ ารใ​น​การแ​ ปลงข​ ้อมูล​ที่​ใช้ก​ ัน​ใน​ปัจจุบัน ได้แก่

  1. เอ็​มดี​ทู (Message Digest 2; MD2) เป็น​วิธี​การ​แปลง​ที่​มี​ความ​ปลอดภัย​สูง โดย​จะ​แปลง​ข้อความ​เป็น​ รหัส​ท่ีม​ ี​ความยาว 128 บิต แต่​ข้อ​จ�ำกัด​คือ​ใช้เ​วลาใ​นก​ ารค​ �ำนวณน​ าน
  2. เอ็​มดี​โฟร์ (MD4) พัฒนา​ต่อ​มา​จาก MD2 เพ่ือ​ช่วย​ลด​ระยะ​เวลา​ใน​การ​ค�ำนวณ โดย​จะ​แปลง​ข้อมูล​เป็น​ รหัส​ท่ีม​ ี​ความยาว 128 บิตเ​ช่นก​ ัน แต่​ข้อ​จ�ำกัดข​ อง​วิธี​การ​นี้​คือจ​ ะ​เกิดก​ ารช​ น​กันข​ องข​ ้อมูล​ท่ี​ถูก​แปลงม​ าก
  3. เอ็​มดี​ไฟว์ (MD5) พัฒนา​ต่อ​มา​จาก MD4 โดย​ยัง​คง​แปลง​เป็น​รหัส​ความยาว 128 บิต และ MD5 เป็น​ ที่น​ ิยมใ​ช้​กัน​อย่างแ​ พร่ห​ ลาย แต่​ปัญหา​การช​ น​กัน​ของข​ ้อมูล​แบบ MD4 ก็ย​ ังค​ งม​ ีอ​ ยู่
  4. เอส​เอช​เอ (Secure Hash Algorithm; SHA) เป็น​วิธี​การ​ท่ี​พัฒนา​มา​จาก MD4 แต่​สร้าง​รหัส​ท่ี​แปลง​ให้​ มีค​ วามยาว 160 บิต
  5. เอส​เอชเ​อ​วัน (SHA-1) ถูก​พัฒนา​ต่อย​อดม​ า​จาก SHA เพ่ือใ​ห้ม​ ี​ความ​ปลอดภัยท​ ่ีส​ ูง​ขึ้น
       นอกจาก​น้ี​ยัง​มี​การ​พัฒนา SHA-256, SHA-384 และ SHA-512 ซ่ึง​เป็นการ​เข้า​รหัส​แบบ​สมมาตร โดย​  
    
    มี​ความ​ยาว​ของ​รหัส​เป็น 256, 384 และ 512 ตาม​ล�ำดับ วิธี​การ​แปลง​ข้อมูล​ที่​กล่าว​มา​ข้าง​ต้น​น้ี​ถูก​พัฒนา​ขึ้น​มา​เพื่อ

    ​สร้าง​ความป​ ลอดภัยส​ ูงสุดใ​ห้​เกิด​ขึ้นก​ ับร​ ะบบ​ท่ีท​ �ำงาน​อยู่

       ตัวอย่าง​ของ​การ​แปลง​รหัส​ผ่าน​ เช่น “mysecretpassword” เป็น​รหัส​โดย​การ​ใช้​ขั้น​ตอน​วิธี​แบบ MD5  
    
    จะไ​ด้​รหัสค​ ือ “4cab2a2db6a3c31b01d804def28276e6” ซึ่งเ​ป็นข​ ้อมูล​ขนาดค​ วามยาว 32 บิต ซึ่งเ​ป็นเ​ลข​ฐาน 16 ใน​ การ​เก็บจ​ ะส​ ามารถแ​ ปลงเ​ป็นข​ ้อมูลจ​ �ำนวนเต็มข​ นาด 128 บิต หรือ 16 ไบต์ไ​ด้ โดย​ฟังก์ชันแ​ ฮชห​ รือ​ขั้นต​ อนว​ ิธี​การแ​ ปลง​ น้ี​ถือ​เป็น​ฟังก์ชัน​แบบ​ทาง​เดียว (one-way function) น่ัน​คือ​ ฟังก์ชัน​ถูก​ออกแบบ​มา​ให้​ไม่​สามารถ​แปลง​รหัส​ กล​ ับ​ไปย​ ัง​ข้อความ​ก่อน​แปลง​ได้

    `