๋น„ํŠธ์ฝ”์ธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํƒ€์›๊ณก์„ ์€ ๋ฌด์—‡์ผ๊นŒ?

๋น„ํŠธ์ฝ”์ธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํƒ€์› ๊ณก์„ 

  • ์ง€๊ธˆ๊นŒ์ง€๋Š” ํƒ€์›๊ณก์„ ์— ๋“ค์–ด๊ฐ€๋Š” ์œ ํ•œ์ฒด์˜ ์œ„์ˆ˜๋ฅผ ์ž‘์€ ์†Œ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ์‹ค์ „์—์„œ๋Š” ๋งค์šฐ ํฐ ์†Œ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํ“จํ„ฐ๋กœ ํƒ์ƒ‰์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.
  • ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๋‚ด์šฉ์œผ๋กœ ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ๋ฅผ ์œ„ํ•ด ๋ช‡๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

๊ณต๊ฐœํ‚ค ์•”ํ˜ธ๋ฅผ ์œ„ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜

  • ์—์„œ ,
  • ์œ ํ•œ์ฒด์˜ ์œ„์ˆ˜์ธ ์†Œ์ˆ˜
  • ์ƒ์„ฑ์  ์˜ , ์ขŒํ‘œ๊ฐ’
  • G๋กœ ์ƒ์„ฑํ•œ ๊ตฐ์˜ ์œ„์ˆ˜
    • ๋ฌดํ•œ๋Œ€๋กœ ๊ณฑํ•˜๋ฉด ๋ฌดํ•œ ์›์ ์ด๋‚˜, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์–ด ์œ ํ•œํ•œ ์ˆ˜๋กœ ์น˜ํ™˜ํ•ด์•ผํ•จ

๋น„ํŠธ์ฝ”์ธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํƒ€์› ๊ณก์„ 

  • , , ์ฆ‰, ์„ ์‚ฌ์šฉํ•จ

๋น„ํŠธ์ฝ”์ธ ํƒ€์› ๊ณก์„ ์˜ ํŠน์ง•

  1. ๋ฐฉ์ •์‹์ด ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ„๋‹จํ•˜๋‹ค.
  2. ์œ ํ•œ์ฒด์˜ ์œ„์ˆ˜์ธ ๊ฐ€ ์— ๋งค์šฐ ๊ฐ€๊นŒ์šด ๊ฐ’์ด๋‹ค.
    • ์ด๋ ‡๊ฒŒ ๋˜๋ฉด, ๋ณด๋‹ค ์ž‘์€ ๋Œ€๋ถ€๋ถ„์˜ ์ˆซ์ž๊ฐ€ ์œ ํ•œ์ฒด๋ฅผ ํ˜•์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
      • ์ฆ‰, ๊ตฐ์— ์†ํ•˜๋Š” ๊ณก์„  ์œ„ ์ ๋„ 256๋น„ํŠธ ์•ˆ์œผ๋กœ ํ‘œํ˜„๊ฐ€๋Šฅํ•˜๋‹ค.
      • ๊ตฐ์˜ ์œ„์ˆ˜ ์—ญ์‹œ ํ‘œํ˜„๊ฐ€๋Šฅํ•˜๋‹ค. ์ฆ‰, ์Šค์นผ๋ผ ๊ณฑ์…ˆ์—์„œ ์Šค์นผ๋ผ ๊ฐ’๋„ 256๋น„ํŠธ ์•ˆ์œผ๋กœ ํ‘œํ˜„๊ฐ€๋Šฅํ•˜๋‹ค.
        • ์ด์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ
        • ์œ ํ•œ์ฒด์˜ ์›์†Œ๋Š” ๊ตฐ์˜ ์›์†Œ๋ณด๋‹ค ๋งŽ๋‹ค.
    • ์ด๊ฒƒ์ด ์™œ ์ค‘์š”ํ• ๊นŒ?
    • 32 byte๋‚ด๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉด์„œ, ํ‘œํ˜„๊ฐ€๋Šฅํ•œ ์ˆซ์ž๋Š” ์–ด๋งˆ๋ฌด์‹œํ•˜๊ฒŒ ํฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
    • ์€ ์šฐ์ฃผ์˜ ์›์ž ๊ฐœ์ˆ˜ ์ •๋„์— ํ•ด๋‹น๋˜๋Š” ํฐ ์ˆซ์ž๋‹ค. ์„ ํ˜•ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ• ๊นŒ?

ํƒ€์› ๊ณก์„ ์œ„์˜ ์  ํ™•์ธํ•˜๊ธฐ

  • ์•ž์—์„œ ๋‚˜์—ดํ•œ ๋น„ํŠธ์ฝ”์ธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ƒ์„ฑ์ ์€ ์ •๋ง ์œ„์— ์žˆ์„๊นŒ?
  • ๊ฐ„๋‹จํ•˜๊ฒŒ ํ™•์ธํ•ด๋ณด์ž.
gx = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
gy = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
p = 2**256 - 2**32 - 977
print(gy**2 % p == (gx**3 + 7) % p) # True

scep256k1๋งŒ์„ ์œ„ํ•œ Wrapping ํด๋ž˜์Šค ์ •์˜

  • ์ด์ œ ๋ชจ๋“  ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ •ํ•ด์กŒ๊ธฐ ๋•Œ๋ฌธ์—, ์ผ์ผํžˆ ๊ฐ’์„ ๋„ฃ์–ด๊ฐ€๋ฉด์„œ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•  ํƒ€์› ๊ณก์„ ์— ๋Œ€ํ•ด ๊ตญํ•œ๋œ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ž.
# ์ƒ์ˆ˜ ๋ชฉ๋ก
A = 0
B = 7
P = 2**256 - 2**32 - 977
N = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141
 
class S256Field(FieldElement): # ์œ ํ•œ์ฒด ์ƒ์†
 
    def __init__(self, num, prime=None):
        super().__init__(num=num, prime=P) # ์ดˆ๊ธฐํ™”์‹œ ์ „์—ญ ๋ณ€์ˆ˜๋กœ ๋น ์ ธ์žˆ๋Š” P๋ฅผ ๋„ฃ์–ด๋ฒ„๋ฆผ
 
    def __repr__(self):
        return '{:x}'.format(self.num).zfill(64) # ์ถœ๋ ฅ์‹œ ๋นˆ์ž๋ฆฌ๋ฅผ 0์œผ๋กœ ์ฑ„์šฐ๋„๋ก ํ•จ
 
class S256Point(Point): # ํƒ€์› ๊ณก์„  ์œ„ ์  ์ƒ์†
 
    def __init__(self, x, y, a=None, b=None):
        a, b = S256Field(A), S256Field(B) # a, b๋ฅผ ์ „์—ญ๋ณ€์ˆ˜๋กœ ๋Œ€์ฒด
        if type(x) == int:
            super().__init__(x=S256Field(x), y=S256Field(y), a=a, b=b)
        else:
            super().__init__(x=x, y=y, a=a, b=b)  # ๋ฌดํ•œ ์›์ ์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒฝ์šฐ (x == None)์„ ์œ„ํ•ด ๋ถ„๊ธฐ
 
    def __repr__(self):
        if self.x is None:
            return 'S256Point(infinity)'
        else:
            return 'S256Point({}, {})'.format(self.x, self.y)
 
    def __rmul__(self, coefficient):
        coef = coefficient % N  # nG๊ฐ€ 0์ด๋‹ˆ, ์œ ํ™˜์ˆœํ™˜๊ตฐ์•ˆ์—์„œ ๋‚˜๋จธ์ง€๋กœ ๋‚˜๋ˆ„์–ด ์ฒ˜๋ฆฌํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. 
        return super().__rmul__(coef)
 
G = S256Point(
    0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,
    0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8)
print(N*G) # S256Point(infinity)

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

  • ์ด์ œ ๋ชจ๋“  ๋„๊ตฌ๋ฅผ ํ•™์Šตํ–ˆ๋‹ค.
  • ํ•ต์‹ฌ์€ ๋น„๋Œ€์นญ ๋ฐฉ์ •์‹ ์ด๋‹ค.
  • ๋Š” ๊ณ„์‚ฐํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ, ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๋‹ค.
  • ์—ฌ๊ธฐ์„œ ๋ฅผ ๋น„๋ฐ€ํ‚ค, ๋ฅผ ๊ณต๊ฐœํ‚ค๋ผ ํ•œ๋‹ค.
  • ์•ž์—์„œ ๋ฐฐ์šด ์Šค์นผ๋ผ๊ฐ€ ๋น„๋ฐ€ํ‚ค์— ๋Œ€์‘(ํ•˜๋‚˜์˜ ์ˆซ์ž: 256๋น„ํŠธ),
  • ๊ณต๊ฐœํ‚ค๋Š” ์—ฐ์‚ฐ ๊ฒฐ๊ณผ์— ๋Œ€์‘๋œ๋‹ค. (์ขŒํ‘œ๊ฐ’ (x, y): ๊ฐ๊ฐ 256๋น„ํŠธ)

์„œ๋ช… ์ƒ์„ฑ๊ณผ ์„œ๋ช… ๊ฒ€์ฆ

๋งˆ์ˆ ์˜ ์˜ˆ

  • ์นด๋“œ ๋งˆ์ˆ ์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๊ฒ ๋‹ค.
  • ํ•˜๋‚˜์˜ ์นด๋“œ๋ฅผ ๋ฝ‘๊ณ , ๊ทธ๊ฒŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฃผ๋จธ๋‹ˆ ์†์— ๋“ค์–ด์žˆ๋„๋ก ํ•˜๋Š” ๋งˆ์ˆ ์„ ์‹œ์—ฐํ•  ๊ฒƒ์ด๋‹ค.
  • ์ด ๋งˆ์ˆ ์€ ๊ทธ ๋งˆ์ˆ ์‚ฌ์˜ ๋Šฅ๋ ฅ์„ ๊ทœ์ •ํ•  ์ •๋„๋กœ ๋†’์€ ์ค‘์š”์„ฑ์„ ๊ฐ–๋Š” ์ž๋ฆฌ๋ผ ํ•˜์ž.
    • ํ•˜๋ƒ ๋ชปํ•˜๋ƒ์— ๋”ฐ๋ผ ๋งˆ์ˆ ์‚ฌ์˜ ์ž๊ฒฉ์„ ๋ฐ•ํƒˆ๋‹นํ•  ์ˆ˜๋„ ์žˆ๋Š” ์ค‘์š”ํ•œ ์ž๋ฆฌ
  • ์—ฌ๊ธฐ์„œ 1:1๋กœ ๋งˆ์ˆ ์„ ์‹œ์—ฐํ•˜๋Š๋ƒ, 1:n์œผ๋กœ ์‹œ์—ฐํ•˜๋Š๋ƒ์— ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ณด๊ฒ ๋‹ค.
    • 1:1 - ๊ฐ€๊นŒ์ด์„œ ๋ณด๊ธฐ ๋•Œ๋ฌธ์— ์‹ ๋ขฐ์„ฑ์ด ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ
    • 1:n - ๋ฉ€๋ฆฌ์„œ ๋ณด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฑธ ์–ด๋–ป๊ฒŒ ๋ฏฟ๋ƒ๊ณ  ๋”ฐ์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ
  • ์ด๋Ÿฐ ์ƒํ™ฉ์€ ์‹ค์ œ๋กœ ์šฐ๋ฆฌ๊ฐ€ ๋งˆ์ˆ ์„ ๋ณผ ๋•Œ๋„ ๋งŽ์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด ํ•˜ํŠธ 7์ด ๊ทธ๋ ค์ง„ ์นด๋“œ๋ฅผ ์ฒญ์ค‘ C์—๊ฒŒ ๋„˜๊ธฐ๋Š” ๋งˆ์ˆ ์„ ์‹œ์—ฐํ–ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ์ฒญ์ค‘๋“ค์ด โ€œ์ € ์‚ฌ๋žŒ์ด ๊ทธ ์นด๋“œ๋ฅผ ๋“ค๊ณ  ์žˆ์—ˆ์„ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ๋ฏฟ์ฃ ?โ€๋ผ๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋˜๊ฒ ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ๋‹ค์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ Abusing์ด ์—†๋Š” ์ƒํ™ฉ์—์„œ ๊ธฐ์ˆ ์„ ์‹œ์—ฐํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•˜๋Š” ๊ฒƒ์€ ์‰ฝ์ง€ ์•Š๋‹ค.
  • ๊ทธ๋ž˜์„œ ๋งˆ์ˆ ์‚ฌ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์€ ์นด๋“œ์— ํ‘œ์‹์„ ์ƒˆ๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ฆ‰, ํŠน์ • ์นด๋“œ๋ฅผ ๋ฝ‘๊ณ , ๊ทธ ์นด๋“œ์— ์ž์‹ ๋งŒ์ด ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ธ€์”จ๋ฅผ ์ƒˆ๊ธฐ๊ณ , ์ด๋ฅผ ์ฒญ์ค‘๋“ค์—๊ฒŒ ๋ณด์—ฌ์ค€๋‹ค.
  • ๊ทธ ์ž‘์—…์„ ํ†ตํ•ด ๋ชจ๋‘์˜ ํ•ฉ์˜๋ฅผ ์–ป๋Š” ๊ฒƒ์ด๋‹ค.
  • ๊ทธ ๋’ค์— ๋งˆ์ˆ ์„ ์‹œ์—ฐํ•˜๊ฒŒ ๋˜๋ฉด, ์‚ฌ๋žŒ๋“ค์€ ํ•  ๋ง์ด ์—†์–ด์ง„๋‹ค.

๋””์ง€ํ„ธ ์„œ๋ช…/๊ฒ€์ฆ

  • ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์„œ๋ช…๊ณผ ๊ฒ€์ฆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ๋‹ฌ๋ผ์ง€๋Š” ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด, ์ฆ๋ช…๋ฐฉ๋ฒ•์ด ๋งˆ์ˆ ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์•„๋‹ˆ๊ณ  ๋น„๋ฐ€ํ‚ค๋ฅผ ์†Œ์œ ํ–ˆ๋Š๋ƒ์˜ ์—ฌ๋ถ€๋กœ ๋ฐ”๋€๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ฆ‰, โ€œ์ด๋Ÿฐ ๋งˆ์ˆ ์„ ์„ฑ๊ณตํ–ˆ์–ด!โ€๋กœ ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , โ€œ๋‚ด๊ฐ€ ๋น„๋ฐ€ํ‚ค๋ฅผ ๊ฐ–๊ณ ์žˆ์–ด! ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์ด๊ฑด ๋‚˜์•ผโ€๋ฅผ ๋งํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์ด๋‹ค.
  • ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ์˜ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค.
    • ์นด๋“œ์— ํ‘œ์‹์„ ์ƒˆ๊ธฐ๊ธฐ: ์„œ๋ช… ์ƒ์„ฑ
    • ๊ทธ ์นด๋“œ๊ฐ€ ์ฒญ์ค‘ C์˜ ํ˜ธ์ฃผ๋จธ๋‹ˆ์—์„œ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ธฐ: ์„œ๋ช… ๊ฒ€์ฆ
  • ์–ด๋ ดํ’‹์ด ์•Œ๊ฒ ์ง€๋งŒ, ๋น„๋ฐ€ํ‚ค์˜ ์†Œ์œ ์—ฌ๋ถ€๋ฅผ ํ†ตํ•ด A๊ฐ€ B์—๊ฒŒ ๋น„ํŠธ์ฝ”์ธ์„ ๋ณด๋‚ธ๋‹ค๋Š” ๊ฒƒ์„ ๊ฒ€์ฆํ•œ๋‹ค.

์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ๋น„ํŠธ์ฝ”์ธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ECDSA(Elliptic Curve Digital Signature Algorithm)์ด๋ผ ํ•œ๋‹ค.
  • ์ฒซ๋ฒˆ์งธ ํ•„์š”ํ•œ ์‹์€ ์œ„์™€ ๊ฐ™๋‹ค.
    • : private key
    • : public key
    • : ์œ ํ•œํ™˜์›๊ตฐ์—์„œ์˜ ์ƒ์„ฑ์ 
  • ๋‘๋ฒˆ์งธ ํ•„์š”ํ•œ ์‹์€ ์œ„์™€ ๊ฐ™๋‹ค.
  • ์€ ์ด๋ ‡๊ฒŒ ํ‘œํ˜„๋˜๋ฉฐ, x์ขŒํ‘œ๋งŒ์ด ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ ์จ์„œ ๋‚˜ํƒ€๋‚ด๊ฒ ๋‹ค.
    • ์€ random ์ด๋ž€ ์˜๋ฏธ์ด๋‹ค.
    • x์ขŒํ‘œ๋งŒ ์ค‘์š”ํ•œ ์ด์œ ๋Š” x์ขŒํ‘œ๋ฅผ ํƒ€์›๊ณก์„ ์— ๋„ฃ์–ด y๊ฐ’์„ ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ์„ ์„ ์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ณง โ€œ๋งˆ์ˆ ์˜ ์ฆ๋ช…โ€์„ ์œ„ํ•ด ํ‘œ์‹์„ ํ•˜๋Š” ํ–‰์œ„์™€ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋˜๊ฒ ๋‹ค.
  • ์œ„์˜ ๋‘ ์‹์„ ์กฐํ•ฉํ•ด์„œ ์œ„์™€ ๊ฐ™์€ ์‹์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  • ์Šค์นผ๋ผ ๊ณฑ์…ˆ์„ ํ•œ ๋‘๊ฐœ์˜ ์‹์„ ์—ฎ์–ด ํ•˜๋‚˜์˜ ๋ฐฉ์ •์‹์„ ๋งŒ๋“ค์—ˆ์„ ๋ฟ, ์—ฌ์ „ํžˆ ์ด์‚ฐ ๋กœ๊ทธ ๋ฌธ์ œ ์ข…๋ฅ˜์ค‘ ํ•˜๋‚˜์ด๋‹ค.
  • ์ด ์ฃผ์–ด์ง„ ์ƒํ™ฉ(์€ ๋ชฉํ‘œ๋ฌผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์ •ํ•จ)์—์„œ ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ๋‹ค๋งŒ, ๋ณ€์ˆ˜๊ฐ€ 2๊ฐœ๋กœ ํ™•์žฅ๋˜์–ด ์œ ์ผํ•˜๊ฒŒ ๊ฐ€ ์ •ํ•ด์ง€์ง€๋Š” ์•Š๋Š”๋‹ค.
  • ์œ„ ์ƒํƒœ์—์„œ ์„œ๋ช…์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋™์ž‘ํ•œ๋‹ค.

๋ฐฉ๋ฒ•

  1. ์„œ๋ช…์ž๋Š” k๋ฅผ ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
    • ์ด ๋•Œ,
    • ๋Š” ์•„๋Š” ๊ฐ’
  2. , ()
  3. ์—ฌ๊ธฐ์„œ Private Key()๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๋ฅผ ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค.
  4. ์ฆ‰,

์˜๋ฌธ

  • ๊ทธ๋Ÿฐ๋ฐ ์ด๊ฒŒ ๋ฌด์Šจ ์˜๋ฏธ์ผ๊นŒ?
  • ๋ณ€์ˆ˜์˜ ์˜๋ฏธ๋ฅผ ๊ณ ๋ คํ•ด์„œ ๋ง์„ ํ’€์–ด๋ณด๋ฉด..
  • โ€(๋น„๋ฐ€ํ‚ค)๋Š” ์˜ ์กฐํ•ฉ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹คโ€๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • โ€์Œ์„ ์ œ๊ณตํ•˜๋Š” ์‚ฌ๋žŒ์€ ๋น„๋ฐ€ํ‚ค ๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค.โ€
    • ์ด์‚ฐ ๋กœ๊ทธ ๋ฌธ์ œ์˜ ํ•ด๋ฅผ ์ฐพ๋Š” ๊ฒƒ์€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ
  • ๊ทผ๋ฐ ์‚ฌ์‹ค ์ด๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๋Š” ๋ฌด์ˆ˜ํžˆ ๋งŽ๋‹ค.
  • ๋‚ด๊ฐ€ ๋น„๋ฐ€ํ‚ค ์†Œ์œ ์ž์ž„๊ณผ ๋™์‹œ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋‚ด๊ฐ€ ๋ฐœ์‹ ํ–ˆ๋‹ค๋ผ๋Š” ์ •๋ณด๋ฅผ ๋„ฃ์„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
  • ์ด๋ฅผ ์œ„ํ•ด ๋ฉ”์„ธ์ง€์˜ ํ•ด์‹œ๊ฐ’()์„ ๊ณ„์‚ฐ์— ์ถ”๊ฐ€ํ•˜์—ฌ ์˜๋ฏธ๋ฅผ ํฌํ•จํ•œ๋‹ค.

ํ•ด์‹œ ์ถ”๊ฐ€ํ•˜๊ธฐ

  • ๋ฅผ ์œ„์™€ ๊ฐ™์ด ์ •์˜ํ•˜๊ณ , s๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ์กฐ์ ˆํ•˜๋„๋ก ํ•˜์ž.
  • ์›๋ž˜๋Š” ์Œ์„ ์•Œ๋ ค์คŒ์œผ๋กœ์จ ๋น„๋ฐ€ํ‚ค ์†Œ์œ ์ž์ž„์„ ์ฆ๋ช…ํ–ˆ๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ ๋ฉ”์‹œ์ง€์˜ ๋‚ด์šฉ์„ ๋„ฃ์€ ๊ฐ’(ํ•ด์‹œ()์™€ ๋‚˜์ž„์„ ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ’()์„ ๋„ฃ์–ด ์‹์„ ๋ณ€ํ˜•ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—
  • ์ด์ œ ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ณ€์ˆ˜ ์Œ์ด ๋ณ€๊ฒฝ๋œ๋‹ค. ()
  • ์ฆ‰, ์„ ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด,
    1. ๋น„๋ฐ€ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
    2. ๋ฉ”์‹œ์ง€์˜ ๋ฐœ์‹ ์ž์ด๋‹ค.
  • ์œ„์˜ ๋‘ ์‚ฌ์‹ค์„ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

์™œ k๋ฅผ ๊ณต๊ฐœํ•˜์ง€ ์•Š๋Š”๊ฐ€?

  • ๊ทธ๋Ÿฌ๋ฉด ์˜๋ฌธ์ด ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณด๋‹ˆ๊นŒ ์˜ x์ขŒํ‘œ์ธ ์„ ๊ณต๊ฐœํ•˜๊ธด ํ•˜๋Š”๋ฐ, ์™œ ๊ตณ์ด ๊ทธ๋ž˜์•ผ ํ•˜์ง€?
  • ์™œ ๊ตณ์ด ์ด ๋ณต์žกํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ• ๊นŒ?
  • ๊ฐ™์€ ๊ฐ’์„ ๊ณต๊ฐœํ•˜๋ฉด ์•ˆ๋ ๊นŒ?
  • ์œ„์˜ ์‹์„ ๋งŒ์กฑํ•˜๋Š” ์€ ๋ฌด์ˆ˜ํžˆ ๋งŽ๋‹ค.
  • ๊ฐ’์ด ๋ชจ๋ฅด๋Š” ๊ฐ’์œผ๋กœ ๋‚จ์•„์žˆ์ง€ ์•Š์œผ๋ฉด, ํƒ์ƒ‰์„ ํ†ตํ•ด ๋น„๋ฐ€ํ‚ค๋ฅผ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
  • ์ฆ‰, ์œ„์˜ ์ด์‚ฐ ๋กœ๊ทธ ๋ฌธ์ œ์˜ ํŠน์ง•์„ ํ†ตํ•ด ์‹์„ ์กฐํ•ฉํ•˜๋Š” ํ–‰์œ„๋Š”,
    1. ๋ณด์•ˆ
    2. ๋ฐœ์‹ ์ž ํ™•์ธ
  • ๋‘๊ฐ€์ง€ ๋ชฉ์ ์„ ์œ„ํ•ด ์–ด์ฉ” ์ˆ˜ ์—†์ด ๋„์ž…๋œ ๊ฐ’๋“ค์ด๋ผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค.

์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‰ฝ๊ฒŒ ์„ค๋ช…

  • ์œ„์˜ ์„ค๋ช…์ด ์˜คํžˆ๋ ค ๋ณต์žกํ•œ ๊ฒƒ ๊ฐ™์•„ ๋‹ค์‹œ ์ •๋ฆฌํ•œ๋‹ค.
  • ์šฐ๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ  ์žˆ๋‹ค.
  • ์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•ต์‹ฌ์€ ๋น„๋ฐ€ํ‚ค์˜ ์†Œ์ง€ ์—ฌ๋ถ€, ํ•ด๋‹น ๋‚ด์šฉ์˜ ์ž‘์„ฑ์ž ํ™•์ธ์„ ๋น„๋ฐ€ํ‚ค๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๊ณ  ๊ฐ€๋Šฅ์ผ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ฆ‰, ๋น„๋ฐ€ํ‚ค ์†Œ์œ ์—ฌ๋ถ€๋ฅผ ์ˆ˜ํ•™์  ๊ธฐ์ˆ ์„ ํ†ตํ•ด ๊ฐ„์ ‘์ ์œผ๋กœ ํ™•์ธํ•˜๋Š” ๊ฒƒ์— ๊ทธ ๋ชฉ์ ์ด ์žˆ๋‹ค.
  • ๋ฅผ ๊ณต๊ฐœํ•˜์ง€ ์•Š๊ณ , ๋ฅผ ๋งž์ถ”๋Š” ๊ฒƒ์œผ๋กœ ๋‚ด๊ฐ€ ๋น„๋ฐ€ํ‚ค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ„์ ‘์ ์œผ๋กœ ์ฆ๋ช…ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ด ๋•Œ, ๋ผ๋Š” ๋ฌธ์ž ์—ญ์‹œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ์—ญ์‹œ ๋ฅผ ์•Œ๋ฆฌ์ง€ ์•Š๊ณ  ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋˜๊ฒ ๋‹ค.
    • ์ฆ‰, ๋ณดํ˜ธ ์žฅ์น˜๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” ๋ญ๋ƒ๋ฉด, ๋ฅผ ๋งž์ถ”๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜์ž„์€ ์‰ฝ๊ฒŒ ์ฆ๋ช…์ด ๊ฐ€๋Šฅํ•˜๋‚˜, ๋‚ด๊ฐ€ ์ด ๋ฌธ์„œ์— ์„œ๋ช…ํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์•Œ ์ˆ˜ ์—†๋‹ค.
  • ๋ฌธ์„œ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์–ด๋””์—๋„ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ๊ทธ๋ž˜์„œ ๋ณ€์ˆ˜๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ, ๋ฌธ์„œ์— ๋Œ€ํ•œ ์š”์•ฝ๋ณธ(์„œ๋ช…ํ•ด์‹œ)๋ฅผ ๋งŒ๋“ค์–ด ๋ณ€์ˆ˜์— ์ถ”๊ฐ€ํ•˜๋Š” ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ์—ฌ๊ธฐ์„œ ๋Š” ์„œ๋ช…ํ•ด์‹œ, ์€ ์˜ x๊ฐ’์ด๋‹ค.
  • ์ด๋ ‡๊ฒŒ ๋˜๋Š” ์ˆœ๊ฐ„, ์ด์ œ๋Š” ๋ฅผ ๊ณต๊ฐœํ•ด์„œ ๋น„๋ฐ€ํ‚ค๊ฐ€ ์žˆ๋‹ค๊ณ  ์ฆ๋ช…ํ•˜๋Š” ๋ฌธ์ œ์—์„œ
  • ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ๋‚ด๊ฐ€ ๋น„๋ฐ€ํ‚ค๋„ ์žˆ๊ณ , ์ด ๋ฌธ์„œ์—๋„ ์„œ๋ช…ํ–ˆ์Œ์„ ์ฆ๋ช…ํ•˜๋Š” ๋ฌธ์ œ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ๊ตณ์ด ์‹์„ ์™œ ์ •๋ฆฌํ•˜๋‚˜ ์‹ถ์„ ๊ฒƒ์ด๋‹ค.
  • ์„ ์•Œ๋”๋ผ๋„ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ์‹์ธ๊ฐ€? ์‹ถ์„ ๊ฒƒ์ด๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ, ์œ„ ์‹์€ ๊ฐ ๋ณ€์ˆ˜๊ฐ„์˜ ๊ด€๊ณ„์— ๋Œ€ํ•ด ์„œ์ˆ ํ•œ ๊ฒƒ์ด๋‹ค.
  • ์ด๋Š” ๊ฒ€์ฆ์—์„œ ๋งŒ ์•Œ๋”๋ผ๋„ ์ˆ˜์‹์„ ํ’€ ์ˆ˜ ์žˆ์Œ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ด€๊ณ„์ด๋‹ค.

๊ฒ€์ฆ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์ž ์ด์ œ ๊ฒ€์ฆ์ž๋Š” ์„ ๋ฐ›์•˜๋‹ค.
  • ๊ฒ€์ฆ์ž๋Š” ์ด ๊ฐ’์„ ํ†ตํ•ด ์˜ ์ˆ˜์‹์„ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.
  • ์—ฌ๊ธฐ์„œ ์˜ x๊ฐ’์€ ๋กœ ์ฃผ์–ด์กŒ์œผ๋‹ˆ, ๋ฅผ ๋Œ€์ž…ํ•˜์—ฌ ๊ณ„์‚ฐ ํ›„, ๋กœ ๋–จ์–ด์ง€๋Š”์ง€ ํ™•์ธํ•˜์ž.
  • ์ˆ˜์‹์ด ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์—ฌ ๊ฒ€์ฆ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค.

๊ฒ€์ฆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ

  1. ์„œ๋ช…์œผ๋กœ , ๋ฉ”์‹œ์ง€์˜ ํ•ด์‹œ๊ฐ’ , ๊ณต๊ฐœํ‚ค ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
  2. ๊ฒ€์ฆ์ž๋Š” ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
  3. ์„ ๊ณ„์‚ฐํ•œ๋‹ค.
  4. ๊ฒฐ๊ณผ๊ฐ’์˜ ์˜ x์ขŒํ‘œ์ธ ์ด ๊ฐ™๋‹ค๋ฉด ์œ ํšจํ•œ ์„œ๋ช…์ด๋‹ค.

Reference