How to deniably send a value Alice has a single bit of information, b, that she wants to send to Bob (over an unalterable but possibly-monitored channel) but  in such a way that without the cooperation of Bob she cannot prove to anyone else (Eve) besides Bob after-the-fact that she sent b and not 1-b.

Is this possible? I am thinking perhaps not, because in any protocol Eve could step through the inputs Alice receives from Bob with both b and 1-b, and check which one of those the output she sends back to Bob matches. Even if the protocol is non-deterministic Alice could record the random values for Eve - but perhaps there is some way in which the random values could be set up to be trivially spoofed to indicate the other value to Eve after-the-fact (and hence Eve would not be able to trust Alice)?
By this paper, indistinguishability obfuscation is enough for that.