How do I make it required to enter password when changing user data?
Craft has a similar concept in the Control Panel for changing sensitive data like passwords/emails you could model called "elevated sessions".

You could write a custom plugin and your form could post to an action in a controller in your plugin, which could check if the phone number for that user has changed.

If so, you'd prompt the user to enter their current password and either do something similar to Craft's UsersController->actionStartElevatedSession, if you need it to last for period of time, or just validate the password and let it go through once.