Score:1

ทำความเข้าใจค่ากลาง - SHA2 - 512

ธง fr

ฉันกำลังพยายามทำความเข้าใจอัลกอริทึม SHA2 - 512 ดังนั้นฉันจึงเข้าใจ ตามเอกสารนี้ ซึ่งมีค่ากลางสำหรับสตริง "abc" ที่ เสื้อ=0, ค่าสำหรับ , ชม. และ มีความตรงไปตรงมา แต่ฉันไม่ได้รับค่าเดียวกันสำหรับ อีซึ่งแสดงว่าฉันกำลังทำอะไรผิดเมื่อฉันกำลังคำนวณ $T_1 = h + \Sigma_1(e) + \text{Ch}(e,f,g) + K_i + W_i$. ฉันเกือบจะแน่ใจว่าฉันได้ดำเนินการแล้ว $\text{Ch( )}$ และ $\Sigma_1 ( )$ อย่างถูกต้อง ฉันเดาว่าปัญหาของฉันอาจเกิดจากการเพิ่มเติม $\pmod {2^{64}}$. ฉันเข้าใจคำศัพท์แต่ละคำในผลรวมของ $T_1$ เป็นตัวเลข 64 บิต ฉันคิดว่าเราสามารถแปลงตัวเลขเหล่านี้เป็นจำนวนเต็มแล้วบวกกันได้ $\pmod {2^{64}}$. ตอนนี้จำนวนผลลัพธ์อาจไม่ยาว 64 บิตในไบนารี เราเพิ่ม $0$อยู่ข้างหน้าข้างหลังการแทนไบนารีเพื่อให้ยาว 64 บิตหรือไม่

ฉันไม่แน่ใจว่าสิ่งนี้มีประโยชน์หรือไม่ แต่นี่คือค่าบางส่วนที่ฉันได้รับจากเลขฐานสอง เสื้อ=0 (ตอนนี้ฉันกำลังเพิ่มศูนย์ทางด้านซ้ายของบิตที่สำคัญที่สุด):

#Sigma_1(จ)
0101000100001110010100100111111110101101111001101000001011010001

#Ch(จ,ฉ,ก)
0001111110000101110010011000110001111011001001110011110100111011

#T_1
0110100101100101001100111001100011001110110101111110100010100000

#e <- T_1 + ง
0000111010110101001010001101001100101101111101010001111110010001

ขณะที่ตามเอกสารระบุว่า อี ในเลขฐานสองคือ 1100001111010100111010111111110101001000011001010000111111111010.

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

poncho avatar
my flag
คุณหมายถึง SHA3-512 หรือ SHA2-512 (หรือที่เรียกว่า SHA512) ใช่หรือไม่ เอกสารที่คุณอ้างถึงและรายละเอียดคำถามของคุณใช้สำหรับ SHA2-512
Josh avatar
fr flag
ขอขอบคุณที่ชี้ให้เห็น ฉันคิดว่า SHA-512 หมายถึง SHA3-512 ดังนั้นฉันจึงคิดผิด ฉันจะแก้ไขคำถาม
Score:2
ธง my

สมมติว่าคุณหมายถึง SHA2-512 จริงๆ:

#Sigma_1(จ) 0101000100001110010100100111111110101101111001101000001011010001

ค่าของ 'Sigma_1' ไม่ถูกต้อง; ฉันเพิ่งติดตั้งการใช้งานที่เป็นที่รู้จักและได้สำหรับรอบแรก:

$$sigma1 = 9427e33bb5c9dbca$$

บางทีคุณอาจมี $ROTR$ ทำงานเป็นกะไม่หมุนเวียน...

ตอนนี้สำหรับความคิดของคุณ:

ฉันเข้าใจคำศัพท์แต่ละคำในผลรวมของ $T1$ เป็นตัวเลข 64 บิต ฉันคิดว่าเราสามารถแปลงตัวเลขเหล่านี้เป็นจำนวนเต็มแล้วบวกกันได้ $\pmod {2^{64}}$. ตอนนี้จำนวนผลลัพธ์อาจไม่ยาว 64 บิตในไบนารี

จริงๆ แล้ว วิธีที่เป็นธรรมชาติที่สุดในการแสดงค่าภายใน SHA-512 ก็คือการใช้ 64 บิตเช่นเคย; บิตเหล่านี้ถูกตีความว่าเป็นค่าที่อยู่ในช่วง $[0, 2^{64}-1]$; บ่อยครั้งที่ msbit อาจเป็นศูนย์ เรายังคงถือว่ามันเป็นค่า 64 บิต (และไม่จำเป็นต้องเพิ่ม 0 ที่จุดเริ่มต้นหรือจุดสิ้นสุด - ค่าจะมีความยาวที่ถูกต้องเสมอ)

ใช่ นี่ไม่ใช่วิธีที่เรานับบิตใน RSA - SHA-512 ไม่ใช่ RSA

Josh avatar
fr flag
ถ้าฉันจำไม่ผิด `d` ในฐานสิบหกคือ 'A54FF53A5F1D36F1` ซึ่งในเลขฐานสองคือ ดังนั้น 4 บิตคือ `0001` อีกประเด็นคือผลรวมไม่ใช่ XOR ตามคำอธิบาย มันอยู่เหนือ `mod 2^64`
poncho avatar
my flag
ฉันอ่านเวกเตอร์ทดสอบผิด คุณถูกต้องในค่าเริ่มต้นของ $d$; เป็นค่าของ $T1$ ที่ผิด (และ BTW ฉันค่อนข้างทราบดีว่าการบวกคือ $\bmod 2^{64}$...)
Josh avatar
fr flag
ขอบคุณสำหรับการคำนวณ sigma_1 ตอนนี้ฉันได้รับค่าเดียวกัน ปัญหาคือเมื่อฉันแปลง hex เป็น int เป็นไบนารีใน Python ฉันได้รับบิตมากเท่าที่จำเป็นสำหรับค่าจำนวนเต็มนั้น ไม่ใช่ 64 บิตที่จำเป็น ฉันเพิ่ม 0 ทางด้านซ้ายของการแทนเลขฐานสอง และตอนนี้ใช้ได้ดี!

โพสต์คำตอบ

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