I first thought all these terms were synonyms, but I sometimes see those terms used in the same document. For instance, on MSDN:
data origin authentication, which enables the recipient to verify that messages have not been tampered with in transit (data integrity) and that they originate from the expected sender (authenticity).
I don't completely understand how is integrity different from authenticity.
How could it be possible to ensure only authenticity of the sender without data integrity? If an attacker is able to modify the content, how can we trust the sender field to be correct?
Similarly, what does it mean to know that some data has integrity, but not knowing the sender?
To me, it's just a matter of including or not the "Sender" field of the header in the part of the message that's checked for integrity (or authenticity, I'm confused now)
As far as I know, digital signatures solve both integrity an authenticity, maybe that's why I can't see the difference between the two.