When I use IntelliJ IDEA to export signed Android app, I have option to generate one private keystore and many keys within it.
What is the function of these keys? Should I generate a new key for each app update and name it accordingly?
At the moment I am generating one keystore for each app.
Another question: When creating a new key, is the info from the image optional or obligatory?

The Android system will not install or run an application that is not signed appropriately. This applies wherever the Android system is run, whether on an actual device or on the emulator. For this reason, you must set up signing for your application before you will be able to run or debug it on an emulator or device.
no need to generate new key for each app. Yo can use the existing key that you have previously generated.
Yes this is optional. You have provide this information.
for more information..http://developer.android.com/guide/publishing/app-signing.html