users adding own account to specific blog

I'm a student and working on a social network blog for my interactive project. I'm very new to wordpress and was wondering if anyone knows how users work within a specific (private) wordpress blog. I want specific users to set up their own accounts (with a photo), tag given information about themselves and give/receive private messages from other users. Is there a plugin I need for this? Or how would something like this work? Thank you so much!

there is no private message system here, so you will need to use email or some other system.
authors can set up profile pages but profiles already exist for authors; they must upload an avatar if they want a picture, and it shows in the Author Widget. Some themes display avatars on each post, like Neo Sapien; most do not. Authors can also categorize or tag their posts with their names, so they will be searchable in teh Category widget or global category pages.