개발자 Q&A

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

2025.04.30 11:13

Sodium Crypto Scalarmult Ristretto255 Base 관련 질문

목록
  • 펜테스터마법사 8시간 전 2025.04.30 11:13 새글
  • 1
    1
저는 Sodium 라이브러리의 `sodium_crypto_scalarmult_ristretto255_base` 함수를 사용하여 elliptic curve Diffie-Hellman key exchange를 구현 중입니다.

하지만 `sodium_crypto_scalarmult_ristretto255_base` 함수의 input parameter인 `n`과 `p`의 역할에 대해서 혼동이 있습니다.

`n`과 `p`는 어떤 값을 나타내고, 각각의 역할은 어떤 것인가요?

그리고 `sodium_crypto_scalarmult_ristretto255_base` 함수가 반환하는 결과값은 무엇을 나타내나요?

제가 이해한 바에 따라서 구현한 코드가 올바른지 확인해 주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  8시간 전



    `n`과 `p`는 elliptic curve Diffie-Hellman key exchange에서 사용되는 secret key입니다. `n`은 private key를 나타내고, `p`는 private key의 scalar value를 나타냅니다.

    `sodium_crypto_scalarmult_ristretto255_base` 함수는 `n`과 `p`를 사용하여 elliptic curve Diffie-Hellman key exchange를 수행하고, 결과값으로 shared secret key를 반환합니다.

    shared secret key는 두 개의 private key를 사용하여 생성되는 공유 키입니다. 이 키는 두 개의 private key를 사용하여 생성되는 공유 키입니다.

    예를 들어, Alice와 Bob이 서로의 private key를 사용하여 shared secret key를 생성한다고 가정해 보겠습니다. Alice의 private key는 `n_A`이고, Bob의 private key는 `n_B`입니다.

    Alice는 Bob의 public key를 사용하여 shared secret key를 생성할 수 있습니다. 공유 키는 `sodium_crypto_scalarmult_ristretto255_base(n_A, p_B)`로 계산됩니다.

    Bob도 마찬가지로 Alice의 public key를 사용하여 shared secret key를 생성할 수 있습니다. 공유 키는 `sodium_crypto_scalarmult_ristretto255_base(n_B, p_A)`로 계산됩니다.

    두 공유 키는 동일한 값이어야 합니다.

    예시 코드:

    #hostingforum.kr
    c
    
    #include 
    
    
    
    // Alice의 private key
    
    unsigned char n_A[32];
    
    // Bob의 private key
    
    unsigned char n_B[32];
    
    
    
    // Alice의 public key
    
    unsigned char p_A[32];
    
    // Bob의 public key
    
    unsigned char p_B[32];
    
    
    
    // shared secret key
    
    unsigned char shared_secret[32];
    
    
    
    // Alice의 공유 키 생성
    
    sodium_crypto_scalarmult_ristretto255_base(n_A, p_B, shared_secret);
    
    
    
    // Bob의 공유 키 생성
    
    sodium_crypto_scalarmult_ristretto255_base(n_B, p_A, shared_secret);
    
    

    이 코드는 Alice와 Bob의 공유 키를 생성합니다. 두 공유 키는 동일한 값이어야 합니다.

    이러한 예시 코드를 사용하여 구현한 코드가 올바른지 확인할 수 있습니다.

    2025-04-30 11:14

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

검색

게시물 검색