Namtan
July 25, 2022, 3:12am
#1
Hash Function
ทำเป็น บทความ ประกอบด้วย
บทความ อื่น ๆ ที่เกี่ยวข้อง
What is Encryption มี 2 รูปแบบ คือ
Glossary
บทความ ประกอบด้วย
Encryption คืออะไร
การทำงานของ Encryption
ประเภทของ Encryption (อันนี้แยก Content ออกไป)
[STEP2] Draft Content : ==> CF ว่าประเด็นที่เราจะเล่าทั้งหมดครบถ้วนตามที่ต้องการไหม
กำหนดหัวข้อหลักว่าจะเขียนเรื่องอะไร
กำหนดรูปแบบที่จะเขียน เช่น แบบ Glossary หรือ แบบบทความยาว
อธิบายถึงประเด็นที่จะเขียนเป็น outline ว่ามีอะไรบ้าง
สรุปประเด็นเรื่อง Graphic ว่ามีรูปแบบอะไรบ้าง
เพิ่ม Ref
คำถามที่อยากให้ Reviewer ช่วยตอบ
ต้องการรู้ประเด็นไหนเพิ่มเติมไหม เพราะอะไร
คิดว่าเรียงลำดับการนำเสนอได้ดีรึยัง ถ้าไม่ดี มีไอเดียอย่างไร
มีประเด็นไหนควรตัดทิ้งไหม เพราะอะไร
Namtan
August 24, 2022, 6:23am
#2
[Glossary] Hash Function
คือ ฟังก์ชันการทำงานแบบทางเดียว (One-way function) ซึ่งสามารถแปลงข้อมูล (Input) ที่มีความยาวเท่าไรก็ได้ (Arbitrary length) ออกมาเป็นข้อมูล (Output) ที่ความยาวคงที่ (Fixed-length) โดยผลลัพธ์ที่ได้จะถูกเรียกว่า " Hash value "
** ฟังก์ชัน คือ ความสัมพันธ์ซึ่งในสองคู่อันดับใด ๆ ของความสัมพันธ์นั้น ถ้ามีสมาชิกตัวหน้าเท่ากันแล้ว
สมาชิกตัวหลังต้องเหมือนกันด้วย
Namtan
August 24, 2022, 6:25am
#3
คุณสมบัติของ Cryptographic Hash Function มีดังนี้
Arbitrary-length message to fixed-length digest คือ ขนาดของข้อมูล (Input) ก่อนที่จะนำไปเข้า Hash Function จะมีความยาวเท่าใดก็ได้ แต่ค่าแฮช (Output) ที่ได้ออกมาจะมีขนาดความยาวเท่ากันหมด
Pre-image resistant คือ เป็นการทำงานแบบทางเดียว การย้อนกลับทำได้ยาก จนแทบจะเรียกได้ว่าไม่สามารถย้อนกลับได้ แม้ว่าเราจะมีค่า Output ก็ไม่สามารถหาค่า Input ออกมาได้
Second pre-image resistant คือ แม้ว่าเราจะมีค่า Input ค่าแฮชอยู่ เราก็ไม่สามารถหาค่า Input อื่น ๆ ที่มีค่าแฮชเดียวกันได้
Collision resistant คือ การที่ค่าแฮชจะไม่ชนกัน หมายความว่า เป็นเรื่องที่ยากมากในการที่ Input ที่แตกต่างกัน 2 อัน เเม้จะแตกต่างกัเล็กน้อยก็ตาม จะทำให้ได้ค่าแฮชค่าเดียวกัน
Namtan
August 24, 2022, 6:34am
#4
ตัวอย่าง มาตรฐาน 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 เป็นต้น
Namtan
August 24, 2022, 6:35am
#5
[Glossary] Compression Algorithm
คือ การบีบอัดข้อมูลให้มีขนาดเล็กลง และสามารถทำให้ข้อมูลกับไปมีขนาดเท่าเดิมได้ อย่างเช่น Winzip หรือ WinRAR ที่เราสามารถบีบอัดไฟล์ให้มีขนาดเล็กลงและสามารถแตกไฟล์ (Extract files) ให้กลับมาเป็นเหมือนเดิมได้ ตามต้องการไม่จำกัด
Namtan
August 24, 2022, 6:36am
#6
[Glossary] Hash vs Compression
Hash Function กับ Compression Algorithm มีความคล้ายคลึงกันในเรื่องของการทำให้ข้อมูลมีขนาดเล็กลง แต่ Compression เป็นการบีบอัดข้อมูลที่ยังสามารถทำให้ข้อมูลกับไปเป็นเหมือนเดิมได้ ตามต้องการไม่จำกัด ในขณะที่ Hash Function เมื่อข้อมูลถูกทำให้มีขนาดเล็กลงแล้วจะไม่สามารถทำให้กลับไปเป็นรูปแบบเดิมได้อีก
Namtan
August 24, 2022, 6:45am
#8
[Glossary] Hash Vs Encryption
Hash Function แตกต่างกับการเข้ารหัส (Encryption) ตรงที่ Encryption เป็นการทำงานแบบ 2 ทาง คือจะต้องใช้คีย์ทั้งการเข้าและถอดรหัส (Decryption) แต่ Hash Function เป็นการทำงานแบบทางเดียว คือเมื่อทำการ Hash แล้ว จะไม่มี ‘de-hashing’