해시(2)
-
argon2 vs bcrypt
언젠가 당연하게 bcrypt 를 이용해 비밀번호를 해싱했다.과연 bcrypt 가 최선이 맞을까? 암호화 암호화는 평문을 암호문으로 바꾸는 과정이다.암호화는 가장 기본적인 정보보안 방법으로 그 자체로 데이터의 유출 등을 막지는 못하지만 데이터에 담긴 정보를 알 수 없게 하는 것이 목적이다.bcrypt 가 무엇인가 단방향 암호화를 위해 만들어진 해시 함수 bcrypt 는 sha256 같은 해시 함수들의 문제점을 해결하기위해 설계되었다.sha256 는 원래 암호화를 위해 설계된 것이 아니라 짧은 시간 데이터를 검색하기 위한 자료구조로 설계가 되었다.이 때문에 빠른 속도가 장점이지만 취약점의 원인이 되기도 한다. 그래서 미리 해시값들을 계산해놓은 테이블을 가지고 해시 함수 반환값을 역추적하는 레인보우 테이블 공..
2024.04.25 -
해싱
해싱 해싱은 데이터를 암호화하지 않는다. 해싱은 모든 크기의 데이터 조각을 취하고 수학 함수를 사용하여 고정 크기의 고유한 해시값으로 해당데이터를 나타내는 단방향 프로세스이다. 해시에서 원래 데이터를 계산할 수 없다. 각 해시는 고유해야 하므로 해시를 통해 문서가 변경되었는지 확인할 수 있다. 이상적으로 해시 함수는 항상 다른입력에 대해 고유한 값을 생성한다. 그렇지 않은 경우 해시 충돌이라고 한다. 거의 모든 해싱알고리즘에서 해시충돌이 발생할 수 있지만 SHA-256 과 같은 최신 알고리즘에서는 충돌이 발생하는데 너무 오래걸리므로 기능적으로 불가능하다. MD5 및 SHA-1 과 같은 초기 해싱알고리즘은 해시충돌이 발생할 가능성이 더 높다. 해시를 사용하여 데이터 보호 해시는 온라인 데이터베이스에 암호를..
2023.04.09