본문 바로가기
IT기술노트/디지털보안

키 스트레칭(Key Stretching)

by 비트코기 2022. 12. 9.

I.  해시함수의 취약점 보완, 키 스트레칭의 정의
- 단방향 암호화 기법인 해시 함수의 취약점인 레인보우 공격과 브루탈 포스 공격을 피하기 위해 해시함수를
N 번이상 반복하여 다이제스트를 생성함으로써 해시함수의 취약점을 보완하는 기법


II. 키 스트레칭의 동작원리 및 주요 기술요소

가. 키 스트레칭의 동작원리

- 메시지를 해시함수 알고리즘을 이용하여 반복회수 만큼 반복해서 생성

 

나. 키 스트레칭의 주요 기술요소

구분 기술요소 설명
메시지 평문(Plaintext) - 해시함수에 사용될 입력 메시지
Salt - 해시함수를 돌리기 전에 원문에 덧붙이는 임의의 문자열 값
Pepper 데이터베이스에 저장되지 않는 해시함수를 돌리기 전에 원문에 덧붙이는 임의의 문자열 값
- PEPEER 는 모든 유저에게 동일한 고정 값이 제공 (하드코딩 등의 방법)
해시함수
알고리즘
MD5
(Message Digest)
- 임의의 길이의 값을 입력 받아서 128 비트 길이의 해시 값을 출력하는 알고리즘
SHA
(Secure Hash
Algorithm)
- 키 길이에 따라 SHA-1, SHA-224SHA-256SHA-384SHA-512 등의 알고리즘을 사용
- SHA-2 사용 권장 (SHA-224SHA-256SHA-384SHA-512)
CRC32
(Cyclic Redundancy Check 32)
- MD5 나 SHA 보다 계산이 간단해서 빠른 속도로 해시계산 가능 (단 안전성은 MD5, SHA 보다 떨어짐)
- 네트워크 간섭, 라인 노이즈, 왜곡 등 오류 감지에 적합
키 스트레칭 반복횟수 - 키 스트레칭을 위해 해시함수의 결과값인 다이제스트를 N 번이상 반복하기 위한 카운트 계수
다이제스트 - 해시 알고리즘을 통해 생성된 고정길이 메시지 출력 값

 

반응형

댓글