현재 위치 - 법률 상담 무료 플랫폼 - 특허 조회 - 타원곡선 암호화 알고리즘 이해
타원곡선 암호화 알고리즘 이해

타원 곡선 암호화 알고리즘, 즉 타원 곡선 암호화(Elliptic Curve Cryptography, ECC라고도 함)는 타원 곡선의 수학적 이론을 기반으로 하는 비대칭 암호화 알고리즘입니다. RSA와 비교할 때 ECC의 장점은 더 짧은 키를 사용하여 RSA와 동등하거나 더 높은 보안을 달성할 수 있다는 것입니다. 연구에 따르면 160비트 ECC 암호화의 보안은 1024비트 RSA 암호화와 동일하며, 210비트 ECC 암호화의 보안은 2048비트 RSA 암호화와 동일합니다.

일반적인 타원 곡선 방정식은 다음과 같이 표현됩니다: (여기서 a, b, c, d는 계수입니다)

> y2=ax3+ bx2+cx+d

전형적인 타원 곡선은 다음과 같습니다: y2=x3?4x2+16

먼저 밤을 주자:

샤오미가 계산하기 어려운 숫자는 개인 키입니다. 공개키 암호화 알고리즘( 공개키 암호화 알고리즘의 보안을 위한 필요(그러나 충분하지는 않음) 조건은 "공개키에서 개인키를 추론할 수 없다"는 것이다.) 공개키 암호화 알고리즘의 가장 기본적인 원칙은 다음과 같다. 정보의 비대칭성을 활용합니다. 즉, 개인 키를 보유한 사람이 전체를 완전히 제어할 수 있습니다. 통신 과정에서 가장 많은 정보를 얻습니다.

타원곡선 암호화 알고리즘은 찾기 어려운 덧셈 순서 문제를 기반으로 한 암호화 방식입니다. 타원 곡선의 경우 예시에서는 타원 곡선의 기준점이 5이고, 개인 키는 기준점(예에서는 11)의 추가 순서이며 공개 키는 기준점(5)과 해당 순서입니다. 덧셈(11회) 결과(55)를 얻었다.

간단한 설명은 다음과 같습니다: G * k = K (G, K는 공개, k는 기밀)

위의 예는 타원 곡선 암호화 알고리즘의 추가가 비교적 간단합니다. "유한 필드" "이진 입방 곡선의 점"을 기반으로 "유한 덧셈 순환 그룹"을 형성합니다. 구체적으로, 이 덧셈의 기하학적 정의는 다음과 같습니다. 두 점의 덧셈 결과는 두 점을 연결하는 선과 x축을 기준으로 한 곡선의 교차점의 거울상을 나타냅니다.

특정 지점(양의 정수 필드의 1과 같은 소위 단위 요소는 공간의 가장 기본적인 단위를 나타냄)에서 시작하면 계속해서 자체 증가 연산을 수행합니다( ++ 와 같은 소위 그룹 연산은 전체 공간의 컬렉션 요소를 열거합니다. 그림과 같이:

따라서 타원 곡선의 특정 점 G가 주어지면 G에서 시작하여 계속 접선을 만들고 대칭점을 찾아 -2G, 2G, -4G, 4G, -를 얻습니다. 8G, 8G 순으로.. 즉, 점 G가 주어지고 x가 알려지면 점 xG를 찾는 것이 어렵지 않습니다. 반대로, xG 점을 알고 있으면 x를 찾는 것이 매우 어렵습니다. 즉, Q = NG, N은 개인 키, Q는 공개 키입니다.

이제 공개키(Q)와 개인키(N) 생성 원리를 알았으니, 타원곡선 디지털 서명 알고리즘(ECDSA), 타원곡선 디지털 서명 알고리즘(ECDSA)의 과정을 살펴보겠습니다. ) ECC(Elliptic Curve Cryptozoology)를 사용하여 디지털 서명 알고리즘(DSA)을 에뮬레이션합니다. ECDSA는 1999년에 ANSI 표준이 되었고, 2000년에 IEEE 및 NIST 표준이 되었습니다.

개인 키는 주로 서명 및 암호 해독에 사용되며, 공개 키는 주로 서명 확인 및 암호화에 사용되지만 그 반대는 불가능합니다.

공개 키 암호화: 공개 키로 암호화된 콘텐츠는 개인 키로 해독될 수 있습니다. 개인 키 보유자만이 이를 해독할 수 있습니다.

개인키 서명: 개인키 서명의 내용은 공개키로 확인할 수 있습니다. 공개 키로 확인할 수 있는 모든 서명은 개인 키 소유자가 서명한 것으로 간주될 수 있습니다.

특정 타원 곡선을 설명하려면 일반적으로 6개의 매개변수가 필요합니다: T = (p, a, b, G, n, h).

p: 유한 필드 Fp를 나타냅니다. 소수 a, b: 타원 방정식의 매개변수 G: 타원 곡선 위의 기준점 G = (xG, yG) n: Fp에 지정된 G의 시퀀스 번호, 소수. h: 보조 인자, 선택한 점의 밀도를 제어합니다. h = #E(Fp)/n.

여기서는 공개 키와 개인 키 쌍을 생성하는 과정을 소개하기 위해 secp256k1 곡선(비트코인 서명에 사용되는 곡선)을 예로 들어 보겠습니다.

secp256k1의 매개변수는 다음과 같습니다.

기본적으로 ECDSA의 개인 키는 다음과 같이 곡선 G와 k∈(0,n)의 n차를 만족하는 난수입니다. Q=kG 공개키는 계산 가능하며, 생성된 개인키의 크기는 일반적으로 32바이트, 공개키의 크기는 일반적으로 64바이트입니다. 예:

ECDSA 서명 알고리즘의 입력은 데이터 자체가 아닌 데이터의 해시 값입니다. (d, Q); , Q는 공개 키) Key) 서명할 정보: M; e = Hash(M) 서명: Signature(e) = (r, s).

서명 인터페이스:

확인 인터페이스:

예: