๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Computer Science

[์ปดํ“จํ„ฐ๋ณด์•ˆ] ์•”ํ˜ธ์˜ ๊ฐœ๋…๊ณผ ๋Œ€์นญํ‚ค ์•”ํ˜ธ, ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ

by Leica 2020. 4. 5.
๋ฐ˜์‘ํ˜•

[์ปดํ“จํ„ฐ๋ณด์•ˆ] ์•”ํ˜ธ์˜ ๊ฐœ๋…๊ณผ ๋Œ€์นญํ‚ค ์•”ํ˜ธ, ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ

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

ํ•œ๊ตญ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ ์ปดํ“จํ„ฐ๋ณด์•ˆ ๊ฐ•์˜(๊น€์ง„์šฑ ๊ต์ˆ˜)

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€