2012-06-20 3 views
3

우리는 암호 해부의 몇 가지 아마추어입니다. 타원 곡선 암호과 관련된 다양한 알고리즘을 Java로 구현해야합니다. 지금까지 우리는 타원 곡선 암호화에 관한 위키 백과 페이지의 ECDH, ECIES, ECDSA, ECMQV과 같은 몇 가지 핵심 알고리즘을 식별 할 수있었습니다.Elliptic Curve Java의 암호화 알고리즘

이제 이러한 알고리즘을 구현하는 방법과 위치를 이해하려고 노력하고 있습니다. 또한 Java는 이미 아키텍처에 이러한 알고리즘을 제공합니까? 또는 우리는 BouncyCastle과 같은 API를 사용해야합니다 (이 사이트 전체에서 볼 수 있습니다). 아니면 표준 코드를 사용하여 직접 알고리즘을 구현할 수 있습니까? 도움이 될 것입니다.

답변

3

예, 당신은 항상 확실히 타원 곡선 암호 등 대부분의 필요한 알고리즘을 구현하기 위해 탄력 성 라이브러리를 사용 할 수 있습니다. 자신을 구현할 필요가 없습니다. 문제를 발견하면 Bouncy를 수정 해보십시오. 실제 구현을 제공하기 위해 (같은 Bouncy Castle)

오라클 also implements Elliptic Curve cryptography에서 오픈 JDK 7 및 Java 7 SE, 이전 버전에만 a comprehensive API for Elliptic Curve cryptography을 포함,하지만 당신은 JCE 공급자를 요구했다.

+0

+1에 직접 알고리즘을 구현하지 마십시오. 신뢰할 수있는 알고리즘을 사용해도 구현이 손상 될 수있는 백만 가지 방법입니다! 기존의 구현에 의존하는 편이 낫습니다! – dragn

0

오픈 소스 프로젝트 인 TextSecure는 AndroidPNP와 동일한 생각으로 GSM 전화 네트워크에서 암호화 된 문자 메시지를 보낼 수있는 안드로이드 용 SMS/텍스트 앱이지만 ECDH와 ECDSA를 사용할 수 있습니다. 이 모든 것은 BouncyCastle을 사용하여 해당 앱에 구현되었습니다.

https://github.com/WhisperSystems/TextSecure/tree/master/src/org/bouncycastle

+0

감사합니다 간단한 ellipic 곡선 암호 기술 할 것이다! 그러나 우리는 처음부터 이러한 것들을 구축해야한다면 구현을 시작할 위치에 관해서는 여전히 혼란 스럽습니다. 더 이상의 도움을 많이 주시면 감사하겠습니다! –

+0

ECDH와 ECDSA는 TextSecure에서 사용되기 때문에 구현된다는 것을 알고 있습니다. 나머지는 BouncyCastle을 확인하십시오. 나는 그들이 벌써 많은 일을 벌써 끝내 었다고 생각한다! – Dolanor