[Outline] Hash Function

  1. Hash Function


[STEP2] Draft Content : ==> CF ว่าประเด็นที่เราจะเล่าทั้งหมดครบถ้วนตามที่ต้องการไหม

  1. กำหนดหัวข้อหลักว่าจะเขียนเรื่องอะไร
  2. กำหนดรูปแบบที่จะเขียน เช่น แบบ Glossary หรือ แบบบทความยาว
  3. อธิบายถึงประเด็นที่จะเขียนเป็น outline ว่ามีอะไรบ้าง
  4. สรุปประเด็นเรื่อง Graphic ว่ามีรูปแบบอะไรบ้าง
  5. เพิ่ม Ref

คำถามที่อยากให้ Reviewer ช่วยตอบ

  1. ต้องการรู้ประเด็นไหนเพิ่มเติมไหม เพราะอะไร
  2. คิดว่าเรียงลำดับการนำเสนอได้ดีรึยัง ถ้าไม่ดี มีไอเดียอย่างไร
  3. มีประเด็นไหนควรตัดทิ้งไหม เพราะอะไร

[Glossary] Hash Function

คือ ฟังก์ชันการทำงานแบบทางเดียว (One-way function) ซึ่งสามารถแปลงข้อมูล (Input) ที่มีความยาวเท่าไรก็ได้ (Arbitrary length) ออกมาเป็นข้อมูล (Output) ที่ความยาวคงที่ (Fixed-length) โดยผลลัพธ์ที่ได้จะถูกเรียกว่า " Hash value "

** ฟังก์ชัน คือ ความสัมพันธ์ซึ่งในสองคู่อันดับใด ๆ ของความสัมพันธ์นั้น ถ้ามีสมาชิกตัวหน้าเท่ากันแล้ว
สมาชิกตัวหลังต้องเหมือนกันด้วย

คุณสมบัติของ Cryptographic Hash Function มีดังนี้

  1. Arbitrary-length message to fixed-length digest คือ ขนาดของข้อมูล (Input) ก่อนที่จะนำไปเข้า Hash Function จะมีความยาวเท่าใดก็ได้ แต่ค่าแฮช (Output) ที่ได้ออกมาจะมีขนาดความยาวเท่ากันหมด

  2. Pre-image resistant คือ เป็นการทำงานแบบทางเดียว การย้อนกลับทำได้ยาก จนแทบจะเรียกได้ว่าไม่สามารถย้อนกลับได้ แม้ว่าเราจะมีค่า Output ก็ไม่สามารถหาค่า Input ออกมาได้

  3. Second pre-image resistant คือ แม้ว่าเราจะมีค่า Input ค่าแฮชอยู่ เราก็ไม่สามารถหาค่า Input อื่น ๆ ที่มีค่าแฮชเดียวกันได้

  4. Collision resistant คือ การที่ค่าแฮชจะไม่ชนกัน หมายความว่า เป็นเรื่องที่ยากมากในการที่ Input ที่แตกต่างกัน 2 อัน เเม้จะแตกต่างกัเล็กน้อยก็ตาม จะทำให้ได้ค่าแฮชค่าเดียวกัน

ตัวอย่าง มาตรฐาน Hash Function ที่เป็นที่นิยม เช่น

  • MD5 ที่ออกแบบโดย Ron Rivest สามารถสร้างค่าแฮช (Hash Value) 128 bit เป็น Hash Algorithm ที่นิยมมากที่สุด แต่ภายหลังมีปัญหาเรื่องการโจมตีแบบ brute-force กับ Cryptanalytic กำหนดเป็นมาตรฐานอินเทอร์เน็ต RFC132
  • SHA ได้รับการออกแบบโดย NIST & NSA ในปี 1993 ก่อนจะพบจุดอ่อนหลายประการและได้แก้ไขในปี 1995 เป็น SHA-1 เป็นมาตรฐานในสหรัฐอเมริกาสำหรับใช้กับ DSA Signature Scheme สามารถสร้างค่าแฮช (Hash Value) 160 bit
  • SHA-2 สร้างขึ้นเพื่ออุดช่องโหว่ของ SHA-1 มีโครงสร้างและรายละเอียดคล้ายกับ SHA-1 และมีการเพิ่ม วิธีการแฮชขึ้นมาอีก 3 ตัว คือ SHA-256, SHA-384, SHA-512 เป็นมาตรฐานที่ใช้กันอย่างแพร่หลายในปัจจุบัน เช่น Bitcoin ที่ใช้ SHA-256

มาตรฐาน Hash Function ที่มีการใช้งานกันอยู่ในปัจจุบัน อย่าง Message Digest Algorithm (MD5) หรือ Secure Hash Algorithm เช่น SHA-1, SHA-2 จะมีความแตกต่างกันไปขึ้นอยู่กับวิธีการที่ใช้และขนาดความยาวของ Output (Fixed Length Output) ที่ได้จากกระบวนการ Hash

นอกจากตัวอย่างที่ยกมานี้ยังมี มาตรฐานอื่น ๆ อีกมากมายเช่น RIPEMD160 (RIPE Message Digest), SM3 (Shang Mi) 256-bit output, Whirlpool 512-bit output และ SHA-3 เป็นต้น

[Glossary] Compression Algorithm

คือ การบีบอัดข้อมูลให้มีขนาดเล็กลง และสามารถทำให้ข้อมูลกับไปมีขนาดเท่าเดิมได้ อย่างเช่น Winzip หรือ WinRAR ที่เราสามารถบีบอัดไฟล์ให้มีขนาดเล็กลงและสามารถแตกไฟล์ (Extract files) ให้กลับมาเป็นเหมือนเดิมได้ ตามต้องการไม่จำกัด

[Glossary] Hash vs Compression

Hash Function กับ Compression Algorithm มีความคล้ายคลึงกันในเรื่องของการทำให้ข้อมูลมีขนาดเล็กลง แต่ Compression เป็นการบีบอัดข้อมูลที่ยังสามารถทำให้ข้อมูลกับไปเป็นเหมือนเดิมได้ ตามต้องการไม่จำกัด ในขณะที่ Hash Function เมื่อข้อมูลถูกทำให้มีขนาดเล็กลงแล้วจะไม่สามารถทำให้กลับไปเป็นรูปแบบเดิมได้อีก

[Glossary] Encryption

Encryption is the method by which information is converted into secret code that hides the information’s true meaning. The science of encrypting and decrypting information is called cryptography .

[Glossary] Hash Vs Encryption

Hash Function แตกต่างกับการเข้ารหัส (Encryption) ตรงที่ Encryption เป็นการทำงานแบบ 2 ทาง คือจะต้องใช้คีย์ทั้งการเข้าและถอดรหัส (Decryption) แต่ Hash Function เป็นการทำงานแบบทางเดียว คือเมื่อทำการ Hash แล้ว จะไม่มี ‘de-hashing’