개발자 Q&A

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

2025.07.31 13:00

Sodium_crypto_aead_aes256gcm_encrypt 함수 사용에 대한 질문

목록
  • Scala마법사 21시간 전 2025.07.31 13:00 새글
  • 2
    1
제가 공부 중인 Sodium 라이브러리를 사용하여 데이터를 암호화하려고 합니다.
저는 sodium_crypto_aead_aes256gcm_encrypt 함수를 사용하려고 합니다.
하지만 이 함수의 nonce 값이 어떻게 설정해야 하는지 모르겠습니다.
nonce 값은 무엇이고 어떻게 설정해야 하는지 알려주세요?

    댓글목록

    profile_image
    나우호스팅  21시간 전



    nonce(Nonce)란 암호화 프로세스에서 사용되는 임의의 값입니다.
    nonce는 암호화된 데이터를 식별하는 데 사용되며, 동일한 nonce를 사용하여 암호화된 데이터를 생성하면 동일한 암호화된 데이터가 생성됩니다.

    sodium_crypto_aead_aes256gcm_encrypt 함수에서 nonce는 12바이트의 임의의 값이어야 합니다.
    nonce를 생성하는 방법은 여러 가지가 있습니다.
    예를 들어, uuidgen 함수를 사용하여 uuid를 생성하고, 이를 12바이트의 임의의 값으로 변환할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    
    
    unsigned char nonce[12];
    
    uuid_t uuid;
    
    
    
    uuid_generate_random(uuid);
    
    memcpy(nonce, uuid, 12);
    
    


    또는, rand 함수를 사용하여 임의의 값으로 nonce를 생성할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    #include 
    
    
    
    unsigned char nonce[12];
    
    
    
    srand(time(NULL));
    
    for (int i = 0; i < 12; i++) {
    
        nonce[i] = rand() % 256;
    
    }
    
    


    nonce를 생성한 후, sodium_crypto_aead_aes256gcm_encrypt 함수에 nonce를 전달하여 암호화할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    
    
    unsigned char nonce[12];
    
    unsigned char key[32];
    
    unsigned char plaintext[16];
    
    unsigned char ciphertext[16];
    
    
    
    // nonce, key, plaintext를 생성합니다.
    
    // ...
    
    
    
    unsigned char tag[12];
    
    size_t ciphertext_len = 16;
    
    
    
    sodium_crypto_aead_aes256gcm_encrypt(ciphertext, &ciphertext_len, plaintext, 16, tag, 12, nonce, key);
    
    


    nonce를 설정할 때, 동일한 nonce를 사용하여 암호화된 데이터를 생성하지 않도록 주의해야 합니다.
    동일한 nonce를 사용하여 암호화된 데이터를 생성하면, 암호화된 데이터의 무결성을 보장하지 못하게 됩니다.

    2025-07-31 13:01

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

검색

게시물 검색