Score:0

เราสามารถใช้ฟังก์ชันสมมาตร/แฮชเพื่อเซ็นข้อความแทนการเซ็นชื่อคีย์สาธารณะและส่วนตัวที่พิสูจน์ด้วยควอนตัมได้หรือไม่

ธง in

โดยทั่วไปการเซ็นชื่อคีย์สาธารณะและส่วนตัวจะทำงานดังนี้:

  1. ฉันประกาศรหัสสาธารณะของฉัน
  2. ฉันเข้ารหัสบางอย่างด้วยคีย์ส่วนตัวของฉัน
  3. หากผู้คนสามารถถอดรหัส (2) ด้วย (1) ได้ แสดงว่า (2) มาจากเจ้าของ (1)
  4. จากนั้นผู้คนสามารถเข้ารหัสสิ่งต่าง ๆ ให้ฉันโดยใช้รหัสสาธารณะใน (1)

การเซ็นชื่อสามารถทำได้โดยใช้อัลกอริธึมการเข้ารหัสแบบแฮชหรือแบบสมมาตรแต่การยืนยันเกิดขึ้นเมื่อบุคคลนั้นเผยแพร่ความลับแบบสุ่มเก่าของเขา

การเซ็นชื่อฟังก์ชันแฮช:

  1. ฉันเข้ารหัสข้อความมาตรฐานบางอย่าง เช่น 0โดยใช้คีย์ที่สร้างขึ้นแบบสุ่ม $k_r$. เช่น. $c_1 = enc(\text{`0`}, k_1)$.
  2. ฉันส่ง $c_1$ ให้กับผู้คนข้างๆ ข้อความปกติของฉัน
  3. ผู้รับจะไม่ทราบว่า (2) เป็นฉันหรือไม่ จนกว่าฉันจะส่งข้อความอื่นและส่งไปให้ $k_1$ ที่สามารถถอดรหัสได้ $c_1$ ที่จะนำ 0 กลับ. นอกจากนี้ฉันจะส่งใหม่ $c_2$.

ไม่แน่ใจว่าไก่กับไข่มีปัญหาหรือเปล่า เช่น. ในปาร์ตี้ลงนามที่ผู้คนแลกเปลี่ยนคีย์สาธารณะกับคีย์ส่วนตัว พวกเขาสามารถแลกเปลี่ยนคีย์ที่เข้ารหัสแทนได้ 0 ข้อความ (เช่น $c_1$ ในตัวอย่างนี้).

แต่สิ่งที่ไม่ชัดเจนสำหรับฉันคือสิ่งนั้นสามารถทำงานในกรณีอื่น ๆ ได้อย่างไร เช่น วิธีการชำระเงินหรือการทำธุรกรรม เช่น. ลองนึกดูว่าที่อยู่ Bitcoin เป็นลายเซ็นแบบแฮช/สมมาตรแบบเข้ารหัสหรือไม่ $c_1$, $c_2$ฯลฯ แทนคีย์สาธารณะ

ฉันเห็นว่าการเซ็นชื่อแบบแฮช/สมมาตรต้องการการดูแลเพิ่มเติม (เช่น มีสำเนาของไฟล์ล่าสุด $c_i$). แต่ถ้าการดูแลบ้านดังกล่าวได้รับการแก้ไข มีเหตุผลใดที่ไม่สามารถแทนที่คีย์สาธารณะและส่วนตัวสำหรับงานทั้งหมดได้

Score:3
ธง my

โดยทั่วไปการเซ็นชื่อคีย์สาธารณะและส่วนตัวจะทำงานในลักษณะนี้

ไม่มันไม่ สามารถดู RSA ได้ด้วยวิธีนี้ (หากคุณอยู่ที่ระดับ 10,000 ฟุต) อย่างไรก็ตาม a) ไม่สนับสนุนการใช้คีย์เดียวกันในการเซ็นชื่อและถอดรหัส และ b) RSA เป็นอัลกอริทึมลายเซ็นเพียงตัวเดียวที่สามารถอธิบายด้วยวิธีนี้ได้

อย่างไรก็ตาม นั่นไม่ได้ตอบคำถามที่แท้จริงของคุณ:

การเซ็นชื่อฟังก์ชันแฮช

คุณอธิบายไม่ถูกต้อง ประการหนึ่ง ไม่มีอะไรผูกข้อความกับค่าคีย์ที่เปิดเผย นั่นคือ ใครบางคนสามารถแก้ไขข้อความระหว่างการทำงานได้ และค่าคีย์จะยังคงตรวจสอบอยู่

สิ่งที่ Lamport เข้าใจกันโดยทั่วไปคือ:

  • เราเลือก $k$ แฮชพรีอิมเมจ $c_1, c_2, ..., c_k$และแฮชแต่ละรายการ และเผยแพร่ผลลัพธ์ของแต่ละแฮช $H(c_1), H(c_2), ..., H(c_k)$ เป็นกุญแจสาธารณะ

  • เมื่อเราได้รับข้อความที่จะลงนาม เราจะแปลงข้อความเป็นชุดของค่าต่างๆ $b_1, b_2, ..., b_n$ (แต่ละค่าระหว่าง $1$ และ $k$) - การแปลงนี้ทำในลักษณะที่เป็นการยากที่จะค้นหาข้อความที่สองที่แปลงเป็นชุดบิตที่ประกอบด้วยค่าภายในเท่านั้น $b_1, b_2, ..., b_n$).

  • ลายเซ็นประกอบด้วยภาพที่เปิดเผยล่วงหน้า $c_{b_1}, ค_{b_2}, ..., ค_{b_n}$

  • ผู้ตรวจสอบสามารถรับข้อความและแปลงเป็นชุดค่าต่างๆ $b_1, b_2, ..., b_n$และตรวจสอบว่าแต่ละภาพล่วงหน้าในลายเซ็นแฮชเป็นค่าภายในรหัสสาธารณะ

ควรจะเห็นได้ง่ายว่าการปลอมลายเซ็นจะต้องมี a) การค้นหาข้อความที่แปลงเป็นค่าที่เปิดเผยทั้งหมดในลายเซ็นที่ดี (ซึ่งเราคิดว่าเป็นเรื่องยาก) หรือ b) การค้นหาภาพก่อนหน้าสำหรับค่าที่ไม่ใช่ เปิดเผย (ซึ่งเราก็คิดว่ามันยากเหมือนกัน)

ที่กล่าวว่าคำถามของคุณคือ:

ฉันเห็นว่าการเซ็นชื่อแบบแฮช/สมมาตรจำเป็นต้องมีการดูแลทำความสะอาดเพิ่มเติม

Lamport มีประโยชน์ก็ต่อเมื่อคุณต้องการเซ็นชื่อข้อความเดียวด้วยรหัสสาธารณะ เมื่อคุณดูที่ blockchain (โดยที่เราถือว่าผู้ตรวจสอบเห็นลายเซ็นทั้งหมด และเราสามารถรวมรหัสสาธารณะถัดไปในลายเซ็นได้ (และแน่นอนว่าข้อความที่ลงนามนั้นรวมถึงรหัสสาธารณะถัดไปด้วย) สิ่งนี้สามารถทำงานได้ - ตามที่คุณชี้ให้เห็น เราจะต้องจำรหัสสาธารณะถัดไป (ซึ่งจะเปลี่ยนไปสำหรับทุกลายเซ็น) แต่ก็สามารถทำได้

ในบริบทอื่น ๆ สิ่งนี้ใช้ไม่ได้ อย่างไรก็ตาม มีการปรับเปลี่ยนลายเซ็นตามแฮชจำนวนหนึ่งซึ่งไม่มีข้อจำกัดเหล่านี้:

  • ลายเซ็นตามสถานะแฮช (เช่น ลส และ เอ็กซ์เอ็มเอส); การทำงานเหล่านี้เหมือนกับ Lamport ยกเว้นว่าคีย์สาธารณะสามารถลงนามในข้อความต่างๆ จำนวนมากได้ (และเราสามารถทำให้ 'จำนวนมาก' นี้มีขนาดใหญ่กว่าจำนวนข้อความที่เราเคยเห็น) พวกเขามีข้อกำหนดให้ผู้ลงนามติดตามสถานะ (ซึ่งเปลี่ยนแปลงตามลายเซ็นทุกครั้ง)

  • ลายเซ็นตามแฮชไร้สัญชาติ (เช่น สฟิงซ์+); สิ่งนี้ทำให้ไม่จำเป็นต้องติดตามสถานะใด ๆ ในขณะที่เซ็นชื่อ และทำหน้าที่เหมือนกับอัลกอริทึมลายเซ็นอื่น ๆ

และถ้าคุณคิดว่าลายเซ็น RSA และแฮชเป็นตัวเลือกเดียวในตาราง ก็ไม่ใช่ นอกจากนี้ยังมีโครงร่างตามโครงตาข่ายต่างๆ โครงร่างหลายตัวแปร โครงร่างพื้นฐานที่ไม่มีการพิสูจน์ความรู้ (Picnic) - มีตัวเลือกมากมายให้เลือก

caveman avatar
in flag
ขอบคุณมาก. ไม่แน่ใจว่าเกี่ยวข้องกันหรือไม่ แต่มีความคิดใดว่าทำไมเราไม่มีสกุลเงินดิจิตอลเข้ารหัสดังกล่าวที่กำจัดการลงชื่อเข้าใช้แบบสาธารณะ-ส่วนตัว/อสมมาตรโดยสมบูรณ์เพื่อสนับสนุนทางเลือกที่ใช้แฮชดังกล่าว
poncho avatar
my flag
@มนุษย์ถ้ำ: ฉันไม่เคยได้ยินเป็นพิเศษ อย่างไรก็ตาม คุณจะประหลาดใจที่ฉันไม่รู้เกี่ยวกับสกุลเงินดิจิตอลมากแค่ไหน...
my flag
Jon
@caveman Capitalisk https://capitalisk.com/ ใช้ลายเซ็น Lamport OTS กับ Merkle Signature Trees เพื่ออนุญาตลายเซ็นหลายรายการ

โพสต์คำตอบ

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