เดอะ กระดาษ บนอัลกอริทึม "SNEIKEN และ SNEIKHA" AE และ HASH ตามลำดับ นำเสนอฟังก์ชันการเรียงสับเปลี่ยน 512 บิต "SNEIK512" ที่ไม่เหมือนการเรียงสับเปลี่ยนอื่นๆ (เช่น Keccak-f1600, gimli ฯลฯ) ใช้พารามิเตอร์โดเมน อัลกอริทึม AE และ HASH ใช้พารามิเตอร์นี้เพื่อสร้างการแยกโดเมน
อัลกอริทึม AE และ HASH อื่น ๆ ทั้งหมดที่ฉันได้เห็นซึ่งใช้ฟองน้ำทำการแยกโดเมนโดยแก้ไขบิตในฟองน้ำ CAPACITY ก่อนที่จะคำนวณการเปลี่ยนแปลง
SNEIK512 แก้ไขบิตสถานะด้วยโดเมน (ผ่าน XOR ไปยังสถานะ) ในแต่ละรอบการเปลี่ยนรูปเพื่อสร้างการเปลี่ยนรูปเฉพาะโดเมนอย่างมีประสิทธิภาพ ผลลัพธ์สุดท้ายดูเหมือนจะเหมือนกัน: การแยกโดเมนสำหรับ AE และ HASH
เอกสารนี้ไม่ได้ลงรายละเอียดว่าพวกเขาเลือกตัวแปรสถานะการเรียงสับเปลี่ยนใดที่จะแก้ไขอย่างไร (พวกเขาแก้ไข RATE) และไม่ได้อธิบายอะไรเกี่ยวกับผลกระทบด้านความปลอดภัยที่เป็นไปได้ของการแก้ไขนี้
หลังจากคิดเกี่ยวกับการออกแบบการเรียงสับเปลี่ยนนี้ ดูเหมือนว่านี่อาจเป็นวิธีทั่วไปในการเปลี่ยนการเรียงสับเปลี่ยนที่มีอยู่เพื่อรองรับการแยกโดเมน
คำถามของฉันคือ:
- สิ่งนี้สามารถนำไปใช้กับการเรียงสับเปลี่ยนที่มีอยู่ (เช่น : keccak-f1600 , gimli ฯลฯ) ในลักษณะทั่วไปโดยไม่ลด/ส่งผลกระทบต่อความปลอดภัยได้หรือไม่
- หากใช่ การแก้ไขนี้สามารถทำให้เป็นภาพรวมได้หรือไม่ (เช่น กฎง่ายๆ สำหรับใช้กับฟังก์ชันการเรียงสับเปลี่ยนใดๆ)
- มีข้อ จำกัด ทั่วไปหรือไม่ว่ารัฐสามารถแก้ไขได้มากน้อยเพียงใดก่อนที่จะมีผลกระทบที่ยอมรับไม่ได้ต่อความปลอดภัย (ถ้ามี)?