week 5 junghyunlyoo Symmetric public key - GANGNAM-JAVA/JAVA-STUDY GitHub Wiki

๋Œ€์นญํ‚ค

๋‚จํ•œ๊ณผ ๋ถํ•œ์ด ์ถ•๊ตฌ ๊ฒฝ๊ธฐ๋ฅผ ํ•œ๋‹ค.
๊ฒฝ๊ธฐ ๋„์ค‘, ๋‚จํ•œํŒ€์˜ ๊ฐ๋…์€ ์ „์ˆ ์„ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด 
ํฌ๊ฒŒ ์†Œ๋ฆฌ๋ฅผ ์งˆ๋Ÿฌ์„œ ์„ ์ˆ˜๋“ค์—๊ฒŒ ์ „์ˆ ์„ ๋ณ€๊ฒฝํ•˜๋„๋ก ์ง€์‹œํ•œ๋‹ค. 
๊ทธ๋Ÿฐ๋ฐ ์ „์ˆ ์„ ๋„ˆ๋ฌด ์†”์งํ•˜๊ฒŒ ์ „๋‹ฌํ•œ ๋‚˜๋จธ์ง€ ๋ถํ•œํŒ€ ๊ฐ๋…์—๊ฒŒ๊นŒ์ง€ ๋‚ด์šฉ์ด 
๋“ค๋ ค๋ฒ„๋ ธ๋‹ค. ๋ถํ•œํŒ€ ๊ฐ๋…์€ ๋‚จํ•œํŒ€์˜ ์ž‘์ „์„ ์–ด๋–ป๊ฒŒ ์ด์šฉํ• ์ง€ ํ–‰๋ณตํ•œ ๊ณ ๋ฏผ์— ๋น ์ง„๋‹ค.

์œ„ ์‚ฌ๋ก€๊ฐ€ ๋Œ€์นญํ‚ค ๋ฐฉ์‹์˜ ํ†ต์‹ ๊ณผ ๊ฐ™๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‘ ํŒ€ ๋ชจ๋‘ ํ•œ๊ตญ์–ด๋ผ๋Š” ๊ณตํ†ต์–ด(๋Œ€์นญํ‚ค)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—

๋ถํ•œํŒ€์ด ๋‚จํ•œํŒ€์˜ ์ž‘์ „(๋ฐ์ดํ„ฐ)์„ ์‰ฝ๊ฒŒ ํŒŒ์•…(๋ณตํ˜ธํ™”)ํ•˜๊ณ  ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‚จํ•œํŒ€์˜ ๊ฐ๋…๊ณผ ์„ ์ˆ˜๋ผ๋ฆฌ๋Š” ๋น ๋ฅด๊ฒŒ ์˜์‚ฌ์ „๋‹ฌ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ

๊ฐ™์€ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”(๋Œ€์นญํ‚ค ์œ ์ถœ) ๋ถํ•œํŒ€์—๊ฒŒ ๋„์ฒญ๋‹นํ•ด๋ฒ„๋ ธ๋‹ค.

๊ณต๊ฐœํ‚ค

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

์œ„ ์‚ฌ๋ก€๊ฐ€ ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์˜ ํ†ต์‹ ๊ณผ ๊ฐ™๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ œ์Šค์ณ(๊ณต๊ฐœํ‚ค)๋Š” ๋ˆ„๊ตฌ๋‚˜ ์•Œ์•„๋„ ์ƒ๊ด€์—†๋‹ค.

์ œ์Šค์ณ๊ฐ€ ๋œปํ•˜๋Š” ์ „๋žต(๋น„๊ณต๊ฐœํ‚ค)์€ ๊ฒฝ๊ธฐ ์ „ ๋ฏธ๋ฆฌ ์•ฝ์†ํ–ˆ๋˜

๋‹น์‚ฌ์ž๋“ค์ธ ๋‚จํ•œํŒ€ ๊ฐ๋…๊ณผ ์„ ์ˆ˜๋“ค๋งŒ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


์‚ฌ์‹ค ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ์œ„ ์‚ฌ๋ก€๋กœ๋Š” ๊ณต๊ฐœํ‚ค๋ฅผ ์™„์ „ํžˆ ์„ค๋ช…ํ•˜์ง€๋Š” ๋ชปํ•œ๋‹ค.

์™œ๋ƒํ•˜๋ฉด ์œ„ ์‚ฌ๋ก€์˜ ์ „๋žต(๋น„๊ณต๊ฐœํ‚ค)๋Š” ๊ทธ ์ž์ฒด๋กœ ๋ชฉ์ ์ด์ง€๋งŒ

๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์—์„œ์˜ ๋น„๊ณต๊ฐœํ‚ค๋Š” ๋ชฉ์ ์„ ์œ„ํ•œ ์ˆ˜๋‹จ์ด๋‹ค.

๋‹จ๊ณ„๊ฐ€ ํ•˜๋‚˜ ๋” ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์ž์„ธํžˆ ์ •๋ฆฌํ•ด ๋ณด์ž๋ฉด, ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์€ ๋‘๊ฐœ์˜ ํ‚ค๋ฅผ ๊ฐ–๋Š”๋‹ค.

Aํ‚ค๋กœ ์•”ํ˜ธํ™”๋ฅผ ํ•˜๋ฉด Bํ‚ค๋กœ ๋ณตํ˜ธํ™” ํ•  ์ˆ˜ ์žˆ๊ณ 

Bํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•˜๋ฉด Aํ‚ค๋กœ ๋ณตํ˜ธํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด๋‹ค.

A์™€ B ์ค‘ ํ•˜๋‚˜๋ฅผ ๋น„๊ณต๊ฐœํ‚ค(๊ฐœ์ธํ‚ค, ๋น„๋ฐ€ํ‚ค)๋กœ ์ง€์ •ํ•˜๊ณ , ๋‚˜๋จธ์ง€๋ฅผ ๊ณต๊ฐœํ‚ค๋กœ ์ง€์ •ํ•œ๋‹ค.

๋น„๊ณต๊ฐœํ‚ค๋Š” ์ž์‹ (์„œ๋ฒ„)๋งŒ์ด ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๊ณต๊ฐœํ‚ค๋ฅผ ํƒ€์ธ(ํด๋ผ์ด์–ธํŠธ)์—๊ฒŒ ์ œ๊ณตํ•œ๋‹ค.

๊ณต๊ฐœํ‚ค๋ฅผ ์ œ๊ณต๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๋Š” ๊ณต๊ฐœํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•œ๋‹ค.

์•”ํ˜ธํ™”ํ•œ ์ •๋ณด๋ฅผ ๋น„๊ณต๊ฐœํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์„œ๋ฒ„์—๊ฒŒ ์ „์†กํ•œ๋‹ค.

๋น„๊ณต๊ฐœํ‚ค๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๋Š” ์ด ๋น„๊ณต๊ฐœํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ์•”ํ˜ธํ™”๋œ ์ •๋ณด๋ฅผ ๋ณตํ˜ธํ™” ํ•œ๋‹ค.

๊ณต๊ฐœํ‚ค๊ฐ€ ์œ ์ถœ๋ผ๋„ ๊ดœ์ฐฎ๋‹ค. ๋น„๊ณต๊ฐœํ‚ค๋ฅผ ์•Œ์•„์•ผ ๋ณตํ™”ํ™” ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์™ธ๋ถ€์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ณต๊ฐœํ‚ค๋ฅผ ํƒˆ์ทจํ•ด ์•”ํ˜ธํ™”๋œ ์ •๋ณด๋ฅผ ๋ณตํ˜ธํ™”ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์€

์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์˜คํžˆ๋ ค ์ด๋Ÿฌํ•œ ํŠน์„ฑ์„ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ

'์ด ์„œ๋ฒ„๋Š” ํ™•์‹คํžˆ ๋น„๊ณต๊ฐœํ‚ค๋ฅผ ๊ฐ–๊ณ ์žˆ๊ธด ํ•˜๊ตฐ' ํ•˜๊ณ  ์•ˆ์‹ฌ์„ ์‹œ์ผœ์ค„ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ '์ „์ž ์„œ๋ช…' ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์™ธ๋ถ€์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ณต๊ฐœํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ๋ณตํ˜ธํ™”๋ฅผ ํ•ด๋ดค์ž '์„œ๋ฒ„๊ฐ€ ๋น„๊ณต๊ฐœํ‚ค๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค'๋Š”

๊ฒƒ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ ์ด์™ธ์—๋Š” ๋‹ฌ๋ฆฌ ํ•  ๊ฒƒ์ด ์—†๋‹ค.