Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

อะไรคือข้อกำหนดของฟังก์ชันแฮชในความปลอดภัยของข้อมูล?


ฟังก์ชันแฮชเข้ารหัสคือการแปลงที่สร้างอินพุต (หรือข้อความ) และกู้คืนสตริงที่มีขนาดคงที่ ซึ่งเรียกว่าค่าแฮช ค่าแฮช h ผลิตโดยฟังก์ชัน H ของรูปแบบ -

h =H(M)

โดยที่ M คือข้อความความยาวผันแปรและ H (M) คือค่าแฮชความยาวคงที่

โดยทั่วไปฟังก์ชันแฮชจะใช้ฟังก์ชันทางคณิตศาสตร์ในการเข้ารหัสเพื่อดำเนินการรักษาความปลอดภัย ฟังก์ชันแฮชแปลงค่าอินพุตของขนาดใดก็ได้เป็นค่าขนาดคงที่ ดังนั้น อินพุตสามารถมีความยาวเท่าใดก็ได้ แต่ผลลัพธ์ที่ได้จะมีความยาวคงที่เสมอ ผลลัพธ์ที่สร้างขึ้นเรียกว่าค่าแฮชหรือแฮช

การใช้แฮชโดยทั่วไปคือการตรวจสอบรหัสผ่าน เมื่อผู้ใช้ป้อนรหัสผ่าน แฮชของรหัสผ่านจะถูกสร้างและเปรียบเทียบกับแฮชในฐานข้อมูล หากแฮชทั้งสองมีค่าเท่ากัน ผู้ใช้จะสามารถเข้าสู่ระบบได้ มิฉะนั้นผู้ใช้จะต้องป้อนรหัสผ่านอีกครั้ง

ค่าแฮชจะถูกเพิ่มไปยังข้อความที่ต้นทางในเวลาที่ข้อความได้รับการพิจารณาหรือทราบว่าข้อความถูกต้อง ผู้รับตรวจสอบข้อความโดยคำนวณค่าแฮชใหม่

ฟังก์ชันแฮชจะสร้างสตริงที่มีความยาวเท่าใดก็ได้เป็นอินพุต และสร้างสตริงความยาวคงที่ซึ่งอำนวยความสะดวกในรูปแบบลายเซ็นสำหรับข้อมูลที่ได้รับการสนับสนุน ในแนวทางนี้ บุคคลที่เข้าใจค่าแฮชจะไม่สามารถหาข้อความต้นฉบับได้ แต่ผู้ที่เข้าใจข้อความต้นฉบับสามารถพิสูจน์ได้ว่าแฮชสร้างขึ้นจากข้อความนั้น

ฟังก์ชันแฮชที่เข้ารหัสควรทำหน้าที่เป็นฟังก์ชันสุ่ม ในขณะที่ยังคงสามารถคำนวณได้อย่างมีประสิทธิภาพและสามารถกำหนดได้ ฟังก์ชันแฮชเข้ารหัสเป็นเครื่องมือสำคัญในด้านการเข้ารหัสและใช้เพื่อดำเนินการตามวัตถุประสงค์ด้านความปลอดภัยหลายประการ เช่น ความถูกต้อง ลายเซ็นดิจิทัล การสร้างหมายเลขเทียม การจำลองแบบดิจิทัล การประทับเวลาแบบดิจิทัล เป็นต้น

มีข้อกำหนดบางประการของฟังก์ชันแฮชดังนี้ -

ฟังก์ชันแฮชสร้างลายนิ้วมือของไฟล์ ข้อความ หรือบล็อกข้อมูลอื่นๆ ฟังก์ชันแฮช H ควรมีคุณสมบัติดังต่อไปนี้ -

  • ฟังก์ชันแฮชสามารถใช้กับบล็อกข้อมูลขนาดใดก็ได้

  • H (x) ค่อนข้างง่ายในการคำนวณหา x ใดๆ ก็ตาม ทำให้ทั้งฮาร์ดแวร์และซอฟต์แวร์ใช้งานได้จริง

  • สำหรับค่าใดๆ h จะไม่สามารถคำนวณหาค่า x ที่ H (x)=h ได้ สิ่งนี้ถูกกำหนดให้เป็นคุณสมบัติทางเดียว

  • สำหรับบล็อก x ใดๆ ที่ระบุ เป็นไปไม่ได้ในการคำนวณที่จะหา y ≠ x ที่มี H (y)=H (x) คุณสมบัตินี้ถูกกำหนดให้เป็นความต้านทานการชนที่อ่อนแอ

  • เป็นไปไม่ได้ในการคำนวณที่จะหาคู่ (x, y) ที่ H (x) =H (y) คุณสมบัตินี้เรียกว่าการต้านทานการชนที่รุนแรง