Score:2

การคำนวณพารามิเตอร์ WOTS ของฉันถูกต้องหรือไม่

ธง ca

ฉันกำลังอ่านกระดาษ WOTS+ แต่ฉันมีปัญหากับสัญลักษณ์และโดยเฉพาะหน่วยที่เกี่ยวข้อง ตัวอย่างเช่น ภายใต้การตีความของฉัน พารามิเตอร์ n=11, ว=16 และ ม=256 ส่งผลให้ระดับความปลอดภัยควอนตัมอยู่ที่ประมาณ 81 บิตด้วย a 992 ไบต์ ความยาวของลายเซ็น แต่นั่นดูไม่ถูกต้อง

เท่าที่ทราบ ฉันได้สร้างสคริปต์ต่อไปนี้เพื่อส่งออกรหัสสาธารณะและความยาวของลายเซ็น และระดับความปลอดภัยสำหรับทั้ง WOTS+ และ WOTS

วอทส์+

นำเข้าคณิตศาสตร์

n = 16 # พารามิเตอร์ความปลอดภัย หน่วยเป็นไบต์
w = 16 # w พารามิเตอร์
m = 256 # ความยาวข้อความ หน่วยเป็นบิต

l1 = math.ceil(m / math.log2(w))
l2 = math.floor(math.log2(l1*(w-1))/math.log2(w))+1
ล. = ล.1 + ล.2

#สูตรจากกระดาษ
pub_len = (l + w - 1) * n + 8 # ความยาวคีย์สาธารณะเป็นไบต์
sig_len = l * n # ความยาวลายเซ็นเป็นไบต์
sec_lvl = n*8 - math.log2(w*w*l + w) # ระดับความปลอดภัยควอนตัมเป็นบิต

พิมพ์ ("ว็อต +")
พิมพ์ ("pub_len: " + str (pub_len))
พิมพ์ ("sig_len: " + str (sig_len))
พิมพ์ ("sec_lvl: " + str (sec_lvl))

วทส

นำเข้าคณิตศาสตร์

n = 256 # พารามิเตอร์ความปลอดภัยเป็นบิต
w = 16 # บิตต่อหน่วยการลงนาม
m = 256 # ความยาวข้อความ หน่วยเป็นบิต

ล.1 = n / w
l2 = math.ceil((math.floor(math.log2(l1))+1+w)/w)
ล. = ล.1 + ล.2

#น่าจะผิด
pub_len = m * l1 / 8 # ความยาวคีย์สาธารณะเป็นไบต์
sig_len = m * l / 8 # ความยาวลายเซ็นเป็นไบต์
sec_lvl = m / 3 # ระดับความปลอดภัยควอนตัมเป็นบิต

พิมพ์ ("ว็อต")
พิมพ์ ("pub_len: " + str (pub_len))
พิมพ์ ("sig_len: " + str (sig_len))
พิมพ์ ("sec_lvl: " + str (sec_lvl))

การคำนวณของฉันถูกต้องหรือไม่?

poncho avatar
my flag
คุณหมายถึงอะไรโดย "80 bits of postquantum security"? คุณหมายถึงการดำเนินการ $2^{80}$ ในคอมพิวเตอร์ควอนตัมใช่ไหม ถ้าเป็นเช่นนั้น คุณต้องคำนึงถึง Grover's ซึ่งค่อนข้างยากที่จะหาจำนวน - แอปพลิเคชันที่ไร้เดียงสาจะถือว่าแฮช 160 บิต; อย่างไรก็ตาม Grover's ต้องการ $2^{80}$ การคำนวณแฮชแบบต่อเนื่องเพื่อค้นหาพรีอิมเมจขนาด 160 บิตด้วยการคำนวณ $2^{80}$ ซึ่งไม่สมจริง...
ca flag
@poncho ใช่ ฉันหมายถึงการดำเนินการ 2^80 บนคอมพิวเตอร์ควอนตัม พูดตามตรง ฉันแค่ต้องการให้แน่ใจว่าฉันเข้าใจสูตรในกระดาษ ฉันได้อัปเดตคำถามเพื่อถามโดยตรงมากขึ้น
Score:0
ธง in

การคำนวณ WOTS+ นั้นถูกต้องอย่างมาก เฉพาะระดับความปลอดภัยเท่านั้นที่เป็น "เพียงแค่" ความปลอดภัยต่อศัตรูทั่วไป สมการที่เหมาะสมสำหรับฝ่ายตรงข้ามควอนตัมควรเป็น

sec_lvl = n*8/2 - math.log2(w*w*l + w) # ระดับความปลอดภัยควอนตัมเป็นบิต   

เนื่องจากควอนตัมคอมพิวเตอร์สามารถค้นหาพรีอิมเมจและพรีอิมเมจที่สองได้ด้วย $2^{8น/2}$ แบบสอบถาม

ในการคำนวณ WOTS

pub_len = m * l1 / 8 # ความยาวคีย์สาธารณะเป็นไบต์ 
sig_len = m * l / 8 # ความยาวลายเซ็นเป็นไบต์

ควรจะเป็น

pub_len = n * l # ความยาวคีย์สาธารณะเป็นไบต์ 
sig_len = n * l # ความยาวลายเซ็นเป็นไบต์

(ลายเซ็น ความลับ และคีย์สาธารณะประกอบด้วยค่าสาย l ซึ่งมี n บิต)

มิฉะนั้นสิ่งต่าง ๆ ดูเหมือนจะถูกต้อง

โพสต์คำตอบ

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