I don't think this is possible in the present arrangement.
SK1 would have to be transmitted to the contract, therefore revealed to all verifiers, which is everyone. In any case, that's the hurdle. In summary, if the contract can decode it, then everyone can decode it.
This is the sort of thing that might be possible with a ZKSnarks implementation, as I understand it.
This might be of assistance: Can smart contracts compute on encrypted data?Can smart contracts compute on encrypted data?
Hope it helps.