2017-09-19 2 views
2

iOS는 키 생성을위한 API와 ECDH를 사용하는 비밀 키 유도를 노출합니까?Eosiptic Curve Diffie Hellman in ios/swift

사과는 내부적으로 (특히 x25519) 사용하고 있지만 일반 암호 또는 공개 키로 공개 API로 공개되지는 않습니다.

감사합니다,

+0

당신은'SecKeyCopyKeyExchangeResult' 살펴 있었나요? – Mats

+0

@Mats 감사합니다. - 나도 그랬지만 관련성이있는 것 같습니다.하지만 불행히도 문서는 너무 가난하고 어설프므로 사용 방법을 알기 어렵고 내가 원하는 것을 수행 할 수 없습니다. –

+0

'SecKey.h' 헤더 파일에는 온라인 문서에없는 몇 가지 추가 정보가있을 수 있습니다. – Mats

답변

2

이 엑스 코드 8.3.3와 함께 놀이터에서 완료

Z는 다음 앨리스의 개인과 밥의 공개를 사용하여 앨리스의 공유 비밀을 계산, 앨리스, 밥에 대한 EC를 사용하여 공개/개인 키를 생성 Bob의 개인 및 Alice의 공개를 사용하여 Bob에 대한 비밀을 공유하고 마침내 그들이 동등 함을 주장합니다.

import Security 
import UIKit 

let attributes: [String: Any] = 
    [kSecAttrKeySizeInBits as String:  256, 
    kSecAttrKeyType as String: kSecAttrKeyTypeEC, 
    kSecPrivateKeyAttrs as String: 
     [kSecAttrIsPermanent as String: false] 
] 

var error: Unmanaged<CFError>? 
if #available(iOS 10.0, *) { 
    // generate a key for alice 
    guard let privateKey1 = SecKeyCreateRandomKey(attributes as CFDictionary, &error) else { 
     throw error!.takeRetainedValue() as Error 
    } 
    let publicKey1 = SecKeyCopyPublicKey(privateKey1) 

    // generate a key for bob 
    guard let privateKey2 = SecKeyCreateRandomKey(attributes as CFDictionary, &error) else { 
     throw error!.takeRetainedValue() as Error 
    } 
    let publicKey2 = SecKeyCopyPublicKey(privateKey2) 

    let dict: [String: Any] = [:] 

    // alice is calculating the shared secret 
    guard let shared1 = SecKeyCopyKeyExchangeResult(privateKey1, SecKeyAlgorithm.ecdhKeyExchangeStandardX963SHA256, publicKey2!, dict as  CFDictionary, &error) else { 
     throw error!.takeRetainedValue() as Error 
    } 

    // bob is calculating the shared secret 
    guard let shared2 = SecKeyCopyKeyExchangeResult(privateKey2, SecKeyAlgorithm.ecdhKeyExchangeStandardX963SHA256, publicKey1!, dict as CFDictionary, &error) else { 
     throw error!.takeRetainedValue() as Error 
    } 

    print(shared1==shared2) 


} else { 
    // Fallback on earlier versions 
    print("unsupported") 
} 

감사 @Mats 권리 direction..3 날을 보내는

관련 문제