urve25519는 다양한 시나리오에서 사용할 수 있는 가장 높은 수준의 디피-헬만 함수로, 다니엘 J. 번스타인 교수가 설계했습니다. 암호학에서 Curve25519는 128비트 보안을 제공하는 타원 곡선으로, 타원 곡선 Diffie-Hellman(ECDH) 키 협상 방식과 함께 사용하도록 설계되었습니다. 이 곡선은 가장 빠른 ECC 곡선 중 하나이며, 알려진 특허로 보호받지 않았습니다.
사용자의 32바이트 키가 주어지면, curve25519는 사용자의 32바이트 공개키를 계산합니다. 해당 사용자의 32바이트 키와 다른 사용자의 32바이트 공개키를 고려하면, Curve25519는 두 사용자가 사용할 수 있는 32바이트 공유 키를 계산합니다. 이 비밀은 두 사용자의 정보를 인증하고 암호화하는 데 사용될 수 있습니다.
2. Curve25519 다운로드 및 컴파일
curve25519 라이브러리는 매우 빠른 속도로 curve25519 함수를 계산합니다. 이 도서관은 다양한 용도를 가지고 있습니다. 공유 라이브러리에 링크하지 않고 자신의 프로그램에서 적용할 수 있고 적용해야 합니다; 컴파일된 코드는 CPU에 따라 약 16KB입니다.
다운로드 및 컴파일
다운로드
엮다
3. Curve25519 사용
curve25519를 사용할 모든 C 프로그램이라면, cur25519.h를 포함하도록 프로그램을 수정하고, make파일을 수정하여 프로그램을 curve25519.a와 연결하여 프로그램이 curve25519.a와 curve25519.h에 의존한다고 명시하세요.
컴퓨트 키
내부적으로는 32바이트 곡선25519 키를 생성하려면, 먼저 암호화 보안 소스에서 32바이트의 무작위 바이트 비밀을 생성합니다: mysecret[0], mysecret[1], ..., mysecret[31]. 그 다음 다음과 같이 하세요: mysecret[0] &= 248; mysecret[31] &= 127; mysecret[31] |= 64; 32바이트 Curve25519 키를 생성하세요 mysecret[0], mysecret[1], ..., mysecret[31].
앞으로 라이브러리 버전은 128바이트의 해싱을 32바이트로 압축하는 curve25519_ 압축 함수를 지원하여 불충분한 난수 생성기에 대한 일부 보호를 제공할 예정입니다; 32바이트를 키로 변환하는 curve25519_ 클램프 함수; 그리고 128바이트를 직접 키로 변환하는 curve25519_ 키 생성 함수의 가장 사용하기 쉬운 조합입니다.
공개키 계산
32바이트 공개키를 생성하려면 mypublic[0], mypublic[1], ..., mypublic[31]과 일치하는 값을 가지려면 다음 함수를 호출하세요. curve25519(mypublic, mysecret, basepoint); 여기서 상수 기준점은 다음과 같습니다:
const 부호 없는 챠어 기준점[32] = {9}; 향후 도서관의 버전에서는 보다 간결하고 공공 기능을 지원curve25519_ 예정입니다.
공유 키 생성
다른 사용자의 Curve25519 공개키 hispublic[0], hispublic[1], ..., hispublic[31], 호출이 주어졌을 때
curve25519(공유, 내 비밀, 그의 공개); 32바이트 공유 키를 생성합니다 shared[0], shared[1], ..., shared[31]. 다른 사람이 자신의 개인 키와 당신의 공개키를 바탕으로 동일한 공유 키를 생성할 수 있습니다. 그 후 두 사람이 이 공유 키를 해시하고 결과를 키로 사용할 수 있습니다. 예를 들어 Poly1305-AES의 경우입니다. 향후 라이브러리 버전에서는 32바이트 키를 직접 해시해 128바이트의 키를 생성하는 curve25519_ 확장 함수를 지원할 예정이며, 이 기능은 공유 함수curve25519_ 조합되어 가장 사용하기 쉽습니다.
4. 참고문헌
[Ed25519와 Curve25519 설명]하이퍼링크 로그인이 보입니다. [Curve25519 암호화 및 복호화 및 서명 ED25519 사용]하이퍼링크 로그인이 보입니다. [ED25519]하이퍼링크 로그인이 보입니다. [안드로이드 ED25519 구현]하이퍼링크 로그인이 보입니다. [[ED25519 C 구현]하이퍼링크 로그인이 보입니다. [ed25519 자바 구현]하이퍼링크 로그인이 보입니다.
원문 언어:하이퍼링크 로그인이 보입니다. |