*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: http://ethereum.stackexchange.com/questions/2652/can-smart-contracts-compute-on-encrypted-data?rq=1 

Hope it helps.