SP800-108 KDF
2023. 1. 16. 16:12ㆍSecurity ★ Development/Cryptology
반응형
NIST에서 발행한 SP800-108 표준은 KDF에 관한 것입니다.
보통 간단한 암호화의 대칭키같은경우 32byte 길이의 rand bytes를 뽑아서 사용하지만 중요 서비스에서 키교환같이 아키텍쳐상 보안적으로 중요한 로직은 KDF로 키를 생성하게됩니다.
SP800-108은 KDF를 어떻게 구현해야하냐에 대한 표준입니다.
여러 모드가 있지만 counter 모드만 살펴보겠습니다.
이에 대한 예제는 아래 링크에 있지만 자바로 되어있습니다.
INPUT
key : KDF로 키를 생성하기 위한 시드키입니다. ECDH 등을 통해 생성된 shared secret같은 값이죠.
label, context : 정해지지 않은 input으로 키를 생성하기 위한 목적, 이름, 구분자 등을 넣어주게 됩니다. salt로 사용된다고 보면됩니다.
L : KDF로 생성할 키의 길이
PRF : Pseudorandom function으로 HMAC과 같은 로직을 말합니다.
1. label, 0x00, context, L로 fixed input data를 생성합니다.
2. 1값에 counter값을 추가합니다.
3. key와 위 2에서 생성된 데이터로 HMAC을 돌립니다.
4. HMAC값을 output에 붙이고 길이가 L보다 작으면 counter값을 올려서 위를 반복합니다.
끝
'Security ★ Development > Cryptology' 카테고리의 다른 글
openssl 암호화(AESGCM256) (0) | 2023.01.08 |
---|---|
FHMQV (0) | 2016.10.30 |
Cryptology 문제 2 (0) | 2015.12.03 |
Cryptology 문제 1 (0) | 2015.12.03 |