타원곡선 암호
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
타원 곡선 암호(ECC)는 1985년에 제안된 공개 키 암호 방식의 일종이다. 유한체 상의 타원 곡선에서 정의된 이산 로그 문제를 기반으로 하며, 디지털 서명, 키 교환 등 다양한 암호화 기능에 사용된다. ECC는 전송 계층 보안(TLS)과 비트코인 등 널리 사용되는 프로토콜에서 활용되고 있으며, RSA와 같은 다른 공개 키 암호 방식에 비해 작은 키 크기로도 높은 보안 수준을 제공하는 것으로 알려져 있다. 그러나, NSA의 백도어 의혹, 부채널 공격, 양자 컴퓨터 공격 등 보안 취약성에 대한 우려도 존재하며, 이에 대한 대응책과 안전한 구현에 대한 연구가 지속적으로 이루어지고 있다.
더 읽어볼만한 페이지
- 타원곡선 암호 - 비트코인
비트코인은 사토시 나카모토가 개발한 최초의 탈중앙화 암호화폐로, 중앙 기관 없이 P2P 네트워크에서 블록체인에 기록되며 채굴을 통해 발행량이 2100만 개로 제한된 자산이다. - 타원곡선 암호 - 타원곡선 DSA
타원곡선 디지털 서명 알고리즘(ECDSA)은 DSA의 계산량 문제를 해결하기 위해 타원곡선 암호를 사용하는 알고리즘으로, 작은 키 크기로 동일한 보안 수준을 제공하여 효율성을 높일 수 있지만, 보안 위협 및 NIST 곡선 신뢰성 문제에 대한 지속적인 연구가 필요하다. - 유한체 - 이산 로그
이산 로그는 유한군에서 이산 거듭제곱의 지수를 찾는 역함수로, 소수 p를 법으로 하는 정수 모듈러 곱셈 그룹에서 계산적으로 풀기 어려운 문제이며, 현대 암호 시스템의 안전성 기반이지만 양자 알고리즘으로 효율적 해결이 가능하여 양자 내성 암호 연구가 필요하다. - 유한체 - 순환 중복 검사
순환 중복 검사(CRC)는 데이터 전송 또는 저장 시 오류 검출을 위해 데이터를 다항식으로 간주하고 생성 다항식으로 나눈 나머지를 검사 값으로 사용하여 오류를 감지하는 기술이다. - 공개 키 암호 - 공개 키 기반 구조
공개 키 기반 구조(PKI)는 공개 키 암호화를 기반으로 안전한 통신과 개체 식별을 가능하게 하는 기술로서, 디지털 인증서를 통해 공개 키를 특정 개체에 연결하고 인증서를 관리하며, 인증 기관(CA), 등록 기관(RA) 등 다양한 구성 요소로 이루어져 인증서 발급, 관리, 배포, 사용 및 폐기와 관련된 역할, 정책, 하드웨어, 소프트웨어 및 절차의 집합을 포함한다. - 공개 키 암호 - DNSSEC
DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다.
타원곡선 암호 | |
---|---|
개요 | |
![]() | |
유형 | 공개 키 암호 |
개발자 | 비터 S. 밀러(Victor S. Miller) 닐 코블리츠(Neal Koblitz) |
최초 고안 | 1985년 |
기반 | 타원 곡선 상의 이산 로그 문제 |
보안 | 키 크기에 따라 다름 |
특징 | |
장점 | 다른 공개 키 암호 시스템에 비해 더 작은 키 크기로 동등한 수준의 보안 제공 제한된 자원을 가진 환경 (예: 모바일 장치, 스마트 카드)에 적합 |
단점 | 구현 복잡성 증가 특정 타원 곡선 선택에 대한 보안 고려 필요 |
응용 분야 | |
사용 분야 | 디지털 서명 키 교환 암호화 |
프로토콜 | ECDH (타원 곡선 Diffie-Hellman) ECDSA (타원 곡선 디지털 서명 알고리즘) EdDSA (Edwards-curve Digital Signature Algorithm) |
보안 고려 사항 | |
취약점 | 사이드 채널 공격 (Side-channel attack) 결함 주입 공격 (Fault injection attack) |
권고 사항 | 안전한 곡선 (예: NIST 권장 곡선, Curve25519) 사용 |
관련 표준 | |
표준 | ANSI X9.62 NIST SP 800-56A RFC 4754 |
2. 역사
타원 곡선 암호의 사용은 1985년 닐 코블리츠[1]와 빅터 S. 밀러[2]에 의해 독립적으로 제안되었다. 타원 곡선 암호 알고리즘은 2004년부터 2005년 사이에 널리 사용되기 시작했다.[48][49]
1999년, 미국 국립표준기술연구소(NIST)는 15개의 타원 곡선을 권장했다. 구체적으로, FIPS 186-4[3]는 10개의 권장된 유한 필드를 가지고 있다.
종류 | 비트 크기 | 설명 |
---|---|---|
소수 필드 | 192, 224, 256, 384, 521 | 각 소수 필드에 대해 하나의 타원 곡선 권장 |
이진 필드 | m = 163, 233, 283, 409, 571 | 각 이진 필드에 대해 하나의 타원 곡선과 하나의 코블리츠 곡선 선택 |
공개 키 암호 방식은 계산 복잡도 이론에 기반을 둔다. 이론적으로는 유한한 시간 안에 계산이 가능하지만, 실제로는 매우 오랜 시간이 걸리는 특성을 이용한다. 초기 공개 키 암호 방식은 큰 정수를 소수로 나누는 것이 어렵다는 점을 이용했다. 타원곡선 암호는 알려진 특정한 점에 대한 무작위 타원 곡선의 이산 로그를 찾는 것이 어렵다는 점을 이용한다.[5]
NIST 권장 사항에는 총 5개의 소수 곡선과 10개의 이진 곡선이 포함되어 있으며, 이 곡선들은 최적의 보안과 구현 효율성을 위해 선택되었다.[4]
RSA 컨퍼런스 2005에서, 국가안보국(NSA)은 디지털 서명 생성 및 키 교환에 ECC를 독점적으로 사용하는 스위트 B를 발표했다. 이 스위트는 기밀 및 비기밀 국가 안보 시스템과 정보를 보호하기 위한 것이다.[5] 국립표준기술연구소(NIST)는 권장 알고리즘 집합인 스위트 B에서 타원 곡선 암호화를 승인했으며, 특히 키 교환을 위한 ECDH와 디지털 서명을 위한 ECDSA를 승인했다. NSA는 384비트 키를 사용하여 최고 기밀까지의 기밀 정보를 보호하는 데 이를 사용할 수 있도록 허용한다.[6]
최근, 바일 및 테이트 페어링과 같은 다양한 타원 곡선 그룹에서 쌍선형 매핑을 기반으로 하는 많은 수의 암호 원시 요소가 도입되었다.
타원 곡선 암호는 전송 계층 보안 및 비트코인과 같은 수많은 인기 있는 프로토콜에서 성공적으로 사용되고 있다.
3. 이론
타원곡선 암호의 보안은 타원 곡선 점 곱셈을 계산하는 것은 쉽지만, 원래 점과 곱셈 점이 주어졌을 때 곱셈자를 계산하는 것은 어렵다는 점에 기반한다. 곡선 방정식을 만족하는 이산 정수 쌍의 총 개수로 측정되는 타원 곡선의 크기는 문제의 난이도를 결정한다.
타원 곡선 암호는 RSA와 같은 기존 방식에 비해 더 작은 키 크기로 동일한 보안 수준을 제공하여 저장 및 전송 요구 사항을 줄일 수 있다는 장점이 있다. 예를 들어, 256비트 타원 곡선 공개 키는 3072비트 RSA 공개 키와 유사한 보안 수준을 제공한다.[5]
3. 1. 타원 곡선의 정의
공개 키 암호 방식은 계산 복잡도 이론에 의해 이론상 유한한 시간 이내에 계산이 가능하지만, 실제로 계산하기엔 너무 오랜 시간이 걸리는 점을 이용한다. 타원곡선 암호는 알려진 특정한 점에 대한 무작위 타원 곡선의 이산 로그를 찾는 것이 오래 걸린다는 점에서 착안하였다.
암호화 목적으로 사용되는 타원곡선은 평면곡선의 한 종류로, 다음 방정식을 만족하는 점(무한 원점 포함)들의 집합이다.
:
위 집합은 타원곡선의 군 연산과 함께 무한 원점을 항등원으로 하는 아벨 군을 형성한다.
이 문서에서 ''타원 곡선''은 다음 방정식을 만족하는 점들로 구성된 유한체(실수가 아닌) 위의 평면 곡선을 의미하며,
:
그리고 ∞로 표시되는 특별한 무한대점을 포함한다. 여기서 좌표는 2 또는 3이 아닌 표수를 갖는 고정된 유한체에서 선택해야 한다.
이 점들의 집합은 타원 곡선의 군 연산과 함께 아벨 군을 형성하며, 무한대점이 항등원 역할을 한다.
실평면 상의 점을 로 나타낸 경우, 상에서 정의되는 타원 곡선 (바이어슈트라스 표준형)에서는 상의 점에 접현법(또는 바셰(Bachet)의 방법)[50]이라고 불리는 가법적인 2항 연산에 의해 가군의 구조를 부여할 수 있다(영원은 통상 무한원점으로 정의되며, 이것을 로 나타낸다).
타원 곡선 암호에서 다루는 타원 곡선은 상의 유리점을 어떤 소수 로 환원한 유한체 상의 이산 타원 곡선 이며, 환원에 의해 위의 가군의 구조는 상의 가군의 구조로 사상된다. 타원 곡선 암호에서 다루는 타원 곡선은 어떤 소수 p에 대해, 타원 곡선 를 p로 환원한 유한체 위의 이산적인 타원 곡선이며, 이를 로 표기한다(무한 원점 도 포함한다).
모든 유리수는 두 정수 u, v (u, v는 서로 소인 정수이며, v > 0)의 분수 u/v 형태로 나타낼 수 있다. 정규화된 분수 u/v의 분모 v가 p를 인수로 포함하지 않는 경우, u/v를 p진 정수(또는 p-정수)라고 부른다. 모든 p진 정수의 집합을 라고 하며, p진 정수환 에서 유한체 위로의 사상 는 다음과 같이 정의한다.
:
단, 는 의 원소 의 에서의 역원이다.
는 환 에서 유한체 로의 환 준동형 사상이며, 상의 덧셈, 곱셈, 역원은 상의 덧셈, 곱셈, 역원으로 사상된다. 의 상이 체이므로, 그 핵은 환 의 극대 아이디얼이며, 이는 단항 아이디얼 와 일치한다. 유리수체 위의 타원 곡선 를 위에 제한한 것을 라고 표기한다(무한원점 는 포함).
의 소수 p에 의한 환원은, 에 다음에 정의하는 에서 로의 사상 를 작용시키는 것이다.
는 의 성질로부터, 위의 할선법에 의한 덧셈을 위의 덧셈으로 모순 없이 사상한다. 즉, 는 타원 곡선 위의 덧셈에 관한 준동형 사상을 이루고 있다.
위에서 정의된 타원 곡선 (는 p진 정수)를 소수 로 환원한 이산적인 타원 곡선 는 위에서는 다음 식으로 정의된다.
:
단, 는 의 원소이며, 로 한다. 이와 같이 정의된 이산적인 타원 곡선은, 그래프로 나타내면 더 이상 곡선이 아니라, 이산적인 점들의 집합으로밖에 보이지 않는다(단, 분포는 직선 에 대해 대칭이다).
에서의 할선법의 덧셈 계산식은, 에서는 또는 에 의한 나눗셈이, 에서의 역원 또는 에 의한 곱셈으로 대체되어, 다음과 같이 고쳐 쓸 수 있다.
를 위의 임의의 두 점이라 하자.
의 경우, .
그 외의 경우, 로 두면,
단 는 인 경우,
인 경우,
위의 식에서, 의 임의의 원소 의 에서의 역원 는, 페르마의 소정리로부터 이므로, 에 의해 계산할 수 있다.
3. 2. 타원 곡선 위의 연산
공개 키 암호 방식은 계산 복잡도 이론에 의해 이론상 유한한 시간 이내에 계산이 가능하지만, 실제로 계산하기엔 너무 오랜 시간이 걸리는 점을 이용한다. 타원곡선 암호 또한 알려진 특정한 점에 대한 무작위 타원 곡선의 이산 로그를 찾는 것이 오래 걸린다는 점에서 착안하였다.
실평면 상의 점을 로 나타낸 경우, 상에서 정의되는 타원 곡선 (바이어슈트라스 표준형)에서는 상의 점에 접현법(또는 바셰(Bachet)의 방법)[50]이라고 불리는 가법적인 2항 연산에 의해 가군의 구조를 부여할 수 있다(영원은 통상 무한원점으로 정의된다. 이것을 로 나타낸다).
타원 곡선 위의 서로 다른 두 점을 라고 할 경우, 그 접현법에 의한 덧셈을 로 나타내면, 이는 다음 식으로 계산된다.[51]
:
:
:단, 는
:
:
위의 방법으로 정의된 이항 연산은 덧셈으로 필요한 다음의 성질을 갖추고 있다.
타원 곡선 위의 점 에 대해, 을 다시 더하는 경우, 즉 을 구하는 경우, 위의 방법은 사용할 수 없다.
:
:
:이 식은 서로 다른 두 점의 덧셈의 경우와 같지만, 의 계산식이 다음과 같이 바뀐다.
:
:
스칼라 곱셈(Scalar Multiplication)은 타원 곡선 상에서의 곱셈이다. 타원 곡선 상의 점과 점을 곱하는 것이 아니라, 점에 정수(스칼라)를 곱하는 것에 주의한다.
상의 어떤 점 을 시작점으로 하여, 여기에 순차적으로 자신을 회 가산하여 얻어지는 점을 으로 나타낸다. 이 연산은 에 을 회 가산하는 것과 같다. 에 을 회 가산하면 이 얻어진다.
이와 같이, 상의 점과 정수의 곱셈을 정의할 수 있다. 이 연산을 스칼라 곱셈(Scalar Multiplication)이라고 부른다.
을 시작점으로 하여, 가법에 의해 생성되는 점열(즉, 모든 정수에 대한 의 스칼라 곱셈의 집합)은, 상의 순환군을 이루고 있다(이를 로 나타낸다).
3. 3. 이산 로그 문제
공개 키 암호 방식은 계산 복잡도 이론에 기반을 두고 있는데, 이론적으로는 유한한 시간 안에 계산이 가능하지만 실제로는 매우 오랜 시간이 걸리는 특성을 이용한다. 타원곡선 암호 역시 이러한 특성을 이용하는데, 공개적으로 알려진 기준점을 기준으로 임의의 타원 곡선 요소의 이산 대수를 구하는 것이 매우 어렵다는 점에 착안하였다. 이를 타원 곡선 이산 대수 문제(ECDLP)라고 부른다.[5]
타원 곡선 암호의 보안은 타원 곡선 점 곱셈을 계산하는 것은 쉽지만, 원래 점과 곱셈 점이 주어졌을 때 곱셈자를 계산하는 것은 어렵다는 점에 기반한다. 타원 곡선의 크기(곡선 방정식을 만족하는 이산 정수 쌍의 총 개수)는 문제의 난이도를 결정한다.
순환군 의 임의의 요소(타원 곡선상의 점) 에 대해, 를 만족하는 는 안에 항상 단 하나 존재한다. 이 를 의 이산 대수라고 부른다. 에서 무작위로 선택된 가 주어졌을 때, 그 이산 대수를 구하는 문제를 '''타원 곡선상의 이산 대수 문제'''라고 부른다.
와 의 대응은 1대1 대응이며, 로부터 를 계산하는 것은 비교적 쉽지만, 로부터 를 계산하는 것은 실질적으로 불가능하다. 즉, 와 의 대응은 일방향 함수가 된다. 이 성질을 이용하여 를 비밀 키, 를 공개 키로 하는 ECDSA 같은 디지털 서명 알고리즘이 사용된다.
타원 곡선상의 디피-헬만 문제는 두 사용자 A, B가 각각 비밀 키 를 가지고, 공개 키 ()를 공개했을 때, 제3자 C가 와 만으로 를 계산할 수 있는지에 대한 문제이다. 현재까지는 이산 대수 문제를 푸는 것 외에 알려진 해법이 없으며, 이산 대수 문제의 어려움 덕분에 를 A와 B만 아는 공통 키로 사용할 수 있다. (디피-헬만 키 공유)
3. 4. 디피-헬만 문제
공개 키 암호 방식은 계산 복잡도 이론에 의해 이론상 유한한 시간 안에 계산이 가능하지만, 실제로 계산하기에는 매우 오랜 시간이 걸리는 점을 이용한다. 타원곡선 암호는 알려진 특정한 점에 대한 무작위 타원 곡선의 이산 로그를 찾는 것이 오래 걸린다는 점을 이용한다.
순환군 의 임의의 요소(타원 곡선상의 점) 에 대해, 를 만족하는 가 안에 항상 단 하나 존재한다. 이러한 를 의 이산 대수라고 부른다. 에서 무작위로 선택된 가 주어졌을 때, 그 이산 대수를 구하는 문제를 '''타원 곡선상의 이산 대수 문제'''라고 부른다. 와 의 대응은 1대1이며, 로부터 를 계산하는 것은 비교적 쉽지만, 로부터 를 계산하는 것은 실질적으로 불가능하다. 즉, 와 의 대응은 일방향 함수가 된다.
2자 A, B가 각각 비밀 키 를 보유하고, 이로부터 생성된 공개 키 ()를 각각 공개하고 있으며, A, B는 서로 상대방의 비밀 키 값을 모르는 경우를 생각해보자. A는 공개되어 있는 에 자신이 보유하고 있는 를 스칼라 곱하면 의 값을 얻을 수 있으며, B는 마찬가지로, 에 를 스칼라 곱하면 의 값을 얻을 수 있다. 그렇다면 의 두 값 모두를 모르는 제3자 C는 및 의 값만으로 의 값을 얻는 방법이 있는가 하는 것이 '''타원 곡선상의 디피-헬만 문제'''이다. 현재로서는 해법으로, 또는 에 대한 이산 대수 문제를 푸는 방법 외에는 알려져 있지 않으며, 이 문제를 일방향 함수로 사용하는 것이 가능하다. 즉 를 A, B만이 아는 공통 키로 사용할 수 있다(디피-헬만 키 공유).
4. 구현
타원곡선 암호(ECC) 구현에는 몇 가지 고려해야 할 사항이 있다.
먼저, 모든 참여자는 타원 곡선을 정의하는 도메인 매개변수에 동의해야 한다. 도메인 매개변수는 NIST나 SECG 등 표준 기관에서 제공하는 것을 사용하거나, 자체적으로 생성할 수 있다. 자체 생성 시에는 곡선 상의 점의 수 계산이 필요하며, 취약한 곡선을 피해야 한다.
타원 곡선 연산의 효율성을 위해 다양한 좌표계(사영, 야코비안, 로페즈-다합 등)를 사용할 수 있다. 특히, 의사 메르센 소수를 사용하면 모듈로 감소 연산을 빠르게 수행할 수 있어, 비트 연산을 사용하는 컴퓨터 환경에서 효율적이다.
암호화 및 복호화 과정에는 스칼라 곱셈 연산(Q=dP)이 필요하며, 이는 Binary 방식 등을 통해 효율적으로 수행할 수 있다. 하지만 스칼라 곱셈 연산은 부채널 공격(SPA, DPA)에 취약하므로 주의해야 한다.
다음은 타원곡선 암호 구현과 관련된 주요 라이브러리 및 도구 목록이다.
- OpenSSL
- NSS
- Crypto++
- MIRACL
- seccure
- SKS
- eccGnuPG
- Curve25519
- TinyECC
- libecc
- Bouncy Castle
4. 1. 도메인 파라미터
타원곡선 암호 (ECC)를 사용하려면, 모든 참여자가 타원 곡선을 정의하는 모든 요소, 즉 체계의 ''도메인 매개변수''에 동의해야 한다. 사용되는 필드의 크기는 일반적으로 소수 (p로 표시)이거나 2의 거듭제곱 ()이다. 후자를 ''이진 케이스''라고 하며, 이 경우 ''f''로 표시되는 보조 곡선을 선택해야 한다. 따라서 필드는 소수 케이스에서는 ''p''로 정의되고, 이진 케이스에서는 ''m''과 ''f''의 쌍으로 정의된다. 타원 곡선은 정의 방정식에 사용된 상수 ''a''와 ''b''로 정의된다. 마지막으로, 순환 부분군은 생성자 (일명 ''기저점'') ''G''로 정의된다. 암호 응용 프로그램의 경우, (곡선의 무한대 점 및 항등원)인 가장 작은 양수 ''n''인 ''G''의 차수는 일반적으로 소수이다. ''n''은 의 부분군의 크기이므로 라그랑주 정리에 따라 숫자 는 정수이다. 암호 응용 프로그램에서 이 숫자 ''h'' (이하, ''코팩터'')는 작아야 ()하며, 가급적 이어야 한다. 요약하면, 소수 케이스에서 도메인 매개변수는 이고, 이진 케이스에서는 이다.도메인 매개변수가 사용과 관련하여 신뢰할 수 있는 당사자에 의해 생성되었다는 보장이 없는 한, 도메인 매개변수는 사용 전에 ''반드시'' 검증해야 한다.
도메인 매개변수를 생성하는 것은 일반적으로 각 참여자가 수행하지 않는데, 이는 곡선 상의 점의 수 계산을 포함하며 시간 소모적이고 구현하기 어렵기 때문이다. 그 결과, 여러 표준 기관에서 몇 가지 일반적인 필드 크기에 대한 타원 곡선의 도메인 매개변수를 게시했다. 이러한 도메인 매개변수는 일반적으로 "표준 곡선" 또는 "명명된 곡선"으로 알려져 있으며, 명명된 곡선은 이름이나 표준 문서에 정의된 고유한 객체 식별자로 참조할 수 있다.
- NIST, [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf 정부 사용 권장 타원 곡선]
- SECG, [http://www.secg.org/sec2-v2.pdf SEC 2: 권장 타원 곡선 도메인 매개변수]
- ECC Brainpool, [http://www.ecc-brainpool.org/download/Domain-parameters.pdf ECC Brainpool 표준 곡선 및 곡선 생성][14][15]
SECG 테스트 벡터도 사용할 수 있다.[16] NIST는 많은 SECG 곡선을 승인했으므로 NIST와 SECG에서 게시한 사양 간에 상당한 중복이 있다. EC 도메인 매개변수는 값 또는 이름으로 지정할 수 있다.
앞서의 권고에도 불구하고 자신의 도메인 매개변수를 구성하기로 결정한 경우, 기본 필드를 선택한 다음 다음 방법 중 하나를 사용하여 적절한 (즉, 소수에 가까운) 점 수를 가진 곡선을 찾아야 한다.
- 임의의 곡선을 선택하고 일반적인 점 계산 알고리즘 (예: Schoof의 알고리즘 또는 Schoof–Elkies–Atkin 알고리즘) 사용.
- 점의 수를 쉽게 계산할 수 있는 패밀리에서 임의의 곡선을 선택하거나 (예: Koblitz 곡선).
- ''복소수 곱셈'' 기술을 사용하여 점의 수를 선택하고 이 점의 수로 곡선을 생성한다.[17]
몇몇 종류의 곡선은 취약하므로 피해야 한다.
- 소수가 아닌 ''m''을 갖는 위의 곡선은 바일 강하 공격에 취약하다.[18][19]
- ''n''이 충분히 작은 ''B''에 대해 을 나누는 곡선 (여기서 ''p''는 필드의 특성이다: 소수 필드의 경우 ''q'', 이진 필드의 경우 )는 메네제스–오카모토–반스톤 (MOV) 공격에 취약하다.[20][21] 이 공격은 ECDLP를 해결하기 위해 의 작은 차수 확장 필드에서 일반적인 이산 대수 문제 (DLP)를 적용한다. 바운드 ''B''는 필드 에서 이산 로그를 계산하는 것이 타원 곡선 에서 이산 로그를 계산하는 것만큼 어렵도록 선택해야 한다.[22]
- 인 곡선은 곡선 상의 점을 의 가산 그룹에 매핑하는 공격에 취약하다.[23][24][25]
타원 곡선 위의 점 에서부터 를 계산해나가면, 차례대로 다른 (타원 곡선 위의) 점들이 얻어지지만, 앞서 언급했듯이 는 유한 집합이므로, 이 점열은 결국 무한원점 에 도달한다 (단, 타원 곡선에 따라 그러한 G는 G=O밖에 없는 경우도 있다). 그 후에는 로 반복된다. 이처럼 로부터 스칼라 배산에 의해 얻어지는 점들의 집합을 로 표기하면, 는 순환군이 된다. 은 순환군의 위수라고 불리며, 를 생성하는 원소 는 베이스 포인트라고 불린다.
위의 모든 점의 개수를 라고 하면, 이는 기껏해야 개 (무한원점 포함)이며, 위수 은 이보다 작아진다. 타원 곡선의 파라미터 에 의존하며, 실제 값은 Schoof의 알고리즘 또는 그 개선판 등을 사용하여 계산해야 알 수 있다 (의 값의 범위에 대해서는, 하세의 정리라는 단서가 있다). 이 소수일 경우, 순환군 의 모든 원소는 의 생성원이며, 이들의 위수는 모두 이 된다.
로 정의되는 값 는 코팩터라고 불리는데, 이 값은 1에 가까운 것이 바람직하다. 의 선택에 따라, 로 할 수 있다 (후술할 secp256k1에서는 이다). 인 경우, 위의 점은 거의 전부 의 원소이므로, 베이스 포인트를 찾는 것이 쉬워진다. 모델의 정리가 시사하듯이 이외의 경우도 가능하며, 가 되는 실용적인 타원 곡선의 사양도 있다.
타원 곡선 암호에서는, 순환군의 위수 이 작으면, 다음에 설명할 이산 대수 문제나 디피-헬만 문제가 비교적 쉽게 풀려버리기 때문에, 보안 강도를 강하게 하기 위해서는, 이 가능한 한 큰 소수가 되도록 파라미터 를 결정할 필요가 있다. 이는, 다수의 파라미터 후보에 대해, Schoof의 알고리즘 또는 그 개선판 등을 사용하여 실제로 을 계산하는 시행 착오를 통해 이루어진다.
타원 곡선 파라미터의 예시로, 비트코인에서 사용되고 있는 타원 곡선 암호인 secp256k1의 것을 나타낸다.[52]
= FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F
= 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798
= 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8
= FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141
= 1
4. 2. 표준 곡선
미국 국립표준기술연구소(NIST)는 1999년에 15개의 타원 곡선을 권장했다. FIPS 186-4[3]는 10개의 권장된 유한 필드를 가지고 있는데, 다음과 같다.필드 종류 | 비트 크기 |
---|---|
소수 필드 | 192, 224, 256, 384, 521 |
192 | |
224 | |
256 | |
384, 521 | |
이진 필드 | 163, 233, 283, 409, 571 |
163 | |
233 | |
283 | |
409, 571 |
각 소수 필드에 대해 하나의 타원 곡선이, 각 이진 필드에 대해 하나의 타원 곡선과 하나의 코블리츠 곡선이 권장된다. NIST 권장 사항에는 총 5개의 소수 곡선과 10개의 이진 곡선이 포함되어 있으며, 이 곡선들은 최적의 보안과 구현 효율성을 위해 선택되었다.[4]
국가안보국(NSA)은 스위트 B에서 키 교환을 위한 ECDH와 디지털 서명을 위한 ECDSA를 승인했다. NSA는 384비트 키를 사용하여 최고 기밀까지의 기밀 정보를 보호하는 데 이를 사용할 수 있도록 허용한다.[6]
타원 곡선 암호(ECC)를 사용하려면 모든 당사자가 타원 곡선을 정의하는 모든 요소, 즉 체계의 ''도메인 매개변수''에 동의해야 한다. 사용되는 필드의 크기는 일반적으로 소수(p로 표시)이거나 2의 거듭제곱()이다. 필드는 소수 케이스에서는 ''p''로 정의되고 이진 케이스에서는 ''m''과 ''f''의 쌍으로 정의된다. 타원 곡선은 정의 방정식에 사용된 상수 ''a''와 ''b''로 정의된다. 마지막으로, 순환 부분군은 생성자(기저점) ''G''로 정의된다. 암호 응용 프로그램의 경우, ''G''의 차수는 일반적으로 소수 ''n''이다. ''n''은 의 부분군의 크기이므로 라그랑주 정리에 따라 숫자 는 정수이다. 암호 응용 프로그램에서 이 숫자 ''h''(''코팩터'')는 작아야() 하며, 가급적이면 이어야 한다. 요약하면, 소수 케이스에서 도메인 매개변수는 이고, 이진 케이스에서는 이다.
도메인 매개변수가 사용과 관련하여 신뢰할 수 있는 당사자에 의해 생성되었다는 보장이 없는 한, 도메인 매개변수는 사용 전에 ''반드시'' 검증해야 한다.
도메인 매개변수를 생성하는 것은 곡선 상의 점의 수 계산을 포함하며 시간 소모적이고 구현하기 어렵기 때문에 일반적으로 각 참여자가 수행하지 않는다. 그 결과, 여러 표준 기관에서 몇 가지 일반적인 필드 크기에 대한 타원 곡선의 도메인 매개변수를 게시했다. 이러한 도메인 매개변수는 "표준 곡선" 또는 "명명된 곡선"으로 알려져 있으며, 명명된 곡선은 이름이나 표준 문서에 정의된 고유한 객체 식별자로 참조할 수 있다.
- NIST, [https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf 정부 사용 권장 타원 곡선]
- SECG, [http://www.secg.org/sec2-v2.pdf SEC 2: 권장 타원 곡선 도메인 매개변수]
- ECC Brainpool, [http://www.ecc-brainpool.org/download/Domain-parameters.pdf ECC Brainpool 표준 곡선 및 곡선 생성][14][15]
SECG 테스트 벡터도 사용할 수 있다.[16] NIST는 많은 SECG 곡선을 승인했으므로 NIST와 SECG에서 게시한 사양 간에 상당한 중복이 있다. EC 도메인 매개변수는 값 또는 이름으로 지정할 수 있다.
타원 곡선 파라미터의 예시로, 비트코인에서 사용되고 있는 타원 곡선 암호인 secp256k1의 것은 다음과 같다.[52]
= FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F
= 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798
= 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8
= FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141
= 1
4. 3. 효율적인 연산
타원곡선 암호(ECC)에서 덧셈 규칙을 자세히 살펴보면, 두 점을 더하기 위해 \\(\mathbb{F}_q\\)에서 여러 번의 덧셈과 곱셈뿐만 아니라 역원 연산도 필요하다는 것을 알 수 있다. 역원(주어진 \\(x \in \mathbb{F}_q\\)에 대해 \\(x y = 1\\)을 만족하는 \\(y \in \mathbb{F}_q\\)를 찾는다)는 곱셈보다 한두 자릿수 정도 느리다.[30] 그러나 곡선 위의 점들은 두 점을 더하기 위해 역원 연산이 필요하지 않은 다른 좌표계로 표현될 수 있다.다음과 같은 여러 시스템이 제안되었다.
- 사영(projective) 시스템: 각 점이 세 개의 좌표 \\((X,Y,Z)\\)로 표현되며, \\(x = \frac{X}{Z}\\), \\(y = \frac{Y}{Z}\\) 관계를 사용한다.
- 야코비안(Jacobian) 시스템: 점은 세 개의 좌표 \\((X,Y,Z)\\)로 표현되지만, \\(x = \frac{X}{Z^2}\\), \\(y = \frac{Y}{Z^3}\\) 관계가 사용된다.
- 로페즈-다합(López-Dahab) 시스템: \\(x = \frac{X}{Z}\\), \\(y = \frac{Y}{Z^2}\\) 관계를 사용한다.
- 수정된 야코비안 시스템: 동일한 관계가 사용되지만 네 개의 좌표 \\((X,Y,Z,aZ^4)\\)가 저장되고 계산에 사용된다.
- 추드노프스키(Chudnovsky) 야코비안 시스템: 다섯 개의 좌표 \\((X,Y,Z,Z^2,Z^3)\\)가 사용된다.
IEEE P1363-2000 표준과 같이 다른 명명 규칙이 있을 수 있는데, 이 표준은 일반적으로 야코비안 좌표라고 불리는 것을 지칭하기 위해 "사영 좌표"를 사용한다. 혼합 좌표를 사용하면 추가적인 속도 향상이 가능하다.[31]
\\(p\\)에 대한 모듈로 감소(덧셈과 곱셈에 필요)는 소수 \\(p\\)가 의사 메르센 소수일 경우, 즉 \\(p \approx 2^d\\)일 때 훨씬 더 빠르게 실행될 수 있다. 예를 들어, \\(p = 2^{521} - 1\\) 또는 \\(p = 2^{256} - 2^{32} - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1\\)이다. 바렛 감소와 비교하여, 한 단계의 속도 향상이 있을 수 있다.[32] 여기서 속도 향상은 이론적인 것이 아닌 실질적인 것이며, 2의 거듭제곱에 가까운 숫자에 대한 모듈로 연산이 비트 연산을 사용하는 컴퓨터에서 효율적으로 수행될 수 있다는 사실에서 비롯된다.
의사 메르센 소수 \\(p\\)를 갖는 \\(\mathbb{F}_p\\) 위의 곡선은 미국 국립표준기술연구소(NIST)에서 권장한다. NIST 곡선의 또 다른 장점은 \\(a\\) = −3을 사용한다는 점인데, 이는 야코비 좌표에서 덧셈을 개선한다.
Bernstein과 Lange에 따르면, NIST FIPS 186-2에서 효율성과 관련된 많은 결정은 최적이 아니다. 다른 곡선들이 더 안전하고 똑같이 빠르게 실행된다.[33]
암호화 및 복호화 과정에서 \\(Q=dP\\) ( \\(P,\\, Q\\)는 타원 곡선 위의 점)라는 스칼라 곱셈을 수행한다.
단순한 구현으로는 \\(Q = ( \cdots ( ( P+P ) + P ) + \cdots ) + P\\) 와 같이 P를 \\((d-1)\\) 회 더하는(첫 번째는 2배 연산이 된다) 방식을 사용하지만, 이는 비효율적이다.
스칼라 곱셈은 RSA 암호 등에서의 거듭제곱 잉여 연산과 연관되어 있으며, 이의 고속화 기법 또한 이를 활용할 수 있는 경우가 많다. 예를 들어, 그 중 하나로 유명한 Binary 방식에서는 d를 2진수 표기법으로 나타내고, d의 각 비트 \\(d_i\\)가 "0"인 경우에는 2배 연산만 수행하고, "1"인 경우에는 2배 연산과 덧셈을 수행함으로써, 단순한 구현과 동일한 계산을 보다 빠르게 수행한다. 이 계산 방식에서 2배 연산은 거듭제곱 잉여 연산에서의 제곱 연산, 덧셈은 곱셈에 각각 대응된다.
이 연산은 타원 곡선 암호의 근간을 이루는 부분이며, 타원 곡선 암호를 사용할 때 시간의 대부분을 차지한다. 따라서, IC 카드 등 하드웨어에 연산 회로를 구현하는 경우에는 부채널 공격(특히 SPA, DPA)의 대상이 되는 부분이므로 주의가 필요하다.
5. 보안 및 공격
2013년, 뉴욕 타임스는 Dual Elliptic Curve Deterministic Random Bit Generation(Dual_EC_DRBG)가 NSA의 영향으로 NIST 국가 표준으로 포함되었으며, NSA는 해당 알고리즘과 권장 타원 곡선에 의도적인 약점을 포함시켰다고 보도했다.[7] RSA 시큐리티(RSA Security)는 2013년 9월, 고객들에게 Dual_EC_DRBG 기반의 모든 소프트웨어 사용을 중단할 것을 권고하는 권고안을 발표했다.[8][9] Dual_EC_DRBG가 "NSA의 은밀한 작전"으로 드러나면서, 암호학 전문가들은 NIST가 권장하는 타원 곡선의 보안에 대해서도 우려를 표명하며, 타원 곡선이 아닌 그룹 기반의 암호화로 복귀할 것을 제안했다.[10]
암호학 전문가들은 미국 국가안보국(NSA)이 적어도 하나의 타원 곡선 기반 의사 난수 생성기에 암호화 백도어를 삽입했다는 우려를 표명했다.[37] 전 NSA 계약자 에드워드 스노든이 유출한 내부 메모에 따르면 NSA는 Dual EC DRBG 표준에 백도어를 삽입했다.[38] 가능한 백도어에 대한 한 분석에 따르면 알고리즘의 비밀 키를 가진 공격자는 32바이트의 PRNG 출력만으로 암호화 키를 얻을 수 있었다고 결론 내렸다.[39]
SafeCurves 프로젝트는 안전하게 구현하기 쉽고 백도어의 가능성을 최소화하기 위해 완전히 공개적으로 검증할 수 있는 방식으로 설계된 곡선을 목록화하기 위해 시작되었다.[40]
가상 머신에서 타원 곡선 암호(ECC)를 사용할 때, 공격자는 유효하지 않은 곡선을 사용하여 전체 PDH 개인 키를 얻을 수 있다.[47]
5. 1. 보안 강도
공개 키 암호 방식은 특정 수학적 문제의 계산적 난해성에 기반을 둔다. 초기 공개 키 시스템은 큰 정수를 정수 인수분해하는 것이 어렵다는 가정에 보안을 두었다. 타원 곡선 기반 프로토콜은 임의의 타원 곡선 요소의 이산 대수를 찾는 것이 불가능하다는 "타원 곡선 이산 대수 문제"(ECDLP)에 기반한다. 타원 곡선의 크기는 이 문제의 난이도를 결정한다.타원 곡선 암호는 더 작은 키 크기로 동일한 보안 수준을 제공하여 저장 및 전송 요구 사항을 줄인다.[5] 예를 들어, 256비트 타원 곡선 공개 키는 3072비트 RSA 공개 키와 유사한 보안 강도를 가진다.
ECDLP를 해결하는 가장 빠른 알고리즘은 단계가 필요하므로, 기본 필드의 크기는 보안 매개변수의 약 두 배가 되어야 한다. 128비트 보안의 경우 인 위의 곡선이 필요하다. 이는 유한 필드 암호화(예: DSA) 및 정수 인수분해 암호화(예: RSA)와 대조된다.
현재까지 (공개적으로) 해독된 가장 어려운 ECC 방식은 소수 필드 사례의 경우 112비트 키, 이진 필드 사례의 경우 109비트 키였다. 소수 필드 사례는 2009년 7월 200대 이상의 플레이스테이션 3 게임 콘솔 클러스터를 사용하여 해독되었으며, 이진 필드 사례는 2004년 4월 2600대의 컴퓨터를 사용하여 17개월에 걸쳐 해독되었다.[28]
보안 강도는 암호가 깨지기 어려운 정도를 나타내는 지표(단위는 비트)이며, 보안 강도가 (비트)라는 것은 공격자가 암호에서 키(또는 평문)를 해독하기 위해 필요한 단위 연산의 횟수가 회 정도임을 나타낸다.[53] 대칭키 암호인 AES-128은 무차별 대입 공격 외에는 해독할 수 없도록 설계되어 보안 강도와 키 길이가 같다. 반면, RSA 암호는 동등한 보안 강도를 얻기 위해 더 큰 키 길이가 필요하다.[54]
이산대수 문제는 폴라드 로우 이산대수 알고리즘 등을 사용하면 무차별 대입 공격보다 효율적으로 해독할 수 있다. 이산대수 문제의 보안 강도 은 키 길이를 라고 했을 때, 대략 가 된다. 즉, 키 길이 256비트의 타원 곡선 암호는 키 길이 128비트의 AES와 동등한 수준의 보안 강도를 가진다.
미국 국립 표준 기술 연구소(NIST)는 보안 강도가 112비트인 암호는 2030년까지, 128비트 이상인 암호는 2031년 이후에도 사용을 허용할 것을 권고한다.[56]
5. 2. 부채널 공격
대부분의 다른 DLP 시스템과 달리(제곱과 곱셈에 동일한 절차를 사용할 수 있음), EC 덧셈은 사용된 좌표계에 따라 배가(''P'' = ''Q'')와 일반 덧셈(''P'' ≠ ''Q'')이 상당히 다르다. 결과적으로, 예를 들어 고정 패턴 윈도우(일명 빗질) 방법을 사용하여 부채널 공격 (예: 타이밍 또는 단순/차분 전력 분석 공격)에 대응하는 것이 중요하다(이는 계산 시간을 늘리지 않는다). 또는 Edwards 곡선을 사용할 수 있다. 이는 배가와 덧셈을 동일한 연산으로 수행할 수 있는 타원 곡선의 특별한 패밀리이다.[35] ECC 시스템의 또 다른 관심사는 오류 공격의 위험, 특히 스마트 카드에서 실행될 때의 위험이다.[36]타원 곡선 상에서 타원 덧셈 ''P + Q''를 수행하는 경우, 덧셈 (''P'' ≠ ''Q'')과 2배 연산 (''P'' = ''Q'')에서는 연산 프로세스가 크게 다르다. 따라서, 부채널 공격 (예: 타이밍 공격 또는 단순 전력 분석/차분 전력 분석)에 대한 대책이 필요하다. 혹은, 트위스티드 에드워즈 곡선을 사용할 수도 있다. 이 곡선은 덧셈과 2배 연산을 동일한 연산 프로세스로 실행할 수 있는 특별한 타원 곡선의 일족이다.[58]
5. 3. 양자 컴퓨터 공격
쇼어의 알고리즘은 가상 양자 컴퓨터에서 이산 대수 문제를 계산하여 타원 곡선 암호를 해독하는 데 사용될 수 있다. 256비트 모듈러스(128비트 보안 수준)를 가진 곡선을 해독하기 위한 최신 양자 자원 추정치는 2330 큐비트와 1,260억 개의 토폴리 게이트이다.[41] 이진 타원 곡선의 경우 906개의 큐비트가 필요하다(128비트 보안 해독).[42] 이와 비교하여, RSA 알고리즘을 해독하기 위해 쇼어의 알고리즘을 사용하려면 2048비트 RSA 키에 대해 4098개의 큐비트와 5.2조 개의 토폴리 게이트가 필요하므로 ECC가 RSA보다 양자 컴퓨터의 더 쉬운 목표임을 시사한다. 이러한 수치는 지금까지 만들어진 모든 양자 컴퓨터를 훨씬 초과하며, 그러한 컴퓨터의 제작은 10년 이상 걸릴 것으로 추정된다.[43]초특이 동종 사상 디피-헬만 키 교환은 동종 사상을 사용하여 디피-헬만 키 교환을 구현함으로써 양자 후 암호화 형태의 타원 곡선 암호를 제공한다고 주장했다. 이 키 교환은 기존 타원 곡선 암호화와 동일한 필드 산술 연산을 많이 사용하며 현재 사용되는 많은 공개 키 시스템과 유사한 계산 및 전송 오버헤드를 필요로 한다.[44] 그러나 새로운 고전적 공격으로 인해 이 프로토콜의 보안이 약화되었다.[45]
2015년 8월, 미국 국가안보국(NSA)은 "머지않은 미래"에 양자 컴퓨터 공격에 강한 새로운 암호화 제품군으로 전환할 계획이라고 발표했다. "불행히도, 타원 곡선 사용의 증가는 양자 컴퓨팅 연구의 지속적인 발전에 대한 사실과 충돌하여 암호화 전략을 재평가해야 할 필요성을 제기했다."[46]
6. 응용
타원 곡선 암호의 사용은 1985년 닐 코블리츠[1]와 빅터 S. 밀러[2]에 의해 독립적으로 제안되었다. 타원 곡선 암호 알고리즘은 2004년부터 2005년 사이에 널리 사용되기 시작했다.
미국 국립표준기술연구소(NIST)는 1999년에 15개의 타원 곡선을 권장했다. 구체적으로 FIPS 186-4[3]는 10개의 권장된 유한 필드를 가지고 있는데, 5개는 소수 필드 이고, 5개는 이진 필드 이다. NIST는 최적의 보안과 구현 효율성을 위해 총 5개의 소수 곡선과 10개의 이진 곡선을 권장했다.[4]
RSA 컨퍼런스 2005에서, 국가안보국(NSA)은 디지털 서명 생성 및 키 교환에 ECC를 독점적으로 사용하는 스위트 B를 발표했다. 이 스위트는 기밀 및 비기밀 국가 안보 시스템과 정보를 보호하기 위한 것이었다.[5] 국립표준기술연구소(NIST)는 권장 알고리즘 집합인 스위트 B에서 타원 곡선 암호화를 승인했으며, 특히 키 교환을 위한 ECDH와 디지털 서명을 위한 ECDSA를 승인했다. NSA는 384비트 키를 사용하여 최고 기밀까지의 기밀 정보를 보호하는 데 이를 사용할 수 있도록 허용한다.[6]
최근 바일 및 테이트 페어링과 같은 다양한 타원 곡선 그룹에서 쌍선형 매핑을 기반으로 하는 많은 수의 암호 원시 요소가 도입되었다.
타원 곡선 암호는 전송 계층 보안 및 비트코인과 같은 수많은 인기 있는 프로토콜에서 성공적으로 사용되고 있다. 공개 키 암호 방식은 특정 수학적 문제의 계산적 난해성에 기반을 둔다. 타원 곡선 기반 프로토콜의 경우, 공개적으로 알려진 기준점을 기준으로 임의의 타원 곡선 요소의 이산 대수를 찾는 것이 불가능하다는 것이 기본적인 가정이다(계산적 디피-헬만 가정): 이것이 "타원 곡선 이산 대수 문제"(ECDLP)이다.
타원 곡선 암호가 RSA와 같은 대안보다 약속하는 주요 이점은 더 작은 키 크기로, 저장 및 전송 요구 사항을 줄이는 것이다.[5] 예를 들어, 256비트 타원 곡선 공개 키는 3072비트 RSA 공개 키와 보안 수준이 유사해야 한다.
몇몇 이산 대수 기반 프로토콜이 타원 곡선에 적용되어 그룹 를 타원 곡선으로 대체되었다.
- 타원 곡선 디피-헬만(ECDH) 키 합의 방식은 디피-헬만 방식을 기반으로 한다.
- 타원 곡선 통합 암호화 방식 (ECIES)
- 타원 곡선 디지털 서명 알고리즘 (ECDSA)
- EdDSA
- ECMQV 키 합의 방식
- ECQV 암시적 인증서 방식
참조
[1]
논문
Elliptic curve cryptosystems
[2]
서적
Advances in Cryptology — CRYPTO '85 Proceedings
1986
[3]
웹사이트
Digital Signature Standard (DSS)
https://csrc.nist.go[...]
National Institute of Standards and Technology
2013-07-19
[4]
간행물
Digital Signature Standard (DSS)
http://csrc.nist.gov[...]
FIPS PUB 186-3
[5]
웹사이트
The Case for Elliptic Curve Cryptography
http://www.nsa.gov/b[...]
[6]
웹사이트
Fact Sheet NSA Suite B Cryptography
http://www.nsa.gov/i[...]
[7]
뉴스
N.S.A. Able to Foil Basic Safeguards of Privacy on Web
https://www.nytimes.[...]
2013-09-05
[8]
뉴스
RSA Tells Its Developer Customers: Stop Using NSA-Linked Algorithm
https://www.wired.co[...]
Wired
2013-09-19
[9]
웹사이트
Search – CSRC
http://csrc.nist.gov[...]
[10]
뉴스
Are the NIST Standard Elliptic Curves Back-doored?
http://it.slashdot.o[...]
Slashdot
2013-09-11
[11]
간행물
Commercial National Security Algorithm Suite and Quantum Computing FAQ
https://cryptome.org[...]
U.S. National Security Agency
2016-01
[12]
웹사이트
6.3.4 Are elliptic curve cryptosystems patented?
http://www.emc.com/e[...]
[13]
웹사이트
Irrelevant patents on elliptic-curve cryptography
http://cr.yp.to/ecdh[...]
[14]
웹사이트
https://web.archive.[...]
2018-04-17
[15]
간행물
Elliptic Curve Cryptography "Made in Germany"
https://www.secunet.[...]
2014-06-25
[16]
웹사이트
GEC 2: Test Vectors for SEC 1
http://www.secg.org/[...]
[17]
서적
Algorithmic Number Theory
[18]
서적
A cryptographic application of the Weil descent
[19]
웹사이트
Constructive and destructive facets of Weil descent on elliptic curves
http://www.hpl.hp.co[...]
2006-01-02
[20]
논문
Reducing elliptic curve logarithms to logarithms in a finite field
[21]
논문
On an Improved Definition of Embedding Degree
http://eprint.iacr.o[...]
[22]
웹사이트
P1363
http://grouper.ieee.[...]
IEEE
2007-02-13
[23]
논문
Evaluation of discrete logarithm in a group of ''p''-torsion points of an elliptic curve in characteristic ''p''
[24]
논문
The discrete logarithm problem on elliptic curves of trace one
http://www.hpl.hp.co[...]
[25]
논문
Fermat quotients and the polynomial time discrete log algorithm for anomalous elliptic curves
[26]
간행물
Recommendation for Key Management—Part 1: general
http://csrc.nist.gov[...]
NIST
2005-08
[27]
웹사이트
112-bit prime ECDLP solved – LACAL
http://lacal.epfl.ch[...]
2009-07-11
[28]
웹사이트
Certicom Announces Elliptic Curve Cryptography Challenge Winner
http://www.certicom.[...]
2004-04-27
[29]
웹사이트
Breaking ECC2K-130
http://www.ecc-chall[...]
[30]
논문
Implementing an efficient elliptic curve cryptosystem over GF(p) on a smart card
http://anziamj.austm[...]
[31]
서적
Advances in Cryptology — ASIACRYPT'98
[32]
서적
Topics in Cryptology — CT-RSA 2001
http://cr.yp.to/bib/[...]
[33]
웹사이트
SafeCurves: choosing safe curves for elliptic-curve cryptography
https://safecurves.c[...]
2013-12-01
[34]
논문
A comb method to render ECC resistant against Side Channel Attacks
http://eprint.iacr.o[...]
[35]
웹사이트
Cr.yp.to: 2014.03.23: How to design an elliptic-curve signature system
http://blog.cr.yp.to[...]
[36]
서적
Advances in Cryptology — CRYPTO 2000
http://www.iacr.org/[...]
[37]
웹사이트
Did NSA Put a Secret Backdoor in New Encryption Standard?
https://www.schneier[...]
[38]
웹사이트
Government Announces Steps to Restore Confidence on Encryption Standards
http://bits.blogs.ny[...]
2013-09-10
[39]
웹사이트
On the Possibility of a Back Door in the NIST SP800-90 Dual Ec Prng
http://rump2007.cr.y[...]
[40]
웹사이트
SafeCurves: choosing safe curves for elliptic-curve cryptography
http://safecurves.cr[...]
2016-10-01
[41]
arXiv
Quantum resource estimates for computing elliptic curve discrete logarithms
[42]
간행물
Concrete quantum cryptanalysis of binary elliptic curves
https://eprint.iacr.[...]
[43]
웹사이트
RSA in a "Pre-Post-Quantum" Computing World
https://www.f5.com/l[...]
2021-03-16
[44]
웹사이트
Towards quantum-resistant cryptosystems from supersingular elliptic curve isogenies
https://eprint.iacr.[...]
IACR
2014-05-03
[45]
간행물
Breaking SIDH in polynomial time
https://eprint.iacr.[...]
2022
[46]
웹사이트
Commercial National Security Algorithm Suite
https://apps.nsa.gov[...]
2020-01-08
[47]
웹사이트
AMD-SEV: Platform DH key recovery via invalid curve attack (CVE-2019-9836)
https://seclists.org[...]
2019-06-25
[48]
간행물
Elliptic curve cryptosystems
[49]
간행물
Use of elliptic curves in cryptography
[50]
서적
フェルマーの大定理 [第3版]
日本評論社
1996-05
[51]
서적
プログラミング・ビットコイン ゼロからビットコインをプログラムする方法
オライリー・ジャパン (オーム社)
2020-10
[52]
보고서
SEC 2:Recommended Elliptic Curve Domain Parameters (Version 2.0)
https://www.secg.org[...]
Standards for Efficient Cryptography Group (SECG)
2010-01-27
[53]
보고서
Recommendation for Key Management, Part 1: General
https://nvlpubs.nist[...]
2020-05
[54]
보고서
Recommendation for Key Management, Part 1: General
https://nvlpubs.nist[...]
2020-05
[55]
보고서
On the correct use of the negation map in the Pollard rho method
https://eprint.iacr.[...]
IACR Cryptology ePrint Archive
2016-11-14
[56]
보고서
Recommendation for Key Management, Part 1: General
https://nvlpubs.nist[...]
2020-05
[57]
간행물
A comb method to render ECC resistant against Side Channel Attacks
http://eprint.iacr.o[...]
[58]
웹사이트
Cr.yp.to: 2014.03.23: How to design an elliptic-curve signature system
http://blog.cr.yp.to[...]
2020-01-02
[59]
arXiv
Quantum resource estimates for computing elliptic curve discrete logarithms
[60]
간행물
Towards quantum-resistant cryptosystems from supersingular elliptic curve isogenies
https://www.degruyte[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com