SHA512 สามารถสร้างสตริงแบบยาวเป็นสตริงแบบสั้นได้อย่างไร


1

ฉันสงสัยว่าสตริงนี้สุ่มและยาวมากแค่ไหน

€£$€@]}$€{[$£}]£[€€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]hXC&Yi45wtgsb}]h€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpb€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]hkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h€£$€@]}$€{[$£}]£[€]}€486745896€$€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubh€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]hj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h€£$€€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]h€£$€@]}$€{[$£}]£[€]}€486745896€$@fdhhsgpbkjhYUVYUDTYhµµµ½789ty45thhrhYUFVYU7645646f8cgI JKHVruxty dw78fg f 9w64f dfvt87t&R%EFVyubhj<<e5w>G/p9\<\]}}]@}$]$€}{$€øøål5940hgsy/)T(&¤%}]€$ygrevae48g85XC&Yi45wtgsb}]

สามารถเปลี่ยนเป็นสตริงที่สั้นกว่านี้ได้มาก

bb90e8b58596c55070ee88b25ff01627ab0c227cd11d6f876af9e81a0cd12e9d8a1ebce3af5b0fd8098ac3946a590c55ebe890066db6403cb0ee324c6edf9f3d

ปริมาณนี้ทำให้รู้สึกสำหรับฉัน สองสายสามารถเหมือนกันใน sha512 เรามีสตริง 1 และสตริง 2 และ sha512 ซึ่งแฮชเหมือนกันหรือไม่

คำตอบ:


1

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

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

แฮชเอาต์พุตมีความยาวคงที่โดยทั่วไปเนื่องจากขนาดของสถานะภายในของฟังก์ชันแฮช (และผลลัพธ์ของการประมวลผลหลังสถานะนั้นสำหรับเอาต์พุต) เป็นที่ทราบกัน ความยาวแฮชเอาท์พุทที่แน่นอนนั้นถูกเลือกให้เหมาะสมกับการใช้งานภายในของแฮชและเพื่อให้ระดับความปลอดภัยที่ต้องการ ฟังก์ชันแฮชบางอย่างเช่น MD5, RIPEMD160 หรือ SHA-1 มีเอาต์พุตขนาดคงที่ อื่น ๆ เช่น SHA-2 หรือ SHA-3 สามารถให้เอาต์พุตที่มีความยาวต่างกันขึ้นอยู่กับความต้องการเฉพาะของระบบโดยใช้ฟังก์ชั่นแฮช

เป็นไปได้ (และอาจเป็นไปได้) ที่อินพุตที่ต่างกันสองฟังก์ชันฟังก์ชันแฮชจะสร้างแฮชเอาต์พุตเดียวกัน สำหรับแฮชที่มีบิตnเอาต์พุตและสำหรับอินพุตแบบสุ่มสองตัวสิ่งนี้จะเกิดขึ้นโดยเฉลี่ยหลังจากลองชุดค่าผสม2 n / 2และรับประกันได้ว่าจะเกิดขึ้นตามเวลาที่คุณลองอินพุตที่แตกต่างกัน2 n +1: ในที่เลวร้ายที่สุด หรือดีที่สุด) กรณีอินพุต2 nแต่ละตัวจะให้เอาต์พุตไม่ซ้ำกันจากชุดของเอาต์พุตที่เป็นไปได้2 nดังนั้นหากคุณลองอินพุตเพิ่มเติมอีกหนึ่งรายการคุณต้องจับคู่เอาต์พุตที่คำนวณแล้วหนึ่งรายการ ที่เรียกว่าชนกัญชา จุดประสงค์ของฟังก์ชั่นแฮชการเข้ารหัสเช่นตระกูลแฮชของ SHA นั้นไม่ได้เป็นการชนกันเป็นไปไม่ได้ (โดยไม่ต้องขยายแฮชให้เต็มขนาดของอินพุทซึ่งขัดแย้งกับจุดแฮชซึ่งเป็นไปไม่ได้ทางคณิตศาสตร์) แต่จะทำให้การค้นหาอินพุทนั้นยากมาก

ฟังก์ชันแฮชที่อนุญาตให้ค้นหาการชนได้เร็วกว่าการดำเนินงาน2 n / 2ถึง 2 n อย่างมาก (ขึ้นอยู่กับวิธีการโจมตีที่แน่นอนโดยหลักแล้วค้นหาที่เรียกว่าpreimageและการโจมตีวันเกิดหากคุณต้องการเรียนรู้เพิ่มเติม) ใช้งานไม่ได้สำหรับแอปพลิเคชันเข้ารหัสลับ นี่คือสาเหตุที่SHA-1 เริ่มติดตามการคัดค้านในเว็บเบราว์เซอร์สำหรับใบรับรอง TLS ในปี 2014 หรือหลังจากการโจมตีที่เป็นไปได้ทางทฤษฎีเริ่มเป็นที่รู้จักในปี 2012และทำไม MD5 แบบเก่าที่ถือว่าผิดปกติสำหรับแอปพลิเคชันเข้ารหัสลับเกือบทั้งหมด

สิ่งสำคัญคือให้จำไว้ว่าผลลัพธ์ของฟังก์ชันแฮชเช่น SHA512 ไม่ใช่สตริงเลขฐานสิบหกที่คุณแสดงในคำถามของคุณ นั่นคือการแทนค่าหนึ่งของแฮชจริงซึ่งเป็นเพียงค่าไบนารี 64- ไบต์ (512- บิต) มันก็สามารถถูกเก็บไว้ในรูปแบบไบนารีในรูปแบบที่เข้ารหัส Base64 หรือการเป็นตัวแทนอื่น ๆ


1

ฟังก์ชันแฮชเป็นโปรแกรมคือสิ่งที่เพื่อนร่วมงานไปยังหมายเลขใด ๆ ในกลุ่มใหญ่ที่เรียกว่า A, หมายเลขอื่นที่นำมาจากกลุ่มที่แตกต่างกันของตัวเลขที่เรียกว่าบี

ในวิชาคณิตศาสตร์คุณสามารถมีแอปพลิเคชัน

  1. เมื่อกลุ่ม A มีองค์ประกอบมากกว่า B;

  2. เมื่อทั้งสองกลุ่มมีจำนวนองค์ประกอบเท่ากัน

  3. เมื่อกลุ่ม A มีองค์ประกอบน้อยกว่า B มาก

ฟังก์ชั่นแฮชคือกรณีที่ 1 กล่าวคือกลุ่ม A มีองค์ประกอบมากมายมากกว่ากลุ่ม B

องค์ประกอบของกลุ่มที่เรียกว่าข้อความบรรดาของกลุ่ม B hashes

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

สิ่งนี้ไม่เป็นเช่นนั้นเพราะคุณสมบัติของแฮชอีกอัน: มันเป็นไปไม่ได้ที่คำนวณได้ (= ยากมาก), ได้รับข้อความด้วยแฮชเพื่อค้นหาข้อความอื่นที่มีแฮชเดียวกัน

โปรดสังเกตว่าสิ่งนี้ไม่ได้กล่าวว่าเป็นไปไม่ได้เลยเพราะเราเพิ่งเห็นว่าการชนต้องมีอยู่ สถานที่ให้บริการดังกล่าวเพียงบอกว่ามันเป็นเรื่องยากมาก ยากแค่ไหน? สิ่งต่าง ๆ ได้รับการจัดวางในแฮชที่ดี (และ SHA2 เป็นแฮชที่ยอดเยี่ยม) ในลักษณะที่คอมพิวเตอร์ที่ทรงพลังที่สุดในปัจจุบันทำงานกับรหัสที่ดีที่สุดจะใช้เวลานานกว่าอายุของจักรวาล (= 12 พันล้านปี) ค้นหาการปะทะกัน ดูเหมือนว่าปลอดภัยเพียงพอ

มีคุณสมบัติของแฮชอีกอันหนึ่งซึ่งดีมากและช่วยอธิบายว่าทำไมมันถึงถูกใช้บ่อย ให้เราใช้เป็นตัวอย่างรหัสผ่าน รหัสผ่านจะถูกเก็บไว้ในพีซีไม่ใช่ในข้อความเปิด: ชิ้นเก็บรหัสผ่านของแฮชดังนั้นเมื่อฉันพิมพ์รหัสผ่านสิ่งที่เปรียบเทียบไม่ได้เป็นสองรหัสผ่าน แต่สองแฮช ตกลงดังนั้นตอนนี้ให้เราสมมติว่ารหัสผ่านของฉันคือ: MyPasswordและตอนนี้ขโมยพยายามที่จะเดาดังต่อไปนี้ ใช้ลำดับ 10 ตัวอักษร (ลำดับเริ่มต้นใด ๆ ที่จะทำให้เราใช้ Thisisasca จากนั้นเขาเปลี่ยนตัวอักษรเริ่มต้น (T, ในกรณีนี้) จนกว่ามันจะพบตัวอักษรที่มีแฮชใกล้เคียงกับที่เป็นไปได้ มี) แฮชของรหัสผ่านจริง

วิธีนี้ผู้โจมตีอาจหวังว่าจะระบุรหัสผ่านของฉันทีละตัวอักษร โปรดสังเกตว่านี่คือสิ่งที่โจรปล้นธนาคารทำในภาพยนตร์ปล้น: พวกเขาระบุรหัสผ่านโดยการฟังการคลิกเมื่อพวกเขาปรับเปลี่ยนตัวเลขครั้งละหนึ่งหลัก

นี่เป็นไปไม่ได้กับแฮช: คุณสมบัติที่สำคัญอย่างหนึ่งของแฮชคือแม้แต่ข้อความที่เกือบเท่ากันจริง ๆ แล้วก็มีแฮชต่างกันโดยสิ้นเชิง ด้วยวิธีนี้คุณไม่สามารถเดาได้ทีละตัวอักษรอย่างที่โจรปล้นธนาคารทำ

ในการพูดจาเชิงคณิตศาสตร์สิ่งนี้เรียกว่าเลขชี้กำลัง Lyapunov ขนาดใหญ่


0

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

เนื่องจาก SHA512 ไม่ใช่ฟังก์ชันแฮชที่สมบูรณ์แบบจึงเป็นไปได้ทางคณิตศาสตร์ แต่ไม่น่าเป็นไปได้ที่ข้อมูลสองอย่างจะให้แฮช SHA512 เหมือนที่อธิบายไว้ในคำตอบของคำถามอื่น ๆเกี่ยวกับ Stack Overflow

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.