PRNG, ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ

2021. 9. 16. 17:57ใ†BACKEND/Security

 

***************** INDEX *****************

 

๐ŸŽฒ Random Number

๐ŸŽซ Randomness

โš›๏ธ Entropy

๐Ÿ”— RNG

๐ŸŽŸ PRNG

 

********************************************


Random Number ?

๋‚œ์ˆ˜๋Š” ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅ์„ฑ์„ ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•ด ๋ฌด์ž‘์œ„ํ•˜๊ฒŒ ์ƒ์„ฑ๋˜๋Š” ๊ฐ’์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ •๋ง ๋žœ๋คํ•œ ๊ฐ’์„ ๋œปํ•˜์ฃ .

 

์•”ํ˜ธํ•™์—์„œ ๋‚œ์ˆ˜๋Š” ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. 

์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค.

 

1. ๋Œ€์นญํ‚ค ์ž์ฒด, ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์—์„œ์˜ ๊ฐœ์ธํ‚ค

2. ๋ธ”๋ก์•”ํ˜ธ ์šด์šฉ๋ชจ๋“œ - ์ดˆ๊ธฐํ™” ๋ฒกํ„ฐ(IV), ์นด์šดํ„ฐ(CTR) ์ƒ์„ฑ

3. ํŒจ์Šค์›Œ๋“œ ๊ธฐ๋ฐ˜ ์•”ํ˜ธ - ์†”ํŠธ(Salt) ์ƒ์„ฑ

 

 

๊ทธ๋Ÿฐ๋ฐ, ์‚ฌ์šฉ๋˜๋Š” ๋‚œ์ˆ˜๋“ค์€ ์ •๋ง ๋žœ๋คํ• ๊นŒ์š”? 

 

์•„์ฃผ ์˜ˆ์ „์— C์–ธ์–ด๋ฅผ ๋ฐฐ์šธ ๋•Œ ๋‚œ์ˆ˜๋ฅผ ์ฒ˜์Œ ์•Œ๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ,

๊ทธ ๋•Œ ๊ต์ˆ˜๋‹˜๊ป˜์„œ ์ง„์งœ ๋žœ๋ค์€ ์•„๋‹ˆ์ง€๋งŒ ๋น„์Šทํ•˜๊ฒŒ ๋งŒ๋“  ๊ฐ’์ด๋ผ๊ณ  ์†Œ๊ฐœํ•ด์ฃผ์…จ๋˜ ๊ฒƒ์ด ์ƒ๊ฐ๋‚ฉ๋‹ˆ๋‹ค.

๊ทธ ๋•Œ๋Š” ๊ทธ ์„ค๋ช…์ด ๋ญ”๊ฐ€ํ–ˆ๋Š”๋ฐ, ์ด๋ฒˆ์— ์•”ํ˜ธํ•™์„ ๋ฐฐ์šฐ๋ฉด์„œ ์ œ๋Œ€๋กœ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์–ด์š”.

 

์ด ๊ธ€์„ ์ฝ๋Š” ๋ถ„๋“ค๋„ ๊ถ๊ธˆ์ฆ์ด ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋„ค์š” ๐Ÿ™Œ๐Ÿป

 

 

 

๋‚œ์ˆ˜์˜ ์„ฑ์งˆ

๋ฌด์ž‘์œ„์„ฑ Randomness : ํ†ต๊ณ„์ ์ธ ํŽธ์ค‘์ด ์—†์ด ์ˆ˜์—ด์ด ๋ฌด์ž‘์œ„๋กœ ๋˜์–ด ์žˆ๋Š” ์„ฑ์งˆ๋กœ '์•„๋ฌด๋ ‡๊ฒŒ' ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์„ฑ์งˆ.

์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅ์„ฑ Unpredictability : ๊ณผ๊ฑฐ์˜ ์˜์‚ฌ๋‚œ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ ๋‹ค์Œ ์ƒ์„ฑ๋  ์ˆ˜๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ์„ฑ์งˆ.

์žฌํ˜„ ๋ถˆ๊ฐ€๋Šฅ์„ฑ Reconstruction is impossible : ๊ฐ™์€ ์ˆ˜์—ด์„ ์žฌํ˜„ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์„ฑ์งˆ

 

์ด ๊ธ€์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ์•”ํ˜ธํ•™์ž…๋‹ˆ๋‹ค.

์•”ํ˜ธํ•™์˜ ์‹œ๊ฐ์œผ๋กœ ๋‚œ์ˆ˜๋ฅผ ๋‹ค์‹œ ํ•œ ๋ฒˆ ํŒŒ์•…ํ•ด๋ด…์‹œ๋‹ค.

 

์•”ํ˜ธํ•™์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‚œ์ˆ˜์˜ ์กฐ๊ฑด์„ ๋”ฐ์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์„ฑ์งˆ์„ ์ถฉ์กฑํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ๋‚œ์ˆ˜๋ฅผ ์•ฝํ•œ ์˜์‚ฌ๋‚œ์ˆ˜/๊ฐ•ํ•œ ์˜์‚ฌ๋‚œ์ˆ˜/์ง„์„ฑ๋‚œ์ˆ˜๋กœ ๊ตฌ๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

 

 

โœ”๏ธ ๋ฌด์ž‘์œ„์„ฑ randomness

ํ†ต๊ณ„์ ์ธ ์„ฑ์งˆ์„ ์กฐ์‚ฌํ–ˆ์„ ๋•Œ, ์น˜์šฐ์นจ์ด ์—†์œผ๋ฉด ๋ฌด์ž‘์œ„ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.

๋‚œ์ˆ˜๊ฐ€ ๋ฌด์ž‘์œ„์„ฑ๋งŒ ๊ฐ€์ง„๋‹ค๋ฉด ์•ˆ์ „ํ• ๊นŒ์š”?  โŒ ๋ฌด์ž‘์œ„ํ•˜๋‹ค๊ณ ๋งŒ ํ•ด์„œ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฑด ๋ถˆ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. 

๋ฌด์ž‘์œ„์„ฑ๋งŒ ๊ฐ€์ง€๋Š” ๋‚œ์ˆ˜ ๐Ÿ‘‰๐Ÿป ์•ฝํ•œ ์˜์‚ฌ๋‚œ์ˆ˜ (Pseudo Random)

 

โœ”๏ธ ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅ์„ฑ Unpredictability

๊ณต๊ฒฉ์ž๊ฐ€ ๋ชจ๋“  ์˜์‚ฌ๋‚œ์ˆ˜์—ด์„ ์–ป๋Š”๋‹ค๊ณ  ํ• ์ง€๋ผ๋„ ๋‹ค์Œ์— ์ถœ๋ ฅ๋  ๋‚œ์ˆ˜๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์—์„œ ์–ธ๊ธ‰ํ•˜๊ฒ ์ง€๋งŒ, ์˜์‚ฌ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ(PRNG)์˜ Seed ๋˜ํ•œ ๊ฐ•ํ•œ ์˜์‚ฌ๋‚œ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ PRNG์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž์ฒด๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

์˜์‚ฌ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐ๊ฐ’์ด ๋˜๋Š” ๊ฐ’(seed)๋Š” ์•Œ๋ ค์ ธ์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค(์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ). 

 

์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅ์„ฑ์„ ๊ฐ€์ง€๋Š” ๋‚œ์ˆ˜ ๐Ÿ‘‰๐Ÿป๊ฐ•ํ•œ ์˜์‚ฌ๋‚œ์ˆ˜(Pseudo Random)

๊ฐ•ํ•œ ์˜์‚ฌ๋‚œ์ˆ˜๋Š” ๋‹น์—ฐํžˆ ๋ฌด์ž‘์œ„์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

๊ฐ•ํ•œ ์˜์‚ฌ๋‚œ์ˆ˜๋ฅผ ๊ฐ€์งˆ ๋•Œ๋ถ€ํ„ฐ ์•”ํ˜ธ ๊ธฐ์ˆ ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์•”ํ˜ธ ์‹œ์Šคํ…œ์— ์‚ฌ์šฉ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ ์–ด๋„ ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅ์„ฑ์„ ๊ฐ€์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค.

 

โœ”๏ธ ์žฌํ˜„ ๋ถˆ๊ฐ€๋Šฅ์„ฑ Reconstruction is impossible

์ง„์ •ํ•œ ๋‚œ์ˆ˜๋ฅผ ์ด๋ฃจ๋Š” ์กฐ๊ฑด์ด ์•„๋‹Œ๊ฐ€ ์‹ถ์€๋ฐ์š”.
์žฌํ˜„ ๋ถˆ๊ฐ€๋Šฅ์„ฑ์„ ๊ฐ€์ง€๋Š” ๋‚œ์ˆ˜ ๐Ÿ‘‰๐Ÿป์ง„์„ฑ ๋‚œ์ˆ˜ (True Random)

 

ํ•˜์ง€๋งŒ, ์ปดํ“จํ„ฐ์˜ ํŠน์„ฑ์ƒ ๊ทœ์น™์ ์œผ๋กœ ๋™์ผํ•œ ๋งค์ปค๋‹ˆ์ฆ˜์„ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์žฌํ˜„๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฌผ๋ฆฌํ˜„์ƒ์œผ๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹น์ผ์˜ ์˜จ๋„๋‚˜ ์Šต๋„, ์†Œ๋ฆฌ์˜ ๋ณ€ํ™” ๋“ฑ, ์‚ฌ์šฉ์ž์˜ ๋งˆ์šฐ์Šค ์ปค์„œ์˜ ์›€์ง์ž„, ํ‚ค ์ŠคํŠธ๋ก์˜ ์ž…๋ ฅ ๋ณ€ํ™” ๊ฐ’ ๋“ฑ์ด ์žˆ์ฃ .

ํ˜น์€ ๋ฐฉ์‚ฌ์„  ๊ด€์ธก๊ธฐ์˜ ์ถœ๋ ฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ถ€๋ถ„์€ RNG๋ฅผ ์•Œ์•„๋ณผ ๋•Œ ๋‹ค์‹œ ์–ธ๊ธ‰๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

 

 

Randomness ?

์•”ํ˜ธํ•™์—์„œ ์•„์ฃผ ์ค‘์š”ํ•œ ์—ญํ• ์ด์ฃ . 

์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ๋ณด์ด๋Š” ์„ฑ์งˆ์ž…๋‹ˆ๋‹ค.

 

๋ฌด์ž‘์œ„์„ฑ์˜ ํ™•๋ฅ ๋ถ„ํฌ

์•„๋ž˜์˜ ์—”ํŠธ๋กœํ”ผ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์ „์— ํ™•๋ฅ ๋ถ„ํฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

๋ฌด์ž‘์œ„ ๊ณผ์ • Randomized Process์˜ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฒฐ๊ณผ๋Š” ํ™•๋ฅ ๋ถ„ํฌ๋กœ ํŠน์ •์ง€์–ด ์ง‘๋‹ˆ๋‹ค.

์ ˆ๋Œ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ๋‹ค๋Š” ์˜๋ฏธ์ธ 0๋ถ€ํ„ฐ ๋ฐ˜๋“œ์‹œ ์ผ์–ด๋‚œ๋‹ค๋Š” 1๊นŒ์ง€์˜ ์ˆซ์ž๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

 

ํ™•๋ฅ ๋ถ„ํฌ๋Š” ๋ชจ๋“  ๋‹ค๋Šฅํ•œ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•ด์•ผํ•˜๋ฉฐ,๋ฐ˜๋“œ์‹œ ๋ชจ๋“  ํ™•๋ฅ ์˜ ํ•ฉ์ด 1์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™•๋ฅ ๋ถ„ํฌ๋Š” ๊ท ๋“ฑ๋ถ„ํฌ์™€ ๋น„๊ท ๋“ฑ๋ถ„ํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ท ๋“ฑ๋ถ„ํฌ uniform distribution: ๋ชจ๋“  ํ™•๋ฅ ์ด ๊ฐ™์€ ํ™•๋ฅ ๋ถ„ํฌ.

๋น„๊ท ๋“ฑ๋ถ„ํฌ non-uniform distribution: ๋ชจ๋“  ํ™•๋ฅ ์ด ๋™์ผํ•˜์ง€ ์•Š์€ ๋ถ„ํฌ.

 

 

 

Entropy

์—”ํŠธ๋กœํ”ผ๋Š” ์•„์ฃผ ์œ ๋ช…ํ•œ ๊ฐœ๋…์ด์ฃ .

๋ฐ”๋กœ ๋ถˆํ™•์‹ค์„ฑ์˜ ์ธก๋„, ์ฆ‰ ์‹œ์Šคํ…œ์— ์กด์žฌํ•˜๋Š” ๋ฌด์งˆ์„œ์˜ ์ธก๋„(Measure)์ž…๋‹ˆ๋‹ค.

์ฆ‰ '์–ผ๋งˆ๋‚˜ ๋ฌด์ž‘์œ„ํ•œ๊ฐ€? ์–ผ๋งˆ๋‚˜ ๋ถˆํ™•์‹คํ•œ๊ฐ€'๋ฅผ ์ˆ˜์น˜๋กœ ํ‘œ์‹œํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚œ์ˆ˜์˜ ๋ฌด์ž‘์œ„์„ฑ์„ ์ˆ˜์น˜๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ .

 

 

ํ™•๋ฅ ๋ถ„ํฌ์˜ ์—”ํŠธ๋กœํ”ผ

ํ™•๋ฅ ๋ถ„ํฌ๋ฅผ ํ†ตํ•ด ์ด ์—”ํŠธ๋กœํ”ผ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‘œ๋ณธ ๊ณต๊ฐ„์ด n๊ฐœ์ธ ํ™•๋ฅ  ๋ถ„ํฌ์—์„œ์˜ ์—”ํŠธ๋กœํ”ผ๋Š” ์•„๋ž˜์˜ ์ˆ˜์‹์„ ํ†ตํ•ด ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

์ˆ˜์‹์— ๋Œ€ํ•œ ๊ฐ์„ ์žก๊ธฐ ์œ„ํ•ด ๊ท ๋“ฑ๋ถ„ํฌ๋ฅผ ์ด๋ฃจ๋Š” ๋ฌด์ž‘์œ„ 128-bit ํ‚ค์˜ ์—”ํŠธ๋กœํ”ผ๋ฅผ ๊ฐ™์ด ๊ตฌํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

 

ํ•˜๋‚˜์˜ 128-bitํ‚ค๋ฅผ ์ด๋ฃจ๋Š” ํ™•๋ฅ ์€ $\frac{1}{2^{128}}$์ด๋ฏ€๋กœ,

$-(\frac{1}{2^{128}}\times\log(\frac{1}{2^{128}}))\times2^{128}$ ์œผ๋กœ ์‹์„ ์„ธ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๋”ฐ๋ผ์„œ, 128์ด ๋‚˜์˜ค๊ฒŒ ๋˜์ฃ .

 

 

๋ถ„ํฌ์— ๋”ฐ๋ฅธ ์—”ํŠธ๋กœํ”ผ์˜ ํŠน์ง•์€ ๋ถ„ํฌ๊ฐ€ ๊ท ๋“ฑํ•˜์ง€ ์•Š์„์ˆ˜๋ก ์—”ํŠธ๋กœํ”ผ๊ฐ€ ๋‚ฎ์•„์ง€๊ณ , ๋ฌด์ž‘์œ„์„ฑ์ด ์ž‘์•„์ง„๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์–ด๋–ค ํ™•๋ฅ ์œผ๋กœ ํŽธํ–ฅ๋˜์–ด ์žˆ์œผ๋ฉด ์—”ํŠธ๋กœํ”ผ๋Š” ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.

 

 

RNG

RNG๋Š” Random Number Generator๋กœ, ๋‚œ์ˆ˜ ์ƒ์„ฑ๊ธฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด, ๋‚œ์ˆ˜๋Š” ์–ด๋–ป๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

 

๋‚œ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ์œ„์—์„œ ํ•œ ๋ฒˆ ์–ธ๊ธ‰ํ–ˆ๋Š”๋ฐ์š”.

๋‹ค์‹œ ์ •๋ฆฌํ•˜์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

โœ”๏ธ ์•„๋‚ ๋กœ๊ทธ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—”ํŠธ๋กœํ”ผ๋ฅผ ์ˆ˜์ง‘

ex. ์˜จ๋„, ์Šต๋„, ์†Œ๋ฆฌ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ

ํ•˜์ง€๋งŒ ์ธก์ •์ด ์–ด๋ ค์šธ ๋•Œ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

 

โœ”๏ธ ์‚ฌ์šฉ์ž์˜ ํ™œ๋™์„ ํ†ตํ•œ ์—”ํŠธ๋กœํ”ผ ์ˆ˜์ง‘

์ปค์„œ์˜ ์›€์ง์ž„, ํ‚ค๋ณด๋“œ ํ‚ค ์ŠคํŠธ๋ก ์‹œํ€€์Šค, ๋„คํŠธ์›Œํฌ๋‚˜ ๋””์Šคํฌ ํ™œ๋™

ํ•˜์ง€๋งŒ ๊ณต๊ฒฉ์ž๋กœ ๋ถ€ํ„ฐ์˜ ์กฐ์ž‘๊ณผ ์•…์šฉ์— ์ทจ์•ฝํ•˜๋‹ค๋Š” ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

โœ”๏ธ ์–‘์ž ๋‚œ์ˆ˜ ๋ฐœ์ƒ๊ธฐ

์ด๋ก ์ ์œผ๋กœ True Random์„ ์–ป์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋น ๋ฅด๊ฒŒ ์‚ฐ์ถœํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ธฐ์ˆ ์  ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ทธ๋ž˜์„œ ๊ณ ์•ˆ๋œ ๊ฒƒ์ด ์งง์€ ์ง„์„ฑ ๋‚œ์ˆ˜์—ด์„ ํ†ตํ•ด ๊ธด ๋‚œ์ˆ˜์—ด์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ฐ”๋กœ ์˜์‚ฌ๋‚œ์ˆ˜๋ฐœ์ƒ๊ธฐ Pseudo Random Number Generator์ž…๋‹ˆ๋‹ค.

 

์ฐธ๊ณ ๋กœ, ๋‚œ์ˆ˜ ๋ฐœ์ƒ๊ธฐ๋Š” ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๋ฏธ๋ฆฌ ์ฐธ๊ณ ๋กœ ๋ง์”€๋“œ๋ฆฌ์ž๋ฉด,

TRNG (์ง„์„ฑ๋‚œ์ˆ˜๋ฐœ์ƒ๊ธฐ)๋ฅผ ํ†ตํ•ด PRNG (์˜์‚ฌ๋‚œ์ˆ˜๋ฐœ์ƒ๊ธฐ)์˜ Seed๊ฐ’์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

 

 

PRNG

PRNG๋Š” Pseudo Random Number Generator์˜ ์•ฝ์ž๋กœ, ์˜์‚ฌ ๋‚œ์ˆ˜ ๋ฐœ์ƒ๊ธฐ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๋‹จ์–ด์—์„œ ๋Š๋‚„ ์ˆ˜ ์žˆ๋“ฏ์ด ๊ฐ€์งœ? ๋ชจ๋ฐฉ๋œ? ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์™„์ „ํ•œ Random์€ ์•„๋‹ˆ์ง€๋งŒ, Random์„ ๋”ฐ๋ผํ•œ ๊ฑฐ์ฃ . 

๊ทธ๋ž˜์„œ ํ•œ์ž๋กœ ์˜์‚ฌ๋ผ๊ณ  ๋ถ™์ธ ๊ฒƒ ๊ฐ™์•„์š”.

 

์˜์‚ฌ(็–‘ไผผ: ๋น„๊ตํ•  ์˜, ๋น„์Šทํ•  ์‚ฌ | Pseudo: ๊ฐ€์งœ์˜- )

 

 

 

PRNG ๊ตฌ์„ฑ

 

์˜์‚ฌ ๋‚œ์ˆ˜ ๋ฐœ์ƒ๊ธฐ๋ฅผ ๋„์‹ํ™”ํ•œ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค.

์งง์€ ์ง„์„ฑ๋‚œ์ˆ˜์ธ Seed๋ฅผ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๊ธด ์˜์‚ฌ๋‚œ์ˆ˜์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

โœ”๏ธ Seed

๋‚ด๋ถ€์ƒํƒœ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ง„์„ฑ ๋‚œ์ˆ˜ (Randomํ•œ ๋น„ํŠธ์—ด) ์ด๋ฉฐ,

์™ธ๋ถ€์— ์•Œ๋ ค์ ธ์„œ๋Š” ์•ˆ๋˜๋ฉฐ ์˜ˆ์ธก๊ฐ€๋Šฅํ•˜๋ฉด ์•ˆ๋˜๋Š” ๋น„๋ฐ€ ๊ฐ’์ž…๋‹ˆ๋‹ค.

 

โœ”๏ธ ๋‚ด๋ถ€ ์ƒํƒœ

PRNG๊ฐ€ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ฐ’์„ ๋œปํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ’์„ ๊ธฐ์ดˆ๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์˜์‚ฌ ๋‚œ์ˆ˜๋ฅผ ๋„์ถœ์‹œํ‚ต๋‹ˆ๋‹ค.

์ด ๊ฐ’์„ ํ†ตํ•ด ์˜์‚ฌ๋‚œ์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ

์™ธ๋ถ€์— ์•Œ๋ ค์ ธ์„œ๋Š” ์•ˆ๋˜๋ฉฐ ์˜ˆ์ธก๊ฐ€๋Šฅํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ๋ณด๋ฉด ์•„๋ž˜์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

Seed๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์˜์‚ฌ ๋‚œ์ˆ˜์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 

๋‹ค์Œ ์˜์‚ฌ๋‚œ์ˆ˜์—ด์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Seed ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ๋‚ด๋ถ€์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ๋œ ๋‚ด๋ถ€์ƒํƒœ๋ฅผ ํ†ตํ•ด ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋‹ค์Œ ์˜์‚ฌ ๋‚œ์ˆ˜์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

 

์ผ๋ฐฉํ–ฅ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ ,

์ƒˆ๋กœ์šด ๊ฐ’์„ ๋„์ถœ์‹œํ‚ค์œ„ํ•ด 1์„ ์ฆ๊ฐ€ํ•˜์—ฌ ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋•Œ, ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ๊ฑฐ์นœ ๋‚œ์ˆ˜๋ฅผ ๋‚ด๋ถ€์ƒํƒœ๋กœ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

์ •๋‹ต์€ ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์™œ์ผ์ง€ ํ•œ ๋ฒˆ ๊ณผ์ •์„ ๊ทธ๋ ค๋ณด์„ธ์š”!

 

 

 

ANSI X9.17

์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ PRNG์˜ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ๋งŽ์€ ๊ณณ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ™•์ธํ•˜๊ณ  ํฌ์ŠคํŒ…์„ ๋งˆ์น˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” PRNG๋Š” ์œ„์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ์„ ์ •๋ฆฌํ•ด๋ณผ๊ฒŒ์š”!

 

1.  Seed์˜ ์ผ๋ถ€๋ถ„์„ ๋‚ด๋ถ€์ƒํƒœ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ์ผ๋ถ€๋ถ„์„ ์•”ํ˜ธํ™” ํ‚ค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

2. ํ˜„์žฌ ์‹œ๊ฐ์„ ํ†ตํ•ด ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์•”ํ˜ธํ™”(A) ํ•ฉ๋‹ˆ๋‹ค.

3. ์ดˆ๊ธฐํ™”๋œ ๋‚ด๋ถ€์ƒํƒœ์™€ A๋ฅผ XOR์—ฐ์‚ฐ์„ ํ•œ ํ›„ ์•”ํ˜ธํ™” ํ‚ค์™€ ํ•จ๊ป˜ ์•”ํ˜ธํ™”(B)ํ•ฉ๋‹ˆ๋‹ค. 

4. B๋ฅผ ์˜์‚ฌ๋‚œ์ˆ˜๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (๊ทธ๋ฆผ์—์„œ ๋‚ด๋ถ€์ƒํƒœ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๋ช…์‹œ๋˜์–ด ์žˆ๋Š”๋ฐ, ์˜์‚ฌ๋‚œ์ˆ˜ ์—ด์ž…๋‹ˆ๋‹ค.)

5. B์˜ ๊ฐ’์„ A์™€ XORํ•œ ํ›„, ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์ด์šฉํ•ด ์•”ํ˜ธํ™”(C)ํ•ฉ๋‹ˆ๋‹ค.

6. C๋ฅผ ๋‚ด๋ถ€์ƒํƒœ ๊ฐ’์œผ๋กœ Updateํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿฐ๋ฐ, ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ •๋ง ์•ˆ์ „ํ• ๊นŒ์š”?

๊ณต๊ฒฉ์ž๋Š” ๋ฐœ์ƒ๊ธฐ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•Œ๊ณ  ์žˆ๊ณ , ํ˜„์žฌ์‹œ๊ฐ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋น„๋ฐ€๊ฐ’์ธ Seed๋ฅผ ํ†ตํ•ด ์ƒ์„ฑํ•œ ์•”ํ˜ธํ™”ํ‚ค์™€ ๋‚ด๋ถ€ ์ƒํƒœ ์ดˆ๊ธฐ๊ฐ’์„ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—

์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‚ด๋ถ€ ์ƒํƒœ ๊ฐ’๊ณผ ์˜์‚ฌ๋‚œ์ˆ˜ ๊ฐ’์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

๊ทธ๋Ÿผ ์—ฌ๊ธฐ๊นŒ์ง€ PRNG์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ ์€ PRNG ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•ด์„œ ๊ฒ€์ƒ‰์œผ๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋ฌด์ž‘์œ„๋กœ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

 

๋‚œ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์€ ์•”ํ˜ธํ™”๋„ ์žˆ์ง€๋งŒ, ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ๋‚œ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—

๋ณด์•ˆ์„ ์ƒ๊ฐํ•˜์ง€ ์•Š์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

๋ณด์•ˆ์„ ์œ„ํ•œ PRNG๋ฅผ ๊ณ ๋ คํ•œ๋‹ค๋ฉด ์•”ํ˜ธํ•™์ ์ธ PRNG์ธ์ง€ ํ•œ ๋ฒˆ์”ฉ ํ™•์ธํ•ด๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค!

 

 

 

 

ํ”ผ๋“œ๋ฐฑ์ด๋‚˜ ์ˆ˜์ • ๋ถ€๋ถ„์€ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ์ •๋ง ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ™Œ๐Ÿป

'BACKEND > Security' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

RSA, ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ (1)  (4) 2021.10.14
CRT, Modulo Operation  (0) 2021.09.22