How can you make profile fields private so only user and admins can see?

We want to store some information about a user, like first name, last name, phone number, home address, etc., so we can use it in the future for auto-filling [custom] event registration forms, online store shipping forms, etc.  Using custom profile fields, you can mark them unsearchable, but not private.  We'd like it so that only Admins and the user themselves could view/edit this information.  Is there any way to get around this using custom profile fields or would that have to be handled differently?  This was a feature that was available on the Jive platform (although not on the Lithium platform).  Just curious how I might go about getting that same functionality OOTB.

Thanks!