2011-09-17 3 views
5

무어의 법칙을 따라 잡을 수있는 능력 때문에 bcrypt를 사용하여 암호 해시를 권장합니다.bcrypt는 무어의 법칙을 어떻게 따라 잡을 수 있습니까?

분명히 이유는 공격자가 SHA256과 같은 범용 해시 함수에 의해 생성 된 해시보다 bcrypt 해시를 크래킹하는 데 오래 걸릴 것이기 때문입니다.

어떻게 가능합니까? 무어의 법칙에도 불구하고 어떻게 알고리즘을 의도적으로 느리게 할 수 있습니까?

+1

Bcrypt는 프로세서가 빨라짐에 따라 해시 생성 비용을 증가시키기 위해 증가 할 수있는 업무 요소를 사용합니다. –

답변

5

bcrypt은 "작업 요소"라는 매개 변수로 구성 할 수 있습니다. 내부적으로는 해싱과 비슷한 작업을 여러 번 연속적으로 수행합니다. "다수"는 최대 수십억까지 구성 할 수있는 부분입니다. 그래서 무어의 법칙에 대처하기 위해서는 그 환경을 크랭크 업하십시오. 원하는만큼 느리게 만들 수있는 다른 함수는 PBKDF2입니다 ("반복 횟수"매개 변수 참조).

암호 해싱을 느리게하는 것은 공격자가 어려운 일을하는 것이지만 "정직한 시스템"도 기계적으로 느리게 만듭니다. 그것은 절충점입니다. 자세한 내용은 this answer (security.stackexchange에 있음)을 참조하십시오.

+0

이 질문에 대한 귀하의 의견은 크게 감사하겠습니다 : http://stackoverflow.com/questions/7479442/high-quality-simple-random-password-generator/ – quantumSoup

5

공격자는 모두 216,553 english words을 시도하려고합니다.

the common variations에 대한 또 다른 12 비트의 노력으로 887,001,088 (2) 개의 가능한 암호 목록을 제공합니다.

BCrypt는 약 4,342,912 (i.e. 222) operations to calculate one hash (at cost=12)입니다.

오늘날 코어는 약 2 cycles/sec를 제공합니다. 최첨단 기술은 총 프로세서 당코어 2 사이클/초입니다. 일반적으로 서버에는 4 개의 프로세서가있어 총계를 2로 증가시킵니다. * 2 = 2 사이클/초입니다. 주기 (모든 공통 암호를 통해 실행할 수있는 하나의 해시 * 2 가능한 (공통) 암호 = 2 주기를 계산하는주기.

이는 모두 공통 암호 흐르기 2 51/2 36 = 2 15초 (9 시간)에 대해, 서버는 4 프로세서 옥토 코어 걸릴 것이라는 것을 의미한다.

사실 내 암호는 일반적이지 않으며 약 44 비트를 사용합니다. 2 암호 * 2 암호 당 2주기 = 2 주기를 사용하여 일반적이지 않은 암호를 모두 시도하십시오. 2/2 주기/초 = 2 (34 년) (내 비밀번호 찾기)

무어의 법칙에 따르면 처리 능력은 18 개월마다 두 배가됩니다.

  • 오늘 17 년
  • 삼년 : 8.5 년
  • 4.5
  • 34 년 내 드문 비밀번호
  • 1.5 년 찾아 4.25 년
  • 육년 : 2.125 년
  • 7.5 년 : 1 년
  • 9 세 : 6 개월
  • 10.5 년 : 3 개월
  • ,363,210
  • 십이년 : 주
  • 13.5 년 : 주
  • 십오년 : 십일
  • 17.5 년 : 오일
  • 십구년 : 63시간
  • 20.5 년 : 31시간

이제는 입니다. bcrypt은 무어의 법칙에 위배됩니다.

1312에서 비용 요인이 증가하고는 두 배의 시간이 포함됩니다.

관련 문제