Download pdf - Public key cryptosystems

Transcript
Page 1: Public key cryptosystems

1

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ ๋Œ€์นญํ˜•๋Œ€์นญํ˜•๋Œ€์นญํ˜•๋Œ€์นญํ˜• ์•”ํ˜ธ์˜์•”ํ˜ธ์˜์•”ํ˜ธ์˜์•”ํ˜ธ์˜ ๋ฌธ์ œ์ ๋ฌธ์ œ์ ๋ฌธ์ œ์ ๋ฌธ์ œ์ 

โ€ข๋Œ€์นญํ‚ค๋Œ€์นญํ‚ค๋Œ€์นญํ‚ค๋Œ€์นญํ‚ค๋ถ„๋ฐฐ๋ถ„๋ฐฐ๋ถ„๋ฐฐ๋ถ„๋ฐฐ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ

โ€ข๋Œ€์นญํ‚ค๋Œ€์นญํ‚ค๋Œ€์นญํ‚ค๋Œ€์นญํ‚ค๊ด€๋ฆฌ๊ด€๋ฆฌ๊ด€๋ฆฌ๊ด€๋ฆฌ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ

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

์ˆ˜์‹ ์ž์ˆ˜์‹ ์ž์ˆ˜์‹ ์ž์ˆ˜์‹ ์ž public key ์ˆ˜์‹ ์ž์ˆ˜์‹ ์ž์ˆ˜์‹ ์ž์ˆ˜์‹ ์ž private key

์•”ํ˜ธ๋ฌธ ํ‰๋ฌธ

๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๋ถ„๋ฐฐ๋ถ„๋ฐฐ๋ถ„๋ฐฐ๋ถ„๋ฐฐ์ฑ„๋„์ฑ„๋„์ฑ„๋„์ฑ„๋„

ํ‰๋ฌธEncryption Algorithm Decryption Algorithm

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 2: Public key cryptosystems

2

โ‘ One-Way Function ( ์ผ์ผ์ผ์ผ๋ฐฉํ–ฅ๋ฐฉํ–ฅ๋ฐฉํ–ฅ๋ฐฉํ–ฅํ•จ์ˆ˜ํ•จ์ˆ˜ํ•จ์ˆ˜ํ•จ์ˆ˜ )

โ‘ A function which is easy to compute in one direction,

but difficult to invert

- given x, y = f(x) is easy

- given y, x = fโˆ’โˆ’โˆ’โˆ’1(y) is difficult

โ‘ Integer Multiplication vs. Factorization

- a โˆ—โˆ—โˆ—โˆ— b โ†’โ†’โ†’โ†’ y is easy, where a and b are primes.

- y โ†’โ†’โ†’โ†’ a and b is difficult

โ‘ Modular Exponentiation vs. Discrete Logarithm

- f(x) = ax mod n โ†’โ†’โ†’โ†’ y is easy, Exponential Function

- y โ†’โ†’โ†’โ†’ x = logay mod (nโˆ’โˆ’โˆ’โˆ’ 1)

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ Trapdoor One-Way Function

โ‘ One-Way Function, where some trapdoor information makes

the function invertible

โ‘ Power Function, y = f(x) = xa mod n, where a and n are given

- fโˆ’โˆ’โˆ’โˆ’1(y) = x is also power function, where x = (xa)b mod n

aโˆ— b mod ฯ†(n) = 1

- If n = pโˆ— q, where p and q are large primes,

f(x) is trapdoor function.

- Euler ์ •๋ฆฌ์ •๋ฆฌ์ •๋ฆฌ์ •๋ฆฌ, xฯ†(n) mod n = 1, where ฯ†(n) = (p-1) โˆ— (q-1)

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 3: Public key cryptosystems

3

โ‘ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์‹œ์Šคํ…œ์•”ํ˜ธ์‹œ์Šคํ…œ์•”ํ˜ธ์‹œ์Šคํ…œ์•”ํ˜ธ์‹œ์Šคํ…œ ์ œ์•ฝ์กฐ๊ฑด์ œ์•ฝ์กฐ๊ฑด์ œ์•ฝ์กฐ๊ฑด์ œ์•ฝ์กฐ๊ฑด

โ‘ m โ†’โ†’โ†’โ†’ Eke(m) = c is easy, but c โ†’โ†’โ†’โ†’ Dkd (m) = m is

difficult without knowing Dkd.

โ‘ Eke is a Trapdoor one-way Function

โ‘ Dkd is a Trapdoor Information

๋น„๋ฐ€์„ฑ๋น„๋ฐ€์„ฑ๋น„๋ฐ€์„ฑ๋น„๋ฐ€์„ฑ Dkd (Eke (m)) = m

์ธ์ฆ์ธ์ฆ์ธ์ฆ์ธ์ฆ๋ฐ๋ฐ๋ฐ๋ฐ๋ฌด๊ฒฐ์„ฑ๋ฌด๊ฒฐ์„ฑ๋ฌด๊ฒฐ์„ฑ๋ฌด๊ฒฐ์„ฑ Eke(Dkd(m)) = m

๋น„๋ฐ€์„ฑ๊ณผ๋น„๋ฐ€์„ฑ๊ณผ๋น„๋ฐ€์„ฑ๊ณผ๋น„๋ฐ€์„ฑ๊ณผ์ธ์ฆ์ธ์ฆ์ธ์ฆ์ธ์ฆ Dkd(Eke(m)) = Eke(Dkd(m)) = m

โ‘ Domain of E and D should be large to avoid Dictionary Attack

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ RSA ( Rivest-Shamir-Adleman )

โ‘ System ์ƒ์„ฑ์ƒ์„ฑ์ƒ์„ฑ์ƒ์„ฑ

โ€ข choose 2 primes p and q and compute n = pโˆ—โˆ—โˆ—โˆ— q,

ฯ†(n) = (p-1) โˆ— (q-1), where p, q are 100-digit numbers

โ€ข choose e โˆˆ [1, ฯ†(n)-1] such that (e, ฯ†(n)) = 1 and

d โˆˆ [1, ฯ†(n)-1] such that eโˆ— d mod ฯ†(n) = 1

โ€ข (e,n) : public-key

โ€ข (d,n) : private-key

โ‘ Encryption and Decryption

m,c โˆˆ {1,2,...,n-1}

โ€ข Encryption : c = me mod n

โ€ข Decryption : m = cd mod n = med mod n, where eโˆ— d mod ฯ†(n) = 1

RSA

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 4: Public key cryptosystems

4

โ‘ RSA ( Rivest-Shamir-Adleman )โ‘ Example

โ€ข p = 47 and q = 71, n = pโˆ— q = 3337

โ€ข (pโˆ’1)โˆ—( qโˆ’1) = 46 โˆ— 70 = 3220, GCD ( e, (pโˆ’1) โˆ— (qโˆ’1)) = 1

โ€ข Choose e at random to be 79

โ€ข d = 79โˆ’1 mod 3220 = 1019

โ€ข To encrypt message m = 6882326879666683m1 = 688 m2 = 232 m3 = 687

m4 = 966 m5 = 668 m6 = 003

โ€ข c1 = m1e mod n = 68879 mod 3337 = 1570

โ€ข c = 1570 2756 2091 2276 2423 158

โ€ข To decrypt, m1 = c1d mod n = 15701019 mod 3337 = 688

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ Factorization of n = pโˆ—โˆ—โˆ—โˆ— q

- n and e are known; eโˆ— d mod (pโˆ’1) โˆ— (qโˆ’1) = 1

โ‘ Number Field Sieve, Quadratic Sieve, Elliptic Curve Method

โ‘ (1983๋…„) 69์ž๋ฆฌ 10์ง„์ˆ˜, Quadratic Sieve

โ‘ (1989๋…„) 106์ž๋ฆฌ 10์ง„์ˆ˜, Quadratic Sieve

โ‘ (1994๋…„) RSA-129, 129์ž๋ฆฌ 10์ง„์ˆ˜, Quadratic Sieve, 5000 mips-year

n = 114,381,625,757,888,867,669,235,779,976,146,612,010,218,296,

721,242,362,562,561,842,935,706,935,245,733,897,830,597,123,

563,958,705,058,989,075,147,599,290,026,879,543,541

โ‘ (1996๋…„) RSA-130, 130์ž๋ฆฌ 10์ง„์ˆ˜, Number Field Sieve, 500 mips-year

โ‘ Security of RSA

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 5: Public key cryptosystems

5

โ‘ Security of RSA

โž€ p์™€ q๋Š” ์„œ๋กœ ํฌ๊ธฐ๊ฐ€ ๊ฑฐ์˜ ๋น„์Šทํ•˜๊ฒŒ ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ 1075 ๋‚ด์ง€๋Š” 10100์ •๋„

์˜ ํฌ๊ธฐ๋กœ ์„ ์ •ํ•œ๋‹ค.

โž (pโˆ’1)๊ณผ (qโˆ’1)์€ ๊ฐ๊ฐ ๋งค์šฐ ํฐ ์†Œ์ธ์ˆ˜๋ฅผ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.

โž‚ gcd(pโˆ’1, qโˆ’1)์€ ์ž‘์€ ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค.

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ Ciphertext-only AttackSolving c = me mod n is equivalent to taking roots modulo a composite number with unknown factorization, which is as difficult as the discrete logarithm.

โ‘ Iterative AttackGiven (N,e, c), c1 = ce mod N, ....., ci = ci-1

e mod NIf there is cj in c1,c2,...,ci,... such that cj = c,m is the same as cj-1 since cj-1

e mod N = cj = c.

โ‘ Adaptively Chosen-Ciphertext Attackc = me mod n, x โˆˆ (0, nโˆ’1) cโ€ฒ = cxe mod nmโ€ฒ = (cโ€ฒ)d mod n = cd(xe)d mod n = mโ‹…x mod n

mโ€ฒxโˆ’1 mod n = m

โ‘ Security of RSA

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 6: Public key cryptosystems

6

โ‘ Repeated Square-and-Multiply ๋ฐ˜๋ณต๋ฐ˜๋ณต๋ฐ˜๋ณต๋ฐ˜๋ณต์ œ๊ณฑ์ œ๊ณฑ์ œ๊ณฑ์ œ๊ณฑ-๊ณฑ์…ˆ๊ณฑ์…ˆ๊ณฑ์…ˆ๊ณฑ์…ˆ

z โ† 1;for i = kโˆ’1 downto 0 {

z โ† z2 mod n;if ei = 1 then z โ† z โ‹… m mod n;

}return ( z );

[์˜ˆ ] ๊ณต๊ฐœํ‚ค e = 10, ๋ฒ• n = 15์˜๊ฒฝ์šฐ์—ํ‰๋ฌธ m = 3์—ํ•ด๋‹นํ•˜๋Š”์•”ํ˜ธ๋ฌธ c = me mod n = 9๋Š”์•„๋ž˜๊ณผ๊ฐ™์ด โ€œ๋ฐ˜๋ณต์ œ๊ณฑโˆ’๊ณฑ์…ˆโ€๋ฐฉ์‹์—์˜ํ•ด๊ณ„์‚ฐ๋œ๋‹ค. e = 10์„ 2์ง„์ˆ˜๋กœํ‘œํ˜„ํ•˜๋ฉด ( e3 e2 e1

e0 ) = ( 1 0 1 0 ) ์ด๋‹ค.

i ei z

3 1 12 โ‹… 3 mod 15 = 32 0 32 mod 15 = 91 1 92 โ‹… 3 mod 15 = 30 0 32 mod 15 = 9

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ Primality Testing

โ‘ Sieve of ERATOSTHENES

โ€ข Every positive integer > 1 has a prime divisor.

โ€ข If n is a composite, n has a prime factor not exceeding n .

To determine if n is a prime, check n for divisibility

by all primes not exceeding n .

e.g. if n = 20 is a composite, it must have a prime factor

less than n = 4. Since n = 20 has a prime factor 2,

it is not a prime.

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 7: Public key cryptosystems

7

โ‘ Probabilistic Primality Testing

โ‘  find r and s such that nโ€“1 = 2sโ‹…r ;for i = 1 to k do {

โ‘ก choose a random integer a, 1 โ‰ค a โ‰ค nโ€“2โ‘ข y โ† ar mod n;โ‘ฃ if y โ‰  1 and y โ‰  nโˆ’1 then {โ‘ค j โ† 1;

while ( j โ‰ค sโˆ’1 and y โ‰  nโˆ’1 ) do {โ‘ฅ y โ† y2 mod n;โ‘ฆ j โ† j+1; }โ‘ง if y โ‰  nโˆ’1 then return( โ€œcompositeโ€ ); } }โ‘จ return( โ€œprimeโ€ );

โ‘ Miller_Rabin(n, k) Algorithm

์†Œ์ˆ˜ n > 2๊ณผํ™€์ˆ˜ r์—๋Œ€ํ•ด์„œ

n โ€“ 1 = 2sโ‹…r์ด๋ผ๊ณ ํ•˜์ž. ์ด๋•Œ,

gcd(a, n) = 1์„๋งŒ์กฑํ•˜๋Š”์ž„์˜์˜

์ •์ˆ˜ a์—๋Œ€ํ•ด์„œ ar mod n = 1์ด์„ฑ๋ฆฝ

๋˜๋Š” 0 โ‰ค j โ‰ค sโ€“1๋ฒ”์œ„๋‚ด์˜

์–ด๋–ค j ์—๋Œ€ํ•ด์„œ a2 jr mod n = โ€“1.

n์ดํ™€์ˆ˜์˜ํ•ฉ์„ฑ์ˆ˜์ž„์—๋„๋ถˆ๊ตฌํ•˜๊ณ  2 โ‰ค a โ‰ค nโ€“1๋ฒ”์œ„๋‚ด์˜์ž„์˜์˜์ •์ˆ˜ a์—๋Œ€ํ•ด์„œ ar mod

n = 1 ์ด์„ฑ๋ฆฝ๋˜๋Š” 0 โ‰ค j โ‰ค sโ€“1๋ฒ”์œ„๋‚ด์˜์–ด๋–ค j ์—๋Œ€ํ•ด์„œ a2 jr mod n = โ€“1์ด์„ฑ๋ฆฝํ•œ๋‹ค๋ฉด

n์€์‹ค์ œ๋กœ์†Œ์ˆ˜๋Š”์•„๋‹ˆ์ง€๋งŒ์†Œ์ˆ˜์ธ๊ฒƒ์ฒ˜๋Ÿผ๋ณด์ด๋Š”๊ฐ•ํ•œ์œ ์‚ฌ์†Œ์ˆ˜(strong pseudo-

prime)๊ฐ€๋˜๊ณ , a๋Š” n์„์†Œ์ˆ˜๋ผ๊ณ ์ž˜๋ชปํŒ๋‹จํ•˜๊ฒŒํ•˜๋Š”๊ฐ•ํ•œ๊ฑฐ์ง“์ฆ๊ฑฐ(strong liar)๊ฐ€๋œ๋‹ค.

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ Probabilistic Primality Testing

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜๊ฒฐ๊ณผ๊ฐ€ Miller_Rabin(n, k) = โ€œcompositeโ€โ€์ผ๊ฒฝ์šฐ์—๋Š” n์€๋ถ„๋ช…ํžˆํ•ฉ์„ฑ์ˆ˜์ด๋‹ค.๋”ฐ๋ผ์„œ, ์ด๊ฒฝ์šฐ์—๋Š”๋‹ค๋ฅธ์ž„์˜์˜ํ™€์ˆ˜ n์„์„ ์ •ํ•˜์—ฌ์•Œ๊ณ ๋ฆฌ์ฆ˜์„์ฒ˜์Œ๋ถ€ํ„ฐ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฒŒ๋œ๋‹ค. Miller_Rabin(n, k) = โ€œprimeโ€์ผ๊ฒฝ์šฐ์—๋Š” 2๊ฐ€์ง€์˜๊ฐ€๋Šฅ์„ฑ์ด์กด์žฌํ•œ๋‹ค.

์ฒซ์งธ๋Š” n์ด์‹ค์ œ๋กœ์†Œ์ˆ˜์ธ๊ฒฝ์šฐ์™€๋‘˜์งธ๋Š” n์ดํ•ฉ์„ฑ์ˆ˜์ด๋ฉด์„œ๋„์†Œ์ˆ˜๋กœํŒ์ •๋˜๋Š”๊ฒฝ์šฐ์ด๋‹ค. ํ›„์ž์˜๊ฒฝ์šฐ์—๋Š”์„ ์ •๋œ a๊ฐ€ n์„์†Œ์ˆ˜๋ผ๊ณ ์ž˜๋ชปํŒ๋‹จํ•˜๊ฒŒํ•˜๋Š”๊ฐ•ํ•œ๊ฑฐ์ง“์ฆ๊ฑฐ๊ฐ€๋œ๋‹ค.

n์ดํ™€์ˆ˜์˜ํ•ฉ์„ฑ์ˆ˜์ด๋ฉด 2 โ‰ค a โ‰ค nโ€“1๋ฒ”์œ„๋‚ด์˜์ •์ˆ˜๋“ค์ค‘์—์„œ๊ธฐ๊ปํ•ด์•ผ 1/4์ •๋„๊ฐ€ ๊ฐ•ํ•œ ๊ฑฐ์ง“์ฆ๊ฑฐ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๊ฐœ์˜ a์— ๋Œ€ํ•ด์„œ ํ•ฉ์„ฑ์ˆ˜(composite) n์„ ์†Œ์ˆ˜๋กœ ํŒ์ •ํ•  ํ™•๋ฅ ์€Millerโˆ’RabinํŒ์ •๋ฒ•์—์„œ๋Š” 1/4์ดํ•˜๊ฐ€๋œ๋‹ค.

๋”ฐ๋ผ์„œ, ์„ ํƒ๋œ n์ด์ž„์˜๋กœ์„ ์ •๋œ์—ฌ๋Ÿฌ ๊ฐœ์˜ a ๊ฐ’์—๋Œ€ํ•˜์—ฌ Millerโˆ’RabinํŒ์ •๋ฒ•์„ํ†ต๊ณผํ•œ๋‹ค๋ฉด ๋งค์šฐ ๋†’์€ ํ™•๋ฅ ๋กœ n์„ ์†Œ์ˆ˜๋กœ ํŒ์ •ํ•  ์ˆ˜๊ฐ€ ์žˆ๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ, k๋ฒˆ์„ ๋ฐ˜๋ณตํ•˜์—ฌMillerโˆ’RabinํŒ์ •๋ฒ•์„ํ†ต๊ณผํ•œ๋‹ค๋ฉด n์ด์†Œ์ˆ˜์ผํ™•๋ฅ ์€ 1 โˆ’ (1/4)k์ด์ƒ์ด๋œ๋‹ค.

โ‘ Miller_Rabin(n, k) Algorithm

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 8: Public key cryptosystems

8

โ‘ Speed of RSA

โ€ข (1995) 1 Mbps with 512-bit modulus

โ€ข Hardware ๊ตฌํ˜„๊ตฌํ˜„๊ตฌํ˜„๊ตฌํ˜„, DES ๋ณด๋‹ค 1000๋ฐฐ๋Š๋ฆผ

โ€ข Software ๊ตฌํ˜„๊ตฌํ˜„๊ตฌํ˜„๊ตฌํ˜„ with 8-bit public-key on SPARC II

512-bit 768-bit 1024-bit

Encrypt 0.03sec 0.05sec 0.08sec

Decrypt 0.16sec 0.48sec 0.93sec

โ‘ Standard and Patent

โ€ข RSA Data Security Inc., (Sep. 20, 2000) in USA

โ€ข French and Australian Banks ํ‘œ์ค€

โ€ข ISO de facto standard

๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ ์ด์‚ฐ๋Œ€์ˆ˜์ด์‚ฐ๋Œ€์ˆ˜์ด์‚ฐ๋Œ€์ˆ˜์ด์‚ฐ๋Œ€์ˆ˜ ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ((((discrete logarithm problem)discrete logarithm problem)discrete logarithm problem)discrete logarithm problem)

โ‘ ์ •์˜

์†Œ์ˆ˜ p

๊ณฑ์…ˆ์ƒ์˜๊ตฐ Zp*์˜์ƒ์„ฑ์ž g

์›์†Œ y โˆˆ Zp*

y = gx mod p๋ฅผ๋งŒ์กฑํ•˜๋Š” 1 โ‰ค x โ‰ค pโˆ’2๋ฒ”์œ„๋‚ด์˜ x = loggy mod (pโˆ’1)์„๊ตฌํ•˜๋Š”๊ฒƒ.

โ‘ Algorithms

[1] Compute g0, g1, g2, โ€ฆ until y = gx mod n so that x can be obtained

[2] Shanks Algorithm

[3] Pohlig-Hellman Algorithm

[4] Index-Calculus Algorithm

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 9: Public key cryptosystems

9

โ‘ Shanks Algorithm

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

์†Œ์ˆ˜ p, ๊ณฑ์…ˆ์ƒ์˜๊ตฐ Zp*์˜์ƒ์„ฑ์ž g, g์˜์œ„์ˆ˜ t = p-1, s =

y = gx mod p๋ฅผ๋งŒ์กฑ 1 โ‰ค x โ‰ค pโˆ’2 x = loggy mod (pโˆ’1)์„๊ตฌํ•˜๋Š”๊ฒƒ

x = iโ‹…s + j, where i, j โˆˆ [0, s)y = gx = gisgj =gis+j

y(g-s)i = gj

t

(0, g0)

(1, g1)

:

(j, gj)

:

(sโˆ’1, gsโˆ’1)

yg0

ygโˆ’sโ‹… 1

:

ygโˆ’sโ‹… i

:

ygโˆ’sโ‹… (sโˆ’1)

x = iโ‹…โ‹…โ‹…โ‹…s + j

โ‘ ElGamal ElGamal ElGamal ElGamal ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ System ์ƒ์„ฑ์ƒ์„ฑ์ƒ์„ฑ์ƒ์„ฑ

(i) ๋งค์šฐํฐ์†Œ์ˆ˜ p (ii) ๊ณฑ์…ˆ์ƒ์˜๊ตฐ Zp*์˜์ƒ์„ฑ์ž g(iii) ์ž„์˜์˜๋‚œ์ˆ˜ x โˆˆ [ 1, pโˆ’2 ] ์ƒ์„ฑ, y = gx mod p๋ฅผ๊ณ„์‚ฐ.

โ‘ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ke๋Š”๋Š”๋Š”๋Š” { y, g, p }, ๊ฐœ์ธํ‚ค๊ฐœ์ธํ‚ค๊ฐœ์ธํ‚ค๊ฐœ์ธํ‚ค kd๋Š”๋Š”๋Š”๋Š” { x }.

โ‘ ์•”ํ˜ธํ™”์™€์•”ํ˜ธํ™”์™€์•”ํ˜ธํ™”์™€์•”ํ˜ธํ™”์™€๋ณตํ˜ธํ™”๋ณตํ˜ธํ™”๋ณตํ˜ธํ™”๋ณตํ˜ธํ™”

๋‚œ์ˆ˜ x โˆˆ [1, pโˆ’2] ์ƒ์„ฑ ( Randomized Encryption )

Eke( m ) = c = { c1, c2 } = { gx mod p, yxx m mod p } Dkd( c ) = c2 c1

โˆ’x mod p = m

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 10: Public key cryptosystems

10

โ‘ Diffie-Hellman ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๋ถ„๋ฐฐ๋ถ„๋ฐฐ๋ถ„๋ฐฐ๋ถ„๋ฐฐ

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ System ์ƒ์„ฑ์ƒ์„ฑ์ƒ์„ฑ์ƒ์„ฑ

(i) ๋งค์šฐํฐ์†Œ์ˆ˜ p (ii) ๊ณฑ์…ˆ์ƒ์˜๊ตฐ Zp*์˜์ƒ์„ฑ์ž g

Alice๋‚œ์ˆ˜๋‚œ์ˆ˜๋‚œ์ˆ˜๋‚œ์ˆ˜ xA

Bob๋‚œ์ˆ˜๋‚œ์ˆ˜๋‚œ์ˆ˜๋‚œ์ˆ˜ xByA = gxA mod p

yB = gxB mod p

k = (yB) xA mod p =gxB xA mod p k = (yA) xB mod p =gxA xB mod p

โ‘ Elliptic Curve (Elliptic Curve (Elliptic Curve (Elliptic Curve (ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ) ) ) ) ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

์‹ค์ˆ˜์‹ค์ˆ˜์‹ค์ˆ˜์‹ค์ˆ˜(real number)์ƒ์—์„œ์˜์ƒ์—์„œ์˜์ƒ์—์„œ์˜์ƒ์—์„œ์˜ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ (elliptic curve)์€์€์€์€ a์™€์™€์™€์™€ b๊ฐ€๊ฐ€๊ฐ€๊ฐ€๊ณ ์ •๋œ๊ณ ์ •๋œ๊ณ ์ •๋œ๊ณ ์ •๋œ์‹ค์ˆ˜์ผ์‹ค์ˆ˜์ผ์‹ค์ˆ˜์ผ์‹ค์ˆ˜์ผ๊ฒฝ์šฐ์—๊ฒฝ์šฐ์—๊ฒฝ์šฐ์—๊ฒฝ์šฐ์—๋ฐฉ์ •์‹๋ฐฉ์ •์‹๋ฐฉ์ •์‹๋ฐฉ์ •์‹ y2 = x3 + ax + b์„์„์„์„๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š” (x, y) ์ ๋“ค์˜์ ๋“ค์˜์ ๋“ค์˜์ ๋“ค์˜์ง‘ํ•ฉ์„์ง‘ํ•ฉ์„์ง‘ํ•ฉ์„์ง‘ํ•ฉ์„์˜๋ฏธํ•œ๋‹ค์˜๋ฏธํ•œ๋‹ค์˜๋ฏธํ•œ๋‹ค์˜๋ฏธํ•œ๋‹ค.

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Java Animation : ecc-java1.htm

Page 11: Public key cryptosystems

11

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ Addition of point P and point Q

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ Addition of P and โˆ’โˆ’โˆ’โˆ’P

By definition, P + (-P) = O.

As a result of this equation, P + O = P in the elliptic curve group .

O = the additive identity ofthe elliptic curve group;

All elliptic curves have an additive identity.

Page 12: Public key cryptosystems

12

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ Doubling the point P

P = (x, y)

If y โ‰ โ‰ โ‰ โ‰  0, then P ์—์„œ์˜์—์„œ์˜์—์„œ์˜์—์„œ์˜ ์ ‘์„ ์€์ ‘์„ ์€์ ‘์„ ์€์ ‘์„ ์€์ •ํ™•ํžˆ์ •ํ™•ํžˆ์ •ํ™•ํžˆ์ •ํ™•ํžˆ

ํƒ€์›๊ณก์„ ์˜ํƒ€์›๊ณก์„ ์˜ํƒ€์›๊ณก์„ ์˜ํƒ€์›๊ณก์„ ์˜ ๋‹ค๋ฅธ๋‹ค๋ฅธ๋‹ค๋ฅธ๋‹ค๋ฅธํ•œํ•œํ•œํ•œ์ ๊ณผ์ ๊ณผ์ ๊ณผ์ ๊ณผ๊ต์ฐจ๊ต์ฐจ๊ต์ฐจ๊ต์ฐจ.

the law for doubling a point on an elliptic curve group :P + P = 2P = R

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ Doubling the point P if y = 0

By definition, 2P = O for such a point P.

To find 3P in this situation, one can add 2P + P. Then, P + O = P

Thus 3P = P. 3P = P, 4P = O, 5P = P, 6P = O, 7P = P, โ€ฆ

Page 13: Public key cryptosystems

13

โ‘ Elliptic Curve Group ( Elliptic Curve Group ( Elliptic Curve Group ( Elliptic Curve Group ( ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„  ๊ตฐ๊ตฐ๊ตฐ๊ตฐ ))))

์ฒซ์งธ์ฒซ์งธ์ฒซ์งธ์ฒซ์งธ, ๋ฌดํ•œ๋Œ€๋ฌดํ•œ๋Œ€๋ฌดํ•œ๋Œ€๋ฌดํ•œ๋Œ€์ ์€์ ์€์ ์€์ ์€ O์œผ๋กœ์œผ๋กœ์œผ๋กœ์œผ๋กœํ‘œ๊ธฐํ•˜๋ฉฐํ‘œ๊ธฐํ•˜๋ฉฐํ‘œ๊ธฐํ•˜๋ฉฐํ‘œ๊ธฐํ•˜๋ฉฐํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ์œ„์˜์œ„์˜์œ„์˜์œ„์˜์ž„์˜์˜์ž„์˜์˜์ž„์˜์˜์ž„์˜์˜์ ์ ์ ์  P์—์—์—์—๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ P + O = P๊ฐ€๊ฐ€๊ฐ€๊ฐ€์„ฑ๋ฆฝ๋œ๋‹ค์„ฑ๋ฆฝ๋œ๋‹ค์„ฑ๋ฆฝ๋œ๋‹ค์„ฑ๋ฆฝ๋œ๋‹ค. ์ฆ‰์ฆ‰์ฆ‰์ฆ‰๋ฌดํ•œ๋Œ€๋ฌดํ•œ๋Œ€๋ฌดํ•œ๋Œ€๋ฌดํ•œ๋Œ€์ ์€์ ์€์ ์€์ ์€๋ง์…ˆ์ƒ์˜๋ง์…ˆ์ƒ์˜๋ง์…ˆ์ƒ์˜๋ง์…ˆ์ƒ์˜ํ•ญ๋“ฑ์›ํ•ญ๋“ฑ์›ํ•ญ๋“ฑ์›ํ•ญ๋“ฑ์›(identity)์ด์ด์ด์ด ๋œ๋‹ค๋œ๋‹ค๋œ๋‹ค๋œ๋‹ค.

๋‘˜์งธ๋‘˜์งธ๋‘˜์งธ๋‘˜์งธ๋Š”๋Š”๋Š”๋Š”ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜์ž„์˜์˜์ž„์˜์˜์ž„์˜์˜์ž„์˜์˜์ ์ ์ ์  P์—์—์—์—๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ P + Q = O์„์„์„์„๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”์ ์ ์ ์  Q๊ฐ€๊ฐ€๊ฐ€๊ฐ€์กด์žฌ์กด์žฌ์กด์žฌ์กด์žฌํ•˜๋Š”๋ฐํ•˜๋Š”๋ฐํ•˜๋Š”๋ฐํ•˜๋Š”๋ฐ

Q = โˆ’โˆ’โˆ’โˆ’P๋กœ๋กœ๋กœ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉฐ๋‚˜ํƒ€๋‚ด๋ฉฐ๋‚˜ํƒ€๋‚ด๋ฉฐ๋‚˜ํƒ€๋‚ด๋ฉฐ๋บ„์…ˆ๋บ„์…ˆ๋บ„์…ˆ๋บ„์…ˆ Rโ€“S๋Š”๋Š”๋Š”๋Š” R + (โˆ’โˆ’โˆ’โˆ’S)๋กœ๋กœ๋กœ๋กœ์ •์˜๋œ๋‹ค์ •์˜๋œ๋‹ค์ •์˜๋œ๋‹ค์ •์˜๋œ๋‹ค. ์ ์ ์ ์  โˆ’โˆ’โˆ’โˆ’P๋Š”๋Š”๋Š”๋Š”์ ์ ์ ์  P์˜์˜์˜์˜ x์ถ•์—์ถ•์—์ถ•์—์ถ•์—๋Œ€ํ•œ๋Œ€ํ•œ๋Œ€ํ•œ๋Œ€ํ•œ๋Œ€์นญ์ ์ด๋Œ€์นญ์ ์ด๋Œ€์นญ์ ์ด๋Œ€์นญ์ ์ด๋˜๊ธฐ๋˜๊ธฐ๋˜๊ธฐ๋˜๊ธฐ๋•Œ๋ฌธ์—๋•Œ๋ฌธ์—๋•Œ๋ฌธ์—๋•Œ๋ฌธ์—์ ์ ์ ์  P์˜์˜์˜์˜์ขŒํ‘œ๊ฐ€์ขŒํ‘œ๊ฐ€์ขŒํ‘œ๊ฐ€์ขŒํ‘œ๊ฐ€ (x, y)์ด๋ฉด์ด๋ฉด์ด๋ฉด์ด๋ฉด์ ์ ์ ์  โˆ’โˆ’โˆ’โˆ’P์˜์˜์˜์˜ ์ขŒํ‘œ๋Š”์ขŒํ‘œ๋Š”์ขŒํ‘œ๋Š”์ขŒํ‘œ๋Š” (x, โˆ’โˆ’โˆ’โˆ’y)๊ฐ€๊ฐ€๊ฐ€๊ฐ€๋œ๋‹ค๋œ๋‹ค๋œ๋‹ค๋œ๋‹ค.

์…‹์งธ์…‹์งธ์…‹์งธ์…‹์งธ, ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜์ž„์˜์˜์ž„์˜์˜์ž„์˜์˜์ž„์˜์˜์ ์ ์ ์  P์™€์™€์™€์™€ Q์—์—์—์—๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ P + Q = Q + P๊ฐ€๊ฐ€๊ฐ€๊ฐ€์„ฑ๋ฆฝํ•œ๋‹ค์„ฑ๋ฆฝํ•œ๋‹ค์„ฑ๋ฆฝํ•œ๋‹ค์„ฑ๋ฆฝํ•œ๋‹ค.

๋„ท์งธ๋„ท์งธ๋„ท์งธ๋„ท์งธ, ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜์ž„์˜์˜์ž„์˜์˜์ž„์˜์˜์ž„์˜์˜์ ์ ์ ์  P, Q์™€์™€์™€์™€ R์—์—์—์—๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ P + ( Q + R ) = ( P + Q ) + R์ด์ด์ด์ด ์„ฑ๋ฆฝํ•œ๋‹ค์„ฑ๋ฆฝํ•œ๋‹ค์„ฑ๋ฆฝํ•œ๋‹ค์„ฑ๋ฆฝํ•œ๋‹ค.

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

RQP

S = P + Q

x

y

โ‘ Elliptic Curve (ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ) ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

(x1, y1), (x2, y2), (x3, y3)์„์„์„์„์ ์ ์ ์  P, Q, S = P + Q์˜์˜์˜์˜์ขŒํ‘œ์ขŒํ‘œ์ขŒํ‘œ์ขŒํ‘œ. ์ ์ ์ ์  P + Q = S์ขŒํ‘œ์ขŒํ‘œ์ขŒํ‘œ์ขŒํ‘œ (x3, y3)์„์„์„์„ x1, y1, x2, y2๋กœ๋กœ๋กœ๋กœํ‘œํ˜„ํ‘œํ˜„ํ‘œํ˜„ํ‘œํ˜„.

y = ฮฑฮฑฮฑฮฑx + ฮฒฮฒฮฒฮฒ๋ฅผ๋ฅผ๋ฅผ๋ฅผ์ ์ ์ ์  P์™€์™€์™€์™€ Q๋ฅผ๋ฅผ๋ฅผ๋ฅผ์ง€๋‚˜๋Š”์ง€๋‚˜๋Š”์ง€๋‚˜๋Š”์ง€๋‚˜๋Š”์„ ์˜์„ ์˜์„ ์˜์„ ์˜๋ฐฉ์ •์‹๋ฐฉ์ •์‹๋ฐฉ์ •์‹๋ฐฉ์ •์‹, ฮฑฮฑฮฑฮฑ = (y2 โ€“ y1) / (x2 โ€“ x1), ฮฒฮฒฮฒฮฒ = y1 โ€“ ฮฑฮฑฮฑฮฑx1.

๋งŒ์•ฝ๋งŒ์•ฝ๋งŒ์•ฝ๋งŒ์•ฝ, (ฮฑฮฑฮฑฮฑx + ฮฒฮฒฮฒฮฒ)2 = x3 + ax + b์ด๋ฉด์ด๋ฉด์ด๋ฉด์ด๋ฉด์ ์ ์ ์  P์™€์™€์™€์™€ Q๋ฅผ๋ฅผ๋ฅผ๋ฅผ์ง€๋‚˜๋Š”์ง€๋‚˜๋Š”์ง€๋‚˜๋Š”์ง€๋‚˜๋Š”์„ ์„ ์„ ์„ ์œ„์˜์œ„์˜์œ„์˜์œ„์˜์ ์ ์ ์  (x, ฮฑฮฑฮฑฮฑx + ฮฒฮฒฮฒฮฒ)๋Š”๋Š”๋Š”๋Š”ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜์ ์ด์ ์ด์ ์ด์ ์ด๋œ๋‹ค๋œ๋‹ค๋œ๋‹ค๋œ๋‹ค.

3์ฐจ์ฐจ์ฐจ์ฐจ๋ฐฉ์ •์‹๋ฐฉ์ •์‹๋ฐฉ์ •์‹๋ฐฉ์ •์‹ x3 โˆ’โˆ’โˆ’โˆ’(ฮฑฮฑฮฑฮฑx + ฮฒฮฒฮฒฮฒ)2 + ax + b์˜์˜์˜์˜๊ฐ๊ฐ์˜๊ฐ๊ฐ์˜๊ฐ๊ฐ์˜๊ฐ๊ฐ์˜๊ทผ๊ทผ๊ทผ๊ทผ(root)์—์—์—์—๋Œ€ํ•˜์—ฌ๋Œ€ํ•˜์—ฌ๋Œ€ํ•˜์—ฌ๋Œ€ํ•˜์—ฌํ•œํ•œํ•œํ•œ๊ฐœ์˜๊ฐœ์˜๊ฐœ์˜๊ฐœ์˜๊ต์ฐจ์ ์ด๊ต์ฐจ์ ์ด๊ต์ฐจ์ ์ด๊ต์ฐจ์ ์ด์กด์žฌํ•˜๊ฒŒ์กด์žฌํ•˜๊ฒŒ์กด์žฌํ•˜๊ฒŒ์กด์žฌํ•˜๊ฒŒ๋œ๋‹ค๋œ๋‹ค๋œ๋‹ค๋œ๋‹ค. (x1, ฮฑฮฑฮฑฮฑx1 + ฮฒฮฒฮฒฮฒ)์™€์™€์™€์™€ (x2, ฮฑฮฑฮฑฮฑx2 + ฮฒฮฒฮฒฮฒ)๋Š”๋Š”๋Š”๋Š”ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜๋‘๋‘๋‘๋‘์ ์ ์ ์ P์™€์™€์™€์™€ Q์ด๊ธฐ์ด๊ธฐ์ด๊ธฐ์ด๊ธฐ๋•Œ๋ฌธ์—๋•Œ๋ฌธ์—๋•Œ๋ฌธ์—๋•Œ๋ฌธ์— x1๊ณผ๊ณผ๊ณผ๊ณผ x2๊ฐ€๊ฐ€๊ฐ€๊ฐ€ 3์ฐจ์ฐจ์ฐจ์ฐจ๋ฐฉ์ •์‹์˜๋ฐฉ์ •์‹์˜๋ฐฉ์ •์‹์˜๋ฐฉ์ •์‹์˜๊ทผ๊ทผ๊ทผ๊ทผ.

x1 + x2 + x3 = ฮฑฮฑฮฑฮฑ2

๊ฒฐ๊ตญ๊ฒฐ๊ตญ๊ฒฐ๊ตญ๊ฒฐ๊ตญ๋‚˜๋จธ์ง€๋‚˜๋จธ์ง€๋‚˜๋จธ์ง€๋‚˜๋จธ์ง€๊ทผ์€๊ทผ์€๊ทผ์€๊ทผ์€ x3 = ฮฑฮฑฮฑฮฑ2 โ€“ x1 โ€“ x2์ด์ด์ด์ด๋˜๊ณ ๋˜๊ณ ๋˜๊ณ ๋˜๊ณ  ์ ์ ์ ์  P + Q์˜์˜์˜์˜์ขŒํ‘œ์ขŒํ‘œ์ขŒํ‘œ์ขŒํ‘œ (x3, y3)

RQP

S = P + Q

x

y

212

12

123 )( xx

xxyyx โˆ’โˆ’

โˆ’โˆ’= ))(( 31

12

1213 xx

xxyyyy โˆ’

โˆ’โˆ’+โˆ’=

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 14: Public key cryptosystems

14

โ‘ Elliptic CurveElliptic CurveElliptic CurveElliptic Curve ((((ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ) ) ) ) ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

12

1

21

3 2)2

3( xy

axx โˆ’+=

))(2

3( 311

21

13 xxy

axyy โˆ’++โˆ’=

P + Q์—์„œ์—์„œ์—์„œ์—์„œ P = Q๊ฐ€๊ฐ€๊ฐ€๊ฐ€๋˜๋ฉด๋˜๋ฉด๋˜๋ฉด๋˜๋ฉด ฮฑฮฑฮฑฮฑ๋Š”๋Š”๋Š”๋Š”์ ์ ์ ์  P์—์„œ์˜์—์„œ์˜์—์„œ์˜์—์„œ์˜๋ฏธ๋ถ„๋ฏธ๋ถ„๋ฏธ๋ถ„๋ฏธ๋ถ„๊ฐ’์ด๊ฐ’์ด๊ฐ’์ด๊ฐ’์ด๋˜๊ธฐ๋˜๊ธฐ๋˜๊ธฐ๋˜๊ธฐ๋•Œ๋ฌธ์—๋•Œ๋ฌธ์—๋•Œ๋ฌธ์—๋•Œ๋ฌธ์—

y2 = x3 + ax + b์„์„์„์„ ์Œํ•จ์ˆ˜์Œํ•จ์ˆ˜์Œํ•จ์ˆ˜์Œํ•จ์ˆ˜๋ฏธ๋ถ„ํ•˜๋ฉด๋ฏธ๋ถ„ํ•˜๋ฉด๋ฏธ๋ถ„ํ•˜๋ฉด๋ฏธ๋ถ„ํ•˜๋ฉด

2yyโ€ฒโ€ฒโ€ฒโ€ฒ = 3x2 + a๊ฐ€๊ฐ€๊ฐ€๊ฐ€๋˜๊ณ ๋˜๊ณ ๋˜๊ณ ๋˜๊ณ ์ ์ ์ ์  P = (x1, y1)์—์„œ์˜์—์„œ์˜์—์„œ์˜์—์„œ์˜๊ธฐ์šธ๊ธฐ๋Š”๊ธฐ์šธ๊ธฐ๋Š”๊ธฐ์šธ๊ธฐ๋Š”๊ธฐ์šธ๊ธฐ๋Š” ฮฑฮฑฮฑฮฑ = (3x12 + a) / 2y1์ด์ด์ด์ด๋œ๋‹ค๋œ๋‹ค๋œ๋‹ค๋œ๋‹ค.

์ ์ ์ ์  P + Q = S์˜์˜์˜์˜์ขŒํ‘œ์ขŒํ‘œ์ขŒํ‘œ์ขŒํ‘œ (x3, y3)์„์„์„์„ x1, y1, x2, y2๋ฅผ๋ฅผ๋ฅผ๋ฅผํ†ตํ•ด์„œํ†ตํ•ด์„œํ†ตํ•ด์„œํ†ตํ•ด์„œํ‘œํ˜„ํ•˜๋ฉดํ‘œํ˜„ํ•˜๋ฉดํ‘œํ˜„ํ•˜๋ฉดํ‘œํ˜„ํ•˜๋ฉด๋‹ค์Œ๊ณผ๋‹ค์Œ๊ณผ๋‹ค์Œ๊ณผ๋‹ค์Œ๊ณผ๊ฐ™๋‹ค๊ฐ™๋‹ค๊ฐ™๋‹ค๊ฐ™๋‹ค.

R

P

S = P + P

x

y

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ ์œ ํ•œ์ฒด์œ ํ•œ์ฒด์œ ํ•œ์ฒด์œ ํ•œ์ฒด((((finite Field) finite Field) finite Field) finite Field) ์ƒ์—์„œ์˜์ƒ์—์„œ์˜์ƒ์—์„œ์˜์ƒ์—์„œ์˜ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ 

p๊ฐ€๊ฐ€๊ฐ€๊ฐ€์†Œ์ˆ˜์ผ์†Œ์ˆ˜์ผ์†Œ์ˆ˜์ผ์†Œ์ˆ˜์ผ๋•Œ๋•Œ๋•Œ๋•Œ์œ ํ•œ์œ ํ•œ์œ ํ•œ์œ ํ•œ์ฒด์ฒด์ฒด์ฒด GF(p)์ƒ์—์„œ์˜์ƒ์—์„œ์˜์ƒ์—์„œ์˜์ƒ์—์„œ์˜ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ (elliptic curve)์€์€์€์€ a, b โˆˆโˆˆโˆˆโˆˆ GF(p)์˜์˜์˜์˜๊ฒฝ์šฐ์—๊ฒฝ์šฐ์—๊ฒฝ์šฐ์—๊ฒฝ์šฐ์—๋ฐฉ์ •์‹๋ฐฉ์ •์‹๋ฐฉ์ •์‹๋ฐฉ์ •์‹ y2 mod p = x3 + ax + b mod p๋ฅผ๋ฅผ๋ฅผ๋ฅผ๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š” (x, y) ์ ๋“ค์˜์ ๋“ค์˜์ ๋“ค์˜์ ๋“ค์˜์ง‘ํ•ฉ๊ณผ์ง‘ํ•ฉ๊ณผ์ง‘ํ•ฉ๊ณผ์ง‘ํ•ฉ๊ณผ๋ฌดํ•œ๋Œ€๋ฌดํ•œ๋Œ€๋ฌดํ•œ๋Œ€๋ฌดํ•œ๋Œ€์ ์ ์ ์  OO์„์„์„์„์˜๋ฏธํ•œ๋‹ค์˜๋ฏธํ•œ๋‹ค์˜๋ฏธํ•œ๋‹ค์˜๋ฏธํ•œ๋‹ค. ๋ฌผ๋ก ๋ฌผ๋ก ๋ฌผ๋ก ๋ฌผ๋ก , x, y โˆˆโˆˆโˆˆโˆˆ GF(p)

a = 1 and b = 0์ผ์ผ์ผ์ผ ๋•Œ๋•Œ๋•Œ๋•Œ, ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„  y2 = x3 + x.์ ์ ์ ์  (9,5)์€์€์€์€์œ„์˜์œ„์˜์œ„์˜์œ„์˜์‹์„์‹์„์‹์„์‹์„๋งŒ์กฑ๋งŒ์กฑ๋งŒ์กฑ๋งŒ์กฑ because :

y2 mod p = x3 + x mod p52 mod 23 = 93 + 9 mod 23 25 mod 23 = 738 mod 23 2 = 2

The 23 points which satisfy this equation are:

(0,0) (1,5) (1,18) (9,5) (9,18) (11,10) (11,13) (13,5) (13,18) (15,3) (15,20) (16,8) (16,15) (17,10) (17,13) (18,10) (18,13) (19,1) (19,22) (20,4) (20,19) (21,6) (21,17)

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Java Animation : ecc-java2.htm

Page 15: Public key cryptosystems

15

โ‘ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„  ์ด์‚ฐ๋Œ€์ˆ˜์ด์‚ฐ๋Œ€์ˆ˜์ด์‚ฐ๋Œ€์ˆ˜์ด์‚ฐ๋Œ€์ˆ˜ ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ

โ€ข GF(p), where p is a prime(์†Œ์ˆ˜์†Œ์ˆ˜์†Œ์ˆ˜์†Œ์ˆ˜)

โ€ขํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜์ ์ ์ ์  P์˜์˜์˜์˜์œ„์ˆ˜์œ„์ˆ˜์œ„์ˆ˜์œ„์ˆ˜(order) t : tP = 0์„์„์„์„๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๊ฐ€์žฅ๊ฐ€์žฅ๊ฐ€์žฅ๊ฐ€์žฅ์ž‘์€์ž‘์€์ž‘์€์ž‘์€์ •์ˆ˜์ •์ˆ˜์ •์ˆ˜์ •์ˆ˜ t

โ€ข GF(p)์ƒ์—์„œ์ƒ์—์„œ์ƒ์—์„œ์ƒ์—์„œ์ •์˜๋œ์ •์˜๋œ์ •์˜๋œ์ •์˜๋œํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜ํƒ€์›๊ณก์„ ์ƒ์˜์ ์ ์ ์  Q, ์œ„์ˆ˜๊ฐ€์œ„์ˆ˜๊ฐ€์œ„์ˆ˜๊ฐ€์œ„์ˆ˜๊ฐ€ t ์ธ์ธ์ธ์ธ์ ์ ์ ์  P,

Q = xP๋ฅผ๋ฅผ๋ฅผ๋ฅผ๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”๋งŒ์กฑํ•˜๋Š”์ •์ˆ˜์ •์ˆ˜์ •์ˆ˜์ •์ˆ˜ x โˆˆโˆˆโˆˆโˆˆ [0, tโˆ’โˆ’โˆ’โˆ’1]๋ฅผ๋ฅผ๋ฅผ๋ฅผ๊ตฌํ•˜๋Š”๊ตฌํ•˜๋Š”๊ตฌํ•˜๋Š”๊ตฌํ•˜๋Š”๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ

P, 2P = P + P, 3P = P + P + P, โ€ฆ๋ฅผ๋ฅผ๋ฅผ๋ฅผ์—ฐ์†์ ์œผ๋กœ์—ฐ์†์ ์œผ๋กœ์—ฐ์†์ ์œผ๋กœ์—ฐ์†์ ์œผ๋กœ๊ณ„์‚ฐ๊ณ„์‚ฐ๊ณ„์‚ฐ๊ณ„์‚ฐ

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

y2 mod 23 = x3 + 9x + 17 mod 23,

What is the discrete logarithm x of Q = (4,5) to the base P = (16,5)? Q = xP

P = (16,5) 2P = (20,20) 3P = (14,14) 4P = (19,20) 5P = (13,10)6P = (7,3) 7P = (8,7) 8P = (12,17) 9P = (4,5)

Since 9P = (4,5) = Q, the discrete logarithm of Q to the base P is x = 9.

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ ๋ฐ˜๋ณต๋ฐ˜๋ณต๋ฐ˜๋ณต๋ฐ˜๋ณต 2222๋ฐฐ์ˆ˜๋ฐฐ์ˆ˜๋ฐฐ์ˆ˜๋ฐฐ์ˆ˜----๋ง์…ˆ๋ง์…ˆ๋ง์…ˆ๋ง์…ˆ

โ€ข 2P = P + P

โ€ข 100P = 2( 2( P + 2( 2( 2( P + 2P ) ) ) ) )

Page 16: Public key cryptosystems

16

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

What is the discrete logarithm of Q(-0.35,2.39) to the base P(-1.65,-2.79) in the elliptic curve group y2 = x3 - 5x + 4over real numbers?

โ‘ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„  ์ด์‚ฐ๋Œ€์ˆ˜์ด์‚ฐ๋Œ€์ˆ˜์ด์‚ฐ๋Œ€์ˆ˜์ด์‚ฐ๋Œ€์ˆ˜ ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ๋ฌธ์ œ

Java Animation : ecc-java3.htm

โ‘ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„  ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

ElGamal๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค : { g, p, y = gx mod p } { G, p, Y = xG }๊ฐœ์ธํ‚ค๊ฐœ์ธํ‚ค๊ฐœ์ธํ‚ค๊ฐœ์ธํ‚ค : { x } { x }์•”ํ˜ธํ™”์•”ํ˜ธํ™”์•”ํ˜ธํ™”์•”ํ˜ธํ™” : [ c1, c2 ] = [ gx mod p, yxm mod p ] [ C1, C2 ] = [ xG, xY + M ]๋ณตํ˜ธํ™”๋ณตํ˜ธํ™”๋ณตํ˜ธํ™”๋ณตํ˜ธํ™” : c2 c1

โˆ’โˆ’โˆ’โˆ’x mod p C2 โ€“ xC1

[์˜ˆ์˜ˆ์˜ˆ์˜ˆ] p = 11, a =1, b = 6์ธ์ธ์ธ์ธ ๊ฒฝ์šฐ์—๊ฒฝ์šฐ์—๊ฒฝ์šฐ์—๊ฒฝ์šฐ์— GF(p)์ƒ์—์„œ์ƒ์—์„œ์ƒ์—์„œ์ƒ์—์„œ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„  y2 = x3 + x2 + 6์ด์ด์ด์ด ์ •์˜๋˜๊ณ ์ •์˜๋˜๊ณ ์ •์˜๋˜๊ณ ์ •์˜๋˜๊ณ  ํƒ€์›ํƒ€์›ํƒ€์›ํƒ€์›๊ณก์„ ์ƒ์˜๊ณก์„ ์ƒ์˜๊ณก์„ ์ƒ์˜๊ณก์„ ์ƒ์˜์ ๋“ค์€์ ๋“ค์€์ ๋“ค์€์ ๋“ค์€๋‹ค์Œ๊ณผ๋‹ค์Œ๊ณผ๋‹ค์Œ๊ณผ๋‹ค์Œ๊ณผ๊ฐ™๋‹ค๊ฐ™๋‹ค๊ฐ™๋‹ค๊ฐ™๋‹ค.

(2, 4) (2, 7) (3, 5) (3, 6) (5, 2) (5, 9)(7, 2) (7, 9) (8, 3) (8, 8) (10, 2) (10, 9)

์ˆ˜์‹ ์ž์˜์ˆ˜์‹ ์ž์˜์ˆ˜์‹ ์ž์˜์ˆ˜์‹ ์ž์˜๊ฐœ์ธํ‚ค๊ฐœ์ธํ‚ค๊ฐœ์ธํ‚ค๊ฐœ์ธํ‚ค x = 7, ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค G = (2, 7), Y = 7(2, 7) = (7, 2)๊ฐ€๊ฐ€๊ฐ€๊ฐ€์ฃผ์–ด์กŒ์„์ฃผ์–ด์กŒ์„์ฃผ์–ด์กŒ์„์ฃผ์–ด์กŒ์„๋•Œ๋•Œ๋•Œ๋•Œ, ์†ก์‹ ์ž๋Š”์†ก์‹ ์ž๋Š”์†ก์‹ ์ž๋Š”์†ก์‹ ์ž๋Š”์ž„์˜์˜์ž„์˜์˜์ž„์˜์˜์ž„์˜์˜๋‚œ์ˆ˜๋‚œ์ˆ˜๋‚œ์ˆ˜๋‚œ์ˆ˜ x = 3์„์„์„์„์„ ์ •ํ•˜์—ฌ์„ ์ •ํ•˜์—ฌ์„ ์ •ํ•˜์—ฌ์„ ์ •ํ•˜์—ฌํ‰๋ฌธํ‰๋ฌธํ‰๋ฌธํ‰๋ฌธ M = (10, 9)์„์„์„์„์•”ํ˜ธ๋ฌธ์•”ํ˜ธ๋ฌธ์•”ํ˜ธ๋ฌธ์•”ํ˜ธ๋ฌธ C1 = 3(2, 7) = (8, 3), C2= 3(7, 2) + (10, 9) = (10, 2)๋กœ๋กœ๋กœ๋กœ์ „ํ™˜ํ•œ๋‹ค์ „ํ™˜ํ•œ๋‹ค์ „ํ™˜ํ•œ๋‹ค์ „ํ™˜ํ•œ๋‹ค.

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

Page 17: Public key cryptosystems

17

โ‘ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ์ด์‚ฐ๋Œ€์ˆ˜์™€์ด์‚ฐ๋Œ€์ˆ˜์™€์ด์‚ฐ๋Œ€์ˆ˜์™€์ด์‚ฐ๋Œ€์ˆ˜์™€์†Œ์ธ์ˆ˜์†Œ์ธ์ˆ˜์†Œ์ธ์ˆ˜์†Œ์ธ์ˆ˜๋ถ„ํ•ด์—๋ถ„ํ•ด์—๋ถ„ํ•ด์—๋ถ„ํ•ด์—์†Œ์š”๋˜๋Š”์†Œ์š”๋˜๋Š”์†Œ์š”๋˜๋Š”์†Œ์š”๋˜๋Š”๊ณ„์‚ฐ๋Ÿ‰๊ณ„์‚ฐ๋Ÿ‰๊ณ„์‚ฐ๋Ÿ‰๊ณ„์‚ฐ๋Ÿ‰

p(bits) t (bits) mipsโˆ’โˆ’โˆ’โˆ’year

163 160 280 9.6 ร—ร—ร—ร— 1011

191 186 293 7.9 ร—ร—ร—ร— 1015

239 234 2117 1.6 ร—ร—ร—ร— 1023

359 354 2177 1.5 ร—ร—ร—ร— 1041

431 426 2213 1.0 ร—ร—ร—ร— 1052

n (bits) mipsโˆ’โˆ’โˆ’โˆ’year

512 3 ร—ร—ร—ร— 104

768 2 ร—ร—ร—ร— 108

1024 3 ร—ร—ร—ร— 1011

1280 1 ร—ร—ร—ร— 1014

1536 3 ร—ร—ร—ร— 1016

2048 3 ร—ร—ร—ร— 1020

1โˆ’โˆ’โˆ’โˆ’mips ์ปดํ“จํ„ฐ๊ฐ€์ปดํ“จํ„ฐ๊ฐ€์ปดํ“จํ„ฐ๊ฐ€์ปดํ“จํ„ฐ๊ฐ€ 1์ดˆ์—์ดˆ์—์ดˆ์—์ดˆ์— 40,000๋ฒˆ์˜๋ฒˆ์˜๋ฒˆ์˜๋ฒˆ์˜ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ๋ง์…ˆ๋ง์…ˆ๋ง์…ˆ๋ง์…ˆ์„์„์„์„์ˆ˜ํ–‰ํ• ์ˆ˜ํ–‰ํ• ์ˆ˜ํ–‰ํ• ์ˆ˜ํ–‰ํ• ์ˆ˜๊ฐ€์ˆ˜๊ฐ€์ˆ˜๊ฐ€์ˆ˜๊ฐ€์žˆ๋‹ค๊ณ ์žˆ๋‹ค๊ณ ์žˆ๋‹ค๊ณ ์žˆ๋‹ค๊ณ ๊ฐ€์ •๊ฐ€์ •๊ฐ€์ •๊ฐ€์ •.

1โˆ’โˆ’โˆ’โˆ’mips ์ปดํ“จํ„ฐ๋Š”์ปดํ“จํ„ฐ๋Š”์ปดํ“จํ„ฐ๋Š”์ปดํ“จํ„ฐ๋Š” 1๋…„๋…„๋…„๋…„๋™์•ˆ์—๋™์•ˆ์—๋™์•ˆ์—๋™์•ˆ์— (40,000)(60ร—ร—ร—ร—60ร—ร—ร—ร—24ร—ร—ร—ร—365) โ‰ˆโ‰ˆโ‰ˆโ‰ˆ 240๋ฒˆ์˜๋ฒˆ์˜๋ฒˆ์˜๋ฒˆ์˜ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ๋ง์…ˆ๋ง์…ˆ๋ง์…ˆ๋ง์…ˆ์„์„์„์„์ˆ˜ํ–‰์ˆ˜ํ–‰์ˆ˜ํ–‰์ˆ˜ํ–‰.

์™ผ์ชฝ์™ผ์ชฝ์™ผ์ชฝ์™ผ์ชฝํ‘œ๋Š”ํ‘œ๋Š”ํ‘œ๋Š”ํ‘œ๋Š”์—ฌ๋Ÿฌ์—ฌ๋Ÿฌ์—ฌ๋Ÿฌ์—ฌ๋Ÿฌ๊ฐœ์˜๊ฐœ์˜๊ฐœ์˜๊ฐœ์˜ t๊ฐ’์—๊ฐ’์—๊ฐ’์—๊ฐ’์—๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ๋Œ€ํ•ด์„œ Pollard์˜์˜์˜์˜ rho์•Œ๊ณ ๋ฆฌ์ฆ˜์„์•Œ๊ณ ๋ฆฌ์ฆ˜์„์•Œ๊ณ ๋ฆฌ์ฆ˜์„์•Œ๊ณ ๋ฆฌ์ฆ˜์„์ ์šฉ์ ์šฉ์ ์šฉ์ ์šฉํ• ํ• ํ• ํ• ๋•Œ๋•Œ๋•Œ๋•Œ, ํ•œํ•œํ•œํ•œ๊ฐœ์˜๊ฐœ์˜๊ฐœ์˜๊ฐœ์˜ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ์ด์‚ฐ๋Œ€์ˆ˜๋ฅผ์ด์‚ฐ๋Œ€์ˆ˜๋ฅผ์ด์‚ฐ๋Œ€์ˆ˜๋ฅผ์ด์‚ฐ๋Œ€์ˆ˜๋ฅผ๊ณ„์‚ฐํ•˜๊ธฐ๊ณ„์‚ฐํ•˜๊ธฐ๊ณ„์‚ฐํ•˜๊ธฐ๊ณ„์‚ฐํ•˜๊ธฐ์œ„ํ•ด์œ„ํ•ด์œ„ํ•ด์œ„ํ•ด์†Œ์š”๋˜๋Š”์†Œ์š”๋˜๋Š”์†Œ์š”๋˜๋Š”์†Œ์š”๋˜๋Š”๊ณ„์‚ฐ๋Ÿ‰์„๊ณ„์‚ฐ๋Ÿ‰์„๊ณ„์‚ฐ๋Ÿ‰์„๊ณ„์‚ฐ๋Ÿ‰์„๋‚˜ํƒ€๋‚ธ๋‹ค๋‚˜ํƒ€๋‚ธ๋‹ค๋‚˜ํƒ€๋‚ธ๋‹ค๋‚˜ํƒ€๋‚ธ๋‹ค.

์˜ˆ๋ฅผ์˜ˆ๋ฅผ์˜ˆ๋ฅผ์˜ˆ๋ฅผ๋“ค๋ฉด๋“ค๋ฉด๋“ค๋ฉด๋“ค๋ฉด 1,000โˆ’โˆ’โˆ’โˆ’mips ์ปดํ“จํ„ฐ์ปดํ“จํ„ฐ์ปดํ“จํ„ฐ์ปดํ“จํ„ฐ 10,000๋Œ€๋ฅผ๋Œ€๋ฅผ๋Œ€๋ฅผ๋Œ€๋ฅผ์ด์šฉํ•˜์—ฌ์ด์šฉํ•˜์—ฌ์ด์šฉํ•˜์—ฌ์ด์šฉํ•˜์—ฌ t = 2160์ธ์ธ์ธ์ธ๊ฒฝ์šฐ์˜๊ฒฝ์šฐ์˜๊ฒฝ์šฐ์˜๊ฒฝ์šฐ์˜ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ํƒ€์›๊ณก์„ ์ด์‚ฐ๋Œ€์ˆ˜๋ฅผ์ด์‚ฐ๋Œ€์ˆ˜๋ฅผ์ด์‚ฐ๋Œ€์ˆ˜๋ฅผ์ด์‚ฐ๋Œ€์ˆ˜๋ฅผ๊ตฌํ•˜๊ธฐ๊ตฌํ•˜๊ธฐ๊ตฌํ•˜๊ธฐ๊ตฌํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š”์œ„ํ•ด์„œ๋Š”์œ„ํ•ด์„œ๋Š”์œ„ํ•ด์„œ๋Š” 96,000โˆ’โˆ’โˆ’โˆ’year๊ฐ€๊ฐ€๊ฐ€๊ฐ€ ์†Œ์š”๋œ๋‹ค์†Œ์š”๋œ๋‹ค์†Œ์š”๋œ๋‹ค์†Œ์š”๋œ๋‹ค

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ

โ‘ ECC, RSA, DSA ์•ˆ์ „์„ฑ์•ˆ์ „์„ฑ์•ˆ์ „์„ฑ์•ˆ์ „์„ฑ๋น„๊ต๋ถ„์„๋น„๊ต๋ถ„์„๋น„๊ต๋ถ„์„๋น„๊ต๋ถ„์„

0

0.2

0.4

0.6

0.8

1

1.2

0

1000

2000

3000

4000

5000

6000

10000 100000000 1E+12 1E+20 1E+36

Time to Break Key (mips-years)

Ke

y S

ize

(Bit

s) ECC

RSA &DSA

์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ์•”ํ˜ธ์ด๋ก ๊ณผ ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ๋ณด์•ˆ ๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค๊ณต๊ฐœํ‚ค ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ์•”ํ˜ธ


Recommended