Movatterモバイル変換


[0]ホーム

URL:


본문으로 이동
위키백과
검색

bcrypt

위키백과, 우리 모두의 백과사전.

bcrypt 파일 암호화 유틸리티에 대해서는블로피시 문서를 참고하십시오.

bcrypt
일반
설계자Niels Provos, David Mazières
최초 출판일1999
기원블로피시
상세 정보
다이제스트 크기184비트
라운드 수비용 변수에 따라 가변적

bcrypt블로피시 암호에 기반을 둔암호화 해시 함수로서Niels Provos와 David Mazières가 설계하였으며 1999년USENIX에서 발표되었다.[1]레인보 테이블 공격 방지를 위해솔트를 통합한 bcrypt는 적응형 함수의 하나이다. 시간이 지남에 따라 속도 저하를 위해 반복 횟수가 증가가 수반될 수 있으므로 연산 파워의 증가에도브루트 포스 검색 공격에 대한 저항을 유지하게 된다.

bcrypt 함수는OpenBSD[2]수세 리눅스 등의 일부리눅스 배포판을 포함한 기타 시스템용 기본 암호해시 함수이다.[3]

C,C++,C#,Elixir,[4]Go,[5]Java,[6][7]자바스크립트,[8],PHP,파이썬,[9]Ruby 등의 언어용으로 bcrypt 구현체가 존재한다.

개요

[편집]

bcrypt 해시 문자열은 다음의 형태에 속한다:

$2b$[cost]$[22 character salt][31 character hash]

예:

$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy \/ \/ \____________________/\_____________________________/Alg Cost       Salt                        Hash

여기서

  • 2a: 해시 알고리즘 식별자 (bcrypt)
  • 10: Cost factor (210 ==> 1,024 rounds)
  • N9qo8uLOickgx2ZMRZoMye: 16바이트(128비트) 솔트, base64-encoded to 22 characters
  • IjZAgcfl7p92ldGxad68LJZdL17lhWy: 24바이트(192비트) 해시, base64-encoded to 31 characters

알고리즘

[편집]
Function bcryptInput:      cost:     Number (4..31)log2(Iterations). e.g. 12 ==> 212 = 4,096 iterations      salt:     array of Bytes (16 bytes)random salt      password: array of Bytes (1..72 bytes)UTF-8 encoded passwordOutput:      hash:     array of Bytes (24 bytes)
//Initialize Blowfish state with expensive key setup algorithm//P: array of 18 subkeys (UInt32[18])//S: Four substitution boxes (S-boxes), S0...S3. Each S-box is 1,024 bytes (UInt32[256])P,S ← EksBlowfishSetup(cost,salt,password)
//Repeatedly encrypt the text "OrpheanBeholderScryDoubt" 64 timesctext"OrpheanBeholderScryDoubt"//24 bytes ==> three 64-bit blocksrepeat (64)ctext ← EncryptECB(P,S,ctext)//encrypt using standard Blowfish in ECB mode
//24-bytectext is resulting password hashreturn Concatenate(cost,salt,ctext)

같이 보기

[편집]

각주

[편집]
  1. Provos, Niels; Mazières, David; Talan Jason Sutton 2012 (1999).“A Future-Adaptable Password Scheme”. 《Proceedings of 1999 USENIX Annual Technical Conference》: 81–92. 
  2. “Commit of first work to repo”. 1997년 2월 13일. 
  3. “SUSE Security Announcement: (SUSE-SA:2011:035)”. 2011년 8월 23일. 2016년 3월 4일에원본 문서에서 보존된 문서. 2015년 8월 20일에 확인함.SUSE's crypt() implementation supports the blowfish password hashing function (id $2a) and system logins by default also use this method. 
  4. Whitlock, David.“Bcrypt Elixir: bcrypt password hashing algorithm for Elixir.”. 《GitHub》. riverrun. 
  5. “Package bcrypt”. 《godoc.org》. 
  6. “jBCrypt - strong password hashing for Java”. 《www.mindrot.org》 (영어). 2017년 3월 11일에 확인함. 
  7. “bcrypt - A Java standalone implementation of the bcrypt password hash function”. 《github.com》 (영어). 2018년 7월 19일에 확인함. 
  8. “bcryptjs”. 《npm》. 
  9. Stufft, Donald.“bcrypt: Modern password hashing for your software and your servers” – PyPI 경유. 

외부 링크

[편집]
공통 함수
SHA-3 결승전 출전자
기타 함수
패스워드 해싱 /키 스트레칭 함수
일반 목적 /키 유도 함수
MAC 함수
인증된 암호 방식
공격
설계
표준화
활용
원본 주소 "https://ko.wikipedia.org/w/index.php?title=Bcrypt&oldid=38508508"
분류:
숨은 분류:

[8]ページ先頭

©2009-2025 Movatter.jp