Score:0

สร้าง CRC 64 บิตจาก CRC 32 บิต

ธง us

สมมติว่าฉันมีฟังก์ชัน CRC แบบ 32 บิต $\text{crc32}(x)$ ที่ตรงตามคุณสมบัติทั้งหมดของก ซีอาร์ซี. สมมติว่าฉันเป็นนักพัฒนาขี้เกียจที่ต้องการสร้างฟังก์ชัน CRC แบบ 64 บิต แต่ไม่ต้องการใช้ CRC อื่นจริง ๆ ดังนั้นฉันจึงออกแบบฟังก์ชัน

$$ f(x)= \text{crc32}( {\tt{"}\tt{foo}\tt{"}}\ ||\ x ) \cdot 2^{32} + \text{crc32}( {\tt{"}\tt{bar}\tt{"}}\ ||\ x ) $$ ทำ $f$ จัดตั้ง CRC?

hft avatar
ng flag
hft
เกี่ยวกับ "คุณสมบัติทั้งหมดของ CRC" คุณเชื่อมโยงไปยังหน้าวิกิพีเดียที่ไม่ใช่รายการของ "คุณสมบัติทั้งหมดของ CRC" แต่เป็นหน้ายาวที่มีคำอธิบายว่า CRC คืออะไร...แต่คำอธิบายต่างๆไม่ตรงกันในคุณสมบัติ คุณสามารถแสดงรายการคุณสมบัติที่ต้องการทั้งหมดแทนที่จะให้ลิงก์ไปยังหน้าเว็บยาว ๆ ที่เราจะต้องแยกวิเคราะห์และตีความโดยเราได้หรือไม่? อย่างไรก็ตาม คุณแค่ต้องการแฮชที่เป็น 64 บิตที่พวกเขาสร้างขึ้นมา แต่ถ้าคุณต้องการแก้ไขข้อผิดพลาดจริง ๆ ฉันไม่แน่ใจ เธออยากทำอะไรล่ะ?
Score:2
ธง my

ของคุณ $f$ เทียบเท่ากับสิ่งนี้:

$$f(x) = (\text{crc32}(x) \oplus C_1)\ || \ (\text{crc32}(x) \oplus C_2)$$

เพื่อความเหมาะสม $C_1, C_2$ ค่าที่ขึ้นอยู่กับความยาวของ $X$; $C_1 = \text{crc32}(\text{"foo"} || 0^{\text{len}(X)}) \oplus \text{crc32}(0^{\text{len}(X) })$, และ $C_2 = \text{crc32}(\text{"bar"} || 0^{\text{len}(X)}) \oplus \text{crc32}(0^{\text{len}(X) })$

นั่นคือมันเป็น crc32 ของ $x$ สองครั้ง ยกเว้นว่าจะมีการพลิกบิตของสำเนาที่หนึ่งและที่สอง บิตใดขึ้นอยู่กับความยาวของ $x$แต่ไม่มีอะไรอื่น

ซึ่งหมายความว่าคุณสมบัติการตรวจจับข้อผิดพลาดของฟังก์ชันของคุณมีประสิทธิภาพเทียบเท่ากับ crc32 และไม่มีอะไรดีไปกว่า

โพสต์คำตอบ

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