2016-08-19 2 views
0

사람들은 bcrypt 알고리즘을 사용하여 md5, sha1 및 sha256과 비교하여 속도가 느리다고 생각합니까?Bcrypt가 해독을 느리게하는 방법은 무엇입니까?

+1

'bcrypt'는 느리게 설계되었으므로 보안 암호 해시 저장에 필요합니다. 요점은 침입자가 암호를 무차별하게 만드는 것입니다. MD5, SHA1, SHA256 등과 같은 단순한 암호가 있어도 소금을 추가하는 것은 안전하지 않으며, 공격자는 이러한 해시를 공통 암호 목록에 대해 신속하게 브 루핑 할 수 있습니다. – zaph

답변

2

BCrypt는 해싱의 많은 반복이 수행되는 방법을 제어하는 ​​비용 요소을 가지고 있습니다. 이 비용 요소는 앞으로 더 빨라진 하드웨어에 적응하기 위해 증가 될 수 있습니다.

비용 요소는 2의 제곱으로 증가합니다. 즉, 비용 요소를 1만큼 증가 시키면 컴퓨팅 시간이 두 배 늘어납니다. 현재 권장 값은 서버에 따라 약 10-12입니다.

1

알고리즘의 SHA 계열은 큰 입력에 대해 해시를 효율적으로 생성하도록 설계되었습니다. 반면에 bcrypt은 작은 입력에 대해 계산적으로 값 비싼 연산을 수행하도록 설계되었습니다 (대부분의 암호에 충분해야하지만 입력의 처음 72 바이트 만 사용됩니다).

특히, bcrypt은 키 설정을 더 비싸게 만들기 위해 수정 된 Blowfish 블록 암호 버전에 대한 키 설정을 수행하기 위해 입력 salt 및 메시지를 사용합니다. 알고리즘은 그 암호문을 사용하여 알려진 일반 텍스트 (OrpheanBeholderScryDoubt)를 암호화합니다. 이것이 입력 엔트로피에 72 바이트 제한이있는 이유입니다. Blowfish 알고리즘에는 초기화해야하는 제한된 수의 하위 키가 있습니다.

Wikipedia describes this process in more detail.

관련 문제