ผู้เขียนอ้างว่าโพสต์แผนควอนตัมซิกเนเจอร์ทั้งหมดเหล่านี้สามารถต้านทานการโจมตีช่องทางด้านข้างได้โดยธรรมชาติ คำถามของฉันคือทำไมหรืออย่างไร
มาทำลายสิ่งนี้กันเถอะ:
- ในแง่ของเวลาและแชนเนลด้านแคช การใช้งานที่ชัดเจนนั้นค่อนข้างดี (ยกเว้น: ชุดพารามิเตอร์ตาม Haraka ของ Sphincs+)
นี่คือเหตุผล: การใช้งานตามธรรมชาติของฟังก์ชัน SHA-256 และ SHAKE อาศัยคำสั่งที่เป็นเวลาคงที่ในโปรเซสเซอร์สมัยใหม่ (การดำเนินการเชิงตรรกะ การเพิ่มโมดูลาร์ การเลื่อน/หมุนตามจำนวนคงที่) และไม่ได้ทำให้การเข้าถึงหน่วยความจำหรือข้อมูลขึ้นกับข้อมูล - สาขาที่ขึ้นต่อกัน (ยกเว้นสาขาที่ขึ้นอยู่กับความยาวของข้อความ - ข้อความความยาวตัวแปรเดียวที่เกี่ยวข้องคือแฮชข้อความเริ่มต้น และเราไม่ถือว่าข้อความที่ถูกเซ็นเป็นความลับ) นอกจากนี้ การดำเนินการตามธรรมชาติของโครงสร้างพื้นฐาน HBS (เช่นการผูกมัด Winternitz หรือการคำนวณแบบต้นไม้ Merkle) ยังไม่มีการเข้าถึงหน่วยความจำแบบลับหรือสาขา (มันเกี่ยวข้องกับสาขาแบบมีเงื่อนไข อย่างไรก็ตาม เงื่อนไขเหล่านั้นจะเป็นฟังก์ชันของข้อความหรือค่าที่เราใส่ลงในลายเซ็นเสมอ นั่นคือ ค่าต่างๆ ที่ศัตรูจะรู้อยู่ดี)
ดังนั้น ช่องทางด้านเวลาและแคชจะไม่ให้ค่าใด ๆ ที่ผู้โจมตีไม่ทราบอยู่แล้ว (แน่นอนว่าการนำไปใช้นั้นไม่ได้จงใจพยายามรั่วไหล)
- ในแง่ของพลังหรือการโจมตีช่องทางด้านข้างสไตล์ EMF เรื่องราวยังไม่ชัดเจนนัก
ค่าภายในส่วนใหญ่ (เช่น โหนดภายในของ Merkle tree) ไม่ได้เป็นความลับ นอกจากนี้ การโจมตีด้วยพลังงาน/EMF (สมมติว่าลายเซ็นไม่แข็งแกร่งจนการติดตามเพียงครั้งเดียวก็เพียงพอแล้ว - สำหรับการดำเนินการแบบสมมาตรที่เรากำลังพูดถึง โดยทั่วไปแล้วจะไม่เป็นเช่นนั้น) ต้องใช้ค่าลับเดียวกันในหลายๆ ค่าที่แตกต่างกัน บริบท; ดังนั้นค่าก่อนหน้านี้ในเครือข่าย Winternitz จึงยากต่อการโจมตี (เนื่องจากค่าเหล่านั้นถูกใช้เพียงครั้งเดียว)
สิ่งที่อาจถูกโจมตีคือฟังก์ชันที่ใช้สร้างค่าเริ่มต้นสำหรับโซ่ Winternitz (และสำหรับ Sphincs+ ใบ FORS) สิ่งที่มักจะทำในทั้งสาม (และได้รับคำสั่งอย่างเป็นทางการจาก Sphincs+) คือการใช้เมล็ดพันธุ์แบบคงที่เดียวกัน (โดยมีพารามิเตอร์เพิ่มเติมที่แตกต่างกัน) เพื่อสร้างค่าเหล่านี้โดยตรง นั่นคือสิ่งที่การโจมตี DPA ต้องการ (และแน่นอน เมื่อ ผู้โจมตีเอาคืนได้ก็จบเกม) เอกสารรอบ 3 Sphincs+ แนะนำว่าคุณสามารถใช้ฟังก์ชันแฮชที่ทนต่อ DPA ได้ในกรณีนั้น
ตอนนี้ เป็นไปได้ที่จะทำตรรกะการสร้างค่าเริ่มต้นใหม่ เพื่อไม่ให้ถูกโจมตีในลักษณะนี้ (เช่น โดยการสร้างค่าเหล่านั้นเป็น leaf จากต้นไม้ไบนารีขนาดใหญ่ เพื่อให้ค่าโหนดภายในใดๆ ถูกใช้ในสองบริบทเท่านั้น) . อย่างไรก็ตาม ยังไม่มีการแนะนำวิธีการดังกล่าวอย่างเป็นทางการสำหรับทั้งสามวิธี