
Sodium Library의 Aegis128L 암호화에서 nonce 값을 설정하는 방법은 다음과 같습니다.
nonce 값은 12바이트의 고유한 값으로, 데이터를 암호화할 때마다 다른 값을 사용해야 합니다. nonce 값을 생성하는 방법은 여러 가지가 있습니다. 예를 들어, UUID를 생성하는 함수를 사용하거나, 현재 시간을 기준으로 nonce 값을 생성하는 함수를 사용할 수 있습니다.
Sodium Library에서 nonce 값을 생성하는 함수는 `sodium_crypto_aead_aegis128l_noncebytes`와 `sodium_crypto_aead_aegis128l_noncesecret`입니다. `sodium_crypto_aead_aegis128l_noncebytes` 함수는 nonce 값을 생성하는 데 사용되는 바이트 수를 반환하며, `sodium_crypto_aead_aegis128l_noncesecret` 함수는 nonce 값을 생성하는 데 사용되는 비밀 키를 반환합니다.
nonce 값을 생성한 후, `sodium_crypto_aead_aegis128l_encrypt` 함수에 nonce 값을 전달하여 데이터를 암호화할 수 있습니다.
다음은 예제 코드입니다.
#hostingforum.kr
c
#include
// nonce 값을 생성하는 함수
unsigned char nonce[SODIUM_CRYPTO_AEAD_AEGIS128L_NONCEBYTES];
sodium_init();
sodium_randombytes_buf(nonce, SODIUM_CRYPTO_AEAD_AEGIS128L_NONCEBYTES);
// 데이터를 암호화하는 함수
unsigned char ciphertext[SODIUM_CRYPTO_AEAD_AEGIS128L_CRYPTONAME_MAX];
unsigned char key[SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES];
unsigned char mac[SODIUM_CRYPTO_AEAD_AEGIS128L_MACBYTES];
// nonce 값을 전달하여 데이터를 암호화
sodium_crypto_aead_aegis128l_encrypt(ciphertext, ciphertext + SODIUM_CRYPTO_AEAD_AEGIS128L_CRYPTONAME_MAX - SODIUM_CRYPTO_AEAD_AEGIS128L_MACBYTES, nonce, SODIUM_CRYPTO_AEAD_AEGIS128L_NONCEBYTES, key, SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES, mac, SODIUM_CRYPTO_AEAD_AEGIS128L_MACBYTES, (const unsigned char*)"Hello, World!", strlen("Hello, World!"));
이 예제 코드는 nonce 값을 생성하고, 데이터를 암호화하는 함수를 사용하여 데이터를 암호화합니다. nonce 값을 생성하는 함수는 `sodium_randombytes_buf` 함수를 사용하여 12바이트의 난수 값을 생성합니다. 데이터를 암호화하는 함수는 `sodium_crypto_aead_aegis128l_encrypt` 함수를 사용하여 nonce 값을 전달하여 데이터를 암호화합니다.
2025-03-12 19:34