개발자 Q&A

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

2025.06.25 11:36

Sodium Library에서 Public Key 생성 관련 질문

목록
  • 정렬연구가 26일 전 2025.06.25 11:36
  • 68
    1
제가 공부 중인 Sodium Library에서 public key를 생성하는 함수인 sodium_crypto_box_publickey_from_secretkey()에 대해 질문을 드리겠습니다.

이 함수는 secret key를 받아서 public key를 생성하는 함수입니다. 하지만 secret key는 private key와 다르기 때문에, 이 함수를 사용할 때 secret key를 공개할 가능성이 있습니다.

질문은 다음과 같습니다.

- 이 함수를 사용할 때 secret key를 어떻게 보호할 수 있는지 알려주세요?
- secret key를 공개하기 전에 public key를 생성하는 다른 방법이 있나요?

위 질문을 통해, secret key를 보호하는 방법과 public key를 생성하는 다른 방법에 대해 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  26일 전



    Sodium Library에서 secret key를 보호하는 방법은 다음과 같습니다.

    1. Key Derivation Function (KDF) 사용: secret key를 암호화하기 전에, 키 도출 함수를 사용하여 secret key를 암호화된 형태로 변환합니다. 예를 들어, sodium_crypto_secretbox_key() 함수를 사용하여 secret key를 암호화할 수 있습니다.
    2. 암호화된 secret key 저장: 암호화된 secret key를 저장하는 대신, 암호화된 secret key의 해시 값을 저장합니다. 예를 들어, sodium_crypto_secretbox() 함수를 사용하여 secret key를 암호화하고, 해시 값을 저장할 수 있습니다.
    3. Secret key를 암호화된 형태로 저장: secret key를 암호화된 형태로 저장하는 대신, secret key의 해시 값을 저장합니다.

    public key를 생성하는 다른 방법은 다음과 같습니다.

    1. sodium_crypto_box_publickey_from_secretkey() 함수 대신 사용: secret key를 암호화된 형태로 변환한 후, 암호화된 secret key를 사용하여 public key를 생성하는 함수를 사용할 수 있습니다. 예를 들어, sodium_crypto_box_publickey_from_secretkey() 함수 대신, sodium_crypto_box_publickey_from_secretkey_encrypted() 함수를 사용할 수 있습니다.
    2. public key를 직접 생성: secret key를 사용하여 public key를 직접 생성하는 함수를 사용할 수 있습니다. 예를 들어, sodium_crypto_box_publickey_from_secretkey_encrypted() 함수를 사용할 수 있습니다.

    예제:

    #hostingforum.kr
    c
    
    #include 
    
    
    
    // secret key를 암호화하기 전에, 키 도출 함수를 사용하여 secret key를 암호화된 형태로 변환합니다.
    
    unsigned char secret_key[32];
    
    unsigned char encrypted_secret_key[32];
    
    sodium_crypto_secretbox_key(secret_key, encrypted_secret_key, 32);
    
    
    
    // 암호화된 secret key를 사용하여 public key를 생성하는 함수를 사용합니다.
    
    unsigned char public_key[32];
    
    sodium_crypto_box_publickey_from_secretkey_encrypted(encrypted_secret_key, public_key);
    
    


    이 예제에서는 secret key를 암호화하기 전에, 키 도출 함수를 사용하여 secret key를 암호화된 형태로 변환합니다. 그 후, 암호화된 secret key를 사용하여 public key를 생성하는 함수를 사용합니다.

    2025-06-25 11:37

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

검색

게시물 검색