2012-10-13 4 views
4

RSA 암호 해독 구현에 NTL 라이브러리를 사용하고 있습니다. 그러나 나는 타입 불일치/비 호환성에 관해서 자주 문제를 겪고있다.NTL 라이브러리의 다항식, RR 및 ZZ의 지수화

EG-

  1. 는 I는 N의 RR 입력 값이 필요^((H - 1.0)/(시간 * K-1.0)) n은 ZZ를 입력하고, 시간 k는 INT이다. 전체 지수는 float 또는 double입니다. 나는 ^, pow (RR베이스에서만 작동), power (긴 지수에만 작동)를 시도했습니다. 나는 결국 n, h, k의 모든 타입의 RR을 pow를 사용하도록 만들었지 만 실제로 그렇게하는 방법입니까?

  2. 수행 방법 (p (x))^k 여기서 p (x)는 다항식입니까? 루프에서 k 곱하기 함수를 사용해야했습니다. 또한 다항식을 초기화하는 방법? stdin에서 파이썬리스트와 같은 것을 취할 수있는 것 같지만, 프로그램 내에서 그렇게 설정할 수는 없습니다. 그래서,

    p = ZZX([1 2 3]) 
    

    ZZX p; 
    p = [1 2 3] 
    

    또는

    이 작동하지 않습니다. 각 계수를 개별적으로 설정하려면 SetCoeff을 사용해야했습니다.

이것은 지금 당장 기억하는 2 가지 예입니다. 나는 너무 많은 불편을 겪었습니다.
Iirc, 우리는 심지어 ZZ와 RR을 곱할 수 없습니다.

답변

1

나는 이것도 잠시 동안 조사했다.

  1. 아니요. 이를 수행 할 방법이 없습니다. RR^long 만 부동 소수점과 정수의 혼합입니다. 가장 쉬운 방법은 모든 값을 RR으로 변환하는 것입니다.
  2. 여기에 다항식의 힘을 계산하는 방법도 없습니다. 그러나 더 빠른 방법은 그것을 번식하는 것보다 k 시간에 번식하는 것보다 낫습니다. fast exponentiation을 살펴보십시오.
    다항식을 설정하려면 다항식을 다르게 설정하는 방법 만 있습니다. 그러나 벡터로부터 다항식의 모든 계수를 설정하는 함수를 작성할 수 있습니다.

NTL이 좋은 고성능 수학 라이브러리,하지만 당신이 번식 할 때 난 당신이 언급 한 바와 같이 (데이터 유형에 문제가 알이 libary 하드 ... 모든 작업을 만든다 많은 것들을이있다 RRZZ).