์ƒˆ์†Œ์‹

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

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

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