카테고리 없음

MD5 vs SHA 메시지 길이

멋쟁이천재사자 2023. 8. 14. 15:12

SAP HANA 에서 sql 작업을 하다가, 활용 가능한 function 을 찾기 위해 레퍼런스에서 함수목록을 쭈욱 훑어보았다.

정규표현식 관련 함수가 필요했는데 like_regexpr 을 발견했고 그 함수를 사용했다.



그런데 정보보안기사 공부중이라 눈에 들어온  것은 HASH_MD5 와 HASH_SHA256 함수였다.



정보기 실기 준비하며 다처단최엔 이라고 생각없이 두음으로 암기했었다.

https://it-freelancer.tistory.com/1400

[정보기 실기] 두음

2023년 7월 29일 실기 첫번째 도전에서 망하고, 11월 25일에 있을 다음 시험을 준비하고 있습니다. 클로버더빙으로 들을 때 자연스럽도록 다소 변형된 표현들이 있음. 양자암호통신 주요 기술 4가지

it-freelancer.tistory.com


MD5 와 SHA 비교는 다처단최엔 입니다.
다. 다이제스트 길이 128비트 160비트
처. 처리 단위 512비트 512비트
단. 단계수 64(16번의 4라운드) 80(20번의 4라운드)
최. 최대 메시지 크기 무한 2의 64승 마이너스(-)1
엔. 앤디언 Little-endian Big-endian




다이제스트 길이가 128비트 160비트라고 암기했는데, 암호화된 결과의 길이라고 짐작만하고 확인은 하지 않은 상태였다.


내 짐작이 맞았는지 확인해보자.

https://help.sap.com/docs/SAP_HANA_PLATFORM/4fe29514fd584807ac9f2a04f6754767/881159b167a246e88926075e0c59ea36.html

SAP Help Portal

help.sap.com


SELECT HASH_MD5(TO_BINARY('abcd'), '00', TO_BINARY('efg')) "test1" FROM DUMMY;

실행하면 다음 결과가 나온다고 되어있다.

6BB6BD45C57D57ECC69A9EB81F7409BE



DBeaver 에서 돌려 보니 이상하게 깨진 것 같은 문자가 나온다. to_nvarchar 로 감싸서 테스트를 해보았다.


SELECT to_nvarchar(HASH_MD5(TO_BINARY('abcd'), '00', TO_BINARY('efg'))) "test1" FROM DUMMY;


레퍼런스에 언급된 6BB6BD45C57D57ECC69A9EB81F7409BE 값이 나온다.  자릿수를 세어보면 32 자리다. 16진수 숫자이므로 한글자는 4비트다.

4비트 * 32 자리 = 128 비트

마구잡이로 외운 다이제스트 길이 128비트가 맞는 것 같다.


HASH_SHA256 은 동일한 방식으로 확인해보니 64자리 즉 256 비트다.  HANA 에서 제공하는 함수에 HASH_SHA 또는 HASH_SHA512는 현재 버전에서는 없었다.


기냥 달달한 암기한 SHA 의 다이제스트 길이는 160 비트인데, 안전한 SHA256 이전 최초의 SHA 알고리즘 결과에 해당하는 길이로 보인다. 아쉽지만 HANA Sql 에서는 sha 함수를 제공하지 않아 눈으로 직접 확인하지는 못했다