Class IssacSG


  • public class IssacSG
    extends java.lang.Object
    전자 서명을 처리하는 클래스

    전자 서명을 생성하기 위해서는 원본 메시지, 전자 서명자의 개인키와 인증서 그리고 전자 서명 작성 시점인 전자 서명 시각(sign_time)이 필요하다.
    전자 서명 생성 함수는 전자 서명 생성 과정을 수행한 후 전자 서명 된 메시지를 출력한다.
    이 메시지의 형태는 PKCS#7 의 SignedData 형식으로 되어 있다.

    전자 서명을 검증하는 함수로는 전자 서명값 자체만 검증하는 VerifySignature()함수와 전자 서명 검증과 함께 인증서 검증까지 하는 VerifySignatureAndCertificate() 함수가 있다.
    인증서 검증 과정은 전자 서명의 유효성 검증을 위해서 필요하다.
    인증서 검증 시에는 CA의 인증서 집합과 CRL(인증서 폐지 목록), 인증 정책 집합과 전자 서명 검증 시각(verifytime)이 필요하다.

    전자 서명 검증 과정은 전자 서명 자체에 대한 검증과 인증서에 대한 검증의 두 가지로 나뉜다.
    첫번째의 경우는 인증서에서 제공하는 공개키에 대한 정보를 통해 작성된 전자 서명이 올바른지 확인하는 것이다.
    두번째의 경우는 전자 서명 검증에 사용되는 인증서가 과연 올바른 것인가에 대한 인증 경로 검증으로써 해당 인증서를 발급한 상위 CA들의 인증서를 검증한다.
    이때 사용되는 CA 인증서 집합에는 검증하려는 쪽이 신뢰하는 CA들이 입력되어 있어야 한다. (인증서 경로 검증: 사용자가 가장 신뢰하는 CA의 인증서로부터 얻고자 하는 상대방의 공개키가 포함된 인증서에 이르는 CA들의 trust chain에 대한 검증)

    GetOriginalMessage()함수는 전자 서명 된 메시지에서 원본 메시지를 얻는다.
    GetSignerCertificate ()함수는 전자 서명된 메시지에서 서명자의 인증서를 얻는다.
    위의 각 함수에 대하여 입력과 출력에 대하여 파일 형태를 갖는 함수들을 제공한다.