개발자 Q&A

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

2025.03.12 19:33

Sodium Library - Aegis128L 암호화 관련 질문

  • 반응형디자인매니아 4일 전 2025.03.12 19:33
  • 2
    1
Sodium Library의 Aegis128L 암호화 관련해서 질문을 드리겠습니다.

저는 sodium_crypto_aead_aegis128l_encrypt 함수를 사용하여 데이터를 암호화 할 때, nonce 값을 어떻게 설정해야 하는지 모르겠습니다. nonce 값은 어떤 형식으로 지정해야 하는지 알려주시겠어요?

    댓글목록

    profile_image
    나우호스팅  4일 전



    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

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

검색

게시물 검색