[์ด ๊ธฐ๋ฅ์ ๋ผ์ด์ ์ค ๋ฒ์ ๊ธฐ๋ฅ์
๋๋ค]
๋ผ์ด์ ์ค๊ฐ ํ์ํ ๋ถ์ [ํ๋ก๊ทธ๋จ ํค ๋ฐ๊ธ] ํ์ด์ง์์ 30์ผ ๋ผ์ด์ ์ค ๋ฐ๊ธ ๊ฐ๋ฅํฉ๋๋ค
๋ณดํต ๋ธ๋ก ์ํธ ์ฌ์ฉ์ ๋์นญํค๋ฅผ ์ฌ์ฉํด์ผ ํ๋๋ฐ
์ฌ์ค ์ฌ๋๋ค์ด ๊ธฐ์ตํ ์ ์๋ ํจ์ค์๋๋ฅผ ์ฌ์ฉํด ํค๋ฅผ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
ํจ์ค์๋๋ฅผ ์ฌ์ฉํด ํค๋ฅผ ์ถ์ถ ํ ๋ ์ฌ์ฉํ๋๊ฒ์ด PBKDF ์ด๋ค.
์๋ฅผ ๋ค๋ฉด ์ฐ๋ฆฌ๊ฐ ์ธํฐ๋ท ๋ฑ
ํค์์ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋๋ฐ ๊ทธ๋ ์ฌ์ฉ์๋ ์ธ์ฆ์ ์ ํํ ํจ์ค์๋๋ฅผ ์
๋ ฅํ๋ค.
์ด๋ ์
๋ ฅํ ํจ์ค์๋๋ฅผ ๊ฐ์ง๊ณ ํด๋น ์ธ์ฆ์์ ๊ฐ์ธํค๋ฅผ ๋ณตํธํ ํ๋ค.
์ํธํ๋ ๊ฐ์ธํค๋ฅผ ๋ณตํธํ๋ ๋์นญํค ์ํธํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ ํค๋ ํจ์ค์๋๋ฅผ ์ง์ ์ฌ์ฉํ๋๊ฒ ์๋
PBKDF ๋ฅผ ํตํด์ ํค๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก PBKDF ๋ Password-Based Key Derivation Function ์ ์ฝ์๋ก ํค ์ถ์ถ ํจ์์ด๋ค.
๊ทธ๋ฆฌ๊ณ PBKDF1๊ณผ PBKDF2 ๋๊ฐ์ง๊ฐ ์ฃผ๋ก ์๋ ค์ ธ ์๋๋ฐ ์ด์ ๋ํ ๊ธฐ์ ํ์ค์ PKCS#5 (RFC8018)์ ์ ์ ๋์ด ์๋ค.
์ฌ์ค PBKDF1 ๊ฒฝ์ฐ ์์ ์ฑ์ด ์ฝํด์ PBKDF2๋ก ๋์ฒด ๋๊ตฌ ์๋ค.
๊ทธ๋ฆฌ๊ณ BerEditor์์ ํค ์ถ์ถ ๊ธฐ๋ฅ์ PBKDF2์ ๋ด์ฉ์ ๋ค๋ฃฌ๋ค.
ํค๋ฅผ ํ์ ๊ณผ์
DK = PBKDF2( PRF, Password, Salt, c, dkLen )
/* Each hLen-bit block Ti of derived key DK, is computed as follows (with + marking string concatenation): */
DK = T1 + T2 + โฏ + Tdklen/hlen
Ti = F(Password, Salt, c, i)
/* c ๋งํผ ๋ฐ๋ณต์ ํ๋ค. ์ฆ ๋ฐ๋ณต์ ๋ง์ด ํ ์๋ก ์ฐพ๊ธฐ ์ด๋ ค์์ง๋ค */
F(Password, Salt, c, i) = U1 ^ U2 ^ โฏ ^ Uc
U1 = PRF(Password, Salt + INT_32_BE(i))
U2 = PRF(Password, U1)
โฎ
Uc = PRF(Password, Ucโ1)
PRF : ๋๊ฐ์ ๋งค๊ฐ ๋ณ์๋ฅผ ๊ฐ๋ ์์ฌ ๋์ ํจ์( ์: ํค๊ฐ ์๋ HMAC ํจ์ )
Password : ํค๋ฅผ ํ์ํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ ๋ง์คํธ ์ํธ
Salt : ํค์ ๋ณต์กํจ์ ์ถ๊ฐ ํ๊ธฐ ์ํ ๊ฐ์ผ๋ก ์ํ์ค ๋นํธ
c : ๋ฐ๋ณต ์นด์ดํธ
dkLen : ์ถ์ถ ํ๊ณ ์ถ์ ํค์ ๊ธธ์ด ๊ฐ
DK : ์์ฑ๋ ํ์ ํค ๊ฐ
์ด๋ ๊ฒ ํด์ ๋ง๋ ๋ ๊ฒ์ด๋ค.
PBKDF2 ๊ฐ ์์ฑ
๊ทธ๋ผ ๊ฐ๋จํ ์์ ๋ก ๊ฐ์ ๋ง๋ค์ด ๋ณด์
BerEditor ์์ ์ํธ->ํค ๊ด๋ฆฌ->ํค ์ถ์ถํญ์ ์ด์ด์ ์๋ ์ฒ๋ผ ์
๋ ฅํ๋ฉด ๋๋ค.
์๋ ๊ฐ์ด ์ ๋ ฅ ์์ ๊ฐ์ด๋ค.
PRF: HMAC-SHA1
Password : plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd
Salt: A009C1A485912C6AE630D3E744240B04
c : 1,000
dkLen : 16 bytes
์ ๋ ฅ๊ฐ์ ๋ฃ๊ตฌ ํค๋ฅผ BerEditor ์์ ์ถ์ถ ํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ฌ๊ธฐ์ ์ถ์ถ ๋ 17EB4014C8C461C300E9B61518B9A18B ์์ฑ๋ ํค ๊ฐ์ด๋ค.
ํ๋ฉด์์ ์ํธ๊ฐ password์ด๊ตฌ ์ฒจ๊ฐ๊ฐ์ด Salt ๋ฐ๋ณต ์ ๊ฐ c ์ด๋ค
๊ทธ๋ฆฌ๊ณ ํด์ฌ ์ฝค๋ณด๊ฐ PRF ์์ ์ฌ์ฉ ํ HMAC์ ํด์ฌ ํจ์ ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ํค ๊ธธ์ด๊ฐ dkLen ์ด๋ค.
'Manual > BerEditor' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BerEditor] DH (Diffie-Hellman ) Key Agreement ๊ธฐ๋ฅ (1) | 2023.05.30 |
---|---|
[BerEditor] SSS(Sharmir's Secret Sharing) Scheme ์ ๋ํด์ (0) | 2023.05.25 |
[BerEditor] KeyWrap ๊ธฐ๋ฅ ์ฌ์ฉ๋ฒ (0) | 2023.05.22 |
[BerEditor] ๊ฐ์ฒด ์๋ณ์ OID (Object Identifier) ๊ฒ์ (0) | 2023.04.18 |
[BerEditor] ASN.1 BER DER ์ธ์ฝ๋ฉ ๋ฐ์ดํ ๋ณด๊ธฐ (0) | 2023.04.13 |