Score:1

พิสูจน์ว่ามีคนเข้าถึงคีย์ส่วนตัวซึ่งมีคีย์สาธารณะเป็นส่วนหนึ่งของกลุ่มที่รู้จัก

ธง np

ฉันเป็นมือใหม่ crypto และหวังว่าจะได้รับการชี้นำไปในทิศทางที่ถูกต้อง ฉันเคยเห็นคำถามที่เกี่ยวข้องเช่น นี้ แต่ไม่มีใครที่ตอบสนองความต้องการของฉัน

สมมติว่า Jane's Forum เป็นชุมชนขนาดใหญ่ และสมาชิกทุกคนใน Jane's Forum จะมีคู่กุญแจสาธารณะ/ส่วนตัว รหัสสาธารณะเชื่อมโยงกับโปรไฟล์ของพวกเขาและทุกคนสามารถมองเห็นได้

Bob's Backpack Shop ยินดีที่จะส่งกระเป๋าเป้ฟรีให้กับสมาชิก Jane's Forum ทุกคน แต่สมาชิกของ Jane's Forum มีความเป็นส่วนตัวสูง และไม่ต้องการให้ใครแม้แต่ Bob รู้ว่าคนใดที่สั่งกระเป๋าเป้จาก Bob

เป็นไปได้ไหมที่สมาชิกของ Jane's Forum จะพิสูจน์ให้ Bob เห็นว่าพวกเขาได้ลงทะเบียนกับฟอรัมและมีสิทธิ์ได้รับกระเป๋าเป้ฟรีโดยไม่ต้องเปิดเผย ที่ พวกเขาเป็นสมาชิก?

ข้อกำหนดสองประการที่ทำให้สิ่งนี้ยากขึ้น:

  1. สมาชิกใหม่จะยังคงเข้าร่วมฟอรัมต่อไป และสมาชิกใหม่ควรมีสิทธิ์ได้รับกระเป๋าเป้
  2. Bob ต้องสามารถตรวจสอบได้ว่าคำสั่งซื้อแต่ละรายการมาจากสมาชิกฟอรัมที่ไม่ซ้ำกัน (สมาชิกแต่ละคนมีสิทธิ์ได้รับกระเป๋าเป้ฟรีหนึ่งใบเท่านั้น)

เป็นโบนัส คงจะดีมากถ้าบ๊อบสามารถระบุได้ว่าสมาชิกคนใดที่ถูกไล่ออกจากฟอรัมของเจน เช่น Bob อาจให้บริการ VPN แทนการให้บริการแบบ Backpack และเขาต้องการยุติบัญชีของผู้ใช้ที่ถูกไล่ออกจากฟอรัม

us flag
สิ่งนี้ตอบคำถามของคุณบางส่วนหรือไม่ https://crypto.stackexchange.com/questions/92178/zero-knowledge-rsa-public-key/92203#92203
Score:1
ธง us

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

สำหรับส่วนการพิสูจน์จริง มีสองตัวเลือกที่ฉันเห็น: การใช้การพิสูจน์ความรู้เป็นศูนย์ด้วยแฮชและการพิสูจน์การเป็นสมาชิกกลุ่ม หรือการใช้โปรโตคอลการคำนวณสองฝ่ายด้วย PRF และเพรดิเคตการเป็นสมาชิกกลุ่ม หากไม่มีส่วนการใช้นามแฝง นี่จะเป็นกรณีมาตรฐานสำหรับลายเซ็นแบบริงโทนหรือลายเซ็นแบบกลุ่ม ซึ่งพิสูจน์ว่าคุณสามารถสร้างลายเซ็นที่ถูกต้องภายใต้คีย์สาธารณะหนึ่งคีย์จากกลุ่มได้ อีกทางเลือกหนึ่งหากคุณสามารถโน้มน้าวให้การดำเนินการฟอรัมทำงานร่วมกันได้คือการใช้ข้อมูลประจำตัวที่ไม่ระบุชื่อ / โทเค็นที่ปิดตาเช่น ความเป็นส่วนตัวผ่าน.

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

สมมติว่าคุณมีโปรโตคอลการพิสูจน์ความรู้ทั่วไปเป็นศูนย์ คุณต้องการพิสูจน์ว่าผู้ใช้รู้จักรหัสส่วนตัวของพวกเขา $x$ ดังนั้น $H=\operatorname{Hash}(x)\land \exists i: \operatorname{is-public-key-of}(\text{pk}_i,x)$ ถือที่ไหน $\{\text{pk}_i\}$ คือชุดของคีย์สาธารณะของผู้ใช้ฟอรัมปัจจุบันและการสร้างแบบจำลองฟังก์ชันแฮชเป็นออราเคิลแบบสุ่มเพื่อไม่ให้เป็นหนึ่งในฟังก์ชันแฮช "ใบ้" ที่ทำให้อินพุตรั่วไหล การกำหนดทางเลือกของข้อความข้างต้นที่จะพิสูจน์จะเป็น $H=\operatorname{Hash}(x)\land (\bigvee_i \operatorname{is-public-key-of}(\text{pk}_i,x))$ เพื่อเน้น "หรือ" - ลักษณะของส่วนที่สอง กระดาษแผ่นนี้ ดูเหมือนว่าวิธีนี้จะช่วยได้

อีกทางเลือกหนึ่ง ควรทำเช่นเดียวกันภายใต้สมมติฐานที่แตกต่างกันโดยใช้การคำนวณหลายฝ่ายที่ปลอดภัย โดยเฉพาะอย่างยิ่ง คุณจะต้องกำหนดฟังก์ชันที่รับคีย์ส่วนตัวจากผู้ใช้ฟอรัม $x$จากผู้ให้บริการคีย์สุ่มแบบสมมาตรคงที่ $k$ จากนั้นเมื่อป้อนข้อมูลสาธารณะรายการปัจจุบันของคีย์สาธารณะของฟอรัม ฟังก์ชันการทำงานจะออกมาเล็กน้อย $ข$ แสดงว่า $\bigvee_i \operatorname{is-public-key-of}(\text{pk}_i,x)$ ถือและสตริงสุ่ม $I=\ชื่อผู้ประกอบการ{PRF}(k,x)$ เป็นตัวระบุผู้ใช้ฟอรัม แม้ว่าฉันคิดว่าการดำเนินการย่อยทั้งสองนี้มีแนวโน้มที่จะมีโปรโตคอลเฉพาะที่มีประสิทธิภาพแยกจากกัน แต่น่าเสียดายที่ฉันไม่มี คิด โดยทั่วไปมีวิธีที่ดีในการ "ผูก" อินพุตกับโปรโตคอลเหล่านี้เข้าด้วยกัน เพื่อให้ผู้ใช้ไม่ใช้อินพุตที่แตกต่างกันสำหรับโปรโตคอลย่อยหนึ่งรายการ สำหรับสิ่งนี้ เฟรมเวิร์ก 2PC แบบผสมโปรโตคอลน่าจะเป็นตัวเลือกที่ดีที่สุด เช่น เอบี, การเคลื่อนไหว, หรือ ABY 2.0 เนื่องจากอนุญาตให้คุณทำการตรวจสอบความสัมพันธ์ของคีย์ส่วนตัวและสาธารณะด้วยการดำเนินการทางคณิตศาสตร์และการตรวจสอบแฮช / การประเมิน PRF ด้วยไบนารี

np flag
ขอขอบคุณ! ฉันได้เริ่มมองหาทั้งสองแนวทางที่คุณกล่าวถึงแล้ว และในขณะที่ฉันยังไม่มีบริบทเพียงพอที่จะประเมินการแลกเปลี่ยนโดยสิ้นเชิง สิ่งนี้ทำให้ฉันมีสถานที่ที่ดีในการทำวิจัยต่อไปและ (สำคัญ) เป็นการยืนยันว่าเป็นไปได้

โพสต์คำตอบ

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