AES ์ํธํ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉํ๋ ค OpenSSL ๋ค์ด๋ก๋ํ๊ตฌ ์ ์ฉํ๋ คํ๋๋ฐ
์๊ทผ ๊ณ ์์ ํด๊ฐ์ง๊ตฌ..๐ข ๊ธฐ๋กํด๋์ผ๋ ค๊ณ ํฉ๋๋น
slproweb.com ์ฌ์ดํธ์์ Win64 OpenSSL v3.4.0๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค
๋ค์ด๋ก๋๋ ํ์ผ์ ์ค์นํฉ๋๋ค.
Visual Studio๋ฅผ ํตํด ์ฌ์ฉํ๊ธฐ ์ํด ์ค์ ์ ๋ฐ๊พธ์ด ์ค์ผ๋ฉ๋๋ค.
ํ๋ก์ ํธ ์์ฑ ์ค์ 3๊ฐ์ง๋ฅผ ๋ฐ๊พธ์ด ์ค๋๋ค.
1. OpenSSL์ include ๋๋ ํฐ๋ฆฌ ์ถ๊ฐ
'C/C++' - '์ผ๋ฐ' - '์ถ๊ฐ ํฌํจ ๋๋ ํฐ๋ฆฌ'์ OpenSSL์ include ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก ์ถ๊ฐ
* OpenSSL์ include ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก = E:\OpenSSL-Win64\include
2. OpenSSL์ lib ๋๋ ํฐ๋ฆฌ ์ถ๊ฐ
'๋ง์ปค' - '์ผ๋ฐ' - '์ถ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ํฐ๋ฆฌ'์ OpenSSL์ lib ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก ์ถ๊ฐ
* OpenSSL์ lib ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก = E:\OpenSSL-Win64\lib
3.OpenSSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐ๊ฒฐ
'๋ง์ปค' - '์ ๋ ฅ' - '์ถ๊ฐ ์ข ์์ฑ'์ OpenSSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
* ์ถ๊ฐํ OpenSSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ: libssl.lib, libcrypto.lib
ํด๋น ์ค์ ๋ค์ ์๋ฃํ๋ฉด openssl ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ OpenSSL 3.4.0 ๋ฒ์ ์ ์ค์นํ๊ธฐ ๋๋ฌธ์ AES ๊ด๋ จ ํจ์ ์ค AES_set_encrypt_key, AES_encrypt ๋ฑ ์ผ๋ถ ํจ์๊ฐ ์ทจ์ฝํ ํจ์๋ก ๋ถ๋ฅ(deprecated)๋์ด ๋์ด์ ์ฌ์ฉํ ์๊ฐ ์๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
OpenSSL 3.0 ๋ฒ์ ์ด์๋ถํฐ ์ฌ์ฉ๋์ง ์๋๋ค๊ณ ํฉ๋๋ค.
๋์ evp.h๋ฅผ ์ด์ฉํ์ฌ EVP API๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
- OpenSSL์ EVP
- OpenSSL์ ์ํธ API๋ฅผ ํ๋์ ์ธํฐํ์ด์ค EVP๋ก ๊ตฌ์ฑํ์๋ค.
- EVP๊ฐ EnVeloPe(๋ดํฌ)์ ์ฝ์์ด๋ฉฐ ํ์์ API๋ฅผ ํฌ์ฅํ๋ค๋ ํด์์ด ์๋ค.
- ์๊ณ ๋ฆฌ์ฆ API๋ฅผ ๋ฐ๋ก ํธ์ถํ๋ ๊ฒ์ด ์๋๋ผ ์์คํ ์์ ์ฌ์ฉํ ์ ์๋ ๊ฐ์ฅ ๋น ๋ฅธ API๋ฅผ ํธ์ถํ๊ธฐ ๋๋ฌธ์ ๊ต์ฅํ ๋น ๋ฅด๋ค.
- ์/๋ณตํธํ, ๋์งํธ ์๋ช ๊ธฐ๋ฅ์ด ๊ตฌํ๋์ด ์๊ณ AES, RSA, MD5, SHA ๋ฑ ๋ค์ํ ์ํธ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ ์๋ค.
- OpenSSL์ ์ํธ API๋ฅผ ํ๋์ ์ธํฐํ์ด์ค EVP๋ก ๊ตฌ์ฑํ์๋ค.
'These days โขโขโข > diary' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
de4dot ์ฌ์ฉํ๊ธฐ (0) | 2025.03.14 |
---|---|
์ ๋ถ24 ์ฌ์นญ ํผ์ฑ ๋ฌธ์ ๋ฉ์ธ์ง (1) | 2024.01.17 |