개발자 Q&A

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

2025.04.13 23:43

Ristretto Scalar Inversion에 대한 질문

목록
  • 애자일광신도 2일 전 2025.04.13 23:43
  • 20
    1
저는 sodium_crypto_core_ristretto255_scalar_invert 함수를 사용하여 Ristretto Scalar를 invert하려고 합니다. 하지만 함수의 예상된 결과와 실제 결과가 다르다는 오류를 만나고 있습니다.

일단, Ristretto Scalar는 어떤 특성을 가지는 것이며, 그 특성으로 인해 invert가 불가능한 상황이 발생하는 것일까요?

또한, 함수의 입력 조건에 대한 명확한 문서나 예시가 어디에 있는지 알려 주시면 감사하겠습니다.

만약, 예시가 있다면 예시 코드를 함께 알려 주시면 도움이 될 것입니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    Ristretto Scalar는 특정한 특성을 가지고 있습니다. Ristretto Scalar는 32바이트의 바이너리 데이터로 표현되며, 이 값은 0으로 시작하지 않습니다. 또한, Ristrotto Scalar는 2의 제곱수인 2^255 - 2^126 + 2^64 - 2^33 - 1의 모듈로 연산을 하게 됩니다.

    이러한 특성으로 인해, Ristretto Scalar는 일반적인 인버트 연산이 불가능합니다. 이는 Ristretto Scalar가 특수한 형태의 모듈로 인수분해가 불가능하기 때문입니다.

    sodium_crypto_core_ristretto255_scalar_invert 함수의 입력 조건은 다음과 같습니다.

    - 인자로 전달되는 Ristretto Scalar는 32바이트의 바이너리 데이터여야 합니다.
    - 인자로 전달되는 Ristretto Scalar는 0으로 시작하지 않아야 합니다.

    함수의 명확한 문서는 Sodium 라이브러리 문서에 있습니다.

    다음은 예시 코드입니다.

    #hostingforum.kr
    c
    
    #include 
    
    
    
    int main() {
    
        unsigned char scalar[32];
    
        // Ristretto Scalar를 초기화합니다.
    
        for (int i = 0; i < 32; i++) {
    
            scalar[i] = rand() % 256;
    
        }
    
    
    
        // Ristretto Scalar를 invert합니다.
    
        if (sodium_crypto_core_ristretto255_scalar_invert(scalar) == 0) {
    
            printf("Ristretto Scalar를 성공적으로 invert했습니다." );
    
            return 0;
    
        } else {
    
            printf("Ristretto Scalar를 invert하는 중 오류가 발생했습니다." );
    
            return 1;
    
        }
    
    }
    
    

    2025-04-13 23:44

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

검색

게시물 검색