1

이 bouncycastle에서 구현 NTRU의 기본 보안 수준의 세 가지 유형입니다 :bouncycastle는 NTRU 생성을 실패

1. NTRUSigningKeyGenerationParameters.TEST157 
2. NTRUSigningKeyGenerationParameters.APR2011_439 
3. NTRUSigningKeyGenerationParameters.APR2011_743 

처음 두가 정상적으로 생성,하지만 나는 tird 하나를 생성 할 때, 나는 얻을 다음 예외 :

심각 :의 Servlet.service()] 경로 컨텍스트 서블릿 [MVC - 디스패처]에서는 [요청 처리가 실패 예외를 Throw; 상자의 예외는 java.lang.IllegalStateException입니다 : 서명 실패 : 근본 원인 java.lang.IllegalStateException 너무 많은 시도 (최대 = 100)] : 서명 실패 : 너무 많은 시도 (최대 = 100) 다음은

내 코드의 조각 :

NTRUSigningPrivateKeyParameters ntruSigningPrivateKeyParameters1 = null; 

    NTRUSigner ntruSigner = new NTRUSigner(ntruSigningKeyGenerationParameters.getSigningParameters()); 

    try { 
     ntruSigningPrivateKeyParameters1 = new NTRUSigningPrivateKeyParameters(ntruSigningPrivateKeyParameters.getEncoded(), ntruSigningKeyGenerationParameters); 
    } catch (IOException e) { 

     e.printStackTrace(); 
    } 

    ntruSigner.init(true, ntruSigningPrivateKeyParameters); 
    byte [] res = ntruSigner.generateSignature(); 

매개 변수의 세 번째 세트 ntruSigner.generateSignature() 호출은 같은 예외로 이어집니다.

누구든지 해결 방법을 알고 있습니까?

+0

당신은 최첨단을 위해 들어갈 때 어떤 일이 일어나는 지 알고 있습니다. 너는 떨어질 수있다. 나는이 질문을 탄력있는 성 dev 메일 링리스트에 보내는 것이 좋습니다. David 또는 다른 유지 관리자 중 한 명이 손을 뻗어서 당신을 최전선에있게 할 수 있습니다 : P 또는 소스 코드를보고 특정 사례에 맞게 변경할 수 있는지 확인하십시오. –

+0

@owlstead 당신을 다시 =) thnx 팁, 나는 이미 그들에게 편지를 보냈습니다 – user3038475

+0

만약 그들이 당신을 도울 수있는 답변을 여기에 답변을 게시하시기 바랍니다, 그리고 나는 투표거야. –

답변

0

현재는 버그, 그래서 두 가지 해결책이 있습니다 :

  1. 사용하는 다른 라이브러리 -
  2. 다운로드 소스를 tbuktu's github project (내가 볼로 탄력-성, 약간의 수정을 사용)에 잡아가 이 세대 매개 변수의 버그를 해결하고 프로젝트의 라이브러리에 패키지화하십시오.
0

실제로 코드의 버그는 아닙니다. 문제는 APR2011_743APR2011_743_PROD 매개 변수 집합에 바인딩 된 표준이 너무 낮아서 서명자가 유효한 서명을 생성 할 수 없음을 의미합니다.

N=743, q=2048beta=0.127를 들어 당신이 주변에 545의 경계 규범을 선택해야합니다 (J. Hoffstein 등의 식 (10), 성능 개선 및 NTRUSign에 대한 기본 매개 변수 생성 알고리즘 참조)하지만 BouncyCastle의 매개 변수 세트는 normBound=405를 사용합니다. 이것을 변경하면 문제가 해결됩니다.