Điểm:1

Hiểu các giá trị trung gian - SHA2 - 512

lá cờ fr

Tôi đang cố gắng hiểu thuật toán SHA2 - 512, vì vậy tôi theo tài liệu này có giá trị trung gian cho chuỗi "abc". Tại t=0, các giá trị cho f, hg thẳng thắn. Nhưng tôi không nhận được cùng một giá trị cho e, điều này cho thấy rằng tôi đang làm sai điều gì đó khi đang tính toán $T_1 = h + \Sigma_1(e) + \text{Ch}(e,f,g) + K_i + W_i$. Tôi gần như chắc chắn rằng tôi đã thực hiện $\text{Ch()}$$\Sigma_1 ( )$ một cách chính xác. Tôi đoán vấn đề của tôi có thể là với việc bổ sung trên $\pmod {2^{64}}$. Tôi hiểu mỗi thuật ngữ trong tổng kết của $T_1$ là một số 64-bit. Vì vậy, tôi cho rằng chúng ta có thể chuyển đổi những con số này thành số nguyên và cộng chúng lại với nhau $\pmod {2^{64}}$. Bây giờ, số kết quả có thể không dài 64 bit ở dạng nhị phân. chúng ta có thêm $0$ở phía trước phía sau biểu diễn nhị phân để làm cho nó dài 64 bit?

Tôi không chắc liệu điều này có hữu ích hay không, nhưng đây là một vài giá trị tôi nhận được ở dạng nhị phân cho t=0 (hiện tại tôi đang thêm các số 0 vào bên trái của bit quan trọng nhất):

#Sigma_1(e)
01010001000011100101001001111111110101101111001101000001011010001

#Ch(e,f,g)
0001111110000101110010011000110001111011001001110011110100111011

#T_1
0110100101100101001100111001100011001110110101111110100010100000

#e <- T_1 + d
0000111010110101001010001101001100101101111101010001111110010001

trong khi theo tài liệu, e ở dạng nhị phân là 1100001111010100111010111111110101001000011001010000111111111010.

Nếu bạn có thể cung cấp một tài nguyên bao gồm các giá trị trung gian cho các chức năng khác này, thì tôi hy vọng mình có thể tìm ra nó. Mặt khác, sẽ được đánh giá cao nếu bạn có thể đưa ra lời giải thích chi tiết về cách lấy giá trị chính xác. Vui lòng cho tôi biết nếu bạn muốn tôi cung cấp thêm thông tin.

poncho avatar
lá cờ my
Ý bạn là SHA3-512 hoặc SHA2-512 (còn được gọi là SHA512)? Tài liệu bạn đã trích dẫn và chi tiết câu hỏi của bạn là dành cho SHA2-512.
Josh avatar
lá cờ fr
Cảm ơn đã chỉ ra điều này. Tôi cho rằng SHA-512 có nghĩa là SHA3-512, vì vậy tôi đã nhầm về điều đó. Tôi sẽ chỉnh sửa câu hỏi.
Điểm:2
lá cờ my

Giả sử rằng bạn thực sự có nghĩa là SHA2-512:

#Sigma_1(e) 01010001000011100101001001111111110101101111001101000001011010001

Giá trị của 'Sigma_1' không chính xác; Tôi vừa thiết lập một triển khai tốt đã biết và đã lọt vào vòng đầu tiên:

$$sigma1 = 9427e33bb5c9dbca$$

Có lẽ bạn đã có $ROTR$ hoạt động theo ca, không luân phiên...

Bây giờ, đối với suy nghĩ của bạn:

Tôi hiểu mỗi thuật ngữ trong tổng kết của $T1$ là một số 64-bit. Vì vậy, tôi cho rằng chúng ta có thể chuyển đổi những con số này thành số nguyên và cộng chúng lại với nhau $\pmod {2^{64}}$. Bây giờ, số kết quả có thể không dài 64 bit ở dạng nhị phân.

Trên thực tế, cách tự nhiên nhất để biểu diễn các giá trị trong SHA-512 là luôn sử dụng 64 bit; các bit này được hiểu là một giá trị trong phạm vi $[0, 2^{64}-1]$; thông thường, msbit có thể bằng 0; chúng tôi vẫn coi nó là giá trị 64 bit (và do đó không bao giờ cần thêm số 0 ở đầu hoặc cuối - các giá trị luôn có độ dài chính xác).

Có, đây không phải là cách chúng tôi đếm bit trong RSA - SHA-512 không phải là RSA.

Josh avatar
lá cờ fr
Nếu tôi không nhầm, `d` ở dạng hex là `A54FF53A5F1D36F1`, ở dạng nhị phân là `1010010101001111111101010011101001011111000111010011011011110001`. Vì vậy, 4 lsbit là `0001`. Điểm khác là tổng kết không phải là XOR. Theo mô tả, nó đã hết `mod 2^64`.
poncho avatar
lá cờ my
Tôi đã đọc sai véc tơ thử nghiệm; bạn đã đúng về giá trị ban đầu của $d$; đó là giá trị của $T1$ sai (và nhân tiện, tôi khá biết rằng phép cộng là $\bmod 2^{64}$...)
Josh avatar
lá cờ fr
Cảm ơn bạn đã tính toán sigma_1. Bây giờ tôi nhận được cùng một giá trị. Vấn đề là khi tôi chuyển đổi hex thành int thành nhị phân trong Python, tôi chỉ nhận được nhiều bit cần thiết cho giá trị số nguyên đó, không nhất thiết phải là 64 bit. Tôi đã thêm số 0 vào bên trái của biểu diễn nhị phân và nó hoạt động tốt ngay bây giờ!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.