Score:3

แคร็ก $f(x) = Cx \oplus Dx$

ธง in

โปรแกรมที่ฉันทำวิศวกรรมย้อนกลับกำลังใช้อยู่ $f(x) = Cx \oบวก Dx$ ที่ไหน C = 0x20ef138e415 และ D = 0xd3eafc3af14600 เป็นฟังก์ชันแฮช กำหนดอาร์เรย์แบบไบต์ แฮชจะได้มาโดยการใช้ซ้ำๆ $f$ ไปยังแฮชปัจจุบัน xor ไบต์ถัดไป

รหัสจาวา:

    สาธารณะคงยาว f(ยาว x) {
        กลับ (0x20ef138e415L * x) ^ (0xd3eafc3af14600L * x);
    }

    แฮชแบบยาวคงที่สาธารณะ (ไบต์ [] ไบต์) {
        แฮชยาว = 0;

        สำหรับ (ไบต์ b : ไบต์) {
            แฮช = f(แฮช ^ ((b & 0xff) + 1));
        }

        ส่งคืน f(แฮช);
    }

มีวิธีง่ายๆ ในการสร้างการชนกันของแฮชหรือไม่?

Meir Maor avatar
in flag
ไม่จำเป็นต้องทำ cryptanalsis สิ่งนี้มีสถานะ 64 บิต ดังนั้นการค้นหาการชนกันจึงเป็นเรื่องเล็กน้อยด้วยการดำเนินการ ~ 2^32 การคิดเป็นเรื่องยากที่จะหาการชนกันในเรื่องนี้เป็นเรื่องง่าย
Meir Maor avatar
in flag
ฉันพยายามทำสิ่งนี้เพื่อความสนุกจริง ๆ และล้มเหลว แต่ความล้มเหลวของฉันนำไปสู่คำถามนี้: https://crypto.stackexchange.com/questions/92280/many-near-collisions-but-no-full-collision (ความคิดเห็นของฉันยังคง ไม่ควรยากที่จะค้นหาการชนกันในแฮช 64 บิตใด ๆ ฉันก็ล้มเหลวไม่น้อย)

โพสต์คำตอบ

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