์ด ์ ์ฅ์๋ ๋ํ์ ์ธ ๋น์์(post-quantum ์ด์ ) ์ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ ํฉ์ฑ ๋ฐ ํ๊ท ํ ์คํธ๋ฅผ ๋ชจ์๋ ํ๋ก์ ํธ์ ๋๋ค. ๋ชฉํ๋ ๊ณ ์ ์๊ณ ๋ฆฌ์ฆ, ์ทจ์ฝํ ํ๋ผ๋ฏธํฐ ์ ํ, ๊ทธ๋ฆฌ๊ณ ํฅํ ์์ ๋ด์ฑ ์ ํ์ ๋ฐฉํดํ ์ ์๋ ๋ค์ด๊ทธ๋ ์ด๋ ๋์์ ์กฐ๊ธฐ์ ์๋ณํ๋ ๊ฒ์ ๋๋ค. ๊ฐ ํ ์คํธ ์ค์ํธ๋ ํน์ ์ ๊ณต์๋ API ํ๋ฉด์ ์ค์ฌ์ผ๋ก, ๋์นญํค ์ํธํ, ๋น๋์นญ ํค ๊ตํ, ์ ์์๋ช , ํด์, ๋ฉ์์ง ์ธ์ฆ, ํค ํ์ ๊ณผ์ ์ ๊ฒ์ฆํฉ๋๋ค.
tests/ApiCall/โ ์ธ์ด/๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณ API ํธ์ถ ํ๋ค์ค. ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋symmetric,PublicKey,signature,HashKdf,entropy,protocol์ฌ์ฏ ๊ฐ ์ผ์ด์ค ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ํ์ฌ ์ปค๋ฒ๋ฆฌ์ง๋:openssl,GnuTLS,NSS,boringSSL,mbedTLS,wolfSSLPyCryptodome,libsodiumJavaJca,JavaJniBridge๋ฑ Java ๊ณต๊ธ์/๋ธ๋ฆฌ์ง ๊ณ์ธตAfAlg,cryptodev์ ๊ฐ์ ์ปค๋/OS ์ธํฐํ์ด์ค
tests/CustomImpl/โ ์ง์ ๊ตฌํํ ๊ณ ์ ์ํธ ์๊ณ ๋ฆฌ์ฆ ๋ ํผ๋ฐ์ค ๋ฐ ์ทจ์ฝ ์๋๋ฆฌ์ค ์คํ ์ฝ๋tests/NeedCliInput/โ CLI ์ ๋ ฅ์ด ํ์ํ ์ํธ์์ฉํ ์์ (ํ์ฌ OpenSSL ์นดํ ๊ณ ๋ฆฌ ๊ตฌ์กฐ์ ๋์ผ)tests/NeedGuiInput/โ GUI ์ํธ์์ฉ์ด ํ์ํ ๋ฐ๋ชจ(ํ๋ ์์ํฌ๋ณ ํ์ ๊ตฌ์กฐ ๊ถ์ฅ)
- ๋์นญํค ์ํธ โ ๋ธ๋ก ๋ชจ๋(CBC, CTR), AEAD(GCM, ChaCha20-Poly1305), ํจ๋ฉ, IV/๋ ผ์ค ์ฒ๋ฆฌ, ์คํธ๋ฆผ ํฌ๊ธฐ ๊ฒฝ๊ณ๊ฐ์ ๊ฒ์ฆํฉ๋๋ค.
- ๊ณต๊ฐํค ์๊ณ ๋ฆฌ์ฆ โ RSA, ECDH, X25519, FFDHE ๋ฑ ํค ๊ตํ ํ๋ฆ๊ณผ ํค ์์ฑ, ์ง๋ ฌํ(PEM/DER)๋ฅผ ๊ฒ์ฌํฉ๋๋ค.
- ์ ์์๋ช โ RSA-PSS, ECDSA, Ed25519๋ฅผ ํฌํจํ์ฌ ์ทจ์ฝํ ํด์, ์ค์ด๋ ๋ชจ๋๋ฌ ๊ธธ์ด๋ฅผ ๋ ธ๋ฆฌ๋ ๋ถ์ ํ ์คํธ๋ฅผ ์ํํฉ๋๋ค.
- ํด์ & KDF โ SHA-2/3, BLAKE2, HMAC, PBKDF2, HKDF, scrypt ๋ฑ๊ณผ ๊ตฌ์/์ ๊ฐ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๊ฒํฉ๋๋ค.
- ์ํธ๋กํผ ์์ค โ ๋ผ์ด๋ธ๋ฌ๋ฆฌ RNG๊ฐ ์์ ํ ์ํธ๋กํผ ๊ณต๊ธ์์ ์ฌ์ฉํ๊ณ ์ค๋ฅ ๊ฒฝ๋ก๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋์ง ํ์ธํฉ๋๋ค.
- ํ๋กํ ์ฝ ๋์ โ PQ ์ต์ ๋ถ์ฌ ์ TLS ๋ฑ ํธ๋์ ฐ์ดํฌ์์ ๋ฐ์ํ ์ ์๋ ๋น์์ ํด๋ฐฑ์ด๋ ๋ค์ด๊ทธ๋ ์ด๋๋ฅผ ํ์งํฉ๋๋ค.
- ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ์ธ์ด์ ํ์ํ ์์กด์ฑ์ ์ค์นํฉ๋๋ค(์ธ๋ถ ์ฌํญ์ ํด๋น ํ์ ๋๋ ํฐ๋ฆฌ ์ฐธ๊ณ ).
- ํด๋น ๋๋ ํฐ๋ฆฌ์์ ํ๋ค์ค๋ฅผ ์คํํฉ๋๋ค(์:
tests/ApiCall/openssl/). - ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ณ ๋น์์๋ด์ฑ์ ๋ถํฉํ์ง ์๋ ๊ธฐ๋ณธ๊ฐ์ด๋ ํ๋ผ๋ฏธํฐ ๊ฒฝ๊ณ ๋ฅผ ๊ฒํ ํฉ๋๋ค.
- C++ ์์ ๋
./scripts/linux_build_all.sh(๊ธฐ๋ณธ Release ๋น๋) ๋๋ ์ง์ cmake -S . -B build/cmake && cmake --build build/cmake๋ช ๋ น์ ์คํํ๋ฉดbuild/bin/์๋์ ์คํ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค. Windows์์๋ Git Bash์์.sh์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋,scripts\windows_build_all.bat Debug์ ๊ฐ์ด ๋ฐฐ์น ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด ๊ตฌ์ฑ์ ์ง์ ํ ์ ์์ต๋๋ค. - ์๋ฐ ์์ ์ญ์
./scripts/linux_build_all.sh/./scripts/linux_build_java.sh๋๋ Windows ๋ฐฐ์น ์คํฌ๋ฆฝํธ(scripts\windows_build_all.bat,scripts\windows_build_java.bat)๋กbuild/java/์ ์ปดํ์ผ ๊ฒฐ๊ณผ(.class)๊ฐ ์ ์ฅ๋ฉ๋๋ค. - CMake ์ค์ ์
tests/**์๋์ ๋ชจ๋ C/C++ ๋ฐ๋ชจ๊ฐ ์๋์ผ๋ก ํ๊น์ ์ถ๊ฐ๋๋ฉฐ, GnuTLSยทNSSยทlibsodium ๋ฑ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ผ๋ฉด ํด๋น ํ๊น์ ๋ฉ์์ง์ ํจ๊ป ๋น๋์์ ์๋์ผ๋ก ์ ์ธ๋ฉ๋๋ค.