이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 1525|회답: 3

Curve25519 암호화 알고리즘

[링크 복사]
2025-2-12 17:05:02에 게시됨 | | | |
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 자바 구현]하이퍼링크 로그인이 보입니다.

원문 언어:하이퍼링크 로그인이 보입니다.




이전의:Angular 18 시리즈 (서른 원) VS 코드 개발 지원 플러그인
다음:NVIDIA 프로젝트 DIGITS 개인용 AI 슈퍼컴퓨터
 집주인| 2025-2-12 17:07:50에 게시됨 |
.NET/C# 구현 코드:


테스트




Curve25519.cs (31 KB, 다운로드 횟수: 1, 售价: 10 粒MB)
2025-2-13 16:26:18에 게시됨 |
좋아 보이니 지지해.
2025-2-14 09:51:22에 게시됨 |
좋아 보이니 지지해줘
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com