Score:0

การคูณเมทริกซ์ของการย่อยแฮชยอมรับการจัดการผลลัพธ์หรือไม่

ธง in

ใช้ลำดับของบัฟเฟอร์ไบต์ แฮชแต่ละอัน ตีความการย่อยแฮชเป็นเมทริกซ์สี่เหลี่ยมที่มีองค์ประกอบ int 8 บิตที่ไม่ได้ลงนาม และ (เมทริกซ์) คูณพวกมันตามลำดับ กำหนดเมทริกซ์สุดท้ายเป็น "แฮช" ของรายการองค์ประกอบ

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

(ฉันสำรวจคำจำกัดความนี้ในรายละเอียดเพิ่มเติมรวมถึงตัวอย่างโค้ดการทำงานในสมุดบันทึก python jupyter ที่ฉันเผยแพร่ชื่อ Merklist. คุณยังสามารถเล่นกับมันด้วยตัวคุณเอง Google Colabและเพิ่มคำอธิบายประกอบของสมมติฐานในโพสต์สำหรับความคิดเห็นทั่วไป ฉันสามารถยกรายละเอียดจากคำถามนี้หากจำเป็น)

คำถาม

  1. คำจำกัดความนี้ทนทานต่อการโจมตีแบบพรีอิมเมจหรือไม่ กล่าวอีกนัยหนึ่ง เป็นไปได้หรือไม่ที่จะเลือกลำดับขององค์ประกอบที่ส่งผลให้เกิดแฮชรายการเป้าหมายโดยพลการ

โปรดทราบว่าต้องมีองค์ประกอบอยู่ ดังนั้นการย่อยองค์ประกอบที่เข้าสู่ list-hash จึงมีความต้านทาน preimage ตามฟังก์ชันแฮชพื้นฐาน (ซึ่งเราสามารถสันนิษฐานได้ในขอบเขตของคำถามนี้) ดังนั้นคำถามจึงกลายเป็น: ลำดับหรือการมีอยู่ของการย่อยแฮชเหล่านี้สามารถใช้เพื่อแก้ไขเนื้อหาของเมทริกซ์สุดท้ายโดยพลการได้หรือไม่ ตัวอย่างเช่น คุณสามารถสร้างลำดับขององค์ประกอบที่สร้างรายการแฮชที่เป็นเมทริกซ์ศูนย์ได้หรือไม่ (การกดปุ่มเมทริกซ์เป็นศูนย์หมายถึงเกมจบสิ้นลง)

ฉันทำการค้นหาและไม่พบคำตอบสำหรับคำถามเหล่านี้ แม้ว่าฉันสงสัยว่าอาจเป็นเพราะฉันไม่รู้คำศัพท์ที่ถูกต้องมากพอๆ กับคำตอบที่ไม่มีอยู่จริง

poncho avatar
my flag
BTW: ฉันเพิ่งลอง; เมื่อฉันแฮชลำดับของพรีอิมเมจที่แตกต่างกันประมาณ 3,000 ภาพ (ไม่ได้เลือกโดยประสงค์ร้าย) เข้าด้วยกัน ผลลัพธ์ที่ได้คือเมทริกซ์ศูนย์ทั้งหมด
in flag
ดูเหมือนว่า "ไม่ได้ทำการบ้าน" ของฉันกำลังแสดงอยู่ ช่างน่าอาย เดาว่าฉันจะต้องลองอีกครั้งกับ $GF(256)$ และอาจทดสอบอย่างระมัดระวังกว่านี้อีกเล็กน้อย
poncho avatar
my flag
ฉันสงสัยว่าในขณะที่ $GF(256)$ จะดีกว่ามาก แม้ว่าคุณจะต้องแยกเมทริกซ์ที่ไม่สามารถกลับด้านได้ แต่ซีรีส์ที่ใหญ่พอจะยังคงลงเอยด้วย 0 ทั้งหมด - อาจต้องใช้องค์ประกอบเป็นล้านองค์ประกอบ แทนที่จะเป็นแค่ 3,000.
in flag
คุณคิดว่า? ฉันรู้สึกว่ารายการของผู้สมัครถูกจำกัดเฉพาะเมทริกซ์ที่กลับด้านได้เท่านั้นที่ควรแก้ไข ยกตัวอย่าง $X A B C C^{-1} B^{-1} A^{-1}$; สิ่งนี้ควรได้ผลลัพธ์เป็น $X$ อีกครั้งเสมอ ไม่ว่าลำดับ $ABC$ เริ่มต้นจะยาวเพียงใด เช่น ถ้าไม่มี เมทริกซ์อย่างน้อยหนึ่งเมทริกซ์ก็จะไม่สามารถกลับด้านได้ตามนิยาม ไม่? ฉันรู้สึกว่าปัญหาที่ใหญ่ที่สุดคือการหาเมทริกซ์ที่กลับด้านได้สำหรับแต่ละรายการที่เป็นไปได้ในเวลาที่เหมาะสม
in flag
@poncho ฉันเพิ่งลองกับ $GF(256)$ องค์ประกอบเมทริกซ์และมันก็ดูดีหลังจาก 10M รายการ ในไม่ช้าฉันจะโพสต์คำถามอื่นเช่นนี้ แต่ใช้สูตร $GF(256)$ แทน
poncho avatar
my flag
หากคุณใช้ $GF(256)$ เมทริกซ์สุ่มจะมีค่าเอกพจน์ประมาณ $1/256$; ความสงสัยของฉันว่าด้วยสายโซ่ยาว จำนวนเมทริกซ์เอกพจน์ที่ปรากฏแบบสุ่มจะค่อยๆ ลดอันดับลง จนนำไปสู่อันดับ 0 (เมทริกซ์ของ 0 ทั้งหมด) อย่างไรก็ตาม ฉันไม่มีโมเดลที่ดีว่าสิ่งนี้จะเกิดขึ้นเร็วแค่ไหน...
in flag
ใช่คุณพูดถูก. เพื่อให้แน่ใจว่าไม่มีการยอมรับเมทริกซ์เอกพจน์ ฉันใช้การสุ่มตัวอย่างการปฏิเสธแบบวนซ้ำเมื่อคำนวณ 'เมทริกซ์แฮช' ขององค์ประกอบตามที่คุณแนะนำก่อนหน้านี้
poncho avatar
my flag
เห็นได้ชัดว่า หากคุณจำกัดตัวเองให้อยู่ในองค์ประกอบที่กลับด้านได้ องค์ประกอบเหล่านั้นจะรวมกันเป็นกลุ่ม ดังนั้น คุณจะไม่มีทางเข้าสู่สถานะที่ถูกจำกัด (เช่น เมทริกซ์ของ all-0) อาจมีกลเม็ดเล็กๆ น้อยๆ ที่คุณสามารถใช้จากทฤษฎีกลุ่มเพื่อค้นหาการชนกัน แต่ก็ไม่ชัดเจนเลย...
in flag
@poncho ฉันเผยแพร่ร่างนี้โดยใช้ $GF(256)$ ในโพสต์ใหม่หากคุณสนใจ: https://blog.infogulch.com/2021/07/15/Merklist-GF.html มันใช้ Julia แทน ของหลามเพราะฉันอยากลองจูเลีย คุณสามารถเปิดเพื่อแก้ไขสดทางออนไลน์ได้ ฉันหมายถึงการเพิ่มภาคผนวกในโพสต์ต้นฉบับของฉันโดยสรุปปัญหาที่คุณพบ
Score:1
ธง my

ตัวอย่างเช่น คุณสามารถสร้างลำดับขององค์ประกอบที่สร้างรายการแฮชที่เป็นเมทริกซ์ศูนย์ได้หรือไม่

ใช่; วิธีที่ชัดเจนที่สุดคือการค้นหาบัฟเฟอร์ที่แฮชกับเมทริกซ์ทั้งหมด $n^2$ องค์ประกอบเมทริกซ์คู่; ทำซ้ำบัฟเฟอร์นั้น 8 ครั้ง และคุณจะได้ผลิตภัณฑ์ที่เป็นศูนย์ทั้งหมด

สิ่งนี้ใช้เวลาที่คาดหวัง $2^{n^2}$ ทำงานเพื่อหาบัฟเฟอร์ดังกล่าว สำหรับ $n=8$สิ่งนี้เป็นไปได้

มันอาจจะดีขึ้น; เมื่อดูที่คู่ของเมทริกซ์ที่เปลี่ยนกลับไม่ได้ ดูเหมือนว่าจะเป็นไปได้ด้วยการทำงานน้อยกว่า $2^{64}$คุณจะพบสองรายการที่มีผลิตภัณฑ์ที่มีองค์ประกอบทั้งหมดเท่ากัน (และในกรณีนี้จะใช้การสังเกตข้างต้น)

in flag
นั่นสมเหตุสมผลมากขอชี้แจงว่าเกิดจากการเลือกแหวน (256) ซึ่งมีตัวประกอบเป็น 2 ใช่หรือไม่ คุณคิดว่าสิ่งนี้สามารถปรับปรุงได้โดยการเลือกวงแหวนหลัก (เช่น 257) หรือไม่?
poncho avatar
my flag
@infogulch: หรือ $GF(2^8)$? มันจะช่วยได้ แต่ไม่ใช่ทั้งหมดที่มีนัยสำคัญ ยังคงมีความเป็นไปได้ที่ดี (ความน่าจะเป็นประมาณ 1/256 ต่อครั้ง) ในการค้นหาเมทริกซ์ที่ไม่สามารถเปลี่ยนกลับได้ มันดูเป็นไปได้ว่าคุณสามารถรวมพวกมันเข้าด้วยกันเพื่อค้นหาผลิตภัณฑ์ที่มีอันดับลดลง ส่งผลให้เมทริกซ์ทั้งหมดเป็น 0 อันที่จริง คำตอบเดิมของฉันจะเป็นแบบนี้ จนกระทั่งฉันรู้ว่าคำตอบ 'all lsbits 0' นั้นง่ายกว่ามากที่จะพิสูจน์ ถึงกระนั้น หากคุณใช้ฟิลด์เช่น $GF(256)$ หรือ $GF(257)$ และจงใจข้าม (โดยใช้การสุ่มตัวอย่างการปฏิเสธ) เมทริกซ์ที่ไม่สามารถเปลี่ยนกลับได้ นั่นอาจใช้ได้
in flag
ขอบคุณสำหรับตัวชี้ไปยังฟิลด์ Galois และเมทริกซ์กลับด้าน ฉันได้พิจารณาแล้วว่าเมทริกซ์ที่กลับด้านได้อาจเป็นสิ่งที่ดีที่จะมี แต่อาจเป็นข้อกำหนดสำหรับสิ่งนี้ในการทำงานและไม่ส่งผลให้เกิดกรณีที่เลวร้ายเช่นเมทริกซ์ศูนย์

โพสต์คำตอบ

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