🀯 Elliptic Curve Cryptography #0

λ°°μ£Όμ›…Β·2023λ…„ 3μ›” 24일
0

Elliptic Curve Cryptographyλ₯Ό μ„œμˆ ν•˜κΈ° μœ„ν•΄μ„œ μ•Œμ•„λ‘μ–΄μ•Ό ν•  μˆ˜ν•™μ  μš©μ–΄λ“€μ΄ λ„ˆλ¬΄ λ§Žλ‹€. 기본적으둜 Cheatsheet λŠλ‚ŒμœΌλ‘œ μ΅œλŒ€ν•œ μ μ–΄λ³΄μ•˜μœΌλ‹ˆ 이해에 도움이 되길 λ°”λž€λ‹€.

집합(Set)

μ •μ˜λŠ” νŠΉμ •ν•œ 쑰건에 λ§žλŠ” λ³„κ°œμ˜ μ›μ†Œλ“€μ˜ λͺ¨μž„ 이닀. μˆ˜ν•™μ‹œκ°„μ— μ΄λŸ°μ‹μœΌλ‘œ μ •μ˜λ˜μ–΄ μžˆλŠ” 경우λ₯Ό 많이 λ³΄μ•˜μ„ 텐데. 이것이 Set이닀.

A={1,2,3,4,5}A = \{ 1, 2, 3, 4, 5 \}

μ΄λ ‡κ²Œ μ •μ˜λœ Set이 μžˆμ„ λ•Œ, μ•žμ˜ AA κ°€ λ°”λ‘œ Set 이며, Set μ•ˆμ— λ“€μ–΄μžˆλŠ” 숫자 1,2,3,4,51, 2, 3, 4, 5λŠ” 각각 Element(μ›μ†Œ) 이닀. μ›μ†Œ elemelem κ³Ό 집합 AA κ°€ μžˆλ‹€κ³  ν•  λ•Œ, Element와 Set의 관계λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κΈ°ν˜Έκ°€ λ‹€μŒκ³Ό κ°™λ‹€.

  • elem∈Aelem \in A : μ›μ†Œ elemelem이 집합 AA 에 μ†ν•΄μžˆλ‹€.
  • elemβˆ‰Aelem \notin A : μ›μ†Œ elemelem이 집합 AA 에 μ†ν•΄μžˆμ§€ μ•Šλ‹€.

Element와 Set의 κ΄€κ³„μ²˜λŸΌ 두 Set에 λŒ€ν•΄μ„œλ„ 관계λ₯Ό μ„œμˆ ν•  수 μžˆλ‹€. 집합 A,BA, B κ°€ μ‘΄μž¬ν•  λ•Œ

  • AβŠ‚BA \subset B : 집합 AA κ°€ 집합 BB 에 μ†ν•΄μžˆλ‹€ ( Aκ°€ B의 subset이닀 | λΆ€λΆ„ 집합이닀)
  • AβŠ‚ΜΈB:A \not\subset B : 집합 AA κ°€ 집합 BB 에 μ†ν•΄μžˆμ§€ μ•Šλ‹€ ( Aκ°€ B의 subset이 μ•„λ‹ˆλ‹€ )

μ •λ„λ‘œ μ„€λͺ…ν•  수 μžˆκ² λ‹€.

μ€„μž„κΈ°ν˜Έ

μˆ˜ν•™ 기호λ₯Ό 보닀 보면 μ•Œ 수 μ—†λŠ” κΈ€μžλ“€μ΄ κ°‘μžκΈ° μžˆλŠ” κ²½μš°κ°€ λ§Žμ€λ°, μ •μ˜λ₯Ό μœ„ν•΄ ν•„μš”ν•œ μ—¬λŸ¬ 문ꡬ듀을 μˆ˜ν•™μžλ“€μ΄ 기호둜 μ •μ˜ν•΄ λ‘μ—ˆκΈ° λ•Œλ¬Έμ΄λ‹€. 이후 λ‚˜μ˜¬ 이야기 쀑에 λ“±μž₯ν•  수 μžˆλŠ” μ€„μž„ κΈ°ν˜ΈλŠ” λ‹€μŒκ³Ό κ°™λ‹€.

  • βˆƒ\exists : that exist
  • s.t. : such that
  • βˆ€\forall : for all

즉, 이λ₯Ό μ΄μš©ν•΄μ„œ,

집합 A의 λͺ¨λ“  μ›μ†Œ a에 λŒ€ν•΄ a b = b a = 1을 λ§Œμ‘±ν•˜λŠ” κ°’ μ›μ†Œ bκ°€ μžˆλ‹€ β‡’ λΌλŠ” 의미λ₯Ό

βˆƒb∈As.t.Β aβˆ—b=bβˆ—a=1forΒ βˆ€a∈A\exists b \in A\newline s.t.\ a * b=b * a = 1\newline for\ \forall a \in A

μ΄λ ‡κ²Œ 정리할 수 μžˆλ‹€.

Modulo μ—°μ‚°

A≑AΒ %Β nΒ =rΒ (modΒ n)A \equiv A\ \%\ n\ = r\ (mod\ n)

즉 modΒ nmod\ n μΌλ•Œ AA 에 λŒ€ν•œ modulo 연산은 Aλ₯Ό n으둜 λ‚˜λˆˆ κ°’μ˜ λ‚˜λ¨Έμ§€μ΄λ‹€. μ˜ˆμ‹œλ₯Ό 톡해 μ„€λͺ…ν•΄ 보자면

10≑3Β (modΒ 7)28103493845≑11(modΒ 13)10 \equiv 3\ (mod\ 7)\newline28103493845 \equiv 11 (mod\ 13)

이런 μ‹μœΌλ‘œ 계산할 수 μžˆλ‹€. μžμ—°μŠ€λŸ½κ²Œ λͺ¨λ“  μžμ—°μˆ˜μ— λŒ€ν•˜μ—¬ modulo N μ—°μ‚°μ˜ 결과물은 0λΆ€ν„° N-1 μ‚¬μ΄μ˜ μ •μˆ˜κ°€ λ˜λ―€λ‘œ, κ·Έ 자체둜 μˆœν™˜ν•˜λŠ” μ„±μ§ˆμ„ 가지고 μžˆλ‹€κ³  생각할 수 μžˆλ‹€.

연산에 λŒ€ν•˜μ—¬

계속 타원곑선 λ”ν•˜κΈ°, 타원곑선 κ³±ν•˜κΈ°μ²˜λŸΌ μš°λ¦¬κ°€ μ•Œκ³  μžˆλŠ” λ”ν•˜κΈ°μ™€ κ³±ν•˜κΈ°λΌλŠ” μš©μ–΄κ°€ λ‚˜μ™€μ„œ 였히렀 ν—·κ°ˆλ¦΄ 수 μžˆλ‹€κ³  μƒκ°ν•œλ‹€. ν•˜μ§€λ§Œ, 이런 κ³±ν•˜κΈ°μ™€ λ”ν•˜κΈ°λΌκ³  μƒκ°ν•˜λŠ” 것이 μ•„λ‹Œ, 타원곑선 λ”ν•˜κΈ° 와 타원곑선 κ³±ν•˜κΈ° 와 같이 이름 κ·ΈλŒ€λ‘œ λ°›μ•„λ“€μ—¬μ•Ό ν•œλ‹€. μ΄λŸ¬ν•œ νŠΉμˆ˜ν•œ κ·Έλ£Ή λ‚΄μ—μ„œ 일반적인 μ—°μ‚°μœΌλ‘œλŠ” μ˜λ―ΈμžˆλŠ” κ²°κ³Όλ₯Ό 얻어내지 λͺ»ν•˜λŠ” κ²½μš°λ„ 많기 λ•Œλ¬Έμ—, μƒˆλ‘œμš΄ 연산을 μ •μ˜ν•΄μ„œ μ‚¬μš©ν•˜λŠ” κ²½μš°λ„ κ½€λ‚˜ 자주 λ³Ό 수 μžˆλ‹€.


타원 곑선

Group과 Ring 그리고 Field

μ—¬κΈ°λŠ” μ •μ˜λ₯Ό μ•Œκ³ , μ‹€μ œ μ˜ˆμ‹œμ™€ λΉ„κ΅ν•΄λ³΄λŠ”κ²Œ λ”μš± 이해가 λΉ λ₯΄λ‹€.

Group

μ •μ˜: νŠΉμ •ν•œ μ—°μ‚° * 에 λŒ€ν•΄, * λ₯Ό μ—°μ‚°μœΌλ‘œ κ°–λŠ” Set G(β‰ βˆ…)G ( \ne \empty ) 이 μž„μ˜μ˜ βˆ€a,b,c∈G\forall a, b, c \in G 에 λŒ€ν•΄ μ•„λž˜ 쑰건을 λ§Œμ‘±ν•œλ‹€λ©΄, Set GλŠ” Group이닀.

  • 결합법칙: (aβˆ—b)βˆ—c=aβˆ—(bβˆ—c)(a * b) * c = a * (b * c)
  • 항등원 e의 쑴재 : e∈G,Β aβˆ—e=eβˆ—a=ae \in G,\ a * e = e * a = a
  • 역원 areva^{rev} 의 쑴재 : arev∈G,Β aβˆ—arev=arevβˆ—a=ea^{rev} \in G,\ a * a^{rev} = a^{rev} * a = e
  • λ‹«νž˜: βˆ€a,b.Β Β aβˆ—b∈G\forall a, b.\ \ a*b \in G

μ΄λŸ¬ν•œ 쑰건을 λ§Œμ‘±ν•˜λŠ”, κ°€μž₯ μ‰¬μš΄ μ˜ˆμ‹œλ‘œλŠ” μ •μˆ˜κ°€ μžˆλ‹€. νŠΉμ •ν•œ μ—°μ‚° * 을 μ‚¬μΉ™μ—°μ‚°μ˜ λ”ν•˜κΈ°μ— λŒ€μž…ν•΄λ³΄λ©΄ 생각이 쉽닀. μž„μ˜μ˜ μ •μˆ˜ a,b,ca, b, c 에 λŒ€ν•΄ λ‹€μŒκ³Ό 같은 쑰건을 λ§Œμ‘±ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

  • 결합법칙: (a+b)+c=a+(b+c)(a + b) + c = a + (b+c) 성립
  • 항등원 e=0Re = 0_{R} 의 쑴재: 0∈G,a+0R=0R+a=a0 \in G, a + 0_{R} = 0_{R} + a = a
  • μž„μ˜μ˜ a에 λŒ€ν•œ 역원 -a 쑴재
  • λ”ν•˜κΈ° 연산은 λͺ¨λ“  μ •μˆ˜μ— λŒ€ν•΄ λ‹«ν˜€μžˆμŒ

μ΄λŸ¬ν•œ μ„€λͺ…듀을 찾아보닀 보면, 아벨ꡰ(Abelian group) μ΄λΌλŠ” μš©μ–΄κ°€ 자주 보인닀. μ–΄λ €μš΄ λ‚΄μš©μ€ μ•„λ‹ˆλ‹€. * λ₯Ό μ—°μ‚°μœΌλ‘œ κ°–λŠ” κ·Έλ£Ή G에 λŒ€ν•΄, κ°€ν™˜μ„±(Commutativity) λ₯Ό λ§Œμ‘±ν•˜λŠ” 그룹을 아벨 그룹이라고 λΆ€λ₯Έλ‹€. ( ν˜Ήμ€ κ°€ν™˜κ΅°μ΄λΌλŠ” ν‘œν˜„λ„ μžˆλ‹€ )

κ°€ν™˜μ„±μ΄λž€ λ‹€μŒκ³Ό 같은 쑰건을 μΆ©μ‘±ν•˜λŠ”μ§€ 여뢀이닀.

  • βˆ€a,b∈G\forall a, b \in G 에 λŒ€ν•΄, aβˆ—b=bβˆ—aa * b = b* a λ₯Ό μΆ©μ‘±

λ§μ…ˆκ³Ό κ³±μ…‰ 연산은 λͺ¨λ‘ κ°€ν™˜μ„±μ„ μΆ©μ‘±ν•œλ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— λ§μ…ˆμ„ μ—°μ‚°μœΌλ‘œ μ“°λŠ” 그룹을 λ§μ…ˆ 아벨 κ·Έλ£Ή, κ³±μ…ˆμ„ μ—°μ‚°μœΌλ‘œ κ³±μ…ˆ 아벨 κ·Έλ£Ή 이라고 λΆ€λ₯Έλ‹€.

Ring (ν™˜)

두가지 μ—°μ‚° ( λ§μ…ˆ +, κ³±μ…ˆ β‹…\cdot )을 λͺ¨λ‘ μΆ©μ‘±ν•˜λŠ” ꡰ을 ν™˜(Ring)이라고 ν•œλ‹€. ν™˜(Ring)이 되기 μœ„ν•΄μ„œ ν•„μš”ν•œ 쑰건을 μ •ν™•νžˆ λ‚˜μ—΄ν•˜μžλ©΄ λ‹€μŒκ³Ό κ°™λ‹€.

  • ν™˜ RR 은 λ§μ…ˆ Abelian Groupμž„
  • βˆ€a,b,c∈R,(aβ‹…b)β‹…c=aβ‹…(bβ‹…c)\forall a, b, c \in R, (a \cdot b) \cdot c = a \cdot ( b \cdot c )
  • βˆ€a,b,c∈R,(a+b)β‹…c=aβ‹…c+bβ‹…c\forall a, b, c \in R, (a + b) \cdot c = a \cdot c + b \cdot c
  • βˆ€a,b,c∈R,aβ‹…(b+c)=aβ‹…b+aβ‹…c\forall a, b, c \in R, a \cdot ( b + c ) = a \cdot b + a \cdot c

Ring에도 κ°€ν™˜μ„±μ΄ μžˆλŠ”λ°, κ³±μ…ˆμ˜ κ΅ν™˜λ²•μΉ™μ„ μ„±λ¦½ν•˜λŠ” Ring을 μ˜λ―Έν•¨, 즉 Ring RR 에 λŒ€ν•΄

  • βˆ€a,b∈R,aβ‹…b=bβ‹…a\forall a, b \in R, a\cdot b = b\cdot a

κ°€ μ„±λ¦½ν•˜λŠ” Ring을 Commutative Ring(κ°€ν™˜ν™˜) 이라고 함. 더 λ‚˜μ•„κ°€, κ³±μ…ˆμ— λŒ€ν•œ 항등원이 μ‘΄μž¬ν•˜λŠ” Commutative Ring을 Commutative Unital Ring (λ‹¨μœ„μ›μ„ 가진 κ°€ν™˜ν™˜) 이라고 ν•œλ‹€.

  • βˆ€a∈R,βˆƒΒ 1RΒ s.t.Β aβ‹…1R=1Rβ‹…a=a\forall a \in R, \exists\ 1_{R}\ s.t.\ a\cdot1_{R} = 1_R \cdot a = a

Field

Ring RR 이 Commutative Unital Ring (λ‹¨μœ„μ›μ„ 가진 κ°€ν™˜ν™˜) 일 λ•Œ,

βˆ€a∈R,βˆƒbs.t.Β aβ‹…b=bβ‹…a=1b∈R\forall a \in R,\exists b \newline s.t.\ a \cdot b = b \cdot a = 1 \newline b \in R

μ΄λ•Œ aa λŠ” 가역원, bb λŠ” 역원이라고 ν•œλ‹€. μ΄λ•Œ λ‹¨μœ„μ›μ„ κ°–λŠ” κ°€ν™˜ν™˜ FF μ—μ„œ, Fβˆ—=Fβˆ’{0}F^* = F - \{0\} 의 λͺ¨λ“  μ›μ†Œκ°€ 가역원이면, 즉

βˆ€a,b∈F,ab∈F\forall a, b \in F, \frac{a}{b} \in F

λ₯Ό μΆ©μ‘±ν•œλ‹€λ©΄ 이 κ°€ν™˜ν™˜ FF λŠ” Field(체) 이닀.


profile
κ³΅λΆ€ν•˜μž λ¨Ήκ³ μ‚΄μž μ˜€λŠ˜λ„ λ°©μ‹€λ°©μ‹€ 밝은 λŒ€ν•œλ―Όκ΅­μ˜ ν•˜λŠ˜

0개의 λŒ“κΈ€