Message authentication is ensured by using HMAC, which can be thought of as a symmetric-key construction.
Source authentication in multicast communications can be guaranteed using TESLA, which is again based on symmetric-key principles (although it basically works because of asymmetries in time).
However, neither HMAC nor TESLA ensure non-repudiation.
Is this a structural limitation of symmetric-key cryptography? Or is there some construct that ensures non-repudiation without using public/private keys?