Score:0

ฟังก์ชั่นการบีบอัด SHA-256 โดยไม่มีช่องว่างภายใน

ธง fr

ดูตัวอย่างอินพุต null (512 บิต) จะใช้เป็นอินพุต:

อินพุต (เลขฐานสิบหก): 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.

เนื่องจากเป็น 512 บิตพอดี จึงไม่มีการแยกและไม่มีช่องว่างภายใน แต่จากเครื่องคิดเลขออนไลน์หรือรหัส golang ฉันจะได้รับแฮช sha-256 ของอินพุต null เป็น:

เอาต์พุตเครื่องคิดเลขออนไลน์ (Hex): f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b

อย่างไรก็ตาม ในห้องสมุดหลายแห่งเช่นโคบิเกิร์ก หรือ สกาล่าแมมบ้า ฯลฯ มูลค่าที่คาดหวังควรเป็น:

ห้องสมุด (ฐานสิบหก): da5698be17b9b46962335799779fbeca8ce5d491c0d26243bafef9ea1837a9d8

ฉันเลือกอินพุต null อย่างแม่นยำเป็น 512 บิตโดยไม่มีการเติม ปัญหาคืออะไร?

kelalaka avatar
in flag
ช่องว่างภายในจะใช้เสมอไม่ว่าขนาดของอินพุตจะเป็นเท่าใดก็ตาม
Willi avatar
fr flag
คุณช่วยให้ข้อมูลอ้างอิงได้ไหม ช่องว่างภายในจะใช้อย่างไรหากอินพุตมีเพียง 512 บิต
Score:1
ธง in

คำตอบสั้น ๆ ;

คุณกำลังผสมฟังก์ชันการบีบอัดและฟังก์ชันแฮช ทั้งสองหน้า / ไลบรารีเป็นจริงตามบริบท!


คำตอบเพิ่มเติม

SHA-256 เช่นเดียวกับอัลกอริธึมแฮชอื่น ๆ ที่มีการเสริมเสมอและถูกกำหนดไว้ใน NIST.FIPS.180-4

สมมติว่าความยาวของข้อความ $M$, เป็นบิต, $\ell$ เป็นบิต ต่อท้ายบิต 1 ต่อท้ายข้อความ ตามด้วย เค ศูนย์บิตที่ไหน เค เป็นคำตอบที่ไม่เป็นลบที่เล็กที่สุดของสมการ $$\ell +1 + k \equiv 448 \bmod 512$$ จากนั้นต่อท้ายบล็อก 64 บิตที่เท่ากับตัวเลข $\ell$ แสดงโดยใช้การแทนเลขฐานสอง

ดังนั้น 512 บิตศูนย์ใน SHA-256 จะมี 447 ศูนย์ ($k$ ส่วนหนึ่ง);

$$\text{Padded_Message} =\underbrace{\texttt{000...00}}_{512-ศูนย์}||\texttt{1}||\underbrace{\texttt{000...00}}_ {447-zeros}||\underbrace{\texttt{การเข้ารหัสเล้ง}}_{64-บิต}$$

หากคุณต้องการทดสอบอินพุตบางตัวจริงๆ ตรวจสอบให้แน่ใจว่าถูกต้องในเวกเตอร์ทดสอบของ NIST ที่กำหนดไว้ โปรแกรมตรวจสอบอัลกอริทึมการเข้ารหัส - ฟังก์ชันแฮช

สำหรับการเติมตามปกติจะไม่เกี่ยวข้องกับผู้ใช้ ไลบรารีจัดการช่องว่างภายในสำหรับผู้ใช้

เนื่องจากเป็น 512 บิตพอดี จึงไม่มีการแยกและไม่มีช่องว่างภายใน แต่จากเครื่องคิดเลขออนไลน์หรือรหัส golang ฉันจะได้รับแฮช sha-256 ของอินพุต null เป็น:

ดังที่กล่าวไว้ข้างต้น ช่องว่างภายในจะถูกกำหนดเสมอ เป็นส่วนหนึ่งของอัลกอริทึมแฮช SHA-256

อินพุตของคุณไม่ใช่อินพุต null แต่เป็นอินพุตศูนย์ 512 บิต NIST ให้เวกเตอร์ทดสอบความยาวเป็นศูนย์และได้ผลลัพธ์เป็น

เลน = 0
ข่าวสารเกี่ยวกับ = 00
MD = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

กำลังทดสอบอินพุตของคุณ sha256algorithm.com ผลิต

f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b

ฉันได้ทดสอบหน้านี้กับเวกเตอร์ทดสอบของ NIST ด้วย

ลิงค์ที่คุณให้เป็น สกาล่าแมมบ้า กล่าวถึง;

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

นี่คือผลลัพธ์ของฟังก์ชันการบีบอัดแรก สามารถตรวจสอบได้ที่ sha256algorithm.com หากคุณหยุดที่ขั้นตอนที่ 164 วางเมาส์บนค่าเริ่มต้นแล้วคุณจะได้ค่าฐานสิบหก

da5698be17b...

สิ่งนี้เหมือนกันกับอีกลิงค์หนึ่งไปยัง; ให้เป็น เวกเตอร์การทดสอบการบีบอัด sha256.

โปรดจำไว้ว่าเอาต์พุตของฟังก์ชันการบีบอัดคือค่าเริ่มต้นของฟังก์ชันการบีบอัดถัดไป หากจำเป็น หากไม่ต้องการ แสดงว่าเป็นเอาต์พุตของ SHA-256 ค่าเริ่มต้นแรกจะได้รับ

คำเหล่านี้แทนเศษส่วนสามสิบสองบิตแรกของรากที่สามของจำนวนเฉพาะหกสิบสี่ตัวแรก

เป็น ก ไม่มีอะไรขึ้นฉันแขนของฉันหมายเลข แม้ว่านี่เป็นเรื่องทางจิตวิทยา

Willi avatar
fr flag
ขอบใจ! สิ่งนี้มีประโยชน์จริงๆ
Willi avatar
fr flag
คำถามติดตามผล: ฉันจะหาค่าแฮชเริ่มต้น H(0) สำหรับบล็อกที่ 1 ในเว็บไซต์ [sha256algorithm.com](https://sha256algorithm.com/) ที่ให้มาในขั้นตอนใด ดูเหมือนว่าจะไม่ได้ระบุค่าแฮชเริ่มต้นสำหรับบล็อกที่ 1
kelalaka avatar
in flag
ดูขั้นตอนที่ 50...

โพสต์คำตอบ

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