[์ปดํจํฐ๋ณด์] ์ํธ์ ๊ฐ๋ ๊ณผ ๋์นญํค ์ํธ, ๊ณต๊ฐํค ์ํธ
1. ์ํธ์ ์ ์ ๋ฐ ์ฉ์ด
๐ ์ํธ์ ์ ์
๋ ์ฌ๋์ด ์์ ํ์ง ์์ ์ฑ๋(์ธํฐ๋ท ๋ฑ)์ ํตํ์ฌ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ผ๋ ์ 3์๋ ์ด ์ ๋ณด์ ๋ด์ฉ์ ์ ์ ์๋๋ก ํ๋ ๊ฒ
๐ ๊ด๋ จ ์ค์ ๊ฐ๋ ๋ฐ ์ฉ์ด
* ํ๋ฌธ(plaintext): ์๋ณธ ๋ฉ์์ง
* ์ํธ๋ฌธ(ciphertext): ์ฝ๋ํ(์ํธํ)๋ ๋ฉ์์ง
* ์ํธํ(encryption): ํ๋ฌธ์ ์ํธ๋ฌธ์ผ๋ก ๋ณํ
* ๋ณตํธํ(decryption): ์ํธ๋ฌธ์ ํ๋ฌธ์ผ๋ก ๋ณํ
* ํค(key): ์ํธํ, ๋ณตํธํ ์ ์ฌ์ฉํ๋ ๊ฐ์ฅ ์ค์ํ ์ด์
๐ ์ผ๋ฐ์ ์ธ ์ํธ์ ์๊ฑด
์ํธ ์๊ณ ๋ฆฌ์ฆ + ํค(key)
์ 3์๊ฐ ์ํธ ์๊ณ ๋ฆฌ์ฆ์ ์๋๋ผ๋ ํค(key)๋ฅผ ๋ชจ๋ฅด๋ฉด ์ํธ๋ฅผ ํ ์ ์์
2. ๊ณ ๋ ์ํธํ ๋ฐฉ๋ฒ
- ์ ์น๋ฒ(Permutation Cipher)
- ์นํ๋ฒ(Substitution Cipher)
- ๊ธฐ๋ณธ ์นํ๋ฒ
- ์์ ์ํธ
- ์ํํธ ์ํธ
- ๋น์ฆ๋ค๋ฅด ์ํธ
1) ์ ์น๋ฒ(Permutation Cipher, Transposition Cipher)
ํ๋ฌธ์ ์๋ ๋ฌธ์๋ค์ ์์๋ฅผ ๋ฐ๊ฟ์ผ๋ก์จ ์ํธํํ๋ ๊ธฐ๋ฒ
2) ์นํ๋ฒ(Substitution Cipher)
ํ๋ฌธ์ ๋ฌธ์๋ค์ ์นํ ๊ท์น์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฌธ์๋ก ์นํํจ์ผ๋ก์จ ์ํธํํ๋ ๊ธฐ๋ฒ
3) ์นํ๋ฒ์ ํ์ฅ - ์์ (Caesar) ์ํธ
๊ฐ ๋ฌธ์๋ฅผ ์ํ๋ฒณ ์์๋ก ์ธ ๋ฒ์งธ ๋ค ๋ฌธ์๋ก ์นํ
์ธ ๋ฒ์งธ ๋ค = ๊ณ ์ ๊ฐ์ด๋ฏ๋ก ๋ณตํธํ๊ฐ ์ฌ์
4) ์นํ๋ฒ์ ํ์ฅ - ์ํํธ ์ํธ
๊ฐ ๋ฌธ์๋ฅผ ์ํ๋ฒณ ์์๋ก k๋ฒ์งธ ๋ค ๋ฌธ์๋ก ์นํ (0≤k≤25)
5) ์นํ๋ฒ์ ํ์ฅ - ๋น์ฆ๋ค๋ฅด ์ํธ(Vigenere Cipher)
์ํํธ ์ํธ๋ฅผ ๊ฐ์ ํ ์๋ก์ด ์นํ๋ฒ
์ฌ๋ฌ ๊ฐ์ ์ ์๊ฐ์ ํค๋ก ์ฌ์ฉ
์: k = 3, 8, 0
3. ๊ทผ๋ ์ํธ- ์๋(Shannan)์ ์ฆ๋ช ๊ณผ ์ํธ์ฒด๊ณ ์ค๊ณ์ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ์์น
Shannan์ ์ผํ์ฑ ์ํธ์ฒด๊ณ(OTP, one-time pad)๊ฐ ์์ ํจ์ ์ํ์ ์ผ๋ก ์ฆ๋ช
์ํธ์ฒด๊ณ ์ค๊ณ์ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ์์น ์ ์
- ํผ๋(confusion): ํ๋ฌธ๊ณผ ์ํธ๋ฌธ ์ฌ์ด์ ์๊ด๊ด๊ณ๋ฅผ ์จ๊ฒจ์ผ ํ๋ค.
- ํ์ฐ(diffusion): ํ๋ฌธ์ ํต๊ณ์ ์ฑ๊ฒฉ์ ์ํธ๋ฌธ ์ ๋ฐ์ ํ์ฐ์์ผ ์จ๊ฒจ์ผ ํ๋ค.
ํ์ฐ์ด๋ผ๋ ๊ฐ๋ ์ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ์๋ฅผ ๋ค๋ฉด, ์์ด ๋ฌธ์ฅ์์ ๊ด์ฌ 'the'๋ ๋งค์ฐ ๋์ ๋น๋๋ก ๋ฑ์ฅํ ์ ์๋๋ฐ ์ํธ๋ฌธ์์๋ ๊ทธ ํต๊ณ์ ์ฑ๊ฒฉ์ ์จ๊ธธ ์ ์์ด์ผ ํ๋ค๋ ์๋ฏธ์ด๋ค.
3. ํ๋ ์ํธ ์๊ณ ๋ฆฌ์ฆ
์ํธ์ ์ญ์ฌ์ ์ธ ์ธก๋ฉด์์ 1970๋ ๋์ ๋ ๊ฐ์ง ํฐ ๋ณํ๊ฐ ๋ฐ์ํ๋ค.
๋ฐ๋ก ํ์ค ์ํธ ์๊ณ ๋ฆฌ์ฆ์ ๊ณตํ์ ๊ณต๊ฐํค ์ํธ ์๊ณ ๋ฆฌ์ฆ์ ๋ฑ์ฅ์ด๋ค.
1) ํ์ค ์ํธ ์๊ณ ๋ฆฌ์ฆ์ ๊ณตํ
DES(Data Encryption Standard)
1977๋ ๋ฏธ๊ตญ ๊ธฐ๊ด NBS์ ์ํด ๊ณตํ๋ ํ์ค ์ํธ ์๊ณ ๋ฆฌ์ฆ
๋ํ์ ์ธ ๋์นญํค ์ํธ ์๊ณ ๋ฆฌ์ฆ
AES(Advanced Encryption Standard)
2001๋ ์ ์๋กญ๊ฒ ๊ณตํ๋ ๊ณ ๊ธ ํ์ค ์ํธ ์๊ณ ๋ฆฌ์ฆ
์ญ์ ๋ํ์ ์ธ ๋์นญํค ์ํธ ์๊ณ ๋ฆฌ์ฆ
2) ๊ณต๊ฐํค ์ํธ ์๊ณ ๋ฆฌ์ฆ์ ๋ฑ์ฅ
๐ ๋์นญํค์ ๊ณต๊ฐํค
๋์นญํค : ์ํธํ, ๋ณตํธํ ์ ๋์ผํ ํค๋ฅผ ์ฌ์ฉ
๊ณต๊ฐํค : ์ํธํ, ๋ณตํธํ ์ ์๋ก ๋ค๋ฅธ ํค๋ฅผ ์ฌ์ฉ
RSA ๊ณต๊ฐํค ์ํธ ์๊ณ ๋ฆฌ์ฆ
1978๋ Rivest, Shamir, Adleman์ ์ํด ๊ฐ๋ฐ๋์ด RSA๋ผ๋ ๋ช ์นญ์ด ๋ถ์๋ค.
์์ธ์๋ถํด ๋ฌธ์ ๊ธฐ๋ฐ์ ๋ํ์ ์ธ ๊ณต์บ๊ธฐ ์ํธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
4. ๋์นญํค ์ํธ์ ๊ฐ๋
์ํธํ์ ๋ณตํธํ์ ํ๋์ ๊ฐ์ ํค๋ฅผ ์ฌ์ฉํ๋ ์ํธ ๋ฐฉ์
- ์ฅ์ : ๊ณต๊ฐํค์ ๋นํด ์ํธํ, ๋ณตํธํ ์๋ ๋น ๋ฆ
- ๋จ์ : ํค ๋ถ๋ฐฐ ๋ฌธ์ ์กด์ฌ
- ๋ํ ์๊ณ ๋ฆฌ์ฆ: DES, AES, IDEA ๋ฑ
1) ๋์นญํค ์ํธ - ๋ธ๋ก ์ํธ
ํ๋ฌธ์ ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ธ๋ก์ผ๋ก ๋๋์ด ๊ฐ ๋ธ๋ก๋ง๋ค ์ํธํ ๊ณผ์ ์ ์ํํ์ฌ ๋ธ๋ก ๋จ์๋ก ์ํธ๋ฌธ์ ์ป๋ ๋์นญํค ์ํธ ๋ฐฉ์
2) ๋์นญํค ์ํธ - ์คํธ๋ฆผ ์ํธ
ํ๋ฌธ๊ณผ ๊ฐ์ ๊ธธ์ด์ ํค ์คํธ๋ฆผ์ ์์ฑํ๊ณ ํ๋ฌธ๊ณผ ํค๋ฅผ ๋นํธ ๋จ์๋ก XOR ์ฐ์ฐํ์ฌ ์ํธ๋ฌธ์ ์ป๋ ๋์นญํค ์ํธ ๋ฐฉ์
5. ๊ณต๊ฐํค ์ํธ์ ๊ฐ๋
์ํธํ์ ๋ณตํธํ์ ๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ ํค๋ฅผ ์ฌ์ฉํ๋ ์ํธ ๋ฐฉ์
- ๊ณต๊ฐํค(Public Key): ๋๊ตฌ๋ ๊ณต๊ฐํค๋ฅผ ์ฌ์ฉํด ์ํธํ ๊ฐ๋ฅ
- ๊ฐ์ธํค(Private Key): ์ค์ง ์์ ๋ง ๊ฐ์ธํค๋ฅผ ์ด์ฉํด ๋ณตํธํ ๊ฐ๋ฅ
- ์ฅ์ : ํค ๊ด๋ฆฌ๊ฐ ์ฝ๊ณ ํค ๋ถ๋ฐฐ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋จ
- ๋จ์ : ์ํธํ, ๋ณตํธํ ์๋ ๋๋ฆผ
- ๋ํ ์๊ณ ๋ฆฌ์ฆ: RSA, ECC(ํ์๊ณก์ ์ํธ ์๊ณ ๋ฆฌ์ฆ), ElGamal ๋ฑ
๊ณต๊ฐํค ์ํธ๋ ๋์นญํค ์ํธ์ ๋นํด ์ํธํ, ๋ณตํธํ ์๋๊ฐ ๋๋ ค์ ๋์ฉ๋ ๋ฐ์ดํฐ ์ํธํ๊ฐ ์ด๋ ต๋ค.
๋ฐ๋ผ์ ์ค์ ๋ก๋ ๋์นญํค์ ๊ณต๊ฐํค๋ฅผ ์์ด์ ํ์ฉํ๋ค.
References
ํ๊ตญ๋ฐฉ์กํต์ ๋ํ๊ต ์ปดํจํฐ๊ณผํ๊ณผ ์ปดํจํฐ๋ณด์ ๊ฐ์(๊น์ง์ฑ ๊ต์)
๋๊ธ