md5를 돌리면 문자열이 암호화되어 알아볼수없게 바뀌긴하는데
그렇게 저장한다고한들 암호화된 문자열이 어떤방식인지만 알면 다시돌리면
원상복구되는데 이게 보안기능이 있는건가?
솔직히 저장된 자료를 남이 해킹해서 보고있다는시점에서 md5든뭐든 의미없을것같은데
그렇게 저장한다고한들 암호화된 문자열이 어떤방식인지만 알면 다시돌리면
원상복구되는데 이게 보안기능이 있는건가?
솔직히 저장된 자료를 남이 해킹해서 보고있다는시점에서 md5든뭐든 의미없을것같은데
해시 암호라는 건 aaa를 입력했을 때 bbbb로 바뀌는데 bbbb를 통해 aaa를 역산하기가 존나 어려운 함수 아닌가? bbbb를 통해 aaa를 구할 필요없는 경우에 쓰는 거 아냐?
md5를 순식간에 복구할 수 있다고? 지젼;;;
엄청 큰 두 소수의 곱을 너에게 주면, 너가 그걸 소인수 분해 할 수 있을까? MD5랑은 다르지만 RSA 암호의 원리에 대한 얘기임. 역산이 그렇게 간단하지가 않음. 다만 다른 input을 넣었는데 똑같은 output이 나오는 충돌은 발생할 수 있겠지
md5는 해시함수니까 파일 같은거 무결성 검증할때 쓰는 거야
무결성과 메시지인증 등에 사용됨, 근데 역계산 쉽다는 소리는 어디서 나온거임? ㅋㅋㅋㅋ
해쉬는 "정보가 손실되는 거"야. 예를들어 무슨 숫자를 넣어도 0~9까지 한자리만 내뱉는 해쉬함수가 있다고 하자. 내부적으로 자릿수마다 다 덧셈한다고 쳐. 12345 => 1+2+3+4+5 => 15 => 6 이런식으로. 그럼 해쉬결과는 "6" 하나 뿐인데, 이게 원래값이 15였는지 54321이었는지, 45321이었는지 어떻게 알겠냐? 원상복구가 기본적으로 안돼. 하다못해 원본의 길이정보라도 있으면 모르는데, 그런것도 안줘. 당연히 역산 불가지.
물론 불가능이라기보다는 "불가능에 가깝다"는 쪽이 맞기는 한데, 실질적으로 의미있는 시간내에 "정답"을 만들기는 어려워. 물론 MD5 충돌은 많이 보고 되어 있고, 심지어 md5가 동일한 파일을 생성해주는 프로그램도 있기는 한데, 그건 "일부 충돌"만을 이용하는 것일뿐, 실용성(?)있는 내용은 아니야.
해시는 일방향성과 충돌회피성이 있어야됨. 이거 깨지면 그거 쓰면 안되거든. 일방향성은 역계산이 계산적으로 불가능해야함. 고로 역계산 쉽다는 소리는 잘못된말임 ㅇㅇ
윗놈 말 맞음. 현실적으로 불가능하다가 맞긴 한데. 무튼 불가능함
아, 참고로 CRC32는 "같은 해시 또는 원하는 해시" 만드는게 가능함. 가능하다는것만 알지, 계산 구조적 문제인지 32비트라는 짧음을 이용한 때려박기 문제인지는 나도 잘 모르는데, 어쨌건 CRC32는 원본복원이 불가능한건 똑같지만, 원하는 해시값을 가지는 파일 작성은 가능함. 그래서 옛날에 XP시절에 MS의 MSDN에서 배포되는 공식 XP 포함 그 이전의 ISO파일들은 전통적으로 전부 CRC32값이 0xFFFFFFFF임. 비스타부터는 그런 전통이 폐기됨.
그래서 혹시나 해시처리된 후 보관된 암호를 빼냈다고 해도, 역계산으로 암호를 구하지 않음. 미리 사전에 문자를 해시한걸 가지고 해시끼리 비교함. 그 과정에서 여러 기술들이 있기야 한데, 역계산이 불가능하기 때문에 해시끼리 비교하는게 기본임
그래서 CRC32는 통신오류나 저장장치 오류로 인한 결함체크로만 쓰임. 부정한 조작이 가해졌는지 확인하는 순수 무결성 용도로는 못쓰지. 그래서 MD5도 거르고 요새 기본이 SHA1(160비트)이고, 이것도 부족하다고 SHA256 SHA512쓰자고 난리인거지.