
편집자 주: 이 기사는 Lanhubiji(ID: lanhubiji), 저자: Lane Wager, 매체에서 "Blue Fox Notes" 공개 계정 커뮤니티의 "Wang Zelong"이 번역하고 승인을 받아 Odaily에서 재인쇄했습니다.
서문: 이 기사는 타원 곡선 암호화에 대한 매우 기본적인 소개입니다. 내용은 기초적이지만 타원곡선암호 초심자도 이해하기 쉽고 초심자에게 적합하다.
이미지 설명
보조 제목
무엇을합니까?
타원곡선암호는 특정인만 복호화할 수 있도록 데이터를 암호화하는 방식이다. 실생활에서 많은 응용 시나리오가 있지만 주요 응용 프로그램은 인터넷에서 데이터와 트래픽을 암호화하는 것입니다. 예를 들어 타원 암호화 곡선을 사용하여 이메일을 보낼 때 수신자 외에는 아무도 읽을 수 없도록 할 수 있습니다.
타원 곡선 암호는 공개 키 암호입니다.
공개 키 암호화에는 다양한 스타일이 있으며 타원 곡선 암호화는 그 중 하나일 뿐입니다. 다른 암호화 알고리즘에는 RSA, DiffieHelman 등이 있습니다. 먼저 공개키 암호화의 일반적인 배경에 대해 간단히 설명하고, 타원 곡선 암호화에 대한 이해를 돕기 위해 후속 설명을 확장하겠습니다. 시간이 있으면 공개 키 암호화를 탐구하는 데 시간을 할애할 수 있습니다.
이미지 설명

http://itlaw.wikia.com/wiki/Key_pair
위의 다이어그램은 공개 키와 개인 키의 두 가지 키를 보여줍니다. 이러한 키는 데이터를 암호화 및 해독하는 데 사용되므로 전 세계 누구나 암호화된 데이터가 전송되는 동안 볼 수 있지만 정보를 읽을 수는 없습니다.
Facebook이 Trump의 비공개 게시물을 수신한다고 가정해 보겠습니다. 페이스북은 트럼프가 온라인에 글을 올릴 때 NSA나 인터넷 서비스 제공업체를 포함한 그 누구도 그곳에서 메시지를 읽을 수 없도록 보장할 수 있어야 합니다. 공개 키 암호화를 사용한 후 전체 데이터 전송 프로세스는 다음 상태를 나타냅니다.
l 트럼프는 페이스북에 비공개 포스트를 보낸다고 말했다
l 페이스북은 공개키를 트럼프에게 보낸다
l Trump는 자신의 게시물을 암호화하기 위해 공개 키를 사용합니다.
"I love Fox and friends" + 공개 키 = "s80s1s9sadjds9s"
l 트럼프는 암호화된 메시지를 Facebook에만 보냅니다.
l Facebook은 개인 키를 사용하여 메시지를 해독합니다.
"s80s1s9sadjds9s" + 공개 키 = "나는 폭스와 친구들을 사랑합니다"
보시다시피 이것은 매우 유용한 기술입니다. 주요 내용은 다음과 같습니다.
l 공개 키는 누구에게나 보낼 수 있습니다.
l 개인 키는 누군가가 개인 키를 얻으면 정보를 해독할 수 있으므로 안전하게 보관해야 합니다.
l 컴퓨터는 공개 키로 메시지를 빠르게 암호화하고 개인 키로 메시지를 해독할 수 있습니다.
l 개인 키가 없으면 컴퓨터가 암호화된 메시지를 해독하는 데 매우 오랜 시간(수백만 년)이 걸릴 수 있습니다.
작동 방식: 트랩도어 기능
모든 공개 키 암호화 알고리즘의 핵심은 각각 고유한 트랩도어 기능이 있다는 것입니다. 트랩도어 기능은 한 방향으로만 계산할 수 있거나 최소한 쉽게 한 방향으로 계산할 수 있습니다(최신 컴퓨터로는 수백만 년 미만).
트랩도어 기능이 아님: A+B=C
A와 B가 주어지면 C를 알아낼 수 있습니다. 문제는 B와 C가 주어지면 A도 알아낼 수 있다는 것입니다. 트랩도어 기능이 아닙니다.
트랩도어 기능:
"I love Fox and friends" + 공개 키 = "s80s1s9sadjds9s"
"I love Fox and friends" + 공개 키가 주어지면 "s80s1s9sadjds9s"를 얻을 수 있지만 "s80s1s9sadjds9s"와 공개 키가 주어지면 "I Love Fox & Friends"라는 메시지를 받을 수 없습니다. ".
RSA(아마도 가장 널리 사용되는 공개 키 시스템)에서 트랩도어 기능은 주로 큰 수를 소수로 분해하는 어려움에 따라 달라집니다.
공개 키: 944,871,836,856,449,473
개인 키: 961,748,941 및 982,451,653
위의 예에서 공개 키는 매우 큰 수이고 개인 키는 공개 키의 두 가지 주요 요소입니다. 이것은 트랩도어 기능의 좋은 예입니다. 개인 키에서는 숫자를 곱하여 공개 키를 얻기가 쉽지만 공개 키만 있으면 컴퓨터가 개인 키를 재구성하는 데 오랜 시간이 걸리기 때문입니다.
보조 제목
타원 곡선 암호화가 다른 이유
사람들은 RSA와 정확히 같은 이유로 타원 곡선 암호화를 사용합니다. 공개-개인 키 쌍을 생성하고 두 당사자가 안전하게 통신할 수 있도록 합니다. 그러나 타원 곡선 암호화는 RSA보다 한 가지 장점이 있습니다. 타원 곡선 암호화의 256비트 키는 RSA 알고리즘의 3072비트 키와 동일한 보안을 제공합니다. 이는 스마트폰, 임베디드 컴퓨터, 암호화된 네트워크와 같이 리소스가 제한된 시스템에서 타원 곡선 암호화는 RSA 암호화 알고리즘에 비해 RSA 알고리즘의 하드 디스크 공간과 대역폭의 10% 미만을 사용한다는 것을 의미합니다. (Blue Fox 참고: 즉, 제한된 자원의 경우 RSA 알고리즘보다 타원 곡선 암호화가 더 자원 효율적이고 실현 가능합니다.)
타원 곡선 암호화를 위한 트랩도어 기능
이미지 설명
https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/2/
l 지점 A에서 시작;
l A 점 B=-C (A에서 B 점까지 선을 그리고 마지막으로 -C 점에 도달)
l -C에서 C까지 X축을 가로질러 반사합니다.
l 점 A C=-D (점 A에서 점 C까지 선을 그리고 마지막으로 -D에 도달)
l -D에서 D까지 X축을 가로질러 반사합니다.
l 점 D=-E (A에서 D까지 선을 그리고 마지막으로 -E에 도달)
l -E에서 E까지의 X축 반사
시작점(A)이 어디에 있고 끝점 E에 도달하는 데 걸리는 홉 수를 알면 끝점을 찾기 쉽기 때문에 이것은 훌륭한 트랩도어 기능입니다. 반면에 시작점과 끝점이 어디인지 아는 것이 전부라면 거기에 도달하는 데 얼마나 많은 홉이 필요한지 알아내는 것은 거의 불가능합니다.
공개 키: 시작점 A, 끝점 E;
개인 키: A에서 E까지의 홉 수
문제가 있습니까?
다음은 타원 곡선 암호에 대해 처음 배웠을 때 발생한 관련 질문입니다. 제대로 해결할 수 있기를 바랍니다.
두 번째 요점을 발견하는 방법? 점 함수가 두 점 사이에 선을 그린다면 시작하는 데 도움이 되는 두 번째 점이 필요하지 않을까요?
답변: 필요 없습니다. 두 번째 점(아래 그림에서 -R 점이라고 하자)은 실제로 점 P의 함수 P이다(첫 번째 점이 P라고 하자)
P 포인트 함수 P=-R
이미지 설명
https://devcentral.f5.com/articles/real-cryptography-has-curves-making-the-case-for-ecc-20832
점 함수가 특정 극단으로 가는 선을 생성하면 어떻게 됩니까?
이미지 설명
https://arstechnica.com/information-technology/2013/10/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/2/
트랩도어 기능은 이해하지만 실제로 공개 키와 개인 키는 어떻게 생성됩니까? 암호화할 데이터와 함께 어떻게 사용됩니까?
이것은 좋은 질문이지만 더 깊은 대답이 필요합니다. 이 기사에서는 RSA 및 타원 곡선 암호화에 대한 보다 일반적인 설명을 제공합니다. 그러나 더 많은 기술 리소스가 있으므로 조사해 보시기 바랍니다.