암호화 디지털 서명
디지털 서명은 메시지 인증의 공개 키 기본 요소입니다. 실제 세계에서는 손으로 쓰거나 입력 한 메시지에 손으로 쓴 서명을 사용하는 것이 일반적입니다. 서명자를 메시지에 바인딩하는 데 사용됩니다.
마찬가지로 디지털 서명은 개인 / 엔티티를 디지털 데이터에 바인딩하는 기술입니다. 이 바인딩은 수신자와 제 3자가 독립적으로 확인할 수 있습니다.
디지털 서명은 데이터와 서명자 만 알고있는 비밀 키에서 계산되는 암호화 값입니다.
실제로 메시지 수신자는 메시지가 보낸 사람의 것임을 보증해야하며 해당 메시지의 발신을 거부 할 수 없어야합니다. 이 요구 사항은 교환 된 데이터에 대한 분쟁의 가능성이 매우 높기 때문에 비즈니스 응용 프로그램에서 매우 중요합니다.
디지털 서명 모델
앞서 언급했듯이 디지털 서명 체계는 공개 키 암호화를 기반으로합니다. 디지털 서명 체계의 모델은 다음 그림에 나와 있습니다.
다음 포인트는 전체 프로세스를 자세히 설명합니다.
이 체계를 채택하는 각 사람은 공개-개인 키 쌍을 가지고 있습니다.
일반적으로 암호화 / 암호 해독 및 서명 / 확인에 사용되는 키 쌍은 다릅니다. 서명에 사용되는 개인 키를 서명 키라고하고 공개 키를 확인 키라고합니다.
서명자는 해시 함수에 데이터를 공급하고 데이터 해시를 생성합니다.
그런 다음 해시 값과 서명 키가 지정된 해시에서 디지털 서명을 생성하는 서명 알고리즘에 제공됩니다. 서명이 데이터에 추가되고 둘 다 검증 자에게 전송됩니다.
Verifier는 디지털 서명과 검증 키를 검증 알고리즘에 공급합니다. 검증 알고리즘은 일부 값을 출력으로 제공합니다.
Verifier는 수신 된 데이터에 대해 동일한 해시 함수를 실행하여 해시 값을 생성합니다.
검증을 위해이 해시 값과 검증 알고리즘의 출력을 비교합니다. 비교 결과에 따라 검증자는 디지털 서명이 유효한지 여부를 결정합니다.
디지털 서명은 서명자의 '개인'키에 의해 생성되며 다른 사람은이 키를 가질 수 없습니다. 서명자는 향후 데이터 서명을 거부 할 수 없습니다.
서명 알고리즘으로 데이터에 직접 서명하는 대신 일반적으로 데이터 해시가 생성된다는 점에 유의해야합니다. 데이터 해시는 데이터의 고유 한 표현이므로 데이터 대신 해시에 서명하는 것으로 충분합니다. 서명을 위해 데이터 대신 해시를 직접 사용하는 가장 중요한 이유는 체계의 효율성입니다.
RSA가 서명 알고리즘으로 사용된다고 가정 해 보겠습니다. 공개 키 암호화 장에서 설명했듯이 RSA를 사용한 암호화 / 서명 프로세스에는 모듈 식 지수가 포함됩니다.
모듈 식 지수화를 통해 대용량 데이터에 서명하는 것은 계산 비용과 시간이 많이 걸립니다. 데이터의 해시는 비교적 작은 데이터 다이제스트이므로signing a hash is more efficient than signing the entire data.
디지털 서명의 중요성
모든 암호화 기본 요소 중에서 공개 키 암호화를 사용하는 디지털 서명은 정보 보안을 달성하는 데 매우 중요하고 유용한 도구로 간주됩니다.
메시지 거부 방지 기능 외에도 디지털 서명은 메시지 인증 및 데이터 무결성을 제공합니다. 이것이 어떻게 디지털 서명에 의해 달성되는지 간략하게 살펴 보겠습니다.
Message authentication − 검증자가 보낸 사람의 공개 키를 사용하여 디지털 서명의 유효성을 검사 할 때 서명은 해당 비밀 개인 키를 소유하고 다른 사람이없는 보낸 사람에 의해서만 생성되었음을 보장합니다.
Data Integrity− 공격자가 데이터에 접근하여 수정하는 경우 수신자 측의 디지털 서명 검증이 실패합니다. 수정 된 데이터의 해시와 검증 알고리즘이 제공하는 출력은 일치하지 않습니다. 따라서 수신자는 데이터 무결성이 침해되었다고 가정하고 메시지를 안전하게 거부 할 수 있습니다.
Non-repudiation− 서명자 만 서명 키를 알고 있다고 가정하므로 주어진 데이터에 대해 고유 한 서명 만 만들 수 있습니다. 따라서 수신자는 향후 분쟁이 발생할 경우 증거로 데이터와 디지털 서명을 제 3 자에게 제시 할 수 있습니다.
디지털 서명 체계에 공개 키 암호화를 추가함으로써 보안의 4 가지 필수 요소 인 개인 정보 보호, 인증, 무결성 및 부인 방지를 제공 할 수있는 암호화 시스템을 만들 수 있습니다.
디지털 서명을 사용한 암호화
많은 디지털 통신에서 기밀성을 확보하기 위해 일반 텍스트보다 암호화 된 메시지를 교환하는 것이 바람직합니다. 공개 키 암호화 체계에서는 발신자의 공개 (암호화) 키를 공개 도메인에서 사용할 수 있으므로 누구나 자신의 신원을 스푸핑하고 암호화 된 메시지를 수신자에게 보낼 수 있습니다.
따라서 암호화에 PKC를 사용하는 사용자는 메시지 인증 및 부인 방지를 보장하기 위해 암호화 된 데이터와 함께 디지털 서명을 찾는 것이 필수적입니다.
이는 디지털 서명과 암호화 체계를 결합하여 보관할 수 있습니다. 이 요구 사항을 달성하는 방법에 대해 간략하게 설명하겠습니다. 있습니다two possibilities, sign-then-encrypt 과 encrypt-then-sign.
그러나 sign-then-encrypt 기반의 암호화 시스템은 수신자가 발신자의 신원을 스푸핑하고 해당 데이터를 제 3 자에게 전송하기 위해 악용 될 수 있습니다. 따라서이 방법은 선호되지 않습니다. 암호화 후 서명 프로세스가 더 안정적이고 널리 채택되었습니다. 이것은 다음 그림에 묘사되어 있습니다.
암호화 된 데이터와 서명을받은 수신자는 먼저 보낸 사람의 공개 키를 사용하여 서명을 확인합니다. 서명의 유효성을 확인한 후 개인 키를 사용하여 암호 해독을 통해 데이터를 검색합니다.