Manual/CryptokiMan

[CryptokiMan] Random ๊ธฐ๋Šฅ ์‚ฌ์šฉ๋ฒ•

JayKim๐Ÿ™‚ 2023. 6. 20. 09:13

์ด๋ฒˆ์—๋Š” PKCS#11 ์—์„œ ์ œ๊ณต ํ•˜๋Š” Random ๊ธฐ๋Šฅ์„ CryptokiMan ํˆด์„ ์ด์šฉํ•ด ๊ตฌํ•ด ๋ณด์ž
PKCS#11 ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์„œ๋Š” SoftHSM2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์˜€๋‹ค.

Random ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๋ณดํ†ต ๋Œ€์นญํ‚ค๋‚˜ ๋น„๋Œ€์นญํ‚ค๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ์ด๋œ๋‹ค.
์‚ฌ์‹ค PKCS#11 ์—์„œ๋Š” Random ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จํ•œ ํ•จ์ˆ˜๋Š” ๋‘๊ฐ€์ง€ ์ด๋‹ค.

C_SeedRandom ๊ณผ C_GenerateRandom ํ•จ์ˆ˜์ด๋‹ค.

์ด ๋‘ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” PKCS#11 ์—์„œ C_OpenSession ๊นŒ์ง€ ์ง„ํ–‰์ด ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ๋žœ๋ค ๊ด€๋ จ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠน๋ณ„ํžˆ C_Login ์€ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

Session ์ •๋ณด ํ™”๋ฉด

์‚ฌ์‹ค Random ๊ฐ’ ์ž์ฒด์˜ ๊ธฐ๋Šฅ์€ ๋ณด์•ˆ์ƒ ์•ˆ์ „์„ฑ์ด ์—†์–ด๋„ ๋˜์ง€๋งŒ
๋งŒ๋“ค์–ด์ง„ ๋žœ๋ค๊ฐ’์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ฆผ์€ CryptokiMan->์•”ํ˜ธ->Random ์ฐฝ์„ ๋›ฐ์šด ํ•˜๋ฉด์ด๋‹ค.

Random ๊ฐ’ ์‚ฌ์šฉ ํ™”๋ฉด

  • SetSeed : SEED ๊ฐ’์„ ์„ค์ • ํ•œ๋‹ค.
  • Randome Length : ๋Š” ๊ตฌํ•˜๋ ค๋Š” ๋žœ๋ค ๊ฐ’์˜ ๊ธธ์ด๋ฅผ ์ง€์ •ํ•œ๋‹ค.

์ฐธ๊ณ ๋กœ SetSeed ์„ค์ •์€ ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š”๋ฐ ์ด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋‚ด๋ถ€์— ์ •์˜ ๋œ SEED ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋Ÿผ C_GenerateRondom ๊ฒฝ์šฐ๋Š” ๋žœ๋ค ๊ฐ’์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.
ํ•˜์ง€๋งŒ C_SeedRandom ์€ ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ผ๊นŒ?

์‚ฌ์‹ค Random ๊ฐ’๋„ ์ •ํ•ด์ง„ ๊ทœ์น™์œผ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค. ์ฆ‰ Pseudo-random ์œผ๋กœ determnistic ๋žœ๋ค์ด๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ๋ณดํ†ต ๋งํ•˜๋Š” CTR DRBG ๋‚˜ HMAC DRBG ๊ฐ™์€ ๋ฐฉ์‹์ด ๊ทธ ๊ทœ์น™์ด๋‹ค.
์ฆ‰ DRBG์—์„œ SEED ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ SEED ๊ฐ’์ด ๊ฐ™์€๋ฉด ๊ฐ™์€ ๋‚œ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๊ฐ€ SEED๋ฅผ ๋ณ€๊ฒฝ ํ•˜์—ฌ ๋‹ค๋ฅธ ๋‚œ์ˆ˜ ๊ฐ’์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•จ์ด๋‹ค.

์ฆ‰ ๊ฐ™์€ ์กฐ๊ฑด์˜ SEED์™€ ํ™˜๊ฒฝ์ด ๋งž์œผ๋ฉด ๊ฐ™์€ ๋žœ๋ค ๊ฐ’์ด ๋‚˜์˜จ๋Š” ๊ฒƒ์ด๋‹ค.

๋ฌผ๋ก  SEED ๊ฐ’์€ ๋‚ด๋ถ€์—์„œ ๋งŒ๋“ค์–ด์ง€๊ณ  ๋…ธ์ถœ์€ ๋˜์ง€ ์•Š์ง€๋งŒ ๊ฐ™์€ ์ƒํƒœ๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ทธ๋งŒํผ ๋‚œ์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฐ’์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์–ด์„œ
๋‹ค๋ฅธ SEED๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.