두 달 전, 우리는 쓴 결론 의 NIST의 암호화 해시 알고리즘 대회 .
우승자는이었다 Keccak - 지금 공식적으로 SHA-3 명명.
이 새로운 표준의 정식 비준에도 불구하고, NIST의 초기 해시는 일반적으로 사용되는 남아 있습니다. 사실, 우리는 볼 기대할 수 있습니다 SHA-1과 SHA-2를 가능도 수십 년 동안 - 년 동안 야생 인치
SHA-1, 특히, 아직 널리 암호 해시에 발생합니다.
당신은 단방향 함수를 만들려면 비밀번호를 아카이브 시스템의 일부에서 암호화 해시 함수를 사용하는 곳 암호 해시입니다.
computionally infeasible 더 나은 아직, 또는, - - 역에서 운동을하는 단방향 기능에 한 방향으로 만 복잡한 계산 쉽게 프로세스입니다.
대신 실제 암호의 단방향 암호 해시를 저장하는 경우, 데이터베이스를 도용 공격자가 직접 그 암호를 복구 할 수 없습니다. 그들은 운이 올 때까지 그들은 비밀번호를 스스로 후 비밀번호를 시도해야합니다.
→ 암호를 저장하는 단방향 기능을 사용하면 암호 데이터베이스를 안전하게 보호하기위한 대체하지 않습니다. 당신의 서버가 나누어 질 않습니다 만, 방어에 대한 심층적 인의 손길을 제공합니다 추가 보안입니다.
편도 함수가 암호화 - 해시 암호를 해독, 역으로 계산 할 수 없기 때문에 것은 필연적으로 짐승 - 강제로 관계입니다. 다시 계속해서 편도 함수를 계산하는 것을 의미합니다.
결과적으로, 암호 해독 전문가들은 특히 SHA-1을 포함하여 널리 사용되는 암호 해시 알고리즘의 성능 개선을 많은 노력을 넣어.
2012년 6월에서 예를 들어, 연구자 매그넘과 JimF (짐 Fougeron)는 암호 크래커에 코드를 기부 존 리퍼 80 % 원료 SHA-1 암호 해시 속도를 향상.
그리고, 동일한 릴리스, Tavis Ormandy는 15 자 미만의 암호로 제한이라도 115 %의 성능 향상을 제공하는 최적화 된 구현을 세웠 어.
→ 암호 크래커는 쉽게 학대 수 있습니다. 당신은 아마 싶은 자신의 사용을 제어 하여 조직 내부. 나쁜 놈들이 뭘하기 전에 자신의 네트워크에 가난한 비밀번호 위생를 확인하는 방법은 다음과 같습니다 그러나 그들은 합법적 인 방어 목적이 있습니다.
이제 젠스 Steube,의 도구 균열 pasword의 저자 hashcat의 암호를 해독 할 때 가족은, SHA-1에 대한 optimisations에 추가되었습니다.
Steube은 최근에 신문에 자신의 작품을 설명 ^ 12 암호 오슬로, 노르웨이에있는 컨퍼런스.

Steube의 비밀번호 크래킹 개선 21%하여 SHA-1 해시를 계산하기 위해 필요한 컴퓨터 지침의 수를 줄일 수 있습니다. 이 이전 optimisations을 허용 할 수 있습니다 - 추가 속도가 아직 더 변화 할 - 등 위에서 설명한 것과 같은.
Steube는 반복적으로 첫 번째 입력 단어 (32 비트, 또는 4 바이트)가 될 때마다 변경되는 입력 데이터의 해시를 계산하는 경우 SHA-1의 "내부 루프"가 유용하게 몸매는 여전 하구나 될 수있는 것으로 나타났습니다.
암호 공격의 경우이 쉽게 예약하실 수 있습니다.
크게 oversimplified, SHA-1 알고리즘 다섯 32 비트 단어 (160 비트, 또는 20 바이트)의 누적 해시에 각 블록을 혼합, 16 32 비트 단어의 블록 (512 비트, 또는 64 바이트)에서 해당 입력을 소모합니다.
블록의 블록은 () 할에 대한
난 = 17-80 일에
- 각 단계는 여기에 원래 16 단어 입력을 확장
- 혼합하여 만든 하나의 단어를 추가하여 80 자까지 차단
- 함께 이전 십육 단어 넷.
블록 [I] = minimixtogether (블록, 전)
끝
난 = 1-80 일에 대한
- 각 단계는 여기에 80 단어에서 단어 중 하나를 혼합
- 다섯 바이트 해시 축적에 "확장 블록"
해시 = giantmixtogether (블록, 전)
끝
끝
안간힘을 해시로 확장 입력이 NOT 등의 다양한 작업의 범위, AND, OR, XOR, ADD 및 ROL을 (왼쪽으로 회전)를 사용하는 giantmixtogther () 함수.
그러나 minimixtogether ()는 입력 데이터는 XOR 및 ROL를 사용하는 상태로 사용 기능을 수행합니다. 때문에 그 상대 단순함 때문에, Steube는 루프 minimixtogether ()를 생략 할 수 있으며, "확장"입력 값 블록주세요 [17] 직접 giantmixtogether () 안에 [80] 차단하는 루프를 계산하는 방법을 발견했습니다.
Steube의 방법은 아직 precalculation을 필요로하지만, 입력의 첫 번째 블록 (처음 4자를 IE)가 변경된 경우 여러 별도의 해시 평가는 precalculated 데이터를 공유 할 수 있습니다.
이 파일을 무작위로 선택된 시리즈를 해싱 된 경우, 예를 들어,이 당신에게 무용지물 것입니다.
그러나 암호에 대한 폭력 공격을 수행 할 때, 처음 네 문자가 암호의 나머지 다음, 가장 빠르게 변경할 수 있도록 적절한 순서로 입력을 넣어하는 간단한 문제입니다. (거꾸로 한 단 자동차 주행 거리계를 상상.)
이 작업을 수행 할 수 있다면, Steube의 고치면 되겠를 implemeting하면 코드가 25 % 빠른 실행 할 것입니다. 그 맘에 들어.
아직 보안 군비 경쟁이 또 다른 알림 : 그리고 당신은 수 있습니다.












