Plonk 이해를 위한 사전 지식 - Plonk BY Hand 의 배경지식

Jake Kim·2024년 8월 24일

PSE2024

목록 보기
14/17

Week 4: Plonk 이해하기

4주차에는 Plonk를 이해하는 시간을 가져 보았습니다.
저는 주로 "Plonk by Hand" 문서를 따라가며 이해하려고 노력했습니다. 이 과정에서 배경지식이 필요했던 부분들을 정리해 보았습니다.
아래 문서를 읽고 이해하기 위한 배경 지식이 되겠습니다.
https://research.metastate.dev/plonk-by-hand-part-1/?source=post_page-----79347dc0a32---------------------------------------


1. 유한체 (확장) | Finite Field (Extension)

Q. 유한체 확장(Finite Field Extension)이란 무엇인가요?

Fp\mathbb{F}_p 또는 GF(p)GF(p)
두 표현을 혼용하지만, 대부분 첫 번째 방식을 사용합니다. 두 번째 표기는 갈루아 필드(Galois Field)라고도 합니다.

유한체 확장(Finite field extension)은 작은 필드에 새로운 원소를 추가하여 더 큰 필드를 만드는 과정을 의미합니다. 이때 결과로 만들어진 구조 역시 필드의 모든 속성을 만족해야 합니다. 이 개념은 수학과 암호학의 여러 분야, 특히 타원 곡선 및 대수 기하학 연구에서 필수적입니다.

유한체의 기초

  1. 유한체 (Finite Field): 갈루아 필드라고도 불리는 유한체는 유한한 수의 원소를 포함하는 필드입니다. 가장 일반적인 유한체는 Fp\mathbb{F}_p 또는 GF(p)GF(p)로 표기하며, 여기서 pp는 소수입니다. 이 필드는 정확히 pp개의 원소, 즉 {0,1,2,,p1}\{0, 1, 2, \dots, p-1\}를 포함하며, 덧셈과 곱셈 연산은 모듈러 pp 연산((modp)\pmod{p})으로 수행됩니다.

  2. 필드의 속성 (Field Properties): 필드는 덧셈과 곱셈이라는 두 가지 연산을 갖춘 집합으로, 다음 속성들을 만족합니다.

    • 닫힘 (Closure): 필드 내의 임의의 두 원소에 대한 덧셈 또는 곱셈의 결과는 다시 그 필드 안에 있습니다.
    • 결합법칙 (Associativity): 덧셈과 곱셈에 결합법칙이 성립합니다.
    • 교환법칙 (Commutativity): 덧셈과 곱셈에 교환법칙이 성립합니다.
    • 분배법칙 (Distributivity): 곱셈은 덧셈에 대해 분배법칙이 성립합니다.
    • 항등원 (Identity Elements): 덧셈에 대한 항등원(0)과 곱셈에 대한 항등원(1)이 존재합니다.
    • 역원 (Inverses): 모든 원소는 덧셈에 대한 역원을 가지며, 0이 아닌 모든 원소는 곱셈에 대한 역원을 가집니다.

필드 확장이란?

필드 Fq\mathbb{F}_q필드 확장(field extension) Fqk\mathbb{F}_{q^k}Fq\mathbb{F}_q를 부분 필드로 포함하는 더 큰 필드를 만드는 것을 의미합니다. 이 과정에는 Fq\mathbb{F}_q의 원소만으로는 표현할 수 없는 새로운 원소들이 추가됩니다. 여기서 qq는 보통 소수 pp의 거듭제곱인 pmp^m 형태이며, kk는 확장의 차수(degree)입니다.

유한체 확장

유한체 Fq\mathbb{F}_q에 대한 유한체 확장 Fqk\mathbb{F}_{q^k}qkq^k개의 원소를 갖는 더 큰 필드입니다. 필드 Fqk\mathbb{F}_{q^k}Fq\mathbb{F}_q의 모든 원소와 추가적인 원소들을 포함하며 다음을 만족합니다.

  • Fqk\mathbb{F}_{q^k}에서의 덧셈과 곱셈 연산은 여전히 정의되며 필드의 속성을 만족합니다.
  • Fqk\mathbb{F}_{q^k}Fq\mathbb{F}_q와 추가된 새 원소들을 모두 포함하는 가장 작은 필드입니다.

예시

q=p=3q=p=3이라고 가정해 봅시다. F3={0,1,2}\mathbb{F}_3 = \{0, 1, 2\}는 3개의 원소를 갖는 유한체입니다.

  • 유한체 확장 F32\mathbb{F}_{3^2}32=93^2=9개의 원소를 갖는 필드가 됩니다. 이 새로운 필드는 F9\mathbb{F}_9로 표기되며, F3\mathbb{F}_3 내에서는 해를 찾을 수 없는 다항 방정식을 만족하는 새로운 원소와 F3\mathbb{F}_3 원소들의 조합으로 구성됩니다.

예를 들어, F9\mathbb{F}_9를 만들기 위해 F3\mathbb{F}_3 상에서 기약 다항식(irreducible polynomial)인 x2+1=0x^2 + 1 = 0의 해가 되는 새로운 원소 α\alpha를 도입할 수 있습니다. 그러면 α2=1\alpha^2 = -1이 성립하며, F3\mathbb{F}_3에서는 12(mod3)-1 \equiv 2 \pmod 3이므로 α2=2\alpha^2 = 2가 됩니다. 이 필드 F9\mathbb{F}_9a,bF3a, b \in \mathbb{F}_3인 모든 선형 결합 a+bαa + b\alpha로 구성됩니다.

필드 확장의 활용

유한체 확장은 수학과 암호학의 여러 중요 분야에서 활용됩니다.

  1. 타원 곡선 (Elliptic Curves): 타원 곡선 암호에서 연산은 종종 유한체 확장 상에서 수행됩니다. 예를 들어, 페어링 기반 암호(pairing-based cryptography)는 페어링을 정의하고 계산하기 위해 유한체의 확장을 사용합니다.
  2. 다항식 인수분해 (Polynomial Factorization): 유한체 확장을 통해 기존 필드 Fq\mathbb{F}_q에서는 해를 갖지 않는 다항식을 인수분해할 수 있습니다.
  3. 오류 정정 부호 (Error-Correcting Codes): 리드-솔로몬 부호(Reed-Solomon codes)와 같은 특정 오류 정정 부호는 유한체의 확장을 사용하여 구성됩니다.

요약

유한체 확장 Fqk\mathbb{F}_{q^k}는 더 작은 유한체 Fq\mathbb{F}_q로부터 만들어진 qkq^k개의 원소를 포함하는 더 큰 필드입니다. 이 개념을 통해 수학자와 암호학자들은 타원 곡선 암호나 코딩 이론과 같은 고급 응용 분야에 필수적인 더 복잡한 구조와 연산을 다룰 수 있습니다.


2. 타원 곡선에서의 점 두 배 연산 | Elliptic Curve Point Doubling

PLONK 프로토콜의 맥락에서 타원 곡선을 다룰 때, 방정식 y2=x3+3y^2 = x^3 + 3은 바이어슈트라스 형태(Weierstrass form)의 타원 곡선을 정의합니다. 이 방정식은 곡선 위의 모든 점 (x,y)(x, y)가 이 관계를 만족함을 의미합니다.

타원 곡선에서의 점 두 배 연산

타원 곡선에서 점 두 배 연산을 수행한다는 것은, 주어진 점 P=(x1,y1)P = (x_1, y_1)에 대해 2P=(x3,y3)2P = (x_3, y_3)를 찾는 것을 의미합니다. 이 새로운 점을 계산하는 데 있어 점 PP에서의 접선의 기울기 mm이 매우 중요합니다. 기울기 mm을 구하는 공식은 서로 다른 두 점을 더하는 경우와 한 점을 두 배 하는 경우에 따라 다릅니다.

점 두 배 연산의 경우:

  • 타원 곡선의 일반형: y2=x3+ax+by^2 = x^3 + ax + b
  • 주어진 곡선: y2=x3+3y^2 = x^3 + 3 (여기서 a=0a = 0, b=3b = 3)

P=(x1,y1)P = (x_1, y_1)에서의 접선의 기울기 mm은 타원 곡선 방정식을 미분하여 유도합니다.

  1. 타원 곡선 방정식 미분하기:

    y2=x3+3    2ydydx=3x2y^2 = x^3 + 3 \implies 2y \frac{dy}{dx} = 3x^2

    여기서 도함수 dydx\frac{dy}{dx}는 점 PP에서의 접선의 기울기 mm을 의미합니다.

  2. mm에 대해 풀기:

    m=dydx=3x22ym = \frac{dy}{dx} = \frac{3x^2}{2y}

기울기 mm은 왜 중요한가?

기울기 mm은 점 두 배 연산 후의 새로운 점의 좌표를 계산하는 데 사용되기 때문에 매우 중요합니다. 주어진 점이 P=(x1,y1)P = (x_1, y_1)일 때, 기울기는 다음과 같습니다.

  • m=3x122y1m = \frac{3x_1^2}{2y_1}

이 기울기는 두 배가 된 점 2P2P의 새로운 좌표 (x3,y3)(x_3, y_3)를 찾는 데 사용됩니다.
x3=m22x1x_3 = m^2 - 2x_1
y3=m(x1x3)y1y_3 = m(x_1 - x_3) - y_1

보충 1 : 미분 과정 상세 설명: y2=x3+ax+by^2 = x^3 + ax + b 미분하기

타원 곡선 방정식 y2=x3+3y^2 = x^3 + 3과 점 두 배 연산에 사용되는 기울기 공식 m=3x22ym = \frac{3x^2}{2y}의 유도 과정을 단계별로 살펴보겠습니다.

우리는 타원 곡선 방정식에서 시작합니다.
y2=x3+3y^2 = x^3 + 3
우리의 목표는 이 방정식을 xx에 대해 미분하여 곡선 위의 임의의 점 (x,y)(x, y)에서의 접선의 기울기를 구하는 것입니다.

  1. 양변을 xx에 대해 미분하기:
    좌변 y2y^2xx에 대해 미분하기 위해 연쇄 법칙(chain rule)을 사용합니다. 연쇄 법칙에 따르면, 함수 u(y)u(y)가 있고 yyxx의 함수일 때 다음과 같습니다.

    ddx[y2]=d(y2)dydydx\frac{d}{dx}[y^2] = \frac{d(y^2)}{dy} \cdot \frac{dy}{dx}

    y2y^2yy에 대해 미분하면 2y2y이므로, 좌변의 미분 결과는 다음과 같습니다.

    ddx(y2)=2ydydx\frac{d}{dx}(y^2) = 2y \cdot \frac{dy}{dx}
  2. 우변 x3+3x^3 + 3xx에 대해 미분하기:
    우변은 x3x^3과 상수 33으로 구성됩니다. x3x^3의 도함수는 다음과 같습니다.

    ddx(x3)=3x2\frac{d}{dx}(x^3) = 3x^2

    상수 33의 도함수는 0입니다.

    ddx(3)=0\frac{d}{dx}(3) = 0

    따라서 우변의 미분 결과는 다음과 같습니다.

    ddx(x3+3)=3x2\frac{d}{dx}(x^3 + 3) = 3x^2
  3. 양변의 도함수를 같다고 놓기:
    이제 좌변의 도함수와 우변의 도함수를 동일하게 둡니다.

    2ydydx=3x22y \cdot \frac{dy}{dx} = 3x^2
  4. dydx\frac{dy}{dx} (기울기 mm)에 대해 풀기:
    dydx\frac{dy}{dx}를 구하기 위해 양변을 2y2y로 나눕니다.

    dydx=3x22y\frac{dy}{dx} = \frac{3x^2}{2y}

    이 도함수 dydx\frac{dy}{dx}는 타원 곡선 위의 점 (x,y)(x, y)에서의 접선 기울기 mm을 나타냅니다.

결론

표현식 m=3x22ym = \frac{3x^2}{2y}는 타원 곡선 방정식 y2=x3+3y^2 = x^3 + 3xx에 대해 미분하여 직접 유도된 것입니다. 이 기울기 mm은 곡선 위의 한 점 P=(x,y)P=(x, y)를 두 배로 늘릴 때 새로운 좌표 (x3,y3)(x_3, y_3)를 찾기 위한 점 두 배 공식에 사용됩니다.



보충2 : 점 두 배(Point Doubling) 공식의 유도 과정

1. 왜 (x2,y2)(x_2, y_2)가 아닌 (x3,y3)(x_3, y_3)를 사용할까요? (기하학적 접근)

이 표기법은 점 두 배 연산이 사실 점 덧셈 연산의 특별한 경우이기 때문에 발생합니다.

  • 일반적인 점 덧셈 (P+QP+Q): 서로 다른 두 점 P(x1,y1)P(x_1, y_1)Q(x2,y2)Q(x_2, y_2)를 더하려면, 두 점을 통과하는 직선을 긋습니다. 이 직선은 타원 곡선과 제3의 점에서 만나게 되는데, 이 점을 RR'이라고 합시다. 우리가 찾는 합 P+QP+Q는 이 RR'을 x축에 대해 대칭시킨 점 R(x3,y3)R(x_3, y_3)입니다. 이 과정에서 3개의 점(P,Q,RP, Q, R')이 관여하므로, 결과 점의 좌표에 첨자 '3'을 사용하는 것이 자연스럽습니다.

  • 점 두 배 연산 (P+PP+P): 점 두 배는 QQPP와 같아지는 극한의 상황입니다. 즉, P(x1,y1)P(x_1, y_1)Q(x2,y2)Q(x_2, y_2)가 한 점으로 수렴합니다.

    • 두 점을 지나는 선은 한 점에서의 **접선(tangent line)**이 됩니다.
    • 이 접선은 점 P(x1,y1)P(x_1, y_1)에서 곡선과 만나고, 곡선과 교차하는 또 다른 한 점이 생깁니다. 이 점을 RR'이라고 합시다.
    • 우리가 찾는 결과 2P2P는 바로 이 RR'을 x축에 대해 대칭시킨 점입니다. 이 점을 (x3,y3)(x_3, y_3)라고 부릅니다.

결론적으로, 점 덧셈 공식 P(x1,y1)+Q(x2,y2)=R(x3,y3)P(x_1, y_1) + Q(x_2, y_2) = R(x_3, y_3) 과의 표기 일관성을 위해 점 두 배의 결과도 (x3,y3)(x_3, y_3)로 표기합니다. 중간에 있는 점 Q(x2,y2)Q(x_2, y_2)P(x1,y1)P(x_1, y_1)와 같아졌다고 생각하면 왜 x2x_2가 "생략"되는지 이해하기 쉽습니다.


2. x3=m22x1x_3 = m^2 - 2x_1는 어떻게 유도되나요? (대수적 접근)

이 공식은 **"타원 곡선과 직선은 최대 3개의 점에서 만난다"**는 원리를 대수적으로 풀어서 나온 결과입니다.

1단계: 연립방정식 세우기

우리는 두 방정식의 교점을 찾고 있습니다.

  1. 타원 곡선 방정식: y2=x3+ax+by^2 = x^3 + ax + b (일반형으로 설명하겠습니다.)
  2. P(x1,y1)P(x_1, y_1)에서의 접선 방정식: y=m(xx1)+y1y = m(x-x_1) + y_1

2단계: yy를 소거하여 xx에 대한 3차 방정식 만들기

접선 방정식을 타원 곡선 방정식에 대입하여 yy를 소거합니다.

(m(xx1)+y1)2=x3+ax+b(m(x-x_1) + y_1)^2 = x^3 + ax + b

이제 좌변을 전개합니다.

m2(xx1)2+2m(xx1)y1+y12=x3+ax+bm^2(x-x_1)^2 + 2m(x-x_1)y_1 + y_1^2 = x^3 + ax + b
m2(x22x1x+x12)+2m(xx1)y1+y12=x3+ax+bm^2(x^2 - 2x_1x + x_1^2) + 2m(x-x_1)y_1 + y_1^2 = x^3 + ax + b

P(x1,y1)P(x_1, y_1)는 타원 곡선 위의 점이므로, y12=x13+ax1+by_1^2 = x_1^3 + ax_1 + b가 성립합니다. 이 식을 위 방정식에 대입하여 y12y_1^2을 소거합니다.

m2(x22x1x+x12)+2m(xx1)y1+(x13+ax1+b)=x3+ax+bm^2(x^2 - 2x_1x + x_1^2) + 2m(x-x_1)y_1 + (x_1^3 + ax_1 + b) = x^3 + ax + b

이제 모든 항을 한쪽으로 넘겨서 xx에 대한 내림차순으로 정리하면 다음과 같은 3차 방정식을 얻게 됩니다.

x3m2x2+=0x^3 - m^2x^2 + \dots = 0

(나머지 xx항과 상수항은 복잡하지만, 우리는 x2x^2의 계수만 필요하므로 생략합니다.)

3단계: 근과 계수의 관계(비에트의 정리) 적용하기

위 3차 방정식의 세 근(roots)은 타원 곡선과 접선이 만나는 점들의 x좌표입니다.

  • 접선은 점 P(x1,y1)P(x_1, y_1)에서 곡선에 "접하므로" 이 점은 중근(double root)이 됩니다. 따라서 두 개의 근이 x1x_1입니다.
  • 나머지 한 근이 우리가 찾고자 하는 교점의 x좌표이며, 이 좌표를 x3x_3라고 부릅니다.

따라서 이 3차 방정식의 세 근은 x1,x1,x3x_1, x_1, x_3 입니다.

근과 계수의 관계에 따르면, 3차 방정식 x3+Ax2+Bx+C=0x^3 + Ax^2 + Bx + C = 0의 세 근의 합은 A-A 입니다.

우리가 만든 방정식 x3m2x2+=0x^3 - m^2x^2 + \dots = 0에서 x2x^2의 계수는 m2-m^2 입니다. 따라서 세 근의 합은 다음과 같습니다.

세 근의 합=(x²의 계수)\text{세 근의 합} = -(\text{x²의 계수})
x1+x1+x3=(m2)x_1 + x_1 + x_3 = -(-m^2)
2x1+x3=m22x_1 + x_3 = m^2

4단계: x3x_3에 대해 풀기

이제 x3x_3에 대해 정리하면 우리가 원하는 공식을 얻게 됩니다.

x3=m22x1x_3 = m^2 - 2x_1

이것이 점 두 배 연산에서 새로운 x좌표를 구하는 공식의 유도 과정입니다. 점 덧셈 공식 x3=m2x1x2x_3 = m^2 - x_1 - x_2에서 x2x_2 대신 x1x_1을 대입한 것과 결과가 정확히 일치하는 것을 볼 수 있습니다.


3. 임베딩 차수 (Embedding Degree), rpk1r | p^k - 1을 만족하는 가장 작은 kk

임베딩 차수(Embedding degree)는 타원 곡선 암호학에서 중요한 개념으로, 특히 페어링 기반 암호(BLS, KZG와 같은 프로토콜)의 보안을 논할 때 핵심적인 역할을 합니다. 부분군의 위수 rr과 임베딩 차수 kk에 대한 공식 rpk1r \mid p^k - 1의 의미를 자세히 살펴보겠습니다.

타원 곡선과 유한체 배경

소수 pp에 대해 정의된 유한체 Fp\mathbb{F}_p 상의 타원 곡선 EE를 생각해 봅시다. 이때 rr은 타원 곡선 위 점들의 부분군(subgroup)의 위수(order), 즉 그 부분군에 속한 점들의 개수입니다.

임베딩 차수 kk

임베딩 차수 kk는 다음 조건을 만족하는 가장 작은 양의 정수입니다.
rpk1r \mid p^k - 1
이는 rrpk1p^k - 1을 나눈다는 의미이며, 모듈러 연산으로 표현하면 pk1(modr)p^k \equiv 1 \pmod{r}과 같습니다.

임베딩 차수가 왜 중요한가?

임베딩 차수는 타원 곡선에서의 이산 로그 문제(DLP)가 유한체에서의 이산 로그 문제로 얼마나 쉽게 변환될 수 있는지를 측정하기 때문에 중요합니다. 유한체에서의 이산 로그 문제의 난이도는 해당 필드 Fpk\mathbb{F}_{p^k}의 크기에 따라 달라집니다. 임베딩 차수가 작다는 것은 문제가 더 작은 유한체로 옮겨질 수 있음을 의미하며, 이는 타원 곡선의 암호학적 보안을 약화시킬 수 있습니다.

rpk1r \mid p^k - 1의 의미

  • 부분군의 위수 rr (Order rr of the subgroup): 위수 rr은 타원 곡선 E(Fp)E(\mathbb{F}_p) 위의 총 점의 개수의 약수입니다. 보통 rr은 소수이거나 소수의 거듭제곱입니다.
  • 필드 Fpk\mathbb{F}_{p^k} (Field Fpk\mathbb{F}_{p^k}): Fpk\mathbb{F}_{p^k}Fp\mathbb{F}_p의 유한체 확장입니다. Fpk\mathbb{F}_{p^k}의 크기는 pkp^k입니다.
  • 조건 rpk1r \mid p^k - 1 (Condition rpk1r \mid p^k - 1): 이 조건은 확장 필드 Fpk\mathbb{F}_{p^k} 안에 위수가 rr인 곱셈 부분군이 존재함을 보장합니다. 페어링은 이 곱셈 부분군으로 사상(mapping)되기 때문에, 이 조건이 만족되어야 페어링을 정의할 수 있습니다. 즉, ppkk제곱하고 1을 뺀 결과가 rr로 나누어떨어지는 kk가 존재해야 합니다.

임베딩 차수 kk를 결정하는 방법

  1. kk값을 1부터 순차적으로 증가시키며 pk1p^k - 1 계산하기: k=1k=1부터 시작하여 rrpk1p^k - 1을 나누는 가장 작은 kk를 찾을 때까지 kk를 계속 증가시킵니다.
  2. 나눗셈 확인하기: 각 kk에 대해, (pk1)(modr)=0(p^k - 1) \pmod r = 0인지, 즉 pk1p^k - 1rr로 나눈 나머지가 0인지 확인합니다.

예시

소수 p=5p=5이고 부분군의 위수 r=3r=3이라고 가정해 봅시다. 임베딩 차수 kk를 찾아보겠습니다.

  1. kk값을 순차적으로 증가시키며 pk1p^k - 1을 계산합니다.
    • k=1k=1일 때: p11=511=4p^1 - 1 = 5^1 - 1 = 4이고, 4는 3으로 나누어떨어지지 않습니다.
    • k=2k=2일 때: p21=521=24p^2 - 1 = 5^2 - 1 = 24이고, 24는 3으로 나누어떨어집니다.
  2. r=3r=3이 24를 나누므로, 35k13 \mid 5^k - 1을 만족하는 가장 작은 kk는 2입니다.

따라서 이 경우 임베딩 차수 kk는 2입니다.

요약

임베딩 차수 kk는 타원 곡선 부분군의 위수 rrpk1p^k - 1을 나누도록 하는 가장 작은 정수입니다. 이 개념은 페어링 기반 암호에서 타원 곡선의 보안을 이해하는 데 매우 중요합니다. rpk1r \mid p^k - 1을 만족하는 가장 작은 kk를 찾음으로써 이산 로그 문제가 잠재적으로 축소될 수 있는 가장 작은 필드 확장 Fpk\mathbb{F}_{p^k}를 결정하게 됩니다.


Understanding rpk1r \mid p^k - 1

  • Order rr of the subgroup: The order rr is a divisor of the total number of points on the elliptic curve E(Fp)E(\mathbb{F}_p). It is usually a prime number or a power of a prime.
  • Field Fpk\mathbb{F}_{p^k}: Fpk\mathbb{F}_{p^k} is a finite field extension of Fp\mathbb{F}_p. The size of Fpk\mathbb{F}_{p^k} is pkp^k.
  • Condition rpk1r \mid p^k - 1: This condition ensures that there is a point on the elliptic curve over Fpk\mathbb{F}_{p^k} that has order rr. In other words, there exists a number kk such that when you raise pp to the power kk, and subtract 1, the result is divisible by rr.

How to Determine the Embedding Degree kk

  1. Compute pk1p^k - 1 for successive values of kk: Start from k=1k = 1 and keep increasing kk until you find the smallest kk for which rr divides pk1p^k - 1.
  1. Check divisibility: For each kk, check if pk1p^k - 1 modulo rr is equal to zero, i.e., (pk1)modr=0(p^k - 1) \mod r = 0.

Example

Let's say we have a prime p=5p = 5 and a subgroup order r=3r = 3. We want to find the embedding degree kk.

  1. Compute pk1p^k - 1 for successive values of kk:

   - For k=1k = 1: p11=511=4p^1 - 1 = 5^1 - 1 = 4, which is not divisible by 3.

   - For k=2k = 2: p21=521=24p^2 - 1 = 5^2 - 1 = 24, which is divisible by 3.

  1. Since r=3r = 3 divides 24, the smallest kk for which 35k13 \mid 5^k - 1 is k=2k = 2.

Therefore, the embedding degree kk is 2 in this case.

Summary

The embedding degree kk is the smallest integer such that the order rr of the elliptic curve subgroup divides pk1p^k - 1. This concept is crucial for understanding the security of elliptic curves in pairing-based cryptography. By finding the smallest kk that satisfies rpk1r \mid p^k - 1, you determine the smallest field extension Fpk\mathbb{F}_{p^k} where the discrete logarithm problem can potentially be reduced.


무한점(O\mathcal{O})의 시각적 이해: P+(P)=OP + (-P) = \mathcal{O}

아래 그림은 점 PP와 그 역원인 P-P를 더할 때 무한점이 어떻게 나타나는지를 보여줍니다.

그림 해설

  1. 점 P와 역원 -P

    • 타원 곡선 위의 임의의 점 P(x,y)P(x, y) 가 있습니다.
    • 이 점을 x축에 대해 정확히 대칭시킨 점이 바로 P의 덧셈에 대한 역원(inverse)P(x,y)-P(x, -y)입니다.
  2. 두 점을 잇는 수직선

    • 타원 곡선 덧셈 규칙에 따라, PPP-P를 더하려면 두 점을 잇는 직선을 그어야 합니다. 그림에서 보듯이 이 선은 수직선이 됩니다.
  3. 제3의 교점은 어디에?

    • 일반적인 경우, 두 점을 이은 직선은 곡선과 제3의 교점에서 만납니다.
    • 하지만 이 수직선은 일반적인 (x,y)(x, y) 평면 위에서는 곡선과 더 이상 만나지 않습니다. 선은 그저 위아래로 무한히 뻗어 나갈 뿐입니다.
  4. 무한점(O\mathcal{O})의 등장

    • 바로 이 지점에서 수학자들은 '약속'을 합니다. "모든 수직선은 무한히 먼 위쪽과 아래쪽 끝에서 단 하나의 가상의 점, 즉 무한점(O\mathcal{O})에서 만난다"고 정의합니다.
    • 따라서 PPP-P를 잇는 수직선은 무한점(O\mathcal{O})에서 타원 곡선과 만나는 것으로 간주합니다.

이것이 바로 P+(P)=OP + (-P) = \mathcal{O} 라는 타원 곡선 덧셈의 핵심 규칙이 성립하는 이유입니다. 무한점은 이처럼 덧셈 연산의 결과가 항상 곡선 위에 있도록 보장해 주는, 보이지 않지만 필수적인 '마침표'와 같은 역할을 합니다.

profile
세일즈 출신 개발자 제이크입니다.

0개의 댓글