Score:-1

การเติมและอัลกอริทึม MD5

ธง cn

ใน MD5 ถ้า M=100 เราจะทำการเติมได้อย่างไร และในแต่ละรอบต้องใช้บล็อกจำนวนเท่าใด

คำถามเหล่านี้เป็นคำถามทั่วไปเพื่อทำความเข้าใจการเติมและการปัดเศษ

Maarten Bodewes avatar
in flag
โปรดอธิบายสิ่งที่คุณได้ลองแก้ปัญหานี้ด้วยตัวคุณเอง มีคำอธิบายทั่วไปของ MD5 ทุกที่ การคัดลอกเนื้อหาจากคำอธิบายเหล่านี้ไม่มีประโยชน์
Maarten Bodewes avatar
in flag
โปรดทราบว่าบล็อกและรอบไม่ใช่สิ่งเดียวกัน ดูเหมือนคุณจะถามเกี่ยวกับการบล็อค ในขณะที่ดูเหมือนคุณกำลังหาข้อมูลในการออกรอบ
cn flag
จริง ๆ แล้วฉันค้นหามาก แต่ไม่พบคำตอบที่เป็นประโยชน์ มันเป็นคำถามแบบทดสอบที่ผ่านมา และฉันกำลังพยายามหาคำตอบ..
cn flag
ฉันกำลังพยายามทำความเข้าใจกระบวนการทั้งหมดของรอบ MD5 และบล็อกที่สร้างขึ้นในข้อความ (เช่น จำนวนบล็อกที่จะสร้างขึ้นหากความยาวของข้อความคือ 100 บิต หรือ 200 บิต..
cn flag
วิธีการทำงานของรอบในบล็อกเหล่านี้
Patriot avatar
cn flag
@Adam Smith วิธีหนึ่งคือการลงรายละเอียดเกี่ยวกับสิ่งที่คุณเข้าใจ จากนั้นอธิบายสิ่งที่คุณมีปัญหาในการทำความเข้าใจ หลังจากนั้นลองระบุคำถามของคุณตามที่ผู้ดูแลกล่าวไว้ โปรดอธิบายสิ่งที่คุณทำเพื่อตอบคำถาม คุณจะได้รับการตอบรับที่ดีอย่างแน่นอน
Score:2
ธง fr

ฟังก์ชันแฮชการเข้ารหัสส่วนใหญ่จะประมวลผลข้อมูลเป็นบล็อกขนาดหลายไบต์ เนื่องจากวิธีนี้มีประสิทธิภาพมากกว่า สำหรับอัลกอริทึมที่ใช้คำ 32 บิต เช่น MD5 และ SHA-256 มักมีขนาด 64 ไบต์ สำหรับอัลกอริทึมที่ใช้คำ 64 บิต เช่น SHA-512 หรือ BLAKE2b มักเป็นบล็อกขนาด 128 ไบต์ และ SHA-3 ยังแตกต่างออกไป

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

ในฟังก์ชัน Merkle-DÃ¥mgard เช่น MD5, SHA-256 และ SHA-512 การเติมจะทำด้วยสองชิ้น ขั้นแรกให้คำนวณความยาวของข้อมูลเป็นบิต ในฟังก์ชัน 32 บิต เช่น MD5 และ SHA-256 โดยปกติจะเป็นค่า 64 บิต (8 ไบต์) ในฟังก์ชัน 64 บิต โดยปกติจะเป็นค่า 128 บิต (16 ไบต์) ข้อมูลถูกเสริมให้เพิ่ม 1 บิต จากนั้นเพิ่ม 0 บิตได้มากเท่าที่จำเป็นเพื่อให้เหลือพื้นที่ว่างสำหรับความยาว ดังนั้นสำหรับ MD5 หรือ SHA-256 ข้อความขนาด 55 ไบต์จะมี 1 บิต 7 บิต 0 และตามด้วยความยาว อย่างไรก็ตาม ข้อความขนาด 56 ไบต์จะมีหนึ่ง 1 บิต หกสิบสาม 0 บิตเพื่อย่อส่วนบล็อก จากนั้นอีกสี่ร้อยสี่สิบแปด 0 บิตเพื่อรองบล็อกถัดไป จากนั้นตามด้วยความยาว เนื่องจากไม่มีช่องว่าง สำหรับทั้ง 1 บิตและความยาวในบล็อกปัจจุบัน อัลกอริทึมแฮชที่แตกต่างกันจะแตกต่างกัน SHA-3 และ BLAKE2b ต่างก็ใช้เทคนิคที่แตกต่างกันไปกว่านี้

สำหรับรอบ มีสามประเภทที่แตกต่างกันของรอบที่เรามักจะพูดถึงเมื่อประมวลผลบล็อกในฟังก์ชันการบีบอัด มีหลายรอบ เช่นใน MD5 และ BLAKE2b ที่เราประมวลผลแต่ละข้อความหนึ่งครั้งต่อรอบ MD5 มีสี่รอบดังกล่าว และ BLAKE2b มี 12 รอบ นอกจากนี้ยังมีอัลกอริธึม เช่น SHA-256 และ SHA-512 ที่ข้อความในบล็อกขยายเป็นลำดับของคำจำนวนมาก (64 และ 80 ตามลำดับ) และแต่ละรอบ จัดการหนึ่งในคำขยายเหล่านี้ ใน SHA-3 เราดำเนินการกับทั้งรัฐด้วยข้อมูลที่ XORed อยู่แล้ว และแต่ละรอบดำเนินการกับทั้งรัฐ

ในทางปฏิบัติแล้ว แทบไม่มีใครใช้ข้อความที่ไม่ใช่จำนวนไบต์รวม เนื่องจากมักไม่สะดวกในการทำงานบนฮาร์ดแวร์จริง แต่สำหรับ MD5 หรือ SHA-256 ข้อความ 100 บิตจะถูกเสริมด้วย 0 บิต 1 บิต สามร้อยสี่สิบเจ็ด (เพื่อให้เป็น 448 บิต) จากนั้นความยาว 64 บิตจะถูกต่อท้ายเพื่อเติมบล็อกสุดท้าย ( 512 บิต หรือ 64 ไบต์)

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

โพสต์คำตอบ

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