์ƒˆ์†Œ์‹

Languages/Python

[์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•”ํ˜ธํ•™ ์ด์ •๋ฆฌ | ์•”ํ˜ธ | ๋Œ€์นญ์•”ํ˜ธ | ์ŠคํŠธ๋ฆผ & ๋ธ”๋ก

  • -
๋ฐ˜์‘ํ˜•

๋ชจ๋“ ๋‚ด์šฉ์€ ๋‹ค๋ฅธ ์˜๋„๊ฐ€ ์•„๋‹Œ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ๋ณต์Šต & ์ •๋ฆฌ ์šฉ๋„๋กœ ์“ด ๊ธ€์ž…๋‹ˆ๋‹ค.


 

๋Œ€์นญ ์•”ํ˜ธ์˜ ์›๋ฆฌ

 

 

์œ„์— 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

1์ด ์•„๋‹ˆ๊ณ  i์ž…๋‹ˆ๋‹ค...ใ…Žใ…ŽE๋’ค์—๋„ k๊ฐ€ ์žˆ์–ด์•ผํ•จ..๋‹ˆ๋‹น.

์ˆ˜์‹์€ ์กฐ๊ธˆ ์˜ˆ์ „์— ์‚ฌ์šฉ๋˜๋˜๊ฒƒ์ด๋ผ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ทธ๋ฆผ์„ ์ฐธ๊ณ ํ•˜๋ฉฐ ๋ด์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

 

 

์•”ํ˜ธ ํ”ผ๋“œ๋ฐฑ ๋ชจ๋“œ(๋ณตํ˜ธํ™”)CFB

 

์ถœ๋ ฅ ํ”ผ๋“œ๋ฐฑ ๋ชจ๋“œ(OFB)

 

์•”ํ˜ธํ™”

๋ณตํ˜ธํ™”

 

 

์นด์šดํ„ฐ ๋ชจ๋“œCTR

• ์žฅ์  – ํ•˜๋“œ์›จ์–ด ํšจ์œจ์„ฑ:๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ

    – ์†Œํ”„ํŠธ์›จ์–ด ํšจ์œจ์„ฑ:ํšจ์œจ์  ํ”„๋กœ์„ธ์„œ ํ™œ์šฉ

    – ์‚ฌ์ „์ฒ˜๋ฆฌ:์นด์šดํ„ฐ๋ฅผ ์‚ฌ์ „์— ์ค€๋น„

    – ๋žœ๋ค ์ ‘๊ทผ: ๋ธ”๋ก ํ•œ ๊ฐœ๋งŒ๋„ ๋ณตํ˜ธํ™” ๊ฐ€๋Šฅ

    – ์ž…์ฆ ๊ฐ€๋Šฅํ•œ ๋ณด์•ˆ์„ฑ: ๋‹ค๋ฅธ ๋ชจ๋“œ๋งŒํผ ์•ˆ์ „

    – ๋‹จ์ˆœ์„ฑ:์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋™์ผ

• ์‘์šฉ๋ถ„์•ผ

    – ATM(asynchronous transfer mode) ๋„คํŠธ์›Œํฌ ๋ณด ์•ˆ

    – IPSec(IP security)

 

 

์นด์šดํ„ฐ ๋ชจ๋“œ(์•”ํ˜ธํ™”)CTR

 

์นด์šดํ„ฐ ๋ชจ๋“œ(๋ณตํ˜ธํ™”)CTR

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.