นี่เป็นภาคผนวกของคำตอบของ fgrieu มากกว่าคำตอบในตัวมันเอง แต่มี 3 สิ่งที่โดดเด่น สามารถ ทำให้ SHA3 มีความปลอดภัยมากกว่า SHA2 จากมุมมองด้านการออกแบบ
สิ่งแรกและชัดเจนที่สุดคือขนาดสถานะ SHA3 นั้นใหญ่กว่าอย่างมากที่ 1600 บิตมากกว่าแม้แต่ SHA512... ที่เพียง 512 บิต SHA3 เป็นฟังก์ชันสปันจ์ได้รับระดับความปลอดภัยจากขนาดสถานะนั้นที่ซ่อนไว้จากเอาต์พุตแฮชสุดท้าย และนั่นเป็นหนึ่งในเหตุผลที่ทำให้ไม่มีภูมิคุ้มกันต่อการโจมตีแบบขยายความยาว SHA-512 และ SHA-256 ส่งสัญญาณสถานะทั้งหมด ส่วนตระกูล SHA2 ที่เหลือจะตัดให้สั้นลงตามความยาวที่ต้องการ การมีสถานะทั้งหมดพร้อมใช้งานสามารถทำให้การโจมตีบางอย่างกับแฮชที่ใช้การเข้ารหัสแบบบล็อกเช่น SHA2 ง่ายขึ้น การตัดทอนที่ยากอาจนำไปสู่การโจมตีอื่นๆ
ประการที่สองอาจเปลี่ยนแปลงเมื่อเวลาผ่านไป บัฟเฟอร์ความปลอดภัย หรือจำนวนรอบทั้งหมดจะไม่ถูกทำลายโดยการโจมตีที่ดีที่สุดต่อฟังก์ชันแฮช สำหรับการชนกับ SHA2 อยู่ระหว่าง 56% (การชนกันจริงสำหรับ SHA-256) และ 30% (การชนเทียมสำหรับ SHA-256) แต่สูงถึง 79% สำหรับ SHA3 (ซ้อมชนกัน 5 รอบ)
และสิ่งสุดท้ายคือเพิ่มเติมเกี่ยวกับวิธีการนำแฮชไปใช้ในซอฟต์แวร์ SHA3 บนแพลตฟอร์ม 64 บิตต้องใช้โค้ดน้อยกว่าในการดำเนินการ ซึ่งหมายความว่าโค้ดน้อยลงที่อาจนำไปใช้อย่างไม่ปลอดภัย นอกจากนี้ยังถือว่า (โดยคนส่วนใหญ่ที่ฉันรู้จัก) ง่ายต่อการอ่านรหัส SHA3 และค่าคงที่แบบกลมสามารถสร้างขึ้นตามอัลกอริทึมที่รันไทม์
เหตุใดอัลกอริทึม SHA3 จึงถือว่าปลอดภัยกว่าอัลกอริทึม SHA2
การแข่งขัน SHA3 เกิดขึ้นเนื่องจากการโจมตีครั้งใหม่ต่อ MD5 และ SHA-1 ซึ่งสร้างภัยคุกคามที่รับรู้ว่าการวิเคราะห์ SHA2 ในอนาคตอาจนำไปสู่การโจมตีจริง สิ่งนี้ยังไม่เกิดขึ้น และ SHA2 ได้ยืนหยัดเพื่อต่อต้านการเข้ารหัส
การแข่งขัน SHA3 ก่อให้เกิดฟังก์ชันแฮชที่ยอดเยี่ยมมากมายที่มีความสามารถในการใช้งานมากกว่า SHA2 มีประสิทธิภาพฮาร์ดแวร์ที่ดีกว่า หรือมีอัตราส่วนประสิทธิภาพต่อความปลอดภัยที่ดีกว่า แต่นั่นไม่ได้หมายความว่า SHA3 เป็นฟังก์ชันแฮชที่ปลอดภัยกว่าโดยพฤตินัย .. แต่ก็ไม่ได้หมายความว่า SHA2 ก็เป็นเช่นกัน มีการออกแบบที่แตกต่างกันมาก และ SHA3 มีความสามารถมากกว่า และ SHA3 มีบัฟเฟอร์ความปลอดภัยที่สูงกว่า แต่ไม่เสียหาย (ยกเว้นการโจมตีแบบขยายความยาว แต่เป็นที่ทราบกันดีอยู่แล้ว)