sha 256을 짜려는데요 이해가 되지 않는 부분이 있어 문의 드립니다

처음에 일단 메세지를 block(512bit)으로 만들기 위해 448bit로 패딩하거나 파싱하는거 같은데

l을 word 단위로 생각해야하는건지 단어 중간에 bit를 쪼갤 수 있다고 생각해야하는건지 모르겠습니다


예를 들어서 512bit가 들어올 경우


case1.

l은 8의 배수라고 가정(byte -> bit)

k의 최소값은 7, l의 최대값은 440bit(55글자)

마지막 64bit 부분은 440(0x1b8)

M0 = 440bit data + 1bit(1) + 7bit(0) + 64bit(440)

M1 = 72bit data + 1bit(1) + 375bit(0) + 64bit(72)


case2.

k의 최소값은 0, l = 447bit

M0 = 447bit data + 1bit(1) + 0bit + 64bit(447)

M1 = 65bit data + 1bit(1) + 382bit(0) + 64bit(65)



뭐가 맞을까요?