Digital Signature and Message Digest
Digital Signature คืออะไร?
Digital Signature and Message Digest
Digital Signature คืออะไร?
เป็นสัญลักษณ์ที่ใช้การทำสัญญาระหว่าง 2 ฝ่าย เพื่อใช้ยืนยันว่าสัญญาฉบับนั้นจะมีผลก็คือ ลายเซ็น (Signature) ซึ่งลายเซ็นมีความสำคัญมาในการทำสัญญา หรือการยืนยันเอกสารต่างๆจะต้องการลายเซ็นของเจ้าของเอกสารเสมอ จึงจะทำให้เอกสารนั้นมีผลทางกฎหมาย

https://blog.signaturit.com/en/what-is-a-digital-signature
แต่ในปัจจุบันมีการส่งข้อความและจดหมายทางอินเตอร์เน็ตกันมาก ซึ่งแน่นอนว่าอีเมล์แต่ละอีเมล์จะมีข้อความต่างๆที่อยู่ในอีเมล์เราไม่สามารถเชื่อถือได้เลยว่าเป็นข้อความจากผู้ส่งจริงๆ
ในทางธุรกิจการส่งข้อความหรืออีเมล์เป็นเรื่องสำคัญมาก ซึ่งมีการคิดวิธีป้องกันข้อมูลที่อยู่ในจดหมายพร้อมทั้งมีการยืนยันว่าจดหมายอิเล็กทรอนิกส์หรืออีเมล์นี้ได้ส่งมาจากผู้ส่งจริงและอีเมล์นี้ก็ไม่ได้โดนแก้ไขระหว่างทางด้วยเทคโนโลยีป้องกัน
*Digital Signatureคืออะไร — Thanitaphat (google.com)*
ประวัติ DSA
ในปีพ. ศ. 2525 รัฐบาลสหรัฐฯได้เรียกร้องข้อเสนอสำหรับมาตรฐานลายเซ็นคีย์สาธารณะ ในเดือนสิงหาคม 1991 สถาบันมาตรฐานและเทคโนโลยีแห่งชาติ (NIST) ได้เสนอ DSA เพื่อใช้ใน Digital Signature Standard (DSS) ในขั้นต้นมีเสียงวิพากษ์วิจารณ์อย่างมากโดยเฉพาะอย่างยิ่งจาก บริษัท ซอฟต์แวร์ที่ได้ใช้ความพยายามในการพัฒนาซอฟต์แวร์ลายเซ็นดิจิทัลบนพื้นฐานของระบบเข้ารหัส RSA อย่างไรก็ตาม NIST นำ DSA มาใช้เป็นมาตรฐานของรัฐบาลกลาง ในปี พ.ศ. 2537 มีการเผยแพร่ การแก้ไขข้อกำหนดเบื้องต้น 4ครั้ง ในปี 1998, ในปี 2000, ในปี 2009, และในปี 2013 มาตรฐานฉบับร่างห้ามไม่ให้มีการลงนามกับ DSA ในขณะที่อนุญาตให้ตรวจสอบ ลายเซ็นที่สร้างขึ้นก่อนวันที่นำมาตรฐานไปใช้เป็นเอกสาร จะถูกแทนที่ด้วยรูปแบบ ลายเซ็นที่ใหม่กว่าเช่น EdDSA
DSA อยู่ภายใต้สิทธิบัตรของสหรัฐอเมริกา 5,231,668 ยื่นเมื่อวันที่ 26 กรกฎาคม 1991 และตอนนี้หมดอายุแล้วและเป็นผลมาจาก David W. Kravitz อดีตพนักงาน NSA สิทธิบัตรนี้มอบให้กับ “The United States of America ซึ่งเป็นตัวแทนขอ กระทรวงพาณิชย์ Washington, D.C. และ NIST ได้ทำให้สิทธิบัตรนี้สามารถใช้ได้ ทั่วโลก Claus P. Schnorr อ้างว่าสิทธิบัตรของสหรัฐฯ
*Digital Signature Algorithm — Wikipedia*
Digital Signature Method
เริ่มจากการนำเอาข้อมูล อิเล็กทรอนิกส์ต้นฉบับที่จะส่งไป นั้นมาผ่านกระบวนการทางคณิตศาสตร์ที่เรียกว่า ฟังก์ชันย่อยข้อมูล (Hash Function) เพื่อให้ได้ข้อมูลที่สั้นๆ ที่เรียกว่า ข้อมูลที่ย่อยแล้ว (Digest)
จากนั้นจึงทำการเข้ารหัสด้วยกุญแจส่วนตัวของผู้ส่งเองจะได้ข้อมูลที่เข้ารหัสแล้วเรียกว่า ลายมือชื่อดิจิทัล (Digital Signature)

https://comodosslstore.com/blog/what-is-digital-signature-how-does-it-work.html
จากนั้นก็ทำการส่งลายมือชื่อ ไปพร้อมกับข้อมูล ต้นฉบับไปยังผู้รับ ผู้รับก็จะทำการตรวจสอบว่าข้อมูลที่ได้รับถูกแก้ไขระหว่างทางหรือไม่
และนำลายมือชื่อดิจิทัลมาทำการถอดรหัสด้วย กุญแจสาธารณะของผู้ส่ง ก็จะได้ข้อมูลที่ย่อยแล้วอีกอันหนึ่ง แล้วทำการเปรียบเทียบ ข้อมูลที่ย่อยแล้วทั้งสองอัน ถ้าหากว่าเหมือนกัน ก็แสดงว่าข้อมูลที่ได้รับนั้นไม่ได้ถูกแก้ไข แต่ถ้าข้อมูลที่ย่อยแล้ว แตกต่างกัน ก็แสดงว่า ข้อมูลที่ได้รับถูกเปลี่ยนแปลงระหว่างทาง
Wanthanee Prachuabsupakij, Ph.D
Message-Digest algorithm
Hash function
คือการนำเอาข้อมูลอิเล็กทรอนิกส์ต้นฉบับที่จะส่ง มาผ่านกรบวนการทางด้านคณิตศาสตร์ที่เรียกว่า Hash Function เพื่อให้ได้ข้อมูลที่สั้น ที่เรียกว่า Digest หรือ ข้อมูลย่อย ก่อนที่จะทำการเข้ารหัส เนื่องจากข้อมูลต้นฉบับมักจะมีความยาวมาก ซึ่งจะทำให้กระบวนการเข้ารหัสใช้ระยะเวลานาน
*Hash Functionคืออะไร — Thanitaphat (google.com)*
MD5
การเข้ารหัสแบบ Hash (Cryptographic hash) คือ การแปลงรูปแบบของข้อมูลที่รับเข้ามาไม่ว่าขนาดเท่าใดก็ตาม ให้อยู่ในอีกรูปแบบหนึ่งที่มีขนาดคงที่ เพราะฉะนั้น จะไม่สามารถเรียกดูข้อมูลต้นฉบับได้ (Decrypt) ทำได้เพียงตรวจสอบว่าข้อมูลที่ให้มาแต่ละครั้งเหมือนกันหรือไม่ ความปลอดภัยจึงค่อนข้างสูง ในที่นี้ MD5 เป็นการเข้ารหัสแบบ 128-bit ให้ค่าเป็นตัวเลขฐาน 16 (0123456789abcd) ขนาด 32 ตัวอักษร

ตัวอย่าง MD5
เช่นใช้ MD5 รหัสผ่าน abc123 ได้เป็น e99a18c428cb38d5f260853678922e03 แล้วจึงเก็บค่าแฮชนั้นลงใน Database จะทำให้การเปิดดูรหัสผ่านใน Database โดยตรง ไม่พบรหัสผ่าน abc123 แต่จะพบเพียงค่าแฮช (e99a18c428cb38d5f260853678922e03)
MB5 Algorithm
เราจะเริ่มจากการสมมติให้มีInputเป็นข้อความ M ขนาด b-bit ซึ่ง b เป็นจำนวนเต็มที่ไม่ติดลบ ไม่จำเป็นต้องหาร 8 ลงตัว และมีความยาวได้ไม่จำกัด จากนั้นจะทำการหา MD5 โดยการผ่านขั้นตอนต่อไปนี้
Padding เติม “ 10 ” ท้ายข้อความแล้ว เติม “ 0 ” ไปเรื่อยๆ จนกว่าข้อความจะมีขนาดที่คอนกลูเอนกับ 448 (mod 512)
เติมขนาดข้อความ ความยาว 64 บิต ท้ายข้อความ หากขนาดของข้อความใหญ่เกินที่ 64 บิตจะเก็บได้ก็ให้ใช้ 64 บิตหลังของขนาดเท่านั้น สุดท้ายจะได้ข้อความที่แต่งเติมแล้วมีขนาดที่สามารถหาร 512 ลงตัวพอดี นั่นคือจะสามารถแบ่งข้อความได้เป็นชุด ชุดละ 512 บิต หรือ 32 ไบต์ หรือ 16-word block
กำหนดค่าเริ่มต้นของ MD Buffer
ตั้งค่าเริ่มต้นของ buffer ขนาด 32 บิต 4 ตัวดังนี้
A = 0x67452301 , B = 0xEFCDAB89 , C =0x98BADCFE , D = 0x76543210
คำนวณข้อความใน 16-word block
ลำดับแรกเราจะกำหนดฟังก์ชันรับInput 32 บิต และOutput 32 บิต ดังนี้

แทนการดำเนินการ XOR, AND, OR และ NOT ในขั้นตอนนี้ยังต้องใช้ ตารางขนาด 64 ช่อง T[1 ถึง 64] ซึ่ง T สามารถหาค่าได้จาก ⌊ 2³² x |sin i | ⌋ โดย i มีค่าเป็นเรเดียน จากนั้นทำตามขั้นตอนวิธีดังนี้







메타데이터
- post_id
- 625d61fb234a
- slug
- digital-signature-and-message-digest-625d61fb234a
- url
- https://medium.com/@xtopfeestrange/digital-signature-and-message-digest-625d61fb234a
- canonical_url
- https://medium.com/@xtopfeestrange/digital-signature-and-message-digest-625d61fb234a
- author_url
- https://medium.com/@xtopfeestrange
- status
- ok
- fetched_at
- 2026-06-16 19:09:56