Score:3

วิธีการค้นหาการชนกัน

ธง tr

"ความขัดแย้งวันเกิด" วางขอบเขตบนของการต่อต้านการชนกัน: ถ้าฟังก์ชันแฮชสร้าง $N$ บิตของเอาต์พุต ผู้โจมตีที่ทำการคำนวณเท่านั้น $2^{N/2}$ (...) การดำเนินการแฮชในอินพุตสุ่มมีแนวโน้มที่จะพบเอาต์พุตที่ตรงกันสองรายการ หากมี วิธีการที่ง่ายกว่า กว่านี้ การโจมตีด้วยกำลังดุร้ายโดยทั่วไปจะถือว่าเป็นข้อบกพร่องในฟังก์ชันแฮช

เป็นไปได้ทางคณิตศาสตร์หรือไม่ที่จะมีฟังก์ชันแฮชที่ไม่มีวิธีที่ง่ายกว่านี้

kelalaka avatar
in flag
ใกล้เคียงที่สุดคือ Universal hash Functions...
poncho avatar
my flag
@kelalaka: จริง ๆ แล้วฟังก์ชั่นแฮชสากลไม่ใช่ฟังก์ชั่นแฮช :-) เหตุผล: 'ฟังก์ชันแฮช' (อย่างน้อยเมื่อเราพูดถึงมันในการเข้ารหัส) ไม่มีคีย์ ฟังก์ชันแฮชสากลมีคีย์ (ซึ่งจำเป็นต้องเป็นความลับเพื่อรักษาคุณสมบัติของมัน)
kelalaka avatar
in flag
@poncho `ฟังก์ชันแฮชที่ไม่ได้คีย์ ฟังก์ชันแฮชการเข้ารหัสที่ใช้ในทางปฏิบัติ โดยทั่วไปจะไม่ถูกคีย์และมีความยาวเอาต์พุตคงที่ (โดยการเปรียบเทียบกับ block ciphers) หมายความว่าฟังก์ชันแฮชเป็นเพียงฟังก์ชันที่กำหนดตายตัว' จาก Lindell&Katz แน่นอน เราสร้างความแตกต่างด้วยการพูดว่าคีย์แฮช ที่นี่ฉันอ่านแฮชเป็นฟังก์ชันแฮชการเข้ารหัสเนื่องจากเราอยู่ใน Crypto.SE
poncho avatar
my flag
@kelalaka: ฉันยังไม่มั่นใจว่าฟังก์ชันแฮชสากลนั้นตรงตามเกณฑ์ที่จะเป็นฟังก์ชันแฮชเข้ารหัส แม้ว่าจะมีคีย์ลับ ตราบใดที่คุณมี oracle เข้าถึงฟังก์ชันแฮชสากล มันเป็นเรื่องง่าย (อย่างน้อยก็ด้วยฟังก์ชันแฮชสากลที่ฉันรู้จัก) เพื่อค้นหาการชนกัน (หรือแม้แต่ค้นหาคีย์ลับ) ด้วย ข้อความค้นหาของออราเคิลจำนวนหนึ่ง - ซึ่งน้อยกว่าที่เราคาดหวังจากฟังก์ชันแฮชการเข้ารหัส
kelalaka avatar
in flag
@poncho จุดดี ใช่ การรับประกันของ UHF ขึ้นอยู่กับคีย์สุ่มใหม่ต่อแฮชหากเราตั้งค่าการเข้าถึงของ oracle พวกเขาจะถึงวาระ นี่คือสิ่งที่เกิดขึ้นใน GCM ใช่ไหม
poncho avatar
my flag
@kelalaka: ไม่มาก: ใน GCM คีย์สากลคือฟังก์ชันของคีย์ GCM (ดังนั้นคีย์แฮชสากลเดียวกันจึงใช้สำหรับข้อความทั้งหมดที่เข้ารหัสด้วยคีย์ GCM เดียวกัน) - อย่างไรก็ตาม เอาต์พุตแฮชสากลถูกปิดบังโดย (ฟังก์ชันของ) nonce - นั่นเป็นสาเหตุที่การทำซ้ำ nonces เป็นอันตรายถึงชีวิต (เพราะนั่นทำให้เราเปิดโปงเอาต์พุตของฟังก์ชันสากลได้อย่างมีประสิทธิภาพ)
kelalaka avatar
in flag
@poncho ใช่นั่นคือความแม่นยำ [Ferguson และ Joux ตั้งข้อสังเกต](https://csrc.nist.gov/csrc/media/projects/block-cipher-techniques/documents/bcm/comments/800-38-series-drafts/gcm/joux_comments.pdf) อย่างไรก็ตาม การแก้ไขที่แนะนำยังคงมีอยู่
Fleeep avatar
br flag
คำถามถามถึงฟังก์ชันแฮช *ที่คำนวณได้อย่างมีประสิทธิภาพ* หรือเพียงแค่ *โครงสร้างทางคณิตศาสตร์ใดๆ*
Fractalice avatar
in flag
ฉันไม่เข้าใจคำถาม หากไม่สามารถทำได้ ฟังก์ชันแฮชทั้งหมดจะ "ใช้งานไม่ได้" เป็นสิ่งที่ถาม? "คณิตศาสตร์" คืออะไร?
Score:-2
ธง jp

ลองพิจารณาว่าคำว่า "birthday paradox" หมายถึงอะไร:

เดฟ: สมมติว่าความยาวของไดเจสต์คือ N จำนวนข้อความและไดเร็กทอรีที่เกี่ยวข้องควรสร้างในฝั่งผู้โจมตี เพื่อที่จะค้นหา 2 ข้อความที่มีไดเจสต์เท่ากัน (เกิดการชนกัน) โดยความน่าจะเป็นที่จะพบทั้งสองข้อความสูงกว่า 50% ?

คำตอบคือ $c*\sqrt{N} $. ซึ่งหมายความว่าผู้โจมตีควรรวบรวมอย่างน้อย $c*\sqrt{N} $ จำนวนข้อความระหว่าง N ข้อความเพื่อค้นหาการสรุปที่เหมือนกันสองรายการและค้นหาการชนกัน ชัดเจนยิ่งขึ้นใน $c*\sqrt{N} $ จำนวนข้อความ ควรมีสองข้อความ m และ $ \เฉียบพลัน{m} $ ว่า H(m) = H($ \เฉียบพลัน{m}$) โดยที่โอกาสที่จะพบข้อความทั้งสองนี้อยู่ที่ประมาณ 50% (ซึ่งเป็นความน่าจะเป็นที่ยอมรับได้) ในสูตรนี้ $ค$ เป็นค่าคงที่และมีค่าประมาณเท่ากับ 1.2 และไม่สนใจในเอกสารและการคำนวณส่วนใหญ่ นอกจากนี้ สถิตินี้ถูกต้องสำหรับฟังก์ชันแฮชตามทฤษฎีเท่านั้น ซึ่งได้รับการออกแบบมาอย่างถูกต้องและไร้ที่ติ ในกรณีนี้ เราเพิ่งพบข้อความทั้งสองนี้โดยใช้กำลังดุร้ายและไม่ใช่การโจมตีอื่นใด เนื่องจากฟังก์ชันแฮชนั้นไร้ที่ติและออกแบบโดยใช้คณิตศาสตร์เชิงทฤษฎีล้วนๆ

หากเราต้องการยกตัวอย่างง่ายๆ เพื่อให้ชัดเจน สมมติว่า U = {0,1} 128 คือความยาวของไดเจสต์ จากนั้นจำนวนข้อความที่ผู้โจมตีควรเลือกจาก U เพื่อค้นหาไดเจสต์ที่เหมือนกัน 2 รายการและพบการชนกัน (เหตุการณ์นี้มีความเป็นไปได้เกือบ 50%) ควรเป็น : $$ 1.2 * \sqrt{2^{128}} \cong 1.2 * (2^{64} ) \cong 2^{64} $$ นี่เป็นขอบเขตบนของการต้านทานการชนกันโดยอิงจากความขัดแย้งทางความน่าจะเป็นทางคณิตศาสตร์ที่ได้รับการพิสูจน์แล้ว และจะถูกต้องก็ต่อเมื่อฟังก์ชันแฮชที่ออกแบบไว้นั้นถูกต้องตามหลักทฤษฎีและทางคณิตศาสตร์ ถ้าเราต้องการหาการชนกันของจำนวนที่ต่ำกว่า $2^{64}$ ข้อความ ตามทฤษฎีนี้ ความน่าจะเป็นลดลงเหลือน้อยกว่า 50% หรืออีกนัยหนึ่งคือ มีโอกาสน้อยที่จะพบข้อความสองข้อความที่มีรายละเอียดย่อยเหมือนกัน

ตอนนี้ ถ้าฉันต้องการตอบคำถามเกี่ยวกับ "วิธีที่ง่ายกว่าการโจมตีด้วยกำลังเดรัจฉาน" สิ่งนี้จะเกิดขึ้นหากเราพบข้อบกพร่องในการออกแบบฟังก์ชันแฮชที่ผู้โจมตีใช้เพื่อหาสองข้อความที่มีการแยกย่อยเหมือนกัน ในจำนวนที่ต่ำกว่าของ $c*\sqrt{N} $ ข้อความ ดังที่ฉันได้กล่าวไว้ข้างต้น จากความขัดแย้งในวันเกิด อย่างน้อยเราควรทดสอบ $c*\sqrt{N} $ จำนวนข้อความที่จะพบการชนกัน ( ในการทดสอบจำนวนนี้ ความน่าจะเป็นที่จะพบการชนกันคือประมาณ 50%) อย่างไรก็ตาม หากมีข้อบกพร่องในการออกแบบฟังก์ชันแฮช ผู้โจมตีจะใช้ประโยชน์จากข้อบกพร่องนั้นและไม่ใช้กำลังดุร้ายเพื่อค้นหาการชนกัน นอกจากนี้ "วิธีการที่ง่ายกว่า" ในที่นี้คือประเภทของการโจมตีที่สามารถใช้กับฟังก์ชันแฮชมากกว่าการโจมตีด้วยกำลังเดรัจฉาน

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

Wilson avatar
se flag
คำตอบนี้ไม่ใช่คำตอบสำหรับคำถามเฉพาะในโพสต์

โพสต์คำตอบ

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