[encryption] 비대칭 암호화에서 암호화와 서명의 차이점은 무엇입니까?

일부 데이터 암호화와 일부 데이터 서명 (RSA 사용)의 차이점은 무엇입니까?

단순히 공개-개인 키의 역할을 역전합니까?

예를 들어 개인 키를 사용하여 메시지를 생성하여 보낸 사람 일 수만 있습니다. 메시지를 읽는 데 공개 키를 사용하기를 원하며 누가 메시지를 읽는지 상관하지 않습니다. 특정 정보를 암호화하여 소프트웨어의 제품 키로 사용하고 싶습니다. 나는 이것들을 생성 할 수있는 유일한 사람임을 신경 쓰고 있습니다. 키 서명을 해독 / 읽기 위해 소프트웨어에 공개 키를 포함하고 싶습니다. 키의 데이터를 읽을 수있는 사람은 신경 쓰지 않으며, 데이터를 생성 할 수있는 유일한 사람인지 확인합니다.

이 시나리오에서 서명이 유용합니까?



답변

암호화 할 때 공개 키 를 사용 하여 메시지를 작성 하고 개인 키 를 사용하여 메시지 를 읽습니다.

서명 할 때 개인 키 를 사용 하여 메시지 서명을 작성하고 공개 키 를 사용 하여 실제 인지 확인합니다.

개인 키를 사용하여 메시지를 생성하여 발신자가 될 수 있습니다.

메시지를 읽는 데 공개 키를 사용하고 싶은데 누가 메시지를 읽는지 상관하지 않습니다.

이다 서명 이 개인 키를 사용하여 수행됩니다.

특정 정보를 암호화하여 소프트웨어의 제품 키로 사용하고 싶습니다.

나는 이것들을 생성 할 수있는 유일한 사람임을 신경 쓰고 있습니다.

자신에게만 알면 키를 엉망으로 만들 필요가 없습니다. 임의의 데이터를 생성하여 데이터베이스에 보관할 수 있습니다.

그러나 사람들이 키가 실제로 자신의 키임을 알고 싶다면 임의의 데이터를 생성하고 데이터베이스에 보관하고 키로 서명해야합니다.

키 서명을 해독 / 읽기 위해 소프트웨어에 공개 키를 포함하고 싶습니다.

Verisign 또는 Thawte와 같은 상용 공급자로부터 공개 키 인증서를 구입해야 사람들이 소프트웨어를 위조하지 않고 공개 키를 대체하지 않았는지 확인할 수 있습니다.


답변

RSA 암호화에서는 키 페어를 생성 할 때 공개 키로 선택하는 키와 개인 키 중 어느 것이 든 임의적입니다. 하나를 사용하여 암호화하면 다른 하나도 해독 할 수 있습니다. 양방향으로 작동합니다.

따라서 메시지를 사용하여 메시지를 암호화하는 방법을 보는 것은 매우 간단합니다. 수신기의 공개 수신기가 그것을 해독 할 수 있도록 키 개인 키를 누릅니다.

서명은 서명자가 공개 키와 일치하는 개인 키를 가지고 있음을 증명합니다. 이를 위해서는 발신자의 개인 키로 메시지를 암호화 하고 일반 텍스트 버전과 함께 암호화 된 버전을 포함시키는 것으로 충분합니다 . 발신자를 확인하려면 암호화 된 버전의 암호를 해독하고 일반 텍스트와 동일한 지 확인하십시오.

물론 이것은 귀하의 메시지가 비밀이 아님을 의미합니다. 공개 키가 잘 알려져 있으므로 누구나 암호를 해독 할 수 있습니다. 그러나 그렇게 할 때, 암호문의 작성자는 해당 개인 키를 가지고 있음을 증명했습니다.

그러나 이는 일반 텍스트와 암호 텍스트를 함께 전송 크기를 두 배로 늘려야 함을 의미합니다 (서명 확인에 관심이없는 사람들이 메시지를 읽길 원한다고 가정). 대신 일반적으로 일반 텍스트 의 해시 를 만들어서 서명을 만듭니다 . 가짜 해시는 생성 할 수 없으므로 SHA-2와 같은 암호화 해시 알고리즘이 사용됩니다.

그래서:

  • 서명을 생성하려면 일반 텍스트에서 해시를 만들고 개인 키로 암호화 한 다음 일반 텍스트와 함께 서명하십시오.
  • 서명을 확인하려면 일반 텍스트에서 해시를 만들고 발신자의 공개 키로 서명을 해독 한 다음 두 해시가 동일한 지 확인하십시오.

답변

안전한 통신을 설정하는 데는 두 가지 뚜렷하지만 밀접한 관련 문제가 있습니다

  1. 권한이있는 사람 만 데이터를 해독하고 읽을 수 있도록 데이터를 암호화하십시오.
  2. 발신자의 신원 / 인증을 확인하십시오.

이 두 가지 문제는 공개 키 암호화를 사용하여 우아하게 해결할 수 있습니다.

I. 데이터의 암호화 및 해독

Alice는 아무도 읽을 수없는 메시지를 Bob에게 보내려고합니다.

  • Alice는 Bob의 공개 키로 메시지를 암호화하여 보냅니다.
  • Bob은 메시지를 받고 개인 키를 사용하여 암호를 해독합니다.

A가 B에게 메시지를 보내려면 A는 누구나 공개적으로 사용할 수있는 B의 공개 키를 사용해야하며 A의 공개 키나 개인 키는 여기에 표시되지 않습니다.

메시지를 보내려면 내가 제공 한 공개 키를 알고 사용해야하며, 해당 개인 키에 액세스 할 수있는 유일한 사람이므로 메시지를 해독 할 수 있습니다.

II. 발신자의 신원 확인 (인증)

Alice가 Bob에게 메시지를 다시 보내려고합니다. 데이터 암호화 문제는 위의 방법으로 해결됩니다.

그러나 Alice와 Bob 사이에 앉아서 Bob에게 ‘앨리스’라고 소개하고 Alice가 보낸 메시지를 전달하는 대신 Bob에게 내 메시지를 보내면 어떻게 될까요? Alice가 보낸 원본 메시지 (Bob의 개인 키에 액세스해야 함)를 해독하고 읽을 수는 없지만 그 사이의 전체 대화를 가로 채고 있습니다.

Bob이 수신하는 메시지가 Alice가 실제로 보낸 것을 확인할 수있는 방법이 있습니까?

  • Alice는 개인 키를 사용하여 메시지에 서명하고 메시지를 보냅니다. 실제로 서명 된 것은 메시지의 해시입니다 (예 : SHA-256 또는 SHA-512).
  • Bob은이를 수신하고 Alice의 공개 키를 사용하여이를 검증합니다. Alice의 공개 키가 메시지를 성공적으로 확인 했으므로 Bob은 메시지가 Alice에 의해 서명되었다고 결론을 내릴 수 있습니다.

답변

네, 데이터에 서명하는 것은 다른 사람이 가지고 있지 않은 자신 만의 왁스 도장을주는 것입니다. 무결성과 부인 방지 를 달성하기 위해 수행됩니다 . 암호화는 아무도 데이터를 볼 수 없습니다. 기밀 유지 를 위해 수행됩니다 . Wikipedia 참조 http://en.wikipedia.org/wiki/Information_security#Key_concepts

서명은 개인 키를 사용하여 서명 한 메시지의 해시입니다.


답변

서명은 공개 키로 확인할 수있는 개인 키로 “해시”를 생성합니다. 텍스트는 일반으로 보내집니다.

암호화는 수신자의 공개 키를 사용하여 데이터를 암호화합니다. 디코딩은 개인 키로 수행됩니다.

따라서 키 사용은 역전되지 않습니다 (그렇지 않으면 개인 키는 더 이상 개인 키가 아닙니다)!


답변

공개 키 암호화에서 서명이 사용되는 방법과 이유를 정확하게 설명합니다. 다른 사람이 제공 한 임의의 메시지에 서명 (또는 암호화)하는 것은 매우 위험하므로 키를 손상시킬 수있는 알고리즘에 대한 공격을 허용합니다.


답변

서명은 실제로 서명 한 개체의 출처 또는 보증인임을 나타냅니다. 그러나 누구나 객체를 읽을 수 있습니다.

암호화는 해당 개인 키가있는 사용자 만 키를 읽을 수 있지만 서명하지 않으면 암호화 된 개체 뒤에 있다는 보장이 없습니다.