๋ณธ ํฌ์คํ ์ ํ๊ต ์์ ์์ ์งํํ๋ ์ด๋ก ,์ค์ต์ ๋ํด ์ ๋ฆฌํ๋ ํฌ์คํ ์ ๋๋ค. ๊ณต๋ถ์ฉ์ผ๋ก ์์ฑํ๋ ํฌ์คํ ์ผ๋ก ์ค๋ฅ๊ฐ ์์ ์ ์์ต๋๋ค.
์ํธํ์ ๋์งํธ ์ธ์์์ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ๋ณดํธํ๋ ํต์ฌ ๊ธฐ์ ์ด๋ค.
์ด ํฌ์คํ ์์๋ ์ํธํ์ ๊ธฐ๋ณธ ๊ฐ๋ , ๋์นญ ๋ฐ ๋น๋์นญ ์ํธํ, DES, RSA ์๊ณ ๋ฆฌ์ฆ, ๋ฉ์์ง ๋ค์ด์ ์คํธ, ๋์งํธ ์๋ช ์ ์ํ์ ์๋ฆฌ, ์์ ์ํธ ๊น์ง ๊ฐ๋ณ๊ฒ ์ ๋ฆฌํ์๋ค.
์ํธ๋ฅผ ๋ถ์ํ๋ ๋ด์ฉ์ ์ฃผ๋ก ๋ค๋ฃจ๋๋ฐ, ์ํธ๋ฅผ ๋ถ์ํ๋ ๊ฒ์ ๊ทธ ์์ฒด๋ก ์ํธํ๋ ๋ฐ์ดํฐ์ ๋ํ ๊ณต๊ฒฉ์ผ๋ก ๊ฐ์ฃผํ ์ ์๋ค.
์ํธ ๋ถ์
์ํธ๋ถ์ ๋ฐฉ๋ฒ
- ๋จ์ผ ๋ฉ์์ง ํด๋
ํน์ ์ํธํ๋ ๋ฉ์์ง๋ฅผ ํด๋ ํ๋ ค๊ณ ์๋. - ์ํธํ ๋ฉ์์ง์์ ํจํด ์ฐพ๊ธฐ
์ํธํ๋ ๋ฉ์์ง์์ ๋ฐ๋ณต๋๋ ํจํด์ด๋ ๊ท์น์ฑ์ ์ฐพ๋ ๋ฐฉ๋ฒ. - ์๋ฏธ ์ถ๋ก
์ํธ๋ฅผ ์ง์ ํด๋ ํ์ง ์์๋ ๋ฉ์์ง ๊ธธ์ด ๋๋ ๋น๋๋ฅผ ํตํด ์ผ๋ถ ์๋ฏธ๋ฅผ ์ ์ถ. - ํค ์ถ๋ก
ํ๋์ ๋ฉ์์ง๋ฅผ ํด๋ ํ ๋ค ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค๋ฅธ ๋ฉ์์ง์ ํค๋ฅผ ์ถ๋ก .(one bit -> all break) - ๊ตฌํ ๋ฐ ํ๊ฒฝ ์ทจ์ฝ์ ๋ฐ๊ฒฌ
์ํธ๋ฌธ ์์ฒด๋ก๋ ์๋ฒฝํ๋, ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํ ํน์ ํ๊ฒฝ์์์ ์ฝ์ ์ ํ์ . - ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ฐ์ ์ธ ์ทจ์ฝ์ ๋ฐ๊ฒฌ
ํน์ ๊ตฌํ๊ณผ ๊ด๊ณ์์ด ์๊ณ ๋ฆฌ์ฆ ์์ฒด์ ์ค๊ณ ๊ฒฐํจ์ ์ฐพ์๋ด๋ ๋ฐฉ๋ฒ.
์ํธ๋ถ์์ ์ ๋ ฅ๊ฐ(Inputs)
์ํธ ๋ถ์๊ฐ๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ์์ ์งํํ๋ค:
- ์ํธ๋ฌธ ๋ง์ผ๋ก ๋ถ์(Ciphertext Only)
์ํธ๋ฌธ๋ง์ผ๋ก ํจํด, ์ ์ฌ์ , ๋ถ์ฐ์์ฑ์ ์ฐพ์๋ด์ด ๋ถ์.
์) ๋์ผํ ์ํธํ ๋ฐฉ์์ ์ฌ์ฉํ ๋ค์์ ๋ฉ์์ง ๋น๊ต. - ํ๋ฌธ๊ณผ ์ํธ๋ฌธ ํจ๊ป ์ฌ์ฉ(Plaintext and Ciphertext)
ํ๋ฌธ๊ณผ ์ํธ๋ฌธ์ ํจ๊ป ํ์ฉํ์ฌ ๋ณํ ๊ณผ์ ์ ํ์ . -> public key ์ฌ์ฉ
์ํธ๋ฌธ๋ง ์ฌ์ฉํ๋ ๊ฒ ๋ณด๋ค ์ ๋ณด๊ฐ ๋ ๋ง๋ค -> ๊ณต๊ฒฉ์๊ฐ ํ ์ ์๋ ์ผ์ด ๋ง์์ง- ์๋ ค์ง ํ๋ฌธ(Known Plaintext): ์ผ๋ถ ์๋ ค์ง ํ๋ฌธ๊ณผ ํด๋น ์ํธ๋ฌธ์ด ์์ ๋ ์ฌ์ฉ.
- ๋ถ์๊ฐ๊ฐ ์ ํ ํ ํ๋ฌธ(Chosen Plaintext): ๋ถ์๊ฐ๊ฐ ํ๋ฌธ์ ์ ํํ๊ณ ์ํธํ ๊ณผ์ ์ ๊ฑฐ์ณ ์ํธ๋ฌธ์ ์์ฑํ์ฌ ๋ถ์.
์ํธํ์ ๊ธฐ๋ณธ ์์
1. ๋์ฒด(Substitution) : ๋นํธ ์งํฉ์ ์ผ๋ถ๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๊ตํ(bit๋จ์๋ก)ํ๋ ๋ฐฉ์์ผ๋ก, ์๋ณธ ๋ฉ์์ง์ ๊ตฌ์ฑ ์์๋ฅผ ๋์ฒดํ์ฌ ๋ณดํธํ๋ค.
- ex) Caesar Cipher(๊ท์น์ ๋ฐ๋ผ์ํ๋ฒณ ๋ณ๊ฒฝ): BANANA์์ A๋ฅผ Z, B๋ฅผ C, N์ K Z๋ฅผ X๋ก, ํ๋นํธ์ฉ ์๋น๊ฒจ์ CZKZKZ๋ก ๋ณํ
2. ์ ์น(Transposition): ํ๋ฌธ์ ๋ฌธ์๋ ๋นํธ์ ์์๋ฅผ ์ฌ๋ฐฐ์ดํ์ฌ ํจํด์ ๊ฐ์ถ๋ ๋ฐฉ์์ผ๋ก, ํ๋ฌธ ๊ตฌ์กฐ๋ ์ ์ง๋์ง๋ง ์์น๊ฐ ๋ณ๊ฒฝ๋์ด ๋ถ์์ด ์ด๋ ต๋ค.
- ex) ํ๋ ฌ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐฐ์ดํ๊ฑฐ๋ ๋ฌธ์์ ์์๋ฅผ ์๋๋ค (BANANA -> AABNAN)
3. ํผ๋(Confusuion) : ํ๋ฌธ, ํค, ์ํธ๋ฌธ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ณต์กํ๊ฒ ํ์ฌ ๋ณด์์ฑ ๊ฐํ
4. ํ์ฐ(Diffusion): ํ๋ฌธ ์ ์ฒด์ ์ ๋ณด๋ฅผ ์ํธ๋ฌธ ์ ๋ฐ์ ๊ฑธ์ณ ๋ถ์ฐ์์ผ ๋ณด์์ฑ ๊ฐํ, ์ํธ๋ฌธ ์ผ๋ถ๊ฐ ๋ฐ๋๋ฉด ์ ์ฒด๊ฐ ํฌ๊ฒ ๋ฐ๋๋๋ก
์ด 4๊ฐ์ง ์์๋ ์ํธํ์์ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํ๋๋ฐ ํ์์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
One Time Pads(OTP) - perfect security
์ํธํ์ ์์ ํ ๋ณด์์ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ก ์๋ ค์ ธ์๋ค. ์ด๋ก ์์ผ๋ก๋ ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก๋ ๊นฐ ์ ์๋, ์์ ํ ๋ฐฉ๋ฒ์ด๋ค.
ํ์ค์ ์ผ๋ก๋, ํ๋ฌธ๊ณผ ๊ธธ์ด๊ฐ ๋๊ฐ์ key๋ฅผ ์์ ํ๊ฒ ๊ณต์ ํ๋๊ฒ ์ ์ ๊ฐ ๋์ด์ผ ํ๋ฏ๋ก ์ค์ง์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ด๋ ต๋ค.
๋ง์ฝ ์ด๋ ๊ฒ ์์ ํ๊ฒ ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ค๋ฉด, ๊ทธ ๋ฐฉ๋ฒ์ผ๋ก key๊ฐ ์๋ ๋ฉ์ธ์ง๋ฅผ ๊ณต์ ํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋ชจ์
์ข์ ์ํธํ์ ํน์ง of Shannon
Claude Shannon์ ์ข์ ์ํธ๋ฌธ์ ์กฐ๊ฑด์ผ๋ก์ ๋ค์ฏ๊ฐ์ง ์ฃผ์ ํน์ฑ์ ์ ์ํ์๋ค.
1. ์ธก์ ๊ฐ๋ฅํ ์์ ์ฑ : ๋ณด์์ ์์ค์ ์ปดํจํฐ์ ์๋๋ ๋ฆฌ์์ค ๋ฑ ์ฌ๋ฌ ์์๋ฅผ ๊ณ ๋ คํด์ผํ๋ค. ์๋ฅผ๋ค์ด ์ปดํจํฐ๋ก ๋ช๋ฒ์ ์ฐ์ฐ์ ๊ฑฐ์ณ์ผ ํ๋์ง, ๊ธธ์ด๋ ์ด๋์ ๋๋ก ํ ๊ฒ์ธ์ง(ํ๋์๋ 2^128 ๋นํธ๋ ๋์ด์ผ ์์ ํํธ)
2. ๊ฐ๋จํ ํค์ ์๊ณ ๋ฆฌ์ฆ : ๊ณต๊ฒฉ์ ํ๊ธฐ์ ์ด๋ ค์์ผ ํ์ง๋ง, ํค๋ฅผ ์์ฑ, ์ํธํ, ๋ณตํธํํ๋ ์ฌ๋ ์ ์ฅ์์ ๊ฐ๋จํด์ผ ํ๋ค. ๋ํ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๋ค๋ฉด ์ต๋ํ ๋น ๋ฅด๊ฒ ๋ง๋ค์ด์ผ ๊ฐ๋จํ๊ณ ์ทจ์ฝ์ ๋ ์ ๋ค
3. ์ค๋ฅ ์ ํ ๋ฐฉ์ง : ์ํธํ ๊ณผ์ ์์ ๋ฐ์ํ ์ผ๋ถ ์๋ฌ๊ฐ ์ ์ฒด ๋ฉ์์ง์ ์ํฅ์ ๋ฏธ์ณ์ ์๋๋ค.
3. ํจ์จ์ฑ: ์ํธํ๋ ํ ์คํธ๋ ์๋ฌธ๋ณด๋ค ์์์ผํ๋ฉฐ , ์์ผ๋ฉด ์์ ์๋ก ์ข๋ค. (๋์นญํค์์๋ ๋ง์กฑํ์ง๋ง, ๊ณต๊ฐํค๋ฅผ ์ฐ๋ฉด ์ด๋ ต๋ค)
์ด ์ธ์๋ ์๋ฒฝํ ์ํธ์ฒด๊ณ๋ ์ ๋ขฐํ ์ ์๋ ์ํ์ ๊ธฐ๋ฐ ์์์ ์ค๊ณ๋์ด์ผ ํ๊ณ , ์ ๋ฌธ๊ฐ์ ์ํด ์์ ์ฑ์ด ๊ฒ์ฆ๋์ด์ผ ํ๋ฉฐ, ์ค๋ ์๊ฐ๋์ ๊ฒ์ฆ๋์ด ์์ ํจ์ ํ๊ฐ๋ฐ์์ผํ๋ค.
๋์นญ ์ํธํ
DES ์๊ณ ๋ฆฌ์ฆ ์๋ฆฌ
๋ธ๋ก ์ํธํ
ํ์ค์ ์ผ๋ก One Time Pad๋ ๊ตฌํํ ์ ์์ผ๋, ๋ธ๋ก ์ํธํ๋ฅผ ์ฌ์ฉํ๋ค. ๋ธ๋ก ์ํธํ๋ ํ๋ฌธ ๋ธ๋ก ์ ์ฒด๋ฅผ ๊ฐ์ง๊ณ ๊ฐ์ ํฌ๊ธฐ์ ์ํธ๋ฌธ ๋ธ๋ก์ ์์ฑํ๋ ๋ฐฉ์์ด๋ค. ์ ํ์ ์ผ๋ก 64๋นํธ๋ฅผ ์ฌ์ฉํ๋ฉฐ, stream๋ณด๋ค ๋ ๋์ ๋ฒ์์ ์ฌ์ฉ๋๋ค.
๋๋ถ๋ถ์ ๋คํธ์ํฌ๋ ์ด ๋ธ๋ก ์ํธ๋ฐฉ์์ ๋ฐ๋ฅธ๋ค.
๋ํ์ ์ผ๋ก DES ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค.
DES์์ฒด๋ ์ด๋ฏธ ๊นจ์ง ์๊ณ ๋ฆฌ์ฆ์ด์ง๋ง, ์ด ๊ตฌ์กฐ๋ ๋ค๋ฅธ ๋์นญํค ์ํธ์์๋ ์ฐ์ธ๋ค.
๋์ผํ ์๊ณ ๋ฆฌ์ฆ์ ๋ผ์ด๋ ์๋งํผ ๋ฐ๋ณตํ์ฌ ์ํธํ๋ฅผ ํ๊ณ , ๋ณตํธํ๋ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ญ์์ผ๋ก ์งํ๋๋ค.
1. DES ๋ํ 64๋นํธ๋ฅผ ๋ฐ๋ฐ์ฉ Left , Right๋ก ๋๋ ์ค๋ค.
2. Key๋ก๋ 56๋นํธ์ ํค๋ฅผ ์ฌ์ฉํ๋ค. (8๋นํธ๋ parity check ์ ์ฌ์ฉ)
3. Right ๋ฐ์ดํฐ๋ฅผ ํ์ฅ์์ผ 48๋นํธ๋ฅผ ๋ง๋ค๊ณ , Round Key๋ ์์ด๋ก ์นํ์์ผ์(Permutation) 48๋นํธ๋ฅผ ๋ง๋ ๋ค.
4. 48๋นํธ๋ก ๋ง์ถ ๋ ๋ฐ์ดํฐ๋ฅผ XOR์ฐ์ฐ์ผ๋ก ๊ฒฐํฉ, XOR๋ก ์ํธํ๋ฅผ ํ๋ฉด, ๋์ผํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ณตํธํ๋ ๊ฐ๋ฅํ๋ฉฐ, key๊ฐ์ด ๋ค๋ฅด๋ฉด ๊ฐ์ ๋ด์ฉ์ ์ํธํํด๋ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ธ๋ค.
5. ๊ฒฐํฉ๋ ์ํธํค f(R, Key)๋ S-box์์ ๋์ฒด(Substitution) ํ ์ผ๋ถ ๋นํธ๊ฐ ์ ์ (choice)๋์ด 32๋นํธ๊ฐ ๋๋ค.
6. ๋ค์ Permutation์ ํ๊ณ Left์ ๋ฐ์ดํฐ์ XOR์ ํ๋ค.
7. L๋ฐ์ดํฐ์ XOR์ ํ ๊ฒฐ๊ณผ๋ ์๋ก์ด Right ๋ฐ์ดํฐ๊ฐ ๋๋ค. ์๋ก์ด Left ๋ฐ์ดํฐ๋ 1๋ฒ์์ ๋๋ด๋ Right๋นํธ๋ฅผ ๊ทธ๋๋ก ๋ณต์ ํด์ ๊ฐ์ ธ์จ๋ค. -> ์ฆ ์๋ก์ด Left ๋ฐ์ดํฐ๋ ์ด์ ๋ผ์ด๋์ Right๋ฐ์ดํฐ์ ๊ฐ๋ค.
8. ์ด ๊ณผ์ ์ ๋ผ์ด๋ ์๋งํผ ๋ฐ๋ณตํ๋ค.
9. ์ต์ข ๋ผ์ด๋ ํ ์ข์ฐ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๊ฒฐํฉํ๊ณ ์ต์ข ์์ด๋ก ์ํธ๋ฌธ์ ์์ฑํ๋ค.
DES์ ๋ณตํธํ
XOR๋ก ์ํธํ๋ฅผ ํ๊ธฐ ๋๋ฌธ์, ๋์ผํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ๋ค.
์์์ผ๋ก DES๋ด์ฉ์ ์ ๋ฆฌํด๋ณด์,
(1)์ ๋ณด๋ฉด, ๊ตฌ๋ฒ์ j-1์ R๋ฅผ ๊ทธ๋๋ก ์๋ก์ด L๋ก ์ฌ์ฉํ๊ณ , ์๋ก์ด R์ ๊ตฌ๋ฒ์ R๋ก ํค๋ฅผ ๋ง๋ค์ด ๊ตฌ๋ฒ์ L๊ณผ XOR์ฐ์ฐ์ ํ๋ค.
๋ณตํธํ๋ ์ด๊ฑธ ๋ฐ๋๋ก ํ๋ฉด ๋๋ค.
์ต๊ทผ ๋ผ์ด๋์ธ Lj๋ก ์ด์ ๋ผ์ด๋์ Rj-1์ ๊ตฌํ๊ณ , ์ต๊ทผ ๋ผ์ด๋์ R๊ณผ, ์ด์ ๋ผ์ด๋์ Key(์ด๋ฒ ๋ผ์ด๋์ L๋ก ๋ง๋ Key์ ๋์ผ)์ XOR์ฐ์ฐ์ ํด์ฃผ๋ฉด ์ด์ ๋ผ์ด๋์ Lj-1 ๋ฐ์ดํฐ๋ ๊ตฌํ ์ ์๋ค. ์ํธํ ํ ๋ผ์ด๋ ์ ๋งํผ ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด ๋๋ค.
DES๋ 56๋นํธ ํค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฌด์์ ๊ณต๊ฒฉ(Brute Force)์ ์ทจ์ฝํ๋ค.
์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด AES, 3DES๋ฑ ์ฌ์ฉ
์ฒด์ด๋(Chaining)
๋ธ๋ก ์ํธํ์์ Chaining์ ๋ฐ์ดํฐ ๋ณด์์ ๊ฐํํ๊ธฐ ์ํด ๋ธ๋ก์ ์์กด์ฑ์ ์ถ๊ฐํ์ฌ ๊ฐ ๋ธ๋ก์ ์ํธํ๋ฅผ ์ด์ ๋ธ๋ก๊ณผ ์ฐ๊ฒฐํ๋ ๋ฐฉ์์ด๋ค.
DES์์, ์ด์ ๋ผ์ด๋์ ๋ธ๋ก์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฒด์ด๋.
๊ฐ์ ํค๋ก ๋๊ฐ์ ๋ฉ์์ง๋ฅผ ์ํธํ ํ๋ฉด ๊ฐ์ ์ํธ๊ฐ ๋์ค๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ ์ ์๋๋ฐ, ์ด๋ฅผ ์ฒด์ด๋์ผ๋ก ๋ฐฉ์งํ ์ ์๋ค.
ex) RSA_AES_128_CBC
์์์์, ์ด์ ๋ธ๋ก์ ์ํธ๋ฌธ apqrwx๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด ์ํธ๋ฌธ์ ์์ฑํ๊ณ , ๊ทธ ๋ค์ ๋ฐ์ดํฐ์์ ์ด์ ๋ธ๋ก๊ณผ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํํ๋ค. ์ฒด์ด๋์ ํตํด ์๋ก์ด ํจํด์ด ์์ฑ๋๋ค.
Initialization Vectors
IV๋ ์ํธํ ๊ณผ์ ์์ ์ฌ์ฉ๋๋ ๋ฌด์์ ๋ฐ์ดํฐ ๋ธ๋ก์ด๋ค. ์ ๋ ฅ๊ณผ ํค๊ฐ ๋์ผํด๋ ์ถ๋ ฅ์ด ๋ค๋ฅด๊ฒ ์์ฑ๋๋๋ก ๋ณด์ฅํ๋ค.
์ ์์์ ๋ค๋ฅธ ์ ์ ์ฒซ๋ฒ์งธ ํค๋์ ์์ฐ๋ ๋ธ๋ฝ (IV)๋ฅผ ๋ฃ์ด์ฃผ๋ ๊ฒ์ด๋ค. ์ด๊ฒ ์ด๊ธฐ์ค์ ์ด๊ณ , ์ด๋ฅผ ์ ์ฉํ๋ฉด ํค๋๋ถํฐ ๋๊น์ง ๋ค ๊ฐ์ด ๋ฌ๋ผ์ง๋ค.
AES(Advanced Encryption) ์๊ณ ๋ฆฌ์ฆ
DES์ ๋จ์ ์ ๋ณด์ํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก DES์ฒ๋ผ ๋ฐ๋ณต์ ์ธ ๋ผ์ด๋๋ฅผ ํตํด ์ํธํ๋ฅผ ํ๋ค.
1. Byte Sub: DES์ ๊ฐ์ด Substitution (Byte ๋จ์๋ก ์ชผ๊ฐ ๋ค)
2. Shift Row: ๋ฐ์ดํฐ์ ํ์ ์ข์ธก์ผ๋ก ์ด๋์์ผ ํผํฉ์ฑ(Confusion)์ ์ฆ๋์ํจ๋ค.
3. Mix Columns: ํ๋ ฌ ๊ณฑ์ ์ ํตํด ๊ฐ ์ด์ ๋ฐ์ดํฐ๋ฅผ ํผํฉ (๊ทธ๋ฆผ ์์๋ 4x4 ํ๋ ฌ๊ณฑ)
4. Add Round Key: ๋ฐ์ดํฐ๋ฅผ XOR ์ฐ์ฐํ์ฌ ํ์ฌ ๋ผ์ด๋์ ํค๋ฅผ ์ถ๊ฐ
์ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์ต์ข ์ ์ผ๋ก ์ํธํ๋ ๋ด์ฉ์ ์ถ๋ ฅํ๋ค. 10๋ผ์ด๋ ๋ฐ๋ณตํ๋ฉฐ ์ํธํ๋ ์ญ์์ผ๋ก ์งํํ๋ค.
AES๋ 1997๋ ๋ฐํ๋ ์ดํ ์ฒ ์ ํ ๊ฒ์ฆ์ ๊ฑฐ์ณ ํ์ฌ๋ ๊ฐ๋ ฅํ ๋ณด์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ฌ์ฉ์ค์ด๋ค.
์ฆ, ์ข์ ์ํธํ์ ํน์ง์ธ, ์ค๋ ์๊ฐ์ ๊ฑธ์ณ ๊ฒ์ฆ๋์ด์ผ ํ๋ค๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ค. ์์ง๊น์ง ์ทจ์ฝ์ ์ ์ฐพ์ ๊ณต๊ฒฉ์ด ์๋ค.
๋น๋์นญํค ์ํธํ
RSA
RSA๋ํ 1978๋ ๋์ ํ ์ค๋ ์๊ฐ ์ํธ ๋ถ์์ ๊ฑฐ์ณค์ผ๋ฉฐ, ํ์ฌ๊น์ง ๊ฒฐํจ์ด ๋ฐ๊ฒฌ๋์ง ์์ ์์ ์ ์ธ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
ํฐ ์์๋ฅผ ์์ธ์๋ถํดํ๋ ๋ฐฉ์์ ๊ธฐ๋ฐํ๋ค. ์ด ๋ฌธ์ ๋ฅผ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ๋ ์ง์์ ์ธ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ฒ ๋๋ค.
์ํธํ์๋ e, ๋ณตํธํ์๋d ํค๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ด ํค๋ค์ ์๋ก ๊ตํ์ด ๊ฐ๋ฅํ๋ค.
๊ณผ์
ํ๋ฌธ ๋ธ๋ก P์ ์ํธ๋ฌธ C๋ ์์ ๊ฐ์ ๊ณผ์ ์ ํตํด ์ํธํ, ๋ณตํธํ ๋๋ค.
n์ ๋ ์์์ ๊ณฑ์ด๋ฉฐ, n์ ๊ฒฐ๊ณผ์ ๋ฒ์๋ฅผ ์ ํํ๋ฉฐ ๊ณต๊ฐ๋์ด์๋ ๊ฐ์ด๋ค. e๋ ๊ณต๊ฐํค์ ์ง์, d๋ ๋น๋ฐํค์ ์ง์๊ฐ์ด๋ค.
์ํ์ ์ธ ๊ด๊ณ๋ฅผ ์ดํด๋ณด๋ฉด, ๋ชจ๋๋ฌ ์ฐ์ ์ ๋์นญ์ฑ์ ํ์ฉํ์ฌ ์ํธํ์ ๋ณตํธํ๋ฅผ ์ญ์์ผ๋ก ๋์ํ๋๋ก ํ์๋ค.
์ํธํ์ ๋ณตํธํ๋ ์ํธ ๊ตํ์ด ๊ฐ๋ฅํ๊ณ , ๋จผ์ ์ํธํ๋ฅผ ํ๊ณ ๋ณตํธํ๋ฅผ ํ๊ฑฐ๋, ๋ณตํธํํ ํ ์ํธํํด๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ค.
์ด์ฒ๋ผ ๊ฐ๋ ฅํ ์ํ์ ๊ธฐ๋ฐ์ ๊ฐ์ถ๊ณ ์์ด ๋์ ์์ค์ ๋ณด์์ ์ ๊ณตํ๋ค.
๋์นญํค๋ฅผ ๊ณต๊ฐํ ํ์ ์์ด ๊ณต๊ฐ ํค์ ๋น๋ฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ณดํธ๊ฐ ๊ฐ๋ฅํ์ฌ ์์ ํ ๋ฐ์ดํฐ ๊ตํ์ด ๊ฐ๋ฅํด์ง๋ค.
๊ตฌ์ฑ์์
RSA์ํธํ ํค๋ (e,n) ์์ผ๋ก, ๋ณตํธํ ํค๋ (d,n) ์์ผ๋ก ๊ตฌ์ฑ๋๋ค. n์ ๋ ์์ p,q์ ๊ณฑ์ผ๋ก ๋งค์ฐ ํฐ ๊ฐ์ด์ด์ผํ๋ค.(ํฌ๊ธฐ๊ฐ ์ปค์ผ ์ถ๋ก ํ๊ธฐ ์ด๋ ต๋ค)
ํค ์์ฑ๊ณผ์
1. ์์ p์ q ์ ํ : p,q๋ 300์๋ฆฌ ์์๋ก ์ ํ, n์ 600์๋ฆฌ(2048๋นํธ)ํฌ๊ธฐ
2. ๊ณต๊ฐ ์ง์ e ์ค์ : e๋ (p-1)*(q-1)๊ณผ ์๋ก์์ธ ํฐ ์ ์๋ก ์ ํ
3. ๋น๋ฐ ์ง์ e ๊ณ์ฐ : e*d ๋ 1 (mod(p-1)*(q-1))๋ฅผ ๋ง์กฑํ๋ d๋ฅผ ๊ณ์ฐํ๋ค. (d์e๋ ์ญ์ ๊ด๊ณ)
https://kimjoraeng.tistory.com/42
๋ฉ์์ง ๋ค์ด์ ์คํธ
๋ฐ์ดํฐ ๋ธ๋ก์ ๋ณํ๋ฅผ ๊ฐ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก, ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ค.
One-way Hash(์ผ๋ฐฉํฅ ํด์) ์ํธํ ๊ธฐ๋ฒ์ผ๋ก์, ๊ณต๊ฐ ํค ์ํธํ ๋ฐ ๋์งํธ ์๋ช , ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ, ์ฌ์ฉ์ ์ธ์ฆ, ํต์ ํ๋กํ ์ฝ ๋ฑ ๋ง์ ๊ณณ์ ์ฌ์ฉ๋๋ค.
์ผ๋ฐ์ ์ธ ์๋ฃ๊ตฌ์กฐ์์ ์ฐ์ด๋ ํด์๋งต๊ณผ ๋ฌ๋ฆฌ ์ํธํ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ ํด์ ํจ์๋ ์๋ ์กฐ๊ฑด์ ๋ง์กฑํด์ผํ๋ค.
ํ๋ ํด์ ํจ์์ ๊ธฐ์ค
1. ์ผ๋ฐฉํฅ์ฑ : ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ค์ด์ ์คํธ๋ก ๋ณํํ์ง๋ง, ๋ค์ด์ ์คํธ ๊ฐ์ผ๋ก๋ถํฐ ์๋ ์ ๋ ฅ์ ์ถ๋ก ์ด ๋ถ๊ฐ๋ฅ
2. ์ถฉ๋ํํผ: ๋์ผํ ๋ค์ด์ ์คํธ๋ฅผ ์์ฑํ๋ ๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ ์ ๋ ฅ๊ฐ(์ถฉ๋)์ ์ฐพ๋๊ฒ์ด ์ค์ง์ ์ผ๋ก ๋ถ๊ฐ๋ฅ
์ ํ๋ ์ฃผ์ ํด์ ์๊ณ ๋ฆฌ์ฆ๋ค์ ์์ฑ์ ๋ณด์ฌ์ค๋ค. ํ์ฌ๋ SHA-3-256๋๋ 512๊ฐ ํ์ค์ด๋ค. Digest Size 512
์ ์ ์๋ช (Digital Signatures)
๋ํ์ ์ผ๋ก ๊ณต์ธ์ธ์ฆ์ ๋ฑ์ ์ฐ์ด๋ ๊ธฐ์ ๋ก, ๋ฉ์์ง๋ฅผ ๋ง๋ค์๋ค๋ ๊ฒ์ ๋ํ ์ ์์ ์ฆ๋ช ํ๋๋ฐ ์ฐ์ธ๋ค.
์ ์ ์๋ช ์ ์๋ ์กฐ๊ฑด์ ํ์๋ก ์ถฉ์กฑํด์ผ ํ๋ค.
1. (ํ์)์์กฐ ๋ถ๊ฐ์ฑ (Unforgeable) : ๋น๋ฐ ํค ์์ด ์๋ช ์์ฑ์ด ๋ถ๊ฐ๋ฅํ์ฌ ๊ฐ์ง ์๋ช ์ด ๋ถ๊ฐ
2. (ํ์)์ง์์ฑ(Authentic): ์๋ช ์๋ก ๋ถํฐ ์จ ์๋ช ์ธ์ง ์์ ์๊ฐ ํ์ธํ ์ ์์ด์ผ ํ๋ค.
3. ๋ณ์กฐ ๋ถ๊ฐ์ฑ: ์์ ๋ถ๊ฐ
4. ์ฌ์ฌ์ฉ ๋ถ๊ฐ์ฑ: ์ด์ ์๋ช ์ฌ์ฌ์ฉ ๊ฐ์ง
๋์งํธ ์๋ช ์ ์์ฑ ๋ฐ ๊ฒ์ฆ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
์๋ช ์๋ ์์ ์ ๋น๋ฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์๋ช ๊ฐ์ ์์ฑ(๊ณ์ฐ), ๊ฒ์ฆ์๋ ์๋ช ์์ ๊ณต๊ฐํค๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฐ๋ฅธ์ง ํ์ธ
์ด๋, ๋ฉ์์ง๋ฅผ ๋ฐ๋ก ํด์ํด์ ์๋ช ํ๋ฉด, ๋ฉ์์ง๊ฐ ๋์ผํ๋ฉด ํด์๊ฐ๋ ๋์ด๋๊ฒ ๋์จ๋ค. ์ฌ์ฌ์ฉ๋๊ฑฐ๋ ๊ฐ์ง๊ฐ ๋ง๋ค์ด์ง ์ ์์ผ๋ ๋ฉ์์ง์ ์์์ ๋์๋ฅผ ์ถ๊ฐํ๋ Challenge๋ฅผ ์์ฑํ๋ค.
๊ณต๊ฐํค ์ํธ์์ ๋น๊ต
๊ณต๊ฐํค์ํธํ๋ ๋๊ตฌ๋ public key๋ฅผ ํตํด encryption์ ํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฑธ ๋ฐ์ ํ ์ฌ๋๋ง decryption ๊ฐ๋ฅํ๋ค.๊ทธ๋ฆฌ๊ณ encryption์ ํด์ผ decryption ๊ฐ๋ฅ
๋ฐ๋๋ก ๋์งํธ ์๋ช ์ ํ ์ฌ๋๋ง ์๋ช (sign, encryption) ๊ฐ๋ฅํ๊ณ , ์๋ฌด๋ ๊ฒ์ฆ ๊ฐ๋ฅ(verify, decryption)ํ๋ค.
Elliptic Curve Cryptosystems (ECC)
ECC๋ ํ์ ๊ณก์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋น๋์นญ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, RSA ์๊ณ ๋ฆฌ์ฆ์ ๋์์ผ๋ก ์ฃผ๋ชฉ๋ฐ๋๋ค.
RSA๋ ๊ฐ๋ ฅํ ์๊ณ ๋ฆฌ์ฆ์ด๋ฉฐ ๋๋ฆฌ ์ฌ์ฉ์ค์ด์ง๋ง, ํนํ ๋ฌธ์ (RSA๊ตฌํ)๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ข ๋ Freeํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ECC๊ฐ ์ฐ์ธ๋ค.
RSA๋ณด๋ค ์ํธํ์ ํ์ํ ํค ๊ธธ์ด๋ฅผ ์งง๊ฒ ์ค์ด๋๋ฐ ์ค์ ์ ๋๋ค.
๋์ ๋จ์ ์ผ๋ก๋ ์ํ์ ์ผ๋ก ๊ตฌํํ๊ธฐ ์ด๋ ต๋ค๋ ์ ์ด ์๋ค.
์ด๋๋ฆฌ์ ๋นํธ์ฝ์ธ ๋ฑ์์ ์ฐ์ธ๋ค.
Quantum Cryptography(์์ ์ํธํ)
์์ ์ํธํ๋ ๋ฌผ๋ฆฌํ์ ๊ธฐ๋ฐํ์ฌ ๋์ํ๋ฉฐ ์ํ์ ์๊ณ ๋ฆฌ์ฆ ๋์ ๊ด์์ ๋ฌผ๋ฆฌ์ ํน์ฑ์ ํ์ฉํ๋ค.
๊ณต๊ฐํค ์ํธ๋ฅผ ๋์ฒดํ๋๋ฐ ์ฐ์ด๋ ๊ธฐ์ ๋ก, ์์ ์ํธํ๋ฅผ ํตํด Secureํ ์ฑ๋์ ๋ง๋ค ์ ์๋ค.
์์ ์ํธํ๋ก ๋น๋ฐํค๋ง ๊ตํ๋ฉด Man in the middle ๋ฑ์ ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๋๊ฒ ๊ฐ๋ฅํ๋ค.
๋๊ตฐ๊ฐ ์ด ์ฑ๋์ ๊ด์ธกํ๋ ์๊ฐ ๊ด์ธก(๋์ฒญ)ํ ๊ฒ์ ๋ฐ๋ก ์ ์๊ฐ ์๋ค.(ํ์ด์ ๋ฒ ๋ฅดํฌ ๋ถํ์ ์ฑ ์๋ฆฌ) ๊ด์ธก ๋นํ๋ฉด ๊ทธ๋ฅ ๋ฒ๋ฆฌ๋ฉด ๋๋ค.
์์ง์ ํ๋กํ ํ์ ๋จ๊ณ๋ก, ์ค์ ์ฌ์ฉ ๊ฐ๋ฅ ์์ค์ ์ด๋ฅด๊ธฐ ์ํด์๋ ๊ฐ์ข์ด(Photon GUn)๊ณผ ์์ ์ฅ์น๊ฐ ๊ฐ๋ฐ ๋์ด์ผ ํ๋ค.
10๋ ๋ด๋ก ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง, ํ์ฌ๋ ๊ธฐ์ ์ ์ด๋ ค์๊ณผ ๋์ ๊ตฌํ ๋น์ฉ์ผ๋ก ์ธํด ์์ฉํ๊ฐ ์ด๋ ต๋ค.
Post-Quantum Cryptography
Quantum Cryptography์ ๋น์ทํ ๊ฒ ๊ฐ์ง๋ง ์ ํ ๋ค๋ฅธ ๊ฐ๋
์์ ์ปดํจํฐ๊ฐ ๋ฑ์ฅํ ํ์๋ ์์ ํ ์ํธ ์๊ณ ๋ฆฌ์ฆ์ ๋งํ๋ค.
์ด ๊ธฐ์ ์ ๋ฌผ๋ฆฌ๊ฐ ์๋ ์ํ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ฐ์ ๋๊ณ ์๋ค.
'CS ์ง์ > ์ ๋ณด๋ณดํธ๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โ๏ธโ๐ฅ ์ต์ ๋ณด์ ํ ํฝ (3) | 2024.12.12 |
---|---|
๐ง๐ปโโ๏ธ ๋ณด์์ ์ํ ๋ฒ๊ณผ ์ค๋ฆฌ (3) | 2024.12.12 |
๐ก๏ธ ํ๋ผ์ด๋ฒ์๋ ๋ฌด์์ธ๊ฐ (0) | 2024.12.12 |
โ๏ธ ํด๋ผ์ฐ๋ ์๋น์ค์ ๋ณด์์ ์ทจ์ฝ์ ๊ณผ ๋์์ฑ (1) | 2024.12.08 |
๐ ๋คํธ์ํฌ ๋ณด์ - ์ทจ์ฝ์ ๊ณผ ๋์ฒ (2) | 2024.12.05 |