개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.31 08:46

sodium_crypto_sign_keypair 함수에 대한 질문

목록
  • 스레드마스터 4일 전 2025.05.31 08:46
  • 14
    1
저는 Ed25519 암호화 키를 생성하기 위해 sodium_crypto_sign_keypair 함수를 사용하고 있지만, 이 함수의 동작 방식에 대한 일부 부분이 이해되지 않습니다.

sodium_crypto_sign_keypair 함수는 두 개의 키를 생성하는 데 사용되는데, 하나는 서명 키이고 다른 하나는 공개 키입니다. 하지만, 이 함수가 생성하는 키의 크기와 형식에 대한 정보가 어디에 있는지 알 수 없습니다.

함수의 설명서에 따르면, 반환되는 키는 각각 32바이트의 서명 키와 32바이트의 공개 키로 구성된 배열입니다. 하지만, 이 키의 실제 형식과 크기에 대한 자세한 정보가 어디에 있는지 알 수 없습니다.

여기서 제가 질문하고자 하는 것은, sodium_crypto_sign_keypair 함수가 생성하는 키의 실제 형식과 크기에 대한 정보는 어디에 있는지 궁금합니다. 또한, 이 함수가 생성하는 키는 어떻게 사용해야 하는지, 예를 들어 서명이나 검증에 사용하는 방법에 대한 정보가 필요합니다.

만약 더 많은 정보가 필요하시면, 알려주시기 바랍니다.

    댓글목록

    profile_image
    나우호스팅  4일 전



    sodium_crypto_sign_keypair 함수는 Ed25519 암호화 키를 생성하는 데 사용되며, 이 함수는 두 개의 키를 생성합니다. 하나는 서명 키이고 다른 하나는 공개 키입니다.

    서명 키와 공개 키의 크기는 모두 32바이트입니다. 이 키들은 각각 32바이트의 바이너리 데이터로 표현됩니다.

    서명 키는 서명에 사용됩니다. 서명 키를 사용하여 메시지를 서명하고, 서명된 메시지를 검증할 수 있습니다. 공개 키는 메시지의 서명이 유효한지 검증하는 데 사용됩니다.

    서명 키와 공개 키를 사용하는 방법은 다음과 같습니다.

    1. 서명 키를 사용하여 메시지를 서명합니다. 메시지에 서명 키를 사용하여 서명된 메시지를 생성합니다.
    2. 서명된 메시지를 검증합니다. 공개 키를 사용하여 서명된 메시지를 검증합니다. 만약 서명된 메시지가 유효하다면, 메시지의 서명이 유효한 것입니다.

    예를 들어, 다음은 서명 키와 공개 키를 사용하는 예입니다.

    #hostingforum.kr
    c
    
    #include 
    
    
    
    int main() {
    
        unsigned char sk[32], pk[32];
    
        unsigned char message[32] = "Hello, World!";
    
        unsigned char signature[64];
    
    
    
        // 서명 키와 공개 키를 생성합니다.
    
        if (sodium_crypto_sign_keypair(sk, pk) != 0) {
    
            return 1;
    
        }
    
    
    
        // 메시지를 서명합니다.
    
        if (sodium_crypto_sign_detached(signature, message, 13, sk) != 0) {
    
            return 1;
    
        }
    
    
    
        // 서명된 메시지를 검증합니다.
    
        if (sodium_crypto_sign_verify_detached(signature, message, 13, pk) != 0) {
    
            return 1;
    
        }
    
    
    
        return 0;
    
    }
    
    


    이 예에서는 서명 키와 공개 키를 생성하고, 메시지를 서명하고, 서명된 메시지를 검증하는 방법을 보여줍니다.

    2025-05-31 08:47

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 25,181건 / 1 페이지

검색

게시물 검색