ฉันสามารถกระตุ้นความแตกต่างให้กับคุณในสถานการณ์การโจมตี
ในการโจมตี preimage แรกเราขอให้ฝ่ายตรงข้ามได้รับเพียงเพื่อหาหรือดังกล่าวว่า =(M) สมมติว่าเว็บไซต์ร้านค้าในฐานข้อมูลของแทน\} เว็บไซต์ยังสามารถตรวจสอบความถูกต้องของผู้ใช้โดยยอมรับรหัสผ่านและเปรียบเทียบ (ที่มีความน่าจะเป็นของสำหรับบางขนาดใหญ่สำหรับผลบวกปลอม) ตอนนี้สมมติว่าฐานข้อมูลนี้รั่วไหลออกมาหรือประกอบเป็นอย่างอื่น โจมตี preimage แรกm m ′ H ( m ′ ) H ( m ) { u s e r n a m e , H ( p a s s w o r d d ) } { u s e r n a m e , p a s s w o r d } H ( i nH(m)mm′H(m′)H(m){username,H(password)}{username,password}1 / 2 n nH(input)=?H(password)1/2nnเป็นสถานการณ์ที่ฝ่ายตรงข้ามเข้าถึงการแยกย่อยข้อความเท่านั้นและกำลังพยายามสร้างข้อความที่แฮชค่านี้
ในการโจมตีครั้งที่สองเราอนุญาตให้ฝ่ายตรงข้ามได้รับข้อมูลเพิ่มเติม โดยเฉพาะเราไม่เพียงให้แก่เขาเท่านั้น แต่ยังให้เขาด้วย พิจารณาฟังก์ชันแฮชโดยที่และเป็นจำนวนเฉพาะและคือค่าคงที่สาธารณะ เห็นได้ชัดว่าเป็นครั้งแรกที่การโจมตี preimageนี้จะกลายเป็นปัญหา RSA และเชื่อว่าเป็นเรื่องยาก อย่างไรก็ตามในกรณีของการโจมตีแบบ preimage ครั้งที่สองการค้นหาการชนจะกลายเป็นเรื่องง่าย ถ้ามีชุด ,mH(m)mH(m)=mdmodpqpqdm′=mpq+mH(mpq+m)=(mpq+m)dmodpq=mdmodpq. ดังนั้นฝ่ายตรงข้ามจึงพบว่ามีการชนกันด้วยการคำนวณเพียงเล็กน้อยหรือไม่มีเลย
เราต้องการให้ฟังก์ชันแฮชทางเดียวสามารถต้านทานการโจมตี preimage ครั้งที่สองได้เนื่องจากโครงร่างลายเซ็นดิจิตอลซึ่งในกรณีนี้ถือเป็นข้อมูลสาธารณะและถูกส่งผ่าน ที่นี่ผู้โจมตีมีสิทธิ์เข้าถึงทั้งและ(เอกสาร) หากผู้โจมตีสามารถสร้างความเปลี่ยนแปลงในเอกสารต้นฉบับ (หรือข้อความใหม่ทั้งหมด)เช่นนั้นเขาสามารถเผยแพร่เอกสารของเขาราวกับว่าเขาเป็นผู้ลงนามเดิมH(document)documentH(document)d′H(d′)=H(document)
โจมตีชนช่วยให้ฝ่ายตรงข้ามมีโอกาสมากยิ่งขึ้น ในรูปแบบนี้เราขอให้ฝ่ายตรงข้าม (ฉันจะเรียกเขาว่าบ๊อบ?) ที่จะหาสองข้อความและดังกล่าวว่า(m_2) เนื่องจากหลักการของช่องพิราบและวันเกิดที่ขัดแย้งกันแม้แต่ฟังก์ชั่นแฮช 'สมบูรณ์แบบ' ก็ยังอ่อนแอต่อการโจมตีจากการชนมากกว่าการโจมตีแบบ preimage กล่าวอีกอย่างหนึ่งคือฟังก์ชั่นการแยกข้อความที่ไม่สามารถคาดเดาได้และไม่สามารถย้อนกลับได้ซึ่งใช้เวลาในการดุร้าย มักจะพบได้ในเวลาที่คาดว่า2})m1m2H(m1)=H(m2)f({0,1}∗)={0,1}nO(2n)O(sqrt(2n))=O(2n/2)
บ๊อบสามารถใช้การโจมตีการชนเพื่อผลประโยชน์ของเขาได้หลายวิธี นี่คือหนึ่งในวิธีที่ง่ายที่สุด: Bob ค้นหาการปะทะกันระหว่างสองไบนารีและ ( ) ซึ่ง b เป็นแพตช์รักษาความปลอดภัย Microsoft Windows ที่ถูกต้องและเป็นมัลแวร์ (Bob ใช้งานได้กับ Windows) บ๊อบส่งแพตช์รักษาความปลอดภัยของเขาขึ้นมาเป็นสายการบังคับบัญชาซึ่งอยู่ด้านหลังห้องนิรภัยพวกเขาเซ็นรหัสและส่งไบนารี่ไปยังผู้ใช้ Windows ทั่วโลกเพื่อแก้ไขข้อบกพร่อง บ็อบสามารถติดต่อและแพร่กระจายคอมพิวเตอร์ Windows ทั้งหมดทั่วโลกด้วยและลายเซ็นต์ที่ Microsoft คำนวณสำหรับbb′H(b)=H(b′)b′b′b. นอกเหนือจากสถานการณ์การโจมตีประเภทต่าง ๆ เหล่านี้หากเชื่อว่าฟังก์ชั่นแฮชนั้นมีความทนทานต่อการชนกันฟังก์ชั่นแฮชนั้นก็มีแนวโน้มที่จะมีการต้านทาน preimage