
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