Enabling Data Integrity Protection in Regenerating-Coding-Based Cloud Storage: Theory and Implementation