ฟังก์ชันแฮชเข้ารหัสเป็นฟังก์ชันตัวเลขที่ใช้ในการเข้ารหัส ฟังก์ชันแฮชแบบเข้ารหัสจะรวมความสามารถในการส่งข้อความของฟังก์ชันแฮชเข้ากับคุณลักษณะด้านความปลอดภัย
คำว่า hash function ถูกใช้ในวิทยาการคอมพิวเตอร์ตั้งแต่ค่อนข้างบ่อย และมันกำหนดเป็นฟังก์ชันที่บีบอัดสตริงของอินพุตที่กำหนดเองเป็นสตริงของความยาวที่ตัดสิน อย่างไรก็ตาม หากตรงตามข้อกำหนดเพิ่มเติม จึงสามารถใช้สำหรับแอปพลิเคชันเข้ารหัสแล้วเรียกว่าฟังก์ชัน Cryptographic Hash
ฟังก์ชัน Cryptographic Hash เป็นเครื่องมือที่สำคัญที่สุดในด้านการเข้ารหัสและใช้เพื่อจัดการวัตถุประสงค์ด้านความปลอดภัยจำนวนหนึ่ง เช่น ความถูกต้อง ลายเซ็นดิจิทัล การสร้างหมายเลขเทียม steganography ดิจิทัล การประทับเวลาดิจิทัล ฯลฯ
ฟังก์ชันแฮชคือฟังก์ชันที่รับข้อความที่มีความยาวเท่าใดก็ได้เป็นอินพุต และเปลี่ยนเป็นเอาต์พุตความยาวคงที่ที่เรียกว่าค่าแฮช ไดเจสต์ข้อความ เช็คซัม หรือลายนิ้วมือดิจิทัล
ฟังก์ชันแฮชเป็นฟังก์ชัน f:D -> R โดยที่โดเมน D ={0, 1}* ซึ่งกำหนดว่าองค์ประกอบของโดเมนมีสตริงไบนารีที่มีความยาวผันแปรได้ และช่วง R ={0, 1} n สำหรับบาง n>=1 ซึ่งกำหนดว่าองค์ประกอบของช่วงเป็นสตริงไบนารีที่มีความยาวคงที่ ดังนั้น f เป็นฟังก์ชันที่สร้างเป็นข้อความอินพุต M ขนาดใดก็ได้ และสร้างผลลัพธ์แฮชที่มีความยาวคงที่ h ขนาด n
ฟังก์ชันแฮช f ถูกกำหนดเป็นฟังก์ชันบีบอัดเมื่อโดเมน D ของมันถูกจำกัด เช่น ถ้าฟังก์ชัน f รับข้อความความยาวคงที่เป็นอินพุตและสร้างเอาต์พุตความยาวคงที่ที่สั้นลง
คุณสมบัติของฟังก์ชันแฮชการเข้ารหัส
มีคุณสมบัติต่างๆ ของ hash function ดังนี้ -
-
การคำนวณแฮชสำหรับข้อมูลที่กำหนดนั้นทำได้ง่ายอย่างยิ่ง
-
ควรยอมรับกลุ่มข้อมูลขนาดใดก็ได้เป็นข้อมูลป้อนเข้า
-
ควรทำเอาต์พุตความยาวคงที่
-
มันควรจะทำตัวเหมือนฟังก์ชั่นสุ่มในขณะที่ถูกกำหนดและทำซ้ำได้อย่างมีประสิทธิภาพ
-
ควรรับอินพุตที่มีความยาวเท่าใดก็ได้ และเอาต์พุตสตริงแบบสุ่มที่มีความยาวคงที่
-
สำหรับอินพุตที่คล้ายกัน H ควรทำเอาต์พุตเดียวกันอย่างต่อเนื่อง
-
หากได้รับข้อความ M ก็สามารถคำนวณไดเจสต์ที่เกี่ยวข้องได้ง่ายๆ โดยที่ h สามารถคำนวณได้ในเวลาพหุนาม O(n) โดยที่ n คือความยาวของข้อความอินพุต
-
จากข้อความที่สรุป h มันซับซ้อนในการคำนวณที่จะค้นพบ M โดยที่ H (M) =h สิ่งนี้เรียกว่าคุณสมบัติต้านทานทางเดียวหรือก่อนภาพเช่น ไม่สามารถใช้กับการค้นหาข้อความจากค่าแฮชที่กำหนด
-
จากข้อความ M1 การคำนวณเป็นไปไม่ได้ที่จะค้นพบข้อความอื่น M2 ≠ M1 ที่มี H (M1) =H (M2) สิ่งนี้เรียกว่าการต้านทานการชนที่ต่ำหรือคุณสมบัติการต้านทานภาพก่อนภาพที่สอง
-
เป็นไปไม่ได้ในการคำนวณที่จะค้นหาชุดข้อความที่แตกต่างกัน (M1, M2) ที่ H (M1) =H (M2) สิ่งนี้ถูกกำหนดให้เป็นคุณสมบัติต้านทานการชนที่แข็งแกร่ง