2012-09-06 3 views
0

RSA 알고리즘을 사용하여 문자 메시지를 암호화하려고합니다. 메시지를 암호화하려면 클라이언트의 키가 필요합니다. 열쇠 교환 방법. 몇 가지 주요 교환 알고리즘을 연구했지만 예제 코드를 찾을 수 없습니다.RSA 암호화 Java, 키 교환

인터넷에서 키를 교환하는 방법에 대한 자습서를 참조 할 수 있습니까?

+0

시나리오에서받는 사람의 공개 키/인증서가 있습니까? 각 당은 이것을 가지고 있습니까? – pd40

+0

프로그래밍 관련 질문이 아니므로이 주제는 아닙니다. –

답변

2

U는이 샘플 program을 키 교환 알고리즘으로 사용할 수 있습니다. 두 당사자 간의 Diffie-Hellman 키 교환. 이 고조가 here 인 것을 이해하려고하십시오.

+0

Diffie-Hellman은 모든 사람이 사용하는 것과 거의 같습니다. "out of band"키를 전송해야하지만 실제로는 실용적이지 않습니다. Diffie-hellman은 두 당사자가 실제로 상기 키를 전송하지 않고 암호화를위한 키에 동의 할 수있게합니다. 수학자 친구는 내가 그것을 보여 주었을 때 수학적이라고 말했다. – feldoh

+0

Diffie-Hellman은 인증을 제공하지 않으므로 RSA 키 쌍이 필요한 암호화가 필요한 경우 유용하지 않습니다. 도청에 도움이되지만, 대부분 중간에 남자를 갖는 것이 가능합니다. 도청을 위해서 평범한 공개 키를 교환 한 다음 다른 쪽의 공개 키로 암호화 할 수 있으므로 더 이상 Diffie-Hellman이 필요하지 않습니다. –

+0

@feldoh 처음 본 것은 꽤 마술이지만 인증 문제를 해결할 수있는 것은 아닙니다. 미리 존재하는 일종의 신뢰가 필요합니다. RSA의 경우 세션을 설정하는 데 사용할 수는 있지만 더 이상 DH가 필요하지 않습니다. 위의 내 의견을 참조하십시오. –

0

키를 배포하는 주된 방법은 예를 들어. PGP는 다른 신뢰 당사자의 서명을 사용하여 키에 신뢰를 부여합니다. 브라우저에서 사용되는 것과 같은 X509 인증서는 상위 인증 기관의 인증서가 명시 적으로 신뢰되는 인증서 체인을 사용합니다. 인증서를 신뢰하는 이러한 방법을 PKI (공개 키 인프라)라고합니다.

신뢰할 수있는 신뢰가없는 경우 서로 인증서 또는 공개 키를 메일로 보내고 인증서를 통해 "지문"을 계산할 수 있습니다. 그런 다음 대역 외 절차 (전화, 봉투 등)를 사용하여 지문을 확인하십시오. 또는 간단히 만나서 서로의 자격 증명을 확인한 후 USB 썸 드라이브를 교환하십시오.