{{위키데이터 속성 추적}}

'''타원곡선기반 [[동형암호]] 시스템(Elliptic Curve Homomorphic Cryptosystem, [[ECHC 암호 스키마|ECHC]])<ref>[https://n.news.naver.com/article/382/0000996659?sid=101 "“동형 구조 ‘암호 스키마’원천 기술 보유”, 암호 솔루션 개발 기업 포체인스’주목"]. 스포츠동아. 2022년 8월 4일.</ref>'''은 [[포체인스]] R&D센터에서 진행되었던 연구 주제인 ‘타원곡선기반의 동형구조 [[연구]]를 통한 [[암호]] 스키마 개발’ 을 통해 개발된 국내 [[기술]]로 개발된 [[암호]] 원천기술로서, [[타원곡선]]이 가지는 동형구조 혹은 대응 관계를 통하여 기존의 [[동형암호]]를 대체할 차세대 [[암호]]<ref>[http://news-j.co.kr/View.aspx?No=2485643/ "국내 암호화 솔루션 선도기업 포체인스(주)…,독자 기술로 '안심할 수 있는 미래' 선보여"]. 포스트21뉴스. 2022년 8월 1일.</ref>이다.

== 역사 ==

포체인스 대표(이정훈)는 ‘[[페르마의 마지막 정리|페르마 마지막 정리]]’ 관련 연구를 진행하였고,‘페르마 마지막 정리페르마 마지막 정리’의 핵심 주제인 [[타원곡선]]의 수학적 구조에 대한 [[연구]]를 진행했다. [[타원곡선]]의 [[암호]]체계를 새로운 수학적 구조에 옮겨 그 관계를 이용한 새로운 [[암호]] 스키마를 구현하는 것에 관심을 가지고 [[암호]]에 관련 연구를 시작하게 되었다고 한다. 기존의 [[암호]] 연구의 한계점인 [[알고리즘]] 변형을 통한 개선이 적용되는 [[동형암호]]의 연구가 고질적으로 문제가 있다고 판단했고, 기존의 [[동형암호]]가 실질적인 [[데이터]] 분석을 진행하기에 부족한 속도 측면의 한계점을 가진다는 점을 토대로 이를 개선하기 위하여 [[알고리즘]] 측면의 연구가 아닌 [[동형암호]]에 적합한 대수적 공간에 대한 연구와 그를 적용한 차세대 [[암호]] 스키마의 개발을 목표로 관련 연구를 진행했다.

== [[포체인스]] [[암호]] 스키마 종류 ==
'''모듈라 형식 [[암호]] (Modular Form Cryptosystem, [[MFC]])'''

* 모듈라 형식(Mordular Form)와 타원곡선의 대응구조를 활용하여 연구, 개발된 [[암호]] 스키마이다.
* [[페르마의 마지막 정리|페르마 마지막 정리]]의 증명에 대한 핵심 연구였던 타니야마-시무라 추측(Taniyama–Shimura conjecture)를 기반으로 모듈라 형식 [[암호]]에 대한 연구를 진행하였다.

'''[[타원곡선]] [[동형암호]] (Elliptic Curve Homomorphic Cryptosystem, [[ECHC 암호 스키마|ECHC]])'''

* [[타원곡선]]과 모델 정리(Mordell’s Theorem)를 기반으로 [[연구]], 개발된 [[암호]] 스키마이다.
* [[타원곡선]]과 그 동형인 수학적 구조를 통하여 [[타원곡선]]의 경량성과 동형구조를 가지는 새로운 유사 [[동형암호]]를 개발하였다.

'''유사 [[동형암호]] (Pseudo Homomorphic cryptosystem, [[PHC]])'''

* [[MFC]]와 [[ECHC 암호 스키마|ECHC]]를 융합하여 만든 완성형 [[암호]] 스키마이다.
* Pseudo라는 말과 같이 기존 [[동형암호]]와는 다른 [[암호]] 시스템이고 강력한 [[보안]]력을 특징으로 가지고 있다.

== ECHC 암호스키마 장점 ==

* Elliptic Curve 위에 [[동형암호]] 구조를 적용한 [[암호]] 스키마<ref>[http://www.sportsseoul.com/news/read/1137860?ref=naver/ "국내 암호 스키마 및 AI 알고리즘 개발, 우수한 기술력 인정"]. 스포츠서울. 2022년 6월 30일.</ref>
* [[ECC]]의 경량성을 [[동형암호]] 구조에 접목하여 기존 '''[[동형암호]]의 속도 측면을 개선'''
* 기존 [[암호]]의 장점을 융합한 새로운 [[암호]]를 통한 [[보안]] 이슈 해결책으로서 '''강한 보안성 및 빠른 처리속도 그리고 [[인공지능]] 기법을 통한 공격 보호가 가능한 [[암호]]<ref>[https://blog.naver.com/olivedott/222828287894/ "이정훈 (주)포체인스 대표이사, 특허 암호화 솔루션으로 글로벌시장 선도"]. 뉴스리포트. 2022년 7월 26일.</ref>'''

== 관련 수학 배경지식 ==

* '''(1) 타원곡선 (Elliptic Curve)의 정의'''
<math>\Bbbk</math>를 임의의 체(field)라고 하고 타원곡선 <math>\mathbb{E}</math>은 다음 방정식을 만족하는 점들의 집합이라고 하자.<br>

<math>\begin{alignat}{2} y^2  & = x^3+Ax+B \\ \end{alignat}</math>  여기서 <math>\ A, B \in \Bbbk</math> 임이 성립한다. 이 때 이 방정식을 타원곡선에 대한 '''바이어슈트라스 방정식(Weierstrass equation)'''라고 한다. 또한, 타원곡선은 '''``무한점(point at infinity)<nowiki>''</nowiki>'''을 포함하고 있고, <math>\infty</math>로 표기한다. 이 점은 쉽게 <math>y</math>-좌표의 맨 위에 있을 때임을 알 수 있다. 하지만 <math>y</math>-축의 맨 아래도 맨 위로 간주할 경우를 말하는 것이다. <math>\overline{\Bbbk}</math>는 <math>\Bbbk</math>의 대수적 폐포(algebraic closure)라 하며 <math>\Bbbk</math>위에서의 타원곡선은 <math>\mathbb{E}(\overline{\Bbbk})</math>로 표기하고 다음과 같이 정의한다.<br>

<math>\mathbb{E}(\overline{K})=\left\{ \infty \right\}\cup\left\{(x,y)\in\overline{\Bbbk}\times\overline{\Bbbk}\mid y^2=x^3+Ax+B \right\}</math><br>


<math>p</math>를 소수, <math>a, b</math>를 법 <math>p</math>에 대해서 0이 아닌 정수라고 하자. 이제, 다음을 만족하는 정수 <math>k</math>가 존재함을 고려하자.<br>


<math>a^k \equiv b \pmod{p}</math>  위 식에서 <math>k</math>를 찾는 것을 '''이산 로그 문제(discrete logarithm problem)'''라고 한다. <math>k+ (p-1)</math> 또한 해이므로, 답 <math>k</math>는 법 <math>p-1</math>에서 정의되고 있음을, 혹은 만약 <math>a^d \equiv 1 \pmod{p}</math>를 만족한다면 <math>p-1</math>의 약수 <math>d</math>임을 고려하자. 이러한 문제를 타원곡선에 대한 이산 로그 문제로 바라볼 수 있다. 타원곡선 위의 점 <math>A, B</math>에 대하여 적당한 정수 <math>k</math>가 존재해서 <math>B=kA(=A+A+ \cdots + A)</math>이 성립한다고 하자. 우리는 <math>k</math>를 찾기 원하고 일반적으로 이 타원곡선에 대한 이산 로그 문제의 좋은 공격은 존재하지 않는다. 소수 <math>p</math>에 대하여 <math>\mathbb{E}</math>를 법 <math>p</math>에 대한 타원곡선이라고 하고, <math>n</math>을 <math>nA= \infty</math>를 만족하는 최소의 양의 정수라고 하자.  만약 <math>n</math>이 작은 소인수를 가진다고 하면 그것은 <math>n</math>을 나누는 소수의 거듭제곱을 법으로 하는 이산 로그 <math>k</math>를 계산하는 것이 가능하다. 그러면 중국인 나머지정리(Chinese remainder theorem)를 적용하여 <math>k</math>를 찾을 수 있다.
<br />


* '''(2) 유리수체 <math>\mathbb{Q}</math>위에서 타원곡선의 군(Group) 구조'''
유리수체 <math>\mathbb{Q}</math>위에서 정의된 타원곡선 <math>\mathbb{E}</math>을 고려하자. 이 타원곡선 <math>\mathbb{E}</math>위의 두 점 <math>P_1=(x_1,y_1)</math>, <math>P_2=(x_2,y_2)</math>를 고려하고 타원곡선 <math>\mathbb{E}</math>의 방정식은 <math>y^2=x^3+Ax+B</math>로 주어졌다고 하자. 이 때, <math>P_1, P_2 \neq \infty</math>이라 하자. 우리는 다음 각 상황에 대한 <math>\mathbb{E}</math>위의 점 <math>P_3</math>를 구할 수 있다. 첫번째 경우는 <math>P_1</math>와 <math>P_2</math>를 지나는 직선을 그린다. (만약 <math>P_1=P_2</math>인 경우는 선 <math>L</math>은 점 <math>P_1</math>에서의 접선(tangent line)이다.) 선 <math>L</math>과 타원곡선 <math>\mathbb{E}</math>의 교점 <math>P_3^'</math>를 얻을 수 있다.    <math>P_3^'</math>를 <math>x</math>-축에 반사시켜서 얻은 점을 <math>P_3=(x_3,y_3)</math>라 하자. 마지막으로 우리는 군 법칙을 다음과 같이 정의할 수 있다.<br>


<math>P_1+P_2=P_3</math>
*# 만약 <math>x_1\neq x_2</math>이면 <math>m=\frac{y_2-y_1}{x_2-x_1}</math>일 때 <math>x_3=m^2-x_1-x_2,\; y_3=m(x_1-x_3)-y_1</math>이다.
*# 만약 <math>x_1=x_2</math> 이지만 <math>y_1 \neq y_2</math>이면 <math>P_1+P_2=\infty</math>이다.
*# 만약 <math>P_1=P_2</math> 이고 <math>y_1 \neq 0</math>이면 <math>m=\frac{3x_1^2+A}{2y_1}</math>일 때 <math>x_3=m^2-2x_1,y_3=m(x_1-x_3)-y_1</math>이다.
*# 만약 <math>P_1=P_2</math> 이고 <math>y_1=0</math>이면 <math>P_1+P_2=\infty</math>이다.  <br />더욱이 <math>\infty</math>와 <math>P</math>를 지나는 선은 <math>x</math>-축과 수직이다. 이 선은 타원곡선 <math>\mathbb{E}</math>의 <math>P=(x,y)</math>와 <math>(x,-y)</math>를 지난다. 점 <math>P</math>를 <math>x</math>-축에 반사시키면 점 <math>(x,-y)</math>를 얻는다. 그러므로 <math>P+\infty = P</math>임을 알 수 있다. 또한, <math>(x,y)</math>와 <math>(x,-y)</math>를 지나는 선은 수직이므로 타원곡선 <math>\mathbb{E}</math>와의 교점은 <math>\infty</math>이다. 결과적으로 <math>(x,y)+(x,-y)=\infty</math>임을 얻는다. 이 때, <math>\infty</math>는 <math>\mathbb{E}</math>에서 항등원의 역할을 하기 때문에 <math>-(x,y)=(x,-y)</math>라고 정의하여야 하고, 이 사실은 <math>(x,-y)</math>는 <math>(x,y)</math>의 역원임을 의미한다.
<br />

* '''(3) 유한체 <math>\mathbb{F}_p</math> 위의 타원곡선의 군(Group) 구조'''<br>

<math>\mathbb{F}_p</math>위에서 정의된 타원곡선을 고려하자. 여기서 <math>p</math>는 홀수 소수이고 <math>\mathbb{F}_p</math>는 유한 소체이다. 그리고 <math>a,b \in \mathbb{F}_p</math>는 <math>4A^3+27B^2 \not\equiv 0\pmod{p}</math>를 만족한다고 하면 매개변수 <math>A,B \in \mathbb{F}_p</math>를 가지는 유한체 <math>\mathbb{F}_p</math> 위에서 정의된 타원곡선 <math>\mathbb{E}(\mathbb{F}_p)</math>은 다음 방정식의 해 혹은 점 <math>P=(x,y)</math>으로 구성된다.<br>


<math>y^2\equiv x^3+Ax+B\pmod{p}</math>  이외의 점 <math>\mathcal{O}</math>은 무한점을 의미한다. 방정식 <math>y^2\equiv x^3+Ax+B\pmod{p}</math>은 <math>\mathbb{E}(\mathbb{F}_p)</math>을 정의하는 방정식으로 불린다. 주어진 점 <math>P=(x_p,y_p)</math>에 대해서, <math>x_p</math>는 <math>P</math>의 <math>x</math>-좌표, 그리고 <math>y_p</math>는 <math>P</math>의 <math>y</math>-좌표라고 불린다. <math>\mathbb{E}(\mathbb{F}_p)</math>에서 원소의 개수는 <math>\# \mathbb{E}(\mathbb{F}_p)</math>라고 표현한다. '''`하세 정리'(Hasse Theorem)'''는 다음과 같이 <math>\# \mathbb{E}(\mathbb{F}_p)</math>를 계산하는 방법을 소개한다.  만약 <math>\mathbb{E}(\mathbb{F}_p)</math>는 유한체 <math>\mathbb{F}_p</math>에서의 타원곡선이면,<br>


<math>p+1-2\sqrt{p} \le \# \mathbb{E}(\mathbb{F}_p) \le p+1+2\sqrt{p}</math><br>


<math>\mathbb{E}(\mathbb{F}_p)</math>에서의 군 법칙은 다음과 같다.
*# 무한점끼리 합하는 규칙:           <math>\mathcal{O}+\mathcal{O}=\mathcal{O}</math>  2. 무한점과 어떤 다른 점을 합하는 규칙:          모든 <math>\; (x,y) \in \mathbb{E}(\mathbb{F}_p)</math>에 대해서,<math>\; (x,y)+\mathcal{O}=\mathcal{O}+(x,y)=(x,y)</math>  3. 점들이 각각 구별되거나, <math>y</math>-좌표가 0일 때, <math>x</math>-좌표가 같은 두 점을 합하는 규칙:          모든 <math>\; (x,y) \in \mathbb{E}(\mathbb{F}_p)</math>에 대해서, <math>\; (x,y)+(x,-y)=\mathcal{O}</math>  4. <math>x</math>-좌표가 다른 두 점을 합하는 규칙 : <math>(x_1,y_1) \in \mathbb{E}(\mathbb{F}_p)</math>과 <math>(x_2,y_2) \in \mathbb{E}(\mathbb{F}_p)</math>를 <math>x_1 \neq x_2</math>를 만족하는 점이라고 하자. 그러면<br>


<math>(x_1,y_1)+(x_2,y_2)=(x_3,y_3)</math>이고, 다음과 같다:           <math>x_3 \equiv \lambda^2-x_1-x_2, \; y_3 \equiv \lambda (x_1-x_3)-y_1,</math> 그리고 <math>\lambda \equiv \frac{y_2-y_1}{x_2-x_1} \pmod{p}</math>  5. 동일한 점끼리 합하는 규칙(double a point): <math>(x_1,y_1) \in \mathbb{E}(\mathbb{F}_p)</math>을 <math>y_1 \neq 0</math>을 만족하는 점이라고 하자.      <math>x_3 \equiv \lambda^2-2x_2, \; y_3 \equiv \lambda (x_1-x_3)-y_1,</math> 그리고 <math>\lambda \equiv \frac{3x_1^2+A}{2y_1} \pmod{p}</math><br>


<math>\mathbb{E}(\mathbb{F}_p)</math> 위에서의 점들의 집합은 더하기 연산을 가지는 군 형태이며 그 군은 가환군(abelian group)이다.(모든 점 <math>P_1, P_2 \in \mathbb{E}(\mathbb{F}_p)</math>에 대해서, <math>P_1+P_2=P_2+P_1</math>을 만족하는 것을 의미한다.) 주어진 정수 <math>k</math>와 점 <math>P \in \mathbb{E}(\mathbb{F}_p)</math>에 대해서, 스칼라 곱은 점 <math>P</math>를 <math>k</math>번 더하는 과정과 같다. 이 스칼라 곱의 결과는 <math>kP</math>로 표현된다.
<br>


* '''(4) 모델의 정리(Mordell's Theorem)'''<br>

<math>\mathbb{E}</math>를 표수가 0인 체(field) <math>\Bbbk</math>위에서 정의된 타원곡선(Elliptic Curve)라고 <math>N</math>을 양의 정수라고 하면 다음이 성립한다.

<br>
<math>\epsilon[N]</math> <math>\cong (\mathbb{Z}/N\mathbb{Z})^2</math>


단, <math>\epsilon[N]</math><math>=\{P \in \mathbb{E} : [N]P=\mathcal{O}\}</math>
<math>=\{P \in \mathbb{E} : [N]P=\mathcal{O}\}</math>이다.
== 같이 보기 ==
* [[:en:Elliptic_curve|Elliptic Curves]]
* [[Mordell-Weil theorem]]
* [[:en:Weil pairing|Weil Pairing]]
* [https://math.mit.edu/classes/18.783/2017/LectureNotes24.pdf Divisors and Weil pairing]
* [https://crypto.stanford.edu/pbc/notes/elliptic/weil.html Elliptic Curves – The Weil Pairing]
* [http://math.uchicago.edu/~may/REU2016/REUPapers/Butt.pdf Elliptic Curve and Mordell-Weil theorem]

== 각주 ==
{{각주}}

== 외부 링크 ==
* [https://www.four-chains.com/ 포체인스 공식 웹사이트] {{웨이백|url=https://www.four-chains.com/ |date=20221011075947 }}
* [https://www.fc-ts.com/ fcts 웹사이트]
{{암호학}}
{{대한민국의 정보 보안}}

[[분류:암호학]]