[์ํธ ์๊ณ ๋ฆฌ์ฆ] ์ํธํ ์ด์ ๋ฆฌ | ์ํธ | ๋์นญ์ํธ | ์คํธ๋ฆผ & ๋ธ๋ก
- -
๋ชจ๋ ๋ด์ฉ์ ๋ค๋ฅธ ์๋๊ฐ ์๋ ๊ณต๋ถํ ๊ฒ์ ๋ณต์ต & ์ ๋ฆฌ ์ฉ๋๋ก ์ด ๊ธ์ ๋๋ค.
๋์นญ ์ํธ์ ์๋ฆฌ
์์ x์ y์ ์์์ ์ธ์๋๋ฉด ์ข๋ค.
๋์นญ์ํธ ํ์์๊ฑด
• ๊ฐํ ์ํธ ์๊ณ ๋ฆฌ์ฆ
• ์์ ํ ๋น๋ฐํค ๊ณต์
– ๋์นญ ์ํธ์ ๋ณด์์ ํค์ ๋น๋ฐ์ฑ์ ์ํด์ ์ง ์ผ์ง๋ ๊ฒ์ด์ง ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ฅด๊ฒ ํด์ ์ง์ผ ์ง๋ ๊ฒ์ด ์๋๋ค.(์ปค์ฝํ์ ์์น)
์ํธ์์คํ ๋จ๊ณ
– ํ๋ฌธ์ ์ํธ๋ฌธ์ผ๋ก ์ ํํ๋ ์ฐ์ฐ ์ ํ
• ๋์ฒด: ๊ฐ์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ(substitution)
• ์นํ: ์์์ ์์๋ฅผ ์ฌ ์กฐ์ ํ๋ ๊ฒ (transposition)
– ์ฌ์ฉ๋๋ ํค์ ์
• ๋จ์ผํค
• ์ํค
– ํ๋ฌธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
• ๋ธ๋ก ์ํธ(block cipher)
• ์คํธ๋ฆผ ์ํธ(stream cipher)
๋ธ๋ก์ํธ -> 3DES, AES
์คํธ๋ฆผ ์ํธ -> RC4 ๋ฑ..
๋ธ๋ก ์ํธ ๊ตฌ์กฐ -Feistel
Feistel ์ํธ ๊ตฌ์กฐ(์ํธํ)
Feistel ์ํธ ๊ตฌ์กฐ(๋ณตํธํ)
๋ธ๋ก์ํธ -SPN
๋์นญ๋ธ๋ก์ํธ ์ค๊ณ์์
• ๋ธ๋ก ํฌ๊ธฐ(Block size):
• ํค ํฌ๊ธฐ(Key size):
• ๋ผ์ด๋ ์(Number of rounds):
• ์๋ธํค ์์ฑ ์๊ณ ๋ฆฌ์ฆ(Subkey generation algorithm):
• ๋ผ์ด๋ ํจ์(Round function):
• ๋น ๋ฅธ ์ํํธ์จ์ด ์ํธ/๋ณตํธ(Fast software encryption/decryption)
• ์ฉ์ดํ ํด๋ (Ease of analysis)
๋์นญํค ์๊ณ ๋ฆฌ์ฆ
๋์นญ ์ํธ ์๊ณ ๋ฆฌ์ฆ
• DES(Data Encryption Standard)
• 3์ค DES(3DES)
• AES(Advanced Encryption Standard) ๋ฑ๋ฑ..
DES
• ํ๋ฌธ์ ๊ธธ์ด: 64 ๋นํธ
• ํค์ ๊ธธ์ด: 56 ๋นํธ
• ๊ตฌ์กฐ: Feistel ๋คํธ์ํฌ์ ๋ณํ
• ๋ผ์ด๋ ์: 16
• ์๋ธํค: ์๋ํค๋ก๋ถํฐ 16 ๊ฐ์ 48๋นํธ ์ ๋ธํค ์์ฑ, ๊ฐ ๋ผ์ด๋์์ ์ฌ์ฉ
DES์ ๊ฐ๋
• ํค ๊ธธ์ด์ ์ทจ์ฝ์ฑ
• DES cracker
• ๋ ์ด์ ์ฌ์ฉํ์ง ์์
์ฝ๋๋ฅผ ๊นจ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ
ํ์ฌ๋ DES ๋ง๊ณ 3wnd DES ๋ฅผ ์ฌ์ฉํจ
3์ค DES
• ์ธ ๊ฐ์ ํค๋ฅผ ์ฌ์ฉํด DES ์๊ณ ๋ฆฌ์ฆ์ ์ธ ๋ฒ ์ํํ๋ค
• ์ํธ-๋ณตํธ-์ํธ(EDE: encrypt-decryptencrypt) ์์๋ก ์ํ
• ์ํธํ
C = E(K3 ,D(K2 ,E(K1 ,P)))
– C =์ํธ๋ฌธ
- P =ํ๋ฌธ
– E[K,X] =ํค K๋ฅผ ์ด์ฉํด์ X๋ฅผ ์ํธํ
– D[K,Y] =ํค K๋ฅผ ์ด์ฉํด์ Y๋ฅผ ๋ณตํธํ
• ๋ณตํธํ P = D(K1 ,E(K2 ,D(K3 ,C)))
• ํธํ์ฑ C = E(K1 ,D(K1 ,E(K1 ,P))) = E(K,P)
AES
• 3DES๊ฐ ์๋๊ฐ ๋๋ฆฌ๋ค
• ์ฅ๊ธฐ์ ํ์ค์ผ๋ก ๋ถ์ ํฉ
• NIST๋ 1997๋ ์ 3DES์ ๊ฐ๊ฑฐ๋ ๋ ๋์ ๊ฐ๋ ฅํ ๋ณด์์ฑ์ ๊ฐ๊ณ ์๋ฑํ ๊ฐ์ ๋ ํจ์จ ์ ์ธ ์๋ก์ด AES(Advanced Encryption Standard)๋ฅผ ๊ณต๋ชจ
AES ์ ๋ฐ ์กฐ๊ฑด
• ๋ธ๋ก ๊ธธ์ด๊ฐ 128 ๋นํธ์ธ ๋์นญ ๋ธ๋ก ์ํธ
• ํค์ ๊ธธ์ด๋ 128, 192, 256 ๋นํธ๋ฅผ ์ง์
• ํ๊ฐํญ๋ชฉ
– ๋ณด์
– ๊ณ์ฐ์ ํจ์จ์ฑ
– ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ๋
– ํ๋์จ์ด์ ์ํํธ์จ์ด์ ์ ํฉ์ฑ – ์ ์ฐ์ฑ
AES ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ & ์ํธํ ๋ผ์ด๋
์คํธ๋ฆผ ์ํธ
๋ธ๋ก์ํธ๋ ํจ๋ฉ์ด ๊ผญ ๋ฐ๋ผ์ด.
์คํธ๋ฆผ์ ํจ๋ฉ์ ์ํจ.-> xor ํ์
์คํธ๋ฆผ ์ํธ ๊ตฌ์กฐ
์คํธ๋ฆผ ์ํธ ๋ค์ด์ด๊ทธ๋จ
์คํธ๋ฆผ ์ํธ ์ค๊ณ์ ์ฃผ์์ฌํญ
• ์ฃผ๊ธฐ๊ฐ ๊ธด ์ํธ์ด
• ์ง์ฑ๋๋ค(์๋ฒฝํ ๋๋ค)๋๋ฒ ํน์ฑ์ ๊ทผ์ฌํ ํค ์คํธ๋ฆผ
• ์ถฉ๋ถํ ๊ธด ํค์ ๊ธธ์ด
RC4 ์๊ณ ๋ฆฌ์ฆ
• ๋ก ๋ฆฌ๋ฒ ์คํธ(Ron Rivest)๊ฐ 1987๋ ์ RSA Security์์ ์ค๊ณํ ์คํธ๋ฆผ ์ํธ
• ๋ฐ์ดํธ ๋จ์๋ก ์๋
• ๋ค์ํ ํฌ๊ธฐ์ ํค ์ฌ์ฉ
• ๋๋ค ์นํ ๊ธฐ๋ฒ ์ฌ์ฉ
• ์์ฉ
– SSL/TLS
– WEP(Wired Equivalent Privacy) ํ๋กํ ์ฝ
– WPA(WiFi Protocol Access) ํ๋กํ ์ฝ
์์ดํ์ด ๋ฌด์ ํดํน๊ณผ ๊ด๋ จ๋ ์๋ฆฌ(RC4 ์๊ณ ๋ฆฌ์ฆ์)
RC4 Key ๊ตฌํ๋ฐฉ๋ฒ
RC4์ ๊ฐ๋
• RC4์ ๋ํ ์ค์ ์ ๊ณต๊ฒฉ ์ด๋ ค์
• RC4์ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉ๋๋ ํค์ ์์ฑ ๋ฐฉ๋ฒ ์ ๋ฌธ์
์ํธ ๋ธ๋ก ์ด์ฉ ๋ชจ๋
• 5 ๊ฐ์ง ์ด์ฉ ๋ชจ๋
– ์ ์ ์ฝ๋๋ถ ๋ชจ๋(ECB: electronic codebook mode)
– ์ํธ ๋ธ๋ก ์ฒด์ธ ๋ชจ๋(CBC: cipher block chaining mode)
– ์ํธ ํผ๋๋ฐฑ ๋ชจ๋(CFB: cipher feedback mode)
– ์ถ๋ ฅ ํผ๋๋ฐฑ ๋ชจ๋(OFB: Output feedback mode)
– ์นด์ดํฐ ๋ชจ๋(CTR: counter mode)
์ ์ ์ฝ๋๋ถ ๋ชจ๋(ECB)
• ํ๋ฌธ์ b ๋นํธ ํฌ๊ธฐ์ ๋ธ๋ก์ผ๋ก ๋ถํด
• ๊ฐ ๋ธ๋ก์ ๋์ผํ ํค๋ก ์ํธํ
• ํ๋ฌธ์ ํจํด์ด ์ํธ๋ฌธ์ ๊ทธ๋๋ก ๋ํ๋๋ค
• ์ํธ์๋ ์ฌ์ฉํ์ง ์์
์ํธ ๋ธ๋ก ์ฒด์ธ ๋ชจ๋(์ํธํ)CBC
์ํธ ๋ธ๋ก ์ฒด์ธ ๋ชจ๋(๋ณตํธํ)CBC
์ํธ ํผ๋๋ฐฑ ๋ชจ๋CFB
์ํธ ํผ๋๋ฐฑ ๋ชจ๋(์ํธํ)CFB
์์์ ์กฐ๊ธ ์์ ์ ์ฌ์ฉ๋๋๊ฒ์ด๋ผ ์ค๋ฅ๊ฐ ์์ ์ ์์ผ๋ฏ๋ก ๊ทธ๋ฆผ์ ์ฐธ๊ณ ํ๋ฉฐ ๋ด์ฃผ์๊ธธ ๋ฐ๋๋๋ค.
์ํธ ํผ๋๋ฐฑ ๋ชจ๋(๋ณตํธํ)CFB
์ถ๋ ฅ ํผ๋๋ฐฑ ๋ชจ๋(OFB)
์ํธํ
๋ณตํธํ
์นด์ดํฐ ๋ชจ๋CTR
• ์ฅ์ – ํ๋์จ์ด ํจ์จ์ฑ:๋ณ๋ ฌ ์ฒ๋ฆฌ
– ์ํํธ์จ์ด ํจ์จ์ฑ:ํจ์จ์ ํ๋ก์ธ์ ํ์ฉ
– ์ฌ์ ์ฒ๋ฆฌ:์นด์ดํฐ๋ฅผ ์ฌ์ ์ ์ค๋น
– ๋๋ค ์ ๊ทผ: ๋ธ๋ก ํ ๊ฐ๋ง๋ ๋ณตํธํ ๊ฐ๋ฅ
– ์ ์ฆ ๊ฐ๋ฅํ ๋ณด์์ฑ: ๋ค๋ฅธ ๋ชจ๋๋งํผ ์์
– ๋จ์์ฑ:์ํธํ์ ๋ณตํธํ ์๊ณ ๋ฆฌ์ฆ์ด ๋์ผ
• ์์ฉ๋ถ์ผ
– ATM(asynchronous transfer mode) ๋คํธ์ํฌ ๋ณด ์
– IPSec(IP security)
์นด์ดํฐ ๋ชจ๋(์ํธํ)CTR
์นด์ดํฐ ๋ชจ๋(๋ณตํธํ)CTR
'Languages > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
-
[์ํธ ํ๋กํ ์ฝ] ๋์งํธ ์๋ช | ์ ์์๋ช ์ ์ํ ์๋ณตํธํ | ๊ณต๊ฐํค ์ฌ์ฉ์ ์ํ ์๋ณตํธํ 2021.05.06
-
[์ํธ ํ๋กํ ์ฝ] ๊ณต๊ฐํค ์ํธ 2021.04.15
-
[์ํธ ํ๋กํ ์ฝ] ํด์ ํจ์ ๊ตฌํํ๊ธฐ | ํ์ผ ํด์ ๊ฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ 2021.04.01
-
[์ํธ ํ๋กํ ์ฝ] Base64 ์ธ์ฝ๋ฉ ๊ตฌํํ๊ธฐ 2021.03.24
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค