๐Ÿ” ๋ณด์•ˆ๊ณผ ์•”ํ˜ธํ™”, ๊ธฐ๋ณธ ํ‚ค์›Œ๋“œ

ALL Missing Semester Informatics Posted by Sunio on January 15, 2021 · 4 mins read

missing-semester 7์ผ ์ฐจ, Security and Cryptography

Prologue


missing-semester์˜ ๊ฐ•์˜๋ฅผ ๋‹ค๋“ค์–ด๊ฐ€๋Š” ์‹œ์ ์—์„œ ์žฌ๋ฏธ๋ฅผ ๋Š๋ผ๋ฉฐ ๋“ค์—ˆ๋˜ ๊ฐ•์˜๊ฐ€ ๋˜์‹œ๊ฒ ๋‹ค. ์ด๋ฆ„ํ•˜์•ผ ๋ณด์•ˆ๊ณผ ์•”ํ˜ธํ™” ํ‰์†Œ์— ์‹ ๊ฒฝ๋„ ์•ˆ์“ฐ๋˜ ๋ฐ์ดํ„ฐ๋“ค๊ณผ ์ด์ƒ ๊ธฐ์ดํ•œ ๋ฌธ์ž๋“ค์˜ ์˜๋ฏธ๋ฅผ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ์ดํ•ดํ•ด๋ณธ ๊ฐ•์˜์˜€๋‹ค. ์„ธ์ƒ์— ์‹ ๊ธฐํ•œ ๊ฒƒ๋“ค์ด ์ฐธ ๋งŽ๋‹ค. ์ƒ์‹์œผ๋กœ๋งŒ ์•Œ์•„๋„ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐ•์˜์—์„œ๋Š” ๋ณด์•ˆ๊ณผ ์•”ํ˜ธํ•™์— ๋Œ€ํ•ด ํ•™๋ฌธ์ ์ธ ๊นŠ์€ ์ดํ•ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ํ›„์— ์‹ค์ œ ์‘์šฉ์— ๋“ค์–ด๊ฐ€๋ผ๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋‚จ๊ธด๋‹ค. ๊ทธ๋งŒํผ ์ด ๋ถ„์•ผ์˜ ๊ทธ๊ฒƒ์ด ๊ฐ„๋‹จํ•˜์ง€ ์•Š๊ณ  ์˜ˆ๋ฏผํ•˜๊ฒŒ ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ๋กœ ๋ฐ›์•„๋“ค์ด๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.
๋ฌผ๋ก , ํ•  ์ƒ๊ฐ๋„ ์—†์—ˆ๋‹ค.๐Ÿ™„
๊ฐ„๋‹จํ•˜๊ฒŒ ๊ฐ•์˜ ์ƒ ํ‚ค์›Œ๋“œ ์œ„์ฃผ๋กœ ์ •๋ณด๋ฅผ ์Šต๋“ํ•˜๊ณ  ์ •๋ฆฌํ•ด๋ณด์ž.

์—”ํŠธ๋กœํ”ผ


๊ณ ๋“ฑํ•™๊ต ํ•„๋…์„œ์—์„œ ์„ค๋ช…ํ•˜๋˜ ์—ด์—ญํ•™์˜ ๊ทธ ์—”ํŠธ๋กœํ”ผ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ •๋ณดํ•™(informatics)์—๋„ ์—”ํŠธ๋กœํ”ผ๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ๋Š”๋ฐ, ์ด๋Š” ์ž„์˜์„ฑ์„ ์ •๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ฒ™๋„์ด๋ฉฐ, "์ •๋ณด"๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋‹จ์œ„์ด๋‹ค. โ€˜๊ทธ ๋‹จ์œ„โ€™์˜ ํ‘œํ˜„ ๋ฐฉ๋ฒ•์€ ์šฐ๋ฆฌ์—๊ฒŒ ๋„ˆ๋ฌด ์ต์ˆ™ํ•œ bit๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋‚˜๋Š” ๊ทธ์ € bit๋Š” 0๊ณผ 1์„ ํ‘œํ˜„ํ•˜๋Š” ์ˆ˜๋‹จ์œผ๋กœ ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์˜ค! ๋™์ „์˜ ์•ž๋ฉด๊ณผ ๋’ท๋ฉด์˜ ์—”ํŠธ๋กœํ”ผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉด ๊ทธ๊ฒƒ์ด 1 bit์ธ ๊ฒƒ์ด๋‹ค. 6๋ฉด ์ฃผ์‚ฌ์œ„์˜ ์—”ํŠธ๋กœํ”ผ๋Š” ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

$$ entrophy = \log_2 N \quad N \ of \ Possiblity $$

์œ„ ์‹์„ ํ† ๋Œ€๋กœ ๋ณด๋ฉด 2.58 bit ์ •๋„์˜ ์ž„์˜์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋Š” ๋™์ „ ๋˜์ง€๊ธฐ๋ณด๋‹ค 2.6๋ฐฐ์ •๋„ ๋ณต์žกํ•œ ์ž„์˜์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
์•„๋ž˜์˜ ๊ทธ๋ฆผ์€ xkcd์˜ ์ฝ”๋ฏน์Šค ์ค‘ ์ผ๋ถ€์ธ๋ฐ, Password๋ฅผ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ „ํ•œ์ง€์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด, brute force๋ฐฉ์‹์œผ๋กœ ์•”ํ˜ธ๋ฅผ ํ•ดํ‚นํ•œ๋‹ค๋Š” ๊ฐ€์ • ํ•˜์— ์•”ํ˜ธ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ, ์šฐ๋ฆฌ๊ฐ€ ์ฝ๊ธฐ ๋ณต์žกํ•ด ๋ณด์ด๋Š” ์•”ํ˜ธ๋ฅผ ์งง๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๋งŽ์€ ๋‹จ์–ด๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๋งŽ์€ ์ž„์˜์„ฑ์„ ์ฃผ๋Š” ๊ฒƒ์ด ๋” ํ•ดํ‚นํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์ด์•ผ๊ธฐ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ™•๋ฅ ์ด ๋‚ฎ์„์ˆ˜๋ก ์–ด๋–ค ์ •๋ณด์ผ์ง€๋Š” ๋ถˆํ™•์‹คํ•˜๊ฒŒ ๋˜๊ณ , ์šฐ๋ฆฌ๋Š” ์ด๋•Œ '์ •๋ณด๊ฐ€ ๋งŽ๋‹ค', '์—”ํŠธ๋กœํ”ผ๊ฐ€ ๋†’๋‹ค'๊ณ  ํ‘œํ˜„ํ•œ๋‹ค. - ์œ„ํ‚ค๋ฐฑ๊ณผ

Hash Function


SNS๋ฅผ ๋งŽ์ด ํ•ด๋ณด์•˜๋‹ค๋ฉด #(ํ•ด์‰ฌํƒœ๊ทธ)๋ฅผ ์–ด๋””์„ ๊ฐ€ ๋งŽ์ด ๋ณด์•˜์„ ๊ฒƒ์ด๋‹ค. ๋งž๋‹ค ์šฐ๋ฆฌ๊ฐ€ ๋…ผํ•  Hash๊ฐ€ ๊ทธ Hash๋‹ค.
์ •์˜ํ•˜์ž๋ฉด, Hash๋Š” Hash Function์— ์˜ํ•ด ์–ป์–ด์ง€๋Š” ๊ฐ’์œผ๋กœ์„œ Hash Function์€ ์ž„์˜์˜ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋กœ Mapping ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.
๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์žฅ ๊ฐ€๊น๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋Š” Hash Function์˜ ์‚ฌ์šฉ์€ Git์˜ Commit id๋กœ ์‚ฌ์šฉ๋˜๋Š” SHA-1 key์ด๋‹ค. (160 bit๋กœ ํ‘œํ˜„๋œ 16์ง„์ˆ˜ 40๊ธ€์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.)

git checkout "SHA-1 hash 8์ž๋ฆฌ" # ํŠน์ • commit์œผ๋กœ ์ด๋™ํ•˜๊ธฐ

Hash Function์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. Deterministic : ๊ฐ™์€ ์ž…๋ ฅ ๊ฐ’์€ ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•œ๋‹ค.
  2. Non-invertible : ์›ํ•˜๋Š” ์ถœ๋ ฅ h์— ๋Œ€ํ•˜์—ฌ Hash(m) = h ์ธ m์„ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.
  3. Target collision resistant : m1 ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, Hash(m1) = Hash(m2)๋ฅผ ๋งŒ์กฑํ•˜๋Š” m2๋ฅผ ์ฐพ๊ธฐ ์–ด๋ ต๋‹ค.
  4. Collision resistant : Hash(m1) = Hash(m2)๋ฅผ ๋งŒ์กฑํ•˜๋Š” m1๊ณผ m2๋ฅผ ์ฐพ๊ธฐ ์–ด๋ ค์›€

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ Hash Function์€ ์•”ํ˜ธํ™”์— ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ต‰์žฅํžˆ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ Function์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” (Symmetric cryptography)


๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”๋Š” ์•”ํ˜ธํ™”์™€ ๋ณตํ˜ธํ™”์— ๋ชจ๋‘ ๊ฐ™์€ ์•”ํ˜ธํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค.
๋Œ€์นญํ‚ค ์•”ํ˜ธ๋Š” ์•”ํ˜ธํ™”์— ์—ฐ์‚ฐ ์†๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋นจ๋ผ ํšจ์œจ์ ์ธ ์•”ํ˜ธ ์‹œ์Šคํ…œ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์  ์ด์™ธ์— Public Key๋ฅผ ๊ณต์œ (์ „์†ก)ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์— Sniffingํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๋ณด์•ˆ์— ๋งค์šฐ ์ทจ์•ฝํ•ด์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค๋Š”๊ฑธ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ํ‚ค ๊ธธ์ด๋ฅผ ํ•ด๊ฒฐ๋  ๋ฌธ์ œ์ด์ง€ ์•Š์„๊นŒ ๋˜ํ•œ, KDF๋ผ๋Š” ๊ฒƒ๊ณผ ํ•จ๊ป˜ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋Š” ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์— ํŒŒ์ผ์„ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. AES๊ฐ€ ๊ทธ ์˜ˆ์ด๋‹ค.

๋น„๋Œ€์นญ ์•”ํ˜ธํ™” (Asymmetric cryptography)


๋Œ€์นญํ‚ค ์•”ํ˜ธํ™”์— ๋น„ํ•ด ์•”ํ˜ธํ™” ๋ณตํ˜ธํ™” ์—ฐ์‚ฐ์ด ๋Š๋ ค ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™” ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ์ž์‹ ๋งŒ์˜ ๊ฐœ์ธํ‚ค๋ฅผ ์ด์šฉํ•ด ๋ณตํ˜ธํ™” ํ•˜๋ฏ€๋กœ ํ‚ค์˜ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๊ณ , ํ‚ค์˜ ๋ถ„๋ฐฐ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค. SSH, email ๋“ฑ์—์„œ ์“ฐ์ด๊ณ , ์œ ๋ช…ํ•œ Telegram ์•ฑ์—์„œ๋„ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๊ฐ€ ์ผ๋ถ€ ์ด๋ฃจ์–ด์ง„๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. RSA๋ผ๋Š” ์œ ๋ช…ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ์ด์— ํฌํ•จ์ด ๋œ๋‹ค.

์ถ”๊ฐ€๋กœ, ํ˜„์žฌ ๋งŽ์€ ์›น ํ”„๋กœํ† ์ฝœ๋“ค์ด Hybrid cryptography๋ผ๋Š” ํ˜ผํ•ฉํ˜• ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด ์•ˆ์ „ํ•œ ์ ‘์†์„ ์„ค์ •ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ์•„๋‘๋ฉด ๋” ์ด์ชฝ์œผ๋กœ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ธฐ ์‹ซ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ˜๐Ÿ˜‚๐Ÿคฃ

์ฐธ๊ณ ๋งํฌ


MIT(Missing-Semester) :: Security & Cryptography
NCSoft-danbi :: ์—”ํŠธ๋กœํ”ผ์™€ ์˜์‚ฌ๊ฒฐ์ •๋‚˜๋ฌด
Cryptographic hash function :: WIKI


โ€ข 0 Comments