Manual/BerEditor

[BerEditor] ML-KEM ํ‚ค ์Œ ์ƒ์„ฑ ๋ฐ ํ‚ค ์•”ํ˜ธํ™”(Encapsulation)

JayKim๐Ÿ™‚ 2025. 10. 18. 12:34

[์ด ๊ธฐ๋Šฅ์€ ๋ผ์ด์„ ์Šค ๋ฒ„์ „ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค]

๋ผ์ด์„ ์Šค๊ฐ€ ํ•„์š”ํ•œ ๋ถ„์€ ํ”„๋กœ๊ทธ๋žจ ํ‚ค ๋ฐœ๊ธ‰ ํŽ˜์ด์ง€์—์„œ 30์ผ ๋ผ์ด์„ ์Šค ๋ฐœ๊ธ‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค
์ด ๊ธฐ๋Šฅ์€ BerEditor 2.5.0 ๋ฒ„์ „ ์ด์ƒ์—์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.

BerEditor ํˆด์„ ์ด์šฉํ•ด PQC ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ML-KEM ํ‚ค ์Œ ์ƒ์„ฑ ๋ฐ ๋Œ€์นญํ‚ค ์•”/๋ณตํ˜ธํ™”๋ฅผ ํ•ด๋ณด์ž
์—ฌ๊ธฐ ์˜ˆ์ œ๋กœ ์‹คํ–‰ ํ™˜๊ฒฝ์€ ์–ธ์–ด๊ฐ€ ์˜์–ด๋กœ ๋˜์–ด ์žˆ๋‹ค. ํ•œ๊ธ€ ๊ฒฝ์šฐ๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ํ•œ๊ธ€๋กœ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

ML-KEM ํ‚ค์Œ ์ƒ์„ฑ

๋จผ์ € ์ „์ž ์„œ๋ช…์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ML-KEM ํ‚ค ์Œ์„ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.
ํ‚ค ์Œ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” BerEditor -> Service -> KeyPair Manager ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
KeyPair Manager ์—์„œ Gen KeyPair๋ฅผ ์„ ํƒ ํ•œ๋‹ค

ํ‚ค ์Œ ์ƒ์„ฑ ์„ ํƒ ํ™”๋ฉด

KeyPair ์ฐฝ์—์„œ ํ‚ค์Œ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  PQC ๋ถ€๋ถ„์˜ ML KEM ๋ฅผ ์„ ํƒํ•˜๊ณ 
KeyLength ๋Š” 3( KEM_512, KEM_768, KEM_1024 ) ๊ฐœ ์ค‘์— ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค

MK-KEM ํ‚ค ์Œ ์ƒ์„ฑ

ํ‚ค ์Œ์ด ์ƒ์„ฑ ๋˜๋ฉด KeyPair Manager ์—์„œ ์ž…๋ ฅํ•œ ์ด๋ฆ„์œผ๋กœ ํ‚ค ์Œ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ƒ์„ธ ํ‚ค ๊ฐ’์„ ๋ณผ๋ ค๋ฉด ํ•ด๋‹น ํ‚ค๋ฅผ ๋”๋ธ”ํด๋ฆญํ•˜๋ฉด ํ‚ค ๊ฐ’์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

ML-KEM ๊ฐœ์ธํ‚ค ๋ณด๊ธฐ

์‚ฌ์‹ค KeyPair Manager ์—์„œ ์ƒ์„ฑํ•œ ํ‚ค ์Œ์€ ํ…Œ์ŠคํŠธ์šฉ์ด๋ผ ํŠน๋ณ„ํžˆ ๊ฐœ์ธํ‚ค์— ๋Œ€ํ•ด์„œ๋Š” ์ˆœ์ˆ˜ํ•œ ๊ฐ’์œผ๋กœ PEMํ˜•์‹์œผ๋กœ ์ €์žฅ์ด ๋œ๋‹ค.
KeyPair Manager ๋Š” ์•ˆ์ „ํ•œ ๋ณด๊ด€ ๋ณด๋‹ค๋Š” ํ…Œ์ŠคํŠธ ์šฉ์œผ๋กœ ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค.

ML-KEM ์•”ํ˜ธํ™” (Encapsulation)

์ƒ์„ฑํ•œ ML-KEM ํ‚ค ์Œ์œผ๋กœ ํ‚ค ์•”ํ˜ธํ™” ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” BerEditor->Cryptography->Key Manage ๋ฉ”๋‰ด๋ฅผ ์„ ํƒ ํ•œ๋‹ค.

ํ•ด๋‹น ์ฐฝ์ด ์—ด๋ฆฌ๋ฉด KEM ํƒญ์„ ์„ ํƒํ•˜์ž
๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์ฐฝ์—์„œ Encapsulate ๋ผ๋””์˜ค ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์ž (๋””ํดํŠธ๋กœ ์„ ํƒ ๋˜์–ด ์žˆ๋‹ค).

ํŠน๋ณ„ํžˆ ์ž…๋ ฅ ๋ฐ์ดํƒ€๋Š” ์—†๊ณ  keyPair Manager์—์„œ ์ด์ „์— ์ƒ์„ฑํ•œ ํ‚ค๋ฅผ ML-KEM ํ‚ค๋ฅผ ์„ ํƒ ํ•˜์ž (๋”๋ธ”ํด๋ฆญ)
ํ•ด๋‹น ํ‚ค๋ฅผ ์„ ํƒํ•˜๋ฉด Wrapped Key ์™€ ์ƒ์„ฑ๋œ ํ‚ค ๊ฐ’์ด ๋‚˜ํƒ€๋‚œ๋‹ค.
๋‚ด๋ถ€์ ์œผ๋กœ KeyPair Manager ์—์„œ ๊ณต๊ฐœํ‚ค๋ฅผ ์ฝ์–ด์„œ ์•”ํ˜ธํ™”๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค.

KEM Encapsulation

์—ฌ๊ธฐ์„œ Wrapped Key ๊ฐ€ ์•”ํ˜ธํ™” ๋ฐ์ดํƒ€์ด๋ฏ€๋กœ ์ด ๊ฐ’์„ ๊ฐœ์ธํ‚ค๊ฐ€ ์žˆ๋Š” ์ชฝ์— ๋ณด๋‚ด์ฃผ๋Š” ๊ฐ’์ด๊ณ 
์ƒ์„ฑ ํ‚ค ๊ฐ’์€ ์ž์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค.

ML-KEM ํ‚ค ๋ณตํ˜ธํ™” (Decapsulation)

์ƒ์„ฑํ•œ ML-KEM ํ‚ค ์Œ์œผ๋กœ ํ‚ค ๋ณตํ˜ธํ™” ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” BerEditor->Cryptography->Key Manage ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•œ๋‹ค.

์—ด๋ฆฐ ์ฐฝ์—์„œ KEM ํƒญ์„ ์—ด์–ด ์ฃผ์ž
๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ์ฐฝ์—์„œ Decapsulate ๋ผ๋””์˜ค ๋ฒ„ํŠผ์„ ํด๋ฆญ ํ•˜์ž

์ž…๋ ฅ ๋ฐ์ดํƒ€์—๋Š” Wrapped Key ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ณ  Run ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๊ฒ€์ฆํ•  ํ‚ค๋ฅผ ์„ ํƒํ•˜๋Š” KeyPair Manager ์ฐฝ์ด ๋‚˜ํƒ€๋‚œ๋‹ค.
์ด KeyPair Manager ์—์„œ ๊ธฐ์กด์— ์ƒ์„ฑํ•œ ML-KEM ํ‚ค๋ฅผ ์„ ํƒํ•˜๋ฉด ๋ณตํ˜ธํ™” ๋œ ํ‚ค๊ฐ€ ๋‚˜์˜จ๋‹ค.
๋‚ด๋ถ€์ ์œผ๋กœ KeyPair Manager ์—์„œ ๊ฐœ์ธํ‚ค๋ฅผ ์ฝ์–ด์„œ ๋ณตํ˜ธํ™” ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

KEM Decapsulation

๋งˆ๋ฌด๋ฆฌ

ํ˜„์žฌ PQC ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋Œ€์นญํ‚ค๋ฅผ ์–‘์ชฝ์ด ๊ณต์œ  ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ML-KEM ํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณต์œ  ํ•˜๊ฒŒ ๋œ๋‹ค.
์ด๋•Œ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜ค๋Š” 32๋ฐ”์ดํŠธ ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์„œ๋กœ ํ‚ค ๊ณต์œ ๋ฅผ ํ•˜๊ฒŒ ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.