์ƒˆ์†Œ์‹

Languages/Python

[์•”ํ˜ธ ํ”„๋กœํ† ์ฝœ] ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ

  • -
๋ฐ˜์‘ํ˜•

๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์— ๋Œ€ํ•œ ์˜คํ•ด

 

• ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ๊ฐ€ ๊ด€์šฉ ์•”ํ˜ธ๋ณด๋‹ค ์•”ํ˜ธํ•ด๋…์— ์žˆ์–ด์„œ ๋” ์•ˆ์ „ํ•˜๋‹ค(X)

• ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ๊ธฐ์ˆ ์ด ์ผ๋ฐ˜ํ™” ๋˜์–ด ๊ด€์šฉ ์•” ํ˜ธ๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค(X)

• ๊ด€์šฉ ์•”ํ˜ธ์˜ ํ‚ค ๋ถ„๋ฐฐ๋ณด๋‹ค ๊ณต๊ฐœํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜ ๋Š” ํ‚ค ๋ถ„๋ฐฐ๊ฐ€ ๋” ์‰ฝ๋‹ค(X)

 

๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ํ•ต์‹ฌ ์š”์†Œ

 

• ํ‰๋ฌธ(Plaintext):

• ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Encryption algorithm):

• ๊ณต๊ฐœํ‚ค์™€ ๊ฐœ์ธํ‚ค(Public and private key):

• ์•”ํ˜ธ๋ฌธ(Ciphertext):

• ๋ณตํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Decryption algorithm):

 

๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™” ํ•˜๊ธฐ

 

๊ฐœ์ธํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜๊ธฐ

 

 

๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์˜ ํŠน์„ฑ

 

• ํ•œ ์Œ์˜ ํ‚ค ํ•„์š”

     – ํ•˜๋‚˜๋Š” ๋ฉ”์‹œ์ง€ ์•”ํ˜ธํ™”์— ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜ ๋Š” ๋ณตํ˜ธํ™”์— ์‚ฌ์šฉ

• ๊ณต๊ฐœํ‚ค๋ฅผ ๋“ฑ๋ก

     – ๊ณต๊ฐœํ‚ค์™€ ํ•œ ์Œ์„ ์ด๋ฃจ๋Š” ํ‚ค๋Š” ๊ฐœ์ธํ‚ค

• ๋ฉ”์‹œ์ง€ ์•”ํ˜ธํ™”๋Š” ์ˆ˜์‹ ์ž ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”

• ์•”ํ˜ธ๋ฌธ์€ ์ˆ˜์‹ ์ž์˜ ๊ฐœ์ธํ‚ค๋กœ ๋ณตํ˜ธํ™”

 

ํ‚ค ๋ช…์นญ

• ๋Œ€์นญ์•”ํ˜ธ(๊ด€์šฉ์•”ํ˜ธ)

     – ๋น„๋ฐ€ํ‚ค(secret key)

• ๊ณต๊ฐœํ‚ค์•”ํ˜ธ(๋น„๋Œ€์นญ ์•”ํ˜ธ)

    – ๊ณต๊ฐœํ‚ค(public key)

    – ๊ฐœ์ธํ‚ค(private key)

 

๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์˜ ์‘์šฉ

• ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”(Encryption/decryption):

    – ์ˆ˜์‹ ์ž์˜ ๊ณต๊ฐœํ‚ค๋กœ ๋ฉ”์‹œ์ง€ ์•”ํ˜ธํ™”

• ๋””์ง€ํ„ธ ์„œ๋ช…(Digital signature):

    – ์†ก์‹ ์ž ์ž์‹ ์˜ ๊ฐœ์ธํ‚ค๋กœ ๋ฉ”์‹œ์ง€ ์•”ํ˜ธํ™”(์„œ๋ช…).

• ํ‚ค ๊ตํ™˜(Key exchange):->๋””ํ”ผ ํ—ฌ๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜

    – ์„ธ์…˜ ํ‚ค๋ฅผ ๊ตํ™˜(๊ณต์œ )ํ•œ๋‹ค

 

๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ์š”๊ฑด

 

๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ์š”๊ฑด

 

๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์‹œ์Šคํ…œ ์‘์šฉ

 

 

๊ธฐํƒ€ ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜

• ๋””์ง€ํ„ธ ์„œ๋ช… ํ‘œ์ค€

    – (DSS: Digital Signature Standard)

    – ์„œ๋ช…๊ธฐ๋Šฅ๋งŒ ์ œ๊ณต

    – ์•”ํ˜ธ๋‚˜ ํ‚ค ๊ตํ™˜์— ์‚ฌ์šฉ ๋ชปํ•จ

• ํƒ€์›๊ณก์„  ์•”ํ˜ธ

    – (ECC: Elliptic-Curve Cryptography)

    – ๋น„ํŠธ ์ˆ˜๊ฐ€ ์ ์–ด์„œ ๊ณ„์‚ฐ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค

    – ์‹ ๋ขฐ์„ฑ์ด RSA๋ณด๋‹ค ๋‚ฎ๋‹ค

 

 

RSA ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

RSA

• ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž ๋ชจ๋‘๋Š” ๐‘› ๊ณผ ๐‘’ ๋ฅผ ์•Œ๊ณ  ์žˆ ์–ด์•ผ ํ•˜๊ณ , ์˜ค์ง ์ˆ˜์‹ ์ž๋งŒ์ด ๐‘‘ ๊ฐ’์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

• ๊ณต๊ฐœํ‚ค ๐‘ƒ๐‘ˆ = {๐‘’, ๐‘›} • ๊ฐœ์ธํ‚ค ๐‘ƒ๐‘… = {๐‘‘, ๐‘›}

 

 

RSA ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ์š”๊ตฌ ์กฐ๊ฑด

1. ๐‘› ๋ณด๋‹ค ์ž‘์€ ๋ชจ๋“  ์ •์ˆ˜ ๐‘€ ์— ๋Œ€ํ•ด์„œ ๐‘€ = ๐‘€๐‘’๐‘‘ ๐‘š๐‘œ๐‘‘ ๐‘› ์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’ ๐‘’, ๐‘‘, ๐‘› ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

2. ๐‘› ๋ณด๋‹ค ์ž‘์€ ๋ชจ๋“  ์ •์ˆ˜ ๐‘€ ์— ๋Œ€ํ•ด์„œ ๐‘€๐‘’์™€ ๐ถ ๐‘‘๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๋น„๊ต์  ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค.

3. ๐‘’ ์™€ ๐‘› ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๐‘‘ ๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.

 

 

RSA ์•Œ๊ณ ๋ฆฌ์ฆ˜(ํ‚ค ์ƒ์„ฑ)

๐œ™(๐‘›): ์˜ค์ผ๋Ÿฌ(Euler) ํ•จ์ˆ˜๋กœ์„œ ๐‘› ๋ณด๋‹ค ์ž‘์œผ๋ฉด์„œ ๐‘› ๊ณผ ์„œ๋กœ์†Œ์ธ ์–‘์˜ ์ •์ˆ˜ ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

RSA ์•Œ๊ณ ๋ฆฌ์ฆ˜(์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”)

 

public key = (e,n)

pri key = (d,n)

 

 

RSA ์•”ํ˜ธํ™”

• ์ „์ˆ˜๊ณต๊ฒฉ

    – ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐœ์ธํ‚ค๋ฅผ ์‹œ๋„

    – ๐‘’์™€ ๐‘‘์˜ ๋น„ํŠธ ์ˆ˜๊ฐ€ ํฌ๋ฉด ํด์ˆ˜๋ก ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•ˆ์ „

• ๐‘›์„ ๋‘ ๊ฐœ์˜ ์†Œ์ธ์ˆ˜์˜ ๊ณฑ์œผ๋กœ ์ธ์ˆ˜๋ถ„ํ•ด

    – ํšจ๊ณผ์  ์ธ์ˆ˜๋ถ„ํ•ด ๋ฐฉ๋ฒ• ์—†์Œ

    – ๋Œ€๋ถ€๋ถ„์˜ RSA ์‘์šฉ์— 1024-๋น„ํŠธ ํ‚ค(๋Œ€๋žต 300 ์ž๋ฆฌ 10์ง„์ˆ˜)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์„œ ์ถฉ๋ถ„ํžˆ ์•ˆ์ „

๋ฐ˜์‘ํ˜•
Contents

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

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