2016-06-30 12 views
0

공개 키 암호화의 예제 libsodium을 살펴보면 일반 텍스트를 암호화 할 때받는 사람의 공개 키 외에 보낸 사람의 개인 키가 사용 된 것처럼 보입니다. 관련 example에서보낸 사람의 개인 키가 암호화에 사용되는 이유는 무엇입니까?

추출물 :

crypto_box_easy() 함수는 수신자의 공개 키 (PK), 송신 측의 비밀 키 SK 및 넌스 N으로, 길이가 mlen 바이트 메시지 m를 암호화한다.

이 내용은 무엇입니까? 내 이해는 보낸 사람의 개인 키는 메시지에 서명 할 때만 사용되었다는 것입니다.

+0

좋아, 공개 키 암호화에 대한 나의 이해가 부족한 것 같아. 나는 약간의 독서를해야 할 것이다 ... – PureW

+0

@zaph하지만 송신자의 개인 키를 사용하는 예제에서 왜 암호화 코드'crypto_box_easy()'가 맞습니까? – PureW

+0

유스 케이스를 알아야합니다. – zaph

답변

0

libsodium 문서는 다음 섹션에서 different chapter 설명하는 "인증 태그"를 의미합니다. 따라서 crypto_box_easy(...) 함수는 암호화가 실제로 암호화 및 서명이므로 보낸 사람 개인 키를 입력으로 사용하는 것이 좋습니다.

0

디지털 서명은 개인 키로 암호화되고 공개 키를 사용하여 암호 해독됩니다. 이렇게하면 누구나 서명자의 공개 키로 서명을 확인할 수 있습니다.

This operation: 

* Encrypts a message with a key and a nonce to keep it confidential. 
* Computes an authentication tag. This tag is used to make sure that 
    the message hasn't been tampered with before decrypting it. 

그래서 libsodium 인증 태그를 부르는 메시지를 서명 일반적인 용어에 해당 :

+0

네,하지만 내 질문은 암호화 단계에 관한 것입니다. 참조 된 예에서, 보낸 사람의 개인 키는 일반 텍스트를 암호 텍스트로 암호화하는 데 사용됩니다. – PureW

+0

그 작업을 수행 할 수 있지만 코드 서명을 제외하고해서는 안됩니다. 공개 키는 일반적으로 공개 키로되어 있으므로 공개 키를 가진 사람 (누구나)이 개인 키로 암호화 된 모든 것을 해독 할 수 있음을 의미하므로 거기에는 보안이 없습니다. 그러나 바람직 할 수있는 매우 제한된 사용 사례가 있습니다. – zaph