2012-05-20 1 views
0

자바 rmi 클라이언트 서버와 채팅 응용 프로그램을 만들었습니다. RSA 알고리즘을 사용하여 내 메시지의 보안을 위해,하지만 상대방의 채팅에 개인 키를 배포에 내 어려움. 아마도 내 친구들이 개인 키를 상대방에게 배포하여 보낸 채팅 메시지의 암호를 해독 할 수있는 방법을 도울 수 있습니다.개인 키 배포 기술?

+5

왜 개인 키를 배포 하시겠습니까? 전체적인 아이디어는 비공개 키를 유지하는 것입니다. * private * – Voo

+1

실제로. 친구의 _public_ 키를 사용하여 보내는 메시지를 암호화해야만 개인 키로 암호를 해독 할 수 있습니다. –

+0

그는 * a * 개인 키에 대해 이야기합니다. 그의 친구가 아닙니다. 이것은 그가 대칭 키를 의미 함을 의미합니다. –

답변

0

당신이 사용해야하는 것은 정보를 전송하는 비대칭 체계입니다. 비대칭 암호화를 사용하면 누군가가 듣고 있더라도 키가 무엇인지 알 수 없습니다. 이것을 사용하여 메시지를 암호화 할 수는 있지만 일반적으로이를 사용하여 대칭 키를 암호화 한 다음이를 사용합니다.

배경에 대한 자세한 내용은 this을 참조하십시오.

코드에서 수행하는 방법에 대해서는 "java public key library"행을 따라 검색해볼 것을 제안합니다.

+1

그는 개인 키에 대해 이야기하기 때문에 이미 비대칭 체계를 사용하고 있습니다. 그는 태그와 RSA를 가지고 있습니다. – Voo

+0

@Voo, 태그와 이름이 사용 되었기 때문에 아이디어를 이해한다는 의미는 아닙니다. 그가이 질문을했다면 불필요한 것입니까? –

+0

게시물의 목적이 괜찮 았다면. RSA를 이미 사용하고있을 때 비대칭 스키마를 사용해야하는 포스터를 시작하는 것은 포스터뿐만 아니라 다른 독자들도 혼란스럽게 할 수 있습니다;) – Voo

3

우선 공개 키는 공개적으로 공개 할 수 있지만 공개 키는 배포하지 않습니다. 채팅 상대방의 공개 키를 사용하여 메시지를 암호화하고 개인 키를 사용하여 메시지의 암호를 해독합니다. 공개 키를 전자 메일로 보내거나 웹 사이트에 게시하여 다른 사람들이 자신의 메시지를 암호화 할 수 있도록 할 수 있습니다.

예를 들어 - 비대칭 암호화를 사용하여 보안 채널을 설정 한 후에 대칭 세션 키를 교환하고 훨씬 더 빠른 대칭 암호화를 사용하므로 훨씬 빠릅니다.

실제로 공개 키를 배포하는 것도 문제가 될 수 있습니다. 상대방이 전송 채널을 청취하는 것과 반대되는 방식으로 전송을 수정할 수도 있다면 사용자는 자신의 가짜 공개 키를 보낼 수 있습니다. 그래서 공개 키 (예 : 웹 사이트)는 신뢰할 수있는 기관 (공개 키가 웹 브라우저에 하드 코딩 됨)에 의해 서명되어야합니다.

+0

공개 키는 신뢰할 수 있어야하지만 신뢰할 수있는 기관은이를 수행하는 유일한 방법입니다 (신뢰의 웹, 대역 외 통신 등). –

0

RSA는 클라이언트가 공개 키를 가지고 있고 메시지가 클라이언트 공개 키를 사용하여 암호화되고 개인 키를 사용하여 암호가 해독 된 개인 키를 사용하는 공개 키 암호화입니다. 이것을 확인할 수 있습니다. http://www.di-mgt.com.au/rsa_alg.html 어떻게 작동하는지 자세히 설명합니다. 이 PPT는 어떻게 Java에서 구현할 수 있는지 설명합니다. www.cs.cityu.edu.hk/~cs4288/Java/RSA.doc 정말 도움이됩니다.

희망이 있습니다!