ฟังก์ชันแฮชเป็นตัวเลือกสำหรับออราเคิลแบบสุ่ม SHA-3 และ BLAKE2 นั้นเกือบจะเป็นหนึ่งเดียวกัน แต่ไม่ใช่ SHA-512 เนื่องจากมีการโจมตีแบบขยายความยาวที่เราไม่คาดคิดจาก RO
ฟังก์ชันแฮชที่แตกต่างกันสร้างเอาต์พุตที่แตกต่างกันอยู่แล้ว แม้แต่ SHA-512 และเวอร์ชันที่ถูกตัดออก SHA-512/256 เนื่องจากค่าเริ่มต้นต่างกัน
ที่จริงแล้ว คุณไม่จำเป็นต้องมีฟังก์ชันแฮชสองฟังก์ชันเพื่อให้ได้สิ่งที่คุณต้องการคุณสามารถใช้หนึ่งฟังก์ชันแฮชเพื่อแยกโดเมนด้วยคำนำหน้าเริ่มต้น ใช้ BLAKE2 หรือ SHAKE256
Hashing to Elliptic Curves, ietf ร่าง ให้คำจำกัดความที่ดีของการแยกโดเมน
โปรโตคอลการเข้ารหัสที่ใช้ oracles แบบสุ่มมักจะได้รับการวิเคราะห์
ภายใต้สมมติฐานว่า oracles สุ่มตอบเฉพาะแบบสอบถามที่สร้างขึ้น
โดยโปรโตคอลนั้น ในทางปฏิบัติ สมมติฐานนี้ไม่ได้ถือเป็นสอง
โปรโตคอลสอบถาม oracle สุ่มเดียวกัน พิจารณาอย่างเป็นรูปธรรม
โปรโตคอล $P1$ และ $P2$ แบบสอบถามนั้น oracle สุ่ม $R$: ถ้า $P1$ และ $P2$
ทั้งแบบสอบถาม $R$ ในมูลค่าที่เท่ากัน $x$การวิเคราะห์ความปลอดภัยของหนึ่งหรือ
โปรโตคอลทั้งสองอาจใช้ไม่ได้
วิธีการทั่วไปในการแก้ไขปัญหานี้เรียกว่าโดเมน
การแยกซึ่งช่วยให้ oracle สุ่มหนึ่งรายการสามารถจำลองหลายรายการได้
ออราเคิลอิสระ สิ่งนี้มีผลโดยตรวจสอบให้แน่ใจว่าแต่ละรายการจำลอง
oracle มองเห็นข้อความค้นหาที่แตกต่างจากข้อความค้นหาอื่นๆ ทั้งหมด
ออราเคิลจำลอง ตัวอย่างเช่น เพื่อจำลองออราเคิลสองรายการ $R1$ และ $R2$
ให้ออราเคิลเดียว $R$หนึ่งอาจกำหนด
$$R1(x) := R(\text{"R1"} \mathbin\| x)$$ $$R2(x) :=
R(\text{"R2"} \mathbin\| x)$$
ในตัวอย่างนี้ $\text{"R1"}$ และ $\text{"R2"}$ เรียกว่าโดเมน
แท็กแยก; พวกเขามั่นใจว่าการสอบถาม $R1$ และ $R2$ ไม่ได้
ผลลัพธ์ในการค้นหาที่เหมือนกันกับ $R$. ดังนั้นจึงปลอดภัยในการรักษา $R1$ และ
$R2$ ในฐานะนักพยากรณ์อิสระ
- กุญแจสาธารณะ 2 อันที่เป็นผลลัพธ์สามารถเชื่อมโยงกับทั้ง 2 อันที่เป็นของ Alice ได้หรือไม่?
ไม่ ตราบเท่าที่ฟังก์ชันแฮชมีความปลอดภัยเหมือน SHA3 เบลค2/3 เขย่า ใช้;
- $d_A = \operatorname{BLAKE2}(\texttt{คีย์ A}\mathbin\|s)$
- $d_{A'} = \operatorname{BLAKE2}(\texttt{คีย์ A ไพรม์}\mathbin\|s)$
- สามารถใช้พับลิกคีย์ที่เป็นผลลัพธ์สองคีย์เพื่อดึงคีย์ลับที่เป็นผลลัพธ์ออกมาได้หรือไม่
Curve25519 เป็นเส้นโค้งที่ปลอดภัยเมื่อเทียบกับ Discrete Log (DLog) แบบคลาสสิก มีการรักษาความปลอดภัยประมาณ 126 บิต DLog แบบคลาสสิก.
โปรดทราบว่าด้วย คอมพิวเตอร์ควอนตัมเข้ารหัส (CQC) สร้างขึ้นสำหรับอัลกอริธึมการระดมทุนตามระยะเวลาของ Shor ลอการิทึมไม่ต่อเนื่องแบบโค้งวงรีจะไม่ปลอดภัย อย่างไรก็ตาม ฟังก์ชันแฮชที่มีขนาดมากกว่า 384 เอาต์พุตจะปลอดภัย โกรเวอร์ส หรือ บราสซาร์ดและคณะวิธีการของ
ดังนั้น ความลับจึงปลอดภัยสำหรับคลาสสิกและ CQC อย่างไรก็ตาม คีย์ส่วนตัวจะไม่ปลอดภัยจาก CQC
โปรดทราบว่าคุณยังได้รับประโยชน์จาก แฝดกระจาย เพื่อเชื่อมโยงคีย์สาธารณะสองคีย์เพื่อให้บรรลุความเป็นนิรนาม และหลังจากนั้นคุณสามารถพิสูจน์ได้ว่าคีย์เหล่านั้นเป็นของคุณโดยไม่ต้องเปิดเผยความลับของคุณ