<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def verify( self, headers, serialized_request_env, deserialized_request_env):
 # type: (Dict[str, Any], str, RequestEnvelope) -> None """Verify if the input request signature and the body matches. The verify method retrieves the Signature Certificate Chain URL, validates the URL, retrieves the chain from the URL, validates the signing certificate, extract the public key, base64 decode the Signature and verifies if the hash value of the request body matches with the decrypted signature. :param headers: headers of the input POST request :type headers: Dict[str, Any] :param serialized_request_env: raw request envelope in the input POST request :type serialized_request_env: str :param deserialized_request_env: deserialized request envelope instance of the input POST request :type deserialized_request_env: :py:class:`ask_sdk_model.request_envelope.RequestEnvelope` :raises: :py:class:`VerificationException` if headers doesn't exist or verification fails """

        cert_url = headers.get(self._signature_cert_chain_url_key)
        signature = headers.get(self._signature_key)

        if cert_url is None or signature is None:
            raise VerificationException(
                "Missing Signature/Certificate for the skill request")

        cert_chain = self._retrieve_and_validate_certificate_chain(cert_url)

        self._valid_request_body(
            cert_chain, signature, serialized_request_env)