2014-03-14 1 views
2

암호 필드가 잘못되어 어딘가에서 잘못 될 경우 수정하십시오.keytool을 사용하여 Java 7 ECC 키 쌍 생성

나는 자바 7 EC 키 쌍을 생성하기 위해 다음 명령을 사용하고 있습니다 :

로 당 : docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html#Commands

이 키 도구 -genkeypair -alias MyServerPair -keyalg EC는 571 -sigalg SHA512withECDSA -keypass 123456 -keysize - 유효성 365 -storetype JKS -keystore MyServerStore -storepass 실행 후 123456

,

키스트 직접 생성 도착 오라이. 그 후 나는 다음 명령을 사용하여 인증서를 내보내려고 :

키 도구 -exportcert -alias MyServerPair - 파일 MyServer.crt -storetype JKS -keystore MyServerStore -storepass 123456

하는 MyServer.crt 후 생성됩니다.

하지만 MyServer.crt 파일을 열고 내가 찾을 인증서 상태를 확인할 때, 나는 그것이 ECC를 보여 공개 키 값을 참조 인증서 세부

또한, "이 인증서가 유효하지 않은 디지털 서명이"(0 비트) .

왜 그렇습니까? 내가 어디로 잘못 가고 있니? 내 추측으로는 잘못된 서명 알고리즘을 사용하고 있습니다.

내가 말하는거야, docs.oracle.com/javase/7/docs/technotes/gui4des/security/SunProviders.html#SunEC

일부 스크린 샷은 here

편집 :

그것의 내가 -keysize로 (571)와 같은 이진 필드 값을 사용할 때 발생하지만 주요 필드 값을 사용하는 경우 해당 521과 같은 이진 필드 값은 위에서 언급 한 문제없이 잘 작동합니다.

편집 2 : 심지어 다른 -sigalg 값과 키 크기 (571) 및 기타 이진 값에 문제가있는

가 존재한다.

프라임 필드 값만 사용해야합니다.

답변

2

ECC에서는 임의의 키 크기를 사용할 수 없지만 암호화 작업을 수행하는 타원 곡선을 선택합니다. 521을 NIST P-521 곡선에 매핑하면 키 크기 571에 대한 매핑이 없으므로 작동하지 않습니다. 여기서 키즈 이름은 ecc의 커브 이름이어야합니다.