2013-02-17 7 views
21

보안 통신에 사용되는 iPhone 응용 프로그램에 ECC를 통합하려고하지만 목적에 맞게 라이브러리/튜토리얼을 찾는 데 어려움을 겪고 있습니다.-c. 나는이 게시물을 읽었다 : How to use ECC in iOS 그러나 그것은 거의 1 년 전에 게시되었고 응답이 없었다. 조언이나 조언을 크게 부탁드립니다iOS의 타원 곡선 암호화

고마워요!

+5

Objective-C가 필요합니까? 많은 C ECC 라이브러리 중 하나를 사용할 수 있습니까? –

+1

요엘이 말한 바; 그냥 C API를 사용하고 필요에 따라 Objective-C로 감싼다. NSData는 버퍼에 대한 액세스를 아주 편리하게 제공합니다. – bbum

+0

Ahh yea 완전히 이해가된다. 단지 이것을 발견했다 : https://github.com/x2on/OpenSSL-for-iPhone/blob/master/include/openssl/ecdh.h 고마워! – jrushing

답변

1

안타깝게도 보안 변형 [1] (iOS 기본 프레임 워크가 있어야하고 위에 언급 된 게시물이 사용하는 프레임 워크)은 타원형 곡선을 지원하지 않는 것 같습니다. ECC의 비 사과 구현에서.

[1] http://developer.apple.com/library/mac/#documentation/Security/Conceptual/SecTransformPG/SecurityTransformsBasics/SecurityTransformsBasics.html

+0

정말입니까? Apple은 iOS에서 거의 모든 암호화 작업을 위해 ECC와 AES의 조합을 사용합니다. 확실히 할 수 있습니다. 유일한 질문은 개발자에게 공개할지 여부입니다. –

1

나는 불행하게도 적절한 문서를 찾는 데에 실패하고있어,하지만 어쩌면 당신이 애플에서 CommonCrypto 프레임 워크를 사용할 수 있습니까? 유망

이 헤더 솔기 : http://opensource.apple.com/source/CommonCrypto/CommonCrypto-60027/Source/CommonCryptoSPI/CommonECCryptor.h

+2

헤더는 "SPI"이며, 애플의 용어는 개인 인터페이스를 의미합니다. 이 기능은 클라이언트 응용 프로그램 개발자에게는 노출되지 않습니다. Apple에 [버그 리포트] (http://bugreport.apple.com)를 보내어 필요할 때 공개 기능을 공개하도록 요청할 수 있습니다. –

1

맥 라이브러리의 타원 곡선 암호에 대한 빠른 검색 EllipticLicense, EC의 암호화를 사용하는 맥에 대한 제품 키 생성/검증 라이브러리 얻었다. EC를위한 OpenSSL의 지원을 사용하고 있습니다.

Apple은 최신 상태로 유지하는 호환성 문제로 인해 제공된 OpenSSL 동적 라이브러리를 사용하지 않으므로 OpenSSL from the source을 잡고 직접 앱과 함께 제공해야합니다.

-2

귀하가 궁금한 답변이 아닙니다. 그러나 나의 편집증은 당신이 ECC 구현의 실제와 의미를 이해하는 데 시간을 투자 할 것을 제안하도록 강요합니다. 이 출판물을 NSA back door으로 생각하십시오.

이 기사에서 다루는 내용 이외에 "RSA 보안이 공개적으로 Dual_EC_DRBG를 취소했습니다."라는 점에 유의하십시오.

list of vendors that had validated various DRBG 알고리즘을 검토했습니다. 대부분의 플랫폼과 OS에서 Apple이 CRT_DRBG를 직접 검증 한 것처럼 보입니다. 분명히? 꼭 그런 것은 아닙니다. 더 자세히 살펴보면 기술이 Apple 제품에 내장되었을 수있는 Dual EC DRBG의 유효성을 확인한 공급 업체가있는 것으로 보입니다. 어떻게 그리고 어디에서 사용 했습니까? 나는 이것을 결정할 수 없었다.

예를 들어, 유효성 검사 번호 309로 스크롤하십시오. 올바르게 읽었는지 확실하지 않습니다. 하지만 Cummings는 ARM A8 코어 및 iOS 5.0과 함께 배포되는 Apple 모바일 장치 용 OEM 공급 업체입니다. 그들은 이중 EC DRBG를 포함하는 암호화 통신 모듈의 유효성을 확인했습니다. 언제 사용됩니까? 내가 아는 전부는 그것이 그것이 가능하고 가능하지 않다는 것입니다. 언제?! 몰라. DRBG에는 "사용 가능하거나 사용 불가능한"두 가지 다른 맛이 있습니다. 이것은 단지 사용의 가능성을 감소시킬 수 있습니다.

는 결론이 보인다 :

  • 듀얼 EC DRBG 시나리오의 알 수없는 수의 자격 플랫폼에서 SHA를 사용하십시오 암호화 기능을 사용할 수있다.

  • 우리는 조사 결과가
    인 것으로 의심되면 당국이 의심 할 때까지 기다려야 할 것입니다.

좋은 하루 보내십시오. :)

P.S. 나는 OpenSSL에 관심을 가지고 도울 수 없었다. OpenSSL이 검은 색으로 나열된 난수 생성기를 사용하는지 여부를 명확히하는 방법과 관련하여 알 수없는 부분에 대해 밝히는 질문이 this post 인 것을 발견했습니다.

+1

NIST의 발견 결과가 (느리고 의심스러운) 난수 생성기에 매우 특정한 -1이 추가되었습니다. 예를 들어 ECIES. –

1

내 실험으로 Nacl 라이브러리를 사용할 수 있습니다. 이 라이브러리에는 curve25519 타원 곡선 구현이 있습니다. 이것은 최첨단 기술이며 가장 빠른 라이브러리입니다.

crypto ++을 사용할 수도 있습니다.

관련 문제