다음을 통해 공유


디지털 서명

받는 사람이 메시지 보낸 사람을 식별하고 확인해야 하는 경우 디지털 서명을 사용하여 일반 텍스트 형식으로 메시지를 배포할 수 있습니다. 메시지에 서명해도 메시지가 변경되지 않습니다. 메시지와 함께 번들하거나 별도로 전송할 수 있는 디지털 서명 문자열을 생성하기만 하면 됩니다. 디지털 서명은 보낸 사람의 프라이빗 키로 암호화되는 짧은 데이터 조각입니다. 보낸 사람의 공개 키를 사용하여 서명 데이터를 암호 해독하면 보낸 사람 또는 보낸 사람의 프라이빗 키에 액세스할 수 있는 사람이 데이터를 암호화했음을 증명합니다.

디지털 서명은 공개 키 서명 알고리즘을 사용하여 생성됩니다. 프라이빗 키는 서명을 생성하고 해당 공개 키를 사용하여 서명의 유효성을 검사해야 합니다. 이 프로세스는 다음 그림에 나와 있습니다.

디지털 서명 생성

메시지에서 디지털 서명을 만드는 데는 두 단계가 수행됩니다. 첫 번째 단계는 메시지에서 해시 값( 메시지 다이제스트라고도 함)을 만드는 것입니다. 그러면 서명자의 프라이빗 키를 사용하여 이 해시 값이 서명됩니다. 다음은 디지털 서명 만들기와 관련된 단계를 보여주는 그림입니다.

메시지에서 디지털 서명 만들기

서명을 확인하려면 메시지와 서명이 모두 필요합니다. 먼저 서명을 만든 것과 동일한 방식으로 메시지에서 해시 값을 만들어야 합니다. 그런 다음 서명자의 공개 키를 사용하여 서명에 대해 이 해시 값을 확인합니다. 해시 값과 서명이 일치하는 경우 메시지가 실제로 서명자가 원래 서명한 메시지이며 변조되지 않았다고 확신할 수 있습니다. 다음 다이어그램에서는 디지털 서명 확인과 관련된 프로세스를 보여 줍니다.

디지털 서명 확인

해시 값은 소량의 이진 데이터(일반적으로 약 160비트)로 구성됩니다. 이는 해시 알고리즘을 사용하여 생성됩니다. 이러한 알고리즘의 숫자는 이 섹션의 뒷부분에 나와 있습니다.

모든 해시 값은 사용된 알고리즘에 관계없이 다음 속성을 공유합니다.

  • 해시 값의 길이는 사용되는 알고리즘 유형에 따라 결정되며, 해당 길이는 메시지 크기에 따라 달라지지 않습니다. 가장 일반적인 해시 값 길이는 128비트 또는 160비트입니다.
  • 동일하지 않은 메시지 쌍은 두 메시지가 단일 비트로만 다르더라도 완전히 다른 해시 값으로 변환됩니다. 오늘날의 기술을 사용하면 해시 알고리즘을 중단하지 않고 동일한 해시 값으로 변환되는 메시지 쌍을 검색할 수 없습니다.
  • 동일한 알고리즘을 사용하여 특정 메시지를 해시할 때마다 동일한 해시 값이 생성됩니다.
  • 모든 해시 알고리즘은 단방향입니다. 해시 값을 지정하면 원래 메시지를 복구할 수 없습니다. 실제로 해시 값만으로는 원본 메시지의 속성을 확인할 수 없습니다.