반응형

암호학 2

왜 같은 input에 다른 MD5 값이 나올까?

파일을 서버에 업로드하고, 그 파일을 다시 다운로드받는 프로그램을 만드는 중이었다. 서버와 로컬의 파일 MD5 값이 같을 경우 이미 같은 파일을 가지고 있다고 판단하여 다운로드를 스킵하도록 하고 싶다. 근데 어찌된 일인지 똑같은 파일을 업로드하고 다운로드하는데 두 파일의 MD5가 다르게 나온다. 대체 왜 이러는 걸까? 뭐, 사실 당연한 말이지만, 같은 input에 다른 MD5 값이 나올 일은 절대 없다(MD5 알고리듬이 정상이라면). 즉 input이 같아 보이지만 사실은 다르다는 거다.C:\Users\nasoo>certutil -hashfile "C:\ForceMonitor\src\ForceMonitor2\forcemonitor3\bin\Debug\KOSPIDAQ.txt" MD5 MD5의 C:\Force..

암호학 2024.12.22

AES는 어떻게 15바이트를 암호화할까?

AES는 16바이트 블록 단위로 암호화/복호화하는 알고리듬이다. 근데 이 세상의 모든 데이터가 16바이트로 나누어 떨어지지는 않는다. 그럼 1, 2, 3, ..., 15바이트짜리 데이터는 암호화 못 하는건가? 이상하다. 분명 AES는 표준으로 채택될 만큼 범용성 있는 알고리듬인데, 무작위 데이터가 주어졌을 때 그것을 암호화할 수 있을 확률이 고작 0.0625%(1/16) 밖에 안 된다고? 그럴 리가 없다. 그러면 어떻게 15바이트, 1바이트, 6바이트 등과 같은 데이터들을 암호화하지? 뒤에 0을 붙이나? 사실 그것도 말이 안 된다. 0x10 00 00과 0x10 00, 0x10은 모두 다르기 때문이다. 바이트 0도 엄연히 크기를 차지하는 데이터다. 그럼 대체 어떻게 15바이트를 암호화할 수 있는거지? 나..

암호학 2024.10.08
반응형